/*
Theme Name: KNV LP Theme
Theme URI: https://example.com/
Author: Your Name
Description: KNV ランディングページ用テーマ
Version: 1.0
Text Domain: knv-lp-theme
*/

@charset "UTF-8";

/* ------------------------------
   Base
------------------------------ */

:root {
  --color-bg: #f4f6fb;
  --color-hero: #d6d8e8;
  --color-footer: #003463;
  --color-text: #333333;
  --color-cta: #ff7f64;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, "Noto Sans JP",
    "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
  color: var(--color-text);
  background-color: var(--color-bg);
}

/* 画像共通 */
img {
  max-width: 100%;
  height: auto;
  border: 0;
  display: block;
}

/* リンク */
a {
  color: inherit;
  text-decoration: none;
}

a:hover {
  opacity: 0.9;
}

/* レイアウト共通 */

.lp-main {
  width: 100%;
}

.l-wrapper {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 16px;
}

/* ============================================
   HERO（トップセクション）
============================================ */
.section-hero {
  background: #d6d8e8;
  padding: 120px 0 140px;
  text-align: center;
}

.hero-inner {
  max-width: 900px;
  margin: 0 auto;
}

/* ロゴと KNV を横並びにする */
.hero-brand-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
  margin-bottom: 40px;
}

/* ロゴ画像 */
.hero-logo img {
  width: 130px;
  height: auto;
  display: block;
}

/* KNV（太字・大きめ） */
.hero-title {
  font-size: 78px;
  font-weight: 800;
  color: #000;
  margin: 0;
  line-height: 1;
  letter-spacing: 1px;
  text-align: left;
}

/* Kumamoto New Visionaries */
.hero-subtitle {
  font-size: 32px;
  font-weight: 600;
  color: #6e6e80;
  margin: 10px 0 0;
  text-align: left;
  letter-spacing: 0.5px;
}

/* キャッチコピー（ピンク） */
.hero-lead {
  margin: 60px 0 80px;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.6;
  color: #c63984;
}

/* ボタン */
.btn-cta {
  display: inline-block;
  background: linear-gradient(135deg, #ff7d60, #ff5b7c);
  padding: 28px 90px;
  border-radius: 50px;
  font-size: 32px;
  font-weight: 700;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 20px 40px rgba(255, 100, 100, 0.3);
  transition: 0.25s;
}

.btn-cta:hover {
  transform: translateY(-3px);
  opacity: 0.92;
}


/* ------------------------------
   各セクション共通
------------------------------ */

.lp-section {
  padding: 80px 0;
  background-color: #f5f7fc;
}

.lp-section:nth-of-type(even) {
  background-color: #f5f7fb;
}

.lp-section--fullimg img {
  margin: 0 auto;
}

.lp-section--stacked img {
  margin: 0 auto;
}

.lp-section--stacked .lp-section-contents {
  margin-top: 32px;
}

/* ------------------------------
   フッター
------------------------------ */

.site-footer {
  background-color: var(--color-footer);
  color: #ffffff;
  text-align: center;
  padding: 24px 16px;
  font-size: 13px;
}

.site-footer-inner {
  max-width: 1100px;
  margin: 0 auto;
}

.site-footer-nav {
  list-style: none;
  padding: 0;
  margin: 0 0 8px;
  display: flex;
  justify-content: center;
  gap: 40px;
  font-size: 14px;
}

.site-footer-nav li {
  margin: 0;
}

/* ------------------------------
   レスポンシブ（全体）
------------------------------ */

@media (max-width: 768px) {
  .section-hero {
    padding: 48px 0 64px;
  }

  .btn-cta {
    width: 80%;
    max-width: 320px;
    padding: 14px 0;
    font-size: 16px;
  }

  .lp-section {
    padding: 56px 0;
  }

  .site-footer-nav {
    flex-direction: column;
    gap: 8px;
  }
}

/* ------------------------------
   レスポンシブ（Heroのみ）
------------------------------ */

@media (max-width: 768px) {
  .section-hero {
    padding: 48px 0 64px;
  }

  .hero-logo {
    width: 96px;
    margin-bottom: 14px;
  }

  .hero-title {
    font-size: 30px;
  }

  .hero-subtitle {
    font-size: 15px;
    margin-bottom: 12px;
  }

  .hero-copy {
    font-size: 13px;
    line-height: 1.8;
    margin-bottom: 22px;
  }

  .btn-cta {
    width: 80%;
    max-width: 320px;
    padding: 14px 0;
    font-size: 16px;
    box-shadow: 0 12px 24px rgba(255, 127, 100, 0.4);
  }
}

/* ============================
   KNVとはセクション
============================ */

.section-about {
  background-color: #e6ebf0; /* 指定通り */
  padding: 15px 0;
}

.about-inner {
  width: 90%;
  max-width: 1100px;
  margin: 0 auto;
  text-align: center;
}

.about-title {
  font-size: 42px;
  font-weight: 800;
  color: #014895; /* 指定色 */
  margin-bottom: 5px;
}

.about-subtitle {
  font-size: 20px;
  font-weight: 600;
  color: #cb3d88; /* 指定色 */
  margin-bottom: 40px;
}

/* テキスト & 画像の横並び */
.about-content {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 40px;
  margin-top: 20px;
}

.about-text {
  width: 55%;
  font-size: 20px;
  line-height: 1.9;
  color: #333;
  text-align: left;
}

.about-img img {
  width: 100%;
  max-width: 420px;
  border-radius: 6px;
}

/* スマホ対応 */
@media screen and (max-width: 768px) {
  .about-content {
    flex-direction: column;
    text-align: center;
  }
  .about-text {
    width: 100%;
    text-align: left;
  }
  .about-img img {
    max-width: 100%;
    margin-top: 20px;
  }
}

/* ============================================
   KNVの活動
============================================ */

.activities-section {
  background-color: #f4f7fa;
  padding: 80px 0;
}

/* セクション見出し */
.activities-heading {
  text-align: center;
  margin-bottom: 40px;
}

.activities-heading__jp {
  font-size: 40px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #014895;
  margin: 0 0 10px;
}

.activities-heading__en {
  font-size: 20px;
  font-weight: 600;
  color: #cb3d88;
  margin: 0;
}

/* 対面コンテンツ 帯 */
.activities-tag {
  margin: 0 0 40px;
}

.activities-tag__label {
  display: inline-block;
  background-color: #e2553b;
  color: #ffffff;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 0.2em;
  padding: 18px 60px;
  border-radius: 0 16px 16px 0;
}

/* 本文ブロック */
.activities-content {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 40px;
}

.activities-content__text {
  flex: 1 1 55%;
}

.activities-content__image {
  flex: 1 1 40%;
  text-align: right;
}

.activities-content__image img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}

/* タイトル行（アイコン＋タイトル） */
.activities-title-row {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 24px;
}

