@charset "UTF-8";
/*==================================================================
    variables
===================================================================*/
:root {
  /* Mono */
  --bc: #000; /* black */
  --wc: #fff; /* white */
  --textc: #333; /* textcolor */
  /* Gray */
  --gray1-color: #a8a0a0; /* gray1 - */
  --gray2-color: #b6b2c2; /* gray2 - */
  --gray3-color: #e0e0e0; /* gray3 - */
  --gray4-color: #808080; /* gray4 - */
  --gray5-color: #6d6d6d; /* gray5 - */
  --gray6-color: #666666; /* gray6 - */
  --gray7-color: #f5f5f5; /* gray7 - */
  --gray8-color: #dbdbdb; /* gray8 - */
  /* Color */
  --keyColor1: #009fe8; /* keyColor1 - */
  --keyColor2: rgba(30, 170, 57, 0.4); /* keyColor2 - */
  --keyColor3: rgba(0, 159, 232, 0.4); /* keyColor3 - */
  --keyColor4: rgba(0, 0, 0, 0.4); /* keyColor3 - */
  --orange: #ff9900;
  --green: #1eaa39;
  --blue: #0099ff;
  --orenge2: #ff4500;
  --green2: #66cc00;
  --yellow: #FFF000;
  /* Linear Gradients */
  --lg1: linear-gradient(0deg, rgba(114, 198, 208, 1), rgba(54, 189, 239, 1) 60%, rgba(0, 133, 208, 1));
  --lg2: linear-gradient(0deg, rgba(0, 159, 232, 1), rgba(255, 255, 255, 1) 25%);
  /* User requested placeholder */
  --text-color: #333333;
  --caution-color: #e20c0c;
  /* Font */
  --font-jpn: "Zen Kaku Gothic New", sans-serif;
  --font-eng: "Outfit", sans-serif;
  /* Font size - PC */
  --fzXS: 1rem; /* small */
  --fzS: 1.2rem; /* small */
  --fz: 1.4rem; /* regular */
  --fzM: 1.6rem; /* medium */
  --fzL: 1.8rem; /* large */
  --fzXL: 2rem; /* xlarge */
  /* Font size - SP */
  --fzXS--sp: 0.9rem;
  --fzS--sp: 1.1rem;
  --fz--sp: 1.3rem;
  --fzM--sp: 1.5rem;
  --fzL--sp: 1.7rem;
  --fzXL--sp: 1.9rem;
  /* Line height - PC */
  --lhS: 1.4;
  --lh: 1.6;
  --lhM: 1.8;
  --lhL: 2;
  /* Line height - SP */
  --lhS--sp: 1.6;
  --lh--sp: 1.8;
  --lhM--sp: 1.9;
  --lhL--sp: 2;
  /* Border-radius */
  --bdrs1: 20px;
  --bdrs1--sp: 10px;
  --bdrs2: 6px;
  --bdrs_mv: 60px;
  /* Opacity */
  --opacity: 0.5;
  /* drop-shadow */
  --ds1: drop-shadow(1px 3px 5px rgba(0, 0, 0, 0.5));
  --ds_b: drop-shadow(1px 3px 5px rgba(0, 159, 232, 0.7));
  --ds_g: drop-shadow(1px 3px 5px rgba(30, 170, 57, 0.7));
  /* Box-shadow */
  --bxs_b: 0px 0px 10px 5px rgba(0, 159, 232, 0.5);
  --bxs_g: 0px 0px 10px 5px rgba(30, 170, 57, 0.5);
  /* Text-shadow */
  --txs1: 0px 0px 12px rgba(0, 0, 0, 0.6); /* 横 縦 ボケ カラー */
  --txs2: 0px 0px 12px rgba(255, 255, 255, 1); /* 横 縦 ボケ カラー */
  /* Background-image */
  --grd1: linear-gradient(135deg, #ffa84c 0%, #ff7b0d 100%); /* 斜めオレンジ */
  /* Transition */
  --time-page-turn: 1.6s;
  --ease-page-turn: cubic-bezier(0.77, 0, 0.175, 1);
  --time-page-turn: 0.8s;
  --time-slide-fade: 0.4s;
  --time2: 200ms;
  --time3: 300ms;
  --time4: 400ms;
  --time5: 500ms;
  --time6: 600ms;
  --time7: 700ms;
  --time8: 800ms;
  --time9: 900ms;
  --time10: 1000ms;
  --time11: 1100ms;
  --time12: 1200ms;
  --time13: 1300ms;
  --time14: 1400ms;
  --time15: 1500ms;
  --time20: 2000ms;
  --time30: 3000ms;
  --transition: all var(--time) ease; /* var() を使用して time を参照 */
  /* Original ease */
  --ease1: all var(--time) cubic-bezier(0.55, 0.055, 0.675, 0.19);
  /* Sine ease */
  --easeInSine: all var(--time) cubic-bezier(0.47, 0, 0.745, 0.715);
  --easeOutSine: all var(--time) cubic-bezier(0.39, 0.575, 0.565, 1);
  --easeInOutSine: all var(--time) cubic-bezier(0.445, 0.05, 0.55, 0.95);
  /* Cubic ease */
  --easeInCubic: all var(--time) cubic-bezier(0.55, 0.055, 0.675, 0.19);
  --easeOutCubic: all var(--time) cubic-bezier(0.215, 0.61, 0.355, 1);
  --easeInOutCubic: all var(--time) cubic-bezier(0.645, 0.045, 0.355, 1);
  /* Quart ease */
  --easeInQuart: all var(--time) cubic-bezier(0.895, 0.03, 0.685, 0.22);
  --easeOutQuart: all var(--time) cubic-bezier(0.165, 0.84, 0.44, 1);
  --easeInOutQuart: all var(--time) cubic-bezier(0.77, 0, 0.175, 1);
  /* 最小 20px、最大 8em (約128px) の間で、画面幅 3% に応じて可変 */
  --header-pad: 0 clamp(1.25rem, 5vw, 8rem);
  --header-height: 100px;
  --mv-max-height: 900px;
  --mv-min-height: 600px;
}

/*==================================================================
    slide
===================================================================*/
/* Swiper全体のサイズ調整 */
.swiper {
  width: 100%;
  max-width: 1200px;
  height: 400px;
  overflow: hidden; /* 【重要】これがないと横や下に並んで見えてしまいます */
  position: relative; /* ページネーションの基準になります */
}
@media screen and (max-width: 1080px) {
  .swiper {
    height: 300px;
    margin: 0 calc(50% - 50vw);
    width: 100vw;
  }
}

.swiper-wrapper {
  display: flex !important; /* JSが自動で付けますが、CSSでも担保しておくと安定します */
  flex-direction: row !important; /* 縦並びを防ぎます */
  align-items: center;
}

.swiper-slide {
  height: 90%;
  display: flex;
  justify-content: center;
  font-size: 24px;
  background: #eee;
  transition: transform 0.3s ease; /* なめらかに変化させる */
  transform: scale(0.8); /* 左右のスライドを少し小さくしておく */
}
@media screen and (max-width: 1080px) {
  .swiper-slide {
    /* スマホサイズ（1080px以下）の時だけ幅を280pxに固定 */
    width: 320px !important;
  }
}

/* 中央（アクティブ）のスライド */
.swiper-slide-active {
  transform: scale(1.2); /* 中央だけ1.1倍に拡大 */
  opacity: 1; /* 中央はハッキリ見せる */
  z-index: 1; /* 重なり順を上にする */
}

/* 画像の調整 */
.-slide_bg01 {
  background: url(../pic/slide/slide_bg01.svg);
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
}

.-slide_bg02 {
  background: url(../pic/slide/slide_bg02.svg);
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
}

.-slide_bg03 {
  background: url(../pic/slide/slide_bg03.svg);
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
}

.-slide_bg04 {
  background: url(../pic/slide/slide_bg04.svg);
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
}

.-slide_bg05 {
  background: url(../pic/slide/slide_bg05.svg);
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
}

.-slide_bg06 {
  background: url(../pic/slide/slide_bg06.svg);
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
}

.-slide_bg07 {
  background: url(../pic/slide/slide_bg07.svg);
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
}

.-slide_bg08 {
  background: url(../pic/slide/slide_bg08.svg);
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
}

.-slide_bg09 {
  background: url(../pic/slide/slide_bg09.svg);
  background-size: contain;
  background-position: center center;
  background-repeat: no-repeat;
}

.slide-box {
  display: flex;
  flex-flow: column;
  align-items: center;
  padding: 2.5em 3em 0;
}
@media screen and (max-width: 1080px) {
  .slide-box {
    padding: 10px 60px 0;
  }
}
@media screen and (max-width: 769px) {
  .slide-box {
    padding: 10px 70px 0;
  }
}
.slide-box_icon {
  width: 70px;
}
@media screen and (max-width: 1080px) {
  .slide-box_icon {
    width: 50px;
    margin-top: 20px;
  }
}
.slide-box_title {
  font-size: var(--fzXL);
  font-weight: bold;
  text-align: center;
  padding: 0.5em 0;
}
@media screen and (max-width: 1080px) {
  .slide-box_title {
    font-size: var(--fzL);
  }
}
.slide-box_text {
  font-size: var(--fz);
  line-height: var(--lh);
  letter-spacing: 0.05em;
}
@media screen and (max-width: 1080px) {
  .slide-box_text {
    font-size: var(--fzS);
  }
}

/* ページネーション全体の配置 */
.swiper-pagination-bullets.swiper-pagination-horizontal {
  bottom: 20px;
}

/* ページネーションのドット（バレット）の基本スタイル */
.swiper-pagination-bullet {
  width: 60px; /* 横長のバーにする */
  height: 4px;
  border-radius: 0;
  background: rgba(0, 0, 0, 0.2); /* 待機中の色 */
  opacity: 1;
  position: relative;
  overflow: hidden;
  margin: 0 5px !important;
}

/* アクティブなドットの中にあるプログレスバー(iタグ)の動き */
.swiper-pagination-bullet i {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #000; /* 進捗バーの色 */
  transform: scaleX(0); /* 最初は幅0 */
  transform-origin: left;
}

/* アクティブな時のアニメーション設定 */
.swiper-pagination-bullet-active i {
  /* JavaScriptのautoplay delayと同じ時間を指定します。
     ここでは例として5秒(5000ms)に設定。
   */
  animation: swiperProgress 5s linear forwards;
}

@keyframes swiperProgress {
  0% {
    transform: scaleX(0);
  }
  100% {
    transform: scaleX(1);
  }
}
/*==================================================================
    swiper overwrite
===================================================================*/
.swiper-pagination-bullets.swiper-pagination-horizontal {
  bottom: 0px !important;
}

.swiper-pagination-bullet i {
  /* ここに好きな色を指定してください */
  background: var(--green) !important; /* 例：鮮やかなオレンジ */
}

.js-swipe .swiper-button-prev,
.js-swipe .swiper-button-next {
  color: var(--wc) !important;
  filter: drop-shadow(0 0 4px rgba(0, 0, 0, 0.5)) !important;
  transition: all 0.3s ease !important;
}
.js-swipe .swiper-button-prev::after,
.js-swipe .swiper-button-next::after {
  font-size: 40px !important;
  font-weight: bold !important;
}
.js-swipe .swiper-button-prev:hover,
.js-swipe .swiper-button-next:hover {
  opacity: 0.7 !important;
}

/*==================================================================
    scroll-hint　overwrite
===================================================================*/
.scroll-hint-icon-wrap {
  z-index: 1 !important;
}

.js-swipe {
  -ms-overflow-style: none !important; /* IE, Edge */
  scrollbar-width: none !important; /* Firefox */
}
.js-swipe::-webkit-scrollbar {
  display: none !important; /* Chrome, Safari */
}

/*==================================================================
    追加分
===================================================================*/
:root {
  --mv-ulH_pc: 400px;
  --mv-ulH_sp: 250px;
}

body {
  font-family: Avenir, "Helvetica Neue", Helvetica, "Zen Kaku Gothic New", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", "ＭＳ Ｐゴシック", "MS P Gothic", "Osaka", sans-serif !important;
  overflow-x: hidden;
}

/* ======= display none ======= */
@media screen and (max-width: 769px) {
  .spNone {
    display: none !important;
  }
}
@media screen and (min-width: 770px) {
  .pcNone {
    display: none !important;
  }
}
/* 色 */
.-keyColor1 {
  color: var(--keyColor1);
}

.-blue {
  color: var(--blue);
}

.-green {
  color: var(--green);
}

.-orange {
  color: var(--orange);
}

.-orenge2 {
  color: var(--orenge2);
}

.-yellow {
  color: var(--yellow);
}

.-bg_green {
  background-color: var(--green);
}

.-bg_blue {
  background-color: var(--keyColor1);
}

.-wc {
  color: var(--wc);
}

/* フォントサイズ */
.-fzS {
  font-size: var(--fzXS--sp);
}

.-fzXL {
  font-size: var(--fzXL);
}

.-fzXL {
  font-size: var(--fzXL);
}

/*  container
---------------------------------------------*/
.container {
  width: 100%;
  max-width: 1100px;
  margin-right: auto;
  margin-left: auto;
}
@media screen and (max-width: 769px) {
  .container {
    max-width: 100%;
  }
}
.container.-xlarge {
  max-width: 1600px;
}
@media screen and (max-width: 769px) {
  .container.-xlarge {
    max-width: 100%;
  }
}
.container.-large {
  max-width: 1200px;
}
@media screen and (max-width: 769px) {
  .container.-large {
    max-width: 100%;
  }
}
.container.-small {
  max-width: 860px;
}
@media screen and (max-width: 769px) {
  .container.-small {
    max-width: 100%;
  }
}
.container.-min {
  max-width: 690px;
}
@media screen and (max-width: 769px) {
  .container.-min {
    max-width: 100%;
  }
}
.container.-fluid {
  max-width: 1920px;
}
@media screen and (max-width: 769px) {
  .container.-fluid {
    max-width: 100%;
  }
}

.container--fluid {
  width: 100%;
  max-width: 1920px;
  margin-right: auto;
  margin-left: auto;
}

/* 下層ページ mv */
.mv-ul {
  position: relative;
  height: var(--mv-ulH_pc);
  background: url(../pic/mv/mv_ul_bg_common.webp) no-repeat 50% 100%;
  background-size: cover;
  display: flex;
  justify-content: center;
  overflow: hidden;
}
@media screen and (max-width: 769px) {
  .mv-ul {
    height: var(--mv-ulH_sp);
  }
}
.mv-ul:before {
  content: "";
  background: inherit;
  filter: blur(5px);
  position: absolute;
  top: -5px;
  left: -5px;
  right: -5px;
  bottom: -5px;
}
.mv-ul.-denki {
  background: url(../pic/mv/mv_ul_bg_denki.webp) no-repeat 50% 50%;
  background-size: cover;
}
.mv-ul.-eco {
  background: url(../pic/mv/mv_ul_bg_eco.webp) no-repeat 50% 50%;
  background-size: cover;
}
.mv-ul.-ih {
  background: url(../pic/mv/mv_ul_bg_ih.webp) no-repeat 50% 50%;
  background-size: cover;
}
.mv-ul.-sun {
  background: url(../pic/mv/mv_ul_bg_sun.webp) no-repeat 50% 50%;
  background-size: cover;
}
.mv-ul.-water {
  background: url(../pic/mv/mv_ul_bg_water.webp) no-repeat 50% 50%;
  background-size: cover;
}
.mv-ul_container {
  position: relative;
  display: flex;
  align-items: center;
}
.mv-ul_title {
  font-size: 4rem;
  font-weight: bold;
  text-shadow: var(--txs2);
  letter-spacing: 0.1em;
  padding-left: 1em;
}
@media screen and (max-width: 769px) {
  .mv-ul_title {
    font-size: 3rem;
    letter-spacing: 0em;
  }
}
@media screen and (max-width: 769px) {
  .mv-ul_title {
    font-size: 2.6rem;
  }
}
.mv-ul_title.-white {
  color: var(--wc);
  text-shadow: var(--txs1);
}

/* 下層ページ common */
.cbx {
  padding: 80px 0;
}
@media screen and (max-width: 769px) {
  .cbx {
    padding: 40px 0;
  }
}

.txtype1 {
  padding: 20px 0;
}

@media screen and (max-width: 1080px) {
  .mbx {
    padding: 0 20px;
  }
}

/* ボタン */
.btn {
  --ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
  width: 320px;
  height: 50px;
  position: relative;
  z-index: 0;
  overflow: hidden;
  background-color: var(--wc);
  border-radius: 25px;
  font-size: var(--fz);
  font-weight: bold;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  line-height: normal;
  transition: color 0.5s var(--ease-out-quart);
}
@media screen and (max-width: 769px) {
  .btn {
    width: 220px;
    height: 40px;
    font-size: var(--fzS);
  }
}
.btn.-btn-header {
  width: 220px;
}
@media (any-hover: hover) {
  .btn {
    transition: color 0.5s var(--ease-out-quart);
  }
  .btn:hover {
    color: var(--wc);
  }
  .btn:hover .btn_icon {
    filter: brightness(0) invert(1);
    transform: translateX(5px);
  }
  .btn:hover .btn_bg {
    scale: 1;
  }
}

.btn_bg {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  width: 700px; /* ボタンを覆い隠すのに十分な大きさ */
  height: auto;
  aspect-ratio: 1;
  border-radius: 50%;
  scale: 0;
  transform-origin: center center;
  margin-top: -350px; /* 大きさの半分 */
  margin-left: -350px; /* 大きさの半分 */
  transition: scale 0.5s var(--ease-out-quart);
}
@media screen and (max-width: 769px) {
  .btn_bg {
    width: 500px;
    margin-top: -250px; /* 大きさの半分 */
    margin-left: -250px; /* 大きさの半分 */
  }
}
.btn_bg.-btn-header {
  width: 440px;
  margin-top: -220px; /* 大きさの半分 */
  margin-left: -220px; /* 大きさの半分 */
}

.btn_icon {
  width: 40px;
  height: auto;
  position: relative;
  z-index: 1;
  transition: filter 0.5s var(--ease-out-quart), transform 0.5s var(--ease-out-quart);
  will-change: transform;
}

.-btn_green {
  color: var(--green);
  border: 1px solid var(--green);
  box-shadow: 0px 4px 10px var(--keyColor2), inset 0px 2px 5px var(--keyColor2);
}

.-btn_blue {
  color: var(--keyColor1);
  border: 1px solid var(--keyColor1);
  box-shadow: 0px 4px 10px var(--keyColor3), inset 0px 2px 5px var(--keyColor3);
}

/* お問合せ */
.contact_container {
  background-color: var(--wc);
  border: 2.5px solid var(--bc);
  border-radius: var(--bdrs1);
}
.contact_box {
  display: flex;
  flex-flow: row nowrap;
  justify-content: space-around;
  padding: 4em 0;
}
@media screen and (max-width: 1080px) {
  .contact_box {
    flex-flow: column;
    justify-content: flex-start;
    padding: 3em 0;
  }
}
.contact_box.-ver2 {
  padding: 0;
  color: var(--wc);
}

.telbox {
  display: flex;
  flex-flow: column;
  align-items: center;
  padding: 0 4em;
}
@media screen and (max-width: 1080px) {
  .telbox {
    padding: 0 0 2.5em;
  }
}
.telbox_title {
  font-size: var(--fzL);
  font-weight: bold;
  padding-bottom: 0.5em;
}
@media screen and (max-width: 1080px) {
  .telbox_title {
    font-size: var(--fzM);
  }
}
.telbox_tel {
  position: relative;
  font-size: 3rem;
  font-weight: bold;
  padding-bottom: 0.5em;
  padding-left: 50px;
}
@media screen and (max-width: 1080px) {
  .telbox_tel {
    padding-bottom: 0;
  }
}
.telbox_tel::before {
  content: "";
  background: url(../pic/icon/ico_freecall_g.svg) center center no-repeat;
  background-size: contain;
  width: 50px;
  height: 100%;
  position: absolute;
  left: 0px;
  top: 20px;
  transform: translateY(-50%);
}
.telbox_tel.-fcw::before {
  content: "";
  background: url(../pic/icon/ico_freecall_w.svg) center center no-repeat;
  background-size: contain;
}
.telbox.-ds {
  filter: var(--ds1);
}

.telgroup {
  display: flex;
  flex-flow: row nowrap;
}
.telgroup_sales {
  line-height: var(--lhM);
  font-weight: bold;
  font-size: var(--fz);
  padding-right: 3em;
}
.telgroup_holiday {
  line-height: var(--lhM);
  font-weight: bold;
  font-size: var(--fz);
}

.mailbox {
  display: flex;
  flex-flow: column;
  align-items: center;
  padding: 0 4em;
}
@media screen and (max-width: 1080px) {
  .mailbox {
    padding: 0 0;
  }
}
.mailbox_title {
  font-size: var(--fzL);
  font-weight: bold;
  padding-bottom: 0.5em;
}
@media screen and (max-width: 1080px) {
  .mailbox_title {
    font-size: var(--fzM);
  }
}
.mailbox.-ds {
  filter: var(--ds1);
}

/* TELリンク関連 */
.tel-link {
  pointer-events: none; /* クリックを反応させない */
  cursor: default; /* カーソルを指の形にしない */
  text-decoration: none;
  color: inherit; /* 文字色を周りに合わせる */
}

@media screen and (max-width: 769px) {
  .tel-link {
    pointer-events: auto; /* クリックを有効化 */
  }
}
/* pagetop */
.page-top {
  position: fixed;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 80px;
  right: -80px;
  bottom: 30px;
  color: var(--wc);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  background-color: var(--keyColor1);
  transition: 0.4s cubic-bezier(0.25, 1, 0.5, 1);
  letter-spacing: 3px;
  font-weight: bold;
  border-radius: 10px 0 0 10px;
}
@media screen and (max-width: 769px) {
  .page-top {
    width: 40px;
    height: 60px;
    letter-spacing: 0px;
    border-radius: 6px 0 0 6px;
  }
}
.page-top_icon {
  position: absolute;
  top: 0px;
  width: 50px;
}
@media screen and (max-width: 769px) {
  .page-top_icon {
    width: 36px;
  }
}
.page-top_text {
  margin: 0;
  font-size: 15px;
  bottom: 13px;
  position: absolute;
}
@media screen and (max-width: 769px) {
  .page-top_text {
    font-size: 10px;
  }
}
.page-top.is-active {
  opacity: 1;
  visibility: visible;
  right: -2px;
}
@media screen and (max-width: 769px) {
  .page-top.is-active {
    right: opx;
  }
}
.page-top:hover {
  right: 0;
  background: #008ce8;
}

/* footer */
.ftr {
  background: url(../pic/common/footer_bg.svg) no-repeat 50% 100%;
  background-size: contain;
  padding: 100px 0 0 0;
}

/* top */
@media screen and (max-width: 1080px) {
  .hminfobxin {
    padding: 2em 20px 1em;
  }
}

.top-eventbox {
  box-sizing: border-box;
  padding: 20px;
  display: flex;
  justify-content: center;
}
.top-eventbox a {
  display: block;
}
.top-eventbox img {
  width: 100%;
  max-width: 1000px;
}

/* company */
.gglmapbx iframe {
  width: 100% !important;
  max-width: 1280px !important;
}

/* mente */
.mntmadoguchi {
  padding: 4em 2em !important;
}
@media screen and (max-width: 1080px) {
  .mntmadoguchi {
    padding: 2em 2em 0 !important;
  }
}
@media screen and (max-width: 769px) {
  .mntmadoguchi {
    padding: 2em 0 0 !important;
  }
}

.mentebox {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
@media screen and (max-width: 769px) {
  .mentebox {
    text-align: left;
    flex-flow: row wrap;
    justify-content: space-around;
  }
}
.mentebox_title {
  font-size: 2.6rem;
  font-weight: bold;
  line-height: var(--lh);
  color: var(--keyColor1);
}
@media screen and (max-width: 769px) {
  .mentebox_title {
    font-size: var(--fzL);
  }
}
.mentebox_title span {
  display: inline;
  background: linear-gradient(transparent 70%, var(--yellow) 70%);
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  color: var(--textc);
}
.mentebox_subtitle {
  width: 100%;
  font-size: var(--fzL);
  font-weight: bold;
  line-height: var(--lh);
  padding-top: 1.5em;
  padding-bottom: 1.5em;
}
@media screen and (max-width: 1080px) {
  .mentebox_subtitle {
    font-size: var(--fzM);
  }
}
@media screen and (max-width: 769px) {
  .mentebox_subtitle {
    font-size: var(--fz);
    padding-bottom: 1em;
  }
}
.mentebox_img-left, .mentebox_img-right {
  position: absolute;
  bottom: 0px;
  width: 12%;
}
@media screen and (max-width: 769px) {
  .mentebox_img-left, .mentebox_img-right {
    width: 30%;
    position: relative;
  }
}
.mentebox_img-left img, .mentebox_img-right img {
  max-width: 100%;
  height: auto;
}
.mentebox_img-left {
  left: 10px;
}
.mentebox_img-right {
  right: 10px;
}
.mentebox_text {
  font-size: var(--fz);
  padding-bottom: 2em;
  line-height: var(--lhM);
  width: 65%;
}
@media screen and (max-width: 769px) {
  .mentebox_text {
    font-size: var(--fzS);
    width: 100%;
    padding-bottom: 1em;
  }
}
.mentebox_text span {
  font-weight: bold;
}

/*==================================================================
    追加分
===================================================================*/
:root {
  --header-height: 160px;
  --gnav-height: 80px;
  --sp-header-height: 70px;
  --z-base: 1;
  --header-z: 11;
  --mega-z: 21;
  --gnav-fixed: 51;
  --header-sp: 9000;
  --header-sp-fixed: 9100;
  --sp-nav: 9200;
  --sp-toggle: 9300;
}

/* ヘッダー */
.header {
  position: relative;
  width: 100%;
  z-index: var(--header-z);
}
.header_container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--wc);
  height: var(--gnav-height);
}
.header_container::nth-child(2) {
  height: var(--gnav-height);
  position: relative;
}
.header_logo {
  width: 260px;
  padding-left: 4em;
}
.header_logo img {
  max-width: 100%;
  height: auto;
}
.header_tel {
  padding-right: 2em;
}
.header_tel a {
  font-size: 2.6rem;
  font-weight: bold;
  position: relative;
  padding-left: 35px;
}
.header_tel a::before {
  content: "";
  background: url(../pic/icon/ico_freecall_b.svg) center center no-repeat;
  background-size: contain;
  width: 50px;
  height: 100%;
  position: absolute;
  left: -10px;
  top: 22px;
  transform: translateY(-50%);
}
.header_tel dd {
  padding-top: 0.5em;
}
.header_contactbox {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
}
.header_contact {
  padding-right: 4em;
}

