*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif;color:#111;line-height:1.7;background:#f6f8fb}a{color:inherit;text-decoration:none}.site-header{background:#fff;box-shadow:0 2px 12px rgba(0,0,0,.08);position:sticky;top:0;z-index:10}.topline{max-width:980px;margin:0 auto;padding:10px 24px 0;font-weight:700}.header-inner{max-width:980px;margin:0 auto;display:grid;grid-template-columns:245px 1fr 260px;gap:20px;align-items:center;padding:8px 24px 16px}.brand{font-size:29px;font-weight:900;letter-spacing:.04em}.brand span{font-size:23px;margin-right:6px}.nav{display:flex;justify-content:center;gap:28px;font-weight:700}.nav a{border-bottom:3px solid transparent;padding:8px 0}.nav a:hover,.nav a:first-child{color:#075eac;border-bottom-color:#075eac}.header-contact{text-align:right;font-weight:700}.header-contact small{display:block}.header-contact .tel{display:block;color:#0f5ea9;font-size:30px;line-height:1.15}.header-contact .tel:before{content:'☎ ';font-size:.75em}.header-contact span{font-size:14px;display:block;line-height:1.45}main{max-width:980px;margin:0 auto;background:#fff;box-shadow:0 2px 18px rgba(0,0,0,.08)}.hero{height:385px;position:relative;background:linear-gradient(90deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.58) 38%,rgba(255,255,255,.08) 76%),url('../images/hero-road.jpg') center bottom/cover no-repeat;overflow:hidden}.hero-copy{max-width:980px;margin:0 auto;padding:38px 24px 0}.dots{width:270px;height:9px;background:radial-gradient(circle,#f0728a 45%,transparent 48%) 0 0/26px 9px}.hero h1{font-size:43px;line-height:1.25;color:#06326d;margin:22px 0;text-shadow:0 3px 16px rgba(255,255,255,.55)}.hero p{font-weight:900;font-size:15px;margin:0 0 7px;color:#111;text-shadow:0 2px 10px rgba(255,255,255,.8)}.lead{color:#111}.badges{display:flex;gap:18px;margin-top:18px}.badges span{width:92px;height:92px;border-radius:50%;display:grid;place-items:center;text-align:center;color:#fff;font-weight:900;font-size:16px;box-shadow:inset 0 0 0 4px rgba(255,255,255,.35),0 5px 14px rgba(0,0,0,.18)}.badges span:nth-child(1){background:#f05f77}.badges span:nth-child(2){background:#f6b739;color:#4a3300}.badges span:nth-child(3){background:#8cc63f}.round-services{position:absolute;right:5%;bottom:28px;display:flex;gap:22px}.round-services div{width:118px;height:118px;border-radius:50%;background:rgba(255,255,255,.88);border:6px solid white;display:grid;place-items:end center;box-shadow:0 5px 15px rgba(0,0,0,.25);padding-bottom:10px;text-align:center;color:#111}.round-services div:before{content:'📷';font-size:38px;display:block}.round-services div:nth-child(2):before{content:'ETC';font-weight:900;color:#0d5faa}.round-services div:nth-child(3):before{content:'▣';font-size:43px}.round-services strong{background:#fff;border-radius:20px;padding:5px 10px;font-size:13px}.section{max-width:980px;margin:0 auto;padding:28px 24px}.section h2{text-align:center;color:#063f83;font-size:28px;margin:0 0 22px}.top-services{padding-top:18px}.card-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.card-grid article{border:1px solid #d7e5f2;border-radius:10px;padding:14px 10px;text-align:center;background:linear-gradient(#fff,#f8fcff)}.icon{height:48px;display:grid;place-items:center;font-size:30px;font-weight:900;color:#0b65ad}.text-icon{font-size:34px}.card-grid h3{font-size:14px;color:#065da5;margin:5px 0}.card-grid p{font-size:12px;margin:0;font-weight:600}.worries h2{text-align:left;color:#111;border-bottom:2px solid #d8e8f7;padding-bottom:8px}.worries h2 span{margin-right:12px}.worry-grid{display:grid;grid-template-columns:1fr 1fr 230px;gap:30px;align-items:center}.worry-grid ul{list-style:none;padding:0;margin:0}.worry-grid li{font-weight:700;margin:12px 0}.worry-grid li:before{content:'✓';background:#f16478;color:#fff;border-radius:50%;padding:1px 6px;margin-right:12px}.speech{background:#eef7ff;border-radius:45px;padding:28px;text-align:center;font-weight:800;position:relative}.speech:after{content:'👨‍🔧';font-size:62px;position:absolute;right:-45px;bottom:-38px}.works{text-align:center}.work-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;text-align:center}.work-grid img{width:100%;height:132px;object-fit:cover;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.12)}.work-grid h3{font-size:16px;margin:10px 0 2px}.work-grid p{font-size:13px;margin:0}.blind-board{display:grid;grid-template-columns:1.1fr 1fr 1fr 1fr 1.35fr;gap:18px;align-items:stretch;border-top:1px solid #d8e8f7}.blind-board h2{text-align:left;margin:0;color:#063f83}.blind-board p{margin:.5em 0;font-weight:600}.blind-board figure{margin:0}.blind-board img{width:100%;height:160px;object-fit:cover;border-radius:8px;border:1px solid #e3edf6}.blind-board figcaption{text-align:center;font-weight:800;margin-top:6px}.blind-text,.blind-desc{border:1px solid #d7e5f2;border-radius:10px;padding:18px;background:#fbfdff}.blind-desc h3{color:#063f83;margin:0 0 8px}.greeting-wide{text-align:center;font-weight:700;padding-top:18px}.greeting-wide p{margin:.45em 0}.contact-band{background:linear-gradient(90deg,#075aa7,#0071c6);color:#fff;display:grid;grid-template-columns:1fr 1.2fr 260px;gap:24px;align-items:center;padding:24px max(24px,24px)}.contact-band small,.contact-band span{display:block;line-height:1.45}.contact-band a{font-size:23px;font-weight:900}.form-btn{background:#f45f73;border-radius:32px;text-align:center;padding:17px 20px;font-size:16px!important}.form-btn:before{content:'✉ ';}.company{display:grid;grid-template-columns:1.1fr 1.8fr 1fr 1fr;gap:28px;align-items:start}.company h2{text-align:left;font-size:22px;color:#111;margin-bottom:8px}.blue{color:#0b65ad;font-weight:700}.contact-lines{margin-top:16px}.contact-lines p{display:flex;gap:14px;align-items:baseline;margin:7px 0;flex-wrap:wrap}.contact-lines span{min-width:64px;color:#075eac;font-weight:800;background:#eef7ff;border-radius:16px;text-align:center;padding:2px 9px}.contact-lines a{font-weight:800}.greeting p{font-size:15px;margin:.5em 0;line-height:1.9;word-break:normal}.map{display:block;height:135px;border-radius:8px;background:linear-gradient(135deg,#f5f7fa,#dce9f6);position:relative;border:1px solid #dce9f6;overflow:hidden}.map:before{content:'';position:absolute;inset:0;background:linear-gradient(30deg,transparent 48%,#fff 49%,#fff 51%,transparent 52%),linear-gradient(120deg,transparent 48%,#fff 49%,#fff 51%,transparent 52%);background-size:55px 55px}.map:after{content:'📍';position:absolute;font-size:42px;left:50%;top:50%;transform:translate(-50%,-50%)}.map span{position:absolute;bottom:9px;right:10px;background:#fff;border-radius:20px;padding:4px 12px;color:#075eac;font-weight:800;font-size:13px}.building img{width:100%;height:210px;object-fit:cover;border-radius:10px;box-shadow:0 5px 18px rgba(0,0,0,.12)}.footer{background:#f4f7fb;text-align:center;padding:14px;font-size:13px}@media(max-width:900px){.header-inner{grid-template-columns:1fr}.brand{font-size:28px}.nav{overflow:auto;justify-content:flex-start}.header-contact{text-align:left}.hero{height:auto;min-height:610px;background-position:center center}.hero-copy{padding-top:46px}.hero h1{font-size:34px}.round-services{position:static;margin:28px 24px;justify-content:center;flex-wrap:wrap}.round-services div{width:118px;height:118px}.worry-grid,.contact-band,.company{grid-template-columns:1fr}.card-grid{grid-template-columns:repeat(2,1fr)}.work-grid{grid-template-columns:1fr 1fr}.blind-board{grid-template-columns:1fr 1fr}.blind-text,.blind-desc{grid-column:1/-1}.contact-band{padding:24px}.contact-band a{font-size:22px}.building img{height:auto}}@media(max-width:520px){.card-grid,.work-grid,.blind-board{grid-template-columns:1fr}.hero h1{font-size:30px}.hero p{font-size:15px}.badges span{width:92px;height:92px;font-size:15px}.header-contact .tel{font-size:30px}.speech:after{display:none}}

