/*
 * Abejita Perú – Checkout Inteligente
 * Paleta oficial (Paleta_de_colores_pluguin.docx). No se usan degradados,
 * iconos ni sombras pronunciadas. Tipografía: siempre heredada del tema.
 */

.abejita-checkout {
	--abejita-bg: #FAF8F3;
	--abejita-card: #FFFFFF;
	--abejita-header-bg: #005147;
	--abejita-header-text: #FFFFFF;
	--abejita-text: #333333;
	--abejita-text-secondary: #6B7280;
	--abejita-border: #D9D9D9;
	--abejita-focus: #005147;
	--abejita-button: #005147;
	--abejita-button-hover: #00332B;
	--abejita-button-text: #FFFFFF;
	--abejita-error: #DC2626;
	--abejita-error-bg: #FEF2F2;
	--abejita-info-bg: #F5F5F5;

	background: var(--abejita-bg);
	color: var(--abejita-text);
	padding: 24px;
	border-radius: 12px;
	/* Hereda la tipografía del tema activo: no se declara font-family aquí. */
}

.abejita-checkout * {
	box-sizing: border-box;
}

.abejita-block {
	background: var(--abejita-card);
	border-radius: 12px;
	margin-bottom: 24px;
	overflow: hidden;
	box-shadow: none;
}

.abejita-block__header {
	background: var(--abejita-header-bg);
	color: var(--abejita-header-text);
	padding: 14px 20px;
	border-radius: 12px 12px 0 0;
}

.abejita-block__header h3 {
	margin: 0;
	color: var(--abejita-header-text);
	font-size: 1rem;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.abejita-block__body {
	padding: 20px;
}

.abejita-row {
	display: flex;
	gap: 16px;
	margin-bottom: 16px;
}

.abejita-row--2col > .abejita-field {
	flex: 1 1 0;
	min-width: 0;
}

@media (max-width: 640px) {
	.abejita-row {
		flex-direction: column;
		gap: 0;
	}
}

.abejita-field {
	margin-bottom: 16px;
}

.abejita-row .abejita-field {
	margin-bottom: 0;
}

.abejita-field label,
.abejita-checkout label.abejita-field-label {
	display: block;
	margin-bottom: 6px;
	font-weight: 600;
	color: var(--abejita-text);
	font-size: 0.9rem;
}

.abejita-field .required {
	color: var(--abejita-error);
}

.abejita-checkout input.input-text,
.abejita-checkout select.abejita-select,
.abejita-checkout .abejita-select,
.abejita-checkout input[type="text"],
.abejita-checkout input[type="email"],
.abejita-checkout input[type="tel"],
.abejita-checkout input[type="date"] {
	width: 100%;
	height: 50px;
	padding: 0 16px;
	border: 1px solid var(--abejita-border);
	border-radius: 8px;
	background: #FFFFFF;
	color: var(--abejita-text);
	font-size: 0.95rem;
	transition: border-color 0.15s ease;
}

.abejita-checkout input.input-text:focus,
.abejita-checkout select.abejita-select:focus,
.abejita-checkout input[type="text"]:focus,
.abejita-checkout input[type="email"]:focus,
.abejita-checkout input[type="tel"]:focus,
.abejita-checkout input[type="date"]:focus {
	outline: none;
	border-color: var(--abejita-focus);
}

.abejita-checkout input::placeholder {
	color: var(--abejita-text-secondary);
}

.abejita-hint {
	display: block;
	margin-top: 4px;
	color: var(--abejita-text-secondary);
	font-size: 0.8rem;
}

/* Estado de error */
.abejita-field.abejita-field--error input,
.abejita-field.abejita-field--error select {
	border-color: var(--abejita-error);
	background: var(--abejita-error-bg);
}

.abejita-field__error {
	display: block;
	margin-top: 4px;
	color: var(--abejita-error);
	font-size: 0.8rem;
}

/* Radios y checkbox */
.abejita-radio-group {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 16px;
}

.abejita-radio {
	flex: 1 1 220px;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 14px 16px;
	border: 1px solid var(--abejita-border);
	border-radius: 10px;
	cursor: pointer;
	background: #FFFFFF;
}

.abejita-radio:has(input:checked) {
	border-color: var(--abejita-focus);
}

.abejita-radio input {
	accent-color: var(--abejita-button);
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}

.abejita-radio span {
	display: flex;
	flex-direction: column;
	font-weight: 600;
	color: var(--abejita-text);
}

.abejita-radio small {
	font-weight: 400;
	color: var(--abejita-text-secondary);
	font-size: 0.8rem;
}

.abejita-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 16px 0;
	cursor: pointer;
	font-size: 0.9rem;
	color: var(--abejita-text);
}

