@charset "UTF-8";
.clearfix:before,
.clearfix:after,
.container:before,
.container:after,
.container-fluid:before,
.container-fluid:after,
.row:before,
.row:after {
  content: " ";
  display: table;
}

.clearfix:after,
.container:after,
.container-fluid:after,
.row:after {
  clear: both;
}

/*　////////////////////////////////
ブレイクポイント
//////////////////////////////////　*/
/*　////////////////////////////////
ベースフォント
//////////////////////////////////　*/
/*　////////////////////////////////
カラー
//////////////////////////////////　*/
/*　////////////////////////////////
clearfix[@extend .clearfix];
//////////////////////////////////　*/
.clearfix {
  zoom: 1;
}
.clearfix:after {
  display: block;
  content: "";
  clear: both;
}

/*　////////////////////////////////////////////////////////////////////////////////////////////////
flex include
//////////////////////////////////////////////////////////////////////////////////////////////////　*/
/*　////////////////////////////////////////////////////////////////////////////////////////////////
初期値top:50%; left:50%;
[@include set-top();] [@include set-left();]
//////////////////////////////////////////////////////////////////////////////////////////////////　*/
/*縦中央*/
/*横中央*/
/* -----上下左右中央、%指定で調整可能----- */
/*　////////////////////////////////
flex 設定
//////////////////////////////////　*/
/*　////////////////////////////////
三角形
//////////////////////////////////　*/
/*　////////////////////////////////
矢印
//////////////////////////////////　*/
/*　////////////////////////////////////////////////////////////////////////////////////////////////
font-size
//////////////////////////////////////////////////////////////////////////////////////////////////　*/
/*　////////////////////////////////
汎用style
//////////////////////////////////　*/
/*　////////////////////////////////
TOPメイン画像
//////////////////////////////////　*/
.webp .top-first {
  background-image: url("../img/top/webp/top_bg.webp");
}

.no-webp .top-first {
  background-image: url("../img/top/top_bg.png");
}

.all-wrapper {
  /*　////////////////////////////////////////////////////////////////////////////////////////////////
  top
  //////////////////////////////////////////////////////////////////////////////////////////////////　*/
  /* ---------- top --------------- */
}
.all-wrapper #top {
  /*----- .top-main-visual ------------------------------------*/
  /*----- .top-first------------------------------------*/
  /*----- .top-service------------------------------------*/
  /*----- .info-area ------------------------------------*/
}
.all-wrapper #top .top-main-visual {
  position: relative;
  padding-bottom: 30px;
  margin-bottom: 30px;
}
.all-wrapper #top .top-main-visual .top-main-title {
  position: absolute;
  font-size: clamp(2rem, 4.42vw, 4.6rem);
  font-family: "Noto Serif JP", serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: normal;
  left: 0;
  bottom: 0px;
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}
.all-wrapper #top .top-main-visual .main-slider {
  position: relative;
  z-index: -1;
}
.all-wrapper #top .top-main-visual .main-img {
  display: block;
  max-width: 1600px;
  margin: 0 auto;
  position: relative;
}
.all-wrapper #top .main-item {
  max-width: 1280px;
  margin: 10px auto;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0 30px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}
