/* ===== HERO ===== */
#hero {
  min-height: 100vh;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 120px 100px 80px;
  position: relative;
  overflow: hidden;
  background: #F0F7FF;
}
#hero::before {
  content: '';
  position: absolute;
  top: -300px; left: -200px;
  width: 800px; height: 800px;
  background: radial-gradient(circle, rgba(14,165,233,0.10) 0%, transparent 65%);
  pointer-events: none;
}
#hero::after {
  content: '';
  position: absolute;
  bottom: -250px; right: -150px;
  width: 700px; height: 700px;
  background: radial-gradient(circle, rgba(124,58,237,0.09) 0%, transparent 65%);
  pointer-events: none;
}

/* ── Hero grid noise overlay ── */
#hero .hero-inner {
  position: relative;
  z-index: 1;
  max-width: 1400px;
  width: 100%;
  margin: 0 auto;
  text-align: left;
}

/* eyebrow */
.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(14,165,233,0.10);
  border: 1px solid rgba(14,165,233,0.30);
  border-radius: 100px;
  padding: 6px 18px;
  font-size: 13px;
  font-weight: 700;
  color: #7DD3FC;
  letter-spacing: 0.3px;
  margin-bottom: 24px;
}
.hero-eyebrow-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: #0EA5E9;
  box-shadow: 0 0 8px rgba(14,165,233,0.8);
  animation: pulse-dot 2s infinite;
  flex-shrink: 0;
}
@keyframes pulse-dot {
  0%,100% { opacity:1; transform:scale(1); }
  50% { opacity:0.5; transform:scale(1.4); }
}
.hero-eyebrow-sep { color: rgba(14,165,233,0.35); font-weight:400; }

/* h1 */
.hero-h1 {
  font-size: clamp(44px, 6vw, 80px);
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: -0.03em;
  margin-bottom: 12px;
  color: var(--text1);
}

/* ヒーローH1 行ごとスタイル */
.hero-h1-lead {
  font-size: clamp(18px, 2.2vw, 26px);
  font-weight: 700;
  color: var(--text2);
  letter-spacing: 0.01em;
  display: block;
  margin-bottom: 2px;
}
.hero-h1-mid {
  font-size: clamp(26px, 3.5vw, 42px);
  font-weight: 900;
  color: var(--text1);
  display: block;
  margin-bottom: 2px;
}
.grad-text {
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.grad-text2 {
  background: linear-gradient(90deg, #38BDF8, #A78BFA);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* sub copy */
.hero-sub {
  font-size: clamp(15px, 2vw, 18px);
  color: var(--text2);
  line-height: 1.85;
  margin-bottom: 36px;
}
.hero-sub strong { color: var(--text1); }

/* CTA */
.hero-cta-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-bottom: 48px;
}
.btn-lg {
  padding: 18px 40px !important;
  font-size: 17px !important;
  border-radius: 12px !important;
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  box-shadow: 0 8px 32px rgba(14,165,233,0.4) !important;
}
.btn-lg:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 12px 40px rgba(14,165,233,0.6) !important;
}
.hero-cta-note {
  font-size: 13px;
  color: var(--text3);
}

/* stats strip */
.hero-stats {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 16px;
  padding: 24px 16px;
  margin-bottom: 16px;
}
.hero-stat-item {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  padding: 8px 28px;
}
.hero-stat-num {
  font-size: clamp(28px, 4vw, 40px);
  font-weight: 900;
  color: #fff;
  letter-spacing: -0.02em;
  line-height: 1;
}
.hero-stat-unit {
  font-size: 14px;
  font-weight: 700;
  color: var(--accent);
}
.hero-stat-label {
  font-size: 12px;
  color: var(--text3);
  line-height: 1.5;
  text-align: left;
}
.hero-stat-label small {
  font-size: 11px;
  color: rgba(100,116,139,0.7);
}
.hero-stat-div {
  width: 1px;
  height: 40px;
  background: rgba(255,255,255,0.10);
  flex-shrink: 0;
}
.hero-footnote {
  font-size: 11px;
  color: rgba(255,255,255,0.25);
  text-align: left;
}

/* cta-group 汎用 */
.cta-group {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  justify-content: center;
  margin-bottom: 40px;
}
.btn-primary {
  background: var(--grad);
  color: #fff; border: none;
  padding: 16px 32px; border-radius: 10px;
  font-size: 15px; font-weight: 800;
  cursor: pointer; transition: all .25s;
  text-decoration: none; display: inline-block;
  box-shadow: 0 4px 20px rgba(14,165,233,0.3);
}
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 30px rgba(14,165,233,0.5); }
.btn-outline {
  background: transparent;
  color: var(--text1);
  border: 1.5px solid rgba(255,255,255,0.25);
  padding: 16px 32px; border-radius: 10px;
  font-size: 15px; font-weight: 700;
  cursor: pointer; transition: all .25s;
  text-decoration: none; display: inline-block;
}
.btn-outline:hover { border-color: var(--accent); color: var(--accent); }

/* hero-trust-row（旧互換） */
.hero-trust-row { display: flex; flex-wrap: wrap; gap: 12px; margin: 12px 0 4px; justify-content: center; }
.hero-trust-item { font-size: 13px; color: var(--text2); font-weight: 600; }