.activities-icon {
  width: 96px;
  height: 96px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.activities-icon__img {
  max-width: 100%;
  height: auto;
  display: block;
}

.activities-title {
  font-size: 32px;
  font-weight: 700;
  color: #014895;
  margin: 0;
}

/* テキスト：行間を少し詰める */
.activities-lead {
  font-size: 18px;
  line-height: 1.6; /* 行間をやや詰める */
  margin: 0 0 16px;
}

.activities-text {
  font-size: 18px;
  line-height: 1.6;
  margin: 0 0 24px;
}

/* 会場情報（アイコン差し替え） */
.activities-place {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 18px;
  line-height: 1.6;
  margin: 0;
}

.activities-place-icon {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.activities-place-icon__img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* レスポンシブ */
@media (max-width: 960px) {
  .activities-section {
    padding: 60px 0;
  }

  .activities-content {
    flex-direction: column;
  }

  .activities-content__image {
    text-align: center;
  }

  .activities-tag__label {
    font-size: 20px;
    padding: 12px 32px;
  }

  .activities-title {
    font-size: 26px;
  }

  .activities-lead,
  .activities-text,
  .activities-place {
    font-size: 16px;
  }
}

/* ============================================
   プチ例会（1〜2か月に1回）
============================================ */
.lp-section--petit {
  background-color: #f5f7fb; /* 他の活動セクションと統一感 */
  padding: 80px 0 100px;
}

.petit-inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 60px;
  max-width: 1120px;
  margin: 0 auto;
}

.petit-text {
  flex: 1 1 auto;
}

.petit-title {
  display: flex;
  align-items: center;
  margin-bottom: 24px;
}

.petit-icon {
  width: 96px;
  height: 96px;
  margin-right: 24px;
  flex-shrink: 0;
}

.petit-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.petit-heading {
  font-size: 2.1rem; /* だいたい 34px 前後 */
  line-height: 1.3;
  color: #014895;
  font-weight: 700;
}

/* 箇条書き：行間を少し詰め気味に */
.petit-list {
  margin: 0;
  padding-left: 1.3em;
  list-style-type: disc;
  font-size: 1.1rem;
}

.petit-list li {
  line-height: 1.7; /* 行間を詰めてキャプチャ寄せ */
  margin-bottom: 4px;
}

/* 右側イメージ */
.petit-image {

  max-width: 500px;
}

.petit-image img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 10px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.12);
}

/* SP レイアウト */
@media (max-width: 960px) {
  .lp-section--petit {
    padding: 60px 0 70px;
  }

  .petit-inner {
    flex-direction: column;
    gap: 32px;
  }

  .petit-image {
    max-width: 100%;
  }

  .petit-heading {
    font-size: 1.7rem;
  }

  .petit-icon {
    width: 72px;
    height: 72px;
    margin-right: 18px;
  }
}

/* ============================================
   オンラインコンテンツ
============================================ */
.online-section {
  background: #f5f7fa;
  padding: 15px 0 15px;
}

/* l-wrapper 相当：中央寄せ & 最大幅 */
.online-inner {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 16px;
}

/* 「オンラインコンテンツ」帯：対面コンテンツと同デザイン */
.section-label.online-label {
  display: inline-block;
  background-color: #e2553b;
  color: #ffffff;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 0.2em;
  padding: 18px 60px;
  border-radius: 0 16px 16px 0;
  margin: 0 0 40px;
}

.online-content {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 60px;
}

/* 左カラム：テキスト */
.online-text-block {
  flex: 1 1 55%;
  font-size: 18px;
  line-height: 1.2;          /* ★ 行間を少し詰める（1.8 → 1.6） */
  color: #333333;
}

.online-text-block p {
  margin: 0 0 0px;          /* ★ 段落間の余白も少しだけ詰める */
}

/* タイトル行：アイコン＋「グロースプログラム」 */
.online-title {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
  font-size: 30px;
  font-weight: 700;
  color: #005bac;
}

.online-icon {
  width: 80px;
  height: 80px;
  flex-shrink: 0;
}

/* 右カラム：画像 */
.online-image {
  flex: 0 0 420px;
  max-width: 460px;
}

.online-image img {
  width: 100%;
  height: auto;
  border-radius: 10px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.12);
}

/* ============================================
   グロースセッション / KNVアカデミア
============================================ */
.growth-program-section {
  background: #f5f7fb; /* 上のオンラインコンテンツとトーンを合わせる */
  padding: 80px 0 100px;
}

.growth-program-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 60px;
  max-width: 1120px;
  margin: 0 auto 80px;
}

.growth-program-row:last-of-type {
  margin-bottom: 0;
}

/* 左：テキスト共通 */
.growth-program-text {
  flex: 1 1 55%;
  font-size: 18px;
  line-height: 1.7;
  color: #333333;
}

/* タイトル行（アイコン＋見出し） */
.growth-program-title {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
}

.growth-program-title-icon {
  width: 80px;
  height: 80px;
  flex-shrink: 0;
}

.growth-program-title-text {
  font-size: 32px;
  font-weight: 700;
  color: #005bac; /* 他コンテンツの見出しブルーに合わせる */
  margin: 0;
}

/* KNVアカデミア側だけ、少しサイズを調整 */
.growth-program-title--academy .growth-program-title-text {
  font-size: 30px;
}

/* 本文段落 */
.growth-program-text p {
  margin: 0 0 12px;
}

/* 箇条書き */
.growth-program-list {
  margin: 0 0 28px;
  padding-left: 1.4em;
  list-style-type: disc;
}

.growth-program-list li {
  margin-bottom: 6px;
  line-height: 1.7;
}

/* 右：画像共通 */
.growth-program-image {
  flex: 0 0 420px;
  max-width: 460px;
}

.growth-program-image img {
  width: 100%;
  height: auto;
  border-radius: 10px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.12);
}

/* 下部のダイジェスト＋ボタン行（キャプチャ寄せ） */
.growth-program-digest {
  display: flex;
  align-items: center;
  justify-content: space-between;   /* テキスト左／ボタン右 */
  gap: 24px;
  margin-top: 24px;
  padding: 18px 26px;
  background: #f3f4f7;              /* フラットな薄グレー */
  border-radius: 8px;
  box-shadow: none;                 /* 影は無し */
}

.growth-program-digest-text {
  margin: 0;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.5;                  /* 行間を詰める */
}

/* 「動画を見る」ボタン */
.growth-program-digest-button {
  display: inline-block;
  padding: 14px 40px;
  border-radius: 999px;
  background-color: #ff7f64;
  color: #ffffff;
  font-size: 20px;
  font-weight: 700;
  box-shadow: 0 14px 24px rgba(255, 127, 100, 0.5);
  white-space: nowrap;
}

/* ホバー */
.growth-program-digest-button:hover {
  opacity: 0.95;
}

