@charset "UTF-8";
/* =========================================================
SCSS ENTRY
========================================================= */
/* =========================================
   FGKC – Design Tokens (variables)
   ※ base.css から抽出（意味ベースの命名）
   ※ フォークリフト講習向け配色にチューニング済み
========================================= */
/* ---------------------------------
   Core Theme Tokens（ここだけ変えれば全体が変わる）
---------------------------------- */
/* Typography */
/* Brand / Palette (意味ベース) */
/* メイン（ブランド） */
/* 強調・見出し（ダークグレー） */
/* ソフトアクセント/LINE等の補助 */
/* 本文テキスト */
/* 反転（上に重ねる文字など） */
/* 背景系（全体トーンはすっきりしたライトグレー〜ホワイト） */
/* ページ背景系（全体トーン） */
/* セクション内の薄い面 */
/* 代替の淡色サーフェス */
/* 境界線 */
/* 標準ボーダー */
/* 薄いボーダー */
/* リンク */
/* リンク hover（アクセント寄りのオレンジ） */
/* 注意/コールトゥアクション */
/* MV 等のダーク帯 */
/* 状態やUI部品に使う意味ベース */
/* 講習日タグ */
/* 平日（緑） */
/* 週末（視認性の高いブルー） */
/* 週末タグ上の文字色 */
/* 週末列/淡色面 */
/* 月ヘッダ面（淡いイエロー） */
/* Surface 部品（QAなど） */
/* アコーディオン面（薄いイエロー） */
/* 開状態のヘッダ背景 */
/* フォーカスリング */
/* 枠線 */
/* 開状態のヘッダ背景 */
/* 反転（上に重ねる文字など） */
/* CTA 面・ボタン */
/* CTA セクションの薄面（オレンジ系） */
/* 主要ボタン(ダーク) */
/* 主要ボタン hover */
/* 連絡ボタン */
/* 連絡ボタン hover */
/* LINE公式カラー変更しない */
/* 少し暗めのグリーン（hover用） 変更しない*/
/* テーブル */
/* thead 背景/罫線の基準色 */
/* タブ/タブアクティブ */
/* 見出し/セクションタイトル */
/* H2/H3 等の見出し色（ダーク） */
/* ノート/注意書き */
/* 基本色ショートハンド */
/* Layout / Radius / Shadow */
/* 影はやや強めにしてカードの視認性を上げる */
/* Breakpoints */
/* Calendar layout helpers */
/* ================================
   Footer Colors
================================= */
/* ---------------------------------
   Legacy-Compatible Aliases
   （既存SCSSが参照している用途別名 → すべてCoreへエイリアス）
   ※ 既存の部分修正なしでそのまま動作します
---------------------------------- */
/* Brand / Text */
/* ヘッダー/フッター/MV帯等 */
/* Accents (MV 見出しなど) */
/* Section titles etc. */
/* Tables */
/* Accordion (Q&A) */
/* CTA / Common areas */
/* Calendar */
/* Tabs */
/* Notes / Body */
/* Others */
/* =========================================================
SCSS ENTRY
========================================================= */
/* =========================================
   Site specific overrides / additions
   この案件専用の微調整はここに集約。
   - 既存パーツの上書きは “局所的に”
   - 共通化できるものは既存パーツへ昇格検討
========================================= */
/* === Info cards (資格 / スケジュール) === */
.info-card {
  background: #fff;
  border: 1px solid #EEEEEE;
  border-radius: 14px;
  -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
          box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
  padding: clamp(16px, 2.8vw, 28px);
}

.info-card__ttl {
  margin: 0 0 clamp(10px, 1.8vw, 16px);
  font-weight: 800;
  font-size: clamp(18px, 2.6vw, 22px);
  color: #333333;
}

.info-note {
  margin-top: 8px;
  color: #333333;
  opacity: 0.75;
  font-size: clamp(12px, 1.7vw, 14px);
}

/* ===== In-section links (3 panel buttons) ===== */
.section-links {
  /* 既存の d-flex/gap 指定を置き換えるため、displayはこちらで定義 */
  display: grid;
  grid-template-columns: repeat(3, minmax(160px, 1fr));
  gap: clamp(10px, 2vw, 16px);
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  margin: clamp(12px, 2.5vw, 24px) 0 clamp(16px, 3vw, 28px);
}

@media (max-width: 768px) {
  .section-links {
    grid-template-columns: 1fr;
  }
}
.section-link {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  padding: clamp(10px, 2.2vw, 14px) clamp(16px, 3vw, 20px);
  background: #fff;
  color: #333333;
  border: 1px solid #FBC02D;
  border-radius: 999px; /* ピル型 */
  -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
          box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
  text-decoration: none;
  font-weight: 800;
  letter-spacing: 0.02em;
  -webkit-transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, -webkit-transform 0.12s ease;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, -webkit-transform 0.12s ease;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.12s ease;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.12s ease, -webkit-transform 0.12s ease;
  /* うっすらと右方向へ色が流れるアクセント */
  background-image: -webkit-gradient(linear, left top, right top, from(transparent), color-stop(50%, transparent), color-stop(50%, rgba(33, 33, 33, 0.08)), to(rgba(33, 33, 33, 0.08)));
  background-image: -webkit-linear-gradient(left, transparent 0%, transparent 50%, rgba(33, 33, 33, 0.08) 50%, rgba(33, 33, 33, 0.08) 100%);
  background-image: linear-gradient(to right, transparent 0%, transparent 50%, rgba(33, 33, 33, 0.08) 50%, rgba(33, 33, 33, 0.08) 100%);
  background-size: 200% 100%;
  background-position: left;
  font-size: clamp(14px, 2.1vw, 18px);
}

