@charset "UTF-8";
:root {
  --ff-montserrat: "Montserrat", sans-serif;
  --ff-noto-serif-jp: "Noto Serif JP", serif;
  --ff-zen-maru-gothic: "Zen Maru Gothic", sans-serif;
  --ff-zen-kaku-gothic-new: "Zen Kaku Gothic New", sans-serif;
  --ff-noto-sans-jp: "Noto Sans JP", sans-serif;
  --color-text: #3E3A39;
  --color-beige: #FFFAE7;
  --color-white: #FFFFFF;
  --color-green: #00723A;
  --color-orange: #F28541;
  --color-been: #CFE011;
  --color-light-brown: rgba(78, 47, 47, 0.60);
  --color-blue: #50B3D7;
  --color-dark-blue: #1489B4;
  --color-light-blue: #CFF9FE;
  --color-yellow: #FAEB18;
  --color-red: #E95F52;
}

@-webkit-keyframes float-up {
  0%, 100% {
    -webkit-transform: translateY(4px);
            transform: translateY(4px);
  }
  50% {
    -webkit-transform: translateY(-4px);
            transform: translateY(-4px);
  }
}

@keyframes float-up {
  0%, 100% {
    -webkit-transform: translateY(4px);
            transform: translateY(4px);
  }
  50% {
    -webkit-transform: translateY(-4px);
            transform: translateY(-4px);
  }
}
@-webkit-keyframes float-down {
  0%, 100% {
    -webkit-transform: translateY(-4px);
            transform: translateY(-4px);
  }
  50% {
    -webkit-transform: translateY(4px);
            transform: translateY(4px);
  }
}
@keyframes float-down {
  0%, 100% {
    -webkit-transform: translateY(-4px);
            transform: translateY(-4px);
  }
  50% {
    -webkit-transform: translateY(4px);
            transform: translateY(4px);
  }
}
.float-up-start {
  -webkit-animation: float-up 3s ease-in-out infinite;
          animation: float-up 3s ease-in-out infinite;
}

.float-down-start {
  -webkit-animation: float-down 3s ease-in-out infinite;
          animation: float-down 3s ease-in-out infinite;
}

@-webkit-keyframes sway-lr {
  0% {
    -webkit-transform: rotate(-6deg);
            transform: rotate(-6deg);
  }
  50% {
    -webkit-transform: rotate(6deg);
            transform: rotate(6deg);
  }
  100% {
    -webkit-transform: rotate(-6deg);
            transform: rotate(-6deg);
  }
}

@keyframes sway-lr {
  0% {
    -webkit-transform: rotate(-6deg);
            transform: rotate(-6deg);
  }
  50% {
    -webkit-transform: rotate(6deg);
            transform: rotate(6deg);
  }
  100% {
    -webkit-transform: rotate(-6deg);
            transform: rotate(-6deg);
  }
}
.sway-lr {
  -webkit-transform-origin: center bottom;
          transform-origin: center bottom;
  -webkit-animation: sway-lr 3s ease-in-out infinite;
          animation: sway-lr 3s ease-in-out infinite;
}

@-webkit-keyframes sway-rl {
  0% {
    -webkit-transform: rotate(6deg);
            transform: rotate(6deg);
  }
  50% {
    -webkit-transform: rotate(-6deg);
            transform: rotate(-6deg);
  }
  100% {
    -webkit-transform: rotate(6deg);
            transform: rotate(6deg);
  }
}

@keyframes sway-rl {
  0% {
    -webkit-transform: rotate(6deg);
            transform: rotate(6deg);
  }
  50% {
    -webkit-transform: rotate(-6deg);
            transform: rotate(-6deg);
  }
  100% {
    -webkit-transform: rotate(6deg);
            transform: rotate(6deg);
  }
}
.sway-rl {
  -webkit-transform-origin: center bottom;
          transform-origin: center bottom;
  -webkit-animation: sway-rl 3s ease-in-out infinite;
          animation: sway-rl 3s ease-in-out infinite;
}

.js-scale-in {
  opacity: 0;
  scale: 0;
  -webkit-transition: opacity 0.6s ease, scale 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
  transition: opacity 0.6s ease, scale 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
  -webkit-transform-origin: bottom center;
          transform-origin: bottom center;
}
.js-scale-in.is-visible {
  opacity: 1;
  scale: 1;
}

.js-fade-in-up {
  opacity: 0;
  -webkit-transform: translateY(28px);
          transform: translateY(28px);
  -webkit-transition: opacity 0.75s ease, -webkit-transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
  transition: opacity 0.75s ease, -webkit-transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
  transition: opacity 0.75s ease, transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
  transition: opacity 0.75s ease, transform 0.75s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}
.js-fade-in-up.is-visible {
  opacity: 1;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .js-fade-in-up {
    opacity: 1;
    -webkit-transform: none;
            transform: none;
    -webkit-transition: none;
    transition: none;
  }
}
/*----------------------------------------------
	Overall settings
-----------------------------------------------*/
body {
  color: var(--color-text);
  text-align: center;
  background: none;
  font-family: var(--ff-noto-sans-jp);
}

