:root {
  --vw: 1vw;
}

/* CSS Document */
body {
  padding-top: 0;
}

header {
  top: -80px;
  -webkit-transition: top 0.6s cubic-bezier(0.25, 1, 0.5, 1);
  transition: top 0.6s cubic-bezier(0.25, 1, 0.5, 1);
}
header.is-show {
  top: 0;
}

/* ---------------------------------------------------------
.kv
----------------------------------------------------------*/
.kv {
  position: relative;
  width: 100%;
  background: -webkit-gradient(linear, left top, left bottom, from(#fff), color-stop(62.07%, #fff), to(#f2f3ec));
  background: linear-gradient(#fff 0%, #fff 62.07%, #f2f3ec 100%);
  padding-bottom: max(5.1244509517 * var(--vw), 63.5431918009px);
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .kv {
    padding-bottom: calc(10.6666666667 * var(--vw));
    background: none;
  }
}
.kv::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: calc(63.4666666667 * var(--vw));
  background: -webkit-gradient(linear, left top, left bottom, from(#fff), color-stop(62.07%, #fff), to(#f2f3ec));
  background: linear-gradient(#fff 0%, #fff 62.07%, #f2f3ec 100%);
  z-index: -1;
}
.kv .logo {
  width: max(11.7130307467 * var(--vw), 145.2415812592px);
  padding-top: max(6.588579795 * var(--vw), 81.6983894583px);
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .kv .logo {
    width: calc(26.6666666667 * var(--vw));
    padding-top: calc(14.1333333333 * var(--vw));
  }
}
.kv .left-col,
.kv .right-col {
  position: absolute;
  top: 0;
  left: 0;
  width: max(41.9472913616 * var(--vw), 520.1464128843px);
}
@media screen and (max-width: 768px) {
  .kv .left-col,
.kv .right-col {
    top: calc(54.1333333333 * var(--vw));
    width: 50%;
  }
}
.kv .left-col .pic,
.kv .right-col .pic {
  position: relative;
  opacity: 0;
  -webkit-transition: opacity 0.9s cubic-bezier(0.25, 1, 0.5, 1);
  transition: opacity 0.9s cubic-bezier(0.25, 1, 0.5, 1);
}
.kv .left-col .pic::after,
.kv .right-col .pic::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.1);
  z-index: 2;
}
.kv .left-col .pic .swiper-slide,
.kv .right-col .pic .swiper-slide {
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
.kv .left-col .txt,
.kv .right-col .txt {
  position: absolute;
  width: max(10.8345534407 * var(--vw), 134.3484626647px);
  top: max(15.0073206442 * var(--vw), 186.0907759883px);
  left: max(2.635431918 * var(--vw), 32.6793557833px);
  opacity: 0;
  -webkit-transition: opacity 1.8s 0.8s cubic-bezier(0.17, 0.67, 0.48, 0.9);
  transition: opacity 1.8s 0.8s cubic-bezier(0.17, 0.67, 0.48, 0.9);
  z-index: 3;
}
@media screen and (max-width: 768px) {
  .kv .left-col .txt,
.kv .right-col .txt {
    top: calc(19.7333333333 * var(--vw));
    left: calc(0.5333333333 * var(--vw));
/*    left: calc(4.5333333333 * var(--vw));*/
    width: calc(14.6666666667 * var(--vw));
  }
}
.kv .left-col .circle1,
.kv .left-col .circle2,
.kv .right-col .circle1,
.kv .right-col .circle2 {
  position: absolute;
  width: max(35.2855051245 * var(--vw), 437.5402635432px);
  top: max(0.8052708638 * var(--vw), 9.9853587116px);
  right: max(24.5241581259 * var(--vw), 304.0995607613px);
  z-index: 3;
  -webkit-transform: scale(0.8);
          transform: scale(0.8);
  opacity: 0;
  -webkit-transition: opacity 0.8s 0.4s, -webkit-transform 0.8s 0.4s cubic-bezier(0.17, 0.67, 0.48, 0.9);
  transition: opacity 0.8s 0.4s, -webkit-transform 0.8s 0.4s cubic-bezier(0.17, 0.67, 0.48, 0.9);
  transition: opacity 0.8s 0.4s, transform 0.8s 0.4s cubic-bezier(0.17, 0.67, 0.48, 0.9);
  transition: opacity 0.8s 0.4s, transform 0.8s 0.4s cubic-bezier(0.17, 0.67, 0.48, 0.9), -webkit-transform 0.8s 0.4s cubic-bezier(0.17, 0.67, 0.48, 0.9);
}
@media screen and (max-width: 768px) {
  .kv .left-col .circle1,
.kv .left-col .circle2,
.kv .right-col .circle1,
.kv .right-col .circle2 {
    top: calc(1.0666666667 * var(--vw));
    right: calc(26.9333333333 * var(--vw));
    width: calc(46.9333333333 * var(--vw));
  }
}
.kv .left-col .circle2,
.kv .right-col .circle2 {
  top: 0;
  right: max(24.0849194729 * var(--vw), 298.6530014641px);
  -webkit-transition-delay: 0.6s;
          transition-delay: 0.6s;
}
@media screen and (max-width: 768px) {
  .kv .left-col .circle2,
.kv .right-col .circle2 {
    right: calc(26.4 * var(--vw));
  }
}
.kv .right-col {
  left: auto;
  right: 0;
}
.kv .right-col .txt {
  width: max(11.6398243045 * var(--vw), 144.3338213763px);
/*  top: max(22.9868228404 * var(--vw), 285.0366032211px);*/
/*  top: max(2.9868228404 * var(--vw), 115.0366032211px);*/
  top: max(0.9868228404 * var(--vw), 94.0366032211px);
/*  left: max(26.0614934114 * var(--vw), 323.1625183016px);*/
  left: max(28.5614934114 * var(--vw), 323.1625183016px);
  opacity: 0;
  -webkit-transition: opacity 1.8s 0.8s cubic-bezier(0.17, 0.67, 0.48, 0.9);
  transition: opacity 1.8s 0.8s cubic-bezier(0.17, 0.67, 0.48, 0.9);
  z-index: 3;
}
@media screen and (max-width: 768px) {
  .kv .right-col .txt {
    top: calc(9.4666666667 * var(--vw));
/*    top: calc(39.4666666667 * var(--vw));*/
    left: calc(36.1333333333 * var(--vw));
/*    left: calc(30.1333333333 * var(--vw));*/
    width: calc(15.2 * var(--vw));
  }
}
/* 右の円の位置設定 */
.kv .right-col .circle1,
.kv .right-col .circle2 {
  width: max(35.2855051245 * var(--vw), 437.5402635432px);
  top: max(7.7598828697 * var(--vw), 96.2225475842px);
/*  top: -150px;*/
  right: auto;
  left: max(24.3045387994 * var(--vw), 301.3762811127px);
/*  left: 260px;*/
  z-index: 3;
  -webkit-transform: scale(0.8);
          transform: scale(0.8);
  opacity: 0;
  -webkit-transition: opacity 0.8s 0.8s, -webkit-transform 0.8s 0.8s cubic-bezier(0.17, 0.67, 0.48, 0.9);
  transition: opacity 0.8s 0.8s, -webkit-transform 0.8s 0.8s cubic-bezier(0.17, 0.67, 0.48, 0.9);
  transition: opacity 0.8s 0.8s, transform 0.8s 0.8s cubic-bezier(0.17, 0.67, 0.48, 0.9);
  transition: opacity 0.8s 0.8s, transform 0.8s 0.8s cubic-bezier(0.17, 0.67, 0.48, 0.9), -webkit-transform 0.8s 0.8s cubic-bezier(0.17, 0.67, 0.48, 0.9);
}
@media screen and (max-width: 768px) {
  .kv .right-col .circle1,
.kv .right-col .circle2 {
    top: calc(18.6666666667 * var(--vw));
    left: calc(26.4 * var(--vw));
    width: calc(46.6666666667 * var(--vw));
  }
}
/* 右の2個目の円の位置設定 */
.kv .right-col .circle2 {
/*  top: max(8.6383601757 * var(--vw), 107.1156661786px);*/
/*  top: -135px;*/
  top: max(0.8052708638 * var(--vw), 9.9853587116px);
  -webkit-transition-delay: 0.6s;
          transition-delay: 0.6s;
}
@media screen and (max-width: 768px) {
  .kv .right-col .circle2 {
    top: calc(20 * var(--vw));
  }
}
.kv h2 {
  width: max(11.7130307467 * var(--vw), 145.2415812592px);
  margin: 40px auto;
/*  margin: max(4.2166910688 * var(--vw), 52.2869692533px) 0 0 max(44.1434846266 * var(--vw), 547.3792093704px);*/
}
@media screen and (max-width: 768px) {
  .kv h2 {
    width: calc(58.6666666667 * var(--vw));
    margin: calc(86.1333333333 * var(--vw)) auto 40px;
  }
}
.kv .txt-en {
  width: max(12.4450951684 * var(--vw), 154.3191800878px);
  margin: max(2.2254758419 * var(--vw), 27.5959004392px) 0 0 max(43.7774524158 * var(--vw), 542.8404099561px);
}
@media screen and (max-width: 768px) {
  .kv .txt-en {
    width: calc(49.0666666667 * var(--vw));
    margin: calc(5.6 * var(--vw)) auto 0;
  }
}
.kv .txt-en img {
  display: block;
}
@media screen and (max-width: 768px) {
  .kv .btn-movie {
    text-align: center;
  }
}

/*トップ動画導線3つ*/
.kv .btn-movie a {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: max(10.2489019034 * var(--vw), 127.0863836018px);
  height: max(2.635431918 * var(--vw), 32.6793557833px);
  font-size: max(0.9 * var(--vw), 12.7086383602px);
  letter-spacing: 0.1em;
  top:20px;
  color: #fff;
  background-color: #B79100;
  padding-left: max(2.5036603221 * var(--vw), 31.0453879941px);
  border-radius: max(1.317715959 * var(--vw), 16.3396778917px);
  margin: 1em auto;
  border: 1px solid #B79100;
  -webkit-transition: color 0.3s, background-color 0.3s, border-color 0.3s;
  transition: color 0.3s, background-color 0.3s, border-color 0.3s;
}
@media screen and (max-width: 768px) {
  .kv .btn-movie a {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    width: 156px;
    height: calc(9.6 * var(--vw));
    font-size: 1.4rem;
    padding: 0 calc(3.7333333333 * var(--vw)) 0 calc(9.0666666667 * var(--vw));
  margin: 10px auto;
    border-radius: calc(4.8 * var(--vw));
  }
}
/*トップ動画導線3つ*/

/*オリジナル*/
/*
.kv .btn-movie a {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: max(10.2489019034 * var(--vw), 127.0863836018px);
  height: max(2.635431918 * var(--vw), 32.6793557833px);
  font-size: max(1.0248901903 * var(--vw), 12.7086383602px);
  letter-spacing: 0.1em;
  color: #fff;
  background-color: #B79100;
  padding-left: max(2.5036603221 * var(--vw), 31.0453879941px);
  border-radius: max(1.317715959 * var(--vw), 16.3396778917px);
  margin: max(6.0541727672 * var(--vw), 75.0717423133px) auto 0;
  border: 1px solid #B79100;
  -webkit-transition: color 0.3s, background-color 0.3s, border-color 0.3s;
  transition: color 0.3s, background-color 0.3s, border-color 0.3s;
}
@media screen and (max-width: 768px) {
  .kv .btn-movie a {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    width: auto;
    height: calc(9.6 * var(--vw));
    font-size: 1.4rem;
    padding: 0 calc(3.7333333333 * var(--vw)) 0 calc(9.0666666667 * var(--vw));
    margin: calc(10.6666666667 * var(--vw)) auto 0;
    border-radius: calc(4.8 * var(--vw));
  }
}
*/
/*オリジナル*/
.kv .btn-movie a::before, .kv .btn-movie a::after {
  content: "";
  position: absolute;
  top: 50%;
  left: max(0.9516837482 * var(--vw), 11.8008784773px);
  width: max(1.0248901903 * var(--vw), 12.7086383602px);
  height: max(1.0248901903 * var(--vw), 12.7086383602px);
  background: url(../img/common/icon_play_white.svg) no-repeat;
  background-size: contain;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
@media screen and (max-width: 768px) {
  .kv .btn-movie a::before, .kv .btn-movie a::after {
    left: calc(3.4666666667 * var(--vw));
    width: calc(3.7333333333 * var(--vw));
    height: calc(3.7333333333 * var(--vw));
  }
}
.kv .btn-movie a::after {
  background-image: url(../img/common/icon_play_gold.svg);
  opacity: 0;
}
@media print, screen and (min-width: 769px) {
  .kv .btn-movie a:hover {
    color: #B79100;
    background-color: #F4F5EF;
    border-color: #B69100;
  }
  .kv .btn-movie a:hover::before {
    opacity: 0;
  }
  .kv .btn-movie a:hover::after {
    opacity: 1;
  }
}
@media screen and (max-width: 768px) {
  .kv .btn-movie a.is-hover {
    color: #B79100;
    background-color: #F4F5EF;
    border-color: #B69100;
  }
  .kv .btn-movie a.is-hover::before {
    opacity: 0;
  }
  .kv .btn-movie a.is-hover::after {
    opacity: 1;
  }
}
/*9/7追加（動画ボタン無し）*/
.kv .btn-movie0 {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: max(10.2489019034 * var(--vw), 127.0863836018px);
  height: max(2.635431918 * var(--vw), 32.6793557833px);
  padding-left: max(2.5036603221 * var(--vw), 31.0453879941px);
  margin: max(6.0541727672 * var(--vw), 75.0717423133px) auto 0;
}
/*9/7追加（動画ボタン無し）ここまで*/

.kv.is-show .pic {
  opacity: 1;
}
.kv.is-anime .txt {
  opacity: 1;
}
.kv.is-anime .circle1 {
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.kv.is-anime .circle1.hide {
  -webkit-animation: circleAnime 0.8s 0.4s forwards cubic-bezier(0.17, 0.67, 0.48, 0.9);
          animation: circleAnime 0.8s 0.4s forwards cubic-bezier(0.17, 0.67, 0.48, 0.9);
}
.kv.is-anime .circle2 {
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.kv.is-anime .circle2.hide {
  -webkit-animation: circleAnime 0.8s 0.6s forwards cubic-bezier(0.17, 0.67, 0.48, 0.9);
          animation: circleAnime 0.8s 0.6s forwards cubic-bezier(0.17, 0.67, 0.48, 0.9);
}

@-webkit-keyframes circleAnime {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
  }
  30% {
    opacity: 0.63;
  }
  100% {
    opacity: 0;
    -webkit-transform: scale(1.07);
            transform: scale(1.07);
  }
}

@keyframes circleAnime {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
  }
  30% {
    opacity: 0.63;
  }
  100% {
    opacity: 0;
    -webkit-transform: scale(1.07);
            transform: scale(1.07);
  }
}
@-webkit-keyframes circleAnime2 {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
  }
  30% {
    opacity: 0.63;
  }
  100% {
    opacity: 0;
    -webkit-transform: scale(1.01);
            transform: scale(1.01);
  }
}
@keyframes circleAnime2 {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
  }
  30% {
    opacity: 0.63;
  }
  100% {
    opacity: 0;
    -webkit-transform: scale(1.01);
            transform: scale(1.01);
  }
}
/* ---------------------------------------------------------
.topics
----------------------------------------------------------*/
.topics {
  background-color: #F2F3EC;
  padding: 10px 0 0;
/*  padding: 50px 0 0;*/
}
@media screen and (max-width: 768px) {
  .topics {
    padding: calc(2.9333333333 * var(--vw)) 0 calc(5.8666666667 * var(--vw));
  }
}
.topics .inner {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 1240px;
  padding-bottom: 11px;
  border-bottom: 1px solid #B79100;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .topics .inner {
    display: block;
    width: calc(90.6666666667 * var(--vw));
    border: none;
    padding-bottom: 0;
  }
}
@media screen and (max-width: 768px) {
  .topics .inner::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: calc(13.3333333333 * var(--vw));
    width: 100%;
    height: 1px;
    background-color: #B79100;
  }
}
.topics h3 {
  font-size: 1.8rem;
  font-weight: 500;
  color: #B79100;
  white-space: nowrap;
  letter-spacing: 0.01em;
}
@media screen and (max-width: 768px) {
  .topics h3 {
    font-size: 1.6rem;
  }
}
.topics .topics-slider {
  width: 1050px;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .topics .topics-slider {
    width: 100%;
  }
}
.topics .topics-slider .swiper-wrapper {
  align-items: center;
}
@media screen and (max-width: 768px) {
  .topics .topics-slider .swiper-wrapper {
    align-items: flex-start;
  }
}
.topics dl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-left: 10px;
}
@media screen and (max-width: 768px) {
  .topics dl {
    display: block;
    margin: calc(4 * var(--vw)) 0 0;
  }
}
.topics dl dt {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  white-space: nowrap;
}
.topics dl dt .txt-date {
  font-size: 1.4rem;
  font-weight: normal;
  letter-spacing: 0.08em;
}
@media screen and (max-width: 768px) {
  .topics dl dt .txt-date {
    display: flex;
    align-items: center;
    font-size: 1.3rem;
    min-height: 20px;
  }
}
.topics dl dt .icon-new {
  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;
  height: 20px;
  font-size: 1.2rem;
  font-weight: bold;
  color: #fff;
  letter-spacing: 0.1em;
  background-color: #AD0000;
  border-radius: 4px;
  padding: 1px 7px 1px 8px;
  margin-left: 8px;
}
@media screen and (max-width: 768px) {
  .topics dl dt .icon-new {
    height: calc(5.3333333333 * var(--vw));
    font-size: 1.2rem;
    padding: calc(0.2666666667 * var(--vw)) calc(1.8666666667 * var(--vw)) calc(0.2666666667 * var(--vw)) calc(2.1333333333 * var(--vw));
    border-radius: calc(1.0666666667 * var(--vw));
  }
}
.topics dl dd {
  font-size: 1.4rem;
  line-height: 1.5384615385;
  letter-spacing: 0.08em;
  margin-left: 10px;
}
@media screen and (max-width: 768px) {
  .topics dl dd {
    font-size: 1.3rem;
    line-height: 1.5384615385;
    margin: calc(2.9333333333 * var(--vw)) 0 0;
  }
}
.topics dl dd a {
  text-decoration: underline;
}
@media print, screen and (min-width: 769px) {
  .topics dl dd a:hover {
    text-decoration: none;
  }
}
@media screen and (max-width: 768px) {
  .topics dl dd a.is-hover {
    text-decoration: none;
  }
}
.topics .btn-all {
  margin-left: auto;
}
@media screen and (max-width: 768px) {
  .topics .btn-all {
    margin-top: calc(8.8 * var(--vw));
  }
}
.topics .btn-all a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 30px;
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: #B79100;
  background-color: #fff;
  padding: 0 14px 0 22px;
  border: 1px solid #B79100;
  border-radius: 15px;
  -webkit-transition: background 0.3s;
  transition: background 0.3s;
}
@media screen and (max-width: 768px) {
  .topics .btn-all a {
    position: relative;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    width: calc(90.6666666667 * var(--vw));
    height: calc(8 * var(--vw));
    font-size: 1.3rem;
    padding: 0;
    border-radius: calc(4 * var(--vw));
  }
}
.topics .btn-all a::after {
  content: "";
  width: 16px;
  height: 6px;
  background: url(../img/common/icon_arrow_small_gold.svg) no-repeat;
  background-size: contain;
  margin-left: 8px;
}
@media screen and (max-width: 768px) {
  .topics .btn-all a::after {
    position: absolute;
    top: calc(2.9333333333 * var(--vw));
    right: calc(3.7333333333 * var(--vw));
    width: calc(4.2666666667 * var(--vw));
    height: calc(1.6 * var(--vw));
    margin: 0;
  }
}
@media print, screen and (min-width: 769px) {
  .topics .btn-all a:hover {
    background-color: #F4F5EF;
  }
}
@media screen and (max-width: 768px) {
  .topics .btn-all a.is-hover {
    background-color: #F4F5EF;
  }
}
.topics .btn-notice {
  margin-top: 30px;
}
@media screen and (max-width: 768px) {
  .topics .btn-notice {
    margin-top: calc(8 * var(--vw));
  }
}
.topics .btn-notice a {
  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: 713px;
  height: 50px;
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  background-color: #fff;
  border: 1px solid #fff;
  border-radius: 25px;
  margin: 0 auto;
  -webkit-transition: background 0.3s, border 0.3s, color 0.3s;
  transition: background 0.3s, border 0.3s, color 0.3s;
}
@media screen and (max-width: 768px) {
  .topics .btn-notice a {
    width: calc(90.6666666667 * var(--vw));
    height: calc(13.8666666667 * var(--vw));
    font-size: 1.3rem;
    line-height: 1.3846153846;
    border-radius: calc(6.6666666667 * var(--vw));
  }
}
.topics .btn-notice a::before, .topics .btn-notice a::after {
  content: "";
  position: absolute;
  top: 17px;
  right: 25px;
  width: 16px;
  height: 16px;
  background: url(../img/common/icon_blank_black.svg) no-repeat;
  background-size: contain;
  -webkit-transition: opacity 0.3s;
  transition: opacity 0.3s;
}
@media screen and (max-width: 768px) {
  .topics .btn-notice a::before, .topics .btn-notice a::after {
    top: calc(4.8 * var(--vw));
    right: calc(5.3333333333 * var(--vw));
    width: calc(4.2666666667 * var(--vw));
    height: calc(4.2666666667 * var(--vw));
  }
}
.topics .btn-notice a::after {
  background-image: url(../img/common/icon_blank_gold.svg);
  opacity: 0;
}
@media print, screen and (min-width: 769px) {
  .topics .btn-notice a:hover {
    color: #B79100;
    background-color: #F4F5EF;
    border-color: #B79100;
  }
  .topics .btn-notice a:hover::before {
    opacity: 0;
  }
  .topics .btn-notice a:hover::after {
    opacity: 1;
  }
}
@media screen and (max-width: 768px) {
  .topics .btn-notice a.is-hover {
    color: #B79100;
    background-color: #F4F5EF;
    border-color: #B79100;
  }
  .topics .btn-notice a.is-hover::before {
    opacity: 0;
  }
  .topics .btn-notice a.is-hover::after {
    opacity: 1;
  }
}

