@charset "UTF-8";
:root {
  /* ======================
  カラーセット
  ====================== */
  --color-main: #CC8B92;
  --color-main-hover: #bb7a80;
  --color-main-hover-2: #F7DADD;
  --color-accent: #CBB199;
  --color-accent-hover: #AD8B6B;
  --color-accent-2: #6E533B;
  --color-accent-2-hover: #493422;
  --color-bg: #FCFCFC;
  --color-bg-2: #F7DADD;
  --color-bg-yellow: #FFFBF8;
  --color-bg-brown: #f8f4f2;
  --color-bg-gray: #f9f9f9;
  --color-text: #333333;
  --color-link: #1176d4;
  --color-white: #fff;
  --color-red: #e53935;
  --color-workshop: #8da9c4;
  --color-audition: #a08fb9;
  --color-performance: #9e4b4b;
  --rgb-accent-opa-05: 203, 177, 153, 0.5;
  --color-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  /* ======================
  Ballet Pass Web カラーセット
  ====================== */
  --color-web-main: #D5A7BD;
  --color-web-main-hover: #E3C3D5;
  --color-web-accent: #8A6B7B;
  --color-web-accent-hover: #5E4A52;
  --color-web-accent-2: #DBCBB0;
  --color-web-accent-2-hover: #CBB199;
  --color-web-bg: #FBF7FA;
  --color-web-bg-2: #FBF7FA;
  --color-web-bg-3: #FBF7FA;
  --color-web-text: #333333;
  --color-web-text-2: #5E4A52;
  --rgb-web-main: 213, 167, 189;
  --rgb-web-accent: 138, 107, 123;
  --rgb-web-accent-opa-05: 138, 107, 123, 0.5;
  --rgb-web-accent-2-opa-05: 219, 203, 176, 0.5;
  /* ======================
  フォントセット
  ====================== */
  --font-jp: "Zen Kaku Gothic New", sans-serif;
  --font-en: "Marcellus", serif;
  --font-num: "EB 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);
  font-family: var(--swl-font_family);
}

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 {
    width: 100%;
    max-width: 800px;
  }
}
.l-main__inner .l-single-content {
  margin: 0 auto;
  padding: 2rem 1rem;
  width: 100%;
  max-width: 100%;
}
@media screen and (min-width: 599px) {
  .l-main__inner .l-single-content {
    max-width: 800px;
  }
}
@media screen and (min-width: 600px) and (max-width: 960px) {
  .l-main__inner .l-single-content {
    width: 76%;
  }
}

/* ===================================
   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 {
    width: 90%;
  }
}
.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;
  }
}
/*--------------------------------------------------
共通：下層ヒーロータイトル（背景画像付き）
--------------------------------------------------*/
.hero-title-block {
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 3em 1em;
  text-align: center;
  color: #fff;
  overflow: hidden;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-top: -2em;
}
.hero-title-block::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.4);
  z-index: 0;
}
.hero-title-block .hero-title-en {
  position: relative;
  z-index: 1;
  font-family: "Marcellus", serif;
  font-size: 3.5em;
  font-weight: 400;
}
@media screen and (max-width: 599px) {
  .hero-title-block .hero-title-en {
    font-size: 3em;
  }
}
.hero-title-block .hero-title-text {
  position: relative;
  z-index: 1;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 1.5em;
  font-weight: 400;
  margin: 0;
}
@media screen and (max-width: 599px) {
  .hero-title-block .hero-title-text {
    font-size: 1.2em;
  }
}
.hero-title-block .hero-title__line {
  width: 40px;
  height: 2px;
  background-color: #fff;
  margin: 0.5em auto 1.5em;
}

/* ===================================
   セクション見出し(英語＆日本語)
=================================== */
.c-section-heading {
  text-align: center;
  margin-bottom: 2.5rem;
}
.c-section-heading.is-leftalign {
  text-align: left;
}
.c-section-heading.is-leftalign .c-section-heading__line {
  display: none;
}
.c-section-heading.is-rightalign {
  text-align: right;
}
.c-section-heading.is-rightalign .c-section-heading__line {
  display: none;
}
.c-section-heading__en {
  font-family: "Marcellus", serif;
  font-size: 2rem;
  font-weight: bold;
  letter-spacing: 0.05em;
  margin-bottom: 0.5rem;
  position: relative;
}
.c-section-heading__line {
  width: 60px;
  height: 2px;
  margin: 0 auto 0.8rem;
  background-color: currentColor;
}
.c-section-heading__ja {
  font-family: var(--font-jp);
  font-size: 0.95rem !important;
  color: #444;
  margin: 0 !important;
}

.section-theme-pinkBrown .c-section-heading__en,
.section-theme-pinkBrown .c-section-heading__line {
  color: var(--color-main-hover);
}

.section-theme-pink .c-section-heading__en,
.section-theme-pink .c-section-heading__line {
  color: var(--color-main);
}

.section-theme-gold .c-section-heading__en,
.section-theme-gold .c-section-heading__line {
  color: var(--color-accent);
}

.section-theme-brown .c-section-heading__en,
.section-theme-brown .c-section-heading__line {
  color: var(--color-accent-2);
}

.section-theme-white .c-section-heading__en,
.section-theme-white .c-section-heading__line {
  color: var(--color-white);
}

/*--------------------------------------------------
共通：見出しデザイン（SWELL風）
--------------------------------------------------*/
/* タイトル */
.c-page-title {
  font-size: 1.5em;
  margin-bottom: 2rem;
  text-align: center;
  padding-bottom: 1rem;
  border-bottom: 2px solid var(--color-main);
}

.c-heading--lv2 {
  background-color: var(--color-main-hover-2);
  color: var(--color-accent-2);
  font-size: 1.25em;
  font-weight: bold;
  padding: 0.6em 1em;
  border-left: 5px solid var(--color-main);
  margin-top: 2em;
  margin-bottom: 1.5em;
}

.c-heading--lv3 {
  position: relative;
  font-size: 1.2rem;
  font-weight: bold;
  color: var(--color-accent-2);
  padding-bottom: 0.3em;
  margin: 2em 0 1em;
  border-bottom: 1px solid #eee;
}
.c-heading--lv3::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 120px;
  background-color: var(--color-main);
}

