html, body{ margin:0; padding:0; }
*{ box-sizing:border-box; }

main{
  padding-inline: clamp(14px, 4vw, 28px);
  box-sizing: border-box;
}


/* SPメニュー：デフォ非表示 */
.gNavSP{
  display: none;
}

/* 980px以下：ハンバーガー用メニューを出す */
@media (max-width: 980px){
  .gNavSP{
    display: block;
    position: fixed;
    top: 0; left: 0;
    width: 100%;
    height: 100svh;
    padding: 90px 18px 24px; /* ヘッダー高さ分だけ下げる（必要に応じて調整） */
    background: rgba(255,255,255,.98);
    transform: translateY(-8px);
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s ease, transform .2s ease;
    z-index: 9998; /* ヘッダーより1つ下 */
  }

  /* 開いた状態 */
  .gHeader.is-menuOpen + .gNavSP,
  .gHeader.is-menuOpen ~ .gNavSP{
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }

  .gNavSP__list{
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 12px;
  }

  .gNavSP__link{
    display: block;
    padding: 14px 14px;
    border-radius: 12px;
    text-decoration: none;
    color: #111;
    font-weight: 700;
    background: rgba(0,0,0,.04);
  }

  .gNavSP__cta{
    background: #18b24a;
    color: #fff;
  }
}

.gHeader{
  position: fixed;   /* ←重ねるならfixedが安定 */
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
  background: transparent; /* 最初は透明 */
}

/* 中の幅 */
.gHeader__inner{
  width: 100%;
  margin: 0;
  padding: 12px clamp(12px, 3vw, 28px);
}

/* 1段目 */
.gHeader__top{
  display: grid;
  grid-template-columns: auto 1fr auto; /* ロゴ / 検索(伸びる) / ナビ */
  align-items: center;
  gap: 18px;
}

/* ロゴ */
.gHeader__logo{
  display: inline-flex;
  align-items: center;
}
.gHeader__logoImg{
  height: 44px;
  width: auto;
  display: block;
}
@media (max-width: 700px){
  .gHeader__logoImg{ height: 34px; }
}

/* ナビ */
.gNav__list{
  display: flex;
  align-items: center;
  gap: 18px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.gNav__link{
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  font-size: 14px;
  white-space: nowrap;
  opacity: .95;
}
.gNav__link:hover{ opacity: 1; }

.gNav__cta{
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.5);
  background: rgba(255,255,255,.12);
}

/* バーガー（PCは隠す） */
.gHeader__burger{
  display: none;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(255,255,255,.45);
  background: rgba(255,255,255,.12);
  border-radius: 10px;
  cursor: pointer;
}
.gHeader__burger span{
  display: block;
  height: 2px;
  width: 18px;
  margin: 4px auto;
  background: #fff;
  border-radius: 2px;
}

/* 2段目：検索（常に“下”に置く構成） */
.gHeader__search{
  margin-top: 0;
  display: flex;
  justify-content: center;
  gap: 8px;
}

.gHeader__searchInput{
  width: min(520px, 100%);
  height: 40px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.45);
  background: rgba(255,255,255,.18);
  color: #fff;
  outline: none;
}
.gHeader__searchInput::placeholder{
  color: rgba(255,255,255,.8);
}

.gHeader__searchBtn{
  height: 40px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.45);
  background: rgba(255,255,255,.18);
  color: #fff;
  cursor: pointer;
}

/* スクロール後：背景と検索を「黒系（白背景＋黒文字）」に */
.gHeader.is-scrolled{
  background: rgba(255,255,255,.95);
  box-shadow: 0 6px 18px rgba(0,0,0,.08);
  backdrop-filter: blur(8px);
}

