/* --------------------------------
  * リセット・ベーススタイル
  * -------------------------------- */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 62.5%;
  scroll-behavior: smooth;
  scroll-padding-top: 8.0rem;
}

body {
  background-color: #020617;
  color: #cbd5e1;
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-size: 1.6rem;
  line-height: 1.6;
  overflow-x: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

ul,
ol {
  list-style: none;
}

button {
  border: none;
  background: none;
  font-family: inherit;
  cursor: pointer;
}

input,
textarea {
  font-family: inherit;
}

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

/* --------------------------------
  * ページ全体レイアウト (チャットボット右固定用)
  * -------------------------------- */
.l-page-wrapper {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: 100vh;
}

.l-page-main {
  flex-grow: 1;
  width: 100%;
  min-width: 0;
  transition: width 0.3s ease;
}

.l-page-sidebar {
  position: static;
  width: 0;
  height: 0;
  z-index: 100;
}

@media (min-width: 1024px) {
  .l-page-wrapper {
    flex-direction: row;
  }

  /* チャットが開いている時のPCレイアウト */
  .l-page-wrapper:not(.is-chat-closed) .l-page-main {
    width: calc(100% - 60.0rem);
  }

  .l-page-wrapper:not(.is-chat-closed) .l-page-sidebar {
    width: 60.0rem;
    flex-shrink: 0;
    position: sticky;
    top: 0;
    height: 100vh;
    border-left: 0.1rem solid #334155;
    background-color: #0f172a;
    transition: width 0.3s ease, border-color 0.3s ease;
    overflow: hidden;
  }

  /* チャットが閉じている時のPCレイアウト */
  .l-page-wrapper.is-chat-closed .l-page-main {
    width: 100%;
  }

  .l-page-wrapper.is-chat-closed .l-page-sidebar {
    width: 0;
    border-left: 0.1rem solid transparent;
    transition: width 0.3s ease, border-color 0.3s ease;
    overflow: hidden;
  }
}

/* --------------------------------
  * レイアウト (l-)
  * -------------------------------- */
.l-container {
  width: 100%;
  max-width: 120.0rem;
  margin: 0 auto;
  padding: 0 2.4rem;
}

.l-container--wide {
  max-width: 144.0rem;
}

.l-container--narrow {
  max-width: 80.0rem;
}

.l-section {
  padding: 9.6rem 0;
}

.l-section--bg-light {
  background-color: #0f172a66;
}

.l-section--bg-dark {
  background-color: #0f172a4d;
}

.l-grid--2col {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4.8rem;
}

.l-grid--3col {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3.2rem;
}

.l-flex--center {
  display: flex;
  align-items: center;
  justify-content: center;
}

.l-flex--between {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.l-flex--start {
  display: flex;
  align-items: flex-start;
  gap: 1.6rem;
}

.l-flex--wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.8rem;
}

@media (min-width: 768px) {
  .l-grid--2col {
    grid-template-columns: repeat(2, 1fr);
  }

  .l-grid--3col {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .l-grid--3col {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* --------------------------------
  * コンポーネント共通 (c-)
  * -------------------------------- */
.c-canvas__particle {
  position: fixed;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.c-text--glow {
  color: #fcd34d;
  text-shadow: 0 0 1.5rem #fcd34d99;
}

.c-text--accent-red {
  color: #d94255;
}

.c-text--accent-purple {
  color: #926cae;
}

.c-text--accent-orange {
  color: #f58c40;
}

.c-text--accent-lg {
  font-size: 2.4rem;
}

.c-button--glow {
  display: inline-block;
  padding: 1.6rem 4.8rem;
  border-radius: 999.9rem;
  background-color: #fcd34d;
  color: #0f172a;
  font-size: 1.8rem;
  font-weight: 700;
  text-align: center;
  box-shadow: 0 0 1.5rem #fcd34d66, 0 0 0.5rem #fcd34d99;
  transition: all 0.3s ease;
  white-space: nowrap;
}

.c-button--glow:hover {
  transform: translateY(-0.2rem);
  background-color: #fde047;
  box-shadow: 0 0 2.5rem #fcd34db3, 0 0 1.0rem #fcd34de6;
}

.c-button--glow.c-button--sm {
  padding: 1.0rem 2.4rem;
  border-radius: 0.8rem;
  font-size: 1.6rem;
}

.c-button--outline {
  display: inline-block;
  padding: 1.6rem 4.8rem;
  border: 0.1rem solid #b08d57;
  border-radius: 999.9rem;
  background-color: #0000;
  color: #b08d57;
  font-size: 2.0rem;
  font-weight: 700;
  text-align: center;
  transition: all 0.3s ease;
}

.c-button--outline:hover {
  background-color: #b08d571a;
  color: #fcd34d;
}

.c-card--hover {
  border: 0.1rem solid #1e293b;
  border-radius: 1.2rem;
  background-color: #0f172ad9;
  box-shadow: 0 1.0rem 2.0rem -0.5rem #0000001a;
  backdrop-filter: blur(0.8rem);
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.c-card--hover:hover {
  transform: translateY(-0.5rem);
  border-color: #b08d57;
  box-shadow: 0 1.0rem 2.0rem -0.5rem #b08d5733;
}

/* --------------------------------
  * ヘッダー
  * -------------------------------- */
.c-header {
  position: sticky;
  top: 0;
  z-index: 50;
  padding: 1.6rem 0;
  border-bottom: 0.1rem solid #b08d571a;
  background-color: #0f172ae6;
  box-shadow: 0 1.0rem 1.5rem -0.3rem #451a0333;
  backdrop-filter: blur(1.2rem);
}

.c-header__logo {
  color: #b08d57;
  font-size: 2.0rem;
  font-weight: 700;
  letter-spacing: -0.025em;
  white-space: nowrap;
}

.c-header__logo a {
  transition: opacity 0.3s ease;
}

.c-header__logo a:hover {
  opacity: 0.8;
}

.c-hamburger {
  position: relative;
  width: 4.0rem;
  height: 4.0rem;
  background-color: transparent;
  border-radius: 0.8rem;
  border: 0.1rem solid #b08d57;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 0.6rem;
}

.c-hamburger span {
  display: block;
  width: 2.0rem;
  height: 0.2rem;
  background-color: #b08d57;
  transition: all 0.3s ease;
}

.c-hamburger.is-active span:nth-child(1) {
  transform: translateY(0.8rem) rotate(45deg);
}

.c-hamburger.is-active span:nth-child(2) {
  opacity: 0;
}

.c-hamburger.is-active span:nth-child(3) {
  transform: translateY(-0.8rem) rotate(-45deg);
}

.c-nav__list {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-color: #0f172af2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 3.2rem;
  z-index: 90;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.c-nav.is-active .c-nav__list {
  opacity: 1;
  visibility: visible;
}

.c-nav__link {
  color: #cbd5e1;
  font-size: 2.0rem;
  font-weight: 700;
  transition: color 0.3s ease;
}

.c-nav__link:hover {
  color: #fcd34d;
}

@media (min-width: 1024px) {
  .c-hamburger {
    display: none;
  }

  .c-nav__list {
    position: static;
    width: auto;
    height: auto;
    background-color: transparent;
    backdrop-filter: none;
    flex-direction: row;
    opacity: 1;
    visibility: visible;
    gap: 2.4rem;
  }

  .c-nav__link {
    font-size: 1.6rem;
    font-weight: 400;
  }
}

/* --------------------------------
  * ヒーローセクション
  * -------------------------------- */
.c-hero {
  position: relative;
  min-height: 80vh;
  padding: 8.0rem 0;
  overflow: hidden;
}

.c-hero__background {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  background: radial-gradient(ellipse at bottom, #1e1b4b 0%, #0000 70%);
}

.c-hero__inner {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4.8rem;
}

.c-hero__content {
  width: 100%;
  max-width: 100.0rem;
  text-align: center;
}

.c-hero__title {
  margin-bottom: 3.2rem;
  color: #fcd34d;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 3.6rem;
  font-weight: 900;
  line-height: 1.2;
  text-shadow: 0 0 1.5rem #fcd34d99;
}

.c-hero__visual {
  position: relative;
  display: inline-block;
  width: 100%;
  max-width: 80.0rem;
  margin-bottom: 4.8rem;
}

.c-hero__logo-img {
  position: relative;
  z-index: 2;
  width: 100%;
  height: auto;
}

.c-hero__floating-icon {
  position: absolute;
  top: auto;
  bottom: -15%;
  left: 0;
  right: 0;
  margin: 0 auto;
  z-index: 3;
  width: 45%;
  max-width: 32.0rem;
  filter: drop-shadow(0 0 2.0rem #b08d5766);
  animation: float 6s ease-in-out infinite;
}

@keyframes float {
  0% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-2.0rem);
  }

  100% {
    transform: translateY(0);
  }
}

.c-hero__date-img {
  width: 100%;
  max-width: 56.0rem;
  margin: 0 auto 1.6rem;
  filter: drop-shadow(0 0 1.0rem #b08d574d);
}

.c-hero__real-date {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1.6rem;
  margin-bottom: 4.8rem;
  padding: 1.2rem 3.2rem;
  border: 0.1rem solid #b08d5780;
  border-radius: 999.9rem;
  background: linear-gradient(90deg, #0f172a 0%, #b08d571a 50%, #0f172a 100%);
  box-shadow: 0 0 2.0rem #b08d5733;
}

.c-hero__real-badge {
  padding: 0.6rem 1.6rem;
  border-radius: 999.9rem;
  background-color: #d94255;
  color: #f1f5f9;
  font-size: 1.6rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  box-shadow: 0 0 1.0rem #d9425580;
}

.c-hero__real-time {
  color: #fcd34d;
  font-family: 'Inter', sans-serif;
  font-size: 3.2rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-shadow: 0 0 1.5rem #fcd34d99;
}

.c-hero__real-time-hyphen {
  font-size: 2.0rem;
  vertical-align: middle;
}

.c-hero__btn-group {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.6rem;
}

.c-hero__btn {
  padding: 1.6rem 4.8rem;
  border-radius: 999.9rem;
  font-size: 2.0rem;
}

.c-hero__movie-accordion {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.4s ease, margin-top 0.4s ease;
  width: 100%;
  max-width: 32.0rem;
  margin: 0 auto;
}

.c-hero__movie-accordion.is-open {
  grid-template-rows: 1fr;
  margin-top: 3.2rem;
}

.c-hero__movie-accordion-inner {
  overflow: hidden;
}

.c-hero__movie-wrap {
  width: 100%;
  aspect-ratio: 9 / 16;
  border: 0.4rem solid #1e293b;
  border-radius: 2.4rem;
  overflow: hidden;
  box-shadow: 0 1.5rem 3.0rem #000000b3, 0 0 1.5rem #b08d574d;
  background-color: #0f172a;
  position: relative;
}

.c-hero__movie {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 767px) {
  .c-hero__real-date {
    flex-direction: column;
    border-radius: 2.4rem;
    padding: 1.6rem 2.4rem;
    gap: 0.8rem;
  }
}

@media (min-width: 768px) {
  .c-hero__title {
    font-size: 4.8rem;
  }

  .c-hero__floating-icon {
    top: 0;
    bottom: auto;
    left: -30%;
    right: auto;
    margin: 0;
    width: 40%;
  }

  .c-hero__real-time {
    font-size: 4.0rem;
  }

  .c-hero__btn-group {
    flex-direction: row;
  }
}

@media (min-width: 1024px) {
  .c-hero__inner {
    flex-direction: column;
    justify-content: center;
    gap: 4.8rem;
  }

  .c-hero__content {
    width: 100%;
    max-width: 120.0rem;
    text-align: center;
  }

  .c-hero__date-img {
    margin-left: auto;
    margin-right: auto;
  }

  .c-hero__btn-group {
    justify-content: center;
  }
}

/* --------------------------------
  * セクション共通見出し
  * -------------------------------- */
.c-section__header {
  margin-bottom: 4.8rem;
  text-align: center;
}

.c-section__subtitle {
  margin-bottom: 0.8rem;
  color: #d4af37;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 1.4rem;
  font-weight: 400;
  letter-spacing: 0.05em;
  text-shadow: 0 0 1.0rem #d4af3780;
  text-transform: uppercase;
}

.c-section__title {
  color: #f1f5f9;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 2.8rem;
  font-weight: 900;
}

@media (min-width: 768px) {
  .c-section__header {
    margin-bottom: 6.4rem;
  }

  .c-section__title {
    font-size: 3.2rem;
  }
}

/* --------------------------------
  * 開催ハイライト
  * -------------------------------- */
.l-highlight-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3.2rem;
}

.l-highlight-grid--second {
  margin-top: 3.2rem;
}

@media (min-width: 768px) {
  .l-highlight-grid {
    grid-template-columns: 422fr 586fr;
    gap: 4.8rem;
    align-items: center;
  }

  .l-highlight-grid--second {
    grid-template-columns: 1fr;
    margin-top: 4.8rem;
  }
}

.c-highlight__img-wrap {
  display: block;
  width: 100%;
  border-radius: 1.6rem;
  overflow: hidden;
  box-shadow: 0 1.5rem 3.0rem -0.5rem #000000b3, 0 0 3.0rem -0.5rem #b08d5780;
  transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
  background-color: #ffffff0d;
  backdrop-filter: blur(0.4rem);
}

.c-highlight__img-wrap:hover {
  transform: translateY(-0.8rem) scale(1.02);
  box-shadow: 0 2.0rem 4.0rem -0.5rem #000000cc, 0 0 4.5rem #b08d57cc;
  background-color: #ffffff1a;
}

.c-highlight__img {
  display: block;
  width: 100%;
  height: auto;
}

.l-highlight-grid--second .c-highlight__img {
  padding: 1.0rem;
  background-color: #fff;
}

/* --------------------------------
  * 注意事項ボックス
  * -------------------------------- */
.c-notice__desc {
  max-width: 80.0rem;
  margin: 0 auto 4.8rem;
  color: #94a3b8;
  font-size: 1.6rem;
  line-height: 1.8;
  text-align: center;
}

.c-notice__box {
  max-width: 80.0rem;
  margin: 0 auto;
  padding: 2.4rem;
  border: 0.1rem solid #b08d5733;
  border-radius: 1.2rem;
  background: linear-gradient(135deg, #b08d571a 0%, #0f172ae6 100%);
  box-shadow: inset 0 0 2.0rem #b08d570d;
}

.c-notice__heading {
  display: flex;
  align-items: center;
  margin-bottom: 2.4rem;
  color: #f1f5f9;
  font-size: 1.8rem;
  font-weight: 700;
}

.c-notice__heading-icon {
  margin-right: 0.8rem;
  color: #d4af37;
  width: 2.4rem;
  height: 2.4rem;
}

.c-notice__list {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
}

.c-notice__item {
  display: flex;
  align-items: flex-start;
  color: #cbd5e1;
  font-size: 1.5rem;
  line-height: 1.6;
}

.c-notice__item-icon {
  margin-top: 0.4rem;
  margin-right: 1.2rem;
  color: #b08d57;
  width: 2.0rem;
  height: 2.0rem;
  flex-shrink: 0;
}

.c-notice__item--alert {
  padding: 1.6rem;
  border: 0.1rem solid #b08d5733;
  border-radius: 1.2rem;
  background-color: #b08d571a;
}

.c-notice__item--alert .c-notice__item-icon {
  margin-top: 0.2rem;
  color: #fcd34d;
  width: 2.4rem;
  height: 2.4rem;
}

.c-notice__item--alert strong {
  color: #fcd34d;
}

/* --------------------------------
  * アクセスマップ
  * -------------------------------- */
.c-map__wrap {
  border: 0.2rem solid #b08d5733;
  border-radius: 1.6rem;
  overflow: hidden;
  box-shadow: 0 2.5rem 5.0rem -1.2rem #00000040;
}

.c-iframe__map {
  width: 100%;
  height: 40.0rem;
  border: 0;
  /* filter: grayscale(1) invert(1) brightness(0.75) contrast(1.25); */
}

.c-access__title {
  margin-bottom: 2.4rem;
  color: #f1f5f9;
  font-size: 2.8rem;
  font-weight: 900;
  line-height: 1.2;
}

.c-access__sub {
  display: block;
  margin-top: 0.4rem;
  color: #b08d57;
  font-size: 1.8rem;
}

.c-access__info {
  display: flex;
  flex-direction: column;
  gap: 2.4rem;
  color: #cbd5e1;
  font-size: 1.6rem;
}

.c-access__label {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 0.8rem;
  color: #f1f5f9;
  font-weight: 700;
}

.c-access__icon {
  color: #b08d57;
  width: 2.0rem;
  height: 2.0rem;
}

.c-access__ul {
  margin-left: 2.8rem;
  color: #94a3b8;
  list-style: disc;
}

.c-parking__box {
  padding: 2.4rem;
  border: 0.1rem solid #78350f33;
  border-radius: 1.2rem;
  background-color: #0f172a99;
}

.c-parking__label {
  color: #fcd34d;
}

.c-parking__label .c-access__icon {
  color: #fcd34d;
}

.c-parking__text {
  margin-bottom: 1.6rem;
  color: #94a3b8;
  font-size: 1.6rem;
  line-height: 1.6;
}

.c-parking__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1.2rem 2.4rem;
  border: 0.1rem solid #b08d574d;
  border-radius: 0.8rem;
  background-color: #451a034d;
  color: #b08d57;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  transition: all 0.3s ease;
}

.c-parking__link:hover {
  background-color: #b08d57;
  color: #0f172a;
}

.c-parking__link-icon {
  width: 1.8rem;
  height: 1.8rem;
  margin-left: 0.8rem;
  color: inherit;
}

.c-parking-map {
  margin-top: 4.8rem;
}

.c-parking-map__wrap {
  border: 0.1rem solid #1e293b;
  border-radius: 1.2rem;
  overflow: hidden;
  background-color: #ebf1ff99;
}

/* --------------------------------
  * イベント共通装飾
  * -------------------------------- */
.c-event-title-icon {
  display: inline-block;
  margin: 0 0.8rem;
  vertical-align: middle;
  color: #fcd34d;
  width: 2.4rem;
  height: 2.4rem;
  animation: rally-glow 2s infinite ease-in-out;
}

@keyframes rally-glow {

  0%,
  100% {
    filter: drop-shadow(0 0 0.5rem #fcd34d99);
  }

  50% {
    filter: drop-shadow(0 0 1.5rem #fcd34d);
  }
}

@keyframes pop-firework {
  0% {
    box-shadow: 0 0 0 #d94255, 0 0 0 #fcd34d, 0 0 0 #926cae, 0 0 0 #6ee7b7, 0 0 0 #93c5fd, 0 0 0 #f58c40;
  }

  100% {
    box-shadow: -16.0rem -16.0rem 0 #0000, 16.0rem -16.0rem 0 #0000, 16.0rem 16.0rem 0 #0000, -16.0rem 16.0rem 0 #0000, 0 -20.0rem 0 #0000, 0 20.0rem 0 #0000;
  }
}

@keyframes rally-float {
  0% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-1.5rem);
  }

  100% {
    transform: translateY(0);
  }
}

@keyframes rally-bounce {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-1.0rem);
  }
}

/* イベント：ポイントラリー */
.c-rally__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 4.8rem;
  text-align: center;
}

.c-rally__badge {
  display: inline-block;
  margin-bottom: 1.6rem;
  padding: 0.4rem 1.6rem;
  border: 0.1rem solid #b08d57;
  border-radius: 999.9rem;
  color: #f1f5f9;
  font-size: 2.4rem;
  font-weight: 700;
  letter-spacing: 0.05em;
}

@media (min-width: 768px) {
  .c-rally__badge {
    font-size: 2.8rem;
  }
}

.c-rally__badge-limit {
  margin-left: 0.8rem;
  padding: 0 0.8rem;
  background-color: #d9425533;
}

.c-rally__lead {
  margin-bottom: 1.6rem;
  color: #f1f5f9;
  font-size: 2.0rem;
  font-weight: 700;
}

.c-rally__title {
  color: #f58c40;
  font-size: 3.2rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-shadow: 0 0 1.5rem #f58c4066;
}

.c-rally__flow {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.4rem;
  margin-bottom: 6.4rem;
}

.c-rally__step {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 24.0rem;
  aspect-ratio: 1 / 1;
  padding: 2.0rem;
  border: 0.1rem solid #b08d574d;
  border-radius: 50%;
  background-color: #0f172ad9;
  box-shadow: 0 0 2.0rem #b08d571a;
  text-align: center;
  backdrop-filter: blur(0.8rem);
  transition: all 0.3s ease;
  animation: rally-float 6s ease-in-out infinite;
  flex-shrink: 0;
}

.c-rally__step:nth-child(3) {
  animation-delay: 1.0s;
}

.c-rally__step:nth-child(5) {
  animation-delay: 2.0s;
}

.c-rally__step:hover {
  border-color: #b08d57;
  box-shadow: 0 0 3.5rem #b08d574d;
  transform: scale(1.05);
  animation-play-state: paused;
}

.c-rally__step-text {
  color: #f1f5f9;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
}

.c-rally__step-note {
  margin-top: 0.8rem;
  color: #94a3b8;
  font-size: 1.4rem;
}

.c-rally__step-highlight {
  display: inline-block;
  margin-top: 1.6rem;
  padding: 0 0.8rem;
  background: linear-gradient(#0000 60%, #b08d5766 60%);
  color: #f1f5f9;
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.6;
}

.c-rally__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  transform: rotate(90deg);
  flex-shrink: 0;
}

.c-rally__arrow-icon {
  color: #d94255;
  width: 4.0rem;
  height: 4.0rem;
}

.c-rally__points {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.6rem;
  padding: 2.4rem;
  border: 0.1rem solid #b08d5733;
  border-radius: 1.6rem;
  background-color: #0f172a99;
}

.c-rally__point-item {
  color: #f1f5f9;
  font-size: 1.6rem;
  font-weight: 700;
}

.c-rally__point-num {
  margin: 0 0.4rem;
  color: #f1f5f9;
  font-size: 2.8rem;
  font-weight: 900;
}

.c-rally__enjoy-msg {
  margin-top: 3.2rem;
  padding: 1.6rem 3.2rem;
  border: 0.2rem solid #fcd34d;
  border-radius: 999.9rem;
  background: linear-gradient(135deg, #0f172ae6 0%, #b08d5733 100%);
  text-align: center;
  box-shadow: 0 0 2.0rem #fcd34d66;
}

.c-rally__enjoy-msg p {
  color: #fcd34d;
  font-size: 1.8rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-shadow: 0 0 1.0rem #fcd34d99;
}

/* イベント：抽選会 */
.c-lottery__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 4.8rem;
  text-align: center;
}

.c-lottery__lead {
  margin-bottom: 1.6rem;
  color: #f1f5f9;
  font-size: 2.0rem;
  font-weight: 700;
}

.c-lottery__title {
  margin-bottom: 3.2rem;
  color: #fcd34d;
  font-size: 3.6rem;
  font-weight: 900;
  letter-spacing: 0.05em;
  text-shadow: 0 0 1.5rem #fcd34d99;
}

.c-lottery__highlight {
  display: inline-block;
  margin-bottom: 4.8rem;
  padding: 2.4rem 3.2rem;
  border: 0.1rem solid #ef44444d;
  border-radius: 1.2rem;
  background: linear-gradient(135deg, #ef44441a 0%, #0f172a99 100%);
  box-shadow: 0 0 3.0rem #ef444433;
}

.c-lottery__highlight-text {
  color: #fca5a5;
  font-size: 2.4rem;
  font-weight: 900;
  line-height: 1.4;
  text-shadow: 0 0 1.5rem #ef444499;
}

.c-lottery__highlight-sub {
  display: block;
  margin-top: 1.6rem;
  color: #f1f5f9;
  font-size: 1.6rem;
  font-weight: 700;
}

.c-lottery__flow {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.4rem;
}

.c-lottery__step {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 24.0rem;
  aspect-ratio: 1 / 1;
  padding: 2.0rem;
  border: 0.2rem solid #b08d574d;
  border-radius: 50%;
  background-color: #0f172ad9;
  text-align: center;
  box-shadow: 0 0 2.5rem #b08d571a;
  backdrop-filter: blur(0.8rem);
  transition: all 0.3s ease;
  flex-shrink: 0;
}

.c-lottery__step:hover {
  border-color: #b08d57;
  transform: scale(1.05);
  box-shadow: 0 0 3.5rem #b08d574d;
}

.c-lottery__step-text {
  color: #f1f5f9;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
}

.c-lottery__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  transform: rotate(90deg);
  flex-shrink: 0;
}

.c-lottery__arrow-icon {
  color: #d94255;
  width: 4.0rem;
  height: 4.0rem;
}

.c-lottery__step--special {
  position: relative;
  border-color: #fcd34d80;
}

.c-lottery__step--special::before,
.c-lottery__step--special::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 0.8rem;
  height: 0.8rem;
  border-radius: 50%;
  background-color: #0000;
  transform: translate(-50%, -50%);
  pointer-events: none;
  animation: pop-firework 1.5s infinite ease-out;
}

.c-lottery__step--special::after {
  transform: translate(-50%, -50%) rotate(45deg);
  animation-delay: 0.75s;
}

.c-lottery__icon-party {
  margin-bottom: 1.2rem;
  color: #fcd34d;
  width: 4.8rem;
  height: 4.8rem;
  filter: drop-shadow(0 0 1.0rem #fcd34d66);
  animation: rally-bounce 2s infinite;
}

@media (min-width: 1024px) {

  .c-rally__flow,
  .c-lottery__flow {
    flex-direction: row;
    justify-content: center;
    gap: 2.4rem;
  }

  .c-rally__arrow,
  .c-lottery__arrow {
    transform: rotate(0);
  }

  .c-rally__points {
    flex-direction: row;
    gap: 4.8rem;
  }
}

/* --------------------------------
  * マイページ
  * -------------------------------- */
.c-mypage__header {
  margin-bottom: 4.8rem;
  text-align: center;
}

.c-mypage__main-title {
  color: #f1f5f9;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 3.6rem;
  font-weight: 900;
}

.c-mypage__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.4rem;
  margin-bottom: 2.4rem;
}

.c-mypage__card {
  padding: 3.2rem;
  border: 0.1rem solid #1e293b;
  border-radius: 1.2rem;
  background-color: #0f172ad9;
  box-shadow: 0 1.0rem 1.5rem -0.3rem #0000001a;
  backdrop-filter: blur(0.8rem);
  transition: transform 0.3s ease, border-color 0.3s ease;
}

.c-mypage__card:hover {
  transform: translateY(-0.5rem);
  border-color: #b08d57;
}

.c-mypage__num {
  display: block;
  margin-bottom: 0.8rem;
  color: #b08d57;
  font-family: 'Inter', sans-serif;
  font-size: 2.4rem;
  font-weight: 900;
}

.c-mypage__card-title {
  margin-bottom: 1.6rem;
  color: #fcd34d;
  font-size: 2.0rem;
  font-weight: 700;
  line-height: 1.4;
}

.c-mypage__desc {
  color: #94a3b8;
  font-size: 1.5rem;
  line-height: 1.6;
}

.c-mypage__card--special {
  position: relative;
  padding: 4.8rem;
  border: 0.3rem solid #d4af37;
  border-radius: 1.6rem;
  background: linear-gradient(135deg, #b08d5733 0%, #0f172ae6 100%);
  text-align: center;
  animation: mypage-pulse 3s infinite ease-in-out;
  overflow: hidden;
}

@keyframes mypage-pulse {
  0% {
    box-shadow: 0 0 2.0rem #b08d574d;
  }

  50% {
    box-shadow: 0 0 5.0rem #b08d57b3, inset 0 0 2.0rem #b08d5766;
    transform: translateY(-0.5rem);
  }

  100% {
    box-shadow: 0 0 2.0rem #b08d574d;
  }
}

.c-mypage__card--special::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  display: block;
  width: 50%;
  height: 100%;
  background: linear-gradient(to right, #0000, #fcd34d4d, #0000);
  transform: skewX(-20deg);
  animation: mypage-shine 4s infinite;
  pointer-events: none;
}

@keyframes mypage-shine {
  0% {
    left: -100%;
  }

  20% {
    left: 200%;
  }

  100% {
    left: 200%;
  }
}

.c-mypage__card--special .c-mypage__num {
  color: #fcd34d;
  font-size: 4.0rem;
  text-shadow: 0 0 1.5rem #fcd34d99;
}

.c-mypage__card--special .c-mypage__card-title {
  margin-bottom: 2.0rem;
  color: #fcd34d;
  font-size: 2.8rem;
  font-weight: 900;
  letter-spacing: 0.05em;
}

.c-mypage__card--special .c-mypage__desc {
  color: #f1f5f9;
  font-size: 1.8rem;
  font-weight: 700;
}

.c-mypage__date-note {
  display: inline-block;
  margin-top: 2.4rem;
  padding: 1.2rem 3.2rem;
  border: 0.2rem solid #fcd34d;
  border-radius: 999.9rem;
  background-color: #0f172acc;
  color: #fcd34d;
  font-size: 1.6rem;
  font-weight: 900;
  box-shadow: 0 0 1.5rem #fcd34d66;
}

@media (min-width: 768px) {
  .c-mypage__main-title {
    font-size: 4.8rem;
  }

  .c-mypage__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* --------------------------------
  * プログラム
  * -------------------------------- */
.c-program__day {
  margin-bottom: 8.0rem;
}

.c-program__date {
  margin-bottom: 4.0rem;
  padding-left: 2.4rem;
  border-left: 0.4rem solid #b08d57;
  color: #f1f5f9;
  font-size: 2.4rem;
  font-weight: 900;
  letter-spacing: 0.05em;
}

.c-program__list {
  display: flex;
  flex-direction: column;
  gap: 3.2rem;
}

.c-program__card {
  display: flex;
  flex-direction: column;
  gap: 4.0rem;
  padding: 3.2rem;
}

.c-program__card--special {
  position: relative;
  border-color: #b08d5799;
  background: linear-gradient(135deg, #1e293bcc 0%, #b08d571a 100%);
  overflow: hidden;
}

.c-program__badge {
  position: absolute;
  top: 0;
  right: 0;
  padding: 0.8rem 2.4rem;
  border-bottom-left-radius: 1.6rem;
  background-color: #b08d57;
  color: #020617;
  font-size: 1.6rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.c-program__lecturer {
  text-align: center;
  flex-shrink: 0;
}

.c-program__time {
  margin-bottom: 2.4rem;
  color: #fcd34d;
  font-size: 2.8rem;
  font-weight: 900;
}

.c-program__time--normal {
  color: #64748b;
  font-size: 2.4rem;
}

.c-program__image {
  margin: 0 auto 1.6rem;
  width: 14.0rem;
  height: 14.0rem;
  border: 0.2rem solid #b08d574d;
  border-radius: 1.2rem;
  object-fit: cover;
  box-shadow: 0 1.0rem 1.5rem -0.3rem #0000001a;
}

.c-program__image--normal {
  border-color: #334155;
  width: 12.0rem;
  height: 12.0rem;
}

.c-program__name {
  margin-bottom: 0.8rem;
  color: #f1f5f9;
  font-size: 2.2rem;
  font-weight: 700;
}

.c-program__role {
  color: #b08d57;
  font-size: 1.5rem;
  font-weight: 700;
}

.c-program__role--normal {
  color: #94a3b8;
  font-weight: 400;
}

.c-program__detail {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex-grow: 1;
}

.c-tag__group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.8rem;
  margin-bottom: 2.0rem;
}

.c-tag {
  padding: 0.6rem 1.6rem;
  border: 0.1rem solid #0000;
  border-radius: 999.9rem;
  font-size: 1.4rem;
  font-weight: 700;
  text-transform: uppercase;
  white-space: nowrap;
}

.c-tag--offline {
  border-color: #22c55e33;
  background-color: #14532d4d;
  color: #4ade80;
}

.c-tag--online {
  border-color: #b08d5733;
  background-color: #b08d5733;
  color: #fcd34d;
}

.c-tag--session {
  border-radius: 0.4rem;
  background-color: #b08d5766;
  color: #fcd34d;
  letter-spacing: -0.05em;
}

.c-program__title {
  margin-bottom: 1.6rem;
  color: #f1f5f9;
  font-size: 2.8rem;
  font-weight: 900;
  line-height: 1.2;
}

.c-program__title--normal {
  font-size: 2.4rem;
}

.c-program__desc-sub {
  margin-bottom: 1.6rem;
  color: #b08d57;
  font-size: 1.6rem;
  font-weight: 700;
  font-style: italic;
}

.c-program__desc-sub--normal {
  color: #94a3b8;
  font-style: normal;
}

.c-program__desc-text {
  color: #94a3b8;
  font-size: 1.5rem;
  line-height: 1.6;
}

.c-program__profile {
  margin-top: 2.4rem;
  padding: 1.6rem;
  border-radius: 0.8rem;
  background-color: #1e293b66;
}

.c-program__profile-title {
  margin-bottom: 0.8rem;
  color: #cbd5e1;
  font-size: 1.4rem;
  font-weight: 700;
}

.c-program__profile-text {
  color: #94a3b8;
  font-size: 1.4rem;
  line-height: 1.6;
}

@media (min-width: 768px) {
  .c-program__card {
    flex-direction: row;
  }

  .c-program__lecturer {
    width: 33.333%;
  }
}

/* --------------------------------
  * 出展企業
  * -------------------------------- */
.c-exhibitor__catchphrase {
  margin-top: 1.6rem;
  color: #fcd34d;
  font-size: 1.8rem;
  font-weight: 900;
  letter-spacing: 0.05em;
}

.c-exhibitor__controls {
  margin-bottom: 3.2rem;
}

.c-exhibitor__controls-top {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  margin-bottom: 2.4rem;
}

@media (min-width: 768px) {
  .c-exhibitor__catchphrase {
    font-size: 2.4rem;
  }

  .c-exhibitor__controls-top {
    flex-direction: row;
    align-items: center;
  }
}

.c-search__wrap {
  position: relative;
  flex-grow: 1;
}

.c-search__input {
  width: 100%;
  padding: 1.2rem 1.6rem 1.2rem 4.0rem;
  border: 0.1rem solid #1e293b;
  border-radius: 0.8rem;
  background-color: #0f172a99;
  color: #f1f5f9;
  font-size: 1.5rem;
  transition: all 0.3s;
}

.c-search__input:focus {
  outline: none;
  border-color: #b08d5780;
}

.c-search__icon {
  position: absolute;
  top: 50%;
  left: 1.2rem;
  width: 2.0rem;
  height: 2.0rem;
  color: #64748b;
  transform: translateY(-50%);
}

.c-view-toggle {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem;
  border: 0.1rem solid #1e293b;
  border-radius: 0.6rem;
  background-color: #0f172a99;
  flex-shrink: 0;
}

.c-view-toggle__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4.0rem;
  height: 4.0rem;
  border-radius: 0.4rem;
  color: #64748b;
  transition: all 0.3s;
}

.c-view-toggle__btn.is-active {
  background-color: #1e293b;
  color: #b08d57;
}

.c-index__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  margin-bottom: 2.0rem;
}

.c-index__btn,
.c-filter__btn {
  padding: 0.6rem 1.2rem;
  border: 0.1rem solid #1e293b;
  border-radius: 0.6rem;
  background-color: #0f172a99;
  color: #94a3b8;
  font-size: 1.4rem;
  font-weight: 700;
  transition: all 0.3s;
}

.c-filter__wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
}

.c-index__btn:hover,
.c-filter__btn:hover {
  border-color: #b08d5780;
}

.c-index__btn.is-active,
.c-filter__btn.is-active {
  border-color: #b08d57;
  background-color: #b08d57;
  color: #020617;
}

.c-tag--genre {
  padding: 0.2rem 0.8rem;
  border: 0.1rem solid #b08d574d;
  border-radius: 999.9rem;
  background-color: #b08d571a;
  color: #b08d57;
  font-size: 1.2rem;
}

.c-tag--main {
  padding: 0.2rem 0.6rem;
  border: 0.1rem solid #fcd34d;
  border-radius: 0.4rem;
  background-color: #fcd34d1a;
  color: #fcd34d;
  font-size: 1.1rem;
  font-weight: 900;
}

.c-tag--sub {
  padding: 0.2rem 0.6rem;
  border: 0.1rem solid #64748b;
  border-radius: 0.4rem;
  background-color: #64748b1a;
  color: #94a3b8;
  font-size: 1.1rem;
  font-weight: 700;
}

.c-tag--product-genre {
  padding: 0.2rem 0.8rem;
  border: 0.1rem solid #64748b80;
  border-radius: 999.9rem;
  background-color: #64748b1a;
  color: #cbd5e1;
  font-size: 1.1rem;
}

.l-exhibitor-wrap {
  min-height: 40.0rem;
}

.c-exhibitor-card {
  display: flex;
  flex-direction: column;
  gap: 2.0rem;
  padding: 2.4rem;
  border: 0.1rem solid #1e293b;
  border-radius: 1.2rem;
  background-color: #0f172ad9;
}

.c-exhibitor-card__company {
  margin-bottom: 1.2rem;
  color: #f1f5f9;
  font-size: 2.0rem;
  font-weight: 900;
  line-height: 1.3;
}

.c-exhibitor-row {
  border: 0.1rem solid #1e293b;
  border-radius: 0.8rem;
  background-color: #0f172a99;
  transition: background-color 0.3s;
  overflow: hidden;
}

.c-exhibitor-row:hover {
  background-color: #1e293b80;
}

.c-exhibitor-row__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 1.2rem 1.6rem;
  cursor: pointer;
}

.c-exhibitor-row__info {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  flex-grow: 1;
  padding-right: 1.6rem;
}

.c-exhibitor-row__company {
  color: #f1f5f9;
  font-size: 1.6rem;
  font-weight: 900;
}

.c-exhibitor-row__summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.8rem;
}

.c-exhibitor-row__product-name {
  color: #94a3b8;
  font-size: 1.4rem;
}

.c-exhibitor-row__separator {
  color: #334155;
  margin: 0 0.2rem;
}

.c-exhibitor-row__icon {
  width: 2.0rem;
  height: 2.0rem;
  color: #b08d57;
  transition: transform 0.3s;
  flex-shrink: 0;
}

.c-exhibitor-row.is-open .c-exhibitor-row__icon {
  transform: rotate(180deg);
}

.c-exhibitor-row__body {
  display: none;
  padding: 0 1.6rem 1.6rem;
}

.c-exhibitor-row__body-inner {
  padding-top: 1.6rem;
  border-top: 0.1rem dashed #334155;
}

.c-product-detail {
  padding-bottom: 1.6rem;
  margin-bottom: 1.6rem;
  border-bottom: 0.1rem solid #1e293b;
}

.c-product-detail:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: none;
}

.c-product-detail__name {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-bottom: 0.8rem;
  color: #f1f5f9;
  font-size: 1.5rem;
  font-weight: 700;
}

.c-product-detail__desc {
  color: #94a3b8;
  font-size: 1.4rem;
  line-height: 1.6;
  white-space: normal;
  word-wrap: break-word;
}

@media (min-width: 768px) {
  .c-exhibitor-row__info {
    flex-direction: row;
    align-items: center;
    gap: 2.4rem;
  }

  .c-exhibitor-row__company {
    width: 30%;
    flex-shrink: 0;
  }
}

.c-tab__wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-bottom: 1.6rem;
  border-bottom: 0.1rem solid #1e293b;
}

