/* ==========================================================================
   grit.EXECUTIVE Founding Program LP — 専用スタイルシート
   このページ専用。サロン向け共通CSS（style.css）とは完全に切り離して読み込まれる。

   ACCENT-USAGE: 既存サイトのネオンイエロー(--gx-accent)を使っている箇所には
   すべてこのタグをコメントで付けている。不要になった場合はこのタグを grep して
   該当ブロックだけ削除すれば、モノクロのみの配色に戻せる。
   ========================================================================== */

.grit-exec-page{
  --gx-ink:#15151a;
  --gx-ink-soft:#33333b;
  --gx-grey:#6f6f78;
  --gx-grey-line:#dcdce0;
  --gx-paper:#ffffff;
  --gx-paper-soft:#f5f5f6;
  --gx-paper-dark:#1c1c21;
  --gx-accent:#f4ff3a; /* 既存サイトのネオンイエロー。極小要素専用 */
  --gx-font-serif:'Zen Old Mincho', serif;
  --gx-font-sans:'Noto Sans JP', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Hiragino Kaku Gothic ProN', sans-serif;
  --gx-max:760px;
  --gx-wide:1080px;
  --gx-cta-bar-h:64px;

  margin:0;
  padding:0;
  background:var(--gx-paper);
  color:var(--gx-ink);
  font-family:var(--gx-font-sans);
  font-feature-settings:"palt" 1;
  -webkit-font-smoothing:antialiased;
  line-height:1.85;
  font-size:16px;
}

.grit-exec-page *{ box-sizing:border-box; }
.grit-exec-page img{ max-width:100%; display:block; }
.grit-exec-page a{ color:inherit; text-decoration:none; }

.gx-inner{
  max-width:var(--gx-max);
  margin:0 auto;
  padding:0 24px;
}
.gx-inner--wide{ max-width:var(--gx-wide); }

/* ---------- header ---------- */
.gx-header{
  position:relative;
  z-index:20;
  padding:22px 24px;
  display:flex;
  align-items:baseline;
  gap:10px;
}
.gx-header__mark{
  font-family:var(--gx-font-sans);
  font-weight:700;
  font-size:15px;
  letter-spacing:.02em;
}
.gx-header__sub{
  font-size:11px;
  letter-spacing:.14em;
  color:var(--gx-grey);
  text-transform:uppercase;
}

