/* ============================================================
   Probabilité FIRE — Styles
   dividendes.ch
   ============================================================ */

:root {
  --pfire-bg:           #0d1b2a;
  --pfire-card:         #152233;
  --pfire-card-hover:   #1c2f45;
  --pfire-card-sel:     #1a3a5c;
  --pfire-border:       #243650;
  --pfire-border-sel:   #e63946;
  --pfire-accent:       #e63946;
  --pfire-accent-dim:   rgba(230,57,70,0.15);
  --pfire-text:         #dce8f0;
  --pfire-text-muted:   #7a99b2;
  --pfire-text-sub:     #5a7a94;
  --pfire-green:        #2ecc71;
  --pfire-amber:        #f39c12;
  --pfire-red:          #e74c3c;
  --pfire-radius:       10px;
  --pfire-radius-sm:    6px;
  --pfire-transition:   0.2s ease;
  --pfire-font-sans:    'Georgia', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --pfire-font-serif:   Georgia, 'Times New Roman', serif;
}

/* ── Conteneur principal ── */
.pfire-wrap {
  background:    var(--pfire-bg);
  color:         var(--pfire-text);
  border-radius: var(--pfire-radius);
  padding:       2.5rem 2rem;
  max-width:     720px;
  margin:        2rem auto;
  font-family:   var(--pfire-font-sans);
  font-size:     0.97rem;
  line-height:   1.6;
  box-shadow:    0 4px 40px rgba(0,0,0,0.45);
}

/* ── Barre de progression ── */
.pfire-progress-wrap {
  margin-bottom: 2.5rem;
}

.pfire-progress-track {
  height:        4px;
  background:    var(--pfire-border);
  border-radius: 2px;
  margin-bottom: 1rem;
  overflow:      hidden;
}

.pfire-progress-bar {
  height:        100%;
  background:    var(--pfire-accent);
  border-radius: 2px;
  width:         0%;
  transition:    width 0.5s ease;
}

.pfire-progress-steps {
  display:         flex;
  gap:             0.5rem;
  justify-content: center;
  margin-bottom:   0.5rem;
}

.pfire-step-dot {
  width:           28px;
  height:          28px;
  border-radius:   50%;
  background:      var(--pfire-border);
  color:           var(--pfire-text-muted);
  font-size:       0.8rem;
  font-weight:     600;
  display:         flex;
  align-items:     center;
  justify-content: center;
  transition:      var(--pfire-transition);
}

.pfire-step-dot.active {
  background: var(--pfire-accent);
  color:      #fff;
}

.pfire-step-dot.done {
  background: var(--pfire-green);
  color:      #fff;
}

.pfire-progress-label {
  text-align:  center;
  font-size:   0.82rem;
  color:       var(--pfire-text-muted);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* ── Étapes ── */
.pfire-step {
  display: none;
  animation: pfireIn 0.3s ease;
}

.pfire-step.active {
  display: block;
}

@keyframes pfireIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ── Titres d'étapes ── */
.pfire-step-title {
  font-family:   var(--pfire-font-serif);
  font-size:     1.6rem;
  font-weight:   700;
  color:         #fff;
  margin:        0 0 0.3rem;
  line-height:   1.25;
}

.pfire-step-subtitle {
  color:         var(--pfire-text-muted);
  font-size:     0.9rem;
  margin:        0 0 2rem;
}

/* ── Bloc question ── */
.pfire-question {
  margin-bottom: 2rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--pfire-border);
}

.pfire-question:last-of-type {
  border-bottom: none;
}

.pfire-q-label {
  display:       block;
  font-weight:   600;
  color:         var(--pfire-text);
  margin-bottom: 1rem;
  font-size:     0.97rem;
  line-height:   1.5;
}

.pfire-q-label em {
  font-weight:  400;
  color:        var(--pfire-text-muted);
  font-style:   normal;
}

/* ── Sliders ── */
.pfire-slider-wrap {
  display:     flex;
  align-items: center;
  gap:         1rem;
}