.c-product__tab {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.8rem 1.2rem;
  margin-bottom: -0.1rem;
  border-bottom: 0.2rem solid #0000;
  color: #64748b;
  font-size: 1.4rem;
  font-weight: 700;
  transition: all 0.3s;
}

.c-product__tab.is-active,
.c-product__tab:hover {
  border-bottom-color: #fcd34d;
  color: #fcd34d;
}

.c-product__tab--main.is-active {
  color: #d4af37;
}

.c-product__tab-icon {
  width: 1.4rem;
  height: 1.4rem;
}

.c-product__content {
  display: block;
}

.c-product__content.is-hidden {
  display: none;
}

.c-product__name-head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-bottom: 0.8rem;
  color: #fcd34d;
  font-size: 1.6rem;
  font-weight: 700;
}

.c-product__desc {
  color: #94a3b8;
  font-size: 1.4rem;
  line-height: 1.6;
}

.c-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  margin-top: 4.8rem;
}

.c-pagination__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4.0rem;
  height: 4.0rem;
  border: 0.1rem solid #1e293b;
  border-radius: 0.8rem;
  background-color: #0f172a99;
  color: #94a3b8;
  font-size: 1.4rem;
  font-weight: 700;
  transition: all 0.3s;
}

.c-pagination__btn:not(:disabled):hover {
  border-color: #b08d5780;
  color: #f1f5f9;
}