.gnav {
  height: 100%;
  width: 100%;
  background: transparent;
  transition: background 0.3s ease;
  /* ============================================================
    固定時のスタイル（カプセル状のフローティングナビ）
  ============================================================ */
}
.gnav.is-fixed {
  position: fixed;
  top: 10px;
  left: 0;
  width: 100%;
  height: 60px;
  z-index: var(--gnav-fixed);
  background: transparent;
  box-shadow: none;
  animation: slideInDown 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}
.gnav.is-fixed .gnav_container {
  background: var(--wc);
  height: 60px;
  max-width: 1280px;
  margin: 0 auto;
  border-radius: 60px;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.15);
}
.gnav.is-fixed .mega-menu {
  top: 70px !important;
  border-radius: 15px;
  max-width: 1280px;
}
.gnav.is-fixed .mega-menu::before {
  content: "";
  position: absolute;
  top: -15px;
  left: 0;
  width: 100%;
  height: 20px;
  background: transparent;
}
.gnav.is-fixed .gnav_nav > a {
  flex-direction: row;
  gap: 8px;
}
.gnav.is-fixed .gnav_nav > a .gnav_icon {
  width: 32px;
  margin-bottom: 0;
}
.gnav.is-fixed .gnav_nav > a .gnav_text {
  padding-bottom: 0;
}
.gnav.is-fixed .gnav_nav > a .gnav_text.-icon-arrow::before {
  right: -20px;
  width: 20px;
}
.gnav_container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  list-style: none;
  height: var(--gnav-height);
  margin: 0;
  padding: 0;
  width: 100%;
}
.gnav .gnav_nav {
  height: 100%;
  flex: 1;
}
.gnav .gnav_nav:nth-of-type(even) > a .gnav_text {
  background-image: linear-gradient(to right, var(--green) 50%, var(--textc) 50%);
}
.gnav .gnav_nav:nth-of-type(even) > a .gnav_text::after {
  background-color: var(--green);
}
.gnav .gnav_nav .gnav_icon {
  width: 40px;
  height: auto;
  /* transitionなどは不要なので削除 */
  position: relative;
  z-index: var(--z-base);
}
.gnav .gnav_nav > a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  text-decoration: none;
}
.gnav .gnav_nav > a .gnav_text {
  position: relative;
  display: inline-block;
  font-size: var(--fzS);
  font-weight: bold;
  line-height: var(--lhM);
  /* --- テキスト：左から色が満ちる --- */
  color: var(--textc);
  -webkit-text-fill-color: transparent;
  background-image: linear-gradient(to right, var(--keyColor1) 50%, var(--textc) 50%);
  background-size: 200% 100%;
  background-position: 100% 0;
  -webkit-background-clip: text;
  background-clip: text;
  transition: background-position 0.6s cubic-bezier(0.25, 1, 0.5, 1);
  /* --- 下線：左から伸びる --- */
}
.gnav .gnav_nav > a .gnav_text::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: var(--keyColor1);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}
.gnav .gnav_nav > a .gnav_text.-icon-arrow::before {
  content: "";
  position: absolute;
  top: 0;
  right: -30px;
  width: 30px;
  height: 100%;
  background: url(../pic/icon/icon_arrow_bk.svg) no-repeat 50% 50%;
  background-size: cover;
}
@media (any-hover: hover) {
  .gnav .gnav_nav > a:hover .gnav_text {
    background-position: 0 0;
  }
  .gnav .gnav_nav > a:hover .gnav_text::after {
    transform: scaleX(1);
  }
}
.gnav .gnav_nav .mega-menu {
  position: absolute;
  top: var(--header-height);
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  background: var(--wc);
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.15);
  border-top: 1px solid #eee;
  z-index: var(--mega-z);
  opacity: 0;
  visibility: hidden;
  transition: all var(--time3) ease;
  pointer-events: none;
}
.gnav .gnav_nav .mega-menu_inner {
  display: flex;
  margin: 0 auto;
}
.gnav .gnav_nav .mega-menu_list {
  display: flex;
  justify-content: space-around;
  flex: 1;
  list-style: none;
  padding: 0;
}
.gnav .gnav_nav .mega-menu_list li {
  flex: 1;
  max-width: 250px;
  padding: 0 2em;
}
.gnav .gnav_nav .mega-menu_list li:first-child {
  margin-left: 4em;
}
.gnav .gnav_nav .mega-menu_list li:last-child {
  margin-right: 4em;
}
.gnav .gnav_nav .mega-menu_list li a {
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: 2em 0;
  text-decoration: none;
  color: var(--textc);
}
.gnav .gnav_nav .mega-menu_list li a .mega-menu_list-img {
  /* 初期状態は影を透明に */
  box-shadow: 0 0 0 rgba(0, 0, 0, 0);
  /* transformとbox-shadowの両方を滑らかに */
  transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1), box-shadow 0.5s cubic-bezier(0.25, 1, 0.5, 1);
}
.gnav .gnav_nav .mega-menu_list li a .mega-menu_list-title img {
  transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}