.c-heading--lv4 {
  position: relative;
  font-size: 1.05rem;
  font-weight: bold;
  color: var(--color-accent-2);
  margin: 2em 0 1em;
  padding-left: 1em;
}
.c-heading--lv4::before {
  content: "";
  position: absolute;
  top: 0.2em;
  left: 0;
  width: 3px;
  height: 1.3em;
  background-color: var(--color-main);
  border-radius: 2px;
}

/*--------------------------------------------------
共通：特徴タイトル数字付き
--------------------------------------------------*/
.feature-title {
  position: relative;
  font-size: 1.2em;
  font-weight: bold;
  margin-bottom: 0.75em;
  border-bottom: solid 1px rgba(var(--rgb-accent-opa-05));
  padding-bottom: 0.5em;
}
.feature-title::before {
  display: none !important;
}
.feature-title-span {
  position: relative;
  z-index: 1;
  color: var(--color-accent-2);
}
.feature-title .point-num {
  position: absolute;
  top: -0.8em;
  left: -0.3em;
  font-family: var(--font-num);
  font-style: italic;
  font-weight: 400;
  font-size: 3rem;
  color: rgba(var(--rgb-accent-opa-05));
  z-index: 0;
}

.is-web .point-num {
  color: rgb(var(--rgb-web-accent-2-opa-05));
}

/*--------------------------------------------------
ボタン ベーシック
--------------------------------------------------*/
.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 (max-width: 599px) {
  .c-btn.is-large {
    width: 100%;
  }
}
.c-btn.is-small {
  font-size: 0.85em;
  padding: 0.5em 2rem;
}
@media (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;
}
@media screen and (max-width: 599px) {
  .c-btn-icon svg {
    font-size: 1em;
  }
}

/*--------------------------------------------------
ボタン 位置コントロール
--------------------------------------------------*/
.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;
}

/*--------------------------------------------------
ボタン ブログパーツ用
--------------------------------------------------*/
.btn-workshop a {
  background-color: var(--color-workshop);
}

.btn-audition a {
  background-color: var(--color-audition);
}

.btn-performance a {
  background-color: var(--color-performance);
}

.btn-web-main a {
  background-color: var(--color-web-main);
}

.btn-web-accent a {
  background-color: var(--color-web-accent);
}

.btn-web-accent-2 a {
  background-color: var(--color-web-accent-2);
}

.swiper-section {
  width: 100%;
  position: relative;
  padding: 3rem 0;
}
.swiper-section .swiper-slide {
  width: 100%;
  flex-shrink: 0;
}
.swiper-section .mainvisual-card {
  position: relative;
  width: 100%;
  max-width: 800px;
  aspect-ratio: 16/9;
  background-size: cover;
  background-position: center;
  overflow: hidden;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
  max-width: 1200px;
  width: 100%;
  /* キャプション全体 */
}
@media screen and (max-width: 599px) {
  .swiper-section .mainvisual-card {
    max-width: 100%;
  }
}
.swiper-section .mainvisual-card .mv-caption {
  position: absolute;
  bottom: 0;
  width: 100%;
  background-color: rgba(255, 255, 255, 0.8);
  padding: 1rem;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  /* 上段：ジャンルラベル＋View More */
}
@media screen and (max-width: 599px) {
  .swiper-section .mainvisual-card .mv-caption {
    padding: 0.75rem;
  }
}
.swiper-section .mainvisual-card .mv-caption-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  /* 左側のラベルグループ */
  /* タイトル1行制限 */
  /* View More ボタン */
}
.swiper-section .mainvisual-card .mv-caption-top .mv-label-group {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.swiper-section .mainvisual-card .mv-caption-top .mv-title {
  font-size: 1rem;
  font-weight: bold;
  color: #333;
  margin: 0;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media screen and (max-width: 599px) {
  .swiper-section .mainvisual-card .mv-caption-top .mv-title {
    font-size: 0.95rem;
  }
}
.swiper-section .mainvisual-card .mv-caption-top .mv-more-link {
  font-family: var(--font-en);
  font-size: 0.875rem;
  font-weight: bold;
  color: var(--color-accent-2);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  transition: opacity 0.3s ease;
}
@media screen and (max-width: 599px) {
  .swiper-section .mainvisual-card .mv-caption-top .mv-more-link {
    font-size: 0.8rem;
  }
}
.swiper-section .mainvisual-card .mv-caption-top .mv-more-link::after {
  content: "→";
  font-size: 1.1rem;
  transition: transform 0.3s ease;
}
.swiper-section .mainvisual-card .mv-caption-top .mv-more-link:hover {
  opacity: 0.75;
}
.swiper-section .mainvisual-card .mv-caption-top .mv-more-link:hover::after {
  transform: translateX(4px);
}

/* Swiper 矢印ナビゲーション */
.swiper-nav-common {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, 0.85);
  z-index: 10;
  cursor: pointer;
  border-radius: 50%;
  background-size: 1rem 1rem;
  background-position: center;
  background-repeat: no-repeat;
  color: transparent;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}
@media screen and (max-width: 599px) {
  .swiper-nav-common {
    width: 2.5rem;
    height: 2.5rem;
    background-size: 0.9rem 0.9rem;
  }
}
.swiper-nav-common.swiper-button-next, .swiper-nav-common.swiper-button-prev {
  width: 2rem;
  height: 2rem;
  /* デフォルト矢印非表示 */
}
.swiper-nav-common.swiper-button-next::after, .swiper-nav-common.swiper-button-prev::after {
  content: none !important;
}
.swiper-nav-common.swiper-button-prev {
  left: 1rem;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='%236E533B' viewBox='0 0 24 24'><path d='M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z'/></svg>");
}
.swiper-nav-common.swiper-button-next {
  right: 1rem;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='%236E533B' viewBox='0 0 24 24'><path d='M8.59 16.59 13.17 12 8.59 7.41 10 6l6 6-6 6z'/></svg>");
}

/* Swiper ドットナビゲーション */
.swiper-pagination-common {
  position: absolute;
  bottom: 1rem;
  left: 0;
  width: 100%;
  text-align: center;
  z-index: 10;
}
.swiper-pagination-common .swiper-pagination-bullet {
  background-color: rgba(255, 255, 255, 0.7);
  opacity: 1;
  width: 8px;
  height: 8px;
  margin: 0 8px;
  border-radius: 50%;
  transition: background-color 0.3s;
}
.swiper-pagination-common .swiper-pagination-bullet-active {
  background-color: var(--color-main);
}

.swiper-horizontal > .swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal,
.swiper-pagination-custom,
.swiper-pagination-fraction {
  bottom: 4px !important;
}

/*--------------------------------------------------
SNSアイコン
--------------------------------------------------*/
.sns-button-group {
  margin-top: 2em;
  display: flex;
  justify-content: center;
  gap: 1em;
}
.sns-button-group .sns-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background-color: var(--color-accent);
  border-radius: 50%;
  transition: var(--transition-03s-bg);
}
.sns-button-group .sns-btn svg {
  width: 24px;
  height: 24px;
}
.sns-button-group .sns-btn.is-x svg {
  width: 18px;
  height: 18px;
}
.sns-button-group .sns-btn:hover {
  background-color: var(--color-accent-2-hover);
}
.sns-button-group .sns-btn-brown {
  background-color: var(--color-accent-2);
}
.sns-button-group .sns-btn-brown:hover {
  background-color: #493422;
}

