
/* 要素・共通 */
:root {
  --white: #FFFFFF;    
  --black: #22181C;
  --purple: #A560E6;
  --pink: #F991CC;
  --lightblue: #00B2CA;
  --red: #CF3A34;
  --yellow: #EDB822;
  --orange: #F24C00;
  --blue: #4392F1;
  --green: #218380;
  --gray: #D9D9D9;
  --lightgray: #FAFAFA;
  --font-jp: 'Zen Kaku Gothic New', sans-serif;
  --font-en: 'Fjalla One', sans-serif;
  --font-vibur: "Vibur", sans-serif;
  --font-oswald: "Oswald", sans-serif;
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  list-style: none;
  text-decoration: none;
  color: inherit;
}

html {
  scroll-behavior: smooth;
}
body {
  position: relative;
  font-size: 16px;
  font-family: var(--font-jp);
  letter-spacing: 0;
}
html,
body {
  overflow-x: hidden;
}
a {
  transition: opacity 0.5s;
}
a:hover {
  opacity: 0.5;
}
button {
  background: none;
  border: none;
  cursor: pointer;
}
body {
  background: var(--white);
  color: var(--black);
}
img {
  display: block;
}
div[role="button"] {
  cursor: pointer;
}

.c-section-wrapper {
  position: relative;
  width: 100%;
  max-width: 1240px;
  margin: 0 auto clamp(80px, 62.17px + 5.0955vw, 160px);
  padding: 0 40px;
}
.c-section-hdg {
  position: relative;
  width: fit-content;
  height: fit-content;
  margin-bottom: clamp(16px, 10.65px + 1.5287vw, 40px);
  font-weight: 400;
}
.c-section-hdg span:nth-of-type(1) {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: fit-content;
  height: fit-content;
  margin: auto;
  font-size: clamp(64px, 49.73px + 4.0764vw, 128px);
  font-family: var(--font-vibur);
}
.c-section-hdg span:nth-of-type(2) {
  position: relative;
  z-index: -1;
  font-size: clamp(100px, 77.71px + 6.3694vw, 200px);
  font-family: var(--font-en);
  color: var(--white);
  text-shadow: 0px 0px 2px var(--black);
}
.c-hdg-marquee-wrapper {
  position: absolute;
  z-index: -2;
  display: flex;
  width: max-content;
  transform: rotate(-8deg);
  transition: none;
}
.c-hdg-marquee-outer,
.c-hdg-marquee-inner {
  display: flex;
}
.c-hdg-marquee-outer {
  width: max-content;
  animation: anim-hdg-marquee 40s infinite linear;
  animation-delay: -1s;
}
.c-hdg-marquee-inner span {
  padding: 0 12px;
  color: var(--white);
  text-shadow: 0px 0px 2px var(--black);
  font-size: 160px;
  font-family: var(--font-en);
  white-space: nowrap;
}
@keyframes anim-hdg-marquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
.c-about-marquee {
  top: clamp(-560px, -611.27px + 14.6497vw, -330px);
}
.c-about-marquee span::before {
  display: block;
  content: "ABOUT";
}
.c-news-marquee {
  top: clamp(-410px, -443.44px + 9.5541vw, -260px);
}
.c-news-marquee span::before {
  display: block;
  content: "NEWS";
}
.c-contact-marquee {
  top: clamp(-650px, -681.21px + 8.9172vw, -510px);
}
.c-contact-marquee span::before {
  display: block;
  content: "CONTACT";
}
.c-privacy-marquee {
  top: clamp(-615px, -645.10px + 8.5987vw, -480px);
}
.c-privacy-marquee span::before {
  display: block;
  content: "PRIVACY";
}

.c-arrow-square {
  display: flex;
  justify-content: center;
  align-items: center;
  width: clamp(24px, 22.22px + 0.5096vw, 32px);
  aspect-ratio: 1;
  background-color: var(--black);
  transition: all 0.5s;
}
.c-arrow-square::before {
  display: block;
  content: "";
  width: clamp(8px, 7.11px + 0.2548vw, 12px);
  height: clamp(8px, 7.11px + 0.2548vw, 12px);
  background-image: url(../img/icon_arrow.png);
  background-size: contain;
  background-repeat: no-repeat;
  transition: all 0.5s;
}
.c-arrow-square.invert {
  background-color: var(--white);
}
.c-arrow-square.invert::before {
  filter: brightness(0);
}
 .c-privacy{
  display: block;
  position: relative;
  width: fit-content;
  font-size: 10px;
  overflow-x: hidden;
 }
 .c-privacy::before {
  display: block;
  content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  width: 100%;
  border-bottom: 1px solid var(--black);
  transition: transform 0.3s;
 }
 .c-privacy:hover::before {
  transform: translateX(100%);
 }
 @media screen and (max-width: 768px) {
    .c-section-wrapper {
      padding: 0 16px;
    }
 }

 /* 下層ページ関連 */
.secondary-page-top {
  height: clamp(266px, 202.24px + 18.2166vw, 552px);
  margin: 0 auto clamp(40px, 31.08px + 2.5478vw, 80px);
}
.secondary-page-top .c-section-hdg {
  display: flex;
  flex-direction: column;
  top: clamp(168px, 160.87px + 2.0382vw, 200px);
}
.secondary-page-top .c-section-hdg span {
  position: relative;
  font-size: clamp(40px, 18.60px + 6.1146vw, 136px);
  line-height: clamp(44px, 18.14px + 7.3885vw, 160px);
}
.secondary-page-top .c-section-hdg ruby {
  font-size: clamp(12px, 7.54px + 1.2739vw, 32px);
  font-weight: 700;
  line-height: 2;
}
.secondary-image-container {
  position: absolute;
  z-index: -1;
  top: 0;
  right: 0;
  width: clamp(258px, 166.15px + 26.2420vw, 670px);
  height: clamp(212px, 136.43px + 21.5924vw, 551px);
}
.secondary-image-paint {
  width: 100%;
  height: 100%;
}
.secondary-image-boy {
  position: absolute;
  width: clamp(51px, 36.73px + 4.0764vw, 115px);
  top: clamp(48px, 39.08px + 2.5478vw, 88px);
  left: clamp(96px, 71.03px + 7.1338vw, 208px);
  filter: drop-shadow(10px 10px var(--purple));
}
.secondary-image-girl {
  position: absolute;
  width: clamp(55px, 39.62px + 4.3949vw, 124px);
  top: clamp(96px, 72.82px + 6.6242vw, 200px);
  left: clamp(163px, 113.29px + 14.2038vw, 386px);
  filter: drop-shadow(10px 10px var(--purple));
}

/* js関連 */
.js-spring-in {
  opacity: 0;
}
.js-spring-in.left {
  transform-origin: top right;
  animation: spring-in-left 0.6s forwards;
}
.js-spring-in.center {
  transform-origin: top center;
  animation: spring-in-center 0.6s forwards;
}
.js-spring-in.right {
  transform-origin: top left;
  animation: spring-in-right 0.6s forwards;
}
@keyframes spring-in-left {
  0% {
    transform: translate(-200px, 200px) scale(1, 1);
    opacity: 0
  }
  20% {
    opacity: 1
  }
  70% {
    transform: translate(20px, -20px) scale(0.95, 0.9);
  }
  100% {
    transform: translate(0) scale(1);
    opacity: 1;
  }
}
@keyframes spring-in-center {
  0% {
    transform: translate(0, 200px) scale(1, 1);
    opacity: 0
  }
  20% {
    opacity: 1
  }
  70% {
    transform: translate(0, -20px) scale(1.1, 0.8);
  }
  100% {
    transform: translate(0) scale(1);
    opacity: 1;
  }
}
@keyframes spring-in-right {
  0% {
    transform: translate(200px, 200px) scale(1, 1);
    opacity: 0;
  }
  20% {
    opacity: 1;
  }
  70% {
    transform: translate(-20px, -20px) scale(0.95, 0.9);
  }
  100% {
    transform: translate(0) scale(1);
    opacity: 1;
  }
}
.js-tilt-in {
  opacity: 0;
}
.js-tilt-in:nth-of-type(2) {
  animation-delay: 0.2s;
}
.js-tilt-in:nth-of-type(3) {
  animation-delay: 0.4s;
}
.js-tilt-in-wrapper.is-till-in-active .js-tilt-in {
  animation-name: tilt-pop-in;
  animation-duration: 0.3s;
  animation-fill-mode: forwards;
}
@keyframes tilt-pop-in {
  0% {
      opacity: 0;
      transform: rotate(-2deg) scale(0.8);
  }
  20% {
      opacity: 1;
  }
  80% {
    transform: rotate(1deg) scale(1);
  }
  100% {
    opacity: 1;
    transform: rotate(0deg) scale(1);
  }
}
.js-accordion-content {
  height: 0;
  overflow-y: hidden;
  transition: height 0.5s;
}

