﻿@charset "utf-8";
/*************************************************
 slick-slider.css（slick-slider.cssから抜き出した上書き指定用）
**************************************************/

.slide_box .slick-dotted.slick-slider,
.slick-slider .slick-list,
.slick-slider .slick-list .slick-track,
.slick-initialized .slick-slide {
  margin-bottom: 0;
  padding-bottom: 0;
  overflow: hidden;
}
.slide_banner .wrap,
.slide_banner .autoplay {
  overflow: hidden;
}

/* ロード完了後表示 */
#singleitem {
  opacity: 0;
  transition: opacity 0.3s linear;
}
#singleitem.slick-initialized {
  opacity: 1;
}

/* スライダー幅 */
.slide_box {
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
}

/* メインスライダー */

.slick-prev:before,
.slick-next:before {
  font-size: 30px;
  color: #333;
  opacity: 1;
}
/*左右の矢印の色を変える*/
.slick-prev:before,
.slick-next:before {
  color: #000;
}

/*左右の矢印の位置を変える*/
.slick-next {
  right: 10px;
  z-index: 99;
}
.slick-prev {
  left: 10px;
  z-index: 99;
}

/*左右の矢印調整 - バナー画像*/
#autoplay {
  padding-bottom: 0;
  overflow: visible;
}
.autoplay .slick-next {
  right: -16px;
}
.autoplay .slick-prev {
  left: -16px;
}
.autoplay .slick-arrow {
  border-radius: 0.6em;
}
.autoplay .slick-arrow:hover,
.autoplay .slick-arrow:focus {
  background-color: #fff;
  box-shadow: inset 0px 0px 0px 2px #d2a74e;
}

/*スライド数のドット*/
.slick-dots {
  position: static;
  max-width: 900px;
  margin: 20px auto 30px;
  padding: 0 80px;
}
.slick-dots li {
  margin-left: 10px;
  margin-right: 10px;
}
.slick-dots li button {
  position: relative;
  box-sizing: border-box;
}
.slick-dots li button:before {
  content: "";
  position: absolute;
  height: auto;
  width: auto;
  top: 2px;
  bottom: 2px;
  left: 2px;
  right: 2px;
  color: #fff;
  border-radius: 100%;
  opacity: 0.8;
  border: 2px solid var(--rep-tgt-bgclr-HV1-bl-1, #bac8f2);
  background-color: var(--rep-tgt-bgclr-HV1-bl-1, #bac8f2);
}
.slick-dots li.slick-active button:before {
  color: #fff;
  border: 2px solid var(--rep-tgt-bgclr-CON1-bl-1, #1b1466);
  background-color: var(--rep-tgt-bgclr-CON1-bl-1, #1b1466);
  opacity: 1;
}

/*スライド画像の横幅可変*/
.slide_box img {
  width: 90%;
  max-width: 900px;
  height: auto;
  margin: 0 auto;
  display: block;
}

/*バナー画像*/
#autoplay .slick-slide img {
  width: 100%;
  max-width: 100%;
  margin: 2px auto;
}

#singleitem .slick-slide {
  margin-left: 30px;
  margin-right: 30px;
}
#singleitem .slick-slide img {
  margin: 0 auto;
  width: auto;
  max-width: 900px;
  height: auto;
}
#singleitem .slick-slide.slick-active img {
  opacity: 1;
}

/*再生停止ボタン*/
.slide_box {
  position: relative;
}
.buttons {
  position: absolute;
  bottom: 16px;
  right: calc((100% - 910px) / 2);
  display: flex;
  justify-content: center;
  z-index: 98;
}

.top_section.slide_banner {
  padding-bottom: 40px;
}
.autoplay .buttons {
  bottom: -40px;
}