/*----------------------------------------
  タグラベル
----------------------------------------*/
.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-competition {
  background-color: var(--color-main);
}
.category-tag.tag-studio {
  background-color: var(--color-accent);
}
.category-tag.tag-workshop {
  background-color: var(--color-workshop);
}
.category-tag.tag-audition {
  background-color: var(--color-audition);
}
.category-tag.tag-performance {
  background-color: var(--color-performance);
}
.category-tag.tag-system {
  background-color: var(--color-accent-2);
}
.category-tag.tag-info {
  background-color: #666;
}
.category-tag.tag-pr {
  border: 1px solid var(--color-accent-2);
  color: var(--color-accent-2);
  font-weight: bold;
  display: inline-block;
  background-color: var(--color-white);
  width: 3rem;
}
.category-tag.tag-web{
  width: auto;
  padding: 0.1rem 0.8rem;
}
.category-tag.tag-web-basic, .category-tag.tag-web-studio-basic {
  background-color: var(--color-web-main);
}
.category-tag.tag-web-premium, .category-tag.tag-web-studio-premium {
  background-color: var(--color-web-accent);
}
.category-tag.tag-web-other {
  background-color: var(--color-accent-2);
}
.category-tag.tag-web-type-a, .category-tag.tag-web-type-b, .category-tag.tag-web-type-c {
  background-color: var(--color-white);
}
.category-tag.tag-web-type-a {
  border: 1px solid var(--color-main);
  color: var(--color-main);
}
.category-tag.tag-web-type-b {
  border: 1px solid var(--color-accent);
  color: var(--color-accent);
}
.category-tag.tag-web-type-c {
  border: 1px solid var(--color-accent-2);
  color: var(--color-accent-2);
}
.category-tag.tag-web-type-original {
  background-color: var(--color-accent-2);
}

/*--------------------------------------------------
NEWSリスト
--------------------------------------------------*/
/* NEWSリスト全体 */
.news-list {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  padding: 2rem;
  background-color: var(--color-white);
  /* NEWSアイテム */
}
@media (max-width: 599px) {
  .news-list {
    padding: 2rem 1rem;
  }
}
.news-list .news-item {
  display: flex;
  align-items: flex-start;
  gap: 1.2rem;
  border-bottom: 1px solid #e0e0e0;
  padding-bottom: 1rem;
  width: 100%;
  /* タイトル（リンク） */
}
@media (max-width: 599px) {
  .news-list .news-item {
    flex-direction: column;
    gap: 0.5rem;
  }
}
.news-list .news-item-top {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  /* 日付 */
}
.news-list .news-item-top .news-date {
  font-size: 0.85rem;
  color: #999;
  white-space: nowrap;
}
.news-list .news-item .news-title {
  font-size: 1rem;
  font-weight: 500;
  color: var(--color-tet);
  text-decoration: none;
  transition: var(--transition-03s-opa);
}
.news-list .news-item .news-title:hover {
  opacity: 0.7;
}

/*----------------------------------------
  通常投稿 ページネーション
----------------------------------------*/
.post-pagination-wrapper {
  text-align: center;
  margin: 2rem 0 3rem;
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.post-pagination-wrapper a,
.post-pagination-wrapper span {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 36px;
  height: 36px;
  line-height: 1;
  border-radius: 50%;
  text-align: center;
  text-decoration: none;
  color: var(--color-main);
  background: var(--color-white);
  border: 1px solid var(--color-main);
  transition: var(--transition-03s-all);
  font-family: var(--font-num);
  font-weight: 500;
}
.post-pagination-wrapper a :hover {
  background-color: var(--color-main);
  color: var(--color-white);
}
.post-pagination-wrapper svg {
  width: 16px;
  height: 16px;
}
.post-pagination-wrapper .current {
  color: var(--color-white);
  font-weight: bold;
}
.post-pagination-wrapper .prev,
.post-pagination-wrapper .next {
  font-weight: bold;
}

/*----------------------------------------
  広告バナー
----------------------------------------*/
/* 共通デザイン */
.ad-banner {
  display: flex;
  flex-wrap: wrap;
  gap: 24px;
  justify-content: center;
  margin: 48px auto;
  padding: 0 16px;
  max-width: 1000px;
}
@media screen and (min-width: 960px) {
  .ad-banner {
    display: none;
  }
}
.ad-banner .ad-item {
  width: 100%;
  max-width: 480px;
  text-align: center;
}
.ad-banner .ad-item picture,
.ad-banner .ad-item img {
  width: 100%;
  height: auto;
  transition: var(--transition-03s-tra);
}
.ad-banner .ad-item a {
  display: block;
}
.ad-banner .ad-item a:hover picture,
.ad-banner .ad-item a:hover img {
  transform: scale(1.02);
}
.ad-banner .ad-desc {
  margin-top: 8px;
  font-size: 0.9rem;
  color: var(--color-accent-2);
}
.ad-banner.ad-pc_pos {
  display: flex;
}
@media screen and (max-width: 960px) {
  .ad-banner.ad-pc_pos {
    display: none;
  }
}

/* 協賛セクション */
.all-banners {
  /* 3つ以上になったら切り替え */
  /* display: grid;
  grid-template-columns: 1fr; */
  display: flex;
  justify-content: center;
  gap: 1.5em;
  padding: 3em 1em;
  background-color: #FCFCFC;
  text-align: center;
  border-top: 1px solid #E5DED6;
  border-bottom: 1px solid #E5DED6;
}
@media (min-width: 600px) {
  .all-banners {
    /* タブレットで2列 */
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 960px) {
  .all-banners {
    /* PCで3列 */
    grid-template-columns: repeat(3, 1fr);
  }
}
.all-banners .ad-item {
  max-width: 300px;
}
.all-banners .ad-item img {
  width: 100%;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
  transition: var(--transition-03s-opa);
}
.all-banners .ad-item img:hover {
  opacity: 0.8;
}

/* 掲載例 */
.showcase-img img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}

/*----------------------------------------
  サイドバー
----------------------------------------*/
@media screen and (min-width: 960px) {
  .single-wrap {
    display: flex;
    gap: 40px;
    max-width: 1200px;
    margin: 0 auto;
  }
  .single-main {
    width: 70%;
  }
  .single-sidebar {
    width: 30%;
    position: sticky;
    top: 100px;
  }
}
/*----------------------------------------
  Fav
----------------------------------------*/
.common-fav-wrap {
  text-align: right;
  padding: 0 1rem 1rem;
}

.favorites-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.favorites-list li::before, .favorites-list li::after {
  display: none;
}
.favorites-list li p:first-of-type {
  margin-right: 0;
}
.favorites-list li p:first-of-type a {
  color: var(--color-text);
}
.favorites-list li p:first-of-type a:hover {
  opacity: 0.7;
}

.simplefavorite-button.active {
  opacity: 1;
}

/* FAQアコーディオン化 */
.swell-block-faq dd {
  display: none;
  padding: 0 15px;
}
.swell-block-faq.active dd {
  display: block;
}
.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;
}
.swell-block-faq.active .faq_q::after {
  content: "－";
}

