/* Widget simulateur J&S — styles propres au widget (s'ajoute à tokens.css).
   Tout est sous .jss-sim : aucune fuite vers le thème WordPress hôte. */
.jss-sim .jss-wrap { max-width:480px; margin:0 auto; padding:8px 0 48px; }
@media (min-width:980px){ .jss-sim .jss-wrap{ max-width:1080px; }
  .jss-sim .result-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:start; } }
.jss-sim .badges { display:flex; flex-wrap:wrap; gap:8px; margin:4px 0 18px; }
.jss-sim .qcard { margin-bottom:16px; }
/* Bandeau d'atouts (mise en avant, sous le hero) */
.jss-sim .jss-atouts { margin:0 0 18px; }
.jss-sim .jss-atouts-intro { margin:0 0 10px; text-align:center; font-size:15px; color:var(--jss-primary); }
.jss-sim .jss-atouts-grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.jss-sim .jss-atouts-grid li { display:flex; gap:10px; align-items:flex-start; background:var(--jss-bg-soft-2);
  border:1px solid var(--jss-border); border-left:3px solid var(--jss-accent-600); border-radius:var(--jss-radius-sm); padding:11px 12px; }
.jss-sim .jss-atout-ic { font-size:20px; line-height:1.15; flex:0 0 auto; }
.jss-sim .jss-atouts-grid b { display:block; font-size:14px; color:var(--jss-primary); font-weight:600; line-height:1.25; }
.jss-sim .jss-atouts-grid small { color:var(--jss-text-muted); font-size:12px; line-height:1.3; }
@media (min-width:980px){ .jss-sim .jss-atouts-grid { grid-template-columns:repeat(4,1fr); } }
/* Disclaimer permanent en bas du widget */
.jss-sim .jss-disclaimer { margin:24px 0 0; padding:12px 14px; background:var(--jss-bg-soft-2);
  border:1px solid var(--jss-border); border-radius:var(--jss-radius-sm); font-size:var(--jss-fs-xs);
  color:var(--jss-text-muted); line-height:1.6; text-align:center; }
