@charset "UTF-8";
/* CSS Document */

@keyframes fadeIn {
  0% { opacity: 0;}
  100% { opacity: 1;}
}

@keyframes flipY {
  0% {
      -webkit-transform:rotateY(0deg);
      -moz-transform:rotateY(0deg);
      transform:rotateY(0deg);
      opacity: 0;
  }
  25% {
      -webkit-transform:rotateY(90deg);
      -moz-transform:rotateY(90deg);
      transform:rotateY(90deg);

  }
  50% {
      -webkit-transform:rotateY(180deg);
      -moz-transform:rotateY(180deg);
      transform:rotateY(180deg);
  }
  75% {
      -webkit-transform:rotateY(270deg);
      -moz-transform:rotateY(270deg);
      transform:rotateY(270deg);
  }
  100% {
      -webkit-transform:rotateY(360deg);
      -moz-transform:rotateY(360deg);
      transform:rotateY(360deg);
      opacity: 1;
  }
}

@keyframes popup {
  0% {
    transform: translateY(40px) scale(0.8);
    opacity: 0;
  }
  100% {
    transform: translateY(0) scale(1.0);
  }
  80%, 100% {
    opacity: 1;
  }
}
@keyframes poyoyon3 {
  0%, 40% {
    transform: skew(0deg, 0deg);
  }
  5% {
    transform: skew(5deg, 5deg);
  }
  10% {
    transform: skew(-4deg, -4deg);
  }
  15% {
    transform: skew(3deg, 3deg);
  }
  20% {
    transform: skew(-2deg, -2deg);
  }
  25% {
    transform: skew(1deg, 1deg);
  }
  30% {
    transform: skew(-0.6deg, -0.6deg);
  }
  35% {
    transform: skew(0.3deg, 0.3deg);
  }
}


/*----------------------------------------------
    customize
    特設ページ
----------------------------------------------*/
body {
  background-color: #e5e4d1;
  background-image: url(images/common_bg02.png);
  background-repeat: repeat;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.8;
  color: #000;
  -webkit-tap-highlight-color: transparent;
}