/*----------------------------------------
  ACF Form
----------------------------------------*/
.acf-field p.description {
  font-size: 0.85em;
}

/*--------------------------------------------------
Snow Monkey Forms
--------------------------------------------------*/
.smf-progress-tracker__item .smf-progress-tracker__item__number {
  line-height: 26px;
}
.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 {
  background: var(--color-main);
  border-color: var(--color-main);
  color: var(--color-white);
  border-radius: 10px;
  transition: var(--transition-03s-bg);
}
.smf-action .smf-button-control__control:hover {
  background: var(--color-main-hover);
}

.smf-form .smf-checkbox-control__control:checked {
  background-color: var(--color-main) !important;
  border-color: var(--color-main) !important;
}

/*--------------------------------------------------
WP Grid Builder関連：filter, modal
--------------------------------------------------*/
/* フィルターページレイアウト */
@media (min-width: 768px) {
  .l-filter-container {
    width: 800px;
  }
}
/* 年・月別フィルターラッパー */
.date-filter-block {
  margin-top: 3em;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: -1em;
}

/* フィルター：ドロップダウンなど */
.wpgb-facet {
  /* ラジオボタン アクティブ 色変更 */
  /* チェックボックス カラー */
  /* 年・月フィルター */
}
.wpgb-facet .wpgb-apply,
.wpgb-facet .wpgb-load-more {
  background-color: var(--color-main);
  transition: background-color 0.3s ease;
}
.wpgb-facet .wpgb-apply:hover,
.wpgb-facet .wpgb-load-more:hover {
  background-color: var(--color-main-hover);
}
.wpgb-facet .wpgb-button[aria-pressed=true] {
  background-color: var(--color-accent) !important;
  border-color: var(--color-accent) !important;
}
.wpgb-facet .wpgb-inline-list {
  justify-content: center !important;
}
.wpgb-facet .wpgb-radio-facet .wpgb-radio[aria-pressed=true] .wpgb-radio-control {
  border-color: var(--color-main) !important;
}
.wpgb-facet .wpgb-radio-facet .wpgb-radio[aria-pressed=true] .wpgb-radio-control:after {
  background-color: var(--color-main);
}
.wpgb-facet .wpgb-checkbox-facet .wpgb-checkbox[aria-pressed=true] .wpgb-checkbox-control {
  background: var(--color-main) !important;
  border-color: var(--color-main) !important;
}
.wpgb-facet button.wpgb-apply, .wpgb-facet button.wpgb-reset {
  text-align: center;
  display: block;
  width: 240px;
  margin: 0 !important;
  padding: 0.8rem;
  background-color: var(--color-white);
  color: var(--color-main) !important;
  border: 1px solid var(--color-main) !important;
  border-radius: 30px !important;
  font-size: 1rem !important;
  white-space: nowrap;
  transition: background-color 0.3s ease, color 0.3s ease;
}
.wpgb-facet button.wpgb-apply:hover:not([disabled]), .wpgb-facet button.wpgb-reset:hover:not([disabled]) {
  background-color: var(--color-main);
  color: var(--color-white) !important;
}
.wpgb-facet button.wpgb-apply[disabled], .wpgb-facet button.wpgb-reset[disabled] {
  opacity: 0.6;
  font-weight: normal;
  text-decoration: none;
  cursor: not-allowed;
  background-color: var(--color-white);
  color: var(--color-main) !important;
}
.wpgb-facet .wpgb-facet-14 {
  width: 240px;
}

/* 選択中の検索条件 */
.active-filters-box {
  text-align: center;
  margin: 2em 0;
  background-color: var(--color-white);
  padding: 1.5rem 0.5rem 0.1rem;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  max-width: 960px;
  margin: 2em auto;
}
.active-filters-box_head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
  color: var(--color-text);
  font-weight: bold;
  margin-bottom: 1em;
}
.active-filters-box_head svg {
  width: 1.2em;
  height: 1.2em;
  stroke: var(--color-main);
}

