@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@400;500;700;900&display=swap');
/*
 * Theme Name: SWELL CHILD
 * Template: swell
 * Version: 1.0.0
 * */

/* ============================================================
   あやみenglish 統合スタイルシート
   貼り付け先：SWELL子テーマの style.css 末尾
   --------------------------------------------------------------
   貼り付け方：
   ① WP管理画面 → 外観 → テーマファイルエディター
   ② 「編集するテーマを選択」で SWELL CHILD を選び「選択」
   ③ 右の「テーマファイル」から style.css を選択
   ④ 既存内容の最下部にこのファイルの中身を全文貼り付け
   ⑤ 「ファイルを更新」
   ============================================================ */

/* ============================================================
   1. デザイントークン・共通スタイル（全ページ共通）
   ============================================================ */
/* ============================================================
   おうち英語 入江あやみ｜カスタムスタイル
   --------------------------------------------------------------
   設置場所：SWELL子テーマの style.css 末尾、もしくは
            「外観 → カスタマイズ → 追加CSS」に貼り付け
   依存：Google Fonts（Quicksand / Noto Sans JP / Caveat）
   ============================================================ */

/* ---- Google Fonts（HTMLの<head>に入れるのが理想だが、
        @importでも動作する） ---- */
        @import url('https://fonts.googleapis.com/css2?family=Caveat:wght@500;700&family=Noto+Sans+JP:wght@400;500;700&family=Quicksand:wght@400;500;600;700&display=swap');

        /* ============================================================
           デザイントークン（CSS変数）
           ============================================================ */
        :root {
          --ay-base: #FAF8F6;
          --ay-base-sub: #F7F2EF;
        
          --ay-pink: #D98B91;
          --ay-pink-btn: #C47880;
          --ay-pink-btn-hover: #B56B77;
          --ay-pink-dark: #C05E6A;
          --ay-pink-light: #F5D2D6;
          --ay-pink-bg: #FEF1F2;
        
          --ay-blue: #79B3C7;
          --ay-blue-dark: #4990A6;
          --ay-blue-soft: #C5DCE8;
          --ay-blue-bg: #EAF2F6;
        
          --ay-text: #2A2A2A;
          --ay-text-soft: #5C5C5C;
          --ay-text-sub: #8A8A8A;
        
          --ay-font-display: 'Noto Sans JP', sans-serif;
          --ay-font-body: 'Noto Sans JP', sans-serif;
          --ay-font-en: 'Quicksand', sans-serif;
          --ay-font-hand: 'Caveat', cursive;
        
          --ay-content-max: 1100px;
          --ay-content-narrow: 820px;
          --ay-radius-pill: 999px;
        }
        
        /* ============================================================
           ベースリセット（講座ページ範囲のみ）
           ============================================================ */
        .post .ay-page-hero,
        .post .ay-section,
        .post .ay-final-cta,
        .post .ay-sticky-cta {
          font-family: var(--ay-font-body);
          color: var(--ay-text);
          line-height: 1.9;
          letter-spacing: 0.04em;
        }
        
        [class^="ay-"] *,
        [class*=" ay-"] * { box-sizing: border-box; }
        
        /* ============================================================
           Page Hero（タイトル帯）
           ============================================================ */
        .ay-page-hero {
          background: var(--ay-base-sub);
          padding: 100px 24px 70px;
          text-align: center;
        }
        .ay-page-hero__inner {
          max-width: var(--ay-content-narrow);
          margin: 0 auto;
        }
        .ay-breadcrumb {
          font-family: var(--ay-font-en);
          font-size: 12px;
          color: var(--ay-text-sub);
          letter-spacing: 0.14em;
          margin: 0 0 24px;
        }
        .ay-breadcrumb a {
          color: inherit;
          text-decoration: none;
          transition: color 0.22s ease;
        }
        .ay-breadcrumb a:hover { color: var(--ay-pink-dark); }
        .ay-breadcrumb .sep { margin: 0 10px; opacity: 0.6; }
        
        .ay-en-title {
          font-family: var(--ay-font-en);
          font-weight: 500;
          font-size: 14px;
          color: var(--ay-pink-dark);
          letter-spacing: 0.3em;
          margin: 0 0 12px;
          text-transform: uppercase;
        }
        .ay-page-title {
          font-family: var(--ay-font-display);
          font-weight: 700;
          font-size: clamp(28px, 4.5vw, 48px);
          color: var(--ay-text);
          line-height: 1.4;
          margin: 0 0 24px;
          letter-spacing: 0.04em;
        }
        .ay-page-subtext {
          font-size: 15px;
          line-height: 2;
          color: var(--ay-text-soft);
          max-width: 620px;
          margin: 0 auto;
        }
        
        /* ============================================================
           Sticky CTA バー
           ============================================================ */
        .ay-sticky-cta {
          position: sticky;
          top: 80px; /* SWELLヘッダー高に応じて調整 */
          z-index: 30;
          background: rgba(255, 255, 255, 0.95);
          backdrop-filter: blur(10px);
          -webkit-backdrop-filter: blur(10px);
          border-bottom: 1px solid rgba(42, 42, 42, 0.08);
          box-shadow: 0 2px 14px -8px rgba(42, 42, 42, 0.12);
        }
        .ay-sticky-cta__inner {
          max-width: var(--ay-content-max);
          margin: 0 auto;
          padding: 14px 24px;
          display: flex;
          align-items: center;
          justify-content: space-between;
          gap: 20px;
          flex-wrap: wrap;
        }
        .ay-sticky-cta__text { margin: 0; }
        .ay-sticky-cta__lead {
          display: block;
          font-family: var(--ay-font-display);
          font-weight: 700;
          font-size: 14px;
        }
        .ay-sticky-cta__sub {
          display: block;
          font-size: 11.5px;
          color: var(--ay-text-sub);
          letter-spacing: 0.04em;
        }
        .ay-sticky-cta__btns {
          display: flex;
          gap: 10px;
          flex-wrap: wrap;
        }
        @media (max-width: 720px) {
          .ay-sticky-cta { position: static; }
          .ay-sticky-cta__inner { flex-direction: column; align-items: stretch; }
          .ay-sticky-cta__btns { justify-content: stretch; }
          .ay-sticky-cta__btns .ay-btn { flex: 1; justify-content: center; }
        }
        
        /* ============================================================
           セクション基盤
           ============================================================ */
        .ay-section {
          padding: 100px 24px;
          background: var(--ay-base);
        }
        .ay-section--alt { background: var(--ay-base-sub); }
        .ay-section-inner {
          max-width: var(--ay-content-max);
          margin: 0 auto;
        }
        .ay-section-inner--narrow { max-width: var(--ay-content-narrow); }
        
        .ay-eyebrow {
          font-family: var(--ay-font-en);
          font-weight: 600;
          font-size: 12px;
          letter-spacing: 0.16em;
          text-transform: uppercase;
          color: var(--ay-text-sub);
          margin: 0 0 16px;
          text-align: center;
        }
        .ay-eyebrow--pink { color: var(--ay-pink-dark); }
        .ay-eyebrow--blue { color: var(--ay-blue-dark); }
        
        .ay-section-title {
          font-family: var(--ay-font-display);
          font-weight: 700;
          font-size: clamp(22px, 3.4vw, 34px);
          color: var(--ay-text);
          line-height: 1.5;
          margin: 0 0 24px;
          letter-spacing: 0.04em;
        }
        .ay-section-title--center { text-align: center; }
        .ay-section-title__sub {
          display: block;
          font-size: 0.6em;
          font-weight: 500;
          color: var(--ay-text-soft);
          margin-top: 12px;
          letter-spacing: 0.06em;
        }
        .ay-section-lead {
          font-size: 15px;
          line-height: 2;
          color: var(--ay-text-soft);
          margin: 0 0 48px;
        }
        .ay-section-lead--center { text-align: center; }
        
        .ay-badge {
          display: inline-block;
          font-family: var(--ay-font-en);
          font-weight: 600;
          font-size: 11px;
          letter-spacing: 0.14em;
          text-transform: uppercase;
          padding: 6px 14px;
          border-radius: var(--ay-radius-pill);
          margin-bottom: 16px;
          color: #fff;
        }
        .ay-badge--pink { background: var(--ay-pink); }
        .ay-badge--blue { background: var(--ay-blue); }
        
        .ay-tags {
          list-style: none;
          margin: 0 0 36px;
          padding: 0;
          display: flex;
          flex-wrap: wrap;
          gap: 8px;
        }
        .ay-tags li {
          font-size: 12.5px;
          font-weight: 500;
          padding: 6px 14px;
          border-radius: var(--ay-radius-pill);
          background: var(--ay-pink-bg);
          color: var(--ay-pink-dark);
          border: 1px solid var(--ay-pink-light);
        }
        
        .ay-lead p {
          font-size: 15.5px;
          line-height: 2.1;
          color: var(--ay-text-soft);
          margin: 0 0 18px;
        }
        .ay-lead p:last-child { margin-bottom: 0; }
        
        .ay-note {
          font-size: 12.5px;
          color: var(--ay-text-sub);
          margin: 24px 0 0;
          line-height: 1.9;
        }
        .ay-note--center { text-align: center; }
        
        .ay-center { text-align: center; margin-top: 32px; }
        
        /* ============================================================
           ボタン
           ============================================================ */
        .ay-btn {
          display: inline-flex;
          align-items: center;
          justify-content: center;
          gap: 10px;
          padding: 14px 28px;
          border-radius: var(--ay-radius-pill);
          font-family: var(--ay-font-display);
          font-weight: 700;
          font-size: 14px;
          letter-spacing: 0.04em;
          text-decoration: none;
          border: none;
          cursor: pointer;
          transition: transform 0.22s ease, box-shadow 0.22s ease, background 0.22s ease, color 0.22s ease;
          line-height: 1;
        }
        .ay-btn__arrow {
          display: inline-flex;
          transition: transform 0.22s ease;
          flex-shrink: 0;
        }
        .ay-btn:hover .ay-btn__arrow { transform: translateX(3px); }
        .ay-btn:focus-visible { outline: 2px solid var(--ay-pink); outline-offset: 3px; }
        
        .ay-btn--primary {
          background: var(--ay-pink-btn);
          color: #fff;
          box-shadow: 0 6px 20px -8px rgba(196, 120, 128, 0.45);
        }
        .ay-btn--primary:hover {
          transform: translateY(-2px);
          background: var(--ay-pink-btn-hover);
          box-shadow: 0 10px 28px -8px rgba(196, 120, 128, 0.55);
          color: #fff;
        }
        .ay-btn--blue {
          background: var(--ay-blue);
          color: #fff;
          box-shadow: 0 6px 20px -8px rgba(121, 179, 199, 0.45);
        }
        .ay-btn--blue:hover {
          transform: translateY(-2px);
          background: var(--ay-blue-dark);
          color: #fff;
          box-shadow: 0 10px 28px -8px rgba(73, 144, 166, 0.5);
        }
        .ay-btn--line {
          background: #06C755;
          color: #fff;
          box-shadow: 0 6px 18px -6px rgba(6, 199, 85, 0.4);
        }
        .ay-btn--line:hover {
          transform: translateY(-2px);
          color: #fff;
          box-shadow: 0 10px 24px -8px rgba(6, 199, 85, 0.55);
        }
        .ay-btn--outline {
          background: transparent;
          color: var(--ay-text);
          border: 1.5px solid rgba(42, 42, 42, 0.3);
        }
        .ay-btn--outline:hover {
          border-color: var(--ay-text);
          transform: translateY(-2px);
        }
        .ay-btn--block { width: 100%; }
        .ay-btn--lg {
          padding: 18px 36px;
          font-size: 16px;
        }
        
        .ay-btn-row { display: flex; gap: 14px; flex-wrap: wrap; }
        .ay-btn-row--center { justify-content: center; }
        @media (max-width: 540px) {
          .ay-btn-row { flex-direction: column; align-items: stretch; }
          .ay-btn-row .ay-btn { width: 100%; }
        }
        
        /* ============================================================
           講座ラインナップ（カード）
           ============================================================ */
        .ay-courses {
          display: grid;
          grid-template-columns: 1fr 1fr;
          gap: 28px;
        }
        @media (max-width: 820px) {
          .ay-courses { grid-template-columns: 1fr; }
        }
        
        .ay-course-card {
          position: relative;
          border-radius: 18px;
          padding: 40px 32px;
          background: #fff;
          box-shadow: 0 8px 28px -16px rgba(42, 42, 42, 0.18);
          display: flex;
          flex-direction: column;
        }
        .ay-course-card--pink {
          background: var(--ay-pink-bg);
          border: 1.5px solid var(--ay-pink-light);
        }
        .ay-course-card--blue {
          background: var(--ay-blue-bg);
          border: 1.5px solid var(--ay-blue-soft);
        }
        .ay-course-card__badge {
          position: absolute;
          top: -12px;
          right: 24px;
          font-family: var(--ay-font-display);
          font-size: 11.5px;
          font-weight: 700;
          letter-spacing: 0.06em;
          padding: 6px 14px;
          border-radius: var(--ay-radius-pill);
          background: var(--ay-text);
          color: #fff;
        }
        .ay-course-card__type {
          font-family: var(--ay-font-en);
          font-size: 11.5px;
          font-weight: 600;
          letter-spacing: 0.14em;
          text-transform: uppercase;
          color: var(--ay-text-sub);
          margin: 0 0 8px;
        }
        .ay-course-card--pink .ay-course-card__type { color: var(--ay-pink-dark); }
        .ay-course-card--blue .ay-course-card__type { color: var(--ay-blue-dark); }
        .ay-course-card__title {
          font-family: var(--ay-font-display);
          font-weight: 700;
          font-size: clamp(18px, 2.4vw, 22px);
          margin: 0 0 14px;
          line-height: 1.5;
        }
        .ay-course-card__desc {
          font-size: 14px;
          line-height: 1.95;
          color: var(--ay-text-soft);
          margin: 0 0 24px;
        }
        .ay-course-card__includes {
          background: rgba(255, 255, 255, 0.65);
          border-radius: 12px;
          padding: 20px 22px;
          margin-bottom: 28px;
          flex-grow: 1;
        }
        .ay-course-card__includes-title {
          font-family: var(--ay-font-en);
          font-size: 11px;
          font-weight: 600;
          letter-spacing: 0.14em;
          text-transform: uppercase;
          color: var(--ay-text-sub);
          margin: 0 0 12px;
        }
        .ay-course-card__includes ul {
          list-style: none;
          margin: 0;
          padding: 0;
        }
        .ay-course-card__includes li {
          position: relative;
          padding-left: 22px;
          font-size: 13.5px;
          line-height: 1.9;
          color: var(--ay-text);
        }
        .ay-course-card__includes li::before {
          content: '';
          position: absolute;
          left: 0; top: 11px;
          width: 12px; height: 2px;
          background: var(--ay-pink);
          border-radius: 2px;
        }
        .ay-course-card--blue .ay-course-card__includes li::before { background: var(--ay-blue); }
        
        /* ============================================================
           カリキュラム（章リスト）
           ============================================================ */
        .ay-curriculum {
          list-style: none;
          margin: 0 0 24px;
          padding: 0;
          display: flex;
          flex-direction: column;
          gap: 16px;
          counter-reset: chapter;
        }
        .ay-curriculum__item {
          display: grid;
          grid-template-columns: 140px 1fr;
          gap: 24px;
          align-items: start;
          background: #fff;
          border-radius: 14px;
          padding: 24px 28px;
          box-shadow: 0 4px 18px -10px rgba(42, 42, 42, 0.12);
        }
        @media (max-width: 640px) {
          .ay-curriculum__item {
            grid-template-columns: 1fr;
            gap: 8px;
            padding: 20px 22px;
          }
        }
        .ay-curriculum__num {
          font-family: var(--ay-font-en);
          font-weight: 600;
          font-size: 13px;
          letter-spacing: 0.12em;
          text-transform: uppercase;
          color: var(--ay-blue-dark);
          padding-top: 4px;
        }
        .ay-curriculum__body h3 {
          font-family: var(--ay-font-display);
          font-weight: 700;
          font-size: 17px;
          margin: 0 0 8px;
          line-height: 1.5;
        }
        .ay-curriculum__body p {
          font-size: 14px;
          line-height: 1.95;
          color: var(--ay-text-soft);
          margin: 0;
        }
        
        /* ============================================================
           受講の流れ
           ============================================================ */
        .ay-flow {
          list-style: none;
          margin: 0;
          padding: 0;
          display: flex;
          flex-direction: column;
          gap: 0;
          position: relative;
        }
        .ay-flow::before {
          content: '';
          position: absolute;
          left: 27px;
          top: 30px;
          bottom: 30px;
          width: 1.5px;
          background: var(--ay-blue-soft);
        }
        @media (max-width: 540px) {
          .ay-flow::before { left: 19px; }
        }
        .ay-flow__item {
          display: flex;
          align-items: flex-start;
          gap: 20px;
          padding: 20px 0;
          position: relative;
        }
        .ay-flow__num {
          flex-shrink: 0;
          width: 56px;
          height: 56px;
          border-radius: 50%;
          background: #fff;
          border: 2px solid var(--ay-blue);
          color: var(--ay-blue-dark);
          font-family: var(--ay-font-en);
          font-weight: 700;
          font-size: 18px;
          letter-spacing: 0.04em;
          display: flex;
          align-items: center;
          justify-content: center;
          position: relative;
          z-index: 1;
        }
        @media (max-width: 540px) {
          .ay-flow__num { width: 40px; height: 40px; font-size: 14px; }
        }
        .ay-flow__body { padding-top: 12px; }
        .ay-flow__body h3 {
          font-family: var(--ay-font-display);
          font-weight: 700;
          font-size: 17px;
          margin: 0 0 6px;
        }
        .ay-flow__body p {
          font-size: 14px;
          line-height: 1.95;
          color: var(--ay-text-soft);
          margin: 0;
        }
        
        /* ============================================================
           受講生の声（吹き出しカード）
           ============================================================ */
        .ay-voices {
          display: grid;
          grid-template-columns: repeat(3, 1fr);
          gap: 28px;
        }
        @media (max-width: 900px) { .ay-voices { grid-template-columns: 1fr; max-width: 600px; margin: 0 auto; } }
        
        .ay-bubble {
          position: relative;
          margin: 0;
          border-radius: 18px 18px 18px 4px;
          padding: 28px 28px 24px;
          box-shadow: 0 8px 28px -14px rgba(42, 42, 42, 0.18);
        }
        .ay-bubble--pink {
          background: var(--ay-pink-bg);
          border: 1.5px solid var(--ay-pink-light);
        }
        .ay-bubble--pink::after {
          content: '';
          position: absolute;
          bottom: -13px;
          left: 22px;
          width: 0; height: 0;
          border-style: solid;
          border-width: 14px 10px 0 0;
          border-color: var(--ay-pink-light) transparent transparent transparent;
        }
        .ay-bubble blockquote {
          margin: 0;
          font-size: 14.5px;
          line-height: 2;
          color: var(--ay-text);
          font-style: normal;
        }
        .ay-bubble__foot {
          display: flex;
          align-items: center;
          gap: 12px;
          margin-top: 18px;
          padding-left: 4px;
        }
        .ay-bubble__avatar {
          width: 38px;
          height: 38px;
          border-radius: 50%;
          background: var(--ay-pink-light);
          color: var(--ay-pink-dark);
          font-family: var(--ay-font-display);
          font-weight: 700;
          font-size: 16px;
          display: flex;
          align-items: center;
          justify-content: center;
          flex-shrink: 0;
          border: 2px solid #fff;
          box-shadow: 0 2px 8px -4px rgba(42, 42, 42, 0.2);
        }
        .ay-bubble__speaker {
          font-size: 12px;
          color: var(--ay-text-sub);
          letter-spacing: 0.06em;
        }
        
        /* ============================================================
           FAQ（アコーディオン）
           ============================================================ */
        .ay-faq {
          display: flex;
          flex-direction: column;
          gap: 12px;
        }
        .ay-faq__item {
          background: #fff;
          border-radius: 12px;
          box-shadow: 0 4px 16px -10px rgba(42, 42, 42, 0.12);
          overflow: hidden;
        }
        .ay-faq__item summary {
          position: relative;
          list-style: none;
          cursor: pointer;
          padding: 22px 56px 22px 28px;
          font-family: var(--ay-font-display);
          font-weight: 700;
          font-size: 15px;
          color: var(--ay-text);
          line-height: 1.6;
          transition: background 0.22s ease;
        }
        .ay-faq__item summary::-webkit-details-marker { display: none; }
        .ay-faq__item summary::before {
          content: 'Q.';
          font-family: var(--ay-font-en);
          font-weight: 700;
          color: var(--ay-pink-dark);
          margin-right: 10px;
          letter-spacing: 0.04em;
        }
        .ay-faq__item summary::after {
          content: '';
          position: absolute;
          right: 28px;
          top: 50%;
          width: 12px;
          height: 12px;
          border-right: 2px solid var(--ay-text-sub);
          border-bottom: 2px solid var(--ay-text-sub);
          transform: translateY(-70%) rotate(45deg);
          transition: transform 0.25s ease;
        }
        .ay-faq__item[open] summary::after {
          transform: translateY(-30%) rotate(-135deg);
        }
        .ay-faq__item summary:hover { background: rgba(217, 139, 145, 0.05); }
        .ay-faq__item p {
          margin: 0;
          padding: 0 28px 24px 28px;
          font-size: 14px;
          line-height: 2;
          color: var(--ay-text-soft);
        }
        
        /* ============================================================
           最終CTA
           ============================================================ */
        .ay-final-cta {
          background: linear-gradient(180deg, var(--ay-pink-bg) 0%, var(--ay-base-sub) 100%);
          padding: 100px 24px;
          text-align: center;
        }
        .ay-final-cta__inner {
          max-width: var(--ay-content-narrow);
          margin: 0 auto;
        }
        .ay-final-cta__catch {
          font-family: var(--ay-font-display);
          font-weight: 700;
          font-size: clamp(22px, 3.4vw, 32px);
          line-height: 1.7;
          margin: 0 0 24px;
          letter-spacing: 0.04em;
        }
        .ay-final-cta__note {
          font-size: 14px;
          color: var(--ay-text-soft);
          margin: 0 0 36px;
          line-height: 1.95;
        }
        
        /* ============================================================
           モバイル最適化
           ============================================================ */
        @media (max-width: 640px) {
          .ay-section { padding: 70px 18px; }
          .ay-page-hero { padding: 80px 20px 56px; }
          .ay-final-cta { padding: 70px 20px; }
          .ay-course-card { padding: 32px 24px; }
        }
        
        @media (prefers-reduced-motion: reduce) {
          .ay-btn, .ay-btn__arrow, .ay-faq__item summary::after {
            transition: none !important;
          }
        }
        
        
        /* ============================================================
           2. 規約系ページCSS（P-07 プライバシー / P-08 特商法）
           ============================================================ */
        /* ============================================
           規約系ページ共通CSS（P-07 / P-08）
           貼り付け先：外観 → カスタマイズ → 追加CSS（custom-style.cssの後に追加）
           ============================================ */
        
        /* ページヘッダー（パンくず + ENタイトル + h1） */
        .page-header {
          padding: 120px 24px 64px;
          background: var(--color-base-sub, #F7F2EF);
          text-align: center;
          position: relative;
        }
        .page-header .breadcrumb {
          font-family: var(--font-jp-body, 'Noto Sans JP', sans-serif);
          font-size: 12px;
          color: var(--color-text-soft, #6B6560);
          letter-spacing: 0.06em;
          margin-bottom: 24px;
        }
        .page-header .breadcrumb a {
          color: var(--color-text-soft, #6B6560);
          text-decoration: none;
          transition: color 0.2s ease;
        }
        .page-header .breadcrumb a:hover { color: var(--color-pink-dark, #C05E6A); }
        .page-header .breadcrumb .sep {
          margin: 0 10px;
          color: var(--color-text-sub, #B8B0A8);
        }
        .page-header .en-title {
          font-family: 'EB Garamond', 'Quicksand', serif;
          font-style: italic;
          font-size: clamp(14px, 1.4vw, 18px);
          letter-spacing: 0.3em;
          color: var(--color-pink-dark, #C05E6A);
          margin-bottom: 12px;
          text-transform: uppercase;
        }
        .page-header h1 {
          font-family: var(--font-jp-display, 'Noto Sans JP', sans-serif);
          font-weight: 700;
          font-size: clamp(28px, 4vw, 42px);
          line-height: 1.4;
          letter-spacing: 0.06em;
          color: var(--color-text, #2A2A2A);
          margin: 0;
        }
        
        /* 規約本文 */
        .legal-doc {
          background: var(--color-base, #FAF8F6);
          padding: 80px 24px 120px;
        }
        .legal-inner {
          max-width: 760px;
          margin: 0 auto;
        }
        .legal-doc .legal-intro {
          font-family: var(--font-jp-body, 'Noto Sans JP', sans-serif);
          font-size: 15px;
          line-height: 2;
          color: var(--color-text, #2A2A2A);
          margin-bottom: 48px;
          letter-spacing: 0.04em;
        }
        .legal-doc h2 {
          font-family: var(--font-jp-display, 'Noto Sans JP', sans-serif);
          font-weight: 700;
          font-size: 17px;
          color: var(--color-text, #2A2A2A);
          letter-spacing: 0.06em;
          margin: 48px 0 16px;
          padding-bottom: 10px;
          border-bottom: 2px solid var(--color-pink-light, #F5D2D6);
          line-height: 1.5;
        }
        .legal-doc h2:first-of-type { margin-top: 0; }
        .legal-doc p {
          font-family: var(--font-jp-body, 'Noto Sans JP', sans-serif);
          font-size: 14.5px;
          line-height: 2;
          color: var(--color-text, #2A2A2A);
          letter-spacing: 0.04em;
          margin: 0 0 16px;
        }
        .legal-doc ul {
          font-family: var(--font-jp-body, 'Noto Sans JP', sans-serif);
          font-size: 14.5px;
          line-height: 2;
          color: var(--color-text, #2A2A2A);
          letter-spacing: 0.04em;
          margin: 0 0 16px;
          padding-left: 24px;
        }
        .legal-doc ul li {
          padding: 4px 0;
          list-style: disc;
        }
        
        /* 規約用テーブル（特商法） */
        .legal-table {
          width: 100%;
          border-collapse: collapse;
          margin: 0 0 32px;
          font-family: var(--font-jp-body, 'Noto Sans JP', sans-serif);
          font-size: 14.5px;
          line-height: 1.9;
          letter-spacing: 0.03em;
        }
        .legal-table tr {
          border-bottom: 1px solid rgba(42,42,42,0.1);
        }
        .legal-table th {
          text-align: left;
          vertical-align: top;
          width: 200px;
          padding: 20px 16px 20px 0;
          font-weight: 700;
          color: var(--color-text, #2A2A2A);
          background: transparent;
          letter-spacing: 0.04em;
        }
        .legal-table td {
          padding: 20px 0;
          color: var(--color-text, #2A2A2A);
          vertical-align: top;
        }
        
        /* 規約用定義リスト（プライバシー） */
        .legal-info {
          margin: 16px 0 32px;
          font-family: var(--font-jp-body, 'Noto Sans JP', sans-serif);
          font-size: 14.5px;
          line-height: 1.9;
          display: grid;
          grid-template-columns: 140px 1fr;
          gap: 8px 24px;
        }
        .legal-info dt {
          font-weight: 700;
          color: var(--color-text, #2A2A2A);
        }
        .legal-info dd {
          margin: 0;
          color: var(--color-text, #2A2A2A);
        }
        .legal-info a {
          color: var(--color-pink-dark, #C05E6A);
          text-decoration: underline;
        }
        
        .legal-date {
          margin-top: 64px !important;
          text-align: right;
          font-size: 13px !important;
          color: var(--color-text-soft, #6B6560) !important;
        }
        
        /* レスポンシブ */
        @media (max-width: 600px) {
          .page-header { padding: 100px 20px 48px; }
          .legal-doc { padding: 56px 20px 80px; }
          .legal-table th { width: 130px; padding-right: 12px; font-size: 13px; }
          .legal-table td { font-size: 13px; }
          .legal-info { grid-template-columns: 1fr; gap: 4px 0; }
          .legal-info dt { margin-top: 12px; }
        }
        
        
        /* ============================================================
           3. P-01 プロフィール（about）専用CSS
           ============================================================ */
        /* About ページ固有 */
        .site-header { background: rgba(250,248,246,0.92); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: 0 2px 14px -8px rgba(42,42,42,0.15); }
        .site-header .logo, .site-header nav a { color: var(--color-text); text-shadow: none; }
        .site-header .logo .sublogo { color: var(--color-text-soft); }
        
        .page-header { background: linear-gradient(180deg, var(--color-base-sub) 0%, var(--color-base) 100%); padding: 180px 24px 100px; }
        .page-header::before {
          content: 'ABOUT';
          position: absolute; top: 50%; left: 50%;
          transform: translate(-50%, -50%);
          font-family: var(--font-en-serif);
          font-style: italic;
          font-size: clamp(100px, 18vw, 220px);
          color: var(--color-pink-light);
          opacity: 0.3;
          letter-spacing: 0.02em;
          pointer-events: none;
          z-index: 0;
        }
        .page-header > * { position: relative; z-index: 1; }
        .page-header .subtext {
          font-family: 'Caveat', cursive;
          font-weight: 700;
          font-size: 28px;
          color: var(--color-pink-dark);
          max-width: none;
          letter-spacing: 0.02em;
          line-height: 1.6;
          margin-top: 12px;
          white-space: pre-line;
        }
        
        /* プロフィールセクション */
        .profile-sec { padding: 120px 24px; background: var(--color-base); }
        .profile-grid {
          display: grid;
          grid-template-columns: 0.85fr 1.15fr;
          gap: 72px;
          max-width: var(--content-max);
          margin: 0 auto;
          align-items: start;
        }
        .profile-photo {
          aspect-ratio: 3/4;
          border-radius: var(--radius-sm);
          background: var(--color-base-sub);
          overflow: hidden;
          box-shadow: 0 24px 60px -24px rgba(42,42,42,0.3);
          position: relative;
        }
        .profile-photo img { width: 100%; height: 100%; object-fit: cover; }
        .profile-photo::before {
          content: ''; position: absolute;
          inset: -20px -20px auto auto;
          width: 110px; height: 110px;
          background: var(--color-pink-light);
          border-radius: 50%;
          z-index: -1; opacity: 0.6;
        }
        .profile-copy .tag {
          display: inline-block;
          padding: 8px 16px;
          background: var(--color-pink-light);
          color: var(--color-pink-dark);
          border-radius: var(--radius-pill);
          font-family: var(--font-jp-body);
          font-size: 12px;
          letter-spacing: 0.12em;
          margin-bottom: 18px;
        }
        .profile-copy h2 {
          font-family: var(--font-jp-display);
          font-weight: 700;
          font-size: clamp(32px, 4vw, 48px);
          margin: 0 0 6px;
          letter-spacing: 0.02em;
        }
        .profile-copy .name-en {
          font-family: var(--font-en-serif);
          font-style: italic;
          font-size: 22px;
          color: var(--color-text-soft);
          letter-spacing: 0.04em;
          margin-bottom: 16px;
        }
        .profile-copy .title {
          font-family: var(--font-jp-body);
          font-size: 14.5px;
          color: var(--color-text-soft);
          line-height: 1.9;
          margin: 0 0 36px;
          letter-spacing: 0.04em;
          padding-bottom: 28px;
          border-bottom: 1px solid rgba(42,42,42,0.1);
        }
        .profile-copy .bio {
          font-family: var(--font-jp-body);
          font-size: 15px;
          line-height: 2.2;
          color: var(--color-text);
          letter-spacing: 0.04em;
          white-space: pre-line;
          margin: 0;
        }
        
        /* ストーリーセクション */
        .story-sec {
          padding: 140px 24px;
          background: var(--color-base-sub);
          position: relative;
          overflow: hidden;
        }
        .story-sec::before {
          content: '"';
          position: absolute;
          top: 80px; left: 8%;
          font-family: var(--font-en-serif);
          font-size: 280px;
          color: var(--color-pink-light);
          opacity: 0.4;
          line-height: 0.8;
        }
        .story-inner {
          max-width: var(--content-narrow);
          margin: 0 auto;
          position: relative;
          z-index: 1;
        }
        .story-inner h2 {
          font-family: var(--font-jp-display);
          font-weight: 500;
          font-size: clamp(28px, 3.8vw, 42px);
          line-height: 1.6;
          color: var(--color-text);
          margin: 0 0 48px;
          letter-spacing: 0.04em;
          text-align: center;
        }
        .story-inner h2 em {
          font-style: normal;
          color: var(--color-pink-dark);
          font-weight: 700;
          background-image: linear-gradient(to top, rgba(232,165,165,0.28) 48%, transparent 48%);
          padding: 0 3px;
        }
        .story-inner p {
          font-family: var(--font-jp-body);
          font-size: 15.5px;
          line-height: 2.2;
          color: var(--color-text);
          margin: 0 0 24px;
          letter-spacing: 0.04em;
        }
        .story-inner p:last-child { margin-bottom: 0; }
        
        /* メソッドセクション */
        .method-sec { padding: 120px 24px; background: var(--color-base); }
        .method-header { text-align: center; max-width: 720px; margin: 0 auto 72px; }
        .method-header h2 {
          font-family: var(--font-jp-display);
          font-weight: 500;
          font-size: clamp(26px, 3.4vw, 38px);
          margin: 8px 0 0;
          line-height: 1.55;
        }
        .method-cards {
          display: grid;
          grid-template-columns: repeat(3, 1fr);
          gap: 28px;
          max-width: var(--content-max);
          margin: 0 auto;
        }
        .method-card {
          background: var(--color-base-sub);
          padding: 44px 32px 36px;
          border-radius: var(--radius-sm);
          position: relative;
          transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        .method-card:hover {
          transform: translateY(-4px);
          box-shadow: 0 16px 40px -18px rgba(42,42,42,0.2);
        }
        .method-card .n {
          font-family: var(--font-en-serif);
          font-style: italic;
          font-weight: 500;
          font-size: 42px;
          color: var(--color-pink-dark);
          line-height: 1;
          display: block;
          margin-bottom: 14px;
        }
        .method-card h3 {
          font-family: var(--font-jp-display);
          font-weight: 700;
          font-size: 18px;
          margin: 0 0 16px;
          letter-spacing: 0.03em;
          line-height: 1.6;
        }
        .method-card p {
          font-family: var(--font-jp-body);
          font-size: 13.5px;
          line-height: 2;
          color: var(--color-text-soft);
          margin: 0;
          letter-spacing: 0.03em;
        }
        
        /* 経歴セクション */
        .profile-history { padding: 120px 24px; background: var(--color-base-sub); }
        .history-header { text-align: center; margin-bottom: 56px; }
        .history-header .eyebrow.en { display: block; }
        .history-table {
          max-width: 720px;
          margin: 0 auto;
        }
        .history-row {
          display: grid;
          grid-template-columns: 160px 1fr;
          gap: 32px;
          padding: 24px 0;
          border-bottom: 1px solid rgba(42,42,42,0.1);
          align-items: baseline;
        }
        .history-row:first-child { border-top: 1px solid rgba(42,42,42,0.1); }
        .history-row .year {
          font-family: var(--font-en-serif);
          font-style: italic;
          font-weight: 500;
          font-size: 15px;
          color: var(--color-pink-dark);
          letter-spacing: 0.04em;
        }
        .history-row .desc {
          font-family: var(--font-jp-body);
          font-size: 14.5px;
          line-height: 1.9;
          color: var(--color-text);
          letter-spacing: 0.04em;
        }
        
        /* メディアセクション */
        .media-sec { padding: 120px 24px; background: var(--color-base); text-align: center; }
        .media-sec .eyebrow.en { display: block; }
        .media-sec h2 {
          font-family: var(--font-jp-display);
          font-weight: 500;
          font-size: clamp(26px, 3vw, 36px);
          margin: 8px 0 48px;
        }
        .media-logos-grid {
          display: flex; gap: 32px; flex-wrap: wrap; justify-content: center;
          max-width: var(--content-max); margin: 0 auto;
        }
        .media-logos-grid .logo {
          width: 160px; height: 70px;
          background: var(--color-base-sub);
          border: 1px dashed rgba(42,42,42,0.2);
          border-radius: var(--radius-sm);
          display: flex; align-items: center; justify-content: center;
          color: var(--color-text-sub);
          font-family: var(--font-en-display);
          font-size: 11px;
          letter-spacing: 0.16em;
        }
        
        /* SNSセクション */
        .sns-sec { padding: 120px 24px; background: var(--color-base-sub); }
        .sns-sec .eyebrow.en { display: block; text-align: center; }
        .sns-sec h2 {
          font-family: var(--font-jp-display);
          font-weight: 500;
          font-size: clamp(26px, 3vw, 36px);
          text-align: center;
          margin: 8px 0 56px;
        }
        .sns-cards {
          display: grid;
          grid-template-columns: repeat(3, 1fr);
          gap: 24px;
          max-width: var(--content-max);
          margin: 0 auto;
        }
        .sns-card {
          background: #FFFFFF;
          padding: 36px 28px 32px;
          border-radius: var(--radius-sm);
          text-decoration: none;
          color: inherit;
          transition: transform 0.3s ease, box-shadow 0.3s ease;
          box-shadow: 0 8px 24px -16px rgba(42,42,42,0.15);
        }
        .sns-card:hover {
          transform: translateY(-4px);
          box-shadow: 0 16px 40px -18px rgba(42,42,42,0.22);
        }
        .sns-card .platform {
          font-family: var(--font-en-display);
          font-weight: 600;
          font-size: 22px;
          color: var(--color-pink-dark);
          letter-spacing: 0.02em;
          margin-bottom: 16px;
          display: block;
        }
        .sns-card p {
          font-family: var(--font-jp-body);
          font-size: 13.5px;
          line-height: 2;
          color: var(--color-text-soft);
          margin: 0;
          letter-spacing: 0.03em;
        }
        
        /* Final CTA */
        .final-cta {
          padding: 140px 24px;
          background: linear-gradient(135deg, var(--color-text) 0%, #3d3531 100%);
          color: #FAF8F6;
          text-align: center;
        }
        .final-cta h2 {
          font-family: var(--font-jp-display);
          font-weight: 500;
          font-size: clamp(26px, 3.6vw, 40px);
          color: #FFFFFF;
          margin: 0 0 24px;
          line-height: 1.55;
          letter-spacing: 0.04em;
        }
        .final-cta p {
          font-family: var(--font-jp-body);
          font-size: 15px;
          line-height: 2.1;
          color: rgba(255,255,255,0.82);
          margin: 0 auto 40px;
          max-width: 560px;
          margin-inline: auto;
          letter-spacing: 0.04em;
        }
        .final-cta .btn-row .btn-primary { background: #FFFFFF; color: var(--color-text); }
        .final-cta .btn-row .btn-primary:hover { background: var(--color-pink-light); }
        .final-cta .btn-row .btn-outline { color: #FFFFFF; border-color: rgba(255,255,255,0.5); }
        .final-cta .btn-row .btn-outline:hover { background: #FFFFFF; color: var(--color-text); }
        
        @media (max-width: 860px) {
          .profile-sec, .story-sec, .method-sec, .profile-history, .media-sec, .sns-sec, .final-cta { padding: 90px 20px; }
          .profile-grid { grid-template-columns: 1fr; gap: 48px; }
          .profile-photo { max-width: 320px; margin: 0 auto; }
          .method-cards { grid-template-columns: 1fr; gap: 16px; }
          .history-row { grid-template-columns: 1fr; gap: 6px; padding: 18px 0; }
          .sns-cards { grid-template-columns: 1fr; gap: 14px; }
        }
        
        
        /* ============================================================
           4. P-02 おうち英語とは専用CSS
           ============================================================ */
        .site-header { background: rgba(250,248,246,0.92); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: 0 2px 14px -8px rgba(42,42,42,0.15); }
        .site-header .logo, .site-header nav a { color: var(--color-text); text-shadow: none; }
        .site-header .logo .sublogo { color: var(--color-text-soft); }
        
        .page-header { background: linear-gradient(180deg, var(--color-base-sub) 0%, var(--color-base) 100%); padding: 180px 24px 100px; overflow: hidden; }
        .page-header::before {
          content: 'OUCHI EIGO';
          position: absolute; top: 50%; left: 50%;
          transform: translate(-50%, -50%);
          font-family: var(--font-en-serif);
          font-style: italic;
          font-size: clamp(70px, 12vw, 150px);
          color: var(--color-pink-light);
          opacity: 0.3;
          letter-spacing: 0.02em;
          white-space: nowrap;
          pointer-events: none;
        }
        .page-header > * { position: relative; z-index: 1; }
        
        /* 定義セクション */
        .definition {
          padding: 130px 24px;
          background: var(--color-base);
          position: relative;
        }
        .definition-inner {
          max-width: var(--content-narrow);
          margin: 0 auto;
          text-align: center;
        }
        .definition h2 {
          font-family: var(--font-jp-display);
          font-weight: 500;
          font-size: clamp(30px, 4vw, 46px);
          margin: 8px 0 48px;
          letter-spacing: 0.04em;
          line-height: 1.5;
        }
        .definition h2 em {
          font-style: normal;
          color: var(--color-pink-dark);
          font-weight: 700;
          background-image: linear-gradient(to top, rgba(232,165,165,0.28) 48%, transparent 48%);
          padding: 0 3px;
        }
        .definition p {
          font-family: var(--font-jp-body);
          font-size: 16px;
          line-height: 2.4;
          color: var(--color-text);
          margin: 0 0 24px;
          letter-spacing: 0.04em;
        }
        
        /* 誤解セクション */
        .misconception {
          padding: 130px 24px;
          background: var(--color-base-sub);
        }
        .misconception-header { text-align: center; max-width: 720px; margin: 0 auto 64px; }
        .misconception-header h2 {
          font-family: var(--font-jp-display);
          font-weight: 500;
          font-size: clamp(26px, 3.6vw, 40px);
          line-height: 1.55;
          margin: 8px 0 14px;
          letter-spacing: 0.04em;
        }
        .misconception-header .sub {
          font-family: 'Caveat', cursive;
          font-weight: 700;
          font-size: 26px;
          color: var(--color-pink-dark);
          margin: 0;
        }
        .misconception-grid {
          display: grid;
          grid-template-columns: repeat(2, 1fr);
          gap: 20px;
          max-width: var(--content-max);
          margin: 0 auto;
        }
        .misc-card {
          background: #FFFFFF;
          padding: 36px 32px 32px;
          border-radius: var(--radius-sm);
          position: relative;
          transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        .misc-card:hover {
          transform: translateY(-3px);
          box-shadow: 0 14px 32px -18px rgba(42,42,42,0.2);
        }
        .misc-card .label {
          display: inline-block;
          font-family: var(--font-en-display);
          font-size: 11px;
          font-weight: 600;
          color: var(--color-text-sub);
          letter-spacing: 0.18em;
          margin-bottom: 10px;
        }
        .misc-card .q {
          font-family: var(--font-jp-display);
          font-weight: 700;
          font-size: 19px;
          color: var(--color-text);
          line-height: 1.6;
          margin: 0 0 20px;
          letter-spacing: 0.02em;
          padding-bottom: 20px;
          border-bottom: 1px dashed rgba(42,42,42,0.15);
        }
        .misc-card .a {
          display: flex; gap: 14px;
          font-family: var(--font-jp-body);
          font-size: 14px;
          line-height: 2.1;
          color: var(--color-text-soft);
          letter-spacing: 0.03em;
          margin: 0;
        }
        .misc-card .a::before {
          content: "It's Okay!";
          flex-shrink: 0;
          font-family: 'Caveat', cursive;
          font-weight: 700;
          font-size: 22px;
          color: var(--color-pink-dark);
          line-height: 1.3;
          transform: rotate(-3deg);
        }
        
        /* 3ステップ */
        .steps-sec {
          padding: 130px 24px;
          background: linear-gradient(180deg, var(--color-base) 0%, #EFE8E3 100%);
          position: relative;
          overflow: hidden;
        }
        .steps-header { text-align: center; max-width: 720px; margin: 0 auto 72px; }
        .steps-header h2 {
          font-family: var(--font-jp-display);
          font-weight: 500;
          font-size: clamp(26px, 3.6vw, 40px);
          line-height: 1.55;
          margin: 8px 0 14px;
        }
        .steps-header .sub {
          font-family: var(--font-jp-body);
          font-size: 14.5px;
          color: var(--color-text-soft);
          line-height: 2;
          margin: 0;
        }
        .step-list {
          display: flex;
          flex-direction: column;
          gap: 24px;
          max-width: var(--content-narrow);
          margin: 0 auto;
        }
        .step-row {
          background: #FFFFFF;
          padding: 36px 40px;
          border-radius: var(--radius-sm);
          display: grid;
          grid-template-columns: 140px 1fr;
          gap: 40px;
          align-items: center;
          box-shadow: 0 10px 30px -18px rgba(42,42,42,0.15);
          position: relative;
        }
        .step-row .label {
          text-align: center;
          padding-right: 32px;
          border-right: 1px solid rgba(42,42,42,0.1);
        }
        .step-row .label .step-n {
          font-family: 'Caveat', cursive;
          font-weight: 700;
          font-size: 22px;
          color: var(--color-pink-dark);
          letter-spacing: 0.02em;
          display: block;
          margin-bottom: 4px;
        }
        .step-row .label .num {
          font-family: var(--font-en-serif);
          font-style: italic;
          font-weight: 500;
          font-size: 48px;
          color: var(--color-pink);
          line-height: 1;
          display: block;
          margin-bottom: 10px;
        }
        .step-row .label h3 {
          font-family: var(--font-jp-display);
          font-weight: 700;
          font-size: 20px;
          color: var(--color-text);
          margin: 0;
          letter-spacing: 0.04em;
        }
        .step-row .label .jp {
          display: block;
          font-family: 'Caveat', cursive;
          font-weight: 700;
          font-size: 18px;
          color: var(--color-text-soft);
          margin-top: 6px;
        }
        .step-row .desc {
          font-family: var(--font-jp-body);
          font-size: 14.5px;
          line-height: 2.1;
          color: var(--color-text);
          margin: 0;
          letter-spacing: 0.03em;
        }
        
        /* メリット */
        .benefits { padding: 120px 24px; background: var(--color-base); }
        .benefits-header { text-align: center; max-width: 720px; margin: 0 auto 56px; }
        .benefits-header h2 {
          font-family: var(--font-jp-display);
          font-weight: 500;
          font-size: clamp(26px, 3.4vw, 38px);
          margin: 8px 0 0;
          line-height: 1.55;
          letter-spacing: 0.04em;
        }
        .benefits-list {
          max-width: var(--content-narrow);
          margin: 0 auto;
          display: flex; flex-direction: column; gap: 2px;
        }
        .benefit-row {
          display: flex; align-items: center; gap: 20px;
          padding: 24px 8px;
          border-bottom: 1px solid rgba(42,42,42,0.1);
          font-family: var(--font-jp-body);
          font-size: 15.5px;
          color: var(--color-text);
          letter-spacing: 0.04em;
        }
        .benefit-row:first-child { border-top: 1px solid rgba(42,42,42,0.1); }
        .benefit-row::before {
          content: '';
          flex-shrink: 0;
          width: 22px; height: 22px;
          background: var(--color-pink-light);
          border-radius: 50%;
          position: relative;
        }
        .benefit-row { position: relative; }
        .benefit-row::after {
          content: '✓';
          position: absolute;
          left: 13px;
          font-family: var(--font-en-hand);
          color: var(--color-pink-dark);
          font-weight: 700;
          font-size: 20px;
          line-height: 1;
          top: 50%;
          transform: translateY(-55%);
        }
        
        /* 英語教室との違い */
        .compare { padding: 130px 24px; background: var(--color-base-sub); }
        .compare-header { text-align: center; max-width: 720px; margin: 0 auto 56px; }
        .compare-header h2 {
          font-family: var(--font-jp-display);
          font-weight: 500;
          font-size: clamp(26px, 3.4vw, 38px);
          margin: 8px 0 0;
          line-height: 1.55;
        }
        .compare-table {
          max-width: var(--content-max);
          margin: 0 auto;
          background: #FFFFFF;
          border-radius: var(--radius-sm);
          overflow: hidden;
          box-shadow: 0 14px 40px -22px rgba(42,42,42,0.2);
        }
        .compare-table table {
          width: 100%;
          border-collapse: collapse;
          font-family: var(--font-jp-body);
        }
        .compare-table thead th {
          background: var(--color-base-sub);
          padding: 24px 20px;
          font-size: 16px;
          font-weight: 700;
          letter-spacing: 0.08em;
        }
        .compare-table thead th.ouchi {
          background: var(--color-pink-light);
          color: var(--color-pink-dark);
        }
        .compare-table thead th:first-child {
          text-align: left;
          padding-left: 32px;
          width: 180px;
          font-weight: 400;
          color: var(--color-text-sub);
          font-size: 12px;
          letter-spacing: 0.14em;
        }
        .compare-table tbody td {
          padding: 18px 20px;
          border-top: 1px solid rgba(42,42,42,0.06);
          font-size: 13.5px;
          line-height: 1.8;
          text-align: center;
          color: var(--color-text);
          letter-spacing: 0.03em;
        }
        .compare-table tbody td:first-child {
          text-align: left;
          padding-left: 32px;
          font-weight: 500;
          color: var(--color-text-soft);
          font-size: 13px;
        }
        .compare-table tbody td.ouchi {
          background: rgba(245,214,214,0.2);
          color: var(--color-pink-dark);
          font-weight: 500;
        }
        .compare-note {
          max-width: var(--content-max);
          margin: 32px auto 0;
          padding: 24px 28px;
          background: #FFFFFF;
          border-left: 3px solid var(--color-pink);
          border-radius: var(--radius-sm);
          font-family: var(--font-jp-body);
          font-size: 14px;
          line-height: 2;
          color: var(--color-text-soft);
          letter-spacing: 0.03em;
        }
        
        /* Final CTA */
        .final-cta {
          padding: 140px 24px;
          background: linear-gradient(135deg, var(--color-text) 0%, #3d3531 100%);
          color: #FAF8F6;
          text-align: center;
          position: relative;
          overflow: hidden;
        }
        .final-cta::after {
          content: none;
          position: absolute;
          left: 50%; top: 60px;
          transform: translateX(-50%) rotate(-4deg);
          font-family: 'Caveat', cursive;
          font-weight: 700;
          font-size: 52px;
          color: var(--color-pink);
          opacity: 0.85;
        }
        .final-cta-inner { position: relative; z-index: 1; margin-top: 60px; }
        .final-cta h2 {
          font-family: var(--font-jp-display);
          font-weight: 500;
          font-size: clamp(26px, 3.6vw, 40px);
          color: #FFFFFF;
          margin: 0 0 20px;
          letter-spacing: 0.04em;
        }
        .final-cta p {
          font-family: var(--font-jp-body);
          font-size: 15px;
          line-height: 2.1;
          color: rgba(255,255,255,0.85);
          margin: 0 0 40px;
          letter-spacing: 0.04em;
        }
        .final-cta .btn-row .btn-primary { background: #FFFFFF; color: var(--color-text); }
        .final-cta .btn-row .btn-primary:hover { background: var(--color-pink-light); }
        .final-cta .btn-row .btn-outline { color: #FFFFFF; border-color: rgba(255,255,255,0.5); }
        .final-cta .btn-row .btn-outline:hover { background: #FFFFFF; color: var(--color-text); }
        
        @media (max-width: 860px) {
          .definition, .misconception, .steps-sec, .benefits, .compare, .final-cta { padding: 90px 20px; }
          .misconception-grid { grid-template-columns: 1fr; gap: 14px; }
          .step-row { grid-template-columns: 1fr; gap: 24px; padding: 32px 24px; }
          .step-row .label { border-right: none; padding-right: 0; padding-bottom: 24px; border-bottom: 1px solid rgba(42,42,42,0.1); }
          .compare-table table { font-size: 12px; }
          .compare-table thead th { padding: 16px 10px; font-size: 13px; }
          .compare-table thead th:first-child { width: 80px; padding-left: 16px; }
          .compare-table tbody td { padding: 14px 8px; font-size: 12px; }
          .compare-table tbody td:first-child { padding-left: 16px; }
        }
        
        
        /* ============================================================
           5. P-04 受講生の変化（voice）専用CSS
           ============================================================ */
        /* ページ固有のスタイル */
        
        /* ページヘッダー：Voice用の大きな飾り文字 */
        .page-header {
          overflow: hidden;
        }
        .page-header::before {
          content: "Voice.";
          position: absolute;
          top: 36%;
          left: 50%;
          transform: translate(-50%, -50%);
          font-family: var(--font-en-serif);
          font-style: italic;
          font-weight: 400;
          font-size: clamp(160px, 26vw, 340px);
          color: rgba(212, 128, 128, 0.07);
          letter-spacing: -0.02em;
          pointer-events: none;
          white-space: nowrap;
          line-height: 1;
          z-index: 0;
        }
        .page-header > * { position: relative; z-index: 1; }
        
        /* ============================================
           リードセクション
           ============================================ */
        .lead-sec {
          padding: 110px 24px 70px;
          text-align: center;
        }
        .lead-sec .section-inner {
          max-width: 780px;
        }
        .lead-sec .eyebrow {
          margin-bottom: 18px;
        }
        .lead-sec .section-title {
          margin-bottom: 40px;
        }
        .lead-sec .worry-lines {
          font-family: var(--font-jp-body);
          font-size: 15px;
          line-height: 2.2;
          color: var(--color-text-soft);
          margin: 0 auto 32px;
          max-width: 560px;
        }
        .lead-sec .worry-lines span {
          display: block;
          padding: 4px 0;
        }
        .lead-sec .worry-lines span::before {
          content: "「";
          color: var(--color-pink-dark);
          opacity: 0.5;
        }
        .lead-sec .worry-lines span::after {
          content: "」";
          color: var(--color-pink-dark);
          opacity: 0.5;
        }
        .lead-sec .closing {
          font-family: var(--font-jp-body);
          font-size: 15.5px;
          line-height: 2.1;
          color: var(--color-text);
          margin: 32px auto 0;
          max-width: 540px;
          letter-spacing: 0.04em;
        }
        
        .lead-stats {
          display: grid;
          grid-template-columns: repeat(3, 1fr);
          gap: 32px;
          max-width: 720px;
          margin: 60px auto 0;
          padding-top: 40px;
          border-top: 1px solid rgba(42,42,42,0.08);
        }
        .lead-stats .stat {
          text-align: center;
        }
        .lead-stats .stat .num {
          font-family: var(--font-en-serif);
          font-style: italic;
          font-weight: 400;
          font-size: 48px;
          color: var(--color-pink-dark);
          line-height: 1;
          margin-bottom: 6px;
          letter-spacing: -0.01em;
        }
        .lead-stats .stat .label {
          font-family: var(--font-jp-body);
          font-size: 12px;
          color: var(--color-text-soft);
          letter-spacing: 0.1em;
        }
        
        /* ============================================
           受講生の声（カードリスト）
           ============================================ */
        .voices-sec {
          padding: 120px 24px;
          background: var(--color-base-sub);
          position: relative;
        }
        .voices-sec .section-head {
          text-align: center;
          margin-bottom: 72px;
        }
        .voices-sec .section-head .hand-mark {
          font-family: var(--font-en-hand);
          font-weight: 700;
          font-size: 32px;
          color: var(--color-pink-dark);
          margin: 0 0 8px;
          line-height: 1;
          display: inline-block;
          transform: rotate(-3deg);
        }
        .voices-sec .section-head h2 {
          font-family: var(--font-jp-display);
          font-weight: 500;
          font-size: clamp(26px, 3.4vw, 38px);
          color: var(--color-text);
          margin: 0;
          letter-spacing: 0.04em;
        }
        
        .voice-list {
          max-width: 960px;
          margin: 0 auto;
          display: flex;
          flex-direction: column;
          gap: 56px;
        }
        .voice-card {
          background: #FFFFFF;
          padding: 44px 48px 40px;
          border-radius: 4px;
          box-shadow: 0 20px 48px -24px rgba(42,42,42,0.18);
          position: relative;
        }
        .voice-card::before {
          content: "";
          position: absolute;
          top: 0; left: 0;
          width: 60px;
          height: 3px;
          background: var(--color-pink-dark);
        }
        
        .voice-head {
          display: flex;
          align-items: baseline;
          gap: 20px;
          flex-wrap: wrap;
          margin-bottom: 28px;
          padding-bottom: 20px;
          border-bottom: 1px dashed rgba(42,42,42,0.15);
        }
        .voice-head .no {
          font-family: var(--font-en-serif);
          font-style: italic;
          font-weight: 400;
          font-size: 40px;
          color: var(--color-pink-light);
          line-height: 1;
          letter-spacing: -0.02em;
        }
        .voice-head .who {
          font-family: var(--font-jp-display);
          font-weight: 500;
          font-size: 17px;
          color: var(--color-text);
          letter-spacing: 0.04em;
        }
        .voice-head .age {
          font-family: var(--font-jp-body);
          font-size: 13px;
          color: var(--color-text-sub);
          letter-spacing: 0.04em;
          margin-left: auto;
        }
        .voice-head .tag {
          flex-basis: 100%;
          font-family: var(--font-jp-body);
          font-size: 12px;
          color: var(--color-pink-dark);
          letter-spacing: 0.08em;
        }
        .voice-head .tag::before {
          content: "TAG";
          font-family: var(--font-en-display);
          font-weight: 500;
          font-size: 10px;
          letter-spacing: 0.2em;
          margin-right: 10px;
          padding: 3px 8px;
          background: var(--color-pink-light);
          color: var(--color-pink-dark);
          border-radius: 2px;
        }
        
        .voice-ba {
          display: grid;
          grid-template-columns: 1fr 1fr;
          gap: 0;
          margin-bottom: 28px;
          border: 1px solid rgba(42,42,42,0.1);
          border-radius: 2px;
          overflow: hidden;
        }
        .voice-ba .cell {
          padding: 22px 24px;
        }
        .voice-ba .cell.before {
          background: #FDFAF7;
          border-right: 1px solid rgba(42,42,42,0.1);
        }
        .voice-ba .cell.after {
          background: #FFF5F5;
        }
        .voice-ba .cell .label {
          display: inline-block;
          font-family: var(--font-en-display);
          font-weight: 500;
          font-size: 11px;
          letter-spacing: 0.2em;
          padding: 3px 10px;
          border-radius: 2px;
          margin-bottom: 12px;
        }
        .voice-ba .cell.before .label {
          color: var(--color-text-soft);
          background: rgba(42,42,42,0.06);
        }
        .voice-ba .cell.after .label {
          color: #FFFFFF;
          background: var(--color-pink-dark);
        }
        .voice-ba .cell p {
          font-family: var(--font-jp-body);
          font-size: 14px;
          line-height: 1.95;
          color: var(--color-text);
          margin: 0;
          letter-spacing: 0.04em;
        }
        
        .voice-quote {
          position: relative;
          padding: 4px 0 4px 28px;
          margin: 0;
          font-family: var(--font-jp-serif);
          font-size: 15px;
          line-height: 2.1;
          color: var(--color-text);
          letter-spacing: 0.06em;
          border-left: 2px solid var(--color-pink);
        }
        .voice-quote::before {
          content: "“";
          position: absolute;
          left: -2px;
          top: -28px;
          font-family: var(--font-en-serif);
          font-style: italic;
          font-size: 80px;
          color: var(--color-pink);
          opacity: 0.5;
          line-height: 1;
          pointer-events: none;
        }
        
        /* ============================================
           動画インタビュー
           ============================================ */
        .video-sec {
          padding: 120px 24px;
        }
        .video-sec .section-inner {
          max-width: 960px;
          text-align: center;
        }
        .video-sec .eyebrow {
          margin-bottom: 14px;
        }
        .video-sec .section-title {
          margin-bottom: 48px;
        }
        .video-grid {
          display: grid;
          grid-template-columns: repeat(2, 1fr);
          gap: 28px;
        }
        .video-card {
          background: var(--color-text);
          border-radius: 4px;
          aspect-ratio: 16 / 9;
          position: relative;
          overflow: hidden;
          cursor: pointer;
          display: flex;
          align-items: center;
          justify-content: center;
        }
        .video-card::before {
          content: "";
          position: absolute;
          inset: 0;
          background: linear-gradient(135deg, rgba(212,128,128,0.35) 0%, rgba(42,42,42,0.65) 100%);
        }
        .video-card .play {
          position: relative;
          width: 72px;
          height: 72px;
          border-radius: 50%;
          background: rgba(255,255,255,0.92);
          display: flex;
          align-items: center;
          justify-content: center;
          transition: transform 0.3s ease;
        }
        .video-card:hover .play { transform: scale(1.08); }
        .video-card .play::after {
          content: "";
          width: 0; height: 0;
          border-left: 14px solid var(--color-pink-dark);
          border-top: 9px solid transparent;
          border-bottom: 9px solid transparent;
          margin-left: 4px;
        }
        .video-card .caption {
          position: absolute;
          bottom: 18px;
          left: 20px;
          right: 20px;
          font-family: var(--font-jp-display);
          font-size: 13px;
          color: #FFFFFF;
          letter-spacing: 0.06em;
          text-align: left;
          text-shadow: 0 1px 6px rgba(0,0,0,0.3);
        }
        .video-note {
          font-family: var(--font-jp-body);
          font-size: 12.5px;
          color: var(--color-text-sub);
          margin-top: 28px;
          letter-spacing: 0.06em;
        }
        
        /* ============================================
           数字で見る変化
           ============================================ */
        .numbers-sec {
          padding: 120px 24px;
          background: var(--color-text);
          color: #E8E4E0;
          position: relative;
          overflow: hidden;
        }
        .numbers-sec::before {
          content: "by the numbers";
          position: absolute;
          bottom: -20px;
          right: 24px;
          font-family: var(--font-en-serif);
          font-style: italic;
          font-size: clamp(80px, 12vw, 160px);
          color: rgba(255,255,255,0.03);
          letter-spacing: -0.02em;
          pointer-events: none;
          line-height: 1;
        }
        .numbers-sec .section-inner {
          text-align: center;
          position: relative;
          z-index: 1;
        }
        .numbers-sec .eyebrow {
          color: var(--color-pink-light);
          margin-bottom: 14px;
        }
        .numbers-sec .section-title {
          color: #FFFFFF;
          margin-bottom: 14px;
        }
        .numbers-sec .lead {
          font-family: var(--font-jp-body);
          font-size: 14px;
          color: rgba(232,228,224,0.72);
          margin: 0 auto 72px;
          max-width: 560px;
          letter-spacing: 0.06em;
          line-height: 2;
        }
        .num-grid {
          display: grid;
          grid-template-columns: repeat(3, 1fr);
          gap: 40px;
          max-width: 900px;
          margin: 0 auto;
        }
        .num-card {
          padding: 40px 20px;
          border-top: 1px solid rgba(255,255,255,0.12);
          border-bottom: 1px solid rgba(255,255,255,0.12);
        }
        .num-card .n {
          font-family: var(--font-en-serif);
          font-style: italic;
          font-weight: 400;
          font-size: clamp(60px, 7vw, 92px);
          color: var(--color-pink-light);
          line-height: 1;
          letter-spacing: -0.02em;
          margin-bottom: 6px;
        }
        .num-card .n .unit {
          font-size: 0.4em;
          margin-left: 4px;
          color: var(--color-pink-light);
          opacity: 0.75;
        }
        .num-card .desc {
          font-family: var(--font-jp-body);
          font-size: 13px;
          line-height: 1.9;
          color: rgba(232,228,224,0.82);
          letter-spacing: 0.04em;
          margin-top: 14px;
        }
        .numbers-note {
          font-family: var(--font-en-display);
          font-size: 10.5px;
          color: rgba(232,228,224,0.45);
          letter-spacing: 0.18em;
          margin-top: 56px;
          text-transform: uppercase;
        }
        
        /* ============================================
           最終CTA
           ============================================ */
        .final-cta {
          padding: 140px 24px;
          text-align: center;
          position: relative;
          background: var(--color-base-sub);
          overflow: hidden;
        }
        .final-cta::before {
          content: none;
          position: absolute;
          top: 50%;
          left: 50%;
          transform: translate(-50%, -50%) rotate(-6deg);
          font-family: var(--font-en-hand);
          font-weight: 700;
          font-size: clamp(160px, 22vw, 300px);
          color: rgba(232, 165, 165, 0.09);
          letter-spacing: -0.01em;
          pointer-events: none;
          white-space: nowrap;
          line-height: 1;
        }
        .final-cta .inner {
          position: relative;
          z-index: 1;
          max-width: 640px;
          margin: 0 auto;
        }
        .final-cta .eyebrow {
          margin-bottom: 20px;
        }
        .final-cta h2 {
          font-family: var(--font-jp-display);
          font-weight: 500;
          font-size: clamp(30px, 4.2vw, 48px);
          color: var(--color-text);
          margin: 0 0 24px;
          letter-spacing: 0.06em;
          line-height: 1.5;
        }
        .final-cta p {
          font-family: var(--font-jp-body);
          font-size: 15.5px;
          line-height: 2.1;
          color: var(--color-text-soft);
          margin: 0 0 48px;
          letter-spacing: 0.04em;
        }
        
        /* ============================================
           レスポンシブ
           ============================================ */
        @media (max-width: 860px) {
          .lead-stats { grid-template-columns: 1fr; gap: 20px; }
          .voice-card { padding: 32px 26px 30px; }
          .voice-ba { grid-template-columns: 1fr; }
          .voice-ba .cell.before { border-right: none; border-bottom: 1px solid rgba(42,42,42,0.1); }
          .video-grid { grid-template-columns: 1fr; }
          .num-grid { grid-template-columns: 1fr; gap: 8px; }
          .num-card { border-top: 1px solid rgba(255,255,255,0.12); border-bottom: none; padding: 28px 20px; }
          .num-card:last-child { border-bottom: 1px solid rgba(255,255,255,0.12); }
          .voice-head .age { margin-left: 0; }
        }
        @media (max-width: 420px) {
          .voice-card { padding: 28px 22px 26px; }
          .voice-head .no { font-size: 32px; }
          .voice-head .who { font-size: 15px; }
        }
        
        
        /* ============================================================
           6. P-06 お問い合わせ（contact）専用CSS
           ============================================================ */
        /* ページ固有のスタイル */
        
        /* ページヘッダー装飾 */
        .page-header {
          overflow: hidden;
        }
        .page-header::before {
          content: "Contact.";
          position: absolute;
          top: 36%;
          left: 50%;
          transform: translate(-50%, -50%);
          font-family: var(--font-en-serif);
          font-style: italic;
          font-weight: 400;
          font-size: clamp(140px, 22vw, 300px);
          color: rgba(212, 128, 128, 0.07);
          letter-spacing: -0.02em;
          pointer-events: none;
          white-space: nowrap;
          line-height: 1;
          z-index: 0;
        }
        .page-header > * { position: relative; z-index: 1; }
        
        /* ============================================
           リードコピー
           ============================================ */
        .lead-sec {
          padding: 100px 24px 40px;
          text-align: center;
        }
        .lead-sec .section-inner {
          max-width: 660px;
        }
        .lead-sec p {
          font-family: var(--font-jp-body);
          font-size: 15.5px;
          line-height: 2.1;
          color: var(--color-text-soft);
          margin: 0;
          letter-spacing: 0.04em;
        }
        .lead-sec p .reply {
          display: inline-block;
          margin-top: 20px;
          font-family: var(--font-jp-display);
          color: var(--color-pink-dark);
          font-weight: 500;
          font-size: 14px;
          padding: 6px 18px;
          background: var(--color-pink-light);
          border-radius: var(--radius-pill);
          letter-spacing: 0.08em;
        }
        
        /* ============================================
           お問い合わせフォーム
           ============================================ */
        .form-sec {
          padding: 40px 24px 120px;
        }
        .form-sec .section-inner {
          max-width: 720px;
        }
        
        .form-card {
          background: #FFFFFF;
          padding: 56px 56px 48px;
          border-radius: 4px;
          box-shadow: 0 24px 56px -28px rgba(42,42,42,0.18);
          position: relative;
        }
        .form-card::before {
          content: "";
          position: absolute;
          top: 0; left: 0;
          width: 60px;
          height: 3px;
          background: var(--color-pink-dark);
        }
        
        .form-card .form-head {
          margin-bottom: 40px;
          padding-bottom: 28px;
          border-bottom: 1px solid rgba(42,42,42,0.08);
        }
        .form-card .form-head .eyebrow {
          font-family: var(--font-en-hand);
          font-weight: 700;
          font-size: 26px;
          color: var(--color-pink-dark);
          margin: 0 0 6px;
          line-height: 1;
        }
        .form-card .form-head h2 {
          font-family: var(--font-jp-display);
          font-weight: 500;
          font-size: 22px;
          color: var(--color-text);
          margin: 0;
          letter-spacing: 0.06em;
        }
        
        .form-group {
          margin-bottom: 32px;
        }
        .form-group label {
          display: flex;
          align-items: center;
          font-family: var(--font-jp-display);
          font-weight: 500;
          font-size: 13.5px;
          color: var(--color-text);
          margin-bottom: 12px;
          letter-spacing: 0.08em;
        }
        .form-group label .req {
          display: inline-block;
          font-family: var(--font-en-display);
          font-size: 10px;
          font-weight: 500;
          color: #FFFFFF;
          background: var(--color-pink-dark);
          padding: 3px 8px;
          border-radius: 2px;
          margin-left: 10px;
          letter-spacing: 0.1em;
        }
        .form-group input[type="text"],
        .form-group input[type="email"],
        .form-group textarea {
          width: 100%;
          padding: 14px 16px;
          border: 1px solid rgba(42,42,42,0.18);
          border-radius: 2px;
          font-family: var(--font-jp-body);
          font-size: 14.5px;
          color: var(--color-text);
          background: var(--color-base);
          transition: border-color 0.22s ease, background 0.22s ease;
          letter-spacing: 0.04em;
          line-height: 1.7;
        }
        .form-group input[type="text"]:focus,
        .form-group input[type="email"]:focus,
        .form-group textarea:focus {
          outline: none;
          border-color: var(--color-pink-dark);
          background: #FFFFFF;
        }
        .form-group textarea {
          min-height: 180px;
          resize: vertical;
          font-family: var(--font-jp-body);
        }
        
        /* 選択式カテゴリ */
        .cat-select {
          display: grid;
          grid-template-columns: 1fr 1fr;
          gap: 10px;
        }
        .cat-select .opt {
          position: relative;
        }
        .cat-select .opt input {
          position: absolute;
          opacity: 0;
          pointer-events: none;
        }
        .cat-select .opt label {
          display: flex;
          align-items: center;
          gap: 10px;
          padding: 16px 18px;
          background: var(--color-base);
          border: 1px solid rgba(42,42,42,0.12);
          border-radius: 2px;
          cursor: pointer;
          transition: all 0.22s ease;
          font-family: var(--font-jp-body);
          font-size: 13.5px;
          color: var(--color-text);
          margin: 0;
          letter-spacing: 0.04em;
          font-weight: 400;
        }
        .cat-select .opt label::before {
          content: "";
          width: 16px;
          height: 16px;
          border: 1.5px solid rgba(42,42,42,0.3);
          border-radius: 2px;
          flex-shrink: 0;
          transition: all 0.22s ease;
        }
        .cat-select .opt label:hover {
          border-color: var(--color-pink-dark);
          background: #FFF5F5;
        }
        .cat-select .opt input:checked + label {
          background: var(--color-pink-light);
          border-color: var(--color-pink-dark);
          color: var(--color-text);
        }
        .cat-select .opt input:checked + label::before {
          background: var(--color-pink-dark);
          border-color: var(--color-pink-dark);
          background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2 6l3 3 5-6'/%3E%3C/svg%3E");
          background-repeat: no-repeat;
          background-position: center;
          background-size: 12px 12px;
        }
        
        .form-submit {
          margin-top: 16px;
          text-align: center;
        }
        .form-submit button {
          min-width: 260px;
          padding: 18px 40px;
          background: var(--color-text);
          color: #FFFFFF;
          font-family: var(--font-jp-display);
          font-weight: 500;
          font-size: 14.5px;
          letter-spacing: 0.12em;
          border: none;
          border-radius: var(--radius-pill);
          cursor: pointer;
          transition: transform 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
          box-shadow: 0 6px 20px -8px rgba(42,42,42,0.35);
        }
        .form-submit button:hover {
          transform: translateY(-2px);
          background: var(--color-pink-dark);
          box-shadow: 0 10px 26px -10px rgba(42,42,42,0.45);
        }
        
        /* 注意事項 */
        .form-notes {
          margin-top: 40px;
          padding-top: 24px;
          border-top: 1px solid rgba(42,42,42,0.08);
          font-family: var(--font-jp-body);
          font-size: 12px;
          color: var(--color-text-sub);
          line-height: 1.9;
          letter-spacing: 0.04em;
        }
        .form-notes p {
          margin: 0 0 4px;
          padding-left: 1.2em;
          text-indent: -1.2em;
        }
        
        /* ============================================
           LINE案内セクション
           ============================================ */
        .line-sec {
          padding: 110px 24px;
          background: linear-gradient(180deg, #FDFBF9 0%, #FFF5F5 100%);
          text-align: center;
          position: relative;
          overflow: hidden;
        }
        .line-sec::before {
          content: "LINE.";
          position: absolute;
          bottom: -30px;
          right: -10px;
          font-family: var(--font-en-serif);
          font-style: italic;
          font-size: clamp(120px, 16vw, 220px);
          color: rgba(6,199,85,0.06);
          letter-spacing: -0.02em;
          line-height: 1;
          pointer-events: none;
        }
        .line-sec .section-inner {
          max-width: 680px;
          position: relative;
          z-index: 1;
        }
        .line-sec .badge {
          display: inline-flex;
          align-items: center;
          gap: 8px;
          font-family: var(--font-en-display);
          font-weight: 500;
          font-size: 11px;
          letter-spacing: 0.24em;
          color: #06C755;
          background: rgba(6,199,85,0.1);
          padding: 7px 16px;
          border-radius: var(--radius-pill);
          margin-bottom: 20px;
          text-transform: uppercase;
        }
        .line-sec .badge::before {
          content: "";
          width: 6px;
          height: 6px;
          background: #06C755;
          border-radius: 50%;
        }
        .line-sec h2 {
          font-family: var(--font-jp-display);
          font-weight: 500;
          font-size: clamp(22px, 3vw, 30px);
          color: var(--color-text);
          margin: 0 0 28px;
          letter-spacing: 0.05em;
          line-height: 1.55;
        }
        .line-benefits {
          max-width: 440px;
          margin: 0 auto 40px;
          text-align: left;
          list-style: none;
          padding: 0;
          background: #FFFFFF;
          border-radius: 4px;
          padding: 28px 32px;
          box-shadow: 0 8px 28px -14px rgba(42,42,42,0.15);
        }
        .line-benefits li {
          display: flex;
          align-items: flex-start;
          gap: 12px;
          padding: 10px 0;
          font-family: var(--font-jp-body);
          font-size: 14px;
          color: var(--color-text);
          line-height: 1.8;
          letter-spacing: 0.04em;
        }
        .line-benefits li + li { border-top: 1px solid rgba(42,42,42,0.06); }
        .line-benefits li::before {
          content: "";
          width: 18px;
          height: 18px;
          background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Ccircle cx='9' cy='9' r='9' fill='%2306C755'/%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M5 9l3 3 5-6'/%3E%3C/svg%3E");
          background-repeat: no-repeat;
          background-size: contain;
          flex-shrink: 0;
          margin-top: 4px;
        }
        .line-sec .hand-note {
          font-family: var(--font-en-hand);
          font-weight: 700;
          font-size: 24px;
          color: var(--color-pink-dark);
          transform: rotate(-3deg);
          display: inline-block;
          margin-top: 8px;
        }
        
        /* ============================================
           レスポンシブ
           ============================================ */
        @media (max-width: 860px) {
          .form-card { padding: 40px 28px 36px; }
          .cat-select { grid-template-columns: 1fr; }
          .form-submit button { min-width: auto; width: 100%; }
        }
        @media (max-width: 420px) {
          .form-card { padding: 32px 22px 30px; }
          .line-benefits { padding: 22px 22px; }
        }
        
        
        /* ============================================================
           7. P-00 TOP専用CSS
           ============================================================ */
        /* ============================================
           TOPページ固有CSS
           ============================================ */
        
        /* Hero */
        .hero {
          position: relative;
          padding: 0;
          overflow: hidden;
          background: var(--color-base);
        }
        .hero-inner {
          position: relative;
          min-height: 92vh;
          max-height: 900px;
          display: flex;
          align-items: center;
          justify-content: flex-start;
          padding: 120px 56px 80px;
          overflow: hidden;
        }
        .hero-photo {
          position: absolute;
          inset: 0;
          width: 100%; height: 100%;
          object-fit: cover;
          object-position: center 35%;
          z-index: 0;
          display: block;
        }
        .hero-inner::after {
          content: '';
          position: absolute;
          inset: 0;
          background: linear-gradient(100deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.3) 45%, rgba(0,0,0,0.08) 100%);
          z-index: 1;
          pointer-events: none;
        }
        .photo-placeholder {
          position: absolute; inset: 0;
          display: none;
          align-items: center; justify-content: center;
          flex-direction: column; text-align: center;
          background: #5C5C5C; color: #B8B0A8;
        }
        .photo-placeholder .icon { font-size: 48px; margin-bottom: 14px; }
        .photo-placeholder .ttl { font-size: 16px; margin-bottom: 8px; letter-spacing: 0.08em; }
        .photo-placeholder .sub { font-size: 12px; line-height: 1.8; }
        .photo-placeholder code { background: rgba(255,255,255,0.12); padding: 2px 6px; border-radius: 4px; }
        
        .hero-copy {
          position: relative;
          z-index: 2;
          max-width: 680px;
          color: #FFFFFF;
        }
        .hero-copy .hero-eyebrow {
          font-family: 'Caveat', cursive;
          font-weight: 700;
          font-size: clamp(36px, 4.2vw, 56px);
          color: #FFFFFF;
          margin: 0 0 36px;
          letter-spacing: 0.02em;
          line-height: 1;
          transform: rotate(-5deg);
          display: inline-block;
          text-shadow: 0 2px 16px rgba(0,0,0,0.32), 0 1px 3px rgba(0,0,0,0.22);
        }
        .hero-copy .hero-eyebrow::after { display: none; }
        .hero-eyebrow-underline {
          display: block;
          margin-top: 2px;
          transform: rotate(2deg);
          transform-origin: left center;
          filter: drop-shadow(0 1px 4px rgba(0,0,0,0.3));
        }
        .hero-copy h1 {
          font-family: var(--font-jp-display);
          font-weight: 500;
          line-height: 1.35;
          margin: 0 0 28px;
          letter-spacing: 0.02em;
        }
        .hero-copy h1 .l1 {
          display: block;
          font-size: clamp(26px, 3vw, 38px);
          font-weight: 500;
          letter-spacing: 0.12em;
          text-shadow: 0 2px 14px rgba(0,0,0,0.45);
        }
        .hero-copy h1 .l2 {
          display: block;
          font-size: clamp(38px, 5.2vw, 64px);
          font-weight: 700;
          letter-spacing: 0.08em;
          line-height: 1.4;
          text-shadow: 0 3px 18px rgba(0,0,0,0.5);
        }
        .hero-copy h1 .l3 {
          display: block;
          font-size: clamp(26px, 3vw, 38px);
          font-weight: 500;
          letter-spacing: 0.12em;
          text-shadow: 0 2px 14px rgba(0,0,0,0.45);
        }
        .hero-copy .subcopy {
          font-family: var(--font-jp-body);
          font-size: clamp(14px, 1.2vw, 16px);
          line-height: 2;
          color: rgba(255,255,255,0.92);
          margin: 0 0 44px;
          letter-spacing: 0.04em;
          text-shadow: 0 1px 10px rgba(0,0,0,0.45);
          max-width: 560px;
        }
        .hero-copy .btn-row .btn-primary {
          background: #FFFFFF;
          color: var(--color-text);
        }
        .hero-copy .btn-row .btn-primary:hover {
          background: var(--color-pink-light);
          color: var(--color-text);
        }
        .hero-copy .btn-row .btn-outline {
          color: #FFFFFF;
          border-color: rgba(255,255,255,0.8);
        }
        .hero-copy .btn-row .btn-outline:hover {
          background: rgba(255,255,255,0.95);
          color: var(--color-text);
        }
        
        /* Hero KPI数値 */
        .hero-stats {
          position: absolute;
          bottom: 40px;
          right: 56px;
          z-index: 2;
          display: flex;
          gap: 36px;
          color: #FFFFFF;
        }
        .hero-stats .stat {
          text-align: center;
          position: relative;
        }
        .hero-stats .stat .num {
          font-family: var(--font-en-serif);
          font-style: italic;
          font-weight: 500;
          font-size: 36px;
          line-height: 1;
          letter-spacing: 0.02em;
          text-shadow: 0 2px 10px rgba(0,0,0,0.35);
        }
        .hero-stats .stat .label {
          display: block;
          font-family: var(--font-jp-body);
          font-size: 11px;
          margin-top: 6px;
          letter-spacing: 0.1em;
          opacity: 0.92;
          text-shadow: 0 1px 6px rgba(0,0,0,0.3);
        }
        
        /* ============================================
           下部の写真ストリップ（スクロール）
           ============================================ */
        .photo-strip {
          position: relative;
          padding: 60px 0 72px;
          background: #F9EEF0;
          overflow: hidden;
          z-index: 1;
        }
        .photo-strip-track {
          display: inline-flex;
          gap: 16px;
          animation: photostrip 60s linear infinite;
          padding-left: 16px;
          will-change: transform;
        }
        .photo-strip-track:hover {
          animation-play-state: paused;
        }
        /* カード：外側は色付きフレーム／内側に写真 */
        .photo-strip .item {
          flex-shrink: 0;
          width: 260px;
          height: 180px;
          border-radius: 10px;
          padding: 5px;
          box-shadow: 0 10px 30px -18px rgba(42,42,42,0.18);
        }
        .photo-strip .item .inner {
          position: relative;
          width: 100%;
          height: 100%;
          border-radius: 6px;
          overflow: hidden;
          background: #DCDCDC;
        }
        .photo-strip .item .inner img {
          position: absolute;
          inset: 0;
          width: 100%;
          height: 100%;
          object-fit: cover;
          display: block;
        }
        
        /* フレーム色：ブランド3色（ピンク・水色・クリーム）で統一 */
        .photo-strip .item.c1 { background: #F4D5D5; }
        .photo-strip .item.c2 { background: #C9E0E6; }
        .photo-strip .item.c3 { background: #F2E8DC; }
        .photo-strip .item.c4 { background: #E8C5C5; }
        .photo-strip .item.c5 { background: #C9E0E6; }
        .photo-strip .item.c6 { background: #EDE0D0; }
        .photo-strip .item.c7 { background: #F4D5D5; }
        .photo-strip .item.c8 { background: #D9E6EA; }
        
        /* 遊び感：回転・サイズ・縦位置をランダムに（1周目・2周目ともに同パターン） */
        .photo-strip-track .item:nth-child(10n+1)  { transform: rotate(-2.5deg) translateY(8px);   width: 240px; height: 170px; }
        .photo-strip-track .item:nth-child(10n+2)  { transform: rotate(1.8deg)  translateY(-6px);  width: 280px; height: 195px; }
        .photo-strip-track .item:nth-child(10n+3)  { transform: rotate(-1.2deg) translateY(14px);  width: 220px; height: 160px; }
        .photo-strip-track .item:nth-child(10n+4)  { transform: rotate(3.0deg)  translateY(-2px);  width: 265px; height: 185px; }
        .photo-strip-track .item:nth-child(10n+5)  { transform: rotate(-0.8deg) translateY(10px);  width: 250px; height: 175px; }
        .photo-strip-track .item:nth-child(10n+6)  { transform: rotate(2.2deg)  translateY(-10px); width: 235px; height: 168px; }
        .photo-strip-track .item:nth-child(10n+7)  { transform: rotate(-3.0deg) translateY(4px);   width: 270px; height: 190px; }
        .photo-strip-track .item:nth-child(10n+8)  { transform: rotate(1.0deg)  translateY(-8px);  width: 245px; height: 172px; }
        .photo-strip-track .item:nth-child(10n+9)  { transform: rotate(-1.8deg) translateY(12px);  width: 255px; height: 180px; }
        .photo-strip-track .item:nth-child(10n+10) { transform: rotate(2.5deg)  translateY(-4px);  width: 228px; height: 162px; }
        
        @keyframes photostrip {
          0% { transform: translateX(0); }
          100% { transform: translateX(-50%); }
        }
        
        @media (max-width: 860px) {
          .photo-strip { padding: 32px 0 40px; }
          .photo-strip .item {
            width: 190px;
            height: 130px;
            padding: 4px;
            border-radius: 8px;
          }
          .photo-strip-track { gap: 12px; padding-left: 12px; }
        }
        
        @media (prefers-reduced-motion: reduce) {
          .photo-strip-track { animation: none !important; }
        }
        
        /* ============================================
           NEWSセクション
           ============================================ */
        .news-latest {
          padding: 56px 24px;
          background: var(--color-base);
          position: relative;
          overflow: hidden;
        }
        .news-inner {
          max-width: var(--content-max);
          margin: 0 auto;
        }
        .news-header {
          display: flex;
          align-items: center;
          justify-content: space-between;
          margin-bottom: 24px;
        }
        .news-more {
          font-family: var(--font-jp-body);
          font-size: 12px;
          color: var(--color-text-soft);
          text-decoration: none;
          letter-spacing: 0.05em;
          transition: color 0.2s ease;
        }
        .news-more:hover { color: var(--color-text); }
        .news-list {
          display: flex;
          flex-direction: column;
          gap: 0;
        }
        .news-item {
          display: grid;
          grid-template-columns: 90px 80px 1fr;
          gap: 20px;
          align-items: center;
          padding: 16px 0;
          border-bottom: 1px solid rgba(42,42,42,0.07);
          text-decoration: none;
          color: var(--color-text);
          transition: opacity 0.2s ease;
        }
        .news-item:first-child { border-top: 1px solid rgba(42,42,42,0.07); }
        .news-item:hover { opacity: 0.65; }
        .news-date {
          font-family: var(--font-en-display);
          font-size: 12px;
          color: var(--color-text-soft);
          letter-spacing: 0.05em;
          flex-shrink: 0;
        }
        .news-cat {
          font-size: 10.5px;
          padding: 3px 10px;
          border-radius: 40px;
          background: var(--color-blue-soft);
          color: var(--color-blue-dark);
          letter-spacing: 0.08em;
          flex-shrink: 0;
          text-align: center;
        }
        .news-title {
          font-family: var(--font-jp-body);
          font-size: 13.5px;
          line-height: 1.7;
          letter-spacing: 0.03em;
        }
        @media (max-width: 600px) {
          .news-item { grid-template-columns: 1fr; gap: 6px; }
          .news-date { font-size: 11px; }
        }
        
        /* ============================================
           できることセクション（個人 / 法人・メディア）
           ============================================ */
        .services {
          padding: var(--section-py) 24px;
          background: var(--color-pink-bg);
          position: relative;
          overflow: hidden;
          position: relative;
          overflow: hidden;
        }
        .services-header {
          text-align: center;
          max-width: 720px;
          margin: 0 auto 56px;
        }
        .services-header h2 {
          font-family: var(--font-jp-display);
          font-weight: 500;
          font-size: clamp(26px, 3.6vw, 40px);
          line-height: 1.5;
          letter-spacing: 0.04em;
          color: var(--color-text);
          margin: 4px 0 0;
        }
        .services-grid {
          display: grid;
          grid-template-columns: 1fr 1fr;
          gap: 28px;
          max-width: 960px;
          margin: 0 auto;
        }
        .service-card {
          background: #FFFFFF;
          border-radius: var(--radius-md);
          padding: 44px 40px 40px;
          position: relative;
          box-shadow: 0 10px 32px -16px rgba(42,42,42,0.16);
          display: flex;
          flex-direction: column;
        }
        .service-card.pink { border-top: none; }
        .service-card.blue { border-top: none; }
        .service-card .service-tag {
          display: inline-block;
          font-family: var(--font-jp-body);
          font-size: 11px;
          letter-spacing: 0.12em;
          padding: 5px 14px;
          border-radius: var(--radius-pill);
          margin-bottom: 20px;
          font-weight: 500;
          align-self: flex-start;
        }
        .service-card.pink .service-tag { background: var(--color-pink-light); color: var(--color-pink-dark); }
        .service-card.blue .service-tag { background: var(--color-blue-soft); color: var(--color-blue-dark); }
        .service-card h3 {
          font-family: var(--font-jp-display);
          font-weight: 700;
          font-size: clamp(20px, 2.2vw, 24px);
          color: var(--color-text);
          margin: 0 0 12px;
          letter-spacing: 0.03em;
          line-height: 1.45;
        }
        .service-card .service-lead {
          font-family: var(--font-jp-body);
          font-size: 13.5px;
          line-height: 2;
          color: var(--color-text-soft);
          margin: 0 0 24px;
          letter-spacing: 0.03em;
        }
        .service-card .service-list {
          list-style: none;
          padding: 0;
          margin: 0 0 32px;
          flex: 1;
        }
        .service-card .service-list li {
          font-family: var(--font-jp-body);
          font-size: 13.5px;
          color: var(--color-text);
          padding: 11px 0;
          border-bottom: 1px solid rgba(42,42,42,0.07);
          letter-spacing: 0.03em;
          display: flex;
          align-items: flex-start;
          gap: 10px;
          line-height: 1.7;
        }
        .service-card .service-list li::before {
          content: '';
          width: 6px; height: 6px;
          border-radius: 50%;
          flex-shrink: 0;
          margin-top: 8px;
        }
        .service-card.pink .service-list li::before { background: var(--color-pink); }
        .service-card.blue .service-list li::before { background: var(--color-blue); }
        
        /* ============================================
           Promise（お約束）セクション
           ============================================ */
        .promise { padding: var(--section-py) 24px; background: var(--color-base); }
        .promise-grid {
          display: grid;
          grid-template-columns: 0.9fr 1.1fr;
          gap: 72px;
          max-width: var(--content-max);
          margin: 0 auto;
          align-items: start;
        }
        .promise-left { position: sticky; top: 120px; }
        .promise-left .eyebrow { display: block; }
        .promise-left h2 {
          font-family: var(--font-jp-display);
          font-weight: 600;
          font-size: clamp(28px, 3.4vw, 40px);
          line-height: 1.65;
          letter-spacing: 0.04em;
          color: var(--color-text);
          margin: 8px 0 28px;
        }
        .promise-left h2 em {
          font-style: normal;
          color: var(--color-pink-dark);
          font-weight: 700;
          background-image: linear-gradient(to top, rgba(232,165,165,0.28) 48%, transparent 48%);
          padding: 0 3px;
        }
        .promise-left p {
          font-family: var(--font-jp-body);
          font-size: 14.5px;
          line-height: 2.1;
          color: var(--color-text-soft);
          letter-spacing: 0.04em;
          margin: 0;
        }
        .value-list { display: flex; flex-direction: column; gap: 4px; }
        .value-item {
          display: grid;
          grid-template-columns: 56px 1fr;
          gap: 20px;
          padding: 28px 0;
          border-bottom: 1px solid rgba(42,42,42,0.1);
          align-items: start;
        }
        .value-item:first-child { padding-top: 12px; }
        .value-item:last-child { border-bottom: none; }
        .value-item .num {
          font-family: var(--font-en-display);
          font-style: normal;
          font-weight: 600;
          font-size: 34px;
          color: var(--color-blue-dark);
          line-height: 1;
          padding-top: 4px;
          position: relative;
          display: flex;
          align-items: flex-start;
          justify-content: center;
        }
        .value-item .num::before {
          content: '';
          position: absolute;
          top: -4px;
          left: 50%;
          transform: translateX(-50%);
          width: 48px;
          height: 48px;
          border-radius: 50%;
          background: rgba(255,255,255,0.55);
          z-index: 0;
        }
        .value-item .num span { position: relative; z-index: 1; }
        .value-item h3 {
          font-family: var(--font-jp-display);
          font-weight: 700;
          font-size: 19px;
          color: var(--color-text);
          margin: 0 0 10px;
          letter-spacing: 0.03em;
          line-height: 1.55;
        }
        .value-item p {
          font-family: var(--font-jp-body);
          font-size: 13.5px;
          line-height: 2;
          color: var(--color-text-soft);
          margin: 0;
          letter-spacing: 0.03em;
        }
        
        /* ============================================
           3ステップメソッド
           ============================================ */
        .method {
          padding: var(--section-py) 24px;
          background: linear-gradient(180deg, var(--color-base-sub) 0%, #EFE8E3 100%);
          position: relative;
          overflow: hidden;
        }
        .method-header { text-align: center; max-width: 720px; margin: 0 auto 72px; }
        .method-header h2 {
          font-family: var(--font-jp-display);
          font-weight: 600;
          font-size: clamp(26px, 3.6vw, 42px);
          line-height: 1.5;
          letter-spacing: 0.04em;
          color: var(--color-text);
          margin: 8px 0 14px;
        }
        .method-header .sub {
          font-family: var(--font-jp-body);
          font-size: 14.5px;
          color: var(--color-text-soft);
          line-height: 2;
          margin: 0;
        }
        .steps {
          display: grid;
          grid-template-columns: repeat(3, 1fr);
          gap: 24px;
          max-width: var(--content-max);
          margin: 0 auto 56px;
          align-items: stretch;
        }
        .step-card {
          background: rgba(255,255,255,0.72);
          border-radius: var(--radius-sm);
          overflow: hidden;
          position: relative;
          box-shadow: 0 10px 30px -18px rgba(42,42,42,0.2);
          text-align: center;
          transition: transform 0.25s ease, box-shadow 0.25s ease;
          cursor: default;
          display: flex;
          flex-direction: column;
        }
        .step-card:hover {
          transform: translateY(-6px) scale(1.02);
          box-shadow: 0 20px 48px -16px rgba(42,42,42,0.22);
        }
        .step-card .step-illo {
          background: #fff;
          aspect-ratio: 4/3;
          border-bottom: 1px solid rgba(95,163,181,0.15);
          display: flex;
          align-items: center;
          justify-content: center;
          color: rgba(95,163,181,0.3);
          font-family: var(--font-en-display);
          font-size: 11px;
          letter-spacing: 0.15em;
          position: relative;
        }
        .step-card .step-badge {
          position: absolute;
          top: 0; left: 0;
          width: 110px; height: 110px;
          clip-path: polygon(0 0, 100% 0, 0 100%);
          background: var(--color-blue);
        }
        .step-card .step-badge .sw {
          position: absolute;
          top: 13px; left: 13px;
          font-family: var(--font-en-display);
          font-weight: 600;
          font-size: 10px;
          letter-spacing: 0.2em;
          color: rgba(255,255,255,0.85);
          text-transform: uppercase;
          line-height: 1;
        }
        .step-card .step-badge .sn {
          position: absolute;
          top: 27px; left: 11px;
          font-family: var(--font-en-display);
          font-weight: 700;
          font-size: 36px;
          letter-spacing: -0.02em;
          color: #fff;
          line-height: 1;
        }
        .step-card .step-body {
          padding: 20px 24px 28px;
          flex: 1;
          display: flex;
          flex-direction: column;
        }
        .step-card h3 {
          font-family: var(--font-jp-display);
          font-weight: 700;
          font-size: 22px;
          color: var(--color-text);
          margin: 0 0 6px;
          letter-spacing: 0.04em;
        }
        .step-card .step-jp {
          font-family: var(--font-jp-body);
          font-weight: 500;
          font-size: 12px;
          color: var(--color-blue-dark);
          letter-spacing: 0.08em;
          margin-bottom: 16px;
          display: block;
        }
        .step-card p {
          font-family: var(--font-jp-body);
          font-size: 13.5px;
          line-height: 2;
          color: var(--color-text-soft);
          margin: 0;
          letter-spacing: 0.03em;
          text-align: left;
        }
        
        /* ============================================
           ミニVoice
           ============================================ */
        .mini-voice { padding: var(--section-py) 24px; background: var(--color-base); }
        
        .mini-voice-header { text-align: center; max-width: 720px; margin: 0 auto 56px; }
        .mini-voice-header h2 {
          font-family: var(--font-jp-display);
          font-weight: 500;
          font-size: clamp(26px, 3.4vw, 38px);
          margin: 8px 0 12px;
          letter-spacing: 0.04em;
        }
        .mini-voice-header .sub {
          font-family: var(--font-jp-body);
          font-size: 14.5px;
          color: var(--color-text-soft);
          line-height: 2;
        }
        .mini-voice-grid {
          display: flex;
          flex-direction: column;
          gap: 32px;
          max-width: 860px;
          margin: 0 auto;
        }
        
        /* ビフォーアフターカード */
        .voice-card {
          background: #fff;
          border-radius: 20px;
          overflow: hidden;
          box-shadow: 0 12px 40px -16px rgba(42,42,42,0.13);
        }
        .voice-card-header {
          display: flex;
          align-items: center;
          gap: 16px;
          padding: 22px 28px 20px;
          background: #fff;
        }
        .voice-avatar {
          width: 52px; height: 52px; border-radius: 50%;
          background: var(--color-pink-light);
          display: flex; align-items: center; justify-content: center;
          font-family: 'Quicksand', sans-serif; font-weight: 700; font-size: 20px;
          color: var(--color-pink-dark);
          flex-shrink: 0;
        }
        .voice-avatar.blue {
          background: #EEF6F9;
          color: var(--color-blue);
        }
        .voice-meta { flex: 1; }
        .voice-meta .name {
          font-family: var(--font-jp-body); font-weight: 700; font-size: 15px;
          color: var(--color-text); display: block; margin-bottom: 3px;
        }
        .voice-meta .role {
          font-family: var(--font-jp-body); font-size: 12px;
          color: var(--color-text-soft); display: block;
        }
        
        /* YouTube ボタン */
        .voice-yt {
          display: inline-flex; align-items: center; gap: 5px;
          flex-shrink: 0;
          font-family: var(--font-en-display); font-weight: 700;
          font-size: 11px; letter-spacing: 0.08em;
          color: #E00; border: 1.5px solid rgba(220,0,0,0.35);
          padding: 6px 13px; border-radius: 40px;
          text-decoration: none; transition: background 0.18s, color 0.18s;
        }
        .voice-yt:hover { background: #E00; color: #fff; }
        .voice-yt svg { width: 12px; height: 12px; }
        
        /* ビフォーアフター本体 */
        .voice-ba {
          display: grid;
          grid-template-columns: 1fr 1fr;
          margin: 0 16px 16px;
          border-radius: 12px;
          overflow: hidden;
        }
        .voice-before, .voice-after {
          padding: 20px 22px 24px;
          position: relative;
        }
        .voice-before { background: #F7F5F3; }
        .voice-after  { background: #FEF8F8; }
        .ba-label {
          display: inline-flex; align-items: center; gap: 5px;
          font-family: var(--font-en-display); font-weight: 700;
          font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase;
          margin-bottom: 12px;
        }
        .ba-label::before {
          content: '';
          display: inline-block; width: 6px; height: 6px; border-radius: 50%;
        }
        .voice-before .ba-label { color: rgba(42,42,42,0.4); }
        .voice-before .ba-label::before { background: rgba(42,42,42,0.25); }
        .voice-after  .ba-label { color: var(--color-pink-dark); }
        .voice-after  .ba-label::before { background: var(--color-pink-dark); }
        .voice-before p, .voice-after p {
          font-family: var(--font-jp-body);
          font-size: 13.5px; line-height: 1.9; color: var(--color-text);
          margin: 0; letter-spacing: 0.03em;
        }
        .voice-before p { color: var(--color-text-soft); }
        
        .mini-voice-cta { text-align: center; margin-top: 48px; }
        
        /* ============================================
           ミニAbout
           ============================================ */
        .mini-about { padding: var(--section-py) 24px; background: var(--color-base-sub); }
        .mini-about-grid {
          display: grid;
          grid-template-columns: 0.9fr 1.1fr;
          gap: 64px;
          max-width: var(--content-max);
          margin: 0 auto;
          align-items: center;
        }
        .mini-about-photo {
          display: flex;
          align-items: center;
          justify-content: center;
          position: relative;
        }
        .mini-about-photo-circle {
          width: min(420px, 100%);
          aspect-ratio: 1 / 1;
          border-radius: 50%;
          overflow: hidden;
          position: relative;
          box-shadow: 0 24px 60px -20px rgba(42,42,42,0.22);
          border: 6px solid #fff;
        }
        .mini-about-photo-circle img {
          width: 100%; height: 100%;
          object-fit: cover;
          object-position: center top;
        }
        .about-photo-name {
          position: absolute; bottom: 24px; right: 24px;
          font-family: 'Caveat', cursive;
          font-size: 32px; color: #fff;
          transform: rotate(-3deg);
          text-shadow: 0 2px 14px rgba(0,0,0,0.3);
          pointer-events: none;
        }
        .mini-about-copy .tag {
          display: inline-block;
          font-family: var(--font-en-display);
          font-size: 11px;
          letter-spacing: 0.22em;
          text-transform: uppercase;
          color: var(--color-pink-dark);
          margin-bottom: 12px;
          padding: 0;
          background: none;
        }
        .mini-about-copy .name {
          font-family: var(--font-jp-display);
          font-weight: 700;
          font-size: clamp(26px, 3.2vw, 36px);
          margin: 0 0 6px;
          letter-spacing: 0.02em;
        }
        .mini-about-copy .role {
          font-family: var(--font-jp-body);
          font-size: 13px;
          color: var(--color-text-soft);
          margin: 0 0 22px;
          letter-spacing: 0.04em;
          line-height: 1.8;
        }
        .mini-about-copy .bio {
          font-family: var(--font-jp-body);
          font-size: 14.5px;
          line-height: 2.1;
          color: var(--color-text);
          margin: 0 0 28px;
          letter-spacing: 0.03em;
        }
        /* SNSアイコンボタン */
        .about-sns {
          display: flex; gap: 10px; margin-bottom: 28px; flex-wrap: wrap;
        }
        .about-sns a {
          display: inline-flex; align-items: center; gap: 7px;
          font-family: var(--font-en-display);
          font-size: 12px; font-weight: 600;
          letter-spacing: 0.08em;
          text-decoration: none;
          color: var(--color-text);
          padding: 8px 16px;
          border: 1.5px solid rgba(42,42,42,0.13);
          border-radius: var(--radius-pill);
          background: #fff;
          transition: background 0.2s, color 0.2s, border-color 0.2s;
        }
        .about-sns a:hover { background: #6B6560; color: #fff; border-color: #6B6560; }
        .about-sns a svg { width: 15px; height: 15px; flex-shrink: 0; }
        
        /* Media掲載 */
        .media-strip {
          max-width: var(--content-max);
          margin: 56px auto 0;
          padding-top: 40px;
          border-top: 1px solid rgba(42,42,42,0.1);
          text-align: center;
        }
        .media-strip .label {
          font-family: var(--font-en-display);
          font-size: 11px;
          letter-spacing: 0.3em;
          color: var(--color-text-sub);
          margin-bottom: 20px;
        }
        .media-logos {
          display: flex; gap: 40px; justify-content: center; align-items: center;
          flex-wrap: wrap; opacity: 0.55;
        }
        .media-logos .logo-placeholder {
          width: 90px; height: 32px;
          background: #FFFFFF;
          border-radius: var(--radius-sm);
          display: flex; align-items: center; justify-content: center;
          font-family: var(--font-en-display);
          font-size: 10px; color: var(--color-text-sub);
          letter-spacing: 0.1em;
          border: 1px dashed rgba(42,42,42,0.2);
        }
        
        /* ============================================
           ブログ最新
           ============================================ */
        .blog-latest { padding: var(--section-py) 24px; background: var(--color-base); border-top: 1px solid rgba(42,42,42,0.07); }
        .blog-header { text-align: center; max-width: 720px; margin: 0 auto 56px; }
        .blog-header h2 {
          font-family: var(--font-jp-display);
          font-weight: 500;
          font-size: clamp(26px, 3.4vw, 38px);
          margin: 8px 0 12px;
        }
        .blog-header .sub {
          font-family: var(--font-jp-body);
          font-size: 14.5px;
          color: var(--color-text-soft);
        }
        .blog-grid {
          display: grid;
          grid-template-columns: repeat(3, 1fr);
          gap: 28px;
          max-width: var(--content-max);
          margin: 0 auto 48px;
        }
        .blog-card {
          text-decoration: none;
          color: inherit;
          transition: transform 0.3s ease;
        }
        .blog-card:hover { transform: translateY(-4px); }
        .blog-card .thumb {
          aspect-ratio: 16/10;
          background: var(--color-base-sub);
          border-radius: var(--radius-sm);
          margin-bottom: 16px;
          overflow: hidden;
          position: relative;
          display: flex; align-items: center; justify-content: center;
          color: var(--color-text-sub);
          font-family: var(--font-en-display);
          font-size: 11px;
          letter-spacing: 0.2em;
        }
        .blog-card .cat {
          display: inline-block;
          font-family: var(--font-jp-body);
          font-size: 11px;
          color: var(--color-pink-dark);
          letter-spacing: 0.1em;
          margin-bottom: 8px;
        }
        .blog-card .date {
          font-family: var(--font-en-display);
          font-size: 11px;
          color: var(--color-text-sub);
          letter-spacing: 0.1em;
          margin-bottom: 8px;
        }
        .blog-card h3 {
          font-family: var(--font-jp-display);
          font-weight: 500;
          font-size: 16px;
          color: var(--color-text);
          line-height: 1.7;
          margin: 0;
          letter-spacing: 0.02em;
          transition: color 0.22s ease;
        }
        .blog-card:hover h3 { color: var(--color-pink-dark); }
        .blog-cta { text-align: center; }
        
        /* ============================================
           SNS帯
           ============================================ */
        .sns-strip { padding: var(--section-py) 24px; background: var(--color-pink-bg); text-align: center; position: relative; overflow: hidden; }
        .sns-strip h2 {
          font-family: 'Caveat', cursive;
          font-weight: 700;
          font-size: 48px;
          color: var(--color-pink-dark);
          margin: 0 0 36px;
          letter-spacing: 0.02em;
        }
        .sns-links {
          display: flex; gap: 20px; justify-content: center; flex-wrap: wrap;
        }
        .sns-link {
          display: flex; flex-direction: column; align-items: center; gap: 10px;
          text-decoration: none;
          color: var(--color-text);
          padding: 28px 36px;
          background: #FFFFFF;
          border-radius: 20px;
          min-width: 160px;
          text-align: center;
          transition: transform 0.25s ease, box-shadow 0.25s ease;
          box-shadow: 0 8px 24px -12px rgba(42,42,42,0.13);
        }
        .sns-link:hover {
          transform: translateY(-4px);
          box-shadow: 0 16px 36px -12px rgba(42,42,42,0.18);
        }
        .sns-link .sns-icon {
          width: 44px; height: 44px;
          border-radius: 12px;
          display: flex; align-items: center; justify-content: center;
        }
        .sns-link .sns-icon svg { width: 26px; height: 26px; }
        .sns-link.ig   .sns-icon { background: linear-gradient(135deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888); color: #fff; }
        .sns-link.yt   .sns-icon { background: #FF0000; color: #fff; }
        .sns-link.vc   .sns-icon { background: #21D4A3; color: #fff; }
        .sns-link .platform {
          font-family: var(--font-en-display);
          font-weight: 700;
          font-size: 13px;
          color: var(--color-text);
          letter-spacing: 0.08em;
        }
        .sns-link .acct {
          font-size: 11.5px;
          color: var(--color-text-soft);
          letter-spacing: 0.03em;
        }
        
        /* ============================================
           最終CTA
           ============================================ */
        .final-cta {
          padding: var(--section-py) 24px;
          background: #EDE0D2;
          color: var(--color-text);
          text-align: center;
          position: relative;
          overflow: hidden;
        }
        .final-cta::before {
          content: '';
          position: absolute;
          top: -100px; right: -100px;
          width: 300px; height: 300px;
          border-radius: 50%;
          background: var(--color-pink);
          opacity: 0.12;
          filter: blur(60px);
        }
        .final-cta::after {
          content: none;
          position: absolute;
          left: 50%; top: 60px;
          transform: translateX(-50%) rotate(-4deg);
          font-family: 'Caveat', cursive;
          font-weight: 700;
          font-size: 56px;
          color: var(--color-pink);
          opacity: 0.5;
          letter-spacing: 0.02em;
          pointer-events: none;
        }
        .final-cta-inner {
          max-width: 900px;
          margin: 80px auto 0;
          position: relative; z-index: 1;
        }
        .final-cta h2 {
          font-family: var(--font-jp-display);
          font-weight: 500;
          font-size: clamp(28px, 4vw, 44px);
          line-height: 1.55;
          color: var(--color-text);
          margin: 0 0 16px;
          letter-spacing: 0.04em;
        }
        .final-cta > .final-cta-inner > p { width: -webkit-fit-content; width: fit-content; margin-left: auto !important; margin-right: auto !important;
          font-family: var(--font-jp-body);
          font-size: clamp(18px, 2.4vw, 26px);
          font-weight: 500;
          line-height: 1.9;
          color: var(--color-text-soft);
          margin: 0 auto 56px;
          letter-spacing: 0.04em;
        }
        
        /* 2分岐CTA */
        .cta-dual {
          display: grid;
          grid-template-columns: 1fr 1fr;
          gap: 0;
          align-items: center;
          background: rgba(255,255,255,0.07);
          border-radius: 16px;
          border: 1px solid rgba(255,255,255,0.12);
          overflow: hidden;
        }
        .cta-path {
          padding: 44px 40px;
          text-align: center;
        }
        .cta-path-label {
          font-family: var(--font-en-display);
          font-size: 10.5px;
          letter-spacing: 0.28em;
          text-transform: uppercase;
          color: var(--color-text-soft);
          margin: 0 0 12px;
        }
        .cta-path h3 {
          font-family: var(--font-jp-display);
          font-weight: 700;
          font-size: clamp(17px, 2vw, 20px);
          color: var(--color-text);
          margin: 0 0 14px;
          letter-spacing: 0.04em;
          line-height: 1.5;
        }
        .cta-path-sub {
          font-family: var(--font-jp-body);
          font-size: 12.5px;
          color: var(--color-text-soft);
          line-height: 1.9;
          margin: 0 0 24px;
          letter-spacing: 0.03em;
        }
        .cta-divider { display: none; }
        .final-cta .btn-ghost {
          background: transparent;
          color: var(--color-blue);
          border: 1.5px solid var(--color-blue);
          box-shadow: none;
        }
        .final-cta .btn-ghost:hover {
          background: var(--color-blue);
          color: #fff;
        }
        
        /* Final CTA：カード白・シンプル */
        .cta-dual { background: #fff; border: 1px solid rgba(42,42,42,0.08); gap: 0; }
        .cta-path:first-child { border-radius: 14px 0 0 14px; border-right: 1px solid rgba(42,42,42,0.08); }
        .cta-path:last-child { border-radius: 0 14px 14px 0; }
        .cta-divider-unused {
          color: var(--color-text-soft);
        }
        
        /* ============================================
           レスポンシブ
           ============================================ */
        @media (max-width: 860px) {
          .hero-inner { padding: 100px 24px 100px; min-height: 88vh; }
          .hero-copy { text-align: left; }
          .hero-stats {
            position: static;
            margin: 32px 0 0;
            justify-content: flex-start;
            gap: 24px;
            padding: 0 24px;
          }
          .hero-stats .stat .num { font-size: 28px; }
        
          .services, .promise, .method, .mini-voice, .mini-about, .blog-latest, .final-cta {
            padding: 90px 20px;
          }
          .services-grid { grid-template-columns: 1fr; gap: 20px; }
          .promise-grid { grid-template-columns: 1fr; gap: 40px; }
          .promise-left { position: static; }
          .steps { grid-template-columns: 1fr; gap: 16px; }
          .steps::before { display: none; }
          .voice-ba { grid-template-columns: 1fr; }
          .voice-before { border-right: none; border-bottom: 1px solid rgba(42,42,42,0.06); }
          .mini-about-grid { grid-template-columns: 1fr; gap: 48px; }
          .mini-about-photo { max-width: 320px; margin: 0 auto; }
          .mini-about-photo::after { right: auto; left: 4px; }
          .blog-grid { grid-template-columns: 1fr; gap: 20px; }
          .sns-links { flex-direction: column; align-items: center; }
          .sns-link { width: 100%; max-width: 320px; }
          .cta-dual { grid-template-columns: 1fr; }
          .cta-divider { border: none; border-top: 1px solid rgba(255,255,255,0.1); border-bottom: 1px solid rgba(255,255,255,0.1); min-width: auto; padding: 14px 0; }
          .cta-path { padding: 36px 28px; }
        }
        
        /* ============================================
           Design polish — 雑誌編集視点のアップデート
           A. 色の役割分担 / B. 英字超大見出し / C. 非対称化
           ============================================ */
        
        /* 大型の英字ウォーターマーク（各セクション扉） */
        .section-watermark {
          position: absolute;
          pointer-events: none;
          z-index: 0;
          font-family: var(--font-en-serif);
          font-style: italic;
          font-weight: 400;
          letter-spacing: -0.02em;
          line-height: 0.88;
          font-size: clamp(110px, 17vw, 240px);
          color: rgba(42,42,42,0.045);
          top: -30px;
          left: -14px;
          user-select: none;
          white-space: nowrap;
        }
        .section-watermark.right {
          left: auto;
          right: -14px;
        }
        .section-watermark.blue { color: rgba(59,130,148,0.08); }
        .section-watermark.pink { color: rgba(191,110,110,0.08); }
        .section-watermark.dark { color: rgba(42,42,42,0.08); }
        
        /* セクション番号（雑誌扉風） */
        .section-num {
          position: absolute;
          top: 56px;
          right: 40px;
          font-family: var(--font-en-serif);
          font-style: italic;
          font-weight: 500;
          font-size: 14px;
          letter-spacing: 0.4em;
          color: var(--color-text-sub);
          z-index: 2;
          display: flex;
          align-items: center;
          gap: 12px;
        }
        .section-num::before {
          content: '';
          display: inline-block;
          width: 28px;
          height: 1px;
          background: var(--color-text-sub);
          opacity: 0.6;
        }
        /* Watermark が右側の時は section-num を左に */
        .promise .section-num,
        .mini-voice .section-num,
        .blog-latest .section-num {
          right: auto;
          left: 40px;
          flex-direction: row-reverse;
        }
        
        /* Promise セクション：水色（安心感・ロジック）に */
        .promise { position: relative; background: var(--color-blue-bg); overflow: hidden; }
        .promise-grid { position: relative; z-index: 1; }
        .promise-left .eyebrow { color: var(--color-blue-dark); }
        .promise-left h2 em {
          color: var(--color-blue-dark);
          background-image: linear-gradient(to top, rgba(95,163,181,0.22) 48%, transparent 48%);
        }
        .value-item .num { color: var(--color-blue-dark); }
        .value-item { border-bottom-color: rgba(59,130,148,0.12); }
        
        /* Method セクション：水色化＋非対称化（01を大きく） */
        .method {
          position: relative;
          background: linear-gradient(180deg, var(--color-blue-bg) 0%, #D4E8EF 100%);
          overflow: hidden;
        }
        .method-header, .steps, .method .btn-row { position: relative; z-index: 1; }
        .method .eyebrow { color: var(--color-blue-dark); }
        .method-header h2 .hl {
          background-image: linear-gradient(to top, rgba(95,163,181,0.28) 48%, transparent 48%) !important;
          padding: 0 4px;
        }
        .steps {
          grid-template-columns: repeat(3, 1fr);
          align-items: stretch;
          gap: 24px;
        }
        .steps::before {
          background: repeating-linear-gradient(to right, var(--color-blue) 0 6px, transparent 6px 14px);
          top: 88px;
        }
        
        /* wave divider */
        .wave-divider { display: block; width: 100%; overflow: hidden; line-height: 0; }
        .wave-divider svg { display: block; width: 100%; }
        
        /* mini-voice：watermark 用 */
        .mini-voice { position: relative; overflow: hidden; }
        .mini-voice-header, .mini-voice-grid, .mini-voice-cta { position: relative; z-index: 1; }
        
        /* mini-about, blog-latest: watermark 用 */
        .mini-about { position: relative; overflow: hidden; }
        .mini-about-grid, .mini-about .media-strip { position: relative; z-index: 1; }
        .blog-latest { position: relative; overflow: hidden; }
        .blog-header, .blog-grid, .blog-cta { position: relative; z-index: 1; }
        
        /* SNS帯：水色アクセント（外部露出の文脈に合う） */
        .sns-strip h2 { color: var(--color-blue-dark); }
        .sns-link .platform { color: var(--color-blue-dark); }
        
        /* mini-about：水色サークルを配置（ピンクと交互にするため） */
        .mini-about-photo::before { background: var(--color-blue-soft); opacity: 0.85; }
        
        /* レスポンシブ（非対称化を解除） */
        @media (max-width: 860px) {
          .steps {
            grid-template-columns: 1fr !important;
          }
          .section-watermark { font-size: clamp(70px, 20vw, 140px); top: 24px; }
          .section-num { top: 28px; right: 20px; font-size: 11px; }
        }
        
        /* ============================================
           ブロブ（背景装飾）
           ============================================ */
        .blob {
          position: absolute;
          border-radius: 50%;
          filter: blur(80px);
          pointer-events: none;
          z-index: 0;
        }
        .blob-pink { background: var(--color-pink); opacity: 0.18; }
        .blob-blue { background: var(--color-blue); opacity: 0.15; }
        .blob-cream { background: #E8C9A0; opacity: 0.2; }
        .blob-sm { width: 280px; height: 280px; }
        .blob-md { width: 400px; height: 400px; }
        .blob-lg { width: 560px; height: 560px; }
        .blob-tl { top: -100px; left: -100px; }
        .blob-tr { top: -80px; right: -80px; }
        .blob-bl { bottom: -100px; left: -60px; }
        .blob-br { bottom: -80px; right: -80px; }
        .blob-center { top: 50%; left: 50%; transform: translate(-50%, -50%); }
        
        

/* ============================================================
   common.css（mockup共通CSS）追加 2026-06-21
   ヘッダー/ナビ/ハンバーガー/ドロワー/フッター/共通コンポーネント
   ============================================================ */
/* ============================================
   フォント定義
   ============================================ */
@font-face {
  font-family: 'SiteDisplay';
  src: local('TsukuAMGothicLStd-B'),
       local('Tsuku A MGothic LStd B'),
       url('./BIZUDPGothic-Bold.ttf') format('truetype'),
       local('BIZ UDPGothic');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'SiteDisplay';
  src: local('BIZ UDPGothic'),
       url('./BIZUDPGothic-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

/* ============================================
   共通スタイル｜ヘッダー・フッター・トークン
   ============================================ */
:root {
  --color-base: #FAF8F6;
  --color-base-sub: #F7F2EF;
  --color-pink: #D98B91;
  --color-pink-btn: #C47880;
  --color-pink-btn-hover: #B56B77;
  --color-pink-dark: #C05E6A;
  --color-pink-light: #F5D2D6;
  --color-pink-bg: #FEF1F2;
  --color-blue: #79B3C7;
  --color-blue-dark: #4990A6;
  --color-blue-soft: #C5DCE8;
  --color-blue-bg: #EAF2F6;
  --color-text: #2A2A2A;
  --color-text-soft: #5C5C5C;
  --color-text-sub: #8A8A8A;
  --font-jp-display: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  --font-jp-body: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif;
  --font-en-display: 'Quicksand', sans-serif;
  --font-en-hand: 'Caveat', cursive;
  --content-max: 1100px;
  --content-narrow: 820px;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-pill: 999px;
  --section-py: 120px;
  --section-px: 60px;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--font-jp-body);
  color: var(--color-text);
  background: var(--color-base);
  font-size: 16px;
  line-height: 1.9;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; }

/* ヘッダー */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 22px 40px;
  pointer-events: none;
  transition: background 0.25s ease, box-shadow 0.25s ease;
}
.site-header > * { pointer-events: auto; }
.site-header.is-scrolled {
  background: rgba(250, 248, 246, 0.92);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 2px 14px -8px rgba(42, 42, 42, 0.15);
}
.site-header .logo {
  font-family: var(--font-en-display);
  font-weight: 500;
  font-size: 22px;
  color: #FFFFFF;
  text-decoration: none;
  letter-spacing: 0.12em;
  text-shadow: 0 1px 8px rgba(0,0,0,0.22);
  transition: color 0.25s ease, text-shadow 0.25s ease;
  line-height: 1.1;
}
.site-header .logo .english {
  font-family: var(--font-en-display);
  font-style: italic;
  font-weight: 400;
}
.site-header .logo .sublogo {
  display: block;
  font-family: var(--font-jp-body);
  font-size: 10.5px;
  font-weight: 400;
  letter-spacing: 0.1em;
  margin-top: 4px;
  opacity: 0.88;
  text-shadow: 0 1px 6px rgba(0,0,0,0.2);
}
.site-header.is-scrolled .logo,
body.menu-open .site-header .logo,
.site-header.theme-light .logo {
  color: var(--color-text);
  text-shadow: none;
}
.site-header.is-scrolled .logo .sublogo,
body.menu-open .site-header .logo .sublogo,
.site-header.theme-light .logo .sublogo {
  color: var(--color-text-soft);
  text-shadow: none;
}
.site-header nav {
  display: flex;
  align-items: center;
  gap: 28px;
}
.site-header nav a {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  font-family: var(--font-jp-display);
  font-weight: 400;
  font-size: 12.5px;
  color: #FFFFFF;
  text-decoration: none;
  letter-spacing: 0.1em;
  padding: 8px 0;
  position: relative;
  transition: color 0.22s ease;
  text-shadow: 0 1px 6px rgba(0,0,0,0.22);
  line-height: 1.3;
}
.site-header nav a .nav-en {
  font-family: var(--font-en-display);
  font-style: italic;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.1em;
  opacity: 0.78;
  text-transform: none;
}
.site-header nav a::after {
  content: '';
  position: absolute;
  left: 0; bottom: 2px;
  width: 0; height: 1px;
  background: currentColor;
  transition: width 0.25s ease;
}
.site-header nav a:hover::after { width: 100%; }
.site-header nav a.nav-contact {
  color: var(--color-text);
  background: #FFFFFF;
  padding: 10px 22px;
  border-radius: var(--radius-pill);
  margin-left: 8px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08), 0 6px 18px rgba(0,0,0,0.12);
  transition: transform 0.22s ease, box-shadow 0.22s ease, color 0.22s ease, background 0.22s ease;
  text-shadow: none;
}
.site-header nav a.nav-contact::after { display: none; }
.site-header nav a.nav-contact:hover {
  transform: translateY(-2px);
  color: var(--color-pink-dark);
  box-shadow: 0 4px 10px rgba(0,0,0,0.08), 0 10px 24px rgba(0,0,0,0.16);
}
.site-header.is-scrolled nav a,
.site-header.theme-light nav a {
  color: var(--color-text);
  text-shadow: none;
}
.site-header.is-scrolled nav a:not(.nav-contact),
.site-header.theme-light nav a:not(.nav-contact) {
  color: var(--color-text-soft);
}
.hamburger {
  display: none;
  width: 44px;
  height: 44px;
  background: rgba(255, 255, 255, 0.75);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(42, 42, 42, 0.08);
  border-radius: 12px;
  padding: 0;
  cursor: pointer;
  position: relative;
  z-index: 101;
  transition: background 0.25s ease, border-color 0.25s ease;
}
.hamburger:hover { background: rgba(255, 255, 255, 0.9); }
.hamburger span {
  position: absolute;
  left: 12px; right: 12px;
  height: 1.5px;
  background: var(--color-text);
  transition: transform 0.3s ease, top 0.3s ease, opacity 0.2s ease;
}
.hamburger span:nth-child(1) { top: 15px; }
.hamburger span:nth-child(2) { top: 21px; }
.hamburger span:nth-child(3) { top: 27px; }
.hamburger[aria-expanded="true"] span:nth-child(1) { top: 21px; transform: rotate(45deg); }
.hamburger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.hamburger[aria-expanded="true"] span:nth-child(3) { top: 21px; transform: rotate(-45deg); }
.mobile-menu-backdrop { display: none; }
.mobile-menu {
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(250, 248, 246, 0.98);
  backdrop-filter: blur(16px);
  padding: 120px 40px 60px;
  z-index: 90;
  transform: translateY(-100%);
  transition: transform 0.45s cubic-bezier(.4,0,.2,1);
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.mobile-menu.open { transform: translateY(0); }
.mobile-menu { counter-reset: mm; }
.mobile-menu > a {
  display: flex;
  align-items: baseline;
  gap: 14px;
  font-size: 19px;
  color: var(--color-text);
  text-decoration: none;
  padding: 18px 2px;
  border-bottom: 1px solid rgba(42, 42, 42, 0.08);
  letter-spacing: 0.1em;
  font-weight: 500;
  font-family: var(--font-jp-display);
}
.mobile-menu > a:not(.mm-contact)::before {
  counter-increment: mm;
  content: counter(mm, decimal-leading-zero);
  font-family: var(--font-en-display);
  font-style: italic;
  font-size: 11px;
  letter-spacing: 0.06em;
  color: var(--color-pink);
  align-self: center;
}
.mobile-menu > a .mm-en {
  margin-left: auto;
  font-family: var(--font-en-display);
  font-style: italic;
  font-weight: 500;
  font-size: 11.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--color-text-sub);
  flex-shrink: 0;
  transition: color 0.22s ease;
}
.mobile-menu > a:hover { color: var(--color-pink-dark); padding-left: 10px; }
.mobile-menu > a:hover .mm-en { color: var(--color-pink); }
.mobile-menu > a.mm-contact {
  justify-content: center;
  margin-top: 26px;
  padding: 16px 24px;
  border: none;
  border-radius: var(--radius-pill);
  background: var(--color-pink-btn);
  color: #FFFFFF;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.1em;
  box-shadow: 0 10px 24px -10px rgba(192,94,106,0.55);
}
.mobile-menu > a.mm-contact:hover { padding-left: 24px; background: var(--color-pink-btn-hover); color: #FFFFFF; }
.mobile-menu > a.mm-contact .mm-en { display: none; }
.mm-social {
  display: flex;
  justify-content: center;
  gap: 18px;
  margin-top: 30px;
  padding-top: 26px;
  border-top: 1px solid rgba(42,42,42,0.08);
}
.mm-social a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px;
  border-radius: 50%;
  background: rgba(42,42,42,0.04);
  color: var(--color-text-soft);
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.mm-social a:hover { background: var(--color-pink-light); color: var(--color-pink-dark); transform: translateY(-2px); }
.mm-social a svg { width: 18px; height: 18px; fill: currentColor; }
.mobile-menu > a, .mobile-menu .mm-social {
  opacity: 0; transform: translateY(10px);
  transition: opacity 0.45s ease, transform 0.45s ease, color 0.22s ease, padding-left 0.28s cubic-bezier(.4,0,.2,1), background 0.2s ease;
}
.mobile-menu.open > a, .mobile-menu.open .mm-social { opacity: 1; transform: none; }
.mobile-menu.open > a:nth-child(1){ transition-delay: 0.06s; }
.mobile-menu.open > a:nth-child(2){ transition-delay: 0.11s; }
.mobile-menu.open > a:nth-child(3){ transition-delay: 0.16s; }
.mobile-menu.open > a:nth-child(4){ transition-delay: 0.21s; }
.mobile-menu.open > a:nth-child(5){ transition-delay: 0.26s; }
.mobile-menu.open > a:nth-child(6){ transition-delay: 0.31s; }
.mobile-menu.open > a:nth-child(7){ transition-delay: 0.36s; }
.mobile-menu.open .mm-social { transition-delay: 0.44s; }
.mm-close {
  align-self: flex-end;
  display: inline-flex; align-items: center; gap: 8px;
  background: none; border: none; cursor: pointer;
  font-family: var(--font-en-display); font-weight: 600;
  font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--color-text-sub);
  padding: 6px 2px; margin-bottom: 12px;
  transition: color 0.2s ease;
}
.mm-close span { font-size: 16px; line-height: 1; }
.mm-close:hover { color: var(--color-pink-dark); }
.mobile-menu > a:not(.mm-contact)::after {
  content: "\2192";
  font-family: var(--font-en-display);
  font-size: 14px;
  color: var(--color-pink);
  opacity: 0;
  transform: translateX(-6px);
  transition: opacity 0.22s ease, transform 0.22s ease;
  margin-left: 4px;
  align-self: center;
}
.mobile-menu > a:not(.mm-contact):hover::after,
.mobile-menu > a.is-current::after { opacity: 1; transform: translateX(0); }
.mobile-menu > a.is-current { color: var(--color-pink-dark); }
.mobile-menu > a.is-current::before { color: var(--color-pink-dark); }
.mobile-menu > a.is-current .mm-en { color: var(--color-pink); }

/* ページヘッダー（下層タイトル帯） */
.page-header {
  padding: 160px 24px 80px;
  background: var(--color-base-sub);
  text-align: center;
  position: relative;
}
.page-header .breadcrumb {
  font-family: var(--font-en-display);
  font-size: 12px;
  color: var(--color-text-sub);
  letter-spacing: 0.14em;
  text-align: left;
  width: 100%;
  max-width: var(--content-max);
  margin: 0 auto 40px;
  padding: 0 8px;
}
.page-header .breadcrumb a { color: inherit; text-decoration: none; transition: color 0.22s ease; }
.page-header .breadcrumb a:hover { color: var(--color-pink-dark); }
.page-header .breadcrumb .sep { margin: 0 10px; opacity: 0.6; }
.page-header .en-title {
  font-family: var(--font-en-display);
  font-weight: 500;
  font-size: 15px;
  color: var(--color-pink-dark);
  letter-spacing: 0.3em;
  margin-bottom: 12px;
  text-transform: uppercase;
}
.page-header h1 {
  font-family: var(--font-jp-display);
  font-weight: 500;
  font-size: clamp(32px, 4.5vw, 52px);
  color: var(--color-text);
  line-height: 1.4;
  margin: 0 0 24px;
  letter-spacing: 0.04em;
}
.page-header .subtext {
  font-family: var(--font-jp-body);
  font-size: 16px;
  line-height: 2;
  color: var(--color-text-soft);
  max-width: 620px;
  margin: 0 auto;
  letter-spacing: 0.04em;
}
.page-header .cover-mark {
  display: block;
  width: var(--cm-w, 420px);
  height: auto;
  max-width: 90%;
  margin: 0 auto 14px;
  position: relative;
  z-index: 1;
  pointer-events: none;
}
.page-header .cover-mark text {
  font-family: var(--font-en-display);
  font-weight: 700;
  font-size: 300px;
  letter-spacing: -0.01em;
  fill: transparent;
  stroke: var(--color-pink-dark);
  stroke-width: 3;
  stroke-linejoin: round;
  stroke-linecap: round;
  stroke-dasharray: var(--draw-len, 5000);
  stroke-dashoffset: var(--draw-len, 5000);
  animation: coverDraw 2.8s cubic-bezier(.65,.05,.36,1) .25s forwards,
             coverFill 0.8s ease 2.6s forwards;
}
@keyframes coverDraw { to { stroke-dashoffset: 0; } }
@keyframes coverFill { to { fill: rgba(192,94,106,0.10); } }
@media (prefers-reduced-motion: reduce) {
  .page-header .cover-mark text { animation: none; stroke-dashoffset: 0; fill: rgba(192,94,106,0.10); }
}
.page-header .header-wave {
  position: absolute;
  left: 0; right: 0; bottom: -1px;
  width: 100%;
  height: clamp(40px, 5vw, 70px);
  display: block;
  z-index: 3;
  pointer-events: none;
}

/* 共通セクション */
.section { padding: 110px 24px; position: relative; }
.section.alt { background: var(--color-base-sub); }
.section.cream { background: var(--color-base); }
.section.dark { background: var(--color-text); color: #E8E4E0; }
.section--overlap {
  border-radius: 80px 80px 0 0;
  margin-top: -80px;
  padding-top: calc(var(--section-py) + 80px);
  position: relative;
  z-index: 2;
  overflow: hidden;
}
.section--overlap ~ .section--overlap { z-index: 3; }
.section--overlap ~ .section--overlap ~ .section--overlap { z-index: 4; }
.section--overlap ~ .section--overlap ~ .section--overlap ~ .section--overlap { z-index: 5; }
.section--overlap ~ .section--overlap ~ .section--overlap ~ .section--overlap ~ .section--overlap { z-index: 6; }
@media (max-width: 860px) {
  .section--overlap { border-radius: 56px 56px 0 0; margin-top: -56px; padding-top: calc(80px + 56px); }
}
@media (max-width: 420px) {
  .section--overlap { border-radius: 40px 40px 0 0; margin-top: -40px; padding-top: calc(72px + 40px); }
}
.site-footer.section--overlap { margin-top: 0; }
.section-watermark {
  position: absolute;
  pointer-events: none;
  z-index: 0;
  font-family: var(--font-en-serif, 'Quicksand', sans-serif);
  font-style: italic;
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 0.88;
  font-size: clamp(110px, 17vw, 240px);
  color: rgba(42,42,42,0.045);
  top: -30px;
  left: -14px;
  user-select: none;
  white-space: nowrap;
}
.section-watermark.right { left: auto; right: -14px; }
.section-watermark.blue { color: rgba(59,130,148,0.08); }
.section-watermark.pink { color: rgba(191,110,110,0.08); }
.section-watermark.dark { color: rgba(42,42,42,0.08); }
@media (max-width: 860px) {
  .section-watermark { font-size: clamp(70px, 20vw, 140px); top: 24px; }
}
.section-inner { max-width: var(--content-max); margin: 0 auto; position: relative; }
.section-inner.narrow { max-width: var(--content-narrow); }
.eyebrow {
  font-family: var(--font-en-hand);
  font-weight: 700;
  font-size: 32px;
  color: var(--color-pink-dark);
  letter-spacing: 0.02em;
  margin: 0 0 10px;
  line-height: 1;
}
.eyebrow.en {
  font-family: var(--font-en-display);
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--color-pink-dark);
}
.section-title {
  font-family: var(--font-jp-display);
  font-weight: 500;
  font-size: clamp(26px, 3.6vw, 38px);
  color: var(--color-text);
  line-height: 1.55;
  margin: 0 0 48px;
  letter-spacing: 0.04em;
}
.section-title .hl { background-image: linear-gradient(to top, rgba(232,165,165,0.28) 48%, transparent 48%); padding: 0 2px; }
.section-title .hl-blue { background-image: linear-gradient(to top, rgba(124,185,201,0.28) 48%, transparent 48%); padding: 0 2px; }
.eyebrow.blue { color: var(--color-blue-dark); }
.eyebrow.en.blue { color: var(--color-blue-dark); }
.section.alt-blue { background: #EFF5F7; }
.section-lead {
  font-family: var(--font-jp-body);
  font-size: 16px;
  line-height: 2.1;
  color: var(--color-text-soft);
  margin: 0 0 48px;
  letter-spacing: 0.04em;
}

/* ボタン */
.btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 15px 32px; border-radius: 40px;
  font-family: var(--font-jp-display); font-weight: 700; font-size: 15px;
  letter-spacing: 0.04em; text-decoration: none; border: none; cursor: pointer;
  transition: transform 0.22s ease, box-shadow 0.22s ease, background 0.22s ease, color 0.22s ease;
  line-height: 1;
}
.btn:focus-visible { outline: 2px solid var(--color-pink); outline-offset: 3px; }
.btn .btn-arrow { display: inline-flex; transition: transform 0.22s ease; flex-shrink: 0; }
.btn:hover .btn-arrow { transform: translateX(3px); }
.btn-primary { background: var(--color-pink-btn); color: #FFFFFF; box-shadow: 0 6px 20px -8px rgba(196,120,128,0.45); }
.btn-primary:hover { transform: translateY(-2px); background: var(--color-pink-btn-hover); box-shadow: 0 10px 28px -8px rgba(196,120,128,0.55); }
.btn-blue { background: var(--color-blue); color: #FFFFFF; box-shadow: 0 6px 20px -8px rgba(121,179,199,0.45); }
.btn-blue:hover { transform: translateY(-2px); background: var(--color-blue-dark); box-shadow: 0 10px 28px -8px rgba(73,144,166,0.5); }
.btn-line { background: #06C755; color: #FFFFFF; box-shadow: 0 6px 18px -6px rgba(6,199,85,0.4); }
.btn-line:hover { transform: translateY(-2px); box-shadow: 0 10px 24px -8px rgba(6,199,85,0.55); }
.btn-outline { background: transparent; color: var(--color-text); border: 1.5px solid rgba(42,42,42,0.3); }
.btn-outline:hover { border-color: var(--color-text); transform: translateY(-2px); }
.btn-ghost { background: #FFFFFF; color: var(--color-text); box-shadow: 0 4px 16px -8px rgba(42,42,42,0.2); }
.btn-ghost:hover { transform: translateY(-2px); box-shadow: 0 8px 22px -8px rgba(42,42,42,0.28); }
.btn-row { display: flex; gap: 14px; flex-wrap: wrap; }
.btn-row.center { justify-content: center; }

/* フッター */
.site-footer {
  background: #F7F2EF;
  color: var(--color-text-soft);
  padding: 80px 24px 36px;
  border-radius: 80px 80px 0 0;
  position: relative;
  z-index: 10;
  margin-top: -80px;
  padding-top: 110px;
}
@media (max-width: 860px) {
  .site-footer { border-radius: 56px 56px 0 0; margin-top: -56px; padding-top: 90px; }
}
@media (max-width: 420px) {
  .site-footer { border-radius: 40px 40px 0 0; margin-top: -40px; padding-top: 70px; }
}
.footer-inner {
  max-width: var(--content-max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 48px;
  margin-bottom: 56px;
}
.footer-brand .footer-logo {
  font-family: var(--font-en-display);
  font-weight: 500;
  font-size: 22px;
  color: var(--color-text);
  letter-spacing: 0.04em;
  margin-bottom: 12px;
  line-height: 1.3;
}
.footer-brand .footer-logo .english { font-family: var(--font-en-display); font-style: italic; font-weight: 400; }
.footer-brand .footer-logo .sublogo {
  display: block; font-family: var(--font-jp-body); font-size: 11px; font-weight: 400;
  letter-spacing: 0.1em; color: var(--color-text-sub); margin-top: 6px;
}
.footer-brand p { font-family: var(--font-jp-body); font-size: 12.5px; line-height: 2; color: var(--color-text); margin: 0; letter-spacing: 0.04em; }
.footer-col h4 { font-family: var(--font-en-hand); font-weight: 700; font-size: 22px; color: var(--color-pink-dark); margin: 0 0 18px; letter-spacing: 0.02em; }
.footer-col ul { list-style: none; padding: 0; margin: 0; }
.footer-col li { margin-bottom: 11px; }
.footer-col a { font-family: var(--font-jp-body); font-size: 14px; color: var(--color-text-soft); text-decoration: none; letter-spacing: 0.04em; transition: color 0.22s ease; }
.footer-col a:hover { color: var(--color-pink-dark); }
.footer-col .ftr-ic { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; margin-right: 8px; vertical-align: -3px; }
.footer-col .ftr-ic svg { width: 100%; height: 100%; display: block; }
.footer-col .ftr-tx { display: inline; }
.footer-bottom {
  border-top: 1px solid rgba(0,0,0,0.1);
  padding-top: 24px;
  text-align: center;
  font-family: var(--font-en-display);
  font-size: 12px;
  color: #B89AA0;
  letter-spacing: 0.08em;
}

/* スクロールフェード */
.fade-in { opacity: 0; transform: translateY(24px); transition: opacity 0.8s ease, transform 0.8s cubic-bezier(.4,0,.2,1); }
.fade-in.is-visible { opacity: 1; transform: translateY(0); }
.section-title-anim { transform: translateX(-20px); opacity: 0; transition: transform 0.7s cubic-bezier(.4,0,.2,1), opacity 0.7s ease; }
.section-title-anim.is-visible { transform: translateX(0); opacity: 1; }

/* レスポンシブ */
@media (max-width: 860px) {
  .site-header { padding: 18px 20px; }
  .site-header nav { display: none; }
  .hamburger { display: block; }
  .mobile-menu { padding: 96px 28px 40px; }
  .mobile-menu > a { font-size: 18px; padding: 15px 2px; }
  .mobile-menu > a.mm-contact { padding: 16px 24px; font-size: 16px; }
  .mobile-menu > a .mm-en { font-size: 11px; }
  .page-header { padding: 120px 20px 60px; }
  .section { padding: 80px 20px; }
  .footer-inner { grid-template-columns: 1fr 1fr; gap: 26px 20px; margin-bottom: 30px; justify-items: center; }
  .footer-brand { grid-column: 1 / -1; order: 0; text-align: center; }
  .footer-brand p { margin-top: 12px; }
  .footer-inner > .footer-col:last-child { grid-column: 1 / -1; order: 1; text-align: center; margin-top: 2px; }
  .footer-inner > .footer-col:last-child h4 { display: none; }
  .footer-inner > .footer-col:last-child ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 24px; }
  .footer-inner > .footer-col:last-child li { margin-bottom: 0; }
  .footer-inner > .footer-col:last-child .ftr-tx { display: none; }
  .footer-inner > .footer-col:last-child .ftr-ic { width: 26px; height: 26px; margin-right: 0; vertical-align: middle; }
  .footer-inner > .footer-col:nth-child(2) { order: 2; }
  .footer-inner > .footer-col:nth-child(3) { order: 3; }
  .footer-col { text-align: center; }
  .footer-col li { margin-bottom: 9px; }
  .footer-col h4 { margin-bottom: 12px; }
  .footer-bottom { margin-top: 4px; }
  .btn-row { flex-direction: column; align-items: stretch; }
  .btn-row.center { align-items: center; }
  .btn-row.center .btn { width: 100%; max-width: 320px; justify-content: center; }
}
@media (max-width: 420px) {
  .section { padding: 72px 18px; }
  .eyebrow { font-size: 26px; }
  .footer-inner { grid-template-columns: 1fr 1fr; gap: 24px 16px; }
  .footer-inner > .footer-col:last-child ul { gap: 8px 16px; }
}
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
  .fade-in { opacity: 1; transform: none; }
}

/* 吹き出し */
.bubble { position: relative; background: #FFFFFF; border-radius: 18px 18px 18px 4px; padding: 26px 28px 24px; box-shadow: 0 8px 28px -14px rgba(42,42,42,0.18); }
.bubble::after { content: ''; position: absolute; bottom: -13px; left: 22px; width: 0; height: 0; border-style: solid; border-width: 14px 10px 0 0; border-color: #FFFFFF transparent transparent transparent; filter: drop-shadow(0 3px 3px rgba(42,42,42,0.06)); }
.bubble.pink { background: var(--color-pink-bg); }
.bubble.pink::after { border-top-color: var(--color-pink-bg); }
.bubble.blue { background: var(--color-blue-bg); }
.bubble.blue::after { border-top-color: var(--color-blue-bg); }
.bubble-foot { display: flex; align-items: center; gap: 10px; margin-top: 16px; padding-left: 4px; }
.bubble-foot .avatar { width: 38px; height: 38px; border-radius: 50%; background: var(--color-pink-light); display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; border: 2px solid #FFFFFF; box-shadow: 0 2px 8px -4px rgba(42,42,42,0.2); }
.bubble-foot .avatar.blue-avatar { background: var(--color-blue-soft); }
.bubble-foot .speaker { font-family: var(--font-jp-body); font-size: 11.5px; color: var(--color-text-sub); letter-spacing: 0.08em; }

/* カスタムカーソル */
.cursor-dot { position: fixed; top: 0; left: 0; width: 28px; height: 28px; border-radius: 50%; background: rgba(196, 120, 128, 0.32); pointer-events: none; z-index: 9999; transform: translate(-50%, -50%); transition: width .25s ease, height .25s ease, background .25s ease, opacity .25s ease; mix-blend-mode: multiply; opacity: 0; }
.cursor-dot.is-active { opacity: 1; }
.cursor-dot.is-hover { width: 60px; height: 60px; background: rgba(196, 120, 128, 0.18); }
@media (hover: none), (max-width: 960px) { .cursor-dot { display: none; } }
@media (prefers-reduced-motion: reduce) { .cursor-dot { display: none; } }

/* フッター文字色スキーム */
.site-footer.ftr-dark { color: #FBEFF0; }
.site-footer.ftr-dark .footer-col h4 { color: #fff; }
.site-footer.ftr-dark .footer-col a { color: #FBEFF0; }
.site-footer.ftr-dark .footer-col a:hover { color: #fff; }
.site-footer.ftr-dark .footer-brand p,
.site-footer.ftr-dark .footer-logo { color: #FBEFF0; }
.site-footer.ftr-dark .footer-bottom { color: rgba(255,255,255,0.6); border-color: rgba(255,255,255,0.18); }
.site-footer.ftr-light { color: var(--color-text-soft); }
.site-footer.ftr-light .footer-col h4 { color: var(--color-text); }
.site-footer.ftr-light .footer-col a { color: var(--color-text-soft); }
.site-footer.ftr-light .footer-col a:hover { color: var(--color-pink-dark); }
.site-footer.ftr-light .footer-brand p { color: var(--color-text-soft); }
.site-footer.ftr-light .footer-logo { color: var(--color-text); }
.site-footer.ftr-light .footer-bottom { color: #B89AA0; border-color: rgba(0,0,0,0.1); }


/* === 固定ページ: SWELLのコンテンツ幅制限を解除しフルワイドセクションを実現 2026-06-22 === */
.page-template-default .l-content.l-container,
.page-template-default .l-mainContent,
.page-template-default .l-mainContent__inner,
.page-template-default .post_content {
  max-width: 100% !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}


/* === 固定ページ: SWELLの見出しデフォルト装飾（背景帯・ボーダー）を打ち消し、ayami独自デザインを優先 2026-06-22 === */
.page-template-default .post_content h1,
.page-template-default .post_content h2,
.page-template-default .post_content h3,
.page-template-default .post_content h4 {
  background: none !important;
  border: none !important;
}
.page-template-default .section-title,
.page-template-default .section-title-anim,
.page-template-default .section-title-anim::before,
.page-template-default .section-title::before {
  padding: 0 !important;
  background: none !important;
}


/* === 固定ページ: SWELLページタイトル帯を非表示＋見出しデフォルト装飾打ち消し 2026-06-23 === */
.page-template-default .c-pageTitle, body.page .c-pageTitle { display:none !important; }
.page-template-default .post_content h1, .page-template-default .post_content h2, .page-template-default .post_content h3, .page-template-default .post_content h4,
body.page .post_content h1, body.page .post_content h2, body.page .post_content h3, body.page .post_content h4 { background:none !important; border:none !important; }
.page-template-default .post_content h2::before, .page-template-default .post_content h2::after, .page-template-default .post_content h3::before, .page-template-default .post_content h3::after,
body.page .post_content h2::before, body.page .post_content h2::after, body.page .post_content h3::before, body.page .post_content h3::after { content:none !important; display:none !important; }


/* === SWELLパンくず非表示（mockup独自パンくずは残す）2026-06-23 === */
.page-template-default .p-breadcrumb, body.page .p-breadcrumb { display:none !important; }

/* =========================================================
   [崩れ修正 2026-06-23] WP反映時のデザイン不具合対応
   ========================================================= */
/* (1) ヘッダー: 最上部は透明にして写真上の白文字を見せる。
      is-scrolled時のみ薄背景。ayami-style-allのベース.site-header薄背景を打消す */
.site-header:not(.is-scrolled){
  background: transparent !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  box-shadow: none !important;
}
/* (2) SWELLが各ブロックに付ける下余白(32px)を、カスタムヘッダー入稿ページのみ除去。
      セクションのオーバーラップ(-80px)を妨げる隙間を解消（上余白は温存） */
.post_content:has(> .site-header) > *{ margin-bottom: 0 !important; }
/* (3) SWELL標準の追従(固定)ヘッダーを非表示。カスタムヘッダーとの二重表示を解消 */
.l-fixHeader{ display: none !important; }
/* ========================================================= */

/* === [崩れ修正2 2026-06-23] デザイナー確認による追加修正 === */
/* (4) ナビ文字サイズを最新デザインに合わせ14pxへ（統合CSSが旧12.5px） */
.site-header nav a{ font-size: 14px !important; }
/* (5) Blogセクション上の境界線を除去（最新デザインに無い・旧ayami-style-all由来） */
.blog-latest{ border-top: none !important; }
/* (6) SWELLのH2/H3見出しデザイン（白文字＋背景ボックス＋余白）が丸貼りカスタム
      ページの見出しに乗るのを打消す。ブログ投稿ページには影響させない */
.post_content:has(> .site-header) :is(h2,h3,h4):where(:not([class^="swell-block-"])){
  color: var(--color-text) !important;
  padding: 0 !important;
  background: none !important;
}
.post_content:has(> .site-header) :is(h2,h3,h4)::before,
.post_content:has(> .site-header) :is(h2,h3,h4)::after{ content: none !important; }
/* ========================================================= */

/* === [崩れ修正3 2026-06-23] デザイナー確認 第3弾 === */
/* (7) ログイン時のWP管理バー(32/46px)が固定ヘッダーに被るのを回避 */
.admin-bar .site-header{ top: 32px; }
@media screen and (max-width: 782px){ .admin-bar .site-header{ top: 46px; } }
/* (8) voice引用の旧装飾（引用符マーク＋ピンク左線）を除去＝最新デザイン準拠 */
.voice-quote::before{ content: none !important; }
.voice-quote{ border-left: none !important; padding-left: 0 !important; }
/* ========================================================= */

/* === [崩れ修正4 2026-06-23] デザイナー確認 第4弾 === */
/* (9) voiceカード左上のピンクのバー(::before)を除去＝最新デザイン準拠 */
.voice-card::before{ content: none !important; }
/* ========================================================= */


/* === ブログカード：アイキャッチ画像を枠なし・角丸でフィット表示（2026-06-24） === */
.blog-card .thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}


/* === ブログカード ホバー演出：画像ゆっくりズーム＋カード浮き＋画像にやわらか影（2026-06-24） === */
.blog-card .thumb img { transition: transform .5s ease; }
.blog-card:hover .thumb img { transform: scale(1.06); }
.blog-card .thumb { transition: box-shadow .3s ease; }
.blog-card:hover .thumb { box-shadow: 0 14px 28px rgba(42,42,42,0.12); }


/* === 最終CTAの導入文を中央寄せ（幅指定のボックスが左寄りだったのを修正 2026-06-24） === */
.final-cta-inner > p { margin-left: auto; margin-right: auto; }


/* === おうち英語とは 比較表：「英語教室」見出しがSWELL既定の白文字で消えていたのを修正 2026-06-24 === */
.compare-table thead th { color: var(--color-text); }


/* === おうち英語とは 比較表＆説明文：SWELL既定＆旧箱スタイルの打ち消し 2026-06-24 === */
.compare-table thead th { text-align: center !important; }
.compare-table thead th:first-child { text-align: left !important; }
.compare-table th, .compare-table td { border: 0 !important; }
.compare-table tbody td { border-top: 1px solid rgba(42,42,42,0.06) !important; }
.compare-note { max-width: 720px; margin: 0 auto; padding: 0; background: none; border: 0; border-radius: 0; }


/* ===== photo-strip 英語の声かけステッカー（丸・水色・ランダム位置・弾むポップ） 2026-06 ===== */
.photo-strip .inner{position:relative}
.photo-strip .strip-note{position:absolute;z-index:2;width:84px;height:84px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;text-align:center;padding:6px;transform:rotate(var(--r,-4deg));font-family:'Caveat','Klee One',cursive;font-weight:700;font-size:19px;line-height:1.05;color:#C05E6A;background:#FFFDF8;border-radius:50%;border:2px solid currentColor;pointer-events:none}
.photo-strip .strip-note.blue{color:#3D7A8C;background:#E5F1F4}
.photo-strip .strip-note.tl{top:-12px;left:-12px}
.photo-strip .strip-note.tr{top:-12px;right:-12px}
.photo-strip .strip-note.bl{bottom:-12px;left:-12px}
.photo-strip .strip-note.br{bottom:-12px;right:-12px}
.photo-strip.will-pop .strip-note{opacity:0}
.photo-strip.notes-in .strip-note{animation:strip-pop .45s cubic-bezier(.2,1.5,.4,1) both,strip-float 4s ease-in-out infinite;animation-delay:calc(var(--i,0)*90ms),calc(1.2s + var(--i,0)*400ms)}
@keyframes strip-pop{0%{opacity:0;transform:rotate(var(--r,-4deg)) scale(0)}65%{opacity:1;transform:rotate(var(--r,-4deg)) scale(1.1)}100%{opacity:1;transform:rotate(var(--r,-4deg)) scale(1)}}
@keyframes strip-float{0%,100%{transform:rotate(var(--r,-4deg)) translateY(0)}50%{transform:rotate(var(--r,-4deg)) translateY(-4px)}}
@media(max-width:600px){.photo-strip .strip-note{width:64px;height:64px;font-size:15px}}


/* about プロフィール文：段落間を詰める（行間は維持） 2026-06 */
.profile-copy .bio p{margin-bottom:-4px !important}
.profile-copy .bio p:last-child{margin-bottom:0 !important}
