/* ================== 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:24px;
	align-items:flex-start;
}

@media (max-width:1100px){
	.alfa-checkout-grid {
		grid-template-columns:1fr;
		gap:24px;
	}
}

.mh-ship-price-only .woocommerce-Price-amount.amount {
	font-size: 14px !important;
    font-weight: 400 !important;
	color: #334155 !important;
}

@media (min-width: 1401px) {
	#checkout .alfa-checkout-col--right {
		min-width: 550px !important;
		max-width: 550px !important;
	}
}

@media (max-width: 1401px) {
	#checkout {
		gap: 16px;
	}
	
	#checkout .alfa-checkout-col {
		width: 100%;
	}
	
	#checkout .alfa-checkout-col--left .alfa-personal > .alfa-fields-grid,
	#checkout .alfa-checkout-col--left .alfa-address > .alfa-fields-grid {
		grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	}
}

@media (max-width: 901px) {
	#checkout {
		flex-direction: column;
	}
	#checkout .alfa-checkout-col--left {
		order: 2;
	}
	
	#checkout .alfa-checkout-col--left {
		order: 1;
	}
}

@media (max-width: 754px) {
	#checkout .alfa-checkout-col--left .alfa-personal > .alfa-fields-grid,
	#checkout .alfa-checkout-col--left .alfa-address > .alfa-fields-grid {
		display: flex !important;
		flex-direction: column !important;
	}
}

/* Cambio especifico para Direccion */
@media (min-width: 1400px) {
	#checkout .alfa-checkout-col--left .alfa-address #billing_district_field {
		grid-column: span 2;
	}
}

@media (max-width: 1400px) {
	#checkout .alfa-checkout-col--left .alfa-address > .alfa-fields-grid > .address-field {
		grid-column: span 2;
	}
}

/* ================== 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,
.alfa-payment {
	margin-top: 24px !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(2, minmax(230px,1fr));
	gap:20px 22px;
	margin-top:6px;
}

/* Forzar campos de ancho completo */
#billing_address_1_field,
#billing_referencia_field {
	grid-column:span 2;
}

@media (max-width:560px){
	#billing_address_1_field,
	#billing_referencia_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;
}

/* 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 !important;
	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;
}

.alfa-field-hidden {
	display: none !important;
}

/* 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);
}
form.checkout #payment #place_order:disabled,
form.checkout #payment #place_order:disabled:hover {
	background: var(--color-principal) !important;
	opacity: 0.5 !important;
	cursor: not-allowed !important;
	transform: none !important;
	box-shadow: 0 4px 10px -4px rgba(0,0,0,.15) !important;
}

/* ================== 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:24px; }

.alfa-checkout-col--right .alfa-section + .alfa-section { margin-top:24px; }

@media (max-width:640px){
	.alfa-section + .alfa-section { margin-top:24px; }
}

/* ================== 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%;
}

.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;
}

/* 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; }
}

@media(max-width: 640px) {
	.woocommerce .alfa-checkout-wrapper {
		padding: 12px !important;
		margin: 0 !important;
	}
	
	.woocommerce .alfa-checkout-wrapper .alfa-checkout-grid {
		gap: 8px !important;
	}
	
	.woocommerce .alfa-checkout-wrapper .alfa-checkout-grid .alfa-address,
	.woocommerce .alfa-checkout-wrapper .alfa-checkout-grid .alfa-payment,
	.woocommerce .alfa-checkout-wrapper .alfa-checkout-grid .alfa-billing-details {
		margin-top: 14px !important;
	}
}

#checkout #order_review {
	border-width: 2px !important;
    margin-top: 16px !important;
	border-radius: 10px !important;
}

#order_review .woocommerce-shipping-totals td {
	font-weight: 400 !important;
}

/* Selector correcto para el botón de cupón en WooCommerce Blocks */
.wc-block-components-totals-coupon__button.wp-element-button {
    background: #fd00ae !important;
    border-color: #fd00ae !important;
	border-radius: 20px;
}

/* También puedes estilizar el botón cuando está deshabilitado */
.wc-block-components-totals-coupon__button.wp-element-button:disabled {
    background: #fd00ae !important;
    opacity: 0.6;
}

/* Botón cuando está habilitado y hover */
.wc-block-components-totals-coupon__button.wp-element-button:not(:disabled):hover {
    background: #e000a0 !important;
}

/* ================== CUPÓN (ARREGLADO COMPACTO) ================== */

/* Contenedor Flex: Input crece, botón se adapta */
.wc-block-components-totals-coupon__form {
    display: flex !important;
    flex-direction: row !important;
    gap: 8px !important;
    align-items: center !important; /* Centrado vertical perfecto */
    margin-top: 10px;
    width: 100% !important;
}

/* Wrapper del Input: Que ocupe todo el espacio sobrante */
.wc-block-components-text-input.wc-block-components-totals-coupon__input {
    flex: 1 1 auto !important; /* Crece para llenar espacio */
    margin: 0 !important;
    width: auto !important;
}

/* El Input en sí */
.wc-block-components-totals-coupon__input input[type="text"] {
    height: 40px !important; /* Altura fija */
    min-height: 40px !important;
    padding: 0 12px !important;
    border: 1px solid #d1d5db !important;
    border-radius: 6px !important;
    font-size: 13px !important;
    color: #111 !important; /* Texto NEGRO, no plomo */
    background: #fff !important;
    box-shadow: none !important;
    margin: 0 !important;
    line-height: normal !important; /* Ayuda al centrado del placeholder */
}

/* Texto del placeholder (lo que dice "Introduce código") */
.wc-block-components-totals-coupon__input input::placeholder {
    color: #888 !important;
    opacity: 1;
    line-height: normal !important;
}

/* Focus */
.wc-block-components-totals-coupon__input input:focus {
    border-color: #fd00ae !important;
    outline: none !important;
    box-shadow: 0 0 0 1px #fd00ae !important;
}

/* Ocultar etiquetas extrañas si salen arriba */
.wc-block-components-text-input label {
    display: none !important;
}

/* Botón APLICAR: Ancho automático al contenido */
.wc-block-components-totals-coupon__button.wp-element-button {
    flex: 0 0 auto !important; /* NO crece, se ajusta al texto */
    width: auto !important;    /* Ancho automático */
    min-width: 0 !important;
    height: 40px !important;   /* Misma altura que input */
    padding: 0 16px !important;
    background: #fd00ae !important;
    border: 1px solid #fd00ae !important;
    border-radius: 6px !important;
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
}

/* Hover botón */
.wc-block-components-totals-coupon__button:not(:disabled):hover {
    background: #e000a0 !important;
    transform: translateY(-1px);
}

/* Responsive: En móvil sí dejamos que ocupen 100% */
@media (max-width: 480px) {
    .wc-block-components-totals-coupon__form {
        flex-direction: column !important;
        align-items: stretch !important;
    }
    .wc-block-components-totals-coupon__button.wp-element-button {
        width: 100% !important;
    }
}