/* SP レイアウト */
@media (max-width: 768px) {
  .growth-program-row {
    flex-direction: column;
    gap: 32px;
  }

  .growth-program-image {
    flex: 0 0 auto;
    max-width: 100%;
  }

  .growth-program-digest {
    flex-direction: column;
    align-items: flex-start;
  }

  .growth-program-digest-button {
    width: 100%;
    text-align: center;
  }
}

/* ============================================
   KNVコネクトAI（会員専用システム）
============================================ */

.connect-ai-section {
  background: #f5f7fb;
  padding: 15px 0 15px;
}

.connect-ai-inner {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 16px;
}

.connect-ai-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 60px;
}

/* 左：テキスト */
.connect-ai-text {
  flex: 1 1 55%;
  font-size: 18px;
  color: #333;
  line-height: 1.7;
}

/* タイトル行（アイコン＋見出し） */
.connect-ai-title {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
}

.connect-ai-title-icon {
  width: 80px;
  height: 80px;
  flex-shrink: 0;
}

.connect-ai-title-text {
  font-size: 32px;
  font-weight: 700;
  margin: 0;
  color: #005bac;
}

/* 箇条書き */
.connect-ai-list {
  margin: 0;
  padding-left: 1.4em;
  list-style-type: disc;
}

.connect-ai-list li {
  margin-bottom: 10px;
  line-height: 1.7;
}

/* 右：画像 */
.connect-ai-image {
  flex: 0 0 420px;
  max-width: 460px;
}

.connect-ai-image img {
  width: 100%;
  height: auto;
  border-radius: 10px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.12);
}

/* SP レイアウト */
@media (max-width: 960px) {
  .connect-ai-row {
    flex-direction: column;
    gap: 32px;
  }

  .connect-ai-image {
    max-width: 100%;
  }

  .connect-ai-title-text {
    font-size: 26px;
  }

  .connect-ai-title-icon {
    width: 60px;
    height: 60px;
  }
}

/* レスポンシブ調整 */
@media (max-width: 960px) {
  .growth-program-section {
    padding: 60px 0 70px;
  }

  .growth-program-row {
    flex-direction: column;
    gap: 32px;
    margin-bottom: 56px;
  }

  .growth-program-image {
    flex: 0 0 auto;
    max-width: 100%;
  }

  .growth-program-title-text {
    font-size: 24px;
  }

  .growth-program-title--academy .growth-program-title-text {
    font-size: 22px;
  }

  .growth-program-title-icon {
    width: 64px;
    height: 64px;
  }

  .growth-program-text {
    font-size: 16px;
  }

  .growth-program-digest {
    flex-direction: column;
    align-items: flex-start;
  }

  .growth-program-digest-button {
    width: 100%;
    text-align: center;
  }
}


/* レスポンシブ */
@media (max-width: 960px) {
  .online-section {
    padding: 60px 0 70px;
  }

  .online-content {
    flex-direction: column;
    gap: 32px;
  }

  .online-image {
    flex: 0 0 auto;
    max-width: 100%;
  }

  .online-title {
    font-size: 24px;
  }

  .online-icon {
    width: 60px;
    height: 60px;
  }

  .online-text-block {
    font-size: 16px;
  }
}
/* ------------------------------
   月例会アーカイブカード（一覧用）
------------------------------ */

.lp-section--archive {
  background-color: #f4f6f9;
}

.monthly-archive-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin-top: 32px;
}

.monthly-card {
  background-color: #ffffff;
  border-radius: 16px;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
  overflow: hidden;
}

.monthly-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.monthly-card__thumb img {
  width: 100%;
  display: block;
}

.monthly-card__body {
  padding: 16px 20px 20px;
}

.monthly-card__title {
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: 700;
}

.monthly-card__excerpt {
  margin: 0 0 16px;
  font-size: 14px;
  color: #555;
}

.monthly-card__button {
  display: inline-block;
  padding: 8px 24px;
  border-radius: 999px;
  background-color: #ff7f64;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
}

/* 月例会アーカイブ：レスポンシブ */

@media (max-width: 1024px) {
  .monthly-archive-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .monthly-archive-grid {
    grid-template-columns: 1fr;
  }
}

/* ==============================
   月例会 詳細ページ
============================== */

.monthly-single-page {
  /* 必要なら全体の余白調整 */
}

.monthly-detail-header-img {
  text-align: center;
  margin: 0 0 32px;
}

.monthly-detail-header-img img {
  width: 100%;
  max-width: 1100px;   /* この幅 */
  margin: 0 auto 32px;
  display: block;
}

.monthly-single-article {
  max-width: 780px;
  margin: 0 auto 40px;
}

.monthly-single-header {
  margin-bottom: 24px;
}

.monthly-single-thumb {
  margin: 0 0 24px;
}

.monthly-single-meta {
  font-size: 20px;
  line-height: 1.8;
  color: #222222;
}

.monthly-single-meta p {
  margin: 0 0 6px;
}

.monthly-single-content {
  font-size: 15px;
  line-height: 1.9;
  margin-top: 16px;
}

.monthly-single-content p {
  margin-bottom: 1.2em;
}

.monthly-single-form {
  margin-top: 32px;
}

.monthly-single-back {
  margin-top: 32px;
  text-align: center;
}

.monthly-single-back a {
  display: inline-block;
  padding: 10px 28px;
  border-radius: 999px;
  border: 1px solid #0053a7;
  color: #0053a7;
  font-size: 14px;
  font-weight: 600;
}

/* 会費行 + 初回無料バッジ（吹き出し風） */
.monthly-single-price-row {
  margin: 4px 0 0;
  font-size: 20px;
  font-weight: 500;
}

.monthly-single-price-label {
  margin-right: 12px;
}

