@charset "utf-8";

/**
 *
 *  STT Common
 *
 */

/*--------------------------------------------------------------------------
	overwrite スタイルの上書き
--------------------------------------------------------------------------*/
#Content {
  position: relative;
  overflow: hidden;
}

/* @SP */
@media all and (max-width: 767px) {
  #Content {
    padding-top: 53px;
  }
}

/*--------------------------------------------------------------------------
	#Loading
--------------------------------------------------------------------------*/

#Loading {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #fff;
  z-index: 10000;
}

#Loading p {
  position: absolute;
  top: 50%;
  left: 50%;
  margin: -50px 0 0 -44px;
}

/*----------------------------------------------------------------------
	.kv
----------------------------------------------------------------------*/
.kv {
  position: relative;
  height: 440px;
  background: url(../images/kv_bg_bk_pc.jpg) no-repeat 50% 50%;
  background-size: cover;
  border-bottom: 5px solid #d91c5c;
  z-index: 0;
  margin-top: 48px;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

.kv::before {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  background: repeat-x 50% 50%;
}

.kv__ttl {
  position: absolute;
  top: 22px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
}

.kv__ttl img {
  max-width: inherit;
}

/* @SP */
@media all and (max-width: 767px) {
  .kv {
    height: auto;
    background: url(../images/kv_bg_bk_sp.jpg) repeat-x 50% 50%;
    border-width: 3px;
    margin-top: 0;
    padding: 0 20px;
    box-sizing: border-box;
  }

  .kv::before {
    background-size: auto 100%;
  }

  .kv__ttl {
    position: relative;
    top: auto;
    left: auto;
    transform: none;
    max-width: 335px;
    margin: 0 auto;
  }

  .kv__ttl img {
    width: 100%;
    height: auto;
    margin: 17% 0;
  }
}

/*----------------------------------------------------------------------
	.kv--2018
----------------------------------------------------------------------*/
.kv--2018 {
  padding: 30px 0 0;
  background-image: url(/school_trip_timeline/common/images/2018/kv_bg_bk_pc.jpg);
}

.kv--2018__box {
  position: relative;
  z-index: 0;
  margin: 0 auto;
  padding: 55px 0 0;
  width: 717px;
  height: 378px;
  background: url(/school_trip_timeline/common/images/2018/kv_box_bg_pc.png);
  text-align: center;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

.kv--2018__box .inner::before,
.kv--2018__box .inner::after {
  position: absolute;
  content: '';
}

.kv--2018__box .inner::before {
  top: -16px;
  left: -72px;
  width: 115px;
  height: 118px;
  background: url(/school_trip_timeline/common/images/2018/kv_deco01_pc.png) no-repeat center / contain;
}

.kv--2018__box .inner::after {
  bottom: -23px;
  right: -73px;
  width: 147px;
  height: 128px;
  background: url(/school_trip_timeline/common/images/2018/kv_deco02_pc.png) no-repeat center / contain;
}

.kv--2018__ribbon {
  position: absolute;
  top: -9px;
  left: 0;
  right: 0;
  text-align: center;
}

.kv--2018__ttl {
  position: relative;
  top: 0;
  left: 0;
  z-index: 0;
  -webkit-transform: none;
  transform: none;
}

.kv--2018__ttl .stump {
  position: absolute;
  z-index: -1;
  top: -15px;
  right: 61px;
}

.kv--2018__text {
  margin-top: 13px;
  font-size: 13px;
  line-height: 1.84;
}

/* @SP */
@media all and (max-width: 767px) {
  .kv--2018 {
    padding: 68px 20px 56px;
    background: url(/school_trip_timeline/common/images/2018/kv_bg_bk_sp.jpg) no-repeat center / cover;
  }

  .kv--2018::before {
    background-image: url(/school_trip_timeline/common/images/2018/kv_bg_sp.png);
  }

  .kv--2018__box {
    padding: 0;
    max-width: 335px;
    width: 100%;
    height: auto;
    background: url(/school_trip_timeline/common/images/2018/kv_box_bg_sp.png) no-repeat center / contain;
  }

  .kv--2018__box::before {
    display: block;
    width: 100%;
    padding-bottom: 74.32%;
    content: '';
  }

  .kv--2018__box .inner {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding: 33px 50px 0;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }

  .kv--2018__box .inner::before {
    top: -29px;
    left: -14px;
    width: 75px;
    height: 71px;
    background-image: url(/school_trip_timeline/common/images/2018/kv_deco01_sp.png);
  }

  .kv--2018__box .inner::after {
    bottom: -46px;
    right: -37px;
    width: 83px;
    height: 72px;
    background-image: url(/school_trip_timeline/common/images/2018/kv_deco02_sp.png);
  }

  .kv--2018__ribbon {
    top: -12px;
  }

  .kv--2018__ribbon img {
    width: 131px;
    height: auto;
  }

  .kv--2018__ttl>img {
    margin: 0;
    max-width: 100%;
    width: 226px;
    height: auto;
    transform: translateX(2.5%);
  }

  .kv--2018__ttl .stump {
    top: -16px;
    right: -40px;
  }

  .kv--2018__ttl .stump img {
    margin: 0;
    width: 70px;
    height: auto;
  }

  .kv--2018__text {
    margin: 6px -25px 0;
    font-size: 12px;
    line-height: 1.83;
  }

  .kv--2018__text span {
    display: inline-block;
  }
}

@media all and (max-width: 374px) {
  .kv--2018__text span {
    display: inline;
  }
}

@media all and (max-width: 350px) {
  .kv--2018__text {
    line-height: 1.3;
  }
}

/*----------------------------------------------------------------------
	.kv--2019
----------------------------------------------------------------------*/
.kv--2019 {
  padding: 30px 0 0;
  background-image: url(/school_trip_timeline/common/images/2019/kv_bg_bk_pc.jpg);
}

.kv--2019__box {
  position: relative;
  z-index: 0;
  margin: 0 auto;
  padding: 55px 0 0;
  width: 717px;
  height: 378px;
  background: url(/school_trip_timeline/common/images/2019/kv_box_bg_pc.png);
  text-align: center;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

.kv--2019__box .inner::before,
.kv--2019__box .inner::after {
  position: absolute;
  content: '';
}

.kv--2019__box .inner::before {
  top: -16px;
  left: -72px;
  width: 115px;
  height: 118px;
  background: url(/school_trip_timeline/common/images/2019/kv_deco01_pc.png) no-repeat center / contain;
}

.kv--2019__box .inner::after {
  bottom: -23px;
  right: -73px;
  width: 147px;
  height: 128px;
  background: url(/school_trip_timeline/common/images/2019/kv_deco02_pc.png) no-repeat center / contain;
}

.kv--2019__ribbon {
  position: absolute;
  top: -9px;
  left: 0;
  right: 0;
  text-align: center;
}

.kv--2019__ttl {
  position: relative;
  top: 0;
  left: 0;
  z-index: 0;
  -webkit-transform: none;
  transform: none;
}

.kv--2019__ttl .stump {
  position: absolute;
  z-index: -1;
  top: -15px;
  right: 61px;
}

.kv--2019__text {
  margin-top: 13px;
  font-size: 13px;
  line-height: 1.84;
}

/* @SP */
@media all and (max-width: 767px) {
  .kv--2019 {
    padding: 68px 20px 56px;
    background: url(/school_trip_timeline/common/images/2019/kv_bg_bk_sp.jpg) no-repeat center / cover;
  }

  .kv--2019::before {
    background-image: url(/school_trip_timeline/common/images/2019/kv_bg_sp.png);
  }

  .kv--2019__box {
    padding: 0;
    max-width: 335px;
    width: 100%;
    height: auto;
    background: url(/school_trip_timeline/common/images/2019/kv_box_bg_sp.png) no-repeat center / contain;
  }

  .kv--2019__box::before {
    display: block;
    width: 100%;
    padding-bottom: 74.32%;
    content: '';
  }

  .kv--2019__box .inner {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding: 33px 50px 0;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
  }

  .kv--2019__box .inner::before {
    top: -29px;
    left: -14px;
    width: 75px;
    height: 71px;
    background-image: url(/school_trip_timeline/common/images/2019/kv_deco01_sp.png);
  }

  .kv--2019__box .inner::after {
    bottom: -46px;
    right: -37px;
    width: 83px;
    height: 72px;
    background-image: url(/school_trip_timeline/common/images/2019/kv_deco02_sp.png);
  }

  .kv--2019__ribbon {
    top: -12px;
  }

  .kv--2019__ribbon img {
    width: 131px;
    height: auto;
  }

  .kv--2019__ttl>img {
    margin: 0;
    max-width: 100%;
    width: 226px;
    height: auto;
    transform: translateX(2.5%);
  }

  .kv--2019__ttl .stump {
    top: -16px;
    right: -40px;
  }

  .kv--2019__ttl .stump img {
    margin: 0;
    width: 70px;
    height: auto;
  }

  .kv--2019__text {
    margin: 6px -25px 0;
    font-size: 12px;
    line-height: 1.83;
  }

  .kv--2019__text span {
    display: inline-block;
  }
}

@media all and (max-width: 374px) {
  .kv--2019__text span {
    display: inline;
  }
}

@media all and (max-width: 350px) {
  .kv--2019__text {
    line-height: 1.3;
  }
}

/*----------------------------------------------------------------------
	.timeline
----------------------------------------------------------------------*/
.timeline__sec {
  height: 800px;
  position: relative;
  background: no-repeat 50% 50%;
}

.timeline__sec .inner_base {
  position: relative;
  height: 100%;
}

.timeline__sec .intro {
  top: -184px;
  left: -2px;
}

.timeline__sec .intro:not(.active) {
  animation: introIdling 2s forwards infinite;
}

.timeline__sec .intro.active {
  animation: intro .6s forwards;
}

.article {
  position: absolute;
  width: 335px;
  z-index: 10;
  -webkit-transform-origin: 100% 100%;
  transform-origin: 100% 100%;
  -webkit-transform: rotate(90deg);
  transform: rotate(90deg);
  opacity: 0;
  -webkit-transition: 1.3s cubic-bezier(0.19, 1, 0.22, 1);
  transition: 1.3s cubic-bezier(0.19, 1, 0.22, 1);
  visibility: hidden;
}

.article.active {
  visibility: visible;
}

.article::before,
.article::after {
  content: '';
  display: block;
  position: absolute;
  top: -11px;
  left: 142px;
  z-index: 1;
  opacity: 0;
  transition: .3s ease .5s;
}

.article::before {
  background: url(../images/pin01.png) no-repeat;
  width: 24px;
  height: 26px;
  transform: translate(-30px, -30px);
}

.article::after {
  background: url(../images/pin_shadow.png) no-repeat;
  width: 26px;
  height: 38px;
  transform: translate(-30px, 30px);
}

.article02::before {
  background-image: url(../images/pin02.png);
}

.article03::before {
  background-image: url(../images/pin03.png);
}

.article04::before {
  background-image: url(../images/pin04.png);
}

.article05::before {
  background-image: url(../images/pin05.png);
}

.article06::before {
  background-image: url(../images/pin02.png);
}

.article.active::before,
.article.active::after {
  opacity: 1;
  transform: translate(0, 0);
}

.article .days {
  transition: .5s ease .6s;
  z-index: 10;
}

.article__inside {
  -webkit-transform-origin: 168px 12px;
  transform-origin: 168px 12px;
  -webkit-transition: 0.3s;
  transition: 0.3s;
}

.article:not(.comingsoon):not(.nolink) .article__inside:hover {
  -webkit-animation: articleHover 1s ease;
  animation: articleHover 1s ease;
  opacity: .8;
}

.article__inside::before,
.article__inside::after {
  content: '';
  display: block;
  height: 100%;
  background: rgba(0, 0, 0, 0.3);
  position: absolute;
  z-index: -1;
}

.article__inside::before {
  top: 0;
  right: -5px;
  transform-origin: 0 0;
  transform: skewY(2deg);
  width: 48%;
}

.article__inside::after {
  top: 3px;
  left: 9px;
  transform-origin: 50% 0;
  transform: skewY(-2deg);
  width: 47%;
}

.article__inner {
  display: block;
  background: #fff;
  padding: 10px;
}

.article a {
  display: block;
  text-decoration: none;
  color: inherit;
  margin: -10px;
  padding: 10px;
}

.article__img {
  background: no-repeat 50% 50%;
  background-size: cover;
}

.article__img img {
  width: 100%;
  height: auto;
}

.article__txt:not(:empty) {
  margin: 15px 10px 10px;
  font-size: 14px;
  line-height: 1.6;
  font-weight: bold;
}

.timeline__sec svg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
  z-index: -1;
}

.timeline__sec .obj {
  position: absolute;
}

.timeline__sec .paper {
  position: absolute;
  z-index: 2;
  perspective: 1000px;
}

.timeline__sec .paper img {
  display: block;
  transform-origin: 50% 100%;
  -webkit-transform: rotateX(90deg);
  -ms-transform: rotateX(90deg);
  transform: rotateX(90deg);
  opacity: 0;
}

.timeline__sec .paper.active img {
  opacity: 1;
  animation: paperAnime 1.2s ease forwards, paperAnimeInfinite 3s ease 0.8s infinite;
}

/* @SP */
@media all and (max-width: 767px) {
  .timeline__sec {
    height: 618px;
    background-size: 767px auto;
  }

  .timeline__sec .inner_base {
    position: absolute;
    top: 0;
    left: -100%;
    right: -100%;
    width: 375px;
    margin: auto;
    padding: 0;
  }

  /*.timeline__sec::after {
		content: '';
		display: block;
		padding-bottom: 164.8%;
	}*/

  .timeline__sec .intro {
    width: 114px;
    top: -42px;
    left: 96px;
    z-index: 10;
  }

  .article {
    width: 190px;
  }

  .article .days img {
    width: 100%;
  }

  .article__inner {
    padding: 5px;
  }

  .article a {
    margin: -5px;
    padding: 5px;
  }

  .article__txt:not(:empty) {
    font-size: 10px;
    line-height: 1.6;
    margin: 10px 5px 5px;
  }

  .article::before,
  .article::after {
    top: -4px;
    left: 80px;
    background-size: 100% auto;
  }

  .article::before {
    width: 12px;
    height: 13px;
  }

  .article::after {
    width: 13px;
    height: 19px;
  }

  .article__inside::before {
    right: -3px;
  }

  .article__inside::after {
    top: 1px;
  }

  .timeline__sec .obj img,
  .timeline__sec .paper img {
    width: 100%;
    height: auto;
  }
}

/*----------------------------------------------------------------------
	.piece
----------------------------------------------------------------------*/
.piece {
  position: absolute;
  top: 0;
  left: 0;
  -webkit-transform: translate(-50%, -100%);
  -ms-transform: translate(-50%, -100%);
  transform: translate(-50%, -100%);
  opacity: 0;
  z-index: 1;
}

.piece.active {
  opacity: 1;
}

.piece__img {
  transform-origin: 50% 100%;
}

/* @SP */
@media all and (max-width: 767px) {
  .piece {
    display: none;
  }
}


/*----------------------------------------------------------------------
	.timelines_link
----------------------------------------------------------------------*/
.timelines_link {
  position: relative;
  z-index: 10;
  padding: 60px 0 57px;
  background: url(../images/timelines_link_bg.png) no-repeat 50% 50%;
  background-size: cover;
  text-align: center;
}

.timelines_link__hdg {
  width: 510px;
  margin: 0 auto 39px;
  background: #fff;
  border: 2px solid #da2361;
  padding: 12px 0;
}

.timelines_link__list {
  letter-spacing: -.4em;
  margin: 0 -15px;
}

.timelines_link__bnr {
  display: inline-block;
  letter-spacing: normal;
  position: relative;
  margin: 0 15px;
  box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.05);
}

.timelines_link__bnr--comingsoon {
  position: relative;
}

.timelines_link__bnr--comingsoon::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(105, 226, 236, 0.9) url('/school_trip_timeline/common/images/2019/comingsoon_pc.png') no-repeat center;
  content: '';
}