.c-pagination__btn.is-active {
  border-color: #b08d57;
  background-color: #b08d57;
  color: #020617;
}

.c-pagination__btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* --------------------------------
  * LTスケジュール
  * -------------------------------- */
.c-lt__wrapper {
  display: flex;
  flex-direction: column;
  gap: 4.8rem;
}

.c-lt__date {
  margin-bottom: 2.4rem;
  padding-left: 1.6rem;
  border-left: 0.4rem solid #b08d57;
  color: #f1f5f9;
  font-size: 2.0rem;
  font-weight: 900;
}

.c-lt__block {
  margin-bottom: 3.2rem;
}

.c-lt__block:last-child {
  margin-bottom: 0;
}

.c-lt__block-title {
  margin-bottom: 1.6rem;
  padding-bottom: 0.8rem;
  border-bottom: 0.1rem solid #b08d5733;
  color: #b08d57;
  font-size: 1.8rem;
  font-weight: 700;
}

.c-table__wrap {
  border: 0.1rem solid #1e293b;
  border-radius: 0.8rem;
  background-color: #0f172acc;
  overflow-x: auto;
}

.c-table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
}

.c-table__head {
  background-color: #1e293b80;
  color: #b08d57;
}

.c-table__th,
.c-table__td {
  padding: 1.2rem 1.6rem;
  font-size: 1.4rem;
}

