@charset "UTF-8";
/*-------------------------------------------------------------------
リセット
/*-------------------------------------------------------------------*/
*, *:before, *:after {
  box-sizing: border-box;
}

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
  background: transparent;
  border: 0;
  margin: 0;
  outline: 0;
  padding: 0;
  vertical-align: baseline;
}

html {
  letter-spacing: 0.03em;
}

body {
  font-family: "Shippori Mincho", serif;
  /* safari hover対策 */
  -webkit-font-smoothing: antialiased;
  font-smoothing: antialiased;
  font-variant-numeric: tabular-nums;
  font-weight: 400;
  line-height: 1.6;
  width: 100%;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block;
}

ul, ol {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after, q:before, q:after {
  content: "";
  content: none;
}

a {
  color: inherit;
  margin: 0;
  padding: 0;
  text-decoration: none;
  vertical-align: baseline;
}

ins {
  background-color: #ffff99;
  color: #000000;
  text-decoration: none;
}

mark {
  background-color: #ffff99;
  color: #000000;
  font-style: italic;
  font-weight: bold;
}

del {
  text-decoration: line-through;
}

abbr[title], dfn[title] {
  border-bottom: 1px dotted;
  cursor: help;
}

li {
  list-style: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* change border colour to suit your needs */
hr {
  border: 0;
  border-top: 1px solid #cccccc;
  display: block;
  height: 1px;
  margin: 1em 0;
  padding: 0;
}

input, select {
  vertical-align: middle;
}

img {
  line-height: 1;
  vertical-align: bottom;
}

button {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: transparent;
  border: none;
  cursor: pointer;
  line-height: 1;
  outline: none;
  padding: 0;
}

*, *:before, *:after {
  -ms-box-sizing: border-box;
  -o-box-sizing: border-box;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  z-index: 1;
}

.sp {
  display: none !important;
}

.sp_inline {
  display: none;
}

.pc_inline {
  display: inline;
}

@media screen and (min-width: 768px) {
  .imgalpha {
    cursor: pointer;
    transition: opacity 0.6s;
  }
  .imgalpha:hover {
    opacity: 0.6 !important;
  }
}
/*-------------------------------------------------------------------
common
/*-------------------------------------------------------------------*/
html {
  overflow-y: scroll;
}

.wrap {
  position: relative;
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  .wrap {
    max-width: 500px;
    margin: 0 auto;
    min-height: 100vh;
  }
}
@media screen and (min-width: 768px) and (max-width: 1300px) {
  .wrap {
    margin: 0 0 0 auto;
  }
}

body {
  font-feature-settings: "palt";
}

.bg {
  position: fixed;
  inset: 0;
  z-index: -1;
  opacity: 0;
  transition: opacity 1s ease;
}
@media screen and (min-width: 768px) {
  .bg {
    background: url("/digitalrally/assets/image/pc-bg.webp") no-repeat center center fixed;
    background-size: cover;
  }
}

body.is-bg-shown .bg {
  opacity: 1;
}

main {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

body.is-main-shown main {
  opacity: 1;
  transform: translateY(0);
}

@media screen and (max-width: 768px) {
  body {
    min-width: 100%;
  }
  img {
    height: auto;
    width: 100%;
  }
  .sp {
    display: block !important;
  }
  .pc {
    display: none !important;
  }
  .sp_inline {
    display: inline !important;
  }
  .pc_inline {
    display: none !important;
  }
}
@media screen and (max-width: 768px) {
  .wrap {
    max-width: 100vw;
  }
}
/*-------------------------------------------------------------------
スクロールで要素がふわっと表示されるアニメーション用の共通クラス
使い方：対象要素に js-scrani を付与すると、画面内に入ったタイミングで
script.js（ScrollTrigger）が is-ani を付与し、下から表示される
・見出し・アイコンなど上から表示させたい場合は js-scrani-down を併用する
・カードを左右交互に表示させたい場合は js-scrani-left / js-scrani-right を併用する
・移動させずフェードのみにしたい場合は js-scrani-fade を併用する
・リンク付きボタンなど、移動ではなく少し拡大させたい場合は js-scrani-scale を併用する
-------------------------------------------------------------------*/
.js-scrani {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.js-scrani.is-ani {
  opacity: 1;
  transform: translateY(0);
}

.js-scrani-down {
  transform: translateY(-20px);
}

.js-scrani-left {
  transform: translateX(-16px);
}

.js-scrani-right {
  transform: translateX(16px);
}

.js-scrani-fade {
  transform: none;
}

.js-scrani-scale {
  transform: scale(0.9);
}
.js-scrani-scale.is-ani {
  transform: scale(1);
}

/*-------------------------------------------------------------------
ローディング（初回表示時のみ表示。window.load後、script.js側でフェードアウトしてDOMから削除する）
-------------------------------------------------------------------*/
.loading {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
}
.loading__bg {
  position: absolute;
  inset: 0;
  background-color: #000;
}
.loading__princess-star {
  position: relative;
  width: 196px;
  height: 196px;
  transition: opacity 0.8s cubic-bezier(0.4, 0.27, 0.18, 0.87);
}
.loading__princess-star img {
  width: 100%;
}
@media screen and (max-width: 768px) {
  .loading__princess-star {
    width: 32vw;
    height: 32vw;
  }
}

.loading.is-loaded .loading__princess-star {
  opacity: 0;
}

/*-------------------------------------------------------------------
ボタン
/*-------------------------------------------------------------------*/
/*-------------------------------------------------------------------
モーダル（キャンペーン規約 等、複数箇所での再利用を想定）
表示/非表示は display ではなく opacity + visibility で行い、ふわっとしたフェード＋拡大の
トランジションを付けている
-------------------------------------------------------------------*/
.modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.6s ease, visibility 0.6s ease;
}
@media screen and (max-width: 768px) {
  .modal {
    padding: 4.8vw;
  }
}
.modal.is-active {
  opacity: 1;
  visibility: visible;
}
.modal.is-active .modal__dialog {
  transform: translateY(0) scale(1);
  opacity: 1;
}
.modal__overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.6);
}
.modal__dialog {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  width: 100%;
  max-width: 470px;
  opacity: 0;
  transform: translateY(12px) scale(0.96);
  transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1), transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
@media screen and (max-width: 768px) {
  .modal__dialog {
    transform: translateY(2.4vw) scale(0.96);
  }
}
.modal__close {
  position: relative;
  flex-shrink: 0;
  width: 35px;
  height: 28px;
  margin-bottom: 5px;
}
@media screen and (max-width: 768px) {
  .modal__close {
    width: 7vw;
    height: 5.6vw;
    margin-bottom: 1vw;
  }
}
.modal__close::before, .modal__close::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: #fff;
  -webkit-mask: url("/digitalrally/assets/image/modal-close.png") no-repeat center/contain;
  mask: url("/digitalrally/assets/image/modal-close.png") no-repeat center/contain;
}
.modal__close::after {
  transform: scaleX(-1);
}
.modal__box {
  width: 100%;
  max-height: 692px;
  background-color: #fff;
  border-radius: 16px;
  overflow: hidden;
}
@media screen and (max-width: 768px) {
  .modal__box {
    border-radius: 3.2vw;
  }
}
.modal__scroll {
  max-height: 692px;
  overflow-y: auto;
  padding: 62px 45px;
  color: #000d6b;
  font-family: "Noto Sans JP", sans-serif;
}
@media screen and (max-width: 768px) {
  .modal__scroll {
    padding: 12.4vw 9vw;
  }
}
.modal__ttl {
  font-family: "Shippori Mincho", serif;
  font-size: 25px;
  font-weight: bold;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .modal__ttl {
    font-size: 5vw;
  }
}
.modal__section {
  margin-top: 32px;
}
@media screen and (max-width: 768px) {
  .modal__section {
    margin-top: 6.4vw;
  }
}
.modal__subttl {
  font-size: 18px;
  font-weight: bold;
}
@media screen and (max-width: 768px) {
  .modal__subttl {
    font-size: 3.6vw;
  }
}
.modal__item, .modal__text {
  margin-top: 12px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.8;
}
@media screen and (max-width: 768px) {
  .modal__item, .modal__text {
    margin-top: 2.4vw;
    font-size: 3.2vw;
  }
}