article {
  width: 100%;
  overflow: hidden;
}

/* ---------------------------------------------------------
.sec-intro
----------------------------------------------------------*/
.sec-intro {
  position: relative;
  width: 100%;
  padding-bottom: 26px;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .sec-intro {
    padding-bottom: 0;
  }
}
.sec-intro::before, .sec-intro::after {
  content: "";
  position: absolute;
  top: -13px;
  left: 50%;
  width: 4500px;
  height: 100px;
  background: url(../img/common/wave.svg) no-repeat center;
  background-size: 4500px auto;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .sec-intro::before, .sec-intro::after {
    top: 0;
    width: calc(432 * var(--vw));
    height: calc(9.6 * var(--vw));
    background-size: calc(432 * var(--vw)) auto;
  }
}
.sec-intro::after {
  top: 351px;
  z-index: -1;
}
@media screen and (max-width: 768px) {
  .sec-intro::after {
    top: calc(36 * var(--vw));
  }
}
.sec-intro .pic {
  position: absolute;
  top: 48px;
  left: 50%;
  width: 1920px;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}
@media screen and (max-width: 768px) {
  .sec-intro .pic {
    top: calc(5.6 * var(--vw));
    width: 100%;
  }
}
.sec-intro .pic::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.27);
}
.sec-intro .inner {
  max-width: 1240px;
  padding: 252px 0 0;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .sec-intro .inner {
    padding: calc(24.2666666667 * var(--vw)) 0 0 calc(3.2 * var(--vw));
  }
}
.sec-intro h2 {
  position: relative;
  font-family: "Sacramento", cursive;
  font-size: 8rem;
  letter-spacing: 0.05em;
  color: #fff;
}
@media screen and (max-width: 768px) {
  .sec-intro h2 {
    font-size: 3.6rem;
  }
}
.sec-intro h3 {
  position: relative;
  font-family: "Noto Serif JP", serif;
  font-size: 4rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  margin-top: 53px;
  z-index: 2;
}
@media screen and (max-width: 768px) {
  .sec-intro h3 {
    font-size: 2.4rem;
    letter-spacing: normal;
    margin-top: calc(6.4 * var(--vw));
  }
}

