@charset "utf-8";
/* CSS Document */
@import url("https://fonts.googleapis.com/css?family=Roboto:300,500,700");
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&display=swap");

/* ===============================
   トークン（Figmaの塗りを取り込み、左右の余白と一体感用）
   ※書き出し画像の地色に合わせて微調整してください
=============================== */
:root {
  --content-max: 1440px;
  --design-ref: 375px;
  --bg-mv: #fff;
  --bg-gift: #fff;
  --bg-brown: #865b15;
  --bg-event: #f4efe6;
  --bg-blue: #09395f;
}

/* ===============================
   base
=============================== */
html {
  font-size: 62.5%;
}

body {
  font-family: "Roboto", "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック",
    "Yu Gothic", "メイリオ", sans-serif;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.8;
  font-feature-settings: "palt" 1;
  -webkit-text-size-adjust: 100%;
  letter-spacing: 0.1em;
  margin: 0;
  background-color: var(--bg-mv);
}

section {
  position: relative;
  text-align: center;
}

/* 375〜800pxで可変。800px超では最大800pxで中央寄せ、375px幅＝Figmaと同比率 */
.sct-wid {
  box-sizing: border-box;
  max-width: var(--content-max);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  overflow: visible;
}

/* 画像LP：トリミングせず全体表示（書き出し4倍をwidth100%で表示） */
.img-block {
  display: block;
  width: 100%;
  height: auto;
}

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

.container {
  min-width: 320px;
}

/* ボタンは画像＋影のみCSS */
.btn {
  display: block;
  box-sizing: border-box;
  margin-left: auto;
  margin-right: auto;
  overflow: hidden;
  line-height: 0;
}

.btn img {
  display: block;
  width: 100%;
  height: auto;
}

.c-shadow {
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
}

.c-shadow:active {
  box-shadow:
    0 2px 8px rgba(0, 0, 0, 0.16),
    0 1px 2px rgba(0, 0, 0, 0.1);
}

.c-shadow-2 {
  box-shadow: 0 3px 2px 0 rgba(0, 0, 0, 0.20);
}

/* ===============================
   セクション背景（800px超で左右に見える色＝画像地色）
=============================== */
.block {
  width: 100%;
}

.block--mv {
  background-color: var(--bg-mv);
}

.block--gift {
  background-color: var(--bg-gift);
}

.block--brown {
  background-color: var(--bg-brown);
}

.block--event {
  position: relative;
  z-index: 1;
  background-color: var(--bg-event);
}

.block--blue {
  background-color: var(--bg-blue);
}

.block--campaign {
  background-color: var(--bg-campaign);
}

.block--equipment {
  background-color: var(--bg-equipment);
}

.block--calendar {
  background-color: var(--bg-calendar);
}

/* ===============================
   MV（fv）
=============================== */
.cv-btn {
  position: fixed;
  /* #mv（最大幅 --content-max で中央寄せ）の右端基準に寄せる */
  right: max(16px, calc((100vw - var(--content-max)) / 2 + 16px));
  /* スクロール0の時は #mv の下端に揃える（JSが --cv-mv-bottom-gap を設定） */
  bottom: calc(var(--cv-mv-bottom-gap, 0px) + 50px);
  width: 200px;
  z-index: 10;
  border-radius: 999px;
  opacity: 1;
  visibility: visible;
  transition:
    opacity 0.35s ease,
    visibility 0.35s ease,
    top 0.25s ease,
    bottom 0.25s ease;
}


.cv-btn.is-cv-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}


@media screen and (max-width: 1440px) {
  .cv-btn {
    width: 14%;
  }
}

@media screen and (max-width: 768px) {
  .cv-btn {
    width: 30%;
    right: 12px;
    bottom: calc(var(--cv-mv-bottom-gap, 0px) + 40px);
  }
}



/* @media screen and (min-height: 800px) {
  .cv-btn {
    bottom: 26%;
  }

  .cv-btn.is-scrolled {
    bottom: 1%;
  }
} */


#mv {
  position: relative;
  width: 100%;
  overflow: hidden;
}

.mv-bg-img {
  height: auto;
  width: 100%;
  filter: blur(10px);
  position: absolute;
  left: 50%;
  top: -10%;
  transform: translate(-50%, 0);
  z-index: 0;
}

@media screen and (max-width: 1250px) {
  .mv-bg-img {
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
  }
}


.mv-img {
  width: auto;
  /* height: 1300px; */
  position: relative;
  z-index: 1;
}

.mv-img.-sp {
  display: none;
}

@media screen and (max-width: 768px) {
  .mv-img {
    display: none;
  }

  .mv-img.-sp {
    display: block;
  }
}

#mv .sct-wid {
  padding: 0;
}

/* ===============================
   ご来場特典
=============================== */
#gift .gift-box {
  position: relative;
  padding-top: 0;
}

#gift2 .gift-box {
  position: relative;
  padding-top: 0;
}


.gift-img {
  position: relative;
  z-index: 1;
  width: 81.25%;
  margin: 2% auto;
}

