/* ================== VARIABLES / RESET LOCAL ================== */
:root {
    --color-principal:#ff1493;
    --color-principal-hover:#e01284;
    --color-acento:#ff1493;
    --color-fondo:#f2f4f7;
    --color-card:#ffffff;
    --color-borde:#e2e6ec;
    --color-borde-suave:#eef0f3;
    --color-texto:#1f2330;
    --color-texto-suave:#5c6473;
    --color-ok:#15b374;
    --color-error:#dc2626;
    --radius-base:16px;
    --radius-sm:10px;
    --shadow-card:0 4px 14px -6px rgba(0,0,0,.12), 0 2px 4px -2px rgba(0,0,0,.08);
    --shadow-card-hover:0 8px 24px -10px rgba(0,0,0,.18);
    --transition: .25s cubic-bezier(.4,.0,.2,1);
    --font-size-base:14px;
  }
  
  body.woocommerce-checkout {
    background:var(--color-fondo);
    font-size:var(--font-size-base);
    -webkit-font-smoothing:antialiased;
  }
  
  /* El wrapper principal */
  .alfa-checkout-wrapper {
    max-width: 96rem;
    margin:10px auto 80px;
    padding:0 24px;
    position:relative;
  }
  
  /* Grid principal */
  .alfa-checkout-grid {
    display:grid;
    grid-template-columns:minmax(0,1fr) 550px;
    gap:42px;
    align-items:flex-start;
  }
  
  @media (max-width:1100px){
    .alfa-checkout-grid {
      grid-template-columns:1fr;
      gap:34px;
    }
  }
  
  /* ================== CAJAS / SECCIONES ================== */
  .alfa-box {
    background:var(--color-card);
    border:1px solid var(--color-borde);
    border-radius:var(--radius-base);
    padding:32px 34px 36px;
    position:relative;
    box-shadow:var(--shadow-card);
    transition:var(--transition);
  }

  .alfa-address{
    margin-top: 15px !important;
  }
  
  .alfa-payment {
    margin-top: 15px !important;
  }

  .alfa-box:hover {
    box-shadow:var(--shadow-card-hover);
    border-color:#d8dde3;
  }
  
  @media (max-width:640px){
    .alfa-box {
      padding:26px 22px 30px;
    }
  }
  
  .alfa-box__title {
    margin:0 0 22px;
    font-size:1.25rem;
    font-weight:700;
    letter-spacing:.4px;
    color:var(--color-texto);
    line-height:1.2;
    display:flex;
    align-items:center;
    gap:10px;
    position:relative;
  }
  .alfa-box__title::after{
    content:"";
    display:block;
    width:52px;
    height:3px;
    background:linear-gradient(90deg,var(--color-principal),rgba(255,20,147,.15));
    border-radius:3px;
    position:absolute;
    bottom:-10px;
    left:0;
  }
  
  /* Subtítulo interno */
  .alfa-subtitle,
  .trust-title {
    font-size:.85rem;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.6px;
    color:var(--color-texto-suave);
    margin:32px 0 14px;
  }
  
  /* ================== LAYOUT CAMPOS ================== */
  .alfa-fields-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
    gap:20px 22px;
    margin-top:6px;
  }
  
  .alfa-section .form-row {
    margin:0;
    padding:0;
  }
  
  /* Forzar campos de ancho completo */
  #billing_address_1_field,
  #billing_address_2_field {
    grid-column:span 2;
  }
  
  @media (max-width:560px){
    #billing_address_1_field,
    #billing_address_2_field {
      grid-column:span 1;
    }
  }
  
  /* Etiquetas */
  .alfa-section label {
    display:block;
    font-size:.70rem;
    font-weight:600;
    letter-spacing:.65px;
    text-transform:uppercase;
    color:var(--color-texto-suave);
    margin:0 0 5px;
  }
  
  /* Inputs & selects */
  .alfa-section input.input-text,
  .alfa-section select,
  .alfa-section textarea {
    width:100%;
    padding:12px 14px;
    border:1px solid var(--color-borde);
    background:#fff;
    border-radius:10px;
    font-size:.85rem;
    line-height:1.3;
    color:var(--color-texto);
    transition:var(--transition);
    box-shadow:0 0 0 0 rgba(255,20,147,.2);
    appearance:none;
  }
  
  .alfa-section textarea {
    min-height:110px;
    resize:vertical;
  }
  
  .alfa-section select {
    background-image:
       linear-gradient(45deg, transparent 50%, var(--color-texto-suave) 50%),
       linear-gradient(135deg, var(--color-texto-suave) 50%, transparent 50%);
    background-position:
       calc(100% - 18px) calc(50% - 4px),
       calc(100% - 13px) calc(50% - 4px);
    background-size:6px 6px, 6px 6px;
    background-repeat:no-repeat;
  }
  
  .alfa-section input:focus,
  .alfa-section select:focus,
  .alfa-section textarea:focus {
    outline:none;
    border-color:var(--color-principal);
    box-shadow:0 0 0 3px rgba(255,20,147,.22);
  }
  
  .alfa-section input:hover,
  .alfa-section select:hover,
  .alfa-section textarea:hover {
    border-color:#cbd2d9;
  }
  
  /* Placeholder */
  .alfa-section ::placeholder {
    color:#9ba3b1;
  }
  
  /* Checkbox factura */
  #billing_invoice_field {
    margin-top:6px;
    grid-column:span 2;
  }
  #billing_invoice_field .woocommerce-input-wrapper {
    display:flex;
    align-items:center;
    gap:10px;
    font-size:.8rem;
    font-weight:600;
    color:var(--color-texto);
  }
  #billing_invoice {
    width:18px;
    height:18px;
    accent-color:var(--color-principal);
    cursor:pointer;
  }
  
  /* Ocultos condicionales */
  #billing_ruc_field,
  #billing_business_name_field {
    display:none;
  }
  
  /* Errores WooCommerce */
  .woocommerce-error,
  .woocommerce-message,
  .woocommerce-info {
    border-radius:14px;
    background:#fff;
    border:1px solid var(--color-borde);
    padding:14px 18px;
    font-size:.8rem;
    box-shadow:0 4px 14px -6px rgba(0,0,0,.08);
  }
  .woocommerce-error {
    border-color:var(--color-error);
    background:#fff4f4;
  }
  .woocommerce-error li {
    margin:4px 0;
  }
  
  /* Campos con error (Woo añade .woocommerce-invalid) */
  .woocommerce-invalid input,
  .woocommerce-invalid select,
  .woocommerce-invalid textarea {
    border-color:var(--color-error) !important;
    box-shadow:0 0 0 3px rgba(220,38,38,.25) !important;
  }
  
  /* Mensajes debajo (si algún plugin los añade) */
  .form-row .woocommerce-error,
  .form-row .woocommerce-message { margin-top:6px; }
  
  /* ================== CUPÓN ================== */
  .alfa-coupon-box {
    background:var(--color-card);
    border:1px solid var(--color-borde);
    border-radius:var(--radius-base);
    padding:22px 26px 24px;
    margin:0 0 34px;
    box-shadow:var(--shadow-card);
  }
  .alfa-coupon-box h3 {
    margin:0 0 12px;
    font-size:.95rem;
    font-weight:600;
    color:var(--color-texto);
  }
  .alfa-coupon-box .coupon-row {
    display:flex;
    gap:12px;
  }
  .alfa-coupon-box input {
    flex:1;
    padding:12px 14px;
    border:1px solid var(--color-borde);
    border-radius:10px;
    font-size:.85rem;
    transition:var(--transition);
  }
  .alfa-coupon-box input:focus {
    border-color:var(--color-principal);
    box-shadow:0 0 0 3px rgba(255,20,147,.2);
  }
  .alfa-coupon-box button {
    background:var(--color-principal);
    color:#fff;
    border:none;
    padding:12px 20px;
    border-radius:10px;
    font-weight:600;
    font-size:.8rem;
    cursor:pointer;
    letter-spacing:.4px;
    transition:var(--transition);
    box-shadow:0 4px 12px -4px rgba(255,20,147,.55);
  }
  .alfa-coupon-box button:hover {
    background:var(--color-principal-hover);
    transform:translateY(-2px);
  }
  
  /* Responsive cupón */
  @media (max-width:560px){
    .alfa-coupon-box .coupon-row { flex-direction:column; }
    .alfa-coupon-box button { width:100%; }
  }
  
  /* ================== RESUMEN DEL PEDIDO ================== */
  .alfa-review table.shop_table {
    width:100%;
    border-collapse:separate;
    border-spacing:0 6px;
    font-size:.8rem;
  }
  .alfa-review table.shop_table thead th {
    font-size:.65rem;
    text-transform:uppercase;
    letter-spacing:.6px;
    font-weight:600;
    color:var(--color-texto-suave);
    padding:6px 6px 4px;
    border:none;
  }
  .alfa-review table.shop_table tbody td {
    background:#f9fafb;
    border:none;
    padding:10px 10px;
    border-radius:8px;
    vertical-align:top;
  }
  .alfa-review table.shop_table tfoot th,
  .alfa-review table.shop_table tfoot td {
    border:none;
    padding:8px 6px;
    font-size:.72rem;
  }
  .alfa-review table.shop_table tfoot tr:last-child td,
  .alfa-review table.shop_table tfoot tr:last-child th {
    font-size:.8rem;
    font-weight:700;
    color:var(--color-texto);
  }
  
  /* ================== MÉTODOS DE PAGO ================== */
  .alfa-payment-wrapper {
    margin-top:30px;
    padding-top:28px;
    border-top:1px solid var(--color-borde-suave);
  }
  
  #payment .wc_payment_methods {
    list-style:none;
    margin:0 0 24px;
    padding:0;
    display:flex;
    flex-direction:column;
    gap:12px;
  }
  #payment .wc_payment_methods > li {
    background:#f9fafb;
    border:1px solid var(--color-borde);
    border-radius:12px;
    padding:14px 16px;
    position:relative;
    transition:var(--transition);
  }
  #payment .wc_payment_methods > li:hover {
    border-color:var(--color-principal);
  }
  #payment .wc_payment_methods label {
    font-weight:600;
    font-size:.8rem;
    cursor:pointer;
    display:flex;
    align-items:center;
    gap:8px;
  }
  #payment .payment_box {
    margin:10px 0 4px;
    padding:10px 14px 14px;
    background:#fff;
    border:1px solid var(--color-borde-suave);
    border-radius:10px;
    font-size:.72rem;
    line-height:1.4;
  }
  
  /* Botón Finalizar */
  #place_order {
    width:100%;
    background:var(--color-principal);
    color:#fff;
    border:none;
    padding:16px 20px;
    border-radius:12px;
    font-weight:600;
    font-size:.95rem;
    letter-spacing:.4px;
    cursor:pointer;
    transition:var(--transition);
    box-shadow:0 8px 22px -8px rgba(255,20,147,.55), 0 4px 10px -4px rgba(0,0,0,.15);
    margin-top:6px;
  }
  #place_order:hover {
    background:var(--color-principal-hover);
    transform:translateY(-2px);
  }
  
  /* ================== SECCIÓN CONFIANZA ================== */
  .alfa-trust {
    margin-top:34px;
    background:linear-gradient(135deg,#ffffff,#f6f7f9);
    border:1px solid var(--color-borde-suave);
    border-radius:var(--radius-base);
    padding:24px 26px;
    box-shadow:var(--shadow-card);
  }
  .trust-title {
    margin:0 0 16px;
    font-size:.82rem;
  }
  .trust-list {
    list-style:none;
    margin:0;
    padding:0;
    display:grid;
    gap:10px;
  }
  .trust-list li {
    font-size:.75rem;
    font-weight:500;
    padding:10px 12px;
    background:#f2f4f7;
    border-radius:10px;
    display:flex;
    align-items:center;
    gap:8px;
  }
  
  /* ================== ESTADOS DISABLED ================== */
  select:disabled, input:disabled {
    background:#f1f2f4;
    cursor:not-allowed;
    opacity:.75;
  }
  
  /* ================== SPACING / UTILITIES ================== */
  .alfa-section + .alfa-section { margin-top:38px; }
  
  .alfa-checkout-col--right .alfa-section + .alfa-section { margin-top:32px; }
  
  @media (max-width:640px){
    .alfa-section + .alfa-section { margin-top:34px; }
  }
  
  /* ================== ACCESSIBILITY FOCUS VISIBLE ================== */
  :focus-visible {
    outline:2px solid var(--color-principal);
    outline-offset:2px;
  }
  
  /* ================== MINI AJUSTES EXTRAS ================== */
  .woocommerce-privacy-policy-text,
  .woocommerce-terms-and-conditions-wrapper {
    font-size:.7rem;
    line-height:1.4;
    color:var(--color-texto-suave);
    margin-top:14px;
  }
  
  .woocommerce-terms-and-conditions-wrapper a {
    color:var(--color-principal);
    font-weight:600;
    text-decoration:none;
  }
  .woocommerce-terms-and-conditions-wrapper a:hover { text-decoration:underline; }
  
  /* Evitar scroll horizontal por animaciones */
  body.woocommerce-checkout { overflow-x:hidden; }
  

  .form-row{
    width: 100% !important;
  }


#main{
  max-width: 100% !important;
}