/* ヘッダー */
.site-header {
  position: absolute;
  z-index: 99;
  top: 0;
  left: 0;
}
.site-header h1 a {
  display: block;
  width: fit-content;
  padding: clamp(16px, 10.76px + 0.6897vw, 24px) clamp(65px, 32.24px + 4.3103vw, 115px) clamp(64px, 58.76px + 0.6897vw, 72px) clamp(16px, 10.76px + 0.6897vw, 24px);
  background-image: url(../img/logo_ThePitch_bg.png);
  background-repeat: no-repeat;
  background-size: contain;
  transition: opacity 0.5s;
}
.site-header h1 img {
  width: clamp(130px, 36.97px + 12.2414vw, 272px);
}
.site-header-navi ul {
  position: fixed;
  top: 0;
  right: 0;
  display: flex;
  align-items: center;
  gap: 20px;
  padding: clamp(16px, 14.22px + 0.5096vw, 24px);
  font-family: var(--font-en);
  font-size: clamp(14px, 12.69px + 0.1724vw, 16px);
  font-weight: 500;
}
.site-header-tel {
  margin-left: clamp(10px, 3.45px + 0.8621vw, 20px);
  font-size: clamp(16px, 13.38px + 0.3448vw, 20px);
}
.site-header-mobile-button {
  position: fixed;
  z-index: 999;
  top: 24px;
  right: 16px;
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  align-items: center;
  width: 24px;
  height: 24px;
}
.site-header-mobile-button::before,
.site-header-mobile-button::after {
  display: block;
  content: "";
  width: 16px;
  height: 2px;
  background-color: var(--black);
  transition: transform 0.5s;
  transform-origin: center;
}
.is-mobile-menu-open .site-header-mobile-button::before {
  transform: rotate(45deg) translateY(7px);
}
.is-mobile-menu-open .site-header-mobile-button::after {
  transform: rotate(-45deg) translateY(-7px);
}

@media screen and (max-width: 768px) {
  .site-header-navi {
    display: none;
  }
  .site-header-mobile-button {
    display: flex;
  }
}

/* モバイルメニュー */
.site-mobile-menu {
  display: none;
  position: fixed;
  z-index: 99;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding-top: 72px;
  padding-right: 16px;
  background-color: var(--white);
  font-family: var(--font-en);
}
.is-mobile-menu-open .site-mobile-menu {
  display: block;
}
.site-mobile-navi ul {
  display: flex;
  flex-direction: column;
  align-items: end;
  gap: 20px;
  margin-bottom: 64px;
  font-size: 16px;
}
.site-mobile-navi li,
.site-mobile-privacy-wrapper {
  overflow: hidden;
}
.site-mobile-navi li a,
.site-mobile-menu .c-privacy {
  display: block;
  transform: translateY(100%);
}
.is-mobile-menu-open .site-mobile-navi li a,
.is-mobile-menu-open .site-mobile-menu .c-privacy {
  animation: anim-navi-enter 0.5s forwards;
}
.site-mobile-tel {
  margin-top: 20px;
  font-size: 20px;
}
.site-mobile-menu .c-privacy {
  margin-left: auto;
}
@keyframes anim-navi-enter {
  0% {
    transform: translateY(100%)
  }
  100% {
    transform: translateY(0px)
  }
}
.page-navigation {
  display: flex;
  justify-content: center;
  gap: 40px;
  font-family: var(--font-en);
}
.pagination-numbers {
  display: flex;
  justify-content: center;
  gap: 40px;
}
.pagination-number.is-current {
  color: var(--gray);
}
.pagination-arrow {
  display: block;
}
.pagination-arrow--next img {
  transform: rotate(180deg);
}
@media screen and (max-width: 768px) {
  .pagination-number.pagination-number--mobile-hidden {
      display: none;
  }
}

/* ホーム */
/* KV */
#kv {
  position: relative;
  width: 100%;
  min-height: 100vh;
}
.kv-catch {
  position: absolute;
  top: clamp(84px, 31.39px + 15.0318vw, 320px);
  left: clamp(16px, -10.31px + 7.5159vw, 134px);
}
.kv-catch-en {
  margin-bottom: clamp(8px, -4.48px + 3.5669vw, 64px);
  font-size: clamp(40px, 18.60px + 6.1146vw, 136px);
  line-height: clamp(44px, 18.14px + 7.3885vw, 160px);
  font-family: var(--font-vibur);
}
.kv-catch-ja {
  font-size: clamp(12px, 7.54px + 1.2739vw, 32px);
  font-weight: bold;
  line-height: 2;
}
.kv-image-container {
  position: absolute;
  z-index: -1;
  top: calc(-1 * clamp(10px, -55.33px + 8.5069vw, 108px));
  left: clamp(294px, 184.00px + 14.3229vw, 459px);
  width: clamp(526px, -237.67px + 99.4358vw, 1671.5px);
  height: clamp(432px, -196.33px + 81.8142vw, 1374.5px);
  overflow: visible;
  --up-down-stroke : clamp(15px, 5.00px + 1.3021vw, 30px)
}
.kv-image-paint {
  position: absolute;
  inset: 0;
  margin: auto;
  width: 100%;
  height: 100%;
  animation: anim-kv-paint 1.2s;
}
.kv-image-dot {
  position: absolute;
  z-index: 1;
  top: 18.6%;
  left: 36%;
  width: 39%;
  opacity: 0;
  animation: anim-dot-fade-in 0.5s 2.8s forwards, anim-dot-rotate 20s infinite linear;
}
.kv-image-drink {
  position: absolute;
  z-index: 2;
  top: 13.8%;
  left: 43.2%;
  width: 15.3%;
  opacity: 0;
  animation: anim-come-down 1.2s 1.8s forwards;
}
.kv-image-coffee {
  position: absolute;
  z-index: 3;
  top: 38.1%;
  left: 44.2%;
  width: 26.4%;
  opacity: 0;
  animation: anim-come-down 1.2s 1.65s forwards;
}
.kv-image-beer {
  position: absolute;
  z-index: 4;
  top: 30.7%;
  left: 36%;
  width: 15.1%;
  opacity: 0;
  animation: anim-come-down 1.2s 1.5s forwards;
}
.kv-image-boy {
  position: absolute;
  z-index: 5;
  top: 15.8%;
  left: 22.7%;
  width: 14%;
  filter: drop-shadow(10px 10px var(--purple));
  opacity: 0;
  animation: anim-jump-up 1.8s 2.8s forwards, anim-float-up-down 2.8s 5.2s infinite alternate;
}
.kv-image-girl {
  position: absolute;
  z-index: 5;
  top: 38.1%;
  left: 69.7%;
  width: 15.1%;
  filter: drop-shadow(10px 10px var(--purple));
  opacity: 0;
  animation: anim-jump-up 1.8s 2.8s forwards, anim-float-up-down 3s 5.2s infinite alternate;
}
@keyframes anim-kv-paint {
  0% {
    width: 0%;
    height: 0%;
    opacity: 0.5;
  }
  100% {
    width: 100%;
    height: 100%;
    opacity: 1;
  }
}
@keyframes anim-dot-fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes anim-dot-rotate {
  0% {
    transform: rotate(0);
  }
  100% {
    transform: rotate(-360deg);
  }
}
@keyframes anim-come-down {
  0% {
    opacity: 0;
    transform: translateY(-200px);
  }
  100% {
    opacity: 1;
    transform: translateY(0px);
  }
}
@keyframes anim-jump-up {
  0% {
    opacity: 0;
    transform: translateY(var(--up-down-stroke));
  }
  25% {
    opacity: 1;
    transform: translateY(calc(var(--up-down-stroke) / -3));
    animation-timing-function: ease-in-out;
  }
  70% {
    opacity: 1;
    transform: translateY(calc(var(--up-down-stroke) * 1.25));
    animation-timing-function: ease-in-out;
  }
  100% {
    opacity: 1;
    transform: translateY(var(--up-down-stroke));
    animation-timing-function: ease-in-out;
  }
}
@keyframes anim-float-up-down {
  0% {
    transform: translateY(var(--up-down-stroke));
    animation-timing-function: ease-in-out;
  }
  100% {
    transform: translateY(calc(var(--up-down-stroke) * -1));
    animation-timing-function: ease-in-out;
  }
}
@media screen and (max-width: 768px) {
  .kv-image-container {
    top: 84px;
    left: 45%;
    width: clamp(526px, 270.63px + 72.9618vw, 1671.5px);
    height: clamp(432px, 221.89px + 60.0318vw, 1374.5px);
    transform: translateX(-50%);
  }
  .kv-catch {
    top: calc(84px + clamp(432px, 221.89px + 60.0318vw, 1374.5px));
    transform: translateY(-50%);
  }
}