/* ---------------------------------------------------------
sec-common
----------------------------------------------------------*/
/* ---------------------------------------------------------
.sec-reserve
----------------------------------------------------------*/
.sec-reserve,
.sec-service,
.sec-refresh {
  position: relative;
  width: 1200px;
  margin: 70px auto 0;
}
@media screen and (max-width: 768px) {
  .sec-reserve,
.sec-service,
.sec-refresh {
    width: 100%;
    margin-top: calc(11.7333333333 * var(--vw));
  }
}
.sec-reserve::before,
.sec-service::before,
.sec-refresh::before {
  content: "";
  position: absolute;
  top: 74px;
  left: 50%;
  width: 1727px;
  height: 400px;
  background: url(../img/common/bg_01_border.svg) no-repeat;
  background-size: contain;
  -webkit-transform: scale(1.08) translateX(-683px);
          transform: scale(1.08) translateX(-683px);
  pointer-events: none;
  -webkit-transform-origin: center top;
          transform-origin: center top;
  opacity: 0;
}
@media screen and (max-width: 768px) {
  .sec-reserve::before,
.sec-service::before,
.sec-refresh::before {
    top: calc(64 * var(--vw));
    left: 0;
    width: calc(200 * var(--vw));
    height: calc(42.6666666667 * var(--vw));
    background-image: url(../img/common/bg_01_border_sp.svg);
    -webkit-transform: none;
            transform: none;
  }
}
.sec-reserve .pic,
.sec-service .pic,
.sec-refresh .pic {
  position: absolute;
  top: 0;
  left: 600px;
  width: 500px;
  opacity: 0;
  -webkit-transform: scale(1.08);
          transform: scale(1.08);
  -webkit-transition: opacity 1.6s cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity 1.6s cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity 1.6s cubic-bezier(0.16, 1, 0.3, 1), transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity 1.6s cubic-bezier(0.16, 1, 0.3, 1), transform 1.6s cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
}
@media screen and (max-width: 768px) {
  .sec-reserve .pic,
.sec-service .pic,
.sec-refresh .pic {
    position: absolute;
    top: 0;
    left: auto;
    right: calc(3.2 * var(--vw));
    width: calc(69.3333333333 * var(--vw));
  }
}
.sec-reserve .txt-en,
.sec-service .txt-en,
.sec-refresh .txt-en {
  font-family: "Sacramento", cursive;
  font-size: 6.2rem;
  color: #B79100;
  padding: 23px 0 0 1px;
  opacity: 0;
  -webkit-transform: scale(1.08);
          transform: scale(1.08);
  -webkit-transition: opacity 1.6s cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity 1.6s cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity 1.6s cubic-bezier(0.16, 1, 0.3, 1), transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity 1.6s cubic-bezier(0.16, 1, 0.3, 1), transform 1.6s cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
}
@media screen and (max-width: 768px) {
  .sec-reserve .txt-en,
  .sec-service .txt-en,
  .sec-refresh .txt-en {
    font-size: 3.2rem;
    letter-spacing: normal;
    padding: calc(56.8 * var(--vw)) calc(3.2 * var(--vw)) 0 calc(3.2 * var(--vw));
    margin: 0;
  }
}
.sec-reserve.scaleAnime::before,
.sec-service.scaleAnime::before,
.sec-refresh.scaleAnime::before {
  opacity: 1;
  -webkit-transform: scale(1) translateX(-683px);
          transform: scale(1) translateX(-683px);
}
@media screen and (max-width: 768px) {
  .sec-reserve.scaleAnime::before,
  .sec-service.scaleAnime::before,
  .sec-refresh.scaleAnime::before {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
.sec-reserve.scaleAnime .txt-en,
.sec-service.scaleAnime .txt-en,
.sec-refresh.scaleAnime .txt-en {
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.sec-reserve.scaleAnime .pic,
.sec-service.scaleAnime .pic,
.sec-refresh.scaleAnime .pic {
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.sec-reserve h3,
.sec-service h3,
.sec-refresh h3 {
  font-family: "Noto Serif JP", serif;
  font-size: 3.2rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  margin-top: 55px;
}
@media screen and (max-width: 768px) {
  .sec-reserve h3,
.sec-service h3,
.sec-refresh h3 {
    font-size: 2.4rem;
    padding: 0 calc(4.5333333333 * var(--vw));
    margin-top: calc(9.6 * var(--vw));
  }
}
.sec-reserve .txt,
.sec-service .txt,
.sec-refresh .txt {
  width: 520px;
  font-size: 1.4rem;
  line-height: 2.2857142857;
  letter-spacing: 0.08em;
  margin-top: 41px;
}
@media screen and (max-width: 768px) {
  .sec-reserve .txt,
.sec-service .txt,
.sec-refresh .txt {
    width: calc(90.6666666667 * var(--vw));
    font-size: 1.3rem;
    line-height: 1.8461538462;
    margin: calc(8.5333333333 * var(--vw)) auto 0;
  }
}
.sec-reserve .txt a,
.sec-service .txt a,
.sec-refresh .txt a {
  color: #B79100;
  text-decoration: underline;
}
@media print, screen and (min-width: 769px) {
  .sec-reserve .txt a:hover,
.sec-service .txt a:hover,
.sec-refresh .txt a:hover {
    text-decoration: none;
  }
}
@media screen and (max-width: 768px) {
  .sec-reserve .txt a.is-hover,
.sec-service .txt a.is-hover,
.sec-refresh .txt a.is-hover {
    text-decoration: none;
  }
}
.sec-reserve .btn,
.sec-service .btn,
.sec-seat .btn,
.sec-refresh .btn {
  margin: 34px 0 0 auto;
}
@media screen and (max-width: 768px) {
  .sec-reserve .btn,
.sec-service .btn,
.sec-seat .btn,
.sec-refresh .btn {
    margin: calc(7.4666666667 * var(--vw)) auto 0;
  }
}

/* ---------------------------------------------------------
.sec-lounge
----------------------------------------------------------*/
.sec-lounge,
.sec-seat {
  position: relative;
  width: 1200px;
  margin: 193px auto 0;
}
@media screen and (max-width: 768px) {
  .sec-lounge,
.sec-seat {
    width: 100%;
    margin-top: calc(16 * var(--vw));
  }
}
.sec-lounge::before,
.sec-seat::before {
  content: "";
  position: absolute;
  top: 74px;
  right: 50%;
  width: 1727px;
  height: 400px;
  background: url(../img/common/bg_02_border.svg) no-repeat;
  background-size: contain;
  -webkit-transform: scale(1.08) translateX(683px);
          transform: scale(1.08) translateX(683px);
  pointer-events: none;
  -webkit-transform-origin: center top;
          transform-origin: center top;
  opacity: 0;
}
@media screen and (max-width: 768px) {
  .sec-lounge::before,
.sec-seat::before {
    top: calc(64 * var(--vw));
    right: 0;
    width: calc(200 * var(--vw));
    height: calc(42.6666666667 * var(--vw));
    background-image: url(../img/common/bg_02_border_sp.svg);
    -webkit-transform: none;
            transform: none;
  }
}
.sec-lounge .pic,
.sec-seat .pic {
  position: absolute;
  top: 0;
  left: 600px;
  width: 500px;
  opacity: 0;
  -webkit-transform: scale(1.08);
          transform: scale(1.08);
  -webkit-transition: opacity 1.6s cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity 1.6s cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity 1.6s cubic-bezier(0.16, 1, 0.3, 1), transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity 1.6s cubic-bezier(0.16, 1, 0.3, 1), transform 1.6s cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
  top: 5px;
  -webkit-transform: scale(1.08) translateX(-500px);
          transform: scale(1.08) translateX(-500px);
}
@media screen and (max-width: 768px) {
  .sec-lounge .pic,
.sec-seat .pic {
    position: absolute;
    top: 0;
    left: auto;
    right: calc(3.2 * var(--vw));
    width: calc(69.3333333333 * var(--vw));
  }
}
@media screen and (max-width: 768px) {
  .sec-lounge .pic,
.sec-seat .pic {
    top: 0;
    left: calc(3.2 * var(--vw));
    right: auto;
    -webkit-transform: scale(1.08);
            transform: scale(1.08);
  }
}
.sec-lounge .txt-en,
.sec-seat .txt-en {
  font-family: "Sacramento", cursive;
  font-size: 6.2rem;
  color: #B79100;
  padding: 23px 0 0 1px;
  opacity: 0;
  -webkit-transform: scale(1.08);
          transform: scale(1.08);
  -webkit-transition: opacity 1.6s cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity 1.6s cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity 1.6s cubic-bezier(0.16, 1, 0.3, 1), transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
  transition: opacity 1.6s cubic-bezier(0.16, 1, 0.3, 1), transform 1.6s cubic-bezier(0.16, 1, 0.3, 1), -webkit-transform 1.6s cubic-bezier(0.16, 1, 0.3, 1);
  padding-left: 680px;
}
@media screen and (max-width: 768px) {
  .sec-lounge .txt-en,
.sec-seat .txt-en {
    font-size: 3.2rem;
    letter-spacing: normal;
    padding: calc(56.8 * var(--vw)) calc(3.2 * var(--vw)) 0 calc(3.2 * var(--vw));
    margin: 0;
  }
}
@media screen and (max-width: 768px) {
  .sec-lounge .txt-en,
.sec-seat .txt-en {
    padding-left: 0;
    text-align: right;
  }
}
.sec-lounge.scaleAnime::before,
.sec-seat.scaleAnime::before {
  opacity: 1;
  -webkit-transform: scale(1) translateX(683px);
          transform: scale(1) translateX(683px);
}
@media screen and (max-width: 768px) {
  .sec-lounge.scaleAnime::before,
.sec-seat.scaleAnime::before {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
.sec-lounge.scaleAnime .txt-en,
.sec-seat.scaleAnime .txt-en {
  opacity: 1;
  -webkit-transform: scale(1);
          transform: scale(1);
}
.sec-lounge.scaleAnime .pic,
.sec-seat.scaleAnime .pic {
  opacity: 1;
  -webkit-transform: scale(1) translateX(-500px);
          transform: scale(1) translateX(-500px);
}
@media screen and (max-width: 768px) {
  .sec-lounge.scaleAnime .pic,
.sec-seat.scaleAnime .pic {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
.sec-lounge h3,
.sec-seat h3 {
  font-family: "Noto Serif JP", serif;
  font-size: 3.2rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  margin-top: 55px;
  padding-left: 680px;
}
@media screen and (max-width: 768px) {
  .sec-lounge h3,
.sec-seat h3 {
    font-size: 2.4rem;
    padding: 0 calc(4.5333333333 * var(--vw));
    margin-top: calc(9.6 * var(--vw));
  }
}
@media screen and (max-width: 768px) {
  .sec-lounge h3,
.sec-seat h3 {
    padding-left: 0;
    text-align: right;
  }
}
.sec-lounge .txt,
.sec-seat .txt {
  width: 520px;
  font-size: 1.4rem;
  line-height: 2.2857142857;
  letter-spacing: 0.08em;
  margin-top: 41px;
  margin-left: 680px;
}
@media screen and (max-width: 768px) {
  .sec-lounge .txt,
.sec-seat .txt {
    width: calc(90.6666666667 * var(--vw));
    font-size: 1.3rem;
    line-height: 1.8461538462;
    margin: calc(8.5333333333 * var(--vw)) auto 0;
  }
}
.sec-lounge .txt a,
.sec-seat .txt a {
  color: #B79100;
  text-decoration: underline;
}
@media print, screen and (min-width: 769px) {
  .sec-lounge .txt a:hover,
.sec-seat .txt a:hover {
    text-decoration: none;
  }
}
@media screen and (max-width: 768px) {
  .sec-lounge .txt a.is-hover,
.sec-seat .txt a.is-hover {
    text-decoration: none;
  }
}
.sec-lounge .btn,
.sec-seat .btn {
  margin: 34px 0 0 680px;
}
@media screen and (max-width: 768px) {
  .sec-lounge .btn,
.sec-seat .btn {
    margin: calc(7.4666666667 * var(--vw)) 0 0;
  }
}
.sec-lounge .btn + .btn,
.sec-seat .btn + .btn {
  margin-top: 20px;
}
@media screen and (max-width: 768px) {
  .sec-lounge .btn + .btn,
.sec-seat .btn + .btn {
    margin-top: calc(5.3333333333 * var(--vw));
  }
}

/* ---------------------------------------------------------
.sec-lounge
----------------------------------------------------------*/
.sec-service {
  margin-top: 210px;
}
@media screen and (max-width: 768px) {
  .sec-service {
    margin-top: calc(16 * var(--vw));
  }
}

/* ---------------------------------------------------------
.sec-refresh
----------------------------------------------------------*/
.sec-refresh {
  margin-top: 153px;
}
@media screen and (max-width: 768px) {
  .sec-refresh {
    margin-top: calc(16 * var(--vw));
  }
}
.sec-refresh h3 {
  max-width: 600px;
  line-height: 1.5;
  padding-left: 1.6em;
  text-indent: -1.6em;
}
.is-big .sec-refresh h3 {
  text-indent: -1.65em;
  padding-left: 1.65em;
  line-height: 1.25;
}
@media screen and (max-width: 768px) {
  .sec-refresh h3 {
    font-size: 2.3rem;
    line-height: 1.5652173913;
    text-indent: -1.6em;
    padding-left: 1.6em;
    margin-left: calc(4.5333333333 * var(--vw));
    margin-top: calc(7.4666666667 * var(--vw));
  }
}
@media screen and (max-width: 768px) {
  .sec-refresh .txt {
    margin-top: calc(6.9333333333 * var(--vw));
  }
}
.sec-refresh .btn {
  margin-top: 32px;
}
@media screen and (max-width: 768px) {
  .sec-refresh .btn {
    margin: calc(7.4666666667 * var(--vw)) 0 0;
  }
}

/* ---------------------------------------------------------
.caution-area
----------------------------------------------------------*/
.caution-area {
  width: 1240px;
  padding: 22px 30px;
  margin: 136px auto 0;
  border: 1px solid #ccc;
  border-radius: 3px;
}
@media screen and (max-width: 768px) {
  .caution-area {
    width: calc(93.3333333333 * var(--vw));
    padding: calc(4.8 * var(--vw)) calc(5.0666666667 * var(--vw));
    margin: calc(16 * var(--vw)) auto 0;
    border-radius: calc(0.8 * var(--vw));
  }
}
.caution-area li {
  font-size: 1.2rem;
  color: #464646;
  letter-spacing: 0.08em;
  line-height: 2.5;
  text-indent: -1em;
  padding-left: 1em;
}
@media screen and (max-width: 768px) {
  .caution-area li {
    font-size: 1.2rem;
    line-height: 1.8333333333;
  }
}
.caution-area a {
  color: #B79100;
  text-decoration: underline;
}
@media print, screen and (min-width: 769px) {
  .caution-area a:hover {
    text-decoration: none;
  }
}
@media screen and (max-width: 768px) {
  .caution-area a.is-hover {
    text-decoration: none;
  }
}

/* ---------------------------------------------------------
.smart-area
----------------------------------------------------------*/
.smart-area {
  position: relative;
  padding: 100px 0 118px;
  margin: 60px 0 0;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .smart-area {
    padding: calc(21.3333333333 * var(--vw)) calc(3.2 * var(--vw)) calc(14.9333333333 * var(--vw));
    margin: calc(16 * var(--vw)) 0 0;
  }
}
.smart-area::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: calc(100% - 100px);
  background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f2f3ec));
  background: linear-gradient(#fff 0%, #f2f3ec 100%);
}
@media screen and (max-width: 768px) {
  .smart-area::before {
    height: calc(100% - 9.6 * var(--vw));
  }
}
.smart-area::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 4500px;
  height: 100px;
  background: url(../img/common/wave.svg) no-repeat center;
  background-size: 4500px auto;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  z-index: 1;
}
@media screen and (max-width: 768px) {
  .smart-area::after {
    width: calc(432 * var(--vw));
    height: calc(9.6 * var(--vw));
    background-size: calc(432 * var(--vw)) auto;
  }
}
.smart-area h3 {
  position: relative;
  width: 420px;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .smart-area h3 {
    width: calc(84 * var(--vw));
  }
}
.smart-area p {
  position: relative;
  font-size: 1.6rem;
  text-align: center;
  letter-spacing: 0.08em;
  line-height: 2;
  margin-top: 46px;
}
@media screen and (max-width: 768px) {
  .smart-area p {
    font-size: 1.2rem;
    line-height: 2.1666666667;
    margin-top: calc(7.4666666667 * var(--vw));
  }
}
