@charset "UTF-8";
/*
色・余白・フォントサイズなどの変数定義
*/
/*
HTMLタグの基本スタイルを定義
*/
/* 段落 */
p {
  line-height: 1.8;
  font-size: clamp(13px, 2vw, 15px);
}

/* 画像 */
img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

/* リスト */
dl,
dt,
dd,
ol,
ul,
li {
  list-style: none;
}

/* スマホ時のフォームの文字サイズ */
@media screen and (max-width: 768px) {
  input[type=text],
  input[type=password],
  textarea,
  select {
    font-size: 16px;
  }
}
/*
再利用可能なスタイル関数を定義
メディアクエリや装飾処理に使用。
*/
/* ===============================
   Modern Reset (2025)
================================ */
/* すべての要素にbox-sizingと余白リセット */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/* ベース要素 */
html, body {
  height: 100%;
  line-height: 1.5;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  -webkit-text-size-adjust: 100%;
     -moz-text-size-adjust: 100%;
          text-size-adjust: 100%;
}

/* 見出し・段落 */
h1, h2, h3, h4, h5, h6, p {
  font-weight: normal;
  overflow-wrap: break-word;
  margin: 0;
}

p {
  line-height: 1.6;
}

/* リスト系 */
ul, ol {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* リンク */
a {
  text-decoration: none;
  color: inherit;
}

/* テーブル */
table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* フォーム系 */
input, button, select, textarea {
  font: inherit;
  border: none;
  outline: none;
  background: none;
  vertical-align: middle;
}

/* 画像・メディア */
img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
  height: auto;
}

/* ブロック表示に統一（HTML5セクショナル要素） */
article, aside, footer, header, hgroup, main, nav, section {
  display: block;
}

/* 引用タグ（ブラウザによるマークアップを無効に） */
blockquote, q {
  quotes: none;
}

blockquote::before,
blockquote::after,
q::before,
q::after {
  content: "";
}

/* アクセシビリティ補助 */
abbr[title], dfn[title] {
  border-bottom: 1px dotted;
  cursor: help;
}

/* 罫線 */
hr {
  display: block;
  border: none;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  height: 1px;
}

/*
共通レイアウト
*/
/* 
-------------------------------------------------------------------

common

------------------------------------------------------------------- */
body {
  margin: 0;
  padding: 0;
  font-family: "Noto Sans JP", "Yu Gothic Medium", YuGothic, "Hiragino Kaku Gothic ProN", sans-serif;
  font-size: 0.75rem;
  letter-spacing: 0.05em;
  color: #555;
  background: #fff;
}

/* 
-------------------------------------------------------------------

link

------------------------------------------------------------------- */
a:link {
  color: #222;
  text-decoration: underline;
}

a:visited {
  color: #222;
  text-decoration: underline;
}

a:hover {
  color: #222;
  text-decoration: none;
  transition: all 0.3s ease;
}

a:active {
  color: #222;
  text-decoration: underline;
}

/*
レイアウト全体の構造（枠組み）を定義
*/
/*  inner
-------------------------------------------------------------------*/
/*  container
-------------------------------------------------------------------*/
.low_conteiner {
  padding: 100px 0 50px;
  background: #F4F2EB;
}
@media (max-width: 768px) {
  .low_conteiner {
    padding: 50px 0 20px;
  }
}

/*
パーツ単体のスタイルを定義
*/
/* button */
.button {
  text-align: center;
}
.button a {
  padding: 15px 15px;
  font-weight: bold;
  font-size: 16px;
  text-align: center;
  border-radius: 5px;
  box-sizing: border-box;
  text-decoration: none;
  background: #fff;
  display: block;
  transition: 0.3s ease-in-out;
}
.button a:hover {
  color: #fff;
  background: #029bd4;
}
.button.wht a {
  color: #114FA1;
  background: #fff;
}
.button.blu a {
  color: #fff;
  background: #114FA1;
}
.button.light a {
  color: #fff;
  background: #57A2DE;
}
.button.border a {
  color: #114FA1;
  border: 1px #114FA1 solid;
  background: #fff;
}
.button span {
  position: relative;
  display: block;
}
.button span::before {
  content: "";
  margin: auto;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0px;
  /* 要素の右からの距離 */
  width: 10px;
  height: 10px;
  transform: rotate(45deg);
  /* 角度調整 */
}
.button span::after {
  content: "";
  margin: auto;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0px;
  /* 要素の右からの距離 */
  width: 13px;
  height: 2px;
}
.button span.wht_arw::before {
  border-top: 2px solid #114FA1;
  border-right: 2px solid #114FA1;
}
.button span.wht_arw::after {
  background: #114FA1;
}
.button span.blu_arw::before {
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
}
.button span.blu_arw::after {
  background: #fff;
}
.button span.light_arw::before {
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
}
.button span.light_arw::after {
  background: #fff;
}

/* button width 320px */
.cmn_w {
  width: 320px;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 480px) {
  .cmn_w {
    width: auto;
    margin-left: 15px;
    margin-right: 15px;
  }
}

/* button width service */
.service_w {
  width: 320px;
  margin: 0 auto;
  padding: 80px 0;
}
@media (max-width: 768px) {
  .service_w {
    padding: 50px 0;
  }
}
@media (max-width: 480px) {
  .service_w {
    width: auto;
  }
}

/* button width service b */
.service_b {
  margin-top: auto;
  margin-left: 20px;
  margin-right: 20px;
}

/* button width low */
.low_w {
  width: 500px;
  margin: 0 auto;
  padding: 80px 0;
}
@media (max-width: 768px) {
  .low_w {
    padding: 50px 0;
  }
}
@media screen and (max-width: 560px) {
  .low_w {
    width: auto;
    margin: 0 15px;
  }
}

/* button width plan */
.plan_w {
  width: 400px;
  margin: 30px auto 0;
}
@media screen and (max-width: 560px) {
  .plan_w {
    width: auto;
  }
}

/*
汎用クラスを定義
*/
/* ===============================
   _utility.scss
   汎用ユーティリティクラス
================================ */
/* フェードインエフェクト */
.fade {
  transition: 0.3s ease-in-out;
}

.fade:hover {
  opacity: 0.5;
  filter: alpha(opacity=60);
}

@media screen and (max-width: 768px) {
  .fade:hover {
    opacity: 1;
    filter: alpha(opacity=100);
  }
}
/* テキスト位置 */
.center {
  text-align: center;
}

.alignR {
  text-align: right !important;
}

.alignL {
  text-align: left !important;
}

/* フォントファミリー */
.gothic {
  font-family: "メイリオ", Meiryo, "Hiragino Kaku Gothic Pro", "游ゴシック", YuGothic, sans-serif;
}

.mincho {
  font-family: "Times New Roman", Times, "Hiragino Mincho ProN", "游明朝", YuMincho, serif;
}

.roboto {
  font-family: "Roboto", sans-serif;
}

.notosan {
  font-family: "Noto Sans JP", sans-serif;
}

/* テキストサイズ・装飾 */
.bold {
  font-weight: bold;
}

.plh {
  line-height: 1.8;
}

.text-sm {
  font-size: 0.75rem;
}

.text-base {
  font-size: 1rem;
}

.text-md {
  font-size: 1.25rem;
}

.text-lg {
  font-size: 1.875rem;
}

.text-xl {
  font-size: 2.5rem;
}

/* 文字色 */
.re {
  color: #ff7d78;
}

.gray {
  color: #999999;
}

.bl {
  color: #114FA1;
}

/* マージン（上下左右） */
.mt5 {
  margin-top: 5px;
}

.mb5 {
  margin-bottom: 5px;
}

.mt10 {
  margin-top: 10px;
}

.mb10 {
  margin-bottom: 10px;
}

.mt15 {
  margin-top: 15px;
}

.mb15 {
  margin-bottom: 15px;
}

.mt20 {
  margin-top: 20px;
}

.mb20 {
  margin-bottom: 20px;
}

.mt25 {
  margin-top: 25px;
}

.mb25 {
  margin-bottom: 25px;
}

.mt30 {
  margin-top: 30px;
}

.mb30 {
  margin-bottom: 30px;
}

.mt35 {
  margin-top: 35px;
}

.mb35 {
  margin-bottom: 35px;
}

.mt40 {
  margin-top: 40px;
}

.mb40 {
  margin-bottom: 40px;
}

.mt45 {
  margin-top: 45px;
}

.mb45 {
  margin-bottom: 45px;
}

.mt50 {
  margin-top: 50px;
}

.mb50 {
  margin-bottom: 50px;
}

.mt55 {
  margin-top: 55px;
}

.mb55 {
  margin-bottom: 55px;
}

.mt60 {
  margin-top: 60px;
}

.mb60 {
  margin-bottom: 60px;
}

.mt65 {
  margin-top: 65px;
}

.mb65 {
  margin-bottom: 65px;
}

.mt70 {
  margin-top: 70px;
}

.mb70 {
  margin-bottom: 70px;
}

.mt75 {
  margin-top: 75px;
}

.mb75 {
  margin-bottom: 75px;
}

.mt80 {
  margin-top: 80px;
}

.mb80 {
  margin-bottom: 80px;
}

.mt85 {
  margin-top: 85px;
}

.mb85 {
  margin-bottom: 85px;
}

.mt90 {
  margin-top: 90px;
}

.mb90 {
  margin-bottom: 90px;
}

.mt95 {
  margin-top: 95px;
}

.mb95 {
  margin-bottom: 95px;
}

.mt100 {
  margin-top: 100px;
}

.mb100 {
  margin-bottom: 100px;
}

.mr5 {
  margin-right: 5px;
}

.mr10 {
  margin-right: 10px;
}

/* ブロック表示 */
.block {
  display: block;
}

/* レスポンシブ表示切替 */
.pc-none {
  display: none;
}

@media screen and (max-width: 414px) {
  .pc-none {
    display: block;
  }
}
/* 
-------------------------------------------------------------------

common

------------------------------------------------------------------- */
/*  title
-------------------------------------------------------------------*/
.top_title {
  margin-bottom: 20px;
  font-size: clamp(25px, 2.5vw, 40px);
  font-weight: bold;
  color: #2578BB;
  text-align: center;
}

/*  lead
-------------------------------------------------------------------*/
.lead_txt {
  line-height: 2;
  margin-bottom: 20px;
  font-size: clamp(14px, 1vw, 16px);
  font-weight: bold;
  text-align: center;
}
@media (max-width: 480px) {
  .lead_txt {
    line-height: 1.8;
    text-align: left;
  }
}

/*  cta
-------------------------------------------------------------------*/
.cta_block {
  padding: 80px 0;
  background: #EFF2F6;
}
@media (max-width: 768px) {
  .cta_block {
    padding: 50px 0;
  }
}

.cta {
  margin-top: 50px;
  padding: 35px 30px;
  border-radius: 20px;
  background: #fff;
  display: flex;
}
@media screen and (max-width: 1000px) {
  .cta {
    padding: 25px 20px;
  }
}
@media (max-width: 768px) {
  .cta {
    margin-top: 30px;
    padding: 25px 0px;
    display: block;
  }
}
.cta li {
  padding: 0 25px;
  text-align: center;
  border-right: 1px #EFF2F6 solid;
  flex: 1;
}
@media (max-width: 768px) {
  .cta li {
    margin-bottom: 30px;
    border-right: none;
  }
}
.cta li:last-child {
  border-right: none;
}
.cta li .cta_ttl {
  margin-bottom: 20px;
  font-size: clamp(18px, 1.2vw, 20px);
  font-weight: 800;
  color: #486284;
}
@media (max-width: 768px) {
  .cta li .cta_ttl {
    margin-bottom: 10px;
  }
}
.cta li .cta_txt {
  margin-bottom: 20px;
  font-size: 14px;
}
@media (max-width: 768px) {
  .cta li .cta_txt {
    font-size: 14px;
    text-align: left;
  }
  .cta li .cta_txt br {
    display: none;
  }
}
.cta li .cta_phone {
  margin-bottom: 5px;
}
.cta li .cta_phone a {
  font-size: clamp(30px, 2.5vw, 40px);
  font-weight: bold;
  color: #486284;
  text-decoration: none;
}
.cta li .cta_phone_note {
  font-size: 14px;
}
.cta li .cta_btn {
  width: 270px;
  margin: 0 auto;
}
@media screen and (max-width: 1200px) {
  .cta li .cta_btn {
    width: auto;
  }
}