/* フィルターのモーダル表示 */
.search-modal {
  position: fixed;
  top: 100px;
  left: 0;
  width: 100%;
  height: calc(100vh - 100px);
  background-color: rgba(0, 0, 0, 0.5);
  z-index: 9999;
  display: none;
  justify-content: center;
  align-items: flex-start;
  overflow-y: auto;
  padding: 3rem 1rem;
}
@media (max-width: 960px) {
  .search-modal {
    top: 60px;
    height: calc(100vh - 60px);
  }
}
.search-modal-content {
  position: relative;
  background: var(--color-white);
  padding: 2em;
  width: 90%;
  max-width: 600px;
  border-radius: 12px;
  margin: auto;
  animation: scaleIn 0.3s ease-in-out;
  overflow-y: auto;
  padding-bottom: calc(env(safe-area-inset-bottom, 20px) + 3rem);
}
.search-modal-close {
  position: absolute;
  right: 1.5em;
  top: 1em;
  background: none;
  border: none;
  font-size: 1.5em;
  cursor: pointer;
}
.search-modal-title {
  font-size: 1.5em;
  margin-bottom: 1em;
  font-weight: bold;
  text-align: center;
}
.search-modal .search-label {
  font-weight: bold;
  margin: 1em 0;
  padding-left: 1em;
  font-size: 1em;
  position: relative;
}
.search-modal .search-label::before {
  position: absolute;
  content: "";
  background-color: var(--color-main);
  width: 4px;
  height: 1.5em;
  top: 0;
  left: 0;
}
.search-modal-btnArea {
  display: flex;
  gap: 1rem;
  align-items: center;
  justify-content: center;
}
@media (max-width: 599px) {
  .search-modal-btnArea {
    flex-direction: column;
  }
}
.search-modal-submit {
  text-align: center;
}
.search-modal .search-submit-btn {
  display: block;
  width: 240px;
  background-color: var(--color-main);
  color: var(--color-white);
  font-weight: bold;
  font-size: 1em;
  padding: 0.8rem;
  border: none;
  border-radius: 30px;
  cursor: pointer;
  transition: background-color 0.3s ease;
}
.search-modal .search-submit-btn:hover {
  background-color: var(--color-main-hover);
}

/* 条件変更ボタン（PageTopボタン上） */
.floating-filter-btn {
  position: fixed;
  right: 2.5em;
  bottom: 6.5rem;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background-color: var(--color-main);
  /* ピンク */
  border: 1px solid var(--color-main);
  color: var(--color-white);
  display: flex;
  justify-content: center;
  align-items: center;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
  cursor: pointer;
  z-index: 9999;
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 0.3s, transform 0.3s, visibility 0.3s;
  visibility: hidden;
}
@media (max-width: 960px) {
  .floating-filter-btn {
    right: 1em;
    bottom: 9em;
  }
}
.floating-filter-btn:hover {
  background-color: var(--color-main-hover);
}
.floating-filter-btn svg {
  width: 1.5rem;
  height: 1.5rem;
}
.floating-filter-btn.is-show {
  visibility: visible;
  opacity: 0.9;
  transform: translateY(0);
}

/* ページトップボタン非表示（モーダル開時） */
body.modal-open #pagetop {
  display: none !important;
}

/* 年・月フィルター */
/*--------------------------------------------------
WP Grid Builderページネーション
--------------------------------------------------*/
.wpgb-facet .wpgb-pagination {
  display: flex !important;
  justify-content: center;
  gap: 0.25em;
  margin-top: 2em;
  flex-wrap: wrap;
}
.wpgb-facet .wpgb-pagination li {
  display: flex !important;
  justify-content: center;
  align-items: center;
  width: 2.5em !important;
  height: 2.5em !important;
  border-radius: 50%;
  border: 1px solid var(--color-main);
  background-color: var(--color-white);
  color: var(--color-main);
  transition: all 0.2s ease-in-out;
}
.wpgb-facet .wpgb-pagination li a {
  width: 100%;
  height: 100%;
  display: flex !important;
  align-items: center;
  justify-content: center;
  border-color: var(--color-main);
  line-height: 2.5;
  font-family: var(--font-num);
}
.wpgb-facet .wpgb-pagination li a:hover {
  color: var(--color-main);
}
.wpgb-facet .wpgb-pagination li a[aria-current] {
  background-color: var(--color-main);
  color: var(--color-white) !important;
  font-weight: bold;
  border-radius: 50%;
}
.wpgb-facet .wpgb-pagination .wpgb-page:hover {
  background-color: var(--color-bg-brown);
}

/*--------------------------------------------------
ピックアップセクション
--------------------------------------------------*/
.pickup-section-outer {
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  width: 100vw;
  background-color: var(--color-main);
  padding: 2rem 1rem;
}
.pickup-section-outer .pickup-card {
  display: block;
  background: var(--color-white);
  border: 2px solid var(--color-white);
  border-radius: 1rem;
  overflow: hidden;
  position: relative;
  text-decoration: none;
  color: #333;
}
.pickup-section-outer .pickup-card .pickup-label {
  position: absolute;
  top: 0.5rem;
  left: 0.5rem;
  background: var(--color-main);
  color: var(--color-white);
  padding: 0.2rem 0.5rem;
  font-size: 0.75rem;
  font-weight: bold;
  border-radius: 8px;
  z-index: 2;
}
.pickup-section-outer .pickup-card .pickup-thumbnail img {
  width: 100%;
  height: auto;
  display: block;
}
.pickup-section-outer .pickup-card .pickup-info {
  padding: 1rem;
}
.pickup-section-outer .pickup-card .pickup-info .pickup-date {
  display: inline-block;
  background: #eee;
  padding: 0.2rem 0.5rem;
  border-radius: 4px;
  font-weight: bold;
  font-size: 0.85rem;
  margin-bottom: 0.5rem;
  color: var(--color-main);
}
.pickup-section-outer .pickup-card .pickup-info .pickup-title {
  font-size: 1rem;
  font-weight: bold;
  margin: 0;
}

/*--------------------------------------------------
各種サーチリンクブロック
--------------------------------------------------*/
.search-link__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  margin-top: 2rem;
}
@media (min-width: 600px) and (max-width: 960px) {
  .search-link__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 599px) {
  .search-link__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
.search-link__item {
  background: var(--color-white);
  border-radius: 12px;
  padding: 1.5rem 1rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05);
  border: 1px solid #ddd;
  transition: all 0.2s ease;
}
.search-link__item:hover {
  transform: translateY(-4px);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.1);
}
.search-link__icon {
  position: relative;
  --color: currentColor;
  width: 64px;
  height: 64px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.search-link__icon::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background-color: var(--color);
  opacity: 0.1;
  z-index: 0;
}
.search-link__icon svg {
  position: relative;
  width: 42px;
  height: 42px;
  z-index: 1;
  color: var(--color);
}
.search-link__title-ja {
  font-family: var(--font-jp);
  font-weight: 600;
  font-size: 1.2em;
  line-height: 1.4;
}

