/* 
 * common.css
 * コンポーネント以外で使用する共通スタイル
 */
body,
html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Noto Sans JP', sans-serif, 'Hiragino Kaku Gothic Pro', Meiryo;
}
body#lp {
  background-color: #fff;
}

.main-container {
  width: 100%;
  max-width: 500px;
  margin: 0 auto;
}

.l-container {
  width: 85%;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

:root {
  --z-index-modal: 850;
  --z-index-modal-mask: 560;
  --z-index-barcode-link: 550;
  --z-index-stamp-apply: 10;
  --z-index-hamburger: 500;
  --z-index-nav-menu: 400;
  --z-index-logout-modal: 850;
  --gap-x: 20px;
  --gap-y: 20px;
  --stampCard-gap-x: 10px;
  --stampCard-gap-y: 10px;
}
/* 
 * フォント指定用クラス
 * ex)
 * <p class="ff-NotoSansJP">...</p>
 *
 * .ff-NotoSansJP {
 *   font-family: 'Noto Sans JP', sans-serif, 'Hiragino Kaku Gothic Pro', 'Meiryo';
 * }
 */

/* wチャンス */
.c-wchance {
  background-color: #cbf1ff;
  padding-top: min(18.4vw, 92px);
  padding-bottom: min(6.25vw, 48px);
}
.c-wchance-lead {
  width: 51.4%;
  margin: 0 auto;
  position: relative;
}
/* さらに!の吹き出しをアニメーション */
.c-wchance-leadDeco {
  width: 37.7%;
  position: absolute;
  top: -131%;
  left: -21%;
  animation: wchanceDeco 4s linear infinite;
}
@keyframes wchanceDeco {
  0%,
  100% {
    transform: rotate(10deg);
  }
  50% {
    transform: rotate(-10deg);
  }
}

.c-wchanceText {
  padding-top: 5.17%;
}

.c-wchance-Img {
  padding-top: 1rem;
}

.c-wchance-banner {
  padding-top: 5.17%;
}

.c-slider {
  position: relative;
  padding-top: 4.41%;
  padding-right: 5.58%;
  padding-left: 5.58%;
}
.c-wchance-slider-item {
  position: relative;
}
.c-wchance-slider-item ul {
  position: absolute;
  top: 64%;
  left: 18%;
  list-style: none;
  width: 68%;
  display: flex;
  flex-direction: column;
  padding: 0;
  row-gap: 0.5rem;
}
.c-wchance-slider-item._step3 ul {
  position: absolute;
  top: 48%;
  left: 18%;
  list-style: none;
  width: 65%;
  row-gap: 0.5rem;
  display: flex;
  flex-direction: column;
}
.c-IG-copy {
  position: absolute;
  bottom: 5%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #004211;
  text-decoration: underline;
  font-size: min(2.6vw, 13px);
  font-weight: bold;
  width: 60%;
  text-align: center;
  cursor: pointer;
}

.c-slider .slick-dotted.slick-slider {
  position: relative;
}
.c-slider .slide-arrow {
  background-color: #ea5532;
  bottom: 0;
  height: 0;
  margin: auto;
  position: absolute;
  top: 0;
  width: 0;
  z-index: 10;
}
.c-slider .next-arrow {
  background-color: transparent;
  border-bottom: 15px solid transparent;
  border-left: 15px solid #ea5532;
  border-right: 0;
  border-top: 15px solid transparent;
  right: -4%;
}
.c-slider .prev-arrow {
  background-color: transparent;
  border-bottom: 15px solid transparent;
  border-left: 0;
  border-right: 15px solid #ea5532;
  border-top: 15px solid transparent;
  left: -3%;
}
button {
  all: unset;
  cursor: pointer;
  box-sizing: border-box;
}
button:disabled {
  cursor: default;
}
.c-slider .slick-dots li button:before {
  font-size: 16px;
  color: #fff;
  opacity: 1;
}
.c-slider .slick-dots li.slick-active button:before {
  color: #ea5532;
  opacity: 1;
}

/* スペシャルコンテンツ */
.c-special {
  background-color: #ed6c00;
  padding-top: clamp(45px, 21vw, 90px);
  padding-bottom: clamp(25px, 12vw, 50px);
}
.c-special-wrap {
  background-color: #fff;
  position: relative;
  border-radius: 10px;
  padding-top: min(18vw, 90px);
  padding-bottom: min(4vw, 20px);
}

.c-special-lead {
  width: 74.8%;
  margin: 0 auto;
  position: absolute;
  top: -6%;
  left: 12%;
}

.c-special-diagnosisBtn {
  margin-top: 0.8rem;
}

.c-special-moreSpecial {
  margin-top: 8.31%;
}

.c-special-complete {
  background-color: #fff799;
  position: relative;
  width: 95%;
  margin: 0 auto;
  margin-top: 8.31%;
}
.c-special-complete-lead {
  position: absolute;
  top: -4%;
  left: 5%;
  width: 90%;
}
.c-special-complete-detail {
  position: relative;
  width: 100%;
  margin-left: 2.5%;
  padding-top: 6%;
  padding-bottom: 6%;
}
.c-special-complete-detail .complete-btn {
  position: absolute;
  width: 60%;
  top: unset;
  bottom: 7%;
  left: 10%;
}

.c-special-decoItem {
  position: absolute;
}
.c-special-decoItem._stick1 {
  top: -1%;
  left: -6%;
  width: 18.3%;
}
.c-special-decoItem._stick2 {
  top: -2%;
  right: -4%;
  width: 14.1%;
}
.c-special-decoItem._stick3 {
  top: 25%;
  left: -4%;
  width: 12%;
}
.c-special-decoItem._stick4 {
  top: 24%;
  right: -2%;
  width: 9.8%;
}

/* モーダル */
.c-modal-wrap {
  position: fixed;
  z-index: var(--z-index-modal);
  width: 90%;
  max-width: 460px;
  display: none;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background-color: #fff;
  border-radius: 10px;
  overflow-y: scroll;
}

.c-modal-wrap._js-open {
  display: block;
}

.c-modal-contents {
  padding: clamp(16px, 6.6vw, 33px) 9.1%;
}
.c-modal-contents ul {
  padding-left: 0;
}
.c-modal-contents ul li {
  list-style: none;
  border-bottom: solid 1px #a1a1a1;
  padding-bottom: 10px;
  margin-top: 20px;
}
.c-modal-contents .apply-confirmText {
  font-size: min(3.4vw, 17px);
  text-align: center;
}
.c-modal-contents .c-modal-Lead {
  font-size: min(3.4vw, 17px);
  color: #004212;
  font-weight: bold;
}

.c-modal-btn._border {
  border: #004211 2px solid;
}

.c-modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 0 10px;
  display: none;
}
.c-modal-bg {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(34, 34, 34, 0.7);
}
.c-modal-title {
  background: #fff6db;
  color: #ec6c00;
  font-size: min(4.2vw, 21px);
  text-align: center;
  padding: clamp(9px, 3.4vw, 17px) 0;
}

