/* ============================================
   山田製作所 採用LP - SPデザイン（設計幅750px）
   1rem = 10px @ 750px設計幅
   ============================================ */
:root{
  --navy:#1942b7;
  --navy-deep:#123390;
  --blue:#2a54c0;
  --blue-band:#2f55c9;
  --ink:#2a2f3a;
  --gray-bg:#f2f4f7;
  --pale:#eef3fb;
  --yellow:#ffed7d;
  --orange:#ec6b32;
  --line-green:#03c757;
}
html{font-size:calc(100vw / 75);} /* 750px設計: 1rem=10px */
@media (min-width:751px){ html{font-size:10px;} }
*{margin:0;padding:0;box-sizing:border-box;}
body{
  font-family:"Noto Sans JP",sans-serif;
  color:var(--ink);
  line-height:1.8;
  background:#fff;
  font-size:3rem; /* SP基本15px（750設計で30px） */
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:750px;margin:0 auto;overflow:hidden;}
img{max-width:100%;display:block;}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.serif{font-family:"Noto Serif JP",serif;}
.hl{
  background:linear-gradient(transparent 50%, var(--yellow) 50%);
  font-weight:700;
  padding:0 .15em;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}
.center{text-align:center;}

/* ---------- 追従ヘッダー ---------- */
.top-bar{
  background:var(--navy-deep);color:#fff;
  font-size:2.2rem;line-height:1.6;
  text-align:center;padding:1.6rem 3rem;
  font-family:"Noto Serif JP",serif;
}
.top-bar b{color:var(--yellow);font-weight:700;}