a		{ outline: none; }
a:link	{ color: #000; text-decoration: none; }
a:visited	{ color: #000; text-decoration: none; }
a:hover	{ color:#000; text-decoration:none; }
a		{ -webkit-tap-highlight-color: transparent; }

b { font-weight: 700;}

.wrapper {
  animation: fadeIn 1.5s forwards;
  display: flex;
  flex-flow: column;
  min-height: 100vh;
}

#member footer,
.footerArea_member {
  line-height: 1;
}
.footerArea_member .corner-btn {
  border-radius: 50px;
}
/* ----------------------
    header
---------------------- */
header {
  background: linear-gradient(70deg, #7a002a, #4b0818);
}
.header__bg{
  background-image: url(images/common_bg01.png);
  background-repeat: repeat;
}

.header__medal{
  position: relative;
  width: 260px;
  padding: 28px 0;
  margin: auto;
}
.header__medal img {
  display: block;
  width: 100%;
  opacity: 0;
  animation: flipY 1s linear 1.3s forwards;
}

/* HOME以外のheader */
.header__container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 460px;
  padding: 30px 20px;
  box-sizing: border-box;
  margin: auto;
}
.header__container img {
  display: block;
  width: 40%;
}
.header__container__title {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  flex: 1;
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  padding-left: 16px;
}
.header__container__title p {
  font-size: 12px;
}


/* ----------------------
    navigation menu
---------------------- */
.nav-menu {
}
.nav-menu__list {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: center;
}
.nav-menu__list li {
  width: calc(100% / 3);
  padding: 0 1px;
}
.nav-menu__list li a {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 52px;
  background-color: rgb(255, 255, 255, 0.6);
  font-family: fot-chiaro-std, sans-serif;
  font-weight: 700;
  font-size: 12px;
  color: #42210b;
  text-decoration: none;
}

.nav-menu__list__progress {
  position: relative;
}
.nav-menu__list__progress__sb {
  opacity: 0;
  display: block;
  width: 160px;
  position: absolute;
  left: 15px;
  bottom: -48px;
  animation: popup 0.6s 2s 1 cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

/* ----------------------
    HOME  main　（base）
---------------------- */
main {
  padding-bottom: 60px;
  flex: 1;
  min-width: 280px;
}

article {
  padding: 0 15px;
}
.contents{
  padding-top: 60px;
  position: relative;
}
.contents + .contents {
  margin-top: 100px;
}
.contents + .contents::before {
  content: "";
  display: block;
  width: 46px;
  height: 16px;
  background-image: url(images/section_line.png);
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: -20px;
}

.contents__title{
  color: #4c2527;
  display:block;
  width: fit-content;
  position: relative;
  text-align: center;
  margin: 12px auto;
}
.contents__title::before, .contents__title::after {
  content: "";
  position: absolute;
  background-image: url(images/section_title_frame.png);
  background-size: contain;
  background-repeat: no-repeat;
  width: 52px;
  height: 49px;
}
.contents__title::before {
  top: -12px;
  left: -60px;
}
.contents__title::after {
  bottom: -12px;
  right: -60px;
  transform:rotate(180deg);
}

.contents__title__main{
  font-family: "linotype-didot", serif;
  font-weight: 700;
  font-style: normal;
  line-height: 1.2;
  color: #4c2527;
  font-size: 24px;
}
.contents__title__ruby{
  font-family: fot-chiaro-std, sans-serif;
  font-weight: 700;
  font-size: 11px;
  line-height: 1.2;
}

.contents__body {
  margin-top: 32px;
}
.contents__block {
  background-color: rgb(255, 255, 255, 0.6);
  max-width: 460px;
  margin: auto;
}
.contents__block + .contents__block {
  margin-top: 30px;
}
.contents__block__inner {
  padding: 24px 14px 40px;
  text-align: center;
  position: relative;
}

/* リボン ---------------------- */
.ribbon__wrap {
  display: flex;
  align-items: center;
  position: relative;
  box-sizing: border-box;
  padding: 0;
  margin: 24px 0 20px -21px;
  width: 179px;
  height: 36px;
  color: #fff;
  background: #7a002a;
}
.ribbon__wrap h3{
  margin: 0;
  padding: 0px 24px;
  font-family: fot-chiaro-std, sans-serif;
  font-weight: 700;
  text-align: left;
  height: 30px;
  display: flex;
  align-items: center;
}
.ribbon__wrap:after {
  position: absolute;
  content: '';
  z-index: 1;
  top: 0;
  right: 0;
  width: 0px;
  height: 0px;
  border-width: 18px 9px 18px 0px;
  border-color: transparent #f5f5ee transparent transparent;
  border-style: solid;
}
.ribbon__wrap:before {
  position: absolute;
  content: '';
  top: 100%;
  left: 0;
  border: none;
  border-bottom: solid 6px transparent;
  border-right: solid 7px #1c0d04;
}

/* ボタン ---------------------- */
.button__wrap {
  margin: 30px 0;
}

a.button {
  box-sizing: border-box;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  width: 260px;
  min-height: 58px;
  padding: 10px 26px;
  margin: auto;
  color: #fff!important;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  background-color: #42210b;
  border-radius: 50px;
  border: 4px double #e7e6d4;
}
a.button::before, a.button::after {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50px;
  background-color: #e7e6d4;
  position: absolute;
  transform: translateY(-50%);
}
a.button::before {
  top: 50%;
  left: 20px;
}
a.button::after {
  top: 50%;
  right: 20px;
}
a.button.disabled {
  pointer-events: none;
  opacity: 0.6;
  color: #999!important;
}
a.button p {
  font-size: 11px;
}


/* ----------------------
    HOME  present
---------------------- */
.present__title {
  position: relative;
  width: 168px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 24px;
  text-align: center;
  margin: 0 auto 20px;
  padding: 0 15px;
  font-family: fot-chiaro-std, sans-serif;
  font-weight: 700;
  background: #7a002a;
  color: #FFF;
  box-sizing: border-box;
}
.present__title::before, 
.present__title::after {
  position: absolute;
  content: '';
  width: 8px;
  height: 0px;
  z-index: 1;
}
.present__title::before {
  top: 0;
  left: 0;
  border-width: 16px 0px 16px 5px;
  border-color: transparent transparent transparent #f0f0e7;
  border-style: solid;
}
.present__title::after {
  top: 0;
  right: 0;
  border-width: 16px 5px 16px 0px;
  border-color: transparent #f0f0e7 transparent transparent;
  border-style: solid;
}


.present__img{
  width: 100%;
  max-width: 300px;
  margin: auto;
}


/* ----------------------
    HOME  tour
---------------------- */
.tour__line {
  display: block;
  margin: 40px auto;
  width: 80%;
}
.tour__block {
  border-left: 1px solid #42210b;
  padding: 24px 14px;
  font-size: 12px;
  max-width: 320px;
  margin: auto;
  position: relative;
}
.tour__block::before, .tour__block::after {
  content: "";
  width: 25px;
  height: 25px;
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  left: -13px;
}
.tour__block::before {
  background-image: url(images/tour_side_ornament-t.png);
  top: 4px;
}
.tour__block::after {
  background-image: url(images/tour_side_ornament-b.png);
  bottom: 4px;
}
.tour__block h3 {
  font-weight: 700;
  font-size: 14px;
  margin-bottom: 4px;
}
.tour__link {
  box-sizing: border-box;
  display: block;
  position: relative;
  max-width: 150px;
  font-size: 14px;
  padding: 4px 0;
  text-align: center;
  border: 1px solid #42210b;
  background-color: rgb(255 255 255 / 60%);
  margin: 12px 0 24px auto;
  font-size: 12px;
  color: #42210b!important;
}
.tour__link::after {
  content: "";
  width: 40px;
  height: 7px;
  background-image: url(images/tour_button_arrow.png);
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  top: 50%;
  right: -24px;
  transform: translateY(-50%);
}

.tour__button {
  display: block;
  max-width: 220px;
  border: 1px solid #42210b;
  background-color: rgb(255 255 255 / 60%);
  padding: 4px 0;
  color: #42210b!important;
  margin: 40px auto 0;
  font-size: 12px;
text-align: center;
}


/* ----------------------
    スケジュール
---------------------- */
.schedule__list {
  max-width: 460px;
  margin: auto;
}
.schedule__list__item {
  border: 1px solid #fff;
  background-color: rgb(255, 255, 255, 0.2);
  padding: 8px;
}
.schedule__list__item + .schedule__list__item {
  margin-top: 20px;
}
.schedule__info {
  text-align: center;
  font-size: 11px;
  margin: 20px 0;
}
.schedule__info a {
  text-decoration: underline;
}

/* ----------------------
    グッズ
---------------------- */
.goods__list {
  max-width: 460px;
  margin: 40px auto;
}
.goods__list__item {
  border: 1px solid #fff;
  background-color: rgb(255, 255, 255, 0.2);
  padding: 12px;
}
.goods__list__item + .goods__list__item {
  margin-top: 30px;
}
.goods__list__item__label {
  display: inline-block;
  padding: 2px 12px;
  background-color: #4c2527;
  color: #fff;
  font-size: 12px;
  border-radius: 50px;
  margin-top: 16px;
}
.goods__list__item__img {
  max-width: 300px;
  margin: auto;
}
.goods__list__item__text {
  padding-top: 16px;
}
.goods__list__item__text h1 {
  font-weight: 700;
  margin-bottom: 12px;
  padding-bottom: 6px;
  border-bottom: 1px solid #fff;

}
.goods__info {
  max-width: 460px;
  font-size: 11px;
  margin: 20px auto;
}
.goods__info a {
  text-decoration: underline;
}


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

.button__bouncetext {
  display: block;
  margin: 0 auto;
  width: 180px;
  animation: poyoyon3 2.5s infinite;
}