.abejita-checkbox input {
	accent-color: var(--abejita-button);
	width: 18px;
	height: 18px;
	margin-top: 2px;
	flex-shrink: 0;
}

/* Nota informativa (Agencia Shalom) */
.abejita-nota {
	background: var(--abejita-info-bg);
	color: var(--abejita-text-secondary);
	border-left: 3px solid var(--abejita-header-bg);
	padding: 12px 16px;
	border-radius: 6px;
	font-size: 0.85rem;
	margin-top: 12px;
}

/* Información sobre el pago (debajo de la lista de métodos de pago/Culqi).
 * Vive fuera de .abejita-checkout, por eso usa colores directos en vez de
 * las variables CSS (que solo existen dentro de ese contenedor). */
.abejita-info-pago {
	background: #F5F5F5;
	border-left: 3px solid #005147;
	border-radius: 6px;
	padding: 14px 16px;
	margin: 14px 0;
	font-size: 0.85rem;
	color: #333333;
}

.abejita-info-pago h4 {
	margin: 0 0 8px;
	font-size: 0.9rem;
	color: #005147;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}

.abejita-info-pago p {
	margin: 0 0 6px;
}

.abejita-info-pago p:last-child {
	margin-bottom: 0;
}

.abejita-info-pago strong {
	color: #333333;
}

/* Bloques condicionales, controlados por JS */
.abejita-conditional {
	display: none;
}

.abejita-conditional.is-visible {
	display: block;
}

/* Calendario personalizado de Fecha de Entrega */
.abejita-calendario {
	position: relative;
}

.abejita-calendario__input {
	cursor: pointer;
	background-image: none;
}

.abejita-calendario__popup {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	z-index: 100;
	width: 300px;
	max-width: 90vw;
	background: #FFFFFF;
	border: 1px solid var(--abejita-border);
	border-radius: 10px;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
	padding: 14px;
}

.abejita-calendario__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 10px;
}

.abejita-calendario__titulo {
	font-weight: 700;
	color: var(--abejita-text);
	text-transform: capitalize;
}

.abejita-calendario__nav {
	background: var(--abejita-info-bg);
	border: none;
	border-radius: 6px;
	width: 30px;
	height: 30px;
	font-size: 1.1rem;
	line-height: 1;
	color: var(--abejita-text);
	cursor: pointer;
}

.abejita-calendario__nav:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

.abejita-calendario__semana {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	margin-bottom: 4px;
}

.abejita-calendario__semana span {
	text-align: center;
	font-size: 0.75rem;
	font-weight: 700;
	color: var(--abejita-text-secondary);
}

.abejita-calendario__grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 2px;
}

.abejita-calendario__dia {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 34px;
	border-radius: 8px;
	font-size: 0.85rem;
	color: var(--abejita-text);
	cursor: pointer;
}

.abejita-calendario__dia:not(.abejita-calendario__dia--bloqueado):not(.abejita-calendario__dia--vacio):hover {
	background: var(--abejita-info-bg);
}

.abejita-calendario__dia--vacio {
	cursor: default;
}

/* Domingos y feriados: bloqueados y en rojo, según lo solicitado */
.abejita-calendario__dia--bloqueado {
	color: var(--abejita-error);
	background: var(--abejita-error-bg);
	cursor: not-allowed;
	text-decoration: line-through;
	text-decoration-color: var(--abejita-error);
}

.abejita-calendario__dia--hoy {
	border: 1px solid var(--abejita-focus);
}