/*--------------------------------------------------
トップ Pickup記事スライダー
--------------------------------------------------*/
.p-postSlider .swiper-pagination-bullet {
  background-color: var(--color-main);
}

/*----------------------------------------
  スマホ開閉メニュー
----------------------------------------*/
.c-widget__title.-spmenu {
  display: none;
}

.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-spnav .sub-menu a {
  font-family: var(--font-jp);
}

.c-smallNavTitle {
  color: var(--color-accent-2);
  font-size: 0.75em;
  font-family: var(--font-jp);
}

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

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

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

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

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

/*--------------------------------------------------
今月の・エントリー受付中のイベント
--------------------------------------------------*/
.c-cardlist {
  margin-top: 2em;
}
.c-cardlist-item {
  display: flex;
  align-items: center;
  padding: 0.75em;
  border-bottom: 2px dotted #bebebe;
}
.c-cardlist-item:hover {
  opacity: 0.7;
}
.c-cardlist-item-inner {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}
.c-cardlist-item-inner .entry-deadline {
  color: #DF0000;
}
.c-cardlist-item-head {
  display: flex;
  gap: 1.2rem;
}
@media screen and (max-width: 599px) {
  .c-cardlist-item-head {
    flex-direction: column;
    gap: 0.5rem;
  }
}
.c-cardlist-item-head .title {
  font-size: 1em;
  color: var(--color-text);
}
.c-cardlist-item-meta {
  display: flex;
  gap: 0.2rem;
}
.c-cardlist-item-meta .date {
  min-width: 5em;
  font-weight: bold;
  color: var(--color-main);
  font-size: 0.9em;
}

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

.p-single-work {
  padding: 2rem 0 0;
}
.p-single-work__image {
  max-width: 800px;
  margin: 0 auto 3rem;
  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__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;
}

.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 (max-width: 960px) {
  .p-archive-works__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 599px) {
  .p-archive-works__grid {
    grid-template-columns: 1fr;
  }
}
.p-archive-works__image {
  width: 100%;
  max-width: 320px;
  height: 240px;
  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 (max-width: 960px) {
  .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;
}

/* =========================================
   Web専用デザイン
   ========================================= */
#body_wrap:not(.is-web) #custom_html-9,
#body_wrap:not(.is-web) #custom_html-14 {
  display: none;
}

.is-web .l-header__bar {
  display: none;
}
.is-web .l-header {
  background-color: var(--color-web-main);
}
.is-web .c-gnav .menu-item a .ttl {
  color: var(--color-white);
}
.is-web .c-gnav .menu-item a::after {
  background: var(--color-white);
}
.is-web .c-smallNavTitle {
  color: var(--color-white);
  opacity: 1;
}
.is-web .l-fixHeader:before {
  background-color: var(--color-web-main);
}
.is-web .c-iconBtn {
  color: var(--color-white);
}
.is-web .p-spMenu__inner::before {
  background: var(--color-web-main);
}
.is-web .p-spMenu__inner .c-widget__title.-spmenu {
  display: none;
}
.is-web .p-spMenu__inner .c-spnav li a {
  font-size: 1.4em;
  color: var(--color-white);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
}
.is-web .p-spMenu__inner .c-spnav li a .c-smallNavTitle {
  font-size: 0.55em;
}
.is-web #custom_html-9 {
  margin-bottom: 2rem;
}
.is-web #custom_html-10 {
  display: none;
}
.is-web footer.l-footer {
  background-color: var(--color-web-accent);
  color: #fff;
}
.is-web footer.l-footer .l-footer__nav a {
  color: #fff;
}
.is-web footer.l-footer .l-footer__copy {
  color: rgba(255, 255, 255, 0.7);
}
.is-web #before_footer_widget #custom_html-7 {
  display: none;
}
.is-web .c-bannerLink__title {
  font-size: 2em;
  font-family: var(--font-en);
  color: var(--color-web-main);
}
.is-web .c-bannerLink__description {
  font-family: var(--font-jp);
  font-weight: bold;
  color: var(--color-web-accent);
}
.is-web .c-pageTitle {
  font-family: var(--font-en);
  letter-spacing: 2px;
}
.is-web .is-works .p-postList__title {
  font-family: var(--font-jp);
  font-size: 0.9em;
  text-align: center;
}
.is-web .is-style-big > .swell-block-step__item > .swell-block-step__number .__label, .is-web .is-style-big > .swell-block-step__item > .swell-block-step__number::after {
  font-family: var(--font-num);
}
.is-web .faq_q::before {
  background-color: var(--color-web-main);
}
.is-web .faq_a::before {
  background-color: var(--color-web-accent);
}

.page-id-2588 .c-pageTitle,
.page-id-2852 .c-pageTitle,
.page-id-2835 .c-pageTitle {
  display: grid;
  gap: 1rem;
}
.page-id-2588 .c-pageTitle .c-pageTitle__subTitle,
.page-id-2852 .c-pageTitle .c-pageTitle__subTitle,
.page-id-2835 .c-pageTitle .c-pageTitle__subTitle {
  font-family: var(--font-jp);
}

.page-id-2596 #custom_html-14 {
  display: none;
}

/*--------------------------------------------------
有料プランエリア：イベント
--------------------------------------------------*/
.common-intro-area {
  margin: 2rem 1rem;
}
.common-intro-area .flyer-block {
  display: flex;
  gap: 20px;
  justify-content: center;
  max-width: 1000px;
  margin: 2em auto;
  flex-wrap: wrap;
}
.common-intro-area .flyer-block .flyer-image {
  flex: 1 1 45%;
  max-width: 100%;
}
.common-intro-area .flyer-block .flyer-image img {
  width: 100%;
  height: auto;
  display: block;
}
.common-intro-area .intro-thumbnail {
  max-width: 800px;
  margin: 0 auto 2rem;
  border-radius: 12px;
  overflow: hidden;
}
.common-intro-area .intro-thumbnail img {
  width: 100%;
  height: auto;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
}

/*--------------------------------------------------
有料プランエリア：スタジオ
--------------------------------------------------*/
.studio-map {
  margin-top: 1rem;
}
@media screen and (max-width: 599px) {
  .studio-map iframe {
    height: 150px;
  }
}

