.ground-type-grid { display: grid; grid-template-columns: 1fr; gap: 8px; }
@media (min-width: 480px) { .ground-type-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 700px) { .ground-type-grid { grid-template-columns: repeat(4, 1fr); } }

.gtype-card {
  border: 2px solid var(--border); border-radius: var(--r);
  padding: 14px 12px; cursor: pointer; transition: all .15s;
  background: #fafaf8; position: relative; display: block;
}
.gtype-card:hover    { border-color: var(--accent); }
.gtype-card.gtype-card input[type="radio"] { display: none; }
.gtype-check { position: absolute; top:8px; right:10px; color:var(--accent); font-weight:700; font-size:12px; opacity:0; transition:opacity .15s; }
.gtype-card.selected .gtype-check { opacity:1; }
.gtype-icon  { font-size:22px; margin-bottom:5px; }
.gtype-name  { font-size:13px; font-weight:700; color:var(--ink); margin-bottom:2px; }
.gtype-desc  { font-size:11px; color:var(--ink3); }
.gtype-risk  { display:inline-block; font-size:12px; font-weight:700; padding:2px 8px; border-radius:var(--r-full); margin-top:5px; }
.risk-low  { background:var(--green-light); color:var(--green); }
.risk-mid  { background:#fff8e0; color:#c07000; }
.risk-high { background:var(--accent-light); color:var(--accent); }

.method-compare { display: grid; grid-template-columns: 1fr; gap: 12px; margin-bottom:14px; }
@media (min-width:520px) { .method-compare { grid-template-columns: repeat(3, 1fr); } }
.method-card {
  background: var(--white); border: 2px solid var(--border);
  border-radius: var(--r-lg); padding: 16px;
}
.method-card.recommended { border-color: var(--accent); }
.method-card .rec-badge {
  background: var(--accent); color: #fff; font-size:12px; font-weight:700;
  padding:2px 10px; border-radius:var(--r-full); display:inline-block; margin-bottom:8px;
}
.mc-name  { font-size:14px; font-weight:700; color:var(--ink); margin-bottom:4px; }
.mc-price { font-family:'DM Mono',monospace; font-size:16px; font-weight:700; color:var(--accent); margin-bottom:4px; }
.mc-note  { font-size:11px; color:var(--ink3); line-height:1.6; }
.mc-bars  { margin-top:8px; }
.mc-bar-row { display:flex; align-items:center; gap:6px; margin-bottom:3px; }
.mc-bar-label { font-size:12px; color:var(--ink3); width:44px; flex-shrink:0; }
.mc-bar-track { flex:1; height:6px; background:var(--border); border-radius:3px; overflow:hidden; }
.mc-bar-fill  { height:100%; border-radius:3px; }
.mc-bar-fill.g { background:var(--green); }
.mc-bar-fill.a { background:var(--accent); }
.mc-bar-fill.b { background:#3b82f6; }

.result-main-box {
  background: var(--primary);
  border-radius:var(--r-lg); padding:22px 16px;
  margin-bottom:14px; position:relative; overflow:hidden;
}
.result-main-box::before {
  content:''; position:absolute; top:-40px; right:-40px;
  width:160px; height:160px;
  background:radial-gradient(circle,rgba(107,159,212,.25),transparent 70%);
  pointer-events:none;
}
.rmb-label { font-size:11px; color:var(--primary-mid); font-family:'DM Mono',monospace; letter-spacing:.1em; text-transform:uppercase; margin-bottom:6px; }
.rmb-range { font-family:'Plus Jakarta Sans',sans-serif; font-size:clamp(24px,6vw,42px); font-weight:900; color:#fff; line-height:1.1; margin-bottom:4px; }
.rmb-range em { color:var(--primary-mid); font-style:normal; font-size:.55em; }
.rmb-sub  { color:rgba(255,255,255,0.55); font-size:12px; }

.warning-box {
  background:var(--accent-light); border:1px solid rgba(200,87,10,.25);
  border-radius:var(--r); padding:12px 16px;
  font-size:12px; color:var(--accent);
  display:flex; gap:8px; margin-bottom:14px;
}
.safe-box {
  background:var(--green-light); border:1px solid rgba(42,107,60,.2);
  border-radius:var(--r); padding:12px 16px;
  font-size:12px; color:#1a4a28;
  display:flex; gap:8px; margin-bottom:14px;
}
@media (min-width:480px) { }
/* gtype-card 選択スタイル */
.gtype-card.selected { border-color: var(--accent); background: var(--accent-light, #fff3ec); box-shadow: 0 0 0 1px var(--accent); }
.gtype-card.selected .gtype-name { color: var(--accent); font-weight: 700; }
