/*!
 * Simulateur DSNERGIE — styles
 * Tous les sélecteurs commencent par .dsn-sim:not(#dsn-x) : le ":not(#…)" donne un poids
 * d'identifiant aux règles, ce qui les protège des styles globaux du thème et du kit Elementor
 * (boutons, champs, titres) sans recourir à !important.
 */
@font-face{font-family:"DSN Outfit";font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/outfit-latin.woff2) format("woff2")}
@font-face{font-family:"DSN Plex";font-style:normal;font-weight:100 700;font-display:swap;src:url(../fonts/ibm-plex-sans-latin.woff2) format("woff2")}

.dsn-sim{
  --dsn-bg:#f3f6f8; --dsn-card:#ffffff; --dsn-ink:#122033; --dsn-ink-2:#4a5a6e; --dsn-line:#d9e1ea;
  --dsn-brand:#0a5c8a; --dsn-brand-2:#0c7bb5; --dsn-brand-soft:#e3f0f8; --dsn-on-brand:#ffffff;
  --dsn-sun:#f2a516; --dsn-sun-2:#e39a0f; --dsn-sun-soft:#fff3d6; --dsn-on-sun:#1c1608;
  --dsn-ok:#1f8a5b; --dsn-ok-soft:#e2f4ea; --dsn-badge-bg:#e2f4ea; --dsn-badge-ink:#1f8a5b; --dsn-warn:#b3550f; --dsn-warn-soft:#fdeedd;
  --dsn-radius:14px; --dsn-shadow:0 8px 28px rgba(18,32,51,.08);
  --dsn-font:"DSN Plex",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --dsn-font-title:"DSN Outfit","DSN Plex",system-ui,sans-serif;
  color-scheme:light;
}

