.checkout-page { min-height: 100vh; }
.checkout-site-header { position: sticky; top: 0; z-index: 70; }
.checkout-shell { padding-block: 46px 80px; }
.checkout-intro { max-width: 760px; margin-bottom: 30px; }
.checkout-intro h1 { margin: 10px 0 8px; font-size: clamp(34px, 5vw, 58px); line-height: 1; letter-spacing: -.05em; }
.checkout-intro p { margin: 0; color: var(--muted); }
.checkout-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(310px, 390px); align-items: start; gap: 28px; }
.checkout-form { display: flex; flex-direction: column; gap: 18px; }
.checkout-card, .order-panel, .checkout-state { border: 1px solid var(--border); border-radius: 24px; background: var(--surface); box-shadow: var(--shadow-sm); }
.checkout-card { padding: 24px; }
.checkout-card-head { display: flex; align-items: flex-start; gap: 13px; margin-bottom: 22px; }
.checkout-card-head > span { width: 32px; height: 32px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: var(--brand); color: #fff; font-size: 13px; font-weight: 900; }
.checkout-card-head h2 { margin: 0; font-size: 22px; letter-spacing: -.025em; }
.checkout-card-head p { margin: 3px 0 0; color: var(--muted); font-size: 12px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.field { display: flex; flex-direction: column; gap: 7px; }
.field-wide { grid-column: 1 / -1; }
.field > span { font-size: 12px; font-weight: 800; }
.field small { color: var(--muted); font-weight: 600; }
.field input, .field textarea, .field select { width: 100%; min-height: 48px; padding: 11px 14px; border: 1.5px solid #aeb7c4; border-radius: 13px; background: var(--surface); color: var(--text); outline: 0; }
.field textarea { min-height: 94px; resize: vertical; }
.field input:focus, .field textarea:focus, .field select:focus { border-color: var(--brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand), transparent 84%); }
.field input:disabled { opacity: .55; }
.checkout-notes { margin-top: 15px; }
.choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.choice-card { min-height: 80px; display: flex; align-items: flex-start; gap: 10px; padding: 15px; border: 1.5px solid #aeb7c4; border-radius: 16px; background: var(--surface); cursor: pointer; }
.choice-card:has(input:checked) { border-color: var(--brand); background: var(--brand-soft); box-shadow: inset 0 0 0 1px var(--brand); }
.choice-card input { margin-top: 4px; accent-color: var(--brand); }
.choice-card strong, .choice-card small { display: block; }
.choice-card small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.address-fields { margin-top: 18px; }
.delivery-estimate{margin-top:16px;padding:13px 15px;border:1px solid #ead5a7;border-radius:14px;background:#fff9e9;color:#6e5316}.delivery-estimate strong,.delivery-estimate span{display:block}.delivery-estimate p{margin:4px 0 0;font-size:11px;line-height:1.45}.delivery-estimate span{margin-top:8px;font-size:20px;font-weight:900}.schedule-note{margin:14px 0 0;padding:10px 12px;border-radius:12px;background:var(--surface-soft);color:var(--muted);font-size:11px}.order-line-quote{color:#8a5b00!important;font-weight:850}
.location-preview{display:grid;grid-template-columns:minmax(190px,.7fr) minmax(260px,1.3fr);gap:13px;padding:13px;border:1.5px solid #91a3b8;border-radius:16px;background:var(--surface-soft)}.location-preview>div{padding:5px}.location-preview strong{font-size:13px}.location-preview p{margin:5px 0 10px;color:var(--muted);font-size:11px}.location-preview a{color:var(--brand);font-size:11px;font-weight:850;text-decoration:underline}.location-preview iframe{width:100%;height:210px;border:0;border-radius:11px;background:#e5e7eb}.location-requirement{margin:0;padding:9px 11px;border-radius:10px;background:#fff5dc;color:#735313;font-size:11px}.location-requirement.is-ready{background:#eaf8ef;color:#28623a}.location-requirement.is-error{background:#fff0f0;color:#982d2d}.payment-choice{position:relative;align-items:center}.payment-choice>span{min-width:0;flex:1}.payment-choice>img{width:45px;height:45px;object-fit:contain;border-radius:7px;background:#fff}.payment-detail{display:grid;grid-template-columns:auto 1fr;gap:18px;margin-top:15px;padding:16px;border:1.5px solid #aeb7c4;border-radius:16px;background:var(--surface-soft)}.payment-detail>img{width:min(210px,32vw);height:min(210px,32vw);object-fit:contain;padding:6px;border-radius:12px;background:#fff;-webkit-user-drag:none;user-select:none}.payment-detail h3{margin:0 0 8px}.payment-detail p{display:grid;grid-template-columns:70px 1fr;gap:8px;margin:5px 0;font-size:12px}.payment-detail p span{color:var(--muted)}.payment-detail p strong{overflow-wrap:anywhere}.payment-detail small{display:block;margin-top:10px;color:var(--muted);line-height:1.45}.payment-empty{grid-column:1/-1;color:var(--muted);font-size:12px}.order-grand-total{margin-top:5px;padding-top:10px;border-top:1px solid var(--border);font-size:16px!important}.order-grand-total strong{color:var(--brand);font-size:19px}
.change-address{display:block;margin-top:12px;padding:7px 10px;border:1px solid #9eabba;border-radius:10px;background:var(--surface);color:var(--text);font-size:10px;font-weight:850;cursor:pointer}.change-address:hover{border-color:var(--brand);color:var(--brand)}
[data-theme="dark"] .field input,[data-theme="dark"] .field textarea,[data-theme="dark"] .field select,[data-theme="dark"] .choice-card,[data-theme="dark"] .payment-detail{border-color:#657080}.checkout-search{font-size:22px}
.checkout-confirmation { display: flex; flex-direction: column; gap: 15px; }
.acceptance { display: flex; align-items: flex-start; gap: 11px; color: var(--muted); font-size: 12px; cursor: pointer; }
.acceptance input { margin-top: 3px; accent-color: var(--brand); }
.checkout-submit { min-height: 54px; }
.checkout-disclaimer { margin: 0; color: var(--muted); font-size: 11px; text-align: center; }
.checkout-form-status{margin:0;padding:11px 13px;border-radius:12px;background:#fff0f0;color:#982d2d;font-size:12px;font-weight:750;text-align:center}.checkout-submit:disabled,.payment-proof-form button:disabled{cursor:wait;opacity:.68}
.order-panel { position: sticky; top: 20px; overflow: hidden; }
.order-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px; border-bottom: 1px solid var(--border); }
.order-panel-head span { color: var(--brand); font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.order-panel-head h2 { margin: 1px 0 0; font-size: 24px; }
.order-panel-head a { color: var(--brand); font-size: 12px; font-weight: 850; }
.order-intent-note { margin: 14px 18px 0; padding: 12px 13px; border: 1px solid #dcd2ff; border-radius: 14px; background: #f5f1ff; color: #4f3c91; font-size: 11px; line-height: 1.45; }
[data-theme="dark"] .order-intent-note { border-color: #473a78; background: #211a37; color: #c9bbff; }
.order-items { max-height: min(54vh, 580px); overflow-y: auto; padding: 8px 18px; }
.order-item { display: grid; grid-template-columns: 66px 1fr auto; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--border); }
.order-item:last-child { border-bottom: 0; }
.order-item img { width: 66px; height: 76px; object-fit: cover; border-radius: 12px; background: var(--surface-soft); }
.order-item-copy { min-width: 0; }
.order-item-copy > span { color: var(--brand); font-size: 10px; font-weight: 900; }
.order-item-copy strong { display: block; overflow: hidden; margin: 2px 0 4px; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.order-item-copy small { display: block; color: var(--muted); font-size: 10px; line-height: 1.4; }
.order-item-qty { font-size: 12px; font-weight: 900; }
.order-totals { display: flex; flex-direction: column; gap: 9px; padding: 18px 22px 22px; border-top: 1px solid var(--border); }
.order-totals > div { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; }
.order-totals p { margin: 3px 0 0; color: var(--muted); font-size: 11px; }
.checkout-state { max-width: 660px; margin: 50px auto 0; padding: 50px 30px; text-align: center; }
.checkout-state > span { width: 64px; height: 64px; display: grid; place-items: center; margin: 0 auto 16px; border-radius: 50%; background: var(--surface-soft); font-size: 28px; }
.checkout-state h2 { margin: 0; font-size: 30px; }
.checkout-state p { margin: 8px auto 22px; color: var(--muted); }
.checkout-state strong { display: block; margin: -8px 0 22px; color: var(--brand); font-size: 20px; }
.checkout-success > span { background: #e7f8ed; color: #11833b; }
.payment-proof-form{display:grid;gap:14px;width:min(520px,100%);margin:8px auto 22px;padding:20px;border:1.5px solid #aeb7c4;border-radius:18px;background:var(--surface-soft);text-align:left}.payment-proof-form[hidden]{display:none}.payment-proof-form h3{margin:0 0 4px;font-size:19px}.payment-proof-form>div>p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.proof-picker{display:grid;gap:7px;font-size:12px;font-weight:850}.proof-picker input{width:100%;padding:11px;border:1.5px solid #91a3b8;border-radius:12px;background:var(--surface)}.proof-status{margin:0!important;padding:11px;border-radius:11px;background:#eef3f8;color:#39485a!important;font-size:12px!important;font-weight:750}.proof-status:empty{display:none}.proof-status.is-confirmed{background:#e7f8ed;color:#176b36!important}.proof-status.is-review{background:#fff5dc;color:#735313!important}.proof-status.is-error{background:#fff0f0;color:#982d2d!important}

@media (max-width: 900px) {
  .checkout-layout { grid-template-columns: 1fr; }
  .order-panel { position: static; grid-row: 1; }
  .order-items { max-height: none; }
}

@media (max-width: 620px) {
  .checkout-site-header .brand-logo { width: 150px; }
  .checkout-shell { padding-block: 30px 60px; }
  .checkout-intro h1 { font-size: 38px; }
  .checkout-card { padding: 19px; border-radius: 20px; }
  .form-grid, .choice-grid { grid-template-columns: 1fr; }
  .field-wide { grid-column: auto; }
  .location-preview{grid-template-columns:1fr}.location-preview iframe{height:180px}.payment-detail{grid-template-columns:1fr}.payment-detail>img{width:min(260px,100%);height:auto;aspect-ratio:1/1;margin:auto}
}

.location-preview:has(iframe[hidden]){grid-template-columns:1fr}

.payment-qr-open{display:grid;gap:7px;width:min(230px,32vw);padding:8px;border:1.5px solid #aeb7c4;border-radius:14px;background:#fff;color:var(--brand);font-size:10px;font-weight:850;cursor:zoom-in}.payment-qr-open img{display:block;width:100%;aspect-ratio:1/1;object-fit:contain;border-radius:9px;-webkit-user-drag:none;user-select:none}.payment-data-pending{display:block!important;padding:10px 12px;border-radius:11px;background:#fff5dc;color:#735313;font-size:11px!important}.payment-qr-zoom{position:fixed;inset:0;z-index:220;display:grid;place-items:center;padding:18px}.payment-qr-zoom[hidden]{display:none}.payment-qr-zoom-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(0,0,0,.86);backdrop-filter:blur(8px)}.payment-qr-zoom-panel{position:relative;z-index:1;width:min(560px,96vw);max-height:94dvh;display:grid;justify-items:center;overflow:auto;padding:28px;border:1px solid rgba(255,255,255,.2);border-radius:24px;background:#fff;box-shadow:0 28px 90px rgba(0,0,0,.5);outline:0}.payment-qr-zoom-panel h2{margin:0 48px 4px;text-align:center}.payment-qr-zoom-panel p{max-width:410px;margin:0 0 17px;color:#667080;font-size:12px;line-height:1.45;text-align:center}.payment-qr-zoom-panel img{display:block;width:min(450px,82vw);height:auto;max-height:70dvh;object-fit:contain;border:1px solid #e2e5ea;border-radius:15px;background:#fff;-webkit-user-drag:none;user-select:none}.payment-qr-zoom-close{position:absolute;right:15px;top:15px;width:42px;height:42px;padding:0;border:1px solid #d6dbe2;border-radius:50%;background:#fff;color:#111;font-size:25px;line-height:1;cursor:pointer}body.payment-qr-opened{overflow:hidden}
@media(max-width:620px){.payment-qr-open{width:min(280px,100%);margin:auto}.payment-qr-zoom{padding:0}.payment-qr-zoom-panel{width:100%;height:100dvh;max-height:none;align-content:center;border:0;border-radius:0;padding:22px 16px}.payment-qr-zoom-panel img{width:min(460px,92vw);max-height:68dvh}.payment-qr-zoom-close{right:16px;top:16px}}

/* R14 · datos privados, comprobante y pago/adelanto */
.clear-checkout-data{margin-left:auto;padding:7px 10px;border:1px solid #aeb7c4;border-radius:10px;background:var(--surface);color:var(--muted);font-size:10px;font-weight:850;white-space:nowrap;cursor:pointer}.clear-checkout-data:hover{border-color:var(--brand);color:var(--brand)}
.receipt-panel,.payment-option-panel{min-width:0;margin:18px 0 0;padding:15px;border:1px solid var(--border);border-radius:17px}.receipt-panel legend,.payment-option-panel legend{padding:0 7px;font-size:12px;font-weight:900}.receipt-choice-grid{margin-bottom:14px}.receipt-fields[hidden]{display:none}.ruc-input-row{display:grid;grid-template-columns:1fr auto;gap:7px}.ruc-input-row button{min-width:78px;border:1.5px solid #aeb7c4;border-radius:12px;background:var(--surface-soft);color:var(--text);font-size:11px;font-weight:850;cursor:pointer}.ruc-input-row button:disabled{cursor:wait;opacity:.65}.ruc-status{min-height:18px;margin:0;color:var(--muted);font-size:11px}.ruc-status.is-success{color:#176b36}.ruc-status.is-error{color:#982d2d}.payment-option-panel{margin:0 0 15px}.payment-option-panel[hidden]{display:none}.payment-due-note{margin:11px 0 0;padding:11px 13px;border-radius:12px;background:#eef6ff;color:#285b8f;font-size:11px;font-weight:750;line-height:1.45}.payment-due-note.is-warning{background:#fff5dc;color:#735313}
.payment-proof-amount{display:block;margin:10px 0 0!important;color:var(--brand)!important;font-size:24px!important}.checkout-success>.button{display:block;width:min(520px,100%);margin:8px auto 0}
@media(max-width:620px){.checkout-card-head{flex-wrap:wrap}.clear-checkout-data{margin-left:45px}.ruc-input-row{grid-template-columns:1fr}.ruc-input-row button{min-height:44px}}

/* Información contractual y cuidados entregados junto con la venta. */
.acceptance a{font-weight:850;color:var(--brand);text-underline-offset:2px}
.post-sale-care{display:grid;grid-template-columns:48px 1fr;gap:12px;width:min(520px,100%);margin:8px auto 20px;padding:17px;border:1.5px solid #b9e1ca;border-radius:16px;background:#eefaf3;text-align:left}
.post-sale-care>span{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:#fff;font-size:22px}
.post-sale-care h3{margin:0 0 4px;font-size:16px}
.post-sale-care p{margin:0 0 9px;color:#405348;font-size:12px;line-height:1.5}
.post-sale-care a{display:inline-block;margin:0 12px 4px 0;color:#126b3c;font-size:11px;font-weight:900;text-underline-offset:2px}
@media(max-width:480px){.post-sale-care{grid-template-columns:1fr}.post-sale-care>span{display:none}}