.section-link:hover {
  border-color: #212121;
  color: #212121;
  background-position: right;
}

.section-link:active {
  -webkit-transform: translateY(1px);
          transform: translateY(1px);
}

.section-link:focus-visible {
  outline: 3px solid rgba(33, 33, 33, 0.45);
  outline-offset: 2px;
}

/* 現在位置（いずれかを付与）：aria-current / is-active */
.section-link[aria-current=true],
.section-link.is-active {
  background: #212121;
  color: #fff;
  border-color: #212121;
  -webkit-box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
          box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
  background-image: none;
}

/* =========================================================
SCSS ENTRY
========================================================= */
/* ---------------------------------
   共通レイアウト／ユーティリティ & 雑多（base.css 忠実移植）
---------------------------------- */
/* サイズユーティリティ */
.mw900 {
  max-width: 900px;
}

/* 見出し */
.section-title, h2 {
  color: #212121;
}

/* ノート枠 */
.box-note {
  display: inline-block;
  max-width: 50%;
  width: 100%;
  padding: 1em;
  background-color: #FFF59D;
  border-radius: 6px;
  font-weight: bold;
}

@media (max-width: 768px) {
  .box-note {
    max-width: 95%;
  }
}
/* Map responsive */
.map-responsive {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 56.25%;
  overflow: hidden;
}

.map-responsive iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* Contact area */
.contact-area {
  width: 100%;
  background-color: #FFF3E0 !important;
}

/* CTA 共通 */
.btn-color {
  background-color: #212121;
  border-color: #212121;
  color: #fff;
}
.btn-color:hover {
  background-color: #000000;
  border-color: #000000;
  color: #fff;
}

.cta-buttons {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 16px;
  margin-top: 10px;
  margin-bottom: 72px;
}

@media (min-width: 992px) {
  .cta-buttons {
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -webkit-flex-direction: row;
        -ms-flex-direction: row;
            flex-direction: row;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    gap: 12px;
    padding-inline: 4vw;
    -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
            flex-wrap: nowrap;
  }
  .btn-line, .btn-phone, .btn-form {
    max-width: none;
  }
}
/* CTA 個別 */
.btn-line, .btn-phone, .btn-form {
  text-align: center;
  color: #fff;
  border: none;
  font-size: 1.1rem;
  font-weight: bold;
  border-radius: 12px;
  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
          box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2);
  -webkit-transition: all 0.2s ease;
  transition: all 0.2s ease;
  -webkit-transform: translateY(0);
          transform: translateY(0);
  height: 60px;
  width: 220px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  line-height: 60px;
  background-color: #06C755;
}
.btn-line:hover, .btn-phone:hover, .btn-form:hover {
  background-color: #05B64C;
  color: #fff;
  -webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
          box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
  -webkit-transform: translateY(2px);
          transform: translateY(2px);
}

/* ナビ内ボタン（ヘッダー内で利用） */
.btn-line.btn-sm, .btn-phone.btn-sm, .btn-form.btn-sm {
  font-size: 0.9rem;
  width: 100px;
  min-width: 100px;
  max-width: 100px;
  height: 56px;
  padding-top: 0;
  padding-bottom: 0;
}

.navbar-nav .btn {
  padding: 0;
  width: 100%;
  margin-bottom: 10px;
  font-size: 1rem;
  text-align: center;
  height: 56px;
  line-height: 1;
}

.navbar-nav .nav-item.d-flex {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
  margin: 0 auto 10px;
  gap: 0;
  padding-inline: 0;
}

/* 共通ユーティリティ */
html {
  scroll-behavior: smooth;
}

section[id] {
  scroll-margin-top: 80px;
}

html, body {
  width: 100%;
  overflow-x: hidden;
  font-family: "Noto Sans JP", sans-serif;
  color: #333333;
}

body {
  background-color: #FAFAFA;
  overflow-x: hidden;
}

