/*
Theme Name: GeneratePress Child
Theme URI: https://generatepress.com
Template: generatepress
Author: Tom Usborne
Author URI: https://generatepress.com/about
Description: GeneratePress is a lightweight WordPress theme built with a focus on speed and usability. Performance is important to us, which is why a fresh GeneratePress install adds less than 10kb (gzipped) to your page size. We take full advantage of the block editor (Gutenberg), which gives you more control over creating your content. If you use page builders, GeneratePress is the right theme for you. It is completely compatible with all major page builders, including Beaver Builder and Elementor. Thanks to our emphasis on WordPress coding standards, we can boast full compatibility with all well-coded plugins, including WooCommerce. GeneratePress is fully responsive, uses valid HTML/CSS, and is translated into over 25 languages by our amazing community of users. A few of our many features include 60+ color controls, powerful dynamic typography, 5 navigation locations, 5 sidebar layouts, dropdown menus (click or hover), and 9 widget areas. Learn more and check out our powerful premium version at https://generatepress.com
Tags: two-columns,three-columns,one-column,right-sidebar,left-sidebar,footer-widgets,blog,e-commerce,flexible-header,full-width-template,buddypress,custom-header,custom-background,custom-menu,custom-colors,sticky-post,threaded-comments,translation-ready,rtl-language-support,featured-images,theme-options
Version: 3.6.1.1773827473
Updated: 2026-03-18 18:51:13

*/

/* 基準フォントサイズ・フォント指定 */
body {
  font-size: 16px;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.8;
}
/* コンテンツ左右余白：PC */
.entry-content {
  padding-left: 24px;
  padding-right: 24px;
}
/* コンテンツ左右余白：スマホ */
@media (max-width: 768px) {
  .entry-content {
    padding-left: 15px;
    padding-right: 15px;
  }
}
/* LPページ背景 */
body.page-template-page-lp.separate-containers .inside-article {
  background-color: #ffffff !important;
}

/* PCのみ：サイドバーをスクロール追従させる */
@media (min-width: 769px) {
    .inside-right-sidebar {
        position: sticky;
        top: 50px; /* 画面の上からどれくらい離して固定するか */
    }
}

/* 普段は柏専用の右サイドメニューを非表示 */
#right-sidebar #nav_menu-3 {
    display: none !important;
}

/* 柏ディレクトリの右サイドメニューを入れ替え */
.kashiwa-group #right-sidebar #nav_menu-2 {
    display: none !important;
}

.kashiwa-group #right-sidebar #nav_menu-3 {
    display: block !important;
}

/* 本文テキスト：PC版のみ文字を少し大きく・最下部に余白を追加 */
@media (min-width: 769px) {
  .entry-content {
    font-size: 1.1rem;
    padding-bottom: 45px; /* ★PC版の文章の下に少しゆとりを持たせました */
  }
}

/* スマホでは旧サイドバーを非表示 */
@media (max-width: 768px) {
  #right-sidebar {
    display: none !important;
  }
}

/* トップ画像：PC版は中央寄せ、影つき */
.full-width-image img {
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  max-width: 100%;
  margin-bottom: 2rem;
}
/* トップ画像：スマホ版だけ全幅表示 */
@media (max-width: 768px) {
  .full-width-image {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
  }
}

/* PCのみ表示 */
.pc-only {
  display: block;
}

/* スマホのみ表示 */
.sp-only {
  display: none;
}

@media (max-width: 768px) {
  .pc-only { display: none; }
  .sp-only { display: block; }
}