/* About */
#about {
  position: relative;
  margin-bottom: clamp(30px, 27.77px + 0.6369vw, 40px);
  padding-top: clamp(80px, 53.25px + 7.6433vw, 200px);
}
.about-hdg-wrapper {
  width: 100%;
  max-width: 1240px;
  position: relative;
  margin: 0 auto clamp(16px, 8.87px + 2.0382vw, 48px);
  padding: 0 40px;
}
#about .c-section-hdg {
  color: var(--red);
}
#about .c-section-hdg > span {
  position: relative;
}
.about-flex {
  display: flex;
  justify-content: space-between;
  gap: 28px;
}
.about-text {
  width: 49%;
}
.about-text-ja {
  margin-bottom: 64px;
}
.about-text-en {
  margin-bottom: 24px;
  font-size: 12px;
  font-family: var(--font-oswald);
  line-height: 16px;
  font-weight: 300;
}
.about-text-introduction {
  margin-bottom: 16px;
}
.about-text-ja .about-text-introduction {
  font-size: 14px;
  font-weight: bold;
  line-height: 36px;
}
.about-text-info {
  font-size: 12px;
  line-height: 24px;
}
.about-text-infolist ul {
  margin-bottom: 16px;
}
.about-text-infolist ul li::before {
  content: "・";
  display: inline-block;
}
.about-text-message {
  font-size: 14px;
  font-family: var(--font-en);
  line-height: 20px;
}
.about-image-container {
  position: relative;
  width: clamp(305px, 272.45px + 9.2994vw, 451px);
  height: fit-content;
  --comedown-delay: 0.15s;
}
.about-image-container > * {
  opacity: 0;
}
.about-image-bg-blue {
  width: clamp(308px, 272.33px + 10.1911vw, 468px);
}
.about-image-photo {
  position: absolute;
  z-index: 1;
  animation-delay: var(--comedown-delay);
}
.about-image-photo.photo-1 {
  width: clamp(190px, 161.02px + 8.2803vw, 320px);
  top: calc(-1 * clamp(64px, 54.19px + 2.8025vw, 108px));
  right: 0;
}
.about-image-photo.photo-2 {
  width: clamp(128px, 108.83px + 5.4777vw, 214px);
  bottom: calc(-1 * clamp(17px, 5.85px + 3.1847vw, 67px));
  left: 0;
}
.about-image-bg-yellow {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 80%;
  margin: auto;
  animation-delay: calc(var(--comedown-delay) * 2);
}
.about-image-text {
  position: absolute;
  z-index: 2;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  height: fit-content;
  margin: auto;
  animation-delay: calc(var(--comedown-delay) * 3);
}
.about-image-text p {
  margin-bottom: clamp(6px, 3.77px + 0.6369vw, 16px);
  font-size: clamp(16px, 14.22px + 0.5096vw, 24px);
  color: var(--white);
  text-align: center;
  font-weight: 700;
}
.about-image-text img {
  width: 100%;
}
.about-image-illust-1 {
  position: absolute;
  top: clamp(215px, 182.68px + 9.2357vw, 360px);
  right: clamp(94px, 91.10px + 0.8280vw, 107px);
  width: clamp(58px, 50.87px + 2.0382vw, 90px);
  animation-delay: calc(var(--comedown-delay) * 4);
}
.about-image-illust-2 {
  position: absolute;
  top: clamp(190px, 161.02px + 8.2803vw, 320px);
  right: 0;
  width: clamp(68px, 59.08px + 2.5478vw, 108px);
  animation-delay: calc(var(--comedown-delay) * 4);
}
.is-come-down-active > * {
  animation-name: anim-come-down;
  animation-duration: 0.5s;
  animation-fill-mode: forwards;
}
@keyframes anim-come-down {
  0% {
    opacity: 0;
    transform: translateY(-40px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
@media screen and (max-width: 768px) {
  #about {
    margin-bottom: 100px;
  }
  .about-flex {
    flex-direction: column;
    gap: 140px;
    padding-bottom: 33%;
  }
  .about-text {
    width: 100%;
  }
  .about-image-container {
    width: 100%;
  }
  .about-image-bg-blue {
    width: 100%;
  }
  .about-image-photo.photo-1 {
    width: 55%;
    top: -15%;
    right: 0;
  }
  .about-image-photo.photo-2 {
    width: 37%;
    bottom: -5%;
    left: 0;
  }
  .about-image-bg-yellow {
    width: 73%;
  }
  .about-image-text p {
    font-size: clamp(16px, 4.28px + 3.3493vw, 30px);
  }
  .about-image-illust-1 {
    top: 75%;
    right: 34%;
    width: 15%;
  }
  .about-image-illust-2 {
    top: 67%;
    right: 13%;
    width: 17%;
  }
}

/* About下のスライダー */
.sepalate-slider-wrapper {
  display: flex;
  margin-bottom: clamp(30px, 27.77px + 0.6369vw, 40px);
  transform: rotate(4deg);
  transform-origin: top left;
}
.sepalate-slider {
  display: flex;
  animation: anim-sepalate-slider 30s infinite linear;
}
.sepalate-slider-inner {
  display: flex;
  width: max-content;
}
.sepalate-slider-inner div {
  position: relative;
  min-width: 200px;
  padding: 0 50px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
.sepalate-slider .sway {
  animation: anim-sway 8s infinite ease-in-out;
}
.sepalate-slider .sway.rev {
  animation: anim-sway-rev 8s infinite ease-in-out;
}
.sepalate-slider .scale {
  animation: anim-scale 8s infinite ease-in-out;
}
.sepalate-slider .rotate {
  animation: anim-rotate 8s infinite;
  animation-timing-function: cubic-bezier(0.65, 0.05, 0.04, 1);
}
.sepalate-slider-inner div:nth-child(6n + 1) {
  background-image: url(../img/slider-item-bg-red.png);
}
.sepalate-slider-inner div:nth-child(6n + 3) {
  background-image: url(../img/slider-item-bg-blue.png);
}
.sepalate-slider-inner div:nth-child(6n + 5) {
  background-image: url(../img/slider-item-bg-yellow.png);
}
.sepalate-slider img {
  margin: auto;
}
@keyframes anim-sepalate-slider {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}
@keyframes anim-sway {
  0% {
    transform: rotate(0deg);
  }
  50% {
    transform: rotate(-30deg)
  }
  100% {
    transform: rotate(0deg);
  }
}
@keyframes anim-sway-rev {
  0% {
    transform: rotate(0deg);
  }
  50% {
    transform: rotate(30deg)
  }
  100% {
    transform: rotate(0deg);
  }
}
@keyframes anim-scale {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.3);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes anim-rotate {
  0% {
    transform: rotate(0);
  }
  100% {
    transform: rotate(-360deg);
  }
}
@media screen and (max-width: 768px) {
  .sepalate-slider-wrapper {
    margin-bottom: 100px;
  }
}

/* メニュー */
#menu {
  padding-top: 40px;
}
#menu .c-section-hdg {
  color: var(--lightblue);
}
#menu .c-hdg-back::before {
  content: "Menu";
}
/* サービス内容 */
.menu-services-flex {
  display: flex;
  flex-wrap: wrap;
  row-gap: clamp(16px, 14.22px + 0.5096vw, 24px);
  column-gap: clamp(16px, 14.22px + 0.5096vw, 24px);;
  margin-bottom: clamp(48px, 40.87px + 2.0382vw, 80px);
}
.menu-morning {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  row-gap: 24px;
  column-gap: 32px;
  width: 100%;
  padding: clamp(24px, 21.32px + 0.7643vw, 36px) 16px;
  border: 1px solid var(--black);
}
.menu-morning h3 {
  display: flex;
  gap: 12px;
  font-size: clamp(24px, 5.71px + 1.7857vw, 40px);
  font-family: var(--font-en);
}
.menu-morning h3 img {
  width: clamp(24px, 18.65px + 1.5287vw, 48px);
}
.menu-time {
  font-size: clamp(24px, 5.71px + 1.7857vw, 40px);
  font-family: var(--font-en);
  letter-spacing: 10%;
}
.menu-morning-service {
  display: flex;
  gap: 12px;
}
.menu-morning-service > p {
  padding: 16px 12px;
  background-color: var(--black);
  color: var(--white);
  text-align: center;
  font-weight: 700;
}
.menu-morning-service-inner {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.menu-morning-service-inner p {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: clamp(16px, 11.43px + 0.4464vw, 20px);
  font-weight: 700;
}
.menu-morning-service-inner p img {
  width: 24px;
}
.menu-morning-service-hr {
  width: 100%;
  height: 0;
  border-bottom: 1px solid var(--black);
}
.menu-invert {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 8px;
  flex-grow: 1;
  padding: 24px 0;
  background-color: var(--black);
  color: var(--white);
}
.menu-invert h3 {
  display: flex;
  align-items: center;
  gap: clamp(4px, 2.22px + 0.5096vw, 12px);
  font-size: clamp(24px, 19.43px + 0.4464vw, 28px);
  font-family: var(--font-en);
}
.menu-invert h3 img {
  width: clamp(24px, 19.43px + 0.4464vw, 28px);
  height: fit-content;
}
.menu-invert-service {
  font-size: clamp(16px, 11.43px + 0.4464vw, 20px);
  font-weight: 700;
}
@media screen and (max-width: 768px) {
  .menu-services-flex {
    max-width: 460px;
    margin-right: auto;
    margin-left: auto;
  }
  .menu-morning {
    flex-direction: column;
  }
  .menu-morning-service {
    flex-direction: column;
    width: 100%;
  }
  .menu-morning-service > p {
    width: 100%;
    padding: 4px 0;
  }.menu-morning-service > p br {
    display: none;
  }
  .menu-morning-service-hr {
    margin: 6px 0;
  }
  .menu-invert {
    width: 100%;
  }
  .menu-time {
    font-size: 36px;
  }
}
/* メニュー表 */
.menu-tab {
  display: flex;
  justify-content: center;
  gap: clamp(40px, 22.17px + 5.0955vw, 120px);
  margin-bottom: clamp(32px, 30.22px + 0.5096vw, 40px);
}
.menu-tab-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(8px, 6.22px + 0.5096vw, 16px);
}
.menu-tab-arrow {
  width: clamp(10px, 7.77px + 0.6369vw, 20px);
  filter: brightness(0);
  opacity: 0.2;
}
.menu-tab-main {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  width: clamp(80px, 50.13px + 8.5350vw, 214px);
  height: clamp(98px, 60.32px + 10.7643vw, 267px);
  text-align: center;
}
.menu-tab-main .ja {
  position: relative;
  font-size: clamp(14px, 11.77px + 0.6369vw, 24px);
  font-weight: 700;
}
.menu-tab-main .ja::after {
  display: block;
  content: "";
  width: 100%;
  height: 0;
}
.menu-tab-item:nth-of-type(1) .ja::after {
  border-bottom: 4px solid var(--lightblue);
}
.menu-tab-item:nth-of-type(2) .ja::after {
  border-bottom: 4px solid var(--yellow);
}
.menu-tab-item:nth-of-type(3) .ja::after {
  border-bottom: 4px solid var(--red);
}
.menu-tab-item:nth-of-type(1) .menu-tab-main img {
  width: clamp(47px, 28.94px + 5.1592vw, 128px);
}
.menu-tab-item:nth-of-type(2) .menu-tab-main img {
  width: clamp(15px, 9.39px + 1.6032vw, 40.17px);
}
.menu-tab-item:nth-of-type(3) .menu-tab-main img {
  width: clamp(44px, 26.90px + 4.8847vw, 120.69px);
}
.menu-tab-main .en {
  font-size: clamp(20px, 16.43px + 1.0191vw, 36px);
  font-family: var(--font-vibur);
}
.menu-tab-item:nth-of-type(1) .en {
  color: var(--lightblue);
}
.menu-tab-item:nth-of-type(2) .en {
  color: var(--yellow);
}
.menu-tab-item:nth-of-type(3) .en {
  color: var(--red);
}
.menu-tab-bg {
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  display: flex;
  justify-content: center;
  width: 100%;
  height: 100%;
  background-color: var(--lightgray);
  border-radius: 50%;
  overflow: hidden;
  transition: background-color 0.5s;
}
.menu-tab-item:nth-of-type(1):hover .menu-tab-bg {
  background-color: #C2F8FF;
}
.menu-tab-item:nth-of-type(2):hover .menu-tab-bg {
  background-color: #F9E6B4;
}
.menu-tab-item:nth-of-type(3):hover .menu-tab-bg {
  background-color: #EFBFBD;
}
.menu-tab-marquee {
  display: flex;
  justify-content: center;
  align-items: center;
  width: max-content;
}
.menu-tab-item:hover .menu-tab-marquee {
  animation: anim-menu-marquee 5s infinite linear 
}
.menu-tab-marquee span {
  padding: 0 10px;
  font-size: clamp(24px, 13.75px + 2.9299vw, 70px);
  font-family: var(--font-en);
  white-space: nowrap;
}
@keyframes anim-menu-marquee {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(calc(-100% / 3));
  }
}
.menu-tab-item:nth-of-type(1) .menu-tab-bg {
  color: var(--lightblue);
}
.menu-tab-item:nth-of-type(2) .menu-tab-bg {
  color: var(--yellow);
}
.menu-tab-item:nth-of-type(3) .menu-tab-bg {
  color: var(--red);
}
.menu-tab-item:hover .menu-tab-arrow {
  filter: brightness(1);
  opacity: 1;
  animation: anim-arrow-up-down 0.5s alternate infinite;
}
@keyframes anim-arrow-up-down {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(clamp(5px, 3.89px + 0.3185vw, 10px));
  }
}
.menu-menutable {
  display: none;
  width: 100%;
  padding: clamp(40px, 31.08px + 2.5478vw, 80px) clamp(16px, 1.73px + 4.0764vw, 80px);
  background-color: var(--lightgray);
}
.menu-menutable.is-visible {
  display: block;
}
.menu-menutable.is-visible > * {
  opacity: 0;
  animation: text-fade-in 1s forwards;
}
@keyframes text-fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.menu-drink {
  border-top: 4px solid var(--lightblue);
}
.menu-alcohol {
  border-top: 4px solid var(--yellow);
}
.menu-food {
  border-top: 4px solid var(--red);
}
.menu-menutable-ja,
.menu-menutable-en {
  padding-bottom: clamp(40px, 31.08px + 2.5478vw, 80px);
}
.menu-menutable h3 {
  display: flex;
  gap: 16px;
  margin-bottom: clamp(24px, 20.43px + 1.0191vw, 40px);
  font-size: clamp(16px, 11.54px + 1.2739vw, 36px);
  font-weight: 700;
}
.menu-menutable h3::before {
  display: block;
  content: "";
  width: 0;
  height: clamp(23px, 16.54px + 1.8471vw, 52px);
  border-left: 4px solid var(--black);
}
.menu-menutable h4,
.menu-menutable p {
  margin-bottom: clamp(24px, 20.43px + 1.0191vw, 40px);
  font-size: clamp(14px, 9.99px + 1.1465vw, 32px);
  font-weight: 700;
}
.menu-menutable ul {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(16px, 14.22px + 0.5096vw, 24px);
  margin-bottom: clamp(24px, 20.43px + 1.0191vw, 40px);
}
.menu-menutable ul:last-of-type {
  margin-bottom: 0px;
}
.menu-menutable ul li {
  display: flex;
  justify-content: space-between;
  padding-bottom: clamp(16px, 14.22px + 0.5096vw, 24px);
  border-bottom: 1px solid var(--black);
}
.menu-menutable ul li span {
  font-size: clamp(14px, 11.77px + 0.6369vw, 24px);
  font-weight: 700;
}
.menu-menutable ul li span + span {
  margin-left: 20px;
  font-size: clamp(16px, 12.43px + 1.0191vw, 32px);
  font-family: var(--font-oswald);
  font-weight: 400;
}
.menu-menutable-en h3,
.menu-menutable-en h4,
.menu-menutable-en ul li span {
  font-family: var(--font-oswald);
  font-weight: 400;
}
.menu-menutable-engbtn {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(10px, 8.66px + 0.3822vw, 16px);
  width: 100%;
  margin-bottom: clamp(40px, 31.08px + 2.5478vw, 80px);
  padding: 10px 0;
  background-color: var(--black);
  color: var(--white);
  font-size: clamp(14px, 11.77px + 0.6369vw, 24px);
  font-family: var(--font-en);
  text-align: center;
}
.menu-menutable-engbtn:last-of-type {
  margin-bottom: 0;
}
.menu-menutable-engbtn span {
  display: inline-block;
  position: relative;
  width: 14px;
  height: 14px;
  transition: transform 0.4s cubic-bezier(0.3, 1.8, 0.6, 1);
}
.menu-menutable-engbtn span::before,
.menu-menutable-engbtn span::after {
  display: block;
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 100%;
  height: 0;
  border-top: 2px solid var(--white);
  transform-origin: center;
  transition: opacity 0.3s;
}
.menu-menutable-engbtn span::after {
  transform: rotate(90deg);
}
.menu-menutable-engbtn:not(.is-open):hover span {
  transform: rotate(90deg);
}
.menu-menutable-engbtn.is-open span::after {
  opacity: 0;
}
@media screen and (max-width: 768px) {
  .menu-menutable ul {
    grid-template-columns: 1fr;
  }
}

