@charset "UTF-8";
/* VARIABLE - RENEWAL 2026
----------------------------------------------------*/
/* MIXIN
----------------------------------------------------*/
/*
* Usage: rem-sp(16) => 1rem
*/
@media (max-width: 750px) {
  :root {
    --cqw: 1vw;
  }
}
@media (min-width: 751px) {
  :root {
    --cqw: calc(600 / 1920 * 1vw);
  }
}

.font-en {
  font-family: "Poppins", YuGothic, "Yu Gothic", sans-serif;
}

@media (min-width: 751px) {
  :root {
    --cqw: calc(375 / 1440 * 1vw);
  }
}

@media (max-width: 750px) {
  html {
    scroll-padding-top: calc(var(--cqw, 1cqw) * 18.933);
  }
}
img {
  display: block;
  width: 100%;
}

/* スクリーンリーダー専用（視覚的に非表示） */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

#main .container {
  width: 100%;
  margin: 0 auto;
}

/* bg
-------------------------------------------------- */
#main {
  background-color: #F7F3E7;
}
@media (min-width: 751px) {
  #main {
    background-size: 2vw auto;
  }
}

#main .bg {
  padding-top: calc(var(--cqw, 1cqw) * 5.333);
  padding-bottom: calc(var(--cqw, 1cqw) * 13.333);
  position: relative;
}

#main .title {
  margin: 0 auto;
}
@media (min-width: 751px) {
  #main .title {
    width: 100%;
  }
}

#main .wrapper {
  width: 100%;
  margin: 0 auto;
}

/* kv
-------------------------------------------------- */
#main #kv {
  text-align: center;
  line-height: 0;
  margin: 0 auto;
}

#main #kv img {
  width: 100%;
}

/* sub_menu
-------------------------------------------------- */
#main #sub_menu {
  margin-top: calc(var(--cqw, 1cqw) * 5.333);
}

#main #sub_menu .wrapper {
  padding: 0 4%;
  margin: 0 auto;
}

#main #sub_menu ul {
  display: flex;
  align-items: start;
}

#main #sub_menu ul li {
  width: 20%;
}

#main #sub_menu ul li a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  color: #221714;
  font-family: "Poppins", sans-serif;
  font-size: calc(var(--cqw, 1cqw) * 2.667);
  font-weight: 700;
  height: calc(var(--cqw, 1cqw) * 16);
  text-decoration: none;
  padding: calc(var(--cqw, 1cqw) * 1.333) 0;
  position: relative;
}

/* 疑似要素で縦線を描画（サブピクセル問題対策） */
#main #sub_menu ul li a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 1px;
  background: repeating-linear-gradient(to bottom, #CF5B47 0px, #CF5B47 2px, transparent 2px, transparent 4px);
}

#main #sub_menu ul li:last-child a::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 1px;
  background: repeating-linear-gradient(to bottom, #CF5B47 0px, #CF5B47 2px, transparent 2px, transparent 4px);
}

#main #sub_menu ul li a > span {
  transition: opacity 0.3s ease;
}

#main #sub_menu ul li a:hover > span {
  opacity: 0.7;
}

#main #sub_menu ul li a > span:first-child {
  display: inline-block;
  text-align: center;
  line-height: 1.1;
}

#main #sub_menu ul li img {
  width: 100%;
  vertical-align: top;
}

#main #sub_menu ul li a .arrow-icon {
  width: calc(var(--cqw, 1cqw) * 4.533);
}

/* umajo spot
-------------------------------------------------- */
#main #umajo {
  text-align: center;
}

#main #umajo .wrapper {
  padding: calc(var(--cqw, 1cqw) * 13.333) 0 0;
}

#main #umajo .title {
  width: calc(var(--cqw, 1cqw) * 70.4);
  margin-bottom: calc(var(--cqw, 1cqw) * 5.333);
}

.spot__01 {
  width: calc(var(--cqw, 1cqw) * 74.667);
  margin: 0 auto;
  display: block;
}

/* schedule
-------------------------------------------------- */
#main #schedule {
  margin-top: calc(var(--cqw, 1cqw) * 5.333);
}

#main #schedule .wrapper {
  padding: 0 calc(var(--cqw, 1cqw) * 8);
}

#main #schedule .schedule-table {
  background: #CF5B47;
  border-radius: calc(var(--cqw, 1cqw) * 2.133);
  padding: calc(var(--cqw, 1cqw) * 3.2) calc(var(--cqw, 1cqw) * 2.667) calc(var(--cqw, 1cqw) * 4);
  display: flex;
}

