/*
 * Front de solicitudes de presupuesto (IMP003 T-FRONT).
 * Propiedades lógicas (margin-inline-start, inset-inline…) para que el RTL (árabe) funcione sin reglas aparte.
 * Colores con las variables del tema y respaldo propio: el plugin no depende del tema.
 */

.cahnos-sol,
.cahnos-sol-ficha,
.cahnos-sol-mini-flotante {
	--cahnos-sol-acento: var(--cn-accent, #0b6b6b);
	--cahnos-sol-acento-suave: var(--cn-accent-soft, #e6f4f5);
	--cahnos-sol-texto: var(--cn-ink, #1d2b3a);
	--cahnos-sol-fondo: var(--cn-surface, #fff);
	--cahnos-sol-borde: var(--cn-line, #c8d3de);
	--cahnos-sol-error: #a4261b;
	--cahnos-sol-ok: #1b6b3a;
}

/* En un producto variable con regla, el botón nativo de WooCommerce (siempre «no disponible») no se muestra: queda el nuestro. */
.single_variation_wrap:has(.cahnos-sol-ficha--variable) .woocommerce-variation-add-to-cart {
	display: none;
}

/* ---- Precio y botón ---- */
.cahnos-sol-precio {
	font-weight: 700;
}

.cahnos-sol-btn {
	min-block-size: 44px;
	cursor: pointer;
}

.cahnos-sol-btn[disabled] {
	opacity: .6;
	cursor: progress;
}

.cahnos-sol-ficha {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 12px;
	align-items: center;
	margin-block: 12px;
}

.cahnos-sol-cant {
	display: inline-flex;
	gap: 8px;
	align-items: center;
}

.cahnos-sol-cant input {
	inline-size: 5.5rem;
	min-block-size: 44px;
	padding-inline: 8px;
}

.cahnos-sol-aviso {
	flex-basis: 100%;
	margin: 0;
	font-size: .9rem;
	color: var(--cahnos-sol-ok);
}

.woocommerce ul.products li.product .cahnos-sol-aviso {
	display: block;
	margin-block-start: 6px;
	text-align: center;
}

.cahnos-sol-aviso:empty {
	display: none;
}

.cahnos-sol a:focus-visible,
.cahnos-sol button:focus-visible,
.cahnos-sol input:focus-visible,
.cahnos-sol textarea:focus-visible,
.cahnos-sol-btn:focus-visible {
	outline: 3px solid var(--cahnos-sol-acento);
	outline-offset: 2px;
}

/* ---- Página de la solicitud ---- */
.cahnos-sol {
	max-inline-size: 960px;
	margin-inline: auto;
	color: var(--cahnos-sol-texto);
}

.cahnos-sol h2 {
	margin-block: 24px 12px;
}

.cahnos-sol-aviso-general {
	min-block-size: 1.5em;
	color: var(--cahnos-sol-ok);
}

.cahnos-sol-tabla {
	inline-size: 100%;
	border-collapse: collapse;
}

.cahnos-sol-tabla th,
.cahnos-sol-tabla td {
	padding: 10px 8px;
	border-block-end: 1px solid var(--cahnos-sol-borde);
	text-align: start;
	vertical-align: middle;
}

.cahnos-sol-col-prod {
	display: flex;
	gap: 12px;
	align-items: center;
}

.cahnos-sol-img img {
	inline-size: 64px;
	block-size: 64px;
	object-fit: contain;
	border: 1px solid var(--cahnos-sol-borde);
	border-radius: 6px;
	background: var(--cahnos-sol-fondo);
}

.cahnos-sol-nombre small {
	display: block;
	color: #546a80;
}

.cahnos-sol-cantidad {
	inline-size: 6rem;
	min-block-size: 44px;
	padding-inline: 8px;
}

.cahnos-sol-quitar {
	inline-size: 44px;
	block-size: 44px;
	border: 1px solid var(--cahnos-sol-borde);
	border-radius: 50%;
	background: var(--cahnos-sol-fondo);
	color: var(--cahnos-sol-texto);
	font-size: 1.4rem;
	line-height: 1;
	cursor: pointer;
}

.cahnos-sol-quitar:hover {
	border-color: var(--cahnos-sol-error);
	color: var(--cahnos-sol-error);
}

.cahnos-sol-acciones {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 24px;
	align-items: center;
	justify-content: space-between;
	margin-block: 16px;
}

.cahnos-sol-vaciar {
	border: 0;
	background: none;
	color: var(--cahnos-sol-error);
	text-decoration: underline;
	cursor: pointer;
	min-block-size: 44px;
}

.cahnos-sol-vacio {
	padding: 24px;
	border: 1px dashed var(--cahnos-sol-borde);
	border-radius: 8px;
	text-align: center;
}

.cahnos-sol-btn-sec {
	min-block-size: 44px;
}

/* ---- Formulario ---- */
.cahnos-sol-form {
	display: grid;
	gap: 14px;
	max-inline-size: 640px;
}

.cahnos-sol-campo {
	display: grid;
	gap: 4px;
	margin: 0;
}

.cahnos-sol-campo label {
	font-weight: 600;
}

.cahnos-sol-campo input[type="text"],
.cahnos-sol-campo input[type="email"],
.cahnos-sol-campo input[type="tel"],
.cahnos-sol-campo textarea {
	inline-size: 100%;
	min-block-size: 44px;
	padding: 8px 12px;
	border: 1px solid var(--cahnos-sol-borde);
	border-radius: 6px;
	background: var(--cahnos-sol-fondo);
	color: var(--cahnos-sol-texto);
	font: inherit;
	box-sizing: border-box;
}

.cahnos-sol-opc {
	font-weight: 400;
	color: #546a80;
}

.cahnos-sol-req {
	color: var(--cahnos-sol-error);
}

.cahnos-sol-consentimiento {
	display: flex;
	gap: 10px;
	align-items: flex-start;
}

.cahnos-sol-consentimiento input {
	inline-size: 22px;
	block-size: 22px;
	margin-block-start: 3px;
	flex: none;
}

.cahnos-sol-consentimiento label {
	font-weight: 400;
}

.cahnos-sol-trampa {
	position: absolute;
	inset-inline-start: -10000px;
	inline-size: 1px;
	block-size: 1px;
	overflow: hidden;
}

.cahnos-sol-error {
	margin-block: 12px;
	padding: 12px 16px;
	border: 2px solid var(--cahnos-sol-error);
	border-radius: 6px;
	color: var(--cahnos-sol-error);
	font-weight: 600;
}

.cahnos-sol-error[hidden],
.cahnos-sol [hidden] {
	display: none;
}

.cahnos-sol-ok {
	color: var(--cahnos-sol-ok);
	font-weight: 600;
}

/* ---- Confirmación y consulta ---- */
.cahnos-sol-resumen {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 6px 16px;
	margin-block: 16px;
}

.cahnos-sol-resumen dt {
	font-weight: 600;
}

.cahnos-sol-resumen dd {
	margin: 0;
}

.cahnos-sol-ref {
	font-size: 1.2rem;
	letter-spacing: .04em;
}

.cahnos-sol-respuesta button {
	margin-inline-end: 12px;
}

/* ---- Indicador opcional ---- */
.cahnos-sol-mini {
	display: inline-flex;
	gap: 6px;
	align-items: center;
	min-block-size: 44px;
}

.cahnos-sol-mini__n {
	min-inline-size: 1.6em;
	padding: 0 6px;
	border-radius: 999px;
	background: var(--cahnos-sol-acento);
	color: #fff;
	text-align: center;
}

.cahnos-sol-mini-flotante {
	position: fixed;
	inset-block-end: 16px;
	inset-inline-end: 16px;
	z-index: 50;
	padding: 4px 14px;
	border: 1px solid var(--cahnos-sol-borde);
	border-radius: 999px;
	background: var(--cahnos-sol-fondo);
	box-shadow: 0 4px 14px rgba(0, 0, 0, .15);
}

/* ---- Móvil: la tabla pasa a tarjetas ---- */
@media (max-width: 640px) {
	.cahnos-sol-tabla:not(.cahnos-sol-tabla--lectura) thead {
		position: absolute;
		inset-inline-start: -10000px;
	}

	.cahnos-sol-tabla:not(.cahnos-sol-tabla--lectura) tr {
		display: grid;
		grid-template-columns: 1fr auto;
		gap: 4px 12px;
		padding-block: 10px;
		border-block-end: 1px solid var(--cahnos-sol-borde);
	}

	.cahnos-sol-tabla:not(.cahnos-sol-tabla--lectura) td {
		padding: 0;
		border: 0;
	}

	.cahnos-sol-tabla:not(.cahnos-sol-tabla--lectura) .cahnos-sol-col-prod {
		grid-column: 1 / -1;
	}

	.cahnos-sol-resumen {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cahnos-sol * {
		transition: none !important;
	}
}