.entry-content[data-ast-blocks-layout] > * {
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
}


.woocommerce-checkout-review-order {
  width: 100% !important;
}

.woocommerce-checkout-review-order-table {
  width: 100% !important;
}



.woocommerce-message, .woocommerce-form-coupon-toggle{
    max-width: 93rem;
    margin: 10px auto 10px !important;
}

.woocommerce-info{
  margin-bottom: 5px !important;
}

/* .woocommerce-error, .woocommerce-info, .woocommerce-message {
    margin: 0 0 1em; 
} */

/* .woocommerce-NoticeGroup-checkout{
  display:none;
} */





























































/* Overlay del modal */
.woocommerce-NoticeGroup.woocommerce-NoticeGroup-checkout {
  position: fixed !important;
  inset: 0;
  display: none; /* se muestra por JS */
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(15, 18, 26, .52);
  z-index: 9999;
  box-sizing: border-box;
}

/* Tarjeta del modal (aplicada por JS con .mh-modal-card) */
.mh-modal-card {
  background: #ffffff;
  width: min(720px, 92vw);
  max-height: 82vh;
  display: flex;
  flex-direction: column;
  border-radius: 14px;
  box-shadow: 0 18px 60px rgba(0, 0, 0, .25);
  animation: mhModalIn .18s ease-out;
  padding-bottom:10px;
}

