/* ═══════════════════════════════════════════════════════════════════════════
   Simulator — shared styles for the generated department landing pages
   (photovoltaique-alpilles / photovoltaique-vaucluse).

   The homepage (public/index.html) keeps its own inline copy of these rules
   (byte-for-byte the same visual system); this file is the reusable version
   loaded by the Rust-generated pillar pages via templates/page.html. Design
   tokens (:root), .glass, .cta-btn and .eyebrow already ship in page.html.
   Keep the component rules below in sync with index.html's Simulator block.
   ═══════════════════════════════════════════════════════════════════════════ */

@keyframes pulseDot{0%{box-shadow:0 0 0 0 rgba(99,209,140,0.55)}70%{box-shadow:0 0 0 7px rgba(99,209,140,0)}100%{box-shadow:0 0 0 0 rgba(99,209,140,0)}}

/* ── Embedded section wrapper (replaces the homepage .section/.wrap shell) ── */
.sim-embed{margin:clamp(30px,5vw,48px) 0 clamp(20px,3vw,32px);text-align:center;}
.sim-embed .eyebrow{justify-content:center;}
.sim-embed h2{font-family:'Poppins',sans-serif;font-weight:700;font-size:clamp(24px,2.9vw,34px);line-height:1.14;
  letter-spacing:-0.02em;color:var(--paper-bright);margin:10px 0 0;text-wrap:balance;}
.sim-embed .sim-lead{font-size:clamp(15px,1.15vw,17px);line-height:1.6;color:rgba(246,245,238,0.82);
  max-width:60ch;margin:12px auto 0;}

/* ── Simulator card + state machine ── */
.sim-card{position:relative;background:var(--panel);border:1px solid rgba(255,255,255,0.16);border-radius:20px;
  padding:clamp(20px,3vw,34px);box-shadow:inset 0 1px 0 rgba(255,255,255,0.14),var(--shadow-card);max-width:760px;margin:26px auto 0;
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);text-align:left;}
.sim-card::after{content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:20px 20px 0 0;
  background:linear-gradient(90deg,var(--ochre),var(--rust));pointer-events:none;}
.sim-progress{display:flex;gap:8px;list-style:none;margin:0 0 22px;padding:0;counter-reset:step;}
.sim-progress li{flex:1;display:flex;align-items:center;gap:8px;font-family:'Poppins',sans-serif;font-weight:600;font-size:12px;
  color:rgba(246,245,238,0.5);counter-increment:step;min-width:0;}
.sim-progress li::before{content:counter(step);width:26px;height:26px;border-radius:50%;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;
  border:1.5px solid rgba(255,255,255,0.3);font-size:12px;color:rgba(246,245,238,0.6);background:transparent;}
.sim-progress li[data-done]::before{background:var(--ochre);border-color:var(--ochre);color:#1b1510;content:"✓";}
.sim-progress li[aria-current="step"]{color:var(--paper-bright);}
.sim-progress li[aria-current="step"]::before{border-color:var(--gold);color:var(--gold);}
.sim-progress .pl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sim-viewport{min-height:300px;}
.sim-step[hidden],.sim-panel[hidden]{display:none;}
fieldset.sim-step{border:none;margin:0;padding:0;}
.sim-step legend,.sim-h{font-family:'Poppins',sans-serif;font-weight:600;font-size:18px;color:var(--paper-bright);margin:0 0 4px;padding:0;}
.sim-hint{font-size:13.5px;color:rgba(246,245,238,0.6);margin:0 0 16px;}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;}
.field label{font-family:'Poppins',sans-serif;font-weight:600;font-size:13.5px;color:rgba(246,245,238,0.85);}
.req{color:var(--gold-2);}
.note{font-size:12px;color:rgba(246,245,238,0.55);line-height:1.5;}
.control{background:rgba(20,16,12,0.55);border:1px solid rgba(255,255,255,0.2);border-radius:12px;color:var(--paper);
  font-family:'Mulish',sans-serif;font-size:16px;padding:13px 14px;width:100%;min-height:48px;}
.control:focus{border-color:var(--gold);outline:none;}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;}
.opt-group{display:flex;flex-wrap:wrap;gap:10px;margin:2px 0 14px;}
.radio-card{position:relative;display:inline-flex;flex-direction:column;gap:2px;align-items:flex-start;justify-content:center;
  padding:12px 16px;min-height:48px;border-radius:12px;border:1.5px solid rgba(255,255,255,0.2);cursor:pointer;
  background:rgba(20,16,12,0.45);transition:border-color .15s,background .15s;flex:1 1 100px;}
.radio-card input{position:absolute;opacity:0;pointer-events:none;}
.radio-card .rc-t{font-family:'Poppins',sans-serif;font-weight:600;font-size:15px;color:var(--paper);}
.radio-card .rc-s{font-size:11.5px;color:rgba(246,245,238,0.6);}
.radio-card:hover{border-color:rgba(230,180,92,0.6);}
.radio-card:has(input:checked){border-color:var(--gold);background:rgba(198,134,46,0.14);}
.radio-card:has(input:checked) .rc-t{color:var(--gold);}
.radio-card:has(input:focus-visible){outline:2px solid var(--gold);outline-offset:3px;}
.sim-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:20px;flex-wrap:wrap;}
.ghost-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;min-height:44px;border:1.5px solid rgba(255,255,255,0.3);
  border-radius:var(--r-pill);background:transparent;color:var(--paper);font-family:'Poppins',sans-serif;font-weight:600;font-size:14px;
  cursor:pointer;transition:border-color .15s,color .15s;}
.ghost-btn:hover{border-color:var(--gold);color:var(--gold);}
.err{font-size:12.5px;color:#F0A24E;min-height:16px;display:block;}
.sim-result-head{display:flex;align-items:center;gap:8px;margin-bottom:12px;}
.live-dot{width:8px;height:8px;border-radius:50%;background:var(--green);animation:pulseDot 2s infinite;}
.sim-figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin:14px 0 6px;}
.sim-fig .v{font-family:'Poppins',sans-serif;font-weight:700;font-size:clamp(22px,2.4vw,30px);letter-spacing:-0.02em;color:var(--paper-bright);white-space:nowrap;}
.sim-fig .v.savings{color:var(--green);}
.sim-fig .l{font-size:12px;color:rgba(246,245,238,0.62);margin-top:2px;}
.hyp{font-size:12.5px;color:rgba(246,245,238,0.6);line-height:1.55;margin:10px 0 0;}
.consent{display:flex;gap:10px;align-items:flex-start;margin:6px 0 2px;}
.consent input{width:20px;height:20px;margin-top:2px;accent-color:var(--rust);flex-shrink:0;}
.consent label{font-size:13px;line-height:1.5;color:rgba(246,245,238,0.78);}
.consent a{color:var(--gold);text-decoration:underline;text-underline-offset:2px;}
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}
.sim-trust{display:flex;gap:16px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,0.14);}
.sim-trust .mi{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:rgba(246,245,238,0.72);}

@media (prefers-reduced-motion: reduce){
  .live-dot{animation:none;}
  .ghost-btn,.radio-card{transition:none;}
}