.cover {
  background-color: rgba(0, 0, 0, 0.5);
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* bootstrap のボタンに追記 */
.btn {
  text-align: center;
  padding-left: 1.7em;
  padding-right: 1.7em;
}

/* 個別問い合わせボタン */
.btn-contact {
  background-color: #FF6F00;
  color: #fff;
}
.btn-contact:hover {
  background-color: #E65100;
}

/* ul リセット（base.css 準拠） */
ul {
  list-style: none;
  padding-left: 0;
}

/* =========================================================
SCSS ENTRY
========================================================= */
/* ---------------------------------
   Header / Navbar
---------------------------------- */
/* ---------------------------------
   ナビ全体をメインビジュアルの幅に合わせる
---------------------------------- */
.header-container {
  max-width: 1800px;
  margin: 0 auto;
  width: 100%;
  padding-left: 2rem;
  padding-right: 2rem;
}

.navbar {
  background-color: #FDF9F3 !important;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  font-weight: bold;
}

.navbar .navbar-nav .nav-link {
  height: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 8px 16px;
}

.navbar .btn {
  height: 100%;
}

.nav-link, .navbar-brand {
  color: #333333 !important;
}

/* hover */
.navbar-nav a:hover {
  color: #F57C00;
  text-decoration: underline;
  -webkit-transition: all 0.2s ease;
  transition: all 0.2s ease;
}

.navbar-logo {
  width: 100px;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}

/* ロゴPC表示（例：幅768px以上） */
@media (min-width: 768px) {
  .navbar-logo {
    width: 150px; /* ← PCで大きくしたいサイズに変更 */
    max-width: none;
  }
}
/* SP メニュー幅調整 */
@media (max-width: 991.98px) {
  .btn-line, .btn-phone, .btn-form {
    width: 280px;
  }
  .navbar-nav .nav-item.d-flex {
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .navbar-nav .btn {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 auto;
        -ms-flex: 1 1 auto;
            flex: 1 1 auto;
    width: auto;
    margin: 0 4px;
    font-size: 1rem;
    padding: 0.7rem 0.9rem;
    white-space: nowrap;
  }
}
/* ハンバーガー線色（データURI内は直接色値を埋め込み） */
.navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath stroke='%233E2723' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}

/* =========================================
   スマホ時のロゴ＆ハンバーガー位置調整
========================================= */
@media (max-width: 768px) {
  :root {
    /* notch対応の安全域＋基本余白 */
    --safe-l: env(safe-area-inset-left, 0px);
    --safe-r: env(safe-area-inset-right, 0px);
    --header-pad: 16px;
  }
  header.site-header,
  .navbar,
  .header {
    padding-inline: calc(var(--header-pad) + var(--safe-l)) calc(var(--header-pad) + var(--safe-r)) !important;
  }
  /* containerが余白を打ち消している場合に備えて */
  .header .container,
  .navbar .container {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
/* ハンバーガーアイコン */
.header .nav-toggle,
.header .hamburger,
.navbar-toggler {
  margin-right: 0;
  width: 44px;
  height: 44px;
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 0;
}

/* 両者の間隔をしっかり確保 */
.header .inner,
.navbar .inner,
.header .row {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 16px;
}

/* =========================================================
SCSS ENTRY
========================================================= */
/* ---------------------------------
   Main Visual（画像のみ表示）
---------------------------------- */
.mainvisual {
  width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: transparent;
}
.mainvisual .image-wrapper {
  width: 100%;
  margin: 0;
  padding: 0;
  line-height: 0;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.mainvisual .main-image {
  display: block;
  width: 100%;
  height: auto;
  max-width: 2400px;
  margin: 0 auto;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  border: none;
  vertical-align: bottom;
}

/* ▼ 画像直下の黄色帯（次セクションの上パディング）を打ち消し */
header + main > section:first-of-type {
  margin-top: 0 !important;
  padding-top: 0 !important;
  background: #fff;
}

/* ▼ PC表示時に高さ制御したい場合（任意） */
@media (min-width: 992px) {
  .mainvisual .main-image {
    max-height: 80vh;
  }
}
/* =========================================================
SCSS ENTRY
========================================================= */
.guide-info h3 {
  font-weight: 700;
  font-size: clamp(18px, 2.2vw, 20px);
  color: #333333;
  margin: clamp(28px, 4vw, 36px) 0 clamp(12px, 2vw, 16px);
  padding-left: 0.75rem;
  position: relative;
  /* 左に細いライン */
}
.guide-info h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: #212121;
  border-radius: 2px;
}
.guide-info h3:first-of-type {
  margin-top: 0;
}
.guide-info p, .guide-info li {
  font-size: clamp(15px, 1.9vw, 16px);
  line-height: 1.9;
  color: #333333;
}
.guide-info ol {
  list-style: disc outside;
  margin: 0 0 clamp(18px, 2vw, 20px);
  padding-left: 1.5rem;
}
.guide-info ol > li {
  margin: 0.35rem 0;
}

/* =========================================================
SCSS ENTRY
========================================================= */
/* 余計な左レールを完全無効化（もし残っていた場合） */
.timeline::before {
  content: none !important;
}

/* タイムライン コンテナ */
.timeline {
  max-width: 960px;
  margin: 0 auto;
  padding-left: 0; /* ← 左余白を消す */
}

/* =========================================================
   1 STEP
   - Grid で「左：数字」「右：見出し＆本文」を構成
   - 数字と見出しは row1 で中央揃え
   - 縦レールは ::before で背面に通す
========================================================= */
.step {
  /* 丸の直径を見出しに合わせて調整 */
  --dot: 40px;
  position: relative;
  display: grid;
  grid-template-columns: var(--dot) 1fr; /* 左：丸、右：内容 */
  grid-template-rows: auto auto; /* 1段目=見出し, 2段目=本文 */
  -webkit-column-gap: clamp(12px, 2vw, 20px);
     -moz-column-gap: clamp(12px, 2vw, 20px);
          column-gap: clamp(12px, 2vw, 20px);
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; /* 数字と見出しの高さ中央を揃える */
  margin: clamp(28px, 4vw, 48px) 0;
  color: #333333;
}

/* 背面の縦レール（数字の中心を通す） */
.step::before {
  content: "";
  position: absolute;
  left: calc(var(--dot) / 2);
  top: -20px;
  bottom: -20px;
  width: 2px;
  background: #E0E0E0;
  z-index: 0;
}

/* 切れ目調整 */
.step:first-child::before {
  top: calc(var(--dot) / 2);
}

.step:last-child::before {
  bottom: calc(var(--dot) / 2);
}

/* 数字の丸 */
.step-num {
  grid-column: 1;
  grid-row: 1;
  width: var(--dot);
  height: var(--dot);
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #FBC02D;
  color: #fff;
  font-weight: 600;
  font-size: clamp(14px, 1.2vw, 16px);
  line-height: 1;
  z-index: 1;
}

/* 見出し */
.step-head {
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  font-weight: 800;
  font-size: clamp(18px, 1.9vw, 22px); /* 丸の高さとほぼ揃うように */
  line-height: 1.2;
}

/* 本文 */
.step-body {
  grid-column: 2;
  grid-row: 2;
  margin-top: 6px;
}

.step-body p {
  margin: 0 0 0.6em;
}

/* ===== スマホ ===== */
@media (max-width: 768px) {
  .step {
    --dot: 32px; /* スマホでさらに小さめ */
    -webkit-column-gap: 12px;
       -moz-column-gap: 12px;
            column-gap: 12px;
    margin: 24px 0 36px;
  }
  .step::before {
    top: -10px;
    bottom: -10px;
  }
  .step-head {
    font-size: clamp(16px, 4.5vw, 18px);
  }
}
/* =========================================================
   Flow Accordion (details.flow-acc)
   - タイトルは押しやすいボタン風
   - 開閉状態で色と矢印が変化
   - 本文は読みやすい余白と行間
========================================================= */
.flow-acc {
  border: 1px solid #EEEEEE;
  background: #F5F5F5;
  border-radius: 12px;
  -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
          box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
  margin: clamp(10px, 1.6vw, 14px) 0;
  overflow: hidden;
  /* タイトル行 */
  /* 開いているときの見出し */
  /* 本文 */
}
.flow-acc > summary {
  position: relative;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.6em;
  width: 100%;
  padding: clamp(10px, 1.8vw, 14px) clamp(12px, 2.2vw, 18px);
  font-weight: 800;
  font-size: clamp(15px, 1.7vw, 16.5px);
  color: #333333;
  background: #fff;
  border-bottom: 1px solid #EEEEEE;
  cursor: pointer;
  list-style: none; /* Firefox */
  outline: none;
  /* 既定のマーカー消し（Safari/Chrome） */
  /* 矢印アイコン */
  /* キーボードフォーカス */
}
.flow-acc > summary::-webkit-details-marker {
  display: none;
}
.flow-acc > summary::after {
  content: "";
  margin-left: auto;
  width: 0.85em;
  height: 0.85em;
  border-right: 2px solid #212121;
  border-bottom: 2px solid #212121;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
  -webkit-transition: -webkit-transform 0.18s ease;
  transition: -webkit-transform 0.18s ease;
  transition: transform 0.18s ease;
  transition: transform 0.18s ease, -webkit-transform 0.18s ease;
}
.flow-acc > summary:focus-visible {
  outline: 3px solid rgba(33, 33, 33, 0.35);
  outline-offset: 2px;
}
.flow-acc[open] > summary {
  background: #FFF3E0;
  border-bottom-color: transparent;
}
.flow-acc[open] > summary::after {
  -webkit-transform: rotate(135deg);
          transform: rotate(135deg); /* 上向き */
}
.flow-acc .flow-acc__body {
  padding: clamp(12px, 2vw, 16px) clamp(14px, 2.4vw, 20px) clamp(14px, 2.6vw, 22px);
  background: #fff;
  color: #333333;
  font-size: clamp(14px, 1.6vw, 16px);
  line-height: 1.75;
}
.flow-acc .flow-acc__body p {
  margin: 0 0 0.8em;
}
.flow-acc .flow-acc__body ol, .flow-acc .flow-acc__body ul {
  margin: 0 0 0.8em 1.2em;
}
.flow-acc .flow-acc__body li {
  margin: 0.25em 0;
}
.flow-acc .flow-acc__body .small {
  font-size: 90%;
  opacity: 0.85;
}

.step-body ul {
  list-style: disc; /* 黒丸 */
  padding-left: 1.5rem; /* 左に余白を確保 */
  margin-top: 0.5rem; /* 適度な余白 */
}

/* スマホ：見出しのパディングを少し詰める */
@media (max-width: 768px) {
  .flow-acc > summary {
    padding: 10px 14px;
  }
  .flow-acc .flow-acc__body {
    padding: 12px 14px 14px;
  }
}
/* =========================================================
SCSS ENTRY
========================================================= */
/* ===== In-section links (3 panel buttons) ===== */
.section-links {
  /* 既存の d-flex/gap 指定を置き換えるため、displayはこちらで定義 */
  display: grid;
  grid-template-columns: repeat(3, minmax(160px, 1fr));
  gap: clamp(10px, 2vw, 16px);
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: stretch;
  -webkit-align-items: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  margin: clamp(12px, 2.5vw, 24px) 0 clamp(16px, 3vw, 28px);
}

@media (max-width: 768px) {
  .section-links {
    grid-template-columns: 1fr;
  }
}
.section-link {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  padding: clamp(10px, 2.2vw, 14px) clamp(16px, 3vw, 20px);
  background: #fff;
  color: #333333;
  border: 1px solid #FBC02D;
  border-radius: 999px; /* ピル型 */
  -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
          box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
  text-decoration: none;
  font-weight: 800;
  letter-spacing: 0.02em;
  -webkit-transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, -webkit-transform 0.12s ease;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, -webkit-transform 0.12s ease;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.12s ease;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.12s ease, -webkit-transform 0.12s ease;
  /* うっすらと右方向へ色が流れるアクセント */
  background-image: -webkit-gradient(linear, left top, right top, from(transparent), color-stop(50%, transparent), color-stop(50%, rgba(33, 33, 33, 0.08)), to(rgba(33, 33, 33, 0.08)));
  background-image: -webkit-linear-gradient(left, transparent 0%, transparent 50%, rgba(33, 33, 33, 0.08) 50%, rgba(33, 33, 33, 0.08) 100%);
  background-image: linear-gradient(to right, transparent 0%, transparent 50%, rgba(33, 33, 33, 0.08) 50%, rgba(33, 33, 33, 0.08) 100%);
  background-size: 200% 100%;
  background-position: left;
  font-size: clamp(14px, 2.1vw, 18px);
}

.section-link:hover {
  border-color: #212121;
  color: #212121;
  background-position: right;
}

.section-link:active {
  -webkit-transform: translateY(1px);
          transform: translateY(1px);
}

.section-link:focus-visible {
  outline: 3px solid rgba(33, 33, 33, 0.45);
  outline-offset: 2px;
}

/* 現在位置（いずれかを付与）：aria-current / is-active */
.section-link[aria-current=true],
.section-link.is-active {
  background: #212121;
  color: #fff;
  border-color: #212121;
  -webkit-box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
          box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
  background-image: none;
}

/* =========================================================
SCSS ENTRY
========================================================= */
/* === Timeline（右カード） === */
.timeline {
  list-style: none;
  margin: 0 0 clamp(12px, 2vw, 16px);
  padding: 0 0 0 14px; /* 左の軸ぶん余白 */
  position: relative;
}
.timeline::before {
  content: "";
  position: absolute;
  left: 6px;
  top: 4px;
  bottom: 4px;
  width: 2px;
  background: rgba(0, 0, 0, 0.08);
  border-radius: 2px;
}

.timeline__item {
  position: relative;
  padding: 10px 0 12px;
}
.timeline__item::before {
  content: "";
  position: absolute;
  left: -2px; /* 軸の中心と丸を合わせる */
  top: 16px;
  width: 8px;
  height: 8px;
  background: #FBC02D;
  border: 2px solid #FBC02D;
  border-radius: 50%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.timeline__item:last-child {
  padding-bottom: 0;
}

.timeline__day {
  margin-bottom: 6px;
}
.timeline__day .badge {
  display: inline-block;
  background: #FFF9C4;
  color: #212121;
  border: 1px solid #FBC02D;
  padding: 2px 8px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 12px;
}

.timeline__body {
  display: grid;
  gap: 4px 12px;
  grid-template-columns: minmax(7em, 9em) 1fr;
  -webkit-box-align: baseline;
  -webkit-align-items: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
}
@media (max-width: 576px) {
  .timeline__body {
    grid-template-columns: 1fr; /* モバイルで縦並び */
  }
}

.timeline__time {
  font-weight: 700;
  color: #333333;
}

.timeline__desc {
  color: #333333;
  opacity: 0.9;
}

/* =========================================================
SCSS ENTRY
========================================================= */
/* ---------------------------------
   Price / Tables
---------------------------------- */
table {
  width: 100%;
  border-collapse: collapse;
  color: #333333 !important;
  font-size: 1.05rem;
  line-height: 1.7;
}

th, td {
  border: 1px solid #CCCCCC;
  line-height: 1.8;
  padding: 16px;
}

th {
  background-color: #424242 !important;
  color: #fff;
  text-align: center;
  vertical-align: middle;
  padding-top: 16px;
  padding-bottom: 16px;
  padding-left: 16px;
  padding-right: 16px;
}

/* サービス概要テーブル専用 */
.welfare-table td {
  display: table-cell !important;
  vertical-align: middle !important;
  text-align: center !important;
  padding: 12px !important;
  height: auto !important;
}

/* ラップ支援 */
.td-flex {
  display: block;
  text-align: left;
}

.td-center {
  display: block;
  margin-top: auto;
  margin-bottom: auto;
  padding-top: 0.5em;
  padding-bottom: 0.5em;
}

.td-center ul {
  list-style-type: disc;
  padding-left: 1.5em;
  margin-top: 0;
  margin-bottom: 0;
}

.td-center li + li {
  margin-top: 0.5em;
}

tr:nth-child(even) td {
  background-color: #F5F5F5;
}

tr:nth-child(odd) td {
  background-color: #FFFFFF;
}

/* =========================================================
SCSS ENTRY
========================================================= */
/* ===============================
   料金カード
   =============================== */
.fee-card {
  background: #fff;
  border-radius: 12px;
  -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
          box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
  padding: 24px;
  margin: 24px 0;
}

/* 見出し */
.fee-course-title {
  font-size: 1.6rem;
  font-weight: 700;
  margin-bottom: 1em;
}

/* 各行（項目ラベル＋金額） */
.fee-row {
  display: grid;
  grid-template-columns: 1fr auto;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid #eee;
}

.fee-row:last-child {
  border-bottom: none;
}

.fee-row dt {
  font-weight: 600;
  color: #422;
}

.fee-row dd {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: 0 0.6em;
  -webkit-box-pack: end;
  -webkit-justify-content: flex-end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; /* ← 中央揃え */
  font-variant-numeric: tabular-nums;
}

.fee-value {
  font-size: 1.2rem;
  font-weight: 700;
}

.fee-note {
  font-size: 0.9rem;
  color: #666;
  opacity: 0.8;
}

/* 合計帯 */
.fee-total {
  display: grid;
  grid-template-columns: auto 1fr auto; /* 左ラベル・余白・右カラム */
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  background: #FFF9C4;
  border-radius: 8px;
  padding: 14px 16px;
  font-weight: 700;
  margin-top: 16px;
}

.fee-total__label {
  color: #212121;
  font-weight: 700;
  justify-self: start;
}

.fee-total__right {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column; /* ← 縦に並べる */
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
      -ms-flex-align: end;
          align-items: flex-end; /* ← 右端に揃える */
}

.fee-total__value {
  color: #212121;
  font-size: 1.4rem;
  font-weight: 800;
}

.fee-total__tax {
  color: #212121;
  font-size: 0.9rem;
  opacity: 0.85;
}

/* ===============================
   スマホ調整
   =============================== */
@media (max-width: 576px) {
  .fee-row {
    grid-template-columns: 1fr auto; /* ラベル左 / 金額右 */
    gap: 10px 12px;
    padding: 10px 0;
  }
  .fee-row dt {
    -webkit-align-self: center;
        -ms-flex-item-align: center;
            align-self: center;
    white-space: nowrap;
  }
  .fee-row dd {
    -webkit-box-pack: end;
    -webkit-justify-content: flex-end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    -webkit-box-align: center;
    -webkit-align-items: center;
        -ms-flex-align: center;
            align-items: center; /* 税込と税抜を縦中央揃え */
  }
  .fee-value {
    font-size: clamp(18px, 5vw, 22px);
    font-weight: 800;
  }
  .fee-note {
    font-size: clamp(12px, 3.6vw, 14px);
    opacity: 0.75;
  }
  .fee-total {
    grid-template-columns: auto 1fr auto;
    row-gap: 0;
  }
  .fee-total__label {
    justify-self: start;
  }
  .fee-total__value {
    justify-self: end;
    text-align: right;
  }
  .fee-total__tax {
    justify-self: end;
  }
}
/* =========================================================
SCSS ENTRY
========================================================= */
/* =========================================
   Q&A アコーディオン（洗練カード風）
   - Bootstrap 構造はそのまま
   - すべて変数ベースで統一（色は variables 由来）
========================================= */
.qa-accordion {
  /* 見出しボタン（折りたたみのトグル行） */
  /* 本文 */
  /* 角が二重に見えないように */
}
.qa-accordion .accordion-item {
  border: none;
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
          box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
  margin-bottom: clamp(10px, 1.8vw, 16px);
  -webkit-transition: -webkit-transform 0.18s ease, -webkit-box-shadow 0.18s ease;
  transition: -webkit-transform 0.18s ease, -webkit-box-shadow 0.18s ease;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
  transition: transform 0.18s ease, box-shadow 0.18s ease, -webkit-transform 0.18s ease, -webkit-box-shadow 0.18s ease;
}
.qa-accordion .accordion-item:hover {
  -webkit-transform: translateY(-1px);
          transform: translateY(-1px);
  -webkit-box-shadow: 0 6px 18px rgba(0, 0, 0, 0.1);
          box-shadow: 0 6px 18px rgba(0, 0, 0, 0.1);
}
.qa-accordion .accordion-button {
  background: #FFF9C4; /* ← 薄いイエロー */
  color: #212121; /* ← ダーク（見出し色） */
  font-weight: 800;
  font-size: clamp(15px, 1.6vw, 18px);
  padding: clamp(12px, 1.8vw, 16px) clamp(14px, 2.4vw, 20px);
  line-height: 1.45;
  border: none;
  -webkit-box-shadow: none;
          box-shadow: none;
  /* アイコンは currentColor を使う（文字色と同期） */
  /* hoverで少しだけ明るく（ベースの淡色を白に寄せる） */
  /* 展開時（開いているとき） */
}
.qa-accordion .accordion-button::after {
  -webkit-filter: none;
          filter: none;
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='currentColor'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 1 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/></svg>");
}
.qa-accordion .accordion-button:hover {
  background: rgb(255, 249.9, 204.85);
}
.qa-accordion .accordion-button:not(.collapsed) {
  background: #FBC02D; /* ← ブランド・イエロー */
  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.06);
          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.06);
  /* アイコンも文字色に追従（=白） */
}
.qa-accordion .accordion-button:not(.collapsed)::after {
  -webkit-transform: rotate(-180deg) scale(1.1);
          transform: rotate(-180deg) scale(1.1);
}
.qa-accordion .accordion-body {
  background: #FFFFFF; /* = 白 */
  color: #333333; /* 本文色 */
  font-size: clamp(14px, 1.45vw, 16px);
  line-height: 1.75;
  padding: clamp(14px, 2.2vw, 20px) clamp(16px, 2.6vw, 24px);
}
.qa-accordion .accordion-body p {
  margin: 0 0 0.8em;
}
.qa-accordion .accordion-body ul {
  margin: 0.2em 0 0 1.2em;
  padding: 0;
  list-style: disc;
}
.qa-accordion .accordion-button:focus {
  border-color: transparent;
  -webkit-box-shadow: 0 0 0 3px rgba(251, 192, 45, 0.25);
          box-shadow: 0 0 0 3px rgba(251, 192, 45, 0.25);
}

/* セクション見出し */
#qa > .container > h2 {
  color: #212121; /* ダーク見出し */
  letter-spacing: 0.02em;
}

/* =========================================================
SCSS ENTRY
========================================================= */
/* ================================
   CTA セクション
================================ */
.cta-band {
  background: #FFF3E0;
  padding: clamp(28px, 5vw, 64px) 0;
}

.cta p {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.8;
  color: #333333;
  letter-spacing: 0.03em;
}

.cta-actions {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: clamp(12px, 2vw, 20px);
}

/* --- 共通ボタン -------------------- */
.btn-line,
.btn-contact {
  /* 横幅は「以前の指定」に戻す */
  width: 100%;
  max-width: 360px;
  min-width: clamp(260px, 32vw, 360px);
  /* 縦幅は統一 */
  min-height: 56px;
  padding: 0 1.5rem;
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-size: clamp(16px, 1.15vw, 18px);
  line-height: 1.2;
  border: none;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  -webkit-box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
          box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
  -webkit-transition: background-color 0.15s ease, -webkit-transform 0.12s ease, -webkit-box-shadow 0.12s ease;
  transition: background-color 0.15s ease, -webkit-transform 0.12s ease, -webkit-box-shadow 0.12s ease;
  transition: transform 0.12s ease, box-shadow 0.12s ease, background-color 0.15s ease;
  transition: transform 0.12s ease, box-shadow 0.12s ease, background-color 0.15s ease, -webkit-transform 0.12s ease, -webkit-box-shadow 0.12s ease;
}
.btn-line:hover,
.btn-contact:hover {
  -webkit-transform: translateY(-1px);
          transform: translateY(-1px);
  -webkit-box-shadow: 0 10px 28px rgba(0, 0, 0, 0.12);
          box-shadow: 0 10px 28px rgba(0, 0, 0, 0.12);
}
.btn-line:focus-visible,
.btn-contact:focus-visible {
  outline: 3px solid rgba(0, 0, 0, 0.18);
  outline-offset: 2px;
}

/* --- LINE -------------------- */
.btn-line {
  background: #06C755;
  color: #FFFFFF;
}
.btn-line:hover {
  background: #05B64C;
}

/* --- 電話 -------------------- */
.btn-contact {
  background: #FF6F00;
  color: #FFFFFF;
}
.btn-contact:hover {
  background: #E65100;
}

/* =========================================================
SCSS ENTRY
========================================================= */
/* ================================
   Footer (site-footer) 改善版
================================= */
footer.site-footer {
  background: #333333;
  color: #fff;
  padding-block: clamp(28px, 5vw, 56px);
  /* 文字色の継承 */
  /* 見出し（左・中央・右カラム） */
  /* 本文テキスト */
  /* リンク色 */
  /* 区切り線（コピーライト上のみ残す・軽めに） */
  /* 地図ラッパ */
  /* コピーライト行 */
}
footer.site-footer * {
  color: inherit;
}
footer.site-footer .footer-title {
  margin: 0 0 0.5rem;
  font-weight: 800;
  font-size: 1.125rem; /* 強調度アップ */
  line-height: 1.25;
  color: #fff;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15); /* 線はここだけ */
  padding-bottom: 0.5rem;
}
footer.site-footer .footer-text,
footer.site-footer address,
footer.site-footer dl,
footer.site-footer dd,
footer.site-footer dt,
footer.site-footer p,
footer.site-footer li {
  color: #fff;
  font-size: 0.95rem;
}
footer.site-footer a,
footer.site-footer .nav-link {
  color: #fff !important;
  text-decoration: none;
}
footer.site-footer a:hover, footer.site-footer a:focus,
footer.site-footer .nav-link:hover,
footer.site-footer .nav-link:focus {
  color: #f5c542 !important;
  text-decoration: underline;
}
footer.site-footer .footer-separator {
  border: 0;
  height: 1px;
  background: rgba(255, 255, 255, 0.08); /* 透過度UPで軽く */
  margin: clamp(16px, 2vw, 24px) 0;
}
footer.site-footer .footer-map {
  border-radius: 12px;
  overflow: hidden;
  -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
          box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
  aspect-ratio: 16/9;
  max-width: 100%;
}
footer.site-footer .footer-map iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}
footer.site-footer .footer-copy {
  font-size: clamp(12px, 1.2vw, 14px);
  color: #fff;
  opacity: 0.85; /* 少し軽め */
}