/* Mobile */
@media (max-width: 600px) {
  #hero { padding: 80px 20px 48px; min-height: auto; }
  /* hero-h1: inline CSS で管理 */
  .hero-eyebrow { font-size: 11px; padding: 5px 14px; flex-wrap: wrap; justify-content: flex-start; gap: 6px; background:#0EA5E9; }
  .hero-stats { gap: 0; padding: 12px 6px; }
  .hero-stat-item { padding: 8px 10px; }
  .hero-stat-div { height: 30px; }
}

/* ===== SECTION共通 ===== */
.section{padding:96px 64px}
.section-dark{background:var(--bg-1);color:var(--text1)}.section-dark strong{color:var(--text1)}.section-dark h2,.section-dark h3,.section-dark h4{color:var(--text1)}

/* ===== 危機訴求セクション（明るい白背景） ===== */
.section-crisis {
  background: #F8FAFC;
  color: #1E293B;
}
.section-crisis .sec-title {
  color: #0F172A !important;
}
.section-crisis .red-text {
  color: #DC2626 !important;
}
.section-crisis .sec-sub {
  color: #475569 !important;
}
/* トレンドカード（白背景上） */
.section-crisis .trend-cards {
  gap: 16px;
}
.section-crisis .trend-card {
  background: #fff !important;
  border: 1.5px solid #E2E8F0 !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.07);
}
.section-crisis .trend-card .trend-icon {
  color: #0EA5E9;
}
.section-crisis .trend-card h4 {
  color: #1E293B !important;
}
.section-crisis .trend-card p {
  color: #64748B !important;
}
/* フロー比較図 */
.section-crisis .flow-col-title {
  color: #1E293B !important;
}
.section-crisis .old-title {
  color: #94A3B8 !important;
}
.section-crisis .new-title {
  color: #0EA5E9 !important;
}
.section-crisis .flow-step.old-step {
  background: #F1F5F9 !important;
  border-color: #CBD5E1 !important;
  color: #64748B !important;
}
.section-crisis .flow-step.new-step {
  background: #EFF6FF !important;
  border-color: rgba(14,165,233,0.4) !important;
  color: #1E293B !important;
}
.section-crisis .flow-arrow {
  color: #94A3B8 !important;
}
.section-crisis .flow-arrow.new-arr {
  color: #0EA5E9 !important;
}
.section-crisis .flow-warning {
  background: rgba(239,68,68,0.08) !important;
  border: 1px solid rgba(239,68,68,0.25) !important;
  color: #DC2626 !important;
}
.section-crisis .vs-badge {
  background: linear-gradient(135deg,#0EA5E9,#7C3AED) !important;
  color: #fff !important;
}
/* バーチャートエリア */
.section-crisis .bar-chart {
  background: #fff !important;
  border: 1.5px solid #E2E8F0 !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}
.section-crisis .chart-title {
  color: #334155 !important;
}
.section-crisis .bar-label {
  color: #64748B !important;
}
.section-crisis .bar-note {
  color: #94A3B8 !important;
}
/* CTAリンクボタン */
.section-crisis .btn-outline {
  border-color: #0EA5E9 !important;
  color: #0EA5E9 !important;
}
.section-crisis .btn-outline:hover {
  background: #0EA5E9 !important;
  color: #fff !important;
}

.section-light{background:var(--bg-light)}

/* ===== 危機訴求セクション（明るい白背景） ===== */
.section-crisis {
  background: #F8FAFC;
  color: #1E293B;
}
.section-crisis .sec-title {
  color: #0F172A !important;
}
.section-crisis .red-text {
  color: #DC2626 !important;
}
.section-crisis .sec-sub {
  color: #475569 !important;
}
/* トレンドカード（白背景上） */
.section-crisis .trend-cards {
  gap: 16px;
}
.section-crisis .trend-card {
  background: #fff !important;
  border: 1.5px solid #E2E8F0 !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.07);
}
.section-crisis .trend-card .trend-icon {
  color: #0EA5E9;
}
.section-crisis .trend-card h4 {
  color: #1E293B !important;
}
.section-crisis .trend-card p {
  color: #64748B !important;
}
/* フロー比較図 */
.section-crisis .flow-col-title {
  color: #1E293B !important;
}
.section-crisis .old-title {
  color: #94A3B8 !important;
}
.section-crisis .new-title {
  color: #0EA5E9 !important;
}
.section-crisis .flow-step.old-step {
  background: #F1F5F9 !important;
  border-color: #CBD5E1 !important;
  color: #64748B !important;
}
.section-crisis .flow-step.new-step {
  background: #EFF6FF !important;
  border-color: rgba(14,165,233,0.4) !important;
  color: #1E293B !important;
}
.section-crisis .flow-arrow {
  color: #94A3B8 !important;
}
.section-crisis .flow-arrow.new-arr {
  color: #0EA5E9 !important;
}
.section-crisis .flow-warning {
  background: rgba(239,68,68,0.08) !important;
  border: 1px solid rgba(239,68,68,0.25) !important;
  color: #DC2626 !important;
}
.section-crisis .vs-badge {
  background: linear-gradient(135deg,#0EA5E9,#7C3AED) !important;
  color: #fff !important;
}
/* バーチャートエリア */
.section-crisis .bar-chart {
  background: #fff !important;
  border: 1.5px solid #E2E8F0 !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}
.section-crisis .chart-title {
  color: #334155 !important;
}
.section-crisis .bar-label {
  color: #64748B !important;
}
.section-crisis .bar-note {
  color: #94A3B8 !important;
}
/* CTAリンクボタン */
.section-crisis .btn-outline {
  border-color: #0EA5E9 !important;
  color: #0EA5E9 !important;
}
.section-crisis .btn-outline:hover {
  background: #0EA5E9 !important;
  color: #fff !important;
}

.section-light{color:#1E293B}
.section-light h1,.section-light h2,.section-light h3,.section-light h4,.section-light h5,.section-light h6,.section-light .sec-title{color:#0F172A !important;-webkit-text-fill-color:#0F172A !important}
.section-light p,.section-light li,.section-light span,.section-light div,.section-light .body-text,.section-light .sec-sub,.section-light label{color:#334155 !important}
.section-light .text-sub{color:#64748B !important}
.section-light .grad-text{color:transparent !important;-webkit-text-fill-color:transparent !important;background:var(--grad);-webkit-background-clip:text;background-clip:text}
.section-light .btn-primary{color:#fff !important;-webkit-text-fill-color:#fff !important}
.section-light .btn-outline{color:#0F172A !important;-webkit-text-fill-color:#0F172A !important;border-color:#0EA5E9}
.section-light .btn-outline:hover{color:#0EA5E9 !important;-webkit-text-fill-color:#0EA5E9 !important}
.section-light .accent-text,.section-light .highlight{color:#0EA5E9 !important;-webkit-text-fill-color:#0EA5E9 !important}
.section-light .faq-q-text{color:#1E293B !important}
.section-light .faq-a{color:#475569 !important}
.section-light .worry-card h4{color:#1E293B !important}
.section-light .worry-card p{color:#64748B !important}
.section-light .insight-box p{color:#1E293B !important}
.section-light .aima-item h4{color:#1E293B !important}
.section-light .aima-item p{color:#475569 !important}
.section-light .step-text h4{color:#fff !important}
.section-light .step-text p{color:rgba(255,255,255,0.8) !important}
.section-light .aima-num{color:#fff !important;-webkit-text-fill-color:#fff !important}
.section-light .aima-num.gold{color:#78350F !important;-webkit-text-fill-color:#78350F !important}
.section-light .q-axis-y,.section-light .q-axis-x,.section-light .q-dot-label{color:#64748B !important}
.section-light .sec-sub{color:#64748B !important}
.sec-title{
  font-size:clamp(26px,3.5vw,44px);
  font-weight:900;line-height:1.25;
  margin-bottom:12px;
}
.sec-sub{font-size:15px;color:var(--text2);margin-bottom:48px}
.grad-text{
  background:var(--grad);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.red-text{color:var(--red) !important;-webkit-text-fill-color:var(--red)}
.accent-text{color:var(--accent)}
.center{text-align:center}
.container{max-width:1100px;margin:0 auto}

/* ===== アニメーション ===== */
.fade-up{opacity:0;transform:translateY(32px);transition:opacity .7s ease,transform .7s ease}
.fade-up.visible{opacity:1;transform:translateY(0)}
.fade-in{opacity:0;transition:opacity .8s ease}
.fade-in.visible{opacity:1}

/* ===== SECTION 2: 危機訴求 ===== */
.flow-compare{
  display:grid;grid-template-columns:1fr 80px 1fr;
  gap:24px;align-items:start;
  margin-bottom:48px;
}
.flow-col-title{
  font-size:13px;font-weight:700;
  letter-spacing:.1em;
  padding:6px 16px;border-radius:4px;
  margin-bottom:16px;text-align:center;
}
.old-title{background:rgba(100,116,139,0.2);color:var(--text3)}
.new-title{background:rgba(14,165,233,0.15);color:var(--accent)}
.flow-step{
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:8px;padding:10px 14px;
  font-size:13px;text-align:center;
  color:var(--text2);margin-bottom:4px;
  position:relative;
}
.flow-step.old-step{background:rgba(30,42,60,0.5);border-color:rgba(100,116,139,0.2);color:var(--text3)}
.flow-step.new-step{border-color:rgba(14,165,233,0.3);color:var(--text1)}
.flow-arrow{text-align:center;color:var(--text3);font-size:18px;line-height:1;padding:4px 0}
.flow-arrow.new-arr{color:var(--accent)}
.vs-col{display:flex;align-items:center;justify-content:center}
.vs-badge{
  width:56px;height:56px;
  border-radius:50%;
  background:var(--grad);
  display:flex;align-items:center;justify-content:center;
  font-size:15px;font-weight:900;
  box-shadow:var(--glow);
  margin-top:60px;
}
.flow-warning{
  background:rgba(239,68,68,0.1);
  border:1px solid rgba(239,68,68,0.4);
  border-radius:8px;padding:10px 14px;
  font-size:12px;color:#FCA5A5;
  text-align:center;margin-top:4px;
  display:flex;align-items:center;gap:8px;justify-content:center;
}
.trend-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:48px}
.trend-card{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:12px;padding:24px;
  display:flex;flex-direction:column;gap:12px;
  transition:transform .3s,box-shadow .3s;
}
.trend-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,0.4)}
.trend-card .t-icon{
  width:44px;height:44px;
}
.trend-card h4{font-size:14px;font-weight:700;color:var(--text1)}
.trend-card p{font-size:13px;color:var(--text2)}

/* ===== グラフ（図②） ===== */
.bar-chart{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:16px;padding:28px 24px;
  margin-bottom:32px;
}
.chart-title{font-size:14px;font-weight:700;color:var(--text2);margin-bottom:24px;text-align:center}
.bars-wrap{display:flex;align-items:flex-end;gap:12px;height:160px;padding-bottom:4px}
.bar-item{display:flex;flex-direction:column;align-items:center;flex:1;gap:6px}
.bar-item label{font-size:11px;color:var(--text3);order:2}
.bar-fill{width:100%;border-radius:6px 6px 0 0;transition:height 1.2s ease;position:relative}
.bar-fill span{
  position:absolute;top:-22px;left:50%;transform:translateX(-50%);
  font-size:11px;font-weight:700;white-space:nowrap;
}
.chart-note{text-align:center;font-size:12px;color:var(--text3);margin-top:16px;font-style:italic}

/* ===== SECTION 3: 共感 ===== */
.worry-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:36px}
.worry-card{
  background:#fff;
  border:1.5px solid #E2E8F0;
  border-radius:12px;padding:20px 20px 20px 24px;
  position:relative;
  box-shadow:0 2px 12px rgba(0,0,0,0.06);
  transition:box-shadow .2s;
}
.worry-card:hover{box-shadow:0 6px 24px rgba(0,0,0,0.12)}
.worry-card::before{
  content:'';
  position:absolute;top:20px;left:0;
  width:4px;height:32px;
  background:var(--grad);
  border-radius:0 4px 4px 0;
}
.worry-icon{
  width:20px;height:20px;margin-bottom:8px;
  color:#94A3B8;
}
.worry-card h4{font-size:14px;font-weight:700;color:#1E293B;margin-bottom:4px}
.worry-card p{font-size:13px;color:#64748B}
.insight-box{
  background:#fff;
  border:2px solid #F59E0B;
  border-radius:12px;padding:24px 28px;
  box-shadow:0 4px 20px rgba(245,158,11,0.15);
}
.insight-box p{font-size:15px;font-weight:700;color:#1E293B;line-height:1.7}
.insight-box .highlight{color:var(--accent);font-weight:900}

/* ===== SECTION 4: ポジション ===== */
.position-wrap{display:grid;grid-template-columns:1fr;gap:48px;align-items:center}
.position-copy h3{font-size:17px;font-weight:700;color:var(--text2);margin-bottom:12px}
.position-copy .big-claim{
  font-size:22px;font-weight:900;line-height:1.5;
  color:var(--text1);margin-bottom:16px;
}
.position-copy .big-claim .grad-text{font-size:24px}
.position-copy p{font-size:14px;color:var(--text2);margin-bottom:8px;line-height:1.8}

/* 4象限マップ */
.quadrant-map{
  position:relative;width:100%;aspect-ratio:1;
  max-width:400px;margin:0 auto;
}
.q-grid{
  display:grid;grid-template-columns:1fr;
  grid-template-rows:1fr 1fr;
  width:100%;height:100%;
  border:1.5px solid rgba(14,165,233,0.3);
  border-radius:8px;overflow:hidden;
}
.q-cell{
  border:1px solid rgba(14,165,233,0.15);
  padding:8px;
}
.q-cell.highlight{
  background:rgba(245,158,11,0.07);
  border-color:rgba(245,158,11,0.3);
}
.q-axis-y{
  position:absolute;left:-48px;top:50%;
  transform:rotate(-90deg) translateX(50%);
  font-size:12px;color:var(--text3);font-weight:600;
  letter-spacing:.05em;white-space:nowrap;
}
.q-axis-x{
  position:absolute;bottom:-28px;left:50%;
  transform:translateX(-50%);
  font-size:12px;color:var(--text3);font-weight:600;
  letter-spacing:.05em;
}
.q-arrow-y{
  position:absolute;left:50%;top:-12px;
  border-left:1.5px solid rgba(14,165,233,0.3);
  height:calc(100% + 24px);
  transform:translateX(-50%);
  pointer-events:none;
}
.q-arrow-x{
  position:absolute;top:50%;left:-12px;
  border-top:1.5px solid rgba(14,165,233,0.3);
  width:calc(100% + 24px);
  transform:translateY(-50%);
  pointer-events:none;
}
.q-dot{
  position:absolute;
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:10px;font-weight:700;
  white-space:nowrap;
  transform:translate(-50%,-50%);
}
.q-dot-label{
  position:absolute;
  font-size:10px;font-weight:600;
  white-space:nowrap;
  transform:translateX(-50%);
  top:calc(100% + 4px);
  left:50%;
}
.q-comp1{
  width:36px;height:36px;
  background:rgba(100,116,139,0.3);border:2px solid #64748B;
  left:28%;bottom:22%;
}
.q-comp1 .q-dot-label{color:#64748B}
.q-comp2{
  width:36px;height:36px;
  background:rgba(100,116,139,0.3);border:2px solid #64748B;
  right:26%;bottom:38%;
}
.q-comp2 .q-dot-label{color:#64748B}
.q-star{
  width:52px;height:52px;
  background:var(--gold);border:none;
  right:20%;top:20%;
  box-shadow:0 0 24px rgba(245,158,11,0.6);
  font-size:20px;
}
.q-star .q-dot-label{color:var(--gold);font-size:11px;font-weight:900;top:calc(100% + 6px)}
.q-label-lo{font-size:10px;color:var(--text3);position:absolute}
.q-lo-left{left:4px;bottom:4px}
.q-lo-right{right:4px;bottom:4px}
.q-hi-left{left:4px;top:4px}
.q-hi-right{right:4px;top:4px}

/* ===== SECTION 5: AIMA5 ===== */
.aima-wrap{display:grid;grid-template-columns:1fr;gap:48px;align-items:center}
.funnel-area{position:relative;padding:0 20px}
.funnel-step{
  margin:0 auto 6px;
  border-radius:6px;
  padding:12px 16px;
  display:flex;align-items:center;gap:12px;
  position:relative;
  transition:transform .2s;
}
.funnel-step:hover{transform:scaleX(1.02)}
.step-num{
  width:26px;height:26px;border-radius:50%;
  background:rgba(255,255,255,0.2);
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:900;flex-shrink:0;
  color:#fff;
}
.step-text{flex:1}
.step-text h4{font-size:13px;font-weight:800;color:#fff;margin-bottom:2px;word-break:break-word;overflow-wrap:break-word}
.step-text p{font-size:11px;color:rgba(255,255,255,0.75)}
.f-s1{width:65%;background:linear-gradient(90deg,#0EA5E9,#0EA5E9cc)}
.f-s2{width:75%;background:linear-gradient(90deg,#1A96D4,#1A96D4cc)}
.f-s3{width:85%;background:linear-gradient(90deg,#4B6DB8,#4B6DB8cc)}
.f-s4{width:92%;background:linear-gradient(90deg,#6D4FB0,#6D4FB0cc)}
.f-s5{width:100%;background:linear-gradient(90deg,#F59E0B,#F59E0Bcc)}

.other-stop{
  position:absolute;right:8px;
  display:flex;align-items:center;gap:4px;
  font-size:10px;font-weight:700;color:var(--red);
  white-space:nowrap;
}
.stop-line{width:14px;height:2px;background:var(--red)}

.aima-desc{display:flex;flex-direction:column;gap:16px}
.aima-item{
  display:flex;gap:12px;align-items:flex-start;
  padding:14px 16px;
  background:rgba(14,165,233,0.05);
  border:1px solid rgba(14,165,233,0.15);
  border-radius:10px;
  transition:border-color .2s;
}
.aima-item:hover{border-color:rgba(14,165,233,0.4)}
.aima-item:last-child{
  background:rgba(245,158,11,0.08);
  border-color:rgba(245,158,11,0.3);
}
.aima-num{
  width:28px;height:28px;border-radius:6px;
  background:var(--grad);
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:900;flex-shrink:0;
}
.aima-num.gold{background:linear-gradient(135deg,#F59E0B,#FCD34D);color:#78350F}
.aima-item h4{font-size:13px;font-weight:700;color:var(--text1);margin-bottom:2px}
.aima-item p{font-size:12px;color:var(--text3)}

/* ===== SECTION 6: 施策 ===== */
.施策-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:40px}
.measure-card{
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:14px;padding:24px;
  transition:transform .3s,box-shadow .3s,border-color .3s;
}
.measure-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--glow);
  border-color:var(--accent);
}
.m-icon{width:48px;height:48px;margin-bottom:16px}
.measure-card h4{font-size:15px;font-weight:700;color:var(--text1);margin-bottom:6px}
.measure-card p{font-size:13px;color:var(--text3)}
.measure-card .m-badge{
  display:inline-block;
  background:rgba(14,165,233,0.1);
  border:1px solid rgba(14,165,233,0.3);
  border-radius:4px;padding:2px 8px;
  font-size:11px;color:var(--accent);
  margin-bottom:10px;
}

/* レーダーチャート */
.radar-wrap{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:16px;padding:32px;
  display:grid;grid-template-columns:1fr;gap:32px;align-items:center;
}
.radar-svg{width:100%;max-width:280px}
.radar-legend{display:flex;flex-direction:column;gap:12px}
.legend-item{display:flex;align-items:center;gap:10px;font-size:13px}
.legend-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0}

/* ===== SECTION 7: 比較 ===== */
.compare-table-wrap{overflow-x:auto;border-radius:16px}
.compare-table{width:100%;border-collapse:collapse;font-size:14px}
.compare-table th{
  padding:16px 20px;font-size:13px;font-weight:700;
  text-align:center;background:#1E293B;color:#F1F5F9;
  border-bottom:2px solid #2D3748;
}
.compare-table th.highlight-col{
  background:rgba(245,158,11,0.08);
  color:var(--gold2);
  border-bottom:2px solid var(--gold);
  position:relative;
}
.compare-table th.highlight-col .rec-badge{
  position:absolute;top:-14px;left:50%;transform:translateX(-50%);
  background:var(--gold);color:#78350F;
  font-size:10px;font-weight:900;
  padding:3px 12px;border-radius:20px;white-space:nowrap;
}
.compare-table td{
  padding:14px 20px;text-align:center;
  border-bottom:1px solid #E2E8F0;
  color:#334155;background:#F8FAFC;
}
.compare-table td.highlight-col{
  background:rgba(245,158,11,0.08);
  border-left:1px solid rgba(245,158,11,0.3);
  border-right:1px solid rgba(245,158,11,0.3);
  color:#78350F;
}
.compare-table tr:last-child td.highlight-col{border-bottom:2px solid var(--gold)}
.compare-table td:first-child{text-align:left;font-weight:600;color:#0F172A}
.mark-best{color:#0284C7;font-size:18px;font-weight:900}
.mark-good{color:#2563EB;font-size:16px}
.mark-mid{color:#64748B;font-size:16px}
.mark-bad{color:#9CA3AF;font-size:16px}

/* ===== SECTION 8: 成果 ===== */
.results-numbers{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
  margin-bottom:48px;
}
.result-num{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:14px;padding:28px;text-align:center;
  transition:transform .3s;
}
.result-num:hover{transform:translateY(-4px);box-shadow:var(--glow)}
.num-value{
  font-size:clamp(40px,5vw,64px);font-weight:900;
  background:var(--grad);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;line-height:1;
}
.num-unit{font-size:20px;font-weight:700;display:inline;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.num-label{font-size:13px;color:var(--text3);margin-top:8px}

/* BA Graph */
.ba-chart{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:16px;padding:32px;
}
.ba-title{font-size:14px;font-weight:700;color:var(--text2);margin-bottom:24px;text-align:center}
.ba-groups{display:flex;gap:40px;align-items:flex-end;justify-content:center;height:180px}
.ba-group{display:flex;flex-direction:column;align-items:center;gap:8px}
.ba-bars{display:flex;gap:8px;align-items:flex-end;height:140px}
.ba-bar{
  width:36px;border-radius:4px 4px 0 0;
  position:relative;transition:height 1.4s ease;
}
.ba-bar .ba-val{
  position:absolute;top:-20px;left:50%;transform:translateX(-50%);
  font-size:11px;font-weight:700;white-space:nowrap;
}
.ba-before{background:rgba(100,116,139,0.5)}
.ba-after{background:linear-gradient(180deg,#0EA5E9,#7C3AED)}
.ba-label{font-size:12px;color:var(--text3);text-align:center}
.ba-legend{display:flex;gap:20px;justify-content:center;margin-top:16px}
.ba-legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text3)}
.ba-legend-dot{width:12px;height:12px;border-radius:3px}

/* ===== SECTION 9: 計測 ===== */
.dashboard-wrap{
  background:#0d1117;border-radius:16px;
  border:1px solid #30363d;overflow:hidden;
  box-shadow:0 20px 60px rgba(0,0,0,0.5);
  max-width:720px;margin:0 auto;
}
.dash-titlebar{
  background:#161b22;border-bottom:1px solid #30363d;
  padding:12px 16px;display:flex;align-items:center;gap:8px;
}
.dash-dot{width:12px;height:12px;border-radius:50%}
.dash-red{background:#FF5F57}
.dash-yellow{background:#FFBD2E}
.dash-green{background:#28CA41}
.dash-url{
  flex:1;background:#0d1117;
  border:1px solid #30363d;border-radius:6px;
  padding:4px 12px;font-size:11px;color:#8B949E;
  margin-left:12px;text-align:center;
}
.dash-metrics{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:16px;padding:20px;
}
.dash-metric{
  background:#161b22;border:1px solid #30363d;
  border-radius:10px;padding:16px;
}
.dash-metric h5{font-size:11px;color:#8B949E;margin-bottom:8px;font-weight:600}
.dash-value{font-size:24px;font-weight:900;color:#E6EDF3;line-height:1}
.dash-change{font-size:12px;margin-top:4px;font-weight:600}
.up{color:#3FB950}
.dash-mini-bar{
  height:4px;background:#21262d;border-radius:2px;
  margin-top:8px;overflow:hidden;
}
.dash-mini-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,#0EA5E9,#7C3AED)}

/* ===== SECTION 10: 業種 ===== */
.industry-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.industry-card{
  background:var(--bg-card);border:1px solid var(--border);
  border-radius:12px;padding:24px 20px;
  display:flex;flex-direction:column;align-items:center;gap:12px;
  transition:transform .3s,border-color .3s;text-align:center;
}
.industry-card:hover{transform:translateY(-4px);border-color:var(--accent)}
.ind-icon{width:56px;height:56px}
.industry-card h4{font-size:14px;font-weight:700;color:var(--text1)}

/* ===== SECTION 11: 診断 ===== */
.diag-section{
  background:var(--grad);
  padding:96px 64px;text-align:center;
}
.diag-section h2{font-size:clamp(24px,3vw,40px);font-weight:900;color:#fff;margin-bottom:16px}
.diag-section p{font-size:16px;color:rgba(255,255,255,0.85);margin-bottom:36px}
.diag-list{
  display:flex;flex-wrap:wrap;gap:12px;
  justify-content:center;margin-bottom:40px;
}
.diag-item{
  background:rgba(255,255,255,0.12);
  border:1px solid rgba(255,255,255,0.25);
  border-radius:8px;padding:10px 16px;
  font-size:13px;color:#fff;font-weight:600;
  display:flex;align-items:center;gap:8px;
}
.btn-gold{
  background:linear-gradient(135deg,#F59E0B,#FCD34D);
  color:#78350F;border:none;
  padding:18px 40px;border-radius:10px;
  font-size:17px;font-weight:900;
  cursor:pointer;transition:all .3s;
  text-decoration:none;display:inline-block;
  box-shadow:0 6px 24px rgba(245,158,11,0.4);
}
.btn-gold:hover{transform:translateY(-3px);box-shadow:0 12px 36px rgba(245,158,11,0.6)}
.diag-note{font-size:12px;color:rgba(255,255,255,0.65);margin-top:12px}

/* ===== FAQ ===== */
.faq-list{display:flex;flex-direction:column;gap:12px;max-width:720px;margin:0 auto}
.faq-item{
  background:#fff;border:1.5px solid #E2E8F0;
  border-radius:12px;overflow:hidden;
  box-shadow:0 2px 8px rgba(0,0,0,0.04);
}
.faq-q{
  padding:18px 22px;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;
}
.faq-q-text{font-size:15px;font-weight:700;color:#1E293B}
.faq-icon{
  width:24px;height:24px;flex-shrink:0;
  background:var(--grad);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.faq-a{
  padding:0 22px 18px;font-size:14px;color:#475569;line-height:1.8;
  border-top:1px solid #F1F5F9;margin-top:0;
}

/* ===== 最終CTA ===== */
.final-cta{
  background:var(--bg-0);padding:96px 64px;text-align:center;
  position:relative;overflow:hidden;
}
.final-cta::before{
  content:'';position:absolute;
  top:50%;left:50%;transform:translate(-50%,-50%);
  width:600px;height:600px;
  background:radial-gradient(circle,rgba(124,58,237,0.12) 0%,transparent 60%);
  pointer-events:none;
}
.final-cta h2{
  font-size:clamp(32px,4vw,52px);font-weight:900;
  margin-bottom:12px;
}
.final-cta p{font-size:16px;color:var(--text2);margin-bottom:40px}
.final-btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}

/* ===== フッター ===== */
footer{
  background:#030711;
  border-top:1px solid var(--border);
  padding:24px 64px;
  display:flex;align-items:center;justify-content:space-between;
}
footer p{font-size:12px;color:var(--text3)}


/* サービス訴求コピー */
.hero-service-copy {
  font-size: clamp(18px, 2.5vw, 26px);
  font-weight: 800;
  line-height: 1.6;
  margin-bottom: 16px;
  letter-spacing: 0.02em;
}
@media(max-width:640px){
  .hero-service-copy { font-size: 18px; }
  #hero{min-height:auto;padding:80px 20px 48px}
}

/* ===== レスポンシブ ===== */
@media(max-width:900px){
  #hero{grid-template-columns:1fr;padding:100px 24px 60px;min-height:auto}
  .hero-right{display:none}
  .section{padding:64px 24px}
  .flow-compare{grid-template-columns:1fr 50px 1fr}
  .trend-cards{grid-template-columns:1fr}
  .worry-grid{grid-template-columns:1fr}
  .position-wrap{grid-template-columns:1fr}
  .aima-wrap{grid-template-columns:1fr}
  .施策-grid{grid-template-columns:1fr}
  .radar-wrap{grid-template-columns:1fr}
  .results-numbers{grid-template-columns:1fr}
  .industry-grid{grid-template-columns:repeat(2,1fr)}
  .diag-section{padding:64px 24px}
  .final-cta{padding:64px 24px}
  footer{flex-direction:column;gap:12px;text-align:center;padding:24px}
  nav{padding:0 20px}
  .nav-links{display:none}
}

/* ===== COMPREHENSIVE LIGHT SECTION TEXT VISIBILITY FIXES ===== */
/* Ensure ALL text in light sections is visible */
.section-light p,
.section-light li,
.section-light span,
.section-light div,
.section-light strong,
.section-light em,
.section-light a:not(.btn-primary):not(.btn-outline) {
  color: #334155 !important;
  -webkit-text-fill-color: #334155 !important;
}
/* But preserve gradient text */
.section-light .grad-text,
.section-light .grad-text span {
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
  background: var(--grad);
  -webkit-background-clip: text;
  background-clip: text;
}
/* Preserve funnel step content (has colored bg) */
.section-light .funnel-step .step-text h4,
.section-light .funnel-step .step-num,
.section-light .f-s1 *,
.section-light .f-s2 *,
.section-light .f-s3 *,
.section-light .f-s4 *,
.section-light .f-s5 * {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
.section-light .funnel-step .step-text p {
  color: rgba(255,255,255,0.85) !important;
  -webkit-text-fill-color: rgba(255,255,255,0.85) !important;
}
/* Preserve aima-num (has gradient bg) */
.section-light .aima-num {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
.section-light .aima-num.gold {
  color: #78350F !important;
  -webkit-text-fill-color: #78350F !important;
}
/* Dashboard in section-light has dark bg - override all text to be visible on dark bg */
.section-light .dash-value {
  color: #E6EDF3 !important;
  -webkit-text-fill-color: #E6EDF3 !important;
}
.section-light .dash-metric h5 {
  color: #8B949E !important;
  -webkit-text-fill-color: #8B949E !important;
}
.section-light .dash-change {
  color: #3FB950 !important;
  -webkit-text-fill-color: #3FB950 !important;
}
.section-light .dash-url {
  color: #8B949E !important;
  -webkit-text-fill-color: #8B949E !important;
}
/* Button colors */
.section-light .btn-primary {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
.section-light .btn-outline {
  color: #0F172A !important;
  -webkit-text-fill-color: #0F172A !important;
}
/* accent/highlight */
.section-light .accent-text,
.section-light .highlight {
  color: #0EA5E9 !important;
  -webkit-text-fill-color: #0EA5E9 !important;
}
/* FAQ icons have gradient bg - keep white */
.section-light .faq-icon svg line,
.section-light .faq-icon svg path {
  stroke: white;
}
/* Headings */
.section-light h1,
.section-light h2,
.section-light h3,
.section-light h4,
.section-light h5,
.section-light h6,
.section-light .sec-title {
  color: #0F172A !important;
  -webkit-text-fill-color: #0F172A !important;
}
/* sec-sub */
.section-light .sec-sub {
  color: #64748B !important;
  -webkit-text-fill-color: #64748B !important;
}
/* Compare table */
.section-light .compare-table th {
  background: #1E293B;
  color: #F1F5F9 !important;
  -webkit-text-fill-color: #F1F5F9 !important;
}
.section-light .compare-table td {
  color: #334155 !important;
  -webkit-text-fill-color: #334155 !important;
}
.section-light .compare-table td:first-child {
  color: #0F172A !important;
  -webkit-text-fill-color: #0F172A !important;
}
.section-light .mark-best {
  color: #0284C7 !important;
  -webkit-text-fill-color: #0284C7 !important;
}
.section-light .mark-mid {
  color: #64748B !important;
  -webkit-text-fill-color: #64748B !important;
}
.section-light .mark-bad {
  color: #9CA3AF !important;
  -webkit-text-fill-color: #9CA3AF !important;
}
/* ===== END FIXES ===== */




/* ===== 比較テーブル 上書き修正 ===== */
.compare-table-outer{padding-top:20px;overflow-x:auto;-webkit-overflow-scrolling:touch}
.compare-table-wrap{border-radius:16px;overflow:visible;min-width:560px}
.compare-table{width:100%;border-collapse:separate;border-spacing:0;font-size:14px}
.compare-table thead tr th{
  padding:16px 20px;font-size:13px;font-weight:700;text-align:center;
  background:#1E293B !important;color:#F1F5F9 !important;
  -webkit-text-fill-color:#F1F5F9 !important;border-bottom:2px solid #2D3748;
}
.compare-table thead tr th:first-child{text-align:left;border-radius:16px 0 0 0}
.compare-table thead tr th:last-child{border-radius:0 16px 0 0}
.compare-table thead tr th.highlight-col{
  background:linear-gradient(135deg,#1a2a4a,#1e3a5a) !important;
  color:#F59E0B !important;-webkit-text-fill-color:#F59E0B !important;
  border-bottom:2px solid #F59E0B;border-left:2px solid #F59E0B;
  border-right:2px solid #F59E0B;position:relative;font-size:14px;font-weight:800;
}
.compare-table th.highlight-col .rec-badge{
  position:absolute;top:-18px;left:50%;transform:translateX(-50%);
  background:linear-gradient(90deg,#F59E0B,#EAB308);color:#78350F;
  font-size:10px;font-weight:900;padding:3px 14px;border-radius:20px;
  white-space:nowrap;box-shadow:0 2px 6px rgba(245,158,11,0.5);
}
.compare-table tbody td{
  padding:14px 20px;text-align:center;border-bottom:1px solid #E2E8F0;
  color:#334155 !important;-webkit-text-fill-color:#334155 !important;
  background:#F8FAFC;
}
.compare-table tbody td:first-child{
  text-align:left;font-weight:600;
  color:#0F172A !important;-webkit-text-fill-color:#0F172A !important;
  background:#F1F5F9;
}
.compare-table tbody td.highlight-col{
  background:rgba(245,158,11,0.07) !important;
  border-left:2px solid rgba(245,158,11,0.4);
  border-right:2px solid rgba(245,158,11,0.4);
  color:#92400E !important;-webkit-text-fill-color:#92400E !important;
  font-weight:600;
}
.compare-table tbody tr:last-child td.highlight-col{border-bottom:2px solid #F59E0B}
.mark-best{color:#0EA5E9 !important;-webkit-text-fill-color:#0EA5E9 !important;font-size:16px;font-weight:900}
.mark-mid{color:#94A3B8 !important;-webkit-text-fill-color:#94A3B8 !important;font-size:16px}
.mark-bad{color:#CBD5E1 !important;-webkit-text-fill-color:#CBD5E1 !important;font-size:16px}
.section-light .compare-table thead th{
  background:#1E293B !important;color:#F1F5F9 !important;
  -webkit-text-fill-color:#F1F5F9 !important;
}
.section-light .compare-table thead th.highlight-col{
  background:linear-gradient(135deg,#1a2a4a,#1e3a5a) !important;
  color:#F59E0B !important;-webkit-text-fill-color:#F59E0B !important;
}


/* ===== 申し込みフォーム ===== */
.form-row{margin-bottom:20px}
.form-label{
  display:block;font-size:13px;font-weight:700;
  color:var(--text1);margin-bottom:8px;
}
.form-req{
  display:inline-block;background:linear-gradient(90deg,#EF4444,#DC2626);
  color:#fff;font-size:10px;font-weight:700;
  padding:2px 7px;border-radius:4px;margin-left:6px;vertical-align:middle;
}
.form-opt{
  display:inline-block;background:rgba(255,255,255,0.1);
  color:var(--text2);font-size:10px;font-weight:600;
  padding:2px 7px;border-radius:4px;margin-left:6px;vertical-align:middle;
}
.form-input{
  width:100%;padding:13px 16px;border-radius:10px;
  background:rgba(255,255,255,0.06);
  border:1.5px solid rgba(255,255,255,0.12);
  color:var(--text1);font-size:14px;
  transition:border-color .2s,box-shadow .2s;
  box-sizing:border-box;
  -webkit-text-fill-color:var(--text1);
}
.form-input::placeholder{color:rgba(255,255,255,0.3)}
.form-input:focus{
  outline:none;
  border-color:#0EA5E9;
  box-shadow:0 0 0 3px rgba(14,165,233,0.15);
}
.form-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2394A3B8' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}
.form-select option{background:#0F1A30;color:var(--text1)}
.form-textarea{resize:vertical;min-height:100px;line-height:1.6}
.btn-form-submit{
  display:flex;align-items:center;justify-content:center;
  width:100%;padding:18px 24px;
  background:linear-gradient(135deg,#E3138A 0%,#FF2D9A 48%,#FF5AB3 100%);
  color:#fff;font-size:17px;font-weight:800;
  border:none;border-radius:12px;cursor:pointer;
  box-shadow:0 14px 30px rgba(236,11,140,0.24),0 1px 0 rgba(255,255,255,0.16) inset;
  transition:transform .15s,box-shadow .15s;
  letter-spacing:0.5px;
}
.btn-form-submit:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 38px rgba(236,11,140,0.30),0 1px 0 rgba(255,255,255,0.18) inset;
}
@media(max-width:600px){
  #contact .container{padding:0 16px}
  #contact div.fade-up[style*="padding:44px"]{padding:28px 20px !important}
}


/* ===== 背景画像オーバーレイ調整 ===== */
/* section系は半透明ダークオーバーレイで画像を透かす */
.section{position:relative}
.section::before{
  content:'';
  position:absolute;inset:0;z-index:0;
  pointer-events:none;
}
.section > *{position:relative;z-index:1}
/* dark系セクションは暗め */
/* section-dark background override removed */
/* light系セクションは少し明るいオーバーレイ */

/* ===== 危機訴求セクション（明るい白背景） ===== */
.section-crisis {
  background: #F8FAFC;
  color: #1E293B;
}
.section-crisis .sec-title {
  color: #0F172A !important;
}
.section-crisis .red-text {
  color: #DC2626 !important;
}
.section-crisis .sec-sub {
  color: #475569 !important;
}
/* トレンドカード（白背景上） */
.section-crisis .trend-cards {
  gap: 16px;
}
.section-crisis .trend-card {
  background: #fff !important;
  border: 1.5px solid #E2E8F0 !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.07);
}
.section-crisis .trend-card .trend-icon {
  color: #0EA5E9;
}
.section-crisis .trend-card h4 {
  color: #1E293B !important;
}
.section-crisis .trend-card p {
  color: #64748B !important;
}
/* フロー比較図 */
.section-crisis .flow-col-title {
  color: #1E293B !important;
}
.section-crisis .old-title {
  color: #94A3B8 !important;
}
.section-crisis .new-title {
  color: #0EA5E9 !important;
}
.section-crisis .flow-step.old-step {
  background: #F1F5F9 !important;
  border-color: #CBD5E1 !important;
  color: #64748B !important;
}
.section-crisis .flow-step.new-step {
  background: #EFF6FF !important;
  border-color: rgba(14,165,233,0.4) !important;
  color: #1E293B !important;
}
.section-crisis .flow-arrow {
  color: #94A3B8 !important;
}
.section-crisis .flow-arrow.new-arr {
  color: #0EA5E9 !important;
}
.section-crisis .flow-warning {
  background: rgba(239,68,68,0.08) !important;
  border: 1px solid rgba(239,68,68,0.25) !important;
  color: #DC2626 !important;
}
.section-crisis .vs-badge {
  background: linear-gradient(135deg,#0EA5E9,#7C3AED) !important;
  color: #fff !important;
}
/* バーチャートエリア */
.section-crisis .bar-chart {
  background: #fff !important;
  border: 1.5px solid #E2E8F0 !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}
.section-crisis .chart-title {
  color: #334155 !important;
}
.section-crisis .bar-label {
  color: #64748B !important;
}
.section-crisis .bar-note {
  color: #94A3B8 !important;
}
/* CTAリンクボタン */
.section-crisis .btn-outline {
  border-color: #0EA5E9 !important;
  color: #0EA5E9 !important;
}
.section-crisis .btn-outline:hover {
  background: #0EA5E9 !important;
  color: #fff !important;
}

.section-light{background:rgba(240,244,248,0.92) !important}
/* heroは最もダイナミックに */
#hero{background:#F0F7FF !important}
/* contact のみダーク（trust / company は section-light なので除外） */
#contact{background:rgba(2,8,15,0.80) !important}
#trust{background:#F0F4F8 !important}
#company{background:#F0F4F8 !important}


/* section-light は完全不透明ホワイトで視認性確保 */

/* ===== 危機訴求セクション（明るい白背景） ===== */
.section-crisis {
  background: #F8FAFC;
  color: #1E293B;
}
.section-crisis .sec-title {
  color: #0F172A !important;
}
.section-crisis .red-text {
  color: #DC2626 !important;
}
.section-crisis .sec-sub {
  color: #475569 !important;
}
/* トレンドカード（白背景上） */
.section-crisis .trend-cards {
  gap: 16px;
}
.section-crisis .trend-card {
  background: #fff !important;
  border: 1.5px solid #E2E8F0 !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.07);
}
.section-crisis .trend-card .trend-icon {
  color: #0EA5E9;
}
.section-crisis .trend-card h4 {
  color: #1E293B !important;
}
.section-crisis .trend-card p {
  color: #64748B !important;
}
/* フロー比較図 */
.section-crisis .flow-col-title {
  color: #1E293B !important;
}
.section-crisis .old-title {
  color: #94A3B8 !important;
}
.section-crisis .new-title {
  color: #0EA5E9 !important;
}
.section-crisis .flow-step.old-step {
  background: #F1F5F9 !important;
  border-color: #CBD5E1 !important;
  color: #64748B !important;
}
.section-crisis .flow-step.new-step {
  background: #EFF6FF !important;
  border-color: rgba(14,165,233,0.4) !important;
  color: #1E293B !important;
}
.section-crisis .flow-arrow {
  color: #94A3B8 !important;
}
.section-crisis .flow-arrow.new-arr {
  color: #0EA5E9 !important;
}
.section-crisis .flow-warning {
  background: rgba(239,68,68,0.08) !important;
  border: 1px solid rgba(239,68,68,0.25) !important;
  color: #DC2626 !important;
}
.section-crisis .vs-badge {
  background: linear-gradient(135deg,#0EA5E9,#7C3AED) !important;
  color: #fff !important;
}
/* バーチャートエリア */
.section-crisis .bar-chart {
  background: #fff !important;
  border: 1.5px solid #E2E8F0 !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}
.section-crisis .chart-title {
  color: #334155 !important;
}
.section-crisis .bar-label {
  color: #64748B !important;
}
.section-crisis .bar-note {
  color: #94A3B8 !important;
}
/* CTAリンクボタン */
.section-crisis .btn-outline {
  border-color: #0EA5E9 !important;
  color: #0EA5E9 !important;
}
.section-crisis .btn-outline:hover {
  background: #0EA5E9 !important;
  color: #fff !important;
}

.section-light{
  background:#F0F4F8 !important;
  -webkit-text-fill-color:unset !important;
}
.section-light h2,.section-light h3,
.section-light p,.section-light li,
.section-light td,.section-light th{
  -webkit-text-fill-color:unset !important;
}
/* hero背景に青炎グラデをプラス */
#hero{
  background:#F0F7FF !important;
}
/* nav背景も透過させて画像を少し透かす */
.nav-bar{
  background:rgba(2,8,15,0.88) !important;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}


/* ===== HEROタグバッジ ===== */
.hero-tag-badge{
  display:inline-flex;align-items:center;gap:6px;
  background:linear-gradient(90deg,rgba(14,165,233,0.18),rgba(124,58,237,0.18));
  border:1.5px solid rgba(14,165,233,0.45);
  border-radius:40px;
  padding:6px 20px 6px 14px;
  font-size:clamp(14px,2vw,18px);
  font-weight:800;
  color:#E0F2FE;
  letter-spacing:1px;
  margin-bottom:12px;
  backdrop-filter:blur(6px);
}
.hero-tag-note{
  font-size:10px;
  font-weight:700;
  color:#7DD3FC;
  vertical-align:super;
  margin-left:1px;
}
/* H1本体はtagバッジの直後に大きく表示するため調整 */
/* hero-h1 size: inline CSS で管理 */


/* grad-text2: 青→紫のアクセント */
.grad-text2{
  background:linear-gradient(90deg,#38BDF8,#A78BFA);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}
.hero-tag-wrap{margin-bottom:8px}




/* ===== Hero Visual 3-Stack ===== */
/* ══ HERO VISUAL: Premium X-Clash 3 Cards ══ */
.hv-scene{
  position:relative;
  width:420px;height:440px;
  margin:0 auto;
  filter:drop-shadow(0 20px 60px rgba(0,0,0,0.5));
}

/* ── カード共通ベース ── */
.hv-card{
  position:absolute;
  width:220px;
  background:linear-gradient(145deg,rgba(6,14,30,0.97) 0%,rgba(10,20,44,0.95) 100%);
  border-radius:18px;
  overflow:hidden;
  backdrop-filter:blur(12px);
  transition:transform .3s ease, box-shadow .3s ease;
}
.hv-card:hover{transform:translateY(-6px) scale(1.02);}

/* ── カード①: SEO（左上） ── */
.hv-card-seo{
  top:0; left:0;
  border:1px solid rgba(239,68,68,0.35);
  box-shadow:0 0 30px rgba(239,68,68,0.18), inset 0 1px 0 rgba(255,255,255,.06);
}

/* ── カード②: MEO（右上） ── */
.hv-card-meo{
  top:0; right:0;
  border:1px solid rgba(52,211,153,0.35);
  box-shadow:0 0 30px rgba(52,211,153,0.18), inset 0 1px 0 rgba(255,255,255,.06);
}

/* ── カード③: AI（下中央） ── */
.hv-card-ai{
  bottom:0; left:50%; transform:translateX(-50%);
  border:1px solid rgba(14,165,233,0.45);
  box-shadow:0 0 40px rgba(14,165,233,0.28), inset 0 1px 0 rgba(255,255,255,.08);
  width:240px;
  z-index:3;
}
.hv-card-ai:hover{transform:translateX(-50%) translateY(-6px) scale(1.02);}

/* ── カードヘッダー ── */
.hv-card-header{
  display:flex;align-items:center;gap:8px;
  padding:10px 14px 8px;
  border-bottom:1px solid rgba(255,255,255,.05);
}
.hv-dots{display:flex;gap:5px;}
.hv-dots span{
  display:block;width:8px;height:8px;border-radius:50%;
  background:rgba(255,255,255,.18);
}
.hv-card-seo .hv-dots span:first-child{background:#F87171;}
.hv-card-meo .hv-dots span:first-child{background:#34D399;}
.hv-card-ai .hv-dots span:first-child{background:#38BDF8;}
.hv-url{
  font-size:9px;color:rgba(255,255,255,.35);
  letter-spacing:.4px;font-family:'Noto Sans JP',system-ui,-apple-system,sans-serif;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  max-width:140px;
}

/* ── カードボディ ── */
.hv-card-body{padding:12px 14px 14px;}

/* ── チャンネルタグ ── */
.hv-channel-tag{
  display:inline-block;
  font-size:9.5px;font-weight:700;letter-spacing:.6px;
  padding:3px 10px;border-radius:20px;
  margin-bottom:10px;
}
.hv-tag-red{background:rgba(239,68,68,.15);color:#F87171;border:1px solid rgba(239,68,68,.3);}
.hv-tag-green{background:rgba(52,211,153,.15);color:#34D399;border:1px solid rgba(52,211,153,.3);}
.hv-tag-blue{background:rgba(14,165,233,.15);color:#38BDF8;border:1px solid rgba(14,165,233,.3);}

/* ── SEO 結果行 ── */
.hv-result-row{
  display:flex;align-items:center;gap:8px;
  padding:6px 0;
  border-bottom:1px solid rgba(255,255,255,.04);
}
.hv-badge-out{
  font-size:9px;font-weight:800;color:#F87171;
  background:rgba(239,68,68,.12);
  border:1px solid rgba(239,68,68,.3);
  border-radius:6px;padding:2px 7px;
  white-space:nowrap;
}
.hv-result-title{font-size:10px;color:rgba(255,255,255,.75);font-weight:600;line-height:1.3;}
.hv-result-url{font-size:8.5px;color:rgba(255,255,255,.3);margin-top:1px;}

/* ── 統計行 ── */
.hv-stat-row{
  display:flex;align-items:center;gap:6px;
  margin-top:10px;
  padding:7px 10px;
  background:rgba(255,255,255,.04);
  border-radius:8px;
}
.hv-stat-icon{font-size:12px;}
.hv-stat-text{font-size:10px;color:rgba(255,255,255,.6);}

/* ── MEO マッププレビュー ── */
.hv-map-preview{
  border-radius:10px;overflow:hidden;margin-bottom:8px;
  border:1px solid rgba(52,211,153,.15);
}
.hv-map-name{font-size:11px;font-weight:700;color:#fff;margin-bottom:4px;}
.hv-stars{font-size:10px;color:#FCD34D;}
.hv-stars span{color:rgba(255,255,255,.8);}

/* ── AI チャット ── */
.hv-chat-q{
  font-size:10px;color:rgba(255,255,255,.55);
  background:rgba(255,255,255,.05);
  border-radius:10px 10px 10px 2px;
  padding:7px 10px;margin-bottom:8px;
  border:1px solid rgba(255,255,255,.06);
}
.hv-chat-a{
  font-size:10.5px;color:rgba(255,255,255,.85);
  background:rgba(14,165,233,.08);
  border-radius:2px 10px 10px 10px;
  padding:8px 10px;
  border:1px solid rgba(14,165,233,.2);
  line-height:1.5;
}
.hv-ai-name{
  font-weight:800;color:#38BDF8;
  border-bottom:1px dotted rgba(56,189,248,.4);
}
.hv-ai-badge{
  display:inline-block;
  margin-top:7px;
  font-size:9.5px;font-weight:700;
  color:#34D399;
  background:rgba(52,211,153,.1);
  border:1px solid rgba(52,211,153,.3);
  border-radius:20px;padding:3px 10px;
}

/* ── 中央 × グロー ── */
.hv-x-center{
  position:absolute;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  z-index:10;
  width:60px;height:60px;
}
.hv-x-ring{
  position:absolute;inset:-8px;
  border-radius:50%;
  border:1px solid rgba(239,68,68,.2);
  animation:xring 2.5s ease-in-out infinite;
}
.hv-x-ring2{
  position:absolute;inset:-20px;
  border-radius:50%;
  border:1px solid rgba(239,68,68,.1);
  animation:xring 2.5s ease-in-out infinite .6s;
}
.hv-x-bg{
  width:60px;height:60px;border-radius:50%;
  background:radial-gradient(circle,rgba(239,68,68,0.35) 0%,rgba(220,38,38,0.0) 70%);
  display:flex;align-items:center;justify-content:center;
}
.hv-x-icon{
  font-size:32px;font-weight:900;
  color:#F87171;
  text-shadow:0 0 20px rgba(239,68,68,0.9),0 0 40px rgba(239,68,68,0.5);
  line-height:1;
  font-family:'Noto Sans JP',system-ui,-apple-system,sans-serif;
}
/* connector lines */
.hv-connector{
  position:absolute;
  background:linear-gradient(90deg,transparent,rgba(239,68,68,0.35),transparent);
  height:1px;z-index:5;
}
.hv-conn-h{
  top:50%;left:18%;width:64%;
  transform:translateY(-50%);
}
.hv-conn-v{
  left:50%;top:12%;height:76%;width:1px;
  background:linear-gradient(180deg,transparent,rgba(239,68,68,0.35),transparent);
  transform:translateX(-50%);
}

@keyframes xring{
  0%,100%{opacity:.4;transform:scale(1);}
  50%{opacity:.8;transform:scale(1.06);}
}

/* ── 浮遊ラベル ── */
.hv-float-label{
  position:absolute;
  font-size:9px;font-weight:700;letter-spacing:.8px;
  color:rgba(255,255,255,.4);
  white-space:nowrap;
}
.hv-float-label.tl{top:-22px;left:10px;}
.hv-float-label.tr{top:-22px;right:10px;}
.hv-float-label.bc{bottom:-24px;left:50%;transform:translateX(-50%);}

@media(max-width:768px){
  .hv-scene{width:320px;height:360px;}
  .hv-card{width:170px;}
  .hv-card-ai{width:190px;}
  .hv-x-icon{font-size:26px;}
}




/* ===== HERO CLEAN v4 ===== */

/* hero section */
#hero {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 120px 100px 72px;
  position: relative;
  overflow: hidden;
  background: #F0F7FF;
}
#hero::before {
  content: '';
  position: absolute;
  top: -250px; left: -150px;
  width: 700px; height: 700px;
  background: radial-gradient(circle, rgba(14,165,233,0.10) 0%, transparent 65%);
  pointer-events: none;
}
#hero::after {
  content: '';
  position: absolute;
  bottom: -200px; right: -100px;
  width: 600px; height: 600px;
  background: radial-gradient(circle, rgba(124,58,237,0.09) 0%, transparent 65%);
  pointer-events: none;
}

/* hero inner wrapper */
.hero-inner {
  position: relative;
  z-index: 1;
  max-width: 760px;
  width: 100%;
  margin: 0 auto;
  text-align: center;
}

/* eyebrow pill */
.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(14,165,233,0.10);
  border: 1px solid rgba(14,165,233,0.28);
  border-radius: 100px;
  padding: 5px 16px;
  font-size: 12px;
  font-weight: 700;
  color: #7DD3FC;
  margin-bottom: 28px;
  flex-wrap: wrap;
  justify-content: center;
}
.hero-eyebrow-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #0EA5E9;
  box-shadow: 0 0 8px rgba(14,165,233,0.9);
  animation: pulse-dot 2s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes pulse-dot {
  0%,100% { opacity:1; transform:scale(1); }
  50%      { opacity:0.4; transform:scale(1.5); }
}
.hero-eyebrow-sep { color: rgba(14,165,233,0.30); }

/* H1 */
/* hero-h1 size: inline CSS で管理 */

/* ヒーローH1 行ごとスタイル */
.hero-h1-lead {
  font-size: clamp(18px, 2.2vw, 26px);
  font-weight: 700;
  color: var(--text2);
  letter-spacing: 0.01em;
  display: block;
  margin-bottom: 2px;
}
.hero-h1-mid {
  font-size: clamp(26px, 3.5vw, 42px);
  font-weight: 900;
  color: var(--text1);
  display: block;
  margin-bottom: 2px;
}
.grad-text {
  background: var(--grad);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.grad-text2 {
  background: linear-gradient(90deg, #38BDF8, #A78BFA);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* sub copy：1行のみ */
.hero-sub {
  font-size: clamp(14px, 1.6vw, 17px);
  color: var(--text2);
  line-height: 1.75;
  margin-bottom: 36px;
}
.hero-sub strong { color: #fff; }

/* CTA wrap */
.hero-cta-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin-bottom: 44px;
}
.btn-lg {
  padding: 17px 36px !important;
  font-size: 16px !important;
  border-radius: 10px !important;
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  box-shadow: 0 6px 28px rgba(14,165,233,0.40) !important;
  transition: all .25s !important;
}
.btn-lg:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 10px 36px rgba(14,165,233,0.55) !important;
}
.hero-cta-note {
  font-size: 12px;
  color: var(--text3);
}
.btn-primary {
  background: var(--grad);
  color: #fff; border: none;
  padding: 15px 30px; border-radius: 10px;
  font-size: 15px; font-weight: 800;
  cursor: pointer; transition: all .25s;
  text-decoration: none; display: inline-block;
  box-shadow: 0 4px 20px rgba(14,165,233,0.3);
}
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 30px rgba(14,165,233,0.5); }
.btn-outline {
  background: transparent;
  color: var(--text1);
  border: 1.5px solid rgba(255,255,255,0.25);
  padding: 15px 30px; border-radius: 10px;
  font-size: 15px; font-weight: 700;
  cursor: pointer; transition: all .25s;
  text-decoration: none; display: inline-block;
}
.btn-outline:hover { border-color: var(--accent); color: var(--accent); }

/* stats strip：1行固定 */
.hero-stats {
  display: flex;
  align-items: stretch;
  justify-content: center;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 14px;
  padding: 20px 8px;
  margin-bottom: 14px;
  gap: 0;
}
.hero-stat-item {
  flex: 1;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 4px 12px;
  min-width: 0;
}
.hero-stat-num {
  font-size: clamp(24px, 3.5vw, 36px);
  font-weight: 900;
  color: #fff;
  letter-spacing: -0.02em;
  line-height: 1;
  white-space: nowrap;
}
.hero-stat-unit {
  font-size: 13px;
  font-weight: 700;
  color: var(--accent);
}
.hero-stat-label {
  font-size: 11px;
  color: var(--text3);
  line-height: 1.5;
  text-align: left;
  white-space: nowrap;
}
.hero-stat-label small {
  font-size: 10px;
  color: rgba(100,116,139,0.65);
}
.hero-stat-div {
  width: 1px;
  background: rgba(255,255,255,0.09);
  flex-shrink: 0;
  align-self: stretch;
  margin: 4px 0;
}
.hero-footnote {
  font-size: 10px;
  color: rgba(255,255,255,0.20);
  text-align: center;
}

/* 汎用 */
.cta-group {
  display: flex; gap: 14px; flex-wrap: wrap;
  justify-content: center; margin-bottom: 40px;
}
.hero-trust-row { display:flex;flex-wrap:wrap;gap:12px;margin:12px 0 4px;justify-content:center; }
.hero-trust-item { font-size:13px;color:var(--text2);font-weight:600; }

/* モバイル */
@media (max-width: 640px) {
  #hero { padding: 80px 20px 48px; min-height: auto; }
  /* hero-h1: inline CSS で管理 */
  .hero-eyebrow { font-size: 11px; padding: 4px 12px; }
  .hero-stat-item { padding: 4px 8px; gap: 6px; }
  .hero-stat-num { font-size: clamp(20px, 5vw, 28px); }
  .hero-stat-label { white-space: normal; font-size: 10px; }
  .btn-lg { padding: 15px 24px !important; font-size: 15px !important; }
}

/* ===== 王冠メダルバッジ ===== */
.hero-medals {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 40px;
  margin-bottom: 16px;
  width: 100%;
}
.hero-medal {
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 16px;
  padding: 18px 12px 14px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-align: center;
  transition: transform .25s, box-shadow .25s;
}
.hero-medal:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(14,165,233,0.25);
  border-color: rgba(14,165,233,0.35);
}
.hmedal-crown {
  font-size: 26px;
  line-height: 1;
  filter: drop-shadow(0 0 6px rgba(255,200,0,0.7));
}
.hmedal-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}
.hmedal-num {
  font-size: clamp(22px, 3.5vw, 32px);
  font-weight: 900;
  color: #fff;
  line-height: 1;
  letter-spacing: -0.02em;
}
.hmedal-unit {
  font-size: 13px;
  font-weight: 700;
  color: var(--accent);
}
.hmedal-label {
  font-size: 12px;
  font-weight: 700;
  color: var(--text2);
  margin-top: 4px;
}
.hmedal-sub {
  font-size: 11px;
  color: rgba(100,116,139,0.7);
}

/* モバイル: 2x2 グリッド */
@media (max-width: 640px) {
  .hero-medals {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin-top: 28px;
  }
  .hero-medal {
    padding: 16px 10px 12px;
  }
  .hmedal-crown {
    font-size: 22px;
  }
}

/* ===== ヒーロー全要素 中央揃え強制 ===== */
#hero,
#hero .hero-inner,
#hero .hero-h1,
#hero .hero-sub,
#hero .hero-cta-wrap,
#hero .hero-cta-note,
#hero .hero-medals,
#hero .hero-medal,
#hero .hero-footnote {
  text-align: left !important;
}

/* ===== ヒーロー 説明ブロック ===== */
.hero-desc {
  background: rgba(14,165,233,0.06);
  border: 1px solid rgba(14,165,233,0.18);
  border-radius: 16px;
  padding: 24px 32px;
  margin-bottom: 36px;
  text-align: center;
}
.hero-desc-shift {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 14px;
  font-size: 15px;
  font-weight: 700;
}
.hero-desc-old {
  color: var(--text3);
  text-decoration: line-through;
  background: rgba(255,255,255,0.05);
  padding: 5px 14px;
  border-radius: 6px;
}
.hero-desc-arrow {
  font-size: 20px;
  color: var(--accent);
  font-weight: 900;
}
.hero-desc-new {
  color: #fff;
  background: linear-gradient(135deg, rgba(14,165,233,0.25), rgba(124,58,237,0.25));
  border: 1px solid rgba(14,165,233,0.4);
  padding: 5px 16px;
  border-radius: 6px;
  font-weight: 800;
}
.hero-desc-text {
  font-size: 14px;
  color: var(--text2);
  line-height: 1.9;
  text-align: center;
}
.hero-desc-text strong {
  color: var(--text1);
}

/* hero-h1 size: inline CSS で管理 */

@media (max-width: 640px) {
  .hero-desc {
    padding: 18px 20px;
  }
  .hero-desc-shift {
    flex-wrap: wrap;
    justify-content: center;
  }
  .hero-desc-text {
    font-size: 13px;
  }
  .hero-desc-text br {
    display: none;
  }
}

/* hero-h1 size: inline CSS で管理 */

/* hero-h1 size: inline CSS で管理 */


/* ===== 診断ウィジェット (Shindan) ===== */
.shindan-wrap{
  max-width:640px;margin:0 auto;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.10);
  border-radius:20px;padding:36px 40px;
}

/* 進捗バー */
.shindan-progress-wrap{
  height:5px;background:rgba(255,255,255,0.08);
  border-radius:10px;margin-bottom:12px;overflow:hidden;
}
.shindan-progress-bar{
  height:100%;border-radius:10px;
  background:linear-gradient(90deg,#0EA5E9,#7C3AED);
  transition:width .5s ease;
}
.shindan-step-label{
  font-size:12px;font-weight:700;color:var(--text3);
  text-align:right;margin-bottom:28px;letter-spacing:0.5px;
}

/* 質問カード */
.shindan-q{display:none}
.shindan-q.active{display:block}
.shindan-q-icon{font-size:36px;text-align:center;margin-bottom:16px}
.shindan-q-title{
  font-size:clamp(15px,3.5vw,18px);font-weight:800;
  color:var(--text1);text-align:center;
  line-height:1.6;margin-bottom:28px;
}

/* 選択肢 */
.shindan-choices{
  display:flex;flex-direction:column;gap:12px;
}
.shindan-btn{
  display:block;width:100%;padding:14px 20px;
  background:rgba(255,255,255,0.06);
  border:1.5px solid rgba(255,255,255,0.15);
  border-radius:12px;
  color:var(--text1);font-size:14px;font-weight:700;
  cursor:pointer;text-align:center;
  transition:all .2s;white-space:normal;line-height:1.5;
  font-family:inherit;
}
.shindan-btn:hover{
  background:rgba(14,165,233,0.12);
  border-color:rgba(14,165,233,0.5);
  color:#fff;
  transform:translateY(-1px);
}
.shindan-btn.selected{
  background:linear-gradient(90deg,rgba(14,165,233,0.25),rgba(124,58,237,0.25));
  border-color:#0EA5E9;color:#fff;
  box-shadow:0 0 0 2px rgba(14,165,233,0.2);
}

/* 結果エリア */
.shindan-result-header{text-align:center;margin-bottom:32px}
.shindan-score-ring{
  position:relative;width:120px;height:120px;
  margin:0 auto 20px;
}
.shindan-score-ring svg{width:100%;height:100%}
.shindan-score-num{
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-52%);
  font-size:32px;font-weight:900;color:#fff;
}
.shindan-score-unit{
  position:absolute;bottom:26px;left:50%;
  transform:translateX(-50%);
  font-size:13px;color:var(--text2);font-weight:700;
}
.shindan-result-label{
  font-size:clamp(18px,4vw,24px);font-weight:900;
  color:#fff;margin-bottom:12px;
}
.shindan-result-desc{
  font-size:14px;color:var(--text2);line-height:1.8;
  max-width:480px;margin:0 auto;
}

/* 改善提案 */
.shindan-improvements{
  display:flex;flex-direction:column;gap:12px;
  margin-bottom:28px;
}
.shindan-improve-item{
  display:flex;align-items:flex-start;gap:12px;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.08);
  border-radius:10px;padding:14px 16px;
  font-size:13px;color:var(--text2);line-height:1.7;
}
.shindan-improve-icon{font-size:18px;flex-shrink:0;margin-top:1px}

/* 結果CTA */
.shindan-result-cta{text-align:center;padding-top:16px}
.shindan-retry{
  display:inline-block;margin-top:16px;
  background:none;border:1px solid rgba(255,255,255,0.2);
  color:var(--text2);font-size:13px;
  padding:8px 20px;border-radius:20px;cursor:pointer;
  transition:all .2s;font-family:inherit;
}
.shindan-retry:hover{border-color:rgba(255,255,255,0.4);color:#fff}

/* スマホ最適化 */
@media(max-width:640px){
  .shindan-wrap{padding:24px 18px;border-radius:16px}
  .shindan-q-title{font-size:15px}
  .shindan-btn{font-size:14px;padding:13px 16px;border-radius:10px}
  .shindan-score-ring{width:100px;height:100px}
  .shindan-score-num{font-size:26px}
}

/* ===== モバイル: ポジションマップ & ファネル 修正 ===== */
@media(max-width:640px){
  /* ポジションマップ wrapper */
  .quadrant-wrapper{padding:32px 20px 28px !important}
  /* Y軸ラベルがはみ出ないよう調整 */
  .q-axis-y{left:-36px;font-size:11px}
  /* ドットラベルのはみ出し防止 */
  .q-dot-label{font-size:9px}
  .q-comp2 .q-dot-label{left:auto;right:0;transform:none}
  .q-star .q-dot-label{white-space:nowrap}
  /* ファネル: スマホでは全幅に近づける */
  .f-s1{width:72% !important}
  .f-s2{width:80% !important}
  .f-s3{width:88% !important}
  .f-s4{width:94% !important}
  .f-s5{width:100% !important}
  /* funnel-area の横余白縮小 */
  .funnel-area{padding:0 8px}
  /* other-stop をf-s2内に収める */
  .other-stop{font-size:10px;right:6px}
}

/* ===== 危機訴求セクション 明るい背景 ===== */
#crisis {
  background: linear-gradient(160deg, #0D1B2E 0%, #102033 50%, #0D1B2E 100%) !important;
}
#crisis .sec-title {
  color: #F8FAFC !important;
}
#crisis .sec-sub {
  color: #CBD5E1 !important;
}
#crisis .trend-card {
  background: rgba(255,255,255,0.16) !important;
  border: 1px solid rgba(255,255,255,0.28) !important;
  box-shadow: 0 6px 20px rgba(0,0,0,0.28) !important;
}
#crisis .trend-card h4 {
  color: #F8FAFC !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  letter-spacing: 0.01em !important;
}
#crisis .trend-card p {
  color: #F1F5F9 !important;
  line-height: 1.75 !important;
}
#crisis .flow-col-title {
  color: #F8FAFC !important;
  font-weight: 700 !important;
}
#crisis .old-title {
  background: rgba(100,116,139,0.30) !important;
  color: #CBD5E1 !important;
}
#crisis .flow-step {
  color: #F8FAFC !important;
}
#crisis .flow-step.old-step {
  background: rgba(30,50,80,0.6) !important;
  border-color: rgba(100,116,139,0.4) !important;
  color: #CBD5E1 !important;
}
#crisis .flow-step {
  color: #F1F5F9 !important;
  -webkit-text-fill-color: #F1F5F9 !important;
}
#crisis .flow-arrow {
  color: #94A3B8 !important;
}
#crisis .chart-title {
  color: #F1F5F9 !important;
}
#crisis .chart-note {
  color: #CBD5E1 !important;
}
#crisis .bar-item label {
  color: #CBD5E1 !important;
}

/* ===== SP HERO 中央寄せ上書き (≤640px) ===== */
@media(max-width:640px){
  #hero .hero-inner,
  #hero .hero-h1,
  #hero .hero-sub,
  #hero .hero-cta-wrap,
  #hero .hero-cta-note,
  #hero .hero-medals,
  #hero .hero-medal {
    text-align: center !important;
  }
  #hero .hero-h1-sub {
    text-align: center !important;
    display: block;
  }
  .hero-left {
    align-items: center !important;
    text-align: center !important;
  }
  .hero-sub-copy {
    text-align: center !important;
  }
  .hero-checklist {
    text-align: left !important;
    align-self: stretch;
  }
  .hero-cta-wrap {
    align-items: center !important;
    width: 100%;
  }
  .btn-primary, .btn-lg {
    display: block;
    width: 100%;
    text-align: center;
    box-sizing: border-box;
  }
}


/* ===== HERO LIGHT BACKGROUND OVERRIDES ===== */
/* heroセクションを明るい背景にするための色設定 */
#hero .hero-h1 { color: #0F172A !important; }
#hero .hero-h1-lead { color: #475569 !important; }
#hero .hero-h1-mid { color: #1E293B !important; }
#hero .hero-sub { color: #334155 !important; }
#hero .hero-sub strong { color: #0EA5E9 !important; }
#hero .hero-cta-note { color: #64748B !important; }
#hero .hero-stat-num { color: #0F172A !important; }
#hero .hero-stat-unit { color: #0EA5E9 !important; }
#hero .hero-stat-label { color: #475569 !important; }
#hero .hero-stat-label small { color: #64748B !important; }
#hero .hero-footnote { color: #94A3B8 !important; }
#hero .hero-stats {
  background: rgba(14,165,233,0.05) !important;
  border-color: rgba(14,165,233,0.15) !important;
}
#hero .hero-stat-item:nth-child(1),
#hero .hero-stat-item:nth-child(2) {
  border-bottom-color: rgba(14,165,233,0.15) !important;
}
#hero .hero-stat-item:nth-child(1),
#hero .hero-stat-item:nth-child(3) {
  border-right-color: rgba(14,165,233,0.15) !important;
}
#hero .hero-checklist li { color: #334155 !important; }
#hero .hero-checklist li strong { color: #0F172A !important; }


/* ===== SP LAYOUT FIXES ===== */

/* ── chirashi-grid: PC 2カラム / SP 1カラム ── */
.chirashi-grid {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 40px;
  display: grid;
  grid-template-columns: 420px 1fr;
  gap: 60px;
  align-items: center;
}
@media (max-width: 768px) {
  .chirashi-grid {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 0 24px;
  }
  .chirashi-grid > div:first-child {
    max-width: 340px;
    margin: 0 auto;
    width: 100%;
  }
  /* テキストブロックも同幅・センタリング */
  .chirashi-grid > div:last-child {
    max-width: 340px;
    margin: 0 auto;
    width: 100%;
  }
}

/* ── hero-cta-2col: SP時は縦並び ── */
@media (max-width: 560px) {
  .hero-cta-2col {
    flex-direction: column !important;
    gap: 10px !important;
  }
  .hero-cta-2col > a {
    flex: none !important;
    width: 100% !important;
    justify-content: center;
  }
}

/* ── body / html 横スクロール防止 ── */
html, body {
  overflow-x: hidden;
  max-width: 100vw;
}

/* chirashi-pc セクション SP padding */
@media (max-width: 640px) {
  .chirashi-pc {
    padding: 32px 0 !important;
  }
  /* chirashi 内テキスト調整 */
  .chirashi-grid h3 {
    font-size: 20px !important;
  }
}


/* ===== OWNED-INNER & QUADRANT SP FIXES ===== */
@media (max-width: 768px) {
  .owned-inner {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    padding: 24px 20px !important;
  }
  .quadrant-wrapper {
    padding: 24px 16px 20px !important;
  }
}
/* ===== END OWNED SP FIXES ===== */


/* ===== STYLISH CTA BUTTONS ===== */

/* ── Primary: 資料ダウンロード ── */
.cta-primary-btn {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  position: relative;
  text-decoration: none;
  border-radius: 16px;
  overflow: hidden;
  background: linear-gradient(135deg, #0369A1 0%, #0EA5E9 50%, #38BDF8 100%);
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  box-shadow:
    0 6px 28px rgba(14,165,233,0.45),
    inset 0 1px 0 rgba(255,255,255,0.2);
  transition: transform 0.22s cubic-bezier(.34,1.56,.64,1), box-shadow 0.22s ease;
  padding: 18px 22px;
  justify-content: space-between;
}
.cta-primary-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.12) 0%, transparent 60%);
  pointer-events: none;
}
.cta-primary-btn:hover {
  transform: translateY(-3px) scale(1.01);
  box-shadow:
    0 10px 36px rgba(14,165,233,0.55),
    inset 0 1px 0 rgba(255,255,255,0.25);
}

/* ── Secondary: 無料診断 ── */
.cta-secondary-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  position: relative;
  text-decoration: none;
  border-radius: 14px;
  padding: 13px 16px 13px 14px;
  background: rgba(255,255,255,0.72);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1.5px solid rgba(14,165,233,0.35);
  box-shadow:
    0 2px 12px rgba(14,165,233,0.12),
    inset 0 1px 0 rgba(255,255,255,0.8);
  transition: transform 0.22s cubic-bezier(.34,1.56,.64,1), box-shadow 0.22s ease, background 0.18s ease;
}
.cta-secondary-btn:hover {
  transform: translateY(-3px) scale(1.01);
  background: rgba(255,255,255,0.9);
  border-color: rgba(14,165,233,0.65);
  box-shadow:
    0 8px 28px rgba(14,165,233,0.22),
    inset 0 1px 0 rgba(255,255,255,0.9);
}

/* ── アイコンラッパー共通 ── */
.cta-icon-wrap {
  flex-shrink: 0;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* アイコン：ダウンロード（白半透明） */
.cta-icon-dl {
  background: rgba(255,255,255,0.18);
  color: #fff;
}

/* アイコン：診断（青薄） */
.cta-icon-diag {
  background: linear-gradient(135deg, rgba(14,165,233,0.12), rgba(56,189,248,0.08));
  border: 1px solid rgba(14,165,233,0.25);
  color: #0EA5E9;
}

/* ── テキスト部分 ── */
.cta-text-wrap {
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex: 1;
}
.cta-primary-btn .cta-main-label {
  font-size: 16px;
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1;
  color: #fff;
  white-space: nowrap;
}
.cta-primary-btn .cta-sub-label {
  font-size: 12px;
  font-weight: 600;
  color: rgba(255,255,255,0.85);
  white-space: nowrap;
}
.cta-secondary-btn .cta-main-label {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1;
  color: #0F172A;
  white-space: nowrap;
}
.cta-secondary-btn .cta-sub-label {
  font-size: 10.5px;
  font-weight: 600;
  color: #475569;
  white-space: nowrap;
}

/* ── 矢印アイコン ── */
.cta-arrow {
  flex-shrink: 0;
  color: rgba(255,255,255,0.7);
  display: flex;
  align-items: center;
  transition: transform 0.2s ease;
}
.cta-primary-btn:hover .cta-arrow {
  transform: translateX(3px);
  color: #fff;
}

/* ── SP: 縦並び対応 ── */
@media (max-width: 560px) {
  .cta-primary-btn,
  .cta-secondary-btn {
    flex: none !important;
    width: 100% !important;
    border-radius: 12px;
  }
}

/* ===== END STYLISH CTA ===== */

/* ===== section-light 追加修正 (2026-03-19) ===== */

/* #results: owned-inner の暗背景を明るく */
.section-light .owned-inner {
  background: rgba(14,165,233,0.06) !important;
  border-color: rgba(14,165,233,0.25) !important;
}
.section-light .owned-inner h3,
.section-light .owned-inner p,
.section-light .owned-inner div,
.section-light .owned-inner span {
  color: #1E293B !important;
  -webkit-text-fill-color: #1E293B !important;
}
.section-light .owned-inner strong {
  color: #0F172A !important;
  -webkit-text-fill-color: #0F172A !important;
}
.section-light .owned-inner [style*="color:#7DD3FC"],
.section-light .owned-inner [style*="color:#94A3B8"],
.section-light .owned-inner [style*="color:#F8FAFC"] {
  color: #1E293B !important;
  -webkit-text-fill-color: #1E293B !important;
}
/* 結果数値（グラデーション）はそのまま */
.section-light .owned-after-num {
  -webkit-text-fill-color: transparent !important;
}

/* #voice: voice-card の背景・テキスト */
.section-light .voice-card {
  background: #fff !important;
  border-color: rgba(14,165,233,0.15) !important;
  box-shadow: 0 2px 16px rgba(0,0,0,0.07) !important;
}
.section-light .voice-text {
  color: #334155 !important;
  -webkit-text-fill-color: #334155 !important;
}
.section-light .voice-name {
  color: #0F172A !important;
  -webkit-text-fill-color: #0F172A !important;
}
.section-light .voice-meta {
  color: #64748B !important;
  -webkit-text-fill-color: #64748B !important;
}
.section-light .voice-author {
  border-color: rgba(0,0,0,0.08) !important;
}

/* #compare: compare-card の背景・テキスト */
.section-light .compare-card-mid,
.section-light .compare-card-bad {
  background: rgba(14,165,233,0.04) !important;
  border-color: rgba(14,165,233,0.15) !important;
}
.section-light .compare-row {
  border-color: rgba(0,0,0,0.06) !important;
}
.section-light .compare-row-label {
  color: #334155 !important;
}
.section-light .compare-card-top-mid {
  background: rgba(14,165,233,0.12) !important;
}
.section-light .compare-card-top-bad {
  background: rgba(100,116,139,0.12) !important;
}
.section-light .compare-card-name {
  color: #0F172A !important;
  -webkit-text-fill-color: #0F172A !important;
}

/* #company: ロゴバナーの背景・テキスト */
#company.section-light [style*="rgba(255,255,255,0.05)"],
#company.section-light [style*="rgba(255,255,255,0.04)"] {
  background: rgba(14,165,233,0.06) !important;
}
#company.section-light [style*="rgba(255,255,255,0.2)"] {
  background: rgba(0,0,0,0.1) !important;
}
#company.section-light [style*="color:rgba(255,255,255,0.5)"] {
  color: #64748B !important;
  -webkit-text-fill-color: #64748B !important;
}
#company.section-light [style*="color:rgba(255,255,255,0.9)"] {
  color: #0F172A !important;
  -webkit-text-fill-color: #0F172A !important;
}
#company.section-light [style*="color:rgba(255,255,255,0.55)"],
#company.section-light [style*="color:rgba(255,255,255,0.5);"] {
  color: #64748B !important;
  -webkit-text-fill-color: #64748B !important;
}
/* メダル数値テキスト */
.section-light .medal-coin {
  /* メダルのbackgroundはそのまま（金色グラデーション） */
}

/* #trust: カード背景・テキスト */
#trust.section-light [style*="rgba(255,255,255,0.04)"] {
  background: #fff !important;
  box-shadow: 0 2px 16px rgba(0,0,0,0.07) !important;
}
#trust.section-light [style*="color:var(--text1)"],
#trust.section-light [style*="color: var(--text1)"] {
  color: #0F172A !important;
  -webkit-text-fill-color: #0F172A !important;
}
#trust.section-light [style*="color:var(--text2)"],
#trust.section-light [style*="color: var(--text2)"] {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}
/* trustセクション内の全テキストを暗くする補完ルール */
#trust.section-light p,
#trust.section-light div,
#trust.section-light span {
  color: #334155 !important;
  -webkit-text-fill-color: #334155 !important;
}
#trust.section-light h2,
#trust.section-light h3,
#trust.section-light h4 {
  color: #0F172A !important;
  -webkit-text-fill-color: #0F172A !important;
}
/* trustセクション内のアクセントカラー維持 */
#trust.section-light [style*="color:#0EA5E9"],
#trust.section-light [style*="color:#A78BFA"],
#trust.section-light [style*="color:#F59E0B"] {
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
}

/* companyセクション全体テキスト補完 */
#company.section-light p,
#company.section-light div,
#company.section-light span {
  color: #334155 !important;
  -webkit-text-fill-color: #334155 !important;
}
#company.section-light h2,
#company.section-light h3,
#company.section-light h4 {
  color: #0F172A !important;
  -webkit-text-fill-color: #0F172A !important;
}
/* アクセント色を維持 */
#company.section-light [style*="color:#0EA5E9"],
#company.section-light [style*="color:var(--accent)"] {
  color: #0EA5E9 !important;
  -webkit-text-fill-color: #0EA5E9 !important;
}
/* grad-text はグラデーション維持 */
#company.section-light .grad-text,
#trust.section-light .grad-text {
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
  background: var(--grad);
  -webkit-background-clip: text;
  background-clip: text;
}

/* #results: 全体テキスト補完 */
#results.section-light p,
#results.section-light div,
#results.section-light span,
#results.section-light h3 {
  color: #334155 !important;
  -webkit-text-fill-color: #334155 !important;
}
#results.section-light [style*="color:#0EA5E9"],
#results.section-light [style*="color:#7DD3FC"],
#results.section-light [style*="color:#94A3B8"] {
  color: #0EA5E9 !important;
  -webkit-text-fill-color: #0EA5E9 !important;
}
#results.section-light [style*="-webkit-text-fill-color:transparent"] {
  -webkit-text-fill-color: transparent !important;
}

/* ===== #industry section-light カード修正 ===== */
.section-light .industry-card {
  background: #fff !important;
  border-color: rgba(14,165,233,0.2) !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.07) !important;
}
.section-light .industry-card:hover {
  border-color: #0EA5E9 !important;
  box-shadow: 0 4px 20px rgba(14,165,233,0.15) !important;
}
.section-light .industry-card h4 {
  color: #0F172A !important;
  -webkit-text-fill-color: #0F172A !important;
}
.section-light .industry-card p {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}

/* ===== section-light: 暗背景カード類の一括修正 ===== */

/* #service - flow-step, trend-card, bar-chart */
.section-light .flow-step {
  background: #fff !important;
  border-color: rgba(14,165,233,0.2) !important;
  color: #334155 !important;
}
.section-light .flow-step.old-step {
  background: rgba(100,116,139,0.08) !important;
  border-color: rgba(100,116,139,0.2) !important;
  color: #64748B !important;
}
.section-light .flow-step.new-step {
  background: rgba(14,165,233,0.06) !important;
  border-color: rgba(14,165,233,0.3) !important;
  color: #0F172A !important;
}
.section-light .trend-card {
  background: #fff !important;
  border-color: rgba(14,165,233,0.15) !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.07) !important;
}
.section-light .trend-card:hover {
  box-shadow: 0 8px 28px rgba(14,165,233,0.12) !important;
}
.section-light .trend-card h4 {
  color: #0F172A !important;
  -webkit-text-fill-color: #0F172A !important;
}
.section-light .trend-card p {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}
.section-light .bar-chart {
  background: #fff !important;
  border-color: rgba(14,165,233,0.15) !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.07) !important;
}
.section-light .chart-title {
  color: #334155 !important;
  -webkit-text-fill-color: #334155 !important;
}
.section-light .bar-item label {
  color: #64748B !important;
  -webkit-text-fill-color: #64748B !important;
}
.section-light .chart-note {
  color: #64748B !important;
  -webkit-text-fill-color: #64748B !important;
}

/* #measures - measure-card, radar-wrap */
.section-light .measure-card {
  background: #fff !important;
  border-color: rgba(14,165,233,0.15) !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.07) !important;
}
.section-light .measure-card:hover {
  box-shadow: 0 8px 28px rgba(14,165,233,0.15) !important;
  border-color: #0EA5E9 !important;
}
.section-light .measure-card h4 {
  color: #0F172A !important;
  -webkit-text-fill-color: #0F172A !important;
}
.section-light .measure-card p {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}
.section-light .radar-wrap {
  background: #fff !important;
  border-color: rgba(14,165,233,0.15) !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.07) !important;
}

/* #results - result-num, ba-chart */
.section-light .result-num {
  background: #fff !important;
  border-color: rgba(14,165,233,0.15) !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.07) !important;
}
.section-light .result-num:hover {
  box-shadow: 0 8px 28px rgba(14,165,233,0.15) !important;
}
.section-light .num-label {
  color: #64748B !important;
  -webkit-text-fill-color: #64748B !important;
}
.section-light .ba-chart {
  background: #fff !important;
  border-color: rgba(14,165,233,0.15) !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.07) !important;
}
.section-light .ba-title {
  color: #334155 !important;
  -webkit-text-fill-color: #334155 !important;
}
.section-light .ba-label {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}
.section-light .ba-legend-item {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}

/* compare-card全般 */
.section-light .compare-card {
  background: #fff !important;
  border-color: rgba(14,165,233,0.2) !important;
  box-shadow: 0 2px 16px rgba(0,0,0,0.07) !important;
}


/* ===== section-crisis: 白背景上のカード修正 ===== */
.section-crisis .trend-card {
  background: #fff !important;
  border-color: rgba(239,68,68,0.2) !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.07) !important;
}
.section-crisis .trend-card h4 {
  color: #0F172A !important;
  -webkit-text-fill-color: #0F172A !important;
}
.section-crisis .trend-card p {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}
.section-crisis .flow-step {
  background: #F1F5F9 !important;
  border-color: rgba(100,116,139,0.25) !important;
  color: #334155 !important;
  -webkit-text-fill-color: #334155 !important;
}
.section-crisis .flow-step.old-step {
  background: rgba(100,116,139,0.1) !important;
  color: #64748B !important;
  -webkit-text-fill-color: #64748B !important;
}
.section-crisis .flow-step.new-step {
  background: rgba(14,165,233,0.08) !important;
  border-color: rgba(14,165,233,0.35) !important;
  color: #0369A1 !important;
  -webkit-text-fill-color: #0369A1 !important;
}
.section-crisis .flow-arrow {
  color: #94A3B8 !important;
}
.section-crisis .flow-arrow.new-arr {
  color: #0EA5E9 !important;
}
.section-crisis .bar-chart {
  background: #fff !important;
  border-color: rgba(14,165,233,0.15) !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.07) !important;
}
.section-crisis .chart-title {
  color: #334155 !important;
  -webkit-text-fill-color: #334155 !important;
}
.section-crisis .bar-item label {
  color: #64748B !important;
  -webkit-text-fill-color: #64748B !important;
}
.section-crisis .chart-note {
  color: #64748B !important;
  -webkit-text-fill-color: #64748B !important;
}

/* ===== section-light: position-copy / service セクション修正 ===== */
.section-light .position-copy h3 {
  color: #0F172A !important;
  -webkit-text-fill-color: #0F172A !important;
}
.section-light .position-copy .big-claim {
  color: #0F172A !important;
}
.section-light .position-copy p {
  color: #334155 !important;
  -webkit-text-fill-color: #334155 !important;
}
.section-light .position-copy strong {
  color: #0F172A !important;
  -webkit-text-fill-color: #0F172A !important;
}
/* var(--text3) = #64748B は明るい背景でも読めるのでOK */
/* var(--border) のボックス背景修正 */
.section-light [style*="border:1px solid var(--border)"] {
  border-color: rgba(14,165,233,0.2) !important;
}
/* q-axis, q-dot-label */
.section-light .q-axis-y,
.section-light .q-axis-x {
  color: #64748B !important;
  -webkit-text-fill-color: #64748B !important;
}
.section-light .q-dot-label {
  color: #334155 !important;
  -webkit-text-fill-color: #334155 !important;
}

/* ===== llmo-compare-card, llmo-tool-card ===== */
.section-light .llmo-compare-card {
  background: #fff !important;
  border-color: rgba(14,165,233,0.2) !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.07) !important;
}
.section-light .llmo-compare-title {
  color: #0F172A !important;
  -webkit-text-fill-color: #0F172A !important;
}
.section-light .llmo-compare-list li {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}
.section-light .llmo-tool-card {
  background: #fff !important;
  border-color: rgba(14,165,233,0.15) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important;
}
.section-light .llmo-tool-name {
  color: #0F172A !important;
  -webkit-text-fill-color: #0F172A !important;
}
.section-light .llmo-tool-desc {
  color: #475569 !important;
  -webkit-text-fill-color: #475569 !important;
}

/* ===== aima-item: section-lightでの背景は元々薄い色なのでテキストのみ修正 ===== */
/* 既にsection-light .aima-item h4/pは修正済み */

/* ===== sec-label ===== */
.section-light .sec-label {
  color: #0EA5E9 !important;
  -webkit-text-fill-color: #0EA5E9 !important;
}

/* ===== quadrant-map ===== */
.section-light .quadrant-map {
  background: #F8FAFC !important;
  border-color: rgba(14,165,233,0.15) !important;
}

/* ===== compare section: compare-table ===== */
.section-light .compare-table th {
  color: #0F172A !important;
  -webkit-text-fill-color: #0F172A !important;
  background: rgba(14,165,233,0.08) !important;
}
.section-light .compare-table td {
  color: #334155 !important;
  -webkit-text-fill-color: #334155 !important;
}
.section-light .compare-table tr {
  border-color: rgba(0,0,0,0.07) !important;
}

/* ===== results: num-value はグラデーション維持 ===== */
.section-light .num-value {
  -webkit-text-fill-color: transparent !important;
  background: var(--grad);
  -webkit-background-clip: text;
  background-clip: text;
}

/* ===== voice: voice-tag ===== */
.section-light .voice-tag {
  background: rgba(14,165,233,0.1) !important;
  color: #0369A1 !important;
  -webkit-text-fill-color: #0369A1 !important;
}

/* ===== sec-tag ===== */
.section-light .sec-tag {
  color: #0EA5E9 !important;
  -webkit-text-fill-color: #0EA5E9 !important;
}


/* ===== about #crisis final contrast override ===== */
#crisis .trend-card {
  background: rgba(255,255,255,0.16) !important;
  border: 1px solid rgba(255,255,255,0.28) !important;
  box-shadow: 0 6px 20px rgba(0,0,0,0.28) !important;
}
#crisis .trend-card h4 {
  color: #F8FAFC !important;
  -webkit-text-fill-color: #F8FAFC !important;
  font-weight: 800 !important;
  letter-spacing: 0.01em !important;
}
#crisis .trend-card p {
  color: #F1F5F9 !important;
  -webkit-text-fill-color: #F1F5F9 !important;
  line-height: 1.75 !important;
}

/* === crisis section dark-red override 20260323 === */
#crisis.section-crisis{
  position:relative;
  background:linear-gradient(180deg,#0f1115 0%,#15171c 48%,#130d10 100%) !important;
  color:#F8FAFC !important;
  overflow:hidden;
}
#crisis.section-crisis::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 18% 18%, rgba(239,68,68,0.20), transparent 34%),
    radial-gradient(circle at 82% 78%, rgba(225,29,72,0.16), transparent 30%);
  pointer-events:none;
}
#crisis.section-crisis > .container{position:relative;z-index:1;}
#crisis .sec-title{color:#F8FAFC !important;-webkit-text-fill-color:#F8FAFC !important;}
#crisis .red-text{color:#FB7185 !important;-webkit-text-fill-color:#FB7185 !important;}
#crisis .sec-sub{color:#CBD5E1 !important;}
#crisis .trend-cards{gap:18px;}
#crisis .trend-card{
  background:linear-gradient(180deg,rgba(255,255,255,0.04),rgba(255,255,255,0.02)) !important;
  border:1px solid rgba(248,113,113,0.24) !important;
  box-shadow:0 18px 40px rgba(0,0,0,0.28) !important;
  backdrop-filter:blur(8px);
}
#crisis .trend-card:hover{
  transform:translateY(-4px);
  border-color:rgba(251,113,133,0.45) !important;
  box-shadow:0 22px 46px rgba(127,29,29,0.28) !important;
}
#crisis .trend-card h4{color:#F8FAFC !important;}
#crisis .trend-card p{color:#CBD5E1 !important;}
#crisis .t-icon{filter:drop-shadow(0 8px 20px rgba(239,68,68,0.16));}
#crisis .flow-col-title{
  color:#F8FAFC !important;
  border:1px solid rgba(248,113,113,0.24);
}
#crisis .old-title{
  background:rgba(148,163,184,0.12) !important;
  color:#CBD5E1 !important;
}
#crisis .new-title{
  background:rgba(225,29,72,0.14) !important;
  color:#FDA4AF !important;
}
#crisis .flow-step.old-step{
  background:rgba(148,163,184,0.10) !important;
  border-color:rgba(148,163,184,0.20) !important;
  color:#E2E8F0 !important;
}
#crisis .flow-step.new-step,
#crisis .flow-step.new-step[style]{
  background:linear-gradient(180deg,rgba(127,29,29,0.34),rgba(69,10,10,0.42)) !important;
  border-color:rgba(248,113,113,0.48) !important;
  color:#FFF1F2 !important;
  box-shadow:0 10px 24px rgba(127,29,29,0.18);
}
#crisis .flow-arrow{color:#94A3B8 !important;}
#crisis .flow-arrow.new-arr{color:#FB7185 !important;}
#crisis .flow-warning{
  background:rgba(127,29,29,0.32) !important;
  border:1px solid rgba(248,113,113,0.38) !important;
  color:#FFE4E6 !important;
}
#crisis .vs-badge{
  background:linear-gradient(135deg,#7f1d1d,#e11d48) !important;
  color:#fff !important;
  box-shadow:0 10px 24px rgba(225,29,72,0.28);
}
#crisis .bar-chart{
  background:linear-gradient(180deg,rgba(8,15,31,0.94) 0%,rgba(12,26,56,0.88) 100%) !important;
  border:1px solid rgba(96,165,250,0.26) !important;
  box-shadow:0 18px 40px rgba(2,8,23,0.42), inset 0 1px 0 rgba(147,197,253,0.08) !important;
}
#crisis .chart-title,
#crisis .bar-chart .chart-title{
  color:#F8FAFC !important;
  -webkit-text-fill-color:#F8FAFC !important;
}
#crisis .chart-note,
#crisis .bar-note,
#crisis .bar-label,
#crisis label,
#crisis .bar-chart label,
#crisis .bar-chart .bar-item label,
#crisis .bar-chart span{
  color:#F8FAFC !important;
  -webkit-text-fill-color:#F8FAFC !important;
}
#crisis .btn-outline{
  border-color:rgba(96,165,250,0.58) !important;
  color:#EFF6FF !important;
  background:linear-gradient(135deg,rgba(15,23,42,0.56),rgba(29,78,216,0.28)) !important;
}
#crisis .btn-outline:hover{
  background:linear-gradient(135deg,#1D4ED8,#2563EB) !important;
  color:#fff !important;
  border-color:rgba(147,197,253,0.85) !important;
}
@media (max-width: 768px){
  #crisis.section-crisis{
    background:linear-gradient(180deg,#111318 0%,#17181d 54%,#140d10 100%) !important;
  }
  #crisis .trend-cards{gap:14px;}
}

/* === about light theme expansion 20260323b === */
#shindan.section-light,
#service.section-light,
#measures.section-light,
#results.section-light,
#compare.section-light,
#industry.section-light,
#voice.section-light {
  background:#FFFFFF !important;
  color:#0F172A !important;
}
#shindan.section-light{background:linear-gradient(180deg,#FFFFFF 0%,#F8FBFF 100%) !important;}
#service.section-light,
#results.section-light,
#voice.section-light{background:#F8FBFF !important;}
#shindan .sec-tag,
#compare .sec-tag,
#voice .sec-tag{color:#0EA5E9 !important;-webkit-text-fill-color:#0EA5E9 !important;}
#shindan .shindan-wrap{
  background:#fff !important;
  border:1px solid rgba(14,165,233,0.16) !important;
  box-shadow:0 8px 28px rgba(15,23,42,0.06) !important;
}
#shindan .shindan-progress-wrap{background:#E2E8F0 !important;}
#shindan .shindan-step-label,
#shindan .shindan-result-desc,
#shindan .shindan-result-cta p,
#shindan .shindan-retry{color:#64748B !important;-webkit-text-fill-color:#64748B !important;}
#shindan .shindan-q-title,
#shindan .shindan-result-label,
#shindan .shindan-score-num{color:#0F172A !important;-webkit-text-fill-color:#0F172A !important;}
#shindan .shindan-score-unit{color:#475569 !important;-webkit-text-fill-color:#475569 !important;}
#shindan .shindan-btn{
  background:#F8FAFC !important;
  border-color:#D7E7F8 !important;
  color:#0F172A !important;
}
#shindan .shindan-btn:hover{
  background:rgba(14,165,233,0.08) !important;
  border-color:rgba(14,165,233,0.38) !important;
  color:#0F172A !important;
}
#shindan .shindan-btn.selected{
  background:linear-gradient(90deg,rgba(14,165,233,0.12),rgba(124,58,237,0.12)) !important;
  color:#0F172A !important;
}
#shindan .shindan-improve-item{
  background:#F8FBFF !important;
  border-color:rgba(14,165,233,0.14) !important;
  color:#475569 !important;
}
#shindan .shindan-retry{
  border-color:rgba(14,165,233,0.2) !important;
  background:#fff !important;
}
#shindan .shindan-retry:hover{
  border-color:#0EA5E9 !important;
  color:#0EA5E9 !important;
}
#results .owned-verify-header h3,
#results .owned-inner h3,
#results .owned-inner strong{color:#0F172A !important;-webkit-text-fill-color:#0F172A !important;}
#results .owned-inner{
  background:#FFFFFF !important;
  border:1px solid rgba(14,165,233,0.16) !important;
  box-shadow:0 8px 28px rgba(15,23,42,0.06) !important;
}
#results .owned-inner p,
#results .owned-inner div,
#results .owned-inner span{color:#475569 !important;-webkit-text-fill-color:#475569 !important;}
#results .owned-inner [style*="color:#0EA5E9"],
#results .owned-inner [style*="color:#7DD3FC"],
#results .owned-inner [style*="color:#38BDF8"]{color:#0EA5E9 !important;-webkit-text-fill-color:#0EA5E9 !important;}
#results .owned-inner [style*="color:#94A3B8"],
#results .owned-inner [style*="color:#CBD5E1"],
#results .owned-inner [style*="color:#F8FAFC"]{color:#475569 !important;-webkit-text-fill-color:#475569 !important;}
#results .owned-verify-header a,
#results .owned-inner [style*="background:rgba(14,165,233,0.10)"],
#results .owned-inner [style*="background:rgba(14,165,233,0.1)"]{
  background:rgba(14,165,233,0.08) !important;
}
#results .owned-right-col p{color:#64748B !important;-webkit-text-fill-color:#64748B !important;}
#voice .voice-text{color:#475569 !important;-webkit-text-fill-color:#475569 !important;}
#voice .voice-author{border-top-color:rgba(15,23,42,0.08) !important;}