/* ボタン外側：中央寄せ */
body .wp-block-buttons {
  display: flex;
  justify-content: center;
  margin-bottom: 2rem;
}
/* ボタン外側：スマホ版 */
@media (max-width: 768px) {
  body .wp-block-buttons {
    margin-bottom: 1.2rem;
  }
}
/* ボタン：青（デフォルト） */
body .wp-block-buttons .wp-block-button .wp-block-button__link {
  background-color: #4a90e2;
  border-color: #4a90e2;
  color: #ffffff;
  width: 800px;
  max-width: 80%;
  font-size: 1.8rem;
  font-weight: bold;
  white-space: nowrap;
  border-radius: 4px;
  padding: 20px 24px;
  display: block;
  margin: 0 auto;
}
/* ボタン：青（スマホ版） */
@media (max-width: 768px) {
  body .wp-block-buttons .wp-block-button .wp-block-button__link {
    width: 100%;
    max-width: 100%;
    font-size: 1.1rem;
    padding: 14px 24px;
  }
}
/* ボタン：緑（LINE） */
body .wp-block-buttons .wp-button-line .wp-block-button__link {
  background-color: #06c755;
  border-color: #06c755;
}
/* ボタン：灰色（電話） */
body .wp-block-buttons .wp-button-tel .wp-block-button__link {
  background-color: #95999d;
  border-color: #95999d;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.wp-button-subcaption {
  font-size: 0.8rem;
  font-weight: 400;
  margin-top: 4px;
}

/* --------------------------------------------------
   見出しデザイン設定（Hタグ）
-------------------------------------------------- */

/* H1・H2共通の装飾・サイズ設定 */
.wp-block-heading:where(h1, h2) {
  font-size: 1.8rem;
  font-weight: 700;
  color: #333333;
  border-top: 3px solid #4a90e2;
  border-bottom: 1px solid #cccccc;
  padding-top: 18px;
  padding-bottom: 15px;
  margin-bottom: 1.5rem;
}
/* スマホ時のフォントサイズ（共通） */
@media (max-width: 768px) {
  .wp-block-heading:where(h1, h2) {
    font-size: 1.5rem;
  }
}

/* 【H2専用】の上余白（現状維持） */
.wp-block-heading:where(h2) {
  margin-top: 3.5rem;
}
@media (min-width: 769px) {
  .wp-block-heading:where(h2) {
    margin-top: 5rem;
  }
}

/* 【H1専用】の上余白（PC・スマホそれぞれ半分に設定） */
.wp-block-heading:where(h1) {
  margin-top: 1.75rem; /* 3.5remの半分 */
}
@media (min-width: 769px) {
  .wp-block-heading:where(h1) {
    margin-top: 2.5rem; /* 5remの半分 */
  }
}

/* 【一部のH1を元に戻す設定】クラス「h1-default」がついたH1はテーマ本来の見た目に戻す */
.wp-block-heading.h1-default {
  font-size: revert !important;
  font-weight: revert !important;
  color: revert !important;
  border-top: none !important;
  border-bottom: none !important;
  padding-top: revert !important;
  padding-bottom: revert !important;
  margin-top: revert !important;
  margin-bottom: revert !important;
}