/* =========================================================
SCSS ENTRY
========================================================= */
/* ================================
   講習日程カレンダー（本体＋右側タブ）
================================ */
/* ---- 月カード ---- */
#scheduleGrid .month-card {
  border: 1px solid #E0E0E0;
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
  -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
          box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}

#scheduleGrid .month-head {
  background: #FFF8E1;
  padding: 10px 16px;
  border-bottom: 1px solid #EEEEEE;
  overflow: visible;
}

#scheduleGrid .month-name {
  font-weight: 700;
  color: #5d4037;
}

/* 月ヘッダ内の小凡例 */
#scheduleGrid .month-head .small {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 8px;
  padding: 7px 0 0 5px;
  -webkit-flex-wrap: nowrap;
      -ms-flex-wrap: nowrap;
          flex-wrap: nowrap;
  white-space: nowrap;
  max-width: 100%;
  font-size: clamp(11px, 0.95vw, 14px);
  line-height: 1.2;
}

#scheduleGrid .month-head .small > span {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 2px;
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}

#scheduleGrid .month-head .small > span > span {
  width: clamp(8px, 0.7vw, 10px);
  height: clamp(8px, 0.7vw, 10px);
  border-radius: 3px;
}

@media (max-width: 576px) {
  #scheduleGrid .month-head .small {
    -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
            flex-wrap: wrap;
    row-gap: 4px;
    font-size: 13px;
  }
}
/* ---- カレンダーグリッド ---- */
#scheduleGrid .cal-grid {
  --cell-h: 62px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  grid-auto-rows: minmax(var(--cell-h), auto);
  gap: 2px;
  padding: 8px 16px;
  margin: 0;
  justify-items: stretch;
}

