@charset "UTF-8";
.ttl_wrap {
  background-image: url("../images/model/ttl_bg.jpg");
  background-position: center;
}

.en {
  font-family: "Oswald", serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: normal;
}

.model_slider {
  position: relative;
  width: 1450px;
  margin: 0 auto;
}
@media (max-width: 1500px) {
  .model_slider {
    width: 100%;
  }
}
.model_slider .swiper {
  width: 1200px;
}
@media (max-width: 1230px) {
  .model_slider .swiper {
    width: 100%;
  }
}
.model_slider .swiper-button-prev,
.model_slider .swiper-button-next {
  width: 40px;
  height: 80px;
  top: calc(50% - 20px);
}
@media (max-width: 1230px) {
  .model_slider .swiper-button-prev,
  .model_slider .swiper-button-next {
    -webkit-filter: brightness(2000%) drop-shadow(0px 0px 3px rgba(0, 0, 0, 0.6));
            filter: brightness(2000%) drop-shadow(0px 0px 3px rgba(0, 0, 0, 0.6));
    width: 30px;
    height: 60px;
  }
}
@media (max-width: 768px) {
  .model_slider .swiper-button-prev,
  .model_slider .swiper-button-next {
    width: 20px;
    height: 40px;
  }
}
.model_slider .swiper-button-prev:after,
.model_slider .swiper-button-next:after {
  content: "";
}
.model_slider .swiper-button-prev {
  left: 3%;
}
.model_slider .swiper-button-next {
  right: 3%;
}
.model_slider p {
  margin-top: 5px;
  text-align: right;
  font-size: 1.3rem;
}
@media (max-width: 1230px) {
  .model_slider p {
    padding-right: 10px;
  }
}
@media (max-width: 640px) {
  .model_slider p {
    font-size: 1.1rem;
  }
}

