@charset "UTF-8";
/* cormorant-garamond-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Cormorant Garamond";
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/cormorant-garamond-v21-latin-regular.woff2") format("woff2"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
:root {
  /* ======================
  カラーセット
  ====================== */
  --color-main: #B89B5E;
  --color-main-hover: #dac28d;
  --color-accent: #D2CFC4;
  --color-accent-hover: rgb(246, 246, 246);
  --color-accent-2: #9b8f84;
  --color-accent-2-hover: #b0a9a2;
  --color-bg: #fcfcfc;
  --color-text: #4A4542;
  --color-link: #1176d4;
  --color-white: #fff;
  --color-red: #e53935;
  /* ======================
  フォントセット
  ====================== */
  --font-jp: "Noto Serif JP", sans-serif;
  --font-en: "Cormorant Garamond", serif;
  --font-num: "Cormorant Garamond", sans-serif;
  /* ======================
  トランジションセット
  ====================== */
  --transition-03s-all: all 0.3s ease;
  --transition-03s-tra-cub: transform 0.3s cubic-bezier(0.25, 1, 0.5, 1);
  --transition-03s-tra: transform 0.3s ease;
  --transition-05s-tra: transform 0.5s ease;
  --transition-03s-opa: opacity 0.3s ease;
  --transition-04s-opa: opacity 0.4s ease;
  --transition-03s-bg: background 0.3s ease;
  --transition-03s-fill: fill 0.3s ease;
  --transition-03s-bs: box-shadow 0.3s ease;
  --transition-03s-color: color 0.3s ease;
}

body {
  color: var(--color-text);
  background-color: var(--color-bg);
}

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

/* pc/sp出し分け */
.is-pc,
.is-sp {
  display: none;
}

/* PC表示時 */
@media screen and (min-width: 600px) {
  .is-pc {
    display: block;
  }
}
/* SP表示時 */
@media screen and (max-width: 599px) {
  .is-sp {
    display: block;
  }
}
/* ======================
  フォントセット
  ====================== */
.is-font-en {
  font-family: var(--font-en);
}

.is-font-jp {
  font-family: var(--font-jp);
}

.is-font-num {
  font-family: var(--font-num);
}

/* ======================
  Ballet Pass Web カラーセット
  ====================== */
#body_wrap.is-web {
  --color-main: var(--color-web-main);
  --color-main-hover: var(--color-web-main-hover);
  --color-accent: var(--color-web-accent);
  --color-accent-hover: var(--color-web-accent-hover);
  --color-accent-2: var(--color-web-accent-2);
  --color-accent-2-hover: var(--color-web-accent-2-hover);
  --color-bg: var(--color-web-bg);
  --color-bg-2: var(--color-web-bg-2);
  --color-bg-3: var(--color-web-bg-3);
  --color-text: var(--color-web-text);
  --color-text-2: var(--color-web-text-2);
  --rgb-accent-opa-05: var(--rgb-web-accent-opa-05);
}

/*--------------------------------------------------
共通：シングルページレイアウト
--------------------------------------------------*/
.l-main__inner {
  width: 800px;
  margin-left: auto;
  margin-right: auto;
}
@media screen and (max-width: 599px) {
  .l-main__inner {
    padding-left: 5vw;
    padding-right: 5vw;
  }
}
.l-main__inner .l-single-content {
  margin: 0 auto;
  padding: 2rem 1rem;
  width: 100%;
  max-width: 100%;
}
@media screen and (min-width: 600px) {
  .l-main__inner .l-single-content {
    max-width: 90%;
  }
}
@media screen and (min-width: 600px) and (max-width: 959px) {
  .l-main__inner .l-single-content {
    padding-left: 5vw;
    padding-right: 5vw;
  }
}

/* ===================================
   Utility: Fullwidth（画面全幅）
=================================== */
.fullWide {
  width: 100vw;
  margin-left: calc(50% - 50vw);
}
.fullWide-bg-pink {
  background-color: var(--color-main);
}
.fullWide-bg-yellow {
  background-color: var(--color-bg-yellow);
}
.fullWide-bg-brown {
  background-color: var(--color-bg-brown);
}