.gnav .gnav_nav .mega-menu_list li a:hover .mega-menu_list-img {
  transform: translateY(-8px);
  box-shadow: var(--bxs_b);
}
.gnav .gnav_nav .mega-menu_list li a:hover .mega-menu_list-title img {
  transform: translateX(8px);
}
.gnav .gnav_nav .mega-menu_list li:nth-of-type(even) a:hover .mega-menu_list-img {
  box-shadow: var(--bxs_g);
}
.gnav .gnav_nav .mega-menu_list li:nth-of-type(even) a:hover .mega-menu_list-title {
  color: #2bb851;
}
.gnav .gnav_nav .mega-menu_list-box {
  display: flex;
  flex-direction: column;
}
.gnav .gnav_nav .mega-menu_list-img {
  width: 100%;
  border-radius: var(--bdrs1--sp);
  margin-bottom: 1em;
}
.gnav .gnav_nav .mega-menu_list-img img {
  max-width: 100%;
  height: auto;
}
.gnav .gnav_nav .mega-menu_list-title {
  position: relative;
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  font-size: var(--fzS);
  font-weight: bold;
}
.gnav .gnav_nav .mega-menu_list-title img {
  width: 30px;
  max-width: 100%;
  height: auto;
  margin-bottom: 3px;
}
.gnav .gnav_nav .mega-menu_list-text {
  font-size: var(--fzXS--sp);
  line-height: var(--lh);
}
.gnav .gnav_nav.has-mega:hover .mega-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