/* ニュース */
#news {
  padding-top: 40px;
}
#news .c-section-hdg {
  color: var(--yellow);
}
#news .c-hdg-back::before {
  content: "Menu";
}
.news-list {
  margin-bottom: clamp(40px, 31.08px + 2.5478vw, 80px);
}
.news-list li:not(:last-of-type) {
  margin-bottom: clamp(16px, 14.22px + 0.5096vw, 24px);
}
.news-list li a {
  display: block;
  position: relative;
  --list-pdg: clamp(16px, 10.65px + 1.5287vw, 40px);
  padding: var(--list-pdg) clamp(52px, 38.62px + 3.8217vw, 112px) var(--list-pdg) var(--list-pdg);
  border: 1px solid var(--black);
  transition: all 0.5s;
}
.news-list li p {
  margin-bottom: 16px;
  font-size: clamp(16px, 14.22px + 0.5096vw, 24px);
  line-height: clamp(28px, 25.32px + 0.7643vw, 40px);
  font-weight: 700;
}
.news-list li time {
  font-size: clamp(14px, 13.55px + 0.1274vw, 16px);
  font-weight: 700;  
}
.news-list li .c-arrow-square {
  position: absolute;
  right: clamp(16px, 10.65px + 1.5287vw, 40px);
  bottom: clamp(16px, 10.65px + 1.5287vw, 40px);
}
.news-list a:hover {
  background-color: var(--black);
  color: var(--white);
  opacity: 1;
}
.news-list a:hover .c-arrow-square {
  background-color: var(--white);
}
.news-list a:hover .c-arrow-square::before {
  filter: brightness(0);
}
.news-viewall {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 280px;
  margin: 0 auto;
  padding: 16px 16px 16px 32px;
  border: 1px solid var(--black);
  background-color: var(--black);
  color: var(--white);
  font-size: clamp(14px, 11.77px + 0.6369vw, 24px);
  font-weight: 500;
  font-family: var(--font-en);
  transition: all 0.5s;
}
.news-viewall:hover {
  background-color: var(--white);
  color: var(--black);
  opacity: 1;
}
.news-viewall:hover .c-arrow-square {
  background-color: var(--black);
}
.news-viewall:hover .c-arrow-square::before {
  filter: brightness(1);
}
@media screen and (max-width: 768px) {
  .news-viewall {
    width: 100%;
  }
}
.news-empty {
  font-size: 20px;
  font-weight: 700;
}

