/* Modal de presupuesto: reglas locales, colores y tipografía de cada marca. */
#presupuestoModal { color:#243b50; font-family:inherit; text-align:left; }
#presupuestoModal *, #presupuestoModal *::before, #presupuestoModal *::after { box-sizing:border-box; }
#presupuestoModal [hidden] { display:none!important; }
#presupuestoModal .modal-dialog { width:calc(100% - 32px); max-width:650px; margin:24px auto; min-height:calc(100% - 48px); }
#presupuestoModal .modal-content { width:100%; padding:0; margin:0; border:1px solid #dce4ed; border-radius:20px; background:#fff; box-shadow:0 24px 80px #152e4a30; overflow:hidden; text-align:left; }
#presupuestoModal h2, #presupuestoModal h3, #presupuestoModal p { padding:0; font-family:inherit; text-align:left; text-transform:none; letter-spacing:normal; }
#presupuestoModal .pp-cabecera { display:flex; gap:16px; align-items:flex-start; padding:28px; border-bottom:1px solid #e3eaf1; }
#presupuestoModal .pp-icono { display:grid; place-items:center; flex:0 0 48px; height:48px; border-radius:14px; background:var(--color-principal-alfa10,#e6f5ff); color:var(--color-principal-oscuro,#0077c8); font-size:23px; }
#presupuestoModal h2 { margin:0 0 7px; color:#243b50; font-size:22px; font-weight:600; line-height:1.3; }
#presupuestoModal .pp-cabecera p { margin:0; color:#60758b; font-size:14px; line-height:1.6; }
#presupuestoModal button { font-family:inherit; text-transform:none; letter-spacing:normal; cursor:pointer; min-width:0; }
#presupuestoModal .pp-cerrar { display:grid; place-items:center; flex:0 0 44px; height:44px; margin:-6px -8px 0 auto; padding:0; border:0; border-radius:12px; background:#f3f6f9; color:#536b80; font-size:26px; line-height:1; }
#presupuestoModal .pp-cuerpo { padding:26px 28px 28px; }
#presupuestoModal .pp-seleccion { margin:0 0 24px; padding:20px; border:1px solid #dce5ef; border-radius:13px; background:#f7f9fc; }
#presupuestoModal .pp-seleccion h3 { margin:0 0 10px; color:#60758b; font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; }
#presupuestoModal .pp-producto { margin:0 0 12px; color:#243b50; font-size:17px; font-weight:600; line-height:1.5; overflow-wrap:anywhere; }
#presupuestoModal .pp-cifras { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 16px; }
#presupuestoModal .pp-cifras span { padding:6px 11px; border:1px solid #dce5ef; border-radius:7px; background:#fff; color:#526b82; font-size:13px; }
#presupuestoModal .pp-cifras strong { color:#243b50; font-weight:600; }
#presupuestoModal .pp-detalles { margin:0; padding:0; }
#presupuestoModal .pp-detalle { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px 16px; margin:0; padding:8px 0; border-top:1px solid #e3eaf1; font-size:13px; line-height:1.5; }
#presupuestoModal .pp-detalle dt { color:#60758b; font-weight:400; overflow-wrap:anywhere; }
#presupuestoModal .pp-detalle dd { margin:0; color:#243b50; font-weight:500; text-align:right; overflow-wrap:anywhere; }
#presupuestoModal .pp-detalle-solo { grid-column:1/-1; }
#presupuestoModal label { display:block; margin:0 0 8px; color:#344f69; font-size:14px; font-weight:600; }
#presupuestoModal input[type=email] { display:block; width:100%; height:50px; margin:0; padding:12px 14px; border:1px solid #c9d8e7; border-radius:9px; background:#fff; color:#243b50; font:inherit; font-size:16px; text-align:left; box-shadow:none; }
#presupuestoModal input[type=email]:focus { outline:2px solid var(--color-principal,#0099ff); outline-offset:2px; }
#presupuestoModal input[aria-invalid=true] { border-color:#c25346; }
#presupuestoModal .pp-ayuda { margin:9px 0 0; color:#60758b; font-size:13px; line-height:1.6; }
#presupuestoModal .pp-error { margin:10px 0 0; color:#a4362e; font-size:13px; line-height:1.6; }
#presupuestoModal .pp-nota { display:flex; align-items:flex-start; gap:8px; margin:22px 0; color:#60758b; font-size:12px; line-height:1.65; }
#presupuestoModal .pp-nota i { flex-shrink:0; margin-top:4px; }
#presupuestoModal .pp-acciones { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:10px; padding-top:20px; border-top:1px solid #e3eaf1; }
#presupuestoModal .pp-primario, #presupuestoModal .pp-secundario { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:46px; max-width:100%; padding:11px 18px; border:1px solid #c9d8e7; border-radius:9px; background:#fff; color:#344f69; font-size:14px; font-weight:500; line-height:1.5; white-space:normal; }
#presupuestoModal .pp-primario { border-color:var(--color-principal,#0099ff); background:var(--color-principal,#0099ff); color:#fff; }
#presupuestoModal button:hover { filter:brightness(.97); }
#presupuestoModal button:focus-visible, #presupuestoModal .pp-estado:focus { outline:2px solid #385a78; outline-offset:3px; }
#presupuestoModal button:disabled { opacity:.65; cursor:wait; }
#presupuestoModal .pp-estado { padding:12px 0 0; text-align:center; }
#presupuestoModal .pp-estado-icono { display:grid; place-items:center; width:64px; height:64px; margin:0 auto 18px; border-radius:50%; background:#e9f8ef; color:#20854c; font-size:28px; }
#presupuestoModal .pp-estado h3 { margin:0 0 12px; color:#243b50; font-size:23px; font-weight:600; line-height:1.4; text-align:center; }
#presupuestoModal .pp-estado p { max-width:460px; margin:0 auto 14px; color:#60758b; font-size:14px; line-height:1.75; text-align:center; overflow-wrap:anywhere; }
#presupuestoModal #presupuestoEstadoEmail { color:#344f69; }
#presupuestoModal .pp-estado button { margin-top:10px; }
#presupuestoModal[data-estado=incierto] .pp-estado-icono { background:#fff4e4; color:#99611c; }
#presupuestoModal[data-estado=enviando] .pp-primario::before { content:""; width:15px; height:15px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:pp-girar .8s linear infinite; }
@keyframes pp-girar { to { transform:rotate(360deg); } }
@media(max-width:575px) {
 #presupuestoModal .modal-dialog { width:calc(100% - 20px); min-height:calc(100% - 20px); margin:10px auto; }
 #presupuestoModal .pp-cabecera { gap:12px; padding:20px 16px; }
 #presupuestoModal .pp-icono { flex-basis:38px; height:38px; font-size:19px; }
 #presupuestoModal h2 { font-size:19px; }
 #presupuestoModal .pp-cuerpo { padding:20px 16px; }
 #presupuestoModal .pp-seleccion { padding:16px; }
 #presupuestoModal .pp-acciones { flex-direction:column-reverse; }
 #presupuestoModal .pp-acciones button { width:100%; }
}
@media(prefers-reduced-motion:reduce) { #presupuestoModal *, #presupuestoModal *::before { animation:none!important; transition:none!important; } }