/* 
-------------------------------------------------------------------

low common

------------------------------------------------------------------- */
/*  low title
-------------------------------------------------------------------*/
.low_head {
  margin-bottom: 100px;
  position: relative;
}
@media (max-width: 768px) {
  .low_head {
    margin-top: 45px;
    margin-bottom: 30px;
  }
}
.low_head.mb_none {
  margin-bottom: 0px !important;
}
@media (max-width: 768px) {
  .low_head .head_img {
    width: 100%;
    height: 28vw;
    /* 3:4の比率（幅100vw * 4/3） */
    overflow: hidden;
    /* はみ出した部分をカット */
    display: flex;
    justify-content: center;
    align-items: center;
  }
}
.low_head .head_img img {
  width: 100%;
  vertical-align: bottom;
}
@media (max-width: 768px) {
  .low_head .head_img img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    -o-object-position: 80% 20%;
       object-position: 80% 20%;
  }
}
.low_head .low_title {
  width: 94%;
  font-size: clamp(25px, 3vw, 50px);
  font-weight: bold;
  color: #333;
  text-align: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.low_head .low_title span {
  font-size: clamp(15px, 3vw, 20px);
  text-transform: uppercase;
  display: block;
}

/*  low title2
-------------------------------------------------------------------*/
.low_title2 {
  margin-bottom: 100px;
  padding: clamp(25px, 5vw, 70px) 15px;
  font-size: clamp(25px, 3vw, 50px);
  font-weight: bold;
  color: #fff;
  text-align: center;
  background-image: linear-gradient(45deg, #bacfe4, #89aed6);
}
.low_title2.mb_none {
  margin-bottom: 0px !important;
}
@media (max-width: 768px) {
  .low_title2 {
    margin-top: 45px;
    margin-bottom: 30px;
  }
}
.low_title2 span {
  font-size: clamp(15px, 3vw, 20px);
  text-transform: uppercase;
  display: block;
}

/*  low title sub
-------------------------------------------------------------------*/
.low_title_sub {
  margin-bottom: 100px;
  color: #333;
  text-align: center;
  font-size: clamp(20px, 3vw, 40px);
  font-weight: bold;
  position: relative;
}
@media (max-width: 768px) {
  .low_title_sub {
    margin-bottom: 60px;
  }
}
.low_title_sub::before {
  content: "";
  width: 25px;
  left: 50%;
  bottom: -15px;
  border-bottom: 5px solid #2578BB;
  position: absolute;
  display: block;
}
.low_title_sub::after {
  content: "";
  width: 25px;
  right: 50%;
  bottom: -15px;
  border-bottom: 5px solid #2578BB;
  position: absolute;
  display: block;
}
.low_title_sub strong {
  color: #114FA1;
  font-weight: bold;
}

/*  low lead
-------------------------------------------------------------------*/
.low_lead {
  padding-bottom: 40px;
  background-image: linear-gradient(#6699e2, #007cc8);
  position: relative;
  z-index: 1;
}
@media (max-width: 768px) {
  .low_lead {
    padding-bottom: 20px;
  }
}
.low_lead::before {
  content: "";
  width: 34%;
  height: 100%;
  background: #fff;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}
@media (max-width: 768px) {
  .low_lead::before {
    width: 80px;
  }
}
.low_lead .low_lead_ttl {
  width: 1000px;
  margin: 0 auto 15px;
  color: #57A2DE;
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 1020px) {
  .low_lead .low_lead_ttl {
    width: auto;
    margin: 0 15px 15px 15px;
  }
}
@media (max-width: 768px) {
  .low_lead .low_lead_ttl {
    padding-bottom: 15px;
    margin: 0 0 0 30px;
    background: #fff;
  }
}
.low_lead .low_lead_ttl::before {
  content: "";
  position: absolute;
  top: 12px;
  /* h2の上端に配置（必要に応じて調整） */
  right: 102%;
  /* h2の左端を起点に左方向へ */
  width: 100vw;
  /* ビューポート幅いっぱいまで */
  height: 1px;
  background: #57A2DE;
}
.low_lead .low_lead_block {
  width: 1000px;
  margin: 0 auto;
  justify-content: space-between;
  display: flex;
  gap: 30px;
  position: relative;
}
@media screen and (max-width: 1020px) {
  .low_lead .low_lead_block {
    width: auto;
    margin: 0 15px 15px;
  }
}
@media (max-width: 768px) {
  .low_lead .low_lead_block {
    padding-top: 20px;
    display: block;
  }
}
.low_lead .low_lead_block li:first-child {
  width: 40%;
  position: relative;
}
.low_lead .low_lead_block li:first-child.plan {
  margin-bottom: 100px;
}
@media (max-width: 768px) {
  .low_lead .low_lead_block li:first-child.plan {
    margin-bottom: 0px;
  }
}
@media (max-width: 768px) {
  .low_lead .low_lead_block li:first-child {
    width: auto;
  }
}
.low_lead .low_lead_block li:first-child img.normal {
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
@media (max-width: 768px) {
  .low_lead .low_lead_block li:first-child img.normal {
    position: static;
  }
}
.low_lead .low_lead_block li:first-child img.center {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}
.low_lead .low_lead_block li:last-child {
  width: 56%;
  line-height: 2;
  padding-bottom: 0px;
  color: #fff;
  font-size: clamp(14px, 1.5vw, 16px);
}
@media (max-width: 768px) {
  .low_lead .low_lead_block li:last-child {
    width: auto;
    padding-top: 15px;
    padding-left: 90px;
  }
}

.label_lead {
  line-height: 1;
  margin-bottom: 50px;
  font-size: clamp(30px, 5vw, 86px);
  color: #F3F7FC;
  font-weight: 900;
}
.label_lead.aircon {
  padding-left: 10px;
  position: relative;
  top: -30px;
  left: 0;
  z-index: 1;
}
@media (max-width: 768px) {
  .label_lead.aircon {
    top: -10px;
  }
}
.label_lead.plan {
  margin-bottom: 100px;
  padding-right: 10px;
  text-align: right;
  position: relative;
  top: 50px;
  left: 0;
  z-index: 1;
}
@media (max-width: 768px) {
  .label_lead.plan {
    margin-bottom: 30px;
    top: -10px;
  }
}
.label_lead.rangehood {
  margin-bottom: 100px;
  padding-right: 10px;
  text-align: right;
  position: relative;
  top: 0px;
  left: 0;
  z-index: 1;
}
@media (max-width: 768px) {
  .label_lead.rangehood {
    margin-bottom: 30px;
    top: -10px;
  }
}

/*  low_intro
-------------------------------------------------------------------*/
.low_intro {
  line-height: 2;
  margin-bottom: 80px;
  text-align: center;
  color: #333;
  font-size: clamp(14px, 1.5vw, 16px);
  font-weight: bold;
}
@media screen and (max-width: 560px) {
  .low_intro {
    margin-bottom: 30px;
  }
}
@media (max-width: 480px) {
  .low_intro {
    text-align: left;
  }
}

/*  btn_more
-------------------------------------------------------------------*/
.btn_more {
  margin-top: 10px;
  padding-right: 25px;
  text-align: right;
  position: relative;
}
.btn_more.arrow_r_b {
  position: relative;
  display: inline-block;
  padding-left: 22px;
}
.btn_more .arrow_r_b:before {
  content: "";
  width: 18px;
  height: 18px;
  background: #2578BB;
  border-radius: 50%;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}
.btn_more .arrow_r_b:after {
  content: "";
  width: 6px;
  height: 6px;
  border: 0;
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
  transform: rotate(45deg);
  position: absolute;
  top: 0;
  right: 7px;
  bottom: 0;
  margin: auto;
}

/* 
-------------------------------------------------------------------

PagiNavi

------------------------------------------------------------------- */
.wp-pagenavi {
  margin: 30px auto 100px;
  padding: 10px 30px;
  text-align: center;
  border-radius: 50px;
  background: #D9ECFB;
  display: inline-block;
}
@media (max-width: 480px) {
  .wp-pagenavi {
    margin: 0px auto 50px;
  }
}
.wp-pagenavi a {
  font-weight: bold;
  text-decoration: none;
}
.wp-pagenavi a,
.wp-pagenavi .pages,
.wp-pagenavi .current {
  width: 34px;
  height: 34px;
  line-height: 34px;
  padding: 0px 0;
  margin: 0 5px;
  color: #2578BB;
  text-decoration: none;
  border-radius: 50px;
  border: 1px #D9ECFB solid;
  background: #D9ECFB;
  display: inline-block;
}
.wp-pagenavi a:hover,
.wp-pagenavi .current {
  margin: 0 5px;
  background: #2578BB;
  border-radius: 50px;
  border: 1px #2578BB solid;
  color: #fff;
  text-decoration: none;
  transition: 0.2s all ease 0s;
}
.wp-pagenavi .nextpostslink,
.wp-pagenavi .previouspostslink {
  color: #2578BB;
  background: #D9ECFB;
}
.wp-pagenavi .nextpostslink:hover,
.wp-pagenavi .previouspostslink:hover {
  color: #fff;
  background: #2578BB;
}

/* clamp メモ

font-size: clamp(11px, 1vw, 20px);
font-size: clamp(16px, 1.2vw, 20px);

    <div class="cmn_w">
      <p class="button blu mb20"><a href="./contact.html" class="fade"><span class="blu_arw">施工事例一覧</span></a></p>
    </div>




*/
/* 
-------------------------------------------------------------------

header

------------------------------------------------------------------- */
.header {
  height: 80px;
  padding: 0 0 0 20px;
  background: #fff;
  justify-content: space-between;
  align-items: center;
  display: flex;
}
@media (max-width: 768px) {
  .header {
    width: 100%;
    height: 45px;
    padding: 0 0 0 15px;
    position: fixed;
    top: 0;
    z-index: 999;
    box-sizing: border-box;
  }
}
.header .logo {
  align-items: center;
  display: flex;
}
.header .logo h1 {
  transition: 0.3s ease-in-out;
}
.header .logo h1 img {
  width: 250px;
  height: auto;
  max-width: none;
  transition: 0.3s ease-in-out;
}
@media (max-width: 1024px) {
  .header .logo h1 img {
    width: 160px;
  }
}
.header .logo .catch {
  line-height: 1.4;
  margin-top: 5px;
  margin-left: 15px;
  color: #777E90;
  font-size: clamp(11px, 1vw, 14px);
  font-weight: 500;
}
@media screen and (max-width: 800px) {
  .header .logo .catch {
    display: none;
  }
}
.header .head_cta {
  height: 100%;
  display: flex;
}
@media (max-width: 768px) {
  .header .head_cta {
    display: none;
  }
}
.header .head_cta .phone_cta {
  margin-right: 30px;
  align-items: center;
  display: flex;
}
@media (max-width: 1024px) {
  .header .head_cta .phone_cta {
    margin-right: 15px;
  }
}
.header .head_cta .phone_cta .phone_info {
  line-height: 1;
  text-align: center;
}
.header .head_cta .phone_cta .phone_info dt {
  margin-bottom: 5px;
  font-size: clamp(11px, 1vw, 12px);
}
.header .head_cta .phone_cta .phone_info dd.phone_num {
  color: #333;
  font-weight: bold;
  font-size: clamp(15px, 1.8vw, 25px);
}
.header .head_cta .phone_cta .phone_info dd.phone_num a {
  text-decoration: none;
  transition: 0.3s ease-in-out;
}
.header .head_cta .phone_cta .phone_info dd.phone_num a:hover {
  opacity: 0.6;
}
.header .head_cta .phone_cta .phone_info dd.dayoff {
  margin-top: 5px;
  font-size: clamp(11px, 1vw, 12px);
}
.header .head_cta .btn_cta {
  display: flex;
}
.header .head_cta .btn_cta li {
  white-space: nowrap;
}
.header .head_cta .btn_cta li:first-child a {
  background: #57A2DE;
}
.header .head_cta .btn_cta li:last-child a {
  background: #114FA1;
}
.header .head_cta .btn_cta li a {
  width: 160px;
  height: 100% !important;
  margin: 0 !important;
  padding: 0px 35px !important;
  font-size: clamp(14px, 1.2vw, 16px);
  font-weight: bold;
  text-align: center;
  color: #fff !important;
  transition: 0.3s ease-in-out;
  align-items: center;
  justify-content: center;
  display: flex;
  text-decoration: none;
  white-space: nowrap;
}
@media (max-width: 1024px) {
  .header .head_cta .btn_cta li a {
    width: 120px;
  }
}
.header .head_cta .btn_cta li a:hover {
  opacity: 0.8;
}

/* navi
------------------------------------------------------------------- */
.navi {
  align-items: center;
  justify-content: center;
  display: flex;
  background: #F8F8F8;
}
@media (max-width: 768px) {
  .navi {
    display: none;
  }
}
.navi li a {
  margin: 0 30px;
  padding: 25px 5px;
  color: #333;
  font-size: clamp(13px, 1.5vw, 16px);
  font-weight: bold;
  text-decoration: none;
  align-items: center;
  justify-content: center;
  display: flex;
  transition: all 0.3s;
  position: relative;
  overflow: hidden;
}
@media screen and (max-width: 1200px) {
  .navi li a {
    margin: 0 20px;
  }
}
@media screen and (max-width: 1000px) {
  .navi li a {
    margin: 0 10px;
  }
}
.navi li a::after {
  position: absolute;
  left: 0;
  content: "";
  width: 100%;
  height: 5px;
  background: #114FA1;
  bottom: -5px;
  opacity: 0;
  visibility: hidden;
  transition: 0.3s;
}
.navi li a:hover {
  color: #114FA1;
}
.navi li a:hover::after {
  visibility: visible;
  bottom: 0;
  opacity: 1;
}
.navi li.current-menu-item a, .navi li.current-page-ancestor a {
  color: #114FA1;
}
.navi li.current-menu-item a::after, .navi li.current-page-ancestor a::after {
  visibility: visible !important;
  bottom: 0 !important;
  opacity: 1 !important;
}

/* 
-------------------------------------------------------------------

mobile navi

------------------------------------------------------------------- */
.icon_drawer,
.mobile_mail,
.mobile_phone,
.mobile_navi {
  display: none;
}

@media (max-width: 768px) {
  .mobile_phone {
    position: absolute;
    top: 0px;
    right: 90px;
    display: block;
  }
  .mobile_phone a {
    width: 45px;
    height: 45px;
    background: #87BCE8;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .mobile_mail {
    position: absolute;
    top: 0px;
    right: 45px;
    display: block;
  }
  .mobile_mail a {
    width: 45px;
    height: 45px;
    background: #57A2DE;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  /* drawerボタン */
  .icon_drawer {
    width: 45px;
    height: 45px;
    display: block;
    cursor: pointer;
    text-align: center;
    position: absolute;
    top: 0px;
    right: 0;
    z-index: 9999;
    background: #1F509A;
    -webkit-tap-highlight-color: transparent;
  }
  .icon_drawer span {
    width: 25px;
    height: 1px;
    background: #fff;
    position: absolute;
    top: 22px;
    left: 10px;
    margin: auto;
    transition: all 0.3s;
    transform: rotate(0deg);
  }
  .icon_drawer span:nth-of-type(1) {
    transform: translateY(-8px);
  }
  .icon_drawer span:nth-of-type(3) {
    transform: translateY(8px);
  }
  .is-open span:nth-of-type(2) {
    background: rgba(51, 51, 51, 0);
  }
  .is-open span:nth-of-type(1) {
    transform: rotate(-45deg) translateY(0px);
  }
  .is-open span:nth-of-type(3) {
    transform: rotate(45deg) translateY(0px);
  }
  /* mobile_navi */
  .mobile_navi {
    width: 100%;
    height: 100vh;
    padding: 10px 20px 180px;
    color: #fff;
    background: #1F509A;
    box-sizing: border-box;
    display: block;
    overflow-x: hidden;
    overflow-y: auto;
    position: fixed;
    top: 45px;
    right: 0;
    z-index: 9;
    transform: translatex(100%);
    transition: all 0.5s ease;
    opacity: 0;
    -webkit-overflow-scrolling: touch;
  }
  .mobile_navi.on {
    transition: all 0.5s ease;
    transform: translateX(0px);
    opacity: 1;
  }
  .mobile_navi ul {
    margin-bottom: 20px;
  }
  .mobile_navi ul li a {
    padding: 15px 0px;
    font-size: 16px;
    color: #fff;
    text-decoration: none;
    border-bottom: 1px #386CB9 solid;
    display: block;
    background: url(../img/ico_arw.svg) no-repeat right center;
  }
  .mobile_navi .mobile_ttl {
    margin-bottom: 20px;
    text-align: center;
    color: #fff;
    font-size: 20px;
  }
  .mobile_navi .phone_info {
    line-height: 1;
    margin-bottom: 30px;
    text-align: center;
    color: #fff;
  }
  .mobile_navi .phone_info dt {
    margin-bottom: 8px;
    font-size: 13px;
  }
  .mobile_navi .phone_info dd.phone_num {
    font-weight: bold;
    font-size: 25px;
  }
  .mobile_navi .phone_info dd.phone_num a {
    text-decoration: none;
    transition: 0.3s ease-in-out;
    color: #fff;
  }
  .mobile_navi .phone_info dd.phone_num a:hover {
    opacity: 0.6;
  }
  .mobile_navi .phone_info dd.dayoff {
    margin-top: 8px;
    font-size: 13px;
  }
  /* open時コンテンツ固定 */
  .scroll-prevent {
    width: 100%;
    height: 100vh;
    position: fixed;
    top: 0;
    right: 0;
    z-index: -1;
    box-sizing: border-box;
    overflow: hidden;
  }
}
/* 
-------------------------------------------------------------------

top

------------------------------------------------------------------- */
/* top slider
------------------------------------------------------------------- */
.top_slider_wrap {
  position: relative;
}
@media (max-width: 768px) {
  .top_slider_wrap {
    margin-top: 45px;
  }
}
.top_slider_wrap::after {
  content: "";
  width: 90px;
  height: 150px;
  background: #00409A;
  position: absolute;
  left: 0;
  bottom: 0;
}
@media (max-width: 768px) {
  .top_slider_wrap::after {
    background: none;
  }
}
.top_slider_wrap .top_catch {
  width: 50px;
  height: 50px;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 90px;
  background: #ccc;
  z-index: 3;
}
@media (max-width: 768px) {
  .top_slider_wrap .top_catch {
    left: 0px;
  }
}

.top_slider {
  margin-left: 90px;
  position: relative;
  z-index: 1;
}
@media (max-width: 768px) {
  .top_slider {
    margin-left: 0px;
  }
}
.top_slider .slide-item img {
  width: 100%;
  vertical-align: bottom;
}
.top_slider .slide-item a {
  transition: 0.3s ease-in-out;
}
.top_slider .slide-item a:hover {
  opacity: 0.8;
}

/* arrow
  ------------------------------------- */
.top_slider .slide-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
  z-index: 3;
  transition: 0.3s ease-in-out;
}
@media (max-width: 768px) {
  .top_slider .slide-arrow {
    top: 45%;
    transform: translateY(-45%);
  }
}
.top_slider .next-arrow {
  width: 34px;
  height: 34px;
  line-height: 34px;
  text-align: center;
  border-radius: 50px;
  background: #fff;
  right: 20px;
  transition: 0.3s ease-in-out;
}
@media (max-width: 768px) {
  .top_slider .next-arrow {
    width: 25px;
    height: 25px;
    line-height: 25px;
    right: 10px;
  }
}
.top_slider .next-arrow:hover {
  opacity: 0.7;
}
.top_slider .next-arrow .top-next {
  position: relative;
  display: inline-block;
  width: 10px;
  height: 19px;
}
@media (max-width: 768px) {
  .top_slider .next-arrow .top-next {
    width: 8px;
    height: 14px;
  }
}
.top_slider .next-arrow .top-next::before, .top_slider .next-arrow .top-next::after {
  content: "";
  position: absolute;
  top: 65%;
  right: 0;
  width: 8px;
  height: 2px;
  border-radius: 9999px;
  background-color: #2578bb;
  transform-origin: calc(100% - 1px) 65%;
}
@media (max-width: 768px) {
  .top_slider .next-arrow .top-next::before, .top_slider .next-arrow .top-next::after {
    top: 50%;
    transform-origin: calc(100% - 1px) 50%;
  }
}
.top_slider .next-arrow .top-next::before {
  transform: rotate(45deg);
}
.top_slider .next-arrow .top-next::after {
  transform: rotate(-45deg);
}
.top_slider .prev-arrow {
  width: 35px;
  height: 34px;
  line-height: 34px;
  text-align: center;
  border-radius: 50px;
  background: #fff;
  left: 20px;
  transition: 0.3s ease-in-out;
}
@media (max-width: 768px) {
  .top_slider .prev-arrow {
    width: 25px;
    height: 25px;
    line-height: 25px;
    left: 10px;
  }
}
.top_slider .prev-arrow:hover {
  opacity: 0.7;
}
.top_slider .prev-arrow .top-prev {
  position: relative;
  display: inline-block;
  width: 10px;
  height: 19px;
}
@media (max-width: 768px) {
  .top_slider .prev-arrow .top-prev {
    width: 8px;
    height: 14px;
  }
}
.top_slider .prev-arrow .top-prev::before, .top_slider .prev-arrow .top-prev::after {
  content: "";
  position: absolute;
  top: 65%;
  left: 0;
  width: 8px;
  height: 2px;
  border-radius: 9999px;
  background-color: #2578bb;
  transform-origin: 1px 65%;
}
@media (max-width: 768px) {
  .top_slider .prev-arrow .top-prev::before, .top_slider .prev-arrow .top-prev::after {
    top: 50%;
    transform-origin: 1px 50%;
  }
}
.top_slider .prev-arrow .top-prev::before {
  transform: rotate(45deg);
}
.top_slider .prev-arrow .top-prev::after {
  transform: rotate(-45deg);
}

/* top message
------------------------------------------------------------------- */
.top_message {
  padding-left: 90px;
  background-image: linear-gradient(#00409a, #007cc8);
  align-items: center;
  display: flex;
  gap: 30px;
}
@media screen and (max-width: 950px) {
  .top_message {
    display: block;
  }
}
@media (max-width: 768px) {
  .top_message {
    padding-left: 0px;
  }
}
.top_message .message_block {
  padding: 30px 0;
  color: #fff;
  flex: 1;
}
@media (max-width: 768px) {
  .top_message .message_block {
    padding: 40px 25px 20px;
  }
  .top_message .message_block br {
    display: none;
  }
}
.top_message .message_block > h2 {
  margin-bottom: 40px;
  letter-spacing: 0.1em;
  font-size: clamp(30px, 3vw, 50px);
  font-weight: 500;
}
@media (max-width: 480px) {
  .top_message .message_block > h2 {
    margin-bottom: 20px;
  }
}
.top_message .message_block > h2 span {
  font-size: clamp(20px, 2vw, 40px);
}
.top_message .message_block > p {
  line-height: 2.3;
  margin-bottom: 30px;
  font-size: clamp(13px, 1vw, 16px);
}
.top_message .message_list {
  width: 40%;
}
@media screen and (max-width: 950px) {
  .top_message .message_list {
    width: auto;
  }
}
.top_message .message_list .message_card {
  align-items: center;
  display: flex;
}
.top_message .message_list .message_card:nth-child(odd) {
  background: #F3FAFF;
}
.top_message .message_list .message_card:nth-child(even) {
  background: #DEF0FF;
}
.top_message .message_list .message_card li:first-child img {
  height: 180px;
}
@media (max-width: 480px) {
  .top_message .message_list .message_card li:first-child img {
    height: 120px;
  }
}
.top_message .message_list .message_card li:last-child {
  padding: 0 15px;
  flex: 1;
}
.top_message .message_list .message_card li:last-child .message_ttl {
  margin-bottom: 10px;
  color: #2578BB;
  font-size: clamp(16px, 1.2vw, 20px);
  font-weight: bold;
}

/* service
------------------------------------------------------------------- */
.top_service {
  padding: 80px 0;
}
@media (max-width: 768px) {
  .top_service {
    padding: 50px 0;
  }
}

.top_service_bg {
  margin-top: 30px;
  position: relative;
  background: #F4F2EB;
  z-index: 1;
}
.top_service_bg::before {
  content: "";
  width: 100%;
  height: 70px;
  background: #fff;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
}

.inner {
  width: 1200px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
  /* service_block */
  /* service_block_other*/
}
@media screen and (max-width: 1220px) {
  .inner {
    width: auto;
    margin-left: 15px;
    margin-right: 15px;
  }
}
.inner.pdb {
  padding-bottom: 90px;
}
@media (max-width: 768px) {
  .inner.pdb {
    padding-bottom: 50px;
  }
}
.inner .top_service_block {
  margin-top: 50px;
  display: grid;
  grid-template: repeat(1, 1fr)/repeat(3, 1fr);
  gap: 3px;
}
@media (max-width: 768px) {
  .inner .top_service_block {
    grid-template: repeat(1, 1fr)/repeat(2, 1fr);
  }
}
@media (max-width: 480px) {
  .inner .top_service_block {
    grid-template: repeat(1, 1fr)/repeat(1, 1fr);
  }
}
.inner .top_service_block li a {
  text-decoration: none;
}
.inner .top_service_block li a figure {
  margin: 0 0 0 !important;
}
.inner .top_service_block li a figcaption {
  padding: 20px 10px;
  color: #2578BB;
  text-align: center;
  font-size: clamp(16px, 1.2vw, 20px);
  font-weight: bold;
  background: #fff;
  position: relative;
  display: block;
}
.inner .top_service_block li a figcaption::before {
  content: "";
  margin: auto;
  border-top: 2px solid #114FA1;
  border-right: 2px solid #114FA1;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 15px;
  /* 要素の右からの距離 */
  width: 10px;
  height: 10px;
  transform: rotate(45deg);
  /* 角度調整 */
}
.inner .top_service_block li a figcaption::after {
  content: "";
  margin: auto;
  background: #114FA1;
  position: absolute;
  top: 0;
  bottom: 0;
  right: 15px;
  /* 要素の右からの距離 */
  width: 13px;
  height: 2px;
}
.inner .top_service_block_other {
  margin-top: 3px;
  margin-bottom: 3px;
  align-items: center;
  display: flex;
  background: #fff;
}
@media (max-width: 768px) {
  .inner .top_service_block_other {
    display: block;
  }
}
.inner .top_service_block_other li:first-child {
  flex: 0 1 398px;
  /* ← 基準幅398pxだが、可変にする */
  max-width: 33%;
  /* ← 画面幅が小さくなった時は40%を上限に */
}
@media (max-width: 768px) {
  .inner .top_service_block_other li:first-child {
    max-width: 100%;
  }
}
.inner .top_service_block_other li:first-child img {
  width: 100%;
  height: auto;
  display: block;
}
.inner .top_service_block_other li:last-child {
  padding: 15px 20px;
  flex: 1;
}
.inner .top_service_block_other li:last-child .service_other_ttl {
  margin-bottom: 15px;
  color: #2578BB;
  font-size: clamp(16px, 1.2vw, 20px);
  font-weight: bold;
}

/* case
------------------------------------------------------------------- */
.top_case {
  padding: 0px 0 100px;
}
@media (max-width: 768px) {
  .top_case {
    padding: 0px 0 50px;
  }
}
.top_case .slide-item {
  padding: 0 20px;
  transition: all ease-in-out 0.3s;
}
@media (max-width: 768px) {
  .top_case .slide-item {
    padding: 0 10px;
  }
}
.top_case .slide-item .slick-active {
  opacity: 1;
}
.top_case .slide-item .slick-current {
  opacity: 1;
}
.top_case .slide-item img {
  width: 100%;
  vertical-align: bottom;
}
.top_case .slide-item figcaption {
  margin-top: 10px;
  font-size: clamp(16px, 1.2vw, 20px);
  font-weight: bold;
}
.top_case .slide-item figcaption span {
  color: #486284;
  display: block;
  text-decoration: none;
}

.case_carousel {
  margin: 50px 0;
  padding-bottom: 50px;
  overflow: visible;
  /* arrow
  ------------------------------------- */
  /* dot
  ------------------------------------- */
}
@media (max-width: 768px) {
  .case_carousel {
    padding-bottom: 30px;
  }
}
.case_carousel .slide-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
  z-index: 1;
  transition: 0.3s ease-in-out;
}
@media screen and (max-width: 767px) {
  .case_carousel .slide-arrow {
    top: 45%;
    transform: translateY(-45%);
  }
}
.case_carousel .slide-arrow:hover {
  opacity: 0.8;
}
.case_carousel .next-arrow {
  width: 40px;
  height: 36px;
  line-height: 34px;
  text-align: center;
  background: #EAE7DE;
  right: 0;
}
.case_carousel .next-arrow .top-next {
  position: relative;
  display: inline-block;
  width: 16px;
  height: 2px;
  margin: 5.7px 0;
  border-radius: 9999px;
  background-color: #000000;
}
.case_carousel .next-arrow .top-next::before, .case_carousel .next-arrow .top-next::after {
  content: "";
  position: absolute;
  top: calc(50% - 1px);
  right: 0;
  width: 10px;
  height: 2px;
  border-radius: 9999px;
  background-color: #000000;
  transform-origin: calc(100% - 1px) 50%;
}
.case_carousel .next-arrow .top-next::before {
  transform: rotate(45deg);
}
.case_carousel .next-arrow .top-next::after {
  transform: rotate(-45deg);
}
.case_carousel .prev-arrow {
  width: 40px;
  height: 36px;
  line-height: 34px;
  text-align: center;
  background: #EAE7DE;
  left: 0;
}
.case_carousel .prev-arrow .top-prev {
  position: relative;
  display: inline-block;
  width: 16px;
  height: 2px;
  margin: 5.7px 0;
  border-radius: 9999px;
  background-color: #000000;
}
.case_carousel .prev-arrow .top-prev::before, .case_carousel .prev-arrow .top-prev::after {
  content: "";
  position: absolute;
  top: calc(50% - 1px);
  left: 0;
  width: 10px;
  height: 2px;
  border-radius: 9999px;
  background-color: #000000;
  transform-origin: 1px 50%;
}
.case_carousel .prev-arrow .top-prev::before {
  transform: rotate(45deg);
}
.case_carousel .prev-arrow .top-prev::after {
  transform: rotate(-45deg);
}
.case_carousel .dots-top {
  margin: 40px 0 0;
  display: flex;
  justify-content: center;
}
@media screen and (max-width: 560px) {
  .case_carousel .dots-top {
    margin: 25px 0 0;
  }
}
.case_carousel .dots-top li {
  width: 16px;
  height: 16px;
  margin: 0 5px;
  background: #D9ECFB;
  border-radius: 50%;
  cursor: pointer;
}
@media screen and (max-width: 560px) {
  .case_carousel .dots-top li {
    width: 12px;
    height: 12px;
  }
}
.case_carousel .dots-top li:hover, .case_carousel .dots-top li.slick-active {
  background: #2578BB;
}
.case_carousel .dots-top li button {
  display: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  outline: none;
  padding: 0;
  border: none;
  background-color: transparent;
}

/* voice
------------------------------------------------------------------- */
.top_voice {
  padding: 80px 0 100px;
  background: #F4F2EB;
}
@media (max-width: 768px) {
  .top_voice {
    padding: 50px 0 50px;
  }
}

.voice_carousel {
  width: 1200px;
  margin: 50px auto;
  padding: 25px 50px;
  overflow: visible;
  border-radius: 10px;
  background: #fff;
  /* arrow
  ------------------------------------- */
  /* dot
  ------------------------------------- */
}
@media screen and (max-width: 1220px) {
  .voice_carousel {
    width: auto;
    margin: 30px 15px 50px;
    padding: 25px 30px;
  }
}
.voice_carousel .slick-track {
  display: flex !important;
}
.voice_carousel .slick-track .slide-item {
  margin: 0 10px;
  padding: 20px;
  border-radius: 10px;
  border: 1px #DEE3E9 solid;
  height: auto;
}
@media (max-width: 768px) {
  .voice_carousel .slick-track .slide-item {
    padding: 20px;
  }
}
.voice_carousel .slick-track .slide-item a {
  text-decoration: none;
}
.voice_carousel .slick-track .slide-item .top_voice_ttl span {
  padding-left: 10px;
  font-size: clamp(14px, 1.2vw, 16px);
  font-weight: bold;
  border-left: 5px #A7D0F2 solid;
  display: block;
}
.voice_carousel .slick-track .slide-item .top_voice_more {
  margin-top: 10px;
  padding-right: 25px;
  text-align: right;
  position: relative;
}
.voice_carousel .slick-track .slide-item .top_voice_more.arrow_r_b {
  position: relative;
  display: inline-block;
  padding-left: 22px;
}
.voice_carousel .slick-track .slide-item .top_voice_more .arrow_r_b:before {
  content: "";
  width: 18px;
  height: 18px;
  background: #2578BB;
  border-radius: 50%;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}
.voice_carousel .slick-track .slide-item .top_voice_more .arrow_r_b:after {
  content: "";
  width: 6px;
  height: 6px;
  border: 0;
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
  transform: rotate(45deg);
  position: absolute;
  top: 0;
  right: 7px;
  bottom: 0;
  margin: auto;
}
.voice_carousel .slide-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
  z-index: 1;
  transition: 0.3s ease-in-out;
}
@media screen and (max-width: 767px) {
  .voice_carousel .slide-arrow {
    top: 45%;
    transform: translateY(-45%);
  }
}
.voice_carousel .slide-arrow:hover {
  opacity: 0.8;
}
.voice_carousel .next-arrow {
  width: 40px;
  height: 50px;
  line-height: 50px;
  text-align: center;
  right: 0;
}
@media (max-width: 480px) {
  .voice_carousel .next-arrow {
    width: 30px;
  }
}
.voice_carousel .next-arrow .top-next::before, .voice_carousel .next-arrow .top-next::after {
  content: "";
  position: absolute;
  top: calc(50% - 2px);
  right: 17px;
  width: 18px;
  height: 4px;
  border-radius: 9999px;
  background-color: #2578bb;
  transform-origin: calc(100% - 2px) 50%;
}
@media (max-width: 480px) {
  .voice_carousel .next-arrow .top-next::before, .voice_carousel .next-arrow .top-next::after {
    right: 13px;
  }
}
.voice_carousel .next-arrow .top-next::before {
  transform: rotate(45deg);
}
.voice_carousel .next-arrow .top-next::after {
  transform: rotate(-45deg);
}
.voice_carousel .prev-arrow {
  width: 40px;
  height: 50px;
  line-height: 50px;
  text-align: center;
  left: 0;
}
.voice_carousel .prev-arrow .top-prev::before, .voice_carousel .prev-arrow .top-prev::after {
  content: "";
  position: absolute;
  top: calc(50% - 2px);
  left: 17px;
  width: 18px;
  height: 4px;
  border-radius: 9999px;
  background-color: #2578bb;
  transform-origin: 2px 50%;
}
@media (max-width: 480px) {
  .voice_carousel .prev-arrow .top-prev::before, .voice_carousel .prev-arrow .top-prev::after {
    left: 13px;
  }
}
.voice_carousel .prev-arrow .top-prev::before {
  transform: rotate(45deg);
}
.voice_carousel .prev-arrow .top-prev::after {
  transform: rotate(-45deg);
}
.voice_carousel .dots-top {
  margin: 40px 0 0;
  display: flex;
  justify-content: center;
}
@media screen and (max-width: 560px) {
  .voice_carousel .dots-top {
    margin: 25px 0 0;
  }
}
.voice_carousel .dots-top li {
  width: 16px;
  height: 16px;
  margin: 0 5px;
  background: #D9ECFB;
  border-radius: 50%;
  cursor: pointer;
}
@media screen and (max-width: 560px) {
  .voice_carousel .dots-top li {
    width: 12px;
    height: 12px;
  }
}
.voice_carousel .dots-top li:hover, .voice_carousel .dots-top li.slick-active {
  background: #2578BB;
}
.voice_carousel .dots-top li button {
  display: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  outline: none;
  padding: 0;
  border: none;
  background-color: transparent;
}

/* dot
  ------------------------------------- */
.voice_ttl_block {
  margin-bottom: 10px;
  justify-content: space-between;
  display: flex;
  gap: 20px;
}
@media (max-width: 768px) {
  .voice_ttl_block {
    gap: 10px;
  }
}
.voice_ttl_block .voice_ttl_img {
  width: 90px;
}
@media (max-width: 768px) {
  .voice_ttl_block .voice_ttl_img {
    width: 65px;
  }
}
.voice_ttl_block .voice_ttl_img img {
  max-width: 90px;
  width: 100%;
}
.voice_ttl_block .voice_ttl_img2 {
  max-width: 180px;
  width: auto;
  text-align: right;
}
.voice_ttl_block .voice_ttl_img2 img {
  max-width: 180px;
  width: auto;
}
@media (max-width: 768px) {
  .voice_ttl_block .voice_ttl_img2 {
    width: 80px;
  }
  .voice_ttl_block .voice_ttl_img2 img {
    max-width: 80px;
    width: auto;
  }
}

/* staff
------------------------------------------------------------------- */
.top_staff {
  width: 1200px;
  margin: 0 auto;
  padding: 80px 0 100px;
}
@media screen and (max-width: 1220px) {
  .top_staff {
    width: auto;
    margin: 0 15px;
  }
}
@media (max-width: 768px) {
  .top_staff {
    padding: 50px 0 50px;
  }
}

.top_staff_card {
  margin-top: 50px;
  display: grid;
  grid-template: repeat(1, 1fr)/repeat(3, 1fr);
}
@media screen and (max-width: 900px) {
  .top_staff_card {
    grid-template: repeat(1, 1fr)/repeat(2, 1fr);
  }
}
@media screen and (max-width: 650px) {
  .top_staff_card {
    margin-top: 30px;
    grid-template: repeat(1, 1fr)/repeat(1, 1fr);
  }
}
.top_staff_card li a figure {
  margin: 0 0 0;
  position: relative;
}
.top_staff_card li a figure figcaption {
  position: absolute;
  left: 20px;
  right: 20px;
  bottom: 20px;
  padding: 20px;
  color: #fff;
  text-align: center;
  background: rgba(37, 120, 187, 0.7);
  box-sizing: border-box;
}
.top_staff_card li a figure .top_staff_ttl {
  margin-bottom: 20px;
  font-size: clamp(15px, 1.2vw, 20px);
  font-weight: bold;
}
.top_staff_card li a figure .top_staff_ttl span {
  margin-bottom: 10px;
  font-size: clamp(14px, 1.2vw, 16px);
  font-weight: normal;
  display: block;
}
.top_staff_card li a figure .top_staff_txt {
  margin-bottom: 20px;
  text-align: left !important;
  font-size: clamp(14px, 1.2vw, 16px);
}
.top_staff_card li a figure .arrow_r_s {
  position: relative;
  display: inline-block;
  padding-left: 22px;
}
.top_staff_card li a figure .arrow_r_s:before {
  content: "";
  width: 18px;
  height: 18px;
  background: #fff;
  border-radius: 50%;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}
.top_staff_card li a figure .arrow_r_s:after {
  content: "";
  width: 6px;
  height: 6px;
  border: 0;
  border-top: solid 2px #2578BB;
  border-right: solid 2px #2578BB;
  transform: rotate(45deg);
  position: absolute;
  top: 0;
  right: 7px;
  bottom: 0;
  margin: auto;
}

/* top ceo
------------------------------------------------------------------- */
.top_ceo_message {
  padding: 70px 150px;
  background: #F4F2EB;
}
@media screen and (max-width: 1000px) {
  .top_ceo_message {
    padding: 50px 50px;
  }
}
@media (max-width: 480px) {
  .top_ceo_message {
    padding: 50px 30px;
  }
}
.top_ceo_message .top_ceo_message_ttl {
  margin-bottom: 40px;
  font-size: clamp(20px, 2vw, 30px);
  font-weight: bold;
  color: #2578BB;
  letter-spacing: 0.05em;
  align-items: center;
  display: flex;
}
@media (max-width: 480px) {
  .top_ceo_message .top_ceo_message_ttl {
    margin-bottom: 30px;
  }
}
.top_ceo_message .top_ceo_message_ttl::before {
  content: "";
  width: 50px;
  height: 1px;
  margin-right: 15px;
  background-color: #2578BB;
}
@media screen and (max-width: 560px) {
  .top_ceo_message .top_ceo_message_ttl::before {
    width: 30px;
    margin-right: 10px;
  }
}
.top_ceo_message .top_ceo_img {
  margin-bottom: 10px;
  flex-direction: row-reverse;
  display: flex;
  gap: 30px;
}
@media (max-width: 768px) {
  .top_ceo_message .top_ceo_img {
    display: block;
  }
}
.top_ceo_message .top_ceo_img li > p {
  line-height: 2.5;
  margin-bottom: 25px;
}
.top_ceo_message .top_ceo_img li .highlight {
  font-size: 18px;
  font-weight: bold;
}
.top_ceo_message .top_ceo_img li:first-child {
  flex: 0 1 420px;
  /* ← 基準幅398pxだが、可変にする */
  max-width: 45%;
}
@media (max-width: 768px) {
  .top_ceo_message .top_ceo_img li:first-child {
    max-width: 100%;
    margin-bottom: 20px;
  }
}
.top_ceo_message .top_ceo_img li:first-child img {
  width: 100%;
  height: auto;
  display: block;
}
.top_ceo_message .top_ceo_img li:last-child {
  flex: 1;
}
.top_ceo_message .top_ceo_txt {
  line-height: 2.5;
  margin-bottom: 20px;
}
.top_ceo_message .top_ceo_name {
  line-height: 1.8;
  margin-bottom: 20px;
  text-align: right;
  font-size: clamp(18px, 1.2vw, 20px);
  font-weight: bold;
  color: #486284;
  letter-spacing: 0.05em;
}

/* ceo_activate
----------------------------------*/
.ceo_activate {
  margin-top: 50px;
  padding: 35px;
  color: #333;
  background: rgba(186, 207, 228, 0.2);
}
@media (max-width: 768px) {
  .ceo_activate {
    padding: 20px;
  }
}
.ceo_activate.msg {
  width: 850px;
  margin: 30px auto 0;
}
@media screen and (max-width: 870px) {
  .ceo_activate.msg {
    width: auto;
    margin: 30px 15px 0;
  }
}
.ceo_activate .top_ceo_act {
  margin-bottom: 20px;
  color: #486284;
  font-size: clamp(18px, 1.5vw, 20px);
  font-weight: bold;
}
.ceo_activate .ceo_activate_block {
  display: flex;
  gap: 30px;
}
@media (max-width: 768px) {
  .ceo_activate .ceo_activate_block {
    display: block;
  }
}
.ceo_activate .ceo_activate_block li:first-child {
  flex: 1;
}
@media (max-width: 768px) {
  .ceo_activate .ceo_activate_block li:first-child {
    margin-bottom: 20px;
  }
}
.ceo_activate .ceo_activate_block li:first-child > p {
  line-height: 1.8;
  margin-bottom: 15px;
  font-size: clamp(14px, 1.3vw, 15px);
}
.ceo_activate .ceo_activate_block li:first-child > p:last-of-type {
  margin-bottom: 0px;
}
.ceo_activate .ceo_activate_block li:last-child {
  width: 36%;
}
@media (max-width: 768px) {
  .ceo_activate .ceo_activate_block li:last-child {
    width: auto;
  }
}
.ceo_activate .ceo_activate_block li img {
  width: 100%;
}

/* useful
------------------------------------------------------------------- */
.top_useful {
  padding: 0 0 100px;
}
@media (max-width: 768px) {
  .top_useful {
    padding: 0 0 50px;
  }
}
.top_useful .top_useful_card {
  width: 1200px;
  margin: 80px auto;
  display: grid;
  grid-template: repeat(1, 1fr)/repeat(3, 1fr);
  gap: 60px;
}
@media screen and (max-width: 1220px) {
  .top_useful .top_useful_card {
    width: auto;
    margin: 80px 15px;
  }
}
@media (max-width: 768px) {
  .top_useful .top_useful_card {
    margin: 50px 15px;
    gap: 20px;
  }
}
@media screen and (max-width: 560px) {
  .top_useful .top_useful_card {
    grid-template: repeat(1, 1fr)/repeat(1, 1fr);
  }
}
.top_useful .top_useful_card li {
  border-radius: 10px;
  border: 1px #DFE7F3 solid;
}
.top_useful .top_useful_card li a {
  text-decoration: none;
}
.top_useful .top_useful_card li a img {
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
}
.top_useful .top_useful_card li a figcaption {
  padding: 20px;
  font-size: clamp(18px, 1vw, 20px);
  font-weight: bold;
}
.top_useful .top_useful_card li a figcaption span {
  margin-bottom: 5px;
  font-size: 14px;
  font-weight: normal;
  display: block;
}

/* recruit
------------------------------------------------------------------- */
.top_recruit {
  padding: 80px 0 80px;
  background: #F5F8FB;
}
@media (max-width: 768px) {
  .top_recruit {
    padding: 50px 0 50px;
  }
}
.top_recruit .loop_slider {
  width: 1200px;
  margin: 50px auto 0;
}
@media screen and (max-width: 1220px) {
  .top_recruit .loop_slider {
    width: auto;
  }
}

/* area
------------------------------------------------------------------- */
.area_bg {
  background: #3B5270;
}

.area_inner {
  width: 1200px;
  margin: 0 auto;
  position: relative;
  background: #3B5270;
  z-index: 1;
}
@media screen and (max-width: 1220px) {
  .area_inner {
    width: auto;
    margin: 0 0;
  }
}
.area_inner::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: url("../img/top/img_sendai_map.svg") no-repeat right top;
  background-size: auto 100%;
  opacity: 1;
  /* ← 背景画像だけ透過 */
  z-index: -1;
}
@media (max-width: 768px) {
  .area_inner::before {
    opacity: 0.3;
  }
}
@media (max-width: 480px) {
  .area_inner::before {
    background-position: right -130px top;
  }
}
.area_inner .area_block {
  padding: 50px 0 100px;
  color: #fff;
}
@media screen and (max-width: 1220px) {
  .area_inner .area_block {
    padding: 50px 15px 80px;
  }
}
@media (max-width: 480px) {
  .area_inner .area_block {
    padding: 50px 15px 50px;
  }
}
.area_inner .area_block > h2 {
  margin-bottom: 20px;
  letter-spacing: 0.1em;
  font-size: clamp(25px, 3vw, 45px);
  font-weight: bold;
}
.area_inner .area_block .area_txt {
  line-height: 2;
  margin-bottom: 50px;
}
.area_inner .area_block > h3 {
  margin-bottom: 15px;
  font-size: clamp(16px, 1.2vw, 20px);
  font-weight: bold;
}
.area_inner .area_block .area_list {
  line-height: 1.8;
  font-size: 13px;
}
@media (max-width: 768px) {
  .area_inner .area_block .area_list br {
    display: none;
  }
}

/* 
-------------------------------------------------------------------

service

------------------------------------------------------------------- */
/*  service title
-------------------------------------------------------------------*/
.service_title {
  margin-bottom: 40px;
  color: #333;
  font-size: clamp(20px, 2vw, 30px);
  font-weight: bold;
  align-items: center;
  display: flex;
  gap: 20px;
}
@media (max-width: 768px) {
  .service_title {
    margin-bottom: 30px;
    gap: 10px;
  }
}
.service_title span:first-child {
  width: 8%;
}
@media (max-width: 768px) {
  .service_title span:first-child {
    width: 12%;
  }
}
.service_title span:first-child img {
  width: 100%;
}
.service_title span:last-child {
  padding-bottom: 5px;
  border-bottom: 1px #555 solid;
  flex: 1;
}

/*  service block
-------------------------------------------------------------------*/
/* service_block */
.service_block {
  margin-bottom: 50px;
  display: grid;
  grid-template: repeat(1, 1fr)/repeat(3, 1fr);
  gap: 20px;
}
@media (max-width: 768px) {
  .service_block {
    grid-template: repeat(1, 1fr)/repeat(2, 1fr);
  }
}
@media (max-width: 480px) {
  .service_block {
    grid-template: repeat(1, 1fr)/repeat(1, 1fr);
  }
}
.service_block li {
  flex-direction: column;
  display: flex;
  background: #fff;
}
.service_block li figcaption {
  padding: 20px;
}
.service_block li figcaption .ttl {
  margin-bottom: 20px;
  color: #2578BB;
  text-align: center;
  font-size: clamp(16px, 1.2vw, 20px);
  font-weight: bold;
}

/*  low point title
-------------------------------------------------------------------*/
.point_title {
  margin-bottom: 160px;
  color: #333;
  text-align: center;
  font-size: clamp(20px, 3vw, 40px);
  font-weight: bold;
  position: relative;
}
@media (max-width: 768px) {
  .point_title {
    margin-bottom: 100px;
  }
}
.point_title::before {
  content: "";
  width: 25px;
  left: 50%;
  bottom: -15px;
  border-bottom: 5px solid #2578BB;
  position: absolute;
  display: block;
}
.point_title::after {
  content: "";
  width: 25px;
  right: 50%;
  bottom: -15px;
  border-bottom: 5px solid #2578BB;
  position: absolute;
  display: block;
}
.point_title strong {
  color: #114FA1;
  font-weight: bold;
}
.point_title span {
  font-size: clamp(14px, 1.5vw, 22px);
  color: #6699E2;
  display: block;
}
.point_title span b {
  padding: 0 20px;
  font-weight: 700;
  position: relative;
}
.point_title span b::before {
  content: "";
  width: 1px;
  height: 100%;
  background: #6699E2;
  position: absolute;
  top: 0;
  left: 0;
  transform: rotate(-30deg);
}
.point_title span b::after {
  content: "";
  width: 1px;
  height: 100%;
  background: #6699E2;
  position: absolute;
  top: 0;
  right: 0;
  transform: rotate(30deg);
}

/* point
------------------------------------------------------------------- */
.point .point_bg {
  margin-bottom: 80px;
  position: relative;
}
@media (max-width: 768px) {
  .point .point_bg {
    margin-bottom: 40px;
  }
}
.point .point_bg:nth-child(2)::before {
  content: "";
  width: 50%;
  height: 60%;
  border-top-right-radius: 30px;
  background-image: linear-gradient(45deg, #bacfe4, #89aed6);
  position: absolute;
  top: -60px;
  left: 0;
  z-index: -1;
}
@media (max-width: 768px) {
  .point .point_bg:nth-child(2)::before {
    top: -40px;
  }
}
.point .point_bg:nth-child(2)::after {
  content: "";
  width: 50%;
  height: 60%;
  background-image: linear-gradient(45deg, #89aed6, #bacfe4);
  position: absolute;
  bottom: -160px;
  right: 0;
  z-index: -1;
}
@media (max-width: 768px) {
  .point .point_bg:nth-child(2)::after {
    bottom: -220px;
  }
}
.point .point_bg:nth-child(4)::before {
  content: "";
  width: 50%;
  height: 60%;
  border-top-right-radius: 30px;
  background-image: linear-gradient(45deg, #bacfe4, #89aed6);
  position: absolute;
  top: -180px;
  left: 0;
  z-index: -1;
}
@media (max-width: 768px) {
  .point .point_bg:nth-child(4)::before {
    top: -200px;
  }
}
.point .point_bg:nth-child(4)::after {
  content: "";
  width: 50%;
  height: 60%;
  background-image: linear-gradient(45deg, #89aed6, #bacfe4);
  position: absolute;
  bottom: -160px;
  right: 0;
  z-index: -1;
}
@media (max-width: 768px) {
  .point .point_bg:nth-child(4)::after {
    bottom: -220px;
  }
}
.point .point_bg:nth-child(4).three::after {
  content: "";
  width: 50%;
  height: 60%;
  background-image: linear-gradient(45deg, #89aed6, #bacfe4);
  position: absolute;
  bottom: -80px;
  right: 0;
  z-index: -1;
}
@media (max-width: 768px) {
  .point .point_bg:nth-child(4).three::after {
    bottom: -50px;
  }
}
.point .point_bg:nth-child(5)::before {
  content: "";
  width: 50%;
  height: 60%;
  border-top-right-radius: 30px;
  background-image: linear-gradient(45deg, #bacfe4, #89aed6);
  position: absolute;
  bottom: -80px;
  left: 0;
  z-index: -1;
}
@media (max-width: 768px) {
  .point .point_bg:nth-child(5)::before {
    bottom: -50px;
  }
}
.point .point_bg .point_card {
  width: 1200px;
  margin: 0 auto;
  padding: 40px;
  font-size: clamp(20px, 1.5vw, 24px);
  background: #fff;
  border-radius: 40px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.25);
}
@media screen and (max-width: 1220px) {
  .point .point_bg .point_card {
    width: auto;
    margin: 0 15px;
  }
}
@media (max-width: 480px) {
  .point .point_bg .point_card {
    padding: 30px;
  }
}
.point .point_bg .point_card .point_card_ttl {
  line-height: 1.8;
  margin-bottom: 30px;
  color: #333;
  font-size: clamp(14px, 1.5vw, 24px);
  font-weight: bold;
}
@media (max-width: 768px) {
  .point .point_bg .point_card .point_card_ttl {
    margin-bottom: 20px;
  }
}
.point .point_bg .point_card .point_card_ttl span {
  margin-right: 20px;
  color: #2578BB;
  font-size: clamp(14px, 1.5vw, 22px);
  font-weight: bold;
  position: relative;
}
@media (max-width: 768px) {
  .point .point_bg .point_card .point_card_ttl span {
    margin-right: 10px;
  }
}
.point .point_bg .point_card .point_card_ttl span::before {
  content: "";
  width: 100%;
  height: 4px;
  background: #2578BB;
  position: absolute;
  bottom: -2px;
  left: 0;
}
.point .point_bg .point_card .point_card_ttl b {
  margin-right: 40px;
}
@media (max-width: 768px) {
  .point .point_bg .point_card .point_card_ttl b {
    margin-right: 10px;
  }
}
.point .point_bg .point_card .point_card_ttl b img {
  display: inline-block;
}
@media (max-width: 768px) {
  .point .point_bg .point_card .point_card_ttl b img {
    width: 40px;
  }
}
.point .point_bg .point_card .point_card_ttl strong {
  color: #2578BB;
  font-weight: bold;
}
.point .point_bg .point_card .point_card_block {
  align-items: center;
  justify-content: space-between;
  flex-direction: row-reverse;
  display: flex;
  gap: 30px;
}
@media (max-width: 768px) {
  .point .point_bg .point_card .point_card_block {
    display: block;
  }
}
.point .point_bg .point_card .point_card_block li {
  line-height: 1.8;
  font-size: clamp(14px, 1.5vw, 16px);
}
.point .point_bg .point_card .point_card_block li img {
  width: 100%;
}
.point .point_bg .point_card .point_card_block li:first-child {
  flex-basis: 40%;
}
@media (max-width: 768px) {
  .point .point_bg .point_card .point_card_block li:first-child {
    margin-bottom: 20px;
  }
}
.point .point_bg .point_card .point_card_block li:last-child {
  flex: 1;
}

/* step
------------------------------------------------------------------- */
.step_box {
  width: 1200px;
  margin: 0 auto 100px;
  padding: 50px 60px;
  background: #fff;
  position: relative;
  display: flex;
  gap: 50px;
}
.step_box:nth-last-child(2) {
  margin: 0 auto 0px;
}
@media screen and (max-width: 1220px) {
  .step_box:nth-last-child(2) {
    margin: 0 15px 0px;
  }
}
@media (max-width: 480px) {
  .step_box {
    margin: 0 15px 10px;
  }
  .step_box:nth-last-child(2) {
    margin: 0 15px 0px;
  }
}
@media screen and (max-width: 1220px) {
  .step_box {
    width: auto;
    margin: 0 15px 100px;
  }
}
@media (max-width: 768px) {
  .step_box {
    margin: 0 15px 50px;
    display: block;
  }
}
@media (max-width: 480px) {
  .step_box {
    padding: 30px 30px 20px;
  }
}
.step_box::after {
  content: "";
  position: absolute;
  bottom: -50px;
  left: 50%;
  transform: translateX(-50%);
  display: inline-block;
  width: 110px;
  height: 50px;
  background: #fff;
  clip-path: polygon(0 0, 100% 0%, 50% 100%);
}
@media (max-width: 768px) {
  .step_box::after {
    bottom: -30px;
    width: 60px;
    height: 30px;
  }
}
.step_box:nth-last-child(2)::after {
  background: none;
}
.step_box .step_img {
  flex-basis: 45%;
  position: relative;
}
@media (max-width: 768px) {
  .step_box .step_img {
    margin-bottom: 20px;
    flex-basis: auto;
  }
}
.step_box .step_img .step_num {
  width: 20%;
  position: absolute;
  top: -25px;
  left: -35px;
}
@media (max-width: 480px) {
  .step_box .step_img .step_num {
    top: -15px;
    left: -15px;
  }
}
.step_box .step_img .step_num img {
  width: 100%;
}
.step_box .step_img .pic {
  box-shadow: 6px 6px 20px rgba(0, 0, 0, 0.25);
}
.step_box .step_img .pic img {
  width: 100%;
}
.step_box .step_contents {
  flex: 1;
}
.step_box .step_contents .step_contents_ttl {
  margin-bottom: 15px;
  padding-bottom: 5px;
  color: #114FA1;
  font-size: clamp(20px, 1.5vw, 24px);
  font-weight: bold;
  border-bottom: 1px #2578BB solid;
}
.step_box .step_contents .step_contents_txt {
  margin-bottom: 15px;
  font-size: clamp(14px, 1.5vw, 16px);
}
.step_box .step_contents .step_contents_txt.sm {
  font-size: clamp(12px, 1.2vw, 14px);
}
.step_box .step_contents .step_contents_list {
  margin-bottom: 15px;
}
.step_box .step_contents .step_contents_list li {
  margin-bottom: 5px;
  font-size: clamp(14px, 1.5vw, 16px);
}

/* service fee
------------------------------------------------------------------- */
.service_fee {
  padding: 100px 0 0;
}
@media (max-width: 768px) {
  .service_fee {
    padding: 50px 0 0;
  }
}

.fee_block {
  margin-bottom: 30px;
  border: 1px #A39C84 solid;
  align-items: stretch;
  display: flex;
}
@media screen and (max-width: 650px) {
  .fee_block {
    display: block;
  }
}
.fee_block li {
  padding: 20px;
  font-size: clamp(14px, 1.5vw, 22px);
  font-weight: 500;
  color: #333;
  display: flex;
  align-items: center;
}
@media screen and (max-width: 650px) {
  .fee_block li {
    padding: 15px;
  }
}
.fee_block li:first-child {
  border-right: 1px #A39C84 solid;
  justify-content: space-between;
  background: #F4F2EB;
  align-items: center;
  display: flex;
  flex: 1;
}
@media screen and (max-width: 650px) {
  .fee_block li:first-child {
    border-right: none;
    border-bottom: 1px #A39C84 solid;
    align-items: flex-start;
    flex-direction: column;
  }
}
.fee_block li:first-child span:first-child b {
  font-size: 14px;
  font-weight: normal;
  display: block;
}
@media screen and (max-width: 650px) {
  .fee_block li:first-child span:last-child {
    margin-top: 10px;
  }
}
.fee_block li:last-child {
  text-align: center;
  font-weight: bold;
  flex-basis: 40%;
  justify-content: center;
}
.fee_block li:last-child span {
  color: #114FA1;
  font-size: clamp(18px, 2vw, 30px);
}

/* 
-------------------------------------------------------------------

plan

------------------------------------------------------------------- */
/*  service plan
-------------------------------------------------------------------*/
.service_plan_block {
  margin-bottom: 30px;
  border-radius: 20px;
  box-shadow: 0px 4px 20px rgba(58, 126, 166, 0.25);
  background: #fff;
}
.service_plan_block > h3 {
  padding: 15px;
  color: #fff;
  font-size: clamp(18px, 1.5vw, 24px);
  font-weight: bold;
  text-align: center;
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
  background: #007CC8;
}
.service_plan_block .service_plan {
  margin: 40px;
  padding-bottom: 40px;
  display: flex;
  gap: 30px;
}
@media (max-width: 768px) {
  .service_plan_block .service_plan {
    margin: 20px;
    padding-bottom: 20px;
    display: block;
  }
}
.service_plan_block .service_plan li:first-child {
  flex-basis: 35%;
}
@media (max-width: 768px) {
  .service_plan_block .service_plan li:first-child {
    margin-bottom: 20px;
  }
}
.service_plan_block .service_plan li:first-child img {
  width: 100%;
}
.service_plan_block .service_plan li:last-child {
  flex: 1;
}
.service_plan_block .service_plan li:last-child > p {
  margin-bottom: 15px;
}

/*  plan_fee_ttl
-------------------------*/
.plan_fee_ttl {
  margin-top: 40px;
  margin-bottom: 15px;
  padding-left: 25px;
  color: #333;
  font-size: clamp(20px, 1.8vw, 24px);
  font-weight: bold;
  position: relative;
}
.plan_fee_ttl::before {
  content: "";
  width: 20px;
  height: 20px;
  border-radius: 5px;
  background: #2578BB;
  position: absolute;
  top: 45%;
  left: 0;
  transform: translateY(-45%);
}

/*  single_fee
-------------------------*/
.single_fee {
  justify-content: space-between;
  align-items: center;
  display: flex;
  border-top: 1px #A39C84 solid;
}
.single_fee:last-of-type {
  border-bottom: 1px #A39C84 solid;
}
.single_fee li {
  padding: 15px 0;
  color: #333;
  font-size: clamp(15px, 1.5vw, 22px);
}
.single_fee li:last-child {
  font-weight: bold;
}

/*  compare kitchen
-------------------------------------------------------------------*/
.compare_kitchen {
  justify-content: center;
  display: flex;
  gap: 120px;
  position: relative;
}
@media (max-width: 768px) {
  .compare_kitchen {
    gap: 80px;
  }
}
@media (max-width: 480px) {
  .compare_kitchen {
    display: block;
  }
}
.compare_kitchen::after {
  content: "";
  display: inline-block;
  width: 40px;
  height: 50px;
  background: #2578bb;
  clip-path: polygon(0 0, 0 100%, 100% 50%);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
@media (max-width: 768px) {
  .compare_kitchen::after {
    width: 20px;
    height: 30px;
  }
}
@media (max-width: 480px) {
  .compare_kitchen::after {
    width: 30px;
    height: 20px;
    clip-path: polygon(0 0, 100% 0%, 50% 100%);
  }
}
.compare_kitchen li {
  flex: 1;
}
@media (max-width: 480px) {
  .compare_kitchen li:first-child {
    margin-bottom: 50px;
  }
}
.compare_kitchen li img {
  width: 100%;
}

/*  washer image
-------------------------------------------------------------------*/
.washer_image {
  display: flex;
}
@media (max-width: 768px) {
  .washer_image {
    display: block;
  }
}
.washer_image li {
  flex: 1;
}
.washer_image li:first-child {
  background: url(../img/low/img_washer_image.webp) no-repeat center top;
  background-size: cover;
  border-radius: 10px 0 0 10px;
}
@media (max-width: 768px) {
  .washer_image li:first-child {
    width: 100%;
    padding-top: 56.25%;
    background-position: center center;
    border-radius: 10px 10px 0 0;
  }
}
.washer_image li:last-child {
  padding: 30px;
  color: #fff;
  background: #57A2DE;
  border-radius: 0 10px 10px 0;
}
@media (max-width: 768px) {
  .washer_image li:last-child {
    padding: 20px;
    border-radius: 0 0 10px 10px;
  }
}
.washer_image li:last-child > p {
  margin-bottom: 15px;
}

/* 
-------------------------------------------------------------------

price

------------------------------------------------------------------- */
.price_container {
  width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 50px;
  box-sizing: border-box;
}
.price_container.svc_pb {
  padding-top: 100px !important;
}
@media (max-width: 768px) {
  .price_container.svc_pb {
    padding-top: 50px !important;
  }
}
@media screen and (max-width: 1220px) {
  .price_container {
    width: auto;
    margin-left: 15px;
    margin-right: 15px;
  }
}

/* price link
------------------------------------------------------------------- */
.price_link {
  width: 960px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 100px;
  display: grid;
  grid-template: repeat(1, 1fr)/repeat(2, 1fr);
  gap: 30px;
}
@media screen and (max-width: 980px) {
  .price_link {
    width: auto;
  }
}
@media screen and (max-width: 700px) {
  .price_link {
    margin-bottom: 80px;
    grid-template: repeat(1, 1fr)/repeat(1, 1fr);
    gap: 20px;
  }
}
.price_link li img {
  margin-right: 10px;
}
@media screen and (max-width: 700px) {
  .price_link li img {
    width: 10%;
  }
}
.price_link li a {
  padding: 15px;
  color: #333;
  font-weight: bold;
  font-size: clamp(15px, 1.8vw, 25px);
  border-radius: 20px;
  border: 1px #2578BB solid;
  justify-content: center;
  align-items: center;
  display: flex;
  position: relative;
  text-decoration: none;
  box-shadow: 0px 4px 0 rgba(2, 60, 111, 0.4);
}
.price_link li a::after, .price_link li a::before {
  content: "";
  position: absolute;
  top: 40%;
  right: 30px;
  width: 2px;
  height: 14px;
  border-radius: 9999px;
  background-color: #2578bb;
  transform-origin: 50% calc(100% - 0.5px);
  transform: translateY(-40%);
}
.price_link li a::after {
  transform: rotate(-45deg);
}
.price_link li a::before {
  transform: rotate(45deg);
}

/* unchor */
@media (max-width: 768px) {
  #aircon,
  #house,
  #pipe,
  #coating {
    position: relative;
  }
  #aircon::before,
  #house::before,
  #pipe::before,
  #coating::before {
    content: "";
    display: block;
    height: 60px;
    margin-top: -60px;
    visibility: hidden;
  }
}
/* price title
------------------------------------------------------------------- */
.price_title {
  margin-top: 20px;
  margin-bottom: 15px;
  color: #114FA1;
  font-size: clamp(20px, 1.8vw, 24px);
  font-weight: bold;
}

/* price head
------------------------------------------------------------------- */
.price_head {
  margin-bottom: 80px;
  align-items: center;
  display: flex;
}
@media (max-width: 480px) {
  .price_head {
    margin-bottom: 30px;
    display: block;
  }
}
.price_head li:first-child {
  flex: 1;
}
@media (max-width: 480px) {
  .price_head li:first-child {
    margin-bottom: 15px;
  }
}
.price_head li:first-child .price_head_ttl {
  padding-bottom: 5px;
  color: #114FA1;
  font-size: clamp(18px, 2vw, 30px);
  font-weight: bold;
  border-bottom: 1px #555 solid;
}
.price_head li:first-child .price_head_ttl_sub {
  padding-top: 5px;
  color: #BACFE4;
  font-size: clamp(15px, 1.5vw, 20px);
  font-weight: bold;
  text-transform: uppercase;
}
.price_head li:last-child {
  flex-basis: 40%;
}

/* price button
------------------------------------------------------------------- */
.price_button {
  width: 900px;
  margin: 70px auto 0;
  justify-content: space-between;
  display: flex;
  gap: 100px;
}
@media screen and (max-width: 920px) {
  .price_button {
    width: auto;
  }
}
@media (max-width: 768px) {
  .price_button {
    gap: 50px;
  }
}
@media screen and (max-width: 560px) {
  .price_button {
    margin: 50px 15px 0;
    display: block;
  }
}
.price_button li {
  flex: 1;
}

/* 
-------------------------------------------------------------------

case

------------------------------------------------------------------- */
/* archive
------------------------------------------------------------------- */
.case_archive {
  margin-bottom: 50px;
  display: grid;
  grid-template: repeat(1, 1fr)/repeat(2, 1fr);
  gap: 50px 80px;
}
@media (max-width: 768px) {
  .case_archive {
    gap: 20px;
  }
}
@media screen and (max-width: 560px) {
  .case_archive {
    grid-template: repeat(1, 1fr)/repeat(1, 1fr);
  }
}
.case_archive li {
  padding: 30px;
  border: 1px #333 solid;
}
@media (max-width: 768px) {
  .case_archive li {
    padding: 20px;
  }
}
.case_archive li > h3 {
  margin-bottom: 20px;
  text-align: center;
}
.case_archive li > h3 img {
  width: 100%;
  vertical-align: bottom;
}
.case_archive li .case_label {
  line-height: 1.8;
  margin-bottom: 10px;
  color: #333;
  font-size: clamp(14px, 1.2vw, 16px);
  align-items: center;
  display: flex;
}
.case_archive li .case_label dt {
  flex-basis: 140px;
  margin-right: 15px;
  padding: 5px 15px;
  text-align: center;
  font-weight: bold;
  border-radius: 10px;
  background: #E0EBF4;
  white-space: nowrap;
}
.case_archive li .case_label dd {
  font-weight: bold;
}
.case_archive li .case_btn {
  width: 70%;
  margin: 30px auto 0;
}

/* single
------------------------------------------------------------------- */
.single_case {
  width: 850px;
  margin: 0 auto;
}
@media screen and (max-width: 870px) {
  .single_case {
    width: auto;
    margin: 0 15px;
  }
}
.single_case .single_case_contents {
  line-height: 1.8;
  margin-bottom: 80px;
  font-size: clamp(14px, 1.2vw, 16px);
}
@media (max-width: 480px) {
  .single_case .single_case_contents {
    margin-bottom: 40px;
  }
}

/* single title
------------------------------------------------- */
.single_case_ttl {
  margin-bottom: 50px;
  padding-bottom: 5px;
  color: #333;
  font-size: clamp(20px, 1.8vw, 27px);
  font-weight: bold;
  border-bottom: 3px solid #B7BCBF;
  position: relative;
}
@media (max-width: 480px) {
  .single_case_ttl {
    margin-bottom: 30px;
  }
}
.single_case_ttl.use_mb {
  margin-bottom: 20px !important;
}
.single_case_ttl::before {
  content: "";
  position: absolute;
  bottom: -3px;
  width: 10%;
  height: 3px;
  background: #114FA1;
  /*左：ピンク*/
}
.single_case_ttl span {
  margin-right: 10px;
  padding-right: 10px;
  display: inline-block;
  position: relative;
}
.single_case_ttl span::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  width: 1px;
  height: 60%;
  background: #333;
}
@media (max-width: 480px) {
  .single_case_ttl span {
    display: block;
  }
  .single_case_ttl span::after {
    background: none;
  }
}

/* single title2
------------------------------------------------- */
.single_case_ttl2 {
  margin-bottom: 40px;
  padding: 10px 20px;
  color: #fff;
  font-size: clamp(20px, 1.8vw, 24px);
  font-weight: bold;
  background: #5793C9;
  align-items: center;
  display: flex;
}
@media (max-width: 480px) {
  .single_case_ttl2 {
    margin-bottom: 20px;
  }
}

/* single table
------------------------------------------------- */
.single_case_table {
  width: 100%;
  margin-bottom: 80px;
  border: 1px #52616C solid;
}
@media (max-width: 480px) {
  .single_case_table {
    margin-bottom: 40px;
    display: block;
    border: none;
  }
}
@media (max-width: 480px) {
  .single_case_table tbody {
    display: block;
    width: 100%;
  }
}
@media (max-width: 480px) {
  .single_case_table tr {
    display: block;
    width: 100%;
    border: 1px #52616C solid;
    border-bottom: none;
  }
  .single_case_table tr:last-child {
    border-bottom: 1px #52616C solid;
  }
}
.single_case_table td {
  padding: 15px;
  color: #333;
  font-size: clamp(14px, 1.2vw, 16px);
  border: 1px #52616C solid;
}
@media (max-width: 480px) {
  .single_case_table td {
    display: block;
    width: 100% !important;
    box-sizing: border-box;
    border: none;
    border-bottom: 1px #52616C solid;
  }
  .single_case_table td:last-child {
    border-bottom: none;
  }
}
.single_case_table td:first-child {
  width: 160px;
  color: #114FA1;
  font-weight: bold;
}
@media (max-width: 480px) {
  .single_case_table td:first-child {
    width: 100% !important;
    background: #f5f5f5;
  }
}

/* single case study
------------------------------------------------- */
.single_case_study {
  margin-bottom: 80px;
  display: flex;
  gap: 50px;
}
@media (max-width: 480px) {
  .single_case_study {
    margin-bottom: 40px;
    display: block;
  }
}
.single_case_study li {
  font-size: clamp(15px, 1.5vw, 20px);
  position: relative;
  flex: 1;
}
.single_case_study li img {
  width: 100%;
}
.single_case_study li:first-child span {
  width: -moz-fit-content;
  width: fit-content;
  min-width: 180px;
  padding: 10px 15px;
  color: #114FA1;
  font-weight: bold;
  text-align: center;
  background: rgba(255, 255, 255, 0.8);
  position: absolute;
  left: 0;
  bottom: 0;
}
@media (max-width: 480px) {
  .single_case_study li:first-child {
    margin-bottom: 20px;
  }
}
.single_case_study li:last-child span {
  width: -moz-fit-content;
  width: fit-content;
  min-width: 180px;
  padding: 10px 15px;
  color: #fff;
  font-weight: bold;
  text-align: center;
  background: #114FA1;
  position: absolute;
  left: 0;
  bottom: 0;
}

/* 
-------------------------------------------------------------------

voice

------------------------------------------------------------------- */
/* archive
------------------------------------------------------------------- */
.voice_archive {
  margin-bottom: 50px;
  display: grid;
  grid-template: repeat(1, 1fr)/repeat(2, 1fr);
  gap: 80px;
}
@media (max-width: 768px) {
  .voice_archive {
    gap: 20px;
  }
}
@media screen and (max-width: 560px) {
  .voice_archive {
    grid-template: repeat(1, 1fr)/repeat(1, 1fr);
  }
}
.voice_archive li {
  border-top-left-radius: 50px;
  border-bottom-right-radius: 50px;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
  background: #fff;
}
.voice_archive li a {
  padding: 50px 30px 20px 30px;
  display: block;
  text-decoration: none;
}
.voice_archive li .voice_archive_ttl {
  margin-bottom: 20px;
  padding-left: 15px;
  color: #333;
  font-size: clamp(18px, 1.8vw, 24px);
  font-weight: bold;
  border-left: 5px #A7D0F2 solid;
}
.voice_archive li .voice_archive_ttl span {
  margin-top: 5px;
  font-size: clamp(14px, 1.2vw, 16px);
  display: block;
}
.voice_archive li .voice_archive_ttl2 {
  margin-bottom: 20px;
  color: #333;
  font-size: clamp(15px, 1.5vw, 22px);
  font-weight: bold;
}
.voice_archive li .voice_archive_ttl2 span {
  color: #114FA1;
}
.voice_archive li .voice_archive_txt {
  margin-bottom: 20px;
  color: #333;
  font-size: clamp(14px, 1.2vw, 16px);
}
.voice_archive li .voice_more {
  margin-top: 10px;
  padding-right: 25px;
  text-align: right;
  position: relative;
}
.voice_archive li .voice_more.arrow_r_b {
  position: relative;
  display: inline-block;
  padding-left: 22px;
}
.voice_archive li .voice_more .arrow_r_b:before {
  content: "";
  width: 18px;
  height: 18px;
  background: #2578BB;
  border-radius: 50%;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}
.voice_archive li .voice_more .arrow_r_b:after {
  content: "";
  width: 6px;
  height: 6px;
  border: 0;
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
  transform: rotate(45deg);
  position: absolute;
  top: 0;
  right: 7px;
  bottom: 0;
  margin: auto;
}

/* single
------------------------------------------------------------------- */
/* single voice header
------------------------------------------------- */
.sgl_headup {
  margin-bottom: -100px;
  position: relative;
  top: -100px;
}
@media (max-width: 480px) {
  .sgl_headup {
    margin-bottom: -70px;
    position: relative;
    top: -70px;
  }
}

.single_voice_header {
  margin-bottom: 80px;
  padding: 70px 0 50px;
  background: #F4F2EB;
}
@media (max-width: 480px) {
  .single_voice_header {
    margin-bottom: 40px;
    padding: 50px 0 30px;
  }
}
.single_voice_header .single_voice_header_wrap {
  margin-bottom: 70px;
  padding: 50px;
  border-radius: 50px 50px 50px 0;
  box-shadow: 5px 5px 15px #B2B9C3;
  background: #fff;
  position: relative;
  z-index: 1;
}
@media (max-width: 480px) {
  .single_voice_header .single_voice_header_wrap {
    margin-bottom: 30px;
    padding: 30px 40px 50px;
  }
}
.single_voice_header .single_voice_header_wrap::before {
  content: "";
  width: 84px;
  height: 63px;
  position: absolute;
  background: url(../img/low/icon_voice_bg.webp) no-repeat left bottom;
  background-size: 100% auto;
  left: 40px;
  bottom: 20px;
  transform: rotate(180deg);
  z-index: -1;
}
@media (max-width: 768px) {
  .single_voice_header .single_voice_header_wrap::before {
    width: 60px;
    height: 45px;
    left: 20px;
  }
}
@media (max-width: 480px) {
  .single_voice_header .single_voice_header_wrap::before {
    width: 45px;
    height: 34px;
    left: 10px;
    bottom: 10px;
  }
}
.single_voice_header .single_voice_header_wrap::after {
  content: "";
  width: 84px;
  height: 63px;
  position: absolute;
  background: url(../img/low/icon_voice_bg.webp) no-repeat left bottom;
  background-size: 100% auto;
  right: 40px;
  top: 20px;
  z-index: -1;
}
@media (max-width: 768px) {
  .single_voice_header .single_voice_header_wrap::after {
    width: 60px;
    height: 45px;
    right: 20px;
  }
}
@media (max-width: 480px) {
  .single_voice_header .single_voice_header_wrap::after {
    width: 45px;
    height: 34px;
    right: 25px;
  }
}
.single_voice_header .single_voice_header_wrap .single_voice_user {
  justify-content: center;
  display: flex;
  gap: 30px;
}
@media (max-width: 480px) {
  .single_voice_header .single_voice_header_wrap .single_voice_user {
    display: block;
  }
}
.single_voice_header .single_voice_header_wrap .single_voice_user li:first-child {
  width: 110px;
}
@media (max-width: 480px) {
  .single_voice_header .single_voice_header_wrap .single_voice_user li:first-child {
    width: auto;
    margin-bottom: 15px;
    text-align: center;
  }
  .single_voice_header .single_voice_header_wrap .single_voice_user li:first-child img {
    max-width: 110px;
    width: auto;
    margin: auto;
  }
}
.single_voice_header .single_voice_header_wrap .single_voice_user li .single_voice_ttl {
  margin-bottom: 15px;
  color: #333;
  font-size: clamp(20px, 1.8vw, 27px);
  font-weight: bold;
}
.single_voice_header .single_voice_header_wrap .single_voice_user li .single_voice_ttl span {
  color: #114FA1;
}
.single_voice_header .single_voice_header_wrap .single_voice_user li .single_voice_ttl2 {
  padding-left: 15px;
  color: #333;
  font-size: clamp(16px, 1.4vw, 18px);
  font-weight: bold;
  border-left: 5px #A7D0F2 solid;
}
.single_voice_header .single_voice_header_wrap .single_voice_user li .single_voice_ttl2 span {
  margin-top: 5px;
  font-size: clamp(14px, 1.2vw, 16px);
  display: block;
}
.single_voice_header .single_voice_cmt > p {
  width: 900px;
  margin: 0 auto 15px;
  color: #333;
  font-size: clamp(14px, 1.5vw, 16px);
  font-weight: 500;
}
@media screen and (max-width: 920px) {
  .single_voice_header .single_voice_cmt > p {
    width: auto;
  }
}

/* single voice service
------------------------------------------------- */
.single_voice_service {
  width: 320px;
  margin: 0 auto 100px;
}
@media (max-width: 480px) {
  .single_voice_service {
    width: auto;
    margin: 0 auto 50px;
  }
}
.single_voice_service dt {
  margin-bottom: 20px;
}
.single_voice_service dd {
  margin-bottom: 20px;
  font-size: clamp(14px, 1.5vw, 16px);
}
.single_voice_service dd:nth-child(2) {
  text-align: center;
  color: #2578BB;
  font-size: clamp(18px, 1.5vw, 20px);
  font-weight: bold;
}

/* voice_rel_carousel
------------------------------------------------- */
.voice_rel_carousel {
  padding: 0px 0 20px;
}
.voice_rel_carousel .slick-track {
  padding-bottom: 10px;
}
.voice_rel_carousel .slide-item {
  margin: 0 30px;
  border-top-left-radius: 50px;
  border-bottom-right-radius: 50px;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
  background: #fff url(../img/low/icon_voice_bg.webp) no-repeat right 20px top 20px;
  transition: all ease-in-out 0.3s;
}
@media (max-width: 768px) {
  .voice_rel_carousel .slide-item {
    margin: 0 20px;
  }
}
@media screen and (max-width: 414px) {
  .voice_rel_carousel .slide-item {
    margin: 0 15px;
  }
}
.voice_rel_carousel .slide-item a {
  padding: 50px 30px 20px 30px;
  display: block;
  text-decoration: none;
}
.voice_rel_carousel .slide-item .voice_archive_ttl {
  margin-bottom: 20px;
  padding-left: 15px;
  color: #333;
  font-size: clamp(18px, 1.8vw, 24px);
  font-weight: bold;
  border-left: 5px #A7D0F2 solid;
}
.voice_rel_carousel .slide-item .voice_archive_ttl span {
  margin-top: 5px;
  font-size: clamp(14px, 1.2vw, 16px);
  display: block;
}
.voice_rel_carousel .slide-item .voice_archive_ttl2 {
  margin-bottom: 20px;
  color: #333;
  font-size: clamp(15px, 1.5vw, 22px);
  font-weight: bold;
}
.voice_rel_carousel .slide-item .voice_archive_ttl2 span {
  color: #114FA1;
}
.voice_rel_carousel .slide-item .voice_archive_txt {
  margin-bottom: 20px;
  color: #333;
  font-size: clamp(14px, 1.2vw, 16px);
}
.voice_rel_carousel .slide-item .voice_more {
  margin-top: 10px;
  padding-right: 25px;
  text-align: right;
  position: relative;
}
.voice_rel_carousel .slide-item .voice_more.arrow_r_b {
  position: relative;
  display: inline-block;
  padding-left: 22px;
}
.voice_rel_carousel .slide-item .voice_more .arrow_r_b:before {
  content: "";
  width: 18px;
  height: 18px;
  background: #2578BB;
  border-radius: 50%;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}
.voice_rel_carousel .slide-item .voice_more .arrow_r_b:after {
  content: "";
  width: 6px;
  height: 6px;
  border: 0;
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
  transform: rotate(45deg);
  position: absolute;
  top: 0;
  right: 7px;
  bottom: 0;
  margin: auto;
}
.voice_rel_carousel .slide-item .slick-active {
  opacity: 1;
}
.voice_rel_carousel .slide-item .slick-current {
  opacity: 1;
}

/* dot
  ------------------------------------- */
.dots-v-rel {
  margin: 40px 0 0;
  display: flex;
  justify-content: center;
}
@media screen and (max-width: 560px) {
  .dots-v-rel {
    margin: 25px 0 0;
  }
}
.dots-v-rel li {
  width: 40px;
  height: 4px;
  margin: 0 5px;
  background: #2578BB;
  cursor: pointer;
}
.dots-v-rel li:hover, .dots-v-rel li.slick-active {
  background: #BACFE4;
}
.dots-v-rel li button {
  display: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  outline: none;
  padding: 0;
  border: none;
  background-color: transparent;
}

/* 
-------------------------------------------------------------------

staff

------------------------------------------------------------------- */
/* archive
------------------------------------------------------------------- */
.staff_archive {
  margin-bottom: 50px;
  display: grid;
  grid-template: repeat(1, 1fr)/repeat(3, 1fr);
  gap: 30px;
}
@media (max-width: 768px) {
  .staff_archive {
    grid-template: repeat(1, 1fr)/repeat(2, 1fr);
    gap: 0 20px;
  }
}
@media screen and (max-width: 560px) {
  .staff_archive {
    margin-bottom: 20px;
    grid-template: repeat(1, 1fr)/repeat(1, 1fr);
  }
}
.staff_archive li a {
  display: block;
  text-decoration: none;
}
.staff_archive li .staff_img {
  width: 100%;
  height: 16vw;
  /* 3:4の比率（幅100vw * 4/3） */
  overflow: hidden;
  /* はみ出した部分をカット */
  display: flex;
  justify-content: center;
  align-items: center;
}
@media (max-width: 768px) {
  .staff_archive li .staff_img {
    height: 26vw;
  }
}
@media screen and (max-width: 560px) {
  .staff_archive li .staff_img {
    height: 50vw;
  }
}
.staff_archive li .staff_img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 80% 20%;
     object-position: 80% 20%;
  border-radius: 15px;
}
.staff_archive li .staff_cmt {
  margin-left: 30px;
  padding: 20px;
  border-radius: 15px 0 0 0;
  background: #F4F2EB;
  position: relative;
  top: -30px;
}
.staff_archive li .staff_cmt .staff_name {
  margin-bottom: 10px;
  color: #333;
  font-size: clamp(18px, 1.5vw, 22px);
  font-weight: bold;
}
.staff_archive li .staff_cmt .staff_txt {
  color: #2578BB;
  font-size: clamp(14px, 1.2vw, 16px);
}
.staff_archive li .staff_cmt .staff_txt .arrow {
  margin-left: 10px;
  position: relative;
  display: inline-block;
  width: 6.8px;
  height: 9.7px;
}
.staff_archive li .staff_cmt .staff_txt .arrow::before,
.staff_archive li .staff_cmt .staff_txt .arrow::after {
  content: "";
  position: absolute;
  top: calc(50% - 1px);
  right: 0;
  width: 8px;
  height: 2px;
  border-radius: 9999px;
  background-color: #114fa1;
  transform-origin: calc(100% - 1px) 50%;
}
.staff_archive li .staff_cmt .staff_txt .arrow::before {
  transform: rotate(45deg);
}
.staff_archive li .staff_cmt .staff_txt .arrow::after {
  transform: rotate(-45deg);
}

/* single
------------------------------------------------------------------- */
/* staff_block
------------------------------------------------- */
.staff_block {
  margin-bottom: 130px;
  align-items: center;
  display: flex;
}
@media (max-width: 768px) {
  .staff_block {
    margin-bottom: 50px;
    align-items: stretch;
  }
}
@media screen and (max-width: 560px) {
  .staff_block {
    display: block;
  }
}
.staff_block li {
  flex: 1;
}
.staff_block li:first-child {
  width: 100%;
  height: 26vw;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  z-index: 1;
}
@media (max-width: 768px) {
  .staff_block li:first-child {
    height: 26vw;
  }
}
@media screen and (max-width: 560px) {
  .staff_block li:first-child {
    width: 94%;
    margin-bottom: 50px;
    height: 50vw;
  }
}
.staff_block li:first-child img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: 80% 20%;
     object-position: 80% 20%;
  border-radius: 15px;
}
.staff_block li:first-child::after {
  content: "";
  width: 100%;
  height: 100%;
  border-radius: 15px;
  background-image: linear-gradient(45deg, #bacfe4, #89aed6);
  position: absolute;
  bottom: -40px;
  right: -40px;
  z-index: -1;
}
@media (max-width: 768px) {
  .staff_block li:first-child::after {
    bottom: -20px;
    right: -20px;
  }
}
.staff_block li:last-child {
  margin-left: 100px;
}
@media (max-width: 768px) {
  .staff_block li:last-child {
    margin-left: 50px;
  }
}
@media screen and (max-width: 560px) {
  .staff_block li:last-child {
    margin-left: 0px;
  }
}
.staff_block li:last-child .staff_name {
  margin-bottom: 10px;
  color: #333;
  font-size: clamp(22px, 2vw, 30px);
  font-weight: bold;
}
.staff_block li:last-child .staff_txt {
  margin-bottom: 20px;
  font-size: clamp(14px, 1.2vw, 16px);
  font-weight: 500;
}
.staff_block li:last-child .staff_cmt_list {
  margin-bottom: 20px;
  color: #333;
}
.staff_block li:last-child .staff_cmt_list dt {
  margin-bottom: 10px;
  padding-left: 10px;
  border-left: 8px #114FA1 solid;
  font-size: clamp(18px, 1.5vw, 22px);
  font-weight: bold;
}
.staff_block li:last-child .staff_cmt_list dd {
  font-size: clamp(14px, 1.2vw, 16px);
}

/* staff_block
------------------------------------------------- */
.single_staff_cmt > h3 {
  margin-top: 50px;
  margin-bottom: 40px;
  padding: 10px 20px;
  color: #fff;
  font-size: clamp(20px, 1.8vw, 24px);
  font-weight: bold;
  background: #5793C9;
}
@media (max-width: 480px) {
  .single_staff_cmt > h3 {
    margin-top: 30px;
    margin-bottom: 20px;
  }
}
.single_staff_cmt > p {
  width: 900px;
  margin: 0 auto 20px;
  color: #333;
  font-size: clamp(14px, 1.5vw, 16px);
  font-weight: 500;
}
@media screen and (max-width: 920px) {
  .single_staff_cmt > p {
    width: auto;
  }
}

/* 
-------------------------------------------------------------------

useful

------------------------------------------------------------------- */
/* archive
------------------------------------------------------------------- */
.useful_archive {
  width: 800px;
  margin: 0 auto 50px;
  box-shadow: 2px 4px 4px rgba(0, 0, 0, 0.25);
  background: #fff;
}
@media screen and (max-width: 820px) {
  .useful_archive {
    width: auto;
    margin: 0 auto 30px;
  }
}
.useful_archive a {
  display: flex;
  align-items: center;
  text-decoration: none;
}
@media screen and (max-width: 650px) {
  .useful_archive a {
    display: block;
  }
}
.useful_archive li:first-child {
  flex-basis: 360px;
  flex-shrink: 0;
}
.useful_archive li:first-child img {
  width: 100%;
}
.useful_archive li:last-child {
  padding: 20px;
  flex: 1;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-self: stretch;
}
.useful_archive li:last-child .useful_archive_ttl {
  color: #333;
  font-size: clamp(18px, 1.8vw, 20px);
  font-weight: bold;
}
@media screen and (max-width: 650px) {
  .useful_archive li:last-child .useful_archive_ttl {
    padding-bottom: 40px;
  }
}
.useful_archive li:last-child .useful_more {
  padding-right: 25px;
  position: absolute;
  bottom: 20px;
  right: 20px;
}
.useful_archive li:last-child .useful_more.arrow_r_b {
  position: relative;
  display: inline-block;
  padding-left: 22px;
}
.useful_archive li:last-child .useful_more .arrow_r_b:before {
  content: "";
  width: 18px;
  height: 18px;
  background: #2578BB;
  border-radius: 50%;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  margin: auto;
}
.useful_archive li:last-child .useful_more .arrow_r_b:after {
  content: "";
  width: 6px;
  height: 6px;
  border: 0;
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
  transform: rotate(45deg);
  position: absolute;
  top: 0;
  right: 7px;
  bottom: 0;
  margin: auto;
}

/* single useful
------------------------------------------------------------------- */
/* single_seful_wrap
------------------------------------------------- */
.single_useful_wrap {
  width: 1200px;
  margin: 80px auto;
  display: flex;
  gap: 0 40px;
  /* single_useful_contents
  ------------------------------------------------- */
}
@media screen and (max-width: 1220px) {
  .single_useful_wrap {
    width: auto;
    margin: 80px 15px;
  }
}
@media (max-width: 768px) {
  .single_useful_wrap {
    margin-top: 70px;
    display: block;
  }
}
.single_useful_wrap .single_useful_contents {
  flex: 1;
  /*comment_right*/
  /*comment_left*/
}
.single_useful_wrap .single_useful_contents > p {
  margin-bottom: 20px;
}
.single_useful_wrap .single_useful_contents > h4 {
  margin-top: 30px;
  margin-bottom: 30px;
  padding: 10px 20px;
  color: #fff;
  font-size: clamp(20px, 1.8vw, 24px);
  font-weight: bold;
  background: #5793C9;
  align-items: center;
  display: flex;
}
@media (max-width: 480px) {
  .single_useful_wrap .single_useful_contents > h4 {
    margin-bottom: 20px;
  }
}
.single_useful_wrap .single_useful_contents > h5 {
  margin-top: 30px;
  margin-bottom: 20px;
  padding-left: 10px;
  color: #333;
  font-size: clamp(18px, 1.5vw, 22px);
  font-weight: bold;
  border-left: 2px #114FA1 solid;
}
.single_useful_wrap .single_useful_contents .date {
  margin-bottom: 30px;
  color: #333;
  font-size: clamp(18px, 1.8vw, 24px);
  font-weight: 500;
}
.single_useful_wrap .single_useful_contents .single_useful_img {
  margin-bottom: 20px;
}
.single_useful_wrap .single_useful_contents .single_useful_img img {
  width: 100%;
}
.single_useful_wrap .single_useful_contents .comment_right {
  margin-bottom: 50px;
  flex-direction: row-reverse;
  justify-content: flex-end;
  align-items: center;
  display: flex;
}
@media (max-width: 480px) {
  .single_useful_wrap .single_useful_contents .comment_right {
    margin-bottom: 30px;
  }
}
@media (max-width: 480px) {
  .single_useful_wrap .single_useful_contents .comment_right dt {
    width: 80px;
  }
}
.single_useful_wrap .single_useful_contents .comment_right dd {
  text-align: right;
  flex: 1;
}
.single_useful_wrap .single_useful_contents .comment_right dd span {
  line-height: 1.8;
  margin-right: 40px;
  margin-left: 50px;
  padding: 15px 20px;
  text-align: left;
  color: #333;
  font-size: clamp(14px, 1.5vw, 16px);
  border-radius: 10px;
  background: #BACFE4;
  display: inline-block;
  position: relative;
}
@media (max-width: 480px) {
  .single_useful_wrap .single_useful_contents .comment_right dd span {
    margin-right: 20px;
    margin-left: 0px;
  }
}
.single_useful_wrap .single_useful_contents .comment_right dd span::after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 15px solid transparent;
  border-bottom: 15px solid transparent;
  border-left: 20px solid #bacfe4;
  border-right: 0;
  position: absolute;
  top: 50%;
  right: -20px;
  transform: translateY(-50%);
}
@media screen and (max-width: 560px) {
  .single_useful_wrap .single_useful_contents .comment_right dd span {
    padding: 10px 20px;
  }
}
.single_useful_wrap .single_useful_contents .comment_right dd span img {
  width: 18px;
  position: absolute;
  top: 0;
  right: -6px;
  transform: scale(-1, 1);
}
.single_useful_wrap .single_useful_contents .comment_left {
  margin-bottom: 20px;
  align-items: center;
  display: flex;
}
@media (max-width: 480px) {
  .single_useful_wrap .single_useful_contents .comment_left dt {
    width: 80px;
  }
}
.single_useful_wrap .single_useful_contents .comment_left dd {
  flex: 1;
}
.single_useful_wrap .single_useful_contents .comment_left dd span {
  line-height: 1.8;
  margin-left: 40px;
  margin-right: 50px;
  padding: 15px 20px;
  color: #333;
  font-size: clamp(14px, 1.5vw, 16px);
  border-radius: 10px;
  background: #BACFE4;
  display: inline-block;
  position: relative;
}
@media (max-width: 480px) {
  .single_useful_wrap .single_useful_contents .comment_left dd span {
    margin-left: 20px;
    margin-right: 0px;
  }
}
.single_useful_wrap .single_useful_contents .comment_left dd span::before {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 15px solid transparent;
  border-bottom: 15px solid transparent;
  border-right: 20px solid #bacfe4;
  border-left: 0;
  position: absolute;
  top: 50%;
  left: -20px;
  transform: translateY(-50%);
}
@media screen and (max-width: 560px) {
  .single_useful_wrap .single_useful_contents .comment_left dd span {
    padding: 10px 20px;
  }
}
.single_useful_wrap .single_useful_contents .comment_left dd span img {
  width: 18px;
  position: absolute;
  top: 0;
  left: -6px;
  transform: rotate(-8deg);
}
@media screen and (max-width: 560px) {
  .single_useful_wrap .single_useful_contents .comment_left dd span img {
    left: -8px;
  }
}
.single_useful_wrap .single_useful_aside {
  flex-basis: 385px;
  /* company */
  /* useful_aside_ttl */
  /* useful_aside_archive */
  /* useful_aside_service */
}
.single_useful_wrap .single_useful_aside .aside_company {
  width: 250px;
  margin: 0 auto 80px;
  color: #333;
  text-align: center;
}
.single_useful_wrap .single_useful_aside .aside_company dt {
  margin-bottom: 10px;
}
.single_useful_wrap .single_useful_aside .aside_company dt img {
  width: 120px;
  margin: auto;
}
.single_useful_wrap .single_useful_aside .aside_company dd {
  margin-bottom: 10px;
  font-size: clamp(14px, 1.5vw, 16px);
}
.single_useful_wrap .single_useful_aside .aside_company dd.com_name {
  font-size: clamp(18px, 1.5vw, 22px);
  font-weight: bold;
}
.single_useful_wrap .single_useful_aside .aside_company dd a {
  display: block;
  text-decoration: none;
}
.single_useful_wrap .single_useful_aside .useful_aside_ttl {
  margin-bottom: 20px;
  color: #333;
  font-size: clamp(18px, 1.5vw, 22px);
  font-weight: bold;
}
.single_useful_wrap .single_useful_aside .useful_aside_ttl.as_wht {
  color: #fff;
}
.single_useful_wrap .single_useful_aside .useful_aside_ttl span {
  margin-left: 20px;
  font-size: clamp(16px, 1.4vw, 18px);
  font-weight: 500;
}
.single_useful_wrap .single_useful_aside .useful_aside_archive {
  margin: 0 auto 20px;
  border-radius: 5px;
  box-shadow: 2px 4px 4px rgba(0, 0, 0, 0.25);
  background: #fff;
}
@media screen and (max-width: 820px) {
  .single_useful_wrap .single_useful_aside .useful_aside_archive {
    width: auto;
    margin: 0 auto 30px;
  }
}
.single_useful_wrap .single_useful_aside .useful_aside_archive a {
  display: flex;
  align-items: center;
  text-decoration: none;
}
@media screen and (max-width: 650px) {
  .single_useful_wrap .single_useful_aside .useful_aside_archive a {
    display: block;
  }
}
.single_useful_wrap .single_useful_aside .useful_aside_archive li:first-child {
  flex-basis: 160px;
  flex-shrink: 0;
}
.single_useful_wrap .single_useful_aside .useful_aside_archive li:first-child img {
  width: 100%;
}
.single_useful_wrap .single_useful_aside .useful_aside_archive li:last-child {
  padding: 0 15px;
  font-size: clamp(16px, 1.5vw, 16px);
  font-weight: bold;
}
@media (max-width: 768px) {
  .single_useful_wrap .single_useful_aside .useful_aside_archive li:last-child {
    padding: 20px;
  }
}
.single_useful_wrap .single_useful_aside .useful_aside_service {
  margin-top: 30px;
  padding: 20px;
  background: #5793C9;
}
.single_useful_wrap .single_useful_aside .useful_aside_service .useful_aside_service_list {
  display: grid;
  grid-template: repeat(1, 1fr)/repeat(2, 1fr);
  gap: 5px;
}
.single_useful_wrap .single_useful_aside .useful_aside_service li {
  border-radius: 10px;
  border: 1px #114FA1 solid;
  text-align: center;
  flex-direction: column;
  display: flex;
  background: #fff;
}
.single_useful_wrap .single_useful_aside .useful_aside_service li a {
  padding: 20px 10px;
  text-decoration: none;
}
.single_useful_wrap .single_useful_aside .useful_aside_service li img {
  margin: auto;
}
.single_useful_wrap .single_useful_aside .useful_aside_service li span {
  margin-top: 10px;
  font-weight: bold;
  display: block;
}

/* 
-------------------------------------------------------------------

philosophy

------------------------------------------------------------------- */
.philosophy_bg {
  padding: 100px 0 100px;
  background-image: url(../img/low/philosophy.webp);
  background-repeat: repeat-y;
  background-position: center top;
  background-size: 100% auto;
}
@media (max-width: 768px) {
  .philosophy_bg {
    padding: 50px 0;
  }
}
.philosophy_bg.recruit {
  background-position: center -300px;
}
@media (max-width: 768px) {
  .philosophy_bg.recruit {
    background-position: center -200px;
  }
}
@media (max-width: 480px) {
  .philosophy_bg.recruit {
    background-position: center -100px;
  }
}

.philosophy_wrap {
  width: 850px;
  margin: 0 auto;
}
@media screen and (max-width: 870px) {
  .philosophy_wrap {
    width: auto;
    margin: 0 15px;
  }
}

.philosophy_inner {
  width: 1200px;
  margin: 0 auto;
  box-sizing: border-box;
}
@media screen and (max-width: 1220px) {
  .philosophy_inner {
    width: auto;
    margin: 0 15px;
  }
}

/* the philosophy
------------------------------------------------- */
.the_philosophy {
  margin-bottom: 60px;
  color: #333;
  font-size: clamp(23px, 3vw, 32px);
  font-weight: bold;
}
@media screen and (max-width: 560px) {
  .the_philosophy {
    margin-bottom: 40px;
  }
}
.the_philosophy .jp {
  margin-left: 30px;
  padding-left: 25px;
  position: relative;
}
@media screen and (max-width: 560px) {
  .the_philosophy .jp {
    margin-left: 15px;
    display: block;
  }
}
.the_philosophy .jp::before {
  content: "";
  width: 30px;
  height: 2px;
  background: #333;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateX(-50%);
}
.the_philosophy span {
  color: #1E6096;
}

.the_philosophy_txt {
  margin-bottom: 20px;
  color: #333;
  font-size: clamp(16px, 1.8vw, 24px);
  font-weight: bold;
}
.the_philosophy_txt.mb {
  margin-bottom: 100px;
}
@media (max-width: 768px) {
  .the_philosophy_txt.mb {
    margin-bottom: 50px;
  }
}

/* philosophy block
------------------------------------------------- */
.philosophy_ttl {
  color: #BACFE4;
  font-size: clamp(60px, 5vw, 75px);
  font-weight: 900;
  position: absolute;
  top: -60px;
  opacity: 0.6;
}
.philosophy_ttl.left {
  left: -30px;
}
.philosophy_ttl.right {
  right: -30px;
}
@media (max-width: 480px) {
  .philosophy_ttl {
    top: -50px;
  }
}

.philosophy_ttl2 {
  margin-bottom: 30px;
  color: #333;
  font-size: clamp(20px, 2.5vw, 32px);
  font-weight: bold;
}
@media (max-width: 480px) {
  .philosophy_ttl2 {
    margin-bottom: 20px;
  }
}

.philosophy_block {
  margin: 150px 0 150px;
  margin-bottom: 50px;
  display: flex;
  gap: 50px;
}
.philosophy_block.rev {
  flex-direction: row-reverse;
}
@media screen and (max-width: 1220px) {
  .philosophy_block {
    margin: 150px 40px 150px;
  }
}
@media (max-width: 768px) {
  .philosophy_block {
    margin: 100px 40px 100px;
    display: block;
  }
}
@media (max-width: 480px) {
  .philosophy_block {
    margin: 80px 15px 80px;
  }
}
.philosophy_block li {
  flex: 1;
}
.philosophy_block li.img {
  width: 480px;
  position: relative;
}
@media (max-width: 768px) {
  .philosophy_block li.img {
    width: auto;
    margin-bottom: 20px;
  }
}
.philosophy_block li.img img {
  width: 100%;
}
.philosophy_block li .txt {
  color: #333;
  font-size: clamp(16px, 1.5vw, 20px);
  font-weight: 500;
}

/* 
-------------------------------------------------------------------

recruit

------------------------------------------------------------------- */
/* recruit mv
------------------------------------------------------------------- */
.recruit_mv {
  position: relative;
}
.recruit_mv img {
  width: 100%;
  vertical-align: bottom;
}
.recruit_mv .catch {
  width: 100%;
  padding: 0 0 6% 6%;
  color: #fff;
  font-size: clamp(14px, 2.5vw, 40px);
  font-weight: bold;
  text-shadow: 0px 0px 4px rgba(0, 0, 0, 0.4);
  position: absolute;
  left: 0;
  bottom: 0;
}
@media (max-width: 480px) {
  .recruit_mv .catch {
    padding: 3% 3%;
    background: rgba(37, 120, 187, 0.7);
  }
}

/* recruit_txt
------------------------------------------------------------------- */
.recruit_txt {
  line-height: 2;
  margin-bottom: 50px;
}
@media (max-width: 480px) {
  .recruit_txt {
    margin-bottom: 30px;
  }
}

/* recruit_card
------------------------------------------------------------------- */
.recruit_card {
  margin-bottom: 50px;
  border-radius: 8px;
  border-left: 10px #1E6096 solid;
  box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.25);
  background: #fff;
  display: flex;
  align-items: center;
}
@media screen and (max-width: 820px) {
  .recruit_card {
    width: auto;
    margin: 0 auto 30px;
  }
}
@media (max-width: 768px) {
  .recruit_card {
    display: block;
  }
}
.recruit_card li:last-child {
  flex-basis: 530px;
  flex-shrink: 0;
}
@media screen and (max-width: 1000px) {
  .recruit_card li:last-child {
    flex-basis: 55%;
  }
}
.recruit_card li:last-child img {
  width: 100%;
}
.recruit_card li:first-child {
  padding: 20px;
  flex: 1;
}
.recruit_card li:first-child .recruit_card_ttl {
  margin-bottom: 10px;
  font-size: clamp(14px, 1.5vw, 24px);
  font-weight: bold;
}
.recruit_card li:first-child .recruit_card_ttl span {
  margin-right: 20px;
  color: #1E6096;
  font-size: clamp(14px, 1.5vw, 22px);
  font-weight: bold;
  position: relative;
}
@media (max-width: 768px) {
  .recruit_card li:first-child .recruit_card_ttl span {
    margin-right: 10px;
  }
}
.recruit_card li:first-child .recruit_card_ttl span::before {
  content: "";
  width: 100%;
  height: 4px;
  background: #2578BB;
  position: absolute;
  bottom: -2px;
  left: 0;
}
.recruit_card li:first-child .recruit_card_ttl b {
  margin-right: 40px;
}
@media (max-width: 768px) {
  .recruit_card li:first-child .recruit_card_ttl b {
    margin-right: 10px;
  }
}
.recruit_card li:first-child .recruit_card_ttl b img {
  display: inline-block;
}
@media (max-width: 768px) {
  .recruit_card li:first-child .recruit_card_ttl b img {
    width: 40px;
  }
}
.recruit_card li:first-child .recruit_card_ttl2 {
  line-height: 1.8;
  margin-bottom: 10px;
  color: #333;
  font-size: clamp(18px, 1.8vw, 24px);
  font-weight: bold;
}
.recruit_card li:first-child .recruit_card_ttl2 strong {
  color: #1E6096;
  font-weight: bold;
}
.recruit_card li:first-child .recruit_card_txt {
  margin-bottom: 20px;
  font-weight: 500;
}
.recruit_card li:first-child .recruit_card_sns {
  align-items: center;
  justify-content: flex-end;
  display: flex;
  gap: 25px;
}

/* recruit table
------------------------------------------------- */
.recruit_table {
  width: 100%;
  margin-bottom: 80px;
  border: 1px #52616C solid;
  box-sizing: border-box;
}
@media (max-width: 480px) {
  .recruit_table {
    margin-bottom: 40px;
    display: block;
    border: none;
  }
}
@media (max-width: 480px) {
  .recruit_table tbody {
    display: block;
    width: 100%;
  }
}
@media (max-width: 480px) {
  .recruit_table tr {
    display: block;
    width: 100%;
    border: 1px #52616C solid;
    border-bottom: none;
  }
  .recruit_table tr:last-child {
    border-bottom: 1px #52616C solid;
  }
}
.recruit_table td {
  padding: 15px;
  color: #333;
  font-size: clamp(14px, 1.2vw, 16px);
  border: 1px #52616C solid;
  background: #fff;
}
@media (max-width: 480px) {
  .recruit_table td {
    display: block;
    width: 100% !important;
    box-sizing: border-box;
    border: none;
    border-bottom: 1px #52616C solid;
  }
  .recruit_table td:last-child {
    border-bottom: none;
  }
}
.recruit_table td:first-child {
  width: 160px;
  color: #114FA1;
  font-weight: bold;
  background: #EBF1F8;
}
@media (max-width: 480px) {
  .recruit_table td:first-child {
    width: 100% !important;
    background: #f5f5f5;
  }
}

/* bottom rel page
------------------------------------------------- */
.rel_page {
  padding: 50px 30px;
  border-radius: 80px;
  background: #F4F2EB;
}
@media screen and (max-width: 650px) {
  .rel_page {
    padding: 30px 20px;
    border-radius: 30px;
  }
}
.rel_page.inner {
  width: 1200px;
  margin: 0 auto;
}
@media screen and (max-width: 1220px) {
  .rel_page.inner {
    width: auto;
    margin: 0 15px;
  }
}
.rel_page.inner2 {
  width: 1200px;
  margin: 0 auto 100px;
}
@media screen and (max-width: 1220px) {
  .rel_page.inner2 {
    width: auto;
    margin: 0 15px 50px;
  }
}
.rel_page > h2 {
  margin-bottom: 60px;
  color: #333;
  font-size: clamp(14px, 1.5vw, 22px);
  font-weight: bold;
  text-align: center;
}
@media screen and (max-width: 650px) {
  .rel_page > h2 {
    margin-bottom: 30px;
  }
}
.rel_page hr {
  margin: 30px 0;
}
a:has(.rel_page_block) {
  display: block;
  text-decoration: none;
  color: inherit;
}

.rel_page_block {
  width: 850px;
  margin: 0 auto;
  align-items: center;
  display: flex;
  gap: 20px;
}
@media screen and (max-width: 1000px) {
  .rel_page_block {
    width: auto;
  }
}
@media screen and (max-width: 650px) {
  .rel_page_block {
    display: block;
  }
}
.rel_page_block li:first-child {
  flex-basis: 340px;
}
.rel_page_block li:first-child img {
  width: 100%;
}
@media (max-width: 768px) {
  .rel_page_block li:first-child {
    flex-basis: 40%;
  }
}
@media screen and (max-width: 650px) {
  .rel_page_block li:first-child {
    margin-bottom: 20px;
  }
}
.rel_page_block li:first-child img {
  border-radius: 30px 0 30px 0;
}
.rel_page_block li:last-child {
  justify-content: space-between;
  align-items: center;
  display: flex;
  flex: 1;
}
.rel_page_block li:last-child > h3 {
  color: #333;
  font-size: clamp(22px, 2vw, 30px);
  font-weight: 500;
  flex: 1;
}
.rel_page_block li:last-child > h3 span {
  font-size: clamp(16px, 1.3vw, 18px);
  display: block;
}
.rel_page_block li:last-child > p {
  display: flex;
  justify-content: flex-end;
}
@media (max-width: 480px) {
  .rel_page_block li:last-child > p img {
    width: 70%;
  }
}

/* 
-------------------------------------------------------------------

company

------------------------------------------------------------------- */
.company_wrap {
  width: 850px;
  margin: 0 auto;
}
@media screen and (max-width: 870px) {
  .company_wrap {
    width: auto;
    margin: 0 15px;
  }
}
.company_wrap.pd01 {
  padding: 80px 0;
}
@media (max-width: 768px) {
  .company_wrap.pd01 {
    padding: 40px 0;
  }
}

/* overview
------------------------------------------------------------------- */
.company_overview {
  padding: 20px 0;
  border-bottom: 1px #52616C solid;
  align-items: center;
  display: flex;
  gap: 20px;
}
.company_overview:first-of-type {
  border-top: 1px #52616C solid;
}
.company_overview:last-of-type {
  margin-bottom: 80px;
}
@media (max-width: 480px) {
  .company_overview:last-of-type {
    margin-bottom: 40px;
  }
}
.company_overview dt {
  width: 140px;
  color: #114FA1;
  font-size: clamp(14px, 1.2vw, 16px);
  font-weight: bold;
}
@media (max-width: 480px) {
  .company_overview dt {
    width: 90px;
  }
}
.company_overview dd {
  color: #333;
  font-size: clamp(14px, 1.2vw, 16px);
  font-weight: bold;
  text-align: left;
  flex: 1;
}
.company_overview dd span {
  margin-top: 5px;
  display: block;
}
.company_overview dd span a {
  color: #E02F3D;
}
.company_overview dd span a img {
  margin-right: 5px;
  display: inline-block;
}

/* gmap
------------------------------------------------- */
.gmap {
  margin-bottom: 80px;
  height: 0;
  overflow: hidden;
  padding-bottom: 46.25%;
  position: relative;
}
@media screen and (max-width: 560px) {
  .gmap {
    margin-bottom: 20px;
    padding-bottom: 66.25%;
  }
}
.gmap iframe,
.gmap object,
.gmap embed {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
}

/* 
-------------------------------------------------------------------

message

------------------------------------------------------------------- */
/* message block
------------------------------------------------------------------- */
.message_ceo {
  width: 1200px;
  margin: 0 auto 80px;
  align-items: center;
  display: flex;
  gap: 20px;
}
@media screen and (max-width: 1220px) {
  .message_ceo {
    width: auto;
    margin: 0 15px 50px;
  }
}
@media screen and (max-width: 560px) {
  .message_ceo {
    display: block;
    margin: 0 15px 20px;
  }
}
.message_ceo li {
  flex: 1;
}
.message_ceo li .message_ttl {
  margin-bottom: 20px;
  color: #BACFE4;
  font-size: clamp(45px, 8vw, 86px);
  font-weight: 900;
  opacity: 0.6;
}
.message_ceo li .message_lead {
  margin-left: 50px;
  color: #333;
  font-size: clamp(16px, 1.8vw, 26px);
  font-weight: bold;
}
@media (max-width: 768px) {
  .message_ceo li .message_lead {
    margin-left: 20px;
  }
}
.message_ceo li .message_lead span {
  color: #1E6096;
}
.message_ceo li:last-child {
  width: 600px;
}
@media screen and (max-width: 560px) {
  .message_ceo li:last-child {
    width: auto;
    margin-top: 30px;
  }
}
.message_ceo li:last-child img {
  width: 100%;
  border-radius: 50px 0;
}

/* message txt
------------------------------------------------------------------- */
.message_txt {
  margin-bottom: 20px;
  color: #333;
  font-size: clamp(16px, 1.5vw, 22px);
  font-weight: 500;
}

.ceo_name {
  line-height: 1.8;
  text-align: right;
  font-size: clamp(18px, 1.2vw, 20px);
  font-weight: bold;
  color: #333;
  letter-spacing: 0.05em;
}
.ceo_name span {
  font-size: clamp(26px, 1.8vw, 26px);
}

.decoration_txt {
  margin-top: -60px;
  font-size: clamp(20px, 8vw, 120px);
  font-weight: 900;
  text-align: center;
  color: #BACFE4;
  width: 100%;
  white-space: nowrap;
  overflow: hidden;
  opacity: 0.2;
  position: relative;
  bottom: -60px;
  z-index: -1;
}
@media (max-width: 768px) {
  .decoration_txt {
    margin-top: -30px;
    bottom: -30px;
  }
}
@media (max-width: 480px) {
  .decoration_txt {
    margin-top: -10px;
    bottom: -10px;
  }
}

/* 
-------------------------------------------------------------------

privacypolicy

------------------------------------------------------------------- */
.pp_ttl {
  margin-bottom: 10px;
  color: #333;
  font-size: clamp(18px, 1.8vw, 20px);
  font-weight: bold;
}

.pp_txt {
  margin-bottom: 30px;
  color: #333;
  font-size: clamp(14px, 1.2vw, 16px);
}

.pp_list {
  margin-bottom: 30px;
}
.pp_list li {
  line-height: 1.8;
  color: #333;
  font-size: clamp(14px, 1.2vw, 16px);
}

/* 
-------------------------------------------------------------------

cntact

------------------------------------------------------------------- */
/* contact head
------------------------------------------------------------------- */
.contact_head {
  padding: 30px 0;
  border-top: 1px #333 solid;
  border-bottom: 1px #333 solid;
}
.contact_head:nth-of-type(2) {
  margin-bottom: 50px;
  border-top: none;
}

.contact_ttl2 {
  margin-bottom: 10px;
  color: #486284;
  font-size: clamp(16px, 1.8vw, 20px);
  font-weight: bold;
}

.contact_tel_num {
  margin-bottom: 20px;
}
.contact_tel_num a {
  font-size: clamp(30px, 4vw, 36px);
  font-weight: bold;
  text-decoration: none;
  align-items: center;
  display: flex;
}
.contact_tel_num a img {
  width: 3.5%;
  margin-right: 5px;
}
@media (max-width: 768px) {
  .contact_tel_num a img {
    width: 25px;
  }
}

.contact_hour {
  margin-bottom: 10px;
  color: #333;
  font-size: clamp(14px, 1.2vw, 16px);
  align-items: center;
  display: flex;
}
.contact_hour dt {
  width: 100px;
  margin-right: 10px;
  padding: 5px 10px;
  text-align: center;
  color: #fff;
  background: #2578BB;
}
.contact_hour dd {
  font-weight: bold;
}

.contact_faq {
  margin-bottom: 10px;
  padding: 20px;
  border-radius: 10px;
  background: #F4F2EB;
}
.contact_faq li {
  margin-bottom: 5px;
  font-size: clamp(14px, 1.2vw, 16px);
}

/* contact form
------------------------------------------------------------------- */
/* form */
.form_wrap {
  padding: 70px 100px;
  border: none;
  border-radius: 10px;
  background: #EDF2F8;
}
@media (max-width: 768px) {
  .form_wrap {
    padding: 50px 50px;
  }
}
@media screen and (max-width: 560px) {
  .form_wrap {
    padding: 30px 25px;
  }
}

.required {
  margin-left: 8px;
  padding: 2px 5px;
  text-align: center;
  font-size: 12px;
  color: #fff;
  border-radius: 2px;
  background: #F87E7E;
  vertical-align: middle;
  display: inline-block;
}

.form_block {
  line-height: 1.5;
  margin-top: 30px;
}
.form_block:first-of-type {
  margin-top: 0px;
}
.form_block label {
  margin-bottom: 10px;
  color: #333;
  font-size: clamp(13px, 2vw, 15px);
  font-weight: bold;
  display: block;
}
.form_block input[type=text],
.form_block input[type=email] {
  width: 100%;
  height: 40px;
  padding: 10px 15px;
  font-size: 16px;
  border: 1px #ddd solid;
  box-sizing: border-box;
  background: #fff;
}
.form_block input[type=text]:focus,
.form_block input[type=email]:focus {
  border: none;
  outline: 1px #000 solid;
}
.form_block textarea {
  width: 100%;
  height: 200px;
  line-height: 1.8;
  padding: 10px 15px;
  font-size: 16px;
  border: 1px #ddd solid;
  box-sizing: border-box;
  background: #fff;
}
.form_block textarea:focus {
  outline: 1px #000 solid;
  outline: 0;
}

/* agree */
.agree {
  margin-top: 30px;
  text-align: center;
  font-size: clamp(12px, 1vw, 15px);
}
.agree input[type=checkbox] {
  width: 15px;
  height: 15px;
  margin-right: 5px;
}
.agree input[type=checkbox] .mwform-checkbox-field {
  width: auto;
  display: inline;
  margin-bottom: 0px;
}
.agree input[type=checkbox] .mwform-checkbox-field-text {
  display: inline;
  cursor: pointer;
}
.agree input[type=checkbox] .mwform-checkbox-field-text:hover {
  background-color: transparent;
  color: #000;
  border: none !important;
}
.agree input[type=checkbox] input[type=checkbox] {
  cursor: pointer;
}

/* form_btn */
.form_btn input[type=submit] {
  width: 300px;
  margin: 40px auto 0;
  padding: 18px 15px;
  text-align: center;
  letter-spacing: 0.2em;
  color: #fff;
  font-size: 16px;
  font-weight: bold;
  border-radius: 5px;
  text-decoration: none;
  border: 1px #114FA1 solid;
  background: #114FA1;
  box-sizing: border-box;
  cursor: pointer;
  -webkit-appearance: none;
  transition: all 0.4s;
}
.form_btn input[type=submit]:hover {
  color: #114FA1;
  background: #fff;
}

/* contactform7 ローディングアニメーション（スピナー）非表示 */
.wpcf7-spinner {
  display: none !important;
}

/* 送信ボタン下に表示されるメッセージを非表示 */
.wpcf7-response-output {
  display: none !important;
}

/* 
-------------------------------------------------------------------

news

------------------------------------------------------------------- */
.news_wrap {
  width: 850px;
  margin: 60px auto;
}
@media screen and (max-width: 870px) {
  .news_wrap {
    width: auto;
    margin: 30px 15px 0;
  }
}
.news_wrap > p {
  margin-bottom: 20px;
}

.news_list {
  margin-bottom: 20px;
  padding-bottom: 15px;
  border-bottom: 1px #ccc solid;
}
.news_list dt {
  margin-bottom: 5px;
  font-size: clamp(13px, 1.5vw, 14px);
}
.news_list dd {
  color: #333;
  font-size: clamp(18px, 1.5vw, 20px);
  font-weight: bold;
}
.news_list dd a {
  display: block;
  text-decoration: none;
}

/* 
-------------------------------------------------------------------

footer

------------------------------------------------------------------- */
/* footer_block
------------------------------------------------------------------- */
.footer {
  background: #2E3E4B;
}
.footer .footer_block {
  width: 1200px;
  margin: 0 auto;
  padding: 35px 0;
  color: #fff;
  justify-content: space-between;
  display: flex;
  gap: 30px;
  /* footer_info
  ------------------------------------------------------------------- */
  /* footer_area
  ------------------------------------------------------------------- */
}
@media screen and (max-width: 1220px) {
  .footer .footer_block {
    width: auto;
    margin: 0 15px;
  }
}
@media (max-width: 768px) {
  .footer .footer_block {
    display: block;
    padding: 25px 0;
  }
}
.footer .footer_block .footer_info {
  flex: 1;
}
@media (max-width: 768px) {
  .footer .footer_block .footer_info {
    margin-bottom: 30px;
  }
}
@media screen and (max-width: 414px) {
  .footer .footer_block .footer_info {
    margin-bottom: 20px;
  }
}
.footer .footer_block .footer_info .footer_logo {
  margin-bottom: 20px;
  display: flex;
}
@media screen and (max-width: 414px) {
  .footer .footer_block .footer_info .footer_logo {
    display: block;
  }
}
.footer .footer_block .footer_info .footer_logo > h2 img {
  width: 250px;
}
@media screen and (max-width: 414px) {
  .footer .footer_block .footer_info .footer_logo > h2 img {
    width: 160px;
    height: auto;
    max-width: none;
    transition: 0.3s ease-in-out;
  }
}
.footer .footer_block .footer_info .footer_logo > p {
  line-height: 1.4;
  margin-top: 10px;
  margin-left: 15px;
  color: #fff;
  font-size: clamp(11px, 1vw, 12px);
  font-weight: 500;
}
@media screen and (max-width: 414px) {
  .footer .footer_block .footer_info .footer_logo > p {
    margin-left: 0px;
  }
}
.footer .footer_block .footer_info .sns_block {
  margin-bottom: 30px;
  display: flex;
  gap: 20px;
}
@media screen and (max-width: 414px) {
  .footer .footer_block .footer_info .sns_block {
    margin-bottom: 20px;
  }
}
.footer .footer_block .footer_info .footer_gmap a {
  padding: 5px 30px;
  color: #fff;
  background: #114FA1;
  border-radius: 50px;
  display: inline-block;
  text-decoration: none;
}
.footer .footer_block .footer_area {
  flex: 1;
}
.footer .footer_block .footer_area .area_list {
  color: #fff;
}
.footer .footer_block .footer_area .area_list dt {
  margin-bottom: 20px;
  font-size: clamp(16px, 1.5vw, 20px);
  font-weight: bold;
}
@media screen and (max-width: 414px) {
  .footer .footer_block .footer_area .area_list dt {
    margin-bottom: 10px;
  }
}
.footer .footer_block .footer_area .area_list dd {
  line-height: 2;
  font-size: 13px;
}

/* footer_navi
------------------------------------------------------------------- */
.footer_navi {
  padding: 20px 15px;
  background: #52616C;
  justify-content: center;
  align-items: center;
  display: flex;
}
@media screen and (max-width: 650px) {
  .footer_navi {
    padding: 15px 15px;
    flex-direction: column;
    gap: 5px;
  }
}
.footer_navi .navi_a {
  display: flex;
}
.footer_navi .navi_a li a {
  line-height: 1;
  margin-right: 13px;
  padding-right: 13px;
  color: #fff;
  font-size: clamp(11px, 1vw, 14px);
  text-decoration: none;
  position: relative;
}
.footer_navi .navi_a li a::after {
  content: "";
  width: 1px;
  height: 13px;
  background: #fff;
  position: absolute;
  top: 50%;
  right: 0;
  transform: translate(-50%, -50%);
}
.footer_navi .navi_a li a:hover {
  opacity: 0.6;
}
.footer_navi .navi_b {
  display: flex;
}
.footer_navi .navi_b li a {
  line-height: 1;
  margin-right: 13px;
  padding-right: 13px;
  color: #fff;
  font-size: clamp(11px, 1vw, 14px);
  text-decoration: none;
  position: relative;
}
.footer_navi .navi_b li a::after {
  content: "";
  width: 1px;
  height: 13px;
  background: #fff;
  position: absolute;
  top: 50%;
  right: 0;
  transform: translate(-50%, -50%);
}
.footer_navi .navi_b li a:hover {
  opacity: 0.6;
}
.footer_navi .navi_b li:last-child a {
  margin-right: 0px;
  padding-right: 0px;
}
.footer_navi .navi_b li:last-child a::after {
  background: none;
}

/* 
-------------------------------------------------------------------

pagetop

------------------------------------------------------------------- */
.pagetop {
  margin: 0;
  display: none;
  position: fixed;
  bottom: 5px;
  right: 5px;
  z-index: 1;
}

.pagetop a {
  width: 33px;
  height: 33px;
  border-radius: 5px;
  background: rgba(255, 255, 255, 0.5);
  opacity: 1;
  display: block;
  position: relative;
}

.pagetop a:hover {
  opacity: 0.5;
  transition: all 0.3s ease;
}

.pagetop a::before {
  content: "";
  width: 8px;
  height: 8px;
  border: 0;
  border-top: solid 2px #2578BB;
  border-right: solid 2px #2578BB;
  transform: rotate(-45deg);
  position: absolute;
  top: 4px;
  left: 11px;
  bottom: 0;
  margin: auto;
}

/* copyright
------------------------------------------------------------------- */
.copyright {
  padding: 10px 15px;
  text-align: center;
  font-size: 12px;
  background: #fff;
}