/* === worry section navy card refinement 20260323d === */
#worry.section-light{
  background:linear-gradient(180deg,#F7FAFF 0%,#EEF4FB 100%) !important;
}
#worry .worry-grid{
  gap:22px;
}
#worry .worry-card{
  background:linear-gradient(180deg,#162B50 0%,#132748 100%) !important;
  border:1px solid rgba(239,68,68,0.16) !important;
  border-left:3px solid rgba(239,68,68,0.72) !important;
  border-radius:18px !important;
  box-shadow:0 14px 36px rgba(15,23,42,0.14) !important;
  padding:30px 26px 26px 28px !important;
  min-height:258px;
}
#worry .worry-card::before{
  display:none !important;
}
#worry .worry-card:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 40px rgba(15,23,42,0.18) !important;
}
#worry .worry-icon{
  width:42px !important;
  height:42px !important;
  padding:9px;
  margin-bottom:16px !important;
  border-radius:12px;
  background:rgba(239,68,68,0.10);
  border:1px solid rgba(239,68,68,0.14);
  box-sizing:border-box;
}
#worry .worry-icon path,
#worry .worry-icon line,
#worry .worry-icon circle,
#worry .worry-icon rect{
  stroke:#EF4444 !important;
}
#worry .worry-icon circle[fill],
#worry .worry-icon rect[fill],
#worry .worry-icon path[fill]{
  fill:#EF4444 !important;
}
#worry .worry-card h4{
  color:#F8FAFC !important;
  font-size:17px !important;
  line-height:1.62 !important;
  margin-bottom:12px !important;
  letter-spacing:-0.01em;
  font-weight:850 !important;
  text-wrap:pretty;
}
#worry .worry-card p{
  color:#B8C7DB !important;
  font-size:14px !important;
  line-height:1.9 !important;
  font-weight:600 !important;
  text-wrap:pretty;
}
#worry .worry-em{
  color:#F26D6D !important;
  font-weight:850 !important;
}
#worry .worry-card p .worry-em{
  color:#F27B7B !important;
}
#worry .insight-box{
  background:#FFFFFF !important;
  border:2px solid #F59E0B !important;
  border-radius:18px !important;
  box-shadow:0 10px 28px rgba(245,158,11,0.10) !important;
  padding:30px 34px !important;
}
#worry .insight-box p{
  color:#334155 !important;
  font-size:16px !important;
  line-height:1.9 !important;
  font-weight:800 !important;
}
#worry .insight-box .highlight{
  color:#3B82F6 !important;
}

