@charset "UTF-8";

/*=============================================
 * body
 *=============================================*/
body {
   background: url("../img/shared/body-bg.jpg") repeat center top;
   color: #000;
   font-family: 'Noto Serif JP', "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "メイリオ", Meiryo, "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
   font-weight: 400;
   font-style: normal;
   font-size: 14px;
   line-height: 28px;
   letter-spacing: 0.15em;
   min-width: inherit;
   min-height: inherit;
   max-height: 100%;
}

@media only screen and (min-width: 768px) {
   body {
      font-size: 15px;
      line-height: 36px;
   }
}

/*=============================================
 * fonts - DON'T EDIT
 *=============================================*/
.fnt-mincho {
   font-family: "游明朝", YuMincho, 'Noto Serif JP', "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "メイリオ", Meiryo, "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}

.fnt-meiryo {
   font-family: "メイリオ", Meiryo, "ヒラギノ角ゴシックPro", "ＭＳ ゴシック", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

.fnt-gothic {
   font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
}

.fnt-cormorant-garamond {
   font-family: 'Cormorant Garamond', serif;
   font-weight: 400;
}

/*=============================================
   main
*=============================================*/
main {
   clear: both;
   width: 100%;
   position: relative;
   box-sizing: border-box;
   overflow: hidden;
}

/* -- -- */
@media only screen and (max-width: 767px) {
   .wrap {
      width: 100%;
      box-sizing: border-box;
      padding: 0 4vw;
      position: relative;
   }

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

@media only screen and (min-width: 768px) {
   .wrap {
      width: calc(100% - 20px);
      max-width: 1000px;
      box-sizing: border-box;
      position: relative;
      margin: 0 auto;
      padding: 0;
   }

   img {
      width: auto;
      max-width: 100%;
      height: auto;
   }
}

.non-over a:hover {
   opacity: 1;
}

.non-over a:hover img {
   opacity: 1;
}

/*=============================================
   header
*=============================================*/
header {
   box-sizing: border-box;
   position: relative;
}

@media only screen and (max-width: 767px) {
   header {
      padding: 0;
   }

   header:before {
      content: '';
      width: 100%;
      height: 64vw;
      background: url("../img/shared/sp_header-deco.png") no-repeat center top/cover;
      position: absolute;
      top: 85%;
      left: 0;
   }

   header h1 {
      color: #777777;
      font-size: 10px;
      line-height: 20px;
      letter-spacing: 0.05em;
      text-align: center;
      padding: 5px 4vw;
   }

   header .logo {
      margin: 0 4vw;
      padding: 8vw 0;
   }

   header .logo a {
      display: block;
      width: 16vw;
      margin: 0 auto;
   }

   #menu-toggle {
      width: 100%;
      height: 100vh;
      background: rgba(255, 255, 255, 0.92);
      color: #000;
      box-sizing: border-box;
      overflow-y: auto;
      padding: 50px 0 150px;
      position: fixed;
      top: 0;
      left: 0;
      z-index: 100;
      transition: all 0.3s linear;
      opacity: 0;
      visibility: hidden;
   }

   #menu-toggle .close_btn {
      width: 8vw;
      margin-left: auto;
      margin-right: 4vw;
   }

   #menu-toggle .nav {
      border-top: 1px solid #000;
      border-bottom: 1px solid #000;
      padding: 8vw 16vw;
   }

   #menu-toggle .nav a {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      font-weight: 400;
      font-size: 15px;
      letter-spacing: 0.16em;
      line-height: 45px;
      position: relative;
   }

   #menu-toggle .nav .txt-latin {
      font-size: 10px;
      letter-spacing: 0.15em;
      color: #974242;
   }

   #menu-toggle .tel {
      font-size: 12px;
      line-height: 24px;
      letter-spacing: 0.05em;
      padding: 4vw 16vw;
   }

   #menu-toggle .tel span {
      display: block;
      font-size: 4.8vw;
      line-height: 1.2;
      letter-spacing: 0.12em;
   }

   #menu-toggle .nav-sub {
      font-weight: 400;
      font-size: 12px;
      line-height: 35px;
      letter-spacing: 0.16em;
      padding: 8vw 16vw 0;
   }

   #menu-toggle .nav-sub li {
      display: flex;
      align-items: center;
      gap: 15px;
   }

   #menu-toggle .nav-sub li:before {
      content: '';
      width: 10px;
      height: 0;
      border-top: 1px solid #000;
   }

   #menu-toggle .nav-sub .sns a {
      width: 23px;
   }

   .navOpen {
      overflow: hidden;
   }

   .navOpen #menu-toggle {
      opacity: 1;
      visibility: visible;
   }

   .navOpen #fixed-sp,
   .navOpen .pagetop {
      display: none;
   }
}