.buttons .button {
  position: relative;
  width: 40px;
  height: 40px;
  margin: 8px 5px;
  padding: 0;
  text-indent: -1000em;
  transition: all 300ms ease;
  opacity: 0.8;
  border: 2px solid var(--rep-tgt-fntclr-com1-bl-000001, #1b1464);
  background-color: var(--rep-tgt-bgclr-com1-wht-000001, #ffffff);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.buttons .button.js-play,
.buttons .button.js-stop {
  color: #fff !important;
}
.buttons .button:hover,
.buttons .button:focus {
  cursor: pointer;
  opacity: 1;
  transition: all 300ms ease;
  background-color: var(--rep-tgt-bgclr-HV1-bl-2, #e6ebfd);
}
.buttons .button:before,
.buttons .button.js-stop:after {
  position: absolute;
  display: block;
  content: "";
}

.buttons .button.js-play:before {
  content: "";
  position: absolute;
  top: 50%;
  right: 1.9em;
  transform: translateY(-50%) rotate(45deg);
  width: 1.5em;
  height: 1.5em;
  border-right: 2px solid var(--rep-tgt-fntclr-com1-bl-000001, #1b1464);
  border-top: 2px solid var(--rep-tgt-fntclr-com1-bl-000001, #1b1464);
}
.buttons .button.js-stop:before,
.buttons .button.js-stop:after {
  content: "";
  position: absolute;
  top: 25%;
  bottom: 25%;
  width: 3px;
  left: 50%; /* 中央寄せ */
  transform: translateX(-150%);
  background-color: var(--rep-tgt-fntclr-com1-bl-000001, #1b1464);
}

.buttons .button.js-stop:after {
  left: inherit;
  right: 25%;
}
.buttons .button.js-play.active,
.buttons .button.js-stop.active {
  opacity: 1;
  color: #fff !important;
  background-color: var(--rep-tgt-fntclr-com1-bl-000001, #1b1464);
  border-color: #000000;
}
.buttons .button.js-play.active:before {
  border-left-color: rgba(255, 255, 255, 1);
  border-color: #ffffff;
}
.buttons .button.js-stop.active:before,
.buttons .button.js-stop.active:after {
  background-color: #fff;
}

.buttons .button.js-stop:hover,
.buttons .button.js-stop:focus,
.buttons .button.js-play:hover,
.buttons .button.js-play:focus {
  border-color: var(--rep-tgt-fntclr-com1-bl-000001, #1b1464);
}

/*次へ戻るボタン*/
.slick-arrow {
  height: 32px;
  width: 32px;
  position: absolute;
  /* top: 38%; */
  transform: translateY(-50%);
  z-index: 99;
  overflow: hidden;
}

.slick-next:before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-size: contain;
  background: url("../img/arrow_r.png") center center no-repeat;
  opacity: 1;
}
.slick-prev:before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-size: contain;
  background: url("../img/arrow_l.png") center center no-repeat;
  opacity: 1;
}
/* hover / focus 時 */
.slick-next:hover:before,
.slick-next:focus:before {
  background: url("../img/arrow_r_2.png") center center no-repeat;
  background-size: contain;
}
.slick-prev:hover:before,
.slick-prev:focus:before {
  background: url("../img/arrow_l_2.png") center center no-repeat;
  background-size: contain;
}

.slick-arrow:before {
  content: "";
}
.slick-arrow:hover,
.slick-arrow:focus {
  opacity: 1;
}

/*画像が1枚の時、再生ボタン切り替えボタンを非表示*/
.slide_box.disable .buttons,
.slide_box.disable .slick-dots {
  display: none;
}

/*文字サイズを相対値に修正*/
.slick-prev,
.slick-prev:before,
.slick-next,
.slick-next:before,
.slick-dots li button,
.buttons .button {
  font-size: 0.5em;
}

@media screen and (min-width: 0px) and (max-width: 930px) {
  .buttons {
    position: absolute;
    bottom: 0.8rem;
    right: 0.3%;
    margin-right: 1rem;
  }
}

@media screen and (min-width: 0px) and (max-width: 1000px) {
  .slick-arrow {
    aspect-ratio: 1/1;
    position: absolute;
    top: 40%;
    transform: translateY(-50%);
    z-index: 98;
    overflow: hidden;
  }
  #singleitem .slick-slide img {
    width: 95%;
  }
}
@media screen and (min-width: 0px) and (max-width: 480px) {
  .slick-arrow {
    top: 30%;
  }
}

@media screen and (min-width: 1006px) {
  #singleitem .slick-prev,
  #singleitem .slick-next {
    position: absolute;
    top: calc(50% - 32px);
    transform: translateY(-50%);
    z-index: 98;
  }

  #singleitem .slick-prev {
    left: calc(50% - 490px);
  }

  #singleitem .slick-next {
    right: calc(50% - 490px);
  }
}

@media screen and (max-width: 1006px) {
  .slick-dots { margin-bottom: 80px;}
}


/*************************************************
 autoplay用調整追加
**************************************************/

/* 共通の不要なflex指定削除済み */

/* ロード完了後表示 */
#singleitem,
#autoplay {
  opacity: 0;
  transition: opacity 0.3s linear;
}
#singleitem.slick-initialized,
#autoplay.slick-initialized {
  opacity: 1;
}

/* スライダー幅 */
.slide_box.photo {
  width: 100%;
  max-width: 905px;
  margin: 0 auto;
  position: relative;
  padding: 0 1rem 0 2rem;
  box-sizing: border-box;
}
#autoplay .slick-dots {
  padding: 0;
}
.banar-button {
  position: relative;
  z-index: 100;
}
/* autoplay用ボタン - 常に中央下 */
.banar-button .buttons {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  justify-content: center;
  z-index: 98;
}
/*スライドの画像*/
#autoplay .slick-slide img {
  margin: 0;
}
/* autoplayスライド用設定  */
#autoplay .slick-prev,
#autoplay .slick-next {
  position: absolute;
  top: 40%;
  transform: translateY(-50%);
  z-index: 100;
}