/* === worry text contrast hotfix 20260323e === */
#worry .worry-card h4,
#worry .worry-card h4 span,
#worry .worry-card p,
#worry .worry-card p span,
#worry .worry-em{
  -webkit-text-fill-color:currentColor !important;
}
#worry .worry-card h4{
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  text-shadow:0 1px 0 rgba(15,23,42,0.18);
}
#worry .worry-card p{
  color:#E2E8F0 !important;
  -webkit-text-fill-color:#E2E8F0 !important;
  font-weight:650 !important;
}
#worry .worry-em{
  color:#FDB4B4 !important;
  -webkit-text-fill-color:#FDB4B4 !important;
}
@media (max-width: 768px){
  #worry .worry-card{
    padding:24px 20px 20px 22px !important;
    border-radius:16px !important;
    min-height:unset;
  }
  #worry .worry-card h4{
    font-size:16px !important;
    line-height:1.62 !important;
  }
  #worry .worry-card p{
    font-size:14px !important;
    line-height:1.86 !important;
  }
  #worry .insight-box{
    padding:24px 22px !important;
  }
}

/* === cta band visibility fix 20260323c === */
.cta-band-light {
  background: linear-gradient(135deg,#F8FBFF 0%,#FFFFFF 100%) !important;
  border-top: 1px solid rgba(14,165,233,0.16) !important;
  border-bottom: 1px solid rgba(14,165,233,0.16) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.9), inset 0 -1px 0 rgba(14,165,233,0.04);
}
.cta-band-light h3 {
  color:#0F172A !important;
  -webkit-text-fill-color:#0F172A !important;
}
.cta-band-light p {
  color:#475569 !important;
  -webkit-text-fill-color:#475569 !important;
}

