#presupuestoCarritoModal { --pc-color-boton:#09253a; }
/* Descarga del carrito: modal independiente de los avisos generales. */
#presupuestoCarritoModal { color:#243b50; font-family:inherit; text-align:left; }
#presupuestoCarritoModal *, #presupuestoCarritoModal *::before { box-sizing:border-box; }
#presupuestoCarritoModal [hidden] { display:none!important; }
#presupuestoCarritoModal .modal-dialog { width:calc(100% - 32px); max-width:660px; margin:24px auto; min-height:calc(100% - 48px); }
#presupuestoCarritoModal .modal-content { padding:0; margin:0; border:1px solid #dce4ed; border-radius:20px; background:#fff; box-shadow:0 24px 80px #152e4a30; overflow:hidden; text-align:left; }
#presupuestoCarritoModal h2, #presupuestoCarritoModal p { padding:0; font-family:inherit; text-transform:none; text-align:left; letter-spacing:normal; }
#presupuestoCarritoModal .pc-cabecera { display:flex; gap:16px; align-items:flex-start; padding:26px 28px; border-bottom:1px solid #e3eaf1; }
#presupuestoCarritoModal .pc-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; }
#presupuestoCarritoModal h2 { margin:0 0 7px; color:#243b50; font-size:22px; font-weight:600; line-height:1.3; }
#presupuestoCarritoModal .pc-cabecera p { margin:0; color:#60758b; font-size:14px; line-height:1.6; }
#presupuestoCarritoModal button { font-family:inherit; text-transform:none; letter-spacing:normal; min-width:0; cursor:pointer; }
#presupuestoCarritoModal .pc-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; }
#presupuestoCarritoModal .pc-cuerpo { margin:0; padding:24px 28px 28px; }
#presupuestoCarritoModal .pc-tipo { min-width:0; margin:0 0 22px; padding:0; border:0; }
#presupuestoCarritoModal legend { display:block; float:none; width:100%; margin:0 0 12px; padding:0; color:#344f69; font-size:14px; font-weight:600; line-height:1.5; }
#presupuestoCarritoModal .pc-opciones { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
#presupuestoCarritoModal .pc-opciones label { position:relative; margin:0; cursor:pointer; }
#presupuestoCarritoModal .pc-opciones input { position:absolute; inset:0; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
#presupuestoCarritoModal .pc-opciones span { display:flex; align-items:center; justify-content:center; gap:9px; min-height:48px; padding:12px; border:1px solid #cbd9e7; border-radius:10px; background:#fff; color:#526b82; font-size:14px; font-weight:500; }
#presupuestoCarritoModal .pc-opciones input:checked + span { border-color:var(--color-principal,#0099ff); background:var(--color-principal-alfa10,#e6f5ff); color:#243b50; box-shadow:inset 0 0 0 1px var(--color-principal,#0099ff); }
#presupuestoCarritoModal .pc-opciones input:focus-visible + span { outline:2px solid #385a78; outline-offset:3px; }
#presupuestoCarritoModal .pc-ayuda { margin:0 0 16px; color:#60758b; font-size:13px; line-height:1.6; }
#presupuestoCarritoModal .pc-campos { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px 20px; }
#presupuestoCarritoModal .pc-ancho { grid-column:1/-1; }
#presupuestoCarritoModal .pc-campo > label { display:block; margin:0 0 8px; color:#344f69; font-size:13px; font-weight:600; line-height:1.5; }
#presupuestoCarritoModal .pc-campo > input { display:block; width:100%; height:48px; margin:0; padding:11px 13px; border:1px solid #c9d8e7; border-radius:9px; background:#fff; color:#243b50; font-family:inherit; font-size:16px; line-height:1.5; text-align:left; box-shadow:none; }
#presupuestoCarritoModal .pc-campo > input:focus { outline:2px solid var(--color-principal,#0099ff); outline-offset:2px; }
#presupuestoCarritoModal .pc-campo > input[aria-invalid=true] { border-color:#c25346; }
#presupuestoCarritoModal .pc-error { margin:10px 0 0; color:#a4362e; font-size:13px; line-height:1.6; }
#presupuestoCarritoModal .pc-nota { display:flex; gap:8px; align-items:flex-start; margin:22px 0; color:#60758b; font-size:12px; line-height:1.65; }
#presupuestoCarritoModal .pc-nota i { margin-top:4px; flex-shrink:0; }
#presupuestoCarritoModal .pc-alerta { margin:16px 0; padding:13px 16px; border:1px solid #e5c7b8; border-radius:9px; background:#fff7ef; color:#87412e; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
#presupuestoCarritoModal .pc-acciones { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:10px; padding-top:20px; border-top:1px solid #e3eaf1; }
#presupuestoCarritoModal .pc-primario, #presupuestoCarritoModal .pc-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; }
#presupuestoCarritoModal .pc-primario { border-color:var(--color-principal,#0099ff); background:var(--color-principal,#0099ff); color:var(--pc-color-boton,#fff); }
#presupuestoCarritoModal button:hover { filter:brightness(.97); }
#presupuestoCarritoModal button:focus-visible { outline:2px solid #385a78; outline-offset:3px; }
#presupuestoCarritoModal button:disabled { opacity:.65; cursor:wait; }
#presupuestoCarritoModal[aria-busy=true] .pc-primario i { animation:pc-girar 1s linear infinite; }
@keyframes pc-girar { to { transform:rotate(360deg); } }
@media(max-width:575px) {
 #presupuestoCarritoModal .modal-dialog { width:calc(100% - 20px); min-height:calc(100% - 20px); margin:10px auto; }
 #presupuestoCarritoModal .pc-cabecera { gap:12px; padding:20px 16px; }
 #presupuestoCarritoModal .pc-icono { flex-basis:38px; height:38px; font-size:19px; }
 #presupuestoCarritoModal h2 { font-size:19px; }
 #presupuestoCarritoModal .pc-cuerpo { padding:20px 16px; }
 #presupuestoCarritoModal .pc-campos { grid-template-columns:minmax(0,1fr); }
 #presupuestoCarritoModal .pc-acciones { flex-direction:column-reverse; }
 #presupuestoCarritoModal .pc-acciones button { width:100%; }
}
@media(prefers-reduced-motion:reduce) { #presupuestoCarritoModal * { animation:none!important; transition:none!important; } }