.l-footer .footer_navi {
  text-align: left;
}

body.ovh {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100vh;
}

a {
  color: #111;
  text-decoration: none;
  -webkit-transition: all 0.2s;
  transition: all 0.2s;
}

a:hover {
  opacity: 0.7;
  text-decoration: none;
}

.underline {
  text-decoration: underline;
}

em {
  font-style: inherit;
  font-weight: inherit;
}

#wrapper {
  overflow-x: clip;
}

/*------------------------------ responsive ------------------------------*/
@media screen and (max-width: 540px) {
  body {
    min-width: inherit;
  }
  a:hover {
    opacity: 1;
  }
}
@media screen and (max-width: 350px) {
  html {
    font-size: 50%;
  }
}
.wrap {
  padding-left: 3%;
  padding-right: 3%;
}

.rtb {
  position: relative;
}

/*------------------------------
sp_menu
-------------------------------*/
#sp_menu {
  display: block;
  width: 100%;
  padding: 0;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 90;
  overflow: visible;
}

@media screen and (min-width: 769px) {
  #sp_menu {
    display: none;
    background: url(../img/menu_btn.webp) no-repeat center/100%;
  }
}
#sp_menu .menu {
  width: clamp(9.3013333333rem, 29.0666666667vw, 15.1728rem);
  height: auto;
  aspect-ratio: 109/94;
  position: absolute;
  top: clamp(8.96rem, 28vw, 14.616rem);
  right: clamp(1.9626666667rem, 6.1333333333vw, 3.2016rem);
  z-index: 22;
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  gap: clamp(1.1946666667rem, 3.7333333333vw, 1.9488rem);
  -webkit-tap-highlight-color: transparent;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  background: url("../img/menu_btn.webp") no-repeat center/100%;
  padding-top: clamp(1.8773333333rem, 5.8666666667vw, 3.0624rem);
}

.menu_lines {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: clamp(0.7253333333rem, 2.2666666667vw, 1.1832rem);
  width: clamp(2.3893333333rem, 7.4666666667vw, 3.8976rem);
}

.menu_lines .line {
  display: block;
  width: 100%;
  height: 1.5px;
  background: #fff;
  border-radius: 2px;
  scale: 1 1.1;
  -webkit-transition: translate 0.4s ease, rotate 0.4s ease, opacity 0.4s ease, scale 0.4s ease;
  transition: translate 0.4s ease, rotate 0.4s ease, opacity 0.4s ease, scale 0.4s ease;
}

#sp_menu .menu .icon {
  font-size: clamp(1.1946666667rem, 3.7333333333vw, 1.9488rem);
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1;
  margin: 0;
}

#sp_menu .menu.active .menu_lines .line:nth-child(1) {
  translate: 0 calc(clamp(0.7253333333rem, 2.2666666667vw, 1.1832rem) + 1.5px);
  rotate: 225deg;
}

#sp_menu .menu.active .menu_lines .line:nth-child(2) {
  opacity: 0;
  scale: 0 1;
}

#sp_menu .menu.active .menu_lines .line:nth-child(3) {
  translate: 0 calc((clamp(0.7253333333rem, 2.2666666667vw, 1.1832rem) + 1.5px) * -1);
  rotate: -225deg;
}

#screen {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.55);
  z-index: 50;
}

#gnav {
  display: block;
  -webkit-transition: 0.5s ease-in-out;
  transition: 0.5s ease-in-out;
  float: none;
  width: 100%;
  max-height: 100vh;
  padding-bottom: 100px;
  margin: 0;
  position: absolute;
  top: -1000px;
  left: 0;
  z-index: 10;
  color: #fff;
  font-size: 20px;
  font-weight: bold;
  overflow: auto;
}

#gnav.open {
  -webkit-transform: translateY(1000px);
  transform: translateY(1000px);
}

#gnav ul {
  text-align: left;
  background: #41A33A;
  padding: clamp(18.5173333333rem, 57.8666666667vw, 30.2064rem) clamp(5.4613333333rem, 17.0666666667vw, 8.9088rem) clamp(5.8026666667rem, 18.1333333333vw, 9.4656rem);
  position: relative;
}
#gnav ul::after {
  position: absolute;
  content: "";
  bottom: clamp(-5.9856rem, -11.4666666667vw, -3.6693333333rem);
  left: 0;
  min-width: 100%;
  width: clamp(44.3733333333pxrem, 138.6666666667pxvw, 72.384pxrem);
  height: auto;
  aspect-ratio: 520/87;
  background: url("../img/wave_green.webp") no-repeat center center/contain;
}