.monthly-single-price-badge {
  position: relative;
  display: inline-block;
  padding: 4px 18px 5px;
  border-radius: 999px;
  background: #ff4f9a;
  color: #ffffff;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

/* 左側に三角の吹き出し尻尾 */
.monthly-single-price-badge::before {
  content: "";
  position: absolute;
  left: -10px;
  top: 50%;
  transform: translateY(-50%);
  border-width: 8px;
  border-style: solid;
  border-color: transparent #ff4f9a transparent transparent;
}

/* SP 調整（詳細ページ） */
@media (max-width: 768px) {
  .monthly-detail-header-img img {
    max-width: 100%;
  }

  .monthly-single-meta {
    font-size: 16px;
  }

  .monthly-single-price-row {
    font-size: 16px;
  }
}

/* 背景色を #f4f6f9 に統一 */
.monthly-single-page {
  background: #f4f6f9 !important;
}

/* ヘッダー画像幅をコンテンツ幅と統一 */
.monthly-detail-header-img img {
  width: 100%;
  max-width: 1100px; /* ここはサイト全体の最大幅と揃える */
  margin: 0 auto 32px;
  display: block;
}

/* 日時・講師・会場・会費のフォントサイズを37px + bold */
.monthly-single-meta,
.monthly-single-meta p,
.monthly-single-price-row,
.monthly-single-price-label,
.monthly-single-price-badge {
  font-size: 37px !important;
  font-weight: 700 !important;
  line-height: 1.5;
}

/* バッジ（初回無料）サイズ調整 */
.monthly-single-price-badge {
  padding: 8px 26px;
  border-radius: 999px;
}

/* バッジの吹き出し三角形もサイズアップ */
.monthly-single-price-badge::before {
  border-width: 14px;
  left: -18px;
}

/* コメント文（説明）のフォントサイズ 22px */
.monthly-single-content {
  font-size: 22px !important;
  line-height: 1.9;
}


/* ------------------------------
   月例会カード（他用途）
------------------------------ */

.monthly-cards {
  margin-top: 32px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 24px;
}

.monthly-card {
  background-color: #ffffff;
  border-radius: 18px;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  text-align: center;
}

.monthly-card-link {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.monthly-card-thumb img {
  width: 100%;
  display: block;
}

.monthly-card-title {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
  padding: 16px 16px 8px;
}

.monthly-card-meta {
  padding-bottom: 20px;
}

.monthly-card-btn {
  display: inline-block;
  margin-top: 4px;
  padding: 8px 32px;
  border-radius: 999px;
  background-color: #ff7f64;
  color: #ffffff;
  font-size: 14px;
  font-weight: 700;
}

/* SP（他用途カード） */
@media (max-width: 768px) {
  .monthly-cards {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

/* ================================
   TOP用 月例会アーカイブ（最新3件）
   title：body3_title.png
   footer：body3_footer.png
================================ */

/* セクション全体の帯背景 */
.lp-section--archive {
  background: #f4f6f9;
}

/* カード3枚が乗るエリア（グレーの帯の中） */
.monthly-archive-heading {
  width: 100%;
  max-width: 1100px;
  background: #e6ebf0;
  /* margin: 24px auto 40px; */
}

/* カード3枚のグリッド */
.top-monthly-archive-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  max-width: 1040px; /* 少し内側に縮める */
  margin: 0 auto;
}

/* パネル全体（外枠） */
.top-monthly-card {
  background: #e6ebf0;
  border-radius: 30px;
  padding: 16px 16px 22px;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.08);
  overflow: hidden;

  /* ★ここ修正：背景色と完全統一 */
  border: 1px solid #e6ebf0;

  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.top-monthly-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.12);
}

/* サムネイル（青い16:9の部分） */
.top-monthly-card-thumb img {
  width: 100%;
  display: block;
  object-fit: cover;
  border-radius: 20px 20px 0 0;
}

/* テキストエリア（白い部分） */
.top-monthly-card-body {
  padding: 18px 22px 26px;
  text-align: left;
  background: #ffffff;
  border-radius: 0 0 20px 20px;
}

.top-monthly-card-title {
  display: none;
}

/* 抜粋：日時＋講師 */
.top-monthly-card-excerpt {
  font-size: 14px;
  line-height: 1.7;
  color: #555555;
}

/* 詳細ボタン */
.top-monthly-card-button {
  display: block;
  width: 75%;
  max-width: 220px;
  margin: 20px auto 0;
  padding: 10px 0;
  border-radius: 999px;
  background-color: #ff7f64;
  color: #ffffff;
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  box-shadow: 0 12px 20px rgba(255, 127, 100, 0.4);
}

/* 下のフッターエリア（チェック3行＋動画ボタン画像） */
.monthly-archive-footerbox {
  margin: 0 auto;
  padding: 0;
  max-width: 1100px;
}

/* フッター全体をリンク化する箱（class名は変えない） */
.monthly-archive-footerbox-link {
  display: block;
  width: 100%;
  cursor: pointer;
}

.monthly-archive-footerbox-link img {
  width: 100%;
  display: block;
}

/* レスポンシブ */
@media (max-width: 1024px) {
  .top-monthly-archive-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .top-monthly-archive-grid {
    grid-template-columns: 1fr;
  }
}

/* セクション全体をグレーにする */
.lp-section--archive {
  background: #f4f6f9;
}

/* 月例会詳細ページ & アーカイブページ：ヘッダー（トップヒーロー）非表示 */
body.single-monthly_event .knv-hero,
body.single-monthly_archive .knv-hero,
body.post-type-archive-monthly_archive .knv-hero {
  display: none !important;
}

/* メインコンテンツの余白リセット（single + archive） */
body.single-monthly_event .knv-main,
body.single-monthly_archive .knv-main,
body.post-type-archive-monthly_archive .knv-main {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* ==============================
   月例会フォーム（CF7）
============================== */

.monthly-single-form .wpcf7-form {
  max-width: 600px;
  margin: 0 auto 60px;
}

/* ラベル行（会社名 / 氏名 / メールアドレス など）を中央寄せ */
.monthly-single-form .wpcf7-form p {
  margin: 0 0 20px;
  font-size: 18px;
  text-align: center;
}

/* 見出し（参加申し込み）を中央寄せ */
.monthly-single-form h2,
.monthly-single-form h3 {
  text-align: center;
  margin-bottom: 24px;
	color: #014895;
}

/* テキスト・メール・電話・セレクト・テキストエリア */
.monthly-single-form .wpcf7-form input[type="text"],
.monthly-single-form .wpcf7-form input[type="email"],
.monthly-single-form .wpcf7-form input[type="tel"],
.monthly-single-form .wpcf7-form select,
.monthly-single-form .wpcf7-form textarea {
  width: 100%;
  padding: 14px 18px;
  border-radius: 999px;
  border: 1px solid #d5dce9;        /* 枠線 */
  background: #f9fbff;
  box-shadow: 0 0 0 1px #edf1f8;     /* うっすら外枠 */
  font-size: 16px;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

/* セレクトも角丸 */
.monthly-single-form .wpcf7-form select {
  border-radius: 999px;
}

/* フォーカス時 */
.monthly-single-form .wpcf7-form input[type="text"]:focus,
.monthly-single-form .wpcf7-form input[type="email"]:focus,
.monthly-single-form .wpcf7-form input[type="tel"]:focus,
.monthly-single-form .wpcf7-form select:focus,
.monthly-single-form .wpcf7-form textarea:focus {
  border-color: #ff7f64;
  box-shadow: 0 0 0 2px rgba(255, 127, 100, 0.25);
  background: #ffffff;
}

/* プレースホルダー */
.monthly-single-form .wpcf7-form ::placeholder {
  color: #aab3c4;
}

/* 必須 * を赤く（CF7 が span.required を出している場合） */
.monthly-single-form .wpcf7-form .required {
  color: #ff4f4f;
}

/* 送信ボタン */
.monthly-single-form .wpcf7-submit {
  display: block;
  width: 100%;
  max-width: 520px;
  margin: 32px auto 0;
  padding: 16px 0;
  border: none;
  border-radius: 999px;
  background: #ff7f64;
  color: #ffffff;
  font-size: 20px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(255, 127, 100, 0.45);
}

.monthly-single-form .wpcf7-submit:hover {
  opacity: 0.95;
}

/* スマホ時 */
@media (max-width: 768px) {
  .monthly-single-form .wpcf7-form p {
    font-size: 16px;
  }
}


/* ===============================
   月例会アーカイブカード（アーカイブ用最終デザイン）
   ※既存 .monthly-card 系の下に追記して上書き
================================ */

/* カード全体（白い角丸＋影） */
.monthly-card {
  background-color: #ffffff;
  border-radius: 24px;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  text-align: center;
}

/* 内側ラッパー */
.monthly-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* タイトル部分（サムネイルの上） */
.monthly-card__title {
  margin: 20px 24px 12px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.6;
  color: #003463;
}

/* サムネイル画像 */
.monthly-card__thumb img {
  width: 100%;
  display: block;
}

/* 本文エリア（ボタンだけ） */
.monthly-card__body {
  padding: 20px 24px 28px;
}

/* 詳細ボタン（大きめ・丸み強） */
.monthly-card__button {
  display: inline-block;
  width: 80%;
  max-width: 260px;
  padding: 14px 0;
  border-radius: 999px;
  border: none;
  background-color: #ff7f64;
  color: #ffffff;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 16px 28px rgba(255, 127, 100, 0.5);
}

.monthly-card__button:hover {
  opacity: 0.95;
}

/* SP時は若干調整 */
@media (max-width: 768px) {
  .monthly-card__title {
    margin: 18px 16px 10px;
    font-size: 18px;
  }

  .monthly-card__body {
    padding: 18px 16px 24px;
  }

  .monthly-card__button {
    width: 100%;
    max-width: 100%;
  }
}

/* ===============================
   YouTube モーダル
================================ */

.monthly-video-modal {
  position: fixed;
  inset: 0;
  display: none;
  z-index: 9999;
}

.monthly-video-modal.is-open {
  display: block;
}

.monthly-video-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
}

.monthly-video-modal__content {
  position: relative;
  max-width: 960px;
  width: 90%;
  margin: 40px auto;
  background: transparent;
}

/* 閉じるボタン */
.monthly-video-modal__close {
  position: absolute;
  top: -32px;
  right: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: none;
  background: #ffffff;
  color: #333333;
  font-size: 20px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
}

/* iframe ラッパー（16:9） */
.monthly-video-modal__inner {
  width: 100%;
}

.monthly-video-modal__iframe-wrap {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9 */
}

.monthly-video-modal__iframe-wrap iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
}

/* 背景のスクロールを止める（任意） */
html.monthly-video-modal-open {
  overflow: hidden;
}

body.post-type-archive-monthly_event header {
  display: none !important;
}

/* ====================================
   グローバルヘッダーだけ非表示にする
   （コンテンツ内の <header> は隠さない）
==================================== */
body > header.site-header,
.site-header,
.knv-header,
.knv-hero {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}


/* ==============================
   TOP インタビューセクション
=============================== */

.knv-interview-top {
  background: #f4f6f9;
}

.knv-interview-title-img {
  text-align: center;
  margin: 0 0 24px;
}

.knv-interview-title-img img {
  margin: 0 auto;
  max-width: 420px;
  height: auto;
}

.knv-interview-header-img {
  max-width: 1040px;  /* カードと同じ幅に揃える */
  margin: 0 auto ;
}

.knv-interview-header-img img {
  width: 100%;
  display: block;
}

/* カード3枚グリッド
.interview-top-grid {
  max-width: 1040px;
  margin: 0 auto 32px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
} */

.interview-top-grid {
  max-width: 1070px;
  margin: 0 auto 32px;
  padding: 24px 24px 28px;       /* 内側余白を付ける */
  background: #e6ebf0;           /* パネル背景色 */
  border-radius: 0px;           /* 月例会パネルと同じ系統の丸み */
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

/* カード本体 */
.interview-top-card {
  background: #ffffff;
  border-radius: 24px;
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  text-align: center;
}

.interview-top-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* タイトル（画像の上） */
.interview-top-card__title {
  margin: 18px 16px 12px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.6;
  color: #003463;
}

/* サムネイル */
.interview-top-card__thumb img {
  width: 100%;
  display: block;
}

/* ボタン部分 */
.interview-top-card__body {
  padding: 18px 16px 24px;
}

.interview-top-card__button {
  display: inline-block;
  width: 80%;
  max-width: 260px;
  padding: 12px 0;
  border-radius: 999px;
  background-color: #ff7f64;
  color: #ffffff;
  font-size: 16px;
  font-weight: 700;
  box-shadow: 0 16px 28px rgba(255, 127, 100, 0.45);
  border: none;   /* ←これだけ追加 */
}

/* 一覧ボタン */
.interview-top-more {
  text-align: center;
  margin-bottom: 8px;
}

.interview-top-more__btn {
  display: inline-block;
  padding: 14px 40px;
  border-radius: 999px;
  background-color: #ff7f64;
  color: #ffffff;
  font-size: 16px;
  font-weight: 700;
  box-shadow: 0 16px 28px rgba(255, 127, 100, 0.45);
}

/* SP レイアウト調整 */
@media (max-width: 1024px) {
  .interview-top-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .interview-top-grid {
    grid-template-columns: 1fr;
  }

  .interview-top-card__title {
    font-size: 16px;
  }

  .interview-top-more__btn {
    width: 80%;
    max-width: 260px;
  }
}

/* ===============================
   インタビュー動画モーダル コメント表示改善
================================ */
.monthly-video-modal__comment {
  background: rgba(0, 0, 0, 0.6); /* 半透明ダーク背景 */
  color: #fff;                   /* 白文字 */
  padding: 16px 20px;            /* 内側余白 */
  font-size: 16px;
  line-height: 1.7;
  border-radius: 8px;            /* 少し角丸 */
  margin-top: 20px;
  max-width: 960px;
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* コメント表示（インタビュー／月例会 共通デザイン） */
.interview-modal-comment,
.monthly-video-modal__comment {
  margin-top: 16px;
  padding: 16px 20px;
  background: rgba(0, 0, 0, 0.8);
  color: #ffffff;
  font-size: 16px;
  line-height: 1.8;
  border-radius: 12px;
  text-align: left;
  max-height: 180px;
  overflow-y: auto;
}


/* ==============================
   推薦者の声（TOPセクション共通）
============================== */

/* 推薦の声 見出し（画像→テキストへ変更後） */
.knv-voice-title {
  text-align: center;
  font-size: 42px;
  font-weight: 700;
  color: #005bac;          /* 他セクションのタイトルと統一 */
  margin: 0 0 48px;
  letter-spacing: 0.08em;
}

.knv-voice-top {
  background: #f4f6f9;
}

/* 見出し画像（TOP） */
.knv-voice-header-img {
  max-width: 1040px;
  margin: 0 auto 24px;
}

.knv-voice-header-img img {
  width: 100%;
  display: block;
}

/* 推薦者カード（TOP／アーカイブ共通で .interview-top-* を継承） */
.voice-top-grid {
  /* .interview-top-grid 側でレイアウト済みなので、
     ここでは必要に応じて上書きだけ */
}

.voice-top-card { }
.voice-archive-card { }

.voice-top-card__link { }
.voice-top-card__title { }
.voice-top-card__thumb { }
.voice-top-card__body { }

.voice-top-card__button {
  /* ベースは .interview-top-card__button を使用 */
}

/* ==============================
   推薦者の声「一覧を見る」ボタン（TOP）
============================== */

.knv-voice-archive-button-wrap {
  text-align: center;
  margin-top: 8px;
}

.knv-voice-archive-button {
  display: inline-block;
  padding: 14px 40px;
  border-radius: 999px;
  background-color: #ff7f64;
  color: #ffffff;
  font-size: 16px;
  font-weight: 700;
  box-shadow: 0 16px 28px rgba(255, 127, 100, 0.45);
}

/* SP 時は幅を少し広げる */
@media (max-width: 768px) {
  .knv-voice-archive-button {
    width: 80%;
    max-width: 260px;
    text-align: center;
  }
}

/* ==============================
   推薦者の声 アーカイブ
============================== */

.knv-voice-archive {
  background: #f4f6f9;
}

/* ページネーション（必要なら調整） */
.knv-voice-archive-pagination {
  margin-top: 24px;
  text-align: center;
}

.voice-top-empty {
  text-align: center;
  margin-top: 40px;
  font-size: 16px;
}

/* ==============================
   参加対象者セクション
============================== */

.targets-section {
  background: #f4f6fb; /* 既存セクションとトーンを合わせる */
}

.targets-inner {
  text-align: center;
}

/* 見出し（参加対象者） */
.targets-title {
  margin: 0 0 8px;
  font-size: 54px;
  font-weight: 800;
  color: #005bac;
  letter-spacing: 0.12em;
}

/* サブ見出し（Who Can Join） */
.targets-subtitle {
  margin: 0 0 40px;
  font-size: 24px;
  font-weight: 700;
  color: #cb3d88;
  letter-spacing: 0.08em;
}

/* カード 3×2 グリッド */
.targets-grid {
  max-width: 1040px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px 40px; /* 縦横の間隔を少し広めに */
}

/* 各カード */
.targets-card {
  background: #0053a7;
  color: #ffffff;
  border-radius: 28px;
  padding: 36px 24px;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.12);
}

/* レスポンシブ：タブレットで 2 列、スマホで 1 列 */
@media (max-width: 1024px) {
  .targets-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
  }

  .targets-card {
    font-size: 20px;
    padding: 28px 18px;
  }
}

@media (max-width: 768px) {
  .targets-title {
    font-size: 40px;
  }

  .targets-subtitle {
    font-size: 18px;
    margin-bottom: 28px;
  }

  .targets-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .targets-card {
    font-size: 18px;
    border-radius: 22px;
    padding: 22px 16px;
  }
}

/* ==============================
   料金プランセクション
============================== */

.plans-section {
  background: #f4f6fb;
}

.plans-inner {
  text-align: center;
}

/* 見出し */
.plans-title {
  margin: 0 0 8px;
  font-size: 54px;
  font-weight: 800;
  color: #005bac;
  letter-spacing: 0.12em;
}

.plans-subtitle {
  margin: 0 0 40px;
  font-size: 24px;
  font-weight: 700;
  color: #cb3d88;
  letter-spacing: 0.08em;
}

/* カード3枚の並び */
.plans-grid {
  max-width: 1040px;
  margin: 0 auto 24px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

/* 共通カードスタイル */
.plan-card {
  background: #d6d8e8;
  border-radius: 24px;
  padding: 32px 28px 28px;
  text-align: center;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.08);
  border: 3px solid transparent;  /* デフォルトは枠なし */
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* 法人カードだけ少し色を変える（キャプチャ寄せ） */
.plan-card--corporate {
  background: #d6d8e8;
}

/* 選択時 */
.plan-card.is-selected {
  border-color: #ea6b5a;
  box-shadow: 0 20px 44px rgba(234, 107, 90, 0.4);
  transform: translateY(-4px);
}

/* ホバー時も軽く持ち上げる（未選択でも） */
.plan-card:hover {
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.12);
  transform: translateY(-3px);
}

/* タイトル */
.plan-card-name {
  margin: 0 0 24px;
  font-size: 22px;
  font-weight: 700;
  color: #333333;
}

/* 料金 */
.plan-card-price {
  margin-bottom: 24px;
}

.plan-card-price-main {
  margin: 0;
  font-size: 40px;
  font-weight: 800;
  color: #e24c8a;
}

.plan-card-price-sub {
  margin: 4px 0 0;
  font-size: 18px;
  font-weight: 700;
  color: #e24c8a;
}

/* 特典リスト */
.plan-card-features {
  list-style: none;
  padding: 24px 0 24px;
  margin: 0;
  border-top: 1px dotted #999;
  border-bottom: 1px dotted #999;
  font-size: 16px;
  line-height: 1.8;
  color: #444444;
flex: 1 1 auto;
}

.plan-card-features li + li {
  margin-top: 4px;
}

/* ボタン */
.plan-card-button {
  display: inline-block;
  margin-top: 22px;
  padding: 12px 40px;
  border-radius: 999px;
  background: #ff7f64;
  color: #ffffff;
  font-size: 18px;
  font-weight: 700;
  box-shadow: 0 14px 26px rgba(255, 127, 100, 0.5);
}

/* ボタンホバー */
.plan-card-button:hover {
  opacity: 0.95;
}

/* 注意書き */
.plans-note {
  margin: 8px auto 0;
  font-size: 13px;
  color: #666666;
}

/* レスポンシブ */
@media (max-width: 1024px) {
  .plans-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .plans-title {
    font-size: 40px;
  }

  .plans-subtitle {
    font-size: 18px;
    margin-bottom: 28px;
  }

  .plans-grid {
    grid-template-columns: 1fr;
  }

  .plan-card {
    padding: 28px 22px 24px;
  }

  .plan-card-price-main {
    font-size: 34px;
  }
}

/* ===============================
 * 会員申し込みページ（完成形反映版）
 * =============================== */

/* ページ背景 */
.lp-main--entry {
  background-color: #f4f6fb;
  padding: 80px 0;
}
@media (max-width: 768px) {
  .lp-main--entry {
    padding: 56px 0;
  }
}

/* カード枠 */
.membership-apply-card {
  max-width: 960px;
  margin: 0 auto;
  background: #fff;
  border-radius: 26px;
  box-shadow: 0 18px 50px rgba(20, 53, 102, 0.16);
  padding: 48px 46px 40px;
}
@media (max-width: 768px) {
  .membership-apply-card {
    padding: 32px 18px 26px;
  }
}

/* ------------------------------
   見出し
------------------------------ */

.membership-apply-header {
  text-align: center;
  margin-bottom: 12px;
}

.membership-apply-title {
  margin: 0 0 6px;
  font-size: 56px;
  font-weight: 800;
  color: #005bac;
  letter-spacing: 0.1em;
}

.membership-apply-subtitle {
  font-size: 26px;
  font-weight: 700;
  color: #cb3d88;
  margin: 0 0 12px;
}

.membership-apply-lead {
  font-size: 15px;
  line-height: 1.7;
  color: #555;
  margin: 0;
}

/* ------------------------------
   CF7 段落リセット
------------------------------ */

.membership-apply-form .wpcf7-form p {
  margin: 0;
  padding: 0;
  font-size: 14px;
  line-height: 0.5;
  color: #555;
}

/* 「＊は必須項目です」2行 */
.membership-apply-form .wpcf7-form p:nth-of-type(1),
.membership-apply-form .wpcf7-form p:nth-of-type(2) {
  text-align: center;
  margin-bottom: 10px;
  font-size: 14px;
  line-height: 0.5;
}

/* ラベル共通（プラン選択・各項目見出し） */
.membership-apply-label {
  display: block;
  text-align: center;
  margin: 26px 0 18px;
  font-size: 16px;
  font-weight: 700;
  color: #333;
}

/* ==============================
   プラン選択（ラジオカード）
============================== */

/* 全体幅（カードと同じ 620px・中央寄せ） */
.membership-plan-radio {
  max-width: 620px;
  margin: 0 auto;
}

/* 各項目を縦並びに */
.membership-plan-radio .wpcf7-list-item {
  display: block;
  margin-bottom: 18px;
}
.membership-plan-radio .wpcf7-list-item:last-child {
  margin-bottom: 0;
}

/* label 全体をクリック領域に */
.membership-plan-radio .wpcf7-list-item label {
  display: block;
  cursor: pointer;
  position: relative;
}

/* ラジオボタン本体は非表示（クリックは生きたまま） */
.membership-plan-radio .wpcf7-list-item input[type="radio"] {
  position: absolute;
  opacity: 0;
}

/* カード枠（通常時） */
.membership-plan-radio .wpcf7-list-item-label {
  display: block;
  background: #f7fbff;
  border: 2px solid #2e6fd1;
  border-radius: 26px;
  padding: 16px 8px;
  text-align: center;
  transition: all .15s ease;
}

/* ★ JSで付ける .is-checked 用（選択中カード） */
.membership-plan-radio .wpcf7-list-item-label.is-checked {
  background: #ffffff;
  border-color: #ff7a55;
  box-shadow: 0 14px 26px rgba(255, 122, 85, 0.30);
}

/* プラン名 */
.membership-plan-radio .plan-main {
  display: block;
  font-size: 22px;
  font-weight: 700;
  color: #1b315b;
  margin-bottom: 6px;
}

/* 説明文 */
.membership-plan-radio .plan-sub {
  display: block;
  font-size: 16px;
  color: #444;
  line-height: 2.5;
}

/* ★ 選択時のカード強調（input:checked で発火） */
.membership-plan-radio
  .wpcf7-list-item
  input[type="radio"]:checked
  + .wpcf7-list-item-label {
  background: #ffffff;
  border-color: #ff7a55;
  box-shadow: 0 14px 26px rgba(255, 122, 85, 0.30);
}

/* ==============================
   テキスト入力欄 & 送信ボタン
============================== */

/* 各入力ブロック（申込者名／会社名…）＆送信ボタンのラッパーを
   620px で中央寄せ */
.membership-apply-group,
.membership-apply-submit {
  max-width: 620px;
  margin: 0 auto 18px;
}

/* CF7 のラッパー span を横幅100%にしておく */
.membership-apply-form .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* テキスト・メール・TEL 本体 */
.membership-apply-form .wpcf7-text,
.membership-apply-form .wpcf7-email,
.membership-apply-form .wpcf7-tel {
  display: block;
  width: 100%;              /* ラッパー（620px）の中で全幅 */
  background: #f4f6fb;
  border-radius: 999px;
  border: none;
  padding: 21px 22px;
  font-size: 15px;
  color: #333;
  margin-top: 6px;
  margin-bottom: 18px;
  box-sizing: border-box;
}

/* 送信ボタンのラッパー：上だけ少し余白を増やす */
.membership-apply-submit {
  margin-top: 22px;
}

/* 送信ボタン本体 */
.membership-apply-form .wpcf7-submit {
  display: block;
  width: 100%;              /* ラッパー（620px）の中で全幅 */
  padding: 16px 0;
  font-size: 18px;
  font-weight: 700;
  background: #ff7a55;
  color: #fff;
  border-radius: 999px;
  border: none;
  box-shadow: 0 12px 24px rgba(255, 122, 85, 0.35);
  cursor: pointer;
}


/* ===============================
   会員申込 利用規約モーダル
================================ */

.membership-terms-modal {
  position: fixed;
  inset: 0;
  display: none;
  z-index: 9999;
}

.membership-terms-modal.is-open {
  display: block;
}

.membership-terms-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
}