@keyframes slideInDown {
  from {
    transform: translateY(-100%);
  }
  to {
    transform: translateY(0);
  }
}
/* ============================================================
  表示切り替え
============================================================ */
.header_pc {
  display: block;
}
@media (max-width: 1079px) {
  .header_pc {
    display: none;
  }
}

.header_sp {
  display: none;
}
@media (max-width: 1079px) {
  .header_sp {
    display: block;
    width: 100%;
    height: var(--sp-header-height);
    position: relative;
    top: 0;
    left: 0;
    z-index: var(--header-sp);
    /* スクロール固定時のスタイル */
  }
  .header_sp.is-fixed {
    position: fixed;
    top: 0 !important;
    left: 0;
    height: var(--sp-header-height);
    z-index: var(--header-sp-fixed);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    animation: headerAnim 0.3s cubic-bezier(0.25, 1, 0.5, 1) forwards;
    background: var(--wc);
  }
}

/* ============================================================
  SP用ヘッダーデザイン
============================================================ */
@media (max-width: 1079px) {
  .header {
    width: 100%;
    box-sizing: border-box;
  }
  .sp-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: var(--sp-header-height);
    padding: 0 10px 0 20px;
    background: var(--wc);
    width: 100%;
    box-sizing: border-box;
    position: relative;
    pointer-events: auto;
  }
  .sp-logo {
    width: 140px;
  }
  .sp-logo img {
    width: 100%;
    height: auto;
    display: block;
  }
  /* ハンバーガーボタン本体 */
  .sp-toggle {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 50px;
    height: 50px;
    background: none;
    border: none;
    cursor: pointer;
    z-index: var(--sp-toggle);
    padding: 0;
    pointer-events: auto;
    -webkit-tap-highlight-color: transparent;
    /* 線の外枠 */
  }
  .sp-toggle .sp-toggle_inner {
    position: relative;
    width: 30px;
    height: 14px;
  }
  .sp-toggle span {
    position: absolute;
    left: 0;
    width: 30px;
    height: 2px;
    background: var(--keyColor1);
    transition: all 0.4s ease;
    border-radius: 4px;
  }
  .sp-toggle span:nth-child(1) {
    top: 2px;
  }
  .sp-toggle span:nth-child(2) {
    top: 7px;
    opacity: 0;
  }
  .sp-toggle span:nth-child(3) {
    top: 12px;
  }
  /* MENUテキスト */
  .sp-toggle_label {
    display: block;
    margin-top: 2px;
    font-size: 10px;
    font-weight: bold;
    color: var(--keyColor1);
    line-height: 1;
  }
  /* メニュー開閉時：✖️印にする設定 */
  .header_sp.is-active .sp-toggle span {
    background: var(--textc);
  }
  .header_sp.is-active .sp-toggle span:nth-child(1) {
    /* 2pxから5px下げて中央（7px地点）へ */
    transform: translateY(5px) rotate(-315deg);
  }
  .header_sp.is-active .sp-toggle span:nth-child(2) {
    opacity: 0;
  }
  .header_sp.is-active .sp-toggle span:nth-child(3) {
    /* 12pxから5px上げて中央（7px地点）へ */
    transform: translateY(-5px) rotate(315deg);
  }
  /* テキストの色も変えたい場合はここに追加 */
  .sp-toggle_label {
    color: var(--textc);
    padding-top: 5px;
  }
  /* スライドメニュー本体 */
  .sp-nav {
    /* 固定配置に変更 */
    position: fixed;
    top: 0;
    right: 0;
    /* 初期状態は画面の外（右側）へ */
    transform: translateX(100%);
    /* 画面全体の高さを確保 */
    width: 85vw;
    max-width: 340px;
    height: 100vh;
    background: var(--wc);
    /* 重なり順をヘッダーより上に設定 */
    z-index: var(--sp-nav);
    overflow-y: auto;
    /* 滑らかなアニメーション */
    transition: transform 0.4s ease, visibility 0.4s;
    visibility: hidden;
    box-shadow: -10px 0 30px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    margin: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .sp-nav.is-active {
    /* アクティブ時に画面内にスライド */
    transform: translateX(0);
    visibility: visible;
  }
  /* 内部コンテナのレイアウト調整 */
  .sp-nav_inner {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 100%;
    padding: 60px 20px 40px;
    box-sizing: border-box;
    width: 100%;
    overflow-x: hidden;
    background-image: var(--lg2);
  }
  .sp-nav_list {
    list-style: none;
    padding: 0;
    margin: 0;
  }
  /* メニュー項目共通 */
  .sp-nav_item {
    position: relative;
    list-style: none;
    width: 100%;
    box-sizing: border-box;
  }
  .sp-nav_item::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background: var(--wc);
    box-shadow: 0 0 3px rgba(0, 159, 232, 0.5), 0 0 6px rgba(0, 159, 232, 0.5), 0 0 12px rgba(0, 159, 232, 0.5);
  }
  .sp-nav_item a,
  .sp-nav_item .sp-nav_link {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    padding: 16px 30px 16px 0;
    font-size: var(--fz);
    font-weight: bold;
    color: var(--textc);
    text-decoration: none;
    background: none;
    border: none;
    text-align: left;
    cursor: pointer;
    box-sizing: border-box;
  }
  .sp-nav_item a .nav_icon,
  .sp-nav_item .sp-nav_link .nav_icon {
    width: 40px;
    margin-right: 10px;
    flex-shrink: 0;
  }
  .sp-nav_item a .nav_text,
  .sp-nav_item .sp-nav_link .nav_text {
    flex-grow: 1;
  }
  .sp-nav_item a,
  .sp-nav_item .sp-nav_link {
    /* --- 擬似要素で画像を読み込み --- */
  }
  .sp-nav_item a::after,
  .sp-nav_item .sp-nav_link::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%) rotate(0deg);
    transform-origin: center;
    transition: transform 0.3s ease;
    display: block;
    width: 40px;
    height: 40px;
    background: url("../pic/icon/icon_arrow_b.svg") no-repeat center center/contain;
    margin-left: 10px;
    flex-shrink: 0;
  }
  .sp-nav_item.-icon-g::after {
    background: url("../pic/icon/icon_arrow_g.svg") no-repeat center center/contain;
  }
  /* アコーディオンの矢印 */
  .js-sp-accordion {
    cursor: pointer;
  }
  .js-sp-accordion.is-open::after {
    transform: translateY(-50%) rotate(90deg);
  }
  /* 子メニューの外枠 */
  .sp-nav_child {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.3s ease-out;
    overflow: hidden;
    visibility: hidden;
  }
  .sp-nav_child.is-open {
    grid-template-rows: 1fr;
    visibility: visible;
  }
  .sp-nav_child {
    /* 内側のリスト（ここで余白を管理） */
  }
  .sp-nav_child .sp-nav_child_inner {
    min-height: 0;
    list-style: none;
    padding: 0;
  }
  .sp-nav_child li a {
    display: block;
    padding: 10px 0;
    font-size: var(--fzS);
    color: #666;
    line-height: var(--lhM);
    border-bottom: 1px solid #eee;
  }
  .sp-nav_child li a::after {
    display: none;
  }
  /* お問合せエリア */
  .sp-nav_contact {
    margin-top: 3em;
    padding-bottom: 30px;
  }
  /* フッターエリア (ボトムから5em) */
  .sp-nav_footer {
    margin-top: auto;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
  }
  .sp-nav_footer .sp-footer_logo {
    width: 200px;
  }
  .sp-nav_footer .sp-footer_logo img {
    max-width: 100%;
    height: auto;
  }
  .sp-nav_footer .sp-footer_tel {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding-left: 40px;
  }
  .sp-nav_footer .sp-footer_tel::before {
    content: "";
    background: url(../pic/icon/ico_freecall_b.svg) center center no-repeat;
    background-size: contain;
    width: 40px;
    height: 40px;
    position: absolute;
    left: 0px;
    top: 10px;
  }
  .sp-nav_footer .sp-footer_tel a {
    font-size: 3rem;
    font-weight: bold;
    color: var(--keyColor1);
    text-decoration: none;
    margin-top: 10px;
    text-align: left;
  }
  .sp-nav_footer .sp-footer_tel p {
    font-size: var(--fzXS--sp);
    margin-top: 5px;
    margin-bottom: 20px;
    text-align: left;
  }
  .sp-nav_gmap {
    width: 300px;
  }
}
@keyframes headerAnim {
  0% {
    transform: translateY(-70px); /* ★ヘッダーの高さ分だけ正確にマイナス */
  }
  100% {
    transform: translateY(0);
  }
}
/*==================================================================
    general
===================================================================*/
/*---------------------------------
mv
---------------------------------*/
:root {
  --mvH_pc: 500px;
  --mvH_sp: 400px;
}