.c-modal-btns {
  padding: 0 0 40px;
}
.c-modal-btn {
  margin: 5.6% auto 0;
}
.c-modal-btn:first-child {
  margin-top: 0;
}
.c-modal-note {
  font-size: min(2.6vw, 13px);
  text-align: center;
  display: block;
  line-height: 2;
}

.mask {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  z-index: var(--z-index-modal-mask);
}

.mask._js-open {
  display: block;
}

/* 称号モール */
.badge-modal {
  position: fixed;
  display: none;
  width: 80%;
  max-width: 400px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 999999;
}
.badge-modal img {
  width: 100%;
  height: 100%;
}
.badge-modalWrap {
  position: relative;
}
.badge-modal._js-open {
  display: block;
}
/* .close-btn {
  width: 12.5%;
  position: absolute;
  top: -3%;
  right: -3%;
  cursor: pointer;
} */

.badge-modalBadge {
  position: absolute;
  width: 45%;
  top: 15%;
  left: 50%;
  transform: translatex(-50%);
}
.badge-modalBadge::before {
  content: '';
  background-image: url(../images/badge_modal/modal-badge-deco1.png);
  display: block;
  width: 30%;
  height: 100%;
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  top: 5%;
  right: 5%;
  animation: blinking 1s ease-in-out infinite alternate;
}
.badge-modalBadge::after {
  content: '';
  background-image: url(../images/badge_modal/modal-badge-deco2.png);
  display: block;
  width: 35%;
  height: 100%;
  background-size: contain;
  background-repeat: no-repeat;
  position: absolute;
  top: 39%;
  left: 0;
  animation: blinking 1.2s ease-in-out infinite alternate;
}
.badge-modalBadge._big {
  width: 54%;
}
@keyframes blinking {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

.badgeclose-btn {
  width: 16.3%;
  position: absolute;
  top: -5%;
  right: -5%;
  cursor: pointer;
}

/* ローディング画面 */
.loading-initial {
  position: fixed;
  z-index: 99999999999;
  background-color: #fffbf4;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100vw;
  height: 100vh;
  font-size: 18px;
  font-weight: bold;
  color: #004211;
}
.loading-initial._js-active {
  display: none;
}
.loading-dynamic {
  position: fixed;
  z-index: 99999999999;
  background-color: #fffbf4;
  display: none;
  align-items: center;
  justify-content: center;
  width: 100vw;
  height: 100vh;
  font-size: 18px;
  font-weight: bold;
  color: #004211;
}
.loading-dynamic._js-active {
  display: flex;
}

/* ハンバーガーメニュー */
.c-nav {
  position: absolute;
  top: 0;
  right: -100%;
  background-color: #fff062;
  transition: right 0.3s ease;
  box-sizing: border-box;
  z-index: var(--z-index-nav-menu);
  width: min(75vw, 378px);
  height: 100svh;

  display: grid;
  place-items: center;
}
.c-nav ul {
  width: 90%;
  margin: 0 auto;
  padding: 0;
}

.c-nav li {
  list-style: none;
  margin-top: 15px;
}
.c-nav a {
  text-decoration: none;
  color: #fff;
}
/* .nav-title {
  position: relative;
  font-size: clamp(18px, 4.36vw, 23px);
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  margin-top: min(28vw, 15px);
  text-align: center;
  border-radius: 9999px;
  padding: 15px 30px;
} */

/* メニューが開いているとき */
.c-nav.open {
  right: 0;
}

.hamburger {
  display: none;
}

.body--lock {
  position: fixed;
  width: 100%;
  overflow: hidden;
}
.hamburger-menu-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  display: none;
  z-index: calc(var(--z-index-nav-menu) - 1);
}
.hamburger-menu-overlay.open {
  display: block;
}
@media screen and (max-width: 1440px) {
  .hamburger {
    display: block;
    position: absolute;
    top: 20px;
    right: 20px;
    width: 46px;
    height: 46px;
    cursor: pointer;
    z-index: var(--z-index-hamburger);
  }

  .hamburger span {
    position: absolute;
    left: 50%;
    width: 65%;
    height: 4px;
    background-color: #004212;
    border-radius: 5px;
    transform: translateX(-50%);
    transform-origin: center;
    transition:
      transform 0.3s ease,
      top 0.3s ease,
      opacity 0.2s ease;
  }

  .hamburger span:nth-child(1) {
    top: 10px;
  }
  .hamburger span:nth-child(2) {
    top: 22px;
  }
  .hamburger span:nth-child(3) {
    top: 34px;
  }

  .hamburger.open span:nth-child(1) {
    top: 50%;
    transform: translate(-50%, -50%) rotate(45deg);
  }

  .hamburger.open span:nth-child(2) {
    opacity: 0;
  }

  .hamburger.open span:nth-child(3) {
    top: 50%;
    transform: translate(-50%, -50%) rotate(-45deg);
  }
}
/* コンプリート賞品説明モーダル */
.completeModal-content {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 460px;
  width: 80%;
  z-index: 10000;
  display: none;
}
.completeModal-content._js-open {
  display: block;
}
.completeModal-img {
  max-height: 90vh;
  overflow-y: auto;
}
@media screen and (min-width: 455px) {
  .complete-img {
    width: 76%;
    margin: 0 auto;
  }
  .completeClose-btn {
    position: absolute;
    top: -3%;
    right: 8% !important;
    border: none;
    background-color: transparent;
    cursor: pointer;
    width: 10% !important;
  }
}