/*--------------------------------------------------
シングルページ：共通情報枠
--------------------------------------------------*/
.common-info-box {
  padding: 2rem;
  border-radius: 0.5rem;
  border: 2px solid var(--color-main);
}
.common-info-box.is-studio {
  border-color: var(--color-accent);
}
.common-info-box.is-brown {
  border-color: var(--color-accent-2);
}
.common-info-box.is-web {
  border-color: var(--color-web-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;
}

/*--------------------------------------------------
主催団体ページ 一覧ページ
--------------------------------------------------*/
/* リスト：・付き */
.event-list {
  list-style: none;
  padding-left: 0;
  margin-top: 1em;
}
.event-list li {
  position: relative;
  padding-left: 1.2em;
  margin-bottom: 0.6em;
  color: var(--color-text);
}
.event-list li::before {
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--color-main);
  font-size: 1em;
  transform: translateY(0.1em);
}
.event-list li .event-link {
  color: inherit;
}
.event-list li .event-link:hover {
  color: var(--color-main);
  /* ホバー時のアクセントカラー */
}

/*--------------------------------------------------
主催団体ページ 個別ページ
--------------------------------------------------*/
.org-description {
  margin-top: 2rem;
}

/*--------------------------------------------------
スカラシップ提携先 まとめページ
page-scholarship.php
--------------------------------------------------*/
/* 国地域アコーディオン */
.region-index-accordion .accordion-item {
  border-bottom: 1px solid var(--color-accent);
  /* アクティブ時の背景色 */
  /* アコーディオン展開エリア */
}
.region-index-accordion .accordion-item .accordion-toggle {
  position: relative;
  background-color: var(--color-bg);
  color: var(--color-accent-2);
  cursor: pointer;
  padding: 1em;
  width: 100%;
  border: none;
  text-align: left;
  font-weight: bold;
  display: flex;
  align-items: center;
  justify-content: space-between;
  /* 矢印アイコン */
}
.region-index-accordion .accordion-item .accordion-toggle .accordion-icon {
  width: 24px;
  height: 24px;
  display: inline-block;
  transform: rotate(0deg);
  transform-origin: 50% 50%;
  transition: var(--transition-03s-tra);
  vertical-align: middle;
}
.region-index-accordion .accordion-item .accordion-toggle.active {
  background-color: var(--color-bg-brown);
}
.region-index-accordion .accordion-item .accordion-toggle.active .accordion-icon {
  transform: rotate(180deg);
}
.region-index-accordion .accordion-item .accordion-panel {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
  background-color: var(--color-white);
}
.region-index-accordion .accordion-item .accordion-panel ul {
  list-style: none;
  padding: 0.5em 1.5em;
  margin: 0;
}
.region-index-accordion .accordion-item .accordion-panel ul li {
  padding: 0.3em 0;
  /* 中のリンク */
}
.region-index-accordion .accordion-item .accordion-panel ul li .accordion-link {
  color: var(--color-accent-2);
  transition: var(--transition-03s-color);
}
.region-index-accordion .accordion-item .accordion-panel ul li .accordion-link:hover {
  color: var(--color-accent);
}

/*--------------------------------------------------
有料掲載 まとめページ
--------------------------------------------------*/
.advertise-p {
  text-align: center;
  margin: 3rem 0;
}

.plan-card-grid {
  display: grid;
  gap: 2rem;
  grid-template-columns: 1fr;
  margin-top: 4rem;
}
@media (min-width: 600px) {
  .plan-card-grid {
    grid-template-columns: 1fr 1fr;
  }
}

.option-card-grid {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.plan-card {
  background-color: var(--color-white);
  border-radius: 12px;
  padding: 2rem;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.06);
  text-align: center;
  transition: transform 0.3s ease;
}
.plan-card:hover {
  transform: translateY(-4px);
}
.plan-card.is-pickup {
  border: 2px solid var(--color-main);
  background-color: #FFF6F7;
  position: relative;
}
.plan-card.is-pickup::before {
  content: "\\ おすすめ！/";
  position: absolute;
  top: -2em;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--font-jp);
  font-size: 1em;
  color: var(--color-accent-2);
  font-weight: bold;
}
.plan-card.is-gold {
  border: 2px solid var(--color-accent);
  background-color: var(--color-white);
  position: relative;
}
.plan-card .plan-title {
  font-family: var(--font-jp);
  font-size: 1.5em;
  color: var(--color-accent-2);
  margin-bottom: 0.5rem;
}
.plan-card .plan-price {
  font-size: 1.25em;
  color: var(--color-main);
  font-weight: bold;
  margin-bottom: 1rem;
}
.plan-card .plan-price span {
  font-size: 1.5em;
  margin-left: 0.1em;
}
.plan-card .plan-features {
  list-style: none;
  padding: 0;
  margin: 1rem auto;
  color: #333;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  align-items: flex-start;
}
.plan-card .plan-features.w-max-320 {
  max-width: 320px;
}
.plan-card .plan-features li {
  display: flex;
  align-items: center;
  gap: 0.5em;
  font-size: 1rem;
  text-align: left;
}
.plan-card .plan-features svg {
  width: 20px;
  height: 20px;
  background-color: var(--color-accent);
  border-radius: 50%;
  color: var(--color-white);
  padding: 3px;
  flex-shrink: 0;
}
.plan-card .plan-note {
  font-size: 0.875rem;
  color: #666;
  margin-top: 1em;
}

.table-info {
  display: none;
}
@media (max-width: 599px) {
  .table-info {
    display: flex;
    justify-content: start;
    align-items: center;
    font-size: 0.75em;
    color: #444;
    gap: 0.5em;
    margin: 0 0 0.5em 0.5em;
  }
}
.table-info svg {
  width: 10px;
  height: 10px;
}