.gift-img.-sp {
  display: none;
}


.gift-img.-brown {
  display: block;
  width: 43%;
  margin: 4.7% auto;
}



.gift-img.-ab {
  width: 17.7%;
  position: absolute;
  top: 15%;
  right: 6%;
}

.gift-border {
  position: absolute;
  top: 0;
  width: 13.309%;
  z-index: 1;
}

.gift-border.-left {
  left: 0;
}

.gift-border.-right {
  right: 0;
}

.gift-btn {
  width: 69.333%;
  max-width: calc(260 / 375 * var(--content-max));
  margin-top: 5.33%;
  margin-bottom: 5%;
}

@media screen and (max-width: 768px) {
  .gift-img {
    display: none;
  }

  .gift-img.-sp {
    display: block;
    width: 98%;
    margin: 6% auto;
  }

  .gift-img.-brown {
    width: 80%;
    margin: 8% auto;
  }

  .gift-border {
    width: 24.309%;
  }

  .gift-border.-left {
    left: -20%;
  }

  .gift-border.-right {
    right: -20%;
  }
}

/* ===============================
   イベント
=============================== */

.event-title-img {
  width: 42%;
  margin: 0 auto;
  padding: 2% 0;
}

.event-box {
  width: 95%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px 2%;
  padding: 40px 0 60px;
}

.event-box-img-wrap {
  position: relative;
}

.event-ab {
  position: absolute;
  bottom: -4%;
  right: 0;
  width: 67%;
  z-index: 1;
}

.event-btn {
  position: absolute;
  bottom: 4%;
  left: 50%;
  transform: translate(-50%, 0);
  width: 40.5%;
  z-index: 1;
  border-radius: 10px;
}

.con-box {
  width: 95%;
  display: grid;
  grid-template-columns: 10% 43% 43%;
  gap: 2%;
  padding: 40px 0;
}

.con-title-img.-sp {
  display: none;
}

@media screen and (max-width: 767px) {
  .event-title-img {
    width: 68%;
    padding: 3% 0;
  }

  .event-box {
    width: 90%;
    grid-template-columns: 1fr;
    gap: 10vw;
    padding: 6vw 0 10vw;
  }

  .event-btn {
    border-radius: 1vw;
  }


  .con-box {
    width: 90%;
    grid-template-columns: 1fr;
    gap: 5vw;
    padding: 6vw 0;
  }

  .con-title-img.-pc {
    display: none;
  }

  .con-title-img.-sp {
    display: block;
  }
}









/* ===============================
   footer
=============================== */
.footer-box {
  width: 95%;
  margin: 0 auto;
}


.footer-note {
  width: 16%;
  margin-left: auto;
  padding-top: 1%;
}

.footer-title-img.-pc {
  display: block;
  width: 53.6%;
  margin: 0 auto;
  padding-bottom: 3%;
}

.footer-title-img.-sp {
  display: none;
}

.footer-address-box {
  display: grid;
  grid-template-columns: 43% 56%;
  gap: 1%;
  width: 53.6%;
  margin: 0 auto;
  padding-bottom: 2%;
}

.footer-address-img.-pc {
  display: block;
}

.footer-address-img.-sp {
  display: none;
}

@media screen and (max-width: 767px) {
  .footer-note {
    width: 30%;
  }

  .footer-title-img.-pc {
    display: none;
  }

  .footer-title-img.-sp {
    display: block;
    width: 92%;
    margin: 0 auto;
    padding-top: 3%;
  }

  .footer-address-box {
    width: 92%;
    grid-template-columns: 1fr;
    gap: 5vw;
    padding: 4% 0;
  }

  .footer-address-img.-pc {
    display: none;
  }

  .footer-address-img.-sp {
    display: block;
  }

  .footer-tel-link {
    width: 70%;
    margin: 0 auto;
  }

  .footer-tel-img {
    width: 100%;
  }

}

/* ===============================
   page top
=============================== */
.page-top {
  display: none;
  margin: 0;
  padding: 0;
}

.page-top p {
  margin: 0;
  padding: 0;
  position: fixed;
  right: 0;
  bottom: 0;
  z-index: 99;
}

.move-page-top {
  display: block;
  background: rgba(0, 0, 0, 0.7);
  width: 50px;
  height: 50px;
  cursor: pointer;
  color: #fff;
  line-height: 48px;
  font-size: 24px;
  text-decoration: none;
  text-align: center;
  -webkit-transition: all 0.3s;
  -moz-transition: all 0.3s;
  transition: all 0.3s;
}

.move-page-top:hover {
  background: rgba(0, 0, 0, 0.3);
}

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

  html,
  body {
    overflow-x: hidden;
  }

  .page-top p {
    right: 0px;
    bottom: 0px;
  }

  .move-page-top {
    width: 25px;
    height: 25px;
    line-height: 26px;
    font-size: 20px;
  }
}

/* 印刷用スタイル */
@media print {
  .printNl {
    page-break-before: always;
  }
}