.timelines_link__bnr .deco {
  position: absolute;
}

/* ハワイ */
.timelines_link__bnr.hawaii .deco01 {
  top: -18px;
  left: -25px;
}

.timelines_link__bnr.hawaii .deco02 {
  bottom: -12px;
  right: -16px;
}

/* プラハ */
.timelines_link__bnr.praha .deco01 {
  top: -18px;
  left: -12px;
}

.timelines_link__bnr.praha .deco02 {
  bottom: -12px;
  right: -25px;
}

.timelines_link__bnr.praha .group {
  top: -10px;
  right: -10px;
}

/* 沖縄 */
.timelines_link__bnr.okinawa .deco01 {
  top: -11px;
  left: -14px;
}

.timelines_link__bnr.okinawa .deco02 {
  bottom: -8px;
  right: -13px;
}

/* @SP */
@media all and (max-width: 767px) {
  .timelines_link {
    padding: 40px 0;
    background-image: url(../images/timelines_link_bg_sp.png);
  }

  .timelines_link .inner_base {
    max-width: 375px;
    margin: 0 auto;
  }

  .timelines_link__hdg {
    width: auto;
    margin-bottom: 24px;
    padding: 10px;
    line-height: 1;
  }

  .timelines_link__hdg img {
    width: 291px;
  }

  .timelines_link__list {
    margin: 0 0 -20px;
  }

  .timelines_link__bnr {
    display: block;
    margin: 0 0 20px;
  }

  .timelines_link__bnr--comingsoon::before {
    background-image: url('/school_trip_timeline/common/images/2019/comingsoon_sp.png');
    background-size: 100% auto;
  }

  .timelines_link__bnr img {
    width: 100%;
  }

  /* ハワイ */
  .timelines_link__bnr.hawaii .deco01 {
    width: 48px;
    top: -18px;
    left: -20px;
  }

  .timelines_link__bnr.hawaii .deco02 {
    width: 56px;
    bottom: -14px;
    right: -14px;
  }

  /* プラハ */
  .timelines_link__bnr.praha .deco01 {
    width: 32px;
    top: -13px;
    left: -7px;
  }

  .timelines_link__bnr.praha .deco02 {
    width: 36px;
    bottom: -9px;
    right: -12px;
  }

  .timelines_link__bnr.praha .group {
    width: 37px;
    bottom: -13px;
    right: -8px;
  }

  /* 沖縄 */
  .timelines_link__bnr.okinawa .deco01 {
    width: 37px;
    top: -9px;
    left: -12px;
  }

  .timelines_link__bnr.okinawa .deco02 {
    width: 36px;
    bottom: -6px;
    right: -15px;
  }
}