/* Header */
.mh-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 18px;
  background: #fd00ae;
  color: #fff;
  position:relative;
  border-radius: 14px 14px 0 0 !important;
  padding-bottom:0px;
}

.mh-modal-titlewrap {
  display: flex;
  align-items: center;
  gap: 12px;
}
.mh-modal-icon {
  width: 36px; height: 36px;
  border-radius: 8px;
  display: grid; place-items: center;
  background: #f43f5e; /* rojo elegante */
  font-weight: 700;
}
.mh-modal-title {
  margin: 0;
  font-size: 16px;
  line-height: 1.2;
  font-weight: 700;
  color: #fff !important;
}
.mh-modal-subtitle {
  margin: 2px 0 0 0;
  font-size: 13px;
  line-height: 1.4;
  opacity: .85;
  color: #e5e7eb;
}

/* Botón cerrar */
.mh-modal-close {
  border: 0;
  background: ##046bd2;
  color: #fff;
  width: 36px; height: 36px;
  border-radius: 50px;
  font-size: 32px;
  cursor: pointer;
  padding:0;
  position:absolute;
  right:-10px;
  top:-10px;
}
.mh-modal-close:hover { background: rgba(255,255,255,.18); }

/* Body */
.mh-modal-body {
  padding: 16px 18px 6px;
  overflow: auto;
}
.mh-modal-body ul.woocommerce-error {
  margin: 0; padding: 0; list-style: none;
}