/* ---------- section wrapper ---------- */
.gx-section{ padding:88px 0; border-top:1px solid var(--gx-grey-line); }
.gx-section:first-of-type{ border-top:none; }
.gx-section--soft{ background:var(--gx-paper-soft); }
.gx-section--dark{ background:var(--gx-paper-dark); color:#f2f2f0; border-top:none; }
.gx-section--dark .gx-grey{ color:#a9a9ae; }

.gx-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.6em;
  font-size:12px;
  letter-spacing:.18em;
  color:var(--gx-grey);
  text-transform:uppercase;
  margin:0 0 18px;
  font-weight:600;
}
/* ACCENT-USAGE: セクション見出し前の極小マーカー */
.gx-eyebrow::before{
  content:"";
  width:14px;
  height:2px;
  background:var(--gx-accent);
  display:inline-block;
}

.gx-h2{
  font-family:var(--gx-font-sans);
  font-weight:700;
  font-size:clamp(22px,4vw,30px);
  line-height:1.5;
  margin:0 0 28px;
  letter-spacing:.01em;
}
.gx-lead{
  font-size:17px;
  line-height:2;
  color:var(--gx-ink-soft);
}
.gx-lead + .gx-lead{ margin-top:1.4em; }

/* ---------- 1. First View ---------- */
.gx-fv{
  padding:64px 0 96px;
  text-align:center;
}
.gx-fv__brand{
  font-family:var(--gx-font-serif);
  font-size:14px;
  letter-spacing:.32em;
  color:var(--gx-grey);
  margin:0 0 34px;
}
.gx-fv__thesis{
  font-family:var(--gx-font-serif);
  font-weight:500;
  font-size:clamp(22px,4.6vw,32px);
  line-height:1.75;
  margin:0 0 40px;
  color:var(--gx-ink);
}
/* ACCENT-USAGE: FV内、極細の1本罫 */
.gx-fv__rule{
  width:40px;
  height:2px;
  background:var(--gx-accent);
  margin:0 auto 40px;
}
.gx-fv__q{
  font-family:var(--gx-font-sans);
  font-weight:700;
  font-size:clamp(24px,5.4vw,38px);
  line-height:1.5;
  margin:0 0 34px;
  letter-spacing:.01em;
}
.gx-fv__q span{ display:block; }
.gx-fv__desc{
  max-width:520px;
  margin:0 auto 44px;
  font-size:15.5px;
  line-height:2;
  color:var(--gx-grey);
}

/* ---------- buttons ---------- */
.gx-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5em;
  padding:17px 34px;
  background:var(--gx-ink);
  color:#fff;
  font-weight:700;
  font-size:15px;
  letter-spacing:.03em;
  border-radius:2px;
  transition:opacity .2s ease, transform .2s ease;
}
.gx-btn:hover{ opacity:.85; }
.gx-btn--ghost{
  background:transparent;
  color:var(--gx-ink);
  border:1px solid var(--gx-ink);
}
.gx-section--dark .gx-btn--ghost{ color:#fff; border-color:#fff; }

/* ---------- 2. 問題提起 ---------- */
.gx-problem__line{
  font-size:18px;
  line-height:2;
  color:var(--gx-ink-soft);
  margin:0 0 1.6em;
}
.gx-problem__quote{
  font-family:var(--gx-font-sans);
  font-weight:700;
  font-size:clamp(19px,3.2vw,23px);
  line-height:1.9;
  margin:0 0 40px;
  padding:28px 26px;
  background:var(--gx-paper-soft);
  border-left:2px solid var(--gx-ink);
}

/* ---------- 3-5 テキストブロック ---------- */
.gx-text-block p{ margin:0 0 1.4em; font-size:16px; color:var(--gx-ink-soft); }
.gx-text-block p:last-child{ margin-bottom:0; }

/* ---------- 5. YOHEIがディレクションする理由（写真あり・2カラム） ---------- */
.gx-yohei{
  display:grid;
  grid-template-columns:1fr;
  gap:36px;
  align-items:start;
}
.gx-yohei__photo{
  margin:0;
  order:-1; /* モバイル：見出しの直後＝本文より先に表示 */
}
.gx-yohei__photo img{
  width:100%;
  height:auto;
  display:block;
}
.gx-yohei__photo figcaption{
  margin-top:14px;
}
.gx-yohei__name{
  display:block;
  font-weight:700;
  font-size:12.5px;
  letter-spacing:.03em;
}
.gx-yohei__role{
  display:block;
  font-size:11.5px;
  color:var(--gx-grey);
  margin-top:3px;
  letter-spacing:.01em;
}
.gx-yohei__text .gx-text-block{ margin:0; }

@media (min-width:768px){
  .gx-yohei{
    grid-template-columns:1.1fr .9fr;
    gap:56px;
  }
  .gx-yohei__photo{ order:0; }
}

.gx-diff-list{
  list-style:none;
  margin:28px 0 0;
  padding:0;
  display:grid;
  gap:1px;
  background:var(--gx-grey-line);
  border:1px solid var(--gx-grey-line);
}
.gx-diff-list li{
  background:var(--gx-paper);
  padding:16px 20px;
  font-size:14.5px;
  color:var(--gx-grey);
}
.gx-diff-list strong{ color:var(--gx-ink); font-weight:700; }

/* ---------- 5.5 声（差し替え・削除可能な独立ブロック） ---------- */
.gx-voice{ }
.gx-voice__grid{
  display:grid;
  gap:20px;
  margin:36px 0 28px;
}
.gx-voice__card{
  background:var(--gx-paper);
  border:1px solid var(--gx-grey-line);
  padding:28px 26px;
}
.gx-voice__text{
  font-size:15px;
  line-height:1.95;
  color:var(--gx-ink-soft);
  margin:0 0 16px;
}
.gx-voice__name{
  font-size:13px;
  color:var(--gx-grey);
  font-weight:600;
}
.gx-voice__disclaimer{
  font-size:12.5px;
  line-height:1.9;
  color:var(--gx-grey);
  padding:16px 18px;
  background:var(--gx-paper-soft);
  margin:0 0 28px;
}
.gx-voice__note{ font-size:14.5px; color:var(--gx-ink-soft); }

/* ---------- 6. Executive Image Blueprint（将来の実成果物にも転用できる構造） ---------- */
.gx-blueprint__intro{ font-size:16px; color:var(--gx-ink-soft); margin:0 0 40px; }
.gx-blueprint__grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1px;
  background:var(--gx-grey-line);
  border:1px solid var(--gx-grey-line);
}
.gx-blueprint-card{
  background:var(--gx-paper);
  padding:30px 26px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.gx-blueprint-card--wide{ grid-column:1 / -1; }
.gx-blueprint-card__num{
  font-family:var(--gx-font-sans);
  font-weight:700;
  font-size:13px;
  letter-spacing:.08em;
  color:var(--gx-grey);
  display:inline-flex;
  flex-direction:column;
  gap:6px;
}
/* ACCENT-USAGE: Blueprintカード番号の下線 */
.gx-blueprint-card__num::after{
  content:"";
  width:18px;
  height:2px;
  background:var(--gx-accent);
}
.gx-blueprint-card__label{
  font-family:var(--gx-font-sans);
  font-weight:700;
  font-size:17px;
  letter-spacing:.01em;
}
.gx-blueprint-card__label small{
  display:block;
  font-weight:500;
  font-size:13px;
  color:var(--gx-grey);
  margin-top:4px;
  letter-spacing:.02em;
}
.gx-blueprint-card__desc{ font-size:14px; color:var(--gx-grey); line-height:1.9; margin:0; }
.gx-blueprint__foot{ margin-top:32px; font-size:15px; color:var(--gx-ink-soft); }

/* ---------- 7. Core / Partner ---------- */
.gx-cp{
  display:grid;
  gap:1px;
  background:var(--gx-grey-line);
  border:1px solid var(--gx-grey-line);
  margin:36px 0 28px;
}
.gx-cp__col{ background:var(--gx-paper); padding:30px 26px; }
.gx-cp__col--core{ background:var(--gx-ink); color:#fff; }
.gx-cp__tag{
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gx-grey);
  margin:0 0 10px;
  font-weight:700;
}
.gx-cp__col--core .gx-cp__tag{ color:#c9c9ca; }
.gx-cp__title{ font-weight:700; font-size:18px; margin:0 0 16px; }
.gx-cp__items{ font-size:14.5px; line-height:2.1; color:var(--gx-grey); margin:0; }
.gx-cp__col--core .gx-cp__items{ color:#d8d8d4; }
.gx-cp__note{ font-size:14.5px; color:var(--gx-ink-soft); }

/* ---------- 8. 3か月の流れ ---------- */
.gx-flow{ margin:40px 0 8px; position:relative; }
.gx-flow__item{
  position:relative;
  padding:0 0 40px 34px;
  border-left:1px solid var(--gx-grey-line);
}
.gx-flow__item:last-child{ padding-bottom:0; }
.gx-flow__dot{
  position:absolute;
  left:-5px;
  top:2px;
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--gx-ink);
}
/* ACCENT-USAGE: フロー3ステップ目のドットのみ強調 */
.gx-flow__item--final .gx-flow__dot{ background:var(--gx-accent); box-shadow:0 0 0 3px var(--gx-paper), 0 0 0 4px var(--gx-ink); }
.gx-flow__month{ font-size:12px; letter-spacing:.1em; color:var(--gx-grey); text-transform:uppercase; font-weight:700; margin:0 0 6px; }
.gx-flow__title{ font-weight:700; font-size:17px; margin:0 0 10px; }
.gx-flow__desc{ font-size:14.5px; color:var(--gx-grey); line-height:1.9; margin:0; }
.gx-flow__note{ margin-top:8px; font-size:14px; color:var(--gx-grey); }

/* ---------- 9. Founding Program ---------- */
.gx-program{
  background:var(--gx-ink);
  color:#fff;
  padding:44px 32px;
  margin:36px 0 28px;
}
.gx-program__intro{ font-size:16px; line-height:2; color:#d8d8d4; margin:0 0 32px; }
.gx-program__row{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
  border-top:1px solid rgba(255,255,255,.16);
}
.gx-program__cell{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:18px 0;
  border-bottom:1px solid rgba(255,255,255,.16);
  font-size:15px;
}
.gx-program__cell dt{ color:#a9a9ae; font-weight:500; }
.gx-program__cell dd{ margin:0; text-align:right; font-weight:700; }
.gx-program__price{ font-family:var(--gx-font-sans); font-weight:700; }
.gx-program__price .gx-program__yen{ font-size:26px; }
.gx-program__note{ margin-top:28px; font-size:13.5px; color:#a9a9ae; line-height:1.9; }

/* ---------- 10. モデルケース ---------- */
.gx-case{
  background:var(--gx-paper-soft);
  padding:32px 28px;
  margin:16px 0 0;
}
.gx-case__disclaimer{ font-size:12.5px; color:var(--gx-grey); margin:0 0 22px; line-height:1.9; }
.gx-case__name{ font-weight:700; font-size:16px; margin:0 0 16px; }
.gx-case p{ font-size:15px; line-height:2; color:var(--gx-ink-soft); margin:0 0 1.2em; }
.gx-case p:last-child{ margin-bottom:0; font-style:normal; font-weight:600; color:var(--gx-ink); }

/* ---------- 11. FAQ ---------- */
.gx-faq__item{ border-bottom:1px solid var(--gx-grey-line); padding:22px 0; }
.gx-faq__item:first-child{ border-top:1px solid var(--gx-grey-line); }
.gx-faq__q{ display:flex; gap:14px; font-weight:700; font-size:15.5px; margin:0 0 12px; }
.gx-faq__q span{ color:var(--gx-grey); }
.gx-faq__a{ display:flex; gap:14px; font-size:14.5px; color:var(--gx-grey); line-height:1.95; margin:0; }
.gx-faq__a span{ color:var(--gx-ink); font-weight:700; }

/* ---------- 12. 最終CTA ---------- */
.gx-final{
  text-align:center;
  padding:96px 0;
  background:var(--gx-ink);
  color:#fff;
}
.gx-final__thesis{
  font-family:var(--gx-font-serif);
  font-weight:500;
  font-size:clamp(20px,4vw,26px);
  line-height:1.8;
  margin:0 0 20px;
}
.gx-final__sub{ font-size:14.5px; color:#a9a9ae; margin:0 0 36px; }
.gx-final .gx-btn{ background:#fff; color:var(--gx-ink); }

/* ---------- footer ---------- */
.gx-footer{
  padding:40px 24px 120px;
  text-align:center;
  font-size:12px;
  color:var(--gx-grey);
}
.gx-footer a{ text-decoration:underline; text-underline-offset:3px; }

/* ---------- sticky CTA（初期非表示。FV通過後に表示） ---------- */
.gx-sticky-cta{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:100;
  height:var(--gx-cta-bar-h);
  background:var(--gx-ink);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 20px;
  transform:translateY(100%);
  opacity:0;
  transition:transform .3s ease, opacity .3s ease;
  pointer-events:none;
}
.gx-sticky-cta.is-visible{
  transform:translateY(0);
  opacity:1;
  pointer-events:auto;
}
.gx-sticky-cta__link{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  width:100%;
  max-width:420px;
  height:44px;
  background:#fff;
  color:var(--gx-ink);
  font-weight:700;
  font-size:14.5px;
  letter-spacing:.01em;
  border-radius:2px;
}

@media (min-width:600px){
  .gx-sticky-cta{ display:none; } /* PCではフッター内CTAで十分。モバイルのみ運用 */
}

/* ---------- レスポンシブ ---------- */
@media (max-width:640px){
  .gx-section{ padding:64px 0; }
  .gx-inner{ padding:0 20px; }
  .gx-fv{ padding:48px 0 72px; }
  .gx-blueprint__grid{ grid-template-columns:1fr; }
  .gx-program{ padding:32px 22px; }
  .gx-program__cell{ font-size:14px; }
  .gx-cp{ grid-template-columns:1fr; }
  .gx-final{ padding:72px 0; }
  .gx-footer{ padding-bottom:96px; }
}

@media (min-width:641px){
  .gx-cp{ grid-template-columns:1fr 1fr; }
}
