*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:#0a1938;background:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;line-height:1.9}
a{color:inherit}
.wrap{width:min(1160px,calc(100% - 64px));margin:auto}
.header{position:sticky;top:0;z-index:30;background:#fff;border-bottom:1px solid #e6ebf2}
.header-inner{height:92px;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;background:#fff}
.brand img{display:block;width:340px;height:auto;max-height:54px;object-fit:contain;object-position:left center;filter:none}
.nav{display:flex;gap:30px}
.nav a{text-decoration:none;font-size:12px;letter-spacing:.14em;font-weight:700}
.hero{background:linear-gradient(115deg,#fff 0%,#fff 48%,#f4f8fd 48%,#eef5fc 100%);border-bottom:1px solid #e8edf4}
.hero-grid{min-height:680px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:80px}
.eyebrow,.section-no{font-size:11px;letter-spacing:.22em;color:#075db6;font-weight:800}
.hero h1{font-size:clamp(48px,7vw,86px);line-height:1.18;letter-spacing:-.055em;margin:20px 0 30px;font-weight:650}
.hero-copy{font-size:16px;color:#43506a}
.text-link{display:inline-block;margin-top:30px;text-decoration:none;font-size:12px;font-weight:800;letter-spacing:.15em}
.text-link span{color:#075db6;margin-left:12px}
.hero-visual{position:relative;height:470px;border-left:1px solid #dce6f1;background:radial-gradient(circle at 62% 45%,rgba(64,139,218,.17),rgba(255,255,255,0) 42%),linear-gradient(135deg,rgba(255,255,255,.4),rgba(210,228,246,.36));overflow:hidden}
.chart{position:absolute;inset:70px 40px 62px 55px;border-left:1px solid #c9d8e8;border-bottom:1px solid #c9d8e8}
.chart .bar{position:absolute;bottom:0;width:42px;background:linear-gradient(#8dbbeb,#0c5eb5);border-radius:5px 5px 0 0;opacity:.65}
.b1{left:8%;height:24%}.b2{left:25%;height:44%}.b3{left:43%;height:34%}.b4{left:61%;height:66%}.b5{left:80%;height:86%}
.chart svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.chart polyline{fill:none;stroke:#0a4f9c;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.signal{position:absolute;border:1px solid rgba(13,91,176,.22);border-radius:50%}
.signal-a{width:290px;height:290px;right:-80px;top:-70px}
.signal-b{width:190px;height:190px;right:-30px;top:-20px}
.signal-c{width:110px;height:110px;right:10px;top:20px}
.hero-label{position:absolute;right:32px;bottom:18px;font-size:11px;letter-spacing:.32em;color:#075db6;font-weight:800}
.section{padding:125px 0}
.section h2{margin:6px 0 0;font-size:17px;letter-spacing:.16em}
.grid-intro{display:grid;grid-template-columns:1fr 2fr;gap:80px}
.lead-block h3{font-size:clamp(30px,4vw,50px);line-height:1.45;letter-spacing:-.03em;margin:0 0 30px}
.lead-block p{max-width:680px;color:#4c566c}
.section-soft{background:#f7f9fc}
.section-sub{margin:25px 0 55px;color:#667086}
.services{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #cfd8e4;border-bottom:1px solid #cfd8e4}
.service{padding:38px 28px;border-right:1px solid #cfd8e4}
.service:first-child{padding-left:0}
.service:last-child{border-right:0}
.service-icon{height:62px;margin-bottom:22px}
.service-icon svg{width:54px;height:54px;fill:none;stroke:#075db6;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.service-icon svg rect{fill:rgba(13,95,184,.1)}
.service>span,.steps b{font-size:11px;color:#075db6;letter-spacing:.15em}
.service h3{font-size:18px;line-height:1.55;margin:10px 0}
.service p{font-size:13px;color:#59647a}
.approach-grid{display:grid;grid-template-columns:1fr 1.2fr;align-items:center;gap:70px}
.approach-copy h3{font-size:38px;line-height:1.45;margin:30px 0 20px}
.approach-copy p{max-width:500px;color:#5d687c}
.venn{position:relative;height:430px}
.circle{position:absolute;width:230px;height:230px;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:rgba(64,139,218,.16);border:1px solid rgba(13,95,184,.13)}
.circle b{font-size:15px;letter-spacing:.08em}
.circle small{font-size:12px;color:#5c6880;margin-top:7px}
.c-data{left:50%;top:0;transform:translateX(-50%)}
.c-strategy{left:18%;bottom:5px}
.c-execution{right:18%;bottom:5px}
.venn-core{position:absolute;left:50%;top:57%;transform:translate(-50%,-50%);width:82px;height:82px;border-radius:50%;background:#0a1938;color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;letter-spacing:.1em}
.steps{margin-top:80px;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #d5dbe4;border-bottom:1px solid #d5dbe4}
.steps>div{padding:32px 24px;border-right:1px solid #d5dbe4}
.steps>div:first-child{padding-left:0}
.steps>div:last-child{border-right:0}
.steps h4{font-size:18px;margin:10px 0 2px}
.steps p{margin:0;color:#687287;font-size:13px}
.section-navy{background:#081633;color:#fff}
.section-navy .section-no{color:#56a2ec}
.company-grid{display:grid;grid-template-columns:1fr 2fr;gap:80px}
.company-note{color:#9eabc0;margin-top:28px}
.company-list{margin:0}
.company-list>div{display:grid;grid-template-columns:160px 1fr;padding:22px 0;border-bottom:1px solid rgba(255,255,255,.18)}
.company-list dt{font-size:12px;color:#9ca9c0}
.company-list dd{margin:0;font-size:14px}
.contact-section{background:#fff}
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:90px}
.contact-intro h3{font-size:36px;margin:28px 0 16px}
.contact-intro p{color:#687287}
.mail-link{display:inline-block;margin-top:20px;color:#075db6;text-decoration:none;border-bottom:1px solid #b7cee6}
.contact-form{background:#07152f;color:#fff;padding:52px 54px}
.contact-form label{display:block;margin-bottom:24px}
.contact-form label>span:first-child{display:block;font-weight:700;margin-bottom:9px}
.contact-form em{font-style:normal;color:#ff6262}
.contact-form input[type="text"],.contact-form input[type="email"],.contact-form input[type="tel"],.contact-form textarea{width:100%;border:1px solid #d6dce6;background:#fff;color:#17213a;border-radius:3px;padding:16px 18px;font:inherit;line-height:1.5}
.contact-form textarea{resize:vertical}
.contact-form input:focus,.contact-form textarea:focus{outline:2px solid #5ca5e8;outline-offset:1px}
.privacy-check{display:flex!important;align-items:flex-start;gap:10px;font-size:13px}
.privacy-check input{margin-top:7px}
.privacy-check span{display:inline!important;margin:0!important;font-weight:400!important}
.privacy-check a{text-decoration:underline}
.contact-form button{width:100%;border:0;background:#fff;color:#07152f;font-weight:800;padding:18px 20px;font-size:15px;cursor:pointer}
.contact-form button span{margin-left:10px;color:#075db6}
.hp-field{position:absolute;left:-9999px;opacity:0;pointer-events:none}
.footer{border-top:1px solid #e8ebf0;padding:34px 0;background:#fff}
.footer-inner{display:flex;justify-content:space-between;align-items:center}
.footer-brand{background:#fff}
.footer img{display:block;width:230px;height:auto;filter:none}
.footer-links{display:flex;gap:28px;align-items:center}
.footer-links a,.footer p{font-size:11px;color:#6f7b91;text-decoration:none;margin:0}
@media(max-width:980px){
  .services{grid-template-columns:1fr 1fr}
  .service{border-bottom:1px solid #cfd8e4}
  .service:nth-child(2){border-right:0}
  .approach-grid,.contact-grid{grid-template-columns:1fr}
  .venn{max-width:600px;margin:auto;width:100%}
}
@media(max-width:760px){
  .wrap{width:min(100% - 36px,1160px)}
  .header-inner{height:72px}
  .brand img{width:230px;max-height:46px}
  .nav{display:none}
  .hero{background:linear-gradient(#fff 0%,#fff 54%,#f2f7fc 54%,#eef5fc 100%)}
  .hero-grid{min-height:auto;grid-template-columns:1fr;gap:25px;padding-top:70px}
  .hero h1{font-size:50px}
  .hero-visual{height:340px;border-left:0;border-top:1px solid #dce6f1}
  .section{padding:90px 0}
  .grid-intro,.company-grid{grid-template-columns:1fr;gap:45px}
  .lead-block h3,.approach-copy h3{font-size:32px}
  .services{grid-template-columns:1fr}
  .service,.service:first-child{padding:30px 0;border-right:0}
  .approach-grid{gap:35px}
  .venn{height:340px}
  .circle{width:180px;height:180px}
  .c-strategy{left:3%}.c-execution{right:3%}
  .venn-core{width:66px;height:66px;font-size:9px}
  .steps{grid-template-columns:1fr 1fr}
  .steps>div{padding:25px 16px;border-bottom:1px solid #d5dbe4}
  .steps>div:nth-child(2){border-right:0}
  .company-list>div{grid-template-columns:100px 1fr}
  .contact-form{padding:34px 22px}
  .footer-inner{align-items:flex-start;gap:22px;flex-direction:column}
  .footer img{width:200px}
  .footer-links{flex-direction:column;align-items:flex-start;gap:8px}
}