@charset "utf-8";

/** ***************************************************************************
 * 定数
 * ************************************************************************* */

:root {

  /**
   * 文字色
   */
  --color-basic: 0, 0, 0;

  /**
   * レイアウト用
   */
  --innerWidth: calc(100vw - calc(100vw - 100cqw));
  --innerCenter: calc(50% - calc(var(--innerWidth) / 2));

}

/** ***************************************************************************
 * 表示アニメーション
 * ************************************************************************* */

.fadein {
  opacity: 0;
  transform: translateY(50px);
}

[data-delay="0.3"] {
  animation-delay: 0.3s !important;
}

[data-delay="0.6"] {
  animation-delay: 0.6s !important;
}

[data-delay="0.9"] {
  animation-delay: 0.9s !important;
}

[data-delay="1.2"] {
  animation-delay: 1.2s !important;
}

[data-delay="1.5"] {
  animation-delay: 1.5s !important;
}

.fadein.displayed {
  animation: fadein 0.8s ease-in-out forwards;
}

@keyframes fadein {
  0% {
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/** ***************************************************************************
 * ボタン
 * ************************************************************************* */

[class*="button-style"] {
  margin: 0;
  padding: 0;
  appearance: none;
  cursor: pointer;
  color: inherit;
  border: none;
  border-radius: 0;
  font: inherit;
  text-decoration: none !important;
  background: none;
  box-sizing: border-box;
  vertical-align: middle;
  display: inline-block;
}

[class*="button-style"]::-webkit-search-decoration {
  display: none;
}

[class*="button-style"]::focus {
  outline-offset: -2px;
}

/**
 * 1
 */

.button-style-1 {
  min-width: 220px;
  min-height: 2.5em;
  padding: 0.25em 1em 0.375em;
  line-height: 1.4 !important;
  font-weight: 400 !important;
  border: 1px solid #000;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition:
    color 0.3s ease-in-out 0.0s,
    background-color 0.3s ease-in-out 0.0s;
  color: #000 !important;
  background-color: #fff;
}

.button-style-1:hover {
  color: #fff !important;
  background-color: #000;
}

/**
 * 2
 */

.button-style-2 {
  min-width: 220px;
  min-height: 2.5em;
  padding: 0.25em 2em 0.375em;
  line-height: 1.4 !important;
  font-weight: 400 !important;
  border: 1px solid #000;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 0;
  transition:
    color 0.3s ease-in-out 0.0s,
    background-color 0.3s ease-in-out 0.0s;
  color: #000 !important;
  background-color: #fff;
}

.button-style-2:hover {
  color: #fff !important;
  background-color: #000;
}

.button-style-2::after {
  content: '';
  width: 1.125em;
  height: 0.5em;
  background: url("../_image/_common/icon-arrow-2.png") 0 0 / 100% 100% no-repeat;
  position: absolute;
  z-index: 1;
  top: calc(50% - 0.25em);
  right: 0.5em;
}

/** ***************************************************************************
 * モーダル
 * ************************************************************************* */

/**
 * 画像
 */

.modal-image {
  text-decoration: none;
  display: block;
  position: relative;
  transition: transform 0.3s ease-in-out 0.0s;
  transform: scale(1.0);
}

.modal-image:hover {
  transform: scale(1.05);
}

.modal-image::before {
  content: '';
  width: 50px;
  height: 50px;
  background: url("../_image/_common/icon-zoom-in.png") 0 0 / 100% 100% no-repeat;
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
}

.modal-image img {
  filter: none !important;
}

/**
 * ギャラリー
 */

.modal-gallery a {
  text-decoration: none;
  display: block;
  position: relative;
  transition: transform 0.3s ease-in-out 0.0s;
  transform: scale(1.0);
}

.modal-gallery a:hover {
  transform: scale(1.05);
}

.modal-gallery a::before {
  content: '';
  width: 50px;
  height: 50px;
  background: url("../_image/_common/icon-zoom-in.png") 0 0 / 100% 100% no-repeat;
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
}

.modal-gallery a img {
  filter: none !important;
}

/**
 * モーダル
 */

.mfp-bg {
  transition: opacity 0.3s ease-out;
  opacity: 0;
}

.mfp-ready.mfp-bg {
  opacity: 0.8;
}

.mfp-removing.mfp-bg {
  opacity: 0;
}

.mfp-wrap {
  -webkit-overflow-scrolling: touch;
}

.mfp-content {
  transition: all 0.2s ease-in-out; 
  transform: scale(0.8); 
  opacity: 0;
}

.mfp-ready .mfp-content {
  transform: scale(1); 
  opacity: 1;
}

.mfp-removing .mfp-content {
  transform: scale(0.8); 
  opacity: 0;
}

.mfp-content .mfp-figure {
  position: relative;
}

.mfp-content .mfp-figure::after {
  background: #fff;
  top: 0;
}

.mfp-content .mfp-figure figure {
  padding: 20px;
}

.mfp-content .mfp-img {
  max-width: 80vw !important;
  max-height: 80vh !important;
  padding-top: 0;
}

.mfp-wrap .mfp-arrow {
	width: 40px;
	height: 150px;
  margin: 0;
  padding: 0;
	opacity: 1;
  background: #000;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translateY(-50%);
  appearance: none;
  cursor: pointer;
  color: inherit;
  border: none;
  border-radius: 0;
  font: inherit;
  box-sizing: border-box;
  vertical-align: middle;
  touch-action: none;
}

.mfp-wrap .mfp-arrow::-webkit-search-decoration {
  display: none;
}

.mfp-wrap .mfp-arrow::focus {
  outline-offset: -2px;
}

.mfp-wrap .mfp-arrow:active {
  margin: 0;
}

.mfp-wrap .mfp-arrow::before {
  width: 14px;
  height: 20px;
  margin: 0;
  border: none;
  opacity: 1;
  background: url("../_image/_common/icon-arrow-1.png") 0 0 / 100% 100% no-repeat;
  filter: brightness(0) invert(1);
  position: static;
}

.mfp-wrap .mfp-arrow-left:before {
  transform: scaleX(-1);
}

.mfp-wrap .mfp-arrow::after {
  content: none;
}

.mfp-content .mfp-figure .mfp-close {
  width: 50px;
  height: 50px;
  padding: 0;
  background: url("../_image/_common/icon-zoom-out.png") 0 0 / 100% 100% no-repeat;
  position: absolute;
  top: 0;
  right: 0;
}

/** ***************************************************************************
 * 表示／非表示
 * ************************************************************************* */

@media screen and (max-width:767px) {

  [pc] {
    display: none !important;
  }

}

@media screen and (min-width:768px) {

  [sp] {
    display: none !important;
  }

}