.membership-terms-modal__content {
  position: relative;
  max-width: 720px;
  width: 90%;
  margin: 40px auto;
  background: #ffffff;
  border-radius: 16px;
  padding: 24px 24px 28px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.25);
}

.membership-terms-modal__title {
  margin: 0 0 16px;
  font-size: 24px;
  font-weight: 700;
  color: #005bac;
}

/* 本文はスクロールさせる */
.membership-terms-modal__body {
  max-height: 60vh;
  overflow-y: auto;
  font-size: 14px;
  line-height: 1.6;      /* 行間をしっかり取る */
  white-space: normal;   /* 折り返しを有効にする */
  color: #333;
}

/* 段落ごとの余白 */
.membership-terms-modal__body p {
  all: unset;            /* ← 既存の nth-of-type の影響を完全リセット */
  display: block;
  font-size: 14px;
  line-height: 1.7;
  margin: 0 0 1em;
  color: #333;
  white-space: normal;
}

/* ×ボタン */
.membership-terms-modal__close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: none;
  background: #f4f6fb;
  color: #333;
  font-size: 18px;
  font-weight: 700;
  cursor: pointer;
}

/* 利用規約リンクの見た目 */
.membership-apply-terms-text {
  font-size: 14px;
  margin-bottom: 10px;
}

