:root{
  --blue:#004bb4;
  --blue2:#005bd4;
  --green:#00b400;  
  --dark:#003d96;
  --light:#eef6ff;
  --line:#d7e2f2;
  --text:#1d2b42;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--text);
  font-family:"Yu Gothic","YuGothic","Hiragino Kaku Gothic ProN",Meiryo,Arial,sans-serif;
  font-weight:600;
  line-height:1.75;
  background:#fff;
}
a{color:inherit;text-decoration:none}
.wrap{width:min(1120px,92%);margin:auto}
.center{text-align:center}

.pc-br{
  display:block;
}

@media(max-width:768px){

  .pc-br{
    display:none;
  }

}

.site-header{
  height:64px;
  border-bottom:1px solid #d9e1ec;
  background:#fff;
  position:sticky;
  top:0;
  z-index:20;
}
.header-inner{
  height:64px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.site-logo{
  display:block;
  width:200px;
  line-height:0;
}
.site-logo img{
  width:100%;
  height:auto;
  display:block;
}
.global-nav{
  display:flex;
  align-items:center;
  gap:28px;
  font-size:14px;
  font-weight:800;
}
.global-nav a{
  position:relative;
}

.global-nav a:not(.nav-contact)::after{
  content:"";

  position:absolute;
  left:0;
  bottom:-6px;

  width:0;
  height:2px;

  background:var(--blue);

  transition:width .25s;
}

.global-nav a:not(.nav-contact):hover::after{
  width:100%;
}

.nav-contact{
  background:linear-gradient(180deg,#0866df,#0048b8);
  color:#fff;
  padding:12px 18px;
  border-radius:5px;
  transition:transform .25s;
}

.nav-contact:hover{
  transform:translateY(-2px);

}

.nav-toggle{display:none}
.menu-btn{display:none}

.hero{
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:580px;
  border-bottom:1px solid #dce6f1;
  
}
.hero-left{
  display:flex;
  justify-content:flex-end;
  background:linear-gradient(90deg,#fff 0%,#fff 78%,#f4f9ff 100%);
  padding-right:20px;
}

@media(max-width:768px){

  .hero-left{
    padding-left:0;
  }

}

.hero-copy{
  width:min(560px,92%);
  padding:72px 0 48px;
}
.lead{
  display:inline-block;

  margin:0 0 22px;
  padding:10px 18px;

  background:var(--green);

  border-radius:999px;

  color:#fff;

  font-size:18px;
  font-weight:900;
  letter-spacing:.08em;
  line-height:1;
 
}
.hero h1{
  margin:0 0 26px;
  margin-left:-0.05em;

  color:var(--blue);

  font-size:54px;
  line-height:1.22;

  letter-spacing:-0.05em;

  font-weight:900;

  text-shadow:
    0 0 0 currentColor,
    0.6px 0 0 currentColor;

  font-feature-settings:"palt";
}

.hero .txt{
  margin:0 0 34px;
  font-size:20px;
  letter-spacing:-0.05em;
  font-weight:800;
}
.hero-actions{
  display:flex;
  gap:22px;
  margin-bottom:34px;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:205px;
  min-height:56px;
  padding:14px 28px;
  border-radius:6px;
  font-weight:900;
  letter-spacing:.03em;
  transition:transform .25s;
}

.btn:hover{
  transform:translateY(-5px);
}

.primary{
  color:#fff;
  background:linear-gradient(180deg,#0867df,#0049bb);
}
.secondary{
  color:var(--blue);
  background:#fff;
  border:2px solid var(--blue2);
}
.badges{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;

  margin:0;
  padding:0;

  list-style:none;
}

.badges li{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;

  min-height:40px;
  padding:10px 12px;

  background:#f7fbff;

  border:1px solid #e3edf8;
  border-radius:8px;

  color:var(--blue);

  font-size:14px;
  font-weight:900;
  letter-spacing:.02em;

  white-space:nowrap;
}

.badges li img{
  width:18px;
  height:18px;

  object-fit:contain;
  flex-shrink:0;
}

.hero-right{
  position:relative;

  padding-left:24px;

  background:
    url("images/reference-design.png");

  background-repeat:no-repeat;
  background-size:115%;
  background-position:64% center;
}

.lab-photo{
  position:relative;
  height:100%;
  min-height:580px;

  background:none;
}

.person{display:none}
.circle-list{
  position:absolute;
  inset:0;
  z-index:2;
}

.circle-list{
  position:absolute;
  inset:0;
  z-index:2;
}

.circle{
  position:absolute;

  width:128px;
  height:128px;

  border-radius:50%;

  background:rgba(255,255,255,.96);

  box-shadow:0 12px 28px rgba(0,57,128,.16);

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;

  gap:10px;

  color:var(--blue);

  font-size:17px;
  font-weight:900;
  line-height:1.3;

  text-align:center;
}

.circle img{
  width:38px;
  height:38px;

  object-fit:contain;
  flex-shrink:0;
}

/* PC配置 */

.c1{
  top:36px;
  left:8%;
}

.c2{
  top:42px;
  right:8%;
}

.c3{
  top:180px;
  left:2%;
}

.c4{
  top:190px;
  right:1%;
}

.c5{
  top:324px;
  left:8%;
}

.c6{
  top:334px;
  right:6%;
}

/* proposal */

.proposal{
  position:absolute;

  left:50%;
  bottom:10px;

  transform:translateX(-50%);

  z-index:4;

  width:calc(100% - 56px);
  max-width:560px;

  display:flex;
  align-items:center;
  justify-content:center;

  gap:18px;

  padding:22px 26px;

  background:rgba(255,255,255,.96);

  border-radius:10px;

  box-shadow:0 12px 28px rgba(0,67,155,.18);

  color:var(--text);

  font-size:18px;
  line-height:1.5;

  text-align:center;
}

.proposal-icon{
  width:38px;
  height:38px;

  object-fit:contain;
  flex-shrink:0;
}

@media(max-width:768px){

 .circle-list{
  position:absolute;
  top:50px;
  left:16px;
  z-index:3;

  display:flex;
  flex-direction:column;

  gap:8px;

  width:148px;
}

.circle,
.c1,
.c2,
.c3,
.c4,
.c5,
.c6{
  position:static !important;
  inset:auto !important;

  width:148px !important;
  height:38px !important;

  min-height:0 !important;

  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;

  gap:8px;

  padding:0 12px;

  border-radius:999px;

  font-size:12px;
  line-height:1;

  text-align:left;
}

.circle img{
  width:20px !important;
  height:20px !important;

  flex-shrink:0;
}

.circle span{
  white-space:nowrap;
}
  .proposal{
    left:14px;
    right:14px;
    bottom:16px;

    width:auto;
    max-width:none;
    transform:none;

    gap:12px;
    padding:16px 14px;

    border-radius:8px;
    font-size:16px;
    line-height:1.45;
    text-align:left;
  }

  .proposal-icon{
    width:30px;
    height:30px;
  }

}

.section-blue{
  background:linear-gradient(180deg,#f7fbff,#eef7ff);
}
.trouble,.service,.flow,.faq-cta{
  padding:72px 0 72px;
  
  }
.section-title{
  text-align:center;
  color: #000000;
  font-size:42px;
  line-height:1.45;
  margin:0;
  font-weight:900;
  letter-spacing:-0.03em;
}
.section-subtitle{
  margin:0 0 12px;

  text-align:center;

  color:#f08b2d;

  font-size:13px;
  font-weight:900;

  letter-spacing:.18em;

  text-transform:uppercase;

  opacity:.7;
}

.title-line{
  width:38px;
  height:3px;
  background:var(--blue2);
  margin:10px auto 32px;
}

.trouble-list{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}

.trouble-list article{
  background:#fff;
  border:1px solid #d6e0ef;
  border-radius:12px;

  min-height:240px;
  padding:34px 26px 28px;

  text-align:center;

  box-shadow:0 6px 18px rgba(0,74,160,.06);
}

.trouble-list article img{
  width:60px;
  height:60px;

  object-fit:contain;

  margin:0 auto 18px;
}

.trouble-list article h3{
  margin:0 0 14px;

  color:var(--blue);

  font-size:24px;
  font-weight:900;
  line-height:1.55;
  letter-spacing:.02em;
}

.trouble-list article p{
  margin:0;

  color:#33445f;

  font-size:14px;
  font-weight:700;
  line-height:1.8;
}

.support-copy{
  text-align:center;
  margin:30px 0;
  font-size:18px;
  font-weight:800;
}

@media(max-width:768px){

  .trouble-list{
    grid-template-columns:1fr;
    gap:16px;
  }

  .trouble-list article{
    min-height:auto;

    display:grid;
    grid-template-columns:48px 1fr;
    gap:10px 14px;

    padding:22px 20px;

    text-align:left;
  }

  .trouble-list article img{
    grid-row:1 / 3;

    width:40px;
    height:40px;

    margin:4px 0 0;
  }

  .trouble-list article h3{
    font-size:17px;
    line-height:1.45;
    margin:0;
  }

  .trouble-list article p{
    font-size:13px;
    line-height:1.7;
  }
  
  .support-copy{
    font-size:17px;
  text-align:left;
}

}

.wide{min-width:330px}

.service-grid{
  display:grid;

  grid-template-columns:repeat(2,1fr);

  border-top:1px solid var(--line);
  border-left:1px solid var(--line);

  background:#fff;
}

.service-grid article{
  min-height:220px;

  padding:40px 34px;

  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);

  display:grid;
  grid-template-columns:72px 1fr;

  gap:22px;

  background:#fff;

  transition:
    transform .25s,
    box-shadow .25s;
}

.service-grid article:hover{
  transform:translateY(-4px);

  box-shadow:0 12px 24px rgba(0,57,128,.08);
}
.service-icon{
  width:46px;
  height:46px;

  object-fit:contain;
  flex-shrink:0;
}
.service-icon.green{color:#55b72e}
.service-icon.gear{color:#8b9cb0}
.service-grid h3{
  color:var(--blue);
  font-size:22px;
  margin:0 0 10px;
  font-weight:900;
}
.service-grid p{
  margin:0 0 16px;
  font-size:13px;
  line-height:1.8;
}
.service-grid a{
  color:var(--blue);
  font-size:14px;
  font-weight:900;
}
.service-grid a:after{content:" 〉";padding-left:8px}

.bc-link-grid{
  display:grid;

  grid-template-columns:repeat(3,1fr);

  gap:24px;

  margin-top:48px;
}

.bc-link-group{
  padding:28px 26px;

  background:#fff;

  border:1px solid #d8e3f0;
  border-radius:14px;

  transition:
    transform .25s,
    box-shadow .25s;
}

.bc-link-group:hover{
  transform:translateY(-4px);

  box-shadow:0 14px 28px rgba(0,57,128,.10);
}

.bc-link-group h4{
  position:relative;

  margin:0 0 22px;
  padding-left:14px;

  color:var(--blue);

  font-size:22px;
  font-weight:900;
  line-height:1.4;

  letter-spacing:-0.02em;
}

.bc-link-group h4::before{
  content:"";

  position:absolute;

  top:.2em;
  left:0;

  width:4px;
  height:1.2em;

  background:var(--blue);

  border-radius:10px;
}

.bc-link-group ul{
  display:grid;
  gap:12px;

  margin:0;
  padding:0;

  list-style:none;
}

.bc-link-group li{
  margin:0;
  padding-bottom:12px;

  border-bottom:1px dashed #c8d5e6;
}
.bc-link-group li:last-child{
  padding-bottom:0;

  border-bottom:0;
}

.bc-link-group a{
  position:relative;

  display:block;

  padding-left:18px;

  color:#234;
  text-decoration:none;

  font-size:14px;
  font-weight:700;
  line-height:1.7;

  transition:
    color .2s,
    transform .2s;
}

.bc-link-group a::before{
  content:"";

  position:absolute;

  top:.72em;
  left:0;

  width:6px;
  height:6px;

  background:var(--green);

  border-radius:50%;
}

.bc-link-group a:hover{
  color:var(--blue);

  transform:translateX(4px);
}

@media(max-width:768px){

  .bc-link-grid{
    grid-template-columns:1fr;

    gap:16px;
  }

  .bc-link-group{
    padding:22px 18px;
  }

  .bc-link-group h4{
    margin-bottom:18px;

    font-size:19px;
  }

  .bc-link-group a{
    font-size:13px;
  }

}

.reason{
  position:relative;

  min-height:320px;

  display:grid;

  grid-template-columns:
    minmax(24px,1fr)
    minmax(0,560px)
    minmax(0,430px)
    minmax(320px,1fr);

  background:
    linear-gradient(
      90deg,
      #fff 0%,
      #f5fbff 68%,
      #e6f0f8 100%
    );

  overflow:hidden;
}

.reason-text,
.reason-check,
.reason-photo,
.reason-gallery{
  min-width:0;
}

.reason-text{
  grid-column:2;

  padding:54px 40px 48px 0;
}

.reason-text h2{
  display:inline;

  color:var(--blue);

  font-size:42px;
  line-height:1.55;

  margin:0 0 18px;

  font-weight:900;

  background:
    linear-gradient(
      transparent 68%,
      rgba(240,139,45,.28) 0
    );

  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}

.reason-text p{
  font-size:17px;

  margin:15px 0 15px;
}

.reason-check{
  grid-column:3;

  display:flex;
  align-items:center;

  z-index:2;
}

.reason-check ul{
  width:100%;

  list-style:none;

  margin:0;
  padding:28px 34px;

  background:rgba(255,255,255,.95);

  box-shadow:0 10px 24px rgba(0,65,150,.12);
}

.reason-check li{
  margin:11px 0;

  font-size:16px;
  font-weight:900;
}

.reason-check li:before{
  content:"";

  color:var(--blue);

  border:2px solid var(--blue);
  border-radius:50%;

  width:20px;
  height:20px;

  display:inline-flex;
  align-items:center;
  justify-content:center;

  margin-right:10px;

  font-size:13px;
}

.reason-check li:before{
  background:
    linear-gradient(45deg, transparent 45%, var(--blue) 45%, var(--blue) 55%, transparent 55%),
    linear-gradient(-45deg, transparent 45%, var(--blue) 45%, var(--blue) 55%, transparent 55%);
  background-size:9px 9px;
  background-repeat:no-repeat;
  background-position:center;
}

.reason-photo{
  grid-column:4;
  grid-row:1;

  height:100%;
  min-height:320px;

  background:
    url("images/reason-photo-mv.jpg");

  background-size:cover;
  background-position:center;
}

.reason-gallery{
  grid-column:2 / 5;

  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));

  gap:14px;

  padding:18px 0 0;
}

.reason-gallery figure{
  margin:0;

  overflow:hidden;

  background:#fff;
}

.reason-gallery img{
  width:100%;
  aspect-ratio:1.25 / 1;

  object-fit:cover;

  display:block;

  transition:
    transform .4s;
}

.reason-gallery figure:hover img{
  transform:scale(1.05);
}

/* =========================
   TABLET
   ※ページ幅が狭くなるタイミングで、PC用の横並びを解除
========================= */

@media(max-width:1100px){

  .reason{
    display:block;

    padding:0 0 24px;
  }

  .reason-text,
  .reason-check,
  .reason-photo,
  .reason-gallery{
    width:min(100%, calc(100% - 32px));

    max-width:1120px;

    margin-left:auto;
    margin-right:auto;
  }

  .reason-text{
    padding:48px 0 28px;
  }

  .reason-text h2{
    display:inline;

    font-size:36px;
    line-height:1.55;

    writing-mode:horizontal-tb;
  }

  .reason-text p{
    font-size:16px;
  }

  .reason-check{
    display:block;

    margin-bottom:24px;
  }

  .reason-check ul{
    padding:24px 26px;
  }

  .reason-photo{
    width:100%;

    min-height:300px;

    margin:0;

    background-position:center;
  }

  .reason-gallery{
    grid-template-columns:repeat(2,minmax(0,1fr));

    gap:10px;

    padding-top:14px;
  }

}

/* =========================
   SP
========================= */

@media(max-width:768px){

  .reason-text{
    padding:40px 0 24px;
  }

  .reason-text h2{
    font-size:30px;
  }

  .reason-text p{
    font-size:14px;
  }

  .reason-check ul{
    padding:22px 20px;
  }

  .reason-check li{
    font-size:14px;
    line-height:1.6;
  }

  .reason-photo{
    min-height:220px;
  }

  .reason-gallery{
    grid-template-columns:repeat(2,minmax(0,1fr));

    margin-bottom:0;
  }

  .reason-gallery img{
    aspect-ratio:1 / 1;
  }

}

.flow-list{
  display:grid;

  grid-template-columns:repeat(5,1fr);

  gap:34px;
}

.flow-list article{
  position:relative;

  min-height:230px;

  padding:34px 15px 26px;

  background:#fff;

  border:1px solid #d6e0ef;
  border-radius:8px;

  text-align:center;

  transition:
    transform .25s,
    box-shadow .25s;
}

.flow-list article:hover{
  transform:translateY(-4px);

  box-shadow:0 12px 24px rgba(0,57,128,.08);
}

/* 矢印 */

.flow-list article:not(:last-child)::after{
  content:"";

  position:absolute;

  top:50%;
  right:-24px;

  width:16px;
  height:16px;

  border-top:2px solid var(--blue);
  border-right:2px solid var(--blue);

  transform:
    translateY(-50%)
    rotate(45deg);
}

/* 数字 */

.flow-list span{
  position:absolute;

  top:8px;
  left:8px;

  width:30px;
  height:30px;

  border-radius:50%;

  background:var(--blue);
  color:#fff;

  display:flex;
  align-items:center;
  justify-content:center;

  font-size:14px;
  font-weight:900;

  line-height:1;
}

/* タイトル */

.flow-list h3{
  margin:10px 0 18px;

  color:var(--blue);

  font-size:18px;
  font-weight:900;
  line-height:1.5;

  letter-spacing:-0.02em;
}

/* SVGアイコン */

.flow-icon{
  display:block;

  width:48px;
  height:48px;

  object-fit:contain;

  margin:0 auto 20px;
}

/* 本文 */

.flow-list p{
  margin:0;

  font-size:15px;
  font-weight:700;
  line-height:1.85;
  text-align:left;

  color:#33445f;
}

/* =========================
   SP
========================= */

@media(max-width:768px){

  .flow-list{
    grid-template-columns:1fr;

    gap:16px;
  }

  .flow-list article{
    min-height:auto;

    padding:24px 20px 22px;

    text-align:left;
  }

  .flow-list article:not(:last-child)::after{
    display:none;
  }

  .flow-list span{
    top:18px;
    left:18px;
  }

  .flow-list h3{
    margin:0 0 12px;

    padding-left:44px;

    font-size:18px;

    text-align:left;
  }

  .flow-icon{
    width:42px;
    height:42px;

    margin:0 0 14px 44px;
  }

  .flow-list p{
    padding-left:44px;

    font-size:13px;
    line-height:1.8;
  }

}

.faq-cta-grid{
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:42px;
  align-items:start;
}
.faq-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:16px;
}
.faq-head h2{
  color:var(--blue);
  font-size:25px;
  margin:0;
  font-weight:900;
}
.faq-head a{
  color:var(--blue);
  font-size:14px;
  font-weight:900;
}
details{
  background:#fff;
  border:1px solid #d6e0ef;
  border-bottom:0;
}
details:last-child{border-bottom:1px solid #d6e0ef}
summary{
  cursor:pointer;
  list-style:none;
  padding:15px 18px;
  color:#123b76;
  font-size:15px;
  font-weight:900;
  position:relative;
}
summary:before{
  content:"Q.";
  color:var(--blue);
  margin-right:8px;
}
summary:after{
  content:"+";
  position:absolute;
  right:18px;
  color:var(--blue);
}
details[open] summary:after{content:"−"}
details p{
  margin:0;
  padding:0 18px 16px 48px;
  font-size:14px;
}

.contact-box{
  background:#fff;
  border:3px solid  #333333;
  border-radius:4px;
  padding:36px 34px 26px;
  text-align:center;
  box-shadow:0 8px 20px rgba(0,67,155,.08);
}
.contact-box h2{
  margin:0 0 22px;

  color:var(--blue);

  font-size:34px;
  font-weight:900;
  line-height:1.45;

  letter-spacing:-0.04em;
}

.contact-box h2 span{
  display:inline;

  color:#003f9f;

  background:
    linear-gradient(
      transparent 62%,
      rgba(240,139,45,.35) 0
    );

  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}

@media(max-width:768px){

  .contact-box h2{
    font-size:25px;
    line-height:1.5;
  }

}

.contact-box p{
  margin:0 0 24px;
  font-size:15px;
  line-height:1.9;
}
.contact-btn{
  width:100%;
  max-width:450px;
}
.contact-icons{
  display:flex;
  justify-content:center;
  gap:12px;

  margin:22px 0 0;
  padding:0;

  list-style:none;
}

.contact-icons li{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;

  min-width:120px;
  padding:10px 16px;

  background:#f7fbff;

  border:1px solid #e3edf8;
  border-radius:8px;

  color:var(--blue);

  font-size:14px;
  font-weight:900;
  letter-spacing:.02em;

  white-space:nowrap;
}

.contact-icons li img{
  width:18px;
  height:18px;

  object-fit:contain;
  flex-shrink:0;
}

.contact-buttons{
    display:flex;
    flex-direction:column;
    gap:16px;
    margin:40px 0 30px;
}

.contact-btn{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:72px;   /* 高さを統一 */
    padding:0 32px;    /* 上下paddingをなくす */
    box-sizing:border-box;
}

@media(max-width:768px){

  .contact-icons{
    gap:8px;
    flex-wrap:wrap;
  }

  .contact-icons li{
    min-width:auto;
    padding:9px 12px;

    font-size:12px;
  }

  .contact-icons li img{
    width:16px;
    height:16px;
  }

}

.site-footer{
  color:#fff;
  background:linear-gradient(90deg,#003c9d,#005bd4);
  padding:30px 0 20px;
}
.footer-inner{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:28px;
}
.footer-logo{
  font-size:24px;
  font-weight:900;
  margin:0 0 6px;
}
.site-footer p{
  margin:0;
  font-size:14px;
}
.site-footer nav{
  display:flex;
  gap:22px;
  flex-wrap:wrap;
  font-size:14px;
  font-weight:900;
}
.site-footer nav a + a:before{
  content:"|";
  margin-right:22px;
  opacity:.6;
}
.copy{
  text-align:right;
  width:min(1120px,92%);
  margin:10px auto 0!important;
  letter-spacing:.08em;
}

.footer-nav{
  display:flex;
  justify-content:center;

  margin-top:18px;
}

.footer-nav a{
  position:relative;

  display:flex;
  align-items:center;
  gap:8px;

  color:#fff;

  text-decoration:none;

  font-size:14px;
  font-weight:700;

  letter-spacing:.04em;

  transition:
    opacity .2s,
    transform .2s;
}

.footer-nav a img{
  width:18px;
  height:18px;

  object-fit:contain;

  flex-shrink:0;
}

.footer-nav a::after{
  content:"";

  position:absolute;

  left:26px;
  bottom:-4px;

  width:calc(100% - 26px);
  height:1px;

  background:rgba(255,255,255,.6);

  transform:scaleX(0);
  transform-origin:left center;

  transition:transform .25s;
}

.footer-nav a:hover{
  opacity:.85;

  transform:translateY(-1px);
}

.footer-nav a:hover::after{
  transform:scaleX(1);
}

@media(max-width:1050px){
  .global-nav{gap:14px;font-size:13px}
  .hero{grid-template-columns:1fr}
  .hero-left{justify-content:center}
  .hero-copy{width:min(760px,92%)}
  .lab-photo{min-height:520px}
  .trouble-list{grid-template-columns:repeat(3,1fr)}
  .service-grid{grid-template-columns:repeat(2,1fr)}
  /* reasonは上部の @media(max-width:1100px) で制御 */
  .flow-list{grid-template-columns:repeat(2,1fr)}
  .flow-list article:not(:last-child):after{display:none}
  .faq-cta-grid{grid-template-columns:1fr}
}

@media(max-width:760px){
  .site-header,.header-inner{height:auto}
  .header-inner{padding:12px 0;align-items:flex-start}
  .site-logo{
    width:210px;
  }
  .menu-btn{
    display:flex;
    flex-direction:column;
    gap:5px;
    width:42px;
    height:42px;
    background:#f3f8ff;
    border:1px solid #d7e2f2;
    border-radius:4px;
    padding:10px;
    cursor:pointer;
    margin-left:auto;
  }
  .menu-btn span{
    display:block;
    height:2px;
    background:var(--blue);
    transition:.25s;
  }
  .global-nav{
    width:100%;
    display:none;
    grid-template-columns:1fr;
    gap:0;
    margin-top:12px;
    border-top:1px solid #d7e2f2;
  }
  .global-nav a{
    background:#fff;
    padding:13px 10px;
    text-align:left;
    border-bottom:1px solid #d7e2f2;
    border-radius:0;
  }
  .global-nav .nav-contact{
    color:#fff;
    background:var(--blue);
    text-align:center;
    margin-top:10px;
    border-radius:4px;
  }
  .nav-toggle:checked ~ .global-nav{
    display:grid;
  }
  .nav-toggle:checked + .menu-btn span:nth-child(1){
    transform:translateY(7px) rotate(45deg);
  }
  .nav-toggle:checked + .menu-btn span:nth-child(2){
    opacity:0;
  }
  .nav-toggle:checked + .menu-btn span:nth-child(3){
    transform:translateY(-7px) rotate(-45deg);
  }
  .header-inner{flex-wrap:wrap}
  .hero-copy{padding:44px 0 34px}
  .lead{font-size:16px}
  .hero h1{font-size:31px}
  .hero .txt{font-size:14px}
  .hero-actions{display:grid;gap:12px}
  .btn{width:100%;min-width:0}
  .badges{grid-template-columns:repeat(2,1fr)}
  .lab-photo{min-height:440px;background-position:66% 8%}
  .circle{width:70px;height:70px;font-size:11px}
  .circle i{font-size:19px}
  .proposal{
    left:5%;
    right:5%;
    bottom:28px;
    font-size:17px;
    padding:18px;
  }
  .trouble,.service,.flow,.faq-cta{padding:34px 0 42px}
  .section-title{font-size:25px}
  .trouble-list,.service-grid,.flow-list{grid-template-columns:1fr}
  .service-grid{border-right:1px solid var(--line)}
  .service-grid article{grid-template-columns:48px 1fr;padding:26px 20px}
  .reason-text{padding:40px 0 24px}
  .reason-text h2{font-size:28px}
  .reason-check ul{padding:22px 18px}
  .reason-check li{font-size:14px}
  .faq-head{display:block}
  .contact-box{padding:28px 18px}
  .contact-box h2{font-size:23px}
  .contact-icons{gap:12px;flex-wrap:wrap}
  .footer-inner{display:block}
  .site-footer nav{margin-top:20px;display:block}
  .site-footer nav a{display:block;margin:8px 0}
  .site-footer nav a + a:before{content:none}
  .copy{text-align:left}
}