#gnav ul li {
  padding-bottom: clamp(3.4133333333rem, 10.6666666667vw, 5.568rem);
  background-image: radial-gradient(circle, #ffffff clamp(0.1706666667rem, 0.5333333333vw, 0.2784rem), transparent clamp(0.1706666667rem, 0.5333333333vw, 0.2784rem));
  background-position: left bottom;
  background-repeat: repeat-x;
  background-size: clamp(0.768rem, 2.4vw, 1.2528rem) clamp(0.3413333333rem, 1.0666666667vw, 0.5568rem);
}
#gnav ul li:not(:first-child) {
  padding-top: clamp(2.56rem, 8vw, 4.176rem);
}

#gnav ul li a {
  color: #fff;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  font-size: clamp(1.8773333333rem, 5.8666666667vw, 3.0624rem);
  line-height: 1.1363636364;
  letter-spacing: 0.05em;
}
#gnav ul li a::after {
  content: "";
  width: clamp(1.8773333333rem, 5.8666666667vw, 3.0624rem);
  height: auto;
  aspect-ratio: 1;
  background: url("../img/icon_arrow_pink.svg") no-repeat center center/contain;
}

/*----------------------------------------------
	main
-----------------------------------------------*/
#main {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  container-type: inline-size;
  max-width: 1366px;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  #main {
    padding-right: 20px;
  }
  #main::after {
    position: absolute;
    content: "";
    width: 50vw;
    height: 100%;
    background-color: var(--color-beige);
    top: 0;
    left: 50%;
    z-index: -1;
  }
}
@media screen and (min-width: 1200px) {
  #main {
    padding-right: 0;
  }
}

#main img {
  vertical-align: bottom;
}

#main .pc_left {
  display: none;
}
@media screen and (min-width: 768px) {
  #main .pc_left {
    display: block;
    position: sticky;
    top: 0;
    right: 0;
    width: calc(100cqw - 522px + 20px);
    position: relative;
    background-color: var(--color-white);
  }
}
@media screen and (min-width: 1200px) {
  #main .pc_left {
    width: calc(100cqw - 840px);
  }
}

.pc_right {
  display: none;
}
@media screen and (min-width: 1200px) {
  .pc_right {
    display: block;
    width: 318px;
    position: sticky;
    top: 0;
    right: 0;
    height: 100vh;
    -webkit-box-ordinal-group: 4;
        -ms-flex-order: 3;
            order: 3;
    opacity: 1;
    pointer-events: none;
    background-color: var(--color-beige);
  }
}

/**************************************************************
右側の無限スライドアニメーション
**************************************************************/
.right_slide {
  width: 100%;
  height: 100%;
  overflow: hidden;
  background-color: var(--color-beige);
}

.right_slide_track {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-animation: right-slide-scroll var(--duration, 24s) linear infinite;
          animation: right-slide-scroll var(--duration, 24s) linear infinite;
}