/* h3見出し */
.wp-block-heading:where(h3) {
  font-size: 1.5rem;
  font-weight: 700;
  color: #333333;
  background-image: linear-gradient(to right, #4a90e2 30%, #cccccc 30%);
  background-size: 100% 1px;
  background-repeat: no-repeat;
  background-position: bottom;
  padding-bottom: 8px;
  margin-top: 2.5rem;
  margin-bottom: 1rem;
}
/* h3見出し：スマホ */
@media (max-width: 768px) {
  .wp-block-heading:where(h3) {
    font-size: 1.25rem;
    margin-top: 2.5rem;
  }
}
/* h3見出し：PC版の上余白 */
@media (min-width: 769px) {
  .wp-block-heading:where(h3) {
    margin-top: 4rem;
  }
}
/* h4見出し */
.wp-block-heading:where(h4) {
  font-size: 1.25rem;
  font-weight: 700;
  color: #333333;
  background-color: #e8f2fb;
  padding: 10px 14px;
  border-radius: 3px;
  margin-top: 2rem;
  margin-bottom: 1rem;
}
/* h4見出し：スマホ */
@media (max-width: 768px) {
  .wp-block-heading:where(h4) {
    font-size: 1.1rem;
    margin-top: 2rem;
  }
}
/* h4見出し：PC版の上余白 */
@media (min-width: 769px) {
  .wp-block-heading:where(h4) {
    margin-top: 3.5rem;
  }
}

/* --------------------------------------------------
   箇条書き（ul）の階層ごとに記号を変更する設定
-------------------------------------------------- */
/* 1階層目：黒丸（●） */
.entry-content ul {
  list-style-type: disc !important;
}

/* 2階層目：白丸（○） */
.entry-content ul ul {
  list-style-type: circle !important;
}

/* 3階層目：四角（■） */
.entry-content ul ul ul {
  list-style-type: square !important;
}

/* -------------------------------------------------- */

/* 背景色つきp：左右余白をリセット */
.entry-content p.has-background {
  padding: 11px 0;
}
/* 画像：下余白・影 */
.entry-content img {
  margin-bottom: 1.5rem;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
}
/* 画像：下余白（スマホ） */
@media (max-width: 768px) {
  .entry-content img {
    margin-bottom: 0.8rem;
  }
}
/* プロフィール略歴タイムライン */
.profile-timeline {
  border-left: 3px solid #327eaa;
  padding-left: 16px;
  margin-top: 0.3rem;
}
.profile-timeline-item {
  margin-bottom: 1.2rem;
}
.profile-timeline-year {
  color: #327eaa;
  font-weight: 700;
  margin-bottom: 4px;
}
.profile-timeline-body p {
  margin: 0;
  padding-left: 1rem;
  font-size: 1rem;
}
/* 講師プロフィールh3：下線なし・上余白を詰める */
.profile-section h3.wp-block-heading {
  background-image: none;
  margin-top: 0.5rem;
  margin-bottom: 0.3rem;
}
/* 講師プロフィール：本文pの上余白を詰める */
.profile-section > p {
  margin-top: 0.3rem;
}
/* スクール風景ギャラリー */
.school-gallery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 2rem;
}
.school-gallery-item img {
  width: 100%;
  height: auto;
  display: block;
  margin-bottom: 0;
}
.school-gallery-caption {
  font-size: 0.9rem;
  color: #555555;
  text-align: left;
  margin-top: 6px;
  margin-bottom: 0;
}
/* キャプション左右余白：PC版のみ */
@media (min-width: 769px) {
  .school-gallery-caption {
    padding-left: 15px;
    padding-right: 15px;
  }
}
/* キャプション下の余白：PC版のみ */
@media (min-width: 769px) {
  .school-gallery-item {
    margin-bottom: 1.5rem;
  }
}
/* スクール風景ギャラリー：スマホ */
@media (max-width: 768px) {
  .school-gallery {
    grid-template-columns: 1fr;
  }
}
/* 治療体験の流れ：外枠 */
.trial-flow {
  background-color: #f0f6ff;
  border: 1px solid #e0e0e0;
  border-radius: 5px;
  padding: 2rem;
  margin-top: 3rem;
  margin-bottom: 2rem;
}
.trial-flow-title {
  text-align: center;
  border-top: none !important;
  border-bottom: none !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  color: #333333;
}
.trial-flow-subtitle {
  text-align: center;
  margin-top: 0;
  margin-bottom: 1.5rem;
  color: #555555;
  line-height: 1;
}
/* 3カラムグリッド */
.trial-flow-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 16px;
  margin-bottom: 1.5rem;
}
/* 各カード */
.trial-flow-item {
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 4px;
  padding: 1rem;
}
.trial-flow-step {
  text-align: center;
  color: #4a90e2;
  line-height: 1.2;
  margin-bottom: 0.5rem;
}
.trial-flow-step strong {
  font-size: 2rem;
}
.trial-flow-name {
  text-align: center;
  font-size: 1rem;
  font-weight: 700;
  margin-top: 0;
  margin-bottom: 4px;
  background-image: none;
}
.trial-flow-time {
  text-align: center;
  font-size: 0.85rem;
  color: #666666;
  margin-top: 0;
  margin-bottom: 0.8rem;
}
.trial-flow-desc {
  font-size: 0.95rem;
  line-height: 1.6;
  margin: 0;
}
/* 料金 */
.trial-flow-price {
  text-align: center;
  font-size: 1.8rem;
  font-weight: 700;
  margin: 0;
  line-height: 1.4;
}
/* PC版のみ料金をさらに大きく */
@media (min-width: 769px) {
  .trial-flow-price {
    font-size: 2.1rem !important;
  }
}
/* スマホ */
@media (max-width: 768px) {
  .trial-flow {
    padding: 1.5rem 1rem;
  }
  .trial-flow-grid {
    grid-template-columns: 1fr;
  }
  .trial-flow-item {
    padding: 1.2rem;
  }
}
/* アクセスセクション */
.access-section {
  margin-top: 1rem;
  margin-bottom: 3rem;
}
.access-map {
  width: 100%;
  margin-bottom: 1rem;
}
.access-map iframe {
  width: 100%;
  display: block;
  box-shadow: none;
}
.access-info p {
  margin: 0;
  line-height: 2;
}
/* FAQセクション */
.faq-section {
  background-color: #f5f5f5;
  padding: 2rem 1.5rem;
  margin-bottom: 3rem;
}
.faq-title {
  text-align: center;
  border-top: none !important;
  border-bottom: none !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  font-size: 2.1rem;
}
.faq-subtitle {
  text-align: center;
  color: #4a90e2;
  letter-spacing: 1px;
  margin-top: 0;
  margin-bottom: 1.5rem;
}
.faq-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.faq-item {
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 4px;
  overflow: hidden;
}
.faq-question {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 1rem 1.2rem;
  cursor: pointer;
}
.faq-q {
  color: #4a90e2;
  font-weight: 700;
  font-size: 1.2rem;
  flex-shrink: 0;
}
.faq-q-text {
  flex: 1;
  font-size: 1rem;
  line-height: 1.5;
}
.faq-icon {
  color: #999999;
  font-size: 0.8rem;
  flex-shrink: 0;
  transition: transform 0.3s;
}
.faq-open .faq-icon {
  transform: rotate(180deg);
}
.faq-answer {
  display: none;
  padding: 1rem 1.2rem;
  border-top: 1px solid #e0e0e0;
}
.faq-open .faq-answer {
  display: block;
}
.faq-answer p {
  margin-top: 0;
  margin-bottom: 0.8rem;
}
.faq-answer p:last-child {
  margin-bottom: 0;
}
/* お申込みとスクール情報：外枠 */
.school-info-section {
  background-color: #e8f4fb;
  padding: 3rem 2rem;
  margin-top: 3rem;
  margin-bottom: 0;
}
.school-info-title {
  border-top: none !important;
  border-bottom: none !important;
  margin-top: 0 !important;
  margin-bottom: 2rem !important;
}
/* 2カラムグリッド */
.school-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  align-items: start;
}
/* 左カラム */
.school-info-left h4.wp-block-heading {
  background-color: transparent;
  margin-top: 0;
  font-size: 1.1rem;
  text-align: left;
  padding-left: 0;
}
.school-info-address {
  font-size: 0.9rem;
  margin-top: 0.3rem;
  margin-bottom: 1rem;
}
.school-info-map iframe {
  width: 100%;
  display: block;
  box-shadow: none;
}
/* 営業時間テーブル */
.school-hours-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
  margin-bottom: 0.8rem;
}
.school-hours-table th,
.school-hours-table td {
  border-top: 1px solid #cccccc;
  border-bottom: 1px solid #cccccc;
  padding: 6px 4px;
  text-align: center;
}
.school-hours-table th:first-child,
.school-hours-table td:first-child {
  text-align: left;
}
.hours-open {
  color: #4a90e2;
  font-weight: 700;
}
/* 注意書きリスト */
.school-hours-notes,
.school-line-notes {
  font-size: 0.8rem;
  color: #444444;
  padding-left: 1.2rem;
  margin-bottom: 1.2rem;
}
.school-hours-notes li,
.school-line-notes li {
  margin-bottom: 4px;
}
/* ボタンの幅をカラム内いっぱいに */
.school-info-right .wp-block-buttons {
  display: block;
  margin-bottom: 0.8rem;
}
.school-info-right .wp-block-buttons .wp-block-button {
  width: 100%;
}
.school-info-right .wp-block-buttons .wp-block-button .wp-block-button__link {
  width: 100%;
  max-width: 100%;
  font-size: 1.2rem;
  white-space: normal;
}
/* スマホ：1カラム */
@media (max-width: 768px) {
  .school-info-section {
    padding: 2rem 1rem;
  }
  .school-info-title {
    text-align: left;
    font-size: 1.25rem;
  }
  .school-info-grid {
    grid-template-columns: 1fr;
  }
  .school-info-left h4.wp-block-heading {
    padding: 0;
    background-color: transparent;
  }
  .school-info-right {
    overflow-x: hidden;
    width: 100%;
  }
  .school-hours-table {
    width: 100%;
    font-size: 0.75rem;
  }
  .school-hours-table th,
  .school-hours-table td {
    padding: 4px 2px;
  }
  .school-hours-notes,
  .school-line-notes {
    padding-left: 1rem;
    margin-left: 0;
  }
  .school-info-right .wp-block-buttons .wp-block-button .wp-block-button__link {
    white-space: normal;
    width: 100%;
    max-width: 100%;
    font-size: 1rem;
  }
}