/* アクセス */

#access {
  padding-top: 40px;
}
#access .c-section-hdg {
  color: var(--pink);
}
#access .c-hdg-back::before {
  content: "Menu";
}
.access-flex {
  display: flex;
  justify-content: space-between;
  gap: clamp(32px, 10.67px + 2.7778vw, 64px);
}
.access-info {
  padding: clamp(16px, 5.30px + 3.0573vw, 64px);
  background-image: url(../img/access_info_bg.jpg);
  background-repeat: repeat;
  background-size: 100%;
}
.access-info dl {
  margin-bottom: clamp(24px, 20.43px + 1.0191vw, 40px);
}
.access-info dl div {
  display: flex;
  gap: clamp(8px, 6.22px + 0.5096vw, 16px);
}
.access-info dt,
.access-info dd {
  padding: clamp(24px, 20.43px + 1.0191vw, 40px) 0;
  border-bottom: 1px solid var(--black);
}
.access-info dt {
  min-width: clamp(72px, 61.30px + 3.0573vw, 120px);
  font-size: clamp(16px, 15.11px + 0.2548vw, 20px);
  font-weight: 700;
}
.access-info dd {
  flex-grow: 1;
  font-size: clamp(14px, 13.55px + 0.1274vw, 16px);
  line-height: 2;
}
.access-info-btmflex {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(35px, 33.89px + 0.3185vw, 40px);
}
.access-info-btmflex a {
  display: flex;
  align-items: center;
  padding: clamp(16px, 0.00px + 2.0833vw, 40px);
  background-color: var(--white);
  border: 1px solid var(--black);
  font-size: clamp(14px, 11.77px + 0.6369vw, 24px);
  font-family: var(--font-en);
  line-height: 32px;
  transition: all 0.5s;
}
.access-info-btmflex a img {
  width: clamp(9.33px, 8.29px + 0.2975vw, 14px);
  margin-right: 8px;
}
.access-info-btmflex a .c-arrow-square {
  margin-left: clamp(12px, 7.54px + 1.2739vw, 32px);
}
.access-info-btmflex a:hover {
  background-color: var(--black);
  color: var(--white);
  opacity: 1;
}
.access-info-btmflex a:hover img {
  filter: invert(1) brightness(2);
}
.access-info-btmflex a:hover .c-arrow-square {
  background-color: var(--white);
}
.access-info-btmflex a:hover .c-arrow-square::before {
  filter: brightness(0);
}
.access-info-btmflex img {
  width: clamp(100px, 33.33px + 8.6806vw, 200px);
}
.access-instagram-slider {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: clamp(24px, 20.43px + 1.0191vw, 40px);
  position: relative;
  width: clamp(318px, 288.57px + 8.4076vw, 450px);
  overflow: hidden;
}
.access-instagram-slider > img:nth-of-type(1) {
  width: clamp(40px, 34.65px + 1.5287vw, 64px);
}
.access-instagram-slider > img:nth-of-type(2) {
  width: clamp(159px, 135.82px + 6.6242vw, 263px);
}
.access-instagram-slider p {
  color: var(--white);
  font-size: clamp(40px, 34.65px + 1.5287vw, 64px);
  font-family: var(--font-en);
}
.access-instagram-slider .c-arrow-square {
  position: absolute;
  right: clamp(24px, 20.43px + 1.0191vw, 40px);
  bottom: clamp(24px, 20.43px + 1.0191vw, 40px);
}
.access-instagram-bg {
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: max-content;
  animation: anim-instagram-bg 60s linear 0s infinite normal none running;
}
.access-instagram-bg img {
  width: 100%;
}
@keyframes anim-instagram-bg {
  0% {
    transform: translateY(0%);
  }
  100% {
    transform: translateY(-50%);
  }
}
@media screen and (max-width: 768px) {
  .access-flex {
    flex-direction: column;
    gap: 40px;
  }
  .access-info-btmflex {
    justify-content: space-around;
    gap: 0;
  }
  .access-instagram-slider {
    width: 100%;
    height: 360px;
  }
  .access-info-btmflex img {
    width: clamp(100px, 74.88px + 7.1770vw, 130px);
  }
}