.all-wrapper #top .main-item .item-title {
  margin-bottom: 40px;
  width: 100%;
  max-width: 280px;
  text-align: center;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 12px 10px;
  background: #49555C;
  background: -webkit-gradient(linear, left top, right top, from(rgb(73, 85, 92)), color-stop(50%, rgb(167, 168, 168)), to(rgb(73, 85, 92)));
  background: linear-gradient(90deg, rgb(73, 85, 92) 0%, rgb(167, 168, 168) 50%, rgb(73, 85, 92) 100%);
  position: relative;
}
.all-wrapper #top .main-item .item-title::after {
  content: "";
  position: absolute;
  width: calc(100% + 15px);
  height: 20px;
  top: 100%;
  right: 0;
  background: #0F2B37;
  background: linear-gradient(135deg, rgb(15, 43, 55) 0%, rgb(94, 92, 92) 50%, rgb(15, 43, 55) 100%);
  clip-path: polygon(15px 0, 100% 0, calc(100% - 15px) 100%, 0 100%);
}
.all-wrapper #top .main-item .item-title span {
  color: #fff;
  font-size: 2rem;
  font-size: clamp(2rem, 2.5vw, 3.2rem);
  font-weight: bold;
  line-height: 1.2;
  text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.55);
  letter-spacing: 0.05em;
}
@media (min-width: 480px) {
  .all-wrapper #top .main-item {
    gap: 4%;
  }
  .all-wrapper #top .main-item .item-title {
    max-width: 100%;
    width: 48%;
  }
}
@media (min-width: 768px) {
  .all-wrapper #top .main-item {
    gap: 4%;
  }
  .all-wrapper #top .main-item .item-title {
    width: 30.66%;
  }
}
.all-wrapper #top .top-first {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 30px 0 50px;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: top center;
}
.all-wrapper #top .top-first .top-first-title {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  text-align: center;
  padding: 15px 0;
  margin-bottom: 30px;
  line-height: 1.4;
  font-weight: 400;
  font-size: clamp(1.9rem, 3.24vw, 3rem);
  border-top: 1px solid #3e3a39;
  border-bottom: 1px solid #3e3a39;
}
.all-wrapper #top .top-first .first-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}
.all-wrapper #top .top-first .first-wrap .txt-area, .all-wrapper #top .top-first .first-wrap .img-area {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
}
.all-wrapper #top .top-first .first-wrap .txt-area {
  margin-bottom: 15px;
}
.all-wrapper #top .top-first .first-wrap .img-area img {
  display: block;
  margin: 0 auto;
  max-width: 450px;
}
@media (min-width: 768px) {
  .all-wrapper #top .top-first {
    padding: 60px 0 90px;
  }
  .all-wrapper #top .top-first .top-first-title {
    margin-bottom: 40px;
    padding: 20px 0 25px;
  }
  .all-wrapper #top .top-first .first-wrap {
    gap: 6%;
  }
  .all-wrapper #top .top-first .first-wrap .txt-area {
    width: 47%;
    margin-bottom: 0;
  }
  .all-wrapper #top .top-first .first-wrap .img-area {
    width: 47%;
  }
  .all-wrapper #top .top-first .first-wrap .img-area img {
    max-width: 100%;
  }
}
.all-wrapper #top .top-service {
  background: #0b57a6;
  background: -webkit-gradient(linear, left bottom, left top, from(rgb(1, 55, 112)), color-stop(20%, rgb(4, 67, 132)), color-stop(45%, rgb(8, 78, 151)), color-stop(71%, rgb(10, 84, 162)), to(rgb(11, 87, 166)));
  background: linear-gradient(0deg, rgb(1, 55, 112) 0%, rgb(4, 67, 132) 20%, rgb(8, 78, 151) 45%, rgb(10, 84, 162) 71%, rgb(11, 87, 166) 100%);
  color: #fff;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 60px 0;
  position: relative;
}
.all-wrapper #top .top-service::after {
  content: "";
  position: absolute;
  width: 100%;
  height: 40px;
  top: 0;
  left: 0;
  background: #0F2B37;
  background: -webkit-gradient(linear, left top, left bottom, from(rgb(15, 43, 55)), color-stop(76%, rgb(255, 255, 255)));
  background: linear-gradient(180deg, rgb(15, 43, 55) 0%, rgb(255, 255, 255) 76%);
  mix-blend-mode: multiply;
  opacity: 0.4;
}
.all-wrapper #top .top-service .top-service-title {
  text-align: center;
  line-height: 1.4;
  font-family: "Noto Serif JP", serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: normal;
  font-size: clamp(2rem, 4.42vw, 4.6rem);
  margin-bottom: 40px;
}
.all-wrapper #top .top-service .service-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  gap: 4%;
  margin-bottom: 40px;
}
.all-wrapper #top .top-service .service-list .shadow {
  width: 48%;
  margin-bottom: 20px;
  -webkit-filter: drop-shadow(-3px -3px 3px rgba(62, 58, 57, 0.82));
          filter: drop-shadow(-3px -3px 3px rgba(62, 58, 57, 0.82));
  overflow: visible;
}
.all-wrapper #top .top-service .service-list .service-title {
  clip-path: polygon(0 25px, 25px 0, 100% 0, 100% calc(100% - 25px), calc(100% - 25px) 100%, 0 100%);
}
.all-wrapper #top .top-service .service-list .service-title span {
  display: block;
}
.all-wrapper #top .top-service .service-list .service-title .txt {
  text-align: center;
  background: #fff;
  color: #0957a6;
  font-size: 2rem;
  font-size: clamp(2rem, 2.3vw, 3.2rem);
  font-weight: bold;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 15px;
  line-height: 1.4;
}
.all-wrapper #top .top-service .service-list .service-title .deco {
  width: 100%;
  height: 25px;
  background: #004A68;
  background: -webkit-gradient(linear, left top, right top, from(rgb(0, 74, 104)), color-stop(50%, rgb(119, 146, 142)), to(rgb(0, 74, 104)));
  background: linear-gradient(90deg, rgb(0, 74, 104) 0%, rgb(119, 146, 142) 50%, rgb(0, 74, 104) 100%);
}
.all-wrapper #top .top-service .main-service {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.all-wrapper #top .top-service .main-service .service-box {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  width: 100%;
  position: relative;
  margin-bottom: 40px;
}
.all-wrapper #top .top-service .main-service .service-box .service-img {
  position: relative;
  display: block;
}
.all-wrapper #top .top-service .main-service .service-box .service-img::after {
  content: "";
  position: absolute;
  display: inline-block;
  width: 33.33%;
  height: 100%;
  background: rgba(35, 24, 21, 0.65);
  top: 0;
  left: 0;
}
.all-wrapper #top .top-service .main-service .service-box .txt-box {
  background: #fff;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 15px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  position: relative;
}
.all-wrapper #top .top-service .main-service .service-box .txt-box::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 35px;
  background: #588BB5;
  background: -webkit-gradient(linear, left top, left bottom, color-stop(5%, rgb(88, 139, 181)), color-stop(44%, rgb(239, 244, 248)), color-stop(75%, rgb(255, 255, 255)));
  background: linear-gradient(180deg, rgb(88, 139, 181) 5%, rgb(239, 244, 248) 44%, rgb(255, 255, 255) 75%);
  opacity: 0.8;
}
.all-wrapper #top .top-service .main-service .service-box .txt-box .title {
  margin: 0 10px 0 0;
  font-size: 2rem;
  font-size: clamp(2rem, 2.6vw, 4.2rem);
  font-family: "Noto Serif JP", serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: normal;
  color: #0957a6;
  line-height: 1.4;
  position: relative;
  z-index: 10;
}
.all-wrapper #top .top-service .main-service .service-box .txt-box .more {
  display: inline-block;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 7px 10px 10px;
  background: #0957a6;
  color: #fff;
  font-weight: bold;
  line-height: 1.4;
  font-size: 1.5rem;
  font-size: clamp(1.4rem, 1vw, 1.8rem);
  position: relative;
  z-index: 10;
}
.all-wrapper #top .top-service .main-service .service-box .deco {
  position: absolute;
  background: #cc5584;
  color: #fff;
  line-height: 1.1;
  letter-spacing: 0.05em;
  font-size: 1.6rem;
  font-size: clamp(1.8rem, 2.3vw, 3rem);
  font-weight: bold;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 20px;
  border-radius: 50%;
  display: inline-block;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  left: 2vw;
  top: -9%;
  width: clamp(90px, 10vw, 120px);
  height: clamp(90px, 10vw, 120px);
}
@media (min-width: 768px) {
  .all-wrapper #top .top-service {
    padding: 120px 0;
  }
  .all-wrapper #top .top-service::after {
    height: 95px;
  }
  .all-wrapper #top .top-service .top-service-title {
    margin-bottom: 60px;
  }
  .all-wrapper #top .top-service .service-list {
    margin-bottom: 60px;
  }
  .all-wrapper #top .top-service .service-list .shadow {
    width: 22%;
  }
  .all-wrapper #top .top-service .main-service {
    gap: 5%;
  }
  .all-wrapper #top .top-service .main-service .service-box {
    width: 47.5%;
  }
}
.all-wrapper #top .info-area .info-title {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 15px;
  text-align: center;
  background: #cc5584;
  color: #fff;
  font-family: "Noto Serif JP", serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: normal;
  font-size: clamp(2.2rem, 4.12vw, 4rem);
  line-height: 1.4;
  margin-bottom: 40px;
}
.all-wrapper #top .info-area .info_list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.all-wrapper #top .info-area .info_list li {
  width: 100%;
  margin: 0 0 25px;
}
.all-wrapper #top .info-area .info_list li .thumb {
  display: block;
  height: 200px;
  width: 100%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
