@charset "UTF-8";
/* =========================================================
   ILCHI Brain Yoga Renewal / Common
   File: 01-common.css
   Purpose: LP共通の最小基盤
   Updated: 2026-07-31

   方針
   - テーマ全体へ影響するbody・見出し・リンクの一括上書きは行わない
   - .iby-page 内だけを対象にする
   - テンプレート固有の配色・レイアウトは各専用CSSへ分離する
========================================================= */

/* =========================================================
   1. LP root
========================================================= */
.iby-page,
.iby-page *,
.iby-page *::before,
.iby-page *::after {
  box-sizing: border-box;
}

.iby-page {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  color: #222;
}

@supports (overflow: clip) {
  .iby-page {
    overflow-x: clip;
  }
}

.iby-page img,
.iby-page video,
.iby-page iframe {
  max-width: 100%;
}

.iby-page img,
.iby-page video {
  height: auto;
}

/* =========================================================
   2. Common section width
========================================================= */
.iby-section {
  padding: 72px 24px;
}

.iby-section > .wp-block-group__inner-container,
.iby-section > .wp-block-group-is-layout-constrained,
.iby-section > .wp-block-group-is-layout-flow {
  width: 100%;
  max-width: 1120px;
  margin-right: auto;
  margin-left: auto;
}

@media screen and (max-width: 767px) {
  .iby-section {
    padding: 48px 20px;
  }
}

/* =========================================================
   3. Common monthly campaign banner
========================================================= */
.iby-page .ilchi-monthly-campaign {
  width: 100%;
  max-width: 900px !important;
  margin: 0 auto !important;
  padding: 0 20px !important;
}

.iby-page .ilchi-monthly-campaign__link {
  display: block !important;
  overflow: hidden !important;
  border-radius: 22px !important;
  box-shadow: 0 14px 34px rgba(80, 50, 20, 0.10) !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}

.iby-page .ilchi-monthly-campaign__link:hover,
.iby-page .ilchi-monthly-campaign__link:focus-visible {
  transform: translateY(-3px) !important;
  box-shadow: 0 18px 42px rgba(80, 50, 20, 0.14) !important;
}

.iby-page .ilchi-monthly-campaign__img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
}

@media screen and (max-width: 767px) {
  .iby-page .ilchi-monthly-campaign {
    padding: 0 18px !important;
  }

  .iby-page .ilchi-monthly-campaign__link {
    border-radius: 16px !important;
  }
}
/* =========================================================
   KOBE / PC NORMAL HEADER FINAL
   通常ヘッダーを画面幅いっぱいに使って1行に収める
========================================================= */

@media screen and (min-width: 1200px) {

  /* Lightning標準のcontainer幅を解除 */
  html body #site-header.site-header--layout--nav-float
  #site-header-container.site-header-container.container {
    width: calc(100% - 40px) !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding-right: 0 !important;
    padding-left: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
    gap: 24px !important;
  }

  /* スタジオ名 */
  html body #site-header
  #site-header-container
  .site-header-logo {
    flex: 0 1 510px !important;
    min-width: 380px !important;
    max-width: 510px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  html body #site-header
  #site-header-container
  .site-header-logo a,
  html body #site-header
  #site-header-container
  .site-header-logo-title {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;

    font-size: 26px !important;
    line-height: 1.25 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
  }

  /* メニュー領域 */
  html body #site-header
  #site-header-container
  #global-nav.global-nav {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  html body #site-header
  #global-nav ul {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  html body #site-header
  #global-nav ul > li {
    flex: 0 0 auto !important;
    margin: 0 !important;
    white-space: nowrap !important;
  }

  html body #site-header
  #global-nav ul > li > a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    padding-right: 13px !important;
    padding-left: 13px !important;

    font-size: 15px !important;
    line-height: 1.3 !important;
    white-space: nowrap !important;
  }
}


/* 1200～1499pxのPCでは少しだけ詰める */
@media screen and (min-width: 1200px) and (max-width: 1499px) {

  html body #site-header
  #site-header-container
  .site-header-logo {
    flex-basis: 430px !important;
    min-width: 360px !important;
    max-width: 430px !important;
  }

  html body #site-header
  #site-header-container
  .site-header-logo a,
  html body #site-header
  #site-header-container
  .site-header-logo-title {
    font-size: 22px !important;
  }

  html body #site-header
  #global-nav ul > li > a {
    padding-right: 9px !important;
    padding-left: 9px !important;
    font-size: 14px !important;
  }
}
/* =========================================================
   KOBE / PC NORMAL HEADER BALANCE FINAL
   サイト名のはみ出しとHOMEの重なりを解消
========================================================= */

