/* ===========================
   Simulação Base - CSS Global
   (tema azul profissional)
   =========================== */

/* =TOKENS ===================================================== */
:root{
  /* Alinhado ao tema base (core/base/base.css) */
  --primary: var(--color-primary-600);
  --primary-rgb: var(--bs-primary-rgb);
  --primary-light: var(--color-primary-50);
  --primary-dark: var(--color-primary-700);

  --secondary: var(--color-primary-500);
  --secondary-rgb: var(--bs-primary-rgb);

  --accent: var(--color-accent-400);
  --success:#16a34a; --warning:#f59e0b; --danger:#ef4444;

  --light: var(--color-neutral-0);
  --dark:  var(--color-neutral-900);
  --gray:  #475569;
  --border: var(--bs-border-color);
  --card-bg: var(--color-neutral-0);

  --shadow:0 4px 20px rgba(0,0,0,.08);--shadow-hover:0 10px 25px -5px rgba(var(--primary-rgb),.28);
  --glow-primary:0 0 15px rgba(var(--primary-rgb),.18);--glow-accent:0 0 15px rgba(69,137,255,.18);
  --border-radius:20px;--transition:all .3s cubic-bezier(.4,0,.2,1);--step-transition:all .5s cubic-bezier(.175,.885,.32,1.275)
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* =LAYOUT BASE ================================================ */
body{overflow-x:hidden}
.container{max-width:min(1800px,96vw);margin:0 auto;padding:0 1rem;width:100%}
.simulation-container{animation:slideUp .8s ease;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--border-radius);box-shadow:var(--shadow);display:flex;flex-direction:column;margin:2rem auto;max-width:1000px;overflow:visible;position:relative;z-index:10}
.form-section{display:flex;flex-direction:column;padding:clamp(1.25rem,1rem + 1.5vw,2.5rem);position:relative}

/* Aviso de informações importantes */
.simulation-important-info{
  background:rgba(var(--primary-rgb),.08);
  border:1px solid rgba(var(--primary-rgb),.35);
  border-radius:18px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.35);
  padding:1.5rem 1.75rem;
  color:var(--dark);
  width:100%;
  max-width:1000px;
  margin:1.5rem auto 0;
}
.simulation-important-info__title{
  font-size:1.15rem;
  font-weight:700;
  color:var(--primary);
  margin:0;
}
.simulation-important-info__list{
  list-style:disc;
  margin:.85rem 0 0;
  padding-left:1.25rem;
  color:var(--dark);
  line-height:1.55;
  font-weight:600;
}
.simulation-important-info__list li + li{margin-top:.35rem}

.core-main-simulator-info{
  width:100%;
  max-width:var(--simulation-container-max-width,1000px);
  margin:clamp(1.5rem,3vw,2.5rem) auto 0;
  padding:0;
  box-sizing:border-box;
}
.core-main-simulator-info .simulation-important-info{
  width:100%;
  max-width:none;
  margin:0;
}