#main #schedule .schedule-table__img-date {
  width: calc(var(--cqw, 1cqw) * 20.267);
  flex-shrink: 0;
}
@media (min-width: 751px) {
  #main #schedule .schedule-table__img-date {
    width: calc(var(--cqw, 1cqw) * 25.867);
  }
}

#main #schedule .schedule-table__img-date img {
  border-radius: 2px 0 0 2px;
  overflow: hidden;
}

#main #schedule .schedule-table__img-content {
  height: 100%;
}

#main #schedule .schedule-table__img-content img {
  border-radius: 0 2px 2px 0;
  overflow: hidden;
  height: 100%;
  width: auto;
  max-width: none;
}

#main #schedule .schedule-table__scroll {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  min-width: 0;
}

#main #schedule .schedule-table__scroll-inner {
  overflow-x: scroll;
  overflow-y: hidden;
  -ms-overflow-style: none;
  scrollbar-width: none;
  overscroll-behavior: none;
  flex-grow: 1;
}

#main #schedule .schedule-table__scroll-inner::-webkit-scrollbar {
  display: none;
}

/* カスタムスクロールバー */
#main #schedule .schedule-scrollbar {
  height: calc(var(--cqw, 1cqw) * 1.067);
  background: #F7F3E7;
  border-radius: calc(var(--cqw, 1cqw) * 0.533);
  margin: calc(var(--cqw, 1cqw) * 2.667) calc(var(--cqw, 1cqw) * 2.667) 0;
  position: relative;
  cursor: pointer;
  flex-shrink: 0;
}

#main #schedule .schedule-scrollbar__thumb {
  height: 100%;
  background: #E1BA52;
  border-radius: calc(var(--cqw, 1cqw) * 0.533);
  position: absolute;
  left: 0;
  cursor: grab;
  min-width: calc(var(--cqw, 1cqw) * 5.333);
}

#main #schedule .schedule-scrollbar__thumb:active {
  cursor: grabbing;
}

#main #schedule .concierge {
  margin-top: calc(var(--cqw, 1cqw) * 10.667);
  padding: 0 calc(var(--cqw, 1cqw) * 2.667);
}

/* drink&sweets
-------------------------------------------------- */
#main #sweets {
  margin-top: calc(var(--cqw, 1cqw) * 13.333);
}

#main #sweets .wrapper {
  background: #E9DDCC;
  border-radius: calc(var(--cqw, 1cqw) * 8) calc(var(--cqw, 1cqw) * 8) 0 0;
  padding: calc(var(--cqw, 1cqw) * 12) 0 calc(var(--cqw, 1cqw) * 13.333);
}

#main #sweets .title {
  width: calc(var(--cqw, 1cqw) * 85.867);
  margin-bottom: calc(var(--cqw, 1cqw) * 8);
}

#main #sweets .contents {
  padding-left: calc(var(--cqw, 1cqw) * 8);
  padding-right: calc(var(--cqw, 1cqw) * 8);
  display: flex;
  flex-direction: column;
  align-items: center;
  row-gap: calc(var(--cqw, 1cqw) * 8);
}

#main #sweets .contents > .sweets03 {
  margin-top: calc(var(--cqw, 1cqw) * 2.667);
}

/* event
-------------------------------------------------- */
#main #event {
  background: #E9DDCC;
}

#main #event .wrapper {
  background: #F7F3E7;
  border-radius: calc(var(--cqw, 1cqw) * 8) calc(var(--cqw, 1cqw) * 8) 0 0;
  padding: calc(var(--cqw, 1cqw) * 12) 0 0;
}

#main #event .title {
  width: calc(var(--cqw, 1cqw) * 43.733);
  margin-bottom: calc(var(--cqw, 1cqw) * 8);
}

#main #event .contents {
  padding-left: calc(var(--cqw, 1cqw) * 8);
  padding-right: calc(var(--cqw, 1cqw) * 8);
  display: flex;
  flex-direction: column;
  align-items: center;
  row-gap: calc(var(--cqw, 1cqw) * 8);
}

#main #event .contents__bg-none > img {
  transform: translateX(calc(var(--cqw, 1cqw) * 2.667));
}

