/*
 * GAIMA プロモーションLP スタイルシート
 * gaima_promotion/gaima_promotion.css
 * Version: 1.0.0
 *
 * 設計方針:
 *  - Cocoon / 子テーマの既存CSSと一切衝突しないよう、全セレクタに "gp-" を付与
 *  - CSS変数もすべて "--gp-" プレフィックスでスコープ
 *  - ヘッダー / フッターは daisen.life 共通仕様（固定ヘッダー・ハンバーガー・
 *    フッター/ページトップボタン）に合わせつつ、GAIMA固有のダーク×アンバー×
 *    ティールのトーンで独自性を演出
 */

/* ===== リセット（このページ内に限定） ===== */
.gaima-promotion-page,
.gaima-promotion-page *,
.gaima-promotion-page *::before,
.gaima-promotion-page *::after{
  box-sizing:border-box;
}
.gaima-promotion-page{margin:0;padding:0;}
.gaima-promotion-page img,
.gaima-promotion-page svg{display:block;max-width:100%;}
.gaima-promotion-page a{color:inherit;text-decoration:none;}
.gaima-promotion-page button{cursor:pointer;border:none;background:none;font-family:inherit;color:inherit;}
.gaima-promotion-page ul{list-style:none;margin:0;padding:0;}
.gaima-promotion-page table{border-collapse:collapse;}
html:has(.gaima-promotion-page){scroll-behavior:smooth;}

@media (prefers-reduced-motion: reduce){
  .gaima-promotion-page,
  .gaima-promotion-page *{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
    scroll-behavior:auto !important;
  }
}

/* ===== CSS変数（GAIMAスコープ） ===== */
.gaima-promotion-page{
  --gp-bg-void:#0B0E17;
  --gp-bg-panel:#131828;
  --gp-bg-panel-raised:#1B2236;
  --gp-ink-100:#F4F2EC;
  --gp-ink-300:#C7CBDB;
  --gp-ink-500:#8A90A8;
  --gp-ink-700:#565C75;
  --gp-amber:#FFB238;
  --gp-amber-dim:rgba(255,178,56,0.16);
  --gp-teal:#3DDC97;
  --gp-teal-dim:rgba(61,220,151,0.14);
  --gp-rose:#FF6B5C;
  --gp-rose-dim:rgba(255,107,92,0.14);
  --gp-line:rgba(244,242,236,0.12);
  --gp-line-strong:rgba(244,242,236,0.22);
  --gp-radius-s:6px;
  --gp-radius-m:14px;
  --gp-radius-l:26px;
  --gp-font-display:'Zen Kaku Gothic New','Noto Sans JP',sans-serif;
  --gp-font-body:'Noto Sans JP',sans-serif;
  --gp-font-mono:'JetBrains Mono',monospace;
  --gp-maxw:1180px;
  --gp-ease:cubic-bezier(0.16,1,0.3,1);
  --gp-header-h:68px;

  background:var(--gp-bg-void);
  color:var(--gp-ink-100);
  font-family:var(--gp-font-body);
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  position:relative;
  isolation:isolate;
}