/* YouTube動画 */
.video-wrap {
  margin-bottom: 2rem;
}
.video-wrap iframe {
  width: 100%;
  aspect-ratio: 16/9;
  height: auto;
  display: block;
  box-shadow: none;
}

/* ボタン：ピンク（インスタ） */
body .wp-block-buttons .wp-button-insta .wp-block-button__link {
  background-color: #c13584;
  border-color: #c13584;
}

/* リスト：スマホ版の左余白を詰める */
@media (max-width: 768px) {
  .entry-content ul,
  .entry-content ol {
    padding-left: 1rem;
    margin-left: 0;
  }
}

/* リスト背景：共通 */
.list-yellow,
.list-blue,
.list-gray,
.list-red {
  border-radius: 3px;
  margin-bottom: 1.5rem;
  padding: 1rem 1rem 1rem 1.5em;
}

/* スマホ版：インデント最小限 */
@media (max-width: 768px) {
  .list-yellow,
  .list-blue,
  .list-gray,
  .list-red {
    padding: 0.8rem 0.8rem 0.8rem 1.2em;
  }
}

/* 黄色：お知らせ・覚えておいてほしいこと */
.list-yellow {
  background-color: #fff1cc;
}

/* 水色：メリット・うまくいった・プラス */
.list-blue {
  background-color: #e8f4fb;
}