/* =PROGRESSO ================================================== */
.progress-container{margin-bottom:1.75rem;width:100%}
.progress-header{color:var(--gray);display:flex;font-size:.9rem;justify-content:space-between;margin-bottom:.75rem}
.progress-bar-wrapper{margin-top:1.5rem;position:relative}
.progress-bar{background:rgba(226,232,240,.5);border:1px solid var(--border);border-radius:10px;height:10px;overflow:hidden;position:relative;width:100%}
.progress{background:linear-gradient(to right,var(--primary),var(--secondary));border-radius:10px;box-shadow:var(--glow-primary);height:100%;transition:width .4s ease;will-change:width}
.progress-steps{display:flex;justify-content:space-between;left:0;position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:2}
.step{align-items:center;display:flex;flex-direction:column;position:relative}
.step-bubble{align-items:center;background:var(--light);border:1px solid var(--border);border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.05);color:var(--gray);display:flex;font-size:.9rem;font-weight:700;height:32px;justify-content:center;transition:var(--transition);width:32px;z-index:3}
.step.active .step-bubble{background:linear-gradient(145deg,var(--primary),var(--primary-dark));border-color:var(--primary);box-shadow:0 4px 10px rgba(var(--primary-rgb),.22),var(--glow-primary);color:#fff;transform:scale(1.15)}
.step.completed .step-bubble{background:linear-gradient(145deg,var(--success),#059669);box-shadow:0 4px 10px rgba(16,185,129,.2);color:#fff}
.step-label{color:var(--gray);font-size:.75rem;font-weight:600;position:absolute;text-align:center;top:calc(100% + 8px);transition:var(--transition);width:90px}
.step.active .step-label{color:var(--primary);font-weight:700}
.step-title{align-items:center;color:var(--dark);display:flex;font-size:1.6rem;font-weight:700;gap:.8rem;margin-bottom:1.5rem;padding-bottom:.8rem;position:relative}
.step-title::after{background:linear-gradient(to right,var(--primary),var(--secondary));border-radius:4px;bottom:0;box-shadow:var(--glow-primary);content:"";height:4px;left:0;position:absolute;width:60px}
.step-desc{color:var(--gray);font-size:1.05rem;line-height:1.7;margin-bottom:1.75rem}

/* Banner "Planos a partir de" */
.plans-min-banner{background:rgba(var(--primary-rgb),.06);border:1px solid var(--border);border-left:6px solid var(--primary);border-radius:10px;padding:.7rem 1rem;color:var(--dark);font-weight:700;margin-bottom:1rem;box-shadow:var(--shadow);display:flex;align-items:center;gap:.75rem}
.plans-min-banner__icon{width:2.5rem;height:2.5rem;border-radius:999px;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 6px 14px rgba(var(--primary-rgb),.25);animation:plansBannerPulse 1.6s ease-in-out infinite}
.plans-min-banner__icon svg{width:1.35rem;height:1.35rem;display:block}
.plans-min-banner__text{font-weight:700;line-height:1.4}
@keyframes plansBannerPulse{
  0%{transform:scale(1);box-shadow:0 0 0 0 rgba(var(--primary-rgb),.4)}
  60%{transform:scale(1.08);box-shadow:0 0 0 14px rgba(var(--primary-rgb),0)}
  100%{transform:scale(1);box-shadow:0 0 0 0 rgba(var(--primary-rgb),0)}
}


/* =GRADE & CARDS ============================================== */
:is(.card-options,card-options),.plans-container{display:grid;gap:1.5rem;margin-bottom:1.75rem}
:is(.card-options,card-options){grid-template-columns:repeat(2,1fr)}
.plans-container{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.card-option,.plan-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--border-radius);box-shadow:var(--shadow);overflow:hidden;position:relative;transition:var(--transition)}
.card-option{will-change: transform, box-shadow}
.card-option:hover,.card-option.selected{border-color:var(--primary);box-shadow:var(--shadow-hover),var(--glow-primary);transform:scale(1.01);transform-origin:center}
.card-option.selected{background:linear-gradient(145deg,rgba(var(--primary-rgb),.06),rgba(var(--secondary-rgb),.05))}
.card-option{align-items:center;cursor:pointer;display:flex;flex-direction:column;justify-content:center;padding:1.5rem;text-align:center}
.card-option i{align-items:center;background:rgba(var(--primary-rgb),.06);border:1px solid rgba(var(--primary-rgb),.18);border-radius:50%;color:var(--primary);display:flex;font-size:2.5rem;height:70px;justify-content:center;margin-bottom:1rem;transition:var(--transition);width:70px}
.card-option.selected i{background:linear-gradient(145deg,var(--primary),var(--secondary));box-shadow:var(--glow-primary);color:#fff;transform:scale(1.1)}
.card-option h3{color:var(--dark);font-size:1.2rem;margin-bottom:.75rem}
.card-option input[type='radio']{opacity:0;pointer-events:none;position:absolute}
.card-option :is(i,.icon-img){width:var(--icon-size,70px);height:var(--icon-size,70px);padding:var(--icon-pad,10px);border-radius:50%;border:1px solid rgba(var(--primary-rgb),.18);background:rgba(var(--primary-rgb),.06);display:inline-flex;align-items:center;justify-content:center;margin-bottom:1rem;position:relative;box-shadow:0 2px 4px rgba(0,0,0,.05);transition:var(--transition);will-change:transform,box-shadow,background,filter;color:var(--primary)}
.card-option:hover :is(i,.icon-img){transform:scale(1.05);box-shadow:var(--glow-primary)}
.card-option.selected :is(i,.icon-img){background:linear-gradient(145deg,var(--primary),var(--secondary));border-color:transparent;box-shadow:var(--glow-primary);transform:scale(1.1);color:#fff}
.card-option .icon-img{object-fit:contain;width:var(--icon-size,70px);height:var(--icon-size,70px)}
.card-option.selected .icon-img{filter:brightness(0) invert(1)}
.card-option:focus-within :is(i,.icon-img){box-shadow:0 0 0 4px rgba(var(--primary-rgb),.14),0 0 0 1px var(--primary)}

/* =BOTÕES ===================================================== */
.plan-select-btn,.select-plan-btn{align-items:center;background:linear-gradient(to right,var(--primary),var(--secondary));border:none;border-radius:12px;box-shadow:var(--glow-primary);color:#fff;cursor:pointer;display:flex;font-weight:600;gap:8px;justify-content:center;margin-top:.5rem;overflow:hidden;padding:.75rem;position:relative;transition:var(--transition);width:100%;white-space:nowrap}
.plan-select-btn:hover,.select-plan-btn:hover{background:linear-gradient(to right,var(--primary-dark),var(--primary));box-shadow:0 10px 20px -5px rgba(var(--primary-rgb),.35);transform:scale(1.01)}
.plan-select-btn.selected,.select-plan-btn.selected{background:var(--success);box-shadow:0 0 15px rgba(16,185,129,.3);pointer-events:none}
.plan-select-btn:focus-visible,.select-plan-btn:focus-visible{outline:3px solid rgba(var(--primary-rgb),1);outline-offset:2px}
.buttons{display:flex;flex-wrap:wrap;gap:1.2rem;justify-content:space-between;margin-top:1.5rem}
.btn{flex:1 1 calc(50% - .6rem);display:inline-flex;align-items:center;justify-content:center;gap:.6rem;border:1px solid var(--border);border-radius:12px;cursor:pointer;font-size:1.25rem;padding:1.4rem 2rem;transition:var(--transition);overflow:hidden;min-width:0;font-weight:600;position:relative}
.btn-primary{background:linear-gradient(to right,var(--primary),var(--secondary));box-shadow:0 4px 15px rgba(var(--primary-rgb),.22),var(--glow-primary);color:var(--light);border-color:var(--primary)}
.btn-primary:hover{background:linear-gradient(to right,var(--primary-dark),var(--primary));box-shadow:0 10px 25px -5px rgba(var(--primary-rgb),.35);transform:scale(1.01);border-color:var(--primary-dark)}
.btn-prioritario{isolation:isolate;border:2px solid transparent;border-radius:14px;background:
 linear-gradient(120deg,var(--secondary) 0%,var(--primary) 55%,var(--primary-dark) 100%) padding-box,
 linear-gradient(150deg,rgba(255,255,255,.6),rgba(var(--primary-rgb),.35),rgba(15,23,42,.2)) border-box;
background-size:220% 220%;box-shadow:0 14px 35px -12px rgba(var(--primary-rgb),.65),0 0 30px rgba(var(--primary-rgb),.25),var(--glow-primary);animation:priorityPulse 3s ease-in-out infinite}
.btn-prioritario::before{content:"";position:absolute;inset:-6px;border-radius:inherit;background:radial-gradient(circle at 30% 30%,rgba(var(--primary-rgb),.55),rgba(var(--primary-rgb),0) 70%);filter:blur(18px);opacity:.85;z-index:-1;animation:priorityGlow 3s ease-in-out infinite}
.btn-prioritario::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(120deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.4) 45%,rgba(255,255,255,0) 80%);transform:translateX(-130%);opacity:.65;z-index:0;animation:prioritySweep 2.6s ease-out infinite}
.btn-prioritario > *{position:relative;z-index:1}
.btn-prioritario:disabled,.btn-prioritario[aria-disabled="true"],.btn-prioritario.is-disabled{animation-play-state:paused}
.btn-prioritario:disabled::before,.btn-prioritario:disabled::after,
.btn-prioritario[aria-disabled="true"]::before,.btn-prioritario[aria-disabled="true"]::after,
.btn-prioritario.is-disabled::before,.btn-prioritario.is-disabled::after{animation-play-state:paused}
.btn-secondary{background:var(--light);box-shadow:0 2px 10px rgba(0,0,0,.05);color:var(--dark);border:1px solid var(--border)}
.btn-secondary:hover{background:#fff;box-shadow:0 6px 15px rgba(0,0,0,.1);transform:scale(1.01);color:var(--dark)}
.btn-whatsapp{background:#25D366;border:1px solid rgba(0,0,0,.1);color:#fff}
.btn-whatsapp:hover{background:#128C7E}
.btn:focus-visible{outline:3px solid rgba(var(--primary-rgb),1);outline-offset:2px}
.btn svg,.btn i,.select-plan-btn svg,.select-plan-btn i,.view-switcher .vs-btn svg,.view-switcher .vs-btn i{color:currentColor;fill:currentColor;stroke:currentColor}
#avancarStep3[disabled],#avancarStep3.is-disabled,.btn[disabled],.btn.is-disabled,.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed;pointer-events:none;filter:grayscale(.15);box-shadow:none;transform:none!important;color:rgba(15,23,42,.6)}
#avancarStep3{transition:opacity .16s ease,filter .16s ease,box-shadow .16s ease,transform .16s ease}

/* =SLIDER & INPUTS ============================================ */
.error-message,.info-tip{border:1px solid var(--border);border-radius:10px;font-size:.9rem;font-weight:600;margin-top:.75rem;padding:.8rem;text-align:center}
.error-message{background:rgba(239,68,68,.08);border-left:4px solid var(--danger);color:var(--danger);display:none}
.info-tip{background:rgba(var(--primary-rgb),.06);border-left:4px solid var(--primary);color:var(--color-primary-600)}
.consultant-help-tip{display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;font-size:.95rem;font-weight:600;padding:.9rem 1.1rem}
.consultant-help-text{display:flex;flex-direction:column;gap:.2rem;font-size:1rem;line-height:1.4}
.consultant-help-text strong{font-size:1rem;font-weight:700;color:var(--primary)}
.consultant-help-btn{display:inline-flex;align-items:center;gap:.4rem;font-weight:700;padding:.65rem 1rem;white-space:nowrap}
.consultant-help-btn.is-disabled{opacity:.6;pointer-events:none}
@media(max-width:768px){
  .consultant-help-tip{flex-direction:column;align-items:flex-start}
  .consultant-help-btn{width:100%;justify-content:center}
}
.slider-container{background:var(--light);border:1px solid var(--border);border-radius:16px;box-shadow:0 4px 6px rgba(0,0,0,.05);margin-bottom:1.75rem;padding:1.25rem;position:relative}
.slider-header{align-items:center;display:flex;flex-wrap:wrap;gap:.8rem;justify-content:space-between;margin-bottom:.8rem}
.slider-header label{align-items:center;color:var(--dark);display:flex;font-size:1.05rem;font-weight:600;gap:.6rem}
.slider-header label i{align-items:center;background:rgba(var(--primary-rgb),.12);border:1px solid var(--border);border-radius:50%;color:var(--primary);display:flex;font-size:1rem;height:32px;justify-content:center;width:32px}
.value-input-container{display:inline-block;height:48px;max-width:200px;position:relative;width:100%}
.value-input-container.focused::before{color:#4361ee;content:"R$";font-size:1.1rem;font-weight:700;left:16px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);z-index:101}
.value-input-container.focused .value-input{padding-left:40px;padding-right:16px}
.value-input{background:rgba(var(--primary-rgb),.06);border:2px solid var(--primary)!important;border-radius:10px;box-shadow:0 0 0 4px rgba(var(--primary-rgb),.12);display:none;font-size:1.1rem;font-weight:700;height:100%;left:0;margin:0;padding:8px 16px;position:absolute;text-align:right;top:0;width:100%;z-index:100}
.value-display{background:rgba(var(--primary-rgb),.06);border:1px dashed rgba(var(--primary-rgb),.3);border-radius:10px;box-sizing:border-box;cursor:pointer;display:inline-block;font-size:1.1rem;font-weight:700;min-width:150px;padding:8px 16px;text-align:right;transition:all .3s ease;width:100%}
.value-input-container.focused .value-display{opacity:0;visibility:hidden}
.slider-track{background:transparent;border:1px solid var(--border);border-radius:10px;display:flex;height:10px;margin-bottom:.75rem;overflow:visible;position:relative;width:100%}
.slider-progress{background:linear-gradient(to right,var(--primary),var(--secondary));border-radius:10px;box-shadow:var(--glow-primary);height:100%;position:absolute;top:0;left:0;transition:width .3s ease;will-change:width}
input[type=range]{-webkit-appearance:none;appearance:none;background:transparent;height:100%;left:0;margin:0;outline:none;position:absolute;top:50%;transform:translateY(-50%);width:100%;z-index:2}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:#fff;border:3px solid var(--primary);border-radius:50%;box-shadow:0 0 15px rgba(var(--primary-rgb),.5);cursor:pointer;height:22px;position:relative;transition:var(--transition);width:22px;z-index:3}
input[type=range]::-webkit-slider-thumb:hover{box-shadow:0 0 20px rgba(var(--primary-rgb),.8);transform:scale(1.1)}
.range-labels{color:var(--gray);display:flex;font-size:.85rem;justify-content:space-between;margin-top:.5rem}

/* =SWITCH DE SLIDERS ========================================== */
.slider-toggle{display:flex;justify-content:center;gap:.5rem;margin-bottom:1rem}
.slider-switch{padding:.5rem 1rem;border:1px solid var(--primary);background:#fff;color:var(--primary);font-weight:700;border-radius:20px;cursor:pointer;transition:background .3s,transform .2s}
.slider-switch:hover{transform:scale(1.01)}
.slider-switch.active{background:var(--primary);color:#fff}
.slider-switch:focus-visible{outline:3px solid rgba(var(--primary-rgb),1);outline-offset:2px}

/* =SEÇÃO IMAGEM FIXA ========================================== */
.fixed-image-section{align-items:center;background:linear-gradient(135deg,var(--primary),var(--primary-dark));border:1px solid rgba(255,255,255,.3);border-radius:var(--border-radius);box-shadow:var(--shadow),var(--glow-primary);display:flex;height:280px;justify-content:center;overflow:hidden;padding:2rem 1rem;position:relative;text-align:center}
.fixed-image-section::before{background:radial-gradient(circle,rgba(255,255,255,.2) 0%,rgba(255,255,255,0) 70%);content:"";height:200%;left:-50%;position:absolute;top:-50%;transform:rotate(30deg);width:200%;z-index:1}
.fixed-image-section img{height:100%;left:0;object-fit:cover;opacity:.3;position:absolute;top:0;width:100%;z-index:0}
.fixed-image-content{max-width:800px;padding:0 1rem;position:relative;z-index:2}
.fixed-image-content h1{color:#fff;font-size:2.5rem;font-weight:800;letter-spacing:-.015em;line-height:1.2;margin-bottom:1rem;text-shadow:0 2px 8px rgba(0,0,0,.4)}
.fixed-image-content p{color:rgba(255,255,255,.95);font-size:1.2rem;line-height:1.5;margin:0 auto;max-width:700px;text-shadow:0 1px 3px rgba(0,0,0,.3)}

/* =RESUMO ===================================================== */
#resumoStep3{display:block;border-top:1px solid var(--border);margin-top:2rem;padding-top:2rem}
#resumoStep3.visible{animation:fadeIn .5s ease;display:block}
#resumoStep3.hidden{display:none}
#step3:not(.hidden){animation:slideDownExpand .5s forwards;border-top:1px solid var(--border);margin-top:2rem;padding-top:2rem}
.resumo-container{background:var(--light);border:1px solid var(--border);border-radius:var(--border-radius);box-shadow:var(--shadow);margin-top:1rem;padding:1.5rem}
.resumo-card{background:var(--card-bg);border-radius:var(--border-radius);padding:1.5rem}
.resumo-header{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:1.5rem}
.resumo-header h3{color:var(--primary);font-size:1.4rem;font-weight:700;margin:0}
.resumo-badge{border:1px solid rgba(0,0,0,.1);border-radius:20px;font-size:.9rem;font-weight:700;padding:.4rem .8rem;text-align:center;white-space:nowrap}
.resumo-detalhes{background:var(--light);border:1px solid var(--border);border-radius:16px;margin-bottom:1.5rem;padding:1.5rem}
.resumo-item{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:1rem;padding:1rem 0}
.resumo-item:last-child{border-bottom:none}
.resumo-icon{align-items:center;background:rgba(var(--primary-rgb),.12);border-radius:50%;color:var(--primary);display:flex;font-size:1.1rem;height:40px;justify-content:center;width:40px}
.resumo-info{flex:1}.resumo-label{color:var(--gray);display:block;font-size:.95rem;font-weight:600;margin-bottom:.25rem}
.resumo-sub{display:block;font-size:.85rem;color:var(--gray);font-weight:600;margin-top:.3rem}
.resumo-valor{color:var(--dark);font-size:1.1rem;font-weight:700}
.viability-container{width:100%}
.viability-bar-container{background:var(--border);border-radius:5px;height:10px;margin-top:.5rem;width:100%}
.viability-bar{background:linear-gradient(to right,var(--success),var(--warning));border-radius:5px;height:100%;transition:width .5s ease}
.viability-details{color:var(--dark);font-size:.9rem;font-weight:600;margin-top:.25rem;text-align:right}
.resumo-actions{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;margin-top:1.5rem}
.resumo-actions .btn{flex:0 0 auto;min-width:auto}
.resumo-footer{margin-top:1.5rem}

/* =TOOLTIPS/TOAST ============================================= */
.tooltip-icon{cursor:pointer;display:inline-block;margin-left:5px;position:relative}
.tooltip-icon .tooltip-text{background:var(--dark);border-radius:6px;bottom:125%;color:#fff;left:50%;opacity:0;padding:10px;position:absolute;text-align:center;transform:translateX(calc(-50% + var(--shift,0px)));transition:opacity .3s;visibility:hidden;z-index:3;max-width:calc(100vw - 32px);width:max-content;white-space:normal;box-sizing:border-box}
.tooltip-icon .tooltip-text::after{border:5px solid transparent;border-top-color:var(--dark);content:"";left:50%;position:absolute;top:100%;transform:translateX(-50%)}
.tooltip-icon:hover .tooltip-text,.tooltip-icon:focus .tooltip-text{opacity:1;visibility:visible}
#toastContainer{bottom:20px;position:fixed;right:20px;z-index:1000}
.toast{background:#333;color:#fff;padding:12px 18px;border-radius:6px;margin-top:8px;box-shadow:0 4px 12px rgba(0,0,0,.15);animation:fadeIn .25s ease-out}
.toast.success{background:#16a34a}.toast.error{background:#dc2626}.toast.fade-out{animation:fadeOut .25s forwards}

/* =ANIMAÇÕES & HELPERS ======================================== */
@keyframes valuePulse{0%{transform:scale(1)}100%{transform:scale(1.02)}}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideUp{from{opacity:.01;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideDownExpand{from{max-height:0;opacity:0;transform:translateY(-10px)}to{max-height:100%;opacity:1;transform:translateY(0)}}
@keyframes shimmer{0%{background-position:100% 0}100%{background-position:-100% 0}}
@keyframes shake{25%,75%{transform:translateX(-5px)}50%{transform:translateX(5px)}}
@keyframes fadeOut{to{opacity:0}}
@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.04)}100%{transform:scale(1)}}
@keyframes highlightPulse{0%{background:#fff8f0}100%{background:transparent}}
@keyframes priorityPulse{
0%{background-position:0% 50%;box-shadow:0 10px 30px -10px rgba(var(--primary-rgb),.45),var(--glow-primary)}
50%{background-position:100% 50%;box-shadow:0 18px 38px -12px rgba(var(--primary-rgb),.7),var(--glow-primary)}
100%{background-position:0% 50%;box-shadow:0 10px 30px -10px rgba(var(--primary-rgb),.45),var(--glow-primary)}
}
@keyframes priorityGlow{
0%{opacity:.85;transform:scale(.98)}
50%{opacity:.45;transform:scale(1.05)}
100%{opacity:.85;transform:scale(.98)}
}
@keyframes prioritySweep{
0%{opacity:0;transform:translateX(-140%) skewX(-18deg)}
30%{opacity:.7}
60%{opacity:.2}
100%{opacity:0;transform:translateX(140%) skewX(-18deg)}
}
.hidden{display:none}.step2-buttons{opacity:1;transform:translateY(0);transition:opacity .4s ease,transform .4s ease,visibility .4s;visibility:visible}
.step2-buttons.hidden{opacity:0;pointer-events:none;transform:translateY(20px);visibility:hidden}
.step3-buttons{display:none}.step3-buttons.visible{animation:fadeIn .5s ease;display:flex}
.badge-popular{background:var(--warning);border-radius:12px;box-shadow:0 2px 6px rgba(0,0,0,.15);color:#fff;font-size:.75rem;font-weight:700;padding:3px 8px;position:absolute;right:10px;top:10px}
.shimmer-card{animation:shimmer 1.2s ease-in-out infinite;background:linear-gradient(-90deg,#f3f4f6,#e5e7eb,#f3f4f6);background-size:400% 400%;border-radius:var(--border-radius);height:180px}
.pulse{animation:pulse .6s ease}.highlight{animation:highlightPulse 1.5s ease;border-radius:8px;padding:2px 8px}
.shake{animation:shake .5s;border-color:var(--danger)!important}.mt-7{margin-top:30px}
.chip,.pill{padding:.25rem .55rem;border-radius:999px;background:#eef1f4;font-size:.85rem;font-weight:700}
.ribbon{--rb-inset:80px;--rb-thickness:25px;--rb-offset-x:-90px;--rb-offset-y:20px;position:absolute;top:var(--rb-inset);right:var(--rb-inset);z-index:4;pointer-events:none;width:0;height:0;overflow:visible}
.ribbon span{position:absolute;top:0;right:-15px;transform-origin:100% 0;transform:translate(calc(-1*var(--rb-offset-x)),var(--rb-offset-y)) rotate(45deg);display:inline-block;width:180px;height:var(--rb-thickness);line-height:var(--rb-thickness);padding:0 12px;white-space:nowrap;text-transform:uppercase;font:800 11px/var(--rb-thickness) system-ui,sans-serif;letter-spacing:.6px;color:#fff;background:linear-gradient(#9BC90D 0%,#79A70A 100%);box-shadow:0 3px 10px -5px rgba(0,0,0,.9)}
.ribbon span::before,.ribbon span::after{content:"";position:absolute;top:100%;z-index:-1;border-bottom:3px solid transparent;border-top:3px solid #79A70A}
.ribbon span::before{left:0;border-left:3px solid #79A70A;border-right:3px solid transparent}
.ribbon span::after{right:0;border-left:3px solid transparent;border-right:3px solid #79A70A}
.ribbon-popular span{background:linear-gradient(#2439fb 0%,#0681d9 100%)}

/* =MODALIDADES (RESUMO TABELA) ================================= */
.modality-details summary{cursor:pointer;margin:.5rem 0;font-weight:600}
.modality-list{display:grid;gap:12px;margin-top:10px}
.modality{padding:10px;border-radius:10px;background:#fff;border:1px solid #ececec}
.modality-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.35rem}
.modality-name{font-weight:600}.modality-count{font-size:.875rem;opacity:.75}
.modality-plans{display:grid;gap:8px}
.plan-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.plan-row-info{display:flex;gap:8px;flex-wrap:wrap}
.plan-pill{background:#f5f7fb;border-radius:999px;padding:4px 10px;font-size:.9rem}
.plan-pill.pill-strong{background:#eef6ff;font-weight:600}
.badge-scarce{position:absolute;top:12px;right:12px;pointer-events:none;z-index:3;background:#fef3c7;color:#b45309;font-weight:800;font-size:.8rem;padding:6px 10px;border-radius:999px;border:1px solid #fde68a}
.plan-group-resume{margin:6px 0 8px;font-size:.95rem;opacity:.85}

/* =TABELA COMPARATIVA ========================================= */
.plan-table-wrap{width:100%;overflow:auto;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:var(--shadow)}
.plan-table{width:100%;border-collapse:separate;border-spacing:0;min-width:900px}
.plan-table thead th{position:sticky;top:0;background:var(--light);z-index:1;text-align:left;font-weight:700;font-size:.95rem;padding:14px 16px;border-bottom:1px solid var(--border)}
.plan-table thead .th-modality-title{font-weight:700}
.plan-table thead .th-modality-sub{font-weight:500;opacity:.7;font-size:.82rem}
.plan-table .col-prazo{width:180px}
.plan-table tbody tr{background:#fff}
.plan-table tbody tr:nth-child(odd){background:var(--primary-light)}
.plan-table tbody th.row-prazo-th{position:sticky;left:0;z-index:1;background:inherit;font-weight:700;padding:14px 16px;border-right:1px solid var(--border)}
.prazo-chip{display:inline-flex;gap:6px;align-items:center;font-size:.95rem;padding:6px 10px;border-radius:999px;background:#fff;border:1px dashed var(--border)}
.prazo-chip small{opacity:.7}
.plan-table td.cell-modality{vertical-align:top;padding:12px;border-left:1px solid var(--border)}
.plan-table td.cell-empty{color:#94a3b8;text-align:center}
.cell-box{display:flex;flex-direction:column;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--border);border-radius:12px;background:#fff;transition:transform .15s ease,box-shadow .15s ease}
.cell-box:hover{transform:scale(1.01);box-shadow:var(--shadow-hover)}
.kpis{display:flex;gap:14px;flex-wrap:wrap}
.kpi{display:flex;gap:6px;align-items:baseline;padding:6px 10px;border-radius:10px;background:var(--primary-light)}
.kpi-strong{background:#fff;border:1px solid var(--primary)}
.kpi-label{font-size:.82rem;opacity:.75}.kpi-value{font-weight:700;font-size:.95rem}
.group-header{display:flex;justify-content:space-between;gap:16px;align-items:center;padding-bottom:8px;border-bottom:1px solid var(--border)}
.group-header-left{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.group-title{display:flex;gap:10px;align-items:center}
.group-name{font-weight:800;font-size:1.05rem}
.badge.badge-type{padding:4px 10px;border-radius:999px;font-weight:700;font-size:.8rem;background:var(--primary-light);color:var(--primary)}
.group-modalities-chip{padding:6px 10px;border-radius:10px;background:#fff;border:1px solid var(--border);font-weight:600;opacity:.9}
.selected-plan-section{margin-top:8px;padding:12px;border-radius:12px;background:#f8fafc;border:1px solid var(--border)}
.selected-title{margin:0 0 8px 0;font-size:1rem;font-weight:800}
.selected-details{display:flex;gap:18px;flex-wrap:wrap}
.selected-detail{display:flex;gap:6px}
.detail-label{opacity:.7;font-size:.9rem}.detail-value{font-weight:800}
.selected-footer{margin-top:6px;display:flex;gap:16px;flex-wrap:wrap;opacity:.85}

/* =SWIPER/CARROSSEL =========================================== */
.plan-carousel-wrap{position:relative;padding:8px 0 18px}
.plan-swiper{width:100%;padding:14px 16px 42px;overflow:visible}
.plan-swiper .swiper-wrapper{align-items:stretch}
.plan-swiper .swiper-slide{width:min(520px,90vw)}
.slide-card{position:relative;height:100%;background:radial-gradient(120% 120% at 100% 0%,rgba(69,137,255,.12) 0%,#fff 40%),linear-gradient(180deg,#fff 0%,#fbfbff 100%);border:1px solid var(--border);border-radius:18px;box-shadow:0 8px 24px rgba(var(--primary-rgb),.06),var(--shadow);padding:16px 16px 14px;overflow:hidden}
.slide-card::before{content:"";position:absolute;top:-30%;right:-20%;width:70%;height:70%;background:radial-gradient(circle at 50% 50%,rgba(var(--secondary-rgb),.15),transparent 60%);filter:blur(10px);z-index:0}
.slide-head{position:relative;z-index:1;display:grid;gap:8px;margin-bottom:10px}
.slide-title{font-weight:800;letter-spacing:-.01em;color:var(--dark)}
.slide-credit{font-weight:600;color:var(--gray)}
.slide-prazo .chip{padding:.35rem .7rem;border-radius:999px;background:var(--primary-light);color:var(--dark);border:1px dashed var(--border);font-weight:800;display:inline-flex;align-items:center;gap:6px}
.slide-best-list{position:relative;z-index:1;display:flex;flex-direction:column;gap:10px;margin-top:6px}
.best-item{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;border:1px solid var(--border);background:#fff;border-radius:12px;padding:10px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.best-item:hover{transform:scale(1.01);box-shadow:var(--shadow-hover);border-color:rgba(var(--primary-rgb),.25)}
.best-item.best{border:1px solid var(--primary);box-shadow:0 8px 20px rgba(var(--primary-rgb),.12)}
.best-info{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.best-mod{font-weight:700;color:var(--dark)}.best-fee{font-size:.9rem;color:var(--gray)}
.best-price{font-weight:800;color:var(--primary);min-width:140px;text-align:right}
.plan-swiper .swiper-button-prev,.plan-swiper .swiper-button-next{color:var(--primary);filter:drop-shadow(0 2px 4px rgba(var(--primary-rgb),.25))}
.plan-swiper .swiper-pagination-bullet{background:rgba(var(--primary-rgb),.35);opacity:1}
.plan-swiper .swiper-pagination-bullet-active{background:linear-gradient(to right,var(--primary),var(--secondary))}
@media (prefers-reduced-motion:reduce){.plan-swiper{padding-bottom:20px}}
@media (max-width:768px){.plan-swiper .swiper-slide{width:calc(100vw - 48px)}}
.plan-carousel-wrap,.plan-swiper{touch-action:pan-y}
.plan-swiper{touch-action:pan-x!important;-webkit-overflow-scrolling:touch}
.plan-carousel-wrap{touch-action:auto!important}

/* =ANTI-STICKY MOBILE (Step3->Step2) ========================== */
.step2-buttons.suppress-active,.step2-buttons.suppress-active .btn{transform:none!important;box-shadow:none!important;filter:none!important}
.step2-buttons.suppress-active .btn:hover,.step2-buttons.suppress-active .btn:active{transform:none!important;box-shadow:none!important}

/* =BOTÃO NOVA SIMULAÇÃO ======================================= */
.btn-new-sim{display:inline-flex;align-items:center;gap:.6rem;font-weight:800;border:1px dashed var(--primary);background:#fff;color:var(--primary);transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease;padding:.9rem 1.2rem;border-radius:12px}
.btn-new-sim:hover{transform:scale(1.01);box-shadow:var(--shadow-hover);background:var(--primary-light);border-color:transparent}
.btn-new-sim:focus-visible{outline:3px solid rgba(var(--primary-rgb),1);outline-offset:2px}
.icon-wand{width:22px;height:22px;position:relative;display:inline-block;transform-origin:center;filter:drop-shadow(0 1px 0 rgba(0,0,0,.1))}
.icon-wand::before{content:"";position:absolute;left:9px;top:2px;width:4px;height:16px;background:linear-gradient(180deg,#0f172a,#475569);border-radius:2px;transform:rotate(35deg)}
.icon-wand::after{content:"";position:absolute;left:4px;top:3px;width:6px;height:6px;border-radius:50%;background:radial-gradient(circle,#fff 45%,rgba(var(--secondary-rgb),.9) 46%,rgba(var(--secondary-rgb),0) 70%);box-shadow:0 0 10px rgba(var(--secondary-rgb),.55)}
.icon-wand .spark{position:absolute;width:4px;height:4px;border-radius:50%;background:rgba(var(--primary-rgb),.95);opacity:0;transform:scale(.6);pointer-events:none}
.icon-wand .spark.s1{left:-2px;top:-2px}.icon-wand .spark.s2{left:-6px;top:8px}.icon-wand .spark.s3{left:2px;top:14px}
@keyframes sparkle-pop{0%{opacity:0;transform:translate(0,0) scale(.4)}40%{opacity:1}100%{opacity:0;transform:translate(-6px,-10px) scale(1)}}
@keyframes sparkle-pop-2{0%{opacity:0;transform:translate(0,0) scale(.4)}40%{opacity:1}100%{opacity:0;transform:translate(-8px,4px) scale(1)}}
@keyframes sparkle-pop-3{0%{opacity:0;transform:translate(0,0) scale(.4)}40%{opacity:1}100%{opacity:0;transform:translate(6px,-4px) scale(1)}}
.btn-new-sim:hover .icon-wand{transform:rotate(-8deg) translateY(-1px)}
.btn-new-sim:hover .icon-wand .spark.s1{animation:sparkle-pop 900ms ease-out forwards}
.btn-new-sim:hover .icon-wand .spark.s2{animation:sparkle-pop-2 1000ms 80ms ease-out forwards}
.btn-new-sim:hover .icon-wand .spark.s3{animation:sparkle-pop-3 950ms 120ms ease-out forwards}

/* =FULL BLEED & ACESSIBILIDADE ================================ */
.full-bleed{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
html,body{overscroll-behavior-x:none}.simulation-container{overscroll-behavior:contain}
@media (max-width:768px){.form-section,#step1,#step2,#step3{touch-action:pan-y}.plan-table-wrap{touch-action:pan-x;-webkit-overflow-scrolling:touch}}
@media (prefers-contrast:more){.btn:focus-visible{outline-width:4px}.btn-secondary{border-color:#c9d8ff}}
@media (forced-colors:active){.btn,.btn-secondary,.btn-primary{border:1px solid ButtonText}}
@media (prefers-reduced-motion:reduce){
  .btn-prioritario,
  .btn-prioritario::before,
  .btn-prioritario::after{
    animation:none !important;
    background-position:50% 50%;
  }
}

/* =RESPONSIVO ================================================= */
@media (min-width:1280px){.simulation-container{box-shadow:0 8px 28px rgba(0,0,0,.06);border-radius:24px}}
@media (min-width:1440px){.container{max-width:min(1800px,96vw)}}
@media (min-width:1024px){.plan-table{min-width:1000px}}
@media (max-width:768px){
  .simulation-container{margin:1rem auto}
  .form-section{padding:1.5rem}
  .step-title{font-size:1.4rem}.step-desc{font-size:1rem}
  :is(.card-options,card-options),.plans-container{grid-template-columns:1fr}
  .resumo-actions{flex-direction:column}.resumo-actions .btn{width:100%}
  .resumo-item{align-items:flex-start;flex-direction:column;gap:.5rem}
  .buttons{flex-direction:column}.btn{flex:0 1 0%;font-size:1.1rem;padding:1.1rem 1.8rem;margin-bottom:10px}
}
@media (max-width:480px){
  .simulation-container{border-radius:16px;margin:.5rem auto}
  .fixed-image-section{border-radius:16px 16px 0 0;height:200px}
  .fixed-image-content h1{font-size:1.7rem}
  .step-bubble{font-size:.8rem;height:28px;width:28px}
  .step-label{font-size:.7rem;width:80px}
  .slider-header{flex-direction:column}
  .btn{margin-bottom:10px}
  .resumo-header{flex-direction:column;gap:.8rem}
  .resumo-detalhes,.resumo-card{padding:1rem}.resumo-card{border-radius:16px}
  .resumo-item{padding:.8rem 0}
  .progress-header{flex-direction:column;gap:.5rem}
  .tooltip-icon .tooltip-text{font-size:.85rem;line-height:1.4}
}


/* ==============================
   Extras da Simulação
   (botão "Nova simulação" + ícone/anim.)
   ============================== */

/* Botão "Nova simulação" */
.btn-new-sim{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  font-weight:800;
  border:1px dashed var(--primary);
  background:#fff;
  color:var(--primary);
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
  padding:.9rem 1.2rem;
  border-radius:12px;
}

.btn-new-sim:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 25px -5px rgba(79,70,229,.25);
  background:#eef2ff;
  border-color:transparent;
}

/* Animação de entrada do botão */
.btn-new-sim.pop-in{ animation:newSimPop .28s ease-out both; }
@keyframes newSimPop{
  0%{ transform:scale(.92); opacity:0 }
  60%{ transform:scale(1.04); opacity:1 }
  100%{ transform:scale(1) }
}

/* Ícone varinha com faíscas */
.icon-wand{
  width:22px; height:22px;
  position:relative; display:inline-block;
  transform-origin:center;
  filter: drop-shadow(0 1px 0 rgba(0,0,0,.1));
}

/* Haste da varinha */
.icon-wand::before{
  content:"";
  position:absolute; left:9px; top:2px;
  width:4px; height:16px;
  background:linear-gradient(180deg,#0f172a,#475569);
  border-radius:2px;
  transform:rotate(35deg);
}

/* Brilho da ponta */
.icon-wand::after{
  content:"";
  position:absolute; left:4px; top:3px;
  width:6px; height:6px; border-radius:50%;
  background:radial-gradient(circle,#fff 45%, rgba(168,85,247,.9) 46%, rgba(168,85,247,0) 70%);
  box-shadow:0 0 10px rgba(168,85,247,.55);
}

/* Pontos de faísca */
.icon-wand .spark{
  position:absolute;
  width:4px; height:4px; border-radius:50%;
  background:rgba(79,70,229,.95);
  opacity:0; transform:scale(.6);
  pointer-events:none;
}
.icon-wand .spark.s1{ left:-2px; top:-2px; }
.icon-wand .spark.s2{ left:-6px; top:8px; }
.icon-wand .spark.s3{ left:2px; top:14px; }

/* Animações das faíscas */
@keyframes sparkle-pop{
  0%{opacity:0; transform:translate(0,0) scale(.4)}
  40%{opacity:1}
  100%{opacity:0; transform:translate(-6px,-10px) scale(1)}
}
@keyframes sparkle-pop-2{
  0%{opacity:0; transform:translate(0,0) scale(.4)}
  40%{opacity:1}
  100%{opacity:0; transform:translate(-8px,4px) scale(1)}
}
@keyframes sparkle-pop-3{
  0%{opacity:0; transform:translate(0,0) scale(.4)}
  40%{opacity:1}
  100%{opacity:0; transform:translate(6px,-4px) scale(1)}
}

/* Interações hover */
.btn-new-sim:hover .icon-wand{
  transform:rotate(-8deg) translateY(-1px);
}
.btn-new-sim:hover .icon-wand .spark.s1{ animation:sparkle-pop 900ms ease-out forwards; }
.btn-new-sim:hover .icon-wand .spark.s2{ animation:sparkle-pop-2 1000ms 80ms ease-out forwards; }
.btn-new-sim:hover .icon-wand .spark.s3{ animation:sparkle-pop-3 950ms 120ms ease-out forwards; }

/* Disparo automático ao aparecer */
.icon-wand.spark-now .s1{ animation:sparkle-pop 900ms ease-out forwards; }
.icon-wand.spark-now .s2{ animation:sparkle-pop-2 1000ms 80ms ease-out forwards; }
.icon-wand.spark-now .s3{ animation:sparkle-pop-3 950ms 120ms ease-out forwards; }