.mv {
  position: relative;
  height: var(--mvH_pc);
  background-image: var(--lg1);
}
@media screen and (max-width: 1080px) {
  .mv {
    height: var(--mvH_sp);
  }
}
.mv::before {
  content: "";
  background: url(../pic/top/mv_bg.svg) no-repeat center bottom;
  background-size: cover;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.mv_partner {
  position: absolute;
  left: 0;
  top: -80px;
  width: 30px;
  z-index: 20;
  filter: var(--ds1);
}
@media screen and (max-width: 1080px) {
  .mv_partner {
    width: 24px;
    top: 20px;
    z-index: 0;
  }
}
.mv_partner img {
  max-width: 100%;
  height: auto;
}
.mv_container {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  height: var(--mvH_pc);
}
@media screen and (max-width: 1080px) {
  .mv_container {
    height: var(--mvH_sp);
  }
}
.mv_title {
  position: relative;
  width: 50vw;
  max-width: 700px;
  filter: var(--ds1);
  padding-top: 5em;
}
@media screen and (max-width: 1080px) {
  .mv_title {
    width: 80vw;
    max-width: 500px;
    padding-top: 3em;
  }
}
.mv_title img {
  max-width: 100%;
  height: auto;
}
.mv_img {
  position: relative;
  max-width: 1280px;
  width: 80vw;
  padding: 0 4em;
}
@media screen and (max-width: 769px) {
  .mv_img {
    width: 90vw;
    padding: 0;
  }
}
.mv_img img {
  max-width: 100%;
  height: auto;
}

/*---------------------------------
title
---------------------------------*/
.title {
  font-size: var(--fzXL);
  font-weight: bold;
  padding-bottom: 2em;
}
@media screen and (max-width: 1080px) {
  .title {
    font-size: var(--fz);
  }
}
@media screen and (max-width: 451px) {
  .title {
    padding-bottom: 3em;
  }
}
.title span {
  font-size: 4rem;
}
@media screen and (max-width: 1080px) {
  .title span {
    font-size: 3rem;
  }
}
@media screen and (max-width: 451px) {
  .title.-pb-sp0 {
    padding-bottom: 0;
  }
}

/*---------------------------------
subsidy
---------------------------------*/
.subsidy {
  position: relative;
}
.subsidy .-ene {
  font-size: var(--fzXL);
  font-weight: bold;
  color: var(--orange);
}
@media screen and (max-width: 1080px) {
  .subsidy .-ene {
    font-size: var(--fzM);
  }
}
.subsidy .-eco {
  font-size: var(--fzXL);
  font-weight: bold;
  color: var(--green);
}
@media screen and (max-width: 1080px) {
  .subsidy .-eco {
    font-size: var(--fzM);
  }
}

.subsidy_sec01 {
  position: relative;
  padding: 8em 0 6em;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec01 {
    padding: 60px 0 40px;
  }
}
@media screen and (max-width: 451px) {
  .subsidy_sec01 {
    padding: 40px 0 0px;
  }
}
.subsidy_sec01_container {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-flow: column;
  text-align: center;
}
.subsidy_sec01_title {
  width: 60vw;
}
@media screen and (max-width: 769px) {
  .subsidy_sec01_title {
    width: 80vw;
  }
}
@media screen and (max-width: 451px) {
  .subsidy_sec01_title {
    width: 90vw;
  }
}
.subsidy_sec01_text {
  font-size: var(--fzM);
  line-height: var(--lhM);
  padding: 2em 0em;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec01_text {
    font-size: var(--fzS);
    line-height: var(--lh);
  }
}
@media screen and (max-width: 769px) {
  .subsidy_sec01_text {
    padding: 2em;
  }
}
.subsidy_sec01_img {
  position: absolute;
  bottom: 0;
  width: 12vw;
}
@media screen and (max-width: 769px) {
  .subsidy_sec01_img {
    width: 13vw;
    bottom: auto;
    top: 40px;
  }
}
@media screen and (max-width: 769px) {
  .subsidy_sec01_img {
    top: 50px;
    width: 16vw;
  }
}
.subsidy_sec01_img.-left {
  left: 0;
}
.subsidy_sec01_img.-left img {
  width: 100%;
  height: auto;
}
.subsidy_sec01_img.-right {
  right: 0;
}
.subsidy_sec01_img.-right img {
  width: 100%;
  height: auto;
}

.subsidy_sec02 {
  padding-bottom: 8em;
  position: relative;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec02 {
    padding-bottom: 60px;
  }
}
.subsidy_sec02_container {
  width: 100%;
  max-width: 1280px;
  padding: 0 6em;
  margin: 0 auto;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec02_container {
    width: 80vw;
    padding: 0 2em;
  }
}
@media screen and (max-width: 451px) {
  .subsidy_sec02_container {
    width: 95vw;
    padding: 0;
  }
}
.subsidy_sec02_title {
  position: relative;
  z-index: 1;
  width: 100%;
  margin-bottom: -3em;
}
@media screen and (max-width: 451px) {
  .subsidy_sec02_title {
    margin-bottom: -2em;
  }
}
.subsidy_sec02_title img {
  width: 100%;
  height: auto;
  filter: var(--ds1);
}
.subsidy_sec02_contents {
  width: 100%;
  display: flex;
  justify-content: space-between;
  gap: 2em;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec02_contents {
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
  }
}
.subsidy_sec02_box {
  width: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: var(--wc);
  border: 6px solid var(--orange);
  border-radius: var(--bdrs1);
}
@media screen and (max-width: 1080px) {
  .subsidy_sec02_box {
    width: 90%;
  }
}
.subsidy_sec02_box.-eco_green {
  border: 6px solid var(--green2);
}
.subsidy_sec02_box_title {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 2em 0;
  background-color: var(--orange);
  border-radius: 10px 10px 0 0;
}
.subsidy_sec02_box_title img {
  max-width: 80%;
  height: auto;
  filter: var(--ds1);
}
@media screen and (max-width: 451px) {
  .subsidy_sec02_box_title img {
    max-width: 95%;
  }
}
.subsidy_sec02_box_title.-eco_green {
  background-color: var(--green2);
}
.subsidy_sec02_group01 {
  display: flex;
  flex-flow: row nowrap;
  justify-content: space-between;
  width: 100%;
}
.subsidy_sec02_text01 {
  width: 70%;
  padding: 1em;
}
.subsidy_sec02_text01 img {
  max-width: 100%;
  height: auto;
}
.subsidy_sec02_img01 {
  width: 30%;
  padding: 1em;
}
.subsidy_sec02_img01 img {
  max-width: 100%;
  height: auto;
  filter: var(--ds1);
}
.subsidy_sec02_group02 {
  display: flex;
  flex-flow: row nowrap;
  justify-content: space-between;
}
@media screen and (max-width: 451px) {
  .subsidy_sec02_group02 {
    flex-wrap: wrap;
    justify-content: center;
  }
}
.subsidy_sec02_unit01 {
  width: 87%;
  display: flex;
  flex-flow: column;
  justify-content: flex-start;
}
@media screen and (max-width: 451px) {
  .subsidy_sec02_unit01 {
    width: 100%;
    display: contents;
    flex-flow: row wrap;
  }
}
.subsidy_sec02_text02 {
  padding: 1em 1em 0;
}
@media screen and (max-width: 451px) {
  .subsidy_sec02_text02 {
    order: 1;
    padding: 0 10px;
    width: 100%;
  }
}
.subsidy_sec02_text02 img {
  max-width: 100%;
  height: auto;
}
.subsidy_sec02_img02 {
  width: 13%;
  padding-right: 1em;
}
@media screen and (max-width: 451px) {
  .subsidy_sec02_img02 {
    order: 3;
    width: 50px;
    padding-right: 10px;
  }
}
.subsidy_sec02_img02 img {
  max-width: 100%;
  height: auto;
}
.subsidy_sec02_caution01 {
  font-size: 12px;
  line-height: var(--lh);
  padding: 1em;
}
@media screen and (max-width: 451px) {
  .subsidy_sec02_caution01 {
    order: 2;
    flex: 1;
    font-size: 11px;
    padding: 20px 10px 0 10px;
    width: 80%;
  }
}
.subsidy_sec02_text03 {
  width: 100%;
  padding: 1em;
}
.subsidy_sec02_text03 img {
  max-width: 100%;
  height: auto;
}
.subsidy_sec02_group03 {
  display: flex;
  flex-flow: column;
  padding: 1em;
  position: relative;
}
@media screen and (max-width: 451px) {
  .subsidy_sec02_group03 {
    flex-flow: row wrap;
    padding: 0 1em 1em;
    align-items: center;
    gap: 10px;
  }
}
.subsidy_sec02_group03 img {
  max-width: 100%;
  height: auto;
}
.subsidy_sec02_unit02 {
  position: relative;
  display: flex;
  flex-flow: row nowrap;
  justify-content: space-around;
}
@media screen and (max-width: 451px) {
  .subsidy_sec02_unit02 {
    display: contents;
  }
}
.subsidy_sec02_unit02::before {
  content: "";
  position: absolute;
  top: -30px;
  left: 0;
  background: url(../pic/top/subsidy_sec02_example_eco_pc.svg) no-repeat 50% 50%;
  background-size: contain;
  width: 70px;
  height: 70px;
  z-index: 1;
}
@media screen and (max-width: 451px) {
  .subsidy_sec02_unit02::before {
    top: -10px;
    width: 40px;
    height: 40px;
  }
}
.subsidy_sec02_img03 {
  position: relative;
  width: 25%;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec02_img03 {
    width: 32%;
  }
}
@media screen and (max-width: 451px) {
  .subsidy_sec02_img03 {
    width: calc(50% - 5px);
  }
}
.subsidy_sec02_img03 img {
  max-width: 100%;
  height: auto;
}
.subsidy_sec02_img03::before {
  position: absolute;
  bottom: 5px;
  left: 10px;
  color: var(--wc);
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.7);
}
@media screen and (max-width: 451px) {
  .subsidy_sec02_img03::before {
    bottom: 10px;
    top: auto;
    font-size: var(--fzS);
  }
}
.subsidy_sec02_img03.-img-b::before {
  content: "高断熱浴槽";
}
.subsidy_sec02_img03.-img-t::before {
  content: "節水型トイレ";
}
@media screen and (max-width: 451px) {
  .subsidy_sec02_img03.-img-w {
    margin-top: 10px;
  }
}
.subsidy_sec02_img03.-img-w::before {
  content: "節湯水栓";
}
.subsidy_sec02_caution02 {
  font-size: 12px;
  line-height: var(--lh);
  padding: 1em 1em 0;
}
@media screen and (max-width: 451px) {
  .subsidy_sec02_caution02 {
    width: 48%;
    padding: 0;
  }
}

