@charset "utf-8";
/* =============================================================
   こんぺいとう企画 リニューアル｜ラピッドプロトタイプ CSS
   FLOCSS（Foundation / Layout / Component / Utility）
   - font-size: 14px基準（collable互換 / html 87.5%）。06_designの実測rem値をそのまま使用。
   - 色: 本文 #121212 は確定流用。CTA #e0633f はカラーパレット確定までの暫定（変数1行で差し替え）。
   - 画像はサイズ・形式が分かるプレースホルダ（.c-ph）。実画像は確定後に差し替え。
   ============================================================= */

/* =========================================================
   Foundation : トークン
   ========================================================= */
:root{
  /* ---- font ---- */
  --font-jp:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
  --font-en:"Hind",sans-serif;
  /* ---- color（top.pen 確定パレット・2026-06-09）---- */
  --c-primary:#2B3A67;       /* ブランド・ネイビー */
  --c-primary-ink:#ffffff;
  --c-text:#1F2433;          /* 本文 */
  --c-text-weak:#4A5165;     /* 補助テキスト */
  --c-text-mute:#6E7488;     /* 注釈・メタ */
  --c-inverse:#ffffff;       /* 反転文字 */
  --c-inverse-soft:#C9D2E8;  /* 反転文字（弱） */
  --c-bg:#ffffff;
  --c-bg-soft:#F5F7FA;       /* 薄グレー背景（課題/メルマガ等） */
  --c-bg-warm:#FBEFE9;       /* 暖色背景（個人寄附） */
  --c-navy:#2B3A67;          /* ネイビー背景（法人寄附） */
  --c-navy-soft:#3D4F85;     /* ネイビー上の円形メディア */
  --c-line:#E3E7EF;
  --c-line-strong:#C9CFDD;
  --c-cta:#E8604C;           /* 寄附CTA（コーラル・塗りは白抜き） */
  --c-cta-ink:#ffffff;
  --c-cta-hover:#D24F3C;
  --c-dark:#1F2433;          /* フッター/濃色ボタン */
  --c-dark-ink:#ffffff;
  --c-focus:#2B6CB0;         /* フォーカスリング */
  /* アクセント（装飾ドット・3軸カード） */
  --accent-mint:#CBE8D2; --accent-pink:#F9D5DC; --accent-sky:#BFE3F0; --accent-yellow:#FBE8A6;
  /* ---- spacing（4px系。1rem=14px換算）---- */
  --space-1:.4rem; --space-2:.8rem; --space-3:1.2rem; --space-4:1.6rem;
  --space-5:2.4rem; --space-6:3.2rem; --space-7:4.8rem; --space-8:6.4rem;
  /* ---- layout ---- */
  --container:1200px;
  --container-pad:2.4rem;
  --radius:.8rem;
  --radius-s:.5rem;
  --header-h:6.4rem;
  /* ---- breakpoint（参照用・実際は@media）---- */
}

/* =========================================================
   Foundation : リセット & ベース
   ========================================================= */
*,*::before,*::after{box-sizing:border-box}
html{font-size:87.5%;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--font-jp);
  font-size:1.3rem;          /* 本文 18.2px相当 */
  font-weight:400;
  line-height:1.8;
  color:var(--c-text);
  background:var(--c-bg);
  -webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline}
ul{margin:0;padding:0;list-style:none}
button{font:inherit;cursor:pointer}
h1,h2,h3,h4,p{margin:0}

/* 見出しスケール（SPベース → PCで拡大。06_designの6.8remは確認用に大きすぎるため実用調整）*/
h1,h2,h3,h4{font-family:var(--font-jp);color:var(--c-text);line-height:1.5}
h1{font-size:2.8rem;font-weight:700}
h2{font-size:2.0rem;font-weight:700}
h3{font-size:1.7rem;font-weight:500}
h4{font-size:1.4rem;font-weight:500}

/* a11y：スキップリンク / フォーカス可視 / 動き抑制 */
.u-skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--c-text);color:#fff;padding:.8rem 1.4rem;border-radius:0 0 var(--radius-s) 0}
.u-skip:focus{left:0}
:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px;border-radius:2px}
.u-visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}

/* =========================================================
   Layout
   ========================================================= */
.l-inner{width:100%;max-width:calc(var(--container) + var(--container-pad)*2);margin-inline:auto;padding-inline:var(--container-pad)}
.l-main{display:block}
.l-section{padding-block:var(--space-7)}
.l-section--alt{background:var(--c-bg-alt)}
.l-section--tight{padding-block:var(--space-5)}
.l-section__head{margin-bottom:var(--space-4)}
.l-section__head--center{text-align:center}

/* ヘッダー（追従） */
.l-header{position:sticky;top:0;z-index:100;background:var(--c-bg);border-bottom:1px solid var(--c-line)}
.l-header__inner{display:flex;align-items:center;gap:var(--space-4);min-height:var(--header-h)}
.l-header__logo{font-weight:700;font-size:1.6rem;white-space:nowrap}
.l-header__logo a:hover{text-decoration:none;opacity:.8}
.l-header__nav{margin-left:var(--space-2)}
.l-header__spacer{flex:1}
.l-header__cta{margin-left:auto}

/* フッター */
.l-footer{margin-top:var(--space-8);background:var(--c-bg-soft);border-top:3px solid var(--c-dark);color:var(--c-text-weak);font-size:1.2rem}
.l-footer__inner{padding-block:var(--space-6)}
.l-footer__lead{font-weight:700;color:var(--c-text);margin-bottom:var(--space-4)}
.l-footer__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5)}
.l-footer__col .l-footer__h{font-size:1.25rem;margin-bottom:var(--space-2);color:var(--c-text)}
.l-footer__col li{margin-block:.3rem}
.l-footer__col a:hover{color:var(--c-cta)}
.l-footer__legal{margin-top:var(--space-5);padding-top:var(--space-3);border-top:1px solid var(--c-line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2);color:var(--c-text-mute)}
.l-footer__sns{display:flex;gap:var(--space-2)}
.l-footer__sns a{width:2.6rem;height:2.6rem;border:1px solid var(--c-line-strong);border-radius:50%;display:grid;place-items:center;font-size:1.05rem}

/* =========================================================
   Component : グローバルナビ & ドロップダウン
   ========================================================= */
.c-gnav{display:flex;align-items:center;gap:var(--space-4)}
.c-gnav__item{position:relative}
.c-gnav__link{display:inline-flex;align-items:center;gap:.4rem;font-size:1.3rem;padding-block:.6rem;color:var(--c-text)}
.c-gnav__link[aria-current="page"]{color:var(--c-cta);font-weight:700;box-shadow:inset 0 -2px 0 var(--c-cta)}
.c-gnav__toggle{background:none;border:0;padding:.6rem 0;display:inline-flex;align-items:center;gap:.4rem;font-size:1.3rem;color:var(--c-text)}
.c-gnav__toggle::after{content:"▾";font-size:1rem;color:var(--c-text-mute)}

/* ドロップダウン本体 */
.c-dropdown{position:absolute;top:100%;left:0;min-width:20rem;background:var(--c-bg);border:1px solid var(--c-line);border-radius:var(--radius-s);box-shadow:0 8px 24px #0000001f;padding:.6rem;opacity:0;visibility:hidden;transform:translateY(.4rem);transition:opacity .15s,transform .15s,visibility .15s;z-index:10}
.c-gnav__item:hover .c-dropdown,
.c-gnav__item:focus-within .c-dropdown,
.c-dropdown.--opened{opacity:1;visibility:visible;transform:translateY(0)}
.c-dropdown__link{display:block;padding:.7rem 1rem;border-radius:var(--radius-s);font-size:1.25rem}
.c-dropdown__link:hover{background:var(--c-bg-alt);text-decoration:none}

/* ハンバーガー（SPのみ表示） */
.c-hamburger{display:none;width:4.4rem;height:4.4rem;border:1px solid var(--c-line);border-radius:var(--radius-s);background:var(--c-bg);align-items:center;justify-content:center;font-size:2rem;line-height:1;color:var(--c-text)}

/* =========================================================
   Component : ボタン
   ========================================================= */
.c-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-size:1.3rem;font-weight:700;line-height:1.2;padding:1.1rem 2.2rem;border-radius:var(--radius-s);border:2px solid transparent;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}
.c-btn:hover{text-decoration:none}
.c-btn--cta{background:var(--c-cta);color:var(--c-cta-ink);border-color:var(--c-cta)}
.c-btn--cta:hover{background:var(--c-cta-hover);border-color:var(--c-cta-hover)}
.c-btn--cta::after{content:none} /* ♥廃止（クライアント承認・全ページ／2026-07-01） */
.c-btn--dark{background:var(--c-dark);color:var(--c-dark-ink);border-color:var(--c-dark)}
.c-btn--dark:hover{background:#222}
.c-btn--ghost{background:var(--c-bg);color:var(--c-text);border-color:var(--c-line-strong)}
.c-btn--ghost:hover{border-color:var(--c-text);background:var(--c-bg-soft)}
.c-btn--ghost::after{content:"→";color:var(--c-text-mute)}
.c-btnrow{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4)}
.c-btnrow--center{justify-content:center}

/* =========================================================
   Component : 画像プレースホルダ（サイズ・形式を明示）
   使用: <div class="c-ph" style="--ph-ar:16/9"> ... </div>
   ========================================================= */
