.diag-wrap {
  padding: 80px 0;
}
.diag-intro {
  max-width: 960px;
  margin: 0 auto 60px;
  text-align: center;
}
.diag-intro h2 {
  font-family: var(--serif);
  font-size: 28px;
  color: var(--green-dark);
  margin-bottom: 32px;
  line-height: 1.5;
}
.diag-intro .lead {
  color: var(--ink-light);
  margin-bottom: 48px;
  font-size: 16px;
}
.diag-badge-wrap {
  margin-top: 48px;
  font-weight: 700;
  color: var(--green-deep);
}
.diag-badge {
  display: inline-block;
  background: var(--gold-light);
  padding: 4px 16px;
  border-radius: 4px;
}

/* 5つの視点 セクション */
.diag-perspectives {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
  margin: 0 auto;
}

.perspective-card {
  background: var(--white);
  border: 1px solid rgba(26,92,67,0.1);
  padding: 24px 12px;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(26,92,67,0.04);
  transition: transform 0.3s ease;
}

.perspective-card:hover {
  transform: translateY(-5px);
  border-color: var(--gold);
}

.perspective-card .num {
  font-family: var(--serif);
  font-size: 14px;
  font-weight: 700;
  color: var(--gold);
  margin-bottom: 8px;
  display: block;
}

.perspective-card .txt {
  font-size: 15px;
  font-weight: 700;
  color: var(--green-dark);
  line-height: 1.4;
}

@media (max-width: 992px) {
  .diag-perspectives {
    grid-template-columns: repeat(3, 1fr);
  }
  .sp-hide {
    display: none;
  }
}

@media (max-width: 600px) {
  .diag-perspectives {
    grid-template-columns: repeat(2, 1fr);
  }
  .perspective-card {
    padding: 20px 10px;
  }
  .perspective-card .txt {
    font-size: 14px;
  }
}