.c-table__tr {
  border-bottom: 0.1rem solid #1e293b;
  transition: background-color 0.3s;
}

.c-table__tr:hover {
  background-color: #1e293b4d;
}

.c-table__td--time {
  font-family: 'Inter', monospace;
  white-space: nowrap;
}

.c-table__td--company {
  color: #f1f5f9;
  font-weight: 700;
}

.c-table__td--product {
  color: #94a3b8;
}

/* --------------------------------
  * お問い合わせ
  * -------------------------------- */
.c-contact__info-box {
  padding: 4.8rem 3.2rem;
  border: 0.1rem solid #b08d571a;
  border-radius: 1.6rem;
  background-color: #0f172acc;
  box-shadow: 0 2.5rem 5.0rem -1.2rem #00000040;
  backdrop-filter: blur(1.2rem);
  text-align: center;
}

.c-contact__company {
  margin-bottom: 1.6rem;
  color: #f1f5f9;
  font-size: 2.0rem;
  font-weight: 700;
}

.c-contact__company span {
  display: block;
  margin-top: 0.4rem;
  color: #94a3b8;
  font-size: 1.4rem;
  font-weight: 400;
}

.c-contact__detail {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.2rem;
  margin-bottom: 4.0rem;
}

.c-contact__tel,
.c-contact__mail {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  color: #cbd5e1;
  font-size: 1.8rem;
  font-family: 'Inter', sans-serif;
}