.jss-sim .jss-disclaimer b { color:var(--jss-primary-800); }
/* En-tête de marque (logo + accroche) */
/* Hero = bandeau : photo de fond (ou dégradé marine en repli) + voile sombre pour la lisibilité */
.jss-sim .jss-hero {
  position:relative; overflow:hidden; text-align:center;
  padding:24px 22px 26px; margin-bottom:18px;
  border-radius:var(--jss-radius-lg);
  background-color:var(--jss-primary);
  background-image:linear-gradient(180deg, rgba(10,31,61,.45), rgba(10,31,61,.82));
  background-size:cover; background-position:center;
  color:#fff;
}
/* Logo en haut à GAUCHE, agrandi — n'affecte pas le titre, qui reste centré */
.jss-sim .jss-hero-brand { display:flex; align-items:center; justify-content:flex-start; gap:10px; margin-bottom:18px; }
.jss-sim .jss-logo-img { height:84px; width:auto; max-width:260px; object-fit:contain; border-radius:8px; }
.jss-sim .jss-logo-txt { font-family:var(--jss-font-heading); font-weight:800; font-size:26px; color:#fff; letter-spacing:-0.01em; }
.jss-sim .jss-logo-txt b { color:var(--jss-accent); }
.jss-sim .jss-hero-title { color:#fff; font-size:24px; margin:0 0 6px; text-shadow:0 1px 6px rgba(0,0,0,.3); }
.jss-sim .jss-hero-sub { margin:0 auto; max-width:460px; color:rgba(255,255,255,.92); font-size:15px; text-shadow:0 1px 4px rgba(0,0,0,.3); }
.jss-sim .jss-hero::after { content:""; display:block; width:56px; height:4px; margin:16px auto 0; background:var(--jss-accent); border-radius:2px; }
@media (min-width:980px){
  .jss-sim .jss-hero-title{ font-size:31px; }
  .jss-sim .jss-logo-img{ height:112px; }
  .jss-sim .jss-logo-txt{ font-size:30px; }
}
/* Carte formulaire : liseré d'accent en haut */
.jss-sim #form { border-top:3px solid var(--jss-accent-600); }
/* Consommation annuelle (champ + unité) */
.jss-sim .jss-conso { position:relative; }
.jss-sim .jss-conso .jss-input { padding-right:76px; font-family:var(--jss-font-heading); font-weight:600; }
.jss-sim .jss-conso-unit { position:absolute; right:14px; top:50%; transform:translateY(-50%);
  color:var(--jss-text-muted); font-size:14px; font-weight:500; pointer-events:none; }
/* Surface + consommation côte à côte */
.jss-sim .jss-duo { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.jss-sim .jss-duo .jss-conso .jss-input { padding-right:58px; }
.jss-sim .jss-duo .jss-conso-unit { right:12px; font-size:13px; }
.jss-sim .opts { display:grid; gap:8px; margin-top:8px; }
.jss-sim .opts.inline { grid-template-columns:repeat(3,1fr); }
.jss-sim .opt { position:relative; display:flex; gap:8px; align-items:center; justify-content:center; text-align:center;
  border:1.5px solid var(--jss-border); border-radius:var(--jss-radius-sm); padding:12px 8px; cursor:pointer;
  background:#fff; font-size:14px; font-weight:500; color:var(--jss-primary-800); line-height:1.2;
  transition:border-color var(--jss-transition), background var(--jss-transition), box-shadow var(--jss-transition); }
.jss-sim .opt:hover { border-color:var(--jss-accent-300); background:var(--jss-bg-soft-2); }
.jss-sim .opt:has(input:checked) { border-color:var(--jss-accent-600); background:var(--jss-accent-100);
  color:var(--jss-primary); font-weight:600; box-shadow:inset 0 0 0 1px var(--jss-accent-600); }
.jss-sim .opt:has(input:focus-visible) { box-shadow:var(--jss-focus-ring); }
.jss-sim .opt input { position:absolute; opacity:0; width:0; height:0; pointer-events:none; }
.jss-sim .hint { font-size:var(--jss-fs-xs); color:var(--jss-text-muted); margin-top:8px; }
.jss-sim .kpi-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:12px 0; }
.jss-sim .kpi { background:var(--jss-bg-soft-2); border:1px solid var(--jss-border); border-radius:var(--jss-radius-sm); padding:12px; }
.jss-sim .kpi b { display:block; font-family:var(--jss-font-heading); font-size:20px; color:var(--jss-primary); }
.jss-sim .kpi small { color:var(--jss-text-muted); font-size:12px; }
.jss-sim .range { font-size:var(--jss-fs-xs); color:var(--jss-text-muted); }
.jss-sim table.subv { width:100%; border-collapse:collapse; font-size:14px; margin-top:8px; }
.jss-sim table.subv td { padding:8px 4px; border-bottom:1px solid var(--jss-blue-100); vertical-align:top; }
.jss-sim table.subv td:last-child { text-align:right; font-weight:500; white-space:nowrap; }
.jss-sim table.subv tr.total td { font-weight:700; color:var(--jss-primary); border-bottom:none; }
.jss-sim .tag { font-size:11px; border-radius:999px; padding:2px 8px; background:var(--jss-blue-100); color:var(--jss-primary-800); margin-left:6px; white-space:nowrap; }
.jss-sim .tag.warn { background:var(--jss-warning-bg); color:var(--jss-warning); }
.jss-sim .bars { display:flex; align-items:flex-end; gap:4px; height:90px; margin-top:10px; }
.jss-sim .bars i { flex:1; background:linear-gradient(180deg, var(--jss-accent-300), var(--jss-accent-700)); border-radius:3px 3px 0 0; min-height:2px; }
.jss-sim .bars-x { display:flex; gap:4px; font-size:10px; color:var(--jss-text-muted); }
.jss-sim .bars-x span { flex:1; text-align:center; }
.jss-sim .chips { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.jss-sim .flags { display:grid; gap:8px; margin-top:10px; }
.jss-sim .adjust { display:grid; gap:12px; margin-top:10px; }
.jss-sim .adjust .row { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:center; font-size:14px; }
.jss-sim .adjust output { font-family:var(--jss-font-heading); font-weight:600; color:var(--jss-primary); }
.jss-sim input[type=range]{ width:100%; accent-color:var(--jss-accent-700); height:30px; }
.jss-sim .cta-block { background:var(--jss-primary); border-radius:var(--jss-radius-lg); padding:22px; margin-top:20px; color:#fff; }
.jss-sim .cta-block h3 { color:#fff; }
.jss-sim .cta-block .jss-btn--secondary { border-color:#fff; color:#fff; }
.jss-sim .footnote { font-size:var(--jss-fs-xs); color:var(--jss-text-muted); margin-top:22px; line-height:1.6; }
.jss-sim .footnote a { color:var(--jss-primary); }
.jss-sim .jss-loading { display:none; text-align:center; padding:30px 0; color:var(--jss-primary); font-family:var(--jss-font-heading); }
.jss-sim .spin { display:inline-block; width:22px; height:22px; border:3px solid var(--jss-blue-200); border-top-color:var(--jss-accent); border-radius:50%; animation:jss-r 0.9s linear infinite; vertical-align:-5px; margin-right:10px; }
@keyframes jss-r { to { transform:rotate(360deg); } }
.jss-sim .jss-error { display:none; }
.jss-sim svg.cf text { font-family:Poppins,sans-serif; }
@media print {
  .jss-sim #form, .jss-sim .adjust, .jss-sim .cta-block .jss-btn,
  .jss-sim .jss-loading, .jss-sim .jss-error, .jss-sim .badges, .jss-sim .jss-atouts,
  .jss-sim input[type=range] { display:none !important; }
  .jss-sim .jss-card { box-shadow:none; border:1px solid #d4d8dd; break-inside:avoid; }
  .jss-sim .result-grid { display:block; }
  .jss-sim .cta-block { background:#fff; color:#0a1f3d; border:1px solid #d4d8dd; }
  .jss-sim .cta-block h3, .jss-sim .cta-block p { color:#0a1f3d !important; }
}