@media only screen and (min-width: 768px) {
   header:before {
      content: '';
      width: 100%;
      height: 100%;
      background: url("../img/shared/header-deco.png") no-repeat center top;
      position: absolute;
      top: calc(100% - 140px);
      left: 0;
   }

   header h1 {
      width: 32px;
      height: 800px;
      color: #8b8b8b;
      font-size: 12px;
      letter-spacing: 0.1em;
      line-height: 32px;
      text-align: center;
      position: absolute;
      top: 92px;
      left: 7px;
      z-index: 1;
   }

   header .logo {
      text-align: center;
      padding-top: 76px;
   }

   header .logo a {
      display: inline-block;
      position: relative;
      z-index: 1;
   }

   #menu-toggle .nav {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      gap: 0 47px;
      text-align: center;
      color: #000;
      padding: 26px 0 16px;
   }

   #menu-toggle .nav a {
      display: block;
   }

   #menu-toggle .nav a.active,
   #menu-toggle .nav a:hover {
      opacity: 0.45;
   }

   #menu-toggle .nav span {
      display: block;
      font-weight: 400;
      font-size: 17px;
      line-height: 25px;
      letter-spacing: 0.16em;
   }

   #menu-toggle .nav .txt-latin {
      color: #974242;
      font-size: 11px;
      letter-spacing: 0.15em;
   }

   #menu-toggle .tel {
      width: 60px;
      height: 200px;
      font-size: 15px;
      line-height: 30px;
      letter-spacing: 0.015em;
      position: absolute;
      bottom: 0;
      left: calc(50% + 80px);
   }

   #menu-toggle .tel span {
      font-size: 20px;
      letter-spacing: 0.12em;
   }

   #menu-toggle .nav-sub {
      display: flex;
      flex-wrap: wrap;
      flex-direction: row-reverse;
      align-items: flex-start;
      position: absolute;
      bottom: 0;
      left: calc(50% - 208px);
      font-size: 16px;
      line-height: 50px;
      letter-spacing: 0.16em;
   }

   #menu-toggle .nav-sub a {
      cursor: pointer;
   }

   #menu-toggle .nav-sub a:hover {
      opacity: 0.7;
   }

   #menu-toggle .nav-sub .txt-latin {
      cursor: pointer;
   }

   #menu-toggle .nav-sub li {
      width: 50px;
      height: 200px;
   }

   #menu-toggle .nav-sub li:before {
      content: '';
      display: block;
      width: 0;
      height: 17px;
      border-left: 1px solid #615e58;
      margin: 0 auto 8px;
   }

   #menu-toggle .nav-sub .sns a {
      display: block;
      width: 30px;
      height: 30px;
      margin: -14px auto 0;
   }

   #menu-toggle .nav-sub .sns a+a {
      margin-top: 14px;
   }

   .nav-fixed {
      background-color: rgba(255, 255, 255, 0.92);
      width: 100%;
      position: fixed;
      top: 0;
      left: 0;
      opacity: 0;
      visibility: hidden;
      transition: all 0.3s;
      z-index: 9;
      padding: 14px 0;
      box-sizing: border-box;
   }

   .nav-fixed.fixed {
      opacity: 1;
      visibility: visible;
   }

   .nav-fixed .wrap {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      align-items: center;
      gap: 0 40px;
   }

   .nav-fixed .tel {
      font-size: 15px;
      line-height: 30px;
      letter-spacing: 0.015em;
   }

   .nav-fixed .tel span {
      font-size: 15px;
      letter-spacing: 0.12em;
   }

   .nav-fixed .nav {
      font-size: 16px;
      line-height: 15px;
      letter-spacing: 0.15em;
      color: #974242;
   }

   .nav-fixed .nav li {
      display: inline-block;
      vertical-align: middle;
   }

   .nav-fixed .nav li+li:before {
      content: '/';
      display: inline-block;
      margin: 0 20px;
   }

   .nav-fixed .nav a.active,
   .nav-fixed .nav a:hover {
      text-decoration: underline;
   }
}