.gaima-promotion-page ::selection{background:var(--gp-amber);color:#1a1300;}

.gaima-promotion-page h1,
.gaima-promotion-page h2,
.gaima-promotion-page h3,
.gaima-promotion-page h4{
  font-family:var(--gp-font-display);font-weight:900;letter-spacing:0.01em;margin:0;
}
.gaima-promotion-page .gp-mono{font-family:var(--gp-font-mono);}

.gaima-promotion-page a:focus-visible,
.gaima-promotion-page button:focus-visible,
.gaima-promotion-page summary:focus-visible,
.gaima-promotion-page [tabindex]:focus-visible{
  outline:3px solid var(--gp-amber);
  outline-offset:3px;
  border-radius:4px;
}

.gp-wrap{max-width:var(--gp-maxw);margin:0 auto;padding:0 28px;}
@media (max-width:640px){ .gp-wrap{padding:0 20px;} }

/* ===== 背景テクスチャ ===== */
.gp-grain-bg{position:fixed;inset:0;z-index:-2;background:var(--gp-bg-void);}
.gp-grid-overlay{
  position:fixed;inset:0;z-index:-1;pointer-events:none;
  background-image:
    linear-gradient(rgba(244,242,236,0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(244,242,236,0.035) 1px, transparent 1px);
  background-size:48px 48px;
  mask-image:radial-gradient(ellipse 90% 60% at 50% 0%, black 30%, transparent 75%);
}

.gp-skip-link{
  position:absolute;left:-999px;top:0;background:var(--gp-amber);color:#1a1300;
  padding:10px 16px;z-index:10001;border-radius:0 0 8px 0;
}
.gp-skip-link:focus{left:0;}

/* ===========================
   HEADER（サイト共通仕様：固定・ハンバーガー対応）
   =========================== */
.gp-header{
  position:fixed;top:0;left:0;right:0;z-index:9999;
  height:var(--gp-header-h);
  background:rgba(11,14,23,0.82);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--gp-line);
  transition:background .4s ease, box-shadow .4s ease;
}
.gp-header.gp-scrolled{background:rgba(11,14,23,0.96);box-shadow:0 4px 32px rgba(0,0,0,.5);}
.gp-header__inner{
  max-width:var(--gp-maxw);margin:0 auto;padding:0 28px;height:100%;
  display:flex;align-items:center;gap:16px;
}
.gp-brand{
  display:flex;align-items:baseline;gap:10px;
  font-family:var(--gp-font-display);font-weight:900;font-size:1.2rem;
  letter-spacing:0.06em;flex-shrink:0;
}
.gp-brand small{
  font-family:var(--gp-font-mono);font-weight:500;font-size:0.55rem;
  letter-spacing:0.02em;color:var(--gp-ink-500);display:none;
}
@media (min-width:860px){ .gp-brand small{display:inline;} }

.gp-brand-mark{
  width:36px;height:36px;border-radius:8px;flex-shrink:0;
  box-shadow:0 2px 12px rgba(0,0,0,0.4);
}
.gp-brand-text{display:flex;align-items:baseline;gap:10px;}
@media (max-width:520px){
  .gp-brand-mark{width:32px;height:32px;}
}

.gp-nav{display:flex;align-items:center;gap:2px;margin-left:auto;}
.gp-nav__item{
  font-family:var(--gp-font-body);font-size:0.85rem;font-weight:500;
  color:var(--gp-ink-300);padding:8px 14px;border-radius:999px;
  transition:color .25s ease, background .25s ease;white-space:nowrap;
}
.gp-nav__item:hover{color:var(--gp-ink-100);background:rgba(244,242,236,0.06);}
.gp-nav__item--cta{
  margin-left:6px;background:var(--gp-amber);color:#1a1300;font-weight:700;
  box-shadow:0 2px 14px rgba(255,178,56,.28);
}
.gp-nav__item--cta:hover{background:#ffc25e;color:#1a1300;}

.gp-menu-toggle{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  padding:10px;border:1.5px solid var(--gp-line-strong);border-radius:8px;
  margin-left:auto;
}
.gp-menu-toggle span{
  display:block;width:20px;height:2px;background:var(--gp-ink-300);
  border-radius:2px;transition:transform .3s ease, opacity .3s ease;
}
.gp-menu-toggle.gp-active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.gp-menu-toggle.gp-active span:nth-child(2){opacity:0;}
.gp-menu-toggle.gp-active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

@media (max-width:900px){
  .gp-nav{
    display:none;flex-direction:column;align-items:stretch;gap:2px;
    position:fixed;top:var(--gp-header-h);left:0;right:0;
    background:rgba(11,14,23,0.98);
    padding:14px 20px 22px;border-bottom:1px solid var(--gp-line);
    max-height:calc(100vh - var(--gp-header-h));overflow-y:auto;z-index:9998;
  }
  .gp-nav.gp-open{display:flex;}
  .gp-nav__item{padding:13px 6px;border-bottom:1px solid rgba(244,242,236,0.06);border-radius:0;font-size:0.92rem;}
  .gp-nav__item--cta{margin:10px 0 0;text-align:center;border-radius:8px;}
  .gp-menu-toggle{display:flex;}
}

/* ===========================
   共通ボタン・見出し部品
   =========================== */
.gp-btn{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--gp-font-body);font-weight:700;font-size:0.88rem;
  padding:13px 24px;border-radius:999px;border:1px solid transparent;
  cursor:pointer;white-space:nowrap;
  transition:transform .2s var(--gp-ease), background .2s ease, border-color .2s ease;
}
.gp-btn:hover{transform:translateY(-2px);}
.gp-btn-primary{background:var(--gp-amber);color:#1a1300;box-shadow:0 6px 24px rgba(255,178,56,.22);}
.gp-btn-primary:hover{background:#ffc25e;}
.gp-btn-ghost{background:transparent;color:var(--gp-ink-100);border-color:var(--gp-line-strong);}
.gp-btn-ghost:hover{border-color:var(--gp-amber);color:var(--gp-amber);}
.gp-btn-sm{padding:9px 18px;font-size:0.8rem;}

.gp-section{position:relative;padding:118px 0;}
@media (max-width:720px){ .gp-section{padding:80px 0;} }

.gp-eyebrow{
  font-family:var(--gp-font-mono);font-size:0.75rem;letter-spacing:0.18em;
  color:var(--gp-amber);text-transform:uppercase;
  display:flex;align-items:center;gap:10px;margin-bottom:18px;
}
.gp-eyebrow::before{content:'';width:22px;height:1px;background:var(--gp-amber);}
.gp-lead{color:var(--gp-ink-300);font-size:1.08rem;max-width:640px;}

.gp-sec-head{max-width:720px;margin-bottom:56px;}
.gp-sec-head h2{font-size:clamp(1.6rem,3.4vw,2.5rem);line-height:1.4;color:var(--gp-ink-100);}
.gp-sec-head p{margin-top:18px;}

/* セクション間の"奥行き"演出：交互の淡いレイヤー背景 */
.gp-layer-alt{
  background:var(--gp-bg-panel);
  border-top:1px solid var(--gp-line);
  border-bottom:1px solid var(--gp-line);
}
.gp-layer-fade-top{
  position:relative;
}
.gp-layer-fade-top::before{
  content:'';position:absolute;top:0;left:0;right:0;height:140px;
  background:linear-gradient(180deg, rgba(255,178,56,.05), transparent);
  pointer-events:none;
}

/* ===========================
   HERO
   =========================== */
.gp-hero{
  padding-top:calc(var(--gp-header-h) + 56px);padding-bottom:64px;overflow:hidden;
  background-image:
    linear-gradient(180deg, rgba(11,14,23,0.88) 0%, rgba(11,14,23,0.94) 55%, var(--gp-bg-void) 100%),
    url('https://daisen.life/wp-content/uploads/2026/07/gaima_daisen_hero.webp');
  background-size:cover;
  background-position:center top;
  background-repeat:no-repeat;
}
.gp-hero-grid{display:grid;grid-template-columns:1fr;gap:56px;align-items:center;}
@media (min-width:980px){ .gp-hero-grid{grid-template-columns:1.05fr 0.95fr;gap:24px;} }
.gp-hero h1{font-size:clamp(2.2rem,5.6vw,3.6rem);line-height:1.28;color:var(--gp-ink-100);}
.gp-hero h1 .gp-accent{color:var(--gp-amber);}
.gp-hero-lead{margin-top:26px;font-size:1.12rem;color:var(--gp-ink-300);max-width:560px;}
.gp-hero-cta{display:flex;flex-wrap:wrap;gap:16px;margin-top:38px;}
.gp-hero-stats{
  margin-top:52px;display:flex;flex-wrap:wrap;gap:0;
  border-top:1px solid var(--gp-line);padding-top:22px;
}
.gp-hero-stat{flex:1 1 120px;padding-right:20px;}
.gp-hero-stat b{display:block;font-family:var(--gp-font-mono);font-size:1.3rem;color:var(--gp-teal);}
.gp-hero-stat span{font-size:0.76rem;color:var(--gp-ink-500);}

.gp-radar-stage{position:relative;aspect-ratio:1/1;max-width:520px;margin:0 auto;width:100%;}

.gp-hero-brand{
  position:absolute;right:28px;bottom:20px;z-index:3;
  width:120px;height:auto;opacity:0.55;
  filter:drop-shadow(0 4px 16px rgba(0,0,0,0.4));
  pointer-events:none;
}
@media (max-width:640px){
  .gp-hero-brand{width:92px;right:20px;bottom:14px;}
}

.gp-radar-stage svg{width:100%;height:100%;}
.gp-sweep{transform-origin:200px 200px;animation:gpSpin 7s linear infinite;}
@keyframes gpSpin{ to{ transform:rotate(360deg); } }
.gp-pulse-dot{animation:gpPulseDot 2.6s ease-in-out infinite;}
@keyframes gpPulseDot{ 0%,100%{opacity:.35;} 50%{opacity:1;} }

/* ===========================
   PAIN CARDS
   =========================== */
.gp-pain-grid{
  display:grid;grid-template-columns:1fr;gap:1px;
  background:var(--gp-line);border:1px solid var(--gp-line);
  border-radius:var(--gp-radius-m);overflow:hidden;
}
@media (min-width:820px){ .gp-pain-grid{grid-template-columns:repeat(3,1fr);} }
.gp-pain-card{background:var(--gp-bg-panel);padding:34px 30px;transition:background .3s ease;}
.gp-pain-card:hover{background:var(--gp-bg-panel-raised);}
.gp-pain-card .gp-num{font-family:var(--gp-font-mono);color:var(--gp-ink-700);font-size:0.85rem;}
.gp-pain-card h3{font-size:1.15rem;margin-top:14px;color:var(--gp-ink-100);font-weight:700;}
.gp-pain-card p{color:var(--gp-ink-500);font-size:0.94rem;margin-top:10px;}

.gp-callout{
  margin-top:48px;border:1px solid var(--gp-line-strong);border-radius:var(--gp-radius-m);
  padding:28px 32px;background:linear-gradient(180deg, rgba(255,178,56,0.06), transparent);
  color:var(--gp-ink-300);font-size:0.98rem;
}
.gp-callout strong{color:var(--gp-ink-100);}

/* ===========================
   GAIMA-8 OCTAGON
   =========================== */
.gp-octa-wrap{display:grid;grid-template-columns:1fr;gap:40px;align-items:start;}
@media (min-width:980px){ .gp-octa-wrap{grid-template-columns:0.95fr 1.05fr;} }
.gp-octa-stage{
  position:relative;max-width:560px;margin:0 auto;width:100%;
  padding:0 8px; /* SVGラベルはみ出し用の安全余白 */
}
.gp-octa-stage svg{
  width:100%;height:auto;cursor:pointer;
  overflow:visible; /* ラベルの左右クリップを解除 */
}
.gp-octa-vertex{transition:r .15s ease;}
.gp-octa-vertex:hover,
.gp-octa-vertex.gp-active{r:9;}
.gp-octa-label{
  font-family:var(--gp-font-mono);font-size:11px;fill:var(--gp-ink-500);
  transition:fill .15s ease;cursor:pointer;
  paint-order:stroke; /* 背景線と重なった時の視認性確保 */
  letter-spacing:0.01em;
}
.gp-octa-label.gp-active{fill:var(--gp-amber);font-weight:700;}

/* 狭幅端末ではラベルをさらに小さく */
@media (max-width:520px){
  .gp-octa-label{font-size:10px;}
}

.gp-axis-line{transition:stroke .15s ease, stroke-width .15s ease;}
.gp-axis-line.gp-active{stroke:var(--gp-amber);stroke-width:2;}

.gp-comp-panel{
  background:var(--gp-bg-panel);border:1px solid var(--gp-line);border-radius:var(--gp-radius-m);
  padding:32px;min-height:300px;
}
.gp-comp-panel .gp-comp-code{font-family:var(--gp-font-mono);color:var(--gp-amber);font-size:0.85rem;letter-spacing:0.05em;}
.gp-comp-panel h3{font-size:1.5rem;margin-top:10px;color:var(--gp-ink-100);}
.gp-comp-panel .gp-comp-en{color:var(--gp-ink-500);font-size:0.85rem;font-family:var(--gp-font-mono);margin-top:2px;}
.gp-comp-panel .gp-comp-q{
  margin-top:18px;padding:14px 18px;background:var(--gp-bg-panel-raised);
  border-left:2px solid var(--gp-teal);border-radius:0 8px 8px 0;
  font-size:0.95rem;color:var(--gp-ink-300);
}
.gp-comp-panel .gp-comp-desc{margin-top:18px;color:var(--gp-ink-300);font-size:0.95rem;}
.gp-comp-panel .gp-comp-meta{display:flex;gap:24px;margin-top:22px;padding-top:18px;border-top:1px solid var(--gp-line);}
.gp-comp-panel .gp-comp-meta div span{display:block;font-size:0.72rem;color:var(--gp-ink-500);}
.gp-comp-panel .gp-comp-meta div b{font-family:var(--gp-font-mono);color:var(--gp-teal);font-size:1.1rem;}
.gp-octa-hint{margin-top:16px;text-align:center;font-size:0.82rem;color:var(--gp-ink-700);}

.gp-mindset-strip{
  margin-top:56px;display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;
  border-top:1px solid var(--gp-line);padding-top:36px;
}
.gp-mindset-strip p{color:var(--gp-ink-300);max-width:640px;margin:0;font-size:0.98rem;}
.gp-mindset-tag{
  font-family:var(--gp-font-mono);font-size:0.78rem;color:var(--gp-teal);
  background:var(--gp-teal-dim);padding:8px 16px;border-radius:999px;white-space:nowrap;
}

/* ===========================
   3層構造セクション：パララックス背景
   =========================== */
.gp-layers-parallax{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.gp-layers-bg{
  position:absolute;
  inset:-8% -4%;
  z-index:-1;
  background-image:
    linear-gradient(180deg, rgba(11,14,23,0.86) 0%, rgba(11,14,23,0.74) 45%, rgba(11,14,23,0.9) 100%),
    url('https://daisen.life/wp-content/uploads/2026/07/gaima_daisen_layer.webp');
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  will-change:transform;
  transform:translate3d(0,0,0) scale(1.1);
  transition:transform .05s linear;
  pointer-events:none;
}
@media (prefers-reduced-motion: reduce){
  .gp-layers-bg{ transition:none; }
}

/* ===========================
   3層構造
   =========================== */
.gp-layer-list{border-top:1px solid var(--gp-line);}
.gp-layer-item{
  display:grid;grid-template-columns:64px 1fr;gap:24px;padding:36px 0;
  border-bottom:1px solid var(--gp-line);
}
@media (min-width:760px){ .gp-layer-item{grid-template-columns:90px 1fr;gap:36px;} }
.gp-layer-item .gp-li-num{font-family:var(--gp-font-mono);font-size:2.1rem;color:var(--gp-ink-700);font-weight:700;}
.gp-layer-body h3{font-size:1.3rem;color:var(--gp-ink-100);}
.gp-layer-body .gp-li-tagline{font-family:var(--gp-font-mono);font-size:0.78rem;color:var(--gp-amber);margin-top:6px;letter-spacing:0.03em;}
.gp-layer-body p{color:var(--gp-ink-300);margin-top:14px;max-width:680px;font-size:0.97rem;}
.gp-li-facts{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;}
.gp-li-fact{
  font-family:var(--gp-font-mono);font-size:0.76rem;color:var(--gp-ink-300);
  border:1px solid var(--gp-line-strong);border-radius:999px;padding:6px 14px;
}
.gp-layer-total{
  margin-top:30px;padding:22px 26px;background:var(--gp-bg-panel);border-radius:var(--gp-radius-m);
  border:1px solid var(--gp-line);display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:12px;
}
.gp-layer-total b{font-family:var(--gp-font-mono);color:var(--gp-teal);font-size:1.1rem;}

/* --- 3層セクション：情動設計版で追加 --- */
.gp-layer-item{position:relative;}
.gp-layer-item::before{
  content:'';position:absolute;left:0;top:36px;bottom:36px;width:2px;
  background:linear-gradient(180deg, var(--gp-amber), transparent);
  opacity:0.35;
}
@media (max-width:759px){ .gp-layer-item::before{display:none;} }

.gp-layer-item .gp-li-num{
  font-family:var(--gp-font-mono);font-size:2.1rem;color:var(--gp-amber);
  font-weight:700;letter-spacing:0.02em;
}
.gp-layer-item--l2 .gp-li-num{color:var(--gp-teal);}
.gp-layer-item--l3 .gp-li-num{color:var(--gp-rose);}

.gp-layer-body h3{font-size:1.32rem;color:var(--gp-ink-100);line-height:1.5;margin-top:2px;}
.gp-layer-body .gp-li-tagline{
  font-family:var(--gp-font-mono);font-size:0.72rem;color:var(--gp-ink-500);
  letter-spacing:0.12em;
}
.gp-layer-body .gp-li-hook{
  margin-top:14px;padding:14px 18px;border-left:2px solid var(--gp-amber);
  background:linear-gradient(90deg, var(--gp-amber-dim), transparent 70%);
  color:var(--gp-ink-100);font-size:1rem;line-height:1.8;border-radius:0 8px 8px 0;
  max-width:720px;
}
.gp-layer-item--l2 .gp-li-hook{border-left-color:var(--gp-teal);background:linear-gradient(90deg, var(--gp-teal-dim), transparent 70%);}
.gp-layer-item--l3 .gp-li-hook{border-left-color:var(--gp-rose);background:linear-gradient(90deg, var(--gp-rose-dim), transparent 70%);}

.gp-layer-body > p:not(.gp-li-hook):not(.gp-li-tagline):not(.gp-li-flow){
  color:var(--gp-ink-300);margin-top:16px;max-width:720px;font-size:0.97rem;
}
.gp-layer-body .gp-li-flow{
  margin-top:20px;font-family:var(--gp-font-mono);font-size:0.8rem;
  color:var(--gp-ink-500);letter-spacing:0.02em;
}
.gp-li-fact--strong{color:var(--gp-teal);border-color:var(--gp-teal);}
.gp-li-fact--soft{color:var(--gp-ink-500);border-style:dashed;}

/* KNOW → DO → REFLECT アーク */
.gp-layer-arc{
  margin:56px 0 20px;display:grid;grid-template-columns:1fr auto 1fr auto 1fr;
  gap:16px;align-items:center;text-align:center;
  padding:26px 20px;border:1px solid var(--gp-line);border-radius:var(--gp-radius-m);
  background:var(--gp-bg-panel);
}
.gp-layer-arc__cell{padding:8px 4px;}
.gp-layer-arc__cell p{margin:6px 0 0;font-size:1.08rem;color:var(--gp-ink-100);font-weight:700;font-family:var(--gp-font-display);}
.gp-arc-tag{
  display:inline-block;font-size:0.7rem;letter-spacing:0.16em;color:var(--gp-amber);
  background:var(--gp-amber-dim);padding:4px 10px;border-radius:999px;
}
.gp-layer-arc__cell:nth-child(3) .gp-arc-tag{color:var(--gp-teal);background:var(--gp-teal-dim);}
.gp-layer-arc__cell:nth-child(5) .gp-arc-tag{color:var(--gp-rose);background:var(--gp-rose-dim);}
.gp-layer-arc__arrow{font-family:var(--gp-font-mono);color:var(--gp-ink-700);font-size:1.5rem;}
@media (max-width:640px){
  .gp-layer-arc{grid-template-columns:1fr;gap:8px;}
  .gp-layer-arc__arrow{transform:rotate(90deg);}
}

.gp-layer-total__note{font-size:0.78rem;color:var(--gp-ink-500);font-family:var(--gp-font-body);}


/* ===========================
   TRUST GRID
   =========================== */
.gp-trust-grid{
  display:grid;grid-template-columns:1fr;gap:1px;background:var(--gp-line);
  border:1px solid var(--gp-line);border-radius:var(--gp-radius-m);overflow:hidden;
}
@media (min-width:700px){ .gp-trust-grid{grid-template-columns:repeat(2,1fr);} }
@media (min-width:1040px){ .gp-trust-grid{grid-template-columns:repeat(3,1fr);} }
.gp-trust-card{background:var(--gp-bg-panel);padding:30px 28px;transition:background .3s ease;}
.gp-trust-card:hover{background:var(--gp-bg-panel-raised);}
.gp-trust-icon{width:34px;height:34px;margin-bottom:16px;}
.gp-trust-card h3{font-size:1.02rem;color:var(--gp-ink-100);font-weight:700;}
.gp-trust-card p{margin-top:10px;color:var(--gp-ink-500);font-size:0.9rem;}

/* ===========================
   SCORE / LEVELS
   =========================== */
.gp-score-cols{display:grid;grid-template-columns:1fr;gap:56px;}
@media (min-width:980px){ .gp-score-cols{grid-template-columns:1fr 1fr;} }
.gp-level-ladder{display:flex;flex-direction:column-reverse;gap:8px;}
.gp-level-row{
  display:grid;grid-template-columns:44px 1fr auto;gap:14px;align-items:center;
  padding:14px 16px;border-radius:10px;background:var(--gp-bg-panel);border:1px solid var(--gp-line);
}
.gp-level-row.gp-top{border-color:var(--gp-amber);background:linear-gradient(90deg, var(--gp-amber-dim), transparent);}
.gp-level-row .gp-lv-code{font-family:var(--gp-font-mono);font-weight:700;color:var(--gp-teal);font-size:0.95rem;}
.gp-level-row.gp-top .gp-lv-code{color:var(--gp-amber);}
.gp-level-row .gp-lv-name{font-size:0.92rem;color:var(--gp-ink-100);font-weight:500;}
.gp-level-row .gp-lv-name small{display:block;color:var(--gp-ink-500);font-size:0.78rem;font-weight:400;margin-top:2px;}
.gp-level-row .gp-lv-score{font-family:var(--gp-font-mono);font-size:0.82rem;color:var(--gp-ink-500);}

.gp-gvi-box{background:var(--gp-bg-panel);border:1px solid var(--gp-line);border-radius:var(--gp-radius-m);padding:32px;}
.gp-gvi-box h3{font-size:1.2rem;color:var(--gp-ink-100);}
.gp-gvi-box p{color:var(--gp-ink-300);margin-top:14px;font-size:0.95rem;}
.gp-gvi-chart{margin-top:24px;height:120px;display:flex;align-items:flex-end;gap:10px;}
.gp-gvi-bar{
  flex:1;background:linear-gradient(180deg, var(--gp-teal), rgba(61,220,151,0.15));
  border-radius:6px 6px 0 0;position:relative;
}
.gp-gvi-bar span{
  position:absolute;bottom:-26px;left:0;right:0;text-align:center;
  font-family:var(--gp-font-mono);font-size:0.7rem;color:var(--gp-ink-500);
}
.gp-reframe-row{
  margin-top:44px;display:grid;grid-template-columns:1fr;gap:1px;background:var(--gp-line);
  border:1px solid var(--gp-line);border-radius:var(--gp-radius-m);overflow:hidden;
}
@media (min-width:760px){ .gp-reframe-row{grid-template-columns:1fr 1fr;} }
.gp-reframe-cell{background:var(--gp-bg-panel);padding:26px 28px;}
.gp-reframe-cell .gp-tag{font-family:var(--gp-font-mono);font-size:0.7rem;letter-spacing:0.08em;}
.gp-reframe-cell.gp-old .gp-tag{color:var(--gp-ink-700);}
.gp-reframe-cell.gp-new .gp-tag{color:var(--gp-teal);}
.gp-reframe-cell p{margin-top:10px;font-size:0.98rem;color:var(--gp-ink-300);}
.gp-reframe-cell.gp-old p{text-decoration:line-through;text-decoration-color:var(--gp-ink-700);color:var(--gp-ink-700);}
.gp-reframe-cell.gp-new p{color:var(--gp-ink-100);}

/* ===========================
   MATRIX / MISSION
   =========================== */
.gp-matrix-wrap{overflow-x:auto;border:1px solid var(--gp-line);border-radius:var(--gp-radius-m);background:var(--gp-bg-panel);}
table.gp-matrix{width:100%;min-width:640px;}
table.gp-matrix th,
table.gp-matrix td{padding:14px 16px;text-align:center;border:1px solid var(--gp-line);font-size:0.85rem;}
table.gp-matrix th{
  background:var(--gp-bg-panel-raised);color:var(--gp-ink-100);
  font-family:var(--gp-font-mono);font-weight:500;font-size:0.76rem;
}
table.gp-matrix th:first-child,
table.gp-matrix td:first-child{text-align:left;color:var(--gp-ink-300);font-family:var(--gp-font-mono);}
table.gp-matrix td.gp-dot::after{content:'●';color:var(--gp-teal);font-size:0.6rem;}

.gp-mission-cards{margin-top:40px;display:grid;grid-template-columns:1fr;gap:20px;}
@media (min-width:820px){ .gp-mission-cards{grid-template-columns:repeat(3,1fr);} }
.gp-mission-card{
  background:var(--gp-bg-panel);border:1px solid var(--gp-line);border-radius:var(--gp-radius-m);
  padding:26px;transition:transform .25s var(--gp-ease), border-color .25s ease;
}
.gp-mission-card:hover{transform:translateY(-4px);border-color:var(--gp-line-strong);}
.gp-mission-card .gp-m-tag{
  font-family:var(--gp-font-mono);font-size:0.7rem;color:var(--gp-rose);
  background:var(--gp-rose-dim);display:inline-block;padding:4px 10px;border-radius:999px;
}
.gp-mission-card h4{margin-top:14px;font-size:1.02rem;color:var(--gp-ink-100);font-family:var(--gp-font-display);font-weight:700;}
.gp-mission-card p{margin-top:8px;color:var(--gp-ink-500);font-size:0.88rem;}

/* --- 情景写真（大山） --- */
.gp-scene{margin:0 0 56px;border-radius:var(--gp-radius-l);overflow:hidden;position:relative;border:1px solid var(--gp-line);}
.gp-scene__img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;display:block;filter:brightness(0.78) saturate(0.9);}
.gp-scene__cap{
  position:absolute;left:0;right:0;bottom:0;padding:22px 28px;
  background:linear-gradient(180deg, transparent, rgba(11,14,23,0.85) 60%);
  display:flex;flex-direction:column;gap:6px;color:var(--gp-ink-100);
}
.gp-scene__cap .gp-mono{font-size:0.72rem;letter-spacing:0.14em;color:var(--gp-amber);}
.gp-scene__cap span:last-child{font-size:0.92rem;color:var(--gp-ink-300);max-width:640px;line-height:1.7;}
@media (max-width:640px){ .gp-scene__cap{padding:16px 18px;} }


/* ===========================
   PERSONA QUOTES
   =========================== */
.gp-persona-grid{display:grid;grid-template-columns:1fr;gap:20px;}
@media (min-width:820px){ .gp-persona-grid{grid-template-columns:repeat(2,1fr);} }
.gp-persona-card{background:var(--gp-bg-panel);border:1px solid var(--gp-line);border-radius:var(--gp-radius-m);padding:30px;}
.gp-persona-card p.gp-quote{font-size:1.02rem;color:var(--gp-ink-100);line-height:1.85;}
.gp-persona-card .gp-who{margin-top:18px;display:flex;align-items:center;gap:12px;}
.gp-persona-avatar{width:38px;height:38px;border-radius:50%;background:conic-gradient(var(--gp-amber), var(--gp-teal), var(--gp-amber));}
.gp-persona-who-text{font-size:0.8rem;color:var(--gp-ink-500);font-family:var(--gp-font-mono);}

/* ===========================
   FAQ
   =========================== */
.gp-faq-list{border-top:1px solid var(--gp-line);}
details.gp-faq-item{border-bottom:1px solid var(--gp-line);padding:22px 0;}
details.gp-faq-item summary{
  cursor:pointer;list-style:none;display:flex;justify-content:space-between;
  gap:20px;align-items:center;font-weight:700;color:var(--gp-ink-100);font-size:1.02rem;
}
details.gp-faq-item summary::-webkit-details-marker{display:none;}
details.gp-faq-item summary::after{
  content:'+';font-family:var(--gp-font-mono);font-size:1.4rem;color:var(--gp-amber);
  flex-shrink:0;transition:transform .2s ease;
}
details.gp-faq-item[open] summary::after{transform:rotate(45deg);}
details.gp-faq-item .gp-faq-a{margin-top:16px;color:var(--gp-ink-300);font-size:0.95rem;max-width:760px;}

/* ===========================
   FINAL CTA
   =========================== */
.gp-final-cta{
  border-radius:var(--gp-radius-l);padding:70px 44px;text-align:center;
  background:radial-gradient(ellipse at 50% -10%, rgba(255,178,56,0.14), transparent 60%), var(--gp-bg-panel);
  border:1px solid var(--gp-line-strong);
}

.gp-cta-wordmark{
  display:block;max-width:240px;width:60%;height:auto;
  margin:0 auto 22px;opacity:0.95;
}

.gp-final-cta h2{font-size:clamp(1.7rem,4vw,2.6rem);max-width:680px;margin:0 auto;}
.gp-final-cta p{margin-top:20px;color:var(--gp-ink-300);max-width:520px;margin-left:auto;margin-right:auto;}
.gp-final-cta .gp-hero-cta{justify-content:center;margin-top:36px;}
.gp-fine-print{margin-top:26px;font-size:0.78rem;color:var(--gp-ink-700);font-family:var(--gp-font-mono);}

/* ===========================
   スクロールリビール
   =========================== */
.gp-reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--gp-ease), transform .8s var(--gp-ease);}
.gp-reveal.gp-in{opacity:1;transform:none;}

/* 進捗バー（JSで生成） */
.gp-progress-bar{
  position:fixed;top:0;left:0;height:2px;width:0%;z-index:10000;
  background:linear-gradient(90deg, var(--gp-amber), var(--gp-teal));
  transition:width .1s linear;pointer-events:none;
}

/* ===========================
   レスポンシブ微調整
   =========================== */
@media (max-width:640px){
  .gp-header__inner{padding:0 20px;}
  .gp-hero{padding-top:calc(var(--gp-header-h) + 32px);}
}