/*=====================================================================
	@keyframes
=====================================================================*/
@keyframes paperAnime {
  40% {
    -webkit-transform: rotateX(-30deg);
    -ms-transform: rotateX(-30deg);
    transform: rotateX(-30deg);
  }

  60% {
    -webkit-transform: rotateX(20deg);
    -ms-transform: rotateX(20deg);
    transform: rotateX(20deg);
  }

  80% {
    -webkit-transform: rotateX(-10deg);
    -ms-transform: rotateX(-10deg);
    transform: rotateX(-10deg);
  }

  100% {
    -webkit-transform: rotateX(0deg);
    -ms-transform: rotateX(0deg);
    transform: rotateX(0deg);
  }
}

@keyframes paperAnimeInfinite {
  0% {
    -webkit-transform: rotateX(0deg);
    -ms-transform: rotateX(0deg);
    transform: rotateX(0deg);
  }

  60% {
    -webkit-transform: rotateX(0deg);
    -ms-transform: rotateX(0deg);
    transform: rotateX(0deg);
  }

  70% {
    -webkit-transform: rotateX(10deg);
    -ms-transform: rotateX(10deg);
    transform: rotateX(10deg);
  }

  80% {
    -webkit-transform: rotateX(-10deg);
    -ms-transform: rotateX(-10deg);
    transform: rotateX(-10deg);
  }

  90% {
    -webkit-transform: rotateX(3deg);
    -ms-transform: rotateX(3deg);
    transform: rotateX(3deg);
  }

  100% {
    -webkit-transform: rotateX(0deg);
    -ms-transform: rotateX(0deg);
    transform: rotateX(0deg);
  }
}