.subsidy_sec03 {
  position: relative;
}
.subsidy_sec03::before {
  content: "";
  background: url(../pic/top/subsidy_sec03_bg.svg) no-repeat center bottom;
  background-size: cover;
  width: 100%;
  height: auto;
  /* 画像の縦横比を維持して高さを出す*/
  aspect-ratio: 10/2;
  position: absolute;
  left: 0;
  top: 70px;
  transform: translateY(-100%);
  z-index: -1;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec03::before {
    top: 0px;
  }
}
.subsidy_sec03_container {
  padding: 0 6em 8em;
  margin: 0 auto;
  background-color: #e8f0ca;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec03_container {
    padding: 0 2em 4em;
  }
}
.subsidy_sec03_top {
  display: flex;
  flex-flow: row nowrap;
  justify-content: center;
  align-items: flex-end;
  width: 70%;
  margin: 0 auto -2em;
}
@media screen and (max-width: 769px) {
  .subsidy_sec03_top {
    width: 100%;
    flex-flow: row wrap;
    justify-content: left;
    margin: 0 auto -4em;
  }
}
.subsidy_sec03_top_img {
  width: 15%;
  margin-right: 2em;
}
@media screen and (max-width: 769px) {
  .subsidy_sec03_top_img {
    width: 20%;
    order: 2;
  }
}
@media screen and (max-width: 451px) {
  .subsidy_sec03_top_img {
    width: 30%;
  }
}
.subsidy_sec03_top_img img {
  width: 100%;
  height: auto;
}
.subsidy_sec03_top_title {
  width: 60%;
  margin-bottom: 4em;
}
@media screen and (max-width: 769px) {
  .subsidy_sec03_top_title {
    width: 80%;
    order: 1;
    margin-bottom: -2em;
    margin-right: 0;
    margin-left: auto;
  }
}
@media screen and (max-width: 451px) {
  .subsidy_sec03_top_title {
    width: 100%;
    margin-bottom: -1em;
  }
}
.subsidy_sec03_top_title img {
  width: 100%;
  height: auto;
}
.subsidy_sec03_bottom {
  display: flex;
  flex-flow: row nowrap;
  justify-content: center;
  align-items: flex-end;
  width: 70%;
  margin: 0 auto;
  padding-top: 4em;
}
@media screen and (max-width: 769px) {
  .subsidy_sec03_bottom {
    width: 100%;
    flex-flow: row wrap;
    justify-content: right;
    padding-top: 3em;
  }
}
.subsidy_sec03_bottom_title {
  width: 60%;
  margin-bottom: 4em;
  margin-right: 2em;
}
@media screen and (max-width: 769px) {
  .subsidy_sec03_bottom_title {
    width: 80%;
    margin-bottom: -1em;
    margin-left: 0;
    margin-right: auto;
  }
}
@media screen and (max-width: 451px) {
  .subsidy_sec03_bottom_title {
    width: 100%;
    margin-bottom: 0em;
  }
}
.subsidy_sec03_bottom_title img {
  width: 100%;
  height: auto;
}
.subsidy_sec03_bottom_img {
  width: 30%;
}
@media screen and (max-width: 769px) {
  .subsidy_sec03_bottom_img {
    width: 40%;
  }
}
@media screen and (max-width: 451px) {
  .subsidy_sec03_bottom_img {
    width: 60%;
  }
}
.subsidy_sec03_bottom_img img {
  width: 100%;
  height: auto;
}
.subsidy_sec03_contact {
  background-color: var(--wc);
  border: 2.5px solid var(--bc);
  border-radius: var(--bdrs1);
  display: flex;
  flex-flow: column;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
}
.subsidy_sec03_contact_title {
  width: 600px;
  display: flex;
  flex-flow: row nowrap;
  justify-content: space-around;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec03_contact_title {
    width: 60%;
  }
}
@media screen and (max-width: 769px) {
  .subsidy_sec03_contact_title {
    width: 80%;
  }
}
@media screen and (max-width: 451px) {
  .subsidy_sec03_contact_title {
    width: 90%;
  }
}