.membership-terms-link {
  color: #005bac;
  text-decoration: underline;
}

/* SP */
@media (max-width: 768px) {
  .membership-terms-modal__content {
    margin: 30px auto;
    padding: 20px 18px 22px;
  }
}

/* 利用規約チェックの中央寄せ */
.membership-apply-group--terms {
  text-align: center;
}

.membership-terms-accept {
  display: inline-block;
  margin-top: 8px;
  font-size: 15px;
}

.membership-apply-form .wpcf7-form .membership-terms-modal__body p {
  all: unset;               /* 既存の p スタイルをいったん全部リセット */
  position: static;         /* 念のため position もリセット */
  display: block;
  font-size: 14px;
  line-height: 1.8;
  margin: 0 0 1em;
  color: #333;
  white-space: normal;
}

/* スマホ時のみ 利用規約テキストの被りを防止 */
@media (max-width: 480px) {
  .membership-apply-group--terms {
    text-align: left;       /* ← スマホは左寄せに */
  }

  .membership-apply-group--terms p,
  .membership-apply-terms-text {
    line-height: 1.8;       /* ← 行間広げて読みやすく */
    font-size: 14px;
  }

  .membership-terms-accept {
    margin-top: 12px;       /* ← チェックボックスに余白 */
  }
}

/* 利用規約説明テキスト：nth-of-type の影響をリセット */
.membership-apply-form .wpcf7-form p.membership-apply-terms-text {
  all: unset;              /* 既存の p:nth-of-type の指定を一旦まっさらに */
  display: block;
  margin: 0 0 8px;
  font-size: 14px;
  line-height: 1.8;        /* 行間を確保して重なり防止 */
  text-align: center;      /* レイアウトは今までどおり中央寄せ */
  color: #333;
}
/* ===============================
   月例会フォーム 利用規約 同意ブロック
================================ */