.mh-modal-body ul.woocommerce-error {
  border:none;
  background:white;
}


.mh-modal-body ul.woocommerce-error li {
  display: grid;
  grid-template-columns: 20px 1fr;
  align-items: start;
  gap: 10px;
  padding: 10px 12px;
  margin: 0 0 8px;
  background: #fff7f7;
  border: 1px solid #fee2e2;
  border-left: 4px solid #ef4444;
  border-radius: 10px;
  font-size: 14px;
  color: #111827;
}
.mh-modal-body ul.woocommerce-error li::before {
  content: "•";
  color: #ef4444;
  font-weight: 700;
  margin-top: 1px;
  margin-left: 5px;
}

.mh-modal-body a {
  color: #0ea5e9;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.mh-modal-body a:hover { color: #0284c7; }

/* Footer con CTAs */
.mh-modal-footer {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  padding: 12px 18px 16px;
  border-top: 1px solid rgba(17,24,39,.06);
  background: #fafafa;
}
.mh-btn {
  appearance: none;
  border: 1px solid transparent;
  border-radius: 10px;
  font-size: 14px;
  line-height: 1;
  padding: 10px 14px;
  cursor: pointer;
  transition: transform .06s ease, box-shadow .12s ease, background .12s ease;
}
.mh-btn:active { transform: translateY(1px); }

.mh-btn-primary {
  background: #111827;
  color: #fff;
  box-shadow: 0 4px 14px rgba(17,24,39,.15);
}
.mh-btn-primary:hover { background: #0b1220; }

.mh-btn-ghost {
  background: #ffffff;
  color: #111827;
  border-color: rgba(17,24,39,.12);
}
.mh-btn-ghost:hover { background: #f3f4f6; }

/* Desactivar scroll de fondo */
body.mh-notice-open { overflow: hidden; }

/* Animación */
@keyframes mhModalIn {
  from { opacity: 0; transform: translateY(8px) scale(.98); }
  to   { opacity: 1; transform: translateY(0)    scale(1); }
}

/* Responsive */
@media (max-width: 480px) {
  .mh-modal-title { font-size: 15px; }
  .mh-modal-subtitle { font-size: 12px; }
  .mh-modal-body { padding: 14px 14px 6px; }
}