/* フッター */
.site-footer {
  width: 100%;
  overflow: hidden;
}
.site-footer button {
  transition: opacity 0.5s;
}
.site-footer button:hover {
  opacity: 0.5;
}
.site-footer-storelinks {
  padding: 40px 0;
  background-color: var(--black);
}
.site-footer-storelinks div {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: clamp(40px, 31.08px + 2.5478vw, 80px);
}
.site-footer-storelinks a img {
  width: clamp(76px, 58.17px + 5.0955vw, 156px);
}
.site-footer-storelinks button img {
  width: clamp(120px, 101.05px + 5.4140vw, 205px)
 }
 .site-footer-cards {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 40px;
  padding: clamp(40px, 31.08px + 2.5478vw, 80px) 40px;
 }
 .site-footer-cards a img,
 .site-footer-cards button img {
  width: 100%;
  max-width: 600px;
  aspect-ratio: 2 / 1;
  object-fit: cover;
 }
 .site-footer-bottom {
  display: flex;
  align-items: center;
  padding: 16px 24px;
  border-top: 1px solid var(--black);
 }
 .site-footer-logo {
  transition: opacity 0.5s;
 }
 .site-footer-logo img {
  width: clamp(80px, 75.54px + 1.2739vw, 100px);
  filter: brightness(0);
 }
 .site-footer .c-privacy {
  margin-left: auto;
 }
 .site-footer-copy {
  margin-left: 24px;
  font-size: 10px;
  font-family: var(--font-en);
 }
 @media screen and (max-width: 768px) {
  .site-footer-cards {
    flex-direction: column;
    padding-left: 48px;
    padding-right: 48px;
  }
  .site-footer .c-privacy {
    display: none;
  }
  .site-footer-copy {
    margin-left: auto;
  }
 }
 