.gHeader.is-scrolled .gNav__link{ color:#111; }
.gHeader.is-scrolled .gNav__cta{
  border-color: rgba(0,0,0,.18);
  background: rgba(0,0,0,.03);
}

.gHeader.is-scrolled .gHeader__searchInput,
.gHeader.is-scrolled .gHeader__searchBtn{
  border-color: rgba(0,0,0,.18);
  background: #fff;
  color: #111;
}
.gHeader.is-scrolled .gHeader__searchInput::placeholder{
  color: rgba(0,0,0,.5);
}
.gHeader.is-scrolled .gHeader__burger{
  border-color: rgba(0,0,0,.18);
  background: rgba(0,0,0,.03);
}
.gHeader.is-scrolled .gHeader__burger span{ background:#111; }


/* 通常時のヘッダー */
.gHeader{
  background: transparent;
  transition: background .25s ease;
}

/* ハンバーガーを押してメニューが開いた時（灰色） */
.gHeader.is-menuOpen{
  background: rgba(109, 201, 117, 0.336);  /* 薄いグレー */
}




/* 右側ツール（虫眼鏡＋SP検索＋バーガー） */
.gHeader__tools{
  display: flex;
  align-items: center;
  gap: 10px;
}

/* SP検索はデフォ非表示（幅0） */
 /* 検索フォーム初期状態（非表示・幅0） */
  .gHeader__searchSP{
    width: 0;
    opacity: 0;
    pointer-events: none;
    transition: width .25s ease, opacity .2s ease;
    overflow: hidden;
  }

  .gHeader__searchSPInput{
    width: 100%;
    font-size: 16px;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid #ccc;
  }

  /* ▼ 検索オープン時：ロゴを消して検索を全幅に */
  .gHeader.is-searchOpen .gHeader__logo{
    opacity: 0;
    pointer-events: none;
  }

  .gHeader.is-searchOpen .gHeader__searchSP{
    width: 100%;
    opacity: 1;
    pointer-events: auto;
  }

/* 虫眼鏡ボタン */
.gHeader__searchToggle{
  display: none;                /* PCでは隠す（SPのみ表示） */
  width: 44px;
  height: 44px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.45);
  background: rgba(255,255,255,.12);
  color: #fff;
  cursor: pointer;
}

@media (max-width: 980px){
  .gNav{ display: none; }
  .gHeader__burger{ display: inline-block; }
  .gHeader__search{ display: none; }           /* ←2段目検索はSPでは使わない */
  .gHeader__searchToggle{ display: inline-flex; align-items:center; justify-content:center; }
}

/* クリックで開いた状態（ヘッダーにクラス付く） */
.gHeader.is-searchOpen .gHeader__searchSP{
  width: 100px; /* 0→260に広がる（inputの幅 + 余白分） */
    transform: translateX(-60px);
  transition: transform .25s ease;
}

/* 検索オープン時：虫眼鏡を左へスライド */
.gHeader.is-searchOpen .gHeader__searchToggle{
  transform: translateX(-60px);  /* ← 左へ移動する量。好みで増減OK */
  transition: transform .25s ease;
}

/* スクロール後の色（白背景＋黒文字）にも対応 */
.gHeader.is-scrolled .gHeader__searchToggle{
  border-color: rgba(0,0,0,.18);
  background: rgba(0,0,0,.03);
  color: #111;
}
.gHeader.is-scrolled .gHeader__searchSPInput{
  border-color: rgba(0,0,0,.18);
  background: #fff;
  color: #111;
}
.gHeader.is-scrolled .gHeader__searchSPInput::placeholder{
  color: rgba(0,0,0,.5);
}

@media (max-width: 980px){
  .gHeader__top{
    display: flex;
    align-items: center;
    justify-content: space-between; /* ←これが効く */
    gap: 10px;
    width: 100%;
  }

  /* ロゴが縮みすぎないように */
  .gHeader__logo{
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
  }

  /* 右側ツールは右端へ */
  .gHeader__tools{
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 10px;
  }
}



.heroImg {
  width: 100%;
  margin: 0;
  padding: 0;
}

.heroImg__img {
  width: 100%;
  height: auto;
  display: block;
}

.pc { display: block; }
.sp { display: none; }

@media (max-width: 980px) {
  .pc { display: none; }
  .sp { display: block; }
}





  .svc{
    background:#eaeaea;
    border-radius:32px;
    padding:48px 24px 64px;
    max-width:1200px;
    margin:100px auto 40px auto;
    position:relative;
    font-family: "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  }
  .svc__inner{max-width:980px;margin:0 auto;}
  .svc__ttl{
    text-align:center;
    color:#19a319;
    font-size:40px;
    line-height:1.1;
    margin:0 0 10px;
    font-weight:800;
  }
  .svc__lead{
    text-align:center;
    margin:0 0 34px;
    color:#222;
  }
  .svc__cards{
    display:grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap:34px;
    align-items:stretch;
  }
  .svc__card{
    display:block;
    background:#fff;
    border-radius:26px;
    padding:18px 18px 16px;
    box-shadow: 0 6px 16px rgba(0,0,0,.08);
    text-decoration:none;
    color:#111;
    transition: transform .15s ease, box-shadow .15s ease;
  }
  .svc__card:hover{
    transform: translateY(-2px);
    box-shadow: 0 10px 22px rgba(0,0,0,.12);
  }
  .svc__thumb{
  width: 100%;
  aspect-ratio: 4 / 3;   /* 正方形なら 1 / 1 に変更OK */
  overflow: hidden;
  border-radius: 12px;
  }

.svc__thumb img{
  width: 100%;
  height: 100%;
  object-fit: cover;    /* 写真向き。ロゴなら contain に */
  display: block;
}

  .svc__label{
    text-align:center;
    font-weight:700;
    font-size:16px;
  }
  .svc__more{
    position:absolute;
    right:28px;
    bottom:22px;
    display:inline-flex;
    align-items:center;
    gap:10px;
    text-decoration:none;
    color:#111;
    font-weight:700;
  }
  .svc__moreIcon{
    width:34px;
    height:34px;
    display:inline-grid;
    place-items:center;
    background:#fff;
    border-radius:999px;
    box-shadow: 0 6px 14px rgba(0,0,0,.10);
  }

  @media (max-width: 900px){
    .svc{padding:36px 16px 64px;}
    .svc__cards{grid-template-columns: repeat(2, minmax(0, 1fr)); gap:18px;}
  }
  @media (max-width: 520px){
    .svc__ttl{font-size:32px;}
    .svc__cards{grid-template-columns: 1fr; }
    .svc__more{right:18px; bottom:16px;}
  }



    .phy{
    background:#fff;
    padding: 28px 16px 56px;
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans JP", sans-serif;
    color:#111;
  }
  .phy__inner{
    max-width: 980px;
    margin: 0 auto;
    text-align: center;
  }
  .phy__kicker{
    margin: 0 0 6px;
    color:#222;
    letter-spacing:.02em;
  }
.phy__hero--img{
  margin: 0 auto 26px;
  text-align: center;
}

.phy__hero--img img{
  width: clamp(240px, 70vw, 720px); /* 最小〜可変〜最大 */
  height: auto;
  display: inline-block;
  vertical-align: middle;
}

/* スマホ時：少し小さめ＆余白も詰める */
@media (max-width: 520px){
  .phy__hero--img{ margin-bottom: 18px; }
  .phy__hero--img img{ width: 86vw; }
}

/* 大画面で伸びすぎ防止（任意） */
@media (min-width: 1100px){
  .phy__hero--img img{ width: 700px; }
}

  .phy__hl{
    margin: 44px 0 14px;
    font-size: clamp(18px, 2.2vw, 26px);
    font-weight: 700;
    color:#1aa31a; /* green headline */
    line-height: 1.25;
  }
  .phy__hlBig{
    margin-top: 52px;
    font-size: clamp(20px, 2.4vw, 28px);
  }
  .phy__hlStrong{
    font-weight: 800;
  }

  .phy__body{
    max-width: 760px;
    margin: 0 auto;
  }
  .phy__p{
    margin: 6px 0;
    line-height: 1.6;
    color:#111;
  }

  /* 少しだけ余白を詰めたい場合はここを調整 */
  @media (max-width: 520px){
    .phy__hl{ margin-top: 34px; }
    .phy__p{ font-size: 13px; }
  }




    .award{
    padding: 28px 0;
    background: #fff;
  }

  .award__grid{
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 34px;
    align-items: start;
  }

  .award__item{
    text-align: center;
  }

  .award__ttl{
    margin: 0 0 12px;
    font-size: 14px;
    line-height: 1.35;
    font-weight: 800;
    color: #111;
  }

  .award__ttl span{
    font-weight: 700;
  }

  .award__sub{
    display: inline-block;
    margin-top: 2px;
    font-weight: 800;
  }

  /* 画像が入る枠 */
  .award__media{
    width: 100%;
    height: 180px;              /* 仮の高さ（画像入れたらautoでもOK） */
  display: flex;
  align-items: center;
  justify-content: center;
  }

  .award__media img{
  max-width: 100%;
  max-height: 100%;
  height: auto;
  object-fit: contain;
  display: block;
}

  /* 画面が狭い時は1列 */
  @media (max-width: 900px){
    .award__grid{
      grid-template-columns: 1fr;
      gap: 22px;
      padding: 0 14px; /* 端の余白 */
      box-sizing: border-box;
    }
    .award__media{
      height: 200px;
    }
  }





   .evp{
    max-width: 1200px;
    margin: 0 auto 100px auto;
    font-family: "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    color:#111;
  }
  .evp__ttl{
    text-align:center;
    margin: 8px 0 12px;
    font-size: 26px;
    font-weight: 800;
    color:#444;
  }

  .evp__banner{
    position: relative;
    display:block;
    margin: 0 auto 16px;
    max-width: 1200px;
    text-decoration:none;
    color: inherit;
  }
.evp__bannerImg{
  width: 100%;
  height: auto;
  display: block;
  border-radius: 10px;
  border: 1px solid #e1e1e1;
  box-shadow: 0 10px 18px rgba(0,0,0,.08);
}

  /* head row */
  .evp__head{
    max-width: 1200px;
    margin: 0 auto 12px;
    display:flex;
    align-items:center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px solid #e6e6e6;
    background: #fff;
    box-shadow: 0 8px 18px rgba(0,0,0,.06);
  }
 .evp__headL{
  display: flex;
  align-items: center;
  gap: 10px;
}

.evp__miniImg{
  width: 60px;      /* ここでサイズ調整 */
  height: 60px;
  object-fit: contain;
  display: block;
}

.evp__title{
        font-size: 17px;
    font-weight: bold;
}

  .evp__meta{
    font-size: 15px;
    font-weight: bold;
    color:#333;
    white-space: nowrap;
  }

  /* main grid */
  .evp__grid{
    max-width: 1200px;
    margin: 0 auto;
    display:grid;
    grid-template-columns: 1fr 350px;
    gap: 18px;
    align-items:start;
  }
  .evp__main{
    background:#fff;
    border: 1px solid #e6e6e6;
    border-radius: 10px;
    box-shadow: 0 10px 20px rgba(0,0,0,.08);
    padding: 10px;
  }
.evp__photo{
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #e1e1e1;
  background: #f1f1f1;
}

.evp__photo img{
  width: 100%;
  height: auto;     /* 全体を見せる */
  display: block;
}

  /* side info */
  .evpInfo{
    border: 1px solid #e6e6e6;
    border-radius: 10px;
    overflow:hidden;
    background:#fff;
    box-shadow: 0 10px 20px rgba(0,0,0,.08);
  }
  .evpInfo__hd{
    font-weight: 900;
    font-size: 12px;
    padding: 8px 10px;
    color:#fff;
    background: #d53b3b; /* red */
  }
  .evpInfo__hd--blue{ background:#245bff; }
  .evpInfo__hd--orange{ background:#ff8a00; }
  .evpInfo__hd--green{ background:#16a516; }

  .evpInfo__bd{
    padding: 10px 10px 12px;
    font-size: 12px;
    line-height: 1.6;
    border-bottom: 1px solid #eee;
  }
  .evpInfo__bd:last-child{ border-bottom: none; }

  .evpInfo__bd a{
    color:#1a5cff;
    text-decoration: none;
  }
  .evpInfo__bd a:hover{ text-decoration: underline; }

  .evpInfo__list{
    margin: 0;
    padding-left: 18px;
  }
  .evpInfo__list li{ margin: 6px 0; }

  .evp__staff{
  margin-top: 12px;
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 12px;
  align-items: start;
  padding: 12px;
  border: 1px solid #e6e6e6;
  border-radius: 10px;
  background: #fff;
}

.evp__staffPic{
  margin: 0;
  width: 96px;
}

.evp__staffPic img{
  width: 100%;
  object-fit: cover;
  display: block;
  border-radius: 8px;
  border: 1px solid #eee;
}

.evp__staffBody{
  background: #fff;
}

.evp__staffHd{
  display: inline-block;
  margin: 0 0 8px;
  padding: 4px 10px;
  font-size: 16x;
  color: #fff;
  background: #16a516;
  border-radius: 6px;
}

.evp__staffTxt{
  margin: 0;
  font-size: 14px;
  line-height: 1.75;
  color: #222;
}

  /* responsive */
  @media (max-width: 900px){
    .evp__grid{
      grid-template-columns: 1fr;
    }
    .evp__bannerImg{ height: 150px; }
    .evp__bannerTxt{ right: 12px; bottom: 12px; font-size: 16px; }
    .evp__head{ flex-direction: column; align-items: flex-start; }
    .evp__meta{ white-space: normal; }

      .evp__staff{
    grid-template-columns: 78px 1fr;
    padding: 10px;
  }
  .evp__staffPic{ width: 78px; }
  }




  .csr{
    max-width: 1200px;
    margin: 0 auto;
    font-family: "Noto Sans JP", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    color:#111;
  }

  .csr__ttl{
    margin: 0 0 16px;
    text-align: center;
    font-size: clamp(20px, 2.2vw, 30px);
    font-weight: 900;
    color: #444;
    letter-spacing: .02em;
  }

  .csr__banner{
    position: relative;
    display:block;
    margin: 0 auto 16px;
    max-width: 1200px;
    text-decoration:none;
    color: inherit;
  }
.csr__bannerImg{
  width: 100%;
  height: auto;
  display: block;
  border-radius: 10px;
  border: 1px solid #e1e1e1;
  box-shadow: 0 10px 18px rgba(0,0,0,.08);
}

  /* さらに小さい画面で縦が足りない場合の調整 */
  @media (max-width: 600px){
    .csr__banner{
      aspect-ratio: 16 / 6;
    }
  }

  .kuchikomi-jpg{
    width: 80%;
    margin: 0 auto;
  }

    .kuchikomi-jpg img{
    width: 100%;
  }





.cp{
  padding: 28px 0 40px;
}

.cp__inner{
  width: min(1200px, 100%);
  margin: 0 auto;
  padding: 0 clamp(12px, 3vw, 28px);
  display: grid;
  grid-template-columns: 1fr 440px;
  gap: 28px;
  align-items: start;
}

/* 見出し */
.cp__ttl{
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 12px;
}
.cp__subttl{
  font-size: 20px;
  font-weight: 700;
  margin: 24px 0 10px;
}

/* 会社情報のDL */
.cp__dl{
  margin: 0 0 14px;
}
.cp__row{
  display: grid;
  grid-template-columns: 170px 1fr;
  gap: 10px;
  padding: 6px 0;
}
.cp__row dt{
  font-weight: 600;
  color: #222;
}
.cp__row dd{
  margin: 0;
  color: #222;
  word-break: break-word;
}

/* 注意書き（ピンク枠） */
.cp__note{
  border: 2px solid #cc6bd1;
  background: #ffe9ff;
  padding: 14px 16px;
  margin: 12px 0 18px;
}
.cp__noteHd{
  margin: 0 0 8px;
  font-weight: 700;
}
.cp__noteList{
  margin: 0;
  padding-left: 18px;
  display: grid;
  gap: 6px;
  line-height: 1.5;
}
.cp__em{ color: #d40000; font-weight: 700; }
.cp__link{ color:#0b57d0; text-decoration: underline; }

/* 沿革 */
.cp__history{
  margin: 0;
  display: grid;
  gap: 6px;
}
.cp__hrow{
  display: grid;
  grid-template-columns: 84px 1fr;
  gap: 12px;
  font-size: 14px;
  line-height: 1.5;
}
.cp__hrow dt{ font-weight: 600; color:#222; }
.cp__hrow dd{ margin: 0; color:#222; }

/* 右カラム */
.cp__right{
  display: grid;
  gap: 12px;
}
.cp__fb{
  border: 1px solid #ddd;
  background: #fff;
  padding: 10px;
}

/* CTA */
.cp__cta{
  display: inline-flex;
  justify-content: center;
  align-items: center;
  height: 56px;
  border-radius: 10px;
  background: #18b24a;
  color: #fff;
  font-size: 22px;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 10px 22px rgba(0,0,0,.12);
}
.cp__cta:hover{ filter: brightness(.98); }

/* レスポンシブ */
@media (max-width: 980px){
  .cp__inner{
    grid-template-columns: 1fr;
  }
  .cp__right{
    order: 2;
  }
  .cp__fb iframe{
    width: 100%;
    max-width: 100%;
  }
  .cp__row{
    grid-template-columns: 140px 1fr;
  }
}
@media (max-width: 520px){
  .cp__row{
    grid-template-columns: 1fr;
    gap: 2px;
  }
  .cp__hrow{
    grid-template-columns: 72px 1fr;
  }
}







.banner4{
  max-width: 1000px;
  margin: 50px auto 100px auto;
  padding: 0 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  box-sizing: border-box;
}

.banner4 a{
  width: calc(50% - 6px); /* 2列 */
  display: block;
}

.banner4 img{
  width: 100%;
  height: auto;
  display: block;
}

/* スマホは1列 */
@media (max-width: 700px){
  .banner4 a{
    width: 100%;
  }
}






  .gFooter{
  background:#2f2f2f;
  color:#eee;
  width:100%;
  font-size:13px;
}

.wrap{
  width: min(1500px, 100%);     
  margin: 0 auto;
  padding: 0 clamp(16px, 4vw, 48px);
  box-sizing: border-box;
}

.gFooter__inner{
  display:grid;
  grid-template-columns: 1fr 280px;
  gap:40px;
  padding:40px clamp(16px,4vw,48px);
  box-sizing:border-box;
}

/* 拠点グリッド */
.gFooter__offices{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(220px,1fr));
  gap:28px;
}

.office{
  background:#3a3a3a;
  padding:14px;
  border-radius:6px;
}

.office__ttl{
  margin:0 0 8px;
  font-size:14px;
  font-weight:700;
}

.office__thumb{
  width: 100%;
  overflow: hidden;
  border-radius: 12px;
}

.office__thumb img{
  width: 100%;
  height: 100%;
  object-fit: cover;     /* 建物写真は cover が◎ */
  display: block;
}

.office__txt{
  margin:0 0 6px;
  line-height:1.6;
}

.office__link{
  color:#7ddc7a;
  font-weight:600;
  text-decoration:none;
  font-size:12px;
}

/* 右カラム */
.gFooter__side{
  display:flex;
  flex-direction:column;
  gap:20px;
}

.footerBox{
  background:#3a3a3a;
  padding:14px;
  border-radius:6px;
}

.footerBox h4{
  margin:0 0 6px;
  font-size:14px;
}

.lang{
  list-style:none;
  padding:0;
  margin:0;
}
.lang li{
  margin-bottom:4px;
}

/* 下段コピーライト */
.gFooter__bottom{
  text-align:center;
  padding:14px;
  font-size:12px;
  background:#262626;
  color:#aaa;
}

/* レスポンシブ */
@media (max-width:900px){
  .gFooter__inner{
    grid-template-columns: 1fr;
  }

    /* ▼スマホ時：officeを2列に固定 */
  .gFooter__offices{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px; /* スマホは少し詰める */
  }

  .office{
    padding: 12px;
  }

  .office__ttl{
    font-size: 13px;
  }

  .office__txt{
    font-size: 12px;
  }
}



/* 初めての方へページ */
.gv{
  margin-top: 150px;
  text-align: center;
  padding: 0 16px;
  position: relative;   /* ← 擬似要素用 */
}

/* 追加：上にグリーン→透明のグラデーション帯 */
.gv::before{
  content: "";
  position: absolute;
  left: 0;
  right: 0;

  /* “余白のところ”にかぶせる */
  top: -200px;          /* margin-top分だけ上へ */
  height: 200px;        /* margin-topと同じ */

  /* 緑→透明（上が濃く、下で消える） */
  background: linear-gradient(
    to bottom,
    rgba(10, 175, 10, 0.774) 0%,
    rgba(16, 175, 16, 0.5) 45%,
    rgba(16, 175, 16, 0) 100%
  );

  pointer-events: none;
  z-index: 0;
}

/* 中身をグラデーションより前面に */
.gv > *{
  position: relative;
  z-index: 1;
}

/* clamp(最小, 可変, 最大) で自然に可変 */
.gv__title{
  margin: 0;
  font-weight: 400;
  line-height: 1.15;
  font-size: clamp(28px, 5.2vw, 56px);
  word-break: keep-all;           /* 英文の変な改行を抑える */
}

.gv__subtitle{
  margin-top: clamp(14px, 2.2vw, 28px);
  font-weight: 400;
  line-height: 1.15;
  font-size: clamp(24px, 4.6vw, 48px);
  word-break: keep-all;
}

/* さらに小さい端末向けに余白だけ少し調整 */
@media (max-width: 680px){
    .gv{
    margin-top: 100px;
  }
  .gv::before{
    top: -140px;
    height: 140px;
  }
}


/* CSS：3ボタン（見やすく、今っぽい・でもやりすぎない） */
.gv-actions{
  margin: 48px auto 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  max-width: 980px;
  padding: 0 16px;
}

/* ボタン共通 */
.gv-btn{
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  text-align: center;

  min-height: 92px;
  padding: 18px 16px;

  border: 1px solid rgba(0,0,0,.18);
  border-radius: 14px;
  background: linear-gradient(180deg, #ffffff 0%, #f6f8fb 100%);
  box-shadow: 0 10px 26px rgba(0,0,0,.08);

  color: #0b0f14;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.gv-btn__en{
  font-size: 18px;
  font-weight: 700;
  letter-spacing: .02em;
}

.gv-btn__jp{
  margin-top: 6px;
  font-size: 13px;
  opacity: .75;
  line-height: 1.25;
}

/* hover */
.gv-btn:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 34px rgba(0,0,0,.12);
  border-color: rgba(0,0,0,.28);
}

/* キーボード操作 */
.gv-btn:focus-visible{
  outline: 3px solid rgba(16,175,16,.35);
  outline-offset: 3px;
}

/* 右の「Free Inquiry」だけ、ちょい目立たせる */
.gv-btn--accent{
  border-color: rgba(16,175,16,.45);
  background: linear-gradient(180deg, #f2fff2 0%, #e8f8ea 100%);
}

.gv-btn--accent .gv-btn__en{
  color: #0b6f16;
}

/* レスポンシブ：タブレット→2列、スマホ→1列 */
@media (max-width: 900px){
  .gv-actions{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 520px){
  .gv-actions{
    grid-template-columns: 1fr;
  }
  .gv-btn{
    min-height: 82px;
  }
}



/* ===== Why Choose ===== */
.whyNew{
  padding: 64px 16px;
  max-width: 1100px;
  margin: 0 auto;
}

.whyNew__title{
  margin: 0 0 28px;
  font-size: clamp(22px, 3vw, 34px);
  font-weight: 700;
  letter-spacing: .02em;
}

.whyNew__list{
  display: grid;
  gap: 18px;
}

.whyNew__card{
  position: relative;
  padding: 20px 18px 20px 16px;
  border-radius: 16px;
  background: linear-gradient(180deg, #ffffff 0%, #f6f8fb 100%);
  border: 1px solid rgba(0,0,0,.10);
  box-shadow: 0 14px 34px rgba(0,0,0,.08);
  overflow: hidden;
}

.whyNew__card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:8px;
  background: linear-gradient(180deg, rgba(16,175,16,.95), rgba(16,175,16,.25));
}

.whyNew__card::after{
  content:"";
  position:absolute;
  right:-60px;
  top:-40px;
  width:220px;
  height:160px;
  transform: rotate(14deg);
  background: linear-gradient(180deg, rgba(16,175,16,.12), rgba(16,175,16,0));
  pointer-events:none;
}

.whyNew__main{
  display: grid;
  grid-template-columns: 56px 1fr;
  align-items: center;
  gap: 14px;
}

.whyNew__icon{
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: rgba(16,175,16,.10);
  border: 1px solid rgba(16,175,16,.18);
  font-size: 20px;
  position: relative;
  z-index: 1;
}

.whyNew__text{
  min-width: 0;
  position: relative;
  z-index: 1;
}

.whyNew__hd{
  margin: 0;
  font-size: clamp(16px, 2.2vw, 20px);
  font-weight: 800;
  letter-spacing: .01em;
  line-height: 1.4;
}

.whyNew__desc{
  margin: 6px 0 0;
  font-size: clamp(13px, 1.7vw, 15px);
  line-height: 1.6;
  opacity: .85;
}

.whyNew__tabs{
  display: grid;
  gap: 14px;
  margin-top: 18px;
  padding-left: 70px;
  position: relative;
  z-index: 1;
}

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

.whyNew__tabs--3{
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.whyNew__tab{
  width: 100%;
  min-height: 88px;
  padding: 16px 14px;
  border: 1px solid #cfcfcf;
  border-radius: 16px;
  background: #fff;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.45;
  text-align: center;
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.whyNew__tab:hover{
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0,0,0,.08);
}

.whyNew__tab.is-active{
  border-color: rgba(16,175,16,.55);
  box-shadow: 0 10px 24px rgba(16,175,16,.14);
}

.whyNew__panels{
  margin-top: 16px;
  padding-left: 70px;
  position: relative;
  z-index: 1;
}

.whyNew__panel{
  display: none;
  padding: 18px 20px;
  border-radius: 16px;
  border: 1px solid rgba(0,0,0,.10);
  background: linear-gradient(180deg, #ffffff 0%, #f6f8fb 100%);
  box-shadow: 0 10px 24px rgba(0,0,0,.06);
}

.whyNew__panel.is-active{
  display: block;
}

.whyNew__panelJa{
  font-size: 14px;
  font-weight: 800;
  margin-bottom: 8px;
}

.whyNew__panelEn{
  font-size: 14px;
  line-height: 1.8;
  opacity: .92;
}

@media (max-width: 900px){
  .whyNew__tabs--2,
  .whyNew__tabs--3{
    grid-template-columns: 1fr;
  }

  .whyNew__tabs,
  .whyNew__panels{
    padding-left: 0;
  }

  .whyNew__main{
    grid-template-columns: 44px 1fr;
    align-items: start;
  }
}

@media (max-width: 520px){
  .whyNew{
    padding: 44px 14px;
  }

  .whyNew__card{
    padding: 16px 14px 16px 12px;
  }

  .whyNew__icon{
    width: 38px;
    height: 38px;
    font-size: 18px;
  }

  .whyNew__tab{
    min-height: 72px;
    font-size: 14px;
  }
}



/* CSS：上の3ボタン（タブ） */
/* ===== Why Choose ===== */
.why2{
  max-width: 1100px;
  margin: 0 auto;
  padding: 32px 16px 56px;
}

.why2-title{
  margin: 0 0 18px;
  font-size: clamp(20px, 2.6vw, 30px);
  font-weight: 700;
}

/* ★ここが肝：PCで5個を 3+2 に並べる */
.why2-tabs{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-bottom: 18px;
}

/* 4つ目・5つ目を“下段中央”に配置（3列の真ん中＋右） */
.why2-tab:nth-child(4){ grid-column: 1 / span 1; }
.why2-tab:nth-child(5){ grid-column: 2 / span 1; }
/* 右の余り列(3列目)は空く＝画像のイメージ通り「下に2つ」になる */

/* タブ（ボタン） */
.why2-tab{
  appearance: none;
  border: 1px solid rgba(0,0,0,.18);
  background: linear-gradient(180deg, #ffffff 0%, #f6f8fb 100%);
  border-radius: 16px;
  padding: 18px 16px;
  min-height: 98px;

  font-size: 16px;
  font-weight: 700;
  cursor: pointer;

  box-shadow: 0 10px 26px rgba(0,0,0,.08);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.why2-tab:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 34px rgba(0,0,0,.12);
  border-color: rgba(0,0,0,.28);
}

.why2-tab.is-active{
  border-color: rgba(16,175,16,.55);
  box-shadow: 0 14px 34px rgba(16,175,16,.18);
}

.why2-tab:focus-visible{
  outline: 3px solid rgba(16,175,16,.35);
  outline-offset: 3px;
}

/* 説明エリア：最初は閉じる→開くと“ほわん” */
.why2-panels{
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transform: translateY(6px);
  transition: max-height .32s ease, opacity .22s ease, transform .22s ease;
}

.why2-panels.is-open{
  max-height: 900px; /* 5つ分でも余裕 */
  opacity: 1;
  transform: translateY(0);
}

/* 説明ボックス */
.why2-box{
  display: grid;
  grid-template-columns: 180px 1fr;
  border: 1px solid rgba(0,0,0,.25);
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
}

.why2-jp{
  display: grid;
  place-items: center;
  padding: 18px 12px;
  font-weight: 800;
  background: #f3f4f6;
  border-right: 1px solid rgba(0,0,0,.15);
}

.why2-en{
  padding: 18px 18px;
  line-height: 1.7;
  font-size: 15px;
}

/* タブレット：2列にして見やすく */
@media (max-width: 900px){
  .why2-tabs{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .why2-tab:nth-child(4),
  .why2-tab:nth-child(5){
    grid-column: auto; /* 自動並びに戻す */
  }
  .why2-box{
    grid-template-columns: 1fr;
  }
  .why2-jp{
    border-right: none;
    border-bottom: 1px solid rgba(0,0,0,.15);
  }
}

/* スマホ：1列 */
@media (max-width: 520px){
  .why2-tabs{
    grid-template-columns: 1fr;
  }
  .why2-tab{
    min-height: auto;
  }
}




/* CSS：斜め帯デザイン（画像の雰囲気を再現＋レスポンシブ） */
.exp{
  max-width: 1100px;
  margin: 0 auto;
  padding: 28px 16px 48px;
}

.exp__title{
  margin: 0 0 18px;
  font-size: clamp(18px, 2.4vw, 28px);
  font-weight: 600;
  letter-spacing: .01em;
  display: flex;
  align-items: center;
  gap: 10px;
}

.exp__emoji{
  font-size: 20px;
  line-height: 1;
}

.exp__list{
  display: grid;
  gap: 18px;
}

.exp__item{
  position: relative;
}

/* “斜めの帯”を作る */
.exp__box{
  background: #efefef;
  border: 1px solid rgba(0,0,0,.35);

  /* 斜めにする */
  clip-path: polygon(4% 0, 100% 0, 96% 100%, 0 100%);
  padding: 18px 22px;

  /* 文字を中央に */
  text-align: center;
}

.exp__hd{
  font-size: clamp(16px, 2.2vw, 22px);
  font-weight: 800;
  margin-bottom: 6px;
}

.exp__desc{
  font-size: clamp(13px, 1.8vw, 18px);
  line-height: 1.45;
}

/* PCで帯を少し長く見せたい時 */
@media (min-width: 900px){
  .exp__box{
    padding: 22px 26px;
  }
}

/* スマホ：斜めを弱めて読みやすく */
@media (max-width: 520px){
  .exp__box{
    clip-path: polygon(6% 0, 100% 0, 94% 100%, 0 100%);
    padding: 16px 14px;
  }
  .exp__desc{
    word-break: break-word;
  }
}






/* CSS：画像＋テキストの2カラムを“それっぽく”整える */
.case{
  max-width: 1100px;
  margin: 0 auto;
  padding: 36px 16px 56px;
}

.case__title{
  margin: 0 0 18px;
  font-size: clamp(20px, 2.8vw, 32px);
  font-weight: 800;
  letter-spacing: .01em;
}

/* 2カラム */
.case__grid{
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 26px;
  align-items: start;
}

/* 左：画像カード */
.case__media{
  margin: 0;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.12);
  box-shadow: 0 16px 40px rgba(0,0,0,.10);
  background: #fff;
}

.case__mediaPlaceholder{
  aspect-ratio: 16 / 9;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 25% 30%, rgba(16,175,16,.16), transparent 55%),
    linear-gradient(180deg, #f5f7fb, #eef2f7);
  color: rgba(0,0,0,.55);
  font-weight: 700;
  letter-spacing: .04em;
}

.case__media img{
  width: 100%;
  height: auto;
  display: block;
}

.case__caption{
  padding: 12px 14px;
  font-size: 14px;
  opacity: .8;
  border-top: 1px solid rgba(0,0,0,.08);
}

/* 右：テキストカード風 */
.case__body{
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.12);
  background: linear-gradient(180deg, #ffffff 0%, #f6f8fb 100%);
  box-shadow: 0 16px 40px rgba(0,0,0,.08);
  padding: 18px 18px 16px;
  position: relative;
  overflow: hidden;
}

/* 右上に薄いアクセント */
.case__body::after{
  content:"";
  position:absolute;
  right:-70px;
  top:-60px;
  width: 220px;
  height: 220px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(16,175,16,.18), rgba(16,175,16,0) 70%);
  pointer-events:none;
}

.case__kicker{
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 10px;
  opacity: .85;
}

.case__headline{
  margin: 0 0 10px;
  font-size: 18px;
}

.case__badge{
  display: inline-block;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255, 230, 0, .55);
  border: 1px solid rgba(0,0,0,.08);
  font-weight: 800;
}

/* リスト */
.case__lists{
  display: grid;
  gap: 14px;
  margin: 10px 0 16px;
}

.case__group{
  background: rgba(255,255,255,.7);
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 14px;
  padding: 12px 12px 10px;
}

.case__groupTitle{
  font-weight: 800;
  font-size: 14px;
  margin: 0 0 8px;
  opacity: .85;
}

/* 既存のcase__listを“チェック付き”に上書き */
.case__list{
  list-style: none;
  margin: 0;
  padding: 0;
  line-height: 1.7;
  font-size: 16px;
}

.case__list li{
  position: relative;
  padding-left: 22px;
  margin: 4px 0;
}

.case__list li::before{
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  font-weight: 900;
  color: rgba(16,175,16,.95);
}

/* CTA */
.case__cta{
  display: inline-flex;
  flex-direction: column;
  gap: 4px;

  text-decoration: none;
  color: #0b0f14;

  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(16,175,16,.35);
  background: linear-gradient(180deg, #f2fff2 0%, #e8f8ea 100%);
  box-shadow: 0 10px 26px rgba(16,175,16,.12);

  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.case__cta:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 34px rgba(16,175,16,.20);
  border-color: rgba(16,175,16,.55);
}

.case__ctaSub{
  font-size: 12px;
  opacity: .75;
}

/* レスポンシブ */
@media (max-width: 900px){
  .case__grid{
    grid-template-columns: 1fr;
  }
  .case__body{
    padding: 16px 14px;
  }
}



/* CSS：画像上＋テキスト下の2カラムカード */
.cases2{
  max-width: 1100px;
  margin: 0 auto;
  padding: 28px 16px 56px;
}

.cases2__grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 34px;
  align-items: start;
}

.cases2__card{
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.10);
  background: #fff;
  box-shadow: 0 16px 40px rgba(0,0,0,.08);
}

.cases2__media{
  background: #f2f4f7;
}

.cases2__mediaPlaceholder{
  aspect-ratio: 16 / 9;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 25% 30%, rgba(16,175,16,.14), transparent 55%),
    linear-gradient(180deg, #f5f7fb, #eef2f7);
  color: rgba(0,0,0,.55);
  font-weight: 700;
  letter-spacing: .04em;
}

.cases2__media img{
  width: 100%;
  height: auto;
  display: block;
}

.cases2__body{
  padding: 18px 18px 20px;
}

.cases2__title{
  margin: 0 0 10px;
  font-size: clamp(18px, 2.2vw, 26px);
  font-weight: 800;
}

/* 黄色ハイライト風のバッジ */
.cases2__badge{
  display: inline-block;
  padding: 6px 10px;
  border-radius: 8px;
  font-weight: 800;
  background: rgba(255, 230, 0, .55);
  border: 1px solid rgba(0,0,0,.08);
  margin-bottom: 10px;
}

.cases2__list{
  list-style: none;
  margin: 0;
  padding: 0;
  line-height: 1.75;
  font-size: 16px;
}

.cases2__list li{
  position: relative;
  padding-left: 22px;
  margin: 4px 0;
}

.cases2__list li::before{
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  font-weight: 900;
  color: rgba(16,175,16,.95);
}

.cases2__link{
  display: inline-block;
  margin-top: 14px;
  font-size: 13px;
  color: rgba(0,0,0,.75);
  text-decoration: underline;
  word-break: break-all;
}

.cases2__link:hover{
  color: rgba(0,0,0,.95);
}

.case__subgrid{
  display: grid;
  gap: 12px;
  margin-top: 10px;
}

.case__subgroup{
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.75);
  border-radius: 12px;
  padding: 12px 12px 10px;
}

.case__subTitle{
  font-weight: 800;
  font-size: 13px;
  opacity: .85;
  margin: 0 0 8px;
}

/* レスポンシブ：スマホは1列 */
@media (max-width: 900px){
  .cases2__grid{
    grid-template-columns: 1fr;
    gap: 22px;
  }
}



/* CSS：Pricing セクション */
.price{
  max-width: 1100px;
  margin: 0 auto;
  padding: 40px 16px 56px;
}

.price__head{
  margin-bottom: 18px;
}

.price__title{
  margin: 0;
  font-size: clamp(20px, 2.8vw, 34px);
  font-weight: 800;
  letter-spacing: .01em;
}

.price__lead{
  margin: 10px 0 0;
  opacity: .78;
  line-height: 1.6;
  font-size: 15px;
}

.price__grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: 18px;
}

/* Plan cards */
.plan{
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.10);
  background: linear-gradient(180deg, #ffffff 0%, #f6f8fb 100%);
  box-shadow: 0 16px 40px rgba(0,0,0,.08);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.plan__top{
  padding: 18px 18px 14px;
  border-bottom: 1px solid rgba(0,0,0,.06);
  position: relative;
}

/* 左のアクセントライン */
.plan__top::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width: 8px;
  background: rgba(0,0,0,.12);
}

.plan--bronze .plan__top::before{
  background: linear-gradient(180deg, rgba(205,127,50,.95), rgba(205,127,50,.25));
}
.plan--silver .plan__top::before{
  background: linear-gradient(180deg, rgba(160,160,160,.95), rgba(160,160,160,.25));
}
.plan--gold .plan__top::before{
  background: linear-gradient(180deg, rgba(234,179,8,.95), rgba(234,179,8,.25));
}

.plan__tag{
  display: inline-block;
  font-weight: 800;
  font-size: 12px;
  letter-spacing: .06em;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.10);
  background: rgba(0,0,0,.04);
}

.plan__name{
  margin: 10px 0 10px;
  font-size: 18px;
  font-weight: 900;
}

.plan__price{
  font-size: 26px;
  font-weight: 900;
  letter-spacing: .01em;
}

.plan__unit{
  font-size: 12px;
  opacity: .7;
  font-weight: 700;
}

/* features list */
.plan__list{
  list-style: none;
  margin: 0;
  padding: 14px 18px 18px;
  line-height: 1.75;
  font-size: 15px;
}

.plan__list li{
  position: relative;
  padding-left: 22px;
  margin: 6px 0;
}

.plan__list li::before{
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  font-weight: 900;
  color: rgba(16,175,16,.95);
}

/* CTA（Goldだけ表示でもOK） */
.plan__cta{
  margin: 0 18px 18px;
  margin-top: auto;
  display: inline-flex;
  justify-content: center;
  align-items: center;

  text-decoration: none;
  font-weight: 900;
  border-radius: 14px;
  padding: 12px 14px;

  border: 1px solid rgba(16,175,16,.35);
  background: linear-gradient(180deg, #f2fff2 0%, #e8f8ea 100%);
  box-shadow: 0 10px 26px rgba(16,175,16,.12);

  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.plan__cta:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 34px rgba(16,175,16,.20);
  border-color: rgba(16,175,16,.55);
}

/* Notes */
.price__notes{
  margin-top: 22px;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.10);
  background: #fff;
  box-shadow: 0 16px 40px rgba(0,0,0,.06);
  padding: 18px 18px 16px;
}

.price__notesTitle{
  margin: 0 0 10px;
  font-size: 16px;
  font-weight: 900;
}

.price__notesList{
  margin: 0;
  padding-left: 20px;
  line-height: 1.75;
  font-size: 14px;
}

.price__notesList li{
  margin: 8px 0;
}

/* Responsive */
@media (max-width: 980px){
  .price__grid{
    grid-template-columns: 1fr;
  }
  .plan__price{
    font-size: 24px;
  }
}



/* CSS：矢印グラデーション（薄→濃）＋ホバーで説明切替 */
.proc{
  max-width: 1100px;
  margin: 0 auto;
  padding: 34px 16px 56px;
}

.proc__title{
  margin: 0 0 18px;
  font-size: clamp(18px, 2.6vw, 30px);
  font-weight: 800;
}

/* 全体：矢印＋説明 */
.proc__wrap{
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
  align-items: start;
}

/* 矢印列 */
.proc__steps{
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 10px;
  align-items: center;
  width: 100%;
}

.proc__step{
  position: relative;
  border: 1px solid rgba(0,0,0,.28);
  background: #efefef;
  border-radius: 12px;
  cursor: pointer;

  /* 矢印形 */
  clip-path: polygon(0 0, 78% 0, 100% 50%, 78% 100%, 0 100%, 20% 50%);
  height: 160px;

  box-shadow: 0 10px 24px rgba(0,0,0,.06);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

/* 薄→濃のグラデーション（左が薄、右ほど濃い） */
.proc__step:nth-child(1){ background: rgba(16,175,16,.06); }
.proc__step:nth-child(2){ background: rgba(16,175,16,.09); }
.proc__step:nth-child(3){ background: rgba(16,175,16,.12); }
.proc__step:nth-child(4){ background: rgba(16,175,16,.15); }
.proc__step:nth-child(5){ background: rgba(16,175,16,.18); }
.proc__step:nth-child(6){ background: rgba(16,175,16,.21); }
.proc__step:nth-child(7){ background: rgba(16,175,16,.24); }
.proc__step:nth-child(8){ background: rgba(16,175,16,.27); }

.proc__step:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(0,0,0,.10);
  border-color: rgba(16,175,16,.45);
}

.proc__step.is-active{
  border-color: rgba(16,175,16,.65);
  box-shadow: 0 14px 30px rgba(16,175,16,.18);
}

/* 数字 */
.proc__num{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  font-weight: 900;
  font-size: 22px;
}

/* 説明パネル */
.proc__panel{
  width: 100%;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.10);
  background: linear-gradient(180deg, #ffffff 0%, #f6f8fb 100%);
  box-shadow: 0 16px 40px rgba(0,0,0,.08);
  overflow: hidden;
}

.proc__panelInner{
  padding: 16px 16px 14px;
  opacity: .0;
  transform: translateY(6px);
  transition: opacity .18s ease, transform .18s ease;
}

.proc__panelInner.is-show{
  opacity: 1;
  transform: translateY(0);
}

.proc__panelTop{
  display: flex;
  gap: 10px;
  align-items: center;
}

.proc__icon{
  width: 42px;
  height: 42px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  background: rgba(16,175,16,.10);
  border: 1px solid rgba(16,175,16,.18);
  font-size: 18px;
}

.proc__panelLabel{
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .06em;
  opacity: .7;
}

.proc__panelTitle{
  font-size: 16px;
  font-weight: 900;
  margin-top: 2px;
}

.proc__panelText{
  margin-top: 10px;
  line-height: 1.7;
  font-size: 16px;
  opacity: .9;
}

/* レスポンシブ：スマホは縦にして矢印を2段に */
@media (max-width: 980px){
  .proc__wrap{
    grid-template-columns: 1fr;
  }
  .proc__steps{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .proc__step{
    height: 110px;
  }
}



/* CSS：Inquiry セクション（見やすく、スマホでも崩れない） */
.inq{
  max-width: 980px;
  margin: 0 auto;
  padding: 44px 16px 60px;
}

.inq__title{
  text-align: center;
  margin: 0 0 18px;
  font-size: clamp(18px, 2.6vw, 28px);
  font-weight: 900;
  letter-spacing: .01em;
  text-decoration: underline;
  text-decoration-color: rgba(255, 70, 70, .55);
  text-underline-offset: 6px;
}

/* メインカード */
.inq__card{
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.10);
  background: linear-gradient(180deg, #ffffff 0%, #f6f8fb 100%);
  box-shadow: 0 16px 40px rgba(0,0,0,.08);
  padding: 18px 18px 14px;
}

.inq__row{
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.inq__label{
  font-weight: 800;
  opacity: .85;
}

.inq__icon{
  margin-right: 6px;
}

.inq__link{
  font-weight: 900;
  color: #0b66ff;
  text-decoration: none;
}

.inq__link:hover{
  text-decoration: underline;
}

/* 注意文 */
.inq__notes{
  list-style: none;
  margin: 0;
  padding: 0;
  line-height: 1.75;
  font-size: 14px;
  color: rgba(0,0,0,.82);
}

.inq__notes li{
  position: relative;
  padding-left: 28px;
  margin: 10px 0;
}

.inq__notes li::before{
  content: "☝️";
  position: absolute;
  left: 0;
  top: 0;
}

.inq__notes--compact li{
  margin: 8px 0;
}

.inq__inlineLink{
  color: #0b66ff;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.inq__warn{
  color: #d40000;
  font-weight: 900;
}

/* 下の2カラム */
.inq__contactGrid{
  margin-top: 18px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.inq__miniCard{
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.10);
  background: #fff;
  box-shadow: 0 16px 40px rgba(0,0,0,.06);
  padding: 16px 16px 14px;
  position: relative;
  overflow: hidden;
}

.inq__miniCard::after{
  content:"";
  position:absolute;
  right:-70px;
  top:-70px;
  width: 220px;
  height: 220px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(16,175,16,.14), rgba(16,175,16,0) 70%);
  pointer-events:none;
}

.inq__miniHd{
  font-weight: 900;
  margin-bottom: 10px;
  font-size: 16px;
}

.inq__tel{
  display: inline-block;
  font-size: 22px;
  font-weight: 900;
  text-decoration: none;
  color: rgba(0,0,0,.92);
  margin-bottom: 8px;
}

.inq__tel:hover{
  text-decoration: underline;
}

.inq__sub{
  font-size: 13px;
  line-height: 1.7;
  opacity: .85;
  margin-bottom: 10px;
}

.inq__hours{
  font-size: 12px;
  opacity: .75;
  line-height: 1.6;
}

.inq__jpOnly{
  margin: 0 0 10px;
  color: #d40000;
}

.inq__p{
  margin: 0 0 10px;
  line-height: 1.65;
  font-size: 14px;
}

/* レスポンシブ */
@media (max-width: 820px){
  .inq__contactGrid{
    grid-template-columns: 1fr;
  }
  .inq__card{
    padding: 16px 14px 12px;
  }
}
























.rental-catalog {
  width: 100%;
  margin: 0 auto 40px;
  font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  color: #333;
}

.rental-catalog * {
  box-sizing: border-box;
}

.rental-catalog a {
  text-decoration: none;
  color: inherit;
}

.rental-catalog img {
  display: block;
  width: 100%;
  height: auto;
}

/* slider */
.rental-catalog .rc-slider {
  position: relative;
  overflow: hidden;
  width: 100%;
  padding: 10px 0;
  background: linear-gradient(180deg, #eef5ee 0%, #e2ebe2 100%);
  border-top: 3px solid #4f9b58;
  border-bottom: 1px solid #cfd8cf;
}

.rental-catalog .rc-slider-track {
  display: flex;
  align-items: center;
  gap: 12px;
  width: max-content;
  animation: rc-scroll-left 35s linear infinite;
}

.rental-catalog .rc-banner {
  flex: 0 0 auto;
  width: 320px;
  height: 250px;
  padding: 6px;
  background: #fff;
  border: 1px solid #d7e7d7;
  border-radius: 6px;
  box-shadow: 0 2px 6px rgba(71, 128, 79, 0.08);
}

.rental-catalog .rc-banner img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

@keyframes rc-scroll-left {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

@media (max-width: 768px) {
  .rental-catalog .rc-banner {
    width: 180px;
    height: 140px;
  }

  .rental-catalog .rc-slider-track {
    gap: 8px;
    animation-duration: 28s;
  }
}


/* breadcrumb */
.rental-catalog .rc-breadcrumb {
  text-align: right;
  font-size: 12px;
  color: #666;
  margin: 8px 4px 14px;
}

.rental-catalog .rc-breadcrumb a {
  color: #3b8a4a;
}

.rental-catalog .rc-breadcrumb a:hover {
  text-decoration: underline;
}

/* top area */
.rental-catalog .rc-top-area {
  background: linear-gradient(180deg, #f6faf6 0%, #eef5ee 100%);
  padding: 20px 18px 16px;
  border: 1px solid #d8e5d8;
  border-bottom: none;
}

.rental-catalog .rc-title-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
}

.rental-catalog .rc-title-row h2 {
  margin: 0;
  font-size: 18px;
  font-weight: bold;
  color: #3d4b3f;
  letter-spacing: 0.02em;
}

.rental-catalog .rc-check {
  font-size: 22px;
  color: #d86f43;
  line-height: 1;
}

/* guide links */
.rental-catalog .rc-guide-links {
  display: flex;
  justify-content: center;
  gap: 34px;
  flex-wrap: wrap;
}

.rental-catalog .rc-guide-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-size: 12px;
  color: #3b8a4a;
  transition: transform 0.2s ease;
}

.rental-catalog .rc-guide-item:hover {
  transform: translateY(-2px);
}

.rental-catalog .rc-guide-icon {
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 6px;
  border-radius: 12px;
  background: #ffffff;
  border: 1px solid #d7e7d7;
  box-shadow: 0 2px 8px rgba(71, 128, 79, 0.08);
  font-size: 28px;
  line-height: 1;
}

/* tabs area */
.rental-catalog .rc-tab-wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  background: linear-gradient(180deg, #dfe7df 0%, #d4ddd4 100%);
  padding: 18px 14px;
  border: 1px solid #cfd8cf;
  border-top: none;
}

.rental-catalog .rc-tab {
  min-width: 110px;
  padding: 11px 14px;
  border: 1px solid #c7d5c7;
  border-radius: 6px;
  background: #f9fbf9;
  color: #486248;
  font-size: 14px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.rental-catalog .rc-tab:hover {
  background: #eef6ee;
  border-color: #91b892;
  color: #2f6b39;
}

.rental-catalog .rc-tab.active {
  background: linear-gradient(180deg, #2f7d3d 0%, #21682f 100%);
  border-color: #21682f;
  color: #fff;
  box-shadow: 0 2px 8px rgba(47, 125, 61, 0.25);
}

@media (max-width: 768px) {
  .rental-catalog {
    width: calc(100% - 20px);
  }

  .rental-catalog .rc-slider,
  .rental-catalog .rc-slide img {
    height: 160px;
  }

  .rental-catalog .rc-guide-links {
    gap: 18px;
  }

  .rental-catalog .rc-tab {
    min-width: calc(50% - 4px);
    font-size: 13px;
  }
}

.rental-catalog .rc-panel {
  display: none;
}

.rental-catalog .rc-panel.active {
  display: block;
}



.overseas-ranking {
  max-width: 980px;
  margin: 0 auto;
  padding: 18px 20px 28px;
  background: #ececec;
  font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  color: #444;
}

.overseas-ranking * {
  box-sizing: border-box;
}

.overseas-ranking a {
  text-decoration: none;
  color: inherit;
}

.overseas-ranking img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.overseas-ranking .or-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.overseas-ranking .or-title {
  margin: 0;
  font-size: 28px;
  font-weight: 500;
  color: #4c4c4c;
  letter-spacing: 0.02em;
}

.overseas-ranking .or-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 102px;
  height: 40px;
  padding: 0 20px;
  border-radius: 4px;
  background: linear-gradient(180deg, #18d24d 0%, #08bc39 100%);
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.08);
}

.overseas-ranking .or-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

.overseas-ranking .or-card {
  position: relative;
}

.overseas-ranking .or-card-main {
  grid-column: 1 / -1;
}

.overseas-ranking .or-rankline {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 6px;
}

.overseas-ranking .or-rankline::after {
  content: "";
  flex: 1;
  border-top: 2px solid #3f3f3f;
  margin-top: 2px;
}

.overseas-ranking .or-trophy {
  font-size: 40px;
  line-height: 1;
}

.overseas-ranking .gold .or-trophy {
  filter: saturate(1.2);
}

.overseas-ranking .silver .or-trophy {
  filter: grayscale(0.8) brightness(1.2);
}

.overseas-ranking .bronze .or-trophy {
  filter: sepia(0.7) saturate(1.1);
}

.overseas-ranking .or-ranktext {
  white-space: nowrap;
  font-size: 18px;
  font-weight: 600;
  color: #4b4b4b;
}

.overseas-ranking .or-image-wrap {
  position: relative;
  display: block;
  background: #d9d9d9;
  border: 2px solid #4a4a4a;
  padding: 14px;
  overflow: hidden;
}

.overseas-ranking .or-card-main .or-image-wrap {
  min-height: 295px;
}

.overseas-ranking .or-card:not(.or-card-main) .or-image-wrap {
  min-height: 210px;
}

.overseas-ranking .or-image-wrap img {
  background: #d8d8d8;
}

.overseas-ranking .or-label {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  padding: 6px 14px;
  background: rgba(236, 236, 236, 0.82);
  color: #000;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.02em;
}

@media (max-width: 768px) {
  .overseas-ranking {
    padding: 16px 12px 22px;
  }

  .overseas-ranking .or-head {
    flex-direction: column;
    align-items: flex-start;
  }

  .overseas-ranking .or-title {
    font-size: 22px;
  }

  .overseas-ranking .or-grid {
    grid-template-columns: 1fr;
  }

  .overseas-ranking .or-card-main {
    grid-column: auto;
  }

  .overseas-ranking .or-ranktext {
    font-size: 15px;
    white-space: normal;
  }

  .overseas-ranking .or-card-main .or-image-wrap,
  .overseas-ranking .or-card:not(.or-card-main) .or-image-wrap {
    min-height: 200px;
  }

  .overseas-ranking .or-label {
    font-size: 16px;
  }
}




.rental-category-board {
  width: 80%;
  max-width: 1100px;
  margin: 0 auto 40px;
  padding: 12px 10px 6px;
  background: #dcdcdc;
}

.rental-category-board * {
  box-sizing: border-box;
}

.rental-category-board a {
  text-decoration: none;
  color: inherit;
}

.rental-category-board img {
  display: block;
  width: 34px;
  height: 34px;
  object-fit: contain;
  flex-shrink: 0;
}

.rental-category-board .rcb-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
}

.rental-category-board .rcb-card {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 54px;
  padding: 8px 34px 8px 10px;
  background: #fff;
  border: 1px solid #cfcfcf;
  border-radius: 4px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.16);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.rental-category-board .rcb-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}

.rental-category-board .rcb-text {
  margin-left: 8px;
  font-size: 11px;
  line-height: 1.2;
  font-weight: 700;
  color: #222;
  word-break: break-word;
}

.rental-category-board .rcb-arrow {
  position: absolute;
  right: 4px;
  bottom: 4px;
  width: 15px;
  height: 15px;
  border-radius: 4px;
  background: #3cab24;
  color: #fff;
  font-size: 13px;
  line-height: 15px;
  text-align: center;
  font-weight: 700;
}

@media (max-width: 1024px) {
  .rental-category-board .rcb-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

@media (max-width: 768px) {
  .rental-category-board {
    width: calc(100% - 20px);
  }

  .rental-category-board .rcb-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .rental-category-board .rcb-grid {
    grid-template-columns: 1fr;
  }
}




.e21-policy {
  width: 80%;
  margin: 0 auto;
  color: #444;
  font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  line-height: 1.9;
}

.e21-policy * {
  box-sizing: border-box;
}

.e21-policy img {
  max-width: 100%;
  display: block;
}

.e21-policy__block + .e21-policy__block {
  margin-top: 34px;
}

.e21-policy__title {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 20px;
  font-size: 25px;
  font-weight: 500;
  color: #4a4a4a;
  line-height: 1.4;
}

.e21-policy__mark {
  flex: 0 0 44px;
  width: 44px;
}

.e21-policy__lead {
  margin: 0 0 28px;
  font-size: 14px;
  color: #4f4f4f;
  letter-spacing: 0.01em;
}

.e21-policy__lead--narrow {
  margin-bottom: 0;
}

.e21-policy__feature {
  display: flex;
  align-items: flex-start;
  gap: 22px;
}

.e21-policy__image {
  flex: 0 0 240px;
  max-width: 240px;
}

.e21-policy__image img {
  border: 1px solid #cfcfcf;
}

.e21-policy__content {
  flex: 1;
  padding-top: 4px;
}

.e21-policy__subtitle {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0 0 14px;
  font-size: 19px;
  font-weight: 700;
  color: #6a5c4d;
  line-height: 1.6;
}

.e21-policy__icon {
  font-size: 28px;
  line-height: 1;
}

.e21-policy__star {
  font-size: 18px;
  color: #f0b34a;
  line-height: 1;
}

.e21-policy__text {
  margin: 0;
  font-size: 15px;
  color: #555;
}

.e21-policy__text strong {
  color: #ff5a1f;
  font-weight: 700;
}

@media (max-width: 768px) {
  .e21-policy {
    width: calc(100% - 20px);
  }

  .e21-policy__title {
    font-size: 21px;
    gap: 10px;
  }

  .e21-policy__mark {
    flex-basis: 36px;
    width: 36px;
  }

  .e21-policy__feature {
    flex-direction: column;
    gap: 16px;
  }

  .e21-policy__image {
    flex: none;
    max-width: 100%;
  }

  .e21-policy__subtitle {
    font-size: 17px;
  }

  .e21-policy__lead,
  .e21-policy__text {
    font-size: 13px;
    line-height: 1.8;
  }
}