#main #event .contents .banner-app {
  display: block;
  width: calc(var(--cqw, 1cqw) * 78.667);
  margin-top: calc(var(--cqw, 1cqw) * 5.333);
  transition: all 0.3s ease;
  transform: translateX(calc(var(--cqw, 1cqw) * 2.667));
}
@media (min-width: 751px) {
  #main #event .contents .banner-app {
    width: 94%;
    transform: translateX(0.7142857143vw);
  }
}

#main #event .contents .banner-app:hover {
  opacity: 0.7;
}

#main #event .contents__bg-white > * {
  border-top: 1px dashed #E1BA52;
  padding-top: calc(var(--cqw, 1cqw) * 8);
}

#main #event .contents__bg-white > *:first-child {
  border-top: none;
  padding-top: 0;
}

#main #event .contents__bg-white {
  display: flex;
  flex-direction: column;
  row-gap: calc(var(--cqw, 1cqw) * 8);
  margin-top: calc(var(--cqw, 1cqw) * 5.333);
  background: #fff;
  border-radius: calc(var(--cqw, 1cqw) * 2.133);
  border: 1px dashed #E1BA52;
  padding: calc(var(--cqw, 1cqw) * 11.467) calc(var(--cqw, 1cqw) * 4.8) calc(var(--cqw, 1cqw) * 8);
  position: relative;
}

#main #event .contents__bg-white::before {
  position: absolute;
  content: "";
  background: url(../img/icon-ribbon.svg) no-repeat center center/cover;
  top: calc(var(--cqw, 1cqw) * -2.4);
  left: 50%;
  transform: translateX(-50%);
  width: calc(var(--cqw, 1cqw) * 8.8);
  height: calc(var(--cqw, 1cqw) * 5.867);
}
@media (min-width: 751px) {
  #main #event .contents__bg-white::before {
    width: 2.3571428571vw;
  }
}

#main #event .contents__bg-white .banner-title {
  font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-size: calc(var(--cqw, 1cqw) * 3.2);
  font-weight: 700;
  color: #222;
  letter-spacing: 0.05em;
  text-align: center;
  margin-top: calc(var(--cqw, 1cqw) * 5.333);
}
@media (min-width: 751px) {
  #main #event .contents__bg-white .banner-title {
    font-size: calc(var(--cqw, 1cqw) * 4.267);
  }
}

#main #event .contents__bg-white .banner-seminar {
  display: block;
  margin-top: calc(var(--cqw, 1cqw) * 2.667);
  transition: all 0.3s ease;
}

#main #event .contents__bg-white .banner-seminar:hover {
  opacity: 0.7;
}

#main #event .contents__bg-white .banner-seminar img {
  display: block;
  width: 100%;
  height: 100%;
}

/* map
-------------------------------------------------- */
#main #map .wrapper {
  padding: calc(var(--cqw, 1cqw) * 13.333) calc(var(--cqw, 1cqw) * 10.667);
}

#main #map .title {
  width: calc(var(--cqw, 1cqw) * 35.2);
  margin-bottom: calc(var(--cqw, 1cqw) * 8);
}

#main #map ul.chuuibox {
  margin-top: calc(var(--cqw, 1cqw) * 8);
  text-align: justify;
  font-family: "Zen Kaku Gothic Antique", sans-serif;
}

#main #map ul.chuuibox li {
  color: #222;
  font-size: 1.25rem;
  line-height: 2;
  display: block;
  position: relative;
}
@media (min-width: 751px) {
  #main #map ul.chuuibox li {
    font-size: 1rem;
  }
}

#main #map ul.chuuibox li:before {
  content: "※";
  float: left;
  display: block;
  position: relative;
}

.map__contents {
  width: 100%;
  margin: 0 auto;
  padding-left: calc(var(--cqw, 1cqw) * 1.333);
  padding-right: calc(var(--cqw, 1cqw) * 1.333);
}

.map__btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  row-gap: calc(var(--cqw, 1cqw) * 2.667);
  margin-top: calc(var(--cqw, 1cqw) * 5.333);
}

.map__btn .map-btn__item {
  width: 100%;
  padding: 0 calc(var(--cqw, 1cqw) * 3.2);
}

.map__btn .map-btn__item a {
  display: block;
  transition: all 0.3s ease;
}

.map__btn .map-btn__item a img {
  width: 100%;
  height: auto;
  display: block;
}

.map__btn .map-btn__item a:hover {
  opacity: 0.7;
}