@media only screen and (min-width: 1100px) {
   .nav-fixed .nav li+li:before {
      margin: 0 25px;
   }
}

/* -- -- */
/*=============================================
   section
*=============================================*/
/* -- -- */
#key {
   border-left: 1px solid #000;
   box-sizing: border-box;
   position: relative;
}

@media only screen and (max-width: 767px) {
   #key {
      height: 110vw;
      margin: 0 4vw;
   }
}

@media only screen and (min-width: 768px) {
   #key {
      height: 750px;
      margin: 0 50px;
   }
}

/* -- -- */
section {
   position: relative;
}

/* -- -- */
/*=============================================
   footer
*=============================================*/
/* -- -- */
footer {
   background-color: #222;
   color: #fff;
   box-sizing: border-box;
   position: relative;
}

@media only screen and (max-width: 767px) {
   footer {
      text-align: center;
      padding: 16vw 0 calc(12.4vw + 43px);
   }

   footer nav {
      display: none;
   }

   footer .logo {
      width: 12vw;
      margin: 0 auto;
   }

   #socialbuttons {
      justify-content: center;
      padding-bottom: 20px;
   }

   footer .copyright {
      text-align: center;
      font-size: 12px;
      line-height: 20px;
      letter-spacing: 0.1em;
      padding-top: 30px;
   }

   footer .cookies-link a {
      color: #999;
      border-bottom: 1px solid;
   }
}

@media only screen and (min-width: 768px) {
   footer {
      padding: 100px 80px;
   }

   footer .wrap {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      width: 100%;
      max-width: 100%;
   }

   footer .col {
      display: flex;
      flex-wrap: wrap;
      gap: 0 50px;
   }

   footer nav {
      display: flex;
      flex-wrap: wrap;
      line-height: 16px;
   }

   footer nav .item {
      width: 134px;
      border-left: 1px solid rgba(255, 255, 255, 0.11);
      padding: 0 0 35px 30px;
   }

   footer nav a {
      display: block;
      padding-bottom: 20px;
   }

   footer nav a:hover {
      opacity: 0.7;
   }

   footer nav .sns {
      display: flex;
      flex-wrap: wrap;
      gap: 0 14px;
      padding-top: 20px;
   }

   footer nav .sns a {
      padding-bottom: 0;
   }

   footer .copyright {
      font-size: 12px;
      line-height: 24px;
      letter-spacing: 0.15em;
      text-align: right;
   }

   footer .cookies-link a {
      display: inline-block;
      border-bottom: 1px solid;
      color: #999;
   }

   footer .cookies-link a:hover {
      border-color: transparent;
   }

   #socialbuttons {
      padding-bottom: 24px;
   }
}

/*=============================================
   css for ie 11 
*=============================================*/
#fixed-sp {
   width: 100%;
   background-color: #fff;
   color: #000;
   box-sizing: border-box;
   position: fixed;
   bottom: 0;
   left: 0;
   z-index: 99;
   opacity: 1;
   visibility: visible;
}

#fixed-sp.visible {
   opacity: 1;
   visibility: visible;
}

@media only screen and (max-width: 767px) {
   #fixed-sp ul {
      display: flex;
      flex-wrap: wrap;
      text-align: center;
      padding: 0;
   }

   #fixed-sp ul li {
      width: 33.33%;
      box-sizing: border-box;
   }

   #fixed-sp ul li img {
      width: auto;
      height: 43px;
   }

   .pagetop {
      width: 40px;
      right: 3.33vw;
      bottom: 52px;
   }
}

@media only screen and (min-width: 768px) {
   .pagetop {
      width: 70px;
      position: fixed;
      bottom: 20px;
      right: 20px;
      z-index: 9;
      opacity: 0;
      visibility: hidden;
      transition: all 0.3s;
   }

   .pagetop.visible {
      opacity: 1;
      visibility: visible;
   }
}