.right_slide_item {
  -ms-flex-negative: 0;
      flex-shrink: 0;
}
.right_slide_item img {
  border-radius: 50%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.right_slide_item:nth-child(4n+1) {
  margin-left: 36px;
}
.right_slide_item:nth-child(4n+1) img {
  width: 125px;
  height: 125px;
}
.right_slide_item:nth-child(4n+2) {
  margin-left: 167px;
}
.right_slide_item:nth-child(4n+2) img {
  width: 72px;
  height: 72px;
}
.right_slide_item:nth-child(4n+3) {
  margin-left: 55px;
}
.right_slide_item:nth-child(4n+3) img {
  width: 168px;
  height: 168px;
}
.right_slide_item:nth-child(4n) {
  margin-left: 152px;
}
.right_slide_item:nth-child(4n) img {
  width: 87px;
  height: 87px;
}
.right_slide_item:nth-child(8n+1) {
  margin-top: -12px;
}
.right_slide_item:nth-child(8n+2) {
  margin-top: -45px;
}
.right_slide_item:nth-child(8n+3) {
  margin-top: 10px;
}
.right_slide_item:nth-child(8n+4) {
  margin-top: 10px;
}
.right_slide_item:nth-child(8n+5) {
  margin-top: -12px;
}
.right_slide_item:nth-child(8n+6) {
  margin-top: -33px;
}
.right_slide_item:nth-child(8n+7) {
  margin-top: 8px;
}
.right_slide_item:nth-child(8n) {
  margin-top: 36px;
}
.right_slide_item:first-child {
  margin-top: 35px;
}

@-webkit-keyframes right-slide-scroll {
  from {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  to {
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
}

@keyframes right-slide-scroll {
  from {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  to {
    -webkit-transform: translateY(-50%);
            transform: translateY(-50%);
  }
}
#wrap {
  position: relative;
  overflow-x: hidden;
}
@media screen and (min-width: 768px) {
  #wrap {
    width: 522px;
    position: relative;
    overflow-x: initial;
  }
}

.wrap_inner {
  position: relative;
}
@media screen and (min-width: 768px) {
  .wrap_inner {
    z-index: 10;
    min-height: 120vh;
    overflow: hidden;
  }
}

/*----------------------------------------------
	メインビジュアル
-----------------------------------------------*/
.mv {
  position: relative;
  z-index: 10;
  margin-bottom: clamp(-8.352rem, -16vw, -5.12rem);
  padding-bottom: clamp(3.9253333333rem, 12.2666666667vw, 6.4032rem);
}
@media screen and (min-width: 768px) {
  .mv {
    position: fixed;
    top: var(--l-header-height, 0px);
    left: 50%;
    translate: calc(-50% - 271px) var(--mv-scroll-y, 0px);
    width: calc(100cqw - 522px);
    will-change: translate;
    margin-bottom: 0;
    aspect-ratio: 522/671;
    height: auto;
  }
}
@media screen and (min-width: 1200px) {
  .mv {
    width: calc(100cqw - 840px);
    translate: calc(-50% - 420px) var(--mv-scroll-y, 0px);
  }
}

.finished {
  background: #D10000;
  color: #fff;
  font-size: clamp(1.536rem, 4.8vw, 2.5056rem);
  font-weight: 700;
  padding: clamp(0.8533333333rem, 2.6666666667vw, 1.392rem);
  text-align: center;
  position: absolute;
  z-index: 20;
  top: 50%;
  left: 50%;
  translate: -50% -50%;
  width: clamp(34.1333333333rem, 106.6666666667vw, 55.68rem);
}
@media screen and (min-width: 768px) {
  .finished {
    top: 80%;
  }
}

.mv_head {
  position: relative;
}

.mv_head_swiper-slide img {
  width: 100%;
}

.mv_head_text {
  position: absolute;
  top: clamp(1.9626666667rem, 6.1333333333vw, 3.2016rem);
  left: clamp(2.2186666667rem, 6.9333333333vw, 3.6192rem);
  width: 13.8666666667%;
  height: auto;
  z-index: 10;
}
@media screen and (min-width: 768px) {
  .mv_head_text {
    top: 3.4277198212%;
    left: 5.7471264368%;
    width: 9.9616858238%;
  }
}

.mv_head_title {
  position: relative;
  margin-top: clamp(2.2186666667rem, 6.9333333333vw, 3.6192rem);
  width: 60.8%;
  height: auto;
  z-index: 10;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .mv_head_title {
    width: 58.6206896552%;
    margin-top: 6.7049808429%;
  }
}
.mv_head_title img {
  width: 100%;
  height: auto;
}

.mv_head_date {
  position: relative;
  margin-top: clamp(0.512rem, 1.6vw, 0.8352rem);
  width: 84.8%;
  height: auto;
  z-index: 10;
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .mv_head_date {
    width: 72.7969348659%;
    margin-top: 0.7662835249%;
  }
}
.mv_head_date img {
  width: 100%;
  height: auto;
}

.mv_bg {
  position: absolute;
  bottom: 0;
  left: 50%;
  translate: -50% 0;
  min-width: 100%;
  width: clamp(33.28rem, 104vw, 54.288rem);
  height: auto;
  pointer-events: none;
}

.mv_accent {
  position: absolute;
  z-index: 10;
}

.mv__accent1 {
  top: clamp(14.1653333333rem, 44.2666666667vw, 23.1072rem);
  left: clamp(-6.6816rem, -12.8vw, -4.096rem);
  width: 31.7333333333%;
  height: auto;
}
@media screen and (min-width: 768px) {
  .mv__accent1 {
    width: 22.7969348659%;
    top: 32.7868852459%;
    left: -8.2375478927%;
  }
}

.mv_accent2 {
  top: clamp(24.576rem, 76.8vw, 40.0896rem);
  left: clamp(-1.6704rem, -3.2vw, -1.024rem);
  width: 21.0666666667%;
  height: auto;
}
@media screen and (min-width: 768px) {
  .mv_accent2 {
    width: 17.2413793103%;
    top: 50.6706408346%;
    left: 3.8314176245%;
  }
}

.mv_accent3 {
  bottom: clamp(5.7173333333rem, 17.8666666667vw, 9.3264rem);
  left: clamp(-1.8096rem, -3.4666666667vw, -1.1093333333rem);
  width: 11.7333333333%;
  height: auto;
}
@media screen and (min-width: 768px) {
  .mv_accent3 {
    width: 12.6436781609%;
    top: 74.5156482861%;
    left: 3.0651340996%;
  }
}

.mv_accent4 {
  top: clamp(15.0186666667rem, 46.9333333333vw, 24.4992rem);
  right: clamp(-3.2016rem, -6.1333333333vw, -1.9626666667rem);
  width: 28%;
  height: auto;
}
@media screen and (min-width: 768px) {
  .mv_accent4 {
    width: 20.1149425287%;
    top: 33.084947839%;
    right: 0;
  }
}

.mv_accent5 {
  top: clamp(24.4906666667rem, 76.5333333333vw, 39.9504rem);
  right: clamp(4.2666666667rem, 13.3333333333vw, 6.96rem);
  width: 9.0666666667%;
  height: auto;
}
@media screen and (min-width: 768px) {
  .mv_accent5 {
    width: 6.5134099617%;
    top: 55.4396423249%;
    right: 22.9885057471%;
  }
}

.mv_accent6 {
  top: clamp(36.352rem, 113.6vw, 59.2992rem);
  right: clamp(2.7306666667rem, 8.5333333333vw, 4.4544rem);
  width: 17.8666666667%;
  height: auto;
}
@media screen and (min-width: 768px) {
  .mv_accent6 {
    width: 16.8582375479%;
    top: 56.6318926975%;
    right: -3.8314176245%;
  }
}

/**************************************************************
導入部セクション
**************************************************************/
.introduction {
  padding-top: clamp(8.5333333333rem, 26.6666666667vw, 13.92rem);
  background-color: var(--color-green);
  padding-bottom: clamp(7.424rem, 23.2vw, 12.1104rem);
  position: relative;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .introduction {
    padding-top: clamp(3.072rem, 9.6vw, 5.0112rem);
  }
}

.introduction_inner {
  padding-inline: clamp(1.7066666667rem, 5.3333333333vw, 2.784rem);
}

.introduction_title {
  color: var(--color-white);
  font-size: clamp(1.536rem, 4.8vw, 2.5056rem);
  letter-spacing: 0.05em;
  font-weight: 500;
  line-height: 1.6666666667;
}

.introduction_text_wrapper {
  margin-top: clamp(3.2426666667rem, 10.1333333333vw, 5.2896rem);
  padding-top: clamp(5.9733333333rem, 18.6666666667vw, 9.744rem);
  padding-inline: clamp(2.304rem, 7.2vw, 3.7584rem);
  background-color: var(--color-white);
  position: relative;
  z-index: 10;
  border-radius: clamp(3.4133333333rem, 10.6666666667vw, 5.568rem);
}
@media screen and (min-width: 768px) {
  .introduction_text_wrapper {
    margin-top: clamp(3.4133333333rem, 10.6666666667vw, 5.568rem);
  }
}

.introduction_illust {
  position: absolute;
  z-index: 10;
  top: clamp(-3.7584rem, -7.2vw, -2.304rem);
  left: 50%;
  translate: -50% 0;
  width: clamp(5.376rem, 16.8vw, 8.7696rem);
  height: auto;
}

.introduction_text {
  font-size: clamp(1.1946666667rem, 3.7333333333vw, 1.9488rem);
  font-weight: 500;
  line-height: 1.8571428571;
}

.introduction_text_logo {
  margin-top: clamp(0.3413333333rem, 1.0666666667vw, 0.5568rem);
  width: clamp(18.7733333333rem, 58.6666666667vw, 30.624rem);
  height: auto;
  margin-inline: auto;
}

.introduction_slider {
  margin-top: clamp(1.4506666667rem, 4.5333333333vw, 2.3664rem);
  overflow: hidden;
  width: 100%;
}

.introduction_slider_track {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  -webkit-animation: introduction-slider-marquee 35s linear infinite;
          animation: introduction-slider-marquee 35s linear infinite;
  will-change: transform;
}

.introduction_slider_list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  gap: clamp(1.024rem, 3.2vw, 1.6704rem);
}

.introduction_slider_item {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: clamp(16.9813333333rem, 53.0666666667vw, 27.7008rem);
  height: auto;
  aspect-ratio: 199/117;
  overflow: hidden;
  border-radius: clamp(1.7066666667rem, 5.3333333333vw, 2.784rem);
}
.introduction_slider_item:last-child {
  -webkit-margin-end: clamp(1.024rem, 3.2vw, 1.6704rem);
          margin-inline-end: clamp(1.024rem, 3.2vw, 1.6704rem);
}
.introduction_slider_item img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}