.subsidy_sec04 {
  position: relative;
}
.subsidy_sec04_container {
  padding: 8em 10em;
  display: flex;
  flex-flow: column;
  align-items: center;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec04_container {
    padding: 4em 2em 6em 2em;
  }
}
.subsidy_sec04_block {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  padding-bottom: 4em;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec04_block {
    flex-flow: column;
    justify-content: center;
  }
}
@media screen and (max-width: 769px) {
  .subsidy_sec04_block {
    padding-bottom: 0;
  }
}
.subsidy_sec04_block:last-child {
  padding-bottom: 0em;
}
.subsidy_sec04_block.-reverse {
  flex-flow: row-reverse nowrap;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec04_block.-reverse {
    flex-flow: row-reverse wrap;
  }
}
.subsidy_sec04_block.-reverse {
  /* 偶数(リバース)時はマーカーの色をグリーンにする */
}
.subsidy_sec04_block.-reverse .subsidy_sec04_textbox_main h3::after {
  background-color: var(--green);
}
.subsidy_sec04_block {
  /* --- ボタンホバー時に画像を拡大させる設定 --- */
}
.subsidy_sec04_block:has(.btn:hover) .subsidy_sec04_img img {
  transform: scale(1.1);
  transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
}
.subsidy_sec04_block:has(.btn:hover) .subsidy_sec04_textbox_main h3::after {
  transform: scaleX(1);
}
.subsidy_sec04_textbox {
  width: 60%;
  display: flex;
  flex-flow: column;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec04_textbox {
    width: 100%;
  }
}
@media screen and (max-width: 769px) {
  .subsidy_sec04_textbox {
    width: 100%;
  }
}
.subsidy_sec04_textbox_main {
  display: flex;
  flex-flow: column;
  padding: 4em 0;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec04_textbox_main {
    padding: 3em 0 2em;
  }
}
@media screen and (max-width: 451px) {
  .subsidy_sec04_textbox_main {
    padding: 4em 0 2em;
  }
}
.subsidy_sec04_textbox_main p {
  font-size: var(--fz);
  font-weight: bold;
  padding-bottom: 1.5em;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec04_textbox_main p {
    font-size: var(--fzS);
  }
}
.subsidy_sec04_textbox_main p span {
  font-size: 2.6rem;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec04_textbox_main p span {
    font-size: 2rem;
  }
}
.subsidy_sec04_textbox_main h3 {
  font-size: 3rem;
  font-weight: bold;
  display: inline-block;
  width: -moz-fit-content;
  width: fit-content;
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec04_textbox_main h3 {
    font-size: 2.4rem;
  }
}
.subsidy_sec04_textbox_main h3::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: -1;
  width: 100%;
  height: 30%;
  background-color: var(--keyColor1);
  /* アニメーションの初期状態 */
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}
.subsidy_sec04_textbox_main h3 span {
  font-size: var(--fz);
}
.subsidy_sec04_textbox_sub1 {
  font-size: var(--fzXL);
  font-weight: bold;
  line-height: var(--lhS);
  padding-bottom: 1em;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec04_textbox_sub1 {
    font-size: var(--fzL);
  }
}
@media screen and (max-width: 451px) {
  .subsidy_sec04_textbox_sub1 {
    font-size: var(--fzM);
  }
}
.subsidy_sec04_textbox_sub2 {
  font-size: var(--fzM);
  font-weight: bold;
  line-height: var(--lhS);
  padding-bottom: 1em;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec04_textbox_sub2 {
    font-size: var(--fz);
  }
}
@media screen and (max-width: 451px) {
  .subsidy_sec04_textbox_sub2 {
    font-size: var(--fzS);
  }
}
.subsidy_sec04_textbox_text {
  line-height: var(--lhM);
  font-size: var(--fz);
  padding-bottom: 2em;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec04_textbox_text {
    font-size: var(--fz--sp);
  }
}
@media screen and (max-width: 451px) {
  .subsidy_sec04_textbox_text {
    font-size: var(--fzS--sp);
  }
}
.subsidy_sec04_img {
  width: 40%;
  margin: 2em 4em;
  filter: var(--ds1);
  border-radius: var(--bdrs1);
  overflow: hidden;
  position: relative;
  transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
  will-change: transform;
  transform: scale(1);
}
@media screen and (max-width: 1080px) {
  .subsidy_sec04_img {
    width: 60%;
    margin: 40px 0 0 0;
  }
}
@media screen and (max-width: 451px) {
  .subsidy_sec04_img {
    width: 70%;
  }
}
.subsidy_sec04_img img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
  will-change: transform;
  transform: scale(1);
}