.dsn-sim:not(#dsn-x){max-width:760px;margin:0 auto;color:var(--dsn-ink);font-family:var(--dsn-font);font-size:16px;line-height:1.5;text-align:left}
.dsn-sim:not(#dsn-x) *,.dsn-sim:not(#dsn-x) *::before,.dsn-sim:not(#dsn-x) *::after{box-sizing:border-box}
.dsn-sim:not(#dsn-x) .dsn-h1,.dsn-sim:not(#dsn-x) .dsn-h2,.dsn-sim:not(#dsn-x) .dsn-h3{font-family:var(--dsn-font-title);color:var(--dsn-ink);text-wrap:balance;margin:0;padding:0;letter-spacing:normal;text-transform:none;font-weight:600}
.dsn-sim:not(#dsn-x) p{margin:0}
.dsn-sim:not(#dsn-x) a{color:var(--dsn-brand);text-decoration:underline}

/* En-tête */
.dsn-sim:not(#dsn-x) .dsn-brand{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.dsn-sim:not(#dsn-x) .dsn-logo{font-family:var(--dsn-font-title);font-weight:700;font-size:22px;letter-spacing:.06em;color:var(--dsn-brand);line-height:1.2}
.dsn-sim:not(#dsn-x) .dsn-logo span{color:var(--dsn-sun)}
.dsn-sim:not(#dsn-x) .dsn-logo img{display:block;width:auto;max-width:100%;height:var(--dsn-logo-h,40px);object-fit:contain;margin:0;border:0;box-shadow:none;border-radius:0}
.dsn-sim:not(#dsn-x) .dsn-logo a{text-decoration:none;color:inherit}
.dsn-sim:not(#dsn-x) .dsn-badges{display:flex;gap:6px;flex-wrap:wrap}
.dsn-sim:not(#dsn-x) .dsn-badge{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border-radius:999px;background:var(--dsn-badge-bg);color:var(--dsn-badge-ink);line-height:1.4}

/* Carte */
.dsn-sim:not(#dsn-x) .dsn-card{background:var(--dsn-card);border-radius:var(--dsn-radius);box-shadow:var(--dsn-shadow);padding:28px;border:1px solid var(--dsn-line);min-height:220px}
@media (max-width:480px){.dsn-sim:not(#dsn-x) .dsn-card{padding:20px 16px}}
.dsn-sim:not(#dsn-x) .dsn-progress{display:flex;gap:6px;margin-bottom:22px}
.dsn-sim:not(#dsn-x) .dsn-progress i{flex:1;height:5px;border-radius:3px;background:var(--dsn-line);font-style:normal}
.dsn-sim:not(#dsn-x) .dsn-progress i.dsn-on{background:var(--dsn-brand)}
.dsn-sim:not(#dsn-x) .dsn-eyebrow{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--dsn-brand);margin-bottom:6px}
.dsn-sim:not(#dsn-x) .dsn-h1{font-size:26px;line-height:1.2;margin-bottom:6px;font-weight:700}
.dsn-sim:not(#dsn-x) .dsn-h2{font-size:22px;line-height:1.25;margin-bottom:6px}
.dsn-sim:not(#dsn-x) .dsn-h3{font-size:17px;line-height:1.3;margin-bottom:4px}
.dsn-sim:not(#dsn-x) .dsn-help{color:var(--dsn-ink-2);font-size:15px;margin:0 0 18px}
.dsn-sim:not(#dsn-x) .dsn-who{font-size:14px;color:var(--dsn-ink-2);margin:0 0 10px}

/* Tuiles projet */
.dsn-sim:not(#dsn-x) .dsn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.dsn-sim:not(#dsn-x) .dsn-tile{display:flex;flex-direction:column;gap:6px;align-items:flex-start;justify-content:flex-start;width:auto;height:auto;margin:0;padding:16px 14px;border:1.5px solid var(--dsn-line);border-radius:12px;background:var(--dsn-card);cursor:pointer;text-align:left;color:var(--dsn-ink);font:inherit;text-transform:none;letter-spacing:normal;box-shadow:none;white-space:normal;transition:border-color .15s,background .15s}
.dsn-sim:not(#dsn-x) .dsn-tile:hover,.dsn-sim:not(#dsn-x) .dsn-tile:focus{border-color:var(--dsn-brand-2);background:var(--dsn-card);color:var(--dsn-ink)}
.dsn-sim:not(#dsn-x) .dsn-tile.dsn-on{border-color:var(--dsn-brand);background:var(--dsn-brand-soft)}
.dsn-sim:not(#dsn-x) .dsn-tile svg{width:30px;height:30px;stroke:var(--dsn-brand);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dsn-sim:not(#dsn-x) .dsn-tile b{font-family:var(--dsn-font-title);font-weight:600;font-size:16px;line-height:1.3}
.dsn-sim:not(#dsn-x) .dsn-tile small{color:var(--dsn-ink-2);font-size:13px;line-height:1.35}

/* Questions */
.dsn-sim:not(#dsn-x) .dsn-q{display:grid;grid-template-columns:1fr auto;gap:8px 16px;align-items:center;padding:12px 0;border-bottom:1px solid var(--dsn-line)}
.dsn-sim:not(#dsn-x) .dsn-q:last-of-type{border-bottom:0}
.dsn-sim:not(#dsn-x) .dsn-q[hidden]{display:none}
.dsn-sim:not(#dsn-x) .dsn-q.dsn-q-wide{grid-template-columns:1fr}
@media (max-width:560px){.dsn-sim:not(#dsn-x) .dsn-q{grid-template-columns:1fr}}
.dsn-sim:not(#dsn-x) .dsn-q .dsn-t{font-weight:600;display:block;margin:0;color:var(--dsn-ink);font-size:16px}
.dsn-sim:not(#dsn-x) .dsn-q .dsn-sub{display:block;color:var(--dsn-ink-2);font-size:13px;font-weight:400}
.dsn-sim:not(#dsn-x) .dsn-opts{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
@media (max-width:560px){.dsn-sim:not(#dsn-x) .dsn-opts{justify-content:flex-start}}
.dsn-sim:not(#dsn-x) .dsn-opt{margin:0;padding:8px 16px;border:1.5px solid var(--dsn-line);border-radius:999px;background:var(--dsn-card);color:var(--dsn-ink);font:inherit;font-size:15px;font-weight:400;line-height:1.3;cursor:pointer;min-width:64px;width:auto;height:auto;text-transform:none;letter-spacing:normal;box-shadow:none;transition:border-color .15s,background .15s}
.dsn-sim:not(#dsn-x) .dsn-opt:hover,.dsn-sim:not(#dsn-x) .dsn-opt:focus{border-color:var(--dsn-brand-2);background:var(--dsn-card);color:var(--dsn-ink)}
.dsn-sim:not(#dsn-x) .dsn-opt.dsn-on,.dsn-sim:not(#dsn-x) .dsn-opt.dsn-on:hover,.dsn-sim:not(#dsn-x) .dsn-opt.dsn-on:focus{border-color:var(--dsn-brand);background:var(--dsn-brand-soft);color:var(--dsn-brand);font-weight:600}

/* Champs */
.dsn-sim:not(#dsn-x) .dsn-input{display:block;width:100%;max-width:100%;height:auto;min-height:0;margin:0;font:inherit;font-size:16px;line-height:1.4;padding:10px 12px;border:1.5px solid var(--dsn-line);border-radius:10px;background:var(--dsn-card);color:var(--dsn-ink);box-shadow:none;outline:0}
.dsn-sim:not(#dsn-x) .dsn-input:focus{border-color:var(--dsn-brand);background:var(--dsn-card);color:var(--dsn-ink);box-shadow:none}
.dsn-sim:not(#dsn-x) .dsn-input::placeholder{color:var(--dsn-ink-2);opacity:.7}
.dsn-sim:not(#dsn-x) .dsn-select{min-width:220px;appearance:none;-webkit-appearance:none;padding-right:34px;background-image:linear-gradient(45deg,transparent 50%,var(--dsn-ink-2) 50%),linear-gradient(135deg,var(--dsn-ink-2) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%;background-size:6px 6px;background-repeat:no-repeat;cursor:pointer}
.dsn-sim:not(#dsn-x) .dsn-select:focus{background-image:linear-gradient(45deg,transparent 50%,var(--dsn-ink-2) 50%),linear-gradient(135deg,var(--dsn-ink-2) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 12px) 50%;background-size:6px 6px;background-repeat:no-repeat}
@media (max-width:560px){.dsn-sim:not(#dsn-x) .dsn-select{min-width:0}}
.dsn-sim:not(#dsn-x) textarea.dsn-input{resize:vertical;min-height:80px}
.dsn-sim:not(#dsn-x) .dsn-unit{display:flex;align-items:center;gap:8px;justify-content:flex-end}
.dsn-sim:not(#dsn-x) .dsn-unit .dsn-input{max-width:140px;text-align:right}
.dsn-sim:not(#dsn-x) .dsn-unit span{color:var(--dsn-ink-2);font-size:14px}
.dsn-sim:not(#dsn-x) .dsn-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.dsn-sim:not(#dsn-x) .dsn-fields .dsn-full{grid-column:1/-1}
@media (max-width:520px){.dsn-sim:not(#dsn-x) .dsn-fields{grid-template-columns:1fr}}
.dsn-sim:not(#dsn-x) .dsn-fields label,.dsn-sim:not(#dsn-x) .dsn-msg label{display:block;font-weight:600;font-size:14.5px;margin:0 0 5px;color:var(--dsn-ink)}
.dsn-sim:not(#dsn-x) .dsn-fields label small,.dsn-sim:not(#dsn-x) .dsn-msg label small{color:var(--dsn-ink-2);font-weight:400}
.dsn-sim:not(#dsn-x) .dsn-msg{margin-top:18px}
.dsn-sim:not(#dsn-x) .dsn-fields .dsn-check{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:14px;color:var(--dsn-ink-2);cursor:pointer;margin:4px 0 0}
.dsn-sim:not(#dsn-x) .dsn-check input{width:18px;height:18px;margin:2px 0 0;flex:0 0 18px;accent-color:var(--dsn-brand)}
.dsn-sim:not(#dsn-x) .dsn-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Navigation / boutons */
.dsn-sim:not(#dsn-x) .dsn-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:26px;flex-wrap:wrap}
.dsn-sim:not(#dsn-x) .dsn-btn{display:inline-block;width:auto;height:auto;margin:0;font:inherit;font-size:16px;font-weight:600;line-height:1.3;padding:12px 20px;border-radius:10px;border:1.5px solid transparent;cursor:pointer;text-transform:none;letter-spacing:normal;text-decoration:none;box-shadow:none;transition:background .15s}
.dsn-sim:not(#dsn-x) .dsn-primary,.dsn-sim:not(#dsn-x) .dsn-primary:focus{background:var(--dsn-brand);color:var(--dsn-on-brand);border-color:var(--dsn-brand)}
.dsn-sim:not(#dsn-x) .dsn-primary:hover{background:var(--dsn-brand-2);color:var(--dsn-on-brand);border-color:var(--dsn-brand-2)}
.dsn-sim:not(#dsn-x) .dsn-ghost,.dsn-sim:not(#dsn-x) .dsn-ghost:focus{background:transparent;color:var(--dsn-ink-2);border-color:var(--dsn-line)}
.dsn-sim:not(#dsn-x) .dsn-ghost:hover{background:var(--dsn-bg);color:var(--dsn-ink);border-color:var(--dsn-line)}
.dsn-sim:not(#dsn-x) .dsn-sunbtn,.dsn-sim:not(#dsn-x) .dsn-sunbtn:focus{background:var(--dsn-sun);color:var(--dsn-on-sun);border-color:var(--dsn-sun)}
.dsn-sim:not(#dsn-x) .dsn-sunbtn:hover{background:var(--dsn-sun-2);color:var(--dsn-on-sun);border-color:var(--dsn-sun-2)}
.dsn-sim:not(#dsn-x) .dsn-btn[disabled]{opacity:.65;cursor:wait}
.dsn-sim:not(#dsn-x) .dsn-tile:focus-visible,.dsn-sim:not(#dsn-x) .dsn-opt:focus-visible,.dsn-sim:not(#dsn-x) .dsn-btn:focus-visible,.dsn-sim:not(#dsn-x) .dsn-input:focus-visible,.dsn-sim:not(#dsn-x) .dsn-check input:focus-visible{outline:3px solid var(--dsn-sun);outline-offset:2px}
.dsn-sim:not(#dsn-x) .dsn-err{color:var(--dsn-warn);font-size:14px;margin-top:10px;min-height:1.2em}

/* Résultat */
.dsn-sim:not(#dsn-x) .dsn-result-head{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}
@media (max-width:520px){.dsn-sim:not(#dsn-x) .dsn-result-head{grid-template-columns:1fr}}
.dsn-sim:not(#dsn-x) .dsn-result-head.dsn-single{grid-template-columns:1fr}
.dsn-sim:not(#dsn-x) .dsn-stat{padding:16px 18px;border-radius:12px;background:var(--dsn-brand-soft)}
.dsn-sim:not(#dsn-x) .dsn-stat .dsn-l{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--dsn-brand)}
.dsn-sim:not(#dsn-x) .dsn-stat .dsn-v{font-family:var(--dsn-font-title);font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2;margin-top:4px;color:var(--dsn-ink)}
.dsn-sim:not(#dsn-x) .dsn-stat .dsn-s{font-size:13px;color:var(--dsn-ink-2);margin-top:2px}
.dsn-sim:not(#dsn-x) .dsn-stat.dsn-sun{background:var(--dsn-sun-soft)}
.dsn-sim:not(#dsn-x) .dsn-stat.dsn-sun .dsn-l{color:var(--dsn-warn)}
.dsn-sim:not(#dsn-x) .dsn-reco{border-left:4px solid var(--dsn-brand);padding:6px 0 6px 14px;margin:16px 0}
.dsn-sim:not(#dsn-x) .dsn-reco p{margin:0;color:var(--dsn-ink-2);font-size:15px}
.dsn-sim:not(#dsn-x) .dsn-notes{list-style:none;padding:0;margin:14px 0;display:grid;gap:8px}
.dsn-sim:not(#dsn-x) .dsn-notes li{display:flex;gap:10px;font-size:14.5px;padding:10px 12px;margin:0;border-radius:10px;background:var(--dsn-bg);color:var(--dsn-ink);list-style:none}
.dsn-sim:not(#dsn-x) .dsn-notes li::before{content:"✓";color:var(--dsn-ok);font-weight:700}
.dsn-sim:not(#dsn-x) .dsn-notes li.dsn-a::before{content:"€";color:var(--dsn-warn)}
.dsn-sim:not(#dsn-x) .dsn-details summary{cursor:pointer;color:var(--dsn-ink-2);font-size:14px}
.dsn-sim:not(#dsn-x) .dsn-recap{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;font-size:14px;margin:8px 0 18px;padding:14px;border:1px dashed var(--dsn-line);border-radius:10px}
@media (max-width:480px){.dsn-sim:not(#dsn-x) .dsn-recap{grid-template-columns:1fr}}
.dsn-sim:not(#dsn-x) .dsn-recap div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--dsn-line);padding:4px 0}
.dsn-sim:not(#dsn-x) .dsn-recap div b{text-align:right}
.dsn-sim:not(#dsn-x) .dsn-fine{font-size:12.5px;color:var(--dsn-ink-2);margin-top:14px;line-height:1.45}
.dsn-sim:not(#dsn-x) .dsn-ok-box{background:var(--dsn-ok-soft);color:var(--dsn-ok);padding:16px;border-radius:10px;font-weight:600}
.dsn-sim:not(#dsn-x) .dsn-ok-box a{color:inherit}
.dsn-sim:not(#dsn-x) .dsn-noscript{color:var(--dsn-ink-2)}

@media (prefers-reduced-motion:no-preference){.dsn-sim:not(#dsn-x) .dsn-card{animation:dsn-in .25s ease-out}}
@keyframes dsn-in{from{opacity:.6;transform:translateY(6px)}to{opacity:1;transform:none}}

/* Option « polices du thème » */
.dsn-sim.dsn-theme-fonts:not(#dsn-x),.dsn-sim.dsn-theme-fonts:not(#dsn-x) .dsn-h1,.dsn-sim.dsn-theme-fonts:not(#dsn-x) .dsn-h2,.dsn-sim.dsn-theme-fonts:not(#dsn-x) .dsn-h3,.dsn-sim.dsn-theme-fonts:not(#dsn-x) .dsn-logo,.dsn-sim.dsn-theme-fonts:not(#dsn-x) .dsn-tile b,.dsn-sim.dsn-theme-fonts:not(#dsn-x) .dsn-stat .dsn-v{font-family:inherit}