.section-grid {
  padding-top: 4rem;
  padding-bottom: 4rem;
  margin: 0 auto;
  width: 100%;
  max-width: 800px;
}
@media screen and (max-width: 599px) {
  .section-grid {
    display: none;
  }
}
.section-grid.is-mxw-1000 {
  max-width: 1000px;
}
.section-grid.is-pt-3rem {
  padding-top: 3rem;
}
.section-grid.is-no-padding {
  padding: 0;
}
.section-grid.is-p-2rem {
  padding: 2rem 0;
}
.section-grid-footer {
  text-align: center;
  margin-top: 3rem;
}

.top #content {
  padding-top: 1em;
}

/* ===================================
   Utility: Background Colors
=================================== */
.u-bg--main {
  background-color: var(--color-main);
}

.u-bg--accent {
  background-color: var(--color-accent);
}

.u-bg--accent2 {
  background-color: var(--color-accent-2);
}

.u-bg--bg {
  background-color: var(--color-bg);
}

.u-bg--bg2 {
  background-color: var(--color-bg-2);
}

.u-bg--bg3 {
  background-color: var(--color-bg-3);
}

.u-bg--white {
  background-color: var(--color-white);
}

/* ===================================
   Utility: Text Colors
=================================== */
.u-color--main {
  color: var(--color-main);
}

.u-color--main-hover:hover {
  color: var(--color-main-hover);
}

.u-color--accent {
  color: var(--color-accent);
}

.u-color--accent2 {
  color: var(--color-accent-2);
}

.u-color--text {
  color: var(--color-text);
}

.u-color--text2 {
  color: var(--color-text-2);
}

.u-color--white {
  color: #fff;
}

/* 補助：aタグも継承できるように */
.u-color--main a,
.u-color--accent a,
.u-color--accent2 a,
.u-color--white a {
  color: inherit;
  text-decoration: none;
}
.u-color--main a:hover,
.u-color--accent a:hover,
.u-color--accent2 a:hover,
.u-color--white a:hover {
  opacity: 0.8;
}

/* =====================================
   モーダル・フェード系アニメーション
===================================== */
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes scaleIn {
  from {
    transform: scale(0.9);
    opacity: 0;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}
@keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}
@keyframes scaleOut {
  from {
    transform: scale(1);
    opacity: 1;
  }
  to {
    transform: scale(0.9);
    opacity: 0;
  }
}
/*--------------------------------------------------
ボタン ベーシック
--------------------------------------------------*/
.c-btn {
  padding: 0.75rem 3rem;
  font-size: 1rem;
  background: var(--color-main);
  color: var(--color-white);
  border-radius: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-weight: 600;
  text-decoration: none;
  letter-spacing: 0.05em;
  transition: background 0.3s;
}
.c-btn--main {
  background-color: var(--color-main);
  color: var(--color-white);
}
.c-btn--main:hover {
  background: var(--color-main-hover);
}
.c-btn--main.is-outline {
  color: var(--color-main);
  border-color: var(--color-main);
}
.c-btn--main.is-outline:hover {
  background-color: var(--color-main);
}
.c-btn--accent {
  background: var(--color-accent);
  color: var(--color-white);
}
.c-btn--accent:hover {
  background: var(--color-accent-hover);
}
.c-btn--accent.is-outline {
  color: var(--color-accent);
  border-color: var(--color-accent);
}
.c-btn--accent.is-outline:hover {
  background-color: var(--color-accent);
}
.c-btn--gold {
  background-color: var(--color-accent);
  color: var(--color-white);
}
.c-btn--gold:hover {
  background-color: var(--color-accent-hover);
}
.c-btn--gold.is-outline {
  color: var(--color-accent);
  border-color: var(--color-accent);
}
.c-btn--gold.is-outline:hover {
  background-color: var(--color-accent);
}
.c-btn--brown {
  background-color: var(--color-accent-2);
  color: var(--color-white);
}
.c-btn--brown:hover {
  background-color: var(--color-accent-2-hover);
}
.c-btn--brown.is-outline {
  color: var(--color-accent-2);
  border-color: var(--color-accent-2);
}
.c-btn--brown.is-outline:hover {
  background-color: var(--color-accent-2);
}
.c-btn.is-outline {
  background-color: var(--color-white);
  border: 1px solid currentColor;
}
.c-btn.is-outline:hover {
  color: var(--color-white);
}
.c-btn.is-radius-sm {
  border-radius: 5px;
}
.c-btn.is-large {
  font-size: 1.25em;
  width: 500px;
}
@media screen and (max-width: 599px) {
  .c-btn.is-large {
    margin-top: 15px;
  }
}
.c-btn.is-small {
  font-size: 0.85em;
  padding: 0.5em 2rem;
}
@media screen and (max-width: 599px) {
  .c-btn.w-sp-240 {
    width: 240px;
  }
}
.c-btn.is-shadow {
  box-shadow: var(--color-box-shadow);
}
.c-btn-icon {
  align-items: center;
  display: inline-flex;
  gap: 1em;
}
.c-btn-icon svg {
  width: 1.2em;
  height: 1.2em;
  vertical-align: middle;
}

