/* Carro: propuesta seleccionada. Los estilos no afectan otros formularios. */
.cart-page { --cart-ink:var(--site-text); --cart-muted:var(--site-muted); --cart-blue:var(--site-link); --cart-green:var(--site-link); --cart-line:var(--site-line); width:100%; max-width:none; margin:0; color:var(--cart-ink); background:#fff; font:16px/1.5 "Lato",sans-serif; padding:42px 0 64px; }
.cart-page *, .cart-page *::before, .cart-page *::after { box-sizing:border-box; }
.cart-page ~ .sf-call-widget { display:none; }
.cart-container { width:calc(100% - 112px); max-width:1440px; margin:0 auto; }
.cart-layout { display:grid; width:100%; min-width:0; grid-template-columns:minmax(0,1fr) 448px; gap:44px; align-items:start; }
.cart-content { min-width:0; }
.cart-page h1,.cart-page h2,.cart-page legend { color:var(--cart-ink); font-family:var(--site-font-heading); font-weight:700; }
.cart-page h1 { font-size:var(--site-title-size); letter-spacing:2px; line-height:1.5; margin:22px 0 12px; font-weight:700; }
.cart-page h2,.cart-page legend { font-size:var(--site-title-size); line-height:1.5; margin:0; letter-spacing:2px; }
.cart-header { margin-bottom:32px; }
.cart-header-top { display:flex; justify-content:space-between; align-items:center; gap:16px; font-size:14px; }
.cart-eyebrow { border-left:4px solid var(--site-accent); padding-left:15px; font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.cart-page a { color:var(--site-link); }
.cart-header a i { margin-right:7px; }
.cart-header p { margin:0; color:var(--cart-muted); font-size:var(--site-body-size); line-height:1.8; }
.cart-section-heading { margin-bottom:18px; }
.cart-section-heading::after { content:""; display:block; width:56px; height:3px; background:var(--site-accent); margin-top:12px; }
.cart-page .form-control { min-width:0; width:100%; height:44px; padding:9px 12px; border:1px solid var(--site-line); border-radius:3px; background:#fff; color:var(--cart-ink); font:14px/1.4 "Lato",sans-serif; box-shadow:none; }
.cart-page .form-control::placeholder { color:var(--site-muted); opacity:1; }
.cart-page select.form-control { padding-right:24px; }
.cart-page .form-control:focus { border-color:var(--cart-blue); outline:2px solid var(--cart-blue); outline-offset:2px; }
.cart-page .form-control:disabled { background:var(--site-surface); color:var(--site-muted); opacity:1; }
.cart-page a:focus-visible,.cart-page button:focus-visible { outline:3px solid var(--cart-blue); outline-offset:4px; }
.cart-page .custom-control-input:focus ~ .custom-control-label::before { box-shadow:0 0 0 3px #416e9340; border-color:var(--cart-blue); }
.cart-page .custom-control-input:checked ~ .custom-control-label::before { background-color:var(--site-link); border-color:var(--site-link); }
.cart-page .custom-control-label { font-weight:400; cursor:pointer; }
.cart-page .custom-control-input:disabled ~ .custom-control-label { cursor:default; }
.cart-page .table { color:var(--cart-ink); margin:0; }
.cart-page #tablaDetalles { width:100%; table-layout:fixed; font-size:14px; }
.cart-page #tablaDetalles th { padding:14px 8px; font-size:12px; border-top:1px solid var(--cart-line); border-bottom:1px solid var(--cart-line); vertical-align:middle; }
.cart-page #tablaDetalles td { padding:12px 8px; vertical-align:middle; border-bottom:1px solid var(--cart-line); border-top:0; overflow-wrap:anywhere; }
.cart-page #tablaDetalles th:first-child { width:35%; }
.cart-page #tablaDetalles th:nth-child(2) { width:16%; }
.cart-page #tablaDetalles th:nth-child(3) { width:20%; }
.cart-page #tablaDetalles th:nth-child(4) { width:11%; }
.cart-page #tablaDetalles th:nth-child(5) { width:14%; }
.cart-page #tablaDetalles th:last-child { width:40px; }
.cart-page #tablaDetalles .form-control { padding-left:8px; font-size:13px; }
.cart-item-price,.cart-item-total { font-variant-numeric:tabular-nums; }
.cart-remove { border:0; background:transparent; color:var(--site-muted); width:32px; height:44px; padding:0; cursor:pointer; border-radius:3px; }
.cart-remove:hover { color:#a52525; background:#fbeeee; }
.cart-billing { margin-top:32px; }
.cart-billing-note { margin:0 0 20px; color:var(--cart-muted); font-size:14px; }
/* A shared row grid keeps Dirección/E-mail aligned even when the previous row has helper text. */
.cart-billing-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 40px; }
.cart-field { min-width:0; }
.cart-field > label,.cart-page #form-certificacion .form-group > label { display:block; margin-bottom:6px; font-size:14px; font-weight:400; line-height:1.5; }
.cart-field small { display:block; color:var(--cart-muted); margin-top:5px; font-size:12px; line-height:1.5; }
.cart-rut-row { display:flex; align-items:center; gap:20px; }
.cart-rut-row > input { flex:1; width:50%; }
.cart-rut-row .custom-control { flex-shrink:0; font-size:14px; }
.cart-page #form-certificacion { margin-top:24px; }
.cart-page #camposCertificacion { margin-top:40px; }
.cart-page #form-certificacion .form-group { margin-bottom:22px; }
.cart-page .custom-file-label { color:var(--cart-muted); height:44px; line-height:30px; padding-right:80px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.cart-page .custom-file-label::after { content:"Elegir"; height:42px; line-height:30px; }
.cart-page .custom-file { height:44px; }
.cart-summary { background:var(--site-surface); border-radius:4px; padding:32px; min-width:0; }
.cart-summary h2 { margin-bottom:20px; }
.cart-page .cart-totals { font-size:15px; table-layout:fixed; }
.cart-page .cart-totals td { padding:14px 0; border-top:0; border-bottom:1px solid var(--cart-line); vertical-align:middle; }
.cart-page .cart-totals td:first-child { width:54%; padding-right:12px; }
.cart-page .cart-totals td:last-child:not([colspan]) { text-align:right; font-variant-numeric:tabular-nums; }
.cart-page .cart-totals label { margin:0; font-weight:400; }
.cart-page .cart-guarantee .text-nowrap { white-space:normal!important; }
.cart-page .cart-totals .text-custom { color:var(--cart-green)!important; }
.cart-page .cart-totals .cart-grand-total td { font:700 26px/1.3 "Nunito",sans-serif; padding-top:20px; padding-bottom:20px; border-bottom:0; }
.cart-page .cart-totals .cart-grand-total td:first-child { width:auto; }
.cart-page .cart-totals #textTotal { font-size:32px; white-space:nowrap; letter-spacing:normal; }
.cart-terms { margin-top:12px; font-size:14px; color:var(--site-muted); line-height:1.6; }
.cart-terms a { text-decoration:underline; text-underline-offset:2px; }
.cart-page .text-muted { color:var(--cart-muted)!important; }
.cart-terms small { margin-top:10px!important; font-size:12px; }
.cart-auth { border-top:1px solid var(--cart-line); margin-top:28px; padding-top:22px; }
.cart-auth .social-btn { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 14px; }
.cart-auth #loginPromptText { grid-column:1 / -1; text-transform:none; text-align:left; color:var(--cart-ink); font:700 19px/1.4 "Nunito",sans-serif; margin:0 0 4px; }
.cart-auth .btn-social { margin:0; min-height:46px; padding:10px 8px; text-transform:none; font-size:15px; line-height:1.5; border-radius:4px; }
.cart-auth .btn-social i { margin-right:8px; }
.cart-auth .btn-google { background:#c73529; }
.cart-auth .btn-linkedin { background:#0866b3; }
.cart-auth .btn-github { background:#303030; }
.cart-auth .btn-microsoft { background:#2d8035; }
.cart-auth .btn-social:hover { filter:brightness(.9); }
.cart-auth #panelUsuario p { font-size:14px; margin:12px 0; }
.cart-auth #logoutButtons p { margin:0; }
.cart-payment { border-top:1px solid var(--cart-line); margin-top:24px; padding-top:24px; }
.cart-page .btn-proceder { display:flex; gap:10px; min-height:52px; align-items:center; justify-content:center; margin:0; padding:12px 16px; background:var(--cart-ink); border:0; border-bottom:3px solid var(--site-accent); border-radius:4px; color:#fff; width:100%; font:700 16px/1.5 "Lato",sans-serif; text-transform:none; cursor:pointer; }
.cart-page .btn-proceder:hover { background:var(--site-text); }
.cart-page .btn-proceder:disabled,.cart-page .btn-proceder-disabled { background:#c2ccd7; border-color:#c2ccd7; color:#fff; cursor:not-allowed; opacity:1; }
.cart-payment p { text-align:center; font-size:14px; color:var(--cart-muted); margin:10px 0 0; }
.cart-payment-brand { display:flex; gap:10px; justify-content:center; align-items:center; margin-top:32px; font-size:14px; color:var(--site-muted); }
.cart-payment-brand img { width:130px; height:auto; object-fit:contain; }
.cart-summary #errorBox { margin:20px 0 0; padding:12px; color:#842029; background:#fbe9eb; font-size:14px; overflow-wrap:anywhere; }
.cart-empty { text-align:center; padding:90px 0; }
.cart-empty > i { font-size:48px; color:var(--cart-blue); }
.cart-empty h1 { font-size:var(--site-title-size); margin:24px 0; line-height:1.5; letter-spacing:2px; font-weight:700; }
.cart-empty-link { display:inline-flex; align-items:center; gap:16px; border:1px solid var(--cart-blue); border-radius:4px; padding:12px 24px; }
@media (max-width:1250px) {
  .cart-container { width:calc(100% - 64px); }
  .cart-layout { grid-template-columns:minmax(0,1fr) 360px; gap:28px; }
  .cart-summary { padding:24px; }
  .cart-page h1 { font-size:var(--site-title-size); line-height:1.5; letter-spacing:2px; font-weight:700; }
  .cart-billing-grid { column-gap:24px; }
  .cart-field > label { min-height:42px; }
  .cart-rut-row { flex-wrap:wrap; gap:8px; }
  .cart-rut-row > input { width:100%; flex-basis:100%; }
  .cart-page .cart-totals #textTotal { font-size:28px; }
}
@media (max-width:1100px) {
  .cart-page #tablaDetalles thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .cart-page #tablaDetalles,.cart-page #tablaDetalles tbody { display:block; }
  .cart-page #tablaDetalles tr.cart_item { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 20px; position:relative; border-top:1px solid var(--cart-line); border-bottom:1px solid var(--cart-line); padding:18px 0; }
  .cart-page #tablaDetalles tr.cart_item + tr.cart_item { border-top:0; }
  .cart-page #tablaDetalles td { display:block; padding:0; border:0; }
  .cart-page #tablaDetalles td[data-label]::before { content:attr(data-label); display:block; font-size:12px; color:var(--cart-muted); margin-bottom:6px; }
  .cart-page #tablaDetalles td.cart-plan-cell { grid-column:1 / -1; padding-right:36px; }
  .cart-page #tablaDetalles td.cart-plan-cell::before { display:none; }
  .cart-page #tablaDetalles .cart-remove-cell { position:absolute; right:0; top:18px; }
}
@media (max-width:900px) {
  .cart-layout { grid-template-columns:minmax(0,1fr); gap:40px; }
  .cart-summary { padding:32px; }
  .cart-page .cart-totals td:first-child { width:65%; }
  .cart-rut-row { flex-wrap:nowrap; gap:20px; }
  .cart-rut-row > input { width:50%; flex-basis:auto; }
  .cart-payment-brand { margin-top:24px; }
}
@media (max-width:600px) {
  .cart-page { padding:28px 0 40px; }
  .cart-container { width:calc(100% - 40px); }
  .cart-page h1 { font-size:var(--site-title-size); line-height:1.5; letter-spacing:2px; font-weight:700; }
  .cart-header p { font-size:var(--site-body-size); }
  .cart-header { margin-bottom:28px; }
  .cart-header-top { font-size:13px; }
  .cart-billing-grid { grid-template-columns:minmax(0,1fr); gap:20px; }
  .cart-field > label { min-height:0; }
  .cart-page .form-control { font-size:16px; min-height:46px; }
  .cart-page #tablaDetalles .form-control { font-size:14px; }
  .cart-rut-row { gap:16px; }
  .cart-summary { padding:24px 20px; }
  .cart-summary h2 { font-size:var(--site-title-size); line-height:1.5; letter-spacing:2px; font-weight:700; }
  .cart-page .cart-totals td:first-child { width:52%; }
  .cart-page .cart-totals #textTotal { font-size:28px; }
  .cart-page .cart-totals .cart-grand-total td { font-size:23px; }
  .cart-auth .social-btn { gap:10px; }
  .cart-auth .btn-social { font-size:14px; }
  .cart-payment-brand { gap:8px; font-size:12px; }
  .cart-payment-brand img { width:114px; }
  .cart-empty { padding:48px 0; }
  .cart-empty h1 { font-size:var(--site-title-size); line-height:1.5; letter-spacing:2px; font-weight:700; }
}
@media (max-width:380px) {
  .cart-page .cart-totals #textTotal { font-size:24px; }
  .cart-page .cart-totals td:first-child { width:48%; }
  .cart-page .cart-totals .cart-grand-total td:first-child { width:auto; }
}