/* 既存の診断ツール スタイル */
.dg-box{background:#fff;border:1px solid rgba(26,92,67,0.08);max-width:680px;margin:0 auto;padding:48px;border-radius:var(--radius, 14px);font-family:var(--sans, sans-serif);position:relative;overflow:hidden;box-shadow:var(--shadow, 0 4px 24px rgba(14,61,43,.08));}
.dg-progress-wrap{margin-bottom:32px;}
.dg-progress-top{display:flex;justify-content:space-between;font-size:12.5px;font-weight:700;color:var(--ink-light, #5f6f67);margin-bottom:10px;}
.dg-progress{height:6px;background:var(--green-soft, #e8f1ec);border-radius:99px;overflow:hidden;}
.dg-progress i{display:block;height:100%;background:var(--green-deep, #1a5c43);transition:width .4s ease;}
.dg-cat{font-size:12px;font-weight:700;color:var(--gold, #c2a24b);letter-spacing:.1em;margin-bottom:8px;text-transform:uppercase;}
.dg-cat-desc {font-size:14px; color:var(--ink-light); margin-bottom:20px; line-height:1.5; background:rgba(26,92,67,0.03); padding:12px 16px; border-radius:8px; border-left:4px solid var(--gold);}
.dg-qtext{font-family:var(--serif);font-weight:700;font-size:clamp(19px, 3vw, 23px);line-height:1.6;color:var(--green-dark, #0e3d2b);margin-bottom:32px;min-height:70px;}
.dg-opts{display:flex;flex-direction:column;gap:12px;}
.dg-opt{display:flex;align-items:center;gap:14px;border:1.5px solid rgba(26,92,67,0.15);background:#fff;border-radius:12px;padding:18px 22px;font-size:16px;font-weight:700;cursor:pointer;text-align:left;transition:.2s;font-family:inherit;color:var(--ink);}
.dg-opt:hover{border-color:var(--green-deep);background:var(--green-soft);}
.dg-pip{width:22px;height:22px;border-radius:50%;border:2px solid rgba(26,92,67,0.2);flex-shrink:0;position:relative;}
.dg-opt:hover .dg-pip{border-color:var(--green-deep);}
.dg-foot{margin-top:28px;display:flex;justify-content:space-between;align-items:center;}
.dg-back{border:none;background:none;color:var(--ink-light);font-size:14px;cursor:pointer;font-family:inherit;font-weight:500;text-decoration:underline;}
.dg-back:hover{color:var(--green-deep);}
.dg-count{font-size:13px;color:var(--ink-light);font-weight:500;}

/* 結果表示 */
.dg-result{text-align:center;}
.dg-gauge{position:relative;width:200px;height:200px;margin:10px auto 16px;}
.dg-num{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.dg-num b{font-family:var(--serif);font-size:60px;font-weight:900;line-height:1;color:var(--green-dark);}
.dg-num small{font-size:13px;color:var(--ink-light);margin-top:4px;font-weight:700;}
.dg-tier{display:inline-block;font-family:var(--serif);font-weight:900;font-size:24px;padding:8px 32px;margin:12px 0 10px;border-radius:99px;color:#fff;background:var(--green-deep);box-shadow:0 4px 12px rgba(26,92,67,0.2);}
.dg-msg-box{text-align:left;max-width:540px;margin:20px auto 0;}
.dg-msg-p{font-size:15px;line-height:1.85;color:var(--ink-light);margin:0 0 14px;font-weight:500;}
.dg-msg-p:last-child{margin-bottom:0;}
.dg-special-card{margin:20px 0 10px;background:#fcfaf5;border:1px solid rgba(194,162,75,0.35);border-left:4px solid var(--gold);border-radius:10px;padding:16px 20px;text-align:left;box-shadow:0 2px 8px rgba(194,162,75,0.08);}
.dg-special-header{margin-bottom:8px;}
.dg-special-tag{display:inline-flex;align-items:center;font-family:var(--serif);font-size:13px;font-weight:700;color:#fff;background:var(--gold);padding:3px 12px;border-radius:4px;letter-spacing:0.05em;}
.dg-special-body{font-size:14.5px;line-height:1.75;color:var(--green-dark);font-weight:600;}
.dg-msg{font-size:15px;color:var(--ink-light);max-width:32em;margin:12px auto 0;line-height:1.9;font-weight:500;}
.dg-weak{text-align:left;margin:28px auto 12px;max-width:540px;background:var(--bg);border:1px solid rgba(26,92,67,0.12);border-radius:12px;padding:22px 24px;}
.dg-weak h4{font-family:var(--serif);font-size:16px;font-weight:700;color:var(--green-dark);margin-bottom:14px;display:flex;align-items:center;gap:10px;}
.dg-weak h4::before{content:"!";display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:var(--gold);color:#fff;border-radius:50%;font-size:12px;font-weight:900;}
.dg-weak ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px;}
.dg-weak li{font-size:14.5px;line-height:1.7;padding-left:20px;position:relative;color:var(--ink);}
.dg-weak li::before{content:"";position:absolute;left:0;top:10px;width:7px;height:7px;background:var(--gold);border-radius:50%;}
.dg-weak li b{color:var(--green-deep);}
.dg-good{font-family:var(--serif);font-size:15px;color:var(--green-deep);font-weight:700;margin:24px 0 8px;}
.dg-line{margin-top:32px;background:linear-gradient(135deg,var(--green-dark),var(--green-deep));border-radius:16px;padding:36px 32px;color:#fff;text-align:center;box-shadow:0 10px 30px rgba(14,61,43,0.25);}
.dg-line-lead{font-family:var(--serif);font-weight:700;font-size:20px;margin:0 0 10px;color:#fff;}
.dg-line-sub{font-size:14.5px;color:rgba(255,255,255,0.9);margin:0 0 24px;line-height:1.6;}
.dg-result-ctas{display:flex;flex-direction:column;gap:14px;align-items:center;}
.dg-contact-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:linear-gradient(135deg,var(--gold),#b08d33);color:#fff;font-weight:700;padding:17px 36px;border-radius:999px;text-decoration:none;transition:all .25s;font-size:16.5px;box-shadow:0 6px 18px rgba(194,162,75,0.35);width:100%;max-width:380px;}
.dg-contact-btn:hover{transform:translateY(-2px);filter:brightness(1.08);color:#fff;}
.dg-line-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:var(--line-green);color:#fff;font-weight:700;padding:15px 32px;border-radius:999px;text-decoration:none;transition:all .25s;font-size:15.5px;width:100%;max-width:380px;box-shadow:0 6px 18px rgba(6,199,85,0.3);}
.dg-line-btn::before{content:"LINE";background:#fff;color:var(--line-green);font-size:10px;padding:2px 6px;border-radius:4px;font-weight:900;}
.dg-line-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,0.2);filter:brightness(1.06);color:#fff;}
.dg-restart{margin-top:24px;border:none;background:none;color:var(--ink-light);font-size:14px;text-decoration:underline;cursor:pointer;font-family:inherit;font-weight:500;}
.dg-identity{display:flex;flex-direction:column;gap:10px;max-width:340px;margin:20px auto 0;text-align:left;}
.dg-identity input{border:1.5px solid rgba(26,92,67,0.15);border-radius:10px;padding:12px 16px;font-size:15px;background:var(--bg);transition:all .25s;}
.dg-identity input:focus{border-color:var(--gold);background:#fff;outline:none;}

@media (max-width: 600px) {
  .dg-box { padding: 24px 16px; }
  .dg-qtext { font-size: 18px; min-height: 50px; margin-bottom: 24px; }
  .dg-opt { padding: 14px 16px; font-size: 15px; }
  .dg-line { padding: 24px 16px; border-radius: 12px; }
  .dg-weak { padding: 20px 16px; }
  .dg-contact-btn, .dg-line-btn { width: 100%; max-width: 100%; }
  .dg-num b { font-size: 48px; }
  .dg-gauge { width: 160px; height: 160px; }
}
