/* Simulateur de devis - Passage B. Tout est préfixé par .pb-sim pour ne pas toucher au thème. */
.pb-sim{--pb-accent:#1d4736;--pb-accent-soft:#f0f5f3;--pb-accent-2:#7a4939;--pb-err:#b3261e;--pb-ink:#242627;--pb-muted:#6b6f72;--pb-line:#e6e3df;--pb-bg:#faf8f6;--pb-card:#fff;--pb-ok:#1f7a3d;--pb-r:12px;--pb-sticky:100px;
  font-family:"Open Sans",system-ui,sans-serif;font-size:16px;color:var(--pb-ink);line-height:1.5;max-width:1100px;margin:0 auto;text-align:left;
  /* La mise en page s'adapte à la place disponible (colonne de texte du thème…), pas seulement à l'écran */
  container-type:inline-size;container-name:pb-sim}
.pb-sim *,.pb-sim *::before,.pb-sim *::after{box-sizing:border-box}
.pb-sim h3,.pb-sim p,.pb-sim ul,.pb-sim li,.pb-sim form,.pb-sim section,.pb-sim label{margin:0;padding:0;letter-spacing:normal;text-transform:none}
.pb-sim h3{font-family:inherit}
.pb-sim [hidden]{display:none!important}
/* Neutralise les styles globaux de boutons/champs des thèmes et d'Elementor */
.pb-sim button,.pb-sim input,.pb-sim textarea{font-family:inherit;letter-spacing:normal;text-transform:none;box-shadow:none;margin:0;min-height:0}
.pb-sim button{line-height:1.2}