/*--------------------------------------------------
ボタン 位置コントロール
--------------------------------------------------*/
.btn-wrap-center {
  text-align: center;
  margin: 2em 0;
}
.btn-wrap-center.is-marginTB-4rem {
  margin: 4rem 0;
}
.btn-wrap-center.is-mg-0 {
  margin: 0;
}

/*----------------------------------------
  Instagram
----------------------------------------*/
#sb_instagram {
  margin-bottom: 30px;
}

.inv-view {
  opacity: 0;
  transition: opacity 1s ease-out, transform 1s ease-out;
}
.inv-view.fade-up {
  transform: translateY(30px);
}
.inv-view.slide-left {
  transform: translateX(-50px);
}
.inv-view.slide-right {
  transform: translateX(50px);
}
.inv-view.is-show {
  opacity: 1;
  transform: translate(0, 0);
}

.section-title {
  text-align: center;
  margin-bottom: 3rem;
}
.section-title.is-mb-2rem {
  margin-bottom: 2rem;
}
.section-title .section-title-en {
  font-family: var(--font-en);
  font-size: 3rem;
  letter-spacing: 0.05em;
  font-weight: 700;
  color: var(--color-accent-2);
  margin-bottom: 0.25rem;
  background: none;
  padding: 0;
}
.section-title .section-title-en::before {
  content: none;
}
.section-title .section-title-en.u-color--white {
  color: var(--color-white);
}
.section-title .section-title-en.u-color--accent {
  color: var(--color-accent);
}
.section-title .section-title-en.u-color--accent-2 {
  color: var(--color-accent-2);
}
@media screen and (max-width: 599px) {
  .section-title .section-title-en {
    font-size: 2.5rem;
  }
}
.section-title .section-title-jp {
  font-family: var(--font-jp);
  font-size: 1rem;
  font-weight: 600;
  color: var(--color-text);
}
.section-title .section-title-jp.u-color--white {
  color: var(--color-white);
}
.section-title.align-left {
  text-align: left;
}
.section-title.align-right {
  text-align: right;
}

.smf-progress-tracker__item[aria-current=true] .smf-progress-tracker__item__number {
  background-color: var(--color-main);
}
.smf-progress-tracker__item[aria-current=true] .smf-progress-tracker__item__text {
  color: var(--color-main);
}

.smf-action .smf-button-control__control {
  color: #fff;
  border: none;
  border-radius: 4px;
  padding: 0.7em 1.6em;
  font-size: 1rem;
  font-weight: 600;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
  cursor: pointer;
  display: inline-block;
  text-align: center;
  text-decoration: none;
  background: var(--color-main);
  transition: var(--transition-03s-all);
}
.smf-action .smf-button-control__control:hover {
  opacity: 0.8;
  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.15);
}