.knv-form-row-terms {
  text-align: center;
  margin-top: 24px;
}

.knv-terms-text {
  font-size: 14px;
  line-height: 1.8;
  margin: 0 0 8px;
}

.knv-terms-accept {
  display: inline-block;
  margin-top: 4px;
  font-size: 14px;
}

/* =========================
   FOOTER (Menu + Copyright)
========================= */
.site-footer {
  background: #1f2f3a;           /* 2枚目の濃いネイビー寄り */
  border-top: 2px solid #79c65a;  /* 下の細いグリーン線（不要なら削除OK） */
  padding: 22px 16px 18px;
  color: #fff;
  text-align: center;
}

.site-footer .footer-inner {
  max-width: var(--max-width, 1100px);
  margin: 0 auto;
}

/* メニュー全体 */
.site-footer .footer-nav {
  margin: 0 0 14px;
}

/* ul のデフォルト余白＆マーカーを消す */
.site-footer .footer-nav ul {
  list-style: none;      /* ←「・」消える */
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center; /* 中央寄せ */
  align-items: center;
  gap: 40px;               /* メニュー間の余白（好みで調整） */
  flex-wrap: wrap;         /* 画面が狭い時は折り返す */
}

/* li の余白も念のため */
.site-footer .footer-nav li {
  margin: 0;
  padding: 0;
}