/*-------------------------------------------------------------------
LP
/*-------------------------------------------------------------------*/
/* header（タイトル・バナー）
----------------------------------------------- */
@media screen and (min-width: 768px) {
  .header {
    position: fixed;
    top: 46%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding-bottom: 10px;
  }
}
@media screen and (max-width: 768px) {
  .header {
    display: none;
  }
}
@media screen and (min-width: 1600px) {
  .header {
    right: calc(50% + 250px + 87px);
  }
}
@media screen and (min-width: 1301px) and (max-width: 1599px) {
  .header {
    left: 0;
    width: calc((100vw - 500px) / 2);
  }
}
@media screen and (min-width: 768px) and (max-width: 1300px) {
  .header {
    left: 0;
    width: calc(100vw - 500px);
    top: calc(45% - 20px);
    transform: translateY(-100%);
  }
}
.header__logo, .header__banner {
  opacity: 0;
  transform: translateX(-40px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
.header__logo {
  width: 398px;
}
@media screen and (min-width: 1301px) and (max-width: 1599px) {
  .header__logo {
    width: clamp(318.798px, 0.398 * (100vw - 500px), 398px);
  }
}
@media screen and (min-width: 768px) and (max-width: 1300px) {
  .header__logo {
    width: clamp(213.328px, 0.796 * (100vw - 500px), 398px);
  }
}
.header__logo img {
  width: 100%;
}
.header__banner {
  width: 219px;
  margin-top: 20px;
}
@media screen and (min-width: 1301px) and (max-width: 1599px) {
  .header__banner {
    width: clamp(175.419px, 0.219 * (100vw - 500px), 219px);
  }
}
@media screen and (min-width: 768px) and (max-width: 1300px) {
  .header__banner {
    width: clamp(117.384px, 0.438 * (100vw - 500px), 219px);
  }
}
.header__banner img {
  width: 100%;
}

body.is-header-shown .header__logo,
body.is-header-shown .header__banner {
  opacity: 1;
  transform: translateX(0);
}

/* nav（PCのみ表示・現在地ハイライト）
----------------------------------------------- */
@media screen and (min-width: 768px) {
  .gnav {
    position: fixed;
    top: 47%;
    transform: translateY(-50%);
    display: flex;
    justify-content: center;
  }
}
@media screen and (min-width: 1600px) {
  .gnav {
    left: calc(50% + 250px + 100px);
    width: 370.5px;
  }
}
@media screen and (min-width: 1301px) and (max-width: 1599px) {
  .gnav {
    right: 0;
    width: calc((100vw - 500px) / 2);
  }
}
@media screen and (min-width: 768px) and (max-width: 1300px) {
  .gnav {
    top: 45%;
    left: 0;
    width: calc(100vw - 500px);
    transform: none;
  }
}
@media screen and (max-width: 768px) {
  .gnav {
    display: none;
  }
}
.gnav__inner {
  width: 370.5px;
  height: 451px;
  padding: 26px 42px;
  background: url("/digitalrally/assets/image/pc-nav-bg.png") no-repeat center/100% 100%;
  opacity: 0;
  transform: translateX(40px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}
@media screen and (min-width: 1301px) and (max-width: 1599px) {
  .gnav__inner {
    width: clamp(296.7705px, 0.3705 * (100vw - 500px), 370.5px);
    height: clamp(361.251px, 0.451 * (100vw - 500px), 451px);
    padding: clamp(20.826px, 0.026 * (100vw - 500px), 26px) clamp(33.642px, 0.042 * (100vw - 500px), 42px);
  }
}
@media screen and (min-width: 768px) and (max-width: 1300px) {
  .gnav__inner {
    width: clamp(198.588px, 0.741 * (100vw - 500px), 370.5px);
    height: clamp(241.736px, 0.902 * (100vw - 500px), 451px);
    padding: clamp(13.936px, 0.052 * (100vw - 500px), 26px) clamp(22.512px, 0.084 * (100vw - 500px), 42px);
  }
}
.gnav__list {
  display: flex;
  flex-direction: column;
}
.gnav__item + .gnav__item {
  border-top: 1px solid #b08023;
}
.gnav__link {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 30px 12px;
  color: #3d457a;
  font-size: 19px;
  font-weight: bold;
  line-height: 1;
  transition: color 0.3s;
  letter-spacing: 0.08;
}
@media screen and (min-width: 1301px) and (max-width: 1599px) {
  .gnav__link {
    gap: clamp(12.015px, 0.015 * (100vw - 500px), 15px);
    padding: clamp(24.03px, 0.03 * (100vw - 500px), 30px) clamp(9.612px, 0.012 * (100vw - 500px), 12px);
    font-size: clamp(15.219px, 0.019 * (100vw - 500px), 19px);
  }
}
@media screen and (min-width: 768px) and (max-width: 1300px) {
  .gnav__link {
    gap: clamp(8.04px, 0.03 * (100vw - 500px), 15px);
    padding: clamp(16.08px, 0.06 * (100vw - 500px), 30px) clamp(6.432px, 0.024 * (100vw - 500px), 12px);
    font-size: clamp(10.184px, 0.038 * (100vw - 500px), 19px);
  }
}
@media screen and (min-width: 768px) {
  .gnav__link:hover {
    color: #b08023;
  }
}
.gnav__link.is-active {
  color: #b08023;
}
.gnav__icon {
  flex-shrink: 0;
  width: 12px;
  height: 17px;
  background-color: currentColor;
  -webkit-mask: url("/digitalrally/assets/image/pc-nav-icon.png") no-repeat center/contain;
  mask: url("/digitalrally/assets/image/pc-nav-icon.png") no-repeat center/contain;
}
@media screen and (min-width: 1301px) and (max-width: 1599px) {
  .gnav__icon {
    width: clamp(9.612px, 0.012 * (100vw - 500px), 12px);
    height: clamp(13.617px, 0.017 * (100vw - 500px), 17px);
  }
}
@media screen and (min-width: 768px) and (max-width: 1300px) {
  .gnav__icon {
    width: clamp(6.432px, 0.024 * (100vw - 500px), 12px);
    height: clamp(9.112px, 0.034 * (100vw - 500px), 17px);
  }
}

body.is-header-shown .gnav__inner {
  opacity: 1;
  transform: translateX(0);
}

/* mv（メインビジュアル）
----------------------------------------------- */
.mv img {
  display: block;
  width: 100%;
}

/*-------------------------------------------------------------------
about（滋賀周遊デジタルラリー）
/*-------------------------------------------------------------------*/
.about {
  position: relative;
  margin-top: -170px;
  margin-bottom: -68px;
}
@media screen and (max-width: 768px) {
  .about {
    margin-top: -34vw;
    margin-bottom: -13.6vw;
  }
}
.about__intro {
  position: relative;
  overflow: hidden;
  background: url("/digitalrally/assets/image/about-bg.webp") no-repeat top center/cover;
  padding-bottom: 120px;
}
@media screen and (max-width: 768px) {
  .about__intro {
    padding-bottom: 24vw;
  }
}
.about__ttl {
  padding-top: 152px;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .about__ttl {
    padding-top: 30.4vw;
  }
}
.about__ttl img {
  width: 393px;
  margin-left: 28px;
}
@media screen and (max-width: 768px) {
  .about__ttl img {
    width: 78.6vw;
    margin-left: 5.6vw;
  }
}
.about__kirakira {
  position: absolute;
  top: 14px;
  left: 35px;
  width: 425px;
}
@media screen and (max-width: 768px) {
  .about__kirakira {
    top: 2.8vw;
    left: 7vw;
    width: 85vw;
  }
}
.about__date {
  position: relative;
  margin: 108px 24px 0;
  padding: 30px 0;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .about__date {
    margin: 21.6vw 4.8vw 0;
    padding: 6vw 0;
  }
}
.about__date-bg {
  position: absolute;
  top: -24px;
  left: 50%;
  width: 542px;
  max-width: none;
  margin-left: -271px;
}
@media screen and (max-width: 768px) {
  .about__date-bg {
    top: -4.8vw;
    width: 108.4vw;
    margin-left: -54.2vw;
  }
}
.about__date-list {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 32px;
}
@media screen and (max-width: 768px) {
  .about__date-list {
    gap: 6.4vw;
  }
}
.about__date-label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  color: #b08023;
  font-size: 28px;
  font-weight: 400;
  line-height: 1;
  margin-bottom: 5px;
}
@media screen and (max-width: 768px) {
  .about__date-label {
    gap: 2.4vw;
    font-size: 5.6vw;
    margin-bottom: 1vw;
  }
}
.about__date-label::before, .about__date-label::after {
  content: "";
  flex: 1;
  max-width: 141px;
  margin-top: 11px;
  height: 1px;
  background-color: #b08023;
}
@media screen and (max-width: 768px) {
  .about__date-label::before, .about__date-label::after {
    max-width: 28.2vw;
    margin-top: 1vw;
  }
}
.about__date-label-num {
  font-size: 41px;
  font-weight: 400;
  padding: 0 5px;
  letter-spacing: 0;
}
@media screen and (max-width: 768px) {
  .about__date-label-num {
    font-size: 8.2vw;
    padding: 0 1vw;
  }
}
.about__date-range {
  line-height: 1;
  color: #3d457a;
  font-size: 21px;
  font-weight: bold;
  white-space: nowrap;
  text-align: center;
  letter-spacing: 0;
}
@media screen and (max-width: 768px) {
  .about__date-range {
    font-size: 4.2vw;
  }
}
.about__date-unit {
  font-size: 15px;
}
@media screen and (max-width: 768px) {
  .about__date-unit {
    font-size: 3vw;
  }
}
.about__date-kara {
  font-size: 21px;
}
@media screen and (max-width: 768px) {
  .about__date-kara {
    font-size: 4.2vw;
  }
}
.about__date-num {
  font-size: 39px;
  font-weight: bold;
}
@media screen and (max-width: 768px) {
  .about__date-num {
    font-size: 7.8vw;
  }
}
.about__date-note {
  position: relative;
  margin-top: 55px;
  text-align: center;
  color: #fff;
  font-size: 16px;
  font-weight: bold;
  letter-spacing: -2px;
  line-height: 1.6;
}
@media screen and (max-width: 768px) {
  .about__date-note {
    margin-top: 11vw;
    font-size: 3.2vw;
    letter-spacing: -0.4vw;
  }
}
.about__txt {
  display: block;
  margin: 85px auto 0;
  width: 326px;
}
@media screen and (max-width: 768px) {
  .about__txt {
    margin: 17vw auto 0;
    width: 65.2vw;
  }
}
.about__btn {
  display: block;
  margin: 30px auto 0;
  width: 245px;
  filter: drop-shadow(0 20px 40px #006a85);
}
.about__btn img {
  width: 100%;
}
@media screen and (max-width: 768px) {
  .about__btn {
    margin: 6vw auto 0;
    width: 49vw;
    filter: drop-shadow(0 4vw 8vw #006a85);
  }
}

/*-------------------------------------------------------------------
about__present（プレゼント紹介）
クリアカードのスパークル装飾は素材未支給のため仮値。実データ確定後に要調整
-------------------------------------------------------------------*/
.about__present {
  position: relative;
  margin-top: -65px;
  padding: 40px 0 90px;
  background: url("/digitalrally/assets/image/about-present-bg.webp") no-repeat top center/104% auto;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .about__present {
    margin-top: -13vw;
    padding: 8vw 0 18vw;
  }
}
.about__present-audio {
  margin-top: 50px;
}
@media screen and (max-width: 768px) {
  .about__present-audio {
    margin-top: 10vw;
  }
}
.about__present-audio-ttl {
  display: block;
  width: 397px;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .about__present-audio-ttl {
    width: 79.4vw;
  }
}
.about__present-audio-ttl img {
  display: block;
  width: 100%;
}
.about__present-audio-img {
  display: block;
  width: 428px;
  margin: 20px 50px -30px;
}
@media screen and (max-width: 768px) {
  .about__present-audio-img {
    width: 85.6vw;
    margin: 4vw 10vw -6vw;
  }
}
.about__present-audio-note, .about__present-photo-note {
  text-align: center;
  color: #fff;
  font-size: 15px;
  font-weight: bold;
  line-height: 1.7;
  white-space: nowrap;
  letter-spacing: 0px;
  margin: 0;
}
@media screen and (max-width: 768px) {
  .about__present-audio-note, .about__present-photo-note {
    font-size: 3vw;
  }
}
.about__present-audio-note span, .about__present-photo-note span {
  background-color: #fa72a6;
  font-size: 26px;
  padding: 0 10px;
}
@media screen and (max-width: 768px) {
  .about__present-audio-note span, .about__present-photo-note span {
    font-size: 5.2vw;
    padding: 0 2vw;
  }
}
.about__present-photo-note {
  letter-spacing: -4px;
  margin: 0;
}
@media screen and (max-width: 768px) {
  .about__present-photo-note {
    letter-spacing: -0.8vw;
  }
}
.about__present-photo-note span {
  margin: 0;
}
.about__present-photo-ttl {
  display: block;
  width: 397px;
  margin: 5px 0 0 40px;
  z-index: 10;
  position: relative;
}
@media screen and (max-width: 768px) {
  .about__present-photo-ttl {
    width: 79.4vw;
    margin: 1vw 0 0 8vw;
  }
}
.about__present-photo-ttl img {
  display: block;
  width: 100%;
}
.about__present-photo-img {
  display: block;
  width: 500px;
  max-width: none;
  z-index: 10;
  position: relative;
  margin: -5px 0 -3px 0px;
}
@media screen and (max-width: 768px) {
  .about__present-photo-img {
    width: 100vw;
    margin: -1vw 0 -0.6vw 0vw;
  }
}
.about__present-photo-caption {
  margin-top: 5px;
  color: #fff;
  font-size: 13px;
  text-align: right;
  letter-spacing: 0;
}
@media screen and (max-width: 768px) {
  .about__present-photo-caption {
    margin-top: 1vw;
    font-size: 2.6vw;
  }
}
.about__present-card {
  margin-top: 60px;
}
@media screen and (max-width: 768px) {
  .about__present-card {
    margin-top: 12vw;
  }
}
.about__present-card-badge {
  display: block;
  width: 280px;
  margin-left: 15px;
}
@media screen and (max-width: 768px) {
  .about__present-card-badge {
    width: 56vw;
    margin-left: 3vw;
  }
}
.about__present-card-ttl {
  display: block;
  width: 366px;
  margin: -75px auto 0;
}
@media screen and (max-width: 768px) {
  .about__present-card-ttl {
    width: 73.2vw;
    margin: -15vw auto 0;
  }
}
.about__present-card-ttl img {
  display: block;
  width: 100%;
}
.about__present-card-img {
  display: block;
  width: 284px;
  margin: 25px auto 0;
}
@media screen and (max-width: 768px) {
  .about__present-card-img {
    width: 56.8vw;
    margin: 5vw auto 0;
  }
}
.about__present-card-info {
  margin-top: 35px;
  padding: 30px 24px 29px;
  color: #fff;
  position: relative;
}
@media screen and (max-width: 768px) {
  .about__present-card-info {
    margin-top: 7vw;
    padding: 6vw 4.8vw 5.8vw;
  }
}
.about__present-card-info:after {
  content: "";
  display: block;
  position: absolute;
  top: 5px;
  left: 33px;
  width: 100%;
  height: 100%;
  border: 1px solid #fff;
  border-radius: 7px;
  width: 434px;
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  .about__present-card-info:after {
    top: 1vw;
    left: 6.6vw;
    border-radius: 1.4vw;
    width: 86.8vw;
  }
}
.about__present-card-info:before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 38px;
  width: 100%;
  height: 100%;
  border: 1px solid #fff;
  border-radius: 7px;
  width: 434px;
  pointer-events: none;
}
@media screen and (max-width: 768px) {
  .about__present-card-info:before {
    left: 7.6vw;
    border-radius: 1.4vw;
    width: 86.8vw;
  }
}
.about__present-card-info-shop {
  font-size: 23px;
  font-weight: bold;
  line-height: 1;
  margin-bottom: 20px;
  letter-spacing: -2px;
}
@media screen and (max-width: 768px) {
  .about__present-card-info-shop {
    font-size: 4.6vw;
    margin-bottom: 4vw;
    letter-spacing: -0.4vw;
  }
}
.about__present-card-info-shop .small {
  font-size: 16px;
  display: block;
  margin-bottom: 8px;
}
@media screen and (max-width: 768px) {
  .about__present-card-info-shop .small {
    font-size: 3.2vw;
    margin-bottom: 1.6vw;
  }
}
.about__present-card-info-shop .big {
  font-size: 26px;
  letter-spacing: -0.01em;
}
@media screen and (max-width: 768px) {
  .about__present-card-info-shop .big {
    font-size: 5.2vw;
    letter-spacing: 0.4vw;
  }
}
.about__present-card-info-addr, .about__present-card-info-hours {
  font-size: 19px;
  line-height: 1.6;
  letter-spacing: -1px;
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .about__present-card-info-addr, .about__present-card-info-hours {
    font-size: 3.8vw;
    letter-spacing: -0.2vw;
  }
}
.about__present-card-note {
  margin-top: 30px;
  color: #fff;
  font-size: 15px;
  line-height: 1.6;
  letter-spacing: -1px;
  font-weight: 600;
  text-align: left;
  margin-left: 30px;
  margin-right: 30px;
  margin-top: 0;
  text-indent: -1em;
  padding-left: 1em;
}
@media screen and (max-width: 768px) {
  .about__present-card-note {
    margin-top: 6vw;
    font-size: 3vw;
    letter-spacing: -0.2vw;
    margin-left: 6vw;
    margin-right: 6vw;
  }
}

.about__present-card-bigNote {
  font-size: 19px;
  color: #fff;
  font-weight: 600;
  margin-top: 30px;
  margin-bottom: 30px;
}
@media screen and (max-width: 768px) {
  .about__present-card-bigNote {
    font-size: 3.8vw;
    margin-bottom: 6vw;
  }
}

.please__txt {
  font-size: 19px;
  text-align: center;
  line-height: 1.47;
  color: #fff;
  font-weight: 600;
  margin-bottom: 30px;
  margin-top: 40px;
  letter-spacing: -2px;
}

.please__note {
  color: #fff;
  font-size: 15px;
  line-height: 1.6;
  letter-spacing: -1px;
  font-weight: 600;
  text-align: left;
  margin-left: 30px;
  margin-right: 30px;
  margin-top: 0;
}
@media screen and (max-width: 768px) {
  .please__note {
    margin-top: 6vw;
    font-size: 3vw;
    letter-spacing: -0.2vw;
    margin-left: 6vw;
    margin-right: 6vw;
  }
}

.about__present-audio-sub-note {
  font-size: 13px;
  font-weight: 600;
  color: #fff;
  text-align: right;
  display: block;
  padding-right: 30px;
  margin-top: 10px;
}
@media screen and (max-width: 768px) {
  .about__present-audio-sub-note {
    font-size: 2.6vw;
    margin-top: 2vw;
    padding-right: 6vw;
  }
}

/*-------------------------------------------------------------------
spot（対象スポット）
spot-bg-01.webpをヘッダー部（アイコン・見出し）、spot-bg-02.webpを縦ループの本文部（カード以下）に分け、
両者の間に少し余白（margin-top）を入れる構成。
余白・フォントサイズは画像から目視で近似した仮値。実データ確定後に要調整
-------------------------------------------------------------------*/
.spot {
  position: relative;
  text-align: center;
  margin-bottom: -95px;
}
@media screen and (max-width: 768px) {
  .spot {
    margin-bottom: -19vw;
  }
}
.spot__head {
  padding: 100px 24px 30px;
  background: url("/digitalrally/assets/image/spot-bg-01.webp") no-repeat top center/100% auto;
}
@media screen and (max-width: 768px) {
  .spot__head {
    padding: 20vw 4.8vw 6vw;
  }
}
.spot__icon {
  display: block;
  width: 59px;
  margin: 0 auto;
}
@media screen and (max-width: 768px) {
  .spot__icon {
    width: 11.8vw;
  }
}
.spot__ttl {
  color: #3d457a;
  font-size: 41px;
  font-weight: bold;
  letter-spacing: -3px;
  color: #fff;
}
@media screen and (max-width: 768px) {
  .spot__ttl {
    font-size: 8.2vw;
    letter-spacing: -0.6vw;
  }
}
.spot__body {
  padding: 0 0 75px;
  background: url("/digitalrally/assets/image/spot-bg-02.webp") repeat-y top center/100% auto;
}
@media screen and (max-width: 768px) {
  .spot__body {
    padding: 0 0 15vw;
  }
}
.spot__list {
  display: flex;
  flex-direction: column;
  gap: 36px;
  padding: 0 38px;
}
@media screen and (max-width: 768px) {
  .spot__list {
    gap: 7.2vw;
    padding: 0 7.6vw;
  }
}
.spot__item img {
  display: block;
  width: 100%;
}
.spot__note {
  margin-top: 40px;
  color: #583800;
  font-size: 18px;
  font-weight: bold;
  line-height: 1.8;
  letter-spacing: 0;
  width: 352px;
  height: 150px;
  background-color: rgba(255, 255, 255, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  letter-spacing: -0.02em !important;
  margin: 40px auto 0;
  border-radius: 10px;
  color: #cc0000;
}
@media screen and (max-width: 768px) {
  .spot__note {
    margin-top: 8vw;
    font-size: 3.6vw;
    width: 70.4vw;
    height: 30vw;
    background-color: rgba(255, 255, 255, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: -0.02em !important;
    margin: 8vw auto 0;
    border-radius: 2vw;
  }
}
.spot__comingsoon {
  position: relative;
  display: flex;
  justify-content: center;
  margin-top: 40px;
  aspect-ratio: 1000/532;
  background: url("/digitalrally/assets/image/spot-comingsoon.png") no-repeat center/100% 100%;
}
@media screen and (max-width: 768px) {
  .spot__comingsoon {
    margin-top: 8vw;
  }
}
.spot__comingsoon-text {
  color: #3d457a;
  font-size: 31px;
  font-weight: bold;
  line-height: 1.2;
  color: #fff;
  padding-top: 50px;
}
@media screen and (max-width: 768px) {
  .spot__comingsoon-text {
    font-size: 6.2vw;
    padding-top: 10vw;
  }
}
.spot__comingsoon-text span.num {
  font-size: 39px;
}
@media screen and (max-width: 768px) {
  .spot__comingsoon-text span.num {
    font-size: 7.8vw;
  }
}
.spot__comingsoon-text span.two {
  padding: 0.05em;
}
.spot__comingsoon-text small {
  font-size: 19px;
}
@media screen and (max-width: 768px) {
  .spot__comingsoon-text small {
    font-size: 3.8vw;
  }
}
.spot__btn {
  display: block;
  width: 294px;
  margin: 0px auto 0;
  filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.1));
}
.spot__btn img {
  display: block;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .spot__btn {
    width: 58.8vw;
    margin: 0vw auto 0;
    filter: drop-shadow(0 4vw 8vw rgba(0, 0, 0, 0.1));
  }
}
.spot__btn.cv_btn {
  display: block;
  width: 319px;
  margin: 20px auto -30px;
  filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.1));
}
@media screen and (max-width: 768px) {
  .spot__btn.cv_btn {
    width: 63.8vw;
    filter: drop-shadow(0 4vw 8vw rgba(0, 0, 0, 0.1));
    margin: 4vw auto -6vw;
  }
}

/*-------------------------------------------------------------------
flow（参加方法）
背景は flow-bg.webp を単体（ループなし）で使用。
余白・フォントサイズは画像から目視で近似した仮値。実データ確定後に要調整
-------------------------------------------------------------------*/
.flow {
  position: relative;
  padding: 40px 0 160px;
  background: url("/digitalrally/assets/image/flow-bg.webp") no-repeat top center/120% auto;
  text-align: center;
  margin-bottom: -80px;
}
@media screen and (max-width: 768px) {
  .flow {
    padding: 8vw 0 32vw;
    margin-bottom: -16vw;
  }
}
.flow__ttl {
  color: #fff;
  font-size: 41px;
  font-weight: bold;
  letter-spacing: 0;
  padding-top: 45px;
}
@media screen and (max-width: 768px) {
  .flow__ttl {
    font-size: 8.2vw;
    padding-top: 9vw;
  }
}
.flow__list {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 15px;
  padding-left: 40px;
  padding-right: 28px;
}
@media screen and (max-width: 768px) {
  .flow__list {
    margin-top: 3vw;
    padding-left: 8vw;
    padding-right: 5.6vw;
  }
}
.flow__item {
  display: block;
  width: 100%;
}
.flow__arrow {
  display: block;
  width: 38px;
  margin: 17px 0 -22px;
}
@media screen and (max-width: 768px) {
  .flow__arrow {
    width: 7.6vw;
    margin: 3.4vw 0 -4.4vw;
  }
}
.flow__btn {
  display: block;
  width: 340px;
  margin: 43px auto 0;
  padding: 16px 0;
  border: 2px solid #fff;
  border-radius: 999px;
  color: #fff;
  font-size: 28px;
  font-weight: bold;
}
@media screen and (max-width: 768px) {
  .flow__btn {
    width: 68vw;
    margin: 8.6vw auto 0;
    padding: 3.2vw 0;
    font-size: 5.6vw;
  }
}

.please__btn {
  display: block;
  width: 340px;
  margin: 32px auto 0;
  padding: 16px 0;
  color: #000d6b;
  border-radius: 999px;
  background-color: #d4eafd;
  font-size: 20px;
  font-weight: bold;
}
@media screen and (max-width: 768px) {
  .please__btn {
    width: 68vw;
    margin: 6.4vw auto 0;
    padding: 3.2vw 0;
    font-size: 4vw;
  }
}

/*-------------------------------------------------------------------
campaign（Xハッシュタグキャンペーン）
背景は campaign-bg.webp を単体（ループなし）で使用。上下に波形の切れ込みがあるため、
実際のコンテンツ高さと画像の見え方が合うかは要確認。
余白・フォントサイズ・ボタン文言/リンク先は仮値。実データ確定後に要調整
-------------------------------------------------------------------*/
.campaign {
  position: relative;
  padding: 80px 24px 180px;
  background: url("/digitalrally/assets/image/campaign-bg.webp") no-repeat top center/100% auto;
  margin-bottom: -105px;
  text-align: center;
}
@media screen and (max-width: 768px) {
  .campaign {
    padding: 16vw 4.8vw 36vw;
    margin-bottom: -21vw;
  }
}
.campaign__ttl {
  display: block;
  width: 358.5px;
  margin: 22px 0px 42px 35px;
}
@media screen and (max-width: 768px) {
  .campaign__ttl {
    width: 71.7vw;
    margin: 4.4vw 0 8.4vw 7vw;
  }
}
.campaign__text {
  margin-top: 52px;
  color: #fff;
  font-size: 28px;
  font-weight: bold;
  line-height: 1.6;
  letter-spacing: -2px;
}
.campaign__text a {
  text-decoration: underline;
}
.campaign__text a:hover {
  text-decoration: none;
}
@media screen and (max-width: 768px) {
  .campaign__text {
    margin-top: 10.4vw;
    font-size: 5.6vw;
    letter-spacing: -0.4vw;
  }
}
.campaign__text.marker {
  margin-top: 30px;
}
@media screen and (max-width: 768px) {
  .campaign__text.marker {
    margin-top: 6vw;
  }
}
.campaign__text.marker span {
  background: #fa72a6;
  font-size: 38px;
  line-height: 1;
  margin: 0 auto 10px;
  display: block;
  max-inline-size: -moz-max-content;
  max-inline-size: max-content;
  padding: 5px 5px;
}
@media screen and (max-width: 768px) {
  .campaign__text.marker span {
    font-size: 7.6vw;
    margin: 0 auto 2vw;
    padding: 1vw 1vw;
  }
}
.campaign__text.marker span:first-child {
  letter-spacing: 2px;
}
@media screen and (max-width: 768px) {
  .campaign__text.marker span:first-child {
    letter-spacing: 0.4vw;
  }
}
.campaign__text.check {
  font-size: 24px;
  margin-top: 75px;
  line-height: 1.8;
  letter-spacing: 0;
}
@media screen and (max-width: 768px) {
  .campaign__text.check {
    font-size: 4.8vw;
    margin-top: 15vw;
  }
}
.campaign__btn {
  display: block;
  width: 290px;
  margin: 20px auto 0;
  filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.1));
}
.campaign__btn img {
  display: block;
  width: 100%;
}
@media screen and (max-width: 768px) {
  .campaign__btn {
    width: 58vw;
    margin: 4vw auto 0;
    filter: drop-shadow(0 4vw 8vw rgba(0, 0, 0, 0.1));
  }
}