/* iPhone X */
@media only screen and (max-width: 767px) and (min-device-width: 375px) and (min-device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait) {
   footer {
      padding-bottom: calc(env(safe-area-inset-bottom) + calc(12.4vw + 43px));
   }

   #fixed-sp {
      padding-bottom: calc(env(safe-area-inset-bottom) - 0px);
   }

   .pagetop {
      bottom: calc(env(safe-area-inset-bottom) + 52px);
   }
}

/* iPhone XR */
@media only screen and (max-width: 767px) and (min-device-width: 414px) and (min-device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait) {
   footer {
      padding-bottom: calc(env(safe-area-inset-bottom) + calc(12.4vw + 43px));
   }

   #fixed-sp {
      padding-bottom: calc(env(safe-area-inset-bottom) - 0px);
   }

   .pagetop {
      bottom: calc(env(safe-area-inset-bottom) + 52px);
   }
}

/* iPhone 11 */
@media only screen and (max-width: 767px) and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) {
   footer {
      padding-bottom: calc(env(safe-area-inset-bottom) + calc(12.4vw + 43px));
   }

   #fixed-sp {
      padding-bottom: calc(env(safe-area-inset-bottom) - 0px);
   }

   .pagetop {
      bottom: calc(env(safe-area-inset-bottom) + 52px);
   }
}

@media only screen and (max-width: 767px) and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) {
   footer {
      padding-bottom: calc(env(safe-area-inset-bottom) + calc(12.4vw + 43px));
   }

   #fixed-sp {
      padding-bottom: calc(env(safe-area-inset-bottom) - 0px);
   }

   .pagetop {
      bottom: calc(env(safe-area-inset-bottom) + 52px);
   }
}

@media only screen and (max-width: 767px) and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) {
   footer {
      padding-bottom: calc(env(safe-area-inset-bottom) + calc(12.4vw + 43px));
   }

   #fixed-sp {
      padding-bottom: calc(env(safe-area-inset-bottom) - 0px);
   }

   .pagetop {
      bottom: calc(env(safe-area-inset-bottom) + 52px);
   }
}

/* --- --- */
/*=============================================
   Custom
*=============================================*/
/* -- --*/
@media only screen and (max-width: 767px) {
   .h-24 {
      font-weight: 400;
      font-size: 4.8vw;
      line-height: 2;
      letter-spacing: 0.2em;
   }

   .h-30 {
      font-weight: 400;
      font-size: 4.8vw;
      line-height: 2;
      letter-spacing: 0.2em;
   }

   .h-36 {
      font-weight: 400;
      font-size: 5.6vw;
      line-height: 2;
      letter-spacing: 0.25em;
   }

   .price {
      font-weight: 300;
      font-size: 4.8vw;
      line-height: 1.5;
      letter-spacing: 0.1em;
   }

   .price small {
      font-size: 4vw;
   }
}

@media only screen and (min-width: 768px) {
   .h-24 {
      font-weight: 400;
      font-size: 24px;
      line-height: 50px;
      letter-spacing: 0.2em;
   }

   .h-30 {
      font-weight: 400;
      font-size: 30px;
      line-height: 50px;
      letter-spacing: 0.15em;
   }

   .h-36 {
      font-weight: 400;
      font-size: 36px;
      line-height: 45px;
      letter-spacing: 0.25em;
   }

   .price {
      font-weight: 300;
      font-size: 20px;
      letter-spacing: 0.1em;
      line-height: 32px;
   }

   .price small {
      font-size: 16px;
   }
}

/* -- --*/
.pc {
   display: none;
}

.sp {
   display: block;
}

@media only screen and (min-width: 768px) {
   .pc {
      display: block;
   }

   .sp {
      display: none;
   }
}

/* -- --*/
.bg-parallax {
   min-height: inherit;
   position: relative;
}

.img_parallax {
   display: none;
}

@media only screen and (max-width: 1400px) {
   .bg-parallax {
      background: transparent !important;
      position: relative;
   }

   .img_parallax {
      display: block;
      clip: rect(0, auto, auto, 0);
      margin-bottom: 0;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      z-index: -1;
   }

   .img_parallax img {
      width: 100%;
      height: 100vh !important;
      position: fixed;
      top: 0;
      left: 0;
      padding: 0;
      margin: 0;
      object-fit: cover;
      z-index: 99;
   }
}