.pfire-slider {
  flex:             1;
  -webkit-appearance: none;
  appearance:       none;
  height:           4px;
  background:       var(--pfire-border);
  border-radius:    2px;
  outline:          none;
  cursor:           pointer;
}

.pfire-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance:         none;
  width:              20px;
  height:             20px;
  border-radius:      50%;
  background:         var(--pfire-accent);
  cursor:             pointer;
  box-shadow:         0 0 0 4px var(--pfire-accent-dim);
  transition:         box-shadow var(--pfire-transition);
}

.pfire-slider::-webkit-slider-thumb:hover {
  box-shadow: 0 0 0 6px var(--pfire-accent-dim);
}

.pfire-slider::-moz-range-thumb {
  width:        20px;
  height:       20px;
  border-radius: 50%;
  background:   var(--pfire-accent);
  cursor:       pointer;
  border:       none;
}

.pfire-slider-display {
  min-width:   70px;
  text-align:  right;
  font-weight: 700;
  font-size:   1.1rem;
  color:       var(--pfire-accent);
  white-space: nowrap;
}

.pfire-slider-scale {
  display:         flex;
  justify-content: space-between;
  margin-top:      0.4rem;
  font-size:       0.75rem;
  color:           var(--pfire-text-sub);
}

/* ── Radio / Checkbox grilles ── */
.pfire-radio-grid {
  display:               grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap:                   0.6rem;
}

.pfire-radio-list {
  display:        flex;
  flex-direction: column;
  gap:            0.5rem;
}

.pfire-checkbox-grid {
  display:        flex;
  flex-direction: column;
  gap:            0.5rem;
}

/* ── Radio card ── */
.pfire-radio-label,
.pfire-vehicle-label {
  cursor:   pointer;
  display:  block;
  position: relative;
}

.pfire-radio-label input,
.pfire-vehicle-label input {
  position: absolute;
  opacity:  0;
  width:    0;
  height:   0;
}

.pfire-radio-card {
  display:       block;
  padding:       0.75rem 1rem;
  background:    var(--pfire-card);
  border:        1.5px solid var(--pfire-border);
  border-radius: var(--pfire-radius-sm);
  transition:    all var(--pfire-transition);
  cursor:        pointer;
}

.pfire-radio-card:hover {
  background:    var(--pfire-card-hover);
  border-color:  var(--pfire-accent);
}

.pfire-radio-label.selected .pfire-radio-card {
  background:    var(--pfire-card-sel);
  border-color:  var(--pfire-accent);
  box-shadow:    0 0 0 3px var(--pfire-accent-dim);
}

.pfire-radio-title {
  display:     block;
  font-weight: 500;
  color:       var(--pfire-text);
  font-size:   0.93rem;
}

.pfire-radio-sub {
  display:     block;
  font-size:   0.78rem;
  color:       var(--pfire-text-muted);
  margin-top:  0.1rem;
}

/* ── Checkbox card (véhicules) ── */
.pfire-check-card {
  display:       flex;
  align-items:   center;
  gap:           0.75rem;
  padding:       0.7rem 1rem;
  background:    var(--pfire-card);
  border:        1.5px solid var(--pfire-border);
  border-radius: var(--pfire-radius-sm);
  transition:    all var(--pfire-transition);
  cursor:        pointer;
}

.pfire-check-card:hover {
  background:   var(--pfire-card-hover);
  border-color: var(--pfire-accent);
}

.pfire-vehicle-label.selected .pfire-check-card {
  background:  var(--pfire-card-sel);
  border-color: var(--pfire-accent);
  box-shadow:  0 0 0 3px var(--pfire-accent-dim);
}

.pfire-check-icon {
  font-size: 1.2rem;
  flex-shrink: 0;
}

.pfire-check-title {
  flex:        1;
  font-weight: 500;
  font-size:   0.92rem;
  color:       var(--pfire-text);
}