.contact_btn {
  display: block;
  width: 380px;
  margin: 48px auto 0;
  padding: 16px 0;
  border: 2px solid #fff;
  border-radius: 999px;
  color: #fff;
  font-size: 22px;
  font-weight: bold;
}
@media screen and (max-width: 768px) {
  .contact_btn {
    width: 76vw;
    margin: 1.6vw auto 0;
    padding: 3.2vw 0;
    font-size: 4.4vw;
  }
}

/*-------------------------------------------------------------------
info（その他関連情報）
info__head（見出しのみ）を info-bg.webp、info__body（バナー以降）を info-bg-02.webp の
縦ループにして、info-bg-02 が見出しに影響しないよう分離している
-------------------------------------------------------------------*/
.info {
  position: relative;
  text-align: center;
}
.info__head {
  padding: 131px 40px 15px;
  background: url("/digitalrally/assets/image/info-bg.webp") no-repeat top center/100% auto;
}
@media screen and (max-width: 768px) {
  .info__head {
    padding: 26.2vw 8vw 3vw;
  }
}
.info__ttl {
  color: #fff;
  font-size: 34px;
  font-weight: bold;
}
@media screen and (max-width: 768px) {
  .info__ttl {
    font-size: 6.8vw;
  }
}
.info__body {
  padding: 0px 40px 30px;
  background: url("/digitalrally/assets/image/info-bg-02.webp") repeat-y top center/100% auto;
}
@media screen and (max-width: 768px) {
  .info__body {
    padding: 0 8vw 6vw;
  }
}
.info__list {
  display: flex;
  flex-direction: column;
  gap: 15px;
}
@media screen and (max-width: 768px) {
  .info__list {
    gap: 3vw;
  }
}
.info__banner {
  display: block;
  margin-top: 0;
}
.info__banner img {
  display: block;
  width: 100%;
}
.info__footer {
  margin-top: 80px;
}
@media screen and (max-width: 768px) {
  .info__footer {
    margin-top: 16vw;
  }
}
.info__copyright {
  color: #000d6b;
  font-size: 15px;
  letter-spacing: 0;
  font-weight: bold;
}
@media screen and (max-width: 768px) {
  .info__copyright {
    font-size: 3vw;
  }
}

.info__note {
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.05em;
}
@media screen and (max-width: 768px) {
  .info__note {
    font-size: 3vw;
  }
}