#scheduleGrid .cal-grid > * {
  min-width: 0;
}

#scheduleGrid .cal-cell {
  background: #fffff8;
  position: relative;
  padding: 6px;
  border-radius: 6px;
  overflow: visible;
}

#scheduleGrid .cal-wk {
  background: #FFF9C4;
  font-weight: bold;
  text-align: center;
  color: #333333;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
}

#scheduleGrid .cal-empty {
  background: transparent;
}

#scheduleGrid .cal-cell .date {
  font-size: 0.95rem;
  font-weight: 600;
  color: #333333;
}

/* 週末列の淡色（日曜・土曜） */
#scheduleGrid .cal-grid > .cal-cell:nth-child(7n),
#scheduleGrid .cal-grid > .cal-cell:nth-child(7n+1) {
  background: #F9F9F9;
}

/* 同日複数行 */
#scheduleGrid .cal-cell .ev {
  margin-top: 4px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 4px;
}

/* ピル */
#scheduleGrid .tag {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.1;
  white-space: nowrap;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: middle;
}

#scheduleGrid .tag-lect {
  background: #FBC02D;
  color: #333333;
  -webkit-box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.45);
          box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.45);
}

#scheduleGrid .tag-prac-w {
  background: #8BC34A;
  color: #fff;
}

#scheduleGrid .tag-prac-we {
  background: #0288D1;
  color: #FFFFFF;
}

