.checkout { --green:#2fad39; --dark:#13131d; --ink:#141321; --line:#dde2df; --muted:#555f58; margin:0; background:#f6f7f6; color:var(--ink); font-family:'Work Sans',sans-serif; line-height:1.5; }
.checkout * { box-sizing:border-box; }
.checkout a { color:#176a21; text-underline-offset:3px; }
.checkout-header { background:var(--dark); padding:22px max(24px,calc((100% - 1180px)/2)); display:flex; justify-content:space-between; gap:24px; align-items:center; color:#fff; }
.checkout-header img { width:148px; height:auto; display:block; }
.checkout-header span { font-size:13px; color:#c8d6ca; }
.checkout-main { max-width:1180px; margin:0 auto; padding:32px 24px 70px; }
.checkout .volver { font-size:14px; font-weight:500; }
.checkout h1 { font-size:clamp(30px,4vw,44px); letter-spacing:-1.3px; line-height:1.15; margin:25px 0 20px; font-weight:600; }
.simulada { background:#e6f4e7; border-left:4px solid var(--green); color:#13501a; padding:14px 18px; font-weight:600; }
.intro { max-width:760px; color:var(--muted); margin-bottom:32px; }
.checkout-grid { display:grid; grid-template-columns:minmax(0,1fr) 370px; gap:40px; align-items:start; }
.checkout fieldset { border:0; margin:0 0 30px; padding:0; min-width:0; }
.checkout legend { display:flex; align-items:center; gap:12px; font-size:21px; font-weight:600; padding:0; margin-bottom:22px; }
.checkout legend span { border:1px solid #a4c5a8; border-radius:50%; width:30px; height:30px; text-align:center; line-height:28px; color:#176a21; font-size:14px; }
.fields-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px 20px; }
.field-wide { grid-column:1/-1; }
.field label { display:block; font-size:14px; font-weight:500; margin-bottom:7px; }
.field input,.field select { width:100%; height:46px; border:1px solid #b8c1ba; border-radius:6px; padding:10px 12px; font:inherit; font-size:16px; background:#fff; color:var(--ink); }
.checkout :focus-visible { outline:3px solid #176a21; outline-offset:3px; }
.field [aria-invalid=true] { border-color:#b22b2b; }
.field-error { color:#912323; display:block; margin-top:4px; font-size:12px; }
.errores { background:#fff0ef; border-left:4px solid #b22b2b; padding:20px; margin:24px 0; }
.errores a { color:#912323; }
.payment-option { display:flex; gap:13px; border:1px solid var(--line); background:white; padding:18px; border-radius:8px; margin-bottom:12px; cursor:pointer; }
.payment-option:has(input:checked) { border-color:#258331; box-shadow:inset 0 0 0 1px #258331; }
.payment-option input { accent-color:#258331; width:18px; height:18px; flex-shrink:0; }
.payment-option small { display:block; margin-top:5px; color:var(--muted); }
.summary-inner { background:#fff; border:1px solid var(--line); border-radius:12px; padding:26px; }
.checkout-summary { position:sticky; top:24px; }
.summary-inner h2 { font-size:20px; margin:0; }
.equipo-foto { width:100%; height:190px; object-fit:contain; margin:20px 0; }
.marca { color:var(--muted); font-size:14px; margin:0; }
.summary-inner h3 { font-size:30px; margin:0; font-weight:600; }
.variante { color:var(--muted); font-size:14px; }
.checkout dl { margin:24px 0; }
.checkout dl>div { display:flex; justify-content:space-between; gap:16px; padding:8px 0; font-size:14px; }
.checkout dd { margin:0; font-weight:500; text-align:right; overflow-wrap:anywhere; }
.checkout dl .total { margin-top:12px; border-top:1px solid var(--line); padding-top:20px; align-items:center; font-weight:600; }
.total dd { font-size:26px; }
.total small { font-size:12px; }
.nota { font-size:14px; padding:16px; background:#f0f3f0; border-radius:6px; color:#455047; }
.checkout-button { display:block; width:100%; padding:16px; border:0; border-radius:7px; background:var(--green); color:#031f06!important; text-align:center; font:inherit; font-weight:600; text-decoration:none; cursor:pointer; }
.checkout-button:hover { background:#279d31; }
.small-print { font-size:12px; color:var(--muted); margin-top:16px; }
.checkout-footer { border-top:1px solid var(--line); padding:24px; text-align:center; color:var(--muted); font-size:13px; }
.receipt { max-width:920px; }
.order-number { overflow-wrap:anywhere; font-size:14px; }
.receipt-equipo { display:flex; gap:28px; align-items:center; background:white; border-radius:12px; padding:24px; margin:30px 0; }
.receipt-equipo img { width:200px; height:160px; object-fit:contain; }
.receipt-equipo h2 { font-size:24px; margin:0; }
.receipt-section { padding:16px 0; }
.confirmation { padding:24px; border:1px solid #9fc8a3; background:#e6f4e7; border-radius:8px; }
@media(max-width:850px) { .checkout-grid { grid-template-columns:1fr; gap:24px; } .checkout-summary { position:static; } .summary-inner { padding:24px; } .equipo-foto { height:150px; } }
@media(max-width:480px) { .checkout-main { padding:24px 18px 40px; } .checkout-header { padding:18px; gap:14px; } .checkout-header img { width:120px; } .checkout-header span { font-size:11px; } .fields-grid { grid-template-columns:1fr; } .receipt-equipo { flex-direction:column; align-items:flex-start; } .receipt-equipo img { align-self:center; } .checkout h1 { letter-spacing:-.7px; } }
/* Modalidades del recorrido productivo; comparte tipografía y resumen existentes. */
.entrega-opciones { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:24px 0; }
.entrega-opciones a { text-decoration:none; color:var(--ink); }
.entrega-opciones [aria-current=page] { border-color:#258331; box-shadow:inset 0 0 0 1px #258331; }
.checkout-button:disabled { cursor:not-allowed; background:#dde2df; color:#455047!important; }
@media(max-width:600px) { .entrega-opciones { grid-template-columns:1fr; gap:0; } }

/* Ayudas neutrales y totales todavía sin cotizar, sin apariencia de importe. */
.field-help { color:var(--muted); display:block; margin-top:4px; font-size:12px; }
.total-pendiente dd { font-size:18px; line-height:1.4; }
.payment-option:has(input:disabled) { cursor:not-allowed; }
@media(max-width:480px) {
  .checkout dl .total-pendiente { flex-direction:column; align-items:flex-start; gap:8px; }
  .total-pendiente dd { text-align:left; }
}

.politicas-enlaces { padding:24px; max-width:1180px; margin:0 auto; font-size:14px; }
.politicas-enlaces ul { display:flex; flex-wrap:wrap; gap:12px 24px; padding:0; list-style:none; }
.politicas-enlaces a { overflow-wrap:anywhere; }