/* v8 final layout fixes: readable desktop width, smartphone support, illustration */
main{max-width:1024px;}
.topline,.header-inner{max-width:1024px;}
.hero{height:430px;background:linear-gradient(90deg,rgba(255,255,255,.94) 0%,rgba(255,255,255,.68) 37%,rgba(255,255,255,.12) 75%),url('../images/hero-road.jpg') center bottom/cover no-repeat;}
.hero-copy{padding-top:48px;}
.support-box{display:flex;align-items:center;justify-content:center;gap:18px;}
.support-box img{width:145px;max-width:35%;height:auto;}
.speech{min-width:250px;}
.speech:after{display:none!important;}
.blind-board{grid-template-columns:1.15fr 1fr 1fr 1fr;gap:18px;align-items:start;}
.blind-text{min-width:0;}
.blind-text h2{word-break:keep-all;line-height:1.35;font-size:26px;}
.blind-text p,.blind-desc p{word-break:normal;overflow-wrap:break-word;line-height:1.9;}
.blind-desc{grid-column:1 / -1;display:block;min-height:auto;}
.blind-desc h3{font-size:20px;}
.company{grid-template-columns:minmax(210px,1fr) minmax(320px,1.45fr) minmax(190px,.9fr) minmax(190px,.9fr);gap:22px;}
.greeting p{word-break:normal;overflow-wrap:break-word;line-height:1.9;}
.nav a{white-space:nowrap;}