/* SP */
@media (max-width: 576px) {
  #scheduleGrid .cal-grid {
    --cell-h: 56px;
  }
  #scheduleGrid .cal-cell {
    padding: 4px;
  }
  #scheduleGrid .tag {
    font-size: 0.72rem;
    padding: 2px 6px;
  }
}
/* PC */
@media (min-width: 992px) {
  #scheduleGrid .col-lg-3 {
    -webkit-box-flex: 0 !important;
    -webkit-flex: 0 0 50% !important;
        -ms-flex: 0 0 50% !important;
            flex: 0 0 50% !important;
    max-width: 50% !important;
  }
  #scheduleGrid .cal-grid {
    --cell-h: 72px;
    grid-auto-rows: minmax(var(--cell-h), auto);
  }
  #scheduleGrid .cal-empty {
    background: transparent !important;
    visibility: hidden;
    pointer-events: none;
  }
}
/* 見出し下の凡例 */
#schedule .legend-wrap {
  text-align: center;
}

#schedule .legend-wrap .legend-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: -webkit-inline-box !important;
  display: -webkit-inline-flex !important;
  display: -ms-inline-flexbox !important;
  display: inline-flex !important;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  -webkit-box-pack: start !important;
  -webkit-justify-content: flex-start !important;
      -ms-flex-pack: start !important;
          justify-content: flex-start !important;
  gap: 1.2rem;
  text-align: left;
}