/* ---------- ヒーロー ---------- */
.hero{
  position:relative;
  background:linear-gradient(180deg,#dfe9f6 0%,#f4f8fd 60%,#ffffff 100%);
  padding-bottom:4rem;
}
.hero__staff{width:100%;}
.hero__staff img{width:100%;height:38rem;object-fit:cover;object-position:center top;}
.hero__body{position:relative;padding:0 3rem;margin-top:-3rem;text-align:center;}
.hero__lead{font-size:3.0rem;font-weight:700;color:var(--navy);letter-spacing:.05em;}
.hero__title{
  font-family:"Noto Serif JP",serif;
  font-size:6.2rem;font-weight:700;color:var(--navy);
  line-height:1.25;letter-spacing:.01em;margin-top:.5rem;
}
.hero__title small{font-size:4rem;}
.hero__sub{
  display:inline-block;background:var(--navy);color:#fff;
  font-size:2.7rem;font-weight:700;
  padding:1rem 2.4rem;margin-top:2rem;line-height:1.6;
}
.hero__sub b{color:var(--yellow);}
.hero__photos{display:flex;justify-content:space-between;padding:0 4rem;margin-top:3rem;}
.hero__photos img{
  width:18rem;height:18rem;border-radius:50%;object-fit:cover;
  border:.6rem solid #fff;box-shadow:0 .4rem 2rem rgba(28,61,143,.18);
}
/* バッジ */
.badges{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;
  padding:3rem 3rem 0;
}
.badge{
  background:#fff;border:.2rem solid var(--navy);border-radius:.8rem;
  color:var(--navy);font-weight:700;font-size:2.1rem;line-height:1.45;
  text-align:center;display:flex;align-items:center;justify-content:center;
  padding:1.6rem .6rem;min-height:11rem;
}
.badge small{font-size:1.7rem;font-weight:500;}

/* ---------- セクション共通 ---------- */
section{padding:9rem 0;}
.inner{padding:0 4rem;}
.sec-title{
  font-family:"Noto Serif JP",serif;
  font-size:4.4rem;font-weight:600;color:var(--ink);
  text-align:center;line-height:1.5;margin-bottom:5rem;
}
.sec-title--bracket{
  position:relative;display:table;margin:0 auto 5rem;padding:1rem 3rem;
}
.sec-title--bracket::before,.sec-title--bracket::after{
  content:"";position:absolute;width:2.6rem;height:2.6rem;border:.5rem solid var(--navy);
}
.sec-title--bracket::before{top:0;left:0;border-right:none;border-bottom:none;}
.sec-title--bracket::after{bottom:0;right:0;border-left:none;border-top:none;}
.en-label{
  font-family:"Noto Serif JP",serif;color:#dfe6f2;font-size:5rem;font-weight:700;
  letter-spacing:.08em;line-height:1;
}

/* ---------- お悩み ---------- */
.worries{background:linear-gradient(180deg,#f6f9fd,#eef3fb);position:relative;}
.worries .sec-title{text-align:left;}
.worries__img{margin:0 0 4rem;}
.worries__img img{width:100%;height:44rem;object-fit:cover;border-radius:1rem;}
.checklist{list-style:none;}
.checklist li{
  position:relative;padding:1.8rem 0 1.8rem 5.4rem;
  border-bottom:.2rem dotted #b9c4d6;font-size:2.9rem;font-weight:500;
}
.checklist li::before{
  content:"✓";position:absolute;left:0;top:1.6rem;
  width:3.6rem;height:3.6rem;border:.25rem solid var(--navy);border-radius:.5rem;
  color:var(--navy);font-weight:700;font-size:2.6rem;line-height:3.4rem;text-align:center;
}
.worries__msgs{margin-top:6rem;display:flex;flex-direction:column;gap:2rem;}
.worries__msgs p{
  background:#fff;border-radius:6rem;text-align:center;
  font-size:2.9rem;font-weight:700;color:var(--navy);
  padding:2rem 2.5rem;box-shadow:0 .3rem 1.4rem rgba(28,61,143,.08);
}
.worries__note{margin-top:5rem;text-align:center;font-size:2.6rem;line-height:2.1;}
.worries__note .strong{font-weight:700;}

/* ---------- こんな未来 ---------- */
.future .card{
  background:#fff;border-radius:1.4rem;overflow:hidden;
  box-shadow:0 .5rem 2.4rem rgba(28,61,143,.10);
  margin-bottom:5rem;position:relative;
}
.future .card:last-child{margin-bottom:0;}
.future .card__img{position:relative;}
.future .card__img img{width:100%;height:40rem;object-fit:cover;}
.future .card__num{
  position:absolute;right:2.4rem;bottom:-1.2rem;
  font-family:"Noto Serif JP",serif;font-size:3.4rem;color:rgba(255,255,255,.9);
  text-shadow:0 .2rem 1rem rgba(0,0,0,.35);letter-spacing:.08em;
}
.future .card__body{padding:4rem 3.4rem 4.4rem;}
.future h3{
  font-family:"Noto Serif JP",serif;color:var(--navy);
  font-size:3.4rem;font-weight:600;line-height:1.6;margin-bottom:2rem;
}
.future p{font-size:2.7rem;color:#4a5162;}
.future__next{margin-top:7rem;text-align:center;font-size:2.9rem;font-weight:500;line-height:2;}

/* ---------- どんな会社(Feature) ---------- */
.features{background:var(--gray-bg);}
.feature{
  background:#fff;border-radius:1.4rem;padding:5rem 3.4rem;
  margin-bottom:5rem;
}
.feature:last-child{margin-bottom:0;}
.feature__img{width:34rem;height:34rem;border-radius:50%;overflow:hidden;margin:0 auto 3.6rem;}
.feature__img img{width:100%;height:100%;object-fit:cover;}
.feature__tag{
  display:inline-block;background:var(--navy);color:#fff;
  font-size:2.1rem;font-weight:700;letter-spacing:.06em;
  padding:.4rem 2rem;margin-bottom:2rem;
}
.feature h3{
  font-family:"Noto Serif JP",serif;color:var(--navy);
  font-size:3.5rem;font-weight:600;line-height:1.6;margin-bottom:2.4rem;
}
.feature p{font-size:2.7rem;margin-bottom:2rem;}
.feature p:last-child{margin-bottom:0;}

/* ---------- 魅力6選(Charm) ---------- */
.charm{
  background:
   linear-gradient(135deg,#f2f5fa 25%,transparent 25%,transparent 50%,#f2f5fa 50%,#f2f5fa 75%,transparent 75%) ,#f8fafd;
  background-size:8rem 8rem;
}
.charm .card{
  background:#fff;border-radius:0 0 5rem 0;overflow:hidden;
  box-shadow:0 .4rem 2rem rgba(28,61,143,.08);margin-bottom:5rem;
}
.charm .card:last-child{margin-bottom:0;}
.charm .card__label{
  font-family:"Noto Serif JP",serif;color:#aebadf;
  font-size:2.4rem;letter-spacing:.28em;padding:2.4rem 3.4rem 0;
}
.charm .card__img{padding:1.6rem 3.4rem 0;}
.charm .card__img img{width:100%;height:40rem;object-fit:cover;}
.charm .card__body{padding:3.4rem;}
.charm h3{
  font-family:"Noto Serif JP",serif;color:var(--navy);text-align:center;
  font-size:3.3rem;font-weight:600;line-height:1.7;margin-bottom:2.4rem;
}
.charm p{font-size:2.7rem;margin-bottom:1.8rem;}
.charm p:last-child{margin-bottom:0;}
.charm b{font-weight:700;}

/* ---------- CTAバンド ---------- */
.cta-band{
  background:#1942b7 url("../img/cta-back.png") center / cover no-repeat;
  padding:8rem 3rem;position:relative;overflow:visible;
}
.cta-card{
  background:#fff;border-radius:0 0 8rem 0; /* 右下だけ大きく丸く */
  padding:5.5rem 3.4rem 5rem;position:relative;
  box-shadow:0 1.2rem 3.2rem rgba(0,0,0,.18);
}
.cta-card__photos{display:flex;justify-content:space-between;margin-bottom:2.4rem;}
.cta-card__photos img{width:15rem;height:15rem;border-radius:50%;object-fit:cover;}
.cta-card h2{
  font-family:"Noto Serif JP",serif;color:var(--navy);text-align:center;
  font-size:3.7rem;font-weight:700;line-height:1.6;margin-bottom:2.4rem;
}
.cta-card__lead{text-align:center;font-size:2.8rem;font-weight:700;margin-bottom:1.6rem;color:#19254a;}
.cta-card__sub{text-align:center;font-size:2.4rem;color:#4a5162;margin-bottom:3.4rem;line-height:1.9;}
.cta-card .badges{padding:0;margin-bottom:4rem;}
.btns{display:flex;flex-direction:column;gap:2rem;}
.btn{
  display:flex;align-items:center;justify-content:center;position:relative;
  border-radius:6rem;color:#fff;text-decoration:none;
  font-size:3rem;font-weight:700;padding:2.6rem 3rem;line-height:1.4;
  box-shadow:0 .4rem 1.4rem rgba(0,0,0,.16);
  transition:transform .15s ease, box-shadow .15s ease;
  box-sizing:border-box;
}
.btn:active{transform:translateY(.2rem);box-shadow:0 .2rem .6rem rgba(0,0,0,.16);}
.btn::after{
  content:"";
  position:absolute;
  right:2.4rem;
  top:50%;
  width:3.6rem;
  height:3.6rem;
  margin-top:-1.8rem;
  border-radius:50%;
  background-color:#fff;
  background-repeat:no-repeat;
  background-position:center center; /* 矢印を円の正中心 */
  background-size:1.55rem 1.55rem;
  box-sizing:border-box;
}
.btn::before{content:none;display:none;} /* 旧矢印は使わない */
.btn--apply{background:var(--orange);color:#fff;}
.btn--apply::after{
  background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23ec6b32' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round' d='M9 5l7 7-7 7'/%3E%3C/svg%3E");
}
.btn--line{background:var(--line-green);color:#fff;}
.btn--line::after{
  background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%2303c757' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round' d='M9 5l7 7-7 7'/%3E%3C/svg%3E");
}
.btn--req{background:var(--navy);color:#fff;}
.btn--req::after{
  background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%231942b7' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round' d='M9 5l7 7-7 7'/%3E%3C/svg%3E");
}
.btn--tel{background:#fff;color:var(--navy);border:.25rem solid var(--navy);flex-direction:column;padding:1.8rem 3rem;}
.btn--tel::after{
  background-color:var(--navy);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round' d='M9 5l7 7-7 7'/%3E%3C/svg%3E");
}
.btn--tel .tel-num{font-size:3.6rem;letter-spacing:.04em;}
.btn--tel .tel-note{font-size:2rem;font-weight:500;}
.cta-card__foot{margin-top:3.4rem;text-align:center;font-size:2.5rem;line-height:1.9;color:#4a5162;}

/* ---------- 仕事内容 ---------- */
.job{background:linear-gradient(120deg,#2a54c0,#1942b7 70%);color:#fff;padding-bottom:0;}
.job .sec-title{color:#fff;}
.job__photos{display:none;}
.job__white{background:#fff;color:var(--ink);border-radius:3rem 3rem 0 0;padding:7rem 0 9rem;}
.job__catch{
  font-family:"Noto Serif JP",serif;color:var(--navy);text-align:center;
  font-size:3.5rem;font-weight:600;line-height:1.7;margin-bottom:3rem;padding:0 3.4rem;
}
.job__desc{font-size:2.7rem;padding:0 4rem;text-align:center;line-height:2;}
.job-box{
  background:var(--gray-bg);border-radius:0;margin:6rem 4rem 0;padding:4.6rem 3.4rem;
}
.job-box h3{
  font-family:"Noto Serif JP",serif;color:#19254a;
  font-size:3.2rem;font-weight:600;margin-bottom:2.6rem;
  border-left:none;padding-left:0;line-height:1.5;
}
.job-box p{font-size:2.6rem;margin-bottom:1.6rem;}
.job-box p:last-child{margin-bottom:0;}
.job-box .lbl{color:var(--navy);font-weight:700;}
.job-box__img{margin:2.6rem 0;}
.job-box__img img{width:100%;border-radius:0;}
/* 作業リスト */
.task{margin-bottom:7rem;}
.task:last-child{margin-bottom:0;}
.task__img img{width:100%;height:36rem;object-fit:cover;border-radius:0;margin-bottom:2.2rem;}
.task h4{
  color:var(--navy);font-family:"Noto Serif JP",serif;
  font-size:3rem;font-weight:600;margin-bottom:1.4rem;
  display:flex;align-items:center;gap:1.4rem;
}
.task h4 .num{
  background:var(--navy);color:#fff;border-radius:50%;flex-shrink:0;
  width:4.4rem;height:4.4rem;font-family:"Noto Sans JP";font-size:2.2rem;font-weight:700;
  display:flex;align-items:center;justify-content:center;
}
.task p{font-size:2.6rem;}
.task .ex{font-size:2.4rem;color:#5a6274;margin-top:1rem;}

/* ---------- 1日の流れ ---------- */
.timeline{list-style:none;position:relative;margin-top:1rem;}
.timeline::before{
  content:"";position:absolute;left:6.6rem;top:1rem;bottom:1rem;width:.3rem;background:#c6d0e4;
}
.timeline li{position:relative;padding:0 0 4.4rem 16rem;}
.timeline li:last-child{padding-bottom:0;}
.timeline .time{
  position:absolute;left:0;top:0;
  background:var(--navy);color:#fff;border-radius:4rem;
  width:12.6rem;text-align:center;font-size:2.4rem;font-weight:700;padding:.5rem 0;
}
.timeline h4{
  font-family:"Noto Serif JP",serif;color:var(--navy);
  font-size:2.9rem;font-weight:600;line-height:1.5;margin-bottom:.8rem;
}
.timeline p{font-size:2.5rem;color:#4a5162;}

/* ---------- ステップアップ ---------- */
.steps{position:relative;}
.step{position:relative;padding:0 0 5rem 0;}
.step:last-child{padding-bottom:0;}
.step__head{display:flex;align-items:flex-start;gap:1.8rem;margin-bottom:1.6rem;}
.step__tag{
  background:var(--navy);color:#fff;border-radius:4rem;flex-shrink:0;
  font-size:2.2rem;font-weight:700;padding:.5rem 2.2rem;margin-top:.6rem;letter-spacing:.05em;
}
.step h4{
  font-family:"Noto Serif JP",serif;color:var(--navy);
  font-size:3rem;font-weight:600;line-height:1.6;
}
.step p{font-size:2.6rem;}
.step__img{margin-top:2.6rem;}
.step__img img{width:100%;}

/* ---------- 大切にしていること ---------- */
.values-box{
  background:var(--gray-bg);border-radius:0;padding:5rem 3.4rem;
  position:relative;overflow:visible;
}
.values-box h3{
  font-family:"Noto Serif JP",serif;color:#19254a;
  font-size:3.2rem;font-weight:600;margin-bottom:2.6rem;
  border-left:none;padding-left:0;line-height:1.5;
  display:block;position:relative;
}
.values-box h3::before{
  content:"";
  position:absolute;
  left:calc(-3.4rem - 3.2rem);
  top:50%;
  transform:translateY(-50%);
  width:calc(3.4rem + 3.2rem - 1.2rem);
  height:1px;
  background:#1942b7;
  display:block;
  z-index:2;
  pointer-events:none;
}
.values-box img{width:100%;border-radius:0;margin-bottom:3rem;}
.values-box h4{font-family:"Noto Serif JP",serif;color:var(--navy);font-size:3rem;font-weight:700;line-height:1.7;margin-bottom:2.2rem;}
.values-box p{font-size:2.6rem;margin-bottom:1.8rem;}
.values-box p:last-child{margin-bottom:0;}

/* ---------- インタビュー ---------- */
.interview{background:var(--pale);}
.int-card{
  background:#fff;padding:5rem 3.4rem;margin-bottom:6rem;
  box-shadow:0 .4rem 2rem rgba(28,61,143,.07);
}
.int-card:last-of-type{margin-bottom:0;}
.int-card__photo{width:100%;margin-bottom:3rem;}
.int-card__photo img{width:100%;height:auto;display:block;}
.int-card h3{
  font-family:"Noto Serif JP",serif;color:var(--navy);
  font-size:2.6rem;font-weight:600;line-height:1.8;margin-bottom:1.6rem;
}
.int-card .name{font-family:"Noto Serif JP",serif;font-size:2.5rem;color:#19254a;margin-bottom:3.4rem;}
.int-card .name::before{content:"—";margin-right:1.2rem;color:#19254a;}
.qa{border-top:.15rem solid #dbe1ec;}
.qa__q{
  display:flex;gap:1.8rem;align-items:flex-start;
  padding:2.6rem 4.5rem 2.6rem 0;position:relative;cursor:pointer;list-style:none;
  font-size:2.8rem;font-weight:700;color:var(--ink);line-height:1.6;
}
.qa__q::-webkit-details-marker{display:none;}
.qa__q::after{
  content:"";position:absolute;right:1rem;top:50%;
  width:1.6rem;height:1.6rem;border-right:.3rem solid var(--navy);border-bottom:.3rem solid var(--navy);
  transform:translateY(-70%) rotate(45deg);transition:transform .2s;
}
details[open] .qa__q::after{transform:translateY(-30%) rotate(-135deg);}
.qa__q .q{color:var(--navy);font-family:"Noto Serif JP",serif;font-size:3.2rem;line-height:1.3;}
.qa__a{display:flex;gap:1.8rem;padding:0 0 3rem;}
.qa__a .a{color:#9aa6bd;font-family:"Noto Serif JP",serif;font-size:3.2rem;line-height:1.3;}
.qa__a p{font-size:2.6rem;}
.qa__a p + p{margin-top:1.6rem;}

/* ---------- 座談会 ---------- */
.zadankai{padding:13rem 0;}
.zadankai .photo-card{position:relative;max-width:90rem;margin:0 auto 4rem;}
.zadankai .photo-card img{width:100%;height:auto;display:block;border-radius:0;}
.zadankai .photo-card__caption{
  background:#fff;position:absolute;left:50%;bottom:0;transform:translateX(-50%);
  z-index:1;margin:0;width:calc(100% - 6rem);max-width:74rem;
  padding:3.4rem 3rem;box-shadow:none;filter:none;text-align:center;
}
.zadankai h3{
  font-family:"Noto Serif JP",serif;color:#1942b7;
  font-size:2.6rem;font-weight:600;margin-bottom:1.8rem;line-height:1.6;
}
.zadankai p{font-size:2.5rem;line-height:1.9;color:var(--ink);}
.btn--more{
  display:flex;align-items:center;justify-content:center;margin:4rem auto 0;
  width:100%;max-width:36rem;min-height:0;height:auto;
  padding:1.8rem 5rem 1.8rem 2.4rem;box-sizing:border-box;
  background:#fff;color:var(--navy);border:.2rem solid var(--navy);
  border-radius:999px;box-shadow:none;font-size:2.4rem;font-weight:700;
}
.btn--more::after{
  background-color:var(--navy);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round' d='M9 5l7 7-7 7'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:center center;
  background-size:1.3rem 1.3rem;
  right:1.8rem;width:3rem;height:3rem;margin-top:-1.5rem;
}
.btn--more::before{content:none;display:none;}

/* ---------- 社長メッセージ ---------- */
.president{position:relative;overflow:hidden;background:#fff;}
.president .inner{position:relative;z-index:1;}
.president__imgs{position:relative;margin-bottom:4rem;}
.president__imgs .main{
  width:100%;max-width:56rem;height:auto;display:block;border-radius:0;
  position:relative;z-index:2;margin:0 auto;
}
.president__imgs .sub{display:none;}
.president .konogazou{
  display:block;position:absolute;right:-8%;bottom:-18%;
  width:min(95%, 64rem);height:auto;z-index:0;pointer-events:none;
}
.president h3{
  font-family:"Noto Serif JP",serif;color:#1942b7;
  font-size:3.4rem;font-weight:600;line-height:1.8;margin:4rem 0 3rem;
}
.president p{font-size:2.7rem;margin-bottom:1.8rem;color:#19254a;}
.president .btn--more{margin-top:4rem;margin-left:0;margin-right:auto;max-width:36rem;}
.president .sec-title{text-align:left;color:#19254a;}

/* ---------- 評価基準 ---------- */
.eval{background:var(--gray-bg);}
.eval__lead{
  background:#fff;border:.2rem solid var(--navy);
  text-align:center;padding:3.6rem 3rem;margin-bottom:5rem;
}
.eval__lead .catch{
  font-family:"Noto Serif JP",serif;color:var(--navy);
  font-size:3.1rem;font-weight:600;line-height:1.8;margin-bottom:1.6rem;
}
.eval__lead p{font-size:2.4rem;color:#4a5162;}
.eval-card{background:#fff;padding:4.4rem 3.4rem;margin-bottom:4rem;}
.eval-card:last-child{margin-bottom:0;}
.eval-card__head{margin-bottom:3rem;}
.eval-card__head img{width:100%;height:auto;display:block;}
.eval-item{margin-bottom:2.8rem;}
.eval-item:last-child{margin-bottom:0;}
.eval-item .tag{
  display:inline-block;border:.2rem solid var(--navy);color:var(--navy);
  font-size:2.2rem;font-weight:700;padding:.1rem 1.8rem;margin-bottom:.8rem;
}
.eval-item p{font-size:2.6rem;line-height:1.8;}

/* ---------- 福利厚生・待遇 ---------- */
.benefits__title{
  color:#19254a;
  display:table;margin-left:auto;margin-right:auto;margin-bottom:5rem;
  background:none;padding:0;
}
.benefits__lead{
  font-family:"Noto Serif JP",serif;color:#19254a;text-align:center;
  font-size:2.9rem;font-weight:500;margin:-2rem 0 7rem;line-height:1.5;
}
.benefit-card{
  background:#fff;border-radius:0rem 0rem 0rem 6rem;overflow:hidden;margin-bottom:5rem;
  box-shadow:0 .4rem 2rem rgba(28,61,143,.08);
}
.benefit-card:last-child{margin-bottom:0;}
.benefit-card__img{padding:2rem;box-sizing:border-box;}
.benefit-card__img img{width:100%;height:auto;display:block;object-fit:cover;border-radius:0;}
.benefit-card__body{padding:6rem 3.4rem;}
.benefit-card .card__label{margin:0 0 1.6rem;line-height:0;}
.benefit-card .card__label img{display:block;width:11rem;height:auto;}
.benefit-card h3{
  font-family:"Noto Serif JP",serif;color:#19254a;
  font-size:3.3rem;font-weight:600;line-height:1.5;margin-bottom:2rem;
}
.benefit-card ul{list-style:none;margin-bottom:2rem;}
.benefit-card li{
  font-size:2.6rem;padding-left:2.6rem;position:relative;margin-bottom:.4rem;
  color:#2a2f3a;line-height:1.5;
}
.benefit-card li::before{content:"・";position:absolute;left:0;color:#19254a;font-weight:700;}
.benefit-card .note{
  font-family:"Noto Serif JP",serif;font-size:2.6rem;color:#4a5162;line-height:1.5;
}
.benefits__lead{line-height:1.5;}

/* ---------- フォトギャラリー ---------- */
.gallery{background:var(--pale);}
.gallery__grid{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem;}
.gallery__grid img{width:100%;height:30rem;object-fit:cover;}
.gallery__grid img.wide{grid-column:span 2;height:40rem;}

/* ---------- 会社概要・募集要項テーブル ---------- */
.info-table{width:100%;border-collapse:collapse;background:#fff;}
.info-table th,.info-table td{
  border-top:.15rem solid #dbe1ec;border-bottom:.15rem solid #dbe1ec;
  padding:2.6rem 2rem;font-size:2.6rem;text-align:left;vertical-align:top;line-height:1.8;
}
.info-table th{
  width:24%;color:var(--navy);font-weight:700;white-space:nowrap;
  background:var(--pale);
}
.info-table .sub-h{font-weight:700;color:var(--navy);}

/* 会社概要: 帯＋行間あき（線なし）・左右交互の薄い色 */
.company .sec-title{color:#19254a;border:none;background:none;}
.company .info-table{
  border-collapse:separate;border-spacing:0 1rem;background:transparent;
}
.company .info-table th,
.company .info-table td{
  border:none;
  font-family:"Noto Serif JP",serif;
  padding:2.2rem 2.4rem;line-height:1.7;vertical-align:middle;
}
.company .info-table tr:nth-child(odd) th,
.company .info-table tr:nth-child(odd) td{background:#f5f7fc;}
.company .info-table tr:nth-child(even) th,
.company .info-table tr:nth-child(even) td{background:#f0f0f2;}
.company .info-table th{
  width:28%;color:#1942b7;font-weight:600;
}
.company .info-table td{color:#2a2f3a;font-weight:500;}
.requirements .job-title{
  text-align:center;font-size:2.8rem;font-weight:600;color:#1942b7;
  font-family:"Noto Serif JP",serif;border:none;border-radius:0;background:transparent;
  padding:0;margin:-1rem auto 4rem;line-height:1.6;
}
.requirements{
  background:#fff !important;
  scroll-margin-top:2rem;
}
.requirements .sec-title{color:#19254a;}
.requirements .req-panel{
  background:#f4f7fa;padding:4rem 3.4rem;max-width:940px;margin:0 auto;
}
.requirements .info-table{
  width:100%;border-collapse:collapse;background:transparent;
}
.requirements .info-table,
.requirements .info-table tbody,
.requirements .info-table tr{
  display:block;width:100%;
}
.requirements .info-table th,
.requirements .info-table td{
  display:block;width:100%;box-sizing:border-box;
  border:none;background:transparent;padding:0;
  text-align:left;vertical-align:top;
}
.requirements .info-table th{
  color:#1942b7;font-weight:700;font-size:2.6rem;
  margin:0 0 1.4rem;line-height:1.5;
  display:block;width:100%;
  font-family:"Noto Serif JP",serif;
  background:none;padding:0;
  text-decoration:none;border:none;
}
.requirements .info-table td{
  display:block;width:100%;
  color:#2a2f3a;font-size:2.5rem;line-height:1.9;
  font-family:"Noto Serif JP",serif;
  padding:0 0 3.4rem;margin:0 0 3.4rem;
  border-bottom:1px solid #d5dde8;background:transparent;border-top:none;
  text-align:left;box-sizing:border-box;
}
.requirements .info-table tr:last-child td{
  border-bottom:none;margin-bottom:0;padding-bottom:0;
}
.requirements .info-table .sub-h{
  color:#2a2f3a;font-weight:700;display:inline-block;margin:1.2rem 0 .4rem;
  font-family:"Noto Serif JP",serif;
}
.requirements .info-table tr:first-child .sub-h{margin-top:0;}


/* ---------- 応募フォーム ---------- */
.form-sec{background:#f5f6f9;scroll-margin-top:2rem;}
.form-sec .sec-title{color:#19254a;}
.form-sec__lead{text-align:center;font-size:2.6rem;margin-bottom:5rem;line-height:2;color:var(--ink);}
/* Snow Monkey Forms（WP固定ページ）埋め込み */
.form-embed__frame{
  display:block;
  width:100%;
  min-height:0;
  height:auto;
  border:0;
  background:#fff;
  overflow:hidden;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.form-embed__frame::-webkit-scrollbar{display:none;width:0;height:0;}
.form-embed{
  width:100%;
  max-width:900px;
  margin:0 auto;
  background:#fff;
  border-radius:0;
  overflow:hidden;
  box-shadow:none;
}
@media (min-width:751px){
  .form-embed__frame{min-height:0;}
}
@media (max-width:750.9px){
  .form-embed{
    max-width:900px;
  }
}
.form-sec__lead .privacy-note{
  display:block;margin-top:2rem;font-size:inherit;color:inherit;line-height:inherit;
}
.form-sec__lead .privacy-link{
  color:#1942b7;text-decoration:underline;
}
.form-sec form{
  background:#fff;padding:5rem 4rem;box-sizing:border-box;
}

.form-field{margin-bottom:4rem;}
.form-field label.f-label,
.form-field .f-label{
  display:block;font-size:2.6rem;font-weight:600;margin-bottom:1.4rem;
  font-family:"Noto Serif JP",serif;color:#2a2f3a;line-height:1.5;
}
.form-field .req{
  color:#d84040;margin-left:.35rem;
  font-size:.85em;vertical-align:super;line-height:1;
}
.form-field input[type=text],
.form-field input[type=email],
.form-field input[type=tel],
.form-field input[type=date],
.form-field textarea{
  width:100%;font-size:2.6rem;font-family:inherit;
  border:1px solid #c8ced8;border-radius:0;background:#fff;
  padding:1.8rem 2rem;color:var(--ink);box-sizing:border-box;
}
.form-field input:focus,.form-field textarea:focus{
  outline:none;border-color:#1942b7;box-shadow:none;
}
.form-field textarea{min-height:22rem;resize:vertical;}
.choice-group{display:flex;flex-direction:column;gap:1.4rem;margin-top:.4rem;}
.choice{
  display:flex;align-items:center;gap:1.6rem;background:transparent;
  border:none;border-radius:0;padding:0;
  font-size:2.5rem;cursor:pointer;color:#2a2f3a;
}
.choice input{width:2.6rem;height:2.6rem;accent-color:#1942b7;flex-shrink:0;}
.btn--submit{
  width:100%;max-width:52rem;margin:5rem auto 0;
  background:var(--orange);font-size:3.2rem;border:none;cursor:pointer;
  font-family:inherit;
}
.btn--submit::after{
  background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23ec6b32' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round' d='M9 5l7 7-7 7'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:center center;
  background-size:1.55rem 1.55rem;
}
.btn--submit::before{content:none;display:none;}

/* ---------- フッターCTA ---------- */
.footer-note{
  background:var(--navy-deep);color:#fff;text-align:center;
  font-size:2.3rem;padding:3rem;
}

/* ================================================
   SPデザイン修正（SPカンプ準拠）
   ================================================ */
/* ヒーロー */
.hero__staff{padding:0 5.6vw;}
.hero__staff img{height:auto;aspect-ratio:666/453;border-radius:0;}
.hero__band{
  position:relative;background:var(--navy);
  margin:3rem 3.6rem 0;padding:3.4rem 2rem;
}
.hero__band .hero__sub{background:none;margin:0;padding:0;display:block;}
.hero__band-circle{
  position:absolute;top:50%;transform:translateY(-50%);
  width:20rem;height:20rem;border-radius:50%;object-fit:cover;
}
.hero__band-circle--l{left:-6rem;}
.hero__band-circle--r{right:-6rem;}
.hero__band .hero__sub{position:relative;z-index:1;padding:0 10rem;}
.badges{padding:3rem 4.5rem 0;gap:1.5rem;}
.badge{background:#fff;border-width:.15rem;border-color:#8d9cc9;border-radius:.6rem;min-height:15rem;}

/* worries: 画像右断ち落とし・白フレームなし */
.worries{background:#fff;}
.worries__img--bleed{margin:0 -4rem 4rem 10rem;}
.worries__img--bleed img{border-radius:0;height:auto;aspect-ratio:610/427;}
.worries__panel-bg{background:#f5f6fa;}
.worries .checklist,.worries .worries__msgs,.worries .worries__note{position:relative;}
.worries .inner{position:relative;}
.worries .inner::after{
  content:"";position:absolute;left:-4rem;right:-4rem;top:52rem;bottom:-9rem;
  background:#f5f6fa;z-index:-1;
}
.worries{position:relative;z-index:0;overflow:visible;}

/* futureカード: 画像は白箱に入れず全幅フラット */
.future .card{box-shadow:0 .4rem 1.8rem rgba(28,61,143,.08);}
.future .card__img img{height:auto;aspect-ratio:666/392;}

/* Charmカード: デザイン準拠（柄背景・ラベル内側・画像インセット） */
.charm{
  background-color:#eaf0f6 !important;
  background-image:url("../img/charm-back.png") !important;
  background-repeat:repeat !important;
  background-size:192rem auto !important;
  overflow:visible !important;
}
.charm .inner{overflow:visible !important;}
.charm .card{
  position:relative !important;
  background:#fff !important;
  border-radius:0 0 10rem 0 !important; /* 右下だけ丸く */
  overflow:visible !important;
  padding:4rem 4rem 6rem 4rem !important;
  box-shadow:0 1.2rem 2.8rem rgba(20,50,110,.10) !important;
}
/* Charmラベル：画像素材を白箱上端から少しはみ出し */
.charm .card__label{
  position:absolute !important;
  left:2.8rem !important; /* 少し右へ */
  top:-1.6rem !important; /* 白箱の上へ少しはみ出し */
  width:2.2rem !important;
  height:auto !important;
  padding:0 !important;
  margin:0 !important;
  writing-mode:horizontal-tb !important;
  letter-spacing:normal !important;
  color:transparent !important;
  font-size:0 !important;
  line-height:0 !important;
  z-index:3 !important;
  pointer-events:none !important;
}
.charm .card__label::before,
.charm .card__label::after{
  content:none !important;
  display:none !important;
}
/* 画像：角丸なし・ラベル分だけ少し小さく */
.charm .card__img{
  padding:0 !important;
  margin:0 0 0 1.6rem !important;
  width:calc(100% - 1.6rem) !important;
}
.charm .card__img img{
  width:100% !important;
  height:auto !important;
  aspect-ratio:539/321 !important;
  object-fit:cover !important;
  border-radius:0 !important;
}
.charm .card__body{
  padding:2.8rem 0 0 !important;
}

/* CTA: デザイン準拠（背景・cta-img・ボタン高さ統一・矢印中央） */
.cta-band{
  background:#1942b7 url("../img/cta-back.png") center top / cover no-repeat !important;
  padding:10rem 3rem 8rem !important;
  overflow:visible !important;
}
.cta-card{
  border-radius:0 0 8rem 0 !important; /* 右下だけ大きく丸く */
  overflow:visible !important;
  box-shadow:0 1.2rem 3.2rem rgba(0,0,0,.18) !important;
  padding:0 3.4rem 5rem !important;
}
.cta-card__main{
  display:block !important;
  width:calc(100% + 6.8rem) !important; /* 左右padding分を相殺して端まで */
  max-width:none !important;
  margin:0 -3.4rem 3.2rem !important;
  height:auto !important;
  image-rendering:auto !important;
}
.cta-card__sp{display:none;}
/* 旧構成の写真・テキスト・バッジは非表示（cta-imgに統合） */
.cta-card__photos,
.cta-card > h2,
.cta-card__lead,
.cta-card__sub,
.cta-card .badges{
  display:none !important;
}
/* ボタン高さ統一 */
.cta-card .btns{
  display:flex !important;
  flex-direction:column !important;
  gap:1.6rem !important;
}
.cta-card .btn{
  min-height:7.6rem !important;
  height:7.6rem !important;
  padding:0 5.5rem 0 2.4rem !important;
  box-sizing:border-box !important;
  border-radius:999px !important;
}
.cta-card .btn::after{
  right:2.4rem !important;
  width:3.6rem !important;
  height:3.6rem !important;
  margin-top:-1.8rem !important;
  transform:none !important;
  font-size:0 !important;
  padding:0 !important;
  background-repeat:no-repeat !important;
  background-position:center center !important;
  background-size:1.55rem 1.55rem !important;
}
.cta-card .btn::before{
  content:none !important;
  display:none !important;
}
.cta-card .btn--tel{
  flex-direction:column !important;
  gap:.2rem !important;
  padding:0 5.5rem 0 2.4rem !important;
  line-height:1.25 !important;
}

/* 仕事内容: 白背景 + 全幅ストリップ写真 */
.job{background:#fff;color:var(--ink);padding-top:0 !important;}
.job .sec-title{color:var(--ink);}
.job__strip{margin-bottom:4rem;}
.job__strip img{width:100%;height:auto;aspect-ratio:657/363;object-fit:cover;}
.job__white{border-radius:0;padding-top:2em !important;overflow:visible !important;}
.job-box{background:#f6f6f6;position:relative !important;overflow:visible !important;border-radius:0 !important;}
/* 全job-box見出し：左外からはみ出す細い横線「ー」 */
.job-box h3{
  display:block !important;
  position:relative !important;
  border-left:none !important;
  padding-left:0 !important;
  color:#19254a !important;
}
.job-box h3::before{
  content:"" !important;
  position:absolute !important;
  left:calc(-3.4rem - 3.2rem) !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  width:calc(3.4rem + 3.2rem - 1.2rem) !important;
  height:1px !important;
  background:#1942b7 !important;
  display:block !important;
  z-index:2 !important;
  pointer-events:none !important;
}
.job-box--diagram::before,
.job-box--diagram::after{
  content:none !important;
  display:none !important;
}
.job-box--diagram .lbl{
  color:#1942b7 !important;
  font-weight:700 !important;
}

/* 座談会: 写真＋白箱テキスト＋CTA同型ボタン */
.zadankai{padding:13rem 0 !important;}
.zadankai .photo-card img{
  border-radius:0 !important;height:auto !important;aspect-ratio:auto !important;
  margin:0 !important;width:100% !important;max-width:none !important;
  object-fit:unset !important;object-position:center top !important;
}
.zadankai .photo-card__caption{
  background:#fff !important;box-shadow:none !important;filter:none !important;
  border-radius:0 !important;position:absolute !important;left:50% !important;bottom:0 !important;
  transform:translateX(-50%) !important;margin:0 !important;padding:3.4rem 3rem !important;
  width:calc(100% - 6rem) !important;max-width:74rem !important;text-align:center !important;
}
.zadankai .photo-card__caption h3{text-align:center !important;font-size:2.6rem !important;color:#1942b7 !important;}
.btn--more{
  border-color:var(--navy) !important;color:var(--navy) !important;
  min-height:0 !important;height:auto !important;
  padding:1.8rem 5rem 1.8rem 2.4rem !important;border-radius:999px !important;
  box-sizing:border-box !important;width:100% !important;max-width:36rem !important;
  font-size:2.4rem !important;font-weight:700 !important;
}
.btn--more::after{
  background-color:var(--navy);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round' d='M9 5l7 7-7 7'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:center center;
  background-size:1.3rem 1.3rem;
  right:1.8rem !important;width:3rem !important;height:3rem !important;margin-top:-1.5rem !important;
}

/* 社長メッセージ */
.president{
  background:#fff !important;
  position:relative !important;
  overflow:hidden !important;
}
.president .inner{position:relative;z-index:1;}
.president .sec-title{text-align:left !important;color:#19254a !important;}
.president__imgs{position:relative;margin-bottom:4rem;}
.president__imgs .main{
  width:100% !important;max-width:56rem !important;height:auto !important;
  aspect-ratio:auto !important;border-radius:0 !important;object-fit:unset !important;
  position:relative;z-index:2;display:block;margin:0 auto;
}
.president__imgs--sp{display:none;}
.president__imgs .sub{display:none !important;}
.president .konogazou{
  display:block !important;position:absolute !important;
  right:-10% !important;bottom:-20% !important;
  width:min(100%, 70rem) !important;height:auto !important;
  z-index:0 !important;pointer-events:none !important;
}
.president h3{margin-top:4rem;color:#1942b7 !important;}
.president p{color:#19254a;}
.president .btn--more{
  margin-top:4rem !important;margin-left:0 !important;margin-right:auto !important;
  background:#fff !important;max-width:36rem !important;
}

/* 評価基準: 淡ブルーカード */
.eval{background:#fff;}
.eval-card{background:#eef1f9;}

/* 福利厚生 */
.benefits{
  /* タイトル文字の半分で白→青みグレーに切替 */
  background:linear-gradient(180deg,#fff 0,#fff 14rem,#eef1f9 14rem) !important;
}
.benefits__title{
  color:#19254a !important;
  background:none !important;
}
.benefits__lead{
  font-family:"Noto Serif JP",serif !important;color:#19254a !important;
}
@media (max-width:750.9px){
  .benefits{
    /* SP: section余白12rem + 見出し26px・行間1.5の半分(19.5px) */
    background:linear-gradient(180deg,#fff 0,#fff calc(12rem + 19.5px),#eef1f9 calc(12rem + 19.5px)) !important;
  }
}
@media (min-width:751px){
  .benefits{
    /* PC: padding 13rem + 見出し半分（約3.6rem×1.5/2） */
    background:linear-gradient(180deg,#fff 0,#fff 15.7rem,#eef1f9 15.7rem) !important;
  }
}
.benefit-card{
  background:#fff !important;
  border-radius:0rem 0rem 0rem 6rem !important;
}
.benefit-card .card__label{
  margin:0 0 1.6rem !important;line-height:0 !important;
  background:none !important;padding:0 !important;font-size:0 !important;
}
.benefit-card .card__label img{
  display:block !important;width:16.5rem !important;height:auto !important; /* 11remの3/2 */
}
.benefit-card h3{color:#19254a !important;line-height:1.5 !important;}
.benefit-card .note{font-family:"Noto Serif JP",serif !important;line-height:1.5 !important;}
.benefit-card li{line-height:1.5 !important;margin-bottom:.4rem !important;}
.benefits__lead{line-height:1.5 !important;}
.benefit-card__img{
  padding:2.4rem !important;box-sizing:border-box !important;
  display:block !important;
}
.benefit-card__img img{
  border-radius:0 !important;width:100% !important;height:auto !important;
  aspect-ratio:430/320 !important;object-fit:cover !important;object-position:center !important;
  max-height:none !important;
}
@media (max-width:750.9px){
  .benefit-card__img{
    padding:4rem !important;
  }
  .benefit-card__body{
    padding:0 3.4rem 10rem !important;
  }
  .benefit-card h3{
    font-size:18px !important;
    color:#1942b7 !important;
  }
}
@media (min-width:751px){
  .benefit-card__img{
    padding:0 !important;
    position:relative !important;align-self:stretch !important;
  }
  .benefit-card__img img{
    position:absolute !important;
    top:2.4rem !important;right:2.4rem !important;bottom:2.4rem !important;left:0 !important;
    width:calc(100% - 2.4rem) !important;height:calc(100% - 4.8rem) !important;
    max-width:none !important;aspect-ratio:auto !important;
    object-fit:cover !important;object-position:center !important;
  }
}

/* ギャラリー: 左1枚タテ + 右2枚のマソンリー */
.gallery{background:#fff;}
.gallery__grid{grid-auto-flow:dense;}
.gallery__grid img{height:auto;aspect-ratio:331/239;}
.gallery__grid img.wide{grid-column:1;grid-row:span 2;height:100%;aspect-ratio:329/495;object-fit:cover;}

/* ================================================
   PC実装（min-width:900px / PCカンプ準拠）
   ================================================ */
@media (min-width:751px){
  html{font-size:10px;}
  body{font-size:1.6rem;}
  .wrap{max-width:none;}
  .inner{max-width:1140px;margin:0 auto;padding:0 4rem;}
  section{padding:13rem 0;}
  /* 「こんな未来」タイトル上の余白＝半分 */
  .future{
    padding-top:6.5rem !important;
  }
  .sec-title{font-size:3.6rem;margin-bottom:6rem;}
  .en-label{font-size:5rem;}

  .top-bar{font-size:1.8rem;padding:1.4rem;}
  /* br制御は後続のPC帯スタイルに任せる */
  /* ヒーロー */
  .hero{padding-bottom:6rem;}
  .hero__staff{padding:0;max-width:1100px;margin:0 auto;}
  .hero__staff img{aspect-ratio:auto;height:38rem;object-fit:cover;object-position:center 20%;}
  .hero__lead{font-size:2.4rem;}
  .hero__title{font-size:6.4rem;}
  .hero__title br{display:none;}
  .hero__title small{font-size:4.4rem;}
  .hero__band{max-width:820px;margin:3rem auto 0;padding:2rem;}
  .hero__band .hero__sub{font-size:2.2rem;padding:0 12rem;}
  .hero__band .hero__sub br{display:none;}
  .hero__band-circle{width:17rem;height:17rem;}
  .hero__band-circle--l{left:-8rem;}
  .hero__band-circle--r{right:-8rem;}
  .badges{max-width:1100px;margin:0 auto;grid-template-columns:repeat(6,1fr);padding-top:4rem;}
  .badge{font-size:1.5rem;min-height:10rem;}
  .badge small{font-size:1.2rem;}

  /* worries: 2カラム(テキスト左・写真右) */
  .worries .inner{display:grid;grid-template-columns:1fr 38rem;column-gap:6rem;align-items:start;}
  .worries .en-label,.worries .sec-title{grid-column:1;}
  .worries .sec-title{text-align:left;font-size:3.4rem;}
  .worries__img--bleed{grid-column:2;grid-row:1/4;margin:0;}
  .worries__img--bleed img{aspect-ratio:384/492;object-fit:cover;}
  .worries .checklist{grid-column:1;}
  .checklist li{font-size:1.8rem;padding:1.4rem 0 1.4rem 4.4rem;}
  .checklist li::before{width:2.8rem;height:2.8rem;font-size:2rem;line-height:2.6rem;top:1.3rem;}
  .worries__msgs,.worries__note{grid-column:1/3;}
  .worries__msgs{flex-direction:column;align-items:center;}
  .worries__msgs p{font-size:2rem;padding:1.6rem 5rem;}
  .worries__note{font-size:1.7rem;}
  .worries .inner::after{top:40rem;left:0;right:0;}

  /* こんな未来: flex揃えは使わず、後段の重ねレイアウトを優先 */
  .future .card{display:block !important;align-items:initial !important;box-shadow:none !important;}
  .future .card:nth-child(odd){flex-direction:initial !important;}
  .future .card__img{flex:none !important;}
  .future .card__img img{height:auto !important;aspect-ratio:397/300 !important;object-fit:cover;}
  .future .card__body{flex:none !important;display:block !important;flex-direction:initial !important;justify-content:normal !important;}
  .future h3{font-size:2.6rem;}
  .future p{font-size:1.7rem;}
  .future__next{font-size:2rem;}

  /* features: 円写真を右/左交互 */
  .feature{display:grid;grid-template-columns:1fr 30rem;column-gap:5rem;padding:5.5rem 5rem;}
  .feature:nth-of-type(even){grid-template-columns:30rem 1fr;}
  .feature:nth-of-type(even) .feature__img{grid-column:1;grid-row:1/9;}
  .feature:nth-of-type(even) > *:not(.feature__img){grid-column:2;}
  .feature__img{grid-column:2;grid-row:1/9;width:30rem;height:30rem;margin:0;}
  .feature h3{font-size:2.6rem;}
  .feature p{font-size:1.7rem;}
  .feature__tag{font-size:1.5rem;}

  /* charm: 2カラムカードグリッド */
  .charm .inner{display:grid;grid-template-columns:1fr 1fr;gap:5rem 4rem;}
  .charm .sec-title{grid-column:1/3;}
  .charm .card{margin-bottom:0;}
  .charm .card__label{width:2.2rem !important;top:-1.8rem !important;left:3rem !important;font-size:0 !important;}
  .charm .card__img{margin:0 0 0 1.6rem !important;padding:0 !important;width:calc(100% - 1.6rem) !important;}
  .charm h3{font-size:2.6rem;}
  .charm p{font-size:1.6rem;}

  /* CTA */
  .cta-band{
    padding:12rem 4rem 10rem !important;
  }
  .cta-card{
    max-width:960px;
    margin:0 auto;
    padding:0 7rem 5.5rem;
    border-radius:0 0 9rem 0 !important;
  }
  .cta-card__main{
    width:calc(100% + 14rem) !important;
    margin:0 -7rem 3.6rem !important;
  }
  .cta-card .btns{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:2rem 2.4rem !important;
  }
  .cta-card .btn{
    font-size:2rem;
    min-height:7.2rem !important;
    height:7.2rem !important;
    padding:0 5.5rem 0 2.4rem !important;
  }
  .cta-card .btn::after{
    width:3.6rem !important;
    height:3.6rem !important;
    right:2.4rem !important;
    margin-top:-1.8rem !important;
    background-position:center center !important;
    background-size:1.5rem 1.5rem !important;
  }
  .cta-card .btn::before{
    content:none !important;
    display:none !important;
  }
  .cta-card .btn--tel .tel-num{font-size:2.6rem;}
  .cta-card .btn--tel .tel-note{font-size:1.4rem;}
  .cta-card__foot{font-size:1.7rem;}

  /* 仕事内容: 左40%タイトル / 右60%画像（右端にくっつけて全幅） */
  section.job{padding-top:0 !important;}
  .job__intro{
    display:flex !important;
    align-items:center !important;
    gap:0 !important;
    width:100% !important;
    max-width:none !important;
    margin:0 0 6rem !important;
    padding:0 !important;
  }
  .job__intro .sec-title{
    flex:0 0 40% !important;
    width:40% !important;
    box-sizing:border-box !important;
    margin:0 !important;
    padding:0 2rem 0 6rem !important;
    text-align:center !important;
    white-space:nowrap;
  }
  .job__strip{display:none !important;}
  .job__photos{
    display:block !important;
    flex:0 0 60% !important;
    width:60% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    overflow:visible !important;
  }
  .job__photos-main{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    height:auto !important;
  }
  .job{overflow:visible !important;}
  .job__white{
    border-radius:0 !important;
    max-width:1140px;
    margin:0 auto;
    padding:2em 0 13rem !important; /* 上だけ2em */
    overflow:visible !important;
  }
  .job__catch{font-size:2.8rem;}
  .job__desc{font-size:1.7rem;max-width:820px;margin:0 auto;}
  .job-box{max-width:940px;margin:6rem auto 0;padding:5rem 6rem;overflow:visible !important;border-radius:0 !important;}
  .job-box h3{font-size:2.4rem;}
  .job-box h3::before{
    left:calc(-6rem - 4rem) !important;
    width:calc(6rem + 4rem - 1.4rem) !important;
    height:1px !important;
    background:#1942b7 !important;
  }
  .job-box p{font-size:1.7rem;}
  .job-box--diagram{
    display:grid !important;
    grid-template-columns:40% 60% !important;
    column-gap:3.6rem !important;
    align-items:center !important;
    margin-top:6rem !important;
  }
  .job-box--diagram::before,
  .job-box--diagram::after{
    content:none !important;
    display:none !important;
  }
  .job-box--diagram h3{
    grid-column:auto !important;
    margin-bottom:2.8rem !important;
    font-size:2.4rem !important;
    padding-left:0 !important;
    color:#19254a !important;
  }
  .job-box--diagram .job-box__img{margin:0 !important;}
  .job-box--diagram .job-box__img img{
    width:100% !important;
    height:auto !important;
    border-radius:0 !important;
  }
  .job-box--diagram .job-box__text p{margin-bottom:2rem !important;}
  .job-box--diagram .job-box__text p:last-child{margin-bottom:0 !important;margin-top:1rem !important;}
  .task{display:flex;gap:4rem;align-items:flex-start;}
  .task__img{flex:0 0 34rem;}
  .task__body{flex:1;min-width:0;}
  .task__img img{height:22rem;margin-bottom:0;}
  .task h4{font-size:2.2rem;}
  .task p,.task .ex{font-size:1.6rem;}
  .timeline::before{left:5.4rem;}
  .timeline li{padding-left:14rem;}
  .timeline .time{width:10.8rem;font-size:1.7rem;}
  .timeline h4{font-size:2rem;}
  .timeline p{font-size:1.6rem;}
  .step h4{font-size:2.2rem;}
  .step p{font-size:1.6rem;}
  .step__tag{font-size:1.5rem;}
  .step__img{max-width:44rem;}
  .values-box{max-width:940px;margin:6rem auto 0 !important;padding:5rem 6rem;border-radius:0 !important;overflow:visible !important;}
  .values-box h3{font-size:2.4rem;color:#19254a !important;}
  .values-box h3::before{
    left:calc(-6rem - 4rem) !important;
    width:calc(6rem + 4rem - 1.4rem) !important;
    height:1px !important;
    background:#1942b7 !important;
  }
  .values-box h4{font-size:2.2rem;}
  .values-box p{font-size:1.7rem;}
  .values-box img{max-width:70rem;margin:0 auto 3rem;border-radius:0 !important;}

  /* インタビュー: 写真右・見出し左 */
  .int-card{padding:6rem;}
  .int-card__head{display:grid;grid-template-columns:4fr 4fr;column-gap:5rem;align-items:end;margin-bottom: 3em;}
  .int-card__photo{margin-bottom:0;grid-column:2;grid-row:1/3;}
  .int-card h3{font-size:2.6rem;}
  .int-card .name{font-size:1.6rem;}
  .qa__q{font-size:1.9rem;}
  .qa__q .q,.qa__a .a{font-size:2.4rem;}
  .qa__a p{font-size:1.7rem;}

  /* 座談会・社長 */
  .zadankai{padding:13rem 0 !important;}
  .zadankai .photo-card{max-width:90rem;}
  .zadankai .photo-card img{margin:0;width:100%;max-width:none;display:block;border-radius:0;height:auto;object-fit:unset;}
  .zadankai .photo-card__caption{max-width:74rem;margin:0;bottom:0;left:50%;transform:translateX(-50%);text-align:center;padding:4rem 5rem;box-shadow:none;}
  .zadankai .photo-card__caption h3{text-align:center;font-size:2.6rem;color:#1942b7;}
  .zadankai p{font-size:1.7rem;}
  .btn--more{
    width:100%;max-width:36rem;font-size:2.4rem;
    min-height:0;height:auto;padding:1.8rem 5rem 1.8rem 2.4rem;
  }
  .president .inner{
    display:grid;grid-template-columns:1fr 42rem;column-gap:6rem;
    align-items:center;
  }
  .president__body{grid-column:1;}
  .president .sec-title{
    text-align:left !important;
    margin:0 0 3rem;font-size:3.6rem;color:#19254a;
  }
  .president h3{margin-top:0;font-size:2.4rem;color:#1942b7;}
  .president p{font-size:1.7rem;line-height:2;}
  .president .btn--more{
    width:100%;max-width:36rem;font-size:2.4rem;
    min-height:0;height:auto;padding:1.8rem 5rem 1.8rem 2.4rem;margin:4rem 0 0;
  }
  .president__imgs{
    grid-column:2;margin-bottom:0;align-self:center;
  }
  .president__imgs .main{width:100% !important;max-width:none !important;}
  .president .konogazou{
    right:-18% !important;bottom:-8% !important;width:115% !important;
  }

  /* 評価基準: 2カラム */
  .eval .inner > div.eval-wrap{
    display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:stretch;
  }
  .eval-card{margin-bottom:0;height:100%;box-sizing:border-box;}
  .eval__lead{max-width:760px;margin:0 auto 6rem;}
  .eval__lead .catch{font-size:2.4rem;}
  .eval__lead p{font-size:1.6rem;}
  .eval-item p{font-size:1.7rem;}
  .eval-item .tag{font-size:1.5rem;}
  .eval-card__head img{width:100%;height:auto;}

  /* 福利厚生: 写真右のヨコ型カード */
  .benefits__title{margin-bottom:4rem;}
  .benefits__lead{font-size:2.4rem;margin:-1rem 0 7rem;line-height:1.5;}
  .benefit-card{
    display:flex;flex-direction:row-reverse;align-items:stretch;
    border-radius:0rem 0rem 0rem 6rem !important;
  }
  .benefit-card__img{
    flex:0 0 42rem;padding:0 !important;
    box-sizing:border-box;position:relative;align-self:stretch;
    min-height:28rem;
  }
  .benefit-card__img img{
    position:absolute;top:2.4rem;right:2.4rem;bottom:2.4rem;left:0;
    width:calc(100% - 2.4rem);height:calc(100% - 4.8rem);
    aspect-ratio:auto;object-fit:cover;object-position:center;
    border-radius:0;display:block;
  }
  .benefit-card__body{flex:1;padding:6rem 5rem;}
  .benefit-card .card__label img{width:10rem !important;}
  .benefit-card h3{font-size:2.4rem;color:#19254a;line-height:1.5;}
  .benefit-card li,.benefit-card .note{font-size:1.7rem;line-height:1.5;}

  /* ギャラリー: 3カラム */
  .gallery__grid{grid-template-columns:repeat(3,1fr);}
  .gallery__grid img{aspect-ratio:4/3;}
  .gallery__grid img.wide{grid-row:span 2;aspect-ratio:auto;}
  .gallery__grid img.wide-h{grid-column:span 2;aspect-ratio:calc(4/3*2)/1;}

  /* テーブル・フォーム */
  .info-table{max-width:940px;margin:0 auto;}
  .info-table th,.info-table td{font-size:1.7rem;padding:2.4rem 3rem;}
  .info-table th{width:18%;}
  .company .info-table{border-spacing:0 1.2rem;}
  .company .info-table th,.company .info-table td{
    font-size:1.7rem;padding:2rem 3.2rem;border:none;
  }
  .company .info-table tr:nth-child(odd) th,
  .company .info-table tr:nth-child(odd) td{background:#f5f7fc;}
  .company .info-table tr:nth-child(even) th,
  .company .info-table tr:nth-child(even) td{background:#f0f0f2;}
  .company .info-table th{width:22%;color:#1942b7;}
  .requirements .job-title{max-width:none;margin:-1rem auto 5rem;font-size:2.4rem;}
  .requirements .job-title br{display:none;}
  .requirements .req-panel{padding:5.5rem 6rem;}
  .requirements .info-table th{font-size:1.8rem;margin-bottom:1.2rem;}
  .requirements .info-table td{font-size:1.7rem;padding-bottom:3.6rem;margin-bottom:3.6rem;line-height:1.9;}
  .form-sec form{max-width:760px;margin:0 auto;padding:5.5rem 6rem;}
  .form-sec__lead{font-size:1.7rem;}
  .form-sec__lead .privacy-note{font-size:1.7rem;}
  .form-field{margin-bottom:3.6rem;}
  .form-field label.f-label,.form-field .f-label{
    font-size:1.8rem;font-family:"Noto Serif JP",serif;color:#2a2f3a;margin-bottom:1.2rem;
  }
  .form-field input[type=text],.form-field input[type=email],.form-field input[type=tel],.form-field textarea{
    font-size:1.7rem;padding:1.5rem 1.8rem;border:1px solid #c8ced8;border-radius:0;
  }
  .choice{font-size:1.7rem;padding:0;border:none;}
  .choice input{width:2rem;height:2rem;}
  .btn--submit{font-size:2.2rem;}
  .footer-note{font-size:1.5rem;}
}

/* FV見出し: グラデ文字+強調線 (カンプ完全再現) */
.hero__title{font-family:"Shippori Mincho B1","Noto Serif JP",serif;font-weight:800;line-height:1.18;}
.hero__title .grad{
  background:linear-gradient(180deg,#3f74d9 0%,#1c50c0 38%,#123a9e 72%,#0e2f86 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-size:7.6rem;letter-spacing:-.02em;
}
.hero__title .ga{
  background:linear-gradient(180deg,#3f74d9,#0e2f86);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-size:5.4rem;
}
.hero__title .desu{color:#1a2b56;font-size:4.6rem;letter-spacing:.02em;}
.hero__title .accent{
  width:5.4rem;height:auto;vertical-align:super;margin:0 -.6rem 0 -1.4rem;
  transform:translateY(-2.2rem);
}
@media (min-width:751px){
  .hero__title .grad{font-size:8.2rem;}
  .hero__title .ga{font-size:5.8rem;}
  .hero__title .desu{font-size:5rem;}
  .hero__title .sp-br{display:none;}
  .hero__title .accent{width:5.8rem;transform:translateY(-2.6rem);}
}

/* PSDレイヤー効果の再現(実測値ベース) */
/* リード文: 光彩(外側) 白76% サイズ21px チョーク18% → 多層text-shadowで再現 */
.hero__lead{
  text-shadow:
    0 0 .4rem rgba(255,255,255,.76),
    0 0 .9rem rgba(255,255,255,.76),
    0 0 2.1rem rgba(255,255,255,.60);
}
/* タイトル: ベベルとエンボス(ハイライト白39%/シャドウ32%/角度90°)
   → drop-shadowで上端ハイライト+下端シャドウのリムを近似 */
.hero__title .grad,.hero__title .ga{
  filter:
    drop-shadow(0 -0.12rem 0 rgba(255,255,255,.39))
    drop-shadow(0 0.14rem 0.05rem rgba(10,5,20,.32));
}

/* フォントの使い分け: 本文=筑紫ゴシックPro / 見出し明朝=筑紫明朝Pr6 / 英字ラベル=Lato */
:root{
  --font-gothic:"fot-tsukugo-pro","FOT-筑紫ゴシック Pro","Noto Sans JP",sans-serif;
  --font-mincho:"fot-tsukumin-pr6","FOT-筑紫明朝 Pr6","Noto Serif JP",serif;
  --font-en:"Lato","Noto Sans JP",sans-serif;
}
body{font-family:var(--font-gothic);}
.serif,.sec-title,.hero__title,.future h3,.feature h3,.charm h3,.charm .card__label,
.cta-card h2,.job__catch,.job-box h3,.task h4,.timeline h4,.step h4,.values-box h3,
.int-card h3,.zadankai h3,.president h3,.eval__lead .catch,.benefit-card h3,
.top-bar{font-family:var(--font-mincho);}
.en-label,.card__num{font-family:var(--font-en);font-weight:700;}

/* ---- FV: 書き出し画像版 ---- */
.hero{
  background:url("../img/sp-back-fv_02.png") center top / 100% auto no-repeat #fff;
  padding-bottom:4rem;
}
.hero__fv--pc{display:none;}
.hero__fv-sp{display:block;padding:0 0 2rem;}
.hero__fv-sp-main{margin:0;padding:0;}
.hero__fv-sp-main img{
  width:100%;height:auto;display:block;margin:0;
}
.hero__fv-sp-badges{
  display:block;width:92%;max-width:658px;height:auto;
  margin:1.6rem auto 0;
}
/* 旧FV構成の無効化 */
.hero__staff,.hero__body,.hero__band,.hero .badges{display:none;}

/* ---- お悩み: 支給画像+checkアイコン ---- */
.worries__img--bleed img{border-radius:0;}
.checklist li::before{
  content:"";border:none;background:url("../img/check.png") center/contain no-repeat;
  width:3.4rem;height:3.4rem;line-height:normal;
}
@media (min-width:751px){
  .checklist li::before{width:2.5rem;height:2.5rem;}
  .hero{
    background:url("../img/fv-back_02.png") center top / cover no-repeat, linear-gradient(180deg,#eef4fb,#fff);
    padding-bottom:0;
  }
  .hero__fv--pc{display:block;padding:0 4rem;}
  .hero__fv--pc img{width:100%;max-width:1338px;height:auto;margin:0 auto;display:block;}
  .hero__fv-sp{display:none;}
}

/* ==== 修正: 上部帯 / worries (PSD実測値) ==== */
/* 帯: PC=2行・font25px(実測) */
@media (min-width:751px){
  .top-bar{font-size:2.5rem;line-height:1.4;padding:1.7rem 3rem;}
  .top-bar br{display:inline;}
}
/* worriesラベル: Lato 74px 薄色ウォーターマーク、見出し右上に重なる(実測 x+447,y-125相当) */
.worries .inner{position:relative;}
.worries .en-label{
  position:absolute;z-index:0;pointer-events:none;
  color:#f3f6fa;font-size:7.4rem;letter-spacing:.02em;line-height:1;
}
.worries .sec-title{position:relative;z-index:1;}
@media (min-width:751px){
  .worries .en-label{left:39%;top:-3.4rem;font-size:7.4rem;}
}
@media (max-width:750.9px){
  .worries .en-label{left:auto;right:0;top:-1rem;font-size:8.6rem;color:#f4f7fb;}
}
/* 灰パネル: コンテンツ左端〜画面右端まで(実測 長方形10: x408→右端, 見出し直下から) */
.worries .inner::after{
  content:"";position:absolute;z-index:-1;background:#f2f3f7;
  left:0;right:calc(-1 * ((100vw - 100%) / 2) - 4rem);
  top:11rem;bottom:-6rem;
}
@media (min-width:751px){
  .worries .inner::after{top:10rem;bottom:-4rem;left:0;}
  .worries{overflow:hidden;}
}
@media (max-width:750.9px){
  .worries .inner::after{left:-4rem;top:46rem;}
}

/* ==== 実測反映: 帯の混植 / worries見出し ==== */
.top-bar{font-weight:700;color:#fff;}
.top-bar p{margin:0;}
.top-bar .tb-y{color:#ffec6a;font-weight:800;font-size:1.2em;}
.top-bar .tb-m{font-size:1.12em;}
/* SP帯: 3行（白 / 黄 / 白） */
.top-bar__pc{display:none;}
.top-bar__sp{display:block;}
.top-bar{
  background:var(--navy);padding:2.6rem 2.2rem;font-size:2.5rem;line-height:1.55;
}
.top-bar__sp .tb-line2{
  display:inline-block;color:#ffec6a;font-weight:800;font-size:3.2rem;line-height:1.45;margin:.35rem 0;
}
.top-bar__sp .tb-line3{font-size:2.9rem;}
@media (min-width:751px){
  .top-bar__pc{display:block;}
  .top-bar__sp{display:none;}
  .top-bar{background:var(--navy-deep);font-size:2.5rem;line-height:1.5;padding:1.7rem 3rem;}
  .top-bar .tb-y{font-size:3rem;}
  .top-bar .tb-m{font-size:2.8rem;}
}
.worries__title{color:#19254a;font-weight:700;line-height:1.55;}
.worries__title .wt-s{font-size:.82em;}
@media (min-width:751px){
  .worries__title{font-size:4.02rem;}
  .worries__title .wt-s{font-size:3.28rem;}
}

/* ==== worries: 明朝化・余白・ラベル画像 ==== */
.checklist li{font-family:var(--font-mincho);font-weight:700;color:#19254a;}
.worries__msgs p{font-family:var(--font-mincho);}
/* 見出し下に白余白(グレーパネル開始を下げる) */
.worries__title{margin-bottom:6rem;}
@media (min-width:751px){
  .worries__title{margin-bottom:5rem;}
  .worries .inner::after{top:16rem;}
}
@media (max-width:750.9px){
  .worries .inner::after{top:54rem;}
}
.en-label--img{width:25.3rem;height:auto;}
@media (min-width:751px){ .en-label--img{width:26.7rem;} }

/* ==== 実測反映: worries余白バランス / メッセージピル ==== */
@media (min-width:751px){
  .worries__title{margin-bottom:6.5rem;} /* 白27px+グレー38px */
  .worries .inner::after{top:14rem;}     /* 見出し下27pxでパネル開始 */
  .checklist li{font-size:2.42rem;}
}
/* ピル: 角丸なし・中央寄せ可変幅・明朝28.5px・間隔11px */
.worries__msgs{gap:1.1rem;align-items:center;}
.worries__msgs p{
  border-radius:0;width:fit-content;margin:0 auto;
  box-shadow:0 .2rem .8rem rgba(28,61,143,.06);
  font-weight:700;color:#19254a;
}
@media (min-width:751px){
  .worries__msgs p{font-size:2.85rem;padding:1.3rem 4.2rem;line-height:1;}
}

/* ==== ピル2色 / 1行化 / チェックアイコン整列 ==== */
.worries__msgs p .blue{color:#1942b7;}
.sp-only{display:inline;}
.pc-only{display:none;}
@media (min-width:751px){
  .sp-only{display:none;}
  .pc-only{display:inline;}
}
/* アイコンとテキストのベースライン整列 */
.checklist li{display:flex;align-items:center;padding-left:0;gap:2rem;}
.checklist li::before{position:static;flex-shrink:0;top:auto;}

/* ==== FV下の間隔 / futureセクション背景(光フレア) ==== */
.worries{padding-top:13rem;}
@media (min-width:751px){ .worries{padding-top:15rem;} }
/* future: 左右に水色の光入りフレア画像(PSD: レンズフィルター513) */
.future{
  position:relative;overflow:hidden;background:#fff;
}
.future::before,.future::after{
  content:"";position:absolute;width:91.4rem;height:189.5rem;
  background-repeat:no-repeat;background-size:contain;
  pointer-events:none;z-index:0;
}
.future::before{background-image:url("../img/flare_l.png");left:-7.7rem;top:0;}
.future::after{background-image:url("../img/flare_r.png");right:-10.7rem;top:-6rem;}
.future .inner{position:relative;z-index:1;}
@media (max-width:750.9px){
  .future::before{left:-20rem;top:8rem;transform:scale(.8);transform-origin:left top;}
  .future::after{right:-24rem;top:-4rem;transform:scale(.8);transform-origin:right top;}
}

/* ==== future: 実測再現(写真が白箱に重なるレイアウト) ==== */
.future__title{color:#19254a;}
.future__title .ft-s{font-size:.82em;}
@media (min-width:751px){ .future__title{font-size:4.42rem;} }
@media (min-width:751px){
  .future .card{
    display:block;position:relative;background:none;box-shadow:none;border-radius:0;
    max-width:102.9rem;margin:0 auto 4.8rem;min-height:32.7rem;overflow:visible;
  }
  .future .card__img{position:absolute;left:0;top:0;width:38.6%;flex:none;}
  .future .card__img img{width:100%;height:auto;aspect-ratio:397/300;object-fit:cover;}
  .future .card__body{
    display:block;margin-left:34.3%;width:65.7%;margin-top:14rem;
    background:#fff;border-radius:0 0 6rem 0;
    padding:5.5rem 4.3rem 5.2rem;position:relative;min-height:auto;
  }
  .future h3{font-size:2.9rem;color:#1942b7;line-height:1.6;margin-bottom:2.4rem;}
  .future p{font-size:2rem;color:#19254a;line-height:1.6;}
  /* 反転行(future2) */
  .future .card:nth-of-type(2){}
  .future .card:nth-of-type(2) .card__img{left:auto;right:0;}
  .future .card:nth-of-type(2) .card__body{margin-left:0;margin-right:34.3%;border-radius:0 0 0 6rem;}
  .future-label{
    position:absolute;top:0;right:0;z-index:2;
    font-family:var(--font-en);font-weight:700;font-size:5rem;line-height:1;
    color:rgba(25,66,183,.08);letter-spacing:.04em;padding:.4rem .2rem 0 0;
  }
  .future .card:nth-of-type(2) .future-label{right:auto;left:34.6%;}
}
@media (max-width:750.9px){
  .future .card{position:relative;}
  .future-label{
    position:absolute;top:1rem;right:1.5rem;z-index:2;
    font-family:var(--font-en);font-weight:700;font-size:5rem;line-height:1;
    color:rgba(255,255,255,.55);
  }
}

/* ==== future: 重なり順(テキスト箱が写真の上)+ラベル画像 ==== */
@media (min-width:751px){
  .future .card__img{z-index:1;}
  .future .card__body{position:relative;z-index:2;box-shadow:0 .6rem 2.6rem rgba(28,61,143,.07);}
  .future-label{
    position:absolute;top:1.2rem;right:1rem;z-index:3;
    width:17rem;height:auto;padding:0;
  }
  .future .card:nth-of-type(2) .future-label{right:auto;left:35.5%;}
}
@media (max-width:750.9px){
  .future-label{width:14.9rem;height:auto;top:1.2rem;right:1.5rem;} /* 今の1/3 */
}

/* ==== future: 白箱を画像より下にずらす（添付デザイン準拠） ==== */
@media (min-width:751px){
  .future .card{
    display:block !important;
    /* 画像下にはみ出す白箱分の余白 */
    padding-bottom:8rem !important;
    min-height:auto !important;
    overflow:visible !important;
  }
  .future .card__img{
    top:0 !important;
    z-index:1;
  }
  .future .card__img img{
    border-radius:0 !important;
  }
  .future .card:nth-of-type(2) .card__img img{
    border-radius:0 !important;
  }
  .future .card__body{
    display:block !important;
    justify-content:normal !important;
    /* 白い箱を画像より下へ：上端を下げて、下端が画像下より出るようにする */
    margin-top:14rem !important;
    min-height:auto !important;
    padding:5.5rem 4.3rem 5.2rem !important;
    box-shadow:0 .8rem 2.8rem rgba(28,61,143,.10) !important;
  }
  .future .card{
    padding-bottom:10rem !important; /* はみ出した箱の分 */
  }
  .future .card:nth-of-type(2) .future-label{left:auto !important;right:35.3% !important;}
}

/* ==== ブラケット見出し「山田製作所ってどんな会社？」添付準拠 ==== */
.sec-title--bracket{
  position:relative;
  display:table;
  margin:0 auto 6rem;
  padding:2.2rem 3.6rem;
  color:#19254a !important;
  font-family:"Noto Serif JP",serif !important;
  font-weight:700 !important;
  letter-spacing:.04em;
}
.sec-title--bracket::before,
.sec-title--bracket::after{
  content:"";
  position:absolute;
  width:3.2rem;
  height:3.2rem;
  border:0.55rem solid #1942b7; /* 文字より鮮やかな青 */
}
.sec-title--bracket::before{
  top:-0.2rem;left:-0.2rem;
  border-right:none;border-bottom:none;
}
.sec-title--bracket::after{
  bottom:-0.2rem;right:-0.2rem;
  border-left:none;border-top:none;
}
@media (min-width:751px){
  .sec-title--bracket{
    font-size:3.6rem !important;
    padding:2.6rem 4.2rem;
  }
  .sec-title--bracket::before,
  .sec-title--bracket::after{
    width:3.6rem;
    height:3.6rem;
    border-width:0.6rem;
  }
}

/* ==== どんな会社：デザイン準拠（白箱幅・左右交互・円のはみ出し） ==== */
.features{
  background:linear-gradient(180deg,#fff 0,#fff 8.5rem,var(--gray-bg) 8.5rem) !important;
  padding-top:5rem !important;
  overflow:visible !important;
}
.features .inner{overflow:visible !important;}
.features .sec-title--bracket{
  margin:0 auto 13rem !important;
}
.features .feature{
  position:relative !important;
  display:block !important;
  overflow:visible !important;
  background:#fff !important;
  margin-bottom:2.5rem !important;
  line-height:1.6 !important;
  box-shadow:0 .4rem 2rem rgba(28,61,143,.06);
}
.features .feature:last-child{margin-bottom:0 !important;}
.features .feature__tag{
  display:inline-block !important;
  width:auto !important;
  max-width:max-content !important;
  background:#1942b7 !important;
  color:#fff !important;
  font-size:1.35rem !important;
  font-weight:700 !important;
  letter-spacing:.04em !important;
  line-height:1.2 !important;
  padding:.35rem 1.1rem !important;
  margin:0 0 2rem !important;
  border-radius:0 !important;
}
.features .feature h3,
.features .feature p{
  line-height:1.6 !important;
}
/* 黄色強調：上下余白のある黄背景＋青文字（添付準拠） */
.features .feature .hl{
  display:inline !important;
  background:#ffed7d !important;
  background-image:none !important;
  color:#1942b7 !important;
  font-weight:700 !important;
  padding:.35em .4em !important;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}
@media (min-width:751px){
  .features{
    /* タイトル文字の半分がグレー背景にかかる位置 */
    background:linear-gradient(180deg,#fff 0,#fff 10.3rem,var(--gray-bg) 10.3rem) !important;
    padding-top:5rem !important;
  }
  /* Feature1,3: 白箱85%・左寄せ、円は全体100%の右端に合わせる */
  .features .feature{
    display:block !important;
    grid-template-columns:none !important;
    width:85% !important;
    margin-left:0 !important;
    margin-right:auto !important;
    margin-bottom:12rem !important;
    padding:5rem 24rem 5rem 5.5rem !important;
    border-radius:0 0 0 8rem !important; /* 左下丸 */
    background:#fff !important;
    overflow:visible !important;
  }
  /* 円の上への飛び出し分は、タイトル余白を崩さず最初のカード側で確保 */
  .features .feature:nth-of-type(1){
    margin-top:8rem !important;
  }
  .features .feature__img{
    position:absolute !important;
    top:-7rem !important;
    /* 白箱85%なので、残り15%分だけ外へ出して全体幅の端に合わせる */
    right:calc(100% * -15 / 85) !important;
    left:auto !important;
    width:34rem !important;
    height:34rem !important;
    margin:0 !important;
    border-radius:50% !important;
    overflow:hidden !important;
    grid-column:auto !important;
    grid-row:auto !important;
    z-index:2 !important;
    background:transparent !important;
  }
  .features .feature__img img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
  }
  /* Feature2,4: 左右反転（白箱右寄せ・円は全体100%の左端） */
  .features .feature:nth-of-type(even){
    margin-left:auto !important;
    margin-right:0 !important;
    padding:5rem 5.5rem 5rem 24rem !important;
    border-radius:0 0 8rem 0 !important; /* 右下丸 */
  }
  .features .feature:nth-of-type(even) .feature__img{
    right:auto !important;
    left:calc(100% * -15 / 85) !important;
  }
  .features .feature__tag{
    font-size:1.4rem !important;
    padding:.4rem 1.2rem !important;
  }
  .features .feature h3{
    font-size:2.6rem !important;
    line-height:1.6 !important;
    color:#1942b7 !important;
    margin-bottom:2.2rem !important;
  }
  .features .feature p{
    font-size:1.7rem !important;
    line-height:1.6 !important;
    color:#19254a !important;
    margin-bottom:1.6rem !important;
  }
}
@media (max-width:750.9px){
  /* タイトル〜各項目の間隔を今の2倍 */
  .features .sec-title--bracket{
    margin-bottom:26rem !important; /* 13remの2倍 */
  }
  .features .feature{
    position:relative !important;
    width:100% !important;
    border-radius:0 0 0 7rem !important;
    padding:7rem 3.4rem !important;
    /* 丸は白箱の約63.75%（85%の3/4）。下半分＋余白で文字と被らない */
    padding-top:calc(85% * 0.375 + 3rem) !important;
    overflow:visible !important;
    margin-top:calc(85% * 0.375) !important;
    /* 各項目の間隔：白い箱と次の丸画像のあいだを空ける */
    margin-bottom:26rem !important;
  }
  .features .feature:last-child{
    margin-bottom:0 !important;
  }
  .features .feature:first-of-type{
    margin-top:calc(85% * 0.375) !important;
  }
  .features .feature__img{
    position:absolute !important;
    top:0 !important;
    left:50% !important;
    right:auto !important;
    transform:translate(-50%, -50%) !important;
    width:calc(85% * 3 / 4) !important; /* 今の3/4 */
    height:auto !important;
    aspect-ratio:1 !important;
    margin:0 !important;
    z-index:2 !important;
  }
  .features .feature__tag,
  .features .feature h3,
  .features .feature p{
    position:relative !important;
    z-index:1 !important;
  }
  /* Feature1〜4ラベルを今の2倍 */
  .features .feature__tag{
    font-size:2.7rem !important;
    padding:.7rem 2.2rem !important;
  }
  /* h3の改行はSPでは出さない */
  .features .feature h3 br{display:none !important;}
}

/* ===== extracted block separator ===== */

@media (min-width:751px){
  section.future .inner > .card{
    display:block !important;
    position:relative !important;
    overflow:visible !important;
    min-height:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    /* ずらした箱のぶんの高さ確保＋カード間（今の半分） */
    padding-bottom:7rem !important;
    margin-bottom:3rem !important;
  }
  section.future .inner > .card:last-child{
    margin-bottom:0 !important;
  }
  section.future .inner > .card > .card__img{
    position:absolute !important;
    top:0 !important;
    left:0 !important;
    width:38.6% !important;
    z-index:1 !important;
    margin:0 !important;
  }
  section.future .inner > .card:nth-of-type(2) > .card__img{
    left:auto !important;
    right:0 !important;
  }
  section.future .inner > .card > .card__img img{
    width:100% !important;
    height:auto !important;
    aspect-ratio:397 / 300 !important;
    display:block !important;
    border-radius:0 !important;
  }
  section.future .inner > .card:nth-of-type(2) > .card__img img{
    border-radius:0 !important;
  }
  section.future .inner > .card > .card__body{
    position:relative !important;
    z-index:2 !important;
    display:block !important;
    width:65.7% !important;
    margin:0 0 0 34.3% !important;
    top:4rem !important;
    background:#fff !important;
    border-radius:0 0 6rem 0 !important;
    box-shadow:0 .8rem 2.8rem rgba(28,61,143,.12) !important;
    padding:6.75rem 6.75rem 7.5rem !important;
    line-height:1.6 !important;
  }
  section.future .inner > .card > .card__body h3,
  section.future .inner > .card > .card__body p{
    line-height:1.6 !important;
  }
  section.future .inner > .card:nth-of-type(2) > .card__body{
    margin:0 34.3% 0 0 !important;
    border-radius:0 0 0 6rem !important;
  }
  section.future .inner > .card:nth-of-type(3) > .card__body{
    margin:0 0 0 34.3% !important;
    border-radius:0 0 6rem 0 !important;
  }
  /* futureラベルは白箱の右上内側 */
  section.future .inner > .card > .card__body > .future-label{
    position:absolute !important;
    top:1.6rem !important;
    right:2rem !important;
    left:auto !important;
    width:11rem !important; /* ラベル幅を短く（青文字の見た目の長さ調整） */
    height:auto !important;
    z-index:3 !important;
    margin:0 !important;
    padding:0 !important;
    pointer-events:none !important;
    mix-blend-mode:multiply;
    opacity:.35;
  }
}
@media (max-width:750.9px){
  section.future .inner > .card > .card__body > .future-label,
  .future .card__body > .future-label,
  .future-label{
    position:absolute !important;
    top:1.2rem !important;
    right:1.5rem !important;
    left:auto !important;
    width:14.9rem !important; /* 今の1/3 */
    max-width:none !important;
    height:auto !important;
    z-index:3 !important;
  }
  /* h3内の改行はSPでは出さない */
  .future h3 br{display:none !important;}
}

/* ==== SP future調整（PCは変更しない） ==== */
@media (max-width:750.9px){
  .future .card{
    background:transparent !important;
    box-shadow:none !important;
    border-radius:0 !important;
    overflow:visible !important;
  }
  .future .card__img img{
    width:100% !important;
    height:auto !important;
    aspect-ratio:auto !important;
    object-fit:contain !important;
    display:block !important;
    border-radius:0 !important;
  }
  .future .card__body,
  section.future .inner > .card > .card__body{
    position:relative !important;
    top:0 !important;
    margin:0 !important;
    background:#fff !important;
    box-shadow:0 .4rem 1.6rem rgba(28,61,143,.08) !important;
    border-radius:0 0 6rem 0 !important; /* 右下丸 */
    padding:3.2rem 3rem 8rem !important;
    width:100% !important;
  }
  .future h3{
    font-size:20px !important;
    font-weight:700 !important;
    color:#1942b7;
    line-height:1.6;
  }
  .future h3 br{display:none !important;}
  .future .card__body > .future-label,
  section.future .inner > .card > .card__body > .future-label{
    width:14.9rem !important; /* 今の1/3 */
    max-width:none !important;
  }
  .future p{
    color:#19254a !important;
  }
}

/* ==== SP共通: セクション余白 / h3 20px ==== */
@media (max-width:750.9px){
  section{padding:12rem 0;}
  /* 「こんな未来」タイトル上の余白＝半分 */
  .future{
    padding-top:6rem !important;
  }
  .future h3,
  .features .feature h3,
  .feature h3,
  .charm h3,
  .job__catch,
  .zadankai h3,
  .zadankai .photo-card__caption h3,
  .eval__lead .catch{
    font-size:20px !important;
    font-weight:700 !important;
  }
  .charm .card{
    margin-bottom:8rem !important;
  }
  .charm .card:last-child{
    margin-bottom:0 !important;
  }
}

/* ==== SP CTA: 青背景＋白箱（PC寄り）＋支給画像 ==== */
@media (max-width:750.9px){
  .cta-band{
    background:#1942b7 url("../img/cta-back.png") center top / cover no-repeat !important;
    padding:8rem 3rem 8rem !important; /* 上部の青を見せる */
  }
  .cta-card{
    background:#fff !important;
    box-shadow:0 1.2rem 3.2rem rgba(0,0,0,.18) !important;
    padding:0 3rem 5rem !important;
    overflow:visible !important;
  }
  .cta-card__main--pc,
  .cta-card__main{
    display:none !important;
  }
  .cta-card__sp{
    display:block !important;
    margin:0 0 3.2rem !important;
  }
  .cta-card__sp-text{
    display:block !important;
    width:100vw !important;
    max-width:100vw !important;
    height:auto !important;
    margin-left:calc(50% - 50vw) !important; /* 画面幅100%に広げる */
    margin-right:calc(50% - 50vw) !important;
    margin-top:0 !important;
    margin-bottom:2rem !important;
  }
  .cta-card__sp-icon{
    display:block !important;
    width:100% !important;
    height:auto !important;
    margin:0 auto 1.6rem !important;
  }
  .cta-card__foot{
    color:#4a5162 !important;
  }
  /* ボタン高さ：今の2倍／文字17px */
  .cta-card .btn{
    min-height:15.2rem !important;
    height:15.2rem !important;
    font-size:17px !important;
  }
  .cta-card .btn::after{
    top:50% !important;
    right:4.8rem !important; /* 端から少し中央へ */
    width:4.4rem !important;
    height:4.4rem !important;
    margin-top:0 !important;
    transform:translateY(-50%) !important;
    background-position:center center !important;
    background-size:1.8rem 1.8rem !important;
  }
  .cta-card .btn--tel .tel-num{font-size:17px !important;}
  .cta-card .btn--tel .tel-note{font-size:13px !important;}
}

/* ==== SP 仕事内容 ==== */
@media (max-width:750.9px){
  .job__intro{
    display:flex !important;
    flex-direction:column !important;
  }
  .job__strip{display:none !important;}
  .job__photos{
    display:block !important;
    order:-1 !important; /* タイトルより上に */
    width:100% !important;
    margin:0 0 8rem !important; /* タイトル上余白：今の2倍 */
    padding-left:6rem !important; /* 左余白：今の2倍 */
    box-sizing:border-box !important;
  }
  .job__photos-main{
    display:block !important;
    width:100% !important;
    height:auto !important;
    border-radius:4rem 0 0 0 !important; /* 左上丸 */
  }
  .job__intro .sec-title{
    order:0 !important;
    text-align:center !important;
    margin-bottom:calc(8rem / 3) !important; /* 下余白：今の1/3 */
  }
  .job__catch{
    font-size:20px !important;
    font-weight:700 !important;
    color:#1942b7 !important;
    text-align:center !important;
    line-height:1.6 !important;
  }
  .job__desc{
    text-align:justify !important;
    text-align-last:left !important;
    text-justify:inter-ideograph !important;
    color:#19254a !important;
  }
  .job__white{
    padding-bottom:15rem !important;
  }
  .job-box h3{
    font-size:18px !important;
  }
  .task{
    margin-bottom:8rem !important;
  }
  .task:last-child{
    margin-bottom:0 !important;
  }
  .values-box{
    padding:7rem 3.4rem !important;
  }
  .job-box{
    padding:7rem 3.4rem !important;
  }
  /* STEPを上、その下に 入社〜｜／先輩〜 */
  .step__head{
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:1.2rem !important;
  }
  .step__tag{
    margin-top:0 !important;
  }
}

/* ==== SP 座談会 ==== */
@media (max-width:750.9px){
  .zadankai{
    padding:13rem 0 !important;
  }
  .zadankai .photo-card{
    display:flex !important;
    flex-direction:column !important; /* 画像の上、h3はその下 */
    position:relative !important;
  }
  .zadankai .photo-card img{
    order:0 !important;
    margin:0 0 3rem !important;
  }
  .zadankai .photo-card__caption{
    position:static !important;
    left:auto !important;
    bottom:auto !important;
    transform:none !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }
  .zadankai .photo-card__caption h3,
  .zadankai h3{
    font-size:20px !important;
    font-weight:700 !important;
    line-height:1.6 !important;
  }
  /* ボタンはCTAと同じ高さ・幅・文字サイズ */
  .zadankai .btn--more{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:100% !important;
    max-width:none !important;
    min-height:15.2rem !important;
    height:15.2rem !important;
    font-size:17px !important;
    margin:4rem auto 0 !important;
    padding:0 5.5rem 0 2.4rem !important;
    box-sizing:border-box !important;
    border-radius:999px !important;
  }
  .zadankai .btn--more::after{
    top:50% !important;
    right:4.8rem !important; /* 端から少し中央へ */
    width:4.4rem !important;
    height:4.4rem !important;
    margin-top:0 !important;
    transform:translateY(-50%) !important;
    background-position:center center !important;
    background-size:1.8rem 1.8rem !important;
  }
}

/* ==== SP 社員インタビュー ==== */
@media (max-width:750.9px){
  .int-card__head{
    display:flex !important;
    flex-direction:column !important;
  }
  .int-card__photo{
    order:-1 !important; /* 画像を上に */
    margin-bottom:2.4rem !important;
  }
  .int-card h3{
    order:0 !important;
    font-size:18px !important;
    font-weight:700 !important;
    line-height:1.6 !important;
    margin-bottom:1.6rem !important;
  }
  .int-card .name{
    order:1 !important;
  }
}

/* ==== SP 社長メッセージ ==== */
@media (max-width:750.9px){
  .president{
    background:linear-gradient(180deg,#e4e8f6 0%,#f3f5fb 45%,#fff 100%) !important;
    overflow:visible !important;
  }
  .president .inner{
    display:flex !important;
    flex-direction:column !important;
  }
  /* bodyの中身をinner直下の並びに展開して並べ替え */
  .president__body{
    display:contents !important;
  }
  .president .sec-title{
    order:0 !important;
    text-align:center !important;
  }
  .president__imgs{
    order:1 !important;
    position:relative !important;
    margin:2rem 0 4rem !important;
  }
  .president__imgs--pc,
  .president .konogazou{
    display:none !important;
  }
  .president__imgs--sp{
    display:block !important;
    position:relative !important;
    z-index:1 !important;
    width:100% !important;
    max-width:62.2rem !important;
    height:auto !important;
    margin:0 auto !important;
  }
  .president h3{
    order:2 !important;
    font-size:20px !important;
    font-weight:700 !important;
    text-align:center !important;
    color:#1942b7 !important;
    margin:0 0 3rem !important;
    line-height:1.6 !important;
  }
  .president p{
    order:3 !important;
    text-align:left !important;
    color:#19254a !important;
  }
  .president .btn--more{
    order:4 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:100% !important;
    max-width:none !important;
    min-height:15.2rem !important;
    height:15.2rem !important;
    font-size:17px !important;
    margin:4rem auto 0 !important;
    padding:0 5.5rem 0 2.4rem !important;
    border-radius:999px !important;
  }
  .president .btn--more::after{
    top:50% !important;
    right:4.8rem !important;
    width:4.4rem !important;
    height:4.4rem !important;
    margin-top:0 !important;
    transform:translateY(-50%) !important;
    background-size:1.8rem 1.8rem !important;
  }
}

/* ==== SP worries調整 ==== */
@media (max-width:750.9px){
  .worries .sec-title,
  .worries__title{
    text-align:center;
  }
  /* 青みグレー背景を上・下方向へ伸ばす */
  .worries .inner::after{top:44rem;bottom:-21.3rem;} /* 下方向を4/3に */
  /* 画像: 右端ピッタリ・少し横に広げ・左上丸 */
  .worries__img--bleed{
    width:88%;
    max-width:88%;
    margin:0 -4rem 4rem auto;
  }
  .worries__img--bleed img{
    width:100%;
    border-radius:8rem 0 0 0;
  }
  .checklist li{font-size:3.3rem;}
  .worries__msgs{align-items:flex-start;}
  .worries__msgs p{
    margin-left:0;margin-right:auto;text-align:left;
    font-size:3.3rem;padding:2rem 2.4rem;line-height:1.5;
  }
  /* 注記: 左揃え＋均等・それでもの上で改行余白 */
  .worries__note{
    text-align:left;text-align-last:left;
    text-justify:inter-ideograph;
  }
  .worries__note p{
    text-align:justify;text-justify:inter-ideograph;
  }
  .worries__note-last{margin-top:3.2rem;}
}
@media (min-width:751px){
  .worries__note-last{margin-top:2.4rem;}
}

/* ==== SP見出し: 以降すべて26px ==== */
@media (max-width:750.9px){
  .sec-title,
  .worries__title,
  .future__title,
  .benefits__title{
    font-size:26px;
    margin-bottom:8rem;
  }
}

/* ==== SP本文: p を15pxに統一 ==== */
@media (max-width:750.9px){
  p,
  .worries__note,
  .worries__note p,
  .future p,
  .feature p,
  .charm p,
  .job__desc,
  .job-box p,
  .task p,
  .task .ex,
  .timeline p,
  .step p,
  .values-box p,
  .qa__a p,
  .zadankai p,
  .president p,
  .eval__lead p,
  .eval-item p,
  .benefit-card li,
  .benefit-card .note,
  .cta-card__sub,
  .cta-card__foot,
  .form-sec__lead,
  .form-sec__lead .privacy-note,
  .info-table th,
  .info-table td,
  .requirements .info-table td,
  .footer-note{
    font-size:15px;
  }
  .requirements .info-table th,
  .requirements .info-table td{
    font-size:16px !important;
  }
  .requirements .job-title{
    font-size:20px !important;
  }
  .form-sec__lead{
    text-align:left !important;
  }
  /* 強調メッセージなど、本文より大きいpは例外で維持 */
  .worries__msgs p{font-size:3.3rem;}
  .cta-card__lead{font-size:2.8rem;}
  .future__next{font-size:2.9rem;}
}