.table-scroll {
  overflow-x: auto;
  margin-bottom: 4rem;
}
.table-scroll .compare-table {
  width: 100%;
  min-width: 600px;
  border-collapse: collapse;
  text-align: center;
  table-layout: fixed;
}
.table-scroll .compare-table th,
.table-scroll .compare-table td {
  padding: 1rem;
  border: 1px solid #ddd;
}
.table-scroll .compare-table th {
  font-weight: bold;
  white-space: nowrap;
}
.table-scroll .compare-table .sticky-col {
  position: sticky;
  left: 0;
  background: var(--color-white);
  z-index: 10;
  font-size: 0.75em;
  white-space: normal;
}
.table-scroll .compare-table .col-pickup {
  background: #FBECEC;
  border: 2px solid var(--color-main);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.08);
}
.table-scroll .compare-table .col-light {
  background: #FDF7F5;
}
.table-scroll .compare-table .col-free {
  background: #F9F9F9;
}
.table-scroll .compare-table .compare-cell {
  position: relative;
  text-align: center;
  min-height: 100px;
  text-align: center;
  padding: 1em 0.5em;
}
.table-scroll .compare-table .compare-cell .compare-icon {
  font-weight: bold;
  opacity: 0.3;
  pointer-events: none;
}
.table-scroll .compare-table .compare-cell .compare-icon svg {
  width: 40px;
  height: 40px;
}
.table-scroll .compare-table .compare-cell .compare-text {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 90%;
  transform: translate(-50%, -50%);
  font-size: 0.9rem;
  font-weight: 500;
  color: #333;
  z-index: 1;
  line-height: 1.4;
}
@media (max-width: 599px) {
  .table-scroll .compare-table .compare-cell .compare-text {
    font-size: 0.8rem;
  }
}
.table-scroll .compare-table .compare-cell.compare-circle .compare-text {
  font-weight: bold;
}

/*--------------------------------------------------
有料プラン各ページ
--------------------------------------------------*/
/* ▼ 金額表示セクション */
.price-section {
  padding: 3rem 1rem 2rem;
  background: var(--color-bg-brown);
}
.price-section .price-main {
  color: var(--color-main);
  font-size: 3em;
  margin-bottom: 0.5rem;
  line-height: 1.2;
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  justify-content: center;
  row-gap: 0.2em;
}
@media (max-width: 599px) {
  .price-section .price-main {
    font-size: 2em;
  }
}
.price-section .price-main span {
  font-size: 1.25em;
  font-weight: bold;
  margin-left: 0.2em;
}
.price-section .price-main small {
  font-size: 0.5em;
  font-weight: normal;
  color: var(--color-accent-2);
  margin-left: 0.5em;
}
.price-section .price-main .price-free {
  color: var(--color-main);
  font-size: 0.6em;
  text-align: center;
  margin-bottom: 0.5rem;
}
.price-section .price-note {
  font-size: 0.95rem;
  color: #666;
}
.price-section .price-original {
  text-decoration: line-through;
  color: #999;
  margin-right: 0.5em;
  font-size: 0.75em !important;
}
.price-section .price-campaign {
  margin-top: 1em;
  font-weight: bold;
  color: var(--color-main);
  font-size: 0.5em;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  -moz-column-gap: 0.2em;
       column-gap: 0.2em;
  row-gap: 0.25em;
  align-items: baseline;
}
.price-section .price-campaign strong {
  font-size: 1.5em;
}

/* ▼ 目次ナビ */
.plan-toc {
  margin: 2rem 0;
  padding: 2rem;
  background: var(--color-bg-gray);
  border-radius: 12px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}
.plan-toc ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.plan-toc ul li {
  margin: 0;
}
.plan-toc ul li a {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  text-decoration: none;
  background: var(--color-white);
  border: 1px solid #ddd;
  padding: 0.8rem 1rem;
  border-radius: 8px;
  transition: all 0.2s ease;
  font-weight: 500;
  color: var(--color-text);
}
.plan-toc ul li a svg {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  color: var(--color-main);
  transition: color 0.2s;
}
.plan-toc ul li a:hover {
  background: #f0e6e6;
  border-color: var(--color-main);
  color: var(--color-main);
}
.plan-toc ul li a:hover svg {
  color: var(--color-main-hover);
}

/* ▼ 特徴セクション */
.plan-feature-list .feature-block {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 6rem;
  padding-top: 1em;
}
.plan-feature-list .feature-block-content {
  display: flex;
  align-items: center;
  gap: 2rem;
  margin-top: 1rem;
}
.plan-feature-list .feature-block-content .feature-media {
  width: 50%;
  max-width: 500px;
}
.plan-feature-list .feature-block-content .feature-media img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  display: block;
}
.plan-feature-list .feature-block-content .feature-text {
  flex: 1;
}
.plan-feature-list .feature-block-content .feature-text .feature-content-strong {
  font-weight: bold;
  color: var(--color-red);
}
@media (max-width: 599px) {
  .plan-feature-list .feature-block-content {
    flex-direction: column;
  }
  .plan-feature-list .feature-block-content .feature-media,
  .plan-feature-list .feature-block-content .feature-text {
    width: 100%;
  }
}
.plan-feature-list .feature-block:not(:has(.feature-media)) .feature-text {
  flex: 1 1 100%;
}
@media (min-width: 960px) {
  .plan-feature-list .feature-block.is-reverse .feature-block-content {
    flex-direction: row-reverse;
  }
}
.plan-feature-list .feature-block.no-image .feature-block-content {
  display: block;
}
.plan-feature-list .feature-block.no-image .feature-block-content .feature-text {
  width: 100%;
}
.plan-feature-list > .feature-block :last-of-type {
  margin-bottom: 0;
}

/* 補足セクション */
.pickup-note {
  background: var(--color-bg-brown);
  padding: 3rem 1rem;
  margin-top: 3rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
  border-radius: 12px;
}
.pickup-note .note-title {
  font-family: var(--font-jp);
  font-size: 1.6rem;
  font-weight: bold;
  margin-bottom: 2rem;
  color: #6E533B;
  text-align: center;
}
.pickup-note .note-content strong {
  font-weight: bold;
  color: #CC8B92;
  /* メインカラーで強調 */
}
.pickup-note li {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
  font-size: 1rem;
  color: var(--color-text);
  line-height: 1.6;
}
.pickup-note li svg {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin-top: 0.2em;
}

/*----------------------------------------
  今月のイベントページ 切り替えボタン
----------------------------------------*/
.tab-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-bottom: 24px;
}
.tab-nav-button {
  background-color: var(--color-white);
  color: var(--color-text);
  border: 2px solid #c8c8c8;
  border-radius: 4px;
  padding: 5px 8px;
  cursor: pointer;
  transition: all 0.25s ease;
  font-size: 14px;
}
.tab-nav-button:hover {
  background-color: var(--color-bg);
  color: var(--color-text);
  border-color: var(--color-main);
}
.tab-nav-button.is-active {
  background-color: var(--color-main);
  color: var(--color-white);
  border-color: var(--color-main);
}