/* ── Navigation ── */
.pfire-nav {
  display:         flex;
  gap:             1rem;
  justify-content: flex-end;
  margin-top:      2rem;
  align-items:     center;
}

.pfire-btn {
  display:         inline-flex;
  align-items:     center;
  gap:             0.4rem;
  padding:         0.75rem 1.75rem;
  border:          none;
  border-radius:   var(--pfire-radius-sm);
  font-size:       0.95rem;
  font-weight:     600;
  cursor:          pointer;
  transition:      all var(--pfire-transition);
  font-family:     inherit;
}

.pfire-btn-next,
.pfire-btn-submit {
  background: var(--pfire-accent);
  color:      #fff;
}

.pfire-btn-next:hover,
.pfire-btn-submit:hover {
  background:  #c1121f;
  transform:   translateY(-1px);
  box-shadow:  0 4px 15px rgba(230,57,70,0.35);
}

.pfire-btn-secondary {
  background: transparent;
  color:      var(--pfire-text-muted);
  border:     1.5px solid var(--pfire-border);
}

.pfire-btn-secondary:hover {
  border-color: var(--pfire-accent);
  color:        var(--pfire-accent);
}

/* ── Erreur ── */
.pfire-error {
  display:       none;
  background:    rgba(231,76,60,0.12);
  border:        1px solid var(--pfire-red);
  border-radius: var(--pfire-radius-sm);
  color:         #ff6b6b;
  font-size:     0.87rem;
  padding:       0.6rem 1rem;
  margin-top:    1rem;
}

/* ══════════════════════════════════════════
   RÉSULTATS
══════════════════════════════════════════ */
.pfire-results-inner {
  animation: pfireIn 0.4s ease;
}

/* Probabilité */
.pfire-prob-section {
  text-align:    center;
  margin-bottom: 2.5rem;
}

