/* Diagnóstico de seguridad (cotizador.html) */
.diag-layout{display:grid;gap:2rem;align-items:start;}
@media(min-width:1024px){.diag-layout{grid-template-columns:minmax(0,1fr) 320px;gap:3rem;}}
.diag{max-width:720px;}
.diag [hidden],.diag-form[hidden]{display:none!important;}
@media(min-width:520px){.diag-top{top:76px;}}

.diag-top{position:sticky;top:68px;z-index:5;margin:0 -1rem 1.25rem;padding:.85rem 1rem;background:rgb(255 255 255 / .96);backdrop-filter:blur(8px);border-bottom:1px solid #eee;}
@media(min-width:640px){.diag-top{margin-inline:0;border:1px solid #eee;border-radius:1rem;}.diag-phase{font-size:.75rem;}}
@media(max-width:399px){.diag-timer small{display:none;}}
.diag-phases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:.6rem;align-items:end;}
.diag-phase{font-size:.7rem;white-space:nowrap;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#a3a3a3;}
.diag-phase::after{content:"";display:block;height:4px;margin-top:.4rem;border-radius:4px;background:#f1e1df;}
.diag-phase.is-done,.diag-phase.is-current{color:var(--red,#9e201a);}
.diag-phase.is-done::after{background:var(--red,#9e201a);}
.diag-phase.is-current::after{background:linear-gradient(90deg,var(--red,#9e201a) var(--p,40%),#f1e1df 0);}
.diag-timer{min-width:4.5rem;text-align:right;font-weight:700;font-size:1.25rem;letter-spacing:-.02em;color:var(--ink,#171717);font-variant-numeric:tabular-nums;}
.diag-timer small{display:block;font-size:.7rem;font-weight:500;letter-spacing:0;color:#737373;}
.diag-bar{height:3px;margin-top:.7rem;border-radius:3px;background:#f3f3f3;overflow:hidden;}
.diag-bar>span{display:block;height:100%;width:4%;background:var(--red,#9e201a);transition:width .35s ease;}

.diag-restored{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;justify-content:space-between;margin-bottom:1rem;padding:.75rem 1rem;border-radius:.75rem;background:#f6f6f5;font-size:.9rem;color:#333;}
.diag-restored button{border:0;background:none;padding:0;font:inherit;font-weight:600;color:var(--red,#9e201a);text-decoration:underline;cursor:pointer;}

/* ---------- Vertical timeline: answers, insights, current question, result ---------- */
/* --rail-x is the line's centre inside the track's left gutter; nodes centre on it. */
.diag-track{--rail-x:15px;--gutter:2.75rem;--pad:1.25rem;--res-pad:1.5rem;position:relative;isolation:isolate;padding-left:var(--gutter);}
@media(min-width:640px){.diag-track{--rail-x:17px;--gutter:3.5rem;--pad:2rem;--res-pad:2.25rem;}}
.diag-track::before,.diag-track::after{content:"";position:absolute;z-index:-1;left:calc(var(--rail-x) - 1px);top:var(--rail-top,16px);width:2px;border-radius:2px;}
.diag-track::before{height:var(--rail-h,0);background:repeating-linear-gradient(to bottom,#d6d6d6 0 5px,transparent 5px 10px);}
.diag-track::after{height:var(--fill-h,0);background:var(--red,#9e201a);transition:height .55s cubic-bezier(.4,0,.2,1);}

.diag-node{--s:28px;position:absolute;z-index:1;left:calc(var(--rail-x) - var(--gutter) - var(--s) / 2);width:var(--s);height:var(--s);display:flex;align-items:center;justify-content:center;border-radius:50%;}
.diag-node svg{width:55%;height:55%;}

.diag-log{list-style:none;margin:0;padding:0;}
.diag-log>li{position:relative;margin-bottom:1rem;}

.diag-step .diag-node{--s:24px;top:-1px;background:var(--red,#9e201a);color:#fff;box-shadow:0 0 0 4px #fff;}
.diag-step .diag-node svg{width:14px;height:14px;}
.diag-step-head{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;}
.diag-done-q{font-size:.875rem;line-height:1.35;color:#737373;}
.diag-edit{flex-shrink:0;border:0;background:none;padding:0;font:inherit;font-size:.85rem;font-weight:600;color:var(--red,#9e201a);cursor:pointer;}
.diag-edit:hover{text-decoration:underline;}
.diag-done-a{display:inline-block;margin:.35rem 0 0;padding:.3rem .75rem;border-radius:999px;background:#fbeae8;font-size:.925rem;font-weight:600;line-height:1.35;color:#5c1410;}

/* Insights in green so they read as good news, not as a warning; the rest stays brand red. */
.diag-insight .diag-node{--s:30px;top:.5rem;background:#e7f5ec;color:#15803d;box-shadow:0 0 0 1px #c6e6d1,0 0 0 4px #fff;}
.diag-insight p{margin:0;padding:.75rem 1rem;border-radius:.85rem;background:#f1f8f4;font-size:.9rem;line-height:1.55;color:#2f3a33;}

.diag-current{position:relative;margin-bottom:1rem;}
.diag-current .diag-node{--s:34px;top:calc(var(--pad) + .1rem);background:#fff;border:2px solid var(--red,#9e201a);color:var(--red,#9e201a);font-size:.9rem;font-weight:700;font-variant-numeric:tabular-nums;box-shadow:0 0 0 5px rgb(158 32 26 / .12);}

.diag-end{position:relative;min-height:30px;}
.diag-end .diag-node{--s:30px;top:0;background:#fff;border:2px dashed #cfcfcf;color:#a3a3a3;}
.diag-end-label{margin:0;padding-top:.3rem;font-size:.9rem;font-weight:600;color:#a3a3a3;}
.diag-end.is-done .diag-end-label{display:none;}
.diag-end.is-done .diag-node{--s:34px;top:calc(var(--res-pad) - 7px);border:0;background:var(--red,#9e201a);color:#fff;box-shadow:0 0 0 5px rgb(158 32 26 / .12);}

/* Entry: the answer and its insight slide in, then the next question follows. */
.diag-step.is-new{animation:diag-in .3s ease backwards;}
.diag-insight.is-new{animation:diag-in .35s ease .15s backwards;}
.diag-current.is-enter .diag-q,.diag-current.is-enter .diag-node{animation:diag-in .35s ease .5s backwards;}

/* Phones: the result card takes the full width under the last node instead of sitting in the gutter. */
@media(max-width:639px){
  .diag-end.is-done .diag-node{top:0;}
  .diag-end.is-done .diag-end-label{display:block;padding-top:.4rem;color:var(--red,#9e201a);}
  .diag-end.is-done .diag-result{margin:1rem 0 0 calc(var(--gutter) * -1);}
  .diag-end.is-done .diag-eyebrow{display:none;}
  .diag-end.is-done .diag-res-title{margin-top:0;}
}

.diag-q{margin:0;padding:var(--pad,1.5rem);border:0;border-radius:1.1rem;background:#fff;box-shadow:0 18px 44px -26px rgb(23 23 23 / .35),0 0 0 1px #ececec;animation:diag-in .3s ease;}
.diag-q legend{float:left;width:100%;padding:0;margin-bottom:.35rem;font-weight:700;font-size:clamp(1.35rem,2.6vw,1.75rem);line-height:1.2;letter-spacing:-.02em;color:var(--ink,#171717);}
.diag-hint{clear:both;margin:0 0 .25rem;font-size:.9rem;color:#737373;}
.diag-options{clear:both;display:grid;gap:.6rem;margin-top:1rem;}
@media(min-width:640px){.diag-options.is-two{grid-template-columns:1fr 1fr;}}
@media(min-width:640px){.diag-options.is-cards{grid-template-columns:repeat(3,minmax(0,1fr));}}
.diag-opt{display:flex;align-items:center;gap:.85rem;width:100%;min-height:58px;padding:.85rem 1rem;border:1.5px solid #e2e2e2;border-radius:.85rem;background:#fff;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:border-color .15s,box-shadow .15s,background-color .15s;}
.diag-opt:hover{border-color:var(--red,#9e201a);}
.diag-opt:focus-visible{outline:3px solid rgb(158 32 26 / .35);outline-offset:2px;}
.diag-opt.is-on{border-color:var(--red,#9e201a);background:#fdf6f5;box-shadow:0 0 0 1px var(--red,#9e201a) inset;}
.diag-opt-txt{flex:1;min-width:0;}
.diag-opt-t{display:block;font-weight:600;font-size:1rem;color:var(--ink,#171717);}
.diag-opt-d{display:block;margin-top:.1rem;font-size:.85rem;color:#737373;}
.diag-opt-mark{flex-shrink:0;width:22px;height:22px;border-radius:50%;border:2px solid #cfcfcf;transition:border-color .15s,background-color .15s;}
.diag-opt.is-multi .diag-opt-mark{border-radius:6px;}
.diag-opt.is-on .diag-opt-mark{border-color:var(--red,#9e201a);background:var(--red,#9e201a) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4.5 8.2 2.2 2.2 4.8-4.9' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat;}
.diag-options.is-cards .diag-opt{flex-direction:column;align-items:flex-start;min-height:150px;padding:1.1rem;}
.diag-options.is-cards .diag-opt-mark{display:none;}
.diag-opt-ic{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:.75rem;background:#fbeae8;color:var(--red,#9e201a);}
.diag-opt-ic svg{width:24px;height:24px;}
.diag-next{margin-top:1.1rem;min-height:48px;padding:0 1.5rem;border:0;border-radius:.75rem;background:var(--red,#9e201a);color:#fff;font:inherit;font-weight:600;cursor:pointer;}
.diag-next:disabled{background:#d9d9d9;color:#fff;cursor:not-allowed;}

.diag-result{padding:var(--res-pad,1.75rem);border-radius:1.25rem;background:#fff;box-shadow:0 24px 56px -30px rgb(23 23 23 / .4),0 0 0 1px #ececec;animation:diag-in .35s ease;}
.diag-eyebrow{margin:0;font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--red,#9e201a);}
.diag-res-title{margin-top:.5rem;font-size:clamp(1.5rem,3vw,2rem);line-height:1.15;outline:none;}
.diag-res-grid{display:grid;gap:1rem;margin-top:1.5rem;}
@media(min-width:640px){.diag-res-grid{grid-template-columns:1.1fr 1fr;}}
.diag-pkg{padding:1.25rem 1.35rem;border-radius:1rem;background:var(--red,#9e201a);color:#fff;}
.diag-pkg span{display:block;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;opacity:.8;}
.diag-pkg strong{display:block;margin-top:.3rem;font-size:1.25rem;}
.diag-pkg b{display:block;margin-top:.35rem;font-size:1.65rem;letter-spacing:-.02em;font-variant-numeric:tabular-nums;}
.diag-pkg small{display:block;margin-top:.5rem;font-size:.8rem;line-height:1.45;opacity:.85;}
.diag-facts{margin:0;display:grid;gap:.5rem;}
.diag-facts div{padding:.75rem 1rem;border-radius:.8rem;background:#f6f6f5;}
.diag-facts dt{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#737373;}
.diag-facts dd{margin:.15rem 0 0;font-weight:700;color:var(--ink,#171717);}
.diag-res-sub{margin-top:1.75rem;font-size:1.1rem;}
.diag-items{list-style:none;margin:.75rem 0 0;padding:0;display:grid;gap:.55rem;}
.diag-items li{display:flex;gap:.6rem;font-size:.95rem;line-height:1.5;color:#333;}
.diag-items li::before{content:"✓";flex-shrink:0;font-weight:700;color:var(--red,#9e201a);}
.diag-wa{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;min-height:54px;margin-top:1.75rem;border-radius:.85rem;background:#1faa57;color:#fff;font-weight:600;font-size:1.05rem;text-decoration:none;}
.diag-wa:hover{background:#168a45;color:#fff;}
.diag-wa svg{width:20px;height:20px;}
.diag-or{display:flex;align-items:center;gap:.75rem;margin:1.25rem 0 .75rem;font-size:.85rem;color:#737373;}
.diag-or::before,.diag-or::after{content:"";flex:1;height:1px;background:#e5e5e5;}
.diag-form-row{display:grid;gap:.5rem;}
@media(min-width:640px){.diag-form-row{grid-template-columns:1fr 1fr auto;}}
.diag-form input[type=text],.diag-form input[type=tel]{width:100%;min-height:48px;padding:.6rem .85rem;border:1px solid #d4d4d4;border-radius:.65rem;font:inherit;font-size:1rem;}
.diag-form input:focus{outline:none;border-color:var(--red,#9e201a);box-shadow:0 0 0 3px rgb(158 32 26 / .18);}
.diag-form button{min-height:48px;padding:0 1.2rem;border:0;border-radius:.65rem;background:var(--ink,#171717);color:#fff;font:inherit;font-weight:600;cursor:pointer;white-space:nowrap;}
.diag-saved{margin:1.25rem 0 0;font-size:.85rem;color:#737373;}
.diag-saved button{border:0;background:none;padding:0;font:inherit;font-weight:600;color:var(--red,#9e201a);text-decoration:underline;cursor:pointer;}

.diag-aside{display:grid;gap:1rem;}
@media(min-width:1024px){.diag-aside{position:sticky;top:110px;}}
.diag-aside-card{padding:1.4rem;border-radius:1rem;background:#f6f6f5;}
.diag-aside-card h2,.diag-aside-card h3{font-size:1.05rem;font-weight:700;}
.diag-aside-card ul{list-style:none;margin:.85rem 0 0;padding:0;display:grid;gap:.6rem;font-size:.9rem;line-height:1.5;color:#333;}
.diag-aside-card li{display:flex;gap:.55rem;}
.diag-aside-card li::before{content:"✓";color:var(--red,#9e201a);font-weight:700;}
.diag-aside-card p{margin-top:.6rem;font-size:.9rem;color:#616161;line-height:1.55;}
.diag-aside-card a{font-weight:600;color:var(--red,#9e201a);}

@keyframes diag-in{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
@media(prefers-reduced-motion:reduce){.diag-step.is-new,.diag-insight.is-new,.diag-current.is-enter .diag-q,.diag-current.is-enter .diag-node,.diag-q,.diag-result{animation:none;}.diag-bar>span,.diag-track::after{transition:none;}}