.c-contact__tel svg,
.c-contact__mail svg {
  color: #b08d57;
  width: 2.0rem;
  height: 2.0rem;
}

.c-button--submit {
  width: 100%;
  padding: 2.0rem;
  border-radius: 1.2rem;
  font-size: 2.0rem;
  letter-spacing: 0.2em;
}

@media (min-width: 768px) {
  .c-contact__info-box {
    padding: 6.4rem 4.8rem;
  }

  .c-button--submit {
    width: 80%;
  }
}

/* --------------------------------
  * フッター
  * -------------------------------- */
.c-footer {
  padding: 4.8rem 0;
  border-top: 0.1rem solid #ffffff0d;
  background-color: #020617;
  text-align: center;
}

.c-footer__text {
  color: #475569;
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: 0.3em;
  text-transform: uppercase;
}

/* --------------------------------
  * チャットボット
  * -------------------------------- */
.c-chat__toggle {
  position: fixed;
  right: 0;
  bottom: 4.8rem;
  z-index: 100;
  cursor: pointer;
  transition: transform 0.3s ease, opacity 0.3s ease, visibility 0.3s ease;
}

.c-chat__toggle:hover {
  transform: translateX(-0.4rem);
  opacity: 0.9;
}

.c-chat__toggle.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.c-chat__toggle img {
  display: block;
  width: 6.4rem;
  height: auto;
  border-top-left-radius: 0.8rem;
  border-bottom-left-radius: 0.8rem;
  box-shadow: -0.2rem 0.4rem 1.2rem #0000004d;
}