#schedule .legend-wrap .legend-list li {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem;
  font-size: 0.95rem;
  white-space: nowrap;
}

#schedule .legend-wrap .legend-list li > span {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 3px;
}

/* 月タブ */
.monthtabs {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  gap: 0.5rem;
  border-bottom: 1px solid #eee;
  padding: 6px 0 8px;
  margin-bottom: 0.25rem;
  overflow-x: auto;
}

.monthtab {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  background: #eeeeee;
  color: #333333;
  border-radius: 999px;
  padding: 6px 12px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}

.monthtab.is-active {
  background: #FFF9E1;
}

/* 右側タブ */
.kc-tabcard {
  background: #fff;
  border: 1px solid #e6e6e6;
  border-radius: 14px;
  -webkit-box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
          box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
  padding: 12px;
}

.kc-tabheader {
  border-bottom: 1px solid #eee;
  padding: 6px 0 8px;
}

.kc-tabs {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  gap: 8px;
  margin: 0 0 6px 0;
  padding: 6px 0;
  border-bottom: 0;
}

.kc-tab {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  background: #eeeeee;
  color: #333333;
  border-radius: 999px;
  padding: 6px 12px;
  font-weight: 700;
  cursor: pointer;
}

.kc-tab.is-active {
  background: #FFF9E1;
}