/* Ordinateur : deux colonnes ; le récapitulatif s'affine (280 → 360 px) si la section est étroite */
.pb-sim .pb-grid{display:grid;grid-template-columns:minmax(0,1fr) clamp(280px,36%,360px);gap:24px;align-items:start}
.pb-sim .pb-steps{counter-reset:pb-step;display:flex;flex-direction:column;gap:20px;min-width:0;container-type:inline-size;container-name:pb-steps}
.pb-sim .pb-step{counter-increment:pb-step;background:var(--pb-card);border:1px solid var(--pb-line);border-radius:var(--pb-r);padding:22px;scroll-margin-top:var(--pb-sticky)}
.pb-sim .pb-step.is-in{animation:pb-in .35s ease-out}
@keyframes pb-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.pb-sim .pb-fade{animation:pb-in .3s ease-out}
@media (prefers-reduced-motion:reduce){.pb-sim .pb-step.is-in,.pb-sim .pb-fade{animation:none}}
.pb-sim .pb-step-h{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.pb-sim .pb-num{flex:none;width:28px;height:28px;border-radius:50%;background:var(--pb-accent);color:#fff;font-weight:700;font-size:14px;display:grid;place-items:center}
/* Numéro d'étape : une étape masquée (salle unique) n'est pas comptée */
.pb-sim .pb-num::before{content:counter(pb-step)}
.pb-sim .pb-step-h h3{font-size:18px;font-weight:700;line-height:1.3;color:var(--pb-ink);flex:none}
/* En-têtes d'étapes repliables */
.pb-sim .pb-head-btn{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;text-align:left;cursor:inherit;border-radius:4px}
.pb-sim .pb-head-btn:disabled{opacity:1;cursor:default;color:inherit}
.pb-sim .pb-head-btn:focus-visible{outline:2px solid var(--pb-accent);outline-offset:3px}
.pb-sim .pb-sum{display:none;flex:1 1 auto;min-width:0;font-size:14px;color:var(--pb-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}
.pb-sim .pb-chev{display:none;flex:none;margin-left:auto;color:var(--pb-muted);transition:transform .2s}
.pb-sim .pb-step.is-collapsible .pb-step-h{cursor:pointer}
.pb-sim .pb-step.is-collapsible .pb-chev{display:flex;transform:rotate(180deg)}
.pb-sim .pb-step.is-collapsible:hover .pb-chev{color:var(--pb-ink)}
.pb-sim .pb-step.is-collapsed .pb-step-h{margin-bottom:0}
.pb-sim .pb-step.is-collapsed .pb-step-body{display:none}
.pb-sim .pb-step.is-collapsed .pb-sum{display:block}
.pb-sim .pb-step.is-collapsed .pb-sum+.pb-chev{margin-left:0}
.pb-sim .pb-step.is-collapsed .pb-chev{transform:none}
.pb-sim .pb-resident-wrap{margin-top:18px;padding-top:18px;border-top:1px solid var(--pb-line)}
.pb-sim .pb-svc.is-locked,.pb-sim .pb-svc.is-locked .pb-svc-l,.pb-sim .pb-svc.is-locked input[type=checkbox]{cursor:default}
.pb-sim .pb-svc.is-locked input[type=checkbox]{pointer-events:none}
.pb-sim .pb-badge{flex:none;padding:3px 11px;border-radius:999px;background:var(--pb-accent);color:#fff;font-size:12px;font-weight:700;line-height:1.4}
.pb-sim .pb-hint{font-size:13px;color:var(--pb-muted);margin-top:10px}
.pb-sim .pb-cap{margin-top:12px}
.pb-sim .pb-cap strong{color:var(--pb-ink);font-weight:600}
.pb-sim .pb-hint:empty{display:none}

/* Choix (cartes radio) */
.pb-sim .pb-choices{display:grid;gap:10px}
.pb-sim .pb-choices.pb-3{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.pb-sim .pb-choices.pb-auto{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.pb-sim .pb-choice{position:relative;display:block;cursor:pointer;margin:0}
.pb-sim .pb-choice input{position:absolute;opacity:0;pointer-events:none}
.pb-sim .pb-choice span{display:block;height:100%;border:1.5px solid var(--pb-line);border-radius:10px;padding:12px 14px;transition:border-color .15s,background .15s}
.pb-sim .pb-choice strong{display:block;font-size:15px;font-weight:700}
.pb-sim .pb-choice small{display:block;font-size:13px;color:var(--pb-muted)}
.pb-sim .pb-choice small:empty{display:none}
.pb-sim .pb-choice:hover span{border-color:#c9c4bf}
.pb-sim .pb-choice input:checked+span{border-color:var(--pb-accent);background:var(--pb-accent-soft)}
.pb-sim .pb-choice input:focus-visible+span{outline:2px solid var(--pb-accent);outline-offset:2px}
.pb-sim .pb-choice input:disabled+span{opacity:.4;cursor:not-allowed}

/* Compteurs */
.pb-sim .pb-fields{display:flex;flex-wrap:wrap;gap:16px 28px;margin-top:16px}
.pb-sim .pb-field>label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}
.pb-sim .pb-stepper{display:inline-flex;align-items:center;border:1.5px solid var(--pb-line);border-radius:8px;overflow:hidden;background:#fff}
.pb-sim .pb-stepper button{width:36px;height:38px;border:0;border-radius:0;background:var(--pb-bg);color:var(--pb-ink);font-size:18px;cursor:pointer;padding:0}
.pb-sim .pb-stepper button:hover{background:var(--pb-accent-soft);color:var(--pb-ink)}
.pb-sim .pb-stepper button:disabled,.pb-sim .pb-stepper button:disabled:hover{background:var(--pb-bg);color:#c4c0bb;cursor:not-allowed}
.pb-sim .pb-stepper input{width:56px;height:38px;border:0;border-radius:0;padding:0;text-align:center;font-size:16px;font-weight:600;color:var(--pb-ink);background:#fff;-moz-appearance:textfield;appearance:textfield}
.pb-sim .pb-stepper input::-webkit-outer-spin-button,.pb-sim .pb-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}

/* Services */
.pb-sim .pb-services{display:flex;flex-direction:column;gap:8px}
.pb-sim .pb-svc{display:flex;align-items:center;gap:12px;border:1.5px solid var(--pb-line);border-radius:10px;padding:10px 12px;transition:border-color .15s,background .15s}
.pb-sim .pb-svc.is-on{border-color:var(--pb-accent);background:var(--pb-accent-soft)}
.pb-sim .pb-svc input[type=checkbox]{width:18px;height:18px;accent-color:var(--pb-accent);flex:none;cursor:pointer}
.pb-sim .pb-svc-l{flex:1;min-width:0;cursor:pointer;margin:0}
.pb-sim .pb-svc-l strong{display:block;font-size:14px;font-weight:600}
.pb-sim .pb-svc-l small{display:block;font-size:13px;color:var(--pb-muted)}
.pb-sim .pb-svc-desc{display:block;font-size:13px;line-height:1.45;color:var(--pb-ink);opacity:.8;margin:2px 0 4px}
.pb-sim .pb-svc.is-off{background:var(--pb-bg)}
.pb-sim .pb-svc.is-off .pb-svc-l{cursor:not-allowed}
.pb-sim .pb-svc.is-off strong,.pb-sim .pb-svc.is-off .pb-svc-desc{opacity:.5}
.pb-sim .pb-svc.is-off input[type=checkbox]{cursor:not-allowed}
.pb-sim .pb-svc.is-off .pb-svc-minp{display:none}
.pb-sim .pb-svc-l small.pb-svc-min{color:var(--pb-accent-2);font-weight:600;margin-top:2px}

/* Interrupteur Résident */
.pb-sim .pb-toggle{display:flex;align-items:center;gap:14px;cursor:pointer;margin:0}
.pb-sim .pb-toggle input{position:absolute;opacity:0}
.pb-sim .pb-switch{flex:none;width:44px;height:24px;border-radius:12px;background:#d4d0cc;position:relative;transition:background .2s}
.pb-sim .pb-switch::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s}
.pb-sim .pb-toggle input:checked+.pb-switch{background:var(--pb-accent)}
.pb-sim .pb-toggle input:checked+.pb-switch::after{transform:translateX(20px)}
.pb-sim .pb-toggle input:focus-visible+.pb-switch{outline:2px solid var(--pb-accent);outline-offset:2px}
.pb-sim .pb-toggle-sub{display:block;color:var(--pb-muted);font-size:14px;margin-top:2px}
.pb-sim .pb-btn-ic span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pb-sim .pb-resident{margin-top:12px;padding-left:58px}

/* Formulaire de contact */
.pb-sim .pb-form{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.pb-sim .pb-form .pb-full{grid-column:1/-1}
.pb-sim .pb-form label.pb-lbl{display:block;font-size:13px;font-weight:600;margin-bottom:6px}
.pb-sim .pb-form input[type=text],.pb-sim .pb-form input[type=email],.pb-sim .pb-form input[type=tel],.pb-sim .pb-form input[type=date],.pb-sim .pb-form textarea{
  display:block;width:100%;border:1.5px solid var(--pb-line);border-radius:8px;padding:10px 12px;font-size:16px;color:var(--pb-ink);background:#fff;outline:none;height:auto}
.pb-sim .pb-form textarea{min-height:96px;resize:vertical}
.pb-sim .pb-form input:focus,.pb-sim .pb-form textarea:focus{border-color:var(--pb-accent)}
.pb-sim .pb-consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--pb-muted);margin:0;cursor:pointer}
.pb-sim .pb-consent input{width:18px;height:18px;margin-top:1px;flex:none;accent-color:var(--pb-accent)}
.pb-sim .pb-consent a{color:var(--pb-ink);text-decoration:underline}
.pb-sim .pb-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.pb-sim .pb-form-msg{font-size:14px}
.pb-sim .pb-form-msg.is-err{color:var(--pb-err)}
.pb-sim .pb-done{display:flex;gap:14px;align-items:flex-start}
.pb-sim .pb-done-ic{flex:none;width:36px;height:36px;border-radius:50%;background:#e3f3e8;color:var(--pb-ok);display:grid;place-items:center;font-size:20px;font-weight:700}
.pb-sim .pb-done strong{display:block;font-size:17px;margin-bottom:2px}
.pb-sim .pb-done p{color:var(--pb-muted);font-size:14px}

/* Récapitulatif */
.pb-sim .pb-summary{position:sticky;top:var(--pb-sticky);max-height:calc(100vh - var(--pb-sticky) - 16px);overflow-y:auto;background:var(--pb-ink);color:#fff;border-radius:var(--pb-r);padding:24px}
.pb-sim .pb-summary h3{font-size:18px;font-weight:700;margin-bottom:16px;color:#fff}
.pb-sim .pb-empty{font-size:14px;color:#9a9794;margin-bottom:16px}
.pb-sim .pb-lines{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:10px;font-size:14px}
.pb-sim .pb-lines li{display:flex;justify-content:space-between;gap:12px;margin:0;padding:0}
.pb-sim .pb-lines li::before{content:none}
.pb-sim .pb-lines li span:first-child{color:#d6d3d0}
.pb-sim .pb-lines li small{display:block;color:#9a9794;font-size:12px}
.pb-sim .pb-lines li span+span{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}
.pb-sim .pb-tot{border-top:1px solid #45484a;padding-top:14px;display:flex;flex-direction:column;gap:6px;font-size:14px}
.pb-sim .pb-tot div{display:flex;justify-content:space-between;font-variant-numeric:tabular-nums}
.pb-sim .pb-tot div span:first-child{color:#d6d3d0}
.pb-sim .pb-tot .pb-big{margin-top:6px;align-items:baseline}
.pb-sim .pb-tot .pb-big span:first-child{color:#fff;font-weight:600}
.pb-sim .pb-tot .pb-big span:last-child{font-size:30px;font-weight:700}
.pb-sim .pb-note{font-size:12px;color:#9a9794;margin-top:14px}
.pb-sim .pb-summary.is-empty .pb-tot,.pb-sim .pb-summary.is-empty .pb-cta{opacity:.35;pointer-events:none}

/* Boutons */
.pb-sim .pb-cta{display:flex;flex-direction:column;gap:8px;margin-top:18px}
.pb-sim .pb-btn{display:block;width:100%;text-align:center;border-radius:8px;padding:12px 16px;font:600 15px/1.2 Inter,"Open Sans",sans-serif;text-decoration:none;cursor:pointer;border:1px solid transparent;transition:filter .15s,border-color .15s}
.pb-sim .pb-btn-p,.pb-sim .pb-btn-p:visited{background:var(--pb-accent-2);color:#fff;border-color:var(--pb-accent-2)}
.pb-sim .pb-btn-p:hover,.pb-sim .pb-btn-p:focus{filter:brightness(1.08);background:var(--pb-accent-2);color:#fff}
.pb-sim .pb-btn-s,.pb-sim .pb-btn-s:visited{background:transparent;color:#fff;border-color:#5a5d60}
.pb-sim .pb-btn-s:hover,.pb-sim .pb-btn-s:focus{border-color:#fff;background:transparent;color:#fff}
.pb-sim .pb-btn:disabled{opacity:.6;cursor:wait}
.pb-sim .pb-btn-ic{display:flex;align-items:center;justify-content:center;gap:8px}
.pb-sim .pb-btn-ic svg{flex:none;width:18px;height:18px}
.pb-sim .pb-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}
.pb-sim .pb-form .pb-btn-p{width:auto;justify-self:start;padding:12px 24px}
.pb-sim .pb-form .pb-btn:focus-visible{outline-color:var(--pb-accent)}

/* Tablette et mobile : une colonne, récapitulatif sous les étapes */
@media (max-width:1023px){
  .pb-sim .pb-grid{grid-template-columns:1fr}
  .pb-sim .pb-summary{position:static;max-height:none;overflow:visible}
}
/* Colonne des étapes étroite : formulaire sur une colonne */
@container pb-steps (max-width:480px){
  .pb-sim .pb-form{grid-template-columns:1fr}
  .pb-sim .pb-form .pb-btn-p{width:100%}
}
/* Simulateur étroit (mobile) */
@container pb-sim (max-width:560px){
  .pb-sim .pb-step-h{flex-wrap:wrap}
  .pb-sim .pb-step.is-collapsed .pb-sum{order:3;flex-basis:100%;text-align:left;padding-left:40px;white-space:normal}
  .pb-sim .pb-resident{padding-left:0}
  .pb-sim .pb-step{padding:16px}
  .pb-sim .pb-choices.pb-3,.pb-sim .pb-choices.pb-auto{grid-template-columns:1fr 1fr}
  .pb-sim .pb-summary{padding:20px}
}
/* Repli pour les navigateurs sans requêtes de conteneur */
@supports not (container-type:inline-size){
  @media (max-width:560px){
    .pb-sim .pb-resident{padding-left:0}
    .pb-sim .pb-step{padding:16px}
    .pb-sim .pb-choices.pb-3,.pb-sim .pb-choices.pb-auto{grid-template-columns:1fr 1fr}
    .pb-sim .pb-form{grid-template-columns:1fr}
    .pb-sim .pb-form .pb-btn-p{width:100%}
    .pb-sim .pb-summary{padding:20px}
  }
}

/* Services sur plusieurs jours : choix du mode et onglets des jours */
.pb-sim .pb-mode{display:inline-flex;border:1.5px solid var(--pb-line);border-radius:10px;padding:3px;gap:3px;margin-bottom:14px;background:var(--pb-bg);max-width:100%}
.pb-sim .pb-mode-b{border:0;background:transparent;color:var(--pb-muted);font-size:14px;font-weight:600;padding:8px 14px;border-radius:7px;cursor:pointer}
.pb-sim .pb-mode-b:hover{color:var(--pb-ink);background:transparent}
.pb-sim .pb-mode-b.is-on,.pb-sim .pb-seg input:checked+.pb-mode-b{background:#fff;color:var(--pb-ink);box-shadow:0 1px 2px rgba(0,0,0,.12)}
.pb-sim .pb-mode-b:focus-visible,.pb-sim .pb-day:focus-visible,.pb-sim .pb-seg input:focus-visible+.pb-mode-b{outline:2px solid var(--pb-accent);outline-offset:2px}
/* Même sélecteur, en boutons radio (Entreprise / Particulier dans le formulaire) */
.pb-sim .pb-form .pb-type{justify-self:start;margin-bottom:0}
.pb-sim .pb-seg{flex:1;display:flex;cursor:pointer}
.pb-sim .pb-seg input{position:absolute;opacity:0;pointer-events:none}
.pb-sim .pb-seg .pb-mode-b{flex:1;text-align:center;line-height:1.2}
.pb-sim .pb-days{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 10px;margin-bottom:4px;scrollbar-width:thin}
.pb-sim .pb-day{flex:none;display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--pb-line);background:#fff;color:var(--pb-ink);font-size:14px;font-weight:600;padding:8px 14px;border-radius:999px;cursor:pointer}
.pb-sim .pb-day:hover{border-color:#c9c4bf;background:#fff;color:var(--pb-ink)}
.pb-sim .pb-day.is-on{border-color:var(--pb-accent);background:var(--pb-accent-soft);color:var(--pb-ink)}
.pb-sim .pb-day-n{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--pb-accent);color:#fff;font-size:12px;display:inline-grid;place-items:center}
@container pb-sim (max-width:560px){
  .pb-sim .pb-mode{display:flex}
  .pb-sim .pb-mode-b{flex:1;padding:8px 6px;font-size:13px}
}