.c-ph{
  position:relative;
  display:grid;place-items:center;
  aspect-ratio:var(--ph-ar,16/9);
  width:100%;
  background:
    repeating-linear-gradient(45deg,#eeeeec,#eeeeec 10px,#e4e4e0 10px,#e4e4e0 20px);
  border:1px solid var(--c-line-strong);
  border-radius:var(--radius-s);
  color:var(--c-text-weak);
  text-align:center;
  padding:var(--space-3);
  overflow:hidden;
}
.c-ph__body{background:#ffffffd0;border:1px solid #00000010;border-radius:var(--radius-s);padding:.6rem 1rem;max-width:90%}
.c-ph__label{display:block;font-size:1.2rem;font-weight:700;color:var(--c-text)}
.c-ph__spec{display:inline-block;margin-top:.3rem;font-family:var(--font-en),monospace;font-size:1.05rem;letter-spacing:.02em;color:var(--c-text-weak)}
.c-ph__spec::before{content:"🖼 "}
/* アイコン用の小型バリエーション */
.c-ph--icon{aspect-ratio:1/1;max-width:8rem}
.c-ph--thumb{aspect-ratio:3/2;max-width:12rem}
/* 実画像：プレースホルダ .c-ph と同じ枠でカード内に収める（確定アセット差し替え用） */
.c-media{
  display:block;
  width:100%;
  aspect-ratio:var(--ph-ar,3/2);
  object-fit:cover;
  border:1px solid var(--c-line-strong);
  border-radius:var(--radius-s);
  margin-bottom:var(--space-3);
  background:#eeeeec;
}
.c-card__media .c-media{margin-bottom:0}

/* =========================================================
   Component : カード / 分岐 / リード等
   ========================================================= */
.c-lead{font-size:1.35rem;color:var(--c-text-weak);line-height:1.9}
.l-section__head--center .c-lead{margin-inline:auto}
.c-eyebrow{display:inline-block;font-size:1.15rem;font-weight:700;color:var(--c-cta);letter-spacing:.04em;margin-bottom:var(--space-2)}

.c-cards{display:grid;gap:var(--space-4);margin-top:var(--space-4)}
.c-cards--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.c-cards--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.c-cards--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.c-card{border:1px solid var(--c-line);border-radius:var(--radius);padding:var(--space-4);background:var(--c-bg);display:flex;flex-direction:column}
.c-card__media{margin-bottom:var(--space-3)}
.c-card h3{margin-bottom:var(--space-1)}
.c-card p{font-size:1.2rem;color:var(--c-text-weak);margin-bottom:var(--space-3)}
.c-card .c-btnrow{margin-top:auto}
/* 賛同団体・協力企業：正方形ロゴ枠（写真→社名→説明）＋カード全体リンク */
.c-card--link{text-decoration:none;color:inherit;transition:box-shadow .2s,border-color .2s}
.c-card--link:hover{border-color:var(--c-cta);box-shadow:0 6px 18px rgba(0,0,0,.1)}
.c-orglogo{height:9rem;margin:0 0 var(--space-3);display:flex;align-items:center;justify-content:center}
.c-orglogo img{width:100%;height:100%;object-fit:contain;object-position:center;display:block;border-radius:var(--radius-s)}
.c-orglogo--empty{color:var(--c-text-weak);font-family:var(--font-en),monospace;font-size:1.1rem;letter-spacing:.04em}

.c-split{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-top:var(--space-3)}

.c-kv{display:grid;grid-template-columns:1.1fr 1fr;gap:var(--space-6);align-items:center}

/* ニュース行（行全体がリンク） */
.c-newslist{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-3)}
.c-newsrow{display:flex;align-items:center;gap:var(--space-3);border:1px solid var(--c-line);border-radius:var(--radius-s);padding:var(--space-2) var(--space-3);background:var(--c-bg);color:var(--c-text)}
.c-newsrow:hover{border-color:var(--c-cta);text-decoration:none;background:var(--c-bg-soft)}
.c-newsrow__thumb{flex:none;width:9rem}
.c-newsrow__body{flex:1;min-width:0}
.c-newsrow__meta{font-size:1.1rem;color:var(--c-text-mute)}
.c-newsrow__title{font-size:1.3rem}
.c-newsrow__go{margin-left:auto;color:var(--c-text-mute)}
.c-tag{display:inline-block;border:1px solid var(--c-line-strong);border-radius:var(--radius-s);font-size:1.05rem;color:var(--c-text-weak);padding:.1rem .7rem;margin-left:.6rem}
.c-bar{display:inline-block;background:var(--c-dark);color:#fff;font-size:1.2rem;padding:.5rem 1.1rem;border-radius:var(--radius-s)}

/* パンくず */
.c-breadcrumb{font-size:1.15rem;color:var(--c-text-mute);padding-block:var(--space-3)}
.c-breadcrumb a:hover{color:var(--c-cta)}
.c-breadcrumb span[aria-current]{color:var(--c-text-weak)}

/* 定義表（団体概要・特定商取引法表示 等） */
.c-deftable{width:100%;border-collapse:collapse;margin-top:var(--space-4);font-size:1.25rem;line-height:1.7}
.c-deftable th,.c-deftable td{text-align:left;vertical-align:top;padding:1rem 1.2rem;border-bottom:1px solid var(--c-line)}
.c-deftable th{width:30%;min-width:9rem;font-weight:700;color:var(--c-primary);background:var(--c-bg-soft)}
.c-deftable td{color:var(--c-text)}
@media (max-width:768px){
  .c-deftable,.c-deftable tbody,.c-deftable tr{display:block;width:100%}
  .c-deftable th,.c-deftable td{display:block;border-bottom:none;padding:.4rem 0}
  .c-deftable th{width:auto;background:none;color:var(--c-text-weak);font-size:1.1rem;padding-top:1rem}
  .c-deftable td{padding-bottom:1rem;border-bottom:1px solid var(--c-line)}
}

/* =========================================================
   Component : フォーム
   ========================================================= */
.c-form{max-width:60rem;margin-top:var(--space-5)}
.c-field{margin-bottom:var(--space-4)}
.c-field__label{display:block;font-size:1.25rem;font-weight:500;margin-bottom:.5rem}
.c-field__req{color:var(--c-cta);font-size:1.1rem;margin-left:.5rem}
.c-input,.c-textarea{width:100%;border:1px solid var(--c-line-strong);border-radius:var(--radius-s);background:var(--c-bg);padding:1rem 1.2rem;font:inherit;font-size:1.25rem;color:var(--c-text)}
.c-input:focus,.c-textarea:focus{border-color:var(--c-focus);outline:none;box-shadow:0 0 0 3px #1f6feb33}
.c-textarea{min-height:9rem;resize:vertical}
.c-choices{display:flex;flex-wrap:wrap;gap:var(--space-2)}
.c-choice{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--c-line-strong);border-radius:var(--radius-s);padding:.7rem 1.2rem;font-size:1.2rem;background:var(--c-bg)}
.c-choice:has(:checked){border-color:var(--c-cta);background:#e0633f12}
.c-check{display:flex;align-items:center;gap:.6rem;font-size:1.2rem;color:var(--c-text-weak)}

/* 注記（プロト中のメモ・TBD） */
.c-note{border-left:3px solid var(--c-line-strong);background:var(--c-bg-soft);color:var(--c-text-weak);font-size:1.15rem;padding:.9rem 1.2rem;margin-top:var(--space-4);border-radius:0 var(--radius-s) var(--radius-s) 0}
.c-note b{color:var(--c-text)}
.c-tbd{display:inline-block;background:#fff3cd;border:1px dashed #d9b34a;color:#7a5b00;font-size:1.05rem;font-weight:700;padding:.1rem .7rem;border-radius:var(--radius-s)}

/* =========================================================
   Component : プロト提示用バー（控えめ・本体UIではない）
   ========================================================= */
.c-protobar{background:#1f2123;color:#fff;font-size:1.1rem;padding:.6rem var(--container-pad);display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}
.c-protobar a{color:#cfcfcf;text-decoration:underline}
.c-protobar a:hover{color:#fff}
.c-protobar strong{color:#fff}

/* index（プロト入口）専用 */
.p-cover{padding-block:var(--space-7)}
.p-cover h1{margin-bottom:var(--space-3)}
.p-pagegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-top:var(--space-4)}
.p-pagecard{border:1px solid var(--c-line);border-radius:var(--radius-s);padding:var(--space-3);background:var(--c-bg);color:var(--c-text)}
.p-pagecard:hover{border-color:var(--c-cta);text-decoration:none;box-shadow:0 4px 14px #00000012}
.p-pagecard__name{font-weight:700;font-size:1.3rem}
.p-pagecard__url{font-family:var(--font-en),monospace;font-size:1.1rem;color:var(--c-text-mute);margin-top:.3rem;word-break:break-all}

/* =========================================================
   Utility
   ========================================================= */
.u-center{text-align:center}
.u-mute{color:var(--c-text-mute)}
.u-small{font-size:1.15rem}
.u-mt-2{margin-top:var(--space-2)}
.u-mt-4{margin-top:var(--space-4)}

/* =========================================================
   Responsive（モバイルファースト：〜979pxを上書き）
   ========================================================= */
@media (max-width:979px){
  .c-hamburger{display:inline-flex}
  /* PCナビ・ドロップダウンはSPでは折りたたみメニューへ集約 */
  .l-header__nav{
    position:absolute;top:var(--header-h);left:0;right:0;
    background:var(--c-bg);border-bottom:1px solid var(--c-line);
    box-shadow:0 12px 24px #00000014;
    padding:var(--space-3) var(--container-pad);
    display:none;
  }
  .l-header__nav.--opened{display:block}
  .c-gnav{flex-direction:column;align-items:stretch;gap:0}
  .c-gnav__item{border-bottom:1px solid var(--c-line)}
  .c-gnav__link,.c-gnav__toggle{width:100%;padding:1.2rem .2rem;font-size:1.4rem}
  .l-header__nav .c-dropdown{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:0 0 .6rem 1.2rem;min-width:0}
  .l-footer__cols{grid-template-columns:1fr 1fr}
  .c-cards--2,.c-cards--3,.c-cards--4,.c-split{grid-template-columns:minmax(0,1fr)}
  .c-newsrow__thumb{width:7rem}
  .c-kv{grid-template-columns:1fr;gap:var(--space-4)}
  :root{--container-pad:1.8rem;--header-h:5.6rem}
}

/* PC拡大（見出しを大きく） */
@media (min-width:980px){
  h1{font-size:4.4rem}
  h2{font-size:2.8rem}
  h3{font-size:2.0rem}
  h4{font-size:1.6rem}
  .l-section{padding-block:var(--space-8)}
}
@media (min-width:1280px){
  .c-lead{font-size:1.4rem}
}

/* =========================================================
   top.pen 適用：ボタン・既存上書き（後勝ち）
   ========================================================= */
.c-btn{border-radius:9999px}                                   /* ピル型 */
.c-btn--cta{background:var(--c-cta);color:var(--c-cta-ink);border-color:var(--c-cta)}
.c-btn--cta:hover{background:var(--c-cta-hover);border-color:var(--c-cta-hover)}
.c-btn--cta::after{content:none}              /* ♥廃止（クライアント承認・全ページ／2026-07-01。旧: 白ハート固定） */
.c-btn--dark{background:var(--c-primary);color:var(--c-primary-ink);border-color:var(--c-primary)}
.c-btn--dark:hover{background:#22305a;border-color:#22305a}
.c-eyebrow{color:var(--c-cta)}
.c-gnav__link[aria-current="page"]{color:var(--c-cta);box-shadow:inset 0 -2px 0 var(--c-cta)}
.l-section--alt{background:var(--c-bg-soft)}                    /* 汎用差し色は薄グレーへ */

/* =========================================================
   p- : トップページ固有（top.pen）
   ========================================================= */
/* ヒーロー（背景写真全面＋テキストオーバーレイ） */
.p-hero{position:relative;display:flex;align-items:center;min-height:60vh;color:var(--c-inverse);overflow:hidden}
.p-hero__bg{position:absolute;inset:0;background:url("../img/hero.jpg") center/cover no-repeat;z-index:0}
.p-hero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(31,36,51,.74) 0%,rgba(43,58,103,.55) 55%,rgba(43,58,103,.22) 100%)}
.p-hero__inner{position:relative;z-index:1;padding-block:var(--space-8)}
.p-hero h1{color:var(--c-inverse);line-height:1.5;letter-spacing:.01em}
.p-hero__lead{color:var(--c-inverse-soft);font-size:1.4rem;line-height:1.9;max-width:50rem;margin-top:var(--space-3)}
.p-hero .c-btnrow{margin-top:var(--space-5)}
.p-hero .c-btn--ghost{background:transparent;color:var(--c-inverse);border-color:rgba(255,255,255,.5)}
.p-hero .c-btn--ghost:hover{background:rgba(255,255,255,.12);border-color:#fff}
.p-hero .c-btn--ghost::after{color:var(--c-inverse)}

/* 課題セクション（統計強調・中央） */
.p-issue{background:var(--c-bg-soft);text-align:center}
.p-stat{display:flex;justify-content:center;align-items:baseline;gap:.6rem;flex-wrap:wrap}
.p-stat+.p-stat{margin-top:var(--space-2)}
.p-stat__num{font-family:var(--font-en);font-size:4.6rem;font-weight:600;color:var(--c-cta);line-height:1.05}
.p-stat__unit{font-size:1.6rem;font-weight:700;color:var(--c-primary)}
.p-stat__label{font-size:1.3rem;color:var(--c-text-weak)}
.p-issue__lead{max-width:60rem;margin:var(--space-5) auto 0;color:var(--c-text-weak)}
.p-issue__source{max-width:64rem;margin:var(--space-4) auto 0;font-size:1.05rem;line-height:1.7;color:var(--c-text-weak)}
.p-issue__source a{color:var(--c-text-weak);text-decoration:underline;text-underline-offset:2px}
.p-issue__source a:hover{color:var(--c-cta)}

/* 3軸パステルカード */
.c-activity{border:1px solid var(--c-line);border-radius:var(--radius);overflow:hidden;background:var(--c-bg);display:flex;flex-direction:column}
.c-activity__head{padding:var(--space-4);display:flex;align-items:center;gap:var(--space-2)}
.c-activity--manabu .c-activity__head{background:var(--accent-yellow)}
.c-activity--hataraku .c-activity__head{background:var(--accent-sky)}
.c-activity--atsumaru .c-activity__head{background:var(--accent-pink)}
.c-activity__icon{font-size:2.2rem;line-height:1}
.c-activity__title{font-size:1.7rem;font-weight:700;color:var(--c-primary)}
.c-activity__body{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);flex:1}
.c-activity__body p{color:var(--c-text-weak);font-size:1.2rem}
.c-activity__body .c-btnrow{margin-top:auto}

/* 個人寄附（暖色背景・中央） */
.p-donation-warm{background:var(--c-bg-warm);text-align:center}
.p-donation-warm .c-lead{margin-inline:auto}
.p-donation-warm__note{color:var(--c-text-mute);font-size:1.15rem;margin-top:var(--space-3)}

/* 法人寄附（ネイビー背景・反転） */
.p-donation-navy{background:var(--c-navy);color:var(--c-inverse)}
.p-donation-navy h2{color:var(--c-inverse)}
.p-donation-navy .c-lead{color:var(--c-inverse-soft)}
.p-donation-navy__grid{display:grid;grid-template-columns:1fr auto;gap:var(--space-6);align-items:center}
.p-donation-navy__media{width:22rem;height:22rem;border-radius:50%;background:var(--c-navy-soft);display:grid;place-items:center;color:var(--c-inverse-soft);flex:none;text-align:center;padding:var(--space-3)}

/* 協力企業ロゴスライダー（横スクロール自動ループ・7社×4セット構成 2026-08-21） */
.p-logos{background:var(--c-bg);padding-block:var(--space-6);border-top:1px solid var(--c-line)}
.p-logos__head{text-align:center;color:var(--c-text-mute);font-size:1.2rem;margin-bottom:var(--space-4)}
.p-logos__viewport{overflow:hidden;position:relative;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.p-logos__track{display:flex;width:max-content;gap:var(--space-7);align-items:center;animation:logoscroll 32s linear infinite}
.p-logos__track img{height:4.4rem;width:auto;opacity:.78;filter:grayscale(.15);transition:opacity .2s}
.p-logos__track img:hover{opacity:1}
.p-logos__set{display:flex;gap:var(--space-7);align-items:center;flex-shrink:0}
/* 1周＝1セット+gapぶん移動。移動量はセット数N=4に依存: (-100% - gap)/N */
@keyframes logoscroll{from{transform:translateX(0)}to{transform:translateX(calc((-100% - var(--space-7))/4))}}
@media (prefers-reduced-motion:reduce){
  .p-logos__track{animation:none;width:auto;justify-content:center}
  .p-logos__set{flex-wrap:wrap;justify-content:center}
  .p-logos__set.is-clone{display:none} /* 静止時は1セットのみ表示（複製を隠す） */
}

/* フッター：ダークネイビー */
.l-footer{background:var(--c-dark);border-top:0;color:var(--c-inverse-soft)}
.l-footer__lead{color:var(--c-inverse)}
.l-footer__col .l-footer__h{color:var(--c-inverse)}
.l-footer__col a:hover{color:var(--c-cta)}
.l-footer__legal{border-top-color:rgba(255,255,255,.12);color:#8b93ab}
.l-footer__sns a{border-color:rgba(255,255,255,.2);color:var(--c-inverse-soft)}

/* ヘッダーロゴ画像 */
.l-header__logo img{height:3.4rem;width:auto;display:block}

/* レスポンシブ調整 */
@media (max-width:979px){
  .p-hero h1{font-size:2.4rem}
  .p-hero{min-height:auto}
  .p-donation-navy__grid{grid-template-columns:1fr;justify-items:center;text-align:center}
  .p-stat__num{font-size:3.4rem}
}
@media (min-width:980px){
  .p-hero h1{font-size:4.2rem}
}

/* 支給アセット反映：SNSアイコン・法人ビジュアル */
.l-footer__sns a{overflow:hidden}
.l-footer__sns a img{width:1.6rem;height:1.6rem;object-fit:contain;display:block}
.p-donation-navy__media{padding:0;overflow:hidden}
.p-donation-navy__media img{width:100%;height:100%;object-fit:cover;border-radius:50%}
/* 信頼の証カード（画像） */
.c-trustcard{display:block;border:1px solid var(--c-line);border-radius:var(--radius);overflow:hidden;background:var(--c-bg)}
.c-trustcard img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
a.c-trustcard--link{transition:box-shadow .2s,border-color .2s}
a.c-trustcard--link:hover{border-color:var(--c-cta);box-shadow:0 6px 18px rgba(0,0,0,.1)}

/* =========================================================
   M3続き UI強化（2026-06-11）— TOP準拠で全ページをリッチに
   ========================================================= */
/* (1) セクション見出しにアクセントバー（左の縦バー・コーラル）。中央寄せ見出しは除外 */
.l-section__head h2,
.l-section__head h1{position:relative;padding-left:1.7rem}
.l-section__head h2::before,
.l-section__head h1::before{content:"";position:absolute;left:0;top:.16em;height:1.04em;width:6px;border-radius:3px;background:var(--c-cta)}
.l-section__head--center h2,
.l-section__head--center h1{padding-left:0}
.l-section__head--center h2::before,
.l-section__head--center h1::before{display:none}

/* (3) カード内CTAは左右センタリング */
.c-card .c-btnrow,
.c-activity__body .c-btnrow{justify-content:center}

/* (4) フォームは中央寄せ（入力欄の見え方を安定）＋送信ボタン中央 */
.c-form{max-width:52rem;margin-inline:auto}
.c-form .c-btnrow{justify-content:center;margin-top:var(--space-5)}

/* (5) 定義表/沿革：薄い罫線・年度列は改行させない（PC）／SPは積み上げで可読化 */
.c-deftable{border-top:1px solid var(--c-line)}
.c-deftable th{white-space:nowrap;width:1%;min-width:7rem}
@media (max-width:768px){
  .c-deftable,.c-deftable tbody,.c-deftable tr,.c-deftable th,.c-deftable td{display:block;width:auto}
  .c-deftable tr{padding-block:var(--space-3);border-bottom:1px solid var(--c-line)}
  .c-deftable th{white-space:normal;background:none;color:var(--c-primary);font-weight:700;font-size:1.2rem;padding:0 0 .2rem;border:none;min-width:0}
  .c-deftable td{padding:0;border:none;font-size:1.2rem}
}

/* (6) カードの微リッチ化（淡い影でワイヤー感を解消） */
.c-card{box-shadow:0 1px 2px rgba(31,36,51,.04)}

/* (7) 寄附の使い道：見出し＋説明ブロック（表組みをやめて読みやすく） */
.c-useblocks{margin-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}
.c-useblock{padding-left:1.4rem;border-left:4px solid var(--c-cta);border-radius:2px}
.c-useblock h3{font-size:1.5rem;color:var(--c-primary);margin-bottom:.3rem}
.c-useblock p{color:var(--c-text-weak);font-size:1.25rem}

/* (8) PDF等のダウンロードリンク・リスト */
.c-doclist{margin-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}
.c-doclink{display:flex;align-items:center;gap:var(--space-3);border:1px solid var(--c-line);border-radius:var(--radius-s);padding:var(--space-3) var(--space-4);background:var(--c-bg);color:var(--c-text);font-size:1.25rem;font-weight:500}
.c-doclink::before{content:"PDF";flex:none;font-family:var(--font-en),sans-serif;font-size:1rem;font-weight:700;color:#fff;background:var(--c-cta);padding:.2rem .6rem;border-radius:3px}
.c-doclink__meta{margin-left:auto;color:var(--c-text-mute);font-size:1.1rem;font-weight:400}
a.c-doclink:hover{border-color:var(--c-cta);background:var(--c-bg-soft);text-decoration:none}
.c-doclink--soon{color:var(--c-text-mute);cursor:default}
.c-doclink--soon::before{background:var(--c-line-strong)}

/* (9) グローバルナビ：ドロップダウン親の現在地表示 */
.c-gnav__toggle.is-current{color:var(--c-cta);box-shadow:inset 0 -2px 0 var(--c-cta)}

/* (10) 事業リスト（事業報告の実施事項）— 左バーなし・■マーカーの箇条書き */
.c-bizlist{margin-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-5)}
.c-bizlist__item h3{font-size:1.5rem;color:var(--c-primary)}
.c-bizlist__item h3::before{content:"■";color:var(--c-cta);margin-right:.5rem;font-size:.8em;vertical-align:.08em}
.c-bizlist__item>p{color:var(--c-text-weak);margin-top:.4rem}

/* (11) グローバルナビ：4要素を中央寄せ・間隔を広げる（PC） */
@media (min-width:980px){
  .l-header__nav{flex:1;display:flex;justify-content:center;margin-left:0}
  .c-gnav{gap:var(--space-6)}
}

/* (12) 動画埋め込み（16:9 レスポンシブ） */
.c-video{position:relative;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden;background:#000;box-shadow:0 4px 16px rgba(31,36,51,.12)}
.c-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}

/* =========================================================
   寄附獲得LP（/support）— GATE1 再設計 2026-07-01
   ========================================================= */
:root{ --font-serif:"Zen Old Mincho","Hiragino Mincho ProN","YuMincho","Yu Mincho",serif }
.l-section--soft{background:var(--c-bg-soft)}
/* ♥なしの寄附CTA（グローバルの c-btn--cta は♥付きのため別に用意） */
.c-btn--give{background:var(--c-cta);color:var(--c-cta-ink);border-color:var(--c-cta)}
.c-btn--give:hover{background:var(--c-cta-hover);border-color:var(--c-cta-hover)}
.c-btn--lg{font-size:1.5rem;padding:1.4rem 3rem}

/* ① ヒーロー */
.p-give-hero{padding-block:var(--space-7);background:linear-gradient(180deg,var(--c-bg-warm),var(--c-bg))}
.p-give-hero__grid{display:grid;grid-template-columns:1.05fr .9fr;gap:var(--space-6);align-items:center;margin-top:var(--space-5)}
.p-give__eyebrow{display:inline-block;font-size:1.15rem;font-weight:700;color:var(--c-cta);letter-spacing:.04em;margin-bottom:var(--space-2)}
.p-give__h1{font-family:var(--font-serif);font-weight:600;font-size:3.2rem;line-height:1.5;letter-spacing:.01em}
.p-give__lead{margin-top:var(--space-4);font-size:1.4rem;line-height:2;color:var(--c-text)}
.p-give__lead strong{color:var(--c-cta)}
.p-give__badge{margin-top:var(--space-4);display:inline-block;background:var(--c-bg);border:1px solid var(--c-line-strong);border-radius:999px;padding:.7rem 1.4rem;font-size:1.15rem;color:var(--c-text-weak)}
.p-give__badge-num{color:var(--c-cta);font-weight:700}
.p-give__badge strong{color:var(--c-text)}
.p-give__actions{margin-top:var(--space-5);display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3)}
.p-give__mcv{font-size:1.2rem;color:var(--c-text-weak);text-decoration:underline;text-underline-offset:3px}
.p-give-hero__media img{width:100%;border-radius:var(--radius);object-fit:cover;aspect-ratio:3/2;box-shadow:0 10px 30px rgba(31,36,51,.14)}

/* ②③⑦ ナラティブ2カラム */
.p-narr{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);align-items:center}
.p-narr--rev .p-narr__media{order:2}
.p-narr__media img{width:100%;border-radius:var(--radius);object-fit:cover;aspect-ratio:4/3;box-shadow:0 8px 24px rgba(31,36,51,.12)}
.p-narr__h{font-family:var(--font-serif);font-weight:600;font-size:2.4rem;line-height:1.5;margin-bottom:var(--space-3)}
.p-narr__body p{font-size:1.35rem;line-height:2;color:var(--c-text-weak);margin-bottom:var(--space-3)}
.p-narr__note{font-size:1.2rem!important;color:var(--c-text-mute)!important;border-left:3px solid var(--c-line-strong);padding-left:1rem;margin-top:var(--space-4)}

/* 統計バー（円グラフを避け、落差を帯で） */
.p-statbar{margin:var(--space-4) 0;display:flex;flex-direction:column;gap:var(--space-3)}
.p-statbar__row{display:grid;grid-template-columns:7rem 1fr auto;gap:var(--space-3);align-items:center}
.p-statbar__label{font-size:1.15rem;color:var(--c-text-mute)}
.p-statbar__track{height:1.6rem;background:var(--c-line);border-radius:999px;overflow:hidden}
.p-statbar__fill{display:block;height:100%;border-radius:999px}
.p-statbar__fill--all{width:100%;background:var(--c-primary)}
.p-statbar__fill--work{width:6%;background:var(--c-cta)}
.p-statbar__val{font-size:1.2rem;color:var(--c-text-weak);white-space:nowrap}
.p-statbar__val strong{color:var(--c-cta);font-size:1.4rem}

/* ④ 事実（対比） */
.p-facts{margin-top:var(--space-5);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}
.p-fact{text-align:center;padding:var(--space-5) var(--space-3);border:1px solid var(--c-line);border-radius:var(--radius);background:var(--c-bg)}
.p-fact__num{display:block;font-family:var(--font-en),sans-serif;font-size:3.4rem;font-weight:700;color:var(--c-cta);line-height:1.1}
.p-fact--vs .p-fact__num{color:var(--c-text-mute)}
.p-fact__unit{font-size:1.4rem;font-weight:700;margin-left:.2rem}
.p-fact__cap{display:block;margin-top:var(--space-2);font-size:1.2rem;color:var(--c-text-weak)}

/* ⑤ コスト（定性） */
.p-cost{margin-top:var(--space-4);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}
.p-cost__card{border:1px solid var(--c-line);border-top:4px solid var(--c-cta);border-radius:var(--radius);padding:var(--space-4);background:var(--c-bg)}
.p-cost__amt{display:block;font-weight:700;font-size:1.7rem;color:var(--c-primary);margin-bottom:var(--space-2)}
.p-cost__card p{font-size:1.25rem;color:var(--c-text-weak)}

/* ⑥ ビジョン（引用） */
.p-vision{text-align:center}
.p-quote{font-family:var(--font-serif);font-weight:600;font-size:3rem;line-height:1.7;color:var(--c-primary)}
.p-vision__body{max-width:64rem;margin:var(--space-5) auto 0;font-size:1.35rem;line-height:2.1;color:var(--c-text-weak)}

/* ⑧ 社会的証明＋応援メッセージ */
.p-proof{text-align:center;margin-bottom:var(--space-7)}
.p-proof__num{font-family:var(--font-en),sans-serif;font-size:6rem;font-weight:700;color:var(--c-cta);line-height:1}
.p-proof__unit{font-size:2.4rem;margin-left:.3rem}
.p-proof__cap{margin-top:var(--space-2);font-size:1.35rem;color:var(--c-text-weak)}
.p-proof__cap span{font-size:1.2rem;color:var(--c-text-mute)}
.p-proof__link{margin-top:var(--space-3);font-size:1.2rem}
.p-proof__link a{color:var(--c-cta);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.p-voices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5)}
.c-voice{margin:0;text-align:center;padding:var(--space-5) var(--space-4);border:1px solid var(--c-line);border-radius:var(--radius);background:var(--c-bg);box-shadow:0 1px 2px rgba(31,36,51,.04)}
.c-voice__avatar{width:9rem;height:9rem;border-radius:50%;object-fit:cover;margin:0 auto var(--space-3);border:3px solid var(--c-bg-soft)}
.c-voice__name{font-weight:700;font-size:1.3rem;color:var(--c-text)}
.c-voice__name small{display:block;font-weight:500;font-size:1.05rem;color:var(--c-text-mute);margin-top:.2rem}
.c-voice__quote{margin:var(--space-3) 0 0;font-size:1.2rem;line-height:1.9;color:var(--c-text-weak);text-align:left}
.c-voice__quote::before{content:"「"}.c-voice__quote::after{content:"」"}

/* ⑨ クロージング */
.p-give-cta{text-align:center;background:var(--c-navy);color:var(--c-inverse)}
.p-give-cta__h{font-family:var(--font-serif);font-weight:600;font-size:2.8rem;line-height:1.6;color:#fff}
.p-give-cta__mcv{margin-top:var(--space-4);font-size:1.2rem;color:var(--c-inverse-soft)}
.p-give-cta__mcv a{color:#fff;text-decoration:underline;text-underline-offset:3px}

/* ⑩ ラストワンマイル */
.p-lastmile{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}
.p-lastmile__card{display:block;border:2px solid var(--c-line-strong);border-radius:var(--radius);padding:var(--space-5);background:var(--c-bg);color:inherit;transition:border-color .2s,box-shadow .2s}
.p-lastmile__card:hover{border-color:var(--c-cta);box-shadow:0 8px 24px rgba(0,0,0,.1);text-decoration:none}
.p-lastmile__card h3{font-size:1.7rem;color:var(--c-primary);margin-bottom:var(--space-2)}
.p-lastmile__card p{font-size:1.25rem;color:var(--c-text-weak);margin-bottom:var(--space-3)}
.p-lastmile__go{font-weight:700;color:var(--c-cta)}
.p-faq{margin-top:var(--space-6);max-width:70rem;margin-inline:auto;border:1px solid var(--c-line);border-radius:var(--radius);background:var(--c-bg)}
.p-faq>summary{padding:var(--space-3) var(--space-4);font-weight:700;cursor:pointer;color:var(--c-text)}
.p-faq__body{padding:0 var(--space-4) var(--space-4)}
.p-faq__body p{font-size:1.2rem;color:var(--c-text-weak);margin-bottom:var(--space-2)}

@media (max-width:900px){
  .p-give-hero__grid,.p-narr,.p-facts,.p-cost,.p-voices,.p-lastmile{grid-template-columns:1fr}
  .p-narr--rev .p-narr__media{order:0}
  .p-give-hero__media{order:-1}
  .p-give__h1{font-size:2.6rem}
  .p-quote{font-size:2.2rem}
  .p-give-cta__h{font-size:2.2rem}
  .p-proof__num{font-size:4.6rem}
}

/* =========================================================
   GATE2：TOP 調整（2026-07-01）
   ========================================================= */
.p-hero__textlink{font-weight:700;text-decoration:underline;text-underline-offset:4px;font-size:1.3rem;align-self:center}
.p-home-give{background:var(--c-bg-warm)}
.p-home-give__inner{display:grid;grid-template-columns:1.05fr .9fr;gap:var(--space-6);align-items:center}
.p-home-give__proof{margin-top:var(--space-3);font-size:1.2rem;color:var(--c-text-weak)}
.p-home-give__proof strong{color:var(--c-cta)}
.p-home-give__sub{margin-top:var(--space-3);font-size:1.2rem;color:var(--c-text-mute)}
.p-home-give__sub a{color:var(--c-cta);text-decoration:underline;text-underline-offset:3px}
.p-home-give__media img{width:100%;border-radius:var(--radius);aspect-ratio:3/2;object-fit:cover;box-shadow:0 10px 30px rgba(31,36,51,.14)}
@media (max-width:900px){.p-home-give__inner{grid-template-columns:1fr}.p-home-give__media{order:-1}}

/* GATE5：法務・規定ページの可読性（各条を薄い区切り線で分節） */
.c-legal{max-width:78rem}
.c-legal h2{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--c-line);font-size:1.6rem}
.c-legal h2:first-of-type{margin-top:var(--space-5)}
.c-legal p,.c-legal ul{margin-top:var(--space-2);color:var(--c-text-weak);font-size:1.25rem}
.c-legal ul{padding-left:1.5rem;list-style:disc}
.c-legal li{margin-block:.35rem}
.c-kv--top{align-items:start}

/* (13) ヘッダーロゴ（団体VI）を拡大（約200%）。ヘッダー高も合わせて調整 */
:root{--header-h:8rem}
.l-header__logo img{height:6.8rem}
@media (max-width:979px){
  :root{--header-h:6.4rem}
  .l-header__logo img{height:3.8rem}
}

/* (14) 理事長メッセージ：動画フィーチャー（コンテンツ75%・中央）＋読みやすい本文幅 */
.c-video--feature{max-width:75%;margin:var(--space-5) auto 0}
.p-message{max-width:68rem;margin:var(--space-6) auto 0}
.p-message h2{margin-top:.4rem}
@media (max-width:768px){.c-video--feature{max-width:100%}}

/* (15) お知らせ本文（ブロック描画・c-prose） */
.c-prose{max-width:74rem}
.c-prose h2{margin:var(--space-5) 0 var(--space-2);font-size:1.9rem;line-height:1.5}
.c-prose h3{margin:var(--space-4) 0 var(--space-2);font-size:1.5rem;line-height:1.5}
.c-prose p{margin-bottom:var(--space-3)}
.c-prose__list{margin:0 0 var(--space-3) 1.4em;list-style:disc}
.c-prose__list li{margin-bottom:.3rem}
.c-prose__quote{margin:var(--space-3) 0;padding:var(--space-3) var(--space-4);border-left:4px solid var(--c-line-strong);background:var(--c-bg-soft);color:var(--c-text-weak);border-radius:0 var(--radius-s) var(--radius-s) 0}
.c-prose__fig{margin:var(--space-4) 0}
.c-prose__fig img{border-radius:var(--radius-s)}
.c-prose__fig figcaption{margin-top:.5rem;font-size:1.1rem;color:var(--c-text-mute)}
.c-prose__fig--lg{max-width:100%}
.c-prose__fig--md{max-width:62%}
.c-prose__fig--sm{max-width:38%}
@media (max-width:768px){.c-prose__fig--md,.c-prose__fig--sm{max-width:100%}}

/* (16) お知らせ：カテゴリ絞り込み＋ページ送り */
.c-newsfilter{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:var(--space-4)}
.c-newsfilter a{font-size:1.15rem;padding:.35rem 1.1rem;border:1px solid var(--c-line-strong);border-radius:9999px;color:var(--c-text-weak)}
.c-newsfilter a:hover{border-color:var(--c-cta);color:var(--c-cta);text-decoration:none}
.c-newsfilter a.is-active{background:var(--c-primary);color:#fff;border-color:var(--c-primary)}
.c-pagenav{display:flex;justify-content:center;align-items:center;gap:.4rem;margin-top:var(--space-6);flex-wrap:wrap}
.c-pagenav a,.c-pagenav span{display:inline-flex;min-width:2.6rem;height:2.6rem;align-items:center;justify-content:center;padding:0 .7rem;border:1px solid var(--c-line-strong);border-radius:var(--radius-s);color:var(--c-text-weak);font-size:1.2rem}
.c-pagenav a:hover{border-color:var(--c-cta);color:var(--c-cta);text-decoration:none}
.c-pagenav .is-current{background:var(--c-primary);color:#fff;border-color:var(--c-primary)}
.c-pagenav .is-disabled{opacity:.4}

/* =========================================================
   GATE 6 : ブランド刷新 Foundation（Option A・編集的リフレッシュ・2026-07-02）
   明朝タイポ / 級数ジャンプ / a11yコントラスト / 交互帯復元 / 金平糖ドット / 番号組版
   ========================================================= */
:root{
  --c-bg-alt:#F5F7FA;        /* 未定義だった交互帯背景を復元＝「均質」印象の一因を解消 */
  --c-cta-strong:#C94B36;    /* 白地に載るコーラル文字用（WCAG AA 4.6:1／#E8604Cは3.4:1でNG） */
}
/* 見出しを明朝の格へ（機能ラベル/ナビ/ボタン/カード見出し=h3・h4 はゴシック維持） */
h1,h2{font-family:var(--font-serif);font-weight:600;letter-spacing:.02em}
h1{font-size:3.4rem;line-height:1.42}
h2{font-size:2.4rem;line-height:1.5}
@media (max-width:768px){h1{font-size:2.6rem}h2{font-size:2.05rem}}
/* リードの息継ぎをやや広く（本文はゴシック維持で長文可読性を確保） */
.c-lead{font-size:1.4rem;line-height:2.0}
/* コントラスト是正：白地の小さめコーラル文字を濃色へ（AA 4.5:1↑） */
.c-eyebrow,.p-give__eyebrow{color:var(--c-cta-strong)}
.p-proof__link a,.p-home-give__sub a,.p-give__mcv,.p-lastmile__go,
.p-home-give__proof strong,.p-statbar__val strong,.p-give__lead strong{color:var(--c-cta-strong)}

/* 金平糖の粒：不揃い・多色の装飾ドット（控えめ・セクションの緩急に） */
.c-dots{display:flex;gap:.6rem;align-items:center;justify-content:center;margin:0 0 var(--space-3)}
.c-dots span{display:block;border-radius:50%}
.c-dots span:nth-child(1){width:.7rem;height:.7rem;background:var(--c-cta)}
.c-dots span:nth-child(2){width:1.1rem;height:1.1rem;background:var(--accent-sky)}
.c-dots span:nth-child(3){width:.8rem;height:.8rem;background:var(--accent-yellow)}
.c-dots span:nth-child(4){width:1.3rem;height:1.3rem;background:var(--accent-pink)}
.c-dots span:nth-child(5){width:.6rem;height:.6rem;background:var(--accent-mint)}
.c-dots--start{justify-content:flex-start}

/* 番号組版：3軸などを明朝の大級ナンバーで編集的に（脱・均等カード） */
.p-axis{display:grid;gap:0;margin-top:var(--space-4)}
.p-axis__item{display:grid;grid-template-columns:auto 1fr;gap:var(--space-4);align-items:baseline;padding-block:var(--space-4);border-top:1px solid var(--c-line)}
.p-axis__item:last-child{border-bottom:1px solid var(--c-line)}
.p-axis__num{font-family:var(--font-serif);font-weight:600;font-size:2.8rem;line-height:1;color:var(--c-cta-strong);letter-spacing:.02em}
.p-axis__label{font-family:var(--font-serif);font-weight:600;font-size:1.9rem;color:var(--c-primary)}
.p-axis__body{font-size:1.25rem;color:var(--c-text-weak);line-height:1.9;margin-top:.4rem}
@media (max-width:600px){.p-axis__num{font-size:2.2rem}}

/* 詩的プルクオート：明朝・全幅の"間"（豆塚の言葉を主役に） */
.p-pullquote{font-family:var(--font-serif);font-weight:600;font-size:2.4rem;line-height:1.85;color:var(--c-primary);text-align:center;max-width:44rem;margin:var(--space-6) auto 0}
.p-pullquote::before{content:"";display:block;width:2.4rem;height:.3rem;background:var(--c-cta);margin:0 auto var(--space-4)}
@media (max-width:600px){.p-pullquote{font-size:1.9rem}}

/* TOPヒーローのメインコピーは 修正1 でロック（現状踏襲）＝明朝化から除外しゴシック維持 */
.p-hero h1{font-family:var(--font-jp);font-weight:700}

/* 信頼の証：応援者の顔を見せるフェイス列（均等カードグリッドの格下げ・全文は/support） */
.p-facesrow{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-5);margin-top:var(--space-5)}
.p-face{width:8.5rem;text-align:center}
.p-face img{width:6.6rem;height:6.6rem;border-radius:50%;object-fit:cover;margin:0 auto .6rem;border:3px solid var(--c-bg);box-shadow:0 1px 4px rgba(31,36,51,.12)}
.p-face__name{font-size:1.1rem;font-weight:700;color:var(--c-text);line-height:1.45}
.p-face__name small{display:block;font-weight:500;font-size:.95rem;color:var(--c-text-mute);margin-top:.15rem}

/* business：3軸セクションを明朝の番号付き見出しに（画像カードは維持・番号システム統一） */
.c-axistag{display:flex;align-items:baseline;gap:.9rem;margin-bottom:var(--space-3)}
.c-axistag__num{font-family:var(--font-serif);font-weight:600;font-size:2.6rem;color:var(--c-cta-strong);line-height:1}
.c-axistag__label{font-weight:700;font-size:1.5rem;letter-spacing:.08em;color:var(--c-primary)}

/* ========== 2026-07-02 フォーム統合・講演LP・監査是正 ========== */
/* ユーティリティ追加 */
.u-mt-5{margin-top:var(--space-5)}
.c-lead--center{text-align:center;max-width:64rem;margin-inline:auto}
/* グリッド子要素のオーバーフロー防止（未定義クラスの正式化） */
.p-give-hero__body,.p-home-give__body{min-width:0}
/* 統合フォーム：種別ラジオを fieldset/legend でグループ化（a11y）するためのリセット */
.c-form fieldset.c-field{border:0;padding:0;margin:0 0 var(--space-4);min-width:0}
.c-form legend.c-field__label{display:block;padding:0}
/* c-voice：figcaption を末子に置く（HTML仕様準拠）。視覚順は avatar→名前→引用 を維持 */
.c-voice{display:flex;flex-direction:column}
.c-voice__avatar{order:1}
.c-voice__name{order:2}
.c-voice__quote{order:3}
/* 本文中テキストリンク（c-gnav__link 誤用の置換先） */
.c-textlink{font-weight:700;color:var(--c-primary)}
.c-textlink:hover{color:var(--c-cta)}
/* 見出し行の右肩にリンクを並べるセクションヘッド */
.l-section__head--row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}
/* パートナースライダー：モーション低減時は無限ループ用の複製分を隠す */
@media (prefers-reduced-motion:reduce){.p-logos__track .is-clone{display:none}}
/* 役員カードの役職表記（member のインラインstyle置換） */
.c-card__role{display:block;font-weight:500;font-size:.82em;margin-top:.3rem}
/* プレーンな箇条書き（■マーカー・c-bizlist の ul 版） */
.c-dotlist{display:flex;flex-direction:column;gap:.8rem}
.c-dotlist li{position:relative;padding-left:1.6em;color:var(--c-text-weak);line-height:1.9}
.c-dotlist li::before{content:"■";position:absolute;left:0;top:.08em;color:var(--c-cta);font-size:.8em}
/* member: 正方形ポートレート用（インライン --ph-ar:1/1 のクラス化） */
.c-media--square{aspect-ratio:1/1}
/* member: 役員＝フレームレス4名1行（強弱なし・ヨミガナは名前下に小さく） */
.p-member{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5);margin-top:var(--space-4)}
.p-member__photo{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:var(--radius)}
.p-member__role{margin-top:var(--space-3);font-size:1.1rem;font-weight:700;color:var(--c-cta-strong);letter-spacing:.06em}
.p-member__name{font-family:var(--font-serif);font-weight:600;font-size:1.7rem;color:var(--c-text);margin-top:.2rem;line-height:1.4}
.p-member__kana{display:block;font-family:var(--font-jp);font-size:1.05rem;font-weight:500;color:var(--c-text-mute);margin-top:.15rem;letter-spacing:.08em}
.p-member__bio{margin-top:var(--space-2);font-size:1.15rem;line-height:1.85;color:var(--c-text-weak)}
.p-member__link{display:inline-block;margin-top:.6rem;font-size:1.1rem;color:var(--c-text-weak);text-decoration:underline;text-underline-offset:3px}
@media (max-width:900px){.p-member{gap:var(--space-4)}}
@media (max-width:700px){.p-member{grid-template-columns:1fr;gap:var(--space-5)}}

/* ========== SP調整（iPhone 17 基準 402px・2026-07-02） ========== */
/* カード内の長い無改行文字列（URL等）で箱が広がらないように */
.c-card{min-width:0}
.c-card p,.c-card h3{overflow-wrap:anywhere}
/* SPヘッダー: ロゴ幅を固定し、右端＝ハンバーガー・その左＝寄附CTA のコンパクト配置 */
@media (max-width:979px){
  .l-header__inner{gap:.8rem}
  .l-header__logo{flex-shrink:0}
  .c-hamburger{order:3;width:3.8rem;height:3.8rem;font-size:1.7rem;flex-shrink:0}
  .l-header__cta{order:2;margin-left:auto}
  .l-header__cta .c-btn{font-size:1.15rem;padding:.8rem 1.1rem}
}
/* 本文中の改行: SPでは無効化（PCの整形専用） */
@media (max-width:600px){br.u-pc{display:none}}

/* ========== 改行品質（禁則・孤立行・語句分断の対策 2026-08-21） ========== */
/* 行頭の「っ」「ー」等を禁則処理 */
body{line-break:strict}
/* 見出し・キャプション系: 行長を均して末尾1〜2文字の孤立行を防ぐ（非対応環境は従来表示のまま）
   ※word-break:auto-phraseは付けない（文節の最小幅がグリッド列を押し広げ375px級で溢れるため） */
h1,h2,h3,.p-quote,.p-pullquote,.p-proof__cap,.p-give-cta__h,.p-give__badge,.p-axis__label,.p-fact__cap,.p-face__name,summary{text-wrap:balance}
.p-axis__label{display:block} /* span既定のinlineだとtext-wrapが効かないため */
/* <br>入りの引用・締め見出しはbalance対象外（仕様）のため、グリッド外の単独ブロックに限りauto-phraseで文節折返し */
.p-quote,.p-pullquote,.p-give-cta__h{word-break:auto-phrase}
/* リード・本文系: 文節単位の折返し（Chromium）＋CJK改行品質改善（Safari） */
.c-lead,.p-issue__lead,.p-give__lead,.p-narr__body p,.p-axis__body,.c-card p,.p-cost__card p,.c-voice__quote,.c-note p,.p-vision__body,.p-give-cta__mcv,.p-member__bio{text-wrap:pretty;word-break:auto-phrase}
/* auto-phrase/nobrのmin-content増大でグリッド・フレックス列が広がらないためのガード */
.p-narr__body,.p-axis__item>div,.p-give-hero__body,.p-home-give__body,.p-lastmile__card,.p-cost__card,.c-voice{min-width:0}
/* 途中で分断させない語句（（外部サイト）・固有名詞・肩書など） */
.u-nobr{white-space:nowrap}

/* ========== TOP統計ビジュアライゼーション（金平糖100粒 2026-08-21） ==========
   既定＝完成形（94粒ペール+6粒ビビッド・全テキスト表示）＝JSなし/reduced-motion時の表示。
   JSが .stat-ready で再生前状態を作り、.stat-play でアニメーションを1回再生する。 */
.p-statviz{text-align:center}
.p-statviz__label{margin:0;font-size:1.2rem;color:var(--c-text-weak);letter-spacing:.04em}
.p-statviz__num{margin:.2rem 0 0;color:var(--c-primary);line-height:1.25}
.p-statviz__yaku{font-size:1.3rem;margin-right:.2em}
.p-statviz__big{font-family:var(--font-en);font-weight:600;font-size:4.6rem;letter-spacing:.01em}
.p-statviz__unit{font-size:1.7rem;font-weight:700;margin-left:.15em}
.p-statviz__tail{font-size:1.3rem;margin-left:.6em}
.p-statviz__tail--navy{color:var(--c-primary)}
.p-statviz__num--2{color:var(--c-cta)}
.p-statviz__num--2 .p-statviz__big{font-size:4rem}
.p-statviz__grid{max-width:27rem;margin:var(--space-5) auto}
.p-statviz__grid svg{width:100%;height:auto;display:block}
.p-statviz__note{margin:var(--space-3) 0 0;font-size:1rem;color:var(--c-text-mute)}
.p-statviz__num + .p-statviz__label{margin-top:var(--space-4)} /* 1,165万人ブロックと70万人ブロックの間隔 */
.p-statviz + .p-issue__lead{margin-top:var(--space-6)}
.sv-pt,.sv-hero{transform-box:fill-box;transform-origin:center}
.sv-top{opacity:0} /* 既定＝完成形（上層パステルは非表示） */
/* 再生前（JSが付与） */
.stat-ready .sv-pt{opacity:0;transform:scale(0)}
.stat-ready .sv-top{opacity:1}
.stat-ready .sv-t1,.stat-ready .sv-t2,.stat-ready .sv-t3{opacity:0}
/* 再生（画面到達時にJSが付与・1回のみ） */
.stat-play .sv-pt{animation:svPop .5s cubic-bezier(.34,1.2,.64,1) both;animation-delay:calc(var(--r,0)*.13s + .25s)}
.stat-play .sv-top{animation:svHide .55s ease both;animation-delay:2.6s}
.stat-play .sv-hero{animation:svPulse .7s ease-out both;animation-delay:2.75s}
.stat-play .sv-t1{animation:svIn .6s ease both .35s}
.stat-play .sv-t2{animation:svIn .7s ease both 1s}
.stat-play .sv-t3{animation:svIn .7s ease both 3.6s}
@keyframes svPop{from{opacity:0;transform:scale(0)}70%{opacity:1;transform:scale(1.22)}to{opacity:1;transform:scale(1)}}
@keyframes svHide{from{opacity:1}to{opacity:0}}
@keyframes svPulse{0%{transform:scale(1)}45%{transform:scale(1.45)}100%{transform:scale(1)}}
@keyframes svIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (max-width:600px){
  .p-statviz__big{font-size:3.4rem}
  .p-statviz__num--2 .p-statviz__big{font-size:3rem}
  .p-statviz__tail{display:block;margin:.4rem 0 0}
}
@media (prefers-reduced-motion:reduce){
  [data-statviz],[data-statviz] *{animation:none!important}
  .stat-ready .sv-pt{opacity:1;transform:none}
  .stat-ready .sv-top,.sv-top{opacity:0!important}
  .stat-ready .sv-t1,.stat-ready .sv-t2,.stat-ready .sv-t3{opacity:1}
}

/* ========== 金平糖あしらい展開（提案書のC-11以外・2026-08-21） ==========
   形状は共通マスク（--kpm）＋background-colorで着色。mask非対応ブラウザは従来表示（丸・■）に自然フォールバック。
   色ルール: 単体使用の粒はコーラル禁止（ウィルス連想の回避）→ 黄/緑等の明色。複数粒はカラフルに（コーラルは群の中でのみ）。 */
:root{
  --kpm:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='-14%20-14%2028%2028'%3E%3Cpolygon%20points='10,0%206.1,2.53%207.07,7.07%202.53,6.1%200,10%20-2.53,6.1%20-7.07,7.07%20-6.1,2.53%20-10,0%20-6.1,-2.53%20-7.07,-7.07%20-2.53,-6.1%200,-10%202.53,-6.1%207.07,-7.07%206.1,-2.53'%20fill='%23000'%20stroke='%23000'%20stroke-width='5.5'%20stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  --kp-sky:#55A7D4; --kp-pink:#E98BA0; --kp-yellow:#EFC24D; --kp-mint:#6FBE85;
}

/* B-5 既存ドット装飾（c-dots）の金平糖化: 色・大小は現行のまま、maskで形だけ変更 */
.c-dots span{-webkit-mask:var(--kpm);mask:var(--kpm)}
/* 画面到達で1粒ずつぽん（JSが .kp-anim=準備 / .is-in=再生 を付与。JSなしは静止表示のまま） */
.c-dots.kp-anim span{opacity:0;transform:scale(0)}
.c-dots.is-in span{animation:kpPopIn .45s cubic-bezier(.34,1.56,.64,1) both}
.c-dots.is-in span:nth-child(2){animation-delay:.1s}
.c-dots.is-in span:nth-child(3){animation-delay:.2s}
.c-dots.is-in span:nth-child(4){animation-delay:.3s}
.c-dots.is-in span:nth-child(5){animation-delay:.4s}
@keyframes kpPopIn{from{opacity:0;transform:scale(0)}65%{opacity:1;transform:scale(1.3)}to{opacity:1;transform:scale(1)}}

/* A-1 寄附CTAホバーで粒が飛ぶ（ホバー環境のみ・群=黄+空） */
.c-btn--cta,.c-btn--give{position:relative}
.c-btn--cta::before,.c-btn--give::before{content:"";position:absolute;top:2px;right:-2px;width:13px;height:13px;background:var(--kp-yellow);-webkit-mask:var(--kpm);mask:var(--kpm);opacity:0;pointer-events:none}
.c-btn--cta::after,.c-btn--give::after{content:"";position:absolute;top:-8px;right:14px;width:10px;height:10px;background:var(--kp-sky);-webkit-mask:var(--kpm);mask:var(--kpm);opacity:0;pointer-events:none}
@media (hover:hover){
  .c-btn--cta:hover::before,.c-btn--give:hover::before{animation:kpBurst .55s ease-out both}
  .c-btn--cta:hover::after,.c-btn--give:hover::after{animation:kpBurst .55s ease-out .08s both}
}
@keyframes kpBurst{0%{opacity:0;transform:translate(0,6px) scale(0)}45%{opacity:1;transform:translate(6px,-8px) scale(1.05)}100%{opacity:0;transform:translate(12px,-20px) scale(.7)}}

/* A-2 送信中の粒スピナー（JSが .is-sending を付与・二重送信ガード兼用） */
.c-btn.is-sending{opacity:.85;pointer-events:none}
.c-btn.is-sending::before{content:"";display:inline-block;position:static;width:14px;height:14px;margin-right:.7rem;vertical-align:-2px;background:#fff;-webkit-mask:var(--kpm);mask:var(--kpm);opacity:1;animation:kpSpin 1.1s linear infinite}
@keyframes kpSpin{to{transform:rotate(360deg)}}

/* A-3 同意チェックで粒がぽん（単体=緑。:has非対応ブラウザは何も出ない） */
.c-check::after{content:"";flex:none;width:13px;height:13px;background:var(--kp-mint);-webkit-mask:var(--kpm);mask:var(--kpm);opacity:0;transform:scale(0)}
.c-check:has(input:checked)::after{animation:kpPopIn .5s cubic-bezier(.34,1.56,.64,1) both}

/* A-4 グロナビホバーの粒インジケータ（PC・項目ごとに色違い） */
@media (min-width:980px) and (hover:hover){
  .c-gnav__link,.c-gnav__toggle{position:relative}
  .c-gnav__link::before,.c-gnav__toggle::before{content:"";position:absolute;left:50%;top:-.7rem;width:9px;height:9px;margin-left:-4.5px;background:var(--kp-yellow);-webkit-mask:var(--kpm);mask:var(--kpm);opacity:0;transform:scale(0);pointer-events:none}
  .c-gnav__item:nth-child(2) .c-gnav__link::before{background:var(--kp-sky)}
  .c-gnav__item:nth-child(3) .c-gnav__link::before{background:var(--kp-pink)}
  .c-gnav__item:nth-child(4) .c-gnav__link::before{background:var(--kp-mint)}
  .c-gnav__link:hover::before,.c-gnav__toggle:hover::before{animation:kpPopIn .4s cubic-bezier(.34,1.56,.64,1) both}
}

/* B-6 帯背景のすみにカラフルな薄い粒（静的） */
.l-section--kp{position:relative;z-index:0} /* z-index:0=スタッキングコンテキスト生成。無いと z-index:-1 の粒がセクション背景の裏に隠れる */
.c-kpbg{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:-1}
.c-kpbg i{position:absolute;background:var(--kp-sky);-webkit-mask:var(--kpm);mask:var(--kpm);opacity:.16}
.c-kpbg i:nth-child(1){width:64px;height:64px;left:3%;top:10%;transform:rotate(12deg)}
.c-kpbg i:nth-child(2){width:42px;height:42px;right:4%;top:55%;background:var(--kp-yellow);transform:rotate(-18deg)}
.c-kpbg i:nth-child(3){width:28px;height:28px;left:9%;bottom:9%;background:var(--kp-mint);transform:rotate(30deg)}

/* B-7 見出しバーの頭の小粒は不採用（2026-08-22 ユーザーFBで除外） */

/* SPのナラティブ見出しをひと回り縮小（「フリーランス×障害」等を1行に収める） */
@media (max-width:600px){.p-narr__h{font-size:2rem}}

/* B-8 詩の引用（pullquote）の上に粒3つ（群=空・コーラル・黄）。
   ※727行の旧コーラルバーはbackground-color:transparentで無効化（バー撤去・粒のみ表示） */
.p-pullquote::before{content:"";display:block;width:64px;height:14px;margin:0 auto 1.6rem;background-color:transparent;background-image:
  url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='-14%20-14%2028%2028'%3E%3Cpolygon%20points='10,0%206.1,2.53%207.07,7.07%202.53,6.1%200,10%20-2.53,6.1%20-7.07,7.07%20-6.1,2.53%20-10,0%20-6.1,-2.53%20-7.07,-7.07%20-2.53,-6.1%200,-10%202.53,-6.1%207.07,-7.07%206.1,-2.53'%20fill='%2355A7D4'%20stroke='%2355A7D4'%20stroke-width='5.5'%20stroke-linejoin='round'/%3E%3C/svg%3E"),
  url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='-14%20-14%2028%2028'%3E%3Cpolygon%20points='10,0%206.1,2.53%207.07,7.07%202.53,6.1%200,10%20-2.53,6.1%20-7.07,7.07%20-6.1,2.53%20-10,0%20-6.1,-2.53%20-7.07,-7.07%20-2.53,-6.1%200,-10%202.53,-6.1%207.07,-7.07%206.1,-2.53'%20fill='%23E8604C'%20stroke='%23E8604C'%20stroke-width='5.5'%20stroke-linejoin='round'/%3E%3C/svg%3E"),
  url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='-14%20-14%2028%2028'%3E%3Cpolygon%20points='10,0%206.1,2.53%207.07,7.07%202.53,6.1%200,10%20-2.53,6.1%20-7.07,7.07%20-6.1,2.53%20-10,0%20-6.1,-2.53%20-7.07,-7.07%20-2.53,-6.1%200,-10%202.53,-6.1%207.07,-7.07%206.1,-2.53'%20fill='%23EFC24D'%20stroke='%23EFC24D'%20stroke-width='5.5'%20stroke-linejoin='round'/%3E%3C/svg%3E");
  background-position:0 60%,26px 40%,54px 65%;background-size:10px,13px,9px;background-repeat:no-repeat}

/* C-9 詩の引用でふわりと粒が昇る（supportビジョン節・画面到達で1回） */
.p-vision{position:relative}
.c-kpfloat i{position:absolute;width:14px;height:14px;background:var(--kp-pink);-webkit-mask:var(--kpm);mask:var(--kpm);opacity:0;pointer-events:none}
.c-kpfloat i:nth-child(1){left:16%;bottom:26%}
.c-kpfloat i:nth-child(2){right:14%;bottom:38%;width:11px;height:11px;background:var(--kp-sky)}
.c-kpfloat i:nth-child(3){left:30%;bottom:16%;width:9px;height:9px;background:var(--kp-yellow)}
.p-vision.is-in .c-kpfloat i{animation:kpFloatUp 3.4s ease-out both}
.p-vision.is-in .c-kpfloat i:nth-child(2){animation-delay:.9s}
.p-vision.is-in .c-kpfloat i:nth-child(3){animation-delay:1.8s}
@keyframes kpFloatUp{0%{opacity:0;transform:translateY(0) scale(.7)}15%{opacity:.6}55%{opacity:.35}90%,100%{opacity:0;transform:translateY(-70px) rotate(25deg)}}

/* C-10 「205人」セレブレーション（画面到達で1回・群=空+黄+桃） */
.p-proof__num{position:relative;display:inline-block}
.kp-cel{position:absolute;width:15px;height:15px;background:var(--kp-sky);-webkit-mask:var(--kpm);mask:var(--kpm);opacity:0;pointer-events:none}
.kp-cel--a{left:-2.4rem;top:-.2rem}
.kp-cel--b{right:-2.2rem;top:-1.2rem;width:12px;height:12px;background:var(--kp-yellow)}
.kp-cel--c{right:-.7rem;bottom:-.6rem;width:10px;height:10px;background:var(--kp-pink)}
.p-proof.is-in .kp-cel{animation:kpCel 2.2s ease-out both}
.p-proof.is-in .kp-cel--b{animation-delay:.25s}
.p-proof.is-in .kp-cel--c{animation-delay:.5s}
@keyframes kpCel{0%{opacity:0;transform:scale(0)}10%{opacity:1;transform:scale(1.3)}18%{transform:scale(1)}60%{opacity:1}100%{opacity:0;transform:scale(1)}}

/* D-12 サンクスページの金平糖コンフェッティ（表示時に1回・8色） */
.c-kpconfetti{position:absolute;left:0;right:0;top:-10px;height:340px;overflow:hidden;pointer-events:none;z-index:1}
.c-kpconfetti i{position:absolute;top:-24px;width:12px;height:12px;background:var(--kp-sky);-webkit-mask:var(--kpm);mask:var(--kpm);opacity:0;animation:kpFall 2.9s cubic-bezier(.25,.4,.6,1) both}
.c-kpconfetti i:nth-child(1){left:6%}
.c-kpconfetti i:nth-child(2){left:16%;width:10px;height:10px;background:var(--accent-pink);animation-delay:.9s}
.c-kpconfetti i:nth-child(3){left:27%;width:15px;height:15px;background:var(--kp-yellow);animation-delay:.3s}
.c-kpconfetti i:nth-child(4){left:38%;width:10px;height:10px;background:var(--accent-mint);animation-delay:1.4s}
.c-kpconfetti i:nth-child(5){left:50%;background:var(--kp-pink);animation-delay:.6s}
.c-kpconfetti i:nth-child(6){left:61%;width:10px;height:10px;background:var(--accent-sky);animation-delay:1.7s}
.c-kpconfetti i:nth-child(7){left:72%;width:14px;height:14px;background:var(--accent-yellow);animation-delay:.15s}
.c-kpconfetti i:nth-child(8){left:82%;width:11px;height:11px;background:var(--kp-mint);animation-delay:1.1s}
.c-kpconfetti i:nth-child(9){left:91%;background:var(--kp-sky);animation-delay:.45s}
.c-kpconfetti i:nth-child(10){left:44%;width:9px;height:9px;background:var(--kp-yellow);animation-delay:1.9s}
@keyframes kpFall{0%{opacity:0;transform:translateY(0) rotate(0)}8%{opacity:1}78%{opacity:1}100%{opacity:0;transform:translateY(330px) rotate(200deg)}}

/* D-13 「準備中」の小粒（単体=黄・ゆる浮遊） */
.c-kpmini{display:inline-block;width:12px;height:12px;margin-right:.5rem;vertical-align:-1px;background:var(--kp-yellow);-webkit-mask:var(--kpm);mask:var(--kpm);animation:kpBob 2.8s ease-in-out infinite}
@keyframes kpBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}

/* D-14 フォーム入力フォーカスで粒が色づく（単体: グレー→黄） */
.c-field__label::before{content:"";display:inline-block;width:10px;height:10px;margin-right:.6rem;background:var(--c-line-strong);-webkit-mask:var(--kpm);mask:var(--kpm);transition:background-color .25s}
.c-field:focus-within > .c-field__label::before,
.c-form fieldset.c-field:focus-within legend.c-field__label::before{background:var(--kp-yellow)}

/* E-16 リストマーカー（c-dotlist）の金平糖化: 4色サイクル（コーラルは使わない） */
.c-dotlist li::before{content:"";width:12px;height:12px;top:.5em;background:var(--kp-sky);-webkit-mask:var(--kpm);mask:var(--kpm)}
.c-dotlist li:nth-child(4n+2)::before{background:var(--kp-yellow)}
.c-dotlist li:nth-child(4n+3)::before{background:var(--kp-mint)}
.c-dotlist li:nth-child(4n)::before{background:var(--kp-pink)}

/* あしらい全体の reduced-motion 対応（JS側でも kp-anim/is-in を付与しない） */
@media (prefers-reduced-motion:reduce){
  .c-kpconfetti{display:none}
  .c-kpmini,.c-dots span,.kp-cel,.c-kpfloat i,.c-btn--cta::before,.c-btn--give::before,.c-btn--cta::after,.c-btn--give::after,.c-gnav__link::before,.c-gnav__toggle::before,.c-check::after{animation:none!important}
  .c-dots.kp-anim span{opacity:1;transform:none}
  .c-check:has(input:checked)::after{opacity:1;transform:scale(1)}
}