/* リンクの見た目 */
.site-footer .footer-nav a {
  color: #fff;
  text-decoration: none;
  font-weight: 600;
  font-size: 16px;
  letter-spacing: 0.02em;
}

.site-footer .footer-nav a:hover,
.site-footer .footer-nav a:focus {
  opacity: 0.8;
  text-decoration: underline; /* 2枚目に近ければON、不要なら削除 */
}

/* コピーライト */
.site-footer .footer-copyright {
  margin: 0;
  font-size: 18px;
  line-height: 1.6;
  color: #fff;
}

/* スマホ時は間隔を少し詰める */
@media (max-width: 480px) {
  .site-footer .footer-nav ul {
    gap: 18px;
  }
  .site-footer .footer-nav a {
    font-size: 15px;
  }
  .site-footer .footer-copyright {
    font-size: 16px;
  }
}

/* =====================================================
   KNV LP スマホ余白調整（PDF指定箇所のみ）
   ※ PC / Tablet 影響なし
   ===================================================== */
@media (max-width: 768px) {

  /* -----------------------------
     L1：セクション上下余白
     ----------------------------- */

  #about.section-about,
  #activities.lp-section,
  #monthly-archive.lp-section,
  #petit.lp-section,
  #online.online-section,
  #growth-program.lp-section,
  #interview.lp-section,
  #voices.lp-section,
  #targets.lp-section,
  #plans.lp-section {
    padding-top: 48px;
    padding-bottom: 48px;
  }

  /* -----------------------------
     L2：見出しブロック内余白
     ----------------------------- */

  /* 共通：見出し直下の余白を詰める */
  #about .about-title,
  #activities .activities-heading__jp,
  #targets .targets-title,
  #plans .plans-title {
    margin-bottom: 8px;
  }

  #about .about-subtitle,
  #activities .activities-heading__en,
  #targets .targets-subtitle,
  #plans .plans-subtitle {
    margin-top: 0;
    margin-bottom: 20px;
  }

  /* -----------------------------
     L3：コンテンツ（grid / flex）間余白
     ----------------------------- */

  /* activities */
  #activities .activities-content {
    gap: 24px;
  }

  /* monthly archive cards */
  #monthly-archive .top-monthly-archive-grid {
    gap: 20px;
    margin-top: 24px;
  }

  /* interview / voice grids */
  #interview .interview-top-grid,
  #voices .voice-top-grid {
    gap: 20px;
    margin-top: 24px;
  }

  /* targets / plans */
  #targets .targets-grid,
  #plans .plans-grid {
    gap: 16px;
    margin-top: 24px;
  }

  /* -----------------------------
     L4：画像とテキストの間（最小限）
     ----------------------------- */

  /* about */
  #about .about-content {
    gap: 20px;
  }

  /* petit / online / growth */
  #petit .petit-inner,
  #online .online-content,
  #growth-program .growth-program-row {
    gap: 24px;
  }

}

@media (max-width: 768px) {

  /* オンラインコンテンツ：画像下の余白を詰める */
  #online .online-image {
    margin-bottom: 16px; /* ← 大きすぎる余白を圧縮 */
  }

  #online .online-image img {
    margin-bottom: 0;
    display: block; /* img下の謎余白対策 */
  }

  /* テキストブロック上の余白も最小限に */
  #online .online-text-block {
    margin-top: 0;
  }

}

@media (max-width: 768px) {

  /* online セクション：高さ制御を完全解除 */
  #online .online-content,
  #online .online-image {
    min-height: unset;
    height: auto;
  }

  /* 比率固定・疑似余白対策 */
  #online .online-image {
    padding-bottom: 0;
  }

  /* 念のため stretch を解除 */
  #online .online-content {
    align-items: flex-start;
  }

}

/* PC：左右2カラム */
@media (min-width: 769px) {
  #online .online-content {
    display: flex;
    gap: 40px;
    align-items: center;
  }

  #online .online-image {
    order: 2;
  }

  #online .online-text-block {
    order: 1;
  }
}

/* =========================
   ONLINE SECTION SP余白調整
========================= */
@media (max-width: 768px) {

  .online-inner--tight {
    padding-top: 24px !important;
    padding-bottom: 24px !important;
    min-height: auto !important;
  }

  .online-content {
    margin-top: 0 !important;
    gap: 16px !important;
  }

  .online-image {
    margin-top: 0 !important;
  }

}