/* -- -- */
.shadow-img {
   box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.15);
}

.cl-red {
   color: #c21322;
}

.cl-purple {
   color: #655ba5;
}

.cl-brown {
   color: #656161;
}

.txt-c {
   text-align: center;
}

.txt-r {
   text-align: right;
}

a {
   transition: all 0.3s;
}

a img {
   transition: all 0.3s;
}

a:hover {
   text-decoration: none;
}

@media only screen and (min-width: 768px) {
   a:hover img {
      opacity: 0.7;
   }
}

/* -- -- */
#socialbuttons {
   display: flex;
   justify-content: center;
   margin: 0 auto;
}

.social-facebook {
   width: 95px;
   overflow: hidden;
   display: flex !important;
   justify-content: center;
}

/* -- slick -- */
.slick-arrow:hover {
   opacity: 0.8;
}

.slick-dots {
   display: -webkit-flex;
   display: -moz-flex;
   display: -ms-flex;
   display: -o-flex;
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
   align-items: center;
   gap: 15px;
}

.slick-dots li {
   display: block;
   line-height: 1;
   font-size: 0;
   width: 16px;
   height: 16px;
   -webkit-box-sizing: border-box;
   -moz-box-sizing: border-box;
   box-sizing: border-box;
   cursor: pointer;
   position: relative;
}

.slick-dots button {
   font-size: 0;
   border: 0;
   background-color: rgba(255, 255, 255, 0.3);
   display: block;
   width: 100%;
   height: 100%;
   -webkit-appearance: none;
   -webkit-box-sizing: border-box;
   -moz-box-sizing: border-box;
   box-sizing: border-box;
   cursor: pointer;
   border-radius: 50%;
}

.slick-dots .slick-active button {
   background-color: #fff;
}

.slick-dots li:hover button {
   opacity: 0.7;
}

@media only screen and (max-width: 767px) {
   .slick-dots {
      gap: 4vw;
   }
}

/* -- -- */
.button {
   position: relative;
}

@media only screen and (max-width: 767px) {
   .button {
      text-align: center;
   }

   .button a {
      display: inline-block;
      vertical-align: middle;
      width: 80vw;
      background-color: #fff;
      color: #000;
      font-family: 'Noto Serif JP', "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "メイリオ", Meiryo, "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
      font-weight: 400;
      font-size: 15px;
      line-height: 30px;
      letter-spacing: 0.15em;
      text-align: center;
      box-sizing: border-box;
      padding: 10px 0;
      position: relative;
      z-index: 1;
      overflow: hidden;
   }

   .button a:before {
      content: '';
      border: 1px solid #dddddd;
      position: absolute;
      top: 3px;
      right: 3px;
      bottom: 3px;
      left: 3px;
   }

   .button a:after {
      content: '';
      width: 11px;
      height: 8px;
      background: url("../img/shared/arrow-right.png") no-repeat center top/cover;
      position: absolute;
      top: 50%;
      right: 30px;
      transform: translateY(-50%);
   }
}

@media only screen and (min-width: 768px) {
   .button a {
      display: inline-block;
      vertical-align: middle;
      width: 400px;
      background-color: #fff;
      color: #000;
      font-family: 'Noto Serif JP', "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "メイリオ", Meiryo, "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
      font-weight: 400;
      font-size: 18px;
      line-height: 30px;
      letter-spacing: 0.15em;
      text-align: center;
      box-sizing: border-box;
      padding: 23px 0;
      position: relative;
      z-index: 1;
      overflow: hidden;
   }

   .button a:before {
      content: '';
      border: 1px solid #dddddd;
      position: absolute;
      top: 5px;
      right: 5px;
      bottom: 5px;
      left: 5px;
   }

   .button a:after {
      content: '';
      width: 11px;
      height: 8px;
      background: url("../img/shared/arrow-right.png") no-repeat center top/cover;
      position: absolute;
      top: 50%;
      right: 42px;
      transform: translateY(-50%);
      transition: all 0.3s;
   }

   .button a:hover {
      opacity: 0.7;
   }

   .button a:hover:after {
      right: 35px;
   }
}