.pfire-prob-label {
  font-size:      0.82rem;
  color:          var(--pfire-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom:  1.5rem;
}

.pfire-prob-circle {
  position:        relative;
  width:           180px;
  height:          180px;
  margin:          0 auto 1rem;
}

.pfire-gauge {
  width:     100%;
  height:    100%;
  transform: rotate(-90deg);
}

.pfire-gauge circle {
  transition: stroke-dashoffset 1.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.pfire-prob-number {
  position:        absolute;
  top:             50%;
  left:            50%;
  transform:       translate(-50%, -50%);
  font-family:     var(--pfire-font-serif);
  font-size:       2.6rem;
  font-weight:     700;
  color:           #fff;
  line-height:     1;
}

.pfire-timeline {
  font-size:  0.9rem;
  color:      var(--pfire-text-muted);
  margin-top: 0.75rem;
}

.pfire-timeline strong {
  color: var(--pfire-text);
}

/* Profil */
.pfire-profile-section {
  background:    var(--pfire-card);
  border:        1.5px solid var(--pfire-border);
  border-radius: var(--pfire-radius);
  padding:       1.75rem;
  margin-bottom: 2rem;
  text-align:    center;
}

.pfire-profile-emoji {
  font-size:     3rem;
  margin-bottom: 0.5rem;
}

.pfire-profile-name {
  font-family:   var(--pfire-font-serif);
  font-size:     1.5rem;
  font-weight:   700;
  color:         #fff;
  margin-bottom: 0.3rem;
}

.pfire-profile-tagline {
  font-size:     1rem;
  color:         var(--pfire-accent);
  font-weight:   600;
  margin-bottom: 0.75rem;
}

.pfire-profile-desc {
  font-size:  0.92rem;
  color:      var(--pfire-text-muted);
  max-width:  520px;
  margin:     0 auto;
  line-height: 1.65;
}

/* Breakdown */
.pfire-breakdown-section {
  margin-bottom: 2rem;
}

.pfire-section-title {
  font-family:   var(--pfire-font-serif);
  font-size:     1.1rem;
  color:         #fff;
  margin:        0 0 1rem;
  font-weight:   600;
}

.pfire-breakdown-item {
  margin-bottom: 1rem;
}

.pfire-breakdown-header {
  display:         flex;
  justify-content: space-between;
  align-items:     center;
  margin-bottom:   0.3rem;
  font-size:       0.88rem;
  color:           var(--pfire-text-muted);
}

.pfire-breakdown-score {
  font-weight: 600;
  color:       var(--pfire-text);
}

.pfire-bar-track {
  height:        6px;
  background:    var(--pfire-border);
  border-radius: 3px;
  overflow:      hidden;
}

.pfire-bar-fill {
  height:        100%;
  border-radius: 3px;
  width:         0%;
  transition:    width 1s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Literacy feedback */
.pfire-literacy-feedback {
  background:    var(--pfire-card);
  border:        1px solid var(--pfire-border);
  border-radius: var(--pfire-radius-sm);
  padding:       1rem 1.25rem;
  margin-bottom: 2rem;
  font-size:     0.87rem;
}

.pfire-literacy-feedback h4 {
  font-size:     0.82rem;
  color:         var(--pfire-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin:        0 0 0.75rem;
}

.pfire-lit-item {
  display:     flex;
  gap:         0.5rem;
  margin-bottom: 0.4rem;
  line-height: 1.4;
  color:       var(--pfire-text-muted);
}

.pfire-lit-item .icon { flex-shrink: 0; }

/* CTA */
.pfire-cta-section {
  margin-bottom: 1.5rem;
}

.pfire-cta-btn {
  display:       inline-block;
  background:    transparent;
  border:        1.5px solid var(--pfire-accent);
  color:         var(--pfire-accent);
  padding:       0.7rem 1.5rem;
  border-radius: var(--pfire-radius-sm);
  font-size:     0.9rem;
  font-weight:   600;
  text-decoration: none;
  transition:    all var(--pfire-transition);
}

.pfire-cta-btn:hover {
  background: var(--pfire-accent);
  color:      #fff;
  text-decoration: none;
}

/* Actions finales */
.pfire-actions {
  display:     flex;
  gap:         0.75rem;
  flex-wrap:   wrap;
  margin-top:  0.5rem;
}

.pfire-share-btn {
  flex:          1;
  padding:       0.65rem 1.25rem;
  background:    var(--pfire-card);
  border:        1.5px solid var(--pfire-border);
  border-radius: var(--pfire-radius-sm);
  color:         var(--pfire-text-muted);
  font-size:     0.88rem;
  font-weight:   500;
  cursor:        pointer;
  transition:    all var(--pfire-transition);
  font-family:   inherit;
}

.pfire-share-btn:hover {
  border-color: var(--pfire-accent);
  color:        var(--pfire-accent);
}

.pfire-restart-btn {
  padding:       0.65rem 1.25rem;
  background:    transparent;
  border:        1.5px solid var(--pfire-border);
  border-radius: var(--pfire-radius-sm);
  color:         var(--pfire-text-sub);
  font-size:     0.85rem;
  cursor:        pointer;
  transition:    all var(--pfire-transition);
  font-family:   inherit;
}

.pfire-restart-btn:hover {
  color:        var(--pfire-text-muted);
  border-color: var(--pfire-border-sel);
}

/* ── Responsive ── */
@media (max-width: 600px) {
  .pfire-wrap {
    padding: 1.5rem 1.1rem;
    margin:  1rem auto;
  }

  .pfire-step-title { font-size: 1.3rem; }
  .pfire-radio-grid { grid-template-columns: 1fr; }
  .pfire-nav { flex-direction: column-reverse; }
  .pfire-btn { width: 100%; justify-content: center; }
  .pfire-prob-circle { width: 150px; height: 150px; }
  .pfire-prob-number { font-size: 2rem; }
  .pfire-actions { flex-direction: column; }
  .pfire-share-btn { flex: none; }
}