.abejita-calendario__dia--seleccionado {
	background: var(--abejita-button);
	color: #FFFFFF;
	font-weight: 700;
}

.abejita-calendario__leyenda {
	display: flex;
	gap: 16px;
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px solid var(--abejita-info-bg);
	font-size: 0.75rem;
	color: var(--abejita-text-secondary);
}

.abejita-calendario__leyenda span {
	display: flex;
	align-items: center;
	gap: 6px;
}

.abejita-calendario__punto {
	display: inline-block;
	width: 9px;
	height: 9px;
	border-radius: 50%;
}

.abejita-calendario__punto--bloqueado {
	background: var(--abejita-error);
}

.abejita-calendario__punto--disponible {
	background: var(--abejita-button);
}

/* ============================================================
 * Página "Gracias por tu pedido" (order-received)
 * ============================================================ */

.woocommerce-order {
	max-width: 760px;
	margin: 0 auto;
}

/* Aviso "Tu pedido ha sido recibido" */
.woocommerce-order > .woocommerce-notice,
.woocommerce-thankyou-order-received {
	background: var(--abejita-info-bg, #F5F5F5) !important;
	color: var(--abejita-header-bg, #005147) !important;
	border-left: 4px solid var(--abejita-header-bg, #005147) !important;
	border-radius: 10px !important;
	padding: 16px 20px 16px 52px !important;
	font-weight: 700 !important;
	font-size: 1.05rem !important;
	margin-bottom: 24px !important;
	position: relative !important;
}

/* El ícono (campana) que el tema agrega antes del texto del aviso: se
 * reposiciona para que quede alineado con el nuevo padding, en vez de
 * superponerse con la primera palabra. */
.woocommerce-order > .woocommerce-notice::before,
.woocommerce-thankyou-order-received::before {
	left: 20px !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	position: absolute !important;
}

/* Resumen: N.° de pedido / fecha / total / método de pago */
.woocommerce-order-overview {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr);
	gap: 0;
	list-style: none !important;
	margin: 0 0 28px !important;
	padding: 0 !important;
	background: #FFFFFF;
	border: 1px solid var(--abejita-border, #D9D9D9);
	border-radius: 12px;
	overflow: hidden;
}

.woocommerce-order-overview li {
	padding: 16px 20px !important;
	border-bottom: 1px solid var(--abejita-border, #D9D9D9);
	border-right: 1px solid var(--abejita-border, #D9D9D9);
	font-size: 0.95rem;
	color: var(--abejita-text-secondary, #6B7280);
}

.woocommerce-order-overview li strong {
	display: block;
	margin-top: 4px;
	color: var(--abejita-text, #333333);
	font-size: 1.05rem;
}

/* Encabezados de sección: "Detalles del pedido", "Dirección de facturación" */
.woocommerce-order-details h2,
.woocommerce-customer-details h2,
.woocommerce-order .woocommerce-column__title {
	background: var(--abejita-header-bg, #005147) !important;
	color: #FFFFFF !important;
	padding: 12px 18px !important;
	border-radius: 10px 10px 0 0 !important;
	font-size: 1rem !important;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	margin: 28px 0 0 !important;
}

/* Tabla de detalles del pedido */
.woocommerce-table--order-details {
	width: 100%;
	border-collapse: collapse;
	background: #FFFFFF;
	border: 1px solid var(--abejita-border, #D9D9D9);
	border-top: none;
	border-radius: 0 0 10px 10px;
	overflow: hidden;
}

.woocommerce-table--order-details th,
.woocommerce-table--order-details td {
	padding: 12px 18px;
	border-bottom: 1px solid var(--abejita-border, #D9D9D9);
	text-align: left;
	color: var(--abejita-text, #333333);
}

.woocommerce-table--order-details tfoot th,
.woocommerce-table--order-details tfoot td {
	font-weight: 700;
}

/* Dirección de facturación / entrega */
.woocommerce-customer-details address,
.woocommerce-order .woocommerce-column {
	background: #FFFFFF;
	border: 1px solid var(--abejita-border, #D9D9D9);
	border-top: none;
	border-radius: 0 0 10px 10px;
	padding: 16px 20px;
	color: var(--abejita-text, #333333);
	font-style: normal;
	line-height: 1.6;
	height: 100%;
}

.woocommerce-order .col2-set,
.woocommerce-order .woocommerce-columns {
	display: flex;
	align-items: stretch;
	gap: 20px;
}

.woocommerce-order .woocommerce-column {
	flex: 1 1 0;
	display: flex;
	flex-direction: column;
}

.abejita-nota,
.woocommerce-order .abejita-nota {
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
}

.abejita-resumen-entrega {
	margin-top: 28px !important;
	clear: both;
}

.abejita-resumen-entrega .abejita-block__body p {
	margin: 0 0 12px;
}

.abejita-resumen-entrega .abejita-block__body p:last-child {
	margin-bottom: 0;
}

/* Botón "Finalizar compra" (WooCommerce lo renderiza; solo ajustamos color).
 * Se refuerza el selector porque distintos temas (ej. Blocksy) envuelven el
 * botón con marcado propio que puede pisar clases genéricas. */
.woocommerce #place_order,
.woocommerce-checkout #place_order,
.woocommerce button#place_order,
button#place_order,
a#place_order {
	background: var(--abejita-button, #005147) !important;
	color: var(--abejita-button-text, #FFFFFF) !important;
	border-radius: 10px !important;
	border: none !important;
	box-shadow: none !important;
	padding: 14px 24px !important;
	font-weight: 700 !important;
	width: 100%;
	cursor: pointer;
}

.woocommerce #place_order:hover,
.woocommerce-checkout #place_order:hover,
button#place_order:hover,
a#place_order:hover {
	background: var(--abejita-button-hover, #00332B) !important;
}

/* El checkbox nativo de "Términos y condiciones" de WooCommerce: el
 * navegador lo resalta en rojo automáticamente por ser obligatorio y no
 * estar marcado (validación HTML5, no un error nuestro). Se suaviza el
 * estilo para que sea consistente con la marca en vez del rojo del navegador,
 * y se hace más notoria con una tarjeta propia (bordes + fondo). */
.woocommerce-terms-and-conditions-wrapper {
	background: var(--abejita-info-bg, #F5F5F5);
	border: 2px solid var(--abejita-button, #005147);
	border-radius: 10px;
	padding: 14px 16px;
	margin: 18px 0;
}

.woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox,
.woocommerce-terms-and-conditions-wrapper .woocommerce-form-row {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--abejita-text, #333333);
	margin: 0;
}

.woocommerce-terms-and-conditions-wrapper input[type="checkbox"],
.woocommerce-form__input-checkbox input[type="checkbox"],
#terms {
	appearance: none !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	width: 24px !important;
	height: 24px !important;
	min-width: 24px !important;
	flex-shrink: 0 !important;
	margin: 0 8px 0 0 !important;
	border: 2px solid var(--abejita-button, #005147) !important;
	border-radius: 6px !important;
	background: #FFFFFF !important;
	background-image: none !important;
	cursor: pointer !important;
	position: relative !important;
	outline: none !important;
	box-shadow: none !important;
	opacity: 1 !important;
	vertical-align: middle !important;
}

.woocommerce-terms-and-conditions-wrapper input[type="checkbox"]:checked,
.woocommerce-form__input-checkbox input[type="checkbox"]:checked,
#terms:checked {
	background: var(--abejita-button, #005147) !important;
	border-color: var(--abejita-button, #005147) !important;
}

.woocommerce-terms-and-conditions-wrapper input[type="checkbox"]:checked::after,
.woocommerce-form__input-checkbox input[type="checkbox"]:checked::after,
#terms:checked::after {
	content: '' !important;
	position: absolute !important;
	left: 7px !important;
	top: 2px !important;
	width: 6px !important;
	height: 12px !important;
	border: solid #FFFFFF !important;
	border-width: 0 3px 3px 0 !important;
	transform: rotate(45deg) !important;
}

.woocommerce-terms-and-conditions-wrapper a {
	color: var(--abejita-button-hover, #00332B);
	font-weight: 700;
	text-decoration: underline;
}