@media(max-width:900px){
  body{background:#fff;}
  main{max-width:none;width:100%;box-shadow:none;}
  .topline,.header-inner{max-width:none;}
  .topline{padding:8px 16px 0;font-size:13px;}
  .header-inner{grid-template-columns:1fr;gap:10px;padding:8px 16px 14px;}
  .brand{font-size:26px;}
  .brand span{font-size:20px;}
  .nav{gap:0;justify-content:space-between;overflow:visible;flex-wrap:wrap;border-top:1px solid #eef3f8;padding-top:6px;}
  .nav a{font-size:13px;padding:6px 4px;white-space:nowrap;}
  .header-contact{text-align:left;}
  .header-contact .tel{font-size:26px;}
  .header-contact span{font-size:13px;}
  .hero{height:auto;min-height:520px;background:linear-gradient(180deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.72) 42%,rgba(255,255,255,.12) 100%),url('../images/hero-road.jpg') center bottom/cover no-repeat;}
  .hero-copy{padding:34px 18px 0;}
  .hero h1{font-size:34px;}
  .hero p{font-size:14px;}
  .badges{gap:10px;flex-wrap:wrap;}
  .badges span{width:86px;height:86px;font-size:14px;}
  .round-services{position:static;margin:28px 16px 0;justify-content:center;gap:12px;}
  .round-services div{width:105px;height:105px;}
  .card-grid{grid-template-columns:1fr 1fr;gap:10px;}
  .section{padding:24px 16px;}
  .worry-grid{grid-template-columns:1fr;gap:8px;}
  .support-box{justify-content:space-between;background:#eef7ff;border-radius:18px;padding:12px 14px;}
  .support-box img{width:105px;max-width:35%;}
  .speech{background:transparent;padding:0;margin:0;text-align:left;min-width:0;}
  .work-grid{grid-template-columns:1fr 1fr;gap:14px;}
  .work-grid img{height:110px;}
  .blind-board{grid-template-columns:1fr;gap:14px;}
  .blind-text h2{font-size:24px;}
  .blind-board img{height:auto;max-height:230px;object-fit:cover;}
  .blind-desc{grid-column:auto;}
  .contact-band{grid-template-columns:1fr;gap:16px;text-align:left;padding:22px 18px;}
  .form-btn{width:100%;display:block;}
  .company{grid-template-columns:1fr;gap:20px;}
  .company-info,.greeting,.access,.building{width:100%;}
  .building img{height:auto;}
}
@media(max-width:520px){
  .brand{font-size:24px;}
  .nav{display:grid;grid-template-columns:repeat(3,1fr);text-align:center;}
  .nav a{font-size:12px;}
  .hero{min-height:590px;background-position:center bottom;}
  .hero h1{font-size:30px;}
  .hero p br{display:none;}
  .round-services div{width:96px;height:96px;border-width:4px;}
  .round-services strong{font-size:11px;}
  .card-grid,.work-grid{grid-template-columns:1fr;}
  .support-box{align-items:center;}
  .support-box img{width:92px;}
  .contact-band a{font-size:20px;word-break:break-word;}
  .contact-lines p{display:grid;grid-template-columns:70px 1fr;gap:10px;align-items:center;}
}

.work-grid article h3{word-break:keep-all;writing-mode:horizontal-tb;white-space:normal;}
.work-grid{grid-template-columns:repeat(5,1fr);} 

/* v10 final footer/company and notice fixes */
.notice{background:#f7fbff;border-top:1px solid #e4eef8;border-bottom:1px solid #e4eef8;padding-top:18px;padding-bottom:18px;text-align:center;}
.notice h2{font-size:22px;margin-bottom:8px;color:#075eac;}
.notice p{margin:0;font-size:15px;}
.company{grid-template-columns:minmax(340px,1.25fr) minmax(260px,1fr) minmax(260px,1fr)!important;gap:30px!important;align-items:stretch!important;}
.company-info,.access,.building{background:#fff;border:1px solid #e1edf8;border-radius:14px;padding:20px;box-shadow:0 6px 18px rgba(5,70,130,.06);}
.company-info h2,.access h2{color:#063f83!important;}
.company-info p{margin:.55em 0;}
.company-info .blue{display:inline-block;background:#eef7ff;color:#075eac;border-radius:999px;padding:4px 12px;font-weight:800;}
.contact-lines{border-top:1px solid #e5eef8;padding-top:12px;}
.contact-lines p{display:grid!important;grid-template-columns:76px 1fr!important;gap:12px!important;align-items:center!important;margin:8px 0!important;flex-wrap:nowrap!important;}
.contact-lines span{min-width:0!important;width:76px!important;}
.contact-lines a,.contact-lines p{word-break:normal!important;overflow-wrap:anywhere;}
.building{margin:0!important;display:flex;align-items:center;justify-content:center;}
.building img{width:100%!important;height:220px!important;object-fit:cover!important;object-position:center center!important;border-radius:10px!important;box-shadow:none!important;}
.footer p{margin:0;font-weight:600;letter-spacing:.02em;}
.nav{gap:34px;}

@media(max-width:900px){
  .company{grid-template-columns:1fr!important;}
  .company-info,.access,.building{padding:18px;}
  .building img{height:auto!important;max-height:none!important;}
  .notice{text-align:left;}
}


/* v12 final PC layout fixes */
/* 相談イラストを水色の吹き出し枠に重ねる */
@media (min-width: 901px){
  .support-box{
    position:relative!important;
    display:block!important;
    min-height:150px!important;
    padding-right:0!important;
  }
  .support-box .speech{
    margin:0!important;
    padding:28px 82px 28px 28px!important;
    border-radius:34px!important;
    min-width:0!important;
    width:100%!important;
    text-align:center!important;
    line-height:1.85!important;
  }
  .support-box img{
    position:absolute!important;
    right:-8px!important;
    bottom:-2px!important;
    width:86px!important;
    max-width:none!important;
    height:auto!important;
    z-index:2!important;
  }

  /* 下部の会社情報をPCで見やすく整える */
  #company.company{
    grid-template-columns:minmax(330px,1.2fr) minmax(220px,.75fr) minmax(310px,1fr)!important;
    gap:24px!important;
    align-items:stretch!important;
  }
  #company .company-info,
  #company .access,
  #company .building{
    background:#fff!important;
    border:1px solid #dceaf7!important;
    border-radius:16px!important;
    box-shadow:0 8px 22px rgba(5,70,130,.07)!important;
  }
  #company .company-info{padding:24px!important;}
  #company .company-info h2{margin:0 0 16px!important;font-size:24px!important;color:#111!important;}
  #company .company-info > p{line-height:1.85!important;margin:0 0 14px!important;}
  #company .blue{display:none!important;}
  #company .contact-lines{border-top:1px solid #e6f0fa!important;padding-top:14px!important;margin-top:14px!important;}
  #company .contact-lines p{
    display:grid!important;
    grid-template-columns:60px minmax(0,1fr)!important;
    gap:12px!important;
    align-items:center!important;
    margin:8px 0!important;
    line-height:1.45!important;
  }
  #company .contact-lines span{
    width:60px!important;min-width:60px!important;
    background:#e9f5ff!important;color:#075eac!important;
    border-radius:999px!important;padding:3px 8px!important;
    font-weight:900!important;text-align:center!important;
  }
  #company .contact-lines a,
  #company .contact-lines p{font-size:15px!important;font-weight:800!important;word-break:normal!important;overflow-wrap:anywhere!important;}

  #company .access{padding:18px!important;align-self:start!important;}
  #company .access h2{font-size:22px!important;margin:0 0 10px!important;color:#063f83!important;}
  #company .map{height:105px!important;border-radius:12px!important;}
  #company .map:after{font-size:34px!important;}
  #company .map span{font-size:12px!important;padding:3px 10px!important;}

  #company .building{
    padding:0!important;overflow:hidden!important;display:flex!important;
    align-items:stretch!important;justify-content:center!important;
  }
  #company .building img{
    width:100%!important;
    height:190px!important;
    object-fit:cover!important;
    object-position:center 58%!important;
    border-radius:16px!important;
    box-shadow:none!important;
    display:block!important;
  }
}

@media(max-width:900px){
  .support-box{justify-content:space-between!important;background:#eef7ff!important;border-radius:18px!important;padding:12px 14px!important;}
  .support-box img{position:static!important;width:105px!important;max-width:35%!important;height:auto!important;}
  .support-box .speech{background:transparent!important;padding:0!important;margin:0!important;text-align:left!important;min-width:0!important;}
  #company.company{grid-template-columns:1fr!important;gap:18px!important;}
  #company .building img{height:auto!important;width:100%!important;object-fit:contain!important;}
}


/* v13 DoCoMAP section: replaces works */
.docomap{
  display:grid;
  grid-template-columns:1.05fr 1.35fr 1.35fr;
  gap:18px;
  align-items:stretch;
  border-top:1px solid #d8e8f7;
}
.docomap-title,.docomap-desc,.docomap-visual{
  border:1px solid #d7e5f2;
  border-radius:14px;
  background:#fbfdff;
  padding:18px;
  margin:0;
  box-shadow:0 6px 18px rgba(5,70,130,.04);
}
.docomap-title h2{
  text-align:left;
  margin:0 0 12px;
  color:#063f83;
  line-height:1.35;
  font-size:25px;
  word-break:keep-all;
}
.docomap-title p,.docomap-desc p{
  margin:.55em 0;
  font-weight:600;
  line-height:1.9;
  word-break:normal;
  overflow-wrap:break-word;
}
.docomap-visual{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;}
.docomap-visual img{width:100%;height:210px;object-fit:contain;border-radius:10px;background:#eef7ff;}
.docomap-visual figcaption{text-align:center;font-weight:800;color:#063f83;}
.docomap-desc h3{margin:0 0 8px;color:#063f83;font-size:21px;}
@media(max-width:900px){
  .docomap{grid-template-columns:1fr;gap:14px;}
  .docomap-title h2{font-size:24px;}
  .docomap-visual img{height:auto;max-height:260px;}
}


/* v14 corporate services and product detail refinements */
.corporate-services{
  margin-top:28px;
  padding-top:24px;
  border-top:1px solid #d8e8f7;
}
.corporate-services h3{
  text-align:center;
  color:#063f83;
  font-size:24px;
  margin:0 0 18px;
  letter-spacing:.04em;
}
.corp-card-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.corp-card{
  display:flex;
  align-items:center;
  gap:16px;
  border:1px solid #d7e5f2;
  border-radius:14px;
  background:linear-gradient(135deg,#ffffff,#f5fbff);
  padding:18px 20px;
  box-shadow:0 6px 18px rgba(5,70,130,.06);
}
.corp-icon{
  width:58px;
  height:58px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#e9f5ff;
  color:#075eac;
  font-size:28px;
  flex:0 0 auto;
}
.corp-card h4{
  margin:0 0 4px;
  color:#063f83;
  font-size:20px;
  line-height:1.35;
  word-break:keep-all;
}
.corp-card p{
  margin:0;
  font-weight:700;
  line-height:1.6;
}

/* details order and readability */
.blind-board{margin-top:4px;}
.docomap{
  grid-template-columns:1.05fr .9fr 1.55fr!important;
  align-items:stretch!important;
}
.docomap-visual img{
  width:100%!important;
  max-width:210px!important;
  height:145px!important;
  object-fit:contain!important;
  margin:auto!important;
}
.docomap-visual{padding:16px!important;}
.docomap-visual figcaption{font-size:13px!important;}
.docomap-title h2,.blind-text h2{word-break:keep-all!important;}
.docomap-desc p,.blind-desc p,.blind-text p{word-break:normal!important;overflow-wrap:break-word!important;line-height:1.9!important;}

/* footer contact labels */
#company .contact-lines span{
  text-transform:none!important;
  letter-spacing:.02em!important;
}

@media(max-width:900px){
  .corp-card-grid{grid-template-columns:1fr;}
  .corp-card{padding:16px;}
  .corp-card h4{font-size:18px;}
  .docomap{grid-template-columns:1fr!important;}
  .docomap-visual img{max-width:240px!important;height:auto!important;max-height:160px!important;}
}


/* v16 requested refinements */
.nav a[href="#docomap"]{display:none!important;}
.docomap-visual figcaption{
  text-align:center!important;
  line-height:1.6!important;
  white-space:normal!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
}
.footer p{letter-spacing:.02em;}