.smf-button-control__control[data-action=back] {
  background-color: transparent;
  color: var(--color-main);
  border: 1px solid var(--color-main);
  box-shadow: none;
}
.smf-button-control__control[data-action=back]:hover {
  background-color: var(--color-main-hover);
  color: #fff;
  border-color: var(--color-main-hover);
}

.smf-form .smf-checkbox-control__control:checked,
.smf-form .smf-radio-button-control__control:checked {
  background-color: var(--color-main);
  border-color: var(--color-main);
}

/*----------------------------------------
  タグラベル
----------------------------------------*/
.category-tag {
  font-family: var(--font-en);
  font-size: 0.85rem;
  font-weight: bold;
  background-color: var(--color-main);
  color: var(--color-white);
  padding: 0.1rem 0.6rem;
  border-radius: 4px;
  flex-shrink: 0;
  text-align: center;
  width: 6rem;
  align-self: flex-start;
  white-space: nowrap;
}
.category-tag.tag-system {
  background-color: var(--color-accent-2);
}
.category-tag.tag-info {
  background-color: #666;
}
.category-tag.tag-web-basic {
  background-color: var(--color-main);
}
.category-tag.tag-web-premium {
  background-color: var(--color-accent);
}
.category-tag.tag-web-type-a {
  background-color: var(--color-white);
  border: 1px solid var(--color-main);
  color: var(--color-main);
}
.category-tag.tag-web-type-b {
  background-color: var(--color-white);
  border: 1px solid var(--color-accent);
  color: var(--color-accent);
}
.category-tag.tag-web-type-c {
  background-color: var(--color-white);
  border: 1px solid var(--color-accent-2);
  color: var(--color-accent-2);
}
.category-tag.tag-web-type-original {
  background-color: var(--color-accent-2);
}

/* =========================================
    フッター
   ========================================= */
.w-footer__box {
  padding: 1rem 0 0;
  display: flex;
  align-items: center;
  gap: 2rem;
  max-width: 720px;
  margin: 0 auto;
}
@media screen and (max-width: 599px) {
  .w-footer__box {
    width: 65px;
    height: 65px;
  }
}

.c-widget + .c-widget {
  margin: 0;
}

/*----------------------------------------
  グローバルメニュー
----------------------------------------*/
.c-gnav .menu-item a .ttl {
  font-family: var(--font-en);
  margin-bottom: 0.25rem;
  font-size: 1em;
}
.c-gnav .menu-item .sub-menu a {
  color: var(--color-accent-2);
}

/*FAQアコーディオン化*/
.swell-block-faq dd {
  display: none;
  padding: 0 15px;
}
.swell-block-faq .active dd {
  display: block;
}
.swell-block-faq .active .faq_q::after {
  content: "－";
}
.swell-block-faq .faq_q {
  position: relative;
  cursor: pointer;
  padding: 1em 3em;
}
.swell-block-faq .faq_q::after {
  content: "＋";
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 18px;
}

/*----------------------------------------
  スマホ開閉メニュー
----------------------------------------*/
.c-widget__title.-spmenu {
  font-family: var(--font-en);
  font-size: 1.75em;
  padding: 0 0.75em;
  color: var(--color-main);
  background-color: var(--color-bg);
  text-align: center;
}

.c-spnav li a {
  font-family: var(--font-en);
  font-size: 1.2em;
  font-weight: bold;
  padding: 0.85em 0.75em;
}
.c-spnav li a .c-submenuToggleBtn:before {
  color: var(--color-accent);
}
.c-spnav li a .c-submenuToggleBtn:after {
  border-color: var(--color-accent-2);
  border-radius: 5px;
}

.c-smallNavTitle {
  color: var(--color-text);
  font-size: 0.75em;
}

.p-spMenu__bottom {
  margin-top: 1rem;
}

#custom_html-10 {
  margin-bottom: 2rem;
}