.all-wrapper #top .info-area .info_list li .txt-area {
  background: #013770;
  background: -webkit-gradient(linear, left top, left bottom, from(rgb(1, 55, 112)), color-stop(41%, rgb(9, 79, 153)), color-stop(64%, rgb(11, 87, 166)));
  background: linear-gradient(180deg, rgb(1, 55, 112) 0%, rgb(9, 79, 153) 41%, rgb(11, 87, 166) 64%);
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 7px 10px;
}
.all-wrapper #top .info-area .info_list li .day {
  font-family: "Oswald", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  font-size: 1.5rem;
  font-weight: 500;
  display: block;
  margin-top: 5px;
  color: #fff;
  text-align: right;
}
.all-wrapper #top .info-area .info_list li .title {
  font-family: "Noto Serif JP", serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: normal;
  font-size: 1.5rem;
  color: #fff;
}
@media (min-width: 480px) {
  .all-wrapper #top .info-area .info_list {
    gap: 4%;
  }
  .all-wrapper #top .info-area .info_list li {
    width: 48%;
  }
}
@media (min-width: 768px) {
  .all-wrapper #top .info-area .info-title {
    margin-bottom: 60px;
  }
  .all-wrapper #top .info-area .info_list {
    gap: 5%;
  }
  .all-wrapper #top .info-area .info_list li {
    width: 30%;
  }
}