/* ============================================================
   Haftungsrechner Quiz — component styles
   Loaded by: landing pages (via layout-lp.php)
   Depends on: styles.css (LP design tokens must be defined)
   ============================================================ */

.quiz-section{background:var(--bg-white);padding:100px 40px}
.quiz-wrapper{max-width:720px;margin:0 auto;background:#fff;border-radius:20px;box-shadow:0 8px 40px rgba(0,0,0,.08);padding:48px 44px;position:relative}
.quiz-progress{margin-bottom:36px}
.quiz-progress-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.quiz-progress-label span{font-size:13px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px}
.quiz-progress-bar{height:8px;background:#eee;border-radius:4px;overflow:hidden}
.quiz-progress-fill{height:100%;border-radius:4px;background:var(--primary-purple);transition:width .5s cubic-bezier(.4,0,.2,1);width:0%}
.quiz-riskbar{margin-bottom:32px}
.quiz-riskbar-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);margin-bottom:8px}
.quiz-riskbar-track{height:14px;border-radius:7px;position:relative;background:linear-gradient(90deg,#28a745 0%,#ffc107 40%,#e67e22 65%,#dc3545 100%);overflow:visible}
.quiz-riskbar-thumb{position:absolute;top:50%;transform:translate(-50%,-50%);width:24px;height:24px;border-radius:50%;background:#fff;border:3px solid var(--text-dark);box-shadow:0 2px 8px rgba(0,0,0,.2);transition:left .6s cubic-bezier(.4,0,.2,1),border-color .4s;left:5%}
.quiz-riskbar-value{text-align:right;margin-top:6px;font-size:14px;font-weight:700;transition:color .4s;color:var(--success-green)}
.quiz-question{display:none;animation:quizFadeIn .35s ease}
.quiz-question.active{display:block}
@keyframes quizFadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.quiz-question h3{font-size:22px;font-weight:700;color:var(--text-dark);margin-bottom:8px;line-height:1.3}
.quiz-question .q-sub{font-size:14px;color:var(--text-muted);margin-bottom:28px}
.quiz-options{display:flex;flex-direction:column;gap:12px}
.quiz-opt{display:flex;align-items:center;gap:14px;padding:18px 20px;border-radius:12px;border:2px solid #e8e8e8;cursor:pointer;transition:all .2s;background:#fff}
.quiz-opt:hover{border-color:var(--primary-purple);background:rgba(48,10,255,.03)}
.quiz-opt.selected{border-color:var(--primary-purple);background:rgba(48,10,255,.06)}
.quiz-opt-radio{width:22px;height:22px;border-radius:50%;border:2px solid #ccc;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .2s}
.quiz-opt.selected .quiz-opt-radio{border-color:var(--primary-purple)}
.quiz-opt.selected .quiz-opt-radio::after{content:'';width:12px;height:12px;border-radius:50%;background:var(--primary-purple)}
.quiz-opt-text{font-size:15px;font-weight:500;color:var(--text-dark)}
.quiz-opt-text small{display:block;font-size:13px;color:var(--text-muted);font-weight:400;margin-top:2px}
.quiz-nav{display:flex;justify-content:space-between;align-items:center;margin-top:32px;padding-top:24px;border-top:1px solid rgba(0,0,0,.06)}
.quiz-btn-back{background:none;border:none;cursor:pointer;font-size:14px;font-weight:600;color:var(--text-muted);padding:10px 16px;border-radius:8px;transition:all .2s}
.quiz-btn-back:hover{background:#f0f0f0;color:var(--text-dark)}
.quiz-btn-back:disabled{opacity:0;pointer-events:none}
.quiz-btn-next{background:var(--primary-purple);color:#fff;border:none;padding:14px 32px;border-radius:10px;cursor:pointer;font-size:15px;font-weight:700;transition:all .25s;box-shadow:0 4px 16px rgba(48,10,255,.25);opacity:.4;pointer-events:none}
.quiz-btn-next.enabled{opacity:1;pointer-events:auto}
.quiz-btn-next.enabled:hover{background:#2508CC;transform:translateY(-1px)}
.quiz-result{display:none;animation:quizFadeIn .5s ease}
.quiz-result.active{display:block}
.result-score-ring{width:180px;height:180px;margin:0 auto 28px;position:relative}
.result-score-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.result-score-ring circle{fill:none;stroke-width:10;cx:90;cy:90;r:78}
.result-score-ring .ring-bg{stroke:#eee}
.result-score-ring .ring-fill{stroke:var(--danger-red);stroke-dasharray:490;stroke-dashoffset:490;stroke-linecap:round;transition:stroke-dashoffset 1.5s cubic-bezier(.4,0,.2,1),stroke .5s}
.result-score-number{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:48px;font-weight:800;color:var(--danger-red)}
.result-score-number small{font-size:18px;font-weight:600;color:var(--text-muted)}
.result-label{text-align:center;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:2px;padding:8px 20px;border-radius:6px;display:inline-block;margin:0 auto 24px}
.result-label.critical{background:rgba(220,53,69,.1);color:var(--danger-red)}
.result-label.high{background:rgba(230,126,34,.1);color:var(--accent-orange)}
.result-label.medium{background:rgba(255,193,7,.15);color:#d4a017}
.result-label.low{background:rgba(40,167,69,.1);color:var(--success-green)}
.result-summary{font-size:16px;color:var(--text-muted);text-align:center;line-height:1.6;margin-bottom:36px;max-width:520px;margin-left:auto;margin-right:auto}
.result-categories{margin-bottom:36px}
/* Component group headers */
.result-component-header{display:flex;align-items:center;justify-content:space-between;padding:14px 0 10px;border-top:2px solid rgba(0,0,0,.08);margin-top:8px}
.result-component-header:first-child{margin-top:0;border-top:none}
.result-component-name{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.4px;color:var(--text-dark)}
/* Sub-category rows indented under component headers */
.result-cat{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid rgba(0,0,0,.04)}
.result-cat:last-child{border-bottom:none}
.result-cat-sub{padding-left:14px}
.result-cat-name{font-size:14px;font-weight:500;color:var(--text-dark)}
.result-cat-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;padding:4px 12px;border-radius:4px}
.badge-critical{background:rgba(220,53,69,.1);color:var(--danger-red)}
.badge-high{background:rgba(230,126,34,.1);color:var(--accent-orange)}
.badge-medium{background:rgba(255,193,7,.15);color:#d4a017}
.badge-low{background:rgba(40,167,69,.1);color:var(--success-green)}
.result-cta-box{background:linear-gradient(135deg,var(--hero-teal),var(--hero-purple));border-radius:16px;padding:40px 36px;text-align:center;color:#fff}
.result-cta-box h3{font-size:22px;font-weight:800;margin-bottom:8px;text-transform:uppercase}
.result-cta-box p{font-size:15px;opacity:.85;margin-bottom:24px}
.lead-form{display:flex;flex-direction:column;gap:12px;max-width:400px;margin:0 auto}
.lead-input{padding:14px 18px;border-radius:10px;border:2px solid rgba(255,255,255,.25);background:rgba(255,255,255,.12);color:#fff;font-size:15px;font-family:inherit;outline:none;transition:border-color .2s}
.lead-input::placeholder{color:rgba(255,255,255,.5)}
.lead-input:focus{border-color:rgba(255,255,255,.6);background:rgba(255,255,255,.18)}
.lead-form-hint{display:none;margin:0;padding:12px 16px;border-radius:10px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.4);color:#fff;font-size:14px;font-weight:600;text-align:center}
.lead-form-hint.lead-form-hint--visible{display:block}
.lead-submit{background:#fff;color:var(--primary-purple);border:none;padding:16px;border-radius:10px;font-size:16px;font-weight:700;cursor:pointer;transition:all .25s;font-family:inherit}
.lead-submit:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.2)}
.lead-or{font-size:13px;opacity:.6;text-transform:uppercase;letter-spacing:1px;margin:4px 0}
.lead-download{display:inline-block;color:#fff;text-decoration:underline;font-size:14px;font-weight:600;cursor:pointer;background:none;border:none;font-family:inherit;transition:opacity .2s}
.lead-download:hover{opacity:.8}
.lead-success{display:none;text-align:center;padding:20px}
.lead-success.active{display:block}
.lead-success h4{font-size:20px;font-weight:700;color:var(--text-dark);margin-bottom:8px}
.lead-success p{font-size:15px;color:var(--text-muted)}

@media (max-width: 640px) {
    .quiz-wrapper{padding:32px 20px}
    .quiz-question h3{font-size:19px}
}