@media screen and (min-width: 1200px) {

  /* 追従前の通常ヘッダーだけ調整 */
  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container.site-header-container.container {
    column-gap: 18px !important;
  }

  /* サイト名領域 */
  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container
  h1.site-header-logo {
    flex: 0 0 455px !important;
    width: 455px !important;
    min-width: 455px !important;
    max-width: 455px !important;

    margin: 0 !important;
    padding: 0 !important;

    font-size: 22px !important;
    line-height: 1.2 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container
  h1.site-header-logo a,
  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container
  h1.site-header-logo .site-header-logo-title {
    display: block !important;

    font-size: 22px !important;
    line-height: 1.2 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
  }

  /* メニュー領域 */
  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav.global-nav {
    flex: 1 1 0 !important;
    width: auto !important;
    min-width: 0 !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav > ul {
    width: 100% !important;

    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav > ul > li {
    flex: 0 0 auto !important;
    min-width: 0 !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav > ul > li > a {
    padding-right: 8px !important;
    padding-left: 8px !important;

    font-size: 14px !important;
    line-height: 1.3 !important;
    white-space: nowrap !important;
  }
}


/* 1200～1350pxでは、さらに少し小さくする */
@media screen and (min-width: 1200px) and (max-width: 1350px) {

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container
  h1.site-header-logo {
    flex-basis: 390px !important;
    width: 390px !important;
    min-width: 390px !important;
    max-width: 390px !important;

    font-size: 19px !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container
  h1.site-header-logo a,
  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container
  h1.site-header-logo .site-header-logo-title {
    font-size: 19px !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav > ul > li > a {
    padding-right: 5px !important;
    padding-left: 5px !important;
    font-size: 13px !important;
  }
}
/* =========================================================
   KOBE / PC NORMAL HEADER WIDTH FINAL
   1500px前後で右端の予約メニューまで収める
========================================================= */

@media screen and (min-width: 1200px) and (max-width: 1599px) {

  /* 通常ヘッダーの使用可能幅を少し広げる */
  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container.site-header-container.container {
    width: calc(100% - 24px) !important;
    max-width: none !important;
    column-gap: 12px !important;
  }

  /* スタジオ名の占有幅を縮小 */
  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container
  h1.site-header-logo {
    flex: 0 0 400px !important;
    width: 400px !important;
    min-width: 400px !important;
    max-width: 400px !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container
  h1.site-header-logo,
  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container
  h1.site-header-logo a,
  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container
  h1.site-header-logo .site-header-logo-title {
    font-size: 20px !important;
    line-height: 1.2 !important;
    letter-spacing: -0.02em !important;
    white-space: nowrap !important;
  }

  /* メニューを残り幅へ収める */
  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav.global-nav {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    overflow: visible !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav > ul {
    width: 100% !important;
    justify-content: space-between !important;
    gap: 0 !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav > ul > li > a {
    padding-right: 5px !important;
    padding-left: 5px !important;
    font-size: 13px !important;
    letter-spacing: -0.02em !important;
    white-space: nowrap !important;
  }
}
/* =========================================================
   KOBE / PC NORMAL HEADER NAV COMPACT FINAL
   通常時のメニューを約720px内に収める
========================================================= */

@media screen and (min-width: 1200px) {

  /* 通常表示のみ */
  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container.site-header-container.container {
    justify-content: flex-start !important;
    column-gap: 18px !important;
  }

  /* メニュー全体を赤線付近の幅へ固定 */
  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav.global-nav {
    flex: 0 0 720px !important;
    width: 720px !important;
    min-width: 720px !important;
    max-width: 720px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav > ul {
    display: flex !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;

    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav > ul > li {
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav > ul > li > a {
    padding-right: 3px !important;
    padding-left: 3px !important;

    font-size: 13px !important;
    line-height: 1.3 !important;
    letter-spacing: -0.02em !important;
    white-space: nowrap !important;
  }
}
/* =========================================================
   KOBE / PC NORMAL HEADER MENU GAP ADJUST
   各メニュー間を約3文字分ずつ詰める
========================================================= */

@media screen and (min-width: 1200px) {

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav > ul {
    justify-content: flex-start !important;
    column-gap: 14px !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav > ul > li > a {
    padding-right: 3px !important;
    padding-left: 3px !important;
  }
}
/* =========================================================
   KOBE / PC NORMAL HEADER KANAYAMA STYLE FINAL
   通常ヘッダーを金山B2のレイアウトへ揃える
========================================================= */

@media screen and (min-width: 1200px) {

  /* 通常表示だけ調整。追従時には適用しない */
  body:not(.header_scrolled)
  #site-header:not(.header_scrolled) {
    width: 100% !important;
    min-height: 86px !important;
    background: #fff !important;
  }

  /* 金山のように中央の本文幅へ収める */
  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container.site-header-container.container {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;

    width: calc(100% - 40px) !important;
    max-width: 1230px !important;
    min-height: 86px !important;

    margin-right: auto !important;
    margin-left: auto !important;
    padding: 0 !important;

    column-gap: 38px !important;
  }

  /* =====================================================
     サイト名
  ===================================================== */

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container
  .site-header-logo {
    flex: 0 0 390px !important;
    width: 390px !important;
    min-width: 390px !important;
    max-width: 390px !important;

    margin: 0 !important;
    padding: 0 !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container
  .site-header-logo a {
    display: flex !important;
    align-items: center !important;

    width: 100% !important;
    min-height: 86px !important;

    margin: 0 !important;
    padding: 0 !important;

    text-decoration: none !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container
  .site-header-logo,
  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container
  .site-header-logo a,
  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container
  .site-header-logo span {
    font-size: 23px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
  }

  /* =====================================================
     メニュー
  ===================================================== */

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav.global-nav {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav > ul {
    display: flex !important;
    align-items: stretch !important;
    justify-content: flex-end !important;
    flex-wrap: nowrap !important;

    width: 100% !important;
    min-height: 86px !important;

    margin: 0 !important;
    padding: 0 !important;

    column-gap: 26px !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav > ul > li {
    display: flex !important;
    align-items: stretch !important;
    flex: 0 0 auto !important;

    margin: 0 !important;
    padding: 0 !important;

    white-space: nowrap !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav > ul > li > a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-height: 86px !important;

    margin: 0 !important;
    padding: 2px 0 0 !important;

    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
  }
}


/* =========================================================
   1200～1399px
   少し狭いPCでは金山レイアウトを保ったまま縮小
========================================================= */

@media screen and (min-width: 1200px) and (max-width: 1399px) {

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container.site-header-container.container {
    max-width: 1160px !important;
    column-gap: 24px !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container
  .site-header-logo {
    flex-basis: 350px !important;
    width: 350px !important;
    min-width: 350px !important;
    max-width: 350px !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container
  .site-header-logo,
  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container
  .site-header-logo a,
  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container
  .site-header-logo span {
    font-size: 20px !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav > ul {
    column-gap: 17px !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav > ul > li > a {
    font-size: 13px !important;
  }
}
/* =========================================================
   KOBE / PC HEADER RESPONSIVE POSITION FINAL
   画面幅が変わってもタイトルとメニュー位置を安定させる
========================================================= */

@media screen and (min-width: 992px) {

  /* ヘッダー全体 */
  body:not(.header_scrolled)
  #site-header:not(.header_scrolled) {
    width: 100% !important;
    min-height: 86px !important;
    background: #fff !important;
  }

  /* 992px以上は同じコンテナ規則を使用 */
  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container.site-header-container.container {
    display: grid !important;
    grid-template-columns:
      clamp(350px, 29vw, 400px)
      minmax(0, 1fr) !important;

    align-items: center !important;
    column-gap: clamp(12px, 1.5vw, 22px) !important;

    width: calc(100% - 40px) !important;
    max-width: 1230px !important;
    min-height: 86px !important;

    margin-right: auto !important;
    margin-left: auto !important;
    padding: 0 !important;
  }

  /* =====================================================
     サイトタイトル
  ===================================================== */

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container
  h1.site-header-logo {
    display: flex !important;
    align-items: center !important;
    align-self: center !important;

    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;

    margin: 0 !important;
    padding: 0 !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container
  h1.site-header-logo > a {
    display: flex !important;
    align-items: center !important;

    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;

    margin: 0 !important;
    padding: 0 !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #site-header-container
  h1.site-header-logo > a > span {
    position: static !important;
    inset: auto !important;
    transform: none !important;

    display: block !important;
    margin: 0 !important;
    padding: 0 !important;

    font-size: clamp(18px, 1.55vw, 23px) !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: -0.01em !important;
    white-space: nowrap !important;
  }

  /* =====================================================
     メニュー
  ===================================================== */

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav.global-nav {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav > ul {
    display: flex !important;
    align-items: stretch !important;
    justify-content: flex-end !important;
    flex-wrap: nowrap !important;

    width: 100% !important;
    min-height: 86px !important;

    margin: 0 !important;
    padding: 0 !important;

    column-gap: clamp(8px, 1vw, 18px) !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav > ul > li {
    display: flex !important;
    align-items: stretch !important;
    flex: 0 0 auto !important;

    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;
  }

  body:not(.header_scrolled)
  #site-header:not(.header_scrolled)
  #global-nav > ul > li > a {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-height: 86px !important;

    margin: 0 !important;
    padding: 2px 0 0 !important;

    font-size: clamp(12px, 0.9vw, 14px) !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: -0.01em !important;
    white-space: nowrap !important;
  }
}