/* -- -- */
.remodal {
   background-color: #eae9e6;
   color: #000;
}

button.remodal-close {
   display: block;
}

button.remodal-cancel {
   display: block;
}

/* -- -- */
.list-menu dl {
   display: flex;
   flex-wrap: wrap;
   gap: 0;
   text-align: left;
   line-height: 24px;
   letter-spacing: 0.1em;
}

.list-menu dl dt {
   flex: auto;
}

.list-menu dl dd {
   text-align: right;
}

@media only screen and (max-width: 767px) {
   .list-menu .menu-ttl {
      font-size: 4.8vw;
      line-height: 2;
      letter-spacing: 0.15em;
   }

   .list-menu .menu-sub-ttl {
      text-align: center;
      line-height: 20px;
      letter-spacing: 0.05em;
      border: 1px solid #ccc;
      padding: 9px 0;
   }

   .list-menu .col+.col {
      padding-top: 8vw;
   }

   .list-menu .item+.item {
      padding-top: 8vw;
   }

   .list-menu dl {
      padding-top: 10px;
   }

   .list-menu dl+dl {
      padding-top: 20px;
   }
}

@media only screen and (min-width: 768px) {
   .list-menu .menu-ttl {
      font-size: 20px;
      line-height: 30px;
      letter-spacing: 0.15em;
   }

   .list-menu .menu-sub-ttl {
      text-align: center;
      line-height: 20px;
      letter-spacing: 0.05em;
      border: 1px solid #ccc;
      padding: 14px 0;
   }

   .list-menu .box {
      display: flex;
      flex-wrap: wrap;
      gap: 20px 5%;
   }

   .list-menu .col {
      width: 30%;
   }

   .list-menu .item+.item {
      padding-top: 23px;
   }

   .list-menu dl {
      padding-top: 25px;
   }

   .list-menu dl+dl {
      padding-top: 23px;
   }
}

/* -- -- */
.d-flex {
   display: flex;
   flex-wrap: wrap;
}

/* -- -- */
.bg01 {
   background: url("../img/shared/bg-pattern01.jpg") repeat center top;
   color: #fff;
}

/* -- -- */
@keyframes fadeUpAnime {
   from {
      opacity: 0;
      transform: translateY(100px);
   }

   to {
      opacity: 1;
      transform: translateY(0);
   }
}

.fadeUp {
   -webkit-animation-name: fadeUpAnime;
   animation-name: fadeUpAnime;
}

.animated {
   -webkit-animation-duration: 1s;
   -webkit-animation-fill-mode: both;
   animation-duration: 1s;
   animation-fill-mode: both;
}

.animated.infinite {
   -webkit-animation-iteration-count: infinite;
   animation-iteration-count: infinite;
}

/* --- --- */
#shopinfo {
   overflow: hidden;
   position: relative;
}

@media only screen and (max-width: 767px) {
   #shopinfo {
      padding: 0 0 14vw;
   }

   #shopinfo .block .col-l {
      background: url("../img/index/shopinfo-photo1.jpg") no-repeat center/cover;
      height: 98.667vw;
      position: relative;
   }

   #shopinfo .block .col-l .txt {
      color: #fff;
      position: absolute;
      bottom: 4vw;
      left: 3.33vw;
   }

   #shopinfo .block .col-l .txt br {
      display: block;
   }

   #shopinfo .block .col-r {
      padding-top: 12vw;
   }

   #shopinfo .block h2 {
      width: 40vw;
      margin-left: auto;
   }

   #shopinfo .block .logo {
      width: 35vw;
      margin: 0 auto;
      text-align: center;
      color: #656161;
   }

   #shopinfo .block .logo span {
      display: block;
      font-size: 10px;
      line-height: 20px;
      padding-top: 4vw;
   }

   #shopinfo .block .tel {
      font-size: 3.2vw;
      line-height: 1.5;
      text-align: center;
      padding-top: 6.66vw;
   }

   #shopinfo .block .tel small {
      display: none;
   }

   #shopinfo .block .tel span {
      display: inline-block;
      background: url("../img/shared/icon-tel1.png") no-repeat center left/auto 90%;
      font-size: 8vw;
      line-height: 1;
      letter-spacing: 0.01em;
      padding-left: 10vw;
   }

   #shopinfo .block .button {
      padding-top: 6vw;
   }

   #shopinfo .block .button a {
      background: url("../img/shared/icon-email2.png") no-repeat center left 6.5vw/auto 4vw;
      padding-top: 5.8vw;
   }

   #shopinfo .block .button a:after {
      display: none;
   }

   #shopinfo .block .photo {
      width: 60%;
      margin: 0 auto;
      padding-top: 8vw;
   }

   #shopinfo .info {
      padding-top: 16vw;
   }

   #shopinfo .info dl {
      display: flex;
      flex-wrap: wrap;
      color: #656161;
      letter-spacing: 0.1em;
      padding-bottom: 25px;
   }

   #shopinfo .info dl dt {
      width: 90px;
   }

   #shopinfo .info dl dd {
      width: calc(100% - 90px);
   }

   #shopinfo .box-cancel {
      text-align: center;
      border: 1px solid;
      padding: 8vw 0;
   }

   #shopinfo .box-cancel h3 {
      font-size: 5.33vw;
      line-height: 1.5;
      letter-spacing: 0.22em;
   }

   #shopinfo .box-cancel p {
      color: #656161;
      padding-top: 6vw;
   }
}