.kc-tabnote {
  font-size: 0.85rem;
  color: #666;
  margin: 0;
}

.kc-panel {
  display: none;
  padding: 12px;
}

.kc-panel.is-active {
  display: block;
}

.kc-legend {
  font-size: 0.95rem;
  color: #555;
}

.kc-dot {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 3px;
  margin-right: 6px;
  vertical-align: -2px;
}

.kc-dot-wd {
  background: #8BC34A;
}

.kc-dot-we {
  background: #0288D1;
}

.kc-dot-lect {
  background: #FBC02D;
}

.kc-h4 {
  font-size: 1rem;
  margin: 0.25rem 0 0.5rem 0;
  font-weight: 700;
  color: #333333;
}

.kc-run {
  background: #fafafa;
  border: 1px solid #eee;
  border-radius: 10px;
  padding: 10px 12px;
  margin-top: 10px;
}

.kc-runhead {
  font-weight: 800;
  margin-bottom: 6px;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5rem;
}

.kc-steps {
  margin: 0;
  list-style: none;
  padding-left: 0;
}

.kc-steps li {
  margin: 0.35em 0;
}

.kc-badge {
  display: inline-block;
  font-weight: 700;
  border-radius: 999px;
  padding: 2px 8px;
  font-size: 0.78rem;
  line-height: 1.2;
  margin-right: 6px;
}

.kc-badge.kc-wd {
  background: #8BC34A;
  color: #fff;
}

.kc-badge.kc-we {
  background: #0288D1;
  color: #FFFFFF;
}

.kc-badge.kc-lect {
  background: #FBC02D;
  color: #333333;
}

/* 受付終了の強調（重複排除済み：1箇所だけ） */
.kc-badge.kc-closed {
  background: #ef5350;
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.02em;
  padding: 0.2rem 0.6rem;
  border-radius: 9999px;
  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
          box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
  margin-left: 0.5rem;
}

#scheduleGrid .ev.is-closed .tag,
#scheduleGrid .tag.is-closed {
  text-decoration: line-through !important;
  opacity: 0.55;
}

/* 右側リストの日時バッジ群 */
.kc-dates {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-wrap: wrap;
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: 0.4rem 0.6rem;
}

.kc-list {
  margin: 0.25rem 0 0.5rem 0;
  padding-left: 1.2em;
}

.kc-note {
  font-size: 0.9rem;
  color: #666;
  margin-top: 0.5rem;
}

/* 位置ズレの最終オーバーライド（SP） */
#scheduleGrid {
  text-align: initial;
}

#scheduleGrid .month-head,
#scheduleGrid .cal-grid {
  padding-inline: 16px !important;
}

@media (max-width: 576px) {
  #scheduleGrid .month-card {
    max-width: 600px;
    margin-inline: auto;
  }
  #scheduleGrid .month-head,
  #scheduleGrid .cal-grid {
    padding-inline: 14px !important;
  }
  #scheduleGrid {
    --bs-gutter-x: 0;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  #scheduleGrid > [class*=col-] {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}
/* PCでは下のタブ非表示、上だけ表示 */
.monthtabs-bottom {
  display: none;
}

@media (max-width: 991.98px) {
  /* スマホでは上のタブを消して下を表示 */
  .monthtabs-top {
    display: none;
  }
}/*# sourceMappingURL=style.css.map */