/* Parte publica - Pack & Talle Manager */

:root {
	--ptm-bg: #ffffff;
	--ptm-border: #2271b1;
	--ptm-header-bg: #2271b1;
	--ptm-header-color: #ffffff;
	--ptm-zebra: #f4f7fa;
	--ptm-btn-bg: #f6f7f7;
	--ptm-btn-border: #c3c4c7;
	--ptm-btn-text: #1d2327;
	--ptm-btn-selected-bg: #2271b1;
	--ptm-btn-selected-text: #ffffff;
}

/* ---------------- Botones de talle y pack ---------------- */
/* Usamos `body` para subir la especificidad y `!important` para ganarles
   a los estilos de button del theme (Flatsome, Astra, etc. suelen pisar). */
body .ptm-talle,
body .ptm-pack {
	margin: 14px 0 8px;
}

body .ptm-talle__label,
body .ptm-pack__label {
	font-weight: 600;
	margin-bottom: 8px;
	color: #1d2327;
}

body .ptm-talle__buttons,
body .ptm-pack__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

body .ptm-talle__btn,
body .ptm-pack__btn {
	appearance: none !important;
	background-color: var(--ptm-btn-bg) !important;
	background-image: none !important;
	border: 1px solid var(--ptm-btn-border) !important;
	border-radius: 999px !important;
	padding: 8px 18px !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	color: var(--ptm-btn-text) !important;
	cursor: pointer;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
	box-shadow: none !important;
	text-shadow: none !important;
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	line-height: 1.25;
}

/* Grupo con talles puntuales: debajo del nombre va el detalle "Incluye: ...". */
body .ptm-talle__btn-sub {
	font-size: 11px;
	font-weight: 400;
	opacity: 0.8;
	margin-top: 2px;
}

body .ptm-talle__btn:hover,
body .ptm-pack__btn:hover {
	filter: brightness(0.97);
}

body .ptm-talle__btn.is-selected,
body .ptm-pack__btn.is-selected {
	background-color: var(--ptm-btn-selected-bg) !important;
	background-image: none !important;
	border-color: var(--ptm-btn-selected-bg) !important;
	color: var(--ptm-btn-selected-text) !important;
}

/* ---------------- Tabla de precios ---------------- */
/* Va DEBAJO de cantidad + "anadir al carrito". Con table-layout: fixed la
   tabla nunca se ensancha mas que su contenedor, asi que no aparece nunca
   el scroll horizontal: si algo no entra, el texto baja de renglon. */
.ptm-tabla {
	margin: 24px 0 8px;
	clear: both;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.ptm-tabla__table {
	width: 100%;
	max-width: 720px;
	margin: 0 auto;
	table-layout: fixed;
	border-collapse: collapse;
	background: var(--ptm-bg);
	border: 1px solid var(--ptm-border);
	border-radius: 6px;
	overflow: hidden;
	font-size: 14px;
	color: #1d2327;
	box-sizing: border-box;
}

.ptm-tabla__table .ptm-col-pack  { width: 30%; }
.ptm-tabla__table .ptm-col-total { width: 35%; }
.ptm-tabla__table .ptm-col-unit  { width: 35%; }

.ptm-tabla__table thead th {
	background: var(--ptm-header-bg);
	color: var(--ptm-header-color);
	text-align: left;
	padding: 9px 10px;
	font-weight: 600;
	border: none;
	white-space: normal;
	word-break: normal;
}

.ptm-tabla__table tbody td {
	padding: 8px 10px;
	border-top: 1px solid var(--ptm-border);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* La columna de pack puede wrapear; los importes quedan en una linea. */
.ptm-tabla__table tbody td.ptm-col-pack {
	white-space: normal;
}

.ptm-tabla__table tbody tr:nth-child(even) td {
	background: var(--ptm-zebra);
}

.ptm-tabla__table tbody tr:first-child td {
	border-top: none;
}

.ptm-tabla__empty {
	text-align: center;
	color: #646970;
	font-style: italic;
	white-space: normal;
}

/* ---------------- Separacion contra el bloque "Anadir al carrito" ---------------- */
.single_variation_wrap,
form.cart {
	margin-top: 16px;
}

.woocommerce-variation-add-to-cart,
form.cart .quantity {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

.woocommerce-variation-add-to-cart .quantity,
form.cart .quantity {
	display: inline-flex;
	width: auto !important;
	max-width: 130px;
}

.woocommerce-variation-add-to-cart .quantity .qty,
form.cart .quantity .qty {
	width: 70px;
	max-width: 70px;
}

.woocommerce-variation-add-to-cart button.single_add_to_cart_button,
form.cart button.single_add_to_cart_button {
	width: auto !important;
	max-width: 280px;
	flex: 0 0 auto;
}

/* ---------------- Ocultar nativos de WC y de WPC ---------------- */
/* Escondemos CUALQUIER render de los atributos de Pack y Talle: el select
   nativo, su fila, su contenedor de WPC y la label que WPC pinta al lado. */
select[name="attribute_pa_elegi_tu_pack"],
select[name="attribute_pa_elegi_tu_talle"] {
	display: none !important;
}

table.variations tr[data-attribute_name="attribute_pa_elegi_tu_pack"],
table.variations tr[data-attribute_name="attribute_pa_elegi_tu_talle"],
table.variations tr.attribute-pa_elegi_tu_pack,
table.variations tr.attribute-pa_elegi_tu_talle,
.wpcvs-variations tr[data-attribute_name="attribute_pa_elegi_tu_pack"],
.wpcvs-variations tr[data-attribute_name="attribute_pa_elegi_tu_talle"],
.wpcvs-variations tr.attribute-pa_elegi_tu_pack,
.wpcvs-variations tr.attribute-pa_elegi_tu_talle,
[data-attribute_name="attribute_pa_elegi_tu_pack"],
[data-attribute_name="attribute_pa_elegi_tu_talle"],
.wpcvs-attribute-label[data-attribute_name*="elegi_tu_"],
.wpcvs-attribute-swatch[data-attribute_name*="elegi_tu_"],
.wpcvs-terms-wrapper[id^="pa_elegi_tu_"] {
	display: none !important;
	visibility: hidden !important;
	height: 0 !important;
	line-height: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	overflow: hidden !important;
	border: 0 !important;
}
