/* Frete solo con CEP en la ficha y el carrito de azure (mu-plugins/dio-frete-cep.php) · 21/10/2026.
 * Estado «buscando frete» copiado del checkout v2 (checkout.css). Colores del layout (los de la ficha v2 si están; si no,
 * los mismos valores): nada en azul (pedido de Isaac para la ficha v2). Todo acotado a body.dio-frete-cep. */

body.dio-frete-cep {
	--dio-frete-forte: var(--dio-escuro, #333);
	--dio-frete-suave: var(--dio-texto, #777);
	--dio-frete-borda: var(--dio-borda, #e3e9f2);
	--dio-frete-fundo: var(--dio-fundo, #f6f8fc);
}

/* ── Buscando frete ──────────────────────────────────────────────────────────────── */
body.dio-frete-cep .dio-frete-busca { margin: 12px 0 0; }
body.dio-frete-cep .dio-frete-busca-txt {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 10px !important;
	color: var(--dio-frete-forte);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
}
body.dio-frete-cep .dio-frete-spin {
	flex: none;
	width: 18px;
	height: 18px;
	border: 2.5px solid var(--dio-frete-borda);
	border-top-color: var(--dio-frete-forte);
	border-radius: 50%;
	animation: dio-frete-giro .75s linear infinite;
}
@keyframes dio-frete-giro { to { transform: rotate(360deg); } }
body.dio-frete-cep .dio-frete-sk .dio-sk-fila {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 46px;
	margin: 0 0 8px;
	padding: 12px 14px;
	border: 1px solid var(--dio-frete-borda);
	border-radius: 8px;
	background: #fff;
}
body.dio-frete-cep .dio-frete-sk .dio-sk-fila:nth-child(2) { opacity: .7; }
body.dio-frete-cep .dio-frete-sk .dio-sk-fila:nth-child(3) { opacity: .45; }
body.dio-frete-cep .dio-frete-sk .c { flex: none; width: 16px; height: 16px; border-radius: 50%; }
body.dio-frete-cep .dio-frete-sk .l { flex: 1; display: flex; flex-direction: column; gap: 6px; }
body.dio-frete-cep .dio-frete-sk .l > span { display: block; height: 10px; border-radius: 6px; }
body.dio-frete-cep .dio-frete-sk .l .b1 { width: 62%; }
body.dio-frete-cep .dio-frete-sk .l .b2 { width: 38%; }
body.dio-frete-cep .dio-frete-sk .p { flex: none; width: 58px; height: 12px; border-radius: 6px; }
body.dio-frete-cep .dio-frete-sk :is(.c, .b1, .b2, .p) {
	background: linear-gradient(90deg, #eef1f6 25%, #e2e7f0 37%, #eef1f6 63%);
	background-size: 400% 100%;
	animation: dio-frete-brilho 1.3s ease infinite; /* background-position: solo pinta, no mueve layout (CLS 0) */
}
@keyframes dio-frete-brilho { from { background-position: 100% 50%; } to { background-position: 0 50%; } }
@media (prefers-reduced-motion: reduce) {
	body.dio-frete-cep .dio-frete-spin,
	body.dio-frete-cep .dio-frete-sk :is(.c, .b1, .b2, .p) { animation: none; }
}

/* ── Sin cotización: mensaje + «Tentar de novo» ──────────────────────────────────── */
body.dio-frete-cep .dio-frete-erro {
	margin: 12px 0 0;
	padding: 12px 14px;
	border-radius: 8px;
	background: #fff7e6;
	font-size: 14px;
	line-height: 1.45;
}
body.dio-frete-cep .dio-frete-erro .dio-sem-frete,
body.dio-frete-cep .dio-sem-frete {
	margin: 0;
	color: var(--dio-frete-forte);
	font-size: 14px;
	font-weight: 600;
}
body.dio-frete-cep .dio-frete-erro-acao {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 8px 12px;
	margin: 8px 0 0;
	color: var(--dio-frete-suave);
	font-size: 13px;
}
body.dio-frete-cep .dio-frete-erro-acao .button.dio-frete-tentar {
	min-height: 36px;
	margin: 0;
	padding: 0 14px;
	border-radius: 8px;
	font-size: 13px;
	line-height: 36px;
}
body.dio-frete-cep .dio-frete-aviso {
	margin: 12px 0 0;
	padding: 10px 14px;
	border-radius: 8px;
	background: var(--dio-frete-fundo);
	color: var(--dio-frete-forte);
	font-size: 14px;
}

/* ── Ficha: el campo no se grisa mientras busca (el estado ya lo dice) ───────────── */
body.dio-frete-cep #wc-shipping-sim #wc-shipping-sim-form-fields .input-postcode:disabled {
	background-color: #fff;
	opacity: .65;
	cursor: progress;
}
body.dio-frete-cep #wc-shipping-sim #wc-shipping-sim-results .dio-frete-erro p { margin-bottom: 0; }

/* ── Carrito: solo el CEP, siempre visible ───────────────────────────────────────── */
body.dio-frete-cep .cart_totals .shipping-calculator-button { display: none !important; }
body.dio-frete-cep .cart_totals .woocommerce-shipping-calculator { margin: 0; }
body.dio-frete-cep .cart_totals .shipping-calculator-form {
	display: flex !important;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 8px 10px;
	margin: 0 !important;
	padding: 0 !important;
}
body.dio-frete-cep .cart_totals #calc_shipping_postcode_field {
	flex: 1 1 130px;
	margin: 0 !important;
	padding: 0 !important;
}
body.dio-frete-cep .cart_totals #calc_shipping_postcode_field label {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}
body.dio-frete-cep .cart_totals #calc_shipping_postcode {
	width: 100%;
	height: 42px;
	border-radius: 8px;
}
body.dio-frete-cep .cart_totals .shipping-calculator-form > p:has(> button[name="calc_shipping"]) {
	flex: 0 0 auto;
	margin: 0 !important;
}
body.dio-frete-cep .cart_totals button[name="calc_shipping"] {
	height: 42px;
	min-width: 104px;
	margin: 0;
	padding: 0 16px;
	border-radius: 8px;
	font-size: 13px;
}
body.dio-frete-cep .cart_totals .dio-cep-busca {
	flex-basis: 100%;
	margin: 0 !important;
	font-size: 13px;
}
body.dio-frete-cep .cart_totals .woocommerce-shipping-calculator + #shipping_method,
body.dio-frete-cep .cart_totals .woocommerce-shipping-calculator ~ .woocommerce-shipping-destination { margin-top: 12px; }
body.dio-frete-cep .cart_totals.dio-buscando-frete #shipping_method,
body.dio-frete-cep .cart_totals.dio-buscando-frete .woocommerce-shipping-destination,
body.dio-frete-cep .cart_totals.dio-buscando-frete .dio-sem-frete,
body.dio-frete-cep .cart_totals.dio-buscando-frete .dio-frete-erro { display: none !important; }
/* El velo blanco de blockUI tapa el estado de búsqueda: transparente (sigue bloqueando el clic) y sin el loader del tema
   encima del spinner, como en el checkout */
body.dio-frete-cep .cart_totals.dio-buscando-frete .blockUI.blockOverlay { background: transparent !important; }
body.dio-frete-cep .cart_totals.dio-buscando-frete .blockUI.blockOverlay::before,
body.dio-frete-cep .cart_totals.dio-buscando-frete .blockUI.blockOverlay::after { display: none !important; }
/* La columna de envío del tema va alineada a la derecha (opciones con el radio a la derecha): el relleno las imita */
body.dio-frete-cep .cart_totals .dio-frete-busca-txt { justify-content: flex-end; text-align: right; }
body.dio-frete-cep .cart_totals .dio-frete-sk .dio-sk-fila {
	flex-direction: row-reverse;
	min-height: 0;
	margin: 0 0 10px;
	padding: 4px 0;
	border: 0;
	border-radius: 0;
	background: none;
}
body.dio-frete-cep .cart_totals .dio-frete-sk .l { align-items: flex-end; }
body.dio-frete-cep .cart_totals .dio-frete-sk .l .b1 { width: 80%; }
body.dio-frete-cep .cart_totals .dio-frete-sk .l .b2 { width: 50%; }
body.dio-frete-cep .cart_totals .dio-frete-sk .p { display: none; }
body.dio-frete-cep .cart_totals .dio-frete-erro { text-align: left; }
/* En móvil (tabla responsive de WooCommerce, 768 px) las opciones van a la izquierda con el radio delante */
@media (max-width: 768px) {
	body.dio-frete-cep .cart_totals .dio-frete-busca-txt { justify-content: flex-start; text-align: left; }
	body.dio-frete-cep .cart_totals .dio-frete-sk .dio-sk-fila { flex-direction: row; }
	body.dio-frete-cep .cart_totals .dio-frete-sk .l { align-items: flex-start; }
}

/* Ficha: el relleno con la forma de la tabla de opciones del simulador (filas pegadas, esquinas rectas) */
body.dio-frete-cep #wc-shipping-sim .dio-frete-sk .dio-sk-fila {
	min-height: 50px;
	margin: 0;
	border-radius: 0;
}
body.dio-frete-cep #wc-shipping-sim .dio-frete-sk .dio-sk-fila + .dio-sk-fila { border-top: 0; }
