/**
 * Ficha de merchandising. Todo va dentro de `.tibor-merch-calc` para no tocar el resto de
 * la tienda. Color de marca por token (--tibor-brand del tema) con respaldo propio.
 */

.tibor-merch-calc {
	--tmc-brand: var( --tibor-brand, #0b3989 );
	--tmc-brand-soft: var( --tibor-brand-soft, #eef3fb );
	--tmc-line: #e3e6ec;
	--tmc-muted: #667085;
	--tmc-radius: 10px;
	margin: 18px 0 0;
	font-size: 15px;
	color: #1b2330;
}

.tibor-merch-calc * { box-sizing: border-box; }

/* La calculadora es una tarjeta, como en Roll Up / Dibond. */
.tibor-merch-calc {
	padding: 20px 22px 22px;
	border: 1px solid var( --tmc-line );
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 1px 2px rgba( 16, 24, 40, .04 );
}

/* Aclara el carácter orientativo del catálogo sin interferir con el configurador. */
.tibor-merch-calc .tmc-reference-notice {
	margin: 0 0 20px;
	padding: 12px 14px;
	border: 1px solid #f2d9a0;
	border-radius: 10px;
	background: #fff8e6;
	color: #6b4b06;
	font-size: .86rem;
	line-height: 1.5;
}

.tibor-merch-calc .tmc-reference-notice strong {
	font-weight: 800;
}

/* Respaldo si `tibor-vinilos` no está activo: dos columnas propias (galería / compra). */
.tibor-merch-standalone.single-product div.product {
	display: grid;
	grid-template-columns: minmax( 0, 1fr ) minmax( 0, 520px );
	gap: 34px;
	align-items: start;
}

.tibor-merch-standalone.single-product div.product .woocommerce-product-gallery { position: sticky; top: 90px; width: auto; float: none; margin: 0; }
.tibor-merch-standalone.single-product div.product .summary { width: auto; float: none; margin: 0; }
.tibor-merch-standalone.single-product div.product .woocommerce-tabs,
.tibor-merch-standalone.single-product div.product .related { grid-column: 1 / -1; }

@media ( max-width: 900px ) {
	.tibor-merch-standalone.single-product div.product { grid-template-columns: 1fr; }
	.tibor-merch-standalone.single-product div.product .woocommerce-product-gallery { position: static; }
}

/*
 * Ficha Merch en móvil: el tema aporta 20 px al contenedor y otros 32 px al
 * producto. Además, el tamaño mínimo automático de Grid podía hacer que la
 * galería/summary midieran más que su columna. El resultado era una ficha muy
 * estrecha y recortada en iPhone. Estas reglas solo corrigen geometría; no
 * alteran FlexSlider, los controles, la subida ni la lógica de compra.
 */
@media ( max-width: 880px ) {
	body.tibor-merch-product #page-content > .container {
		width: 100%;
		max-width: 100%;
		padding-inline: 12px;
	}

	body.tibor-merch-product.single-product div.product {
		width: 100%;
		max-width: 100%;
		min-width: 0;
		padding: 16px;
	}

	body.tibor-merch-product .tibor-vinilo-top,
	body.tibor-merch-product .tibor-vinilo-top > .tibor-vinilo-galcol,
	body.tibor-merch-product .tibor-vinilo-top > .summary.entry-summary,
	body.tibor-merch-product .woocommerce-product-gallery,
	body.tibor-merch-product .tibor-merch-calc {
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	body.tibor-merch-product .tibor-vinilo-top {
		grid-template-columns: minmax( 0, 1fr );
		gap: 24px;
	}

	body.tibor-merch-product .woocommerce-product-gallery .flex-viewport,
	body.tibor-merch-product .woocommerce-product-gallery .tibor-thumbs,
	body.tibor-merch-product .woocommerce-product-gallery .flex-control-thumbs {
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}

	body.tibor-merch-product .woocommerce-product-gallery .flex-viewport {
		overflow: hidden !important;
	}

	body.tibor-merch-product .tmc-cards,
	body.tibor-merch-product .tmc-zones,
	body.tibor-merch-product .tmc-panel,
	body.tibor-merch-product .tmc-upload-field,
	body.tibor-merch-product .tmc-actions {
		max-width: 100%;
		min-width: 0;
	}

	/* Un nombre UUID largo no puede agrandar la pista implícita de Grid. */
	body.tibor-merch-product .tmc-upload-field .tvu-files {
		width: 100%;
		max-width: 100%;
		min-width: 0;
		grid-template-columns: minmax( 0, 1fr );
	}

	body.tibor-merch-product .tmc-upload-field .tvu-file {
		width: 100%;
		max-width: 100%;
		min-width: 0;
		overflow: hidden;
	}

	body.tibor-merch-product .tmc-upload-field .tvu-file-main {
		width: 0;
		max-width: 100%;
		min-width: 0;
	}

	body.tibor-merch-product .tmc-upload-field .tvu-file-name {
		display: block;
		max-width: 100%;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}
}

@media ( max-width: 420px ) {
	body.tibor-merch-product .tibor-merch-calc {
		padding: 18px 16px 20px;
	}

	body.tibor-merch-product .tmc-zones {
		grid-template-columns: repeat( 2, minmax( 0, 1fr ) );
	}
}

/* La Descripción y la FAQ usan los bloques `tvd-`/`tvf-` de vinilos.css: mismo aspecto
   que Dibond, Roll Up y stickers. No se redefine nada aquí a propósito. */

.tmc-field { margin: 0 0 22px; }

.tmc-label {
	display: block;
	font-size: 13px;
	font-weight: 800;
	letter-spacing: .01em;
	text-transform: uppercase;
	color: #35405a;
	margin: 0 0 8px;
}

.tmc-color-name { font-weight: 600; text-transform: none; color: var( --tmc-muted ); }

.tmc-hint { font-size: 12.5px; color: var( --tmc-muted ); margin: -4px 0 10px; }

/* --- tarjetas (modo) --- */
.tmc-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

.tmc-card {
	display: block;
	text-align: left;
	padding: 12px 14px;
	border: 2px solid var( --tmc-line );
	border-radius: var( --tmc-radius );
	background: #fff;
	cursor: pointer;
	transition: border-color .15s, box-shadow .15s;
}

.tmc-card:hover { border-color: #c3ccdd; }

.tmc-card[aria-pressed="true"] {
	border-color: var( --tmc-brand );
	box-shadow: 0 0 0 3px rgba( 11, 57, 137, .10 );
}

.tmc-card-t { display: block; font-weight: 800; font-size: 14.5px; }
.tmc-card small { display: block; color: var( --tmc-muted ); font-size: 12px; margin-top: 2px; line-height: 1.35; }

/* --- color --- */
.tmc-swatches { display: flex; flex-wrap: wrap; gap: 8px; }

.tmc-sw {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 3px;
	border: 2px solid var( --tmc-line );
	border-radius: 999px;
	background: #fff;
	cursor: pointer;
}

.tmc-sw span {
	display: block;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	border: 1px solid rgba( 0, 0, 0, .12 );
}

.tmc-sw em { font-style: normal; font-size: 12px; padding-right: 8px; }
.tmc-sw.is-on { border-color: var( --tmc-brand ); box-shadow: 0 0 0 3px rgba( 11, 57, 137, .10 ); }

body.tibor-merch-camisetas-provisional .woocommerce-product-gallery img.tmc-shirt-preview {
	transition: opacity .16s ease;
}

body.tibor-merch-camisetas-provisional .woocommerce-product-gallery img.is-tinting {
	opacity: .72;
}

@media ( prefers-reduced-motion: reduce ) {
	body.tibor-merch-camisetas-provisional .woocommerce-product-gallery img.tmc-shirt-preview {
		transition: none;
	}
}

/* --- zonas --- */
.tmc-zones {
	display: grid;
	grid-template-columns: repeat( auto-fill, minmax( 132px, 1fr ) );
	gap: 10px;
}

.tmc-zone {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	padding: 10px 8px 12px;
	border: 2px solid var( --tmc-line );
	border-radius: var( --tmc-radius );
	background: #fff;
	cursor: pointer;
	text-align: center;
	transition: border-color .15s, box-shadow .15s;
}

.tmc-zone img { width: 100%; max-width: 108px; height: auto; display: block; mix-blend-mode: multiply; }
.tmc-zone-noimg { display: block; width: 100%; height: 88px; background: var( --tmc-brand-soft ); border-radius: 6px; }
.tmc-zone-t { font-weight: 750; font-size: 13.5px; line-height: 1.2; }
.tmc-zone-cm { font-size: 11.5px; color: var( --tmc-muted ); font-variant-numeric: tabular-nums; }
.tmc-zone-p { font-size: 12.5px; font-weight: 800; color: var( --tmc-brand ); margin-top: 3px; }
.tmc-zone:hover { border-color: #c3ccdd; }
.tmc-zone.is-on { border-color: var( --tmc-brand ); box-shadow: 0 0 0 3px rgba( 11, 57, 137, .10 ); }

.tmc-zone.is-on::after {
	content: "✓";
	position: absolute;
	top: 6px;
	right: 6px;
	width: 20px;
	height: 20px;
	line-height: 20px;
	border-radius: 50%;
	background: var( --tmc-brand );
	color: #fff;
	font-size: 12px;
	font-weight: 700;
}

/* --- tallas: una fila por talla dentro del panel (una columna, form-design) --- */
.tmc-sizes { display: block; }

.tmc-size {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 14px;
	border-bottom: 1px solid #f0f2f6;
	background: #fff;
}

.tmc-size:last-child { border-bottom: 0; }

/* Tallas de más allá de la tercera: ocultas hasta pulsar "Mostrar más". Si una tiene
   unidades elegidas se ve siempre, para no esconder lo que el cliente ya ha puesto. */
.tmc-size.is-extra { display: none; }
.tibor-merch-calc.sizes-open .tmc-size.is-extra,
.tmc-size.is-extra.is-picked { display: flex; }

.tmc-sizes-more {
	display: block;
	width: 100%;
	padding: 10px;
	border: 0;
	border-top: 1px solid var( --tmc-line );
	background: #fbfcfe;
	font-size: 13px;
	font-weight: 750;
	color: var( --tmc-brand );
	cursor: pointer;
}

.tmc-sizes-more span { display: inline-block; transition: transform .15s; }
.tmc-sizes-more[aria-expanded="true"] span { transform: rotate( 180deg ); }
.tmc-size.is-picked { background: var( --tmc-brand-soft ); box-shadow: inset 3px 0 0 var( --tmc-brand ); }
.tmc-size-t { font-weight: 800; min-width: 44px; font-size: 15px; }
.tmc-size-stock { flex: 1; font-size: 11.5px; color: var( --tmc-muted ); }
.tmc-size.is-out { opacity: .55; }
.tmc-size.is-out .tmc-size-stock { color: #b32d2e; }

.tmc-num { display: flex; align-items: center; border: 1px solid var( --tmc-line ); border-radius: 8px; overflow: hidden; }
.tmc-num button { width: 34px; height: 38px; border: 0; background: #f6f8fb; font-size: 17px; line-height: 1; cursor: pointer; color: #35405a; }
.tmc-num button:hover { background: var( --tmc-brand-soft ); }
.tmc-num input { width: 52px; height: 38px; border: 0; text-align: center; font-size: 15px; font-weight: 700; -moz-appearance: textfield; }
.tmc-num input::-webkit-outer-spin-button,
.tmc-num input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.tmc-total-qty { margin: 8px 0 0; font-size: 13px; font-weight: 700; color: #35405a; }
.tmc-total-qty.is-warn { color: #a4571b; }

/* --- subida: un bloque `.tvu` (de vinilos.css) por zona, con su cabecera propia --- */
.tmc-zone-up { margin: 0 0 12px; }
.tmc-zone-up .tvc-block { margin: 0; }
.tmc-zone-up .tvc-h { display: none; } /* la cabecera la pone .tmc-zu-head */

.tmc-zu-head {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 0 0 8px;
	border-bottom: 1px solid var( --tmc-line );
	margin-bottom: 12px;
}

.tmc-zu-head img { width: 42px; height: 42px; object-fit: contain; flex: none; mix-blend-mode: multiply; }
.tmc-zu-ht { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.tmc-zu-ht b { font-size: 14px; font-weight: 800; line-height: 1.2; }
.tmc-zu-ht small { font-size: 11.5px; color: var( --tmc-muted ); font-variant-numeric: tabular-nums; }
.tmc-zu-count { flex: none; font-size: 11.5px; font-weight: 750; color: var( --tmc-muted ); }
.tmc-zu-count.is-ok { color: #1a7f37; }
.tmc-zone-up.has-file .tmc-zu-head { border-color: #b7e0c2; }

/* Si la hoja de vinilos no estuviera cargada, la caja de subida sigue siendo usable. */
.tibor-merch-standalone .tvu-drop {
	display: block;
	padding: 18px;
	border: 2px dashed #c3ccdd;
	border-radius: 12px;
	background: #f7f9fc;
	text-align: center;
	cursor: pointer;
}

.tibor-merch-standalone .tvu-drop-ic svg { width: 26px; height: 26px; color: var( --tmc-brand ); }
.tibor-merch-standalone .tvu-browse { border: 0; background: var( --tmc-brand ); color: #fff; border-radius: 999px; padding: 8px 16px; font-weight: 750; cursor: pointer; }
.tibor-merch-standalone .tvu-files { list-style: none; margin: 10px 0 0; padding: 0; }
.tibor-merch-standalone .tvu-file { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var( --tmc-line ); border-radius: 8px; margin-bottom: 6px; }

.tvu-drop.is-over { border-color: var( --tmc-brand ); background: var( --tmc-brand-soft ); }
.tmc-up-state.is-ok { color: #1a7f37; }
.tmc-up-state.is-err { color: #b32d2e; }

/* --- resumen --- */
.tmc-summary { border: 1px solid var( --tmc-line ); border-radius: var( --tmc-radius ); padding: 14px 16px; background: var( --tmc-brand-soft ); }
.tmc-price { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.tmc-price-label { font-size: 12.5px; font-weight: 800; text-transform: uppercase; color: #35405a; }
.tmc-price-total { font-size: 30px; font-weight: 900; line-height: 1.1; color: var( --tmc-brand ); font-variant-numeric: tabular-nums; }
.tmc-price-unit { font-size: 13px; color: var( --tmc-muted ); }

.tmc-breakdown { list-style: none; margin: 10px 0 0; padding: 10px 0 0; border-top: 1px solid rgba( 11, 57, 137, .12 ); font-size: 13px; }
.tmc-breakdown li { display: flex; justify-content: space-between; gap: 12px; padding: 2px 0; }
.tmc-breakdown em { font-style: normal; color: var( --tmc-muted ); font-size: 12px; }
.tmc-breakdown .is-disc b { color: #1a7f37; }

.tmc-msg { margin: 10px 0 0; font-size: 13px; color: #a4571b; }

/* --- panel con cabecera (tallas y cantidades): agrupa por región común --- */
.tmc-panel { border: 1px solid var( --tmc-line ); border-radius: 12px; overflow: hidden; background: #fff; }

.tmc-panel-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 9px 14px;
	background: #f7f9fc;
	border-bottom: 1px solid var( --tmc-line );
	font-size: 11.5px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .03em;
	color: var( --tmc-muted );
}

.tmc-panel-count { color: var( --tmc-muted ); text-transform: none; letter-spacing: 0; }
.tmc-panel-count b { color: var( --tmc-brand ); font-size: 13px; }

/* --- tabla de cantidades --- */
.tmc-tiers .tmc-tier-row { display: grid; grid-template-columns: 1.3fr 1fr 1fr; align-items: center; }
.tmc-tiers .tmc-panel-head span:not( :first-child ) { text-align: right; }
.tmc-tier-rows .tmc-tier-row { width: 100%; padding: 10px 14px; border: 0; border-bottom: 1px solid #f0f2f6; background: transparent; color: inherit; font: inherit; font-variant-numeric: tabular-nums; text-align: left; cursor: pointer; }
.tmc-tier-rows .tmc-tier-row:last-child { border-bottom: 0; }
.tmc-tier-row.is-hidden { display: none; }
.tmc-tier-q { font-weight: 750; }
.tmc-tier-u, .tmc-tier-t { text-align: right; color: var( --tmc-brand ); font-weight: 700; }
.tmc-tier-rows .tmc-tier-row:hover { background: #f7f9fc; }
.tmc-tier-rows .tmc-tier-row:focus-visible { outline: 2px solid var( --tmc-brand ); outline-offset: -2px; }
.tmc-tier-row.is-current { background: var( --tmc-brand-soft ); box-shadow: inset 3px 0 0 var( --tmc-brand ); }
.tmc-tier-empty { padding: 12px 14px; margin: 0; font-size: 13px; color: var( --tmc-muted ); }

.tmc-tier-more {
	display: block;
	width: 100%;
	padding: 10px;
	border: 0;
	border-top: 1px solid var( --tmc-line );
	background: #fbfcfe;
	font-size: 13px;
	font-weight: 750;
	color: var( --tmc-brand );
	cursor: pointer;
}

/* Los pasos usan el módulo `.tvu-steps` de vinilos.css; aquí solo el hueco superior. */
.tmc-upload-field .tvu-steps { margin-bottom: 14px; }

/* --- presupuesto para pedidos grandes: acceso + modal aislado --- */
.tmc-volume-quote-open {
	display: block;
	width: 100%;
	min-height: 48px;
	margin-top: 10px;
	padding: 11px 16px;
	color: var( --tmc-brand );
	background: var( --tmc-brand-soft );
	border: 1px solid #bfd1e8;
	border-radius: 12px;
	font: inherit;
	font-size: 14px;
	font-weight: 750;
	cursor: pointer;
}

.tmc-volume-quote-open:hover { background: #e8f1fb; }
.tmc-volume-quote-open:focus-visible { outline: 3px solid rgba( 8, 120, 207, .3 ); outline-offset: 2px; }

.tmc-quote-modal[hidden] { display: none !important; }
.tmc-quote-modal {
	position: fixed;
	inset: 0;
	z-index: 100002;
	display: grid;
	place-items: center;
	padding: 24px;
	background: rgba( 8, 29, 54, .62 );
	-webkit-backdrop-filter: blur( 4px );
	backdrop-filter: blur( 4px );
}

body.tmc-modal-open { overflow: hidden; }

.tmc-quote-dialog {
	position: relative;
	width: min( 640px, 100% );
	max-height: min( 820px, calc( 100vh - 48px ) );
	overflow: auto;
	padding: 26px;
	color: #1f2d3d;
	background: #fff;
	border: 1px solid #d5e3f2;
	border-radius: 16px;
	box-shadow: 0 20px 64px rgba( 7, 33, 66, .2 );
	overscroll-behavior: contain;
}

.tmc-quote-dialog:focus { outline: none; }
.tmc-quote-dialog:focus-visible { outline: 3px solid rgba( 8, 120, 207, .34 ); outline-offset: 3px; }

.tmc-quote-close {
	position: absolute;
	top: 16px;
	right: 16px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	color: #65768a;
	background: transparent;
	border: 0;
	border-radius: 50%;
	cursor: pointer;
}

.tmc-quote-close:hover { color: var( --tmc-brand ); background: #e8f1fb; }
.tmc-quote-close:focus-visible { outline: 3px solid rgba( 8, 120, 207, .3 ); outline-offset: 2px; }
.tmc-quote-close svg { width: 21px; height: 21px; }

.tmc-quote-head {
	display: grid;
	grid-template-columns: 58px minmax( 0, 1fr );
	gap: 15px;
	align-items: center;
	padding-right: 46px;
}

.tmc-quote-head-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 58px;
	height: 58px;
	color: #1677e8;
	background: #e8f3ff;
	border-radius: 13px;
}

.tmc-quote-head-icon svg { width: 31px; height: 31px; }
.tmc-quote-head h3 { margin: 0; color: #12284c; font-size: 23px; font-weight: 850; line-height: 1.15; letter-spacing: -.02em; }
.tmc-quote-head div > p:last-child { max-width: 390px; margin: 5px 0 0; color: #5f7189; font-size: 13px; line-height: 1.4; }

.tmc-quote-form { margin-top: 21px; }
.tmc-quote-progress {
	display: grid;
	grid-template-columns: repeat( 3, 1fr );
	margin: 0;
	padding: 0 0 19px;
	border-bottom: 1px solid #e3ebf4;
	list-style: none;
}

.tmc-quote-progress li { position: relative; min-width: 0; }
.tmc-quote-progress li:not( :last-child )::after {
	position: absolute;
	top: 13px;
	left: calc( 50% + 17px );
	z-index: 0;
	width: calc( 100% - 34px );
	height: 2px;
	background: #dce6f1;
	content: '';
}

.tmc-quote-progress li.is-complete::after { background: #1677e8; }
.tmc-quote-progress button {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	flex-direction: column;
	gap: 6px;
	width: 100%;
	padding: 0;
	color: #718198;
	background: transparent;
	border: 0;
	font: inherit;
	cursor: pointer;
}

.tmc-quote-progress button:disabled { cursor: default; opacity: 1; }
.tmc-quote-progress button > span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 27px;
	height: 27px;
	color: #60748e;
	background: #e9f0f7;
	border-radius: 50%;
	font-size: 12px;
	font-weight: 800;
}

.tmc-quote-progress button small { font-size: 11px; font-weight: 600; line-height: 1; }
.tmc-quote-progress li.is-active button { color: #096bd8; }
.tmc-quote-progress li.is-active button > span,
.tmc-quote-progress li.is-complete button > span { color: #fff; background: #0875df; box-shadow: 0 3px 9px rgba( 8, 117, 223, .23 ); }
.tmc-quote-progress button:focus-visible { outline: 3px solid rgba( 8, 120, 207, .25 ); outline-offset: 3px; border-radius: 8px; }

.tmc-quote-step { padding-top: 20px; animation: tmc-quote-in .16s ease-out; }
.tmc-quote-step[hidden] { display: none !important; }
.tmc-quote-step:focus { outline: none; }
.tmc-quote-step h4 { margin: 0 0 16px; color: #172b4a; font-size: 15px; font-weight: 800; line-height: 1.3; }
.tmc-q-step-error { margin: -6px 0 14px; padding: 9px 11px; color: #a2261d; background: #fff0ee; border-radius: 8px; font-size: 12px; font-weight: 650; }
.tmc-quote-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px 16px; }
.tmc-quote-grid label { display: flex; flex-direction: column; gap: 6px; min-width: 0; color: #35465f; font-size: 12px; font-weight: 750; }
.tmc-required { color: #d92d20; }
.tmc-quote-grid em { color: var( --tmc-muted ); font-style: normal; font-weight: 500; }
.tmc-quote-grid input,
.tmc-quote-grid textarea,
.tmc-quote-grid select {
	width: 100%;
	min-height: 45px;
	padding: 10px 12px;
	color: #182a3d;
	background: #fff;
	border: 1px solid #c9d8e8;
	border-radius: 8px;
	box-shadow: none;
	font: inherit;
	font-size: 13px;
}

.tmc-quote-grid input::placeholder, .tmc-quote-grid textarea::placeholder { color: #8b9bb0; opacity: 1; }
.tmc-quote-grid textarea { min-height: 106px; resize: vertical; line-height: 1.45; }
.tmc-quote-grid input:hover, .tmc-quote-grid textarea:hover, .tmc-quote-grid select:hover { border-color: #98b2cc; }
.tmc-quote-grid input:focus, .tmc-quote-grid textarea:focus, .tmc-quote-grid select:focus { border-color: #0875df; outline: 3px solid rgba( 8, 117, 223, .12 ); }
.tmc-quote-form.is-validated .tmc-quote-grid input:invalid,
.tmc-quote-form.is-validated .tmc-quote-grid textarea:invalid,
.tmc-quote-grid [aria-invalid="true"] { border-color: #d92d20; }
.tmc-quote-form.is-validated .tmc-q-consent input:invalid { outline: 2px solid #d92d20; outline-offset: 2px; }
.tmc-q-wide { grid-column: 1 / -1; }
.tmc-q-select-wrap { position: relative; display: block; color: #0875df; }
.tmc-q-select-wrap svg { position: absolute; top: 50%; left: 11px; z-index: 1; width: 17px; height: 17px; transform: translateY( -50% ); pointer-events: none; }
.tmc-q-select-wrap select { padding-left: 37px; color: #35465f; font-weight: 650; }
.tmc-q-error { display: block; min-height: 0; color: #b42318; font-size: 11px; font-weight: 600; line-height: 1.35; }
.tmc-q-error:empty { display: none; }
.tmc-q-consent { display: grid; grid-template-columns: 20px minmax( 0, 1fr ); gap: 9px; align-items: start; margin-top: 17px; color: #52647a; font-size: 12px; font-weight: 500; line-height: 1.45; cursor: pointer; }
.tmc-q-consent input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var( --tmc-brand ); }
.tmc-q-consent a { color: var( --tmc-brand ); font-weight: 700; }
.tmc-q-consent-error { margin: 5px 0 0 29px; }
.tmc-q-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.tmc-quote-info { display: grid; grid-template-columns: 22px minmax( 0, 1fr ); gap: 10px; align-items: start; margin-top: 17px; padding: 13px 14px; color: #4c6079; background: #eef6ff; border-radius: 9px; }
.tmc-quote-info > span { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; margin-top: 1px; color: #0875df; border: 1.5px solid currentColor; border-radius: 50%; font-family: Arial, sans-serif; font-size: 11px; font-weight: 800; }
.tmc-quote-info p { margin: 0; font-size: 12px; line-height: 1.45; }
.tmc-quote-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; overflow: hidden; background: #dfe8f2; border: 1px solid #dfe8f2; border-radius: 10px; }
.tmc-quote-summary > div { display: flex; flex-direction: column; gap: 4px; min-width: 0; padding: 12px 13px; background: #fff; }
.tmc-quote-summary span { color: #718198; font-size: 11px; font-weight: 650; }
.tmc-quote-summary strong { overflow-wrap: anywhere; color: #223853; font-size: 13px; font-weight: 750; line-height: 1.4; }
.tmc-quote-summary .tmc-q-summary-wide { grid-column: 1 / -1; }
.tmc-q-msg { margin: 14px 0 0; padding: 11px 13px; border-radius: 9px; font-size: 13px; font-weight: 650; line-height: 1.45; }
.tmc-q-msg.is-ok { color: #176b36; background: #ecf8f0; }
.tmc-q-msg.is-err { color: #a2261d; background: #fff0ee; }
.tmc-quote-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 20px; }
.tmc-q-text-button, .tmc-q-next, .tmc-q-send { min-height: 44px; padding: 10px 17px; border-radius: 8px; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.tmc-q-text-button { color: #1767c4; background: transparent; border: 0; }
.tmc-q-text-button:hover { background: #eef6ff; }
.tmc-q-next, .tmc-q-send { margin-left: auto; color: #fff; background: #0875df; border: 1px solid #0875df; box-shadow: 0 5px 13px rgba( 8, 117, 223, .2 ); }
.tmc-q-next:hover, .tmc-q-send:hover:not( :disabled ) { background: #0564c2; border-color: #0564c2; }
.tmc-q-send:disabled { opacity: .65; cursor: wait; }
.tmc-q-text-button:focus-visible, .tmc-q-next:focus-visible, .tmc-q-send:focus-visible { outline: 3px solid rgba( 8, 120, 207, .3 ); outline-offset: 2px; }

@keyframes tmc-quote-in {
	from { opacity: 0; transform: translateY( 4px ); }
	to { opacity: 1; transform: translateY( 0 ); }
}

/* --- acciones --- */
.tmc-actions { margin: 16px 0 0; }
.tmc-add { width: 100%; padding: 14px 18px; font-size: 16px; font-weight: 800; border-radius: 999px; border: 0; background: var( --tmc-brand ); color: #fff; cursor: pointer; }
.tmc-add:disabled { opacity: .45; cursor: not-allowed; }
.tmc-add.is-loading { opacity: .7; }
/* Botón secundario: el personalizador es una alternativa, no la acción principal. */
.tmc-configurator {
	display: block;
	margin: 10px 0 0;
	padding: 12px 18px;
	text-align: center;
	font-size: 14px;
	font-weight: 750;
	color: var( --tmc-brand );
	background: #fff;
	border: 1.5px solid var( --tmc-brand );
	border-radius: 999px;
	text-decoration: none;
}

.tmc-configurator:hover { background: var( --tmc-brand-soft ); color: var( --tmc-brand ); }
.tibor-merch-calc.is-quote .tmc-summary { opacity: .55; }

.tmc-warn { padding: 12px 14px; border-radius: 8px; background: #fff6e6; color: #7a4a00; font-size: 14px; }

/* --- barra pegada en móvil --- */
.tmc-sticky { display: none; }

@media ( max-width: 780px ) {
	.tmc-cards { grid-template-columns: 1fr; }
	.tmc-tiers .tmc-tier-row { grid-template-columns: 1.2fr 1fr 1fr; font-size: 13.5px; }
	.tmc-actions { padding-bottom: 74px; } /* que la barra pegada no tape el personalizador */
	.tmc-zones { grid-template-columns: repeat( auto-fill, minmax( 118px, 1fr ) ); }
	.tmc-num input { width: 46px; }
	.tmc-actions .tmc-add { position: static; }

	.tmc-sticky {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 900;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		padding: 10px 14px calc( 10px + env( safe-area-inset-bottom ) );
		background: #fff;
		border-top: 1px solid var( --tmc-line );
		box-shadow: 0 -6px 20px rgba( 16, 24, 40, .10 );
	}

	.tmc-sticky[hidden] { display: none; }
	.tmc-sticky .tmc-price-total { font-size: 21px; }
	.tmc-sticky-label { display: block; font-size: 11px; text-transform: uppercase; color: var( --tmc-muted ); font-weight: 800; }
	.tmc-sticky .tmc-add { width: auto; padding: 12px 22px; font-size: 15px; }
}

/* Camisetas provisional: reproduce los plazos, subida y barra inferior de la ficha de stickers. */
body.tibor-merch-camisetas-provisional .tmc-plazo {
	grid-template-columns: repeat( 3, minmax( 0, 1fr ) );
	gap: 8px;
}

body.tibor-merch-camisetas-provisional .tmc-plazo .tmc-card {
	display: flex;
	align-items: center;
	justify-content: center;
	/* wrap + base 100% en el <small> = el nombre y el icono van en la primera
	   línea y la fecha de entrega cae a la suya, sin tocar el HTML. */
	flex-wrap: wrap;
	gap: 2px 8px;
	min-width: 0;
	padding: 10px 8px;
	text-align: center;
}

body.tibor-merch-camisetas-provisional .tmc-plazo .tmc-card-t {
	display: inline;
	font-size: 13.5px;
}

/* La fecha de entrega SÍ se ve (19 ago 2026): el cliente tiene que saber qué
   está eligiendo. Antes estaba oculta y los tres plazos parecían iguales. */
body.tibor-merch-camisetas-provisional .tmc-plazo .tmc-card small {
	display: block;
	flex: 0 0 100%;
	text-align: center;
}
body.tibor-merch-camisetas-provisional .tmc-plazo-icon { display: inline-flex; color: var( --tmc-brand ); }
body.tibor-merch-camisetas-provisional .tmc-plazo-icon svg { width: 18px; height: 18px; }

body.tibor-merch-camisetas-provisional .tmc-upload-field .tvu-steps {
	margin-bottom: 14px;
}

body.tibor-merch-camisetas-provisional .tmc-actions .tmc-add.button.alt {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	min-height: 50px;
	padding: 13px 22px;
	border: 0;
	border-radius: 999px;
	background: var( --tmc-brand );
	box-shadow: none;
	color: #fff;
	font-size: 17px;
	font-weight: 800;
	line-height: 1.2;
	text-align: center;
}

body.tibor-merch-camisetas-provisional .tmc-actions .tmc-add.button.alt:hover:not( :disabled ) {
	background: #062e70;
	color: #fff;
}

body.tibor-merch-camisetas-provisional .tmc-add-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
}

body.tibor-merch-camisetas-provisional .tmc-add-icon svg {
	width: 21px;
	height: 21px;
}

body.tibor-merch-camisetas-provisional .tmc-designer {
	margin-top: 24px;
}

body.tibor-merch-camisetas-provisional .tmc-designer h3 {
	margin: 0 0 14px;
	color: #1f2d3d;
	font-size: clamp( 20px, 2vw, 26px );
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -.02em;
}

body.tibor-merch-camisetas-provisional .tmc-creation-options {
	display: grid;
	gap: 12px;
}

body.tibor-merch-camisetas-provisional .tmc-designer-card {
	display: grid;
	grid-template-columns: 104px minmax( 0, 1fr ) 30px;
	align-items: stretch;
	min-height: 148px;
	overflow: hidden;
	color: #52647a;
	background:
		linear-gradient( #fff, #fff ) padding-box,
		linear-gradient( 145deg, #7c3aed 0%, #4f46e5 42%, #0ea5e9 72%, #22d3ee 100% ) border-box;
	border: 2px solid transparent;
	border-radius: 10px;
	text-decoration: none;
	box-shadow: none;
	transition: transform .18s ease;
}

body.tibor-merch-camisetas-provisional button.tmc-designer-card {
	width: 100%;
	padding: 0;
	font: inherit;
	text-align: left;
	cursor: pointer;
}

body.tibor-merch-camisetas-provisional .tmc-designer-card.tmc-quote-open {
	background:
		linear-gradient( #fff, #fff ) padding-box,
		linear-gradient( 145deg, #0b3989 0%, #0878cf 58%, #24a3d8 100% ) border-box;
}

body.tibor-merch-camisetas-provisional .tmc-designer-card.tmc-quote-open.is-required {
	box-shadow: 0 0 0 4px rgba( 8, 120, 207, .11 );
}

body.tibor-merch-camisetas-provisional .tmc-designer-card:hover {
	color: #52647a;
	transform: translateY( -1px );
}

body.tibor-merch-camisetas-provisional .tmc-designer-card:active {
	transform: translateY( 1px );
}

body.tibor-merch-camisetas-provisional .tmc-designer-card:focus-visible {
	outline: 3px solid rgba( 8, 120, 207, .3 );
	outline-offset: 3px;
}

body.tibor-merch-camisetas-provisional .tmc-designer-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	color: var( --tmc-brand );
	background: #f2f5fb;
}

body.tibor-merch-camisetas-provisional .tmc-designer-icon svg {
	width: 42px;
	height: 42px;
}

body.tibor-merch-camisetas-provisional .tmc-designer-copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 7px;
	min-width: 0;
	padding: 20px 24px;
	font-size: 14px;
	line-height: 1.45;
}

body.tibor-merch-camisetas-provisional .tmc-designer-copy strong {
	color: #07528d;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.25;
}

body.tibor-merch-camisetas-provisional .tmc-designer-copy b {
	margin-top: 3px;
	color: #0878cf;
	font-size: 16px;
	font-weight: 800;
}

body.tibor-merch-camisetas-provisional .tmc-designer-card:hover .tmc-designer-copy b {
	text-decoration: underline;
	text-underline-offset: 3px;
}

body.tibor-merch-camisetas-provisional .tmc-designer-info {
	align-self: center;
	justify-self: center;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 17px;
	height: 17px;
	color: #0878cf;
	border: 1.5px solid currentColor;
	border-radius: 50%;
	font-size: 11px;
	font-weight: 800;
	font-family: Arial, sans-serif;
}

body.tibor-merch-camisetas-provisional .tmc-quote-card-status {
	align-self: center;
	justify-self: center;
	color: #0878cf;
	font-size: 22px;
	font-weight: 700;
}

body.tibor-merch-camisetas-provisional .tmc-quote-card-icon {
	color: #0878cf;
	background: #eef6fd;
}

@media ( max-width: 600px ) {
	.tmc-quote-modal {
		place-items: end center;
		padding: 0;
	}

	.tmc-quote-dialog {
		width: 100%;
		max-height: 94dvh;
		padding: 20px 17px calc( 20px + env( safe-area-inset-bottom ) );
		border-radius: 18px 18px 0 0;
	}

	.tmc-quote-close { top: 12px; right: 12px; }
	.tmc-quote-head { grid-template-columns: 49px minmax( 0, 1fr ); gap: 12px; padding-right: 38px; }
	.tmc-quote-head-icon { width: 49px; height: 49px; border-radius: 12px; }
	.tmc-quote-head-icon svg { width: 26px; height: 26px; }
	.tmc-quote-head h3 { font-size: 20px; }
	.tmc-quote-head div > p:last-child { font-size: 12px; }
	.tmc-quote-form { margin-top: 18px; }
	.tmc-quote-progress { padding-bottom: 16px; }
	.tmc-quote-step { padding-top: 17px; }
	.tmc-quote-grid { gap: 13px 12px; }
	.tmc-quote-actions { margin-top: 18px; }
	.tmc-q-text-button, .tmc-q-next, .tmc-q-send { min-height: 44px; padding: 10px 14px; }

	body.tibor-merch-camisetas-provisional .tmc-designer-card {
		grid-template-columns: 72px minmax( 0, 1fr ) 26px;
		min-height: 138px;
	}

	body.tibor-merch-camisetas-provisional .tmc-designer-icon svg {
		width: 34px;
		height: 34px;
	}

	body.tibor-merch-camisetas-provisional .tmc-designer-copy {
		padding: 16px 12px 16px 16px;
		font-size: 13px;
	}

	body.tibor-merch-camisetas-provisional .tmc-designer-copy strong {
		font-size: 16px;
	}

	body.tibor-merch-camisetas-provisional .tmc-designer-copy b {
		font-size: 14px;
	}
}

@media ( max-width: 420px ) {
	.tmc-quote-grid, .tmc-quote-summary { grid-template-columns: 1fr; }
	.tmc-q-wide, .tmc-quote-summary .tmc-q-summary-wide { grid-column: auto; }
	.tmc-quote-progress button small { font-size: 10px; }
}

@media ( prefers-reduced-motion: reduce ) {
	.tmc-quote-step { animation: none; }
	body.tibor-merch-camisetas-provisional .tmc-designer-card {
		transition: none;
	}

	body.tibor-merch-camisetas-provisional .tmc-designer-card:hover,
	body.tibor-merch-camisetas-provisional .tmc-designer-card:active {
		transform: none;
	}
}

body.tibor-merch-camisetas-provisional .t26-chrome.t26-footer {
	padding-bottom: 96px;
}

body.tibor-merch-camisetas-provisional .tmc-sticky {
	position: fixed;
	inset: auto 0 0 0;
	z-index: 999;
	display: block;
	padding: 0;
	background: rgba( 255, 255, 255, .96 );
	border-top: 1px solid var( --tmc-line );
	box-shadow: 0 -6px 22px rgba( 11, 57, 137, .09 );
	-webkit-backdrop-filter: blur( 10px );
	backdrop-filter: blur( 10px );
	isolation: isolate;
}

body.tibor-merch-camisetas-provisional .tmc-sticky[hidden] { display: none !important; }

body.tibor-merch-camisetas-provisional .tmc-sticky-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	max-width: 1180px;
	margin: 0 auto;
	padding: 10px 20px;
}

body.tibor-merch-camisetas-provisional .tmc-sticky-p {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

body.tibor-merch-camisetas-provisional .tmc-sticky-label {
	overflow: hidden;
	font-size: 12px;
	font-weight: 500;
	text-overflow: ellipsis;
	text-transform: none;
	white-space: nowrap;
}

body.tibor-merch-camisetas-provisional .tmc-sticky .tmc-price-total {
	font-size: 21px;
}

body.tibor-merch-camisetas-provisional .tmc-sticky .tmc-add {
	width: auto;
	min-width: 220px;
	margin: 0;
	padding: 12px 28px;
}

@media ( max-width: 980px ) {
	body.tibor-merch-camisetas-provisional.tibor-mobile-menu-open .tmc-sticky {
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
	}
}

@media ( max-width: 780px ) {
	body.tibor-merch-camisetas-provisional .t26-chrome.t26-footer {
		padding-bottom: calc( 80px + env( safe-area-inset-bottom ) );
	}

	body.tibor-merch-camisetas-provisional .tmc-sticky {
		padding-bottom: env( safe-area-inset-bottom );
	}

	body.tibor-merch-camisetas-provisional .tmc-sticky-inner {
		width: 100%;
		min-height: 64px;
		padding: 8px 16px;
		gap: 12px;
	}

	body.tibor-merch-camisetas-provisional .tmc-sticky-p {
		flex: 0 0 auto;
		max-width: 42%;
	}

	body.tibor-merch-camisetas-provisional .tmc-sticky .tmc-add {
		flex: 1 1 220px;
		width: auto;
		min-width: 0;
		max-width: 250px;
		margin-left: auto;
		padding: 12px 16px;
		white-space: nowrap;
	}
}

/* Avisos refinados (22-10-2026): mismo acabado que el personalizador y WooCommerce. Fondo
   claro, franja de color a la izquierda, esquinas suaves y sombra ligera. Se conservan el
   color del texto, los tamaños y la posición; solo cambia el acabado. */
.tibor-merch-calc .tmc-reference-notice, .tmc-warn { border-radius: 12px; box-shadow: 0 1px 4px rgba(15, 23, 42, .06); }
.tibor-merch-calc .tmc-reference-notice, .tmc-warn { border: 1px solid #f3e2b3; border-left: 3px solid #f59e0b; background: #fffdf7; }