.c-chat__window {
  position: fixed;
  right: 2.4rem;
  bottom: 2.4rem;
  z-index: 100;
  display: none;
  flex-direction: column;
  width: calc(100% - 4.8rem);
  max-width: 45.0rem;
  height: 70.0vh;
  min-height: 45.0rem;
  border: 0.1rem solid #1e293b;
  border-radius: 1.6rem;
  background-color: #0f172a;
  background-image: linear-gradient(#0f172a1a, #0f172a1a), url('../images/chatbot_bg.png');
  background-size: cover;
  background-position: center;
  box-shadow: 0 1.5rem 4.0rem #000000b3;
  backdrop-filter: blur(0.2rem);
  overflow: hidden;
}

@media (min-width: 768px) {
  .c-chat__window {
    width: 33vw;
    max-width: none;
    min-width: 38.0rem;
  }
}

@keyframes chat-fade-in {
  from {
    opacity: 0;
    transform: translateY(2.0rem);
  }

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

.c-chat__window.is-open {
  display: flex;
  animation: chat-fade-in 0.3s ease forwards;
}

/* PCではサイドバーに埋め込み */
@media (min-width: 1024px) {
  .c-chat__window {
    position: static;
    display: flex !important;
    width: 60.0rem;
    max-width: 100%;
    height: 100%;
    min-height: 100%;
    border: none;
    border-radius: 0;
    box-shadow: none;
    animation: none;
  }
}

.c-chat__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.2rem 1.6rem;
  background-color: #1e293b;
  border-bottom: 0.1rem solid #334155;
  gap: 1.6rem;
}

.c-chat__title {
  color: #f1f5f9;
  font-size: 1.6rem;
  font-weight: 700;
  flex-grow: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.c-chat__controls {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  flex-shrink: 0;
}

.c-chat__reset,
.c-chat__close {
  color: #94a3b8;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3.2rem;
  height: 3.2rem;
  border-radius: 0.6rem;
}

.c-chat__reset:hover,
.c-chat__close:hover {
  background-color: #334155;
  color: #f1f5f9;
}

.c-chat__reset svg,
.c-chat__close svg {
  width: 2.0rem;
  height: 2.0rem;
}

.c-chat__body {
  flex-grow: 1;
  padding: 1.6rem;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
}

.c-chat__msg-wrap {
  display: flex;
  align-items: flex-start;
  gap: 0.8rem;
  max-width: 85%;
}

.c-chat__msg-wrap--user {
  flex-direction: row-reverse;
  align-self: flex-end;
}

.c-chat__msg-wrap--bot {
  flex-direction: row;
  align-self: flex-start;
}

.c-chat__bot-icon {
  width: 3.6rem;
  height: 3.6rem;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  box-shadow: 0 0.2rem 0.6rem #0000004d;
  border: 0.1rem solid #b08d5780;
  background-color: #0f172a;
}

.c-chat__msg {
  max-width: 100%;
  padding: 1.2rem 1.6rem;
  border-radius: 1.2rem;
  font-size: 1.6rem;
  line-height: 1.6;
  word-break: break-word;
  overflow-wrap: break-word;
}

.c-chat__msg--bot {
  background-color: #353e4dde;
  /* backdrop-filter: blur(0.1rem); */
  color: #f1f5f9;
  border-top-left-radius: 0.4rem;
}

.c-chat__msg--user {
  background-color: #b08d57cc;
  /* backdrop-filter: blur(0.1rem); */
  color: #0f172a;
  border-top-right-radius: 0.4rem;
}

.c-chat__msg a {
  color: #fcd34d;
  text-decoration: underline;
}

.c-chat__msg--user a {
  color: #0f172a;
}

.c-chat__typing {
  font-size: 2.0rem;
  letter-spacing: 0.2em;
  animation: typing 1.5s infinite;
  padding: 1.2rem 1.6rem;
  line-height: 1;
}

@keyframes typing {

  0%,
  100% {
    opacity: 0.3;
  }

  50% {
    opacity: 1;
  }
}

.c-chat__quick-replies {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem;
  margin-top: 0.8rem;
}

.c-chat__quick-reply-btn {
  padding: 0.6rem 1.2rem;
  border: 0.1rem solid #b08d57;
  border-radius: 999.9rem;
  background-color: #0f172a99;
  color: #fcd34d;
  font-size: 1.2rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s ease;
}

.c-chat__quick-reply-btn:hover {
  background-color: #b08d57;
  color: #0f172a;
}

.c-chat__footer {
  display: flex;
  padding: 1.2rem;
  background-color: #1e293b;
  border-top: 0.1rem solid #334155;
  gap: 0.8rem;
}

.c-chat__input {
  flex-grow: 1;
  padding: 0.8rem 1.2rem;
  border: 0.1rem solid #334155;
  border-radius: 0.6rem;
  background-color: #0f172a;
  color: #f1f5f9;
  font-size: 1.4rem;
  outline: none;
  transition: border-color 0.3s ease;
}

.c-chat__input:focus {
  border-color: #b08d57;
}

.c-chat__submit {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4.0rem;
  height: 4.0rem;
  border-radius: 0.6rem;
  background-color: #b08d57;
  color: #0f172a;
  flex-shrink: 0;
  transition: opacity 0.3s ease;
}

.c-chat__submit:hover {
  opacity: 0.8;
}

@media (max-width: 767px) {
  .u-hidden-sm {
    display: none;
  }
}