/* === cta band primary button readability uplift 20260323f === */
.cta-band-light .cta-primary-btn {
  justify-content:center !important;
  gap:12px !important;
  min-width:min(360px,100%);
  padding:16px 34px !important;
  border-radius:999px !important;
  border:1px solid rgba(255,255,255,0.24) !important;
  background:linear-gradient(135deg,#0284C7 0%,#0EA5E9 42%,#2563EB 100%) !important;
  color:#FFFFFF !important;
  -webkit-text-fill-color:#FFFFFF !important;
  font-size:16px !important;
  font-weight:850 !important;
  letter-spacing:0.02em;
  text-shadow:0 1px 0 rgba(8,47,73,0.18);
  box-shadow:
    0 14px 34px rgba(2,132,199,0.28),
    0 6px 16px rgba(37,99,235,0.22),
    inset 0 1px 0 rgba(255,255,255,0.20) !important;
}
.cta-band-light .cta-primary-btn::before {
  background:linear-gradient(135deg,rgba(255,255,255,0.18) 0%,rgba(255,255,255,0.04) 42%,transparent 70%) !important;
}
.cta-band-light .cta-primary-btn:hover {
  transform:translateY(-2px) scale(1.01);
  box-shadow:
    0 18px 40px rgba(2,132,199,0.34),
    0 8px 18px rgba(37,99,235,0.28),
    inset 0 1px 0 rgba(255,255,255,0.24) !important;
}
.cta-band-light .cta-primary-btn svg {
  width:20px;
  height:20px;
  flex-shrink:0;
  stroke-width:2.7;
  filter:drop-shadow(0 1px 0 rgba(8,47,73,0.20));
}
@media (max-width: 768px) {
  .cta-band-light .cta-primary-btn {
    min-width:100%;
    padding:15px 24px !important;
    font-size:15px !important;
  }
}