.p-archive-works {
  /* ======= グリッド ======= */
  /* ======= カード ======= */
}
.p-archive-works__lead {
  text-align: center;
  margin-bottom: 3rem;
  font-size: 1rem;
  color: var(--color-text-2);
}
.p-archive-works__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4rem;
  align-items: stretch;
}
@media screen and (max-width: 959px) {
  .p-archive-works__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 599px) {
  .p-archive-works__grid {
    grid-template-columns: 1fr;
  }
}
.p-archive-works__image {
  width: 100%;
  max-width: 320px;
  height: 240px;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
}
.p-archive-works__image img {
  width: 100%;
  height: auto;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
}
@media screen and (max-width: 959px) {
  .p-archive-works__image {
    height: auto;
    margin: 0 auto;
  }
  .p-archive-works__image img {
    aspect-ratio: 4/3;
  }
}
.p-archive-works__body {
  padding: 1.5rem 0 2rem;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.p-archive-works__title {
  font-size: 1.2rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 0.8rem;
}
.p-archive-works__tags {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: 1.4rem;
}

/*--------------------------------------------------
シングルページ：共通情報枠
--------------------------------------------------*/
/* タイトル */
.c-page-title {
  font-size: 1.5em;
  margin-bottom: 2rem;
  text-align: center;
  padding-bottom: 1rem;
  border-bottom: 2px solid var(--color-main);
}

.common-info-box {
  padding: 2rem;
  border-radius: 0.5rem;
  border: 2px solid var(--color-main);
}
.common-info-box .common-meta-list li {
  border-bottom: 1px solid #eee;
  padding: 0.8rem 0;
  list-style: none;
}
.common-info-box .common-meta-list li .extended {
  color: var(--color-red);
  font-weight: bold;
}
.common-info-box .common-meta-list li .kaijou-link,
.common-info-box .common-meta-list li .organizer-link,
.common-info-box .common-meta-list li .related-link {
  color: var(--color-link);
  text-decoration: underline;
  text-decoration-color: var(--color-link);
  text-underline-offset: 3px;
}
.common-info-box .common-meta-list-tag {
  display: inline-block;
  background: var(--color-accent);
  color: var(--color-bg);
  font-size: 0.8em;
  font-weight: bold;
  padding: 0.3em 0.7em;
  margin-right: 0.5em;
  border-radius: 15px;
  margin-top: 0.3em;
}
.common-info-box .work-voice-container {
  position: relative;
  margin-top: 3rem; /* Spacing for the overlapping title */
}
.common-info-box .work-voice-container .work-voice-title {
  position: absolute;
  top: -0.9em;
  left: 1rem;
  background-color: var(--color-accent);
  color: var(--color-white);
  font-size: 0.9em;
  font-weight: bold;
  padding: 0.3em 1em;
  border-radius: 20px;
  line-height: 1;
  z-index: 1;
}
.common-info-box .work-voice-container .work-voice-box {
  padding: 1.5rem;
  background-color: var(--color-main-hover);
  color: var(--color-text);
  border-radius: 0.5rem;
  line-height: 1.6;
}

.p-single-work {
  padding: 2rem 0 0;
}
.p-single-work__image {
  max-width: 800px;
  margin: 0 auto 5rem;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
  position: relative;
  /* 💡 スクリーンショット的な演出 */
}
.p-single-work__image img {
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 8px;
  border: 1px solid rgba(var(--rgb-web-main), 0.2);
  display: block;
}
.p-single-work__image::before {
  content: "screenshot";
  position: absolute;
  top: 12px;
  left: 12px;
  background: rgba(var(--rgb-web-main), 0.9);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  padding: 0.3em 0.8em;
  border-radius: 4px;
  text-transform: uppercase;
  pointer-events: none;
}
.p-single-work__gallery {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  margin-bottom: 3rem;
}
@media screen and (max-width: 959px) {
  .p-single-work__gallery {
    grid-template-columns: 1fr;
  }
}
.p-single-work__gallery-item {
  margin: 0;
}
.p-single-work__gallery-item img {
  width: 100%;
  height: auto;
  aspect-ratio: 4/3;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 8px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
}
.p-single-work__options-item {
  display: inline-block;
  line-height: 1.8;
}
.p-single-work__options-item .dot {
  color: var(--color-main);
  font-weight: bold;
  margin-right: 0.2em;
}