/* Cotizador y contacto compartidos: estructura clara, legible y adaptable. */
.quote-app{--quote-blue:#315095;--quote-accent:#087eb2;--quote-border:#ced9e5;min-width:0;width:100%;padding:26px;background:#fff;color:#203853;border-radius:8px;box-shadow:0 18px 56px #102b4d24;scroll-margin-top:140px}
.quote-app [hidden]{display:none!important}
.quote-products{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;overflow:visible;padding:0 0 18px;border-bottom:1px solid #e1e8ef}
.quote-products button{display:flex;align-items:center;justify-content:center;gap:10px;min-width:0;min-height:60px;padding:10px 12px;border:1px solid var(--quote-border);border-radius:4px;background:#f5f8fb;color:var(--quote-blue);font:inherit;font-size:15px;line-height:1.35;font-weight:700;text-align:left;cursor:pointer;transition:background .18s,border-color .18s,color .18s,box-shadow .18s}
.quote-products button:hover{background:#eaf2fa;border-color:#7d9cc5}
.quote-products button.is-active{background:var(--quote-blue);border-color:var(--quote-blue);color:white;box-shadow:0 3px 10px #31509520}
.quote-products svg{width:23px;height:23px;flex:0 0 23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.quote-app :is(button,a,input,select,textarea):focus-visible,.lead-form :is(button,input):focus-visible{outline:3px solid #0089bc;outline-offset:3px}
.quote-products button:focus-visible{outline-color:#163f83;outline-offset:3px}
.quote-progress{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0;padding:18px 0;list-style:none;border-bottom:1px solid #e6edf4}
.quote-progress li{display:flex;align-items:center;gap:9px;position:relative;color:#61728a;font-size:14px;line-height:1.3}
.quote-progress li span{display:grid;place-items:center;width:29px;height:29px;flex:0 0 29px;border:1px solid #bac9d9;border-radius:50%;font-weight:700}
.quote-progress li.is-current{color:#173f80}.quote-progress li.is-current span{background:#315095;border-color:#315095;color:white}
.quote-progress li.is-done{color:#087b70}.quote-progress li.is-done span{border-color:#87bab3;background:#edf8f5;color:#087b70}
.quote-stage{padding-top:18px;animation:quote-stage-in .22s ease-out}
.quote-stage h3{margin:0 0 5px;color:#173f80;font-size:24px;line-height:1.25;letter-spacing:-.025em}
.quote-stage h3:focus{outline:none}
.quote-stage-help{margin:0 0 20px;color:#566b82;font-size:16px;line-height:1.55;max-width:850px}
.quote-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 16px;align-items:start}
.quote-fields label,.lead-fields label{display:flex;flex-direction:column;gap:7px;min-width:0;color:#284563;font-size:15px;font-weight:700;line-height:1.4}
.quote-fields small{color:#63768b;font-size:13px;font-weight:500}
.quote-fields :is(input:not([type=checkbox]),select,textarea){box-sizing:border-box;width:100%;min-width:0;min-height:48px;padding:11px 12px;border:1px solid var(--quote-border);border-radius:4px;background:white;color:#203853;font:inherit;font-size:16px;line-height:1.4;transition:border-color .18s,box-shadow .18s}
.quote-fields :is(input:not([type=checkbox]),select,textarea):hover{border-color:#8b9fb7}
.quote-fields :is(input,select,textarea):focus{border-color:#087eb2;box-shadow:0 0 0 3px #087eb212}
.quote-fields :is(input,select,textarea):disabled{background:#f0f4f8;color:#718096;cursor:not-allowed}
.quote-fields [aria-invalid=true]{border-color:#af3942;background:#fffafa}
.quote-fields textarea{resize:vertical;min-height:110px}
.quote-fields label:has(textarea){grid-column:span 2}
.quote-fields>.quote-check{display:flex;flex-direction:row;align-items:center;gap:10px;min-height:48px;padding-top:26px}
.quote-checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;grid-column:1/-1;margin:0;padding:16px;border:1px solid var(--quote-border);border-radius:4px}
.quote-checks legend{padding:0 6px;color:#284563;font-size:15px;font-weight:700}
.quote-check,.quote-consent{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:10px;color:#425a73;font-size:15px;line-height:1.5}
.quote-check input,.quote-consent input{box-sizing:border-box;width:20px;height:20px;min-height:20px;flex:0 0 20px;margin:1px 0 0;accent-color:#315095;cursor:pointer}
.quote-consent{margin:20px 0 0}
.quote-field-error{display:block;color:#a3343c;font-size:13px;font-weight:600;line-height:1.4}
.quote-actions{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:22px;padding-top:18px;border-top:1px solid #e6edf4}
.quote-next,.quote-back{min-height:48px;max-width:100%;padding:12px 20px;border:1px solid transparent;border-radius:4px;font:inherit;font-size:16px;line-height:1.4;font-weight:700;cursor:pointer;transition:background .18s,box-shadow .18s}
.quote-next{margin-left:auto;background:#087eb2;color:white;box-shadow:0 3px 10px #087eb21a}.quote-next:hover{background:#065f91;box-shadow:0 5px 14px #087eb22b}
.quote-next span{margin-left:12px}.quote-back{background:#edf2f7;color:#315095;border-color:#d6e0eb}.quote-back:hover{background:#dce7f2}
.quote-error{margin:0;color:#a3343c;font-size:14px;line-height:1.5}.quote-error:empty{display:none}
.coverage-placeholder{padding:24px;border:1px solid #cbdce9;border-left:4px solid #087eb2;border-radius:4px;background:#f2f8fc;color:#284563}
.coverage-placeholder strong{display:block;color:#173f80;font-size:20px;line-height:1.4}.coverage-placeholder p{margin:10px 0 0;font-size:16px;line-height:1.6}
.quote-summary{padding:18px;background:#f3f7fa;border-radius:4px}.summary-product{margin:0 0 12px;color:#173f80;font-size:18px;font-weight:700}
.quote-summary dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0}.quote-summary dl>div{padding:12px;background:white;border:1px solid #e1e8ef;border-radius:3px}.quote-summary dt{color:#61728a;font-size:13px}.quote-summary dd{margin:4px 0 0;color:#203853;font-size:15px;font-weight:700;overflow-wrap:anywhere}
.quote-footnote{margin:16px 0 0;color:#5f7187;font-size:13px;line-height:1.55}.quote-hint{grid-column:1/-1;margin:0;color:#63768b;font-size:14px;line-height:1.5}
/* El cotizador antecede al relato en los tres heroes. */
.hero .hero-grid,.hero:has(>.quick-box),.hero:has(>.hero-main),.hero-main:has(>.quick-box){display:flex;flex-direction:column;align-items:stretch;gap:28px;min-height:0}
.hero .hero-quick-quote,.hero .quick-box{width:100%;order:0;min-width:0}
.hero .quick-quote-content,.hero .quick-inner{display:block;padding:0}
.hero .hero-copy{order:1}.hero-main{order:1}.hero-topline{order:2}.hero-bottom{order:3}
.hero .quote-heading,.hero .quote-question,.hero .quote-help,.hero .quick-kicker,.hero .quick-intro{display:none}
.hero .quote-app{border:0}
/* Formulario de contacto con el mismo lenguaje visual. */
.lead-contact{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(28px,5vw,70px);padding:80px max(6vw,24px);align-items:start;background:#f0f5fa;color:#203853}
.lead-copy .eyebrow{color:#087eb2}.lead-copy h2{margin:14px 0 22px;color:#173f80;font-size:clamp(36px,4vw,54px);line-height:1.1;letter-spacing:-.04em}.lead-copy>p:not(.eyebrow){max-width:490px;color:#566b82;font-size:18px;line-height:1.7}
.lead-form{padding:28px;background:#fff;border-top:4px solid #087eb2;border-radius:5px;box-shadow:0 12px 35px #17355b10}
.lead-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 16px}.lead-fields input{box-sizing:border-box;width:100%;min-width:0;min-height:48px;padding:11px 12px;border:1px solid #ced9e5;border-radius:4px;background:#fff;color:#203853;font:inherit;font-size:16px}
.lead-consent{display:flex;gap:10px;align-items:flex-start;margin-top:22px;color:#425a73;font-size:15px;line-height:1.5}.lead-consent input{width:20px;height:20px;flex:0 0 20px;margin:1px 0 0;accent-color:#315095}
.lead-privacy{margin:14px 0 20px;color:#5f7187;font-size:14px;line-height:1.5}.lead-form button{width:100%;min-height:50px;padding:13px 18px;border:0;border-radius:4px;background:#087eb2;color:white;font:inherit;font-size:16px;font-weight:700;cursor:pointer;transition:background .18s}.lead-form button:hover{background:#065f91}.lead-form button span{margin-left:8px}.lead-status{margin:12px 0 0;color:#315095;font-size:14px;line-height:1.5}.lead-status:empty{display:none}
@keyframes quote-stage-in{from{opacity:.5;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:1100px){.quote-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-products button{font-size:14px;gap:7px;padding:10px}.quote-summary dl{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-checks{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.quote-app{padding:18px 16px;scroll-margin-top:120px;border-radius:5px}.quote-products{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding-bottom:14px}.quote-products button{justify-content:flex-start;min-height:54px;font-size:14px;padding:10px}.quote-products button:last-child{grid-column:1/-1;justify-content:center}.quote-progress{gap:8px;padding:14px 0}.quote-progress li{flex-direction:column;align-items:center;gap:6px;font-size:12px;text-align:center}.quote-progress li span{width:27px;height:27px;flex-basis:27px}.quote-stage{padding-top:16px}.quote-stage h3{font-size:22px}.quote-stage-help{font-size:15px;margin-bottom:18px}.quote-fields{grid-template-columns:1fr;gap:16px}.quote-fields label:has(textarea){grid-column:auto}.quote-fields>.quote-check{padding-top:0}.quote-checks{grid-template-columns:1fr}.quote-actions{gap:10px;align-items:stretch;flex-wrap:wrap}.quote-actions .quote-error{flex-basis:100%}.quote-next,.quote-back{font-size:15px;padding:12px 14px}.quote-summary{padding:12px}.quote-summary dl{grid-template-columns:1fr}.coverage-placeholder{padding:18px}.coverage-placeholder strong{font-size:18px}.coverage-placeholder p{font-size:15px}.lead-contact{grid-template-columns:1fr;padding:54px 20px;gap:26px}.lead-copy h2{font-size:38px}.lead-copy>p:not(.eyebrow){font-size:17px}.lead-form{padding:22px 18px}.lead-fields{gap:16px 12px}}
@media(max-width:420px){.lead-fields{grid-template-columns:1fr}.quote-app{padding:16px 12px}.quote-products button{font-size:13px}.quote-products svg{width:21px;height:21px;flex-basis:21px}.quote-next,.quote-back{padding:11px 12px}}
@media(prefers-reduced-motion:reduce){.quote-stage{animation:none}.quote-app *,.lead-form *{scroll-behavior:auto!important;transition:none!important}}