/* The PITCH modal */
html:has(.modal[open]) {
  overflow: hidden;
}
.modal {
  position: fixed;
  z-index: 100;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  border: none;
  background-color: transparent;
}
.modal[open] {
  animation: modal-enter 0.2s forwards;
}
.modal.modal-closing {
  animation: modal-leave 0.2s forwards;
}
.modal::backdrop {
  background-color: #00000088;
}
.modal-inner {
  width: 100%;
  height: 100vh;
  padding: 0 clamp(8px, -8.05px + 4.5860vw, 80px);
  overflow-y: auto;
  cursor: pointer;
}
.modal-close-wrappper {
  display: flex;
  justify-content: end;
}
.modal-close-btn {
  display: block;
  position: fixed;
  z-index: 100;
  width: clamp(40px, 29.30px + 3.0573vw, 88px);
  aspect-ratio: 1;
  margin-top: clamp(16px, 12.43px + 1.0191vw, 32px);
  margin-right: clamp(16px, 12.43px + 1.0191vw, 32px);
  background-color: var(--black);
  border: none;
  border-radius: 50%;
  cursor: pointer;
}
.modal-close-btn::before,
.modal-close-btn::after {
  display: block;
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 60%;
  height: 2px;
  background-color: var(--white);
  transform-origin: center;
}
.modal-close-btn::before {
  transform: rotate(45deg);
}
.modal-close-btn::after {
  transform: rotate(-45deg);
}
.modal-content {
  position: relative;
  width: 100%;
  max-width: 1240px;
  margin: clamp(8px, 4.21px + 1.0828vw, 25px) auto 50px;
  border-radius: 40px;
  background: url(../../balconiwa/img/cloud-note-paper.png);
  letter-spacing: 0;
  overflow: hidden;
  cursor: auto;
}
.modal-content-inner {
  position: relative;
  z-index: 10;
  padding: clamp(16px, 1.73px + 4.0764vw, 80px) clamp(16px, -15.66px + 9.0446vw, 158px) clamp(40px, 25.73px + 4.0764vw, 104px);
}
.modal-stain {
  position: absolute;
  width: 400px;
  height: 173px;
}
.modal-stain:nth-of-type(1) {
  top: 0;
  left: 0;
  border-radius: 40px 0 0 0;
}
.modal-stain:nth-of-type(2) {
  bottom: 0;
  right: 0;
  border-radius: 0 0 40px 0;
}
.modal-content-kv {
  display: flex;
  gap: 24px;
}
.modal-content-kv img {
  width: clamp(300px, 200.00px + 13.0208vw, 450px);
  height: fit-content;
  aspect-ratio: 1;
}
.modal-kv-text {
  margin-top: auto;
}
.modal-hdg-main {
  width: fit-content;
  background-image: url(../../balconiwa/img/modal_hdg_line.png);
  background-size: cover;
  font-size: clamp(40px, calc(1.53px + 2.42vw), 48px);
  font-family: var(--font-en);
  font-weight: 500;
}
.modal-hdg-sub {
  margin-top: 8px;
  font-size: clamp(20px, 19.11px + 0.2548vw, 24px);
  font-family: var(--font-love);
  letter-spacing: 10%;
}
.modal-kv-para {
  margin-top: clamp(24px, 18.65px + 1.5287vw, 48px);;
  font-size: clamp(16px, 15.55px + 0.1274vw, 18px);
  font-weight: bold;
  line-height: 2;
}
.modal-content-intro {
  margin-top: clamp(40px, 36.43px + 1.0191vw, 56px);
}
.modal-content-intro h3 {
  font-size: clamp(20px, 19.11px + 0.2548vw, 24px);
  font-weight: bold;
}
.modal-content-intro p {
  margin-top: 24px;
  font-size: 14px;
  line-height: 24px;
}
.modal-content-points {
  margin-top: clamp(40px, 31.08px + 2.5478vw, 80px);
  border-top: 1px solid var(--black);
}
.modal-points-item {
  display: flex;
  flex-direction: row-reverse;
  gap: 24px;
  margin-top: clamp(40px, 31.08px + 2.5478vw, 80px);
}
.modal-points-item img {
  flex-shrink: 0;
  width: 30%;
  height: fit-content;
  aspect-ratio: 1;
}
.modal-item-num {
  font-size: clamp(20px, 19.11px + 0.2548vw, 24px);
  font-family: var(--font-en);
}
.modal-item-hdg {
  width: fit-content;
  margin-top: 8px;
  font-size: clamp(32px, 25.76px + 1.7834vw, 60px);
  font-weight: normal;
  font-family: var(--font-en);
  line-height: clamp(44px, 37.76px + 1.7834vw, 72px);;
}
.modal-item-hdg::after {
  display: inline;
  position: absolute;
  width: clamp(80px, 71.08px + 2.5478vw, 120px);
  z-index: -10;
  transform: translate(-100px, 20px);
}
.modal-points-item:nth-of-type(1) .modal-item-hdg::after {
  content: url(../../balconiwa/img/modal_point_line_1.png);
}
.modal-points-item:nth-of-type(2) .modal-item-hdg::after {
  content: url(../../balconiwa/img/modal_point_line_2.png);
}
.modal-points-item:nth-of-type(3) .modal-item-hdg::after {
  content: url(../../balconiwa/img/modal_point_line_3.png);
}
.modal-points-item:nth-of-type(4) .modal-item-hdg::after {
  content: url(../../balconiwa/img/modal_point_line_4.png);
}
.modal-item-catch {
  margin-top: 24px;
  font-size: clamp(18px, 16.66px + 0.3822vw, 24px);
  font-weight: bold;
  line-height: 24px;
}
.modal-item-para {
  margin-top: 24px;
  font-size: 14px;
  line-height: 24px;
}
.modal-message {
  margin-top: 120px;
}
.modal-message .en {
  font-size: clamp(24px, 20.43px + 1.0191vw, 40px);
  font-family: var(--font-love);
  letter-spacing: 10%;
}
.modal-message .ja {
  margin-top: 16px;
  font-size: clamp(14px, 12.66px + 0.3822vw, 20px);
  font-weight: bold;
}
@keyframes modal-enter {
  0% {
    opacity: 0;
    transform: scale(0.9);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes modal-leave {
  0% {
    opacity: 1;
    transform: scale(1);
  }
  100% {
    opacity: 0;
    transform: scale(0.9);
  }
}
@media (max-width: 767px) {
  .modal-content-kv {
    flex-direction: column;
  }
  .modal-content-kv img {
    width: 100%;
  }
  .modal-points-item {
    flex-direction: column;
  }
  .modal-points-item img {
    width: 100%;
  }
}

/* お知らせ個別 */
.news-article {
  display: flex;
  flex-direction: column;
  gap: clamp(40px, calc(24.27px + 4.49vw), 80px);
}
.news-article .article-header {
  display: flex;
  flex-direction: column;
  gap: clamp(8px, calc(4.85px + 0.9vw), 16px);
  padding-bottom: clamp(24px, calc(17.71px + 1.8vw), 40px);
  border-bottom: 1px solid var(--black);
}
.news-article .article-date {
  font-size: clamp(11px, calc(9.82px + 0.34vw), 14px);
  font-family: var(--font-en);
  font-weight: 400;
}
.news-article .article-title {
  font-size: clamp(20px, calc(18.43px + 0.45vw), 24px);
}
.news-article .article-thumb {
  display: flex;
  justify-content: center;
}
.news-article .article-thumb img {
  max-height: clamp(286px, calc(146.79px + 39.78vw), 640px);
  object-fit: contain;
}
.news-article a[href] {
  color: var(--lightblue);
  text-decoration: underline;
}
.news-single .page-content-inner {
  margin-bottom: clamp(40px, 31.08px + 2.5478vw, 80px);
}
.news-single .back-to-archive {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 280px;
  margin: 0 auto;
  padding: 16px 16px 16px 32px;
  border: 1px solid var(--black);
  background-color: var(--black);
  color: var(--white);
  font-size: clamp(14px, 11.77px + 0.6369vw, 24px);
  font-weight: 500;
  font-family: var(--font-en);
  transition: all 0.5s;
}
.news-single .back-to-archive:hover {
  background-color: var(--white);
  color: var(--black);
  opacity: 1;
}
.news-single .back-to-archive:hover .c-arrow-square {
  background-color: var(--black);
}
.news-single .back-to-archive:hover .c-arrow-square::before {
  filter: brightness(1);
}
@media screen and (max-width: 768px) {
  .news-single .back-to-archive {
    width: 100%;
  }
}

/* お問い合わせ */
/* contact */
.contact .page-content-inner {
  width: 100%;
  padding: clamp(40px, 31.08px + 2.5478vw, 80px) clamp(16px, 1.73px + 4.0764vw, 80px);
  background-color: var(--lightgray);
}
.contact .contact-note {
  text-align: center;
  font-size: clamp(11px, calc(10.61px + 0.11vw), 12px);
  display: flex;
  gap: 8px;
  justify-content: center;
  margin-bottom: 40px;
}
.contact .contact-note .kome {
  color: var(--red);
}
.contact .contact-form {
  display: flex;
  flex-direction: column;
  gap: clamp(24px, calc(8.27px + 4.49vw), 64px);
  padding-top: clamp(40px, calc(24.27px + 4.49vw), 80px);
}
.contact .contact-form-list,
.contact .contact-confirm-list {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
}
.contact .contact-form-list {
  margin-bottom: 40px;
}
.contact .contact-form-row,
.contact .contact-confirm-row {
  display: flex;
  gap: 32px;
  align-items: center;
}
.contact .contact-form-row dt,
.contact .contact-confirm-row dt {
  width: 200px;
  margin-bottom: auto;
  font-weight: 700;
}
.contact .contact-form-row dd,
.contact .contact-confirm-row dd {
  width: clamp(286px, calc(203.42px + 23.6vw), 496px);
  max-width: 100%;
}
.contact .contact-form-row .inquiry-label {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.contact .contact-form-row .inquiry-label .note {
  font-size: clamp(11px, calc(10.21px + 0.22vw), 13px);
  font-weight: 500;
  color: var(--black);
}
.contact .contact-form-row .inquiry-grid .wpcf7-form-control {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.contact .wpcf7-list-item {
  margin: 0;
}
.contact .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 8px;
}
.contact label.is-required {
  display: flex;
  align-items: center;
  gap: 8px;
}
.contact label.is-required::after {
  content: '※';
  color: var(--red);
  font-weight: 400;
}
.contact .contact-form-row .inquiry-grid .wpcf7-form-control .wpcf7-list-item {
  display: flex;
  align-items: center;

  border: 1px solid var(--black);
  background-color: var(--white);
}
.contact .inquiry-grid .wpcf7-list-item:has(input[type='checkbox' i]:checked) {
  background-color: var(--lightblue);
  color: var(--white);
}
.contact input[type='checkbox' i] {
  appearance: none;
  -webkit-appearance: none;
  display: inline-grid;
  place-content: center;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  padding: 0;
  border: 1px solid var(--black);
  background-color: var(--white);
  cursor: pointer;
}

.contact input[type='checkbox' i]::before {
  content: '';
  width: 8px;
  height: 5px;
  border-left: 2px solid var(--lightblue);
  border-bottom: 2px solid var(--lightblue);
  transform: translateY(-2px) rotate(-45deg) scale(0);
  transform-origin: center;
}

.contact input[type='checkbox' i]:checked {
  border: 1px solid var(--lightblue);
}

.contact input[type='checkbox' i]:checked::before {
  transform: translateY(-2px) rotate(-45deg) scale(1);
}
.contact .contact-btn-wrapper {
  position: relative;
  width: fit-content;
  height: fit-content;
}
.contact .contact-btn-wrapper input {
  width: 280px;
  padding: 16px 16px 16px 32px;
  font-size: clamp(14px, 11.77px + 0.6369vw, 24px);
  font-weight: 700;
  font-family: var(--font-jp);
  text-align: left;
  cursor: pointer;
  transition: all 0.5s;
}
.contact .contact-btn-wrapper input[type='submit'] {
  border: 1px solid var(--black);
  background-color: var(--black);
  color: var(--white);
}
.contact .contact-btn-wrapper:hover input[type='submit'] {
  background-color: var(--white);
  color: var(--black);
  opacity: 1;
}
.contact .contact-btn-wrapper input[type='button'] {
  background-color: var(--gray);
  border: 1px solid var(--gray);
  color: var(--white);
}
.contact .contact-btn-wrapper:hover input[type='button'] {
  background-color: var(--white);
  color: var(--gray);
  opacity: 1;
}
.contact .contact-btn-wrapper .c-arrow-square {
  position: absolute;
  top: 16px;
  right: 16px;
}
.contact .contact-btn-wrapper:hover .c-arrow-square {
  background-color: var(--black);
}
.contact .contact-btn-wrapper:hover .c-arrow-square::before {
  filter: brightness(1);
}
@media screen and (max-width: 768px) {
  .contact .contact-btn-wrapper,
  .contact .contact-btn-wrapper input {
    width: 100%;
    max-width: clamp(286px, calc(203.42px + 23.6vw), 496px);
  }
}
.contact .wpcf7-spinner {
  display: none;
}
.contact input,
.contact textarea {
  padding: clamp(8px, calc(4.85px + 0.9vw), 16px);
  border: 1px solid var(--black);
  width: 100%;
}
.contact input::placeholder,
.contact textarea::placeholder {
  color: var(--gray);
  opacity: 1;
}
.contact .flex-fields p {
  display: flex;
  gap: 16px;
}
.contact-form-row--privacy {
  justify-content: center;
  margin-bottom: 40px;
  font-weight: 500;
}
.contact .contact-form-row--privacy a {
  color: var(--lightblue);
  text-decoration: underline;
  font-weight: 500;
}
.contact .confirm-content dt {
  color: var(--black);
}
.contact .contact-form-actions p {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 80px;
}
.wpcf7-form-control-wrap {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 16px;
  font-size: clamp(13px, 12.33px + 0.1911vw, 16px);;
}
.contact-form-row--privacy .wpcf7-form-control {
  display: flex;
  justify-content: center;
}

.wpcf7-not-valid-tip {
  color: var(--red);
  font-weight: 700;
}
.contact input.wpcf7-not-valid,
.contact textarea.wpcf7-not-valid {
  border-color: var(--red);
}

.contact .inquiry-grid .wpcf7-form-control.wpcf7-not-valid .wpcf7-list-item {
  border-color: var(--red);
  color: var(--red);
}
.contact
  .inquiry-grid
  .wpcf7-form-control.wpcf7-not-valid
  .wpcf7-list-item
  input {
  border-color: var(--red);
}

.wpcf7-response-output {
  display: none;
}
/* お問い合わせ 確認 */
.contact .contact-confirm {
  display: flex;
  flex-direction: column;
  gap: 80px;
}
@media (max-width: 768px) {
  .contact .contact-form-row:not(.contact-form-row--privacy),
  .contact .contact-confirm-row {
    flex-direction: column;
    gap: 16px;
    align-items: start;
    max-width: 100%;
  }
  .contact .contact-form-row .inquiry-grid .wpcf7-form-control {
    display: flex;
    flex-direction: column;
  }
  .contact .contact-front-text {
    text-align: start;
  }
  .contact .confirm-content .contact-form-actions p {
    flex-direction: column-reverse;
    gap: 24px;
  }
}

/* お問い合わせ送信後のサンクスページ */
.contact .thanks-content {
  display: flex;
  flex-direction: column;
  gap: 80px;
}
.contact .thanks-content .head-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(40px, calc(24.27px + 4.49vw), 80px);
}
.contact .thanks-content .bill {
  background-image: url('../img/contact-thanks-bill.png');
  width: clamp(200px, 158.98px + 11.7197vw, 384px);
  height: clamp(106px, 84.15px + 6.2420vw, 204px);
  background-repeat: no-repeat;
  background-size: contain;
  margin: auto;
}
.contact .thanks-content .thanks-text {
  text-align: center;
  color: var(--lightblue-400);
  display: flex;
  flex-direction: column;
  gap: clamp(8px, calc(1.71px + 1.8vw), 24px);
}
.contact .thanks-content .thanks-text .thanks-catch  {
  font-size: clamp(48px, calc(35.42px + 3.6vw), 80px);
  font-family: var(--font-vibur);
  font-weight: 500;
}
.contact .thanks-content .thanks-text .thanks-catch-sub,
.contact .thanks-content .thanks-body {
  font-size: clamp(13px, 12.33px + 0.1911vw, 16px);
  font-weight: 400;
  text-align: start;
}
.contact .back-to-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 280px;
  margin: 0 auto;
  padding: 16px 16px 16px 32px;
  border: 1px solid var(--black);
  background-color: var(--black);
  color: var(--white);
  font-size: clamp(14px, 11.77px + 0.6369vw, 24px);
  font-weight: 500;
  font-family: var(--font-en);
  transition: all 0.5s;
}
.contact .back-to-top:hover {
  background-color: var(--white);
  color: var(--black);
  opacity: 1;
}
.contact .back-to-top:hover .c-arrow-square {
  background-color: var(--black);
}
.contact .back-to-top:hover .c-arrow-square::before {
  filter: brightness(1);
}
@media screen and (max-width: 768px) {
  .contact .thanks-content {
    width: clamp(286px, calc(203.42px + 23.6vw), 496px);
    max-width: 100%;
    margin: 0 auto;
  }
  .contact .back-to-top {
    width: clamp(286px, calc(203.42px + 23.6vw), 496px);
    max-width: 100%;
  }
}


/* Editor Content */
/* お知らせ個別ページやプライバシーポリシー など */
.editor-content > *:first-child {
  margin-top: 0;
}
.editor-content h2 {
  font-size: clamp(20px, calc(18.43px + 0.45vw), 24px);
  margin-top: clamp(56px, calc(46.56px + 2.7vw), 80px);

  border: var(--black) solid 1px;
  padding: 16px 24px;

  position: relative;
  z-index: 0;
  background: transparent;
  color: var(--white);
}
.editor-content h2::before {
  content: '';
  position: absolute;
  inset: 8px;
  z-index: -1;
  background-color: var(--black);
}
.editor-content h3 {
  font-size: clamp(18px, calc(16.43px + 0.45vw), 22px);
  margin-top: clamp(32px, calc(25.71px + 1.8vw), 48px);
  line-height: 36px;

  border-top: 1px solid var(--black);
  border-bottom: 1px solid var(--black);
  padding: 8px;
}
.editor-content h4 {
  font-size: clamp(16px, calc(14.43px + 0.45vw), 20px);
  margin-top: clamp(32px, calc(25.71px + 1.8vw), 48px);
  line-height: 36px;

  background-color: var(--black);
  color: var(--white);
  padding: 8px 16px;
}
.editor-content h5 {
  font-size: clamp(14px, calc(12.43px + 0.45vw), 18px);
  margin-top: clamp(32px, calc(25.71px + 1.8vw), 48px);
  line-height: 36px;

  border-bottom: 1px solid var(--black);
  padding: 0 8px 8px;
}
.editor-content h6 {
  font-size: clamp(12px, calc(10.43px + 0.45vw), 16px);
  margin-top: clamp(32px, calc(25.71px + 1.8vw), 48px);
  line-height: 36px;

  color: var(--black);
}
.editor-content p,
.editor-content ul,
.editor-content ol {
  line-height: clamp(28px, calc(24.85px + 0.9vw), 36px);
  margin-top: clamp(20px, calc(16.85px + 0.9vw), 28px);
}
.editor-content ul li {
  list-style: disc;
  list-style-position: inside;
}
.editor-content ol li {
  list-style: decimal;
  list-style-position: inside;
}
.editor-content p.has-small-font-size {
  font-size: 11px !important;
  line-height: 20px;
}
.editor-content p.has-large-font-size {
  font-size: clamp(16px, 15.11px + 0.2548vw, 20px) !important;
  line-height: normal;
}
.editor-content strong {
  color: var(--red);
  font-weight: bold;
}