/* ============================================================
   A TU MEMORIA — Estilos de carrito, checkout y contacto
   Paleta navy + dorado (unificada con la tienda)
   ============================================================ */

/* ===== Carrito ===== */
.cart-wrap { max-width: 860px; }
.cart-loading { color: #8fa3b8; padding: 20px 0; }
.card-table { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); border-radius: 12px; overflow: hidden; margin-bottom: 20px; }
.cart-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.cart-table th { text-align: left; font-size: 11px; text-transform: uppercase; color: #8fa3b8; padding: 14px 16px; border-bottom: 2px solid rgba(255,255,255,.1); }
.cart-table td { padding: 14px 16px; border-bottom: 1px solid rgba(255,255,255,.08); vertical-align: middle; color: #d9e2ec; }
.cart-prod { display: flex; align-items: center; gap: 12px; }
.cart-prod strong { color: #fff; }
.cart-thumb { width: 54px; height: 54px; border-radius: 10px; object-fit: cover; display: block; }
.cart-thumb-empty { background: rgba(255,255,255,.06); display: flex; align-items: center; justify-content: center; font-size: 22px; }
.cart-color { font-size: 12px; color: #8fa3b8; margin-top: 2px; }
.cart-qty { width: 64px; padding: 8px 10px; border: 1px solid rgba(255,255,255,.18); border-radius: 7px; font-size: 14px; text-align: center; background: rgba(255,255,255,.06); color: #fff; }
.cart-subtotal { font-weight: 700; white-space: nowrap; color: #c9a24b; }
.cart-remove { background: rgba(192,57,43,.18); border: 1px solid rgba(192,57,43,.35); border-radius: 7px; padding: 7px 10px; cursor: pointer; font-size: 14px; }
.cart-remove:hover { background: rgba(192,57,43,.3); }
.cart-summary { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); border-radius: 12px; padding: 22px; }
.summary-row { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 8px 0; font-size: 15px; color: #d9e2ec; }
.summary-muted { color: #8fa3b8; font-size: 13px; }
.summary-total { border-top: 2px solid rgba(255,255,255,.12); margin-top: 8px; padding-top: 14px; font-size: 19px; color: #fff; }
.summary-total strong { font-size: 24px; color: #c9a24b; }
.keep-shopping { display: inline-block; margin-top: 14px; color: #8fa3b8; font-size: 14px; }
.keep-shopping:hover { color: #c9a24b; }
.empty-cart { text-align: center; padding: 60px 20px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); border-radius: 12px; }
.empty-cart-icon { font-size: 48px; margin-bottom: 12px; }
.empty-cart p { color: #8fa3b8; margin-bottom: 20px; }
.store-alert { background: rgba(201,162,75,.12); border: 1px solid rgba(201,162,75,.35); color: #e8d5a8; padding: 12px 16px; border-radius: 8px; margin-bottom: 18px; font-size: 14px; }

/* ===== Checkout ===== */
.checkout-grid { display: grid; grid-template-columns: 1fr 380px; gap: 22px; align-items: start; }
.checkout-card { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); border-radius: 12px; padding: 22px; margin-bottom: 20px; }
.checkout-card h2 { font-size: 17px; margin-bottom: 16px; color: #fff; }
.checkout-sticky { position: sticky; top: 86px; }
.checkout-grid .form-grid { grid-template-columns: 1fr 1fr; gap: 14px; }
.checkout-grid .field label { font-size: 12px; font-weight: 700; text-transform: uppercase; color: #8fa3b8; display: block; margin-bottom: 6px; }
.checkout-grid .field input, .checkout-grid .field textarea, .checkout-grid .field select {
  width: 100%; padding: 10px 12px;
  border: 1px solid rgba(255,255,255,.18); border-radius: 8px;
  font-size: 14px; font-family: inherit; resize: vertical;
  background: rgba(255,255,255,.06); color: #fff;
}
.checkout-grid .field input::placeholder, .checkout-grid .field textarea::placeholder { color: #5a6b7d; }
.checkout-grid .field input:focus, .checkout-grid .field textarea:focus, .checkout-grid .field select:focus { outline: none; border-color: #c9a24b; box-shadow: 0 0 0 3px rgba(201,162,75,.15); }
.checkout-grid .field select option { background: #0c1a2e; color: #fff; }
.radio-option { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border: 1.5px solid rgba(255,255,255,.14); border-radius: 10px; margin-bottom: 10px; cursor: pointer; transition: border-color .15s, background .15s; }
.radio-option:hover { border-color: rgba(201,162,75,.5); }
.radio-option:has(input:checked) { border-color: #c9a24b; background: rgba(201,162,75,.1); }
.radio-option input { margin-top: 3px; accent-color: #c9a24b; width: 16px; height: 16px; }
.radio-option strong { font-size: 15px; color: #fff; }
.radio-sub { display: block; font-size: 13px; color: #8fa3b8; margin-top: 2px; }
.resumen-item { display: flex; justify-content: space-between; gap: 14px; padding: 10px 0; border-bottom: 1px dashed rgba(255,255,255,.12); font-size: 14px; color: #d9e2ec; }
.resumen-item strong { color: #fff; }
.resumen-item span { color: #c9a24b; font-weight: 700; }
.pay-hint { margin-top: 14px; font-size: 13px; color: #8fa3b8; text-align: center; line-height: 1.5; }

/* ===== Confirmación ===== */
.section-narrow { max-width: 720px; }
.success-head { text-align: center; margin-bottom: 26px; }
.success-head h1 { color: #fff; }
.success-icon { font-size: 54px; margin-bottom: 8px; }
.success-num { color: #8fa3b8; font-size: 15px; }
.tag-status { background: rgba(201,162,75,.15); color: #e8d5a8; font-weight: 700; padding: 2px 10px; border-radius: 14px; font-size: 13px; text-transform: uppercase; }
.success-bank h2 { margin-bottom: 12px; color: #fff; }
.bank-data { margin-bottom: 14px; }
.bank-row { display: flex; justify-content: space-between; gap: 14px; padding: 9px 0; border-bottom: 1px dashed rgba(255,255,255,.12); font-size: 14px; color: #d9e2ec; }
.bank-row span { color: #8fa3b8; }
.bank-row strong { color: #fff; }
.account-num { font-size: 16px; letter-spacing: .5px; color: #c9a24b; }
.upload-form { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin: 12px 0 6px; }
.upload-form input[type="file"] { flex: 1; min-width: 200px; font-size: 13px; color: #d9e2ec; }
.order-link { background: rgba(255,255,255,.04); border: 1px dashed rgba(255,255,255,.2); border-radius: 8px; padding: 10px 14px; font-size: 12px; color: #e8d5a8; word-break: break-all; font-family: monospace; margin: 8px 0; }

/* ===== Contacto ===== */
.contact-sub { color: #8fa3b8; margin-bottom: 22px; }
.contact-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 22px; align-items: start; }
.contact-grid .form-grid { grid-template-columns: 1fr 1fr; gap: 14px; }
.contact-grid .field label { font-size: 12px; font-weight: 700; text-transform: uppercase; color: #8fa3b8; display: block; margin-bottom: 6px; }
.contact-grid .field input, .contact-grid .field textarea {
  width: 100%; padding: 10px 12px;
  border: 1px solid rgba(255,255,255,.18); border-radius: 8px;
  font-size: 14px; font-family: inherit; resize: vertical;
  background: rgba(255,255,255,.06); color: #fff;
}
.contact-grid .field input::placeholder, .contact-grid .field textarea::placeholder { color: #5a6b7d; }
.contact-grid .field input:focus, .contact-grid .field textarea:focus { outline: none; border-color: #c9a24b; box-shadow: 0 0 0 3px rgba(201,162,75,.15); }
.contact-grid .form-full { grid-column: 1 / -1; }
.msg-preview { max-width: 260px; font-size: 13px; }
.contact-detail-head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; flex-wrap: wrap; margin-bottom: 16px; }
.contact-msg { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); border-radius: 10px; padding: 18px; font-size: 15px; line-height: 1.7; white-space: pre-line; color: #d9e2ec; }
.tag-new { background: rgba(201,162,75,.15); color: #e8d5a8; font-weight: 800; padding: 4px 10px; border-radius: 14px; font-size: 11px; }

/* ===== Botón principal (unificado con la tienda) ===== */
.btn-add { background: linear-gradient(135deg, #c9a24b, #b8912f); color: #241a05; }
.btn-add:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(201,162,75,.4); }

/* ===== PASO 10: Datos del homenajeado ===== */
.memorial-person-block {
  border: 1px solid rgba(201,162,75,.25);
  border-radius: 10px;
  padding: 16px;
  margin-bottom: 12px;
  background: rgba(201,162,75,.06);
}
.memorial-block-title {
  font-size: 12px;
  font-weight: 700;
  color: #c9a24b;
  text-transform: uppercase;
  letter-spacing: .6px;
  margin-bottom: 12px;
}
.check-memorial {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  cursor: pointer;
  margin-top: 6px;
  color: #d9e2ec;
}
.check-memorial input {
  width: 17px;
  height: 17px;
  accent-color: #c9a24b;
}

/* ===== Responsive ===== */
@media (max-width: 800px) {
  .checkout-grid { grid-template-columns: 1fr; }
  .checkout-sticky { position: static; }
  .contact-grid { grid-template-columns: 1fr; }
}

/* ===== Carrito responsive: botón eliminar siempre visible ===== */
@media (max-width: 640px) {
  .cart-table thead { display: none; }           /* cabeceras fuera en móvil */
  .cart-table, .cart-table tbody, .cart-table tr, .cart-table td { display: block; width: 100%; }
  .cart-table tr { border-bottom: 2px solid rgba(255,255,255,.12); margin-bottom: 14px; padding-bottom: 10px; }
  .cart-table td { border: none; text-align: right; padding: 6px 14px; }
  .cart-table td.cart-prod { text-align: left; display: flex; }
  .cart-table td:last-child { text-align: center; padding: 10px 14px; }  /* la celda del 🗑️ */
  .cart-remove { padding: 10px 22px; font-size: 16px; }                   /* botón más grande y tocable */
}