.grid {
  width: 1200px;
  margin: 50px auto 0;
  /* ---------------------------- */
  /* --- Base --- */
  /* ---------------------------- */
  /* モーダル */
  /* モーダルがactiveの時 */
  /* モーダル背景のオーバーレイ部分 */
  /* モーダルのコンテンツ */
  /* 矢印ボタン */
  /* 閉じるボタン */
  /* キャプション */
}
@media (max-width: 1230px) {
  .grid {
    width: 100%;
  }
}
.grid .swiperModalButton {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.grid .swiperModalButton button {
  position: relative;
  width: 31.5%;
  overflow: hidden;
  display: block;
}
.grid .swiperModalButton button:nth-child(n+4) {
  margin-top: 3%;
}
.grid .swiperModalButton button figure img {
  -webkit-transition: -webkit-transform 0.3s ease;
  transition: -webkit-transform 0.3s ease;
  transition: transform 0.3s ease;
  transition: transform 0.3s ease, -webkit-transform 0.3s ease;
}
.grid .swiperModalButton button:hover figure img {
  -webkit-transform: scale(1.15);
          transform: scale(1.15);
}
.grid .swiperModalButton button figcaption {
  position: absolute;
  right: 8px;
  bottom: 8px;
  line-height: 1.2;
  font-size: 1.3rem;
  color: #fff;
  text-align: right;
  z-index: 2;
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.8), -1px 1px 3px rgba(0, 0, 0, 0.8), 1px -1px 3px rgba(0, 0, 0, 0.8), -1px -1px 3px rgba(0, 0, 0, 0.8);
}
@media (max-width: 768px) {
  .grid .swiperModalButton button figcaption {
    right: 6px;
    bottom: 4px;
    letter-spacing: 0;
    font-size: 1rem;
  }
}
.grid .swiperModalButton button.c_h span {
  display: block;
  position: absolute;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  top: 50%;
  left: 50%;
  width: 80%;
  height: 16%;
  z-index: 3;
}
.grid .swiperModalButton button.c_h::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  z-index: 2;
  display: block;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.54);
}
.grid .grid_modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  padding: 30px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
  pointer-events: none;
  opacity: 0;
  z-index: 1060;
  background-color: rgba(0, 0, 0, 0.85);
}
.grid .grid_modal.is-active {
  opacity: 1;
  pointer-events: auto;
}
.grid .modal__overlay {
  position: absolute;
  width: 100%;
  height: 100%;
  cursor: pointer;
}
.grid .modal__content {
  position: relative;
  width: 100%;
  max-width: 850px;
  padding: 20px;
}
.grid .modal_inner {
  width: 90%;
  margin: 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media (max-width: 768px) {
  .grid .modal_inner {
    width: 100%;
  }
}
.grid .swiper-button-next,
.grid .swiper-button-prev {
  width: 30px;
  height: 60px;
}
@media (max-width: 768px) {
  .grid .swiper-button-next,
  .grid .swiper-button-prev {
    width: 5vw;
    height: 10vw;
  }
}
.grid .swiper-button-next::after,
.grid .swiper-button-prev::after {
  display: none;
}
@media (max-width: 768px) {
  .grid .swiper-button-prev {
    left: -4vw;
  }
}
@media (max-width: 768px) {
  .grid .swiper-button-next {
    right: -4vw;
  }
}
.grid .modal__close-btn {
  position: fixed;
  right: 20px;
  top: 20px;
  width: 40px;
  height: 40px;
  cursor: pointer;
  z-index: 20;
}
@media (max-width: 768px) {
  .grid .modal__close-btn {
    width: 6vw;
    height: 6vw;
  }
}
.grid .modal__close-btn:hover {
  opacity: 0.8;
}
.grid p.swiperText {
  position: absolute;
  z-index: 2;
  margin: 0;
  padding: 5px;
  text-align: center;
  width: 100%;
  left: 0;
  bottom: 0;
  color: #fff;
  font-size: 2rem;
  background-color: rgba(0, 0, 0, 0.5);
}
@media (max-width: 768px) {
  .grid p.swiperText {
    font-size: 1.6rem;
  }
}

section {
  padding: 100px 0;
}
@media (max-width: 768px) {
  section {
    padding: 60px 0;
  }
}
section h3 {
  font-size: 3.8rem;
  color: #19244b;
}
@media (max-width: 768px) {
  section h3 {
    font-size: 7vw;
  }
}
section h3 span {
  display: block;
  font-size: 2.5rem;
}
@media (max-width: 768px) {
  section h3 span {
    font-size: 4.5vw;
  }
}

.miryoku_wrap {
  background-image: url("../images/model/miryoku_bg.jpg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
@media (max-width: 768px) {
  .miryoku_wrap {
    background-position: 30% center;
    background-image: url("../images/model/miryoku_bg_sp.jpg");
  }
}
.miryoku_wrap h3 span {
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid #555;
}
.miryoku_wrap .flx {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
@media (max-width: 768px) {
  .miryoku_wrap .flx {
    display: block;
    width: 85%;
    margin: 0 auto;
  }
}
.miryoku_wrap dl {
  text-align: center;
  background: #fff;
  border-radius: 20px;
  width: 47%;
  width: 32%;
  padding: 70px 50px 60px;
  padding: 30px 30px;
  /* &:nth-child(n + 3) {
  	margin-top: 6%;
  	@include w880 {
  		margin-top: 20px;
  	}
  } */
}
@media (max-width: 1000px) {
  .miryoku_wrap dl {
    padding: 30px 20px 20px;
  }
}
@media (max-width: 768px) {
  .miryoku_wrap dl {
    width: 100%;
    padding: 12% 9% 9%;
  }
  .miryoku_wrap dl + dl {
    margin-top: 20px;
  }
}
.miryoku_wrap dl dt,
.miryoku_wrap dl dd {
  color: #19244b;
}
.miryoku_wrap dl dt {
  margin-bottom: 20px;
  font-size: 2.5rem;
}
@media (max-width: 640px) {
  .miryoku_wrap dl dt {
    font-size: 5.5vw;
    margin-bottom: 10px;
  }
}
.miryoku_wrap dl dd.ttl {
  margin: 20px 0;
  font-size: 2.7rem;
  line-height: 1;
}
@media (max-width: 1000px) {
  .miryoku_wrap dl dd.ttl {
    font-size: 2.6vw;
  }
}
@media (max-width: 768px) {
  .miryoku_wrap dl dd.ttl {
    font-size: 6vw;
    margin: 15px 0;
  }
}
.miryoku_wrap dl dd span {
  display: block;
  text-align: right;
  margin-top: 5px;
  font-size: 1rem;
  color: #333;
}
.miryoku_wrap dl dd.btn {
  position: relative;
  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;
  width: 70%;
  padding: 8px 10px 10px;
  margin: 0 auto;
  background: #c8cbd4;
  font-size: 2rem;
  line-height: 1;
  border-radius: 25px;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
@media (max-width: 1000px) {
  .miryoku_wrap dl dd.btn {
    width: 90%;
    padding: 6px 8px 8px;
    font-size: 2rem;
  }
}
@media (max-width: 768px) {
  .miryoku_wrap dl dd.btn {
    width: 80%;
    padding: 6px 8px 8px;
    font-size: 5vw;
  }
}
.miryoku_wrap dl dd.btn:hover {
  opacity: 0.8;
  cursor: pointer;
}
.miryoku_wrap dl dd.btn:hover::before {
  right: 3px;
}
.miryoku_wrap dl dd.btn::before {
  display: block;
  content: "";
  position: absolute;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  z-index: 2;
  width: 23px;
  height: 23px;
  top: 50%;
  right: 8px;
  background-size: 100%;
  background-image: url("../images/model/point_arrow.png");
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
@media (max-width: 768px) {
  .miryoku_wrap dl dd.btn::before {
    width: 5vw;
    height: 5vw;
    right: 1%;
  }
}

.modal {
  display: none;
  position: absolute;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 100000000000;
}
.modal .modal_bg {
  position: absolute;
  left: 0;
  top: 0;
  z-index: 100;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.85);
  cursor: pointer;
}
.modal .modal-content {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 102;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: 750px;
  height: 80%;
  overflow: hidden;
}
@media (max-width: 768px) {
  .modal .modal-content {
    width: 90%;
  }
}
@media (max-width: 640px) {
  .modal .modal-content {
    width: 80%;
    height: 70%;
    overflow: hidden;
  }
}
.modal .modal-content .con_wrap {
  text-align: center;
  background-color: #fff;
  /* @include w640 {
  	max-height: 70vh;
  } */
}
.modal .modal-content .con_wrap .con_ttl {
  padding: 7px;
  color: #fff;
  background-color: #19244b;
  font-size: 2.7rem;
}
@media (max-width: 768px) {
  .modal .modal-content .con_wrap .con_ttl {
    font-size: 2.3rem;
  }
}
@media (max-width: 640px) {
  .modal .modal-content .con_wrap .con_ttl {
    font-size: 5vw;
  }
}
.modal .modal-content .con_wrap div span {
  display: block;
  margin-top: 3px;
  margin-right: 10px;
  text-align: right;
}
.modal .modal-content .con_wrap dl {
  padding: 30px;
}
.modal .modal-content .con_wrap dl dt {
  color: #19244b;
  font-size: 2rem;
  margin-bottom: 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid #888;
}
@media (max-width: 768px) {
  .modal .modal-content .con_wrap dl dt {
    font-size: 1.8rem;
  }
}
@media (max-width: 640px) {
  .modal .modal-content .con_wrap dl dt {
    margin-bottom: 10px;
    padding-bottom: 10px;
    font-size: 4vw;
  }
}
.modal .modal-content .con_wrap dl dd {
  line-height: 2;
}
@media (max-width: 768px) {
  .modal .modal-content .con_wrap dl dd {
    text-align: left;
    line-height: 1.8;
  }
}
.modal .modal-content .scroller {
  margin: 0 auto;
  width: 100%;
  height: 100%;
  overflow-y: scroll;
  background: #fff;
  scrollbar-width: thin;
  scrollbar-color: #19244b #eee;
  scrollbar-width: thin;
  /* これはスクロールバーのハンドル（スクロール部分）に適用されます */
}
.modal .modal-content .scroller::-webkit-scrollbar {
  width: 8px;
  background-color: #eee;
}
.modal .modal-content .scroller::-webkit-scrollbar-track {
  background: #eee;
}
.modal .modal-content .scroller::-webkit-scrollbar-thumb {
  background: #19244b;
}
.modal .close-btn {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 150;
  width: 40px;
  height: 40px;
  cursor: pointer;
  -webkit-transition: all 0.2s;
  transition: all 0.2s;
}
@media (max-width: 768px) {
  .modal .close-btn {
    width: 6vw;
    height: 6vw;
  }
}
.modal .close-btn:hover {
  opacity: 0.6;
}

.faq_wrap {
  background-image: url("../images/model/faq_bg.jpg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
@media (max-width: 768px) {
  .faq_wrap {
    background-position: 30% center;
    background-image: url("../images/model/faq_bg_sp.jpg");
  }
}
.faq_wrap .faq dl {
  padding: 45px 60px;
  background: #fff;
  border-radius: 20px;
}
@media (max-width: 768px) {
  .faq_wrap .faq dl {
    padding: 5%;
  }
}
.faq_wrap .faq dl + dl {
  margin-top: 30px;
}
.faq_wrap .faq dt {
  position: relative;
  font-size: 2rem;
  background: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  line-height: 1.8;
  color: #19244b;
  width: 100%;
}
@media (max-width: 768px) {
  .faq_wrap .faq dt {
    font-size: 1.8rem;
    line-height: 1.5;
  }
}
@media (max-width: 640px) {
  .faq_wrap .faq dt {
    font-size: 4vw;
  }
}
.faq_wrap .faq dt span {
  display: block;
  color: #19244b;
  width: 50px;
  text-align: center;
  font-size: 3.8rem;
  margin-right: 20px;
}
@media (max-width: 768px) {
  .faq_wrap .faq dt span {
    font-size: 2.3rem;
    width: 2rem;
    margin-right: 2rem;
  }
}
.faq_wrap .faq dt:hover {
  cursor: pointer;
}
.faq_wrap .faq dt:not(:first-of-type) {
  margin-top: 5px;
}
.faq_wrap .faq dt::before {
  position: absolute;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  top: 50%;
  right: -20px;
  display: block;
  content: "";
  width: 40px;
  height: 40px;
  background-image: url("../images/model/open.png");
  background-repeat: no-repeat;
  background-size: 100%;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
@media (max-width: 768px) {
  .faq_wrap .faq dt::before {
    width: 30px;
    height: 30px;
    right: -5%;
  }
}
@media (max-width: 640px) {
  .faq_wrap .faq dt::before {
    width: 7vw;
    height: 7vw;
  }
}
.faq_wrap .faq dt.open::before {
  background-image: url("../images/model/close.png");
}
.faq_wrap .faq dd {
  display: none;
  margin-top: 15px;
  padding-top: 15px;
  border-top: 1px solid #555;
}
.faq_wrap .faq dd div {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  line-height: 1.8;
}
@media (max-width: 640px) {
  .faq_wrap .faq dd div {
    line-height: 1.6;
  }
}
.faq_wrap .faq dd div span {
  display: block;
  width: 50px;
  color: #19244b;
  text-align: center;
  font-size: 3.8rem;
  margin-right: 20px;
}
@media (max-width: 768px) {
  .faq_wrap .faq dd div span {
    font-size: 2.3rem;
    width: 2rem;
    padding: 0 1rem;
  }
}

.map_wrap {
  width: 800px;
  margin: 80px auto 50px;
}
@media (max-width: 1000px) {
  .map_wrap {
    width: 90%;
  }
}
.map_wrap img {
  width: 100%;
}
.map_wrap .map {
  background-color: #637081;
}
.map_wrap .map h2 {
  padding: 5px;
  margin-bottom: 0;
  font-size: 2rem;
  color: #ffffff;
  text-align: center;
  background-color: #637081;
}
@media (max-width: 768px) {
  .map_wrap .map h2 {
    font-size: 4.2vw;
  }
}
.map_wrap .map .add {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 0 auto;
  padding: 10px 20px;
  text-align: center;
  color: #ffffff;
}
@media (max-width: 768px) {
  .map_wrap .map .add {
    display: block;
    width: 100%;
    padding: 5%;
  }
}
.map_wrap .map .add dl {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
@media (max-width: 768px) {
  .map_wrap .map .add dl {
    display: block;
  }
}
.map_wrap .map .add dt {
  margin-right: 20px;
  font-size: 1.5rem;
}
@media (max-width: 768px) {
  .map_wrap .map .add dt {
    margin-right: 0;
    margin-bottom: 7px;
    font-size: 3.8vw;
  }
}
.map_wrap .map .add dd {
  width: 400px;
  padding: 10px;
  font-size: 2rem;
  color: #3d4a5c;
  text-align: center;
  background-color: #ffffff;
}
@media (max-width: 768px) {
  .map_wrap .map .add dd {
    width: 100%;
    padding: 3%;
    font-size: 4.5vw;
  }
}
.map_wrap .map .add dd + dd {
  padding: 0;
  font-size: 1.4rem;
  color: #ffffff;
  text-align: left;
  background: none;
}
@media (max-width: 768px) {
  .map_wrap .map .add dd + dd {
    font-size: 3.8vw;
  }
}

/* swiperboxの設定 */
#swipebox-overlay {
  /* bottom: 0;
  right: 0; */
  background: rgba(0, 0, 0, 0.85);
}

@media (max-width: 768px) {
  #swipebox-container {
    height: calc(100% - 55px);
  }
}

#swipebox-slider .slide img {
  max-width: 750px;
}
@media (max-width: 768px) {
  #swipebox-slider .slide img {
    width: 80%;
  }
}

#swipebox-bottom-bar,
#swipebox-top-bar {
  background: none;
  opacity: 1;
}

#swipebox-bottom-bar {
  top: 48%;
  bottom: auto;
}
#swipebox-bottom-bar.visible-bars {
  -webkit-transform: none;
          transform: none;
}

#swipebox-top-bar {
  top: auto;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5);
  font-family: "Oswald", serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 2rem;
  letter-spacing: 0.1rem;
}
#swipebox-top-bar.visible-bars {
  -webkit-transform: none;
          transform: none;
}

#swipebox-arrows {
  width: 100%;
  height: 80px;
  max-width: 1050px;
}
@media (max-width: 1100px) {
  #swipebox-arrows {
    width: 90%;
    max-width: 90%;
  }
}
@media (max-width: 768px) {
  #swipebox-arrows {
    width: 95%;
    height: 10vw;
    max-width: 100%;
  }
}

#swipebox-prev,
#swipebox-next {
  width: 40px;
  height: 80px;
  background-position: center;
}
@media (max-width: 768px) {
  #swipebox-prev,
  #swipebox-next {
    width: 5vw;
    height: 10vw;
  }
}

#swipebox-prev {
  background-image: url("../images/model/arrow_prev_white.svg") !important;
}

#swipebox-next {
  background-image: url("../images/model/arrow_next_white.svg") !important;
}

#swipebox-close {
  background-image: url("../images/model/close.svg") !important;
  right: 40px;
  top: 20px;
  width: 40px;
  height: 40px;
  background-position: center;
}
@media (max-width: 768px) {
  #swipebox-close {
    width: 7vw;
    height: 7vw;
    right: 3vw;
    top: 3vw;
  }
}