/* グレー：デメリット・注意・ちょっと重い話 */
.list-gray {
  background-color: #eeeeee;
}

/* 赤：絶対NG・重大な失敗・強い警告 */
.list-red {
  background-color: #fde8e8;
  color: #c0392b;
}

/* 通常リスト：PC版 */
@media (min-width: 769px) {
  .entry-content ul,
  .entry-content ol {
    padding-left: 1.5em;
    margin-left: 0;
  }
}

/* h4見出し：黄色背景 */
.wp-block-heading.h4-yellow {
  background-color: #fff1cc;
}

/* h4見出し：グレー背景 */
.wp-block-heading.h4-gray {
  background-color: #eeeeee;
}

/* h4見出し：赤背景 */
.wp-block-heading.h4-red {
  background-color: #fde8e8;
  color: #c0392b;
}

/* pタグ背景色：共通 */
.p-blue,
.p-yellow,
.p-gray,
.p-red {
  padding: 0.8rem 1rem;
  border-radius: 3px;
  margin-bottom: 1rem;
}

/* 水色背景 */
.p-blue {
  background-color: #e8f4fb;
}

/* 黄色背景 */
.p-yellow {
  background-color: #fff1cc;
}

/* グレー背景 */
.p-gray {
  background-color: #eeeeee;
}

/* 赤背景 */
.p-red {
  background-color: #fde8e8;
  color: #c0392b;
}