.close-btn._completeModal-close {
  position: absolute;
  top: -4%;
  right: -5%;
  z-index: 10001;
  background: none;
  border: none;
  cursor: pointer;
}
/* コンプリートバナー */
.prize-complete {
  position: relative;
}
.complete-btn {
  position: absolute;
  width: 58%;
  top: 63%;
  left: 5%;
  border: none;
  background-color: transparent;
  cursor: pointer;
}
.completeClose-btn {
  position: absolute;
  top: -3%;
  right: -3%;
  border: none;
  background-color: transparent;
  cursor: pointer;
  width: 12%;
}
#completeModal-content {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 460px;
  width: 80%;
  display: none;
  z-index: 10000;
}
.completeModal-img {
  max-height: 90vh;
  overflow-y: auto;
}
#completeModal-content._js-open {
  display: block;
}
/* モーダル内の画像を親要素に収める */
#completeModal-content img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* 画面内に要素が入ったらアニメーション */
._fadeIn {
  opacity: 0;
  transform: translateY(40px);
  transition:
    opacity 1s ease,
    transform 1s cubic-bezier(0.23, 1, 0.32, 1);
}
._fadeIn._animated {
  opacity: 1;
  transform: translateY(0);
}

/* ご購入はこちらから */
.c-purchase {
  background-color: #ddc3ff;
  margin: 0 auto;
  padding-top: min(7.4vw, 37px);
  padding-bottom: min(6.25vw, 48px);
}
.c-purchase-bland {
  display: block;
}
.c-purchase-bland-label {
  width: 80%;
  margin: 0 auto;
}
.c-purchase-bland-img {
  width: 51.4%;
  margin: 0.5rem auto 0;
}