@-webkit-keyframes introduction-slider-marquee {
  from {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}

@keyframes introduction-slider-marquee {
  from {
    -webkit-transform: translateX(0);
            transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .introduction_slider_track {
    -webkit-animation: none;
            animation: none;
  }
}
/**************************************************************
コンテンツメニューセクション
**************************************************************/
.contents {
  padding-top: clamp(5.12rem, 16vw, 8.352rem);
  padding-bottom: clamp(9.1306666667rem, 28.5333333333vw, 14.8944rem);
  margin-top: clamp(-5.8464rem, -11.2vw, -3.584rem);
  margin-bottom: clamp(-3.3408rem, -6.4vw, -2.048rem);
  position: relative;
  z-index: 20;
  background-color: transparent;
}

.contents_bg {
  position: absolute;
  top: 0;
  left: 50%;
  translate: -50% 0;
  z-index: 0;
  display: block;
  pointer-events: none;
  width: 124.8%;
  height: 100%;
}
.contents_bg img {
  width: 100%;
  height: 100%;
  -o-object-fit: fill;
     object-fit: fill;
}

.contents_inner {
  position: relative;
  z-index: 10;
}

.contents_title {
  display: grid;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.contents_title_text {
  min-width: clamp(7.5946666667rem, 23.7333333333vw, 12.3888rem);
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  padding-inline: clamp(0.5973333333rem, 1.8666666667vw, 0.9744rem);
  font-size: clamp(0.9386666667rem, 2.9333333333vw, 1.5312rem);
  font-weight: 500;
  line-height: 1.9090909091;
  background-color: var(--color-green);
  color: var(--color-white);
  border-radius: 100vmax;
}

.contents_title_img {
  margin-top: clamp(-2.088rem, -4vw, -1.28rem);
  width: clamp(19.8826666667rem, 62.1333333333vw, 32.4336rem);
  height: auto;
  margin-inline: auto;
}

.contents_items {
  container-type: inline-size;
  width: 100%;
  height: auto;
  position: relative;
  margin-top: clamp(1.4506666667rem, 4.5333333333vw, 2.3664rem);
  width: clamp(29.0133333333rem, 90.6666666667vw, 47.328rem);
  height: auto;
  aspect-ratio: 340/297;
  margin-inline: auto;
  position: relative;
}

.contents_items:before {
  position: absolute;
  content: "";
  top: clamp(-2.784rem, -5.3333333333vw, -1.7066666667rem);
  left: 50%;
  translate: -50% 0;
  width: clamp(37.12rem, 116vw, 60.552rem);
  height: auto;
  aspect-ratio: 435/365;
  background: url("../../common/img/contents_menu_bg.webp") no-repeat center center/contain;
}

.contents_item {
  position: absolute;
}

.contents_item1 {
  width: 44.1176470588%;
  height: auto;
  top: 10.101010101%;
  left: 2.3529411765%;
}

.contents_item2 {
  width: 60.2941176471%;
  height: auto;
  top: 4.0404040404%;
  right: -2.3529411765%;
}

.contents_item3 {
  width: 52.0588235294%;
  height: auto;
  bottom: -2.0202020202%;
  left: 0;
}

.contents_item4 {
  width: 47.6470588235%;
  height: auto;
  bottom: 2.6936026936%;
  right: 3.5294117647%;
}

.contents_link {
  display: block;
  width: 100%;
  height: 100%;
}
.contents_link img {
  width: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  -webkit-transition: translate 0.3s ease;
  transition: translate 0.3s ease;
}

@media (any-hover: hover) {
  a.contents_link:hover img {
    translate: 0 10px;
  }
}
span.contents_link {
  cursor: initial;
  pointer-events: none;
}

.contents_accent {
  position: absolute;
  z-index: 10;
}

.contents_accent1 {
  top: clamp(3.9253333333rem, 12.2666666667vw, 6.4032rem);
  left: clamp(-2.5056rem, -4.8vw, -1.536rem);
  width: clamp(6.9973333333rem, 21.8666666667vw, 11.4144rem);
  height: auto;
}

.contents_accent2 {
  top: clamp(9.0453333333rem, 28.2666666667vw, 14.7552rem);
  right: clamp(-2.784rem, -5.3333333333vw, -1.7066666667rem);
  width: clamp(6.2293333333rem, 19.4666666667vw, 10.1616rem);
  height: auto;
}

.contents_accent3 {
  top: clamp(40.0213333333rem, 125.0666666667vw, 65.2848rem);
  left: clamp(2.56rem, 8vw, 4.176rem);
  width: clamp(4.4373333333rem, 13.8666666667vw, 7.2384rem);
  height: auto;
}

/**************************************************************
店舗情報セクション
**************************************************************/
.shop {
  position: relative;
  z-index: 10;
  padding-top: clamp(5.4613333333rem, 17.0666666667vw, 8.9088rem);
  padding-bottom: clamp(4.2666666667rem, 13.3333333333vw, 6.96rem);
  background: url("../img/shop_bg.webp") no-repeat center bottom/100% auto;
}

.shop_inner {
  padding-inline: clamp(1.7066666667rem, 5.3333333333vw, 2.784rem);
}

.shop_tablist {
  display: grid;
  grid-template-columns: 1fr 1fr;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: clamp(0.4266666667rem, 1.3333333333vw, 0.696rem);
}

.shop_tablist_btn {
  font-family: var(--ff-montserrat);
  font-size: clamp(1.1093333333rem, 3.4666666667vw, 1.8096rem);
  font-weight: 600;
  display: grid;
  place-items: center;
  padding-inline: clamp(1.7066666667rem, 5.3333333333vw, 2.784rem);
  min-height: clamp(3.1573333333rem, 9.8666666667vw, 5.1504rem);
  background-color: var(--color-green);
  border: none;
  border-radius: clamp(0.8533333333rem, 2.6666666667vw, 1.392rem) clamp(0.8533333333rem, 2.6666666667vw, 1.392rem) 0 0;
  color: var(--color-white);
  cursor: pointer;
  -webkit-transition: background-color 0.2s ease, opacity 0.2s ease;
  transition: background-color 0.2s ease, opacity 0.2s ease;
}
.shop_tablist_btn.is-active {
  background-color: var(--color-beige);
  color: var(--color-orange);
  font-size: clamp(1.4506666667rem, 4.5333333333vw, 2.3664rem);
  padding-top: clamp(0.6826666667rem, 2.1333333333vw, 1.1136rem);
  padding-bottom: clamp(1.1093333333rem, 3.4666666667vw, 1.8096rem);
}
.shop_tablist_btn:disabled {
  cursor: not-allowed;
  pointer-events: none;
}

.shop_panel {
  display: none;
}
.shop_panel.is-active {
  display: block;
}
.shop_panel[hidden] {
  display: none !important;
}

.shop_panel_inner {
  width: 100%;
  max-width: clamp(44.3733333333rem, 138.6666666667vw, 72.384rem);
  margin-inline: auto;
}

.shop_panel_entry {
  padding-top: clamp(4.2666666667rem, 13.3333333333vw, 6.96rem);
  padding-bottom: clamp(2.9866666667rem, 9.3333333333vw, 4.872rem);
  padding-inline: clamp(2.2186666667rem, 6.9333333333vw, 3.6192rem);
  background-color: var(--color-beige);
}

.shop_panel_title {
  display: grid;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-inline: auto;
}

.shop_panel_title_img {
  width: clamp(19.8826666667rem, 62.1333333333vw, 32.4336rem);
  height: auto;
  margin-inline: auto;
  translate: clamp(-1.1136rem, -2.1333333333vw, -0.6826666667rem) 0;
}
.shop_panel_title_img img {
  width: 100%;
  height: auto;
}

.shop_panel_title_text {
  margin-top: clamp(-0.5568rem, -1.0666666667vw, -0.3413333333rem);
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  font-size: clamp(1.536rem, 4.8vw, 2.5056rem);
  font-weight: 500;
  letter-spacing: 0.05em;
}

.shop_panel_title_text_bracket {
  font-weight: 250;
}

.shop_panel_swiper-container {
  margin-top: clamp(1.8773333333rem, 5.8666666667vw, 3.0624rem);
  position: relative;
}

.shop_panel_swiper-button {
  width: clamp(2.7306666667rem, 8.5333333333vw, 4.4544rem);
  height: clamp(2.7306666667rem, 8.5333333333vw, 4.4544rem);
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
  position: absolute;
  top: clamp(12.544rem, 39.2vw, 20.4624rem);
  z-index: 10;
}
.shop_panel_swiper-button img {
  width: 100%;
  height: auto;
  display: block;
}

.shop_panel_swiper-button-prev {
  left: clamp(-2.2272rem, -4.2666666667vw, -1.3653333333rem);
}

.shop_panel_swiper-button-next {
  right: clamp(-2.2272rem, -4.2666666667vw, -1.3653333333rem);
}

.shop_panel_swiper-slide {
  height: auto;
  background-color: var(--color-white);
  padding-bottom: clamp(1.7066666667rem, 5.3333333333vw, 2.784rem);
}

.shop_panel_slide_img {
  width: 100%;
  height: auto;
  aspect-ratio: 284/218;
}
.shop_panel_slide_img img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.shop_panel_slide_title {
  margin-top: clamp(0.6826666667rem, 2.1333333333vw, 1.1136rem);
  display: grid;
  grid-template-columns: clamp(1.6213333333rem, 5.0666666667vw, 2.6448rem) 1fr;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-inline: auto;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: clamp(0.256rem, 0.8vw, 0.4176rem);
}

.shop_panel_slide_count {
  aspect-ratio: 19/23;
  width: 100%;
  height: auto;
}

.shop_panel_slide_text {
  font-size: clamp(1.1946666667rem, 3.7333333333vw, 1.9488rem);
  font-weight: 500;
}

.shop_panel_slide_btn {
  margin-top: clamp(0.8533333333rem, 2.6666666667vw, 1.392rem);
  width: clamp(20.8213333333rem, 65.0666666667vw, 33.9648rem);
  margin-inline: auto;
  padding-inline: clamp(0.8533333333rem, 2.6666666667vw, 1.392rem);
  min-height: clamp(3.7546666667rem, 11.7333333333vw, 6.1248rem);
  background-color: var(--color-orange);
  border: none;
  border-radius: clamp(1.792rem, 5.6vw, 2.9232rem);
  color: var(--color-white);
  font-size: clamp(1.1946666667rem, 3.7333333333vw, 1.9488rem);
  font-weight: 500;
  cursor: pointer;
  display: grid;
  place-items: center;
}

.shop_detail_dialog {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  position: fixed;
  inset: 0;
  width: calc(100% - clamp(2.7306666667rem, 8.5333333333vw, 4.4544rem));
  max-width: clamp(29.0133333333rem, 90.6666666667vw, 47.328rem);
  height: -webkit-fit-content;
  height: -moz-fit-content;
  height: fit-content;
  max-height: min(90dvh, clamp(47.7866666667rem, 149.3333333333vw, 77.952rem));
  margin: auto;
  padding: 0;
  border: none;
  background: transparent;
  overflow: visible;
}
.shop_detail_dialog::-ms-backdrop {
  background: rgba(62, 58, 57, 0.5);
}
.shop_detail_dialog::backdrop {
  background: rgba(62, 58, 57, 0.5);
}

.shop_detail_dialog_card {
  position: relative;
  background-color: var(--color-beige);
  border-radius: clamp(0.8533333333rem, 2.6666666667vw, 1.392rem);
}

.shop_detail_dialog_body {
  max-height: clamp(44.8853333333rem, 140.2666666667vw, 73.2192rem);
  max-height: min(90dvh, clamp(44.8853333333rem, 140.2666666667vw, 73.2192rem));
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

.shop_detail_dialog_close {
  position: absolute;
  top: clamp(-1.392rem, -2.6666666667vw, -0.8533333333rem);
  right: clamp(-1.392rem, -2.6666666667vw, -0.8533333333rem);
  width: clamp(2.56rem, 8vw, 4.176rem);
  height: clamp(2.56rem, 8vw, 4.176rem);
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  z-index: 2;
  background-color: var(--color-orange);
  border-radius: 50%;
}
@media (any-hover: hover) {
  .shop_detail_dialog_close:hover {
    opacity: 0.7;
  }
}

.shop_detail_dialog_close_icon {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
}
.shop_detail_dialog_close_icon::before, .shop_detail_dialog_close_icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 60%;
  height: 2px;
  background-color: var(--color-white);
  -webkit-transform-origin: center;
          transform-origin: center;
}
.shop_detail_dialog_close_icon::before {
  -webkit-transform: translate(-50%, -50%) rotate(45deg);
          transform: translate(-50%, -50%) rotate(45deg);
}
.shop_detail_dialog_close_icon::after {
  -webkit-transform: translate(-50%, -50%) rotate(-45deg);
          transform: translate(-50%, -50%) rotate(-45deg);
}

.shop_detail_content {
  padding-top: clamp(3.4133333333rem, 10.6666666667vw, 5.568rem);
  padding-inline: clamp(2.9866666667rem, 9.3333333333vw, 4.872rem);
  padding-bottom: clamp(3.84rem, 12vw, 6.264rem);
}

.shop_detail_heading {
  font-size: clamp(1.1946666667rem, 3.7333333333vw, 1.9488rem);
  font-weight: 500;
  color: var(--color-text);
  line-height: 1.8571428571;
}

.shop_detail_figure {
  margin-top: clamp(1.1946666667rem, 3.7333333333vw, 1.9488rem);
  overflow: hidden;
  width: 100%;
  height: auto;
  aspect-ratio: 305/226;
}

.shop_detail_figure img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.shop_detail_text_wrapper {
  padding-block: clamp(1.7066666667rem, 5.3333333333vw, 2.784rem);
  padding-inline: clamp(2.304rem, 7.2vw, 3.7584rem);
  background-color: var(--color-white);
  border-radius: 0 0 clamp(0.8533333333rem, 2.6666666667vw, 1.392rem) clamp(0.8533333333rem, 2.6666666667vw, 1.392rem);
}

.shop_detail_logo {
  margin-block: 0;
  margin-inline: auto;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
}
.shop_detail_logo img {
  width: 100%;
  height: auto;
  display: block;
}

.shop_detail_logo1 {
  width: clamp(11.6906666667rem, 36.5333333333vw, 19.0704rem);
}

.shop_detail_logo2 {
  width: clamp(13.6533333333rem, 42.6666666667vw, 22.272rem);
}

.shop_detail_logo3 {
  width: clamp(15.4453333333rem, 48.2666666667vw, 25.1952rem);
}

.shop_detail_text {
  margin-top: clamp(0.6826666667rem, 2.1333333333vw, 1.1136rem);
  font-size: clamp(1.024rem, 3.2vw, 1.6704rem);
  font-weight: 500;
  line-height: 1.9166666667;
  text-align: left;
}

/**************************************************************
SNSリンクセクション
**************************************************************/
.sns {
  padding-top: clamp(4.096rem, 12.8vw, 6.6816rem);
  padding-bottom: clamp(5.12rem, 16vw, 8.352rem);
  background-color: var(--color-white);
}

.sns_title {
  display: grid;
}

.sns_title_main {
  font-family: var(--ff-montserrat);
  font-size: clamp(2.1333333333rem, 6.6666666667vw, 3.48rem);
  font-weight: 600;
  line-height: 1.28;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.sns_title_sub {
  font-size: clamp(1.1946666667rem, 3.7333333333vw, 1.9488rem);
  font-weight: 500;
  line-height: 1.8571428571;
}

.sns_items {
  margin-top: clamp(1.536rem, 4.8vw, 2.5056rem);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: clamp(2.3893333333rem, 7.4666666667vw, 3.8976rem);
}

.sns_link {
  width: clamp(3.2426666667rem, 10.1333333333vw, 5.2896rem);
  height: auto;
  aspect-ratio: 1;
  display: block;
}
.sns_link img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}