.subsidy_sec05 {
  position: relative;
}
.subsidy_sec05_container {
  padding: 0em 10em 8em;
  display: flex;
  flex-flow: column;
  align-items: center;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec05_container {
    padding: 0 2em 4em;
  }
}
.subsidy_sec05_block {
  display: flex;
  flex-flow: row nowrap;
  justify-content: center;
  padding-bottom: 4em;
  padding-top: 2em;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec05_block {
    flex-flow: row wrap;
  }
}
@media screen and (max-width: 769px) {
  .subsidy_sec05_block {
    padding-top: 0;
    padding-bottom: 0;
  }
}
.subsidy_sec05_box {
  position: relative;
  display: flex;
  flex-flow: column;
  align-items: center;
  width: 30%;
  padding-top: 3em;
  padding-bottom: 3em;
  margin-right: 5%;
  border-top: 0.5rem solid var(--keyColor1);
  border-radius: var(--bdrs1--sp);
  box-shadow: var(--bxs_b);
}
@media screen and (max-width: 1080px) {
  .subsidy_sec05_box {
    width: 40%;
  }
}
@media screen and (max-width: 769px) {
  .subsidy_sec05_box {
    width: 70%;
    margin-bottom: 3em;
  }
}
@media screen and (max-width: 451px) {
  .subsidy_sec05_box {
    width: 100%;
    margin-right: 0;
  }
}
.subsidy_sec05_box::before {
  content: "01";
  position: absolute;
  top: -30px;
  left: 10px;
  font-size: 4rem;
  font-weight: bold;
  color: var(--wc);
  filter: var(--ds_b);
}
@media screen and (max-width: 769px) {
  .subsidy_sec05_box::before {
    font-size: 3rem;
    top: -25px;
  }
}
.subsidy_sec05_box:nth-child(2) {
  border-top: 0.5rem solid var(--green);
  box-shadow: var(--bxs_g);
}
.subsidy_sec05_box:nth-child(2)::before {
  content: "02";
  filter: var(--ds_g);
}
.subsidy_sec05_box:last-child {
  padding-right: 0;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec05_box:last-child {
    margin-top: 4em;
  }
}
@media screen and (max-width: 769px) {
  .subsidy_sec05_box:last-child {
    margin-top: 0;
  }
}
.subsidy_sec05_box:last-child::before {
  content: "03";
}
.subsidy_sec05_main {
  font-size: var(--fzXL);
  font-weight: bold;
  line-height: var(--lhS);
  padding-bottom: 1em;
}
@media screen and (max-width: 769px) {
  .subsidy_sec05_main {
    font-size: var(--fzL);
  }
}
.subsidy_sec05_sub {
  font-size: var(--fzM);
  font-weight: bold;
  line-height: var(--lhS);
  padding-bottom: 1em;
  text-align: center;
}
@media screen and (max-width: 769px) {
  .subsidy_sec05_sub {
    font-size: var(--fz);
  }
}
.subsidy_sec05_text {
  line-height: var(--lhM);
  font-size: var(--fz);
  padding: 0 2em;
}
@media screen and (max-width: 769px) {
  .subsidy_sec05_text {
    font-size: var(--fzS--sp);
  }
}
.subsidy_sec05_text span {
  font-weight: bold;
}

.subsidy_sec06 {
  position: relative;
  margin-bottom: 8em;
  overflow: hidden;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec06 {
    margin-bottom: 0;
  }
}
.subsidy_sec06::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(../pic/top/subsidy_sec06_bg.webp) no-repeat 50% 30%;
  background-size: cover;
  z-index: 0;
  /* アニメーションの設定 */
  transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1);
  will-change: transform;
}
.subsidy_sec06::after {
  content: "";
  background-color: var(--keyColor4);
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
}
.subsidy_sec06:has(.btn:hover)::before {
  transform: scale(1.1);
}
.subsidy_sec06_container {
  position: relative;
  padding: 0em 10em;
  display: flex;
  flex-flow: column;
  align-items: center;
  justify-content: flex-end;
  height: 400px;
  z-index: 2;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec06_container {
    padding: 0 2em;
    height: 350px;
  }
}
.subsidy_sec06_block {
  display: flex;
  flex-flow: row nowrap;
  justify-content: center;
  padding-bottom: 4em;
}
@media screen and (max-width: 1080px) {
  .subsidy_sec06_block {
    padding-bottom: 2em;
  }
}
@media screen and (max-width: 769px) {
  .subsidy_sec06_block {
    padding-bottom: 3em;
  }
}

.fadein {
  will-change: transform, opacity;
}/*# sourceMappingURL=style.css.map */