@media only screen and (min-width: 768px) {
   #shopinfo {
      padding-bottom: 122px;
   }

   #shopinfo .block {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-start;
      max-width: 1500px;
      margin: 0 auto;
   }

   #shopinfo .block>div {
      width: 50%;
   }

   #shopinfo .block h2 {
      position: absolute;
      top: 0;
      right: 0;
   }

   #shopinfo .block .col-l {
      background: url("../img/index/shopinfo-photo1.jpg") no-repeat center/cover;
      padding-top: 49.4%;
      position: relative;
   }

   #shopinfo .block .col-l .txt {
      color: #fff;
      font-size: 17px;
      line-height: 28px;
      letter-spacing: 0.1em;
      position: absolute;
      bottom: 20px;
      left: 25px;
   }

   #shopinfo .block .col-r {
      text-align: center;
      padding: 86px 0 0;
   }

   #shopinfo .block .logo span {
      display: block;
      letter-spacing: 0.1em;
      line-height: 25px;
      color: #656161;
      padding-top: 25px;
   }

   #shopinfo .block .tel {
      font-size: 14px;
      line-height: 30px;
      letter-spacing: 0.04em;
      padding-top: 10px;
   }

   #shopinfo .block .tel span {
      display: inline-block;
      vertical-align: sub;
      font-size: 26px;
      line-height: 30px;
      letter-spacing: 0.04em;
      background: url("../img/shared/icon-tel1.png") no-repeat top 10px left 8px/21px auto;
      padding: 4px 0 0 32px;
   }

   #shopinfo .block .tel small {
      font-size: 13px;
      letter-spacing: 0;
      color: #656161;
   }

   #shopinfo .block .button {
      padding-top: 10px;
   }

   #shopinfo .block .button a {
      width: 346px;
   }

   #shopinfo .block .photo {
      padding-top: 13px;
   }

   #shopinfo .info {
      display: flex;
      flex-wrap: wrap;
      margin-top: -38px;
   }

   #shopinfo .info .col {
      width: 480px;
   }

   #shopinfo .info .col+.col {
      padding-top: 113px;
   }

   #shopinfo .info dl {
      display: flex;
      flex-wrap: wrap;
      color: #656161;
      line-height: 25px;
      letter-spacing: 0.1em;
      padding-bottom: 25px;
   }

   #shopinfo .info dl dt {
      width: 110px;
   }

   #shopinfo .info dl dd {
      width: calc(100% - 110px);
   }

   #shopinfo .box-cancel {
      width: 508px;
      border: 1px solid #000;
      text-align: center;
      margin-top: 10px;
      padding: 30px 0 37px;
   }

   #shopinfo .box-cancel h3 {
      font-size: 25px;
      letter-spacing: 0.16em;
      line-height: 35px;
   }

   #shopinfo .box-cancel p {
      padding-top: 18px;
      line-height: 25px;
   }
}

@media only screen and (min-width: 1101px) {
   #shopinfo .info .col {
      width: 490px;
   }
}