/* Simulateur de devis - Ateliers Andrea. Tout est préfixé par .aa-sim pour ne pas toucher au thème. */
.aa-sim{--aa-red:#cc2718;--aa-red-soft:#fae9e8;--aa-ink:#242627;--aa-muted:#6b6f72;--aa-line:#e6e3df;--aa-bg:#faf8f6;--aa-card:#fff;--aa-ok:#1f7a3d;--aa-r:12px;--aa-sticky:100px;
  font-family:"Open Sans",system-ui,sans-serif;font-size:16px;color:var(--aa-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:aa-sim}
.aa-sim *,.aa-sim *::before,.aa-sim *::after{box-sizing:border-box}
.aa-sim h3,.aa-sim p,.aa-sim ul,.aa-sim li,.aa-sim form,.aa-sim section,.aa-sim label{margin:0;padding:0;letter-spacing:normal;text-transform:none}
.aa-sim h3{font-family:inherit}
.aa-sim [hidden]{display:none!important}
/* Neutralise les styles globaux de boutons/champs des thèmes et d'Elementor */
.aa-sim button,.aa-sim input,.aa-sim textarea{font-family:inherit;letter-spacing:normal;text-transform:none;box-shadow:none;margin:0;min-height:0}
.aa-sim button{line-height:1.2}

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

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

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

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

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

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

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

/* Boutons */
.aa-sim .aa-cta{display:flex;flex-direction:column;gap:8px;margin-top:18px}
.aa-sim .aa-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}
.aa-sim .aa-btn-p,.aa-sim .aa-btn-p:visited{background:var(--aa-red);color:#fff;border-color:var(--aa-red)}
.aa-sim .aa-btn-p:hover,.aa-sim .aa-btn-p:focus{filter:brightness(1.08);background:var(--aa-red);color:#fff}
.aa-sim .aa-btn-s,.aa-sim .aa-btn-s:visited{background:transparent;color:#fff;border-color:#5a5d60}
.aa-sim .aa-btn-s:hover,.aa-sim .aa-btn-s:focus{border-color:#fff;background:transparent;color:#fff}
.aa-sim .aa-btn:disabled{opacity:.6;cursor:wait}
.aa-sim .aa-btn-ic{display:flex;align-items:center;justify-content:center;gap:8px}
.aa-sim .aa-btn-ic svg{flex:none;width:18px;height:18px}
.aa-sim .aa-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}
.aa-sim .aa-form .aa-btn-p{width:auto;justify-self:start;padding:12px 24px}
.aa-sim .aa-form .aa-btn:focus-visible{outline-color:var(--aa-red)}

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