/* ============================================================================
   VOICE-DNA LEADMAGNET · Zusatz-Styles auf theme.css (Summer-Camp-Skin)
   Formular-Karte (2 Schritte) · Sektionen-Grid · Danke-Progress · Ergebnis
   ============================================================================ */

/* ---- Hero-Formular-Karte (sitzt im hero-optin Media-Slot) ---------------- */
.vd-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-soft);
  padding: 26px 24px 22px;
  width: 100%;
}
.vd-card .vd-card-title { font-family: var(--font-head); font-size: 21px; line-height: 1.25; margin: 0 0 4px; color: var(--text); }
.vd-card .vd-card-sub { font-size: 14px; color: var(--text-soft); margin: 0 0 16px; }

/* Schritt-Anzeige oben in der Karte */
.vd-stepline { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; font-size: 12.5px; font-weight: 600; color: var(--text-faint); }
.vd-stepline .sl-dot { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--surface-2); border: 1px solid var(--line-strong); color: var(--text-soft); font-size: 12.5px; }
.vd-stepline .sl-dot.on { background: var(--accent); border-color: var(--accent); color: #1F2A44; }
.vd-stepline .sl-dot.done { background: var(--accent-tint); border-color: var(--accent); color: var(--accent-deep); }
.vd-stepline .sl-bar { flex: 1; height: 2px; background: var(--line); border-radius: 2px; overflow: hidden; }
.vd-stepline .sl-bar span { display: block; height: 100%; width: 0; background: var(--accent); transition: width 0.4s var(--ease); }
.vd-stepline.step-2 .sl-bar span { width: 100%; }

.vd-step-panel { display: none; }
.vd-step-panel.on { display: block; animation: vdFade 0.35s var(--ease-out); }
@keyframes vdFade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.vd-mailnote {
  display: flex; gap: 10px; align-items: flex-start;
  background: var(--accent-tint); border: 1px solid rgba(212, 175, 55, 0.45);
  border-radius: var(--radius-xs); padding: 10px 12px; margin: 2px 0 14px;
  font-size: 13.5px; color: var(--text); line-height: 1.5;
}
.vd-mailnote .mn-ic { flex: 0 0 auto; }

.vd-consent { display: flex; gap: 9px; align-items: flex-start; font-size: 12.5px; color: var(--text-soft); margin: 12px 0 0; line-height: 1.5; cursor: pointer; }
.vd-consent input { margin-top: 3px; accent-color: var(--accent); flex: 0 0 auto; }
.vd-consent a { color: var(--accent-deep); }

.vd-back { background: none; border: 0; padding: 0; margin-top: 12px; font-size: 13px; color: var(--text-faint); cursor: pointer; text-decoration: underline; font-family: var(--font-body); }
.vd-back:hover { color: var(--text-soft); }

/* ---- Sektionen-Grid („Das steckt in deiner Voice-DNA") -------------------- */
.vd-dna-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 8px; }
@media (max-width: 980px) { .vd-dna-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .vd-dna-grid { grid-template-columns: 1fr; } }
.vd-dna-item {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-xs);
  padding: 16px 16px 14px; box-shadow: var(--shadow-card);
}
.vd-dna-item .nr { font-family: var(--font-head); font-size: 13px; color: var(--accent-deep); display: block; margin-bottom: 4px; }
.vd-dna-item h3 { font-size: 15.5px; margin: 0 0 4px; font-family: var(--font-body); font-weight: 700; color: var(--text); }
.vd-dna-item p { font-size: 13.5px; color: var(--text-soft); margin: 0; line-height: 1.55; }
.vd-dna-item.gold { background: var(--contrast); border-color: var(--contrast); }
.vd-dna-item.gold .nr { color: var(--accent-soft); }
.vd-dna-item.gold h3 { color: var(--on-dark); }
.vd-dna-item.gold p { color: var(--on-dark-soft); }