#autoplay .slick-prev {
  left: 10px;
}

#autoplay .slick-next {
  right: 10px;
}
#autoplay .slick-track {
  margin: 0 auto;
}
#autoplay .slick-slide {
  display: flex;
  justify-content: center;
  box-sizing: border-box;
}

/* コンテンツ内部 */
#autoplay .photo-contents {
  width: 100%;
  max-width: 400px;
  background: #fff;
  border: 1px solid #ddd;
  box-sizing: border-box;
  padding: 1rem;
  margin: 0 auto;
  margin-right: 1.9rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

#autoplay .photo-contents:hover,
#autoplay .photo-contents:focus {
  border-color: var(--rep-tgt-fntclr-com1-bl-000001);
}

/* ドットの位置調整 */
.autoplay .slick-dots {
  position: static;
  margin: 20px auto 0;
  display: flex;
  justify-content: center;
}

/*ボタン*/
.buttons.photo {
  position: absolute;
  bottom: 16px;
  right: calc((100% - 840px) / 2);
  display: flex;
  justify-content: center;
  z-index: 98;
}

/* レスポンシブ調整 */

@media screen and (max-width: 880px) {
  #autoplay {
    position: relative;
  }
  .slide_box.photo {
    width: 100%;
    max-width: 450px;
    margin: 0 auto;
    position: relative;
    padding: 0 1.8rem 0 1.8rem;
    box-sizing: border-box;
  }
  #autoplay .photo-contents {
    width: 100%;
    max-width: 400px;
    margin-right: 0px;
    padding: 1rem 0.1rem 1rem 1rem;
  }
  #autoplay .slick-prev.slick-arrow {
    left: -1.3rem;
  }
  #autoplay .slick-next.slick-arrow {
    right: -1.3rem;
  }
  .buttons.photo {
    position: absolute;
    bottom: 0.8rem;
    right: 0.3%;
    margin-right: 1rem;
  }
}

@media screen and (min-width: 880px) {
  #autoplay .slick-prev.slick-arrow {
    left: -2rem;
  }
  #autoplay .slick-next.slick-arrow {
    right: -1rem;
  }
}
@media screen and (max-width: 430px) {
  #autoplay .photo-image {
    max-width: 130px;
    aspect-ratio: 4/3;
  }
  .buttons.photo {
    position: absolute;
    bottom: 0.8rem;
    right: 0.3%;
    margin-right: 1rem;
  }
}
@media screen and (max-width: 400px) {
  #autoplay .photo-contents {
    padding: 0.5rem;
  }
}
@media screen and (min-width: 0) and (max-width: 360px) {
  #autoplay.slick-slider .slick-dots {
    position: static;
    margin: 20px 0 30px;
    display: flex;
    justify-content: flex-start;
  }
}



/**/
@media screen and (min-width: 1180px) {
	.slide_box.photo { max-width: 1105px}
	#autoplay .photo-contents { max-width: 500px;}
	
}