@keyframes change {
  0% {
    -webkit-transform: rotateY(90deg);
    -ms-transform: rotateY(90deg);
    transform: rotateY(90deg);
  }

  100% {
    -webkit-transform: rotateY(0deg);
    -ms-transform: rotateY(0deg);
    transform: rotateY(0deg);
  }
}

@keyframes articleHover {
  40% {
    -webkit-transform: rotate(-1deg);
    -ms-transform: rotate(-1deg);
    transform: rotate(-1deg);
  }

  60% {
    -webkit-transform: rotate(1deg);
    -ms-transform: rotate(1deg);
    transform: rotate(1deg);
  }

  80% {
    -webkit-transform: rotate(-1deg);
    -ms-transform: rotate(-1deg);
    transform: rotate(-1deg);
  }

  100% {
    -webkit-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    transform: rotate(0deg);
  }
}

@keyframes introIdling {
  0% {
    transform: translateY(0);
  }

  72% {
    transform: translateY(0);
  }

  79% {
    transform: translateY(-10%);
  }

  86% {
    transform: translateY(0);
  }

  93% {
    transform: translateY(-10%);
  }

  100% {
    transform: translateY(0);
  }
}

@keyframes intro {
  0% {
    transform: scale(1);
    opacity: 1;
  }

  30% {
    transform: scale(1.2);
    opacity: 1;
  }

  100% {
    transform: scale(0);
    opacity: 0;
  }
}