/* pタグ文字サイズ：H2相当 */
.p-large {
  font-size: 1.8rem;
  font-weight: 700;
}

/* pタグ文字サイズ：H3相当 */
.p-medium {
  font-size: 1.5rem;
  font-weight: 700;
}

/* pタグ文字サイズ：H4相当 */
.p-small {
  font-size: 1.25rem;
  font-weight: 700;
}

/* スマホ版：文字サイズ調整 */
@media (max-width: 768px) {
  .p-large {
    font-size: 1.5rem;
  }
  .p-medium {
    font-size: 1.25rem;
  }
  .p-small {
    font-size: 1.1rem;
  }
}

/* spanタグ背景色：共通 */
.span-blue,
.span-yellow,
.span-gray,
.span-red {
  padding: 0.1em 0.4em;
  border-radius: 3px;
}

/* 水色背景 */
.span-blue {
  background-color: #e8f4fb;
}

/* 黄色背景 */
.span-yellow {
  background-color: #fff1cc;
}

/* グレー背景 */
.span-gray {
  background-color: #eeeeee;
}

/* 赤背景 */
.span-red {
  background-color: #fde8e8;
  color: #c0392b;
}

/* spanタグ文字サイズ：H2相当 */
.span-large {
  font-size: 1.8rem;
  font-weight: 700;
}

/* spanタグ文字サイズ：H3相当 */
.span-medium {
  font-size: 1.5rem;
  font-weight: 700;
}

/* spanタグ文字サイズ：H4相当 */
.span-small {
  font-size: 1.25rem;
  font-weight: 700;
}

/* spanタグ文字サイズ：通常より少し大きい */
.span-xs {
  font-size: 1.1rem;
  font-weight: 700;
}

/* スマホ版：文字サイズ調整 */
@media (max-width: 768px) {
  .span-large {
    font-size: 1.5rem;
  }
  .span-medium {
    font-size: 1.25rem;
  }
  .span-small {
    font-size: 1.1rem;
  }
  .span-xs {
    font-size: 1rem;
  }
}
/* スマホ：旧ページの本文下余白調整のみ残す */
@media (max-width: 768px) {
  .separate-containers .site-main > *,
  .separate-containers .inside-article {
    margin-bottom: 0 !important;
  }
}

/* -----------------------------------
   ページ区切り（ページネーション）の装飾
----------------------------------- */
/* 全体枠のデザイン */
.page-links {
    margin: 40px 0 20px;
    padding: 20px;
    background-color: #f7f9fa; /* 薄いグレーの背景 */
    border: 2px solid #e0e6ed;  /* 枠線 */
    border-radius: 8px;         /* 角丸 */
    text-align: center;
    font-size: 15px;
    font-weight: bold;
    color: #333;
}

/* 上部に「続きがあります」のメッセージを自動挿入 */
.page-links::before {
    content: "＼ この記事には続きのページがあります ／";
    display: block;
    color: #e65100;      /* 目立つオレンジ色 */
    font-size: 16px;
    margin-bottom: 12px;
}

/* 1, 2 などの数字リンクを大きなボタンにする */
.page-links .post-page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    margin: 0 4px;
    padding: 0 12px;
    border-radius: 6px;
    font-size: 16px;
    font-weight: bold;
    text-decoration: none;
    box-sizing: border-box;
}

/* 現在開いているページ（選択中） */
.page-links .post-page-numbers.current {
    background-color: #333333;
    color: #ffffff;
}

/* まだ開いていないページ（クリックできるボタン） */
.page-links a.post-page-numbers {
    background-color: #0073aa; /* ボタンの色（テーマに合わせて変更可） */
    color: #ffffff;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    transition: all 0.2s ease;
}

/* ホバー（マウスをのせたとき）の動き */
.page-links a.post-page-numbers:hover {
    background-color: #005177;
    transform: translateY(-2px);
}

/* 最後のページを開いている時は、ページナビ全体を非表示にする */
.page-links:has(.post-page-numbers:last-child.current) {
    display: none;
}