/* ---- Danke-Seite: Progress ------------------------------------------------ */
.vd-progress-card {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-sm);
  box-shadow: var(--shadow-soft); padding: 30px 28px; max-width: 660px; margin: 0 auto;
}
@media (max-width: 640px) { .vd-progress-card { padding: 24px 18px; } }

.vd-spinner {
  width: 46px; height: 46px; border-radius: 50%; margin: 0 auto 18px;
  border: 4px solid var(--accent-tint); border-top-color: var(--accent);
  animation: vdSpin 0.9s linear infinite;
}
@keyframes vdSpin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .vd-spinner { animation-duration: 2.4s; } }

.vd-steps-list { list-style: none; margin: 22px 0 0; padding: 0; text-align: left; }
.vd-steps-list li {
  display: flex; gap: 12px; align-items: flex-start; padding: 10px 4px;
  border-bottom: 1px dashed var(--line); font-size: 15px; color: var(--text-faint);
  transition: color 0.4s var(--ease);
}
.vd-steps-list li:last-child { border-bottom: 0; }
.vd-steps-list .st-ic {
  flex: 0 0 auto; width: 24px; height: 24px; border-radius: 50%;
  border: 2px solid var(--line-strong); display: grid; place-items: center;
  font-size: 12px; color: transparent; background: transparent; margin-top: 1px;
  transition: all 0.4s var(--ease);
}
.vd-steps-list li.active { color: var(--text); font-weight: 600; }
.vd-steps-list li.active .st-ic { border-color: var(--accent); position: relative; }
.vd-steps-list li.active .st-ic::after {
  content: ""; position: absolute; inset: 3px; border-radius: 50%;
  background: var(--accent); animation: vdPulse 1.1s ease-in-out infinite;
}
@keyframes vdPulse { 0%, 100% { transform: scale(0.55); opacity: 0.5; } 50% { transform: scale(1); opacity: 1; } }
.vd-steps-list li.done { color: var(--text-soft); }
.vd-steps-list li.done .st-ic { background: var(--accent); border-color: var(--accent); color: #1F2A44; }

/* ---- Danke-Seite: Ergebnis ------------------------------------------------ */
.vd-result-actions { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin: 22px 0 6px; }
.vd-copy-done { display: block; font-size: 13.5px; color: var(--accent-deep); font-weight: 600; margin-top: 8px; }

.vd-prompt-box {
  background: var(--surface-2); border: 1px solid rgba(212, 175, 55, 0.5); border-radius: var(--radius-xs);
  padding: 18px; margin: 14px 0 10px; text-align: left;
  font-family: 'Courier New', monospace; font-size: 12.5px; line-height: 1.6;
  white-space: pre-wrap; max-height: 300px; overflow-y: auto; color: var(--text);
}

.vd-anleitung { counter-reset: vdstep; list-style: none; margin: 18px 0 0; padding: 0; text-align: left; }
.vd-anleitung > li { position: relative; padding: 0 0 18px 52px; }
.vd-anleitung > li::before {
  counter-increment: vdstep; content: counter(vdstep);
  position: absolute; left: 0; top: 0; width: 36px; height: 36px; border-radius: 50%;
  background: var(--contrast); color: var(--accent-soft); font-family: var(--font-head);
  font-size: 17px; display: grid; place-items: center;
}
.vd-anleitung h3 { margin: 4px 0 6px; font-size: 17px; }
.vd-anleitung p { margin: 0 0 6px; color: var(--text-soft); font-size: 15px; }

.vd-hidden { display: none !important; }

/* Kleine Status-Zeile unter der Progress-Karte */
.vd-substatus { font-size: 13.5px; color: var(--text-faint); margin-top: 14px; }

/* Fehler-/Privat-Karten */
.vd-issue-card {
  background: var(--terra-tint); border: 1px solid rgba(201, 111, 74, 0.4);
  border-radius: var(--radius-sm); padding: 24px 22px; max-width: 660px; margin: 0 auto;
}
.vd-issue-card h2 { font-size: 22px; margin: 0 0 8px; }
.vd-issue-card p { color: var(--text-soft); font-size: 15px; }
