/*
Theme Name: Tuco
Theme URI: https://example.com/tuco
Author: Antonio Vázquez
Description: Tema de bloques para la tienda de tenis y pádel de Tuco. Colores y tipografías intercambiables desde Apariencia › Editor › Estilos. Pensado para WooCommerce y el plugin Tuco Tienda.
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 8.1
Version: 0.4.2
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: tuco
Tags: e-commerce, block-patterns, full-site-editing, style-variations, custom-colors, editor-style
*/

/* -------------------------------------------------------------
   Lo que no se puede expresar en theme.json.
   Todos los colores y fuentes salen de las variables de WordPress,
   así que cambian solos al elegir otra paleta o tipografía.
   ------------------------------------------------------------- */

/* Cabecera: logo siempre centrado entre menú y carrito */
.tuco-cabecera {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: center;
}
.tuco-cabecera > :first-child { justify-self: start; }
.tuco-cabecera > :nth-child(2) { justify-self: center; text-align: center; }
.tuco-cabecera > :last-child { justify-self: end; }

.tuco-lema {
	font-family: var(--wp--preset--font-family--label);
	font-size: 0.5rem;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	margin: 2px 0 0 !important;
	padding-left: 0.32em;
}

/* Las etiquetas heredan el color del contexto, salvo en zonas claras */
:where(.is-style-etiqueta) { color: var(--wp--preset--color--muted); }
:where(.is-style-banda-oscura, .is-style-banda-color) .is-style-etiqueta { color: var(--wp--preset--color--on-band-muted); }
:where(.is-style-banda-oscura, .is-style-banda-color) .is-style-etiqueta-acento { color: var(--wp--preset--color--pop); }

/* Cursiva de titulares: se resalta con el color "pelota" en las bandas */
:where(.is-style-banda-oscura, .is-style-banda-color) :is(h1, h2) em { color: var(--wp--preset--color--pop); }

/* Pastillas (enlaces de categoría y filtros) */
.is-style-outline .wp-block-button__link { border-color: var(--wp--preset--color--line-strong); }

/* Tarjetas de producto */
.wc-block-product-template .wc-block-components-product-image,
.wp-block-woocommerce-product-image {
	background: var(--wp--preset--color--surface);
	border-radius: var(--wp--custom--radius--card);
	overflow: hidden;
}
.wc-block-product-template .wp-block-post-title {
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.15;
}
.wc-block-components-product-sale-badge,
.wc-block-components-product-badge {
	font-family: var(--wp--preset--font-family--label);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	border-radius: 0;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	border: 0;
}

/* Botones de WooCommerce con el mismo aspecto que los del tema */
.wp-element-button,
.wc-block-components-button:not(.is-link),
.woocommerce button.button,
.woocommerce a.button {
	border-radius: var(--wp--custom--radius--pill);
}

/* Campos de formulario */
input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=range]):not([type=hidden]),
select,
textarea {
	background-color: var(--wp--preset--color--field);
	color: var(--wp--preset--color--contrast);
	border: 1px solid var(--wp--preset--color--line-strong);
	border-radius: var(--wp--custom--radius--card);
	font-family: inherit;
	font-size: 1rem;
	min-height: 46px;
	padding: 0 0.85rem;
	box-sizing: border-box;
}
textarea { padding-block: 0.6rem; }

/* Tabla de especificaciones (Información adicional) */
.woocommerce-product-attributes {
	width: 100%;
	border-collapse: collapse;
}
.woocommerce-product-attributes th,
.woocommerce-product-attributes td {
	text-align: left;
	padding: 0.8rem 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
	font-weight: 400;
}
.woocommerce-product-attributes th { color: var(--wp--preset--color--muted); }
.woocommerce-product-attributes td {
	text-align: right;
	font-family: var(--wp--preset--font-family--label);
	font-size: var(--wp--preset--font-size--small);
}
.woocommerce-product-attributes td p { margin: 0; }

/* Ilustraciones y fotos de las tarjetas de categoría */
/* (tarjetas de categoría: ver «Portada · categorías» más abajo) */

/* Accesibilidad: foco visible */
:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
	* { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* Sin hueco entre la cabecera y el contenido */
.wp-site-blocks > main,
.wp-site-blocks > .wp-block-group:where(main) { margin-block-start: 0; }

/* Iconos de la cabecera: lupa, cuenta y carrito del mismo tamaño */
.tuco-cabecera .wp-block-search__button,
.tuco-cabecera .wp-block-search__button:hover {
	background: transparent;
	color: currentColor;
	border: 0;
	padding: 0;
	width: 40px;
	height: 40px;
	min-width: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
}
.tuco-cabecera .wp-block-search__button svg { width: 22px; height: 22px; fill: currentColor; }
.tuco-cabecera .wp-block-search__inside-wrapper { border: 0; padding: 0; }
.tuco-cabecera .wp-block-woocommerce-customer-account a,
.tuco-cabecera .wc-block-mini-cart__button {
	width: 40px;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}
@media (max-width: 480px) {
	.tuco-cabecera .wp-block-woocommerce-customer-account { display: none; }
}

/* Listas sin viñetas (pie) */
.tuco-lista-limpia { list-style: none; }
.tuco-lista-limpia a { text-decoration: none; }
.tuco-lista-limpia a:hover { text-decoration: underline; }

/* Pestañas de producto (Descripción, Información adicional, Valoraciones) */
.woocommerce-tabs ul.tabs,
.wp-block-woocommerce-product-details ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0 1.25rem;
	padding: 0 !important;
	margin: 0 0 1.25rem !important;
	border-bottom: 1px solid var(--wp--preset--color--line);
	list-style: none;
}
.woocommerce-tabs ul.tabs::before,
.woocommerce-tabs ul.tabs li::before,
.woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce-tabs ul.tabs li {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}
.woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 0.85rem 0 !important;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500 !important;
	color: var(--wp--preset--color--muted) !important;
	text-decoration: none;
}
.woocommerce-tabs ul.tabs li.active a {
	color: var(--wp--preset--color--contrast) !important;
	box-shadow: inset 0 -2px 0 var(--wp--preset--color--contrast);
}
.woocommerce-tabs .panel > h2:first-child { display: none; }

/* Tablas limpias: solo líneas horizontales */
.wp-block-table table { border-collapse: collapse; width: 100%; }
.wp-block-table :is(th, td) {
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
	padding: 0.7rem 0.75rem 0.7rem 0;
	text-align: left;
	vertical-align: top;
}
.wp-block-table thead th {
	border-bottom: 1px solid var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--label);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}
.wp-block-table thead { border-bottom: 0; }
.wp-block-table td:last-child { text-align: right; padding-right: 0; }

/* Submenús del menú móvil, siempre desplegados y sin sangría rara */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { padding-left: 0.25rem !important; }

/* Listado con filtros */
@media (min-width: 782px) {
	.tuco-listado__filtros .wc-block-product-filters { position: sticky; top: 1.5rem; }
}
.wc-block-product-filters .wc-block-product-filter-price-slider input[type=text],
.wc-block-product-filters .wc-block-product-filter-price-slider input[type=number] {
	min-height: 36px;
	font-size: var(--wp--preset--font-size--small);
}
@media (max-width: 781px) {
	.tuco-listado { gap: var(--wp--preset--spacing--30) !important; }
}

/* =============================================================
   0.3 · Movimiento, fotos con fondo propio y ficha de producto
   ============================================================= */
:root {
	/* Fondo de las fotos: más claro que la página para que el producto «se separe». */
	--tuco-foto: color-mix(in srgb, #ffffff 78%, var(--wp--preset--color--surface));
	--tuco-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Cabecera: logo, menú, iconos ---------- */
.tuco-logo-menu { min-width: 0; }
.tuco-logo { display: inline-flex; color: var(--wp--preset--color--contrast); transition: transform .5s var(--tuco-ease); }
.tuco-logo__costura { stroke: var(--wp--preset--color--accent); }
.tuco-logo:hover, .tuco-logo:focus-visible { transform: rotate(-25deg); }

.tuco-cabecera .wp-block-navigation-item__content {
	background-image: linear-gradient(currentColor, currentColor);
	background-repeat: no-repeat;
	background-position: 0 100%;
	background-size: 0 1px;
	transition: background-size .3s var(--tuco-ease), color .2s;
}
.tuco-cabecera .wp-block-navigation-item__content:hover,
.tuco-cabecera .wp-block-navigation-item__content:focus-visible { background-size: 100% 1px; color: var(--wp--preset--color--accent); }
.tuco-cabecera .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container {
	border: 1px solid var(--wp--preset--color--line) !important;
	background: var(--wp--preset--color--base) !important;
	box-shadow: 0 14px 30px -18px rgba(0, 0, 0, .35);
	padding: .4rem 0;
}
.tuco-cabecera .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .5rem 1rem; }
.tuco-cabecera :is(.wp-block-search__button, .wc-block-mini-cart__button, .wc-block-customer-account__link) {
	transition: color .2s, transform .2s var(--tuco-ease);
}
.tuco-cabecera :is(.wp-block-search__button, .wc-block-mini-cart__button, .wc-block-customer-account__link):hover {
	color: var(--wp--preset--color--accent);
	transform: translateY(-2px);
}
/* «Mi cuenta» solo en el menú del móvil (en escritorio ya está el icono) */
.wp-block-navigation__responsive-container:not(.is-menu-open) .tuco-solo-movil { display: none; }
/* Menú de móvil hasta 1080 px, para que no se parta en dos líneas en tablet */
@media (max-width: 1079px) {
	.tuco-cabecera .wp-block-navigation__responsive-container-open { display: flex !important; }
	.tuco-cabecera .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
}

/* ---------- Botones ---------- */
.wp-element-button, .wp-block-button__link {
	transition: background-color .2s, color .2s, border-color .2s, transform .2s var(--tuco-ease), box-shadow .2s;
}
.wp-block-button__link:hover, .wp-block-button__link:focus-visible {
	transform: translateY(-2px);
	box-shadow: 0 10px 20px -12px rgba(0, 0, 0, .45);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:focus-visible {
	background-color: var(--wp--preset--color--contrast);
	border-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}
:where(.is-style-banda-oscura, .is-style-banda-color) .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--on-band);
	border-color: var(--wp--preset--color--on-band);
	color: var(--wp--preset--color--band);
}
.wp-block-button.is-style-pop > .wp-block-button__link { background-color: var(--wp--preset--color--pop); color: var(--wp--preset--color--band); }
.wp-block-button.is-style-pop > .wp-block-button__link:hover { background-color: var(--wp--preset--color--on-band); color: var(--wp--preset--color--band); }

/* ---------- Carrusel de portada ---------- */
.tuco-carrusel { position: relative; overflow: hidden; }
.tuco-carrusel:not(.is-carrusel) > .tuco-diapo:not(.is-activa) { display: none; }
.tuco-carrusel.is-carrusel { display: grid; padding-bottom: calc(var(--wp--preset--spacing--50) + 3rem) !important; }
.tuco-carrusel.is-carrusel > .tuco-diapo {
	grid-area: 1 / 1;
	width: 100%;
	opacity: 0;
	transform: translateX(2rem);
	transition: opacity .8s var(--tuco-ease), transform .8s var(--tuco-ease);
}
.tuco-carrusel.is-carrusel > .tuco-diapo.is-activa { opacity: 1; transform: none; }
.tuco-diapo .wp-block-heading { margin-top: .3em; }
.tuco-diapo__foto { margin: 0; }
.tuco-diapo__foto a {
	display: grid;
	place-items: center;
	aspect-ratio: 1;
	max-height: 520px;
	margin-inline: auto;
	border-radius: 50%;
	background: radial-gradient(circle at 50% 50%, var(--tuco-foto) 0 64%, transparent 65%);
}
.tuco-diapo__foto img {
	width: 78%;
	height: 78%;
	object-fit: contain;
	transform: scale(.94) rotate(4deg);
	transition: transform 6s ease-out;
}
.tuco-diapo.is-activa .tuco-diapo__foto img { transform: scale(1.03) rotate(-3deg); }
.tuco-carrusel.is-carrusel .tuco-diapo.is-activa .wp-block-column:first-child > * { animation: tuco-sube .8s var(--tuco-ease) both; }
.tuco-carrusel.is-carrusel .tuco-diapo.is-activa .wp-block-column:first-child > :nth-child(2) { animation-delay: .08s; }
.tuco-carrusel.is-carrusel .tuco-diapo.is-activa .wp-block-column:first-child > :nth-child(3) { animation-delay: .16s; }
.tuco-carrusel.is-carrusel .tuco-diapo.is-activa .wp-block-column:first-child > :nth-child(4) { animation-delay: .24s; }
@keyframes tuco-sube { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

.tuco-carrusel__mandos {
	position: absolute;
	left: 50%;
	bottom: var(--wp--preset--spacing--40);
	transform: translateX(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .75rem;
}
.tuco-carrusel__puntos { display: flex; gap: .4rem; }
.tuco-carrusel__punto { border: 0; background: none; padding: .7rem 0; cursor: pointer; }
.tuco-carrusel__punto span { display: block; position: relative; width: 2.2rem; height: 3px; background: var(--wp--preset--color--band-line); overflow: hidden; }
.tuco-carrusel__punto span::after { content: ""; position: absolute; inset: 0; background: var(--wp--preset--color--pop); transform: scaleX(0); transform-origin: left; }
.tuco-carrusel__punto.is-activo span::after { transform: scaleX(1); }
.tuco-carrusel.is-corriendo .tuco-carrusel__punto.is-activo span::after { animation: tuco-progreso 6s linear both; }
@keyframes tuco-progreso { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.tuco-carrusel__flecha {
	display: grid; place-items: center;
	width: 2.5rem; height: 2.5rem;
	border-radius: 50%;
	border: 1px solid var(--wp--preset--color--band-line);
	background: transparent;
	color: var(--wp--preset--color--on-band);
	cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s;
}
.tuco-carrusel__flecha:hover, .tuco-carrusel__flecha:focus-visible { background: var(--wp--preset--color--on-band); color: var(--wp--preset--color--band); border-color: var(--wp--preset--color--on-band); }
@media (max-width: 781px) {
	.tuco-diapo > .wp-block-column:last-child { order: -1; }
	.tuco-diapo__foto a { max-height: 260px; }
	.tuco-diapo .has-huge-font-size { font-size: var(--wp--preset--font-size--xx-large) !important; }
}

/* ---------- Portada · categorías ---------- */
.tuco-cat { position: relative; }
.tuco-cat__foto { margin: 0; }
.tuco-cat__foto a {
	display: grid;
	place-items: center;
	aspect-ratio: 4 / 5;
	border-radius: var(--wp--custom--radius--card);
	background: var(--tuco-foto);
	overflow: hidden;
}
.tuco-cat__foto img { width: 76%; height: 76%; object-fit: contain; transition: transform .6s var(--tuco-ease); }
.tuco-cat:hover .tuco-cat__foto img { transform: scale(1.08) rotate(-4deg); }
.tuco-cat__nombre { margin: .9rem 0 .15rem; }
.tuco-cat__nombre a { text-decoration: none; }
.tuco-cat__nombre a::before { content: ""; position: absolute; inset: 0; } /* toda la tarjeta es enlace */
.tuco-cat__nombre a::after { content: " →"; display: inline-block; transition: transform .3s var(--tuco-ease); }
.tuco-cat:hover .tuco-cat__nombre a::after { transform: translateX(.35rem); }
.tuco-cat__total { margin: 0; }

/* ---------- Taller: pasos con icono ---------- */
.tuco-pasos > .wp-block-column { border-top: 1px solid var(--wp--preset--color--band-line); padding-top: var(--wp--preset--spacing--30); }
.tuco-paso__icono { display: flex; align-items: flex-end; gap: .6rem; color: var(--wp--preset--color--pop); margin-bottom: .6rem; }
.tuco-paso__icono svg { width: 2.75rem; height: 2.75rem; transition: transform .4s var(--tuco-ease); }
.tuco-paso__icono span { font-family: var(--wp--preset--font-family--label); font-size: .75rem; letter-spacing: .12em; color: var(--wp--preset--color--on-band-muted); }
.tuco-pasos > .wp-block-column:hover .tuco-paso__icono svg { transform: translateY(-4px) rotate(-6deg); }
.tuco-pasos p { margin: 0; }
.tuco-pasos p strong { display: block; margin-bottom: .2rem; }

/* ---------- Tarjetas de producto: fondo de foto, zoom y flechas ---------- */
.wc-block-product-template .wc-block-components-product-image,
.wp-block-woocommerce-product-image { background: var(--tuco-foto); }
.wc-block-components-product-image img { transition: transform .6s var(--tuco-ease); }
.wc-block-product:hover .wc-block-components-product-image img { transform: scale(1.06); }
.wc-block-product .wp-block-post-title a { text-decoration: none; transition: color .2s; }
.wc-block-product:hover .wp-block-post-title a { color: var(--wp--preset--color--accent); }
.tuco-fotos { position: relative; }
.tuco-fotos__flecha {
	position: absolute; top: 50%; z-index: 2;
	display: grid; place-items: center;
	width: 2.25rem; height: 2.25rem;
	border: 0; border-radius: 50%;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	box-shadow: 0 4px 14px -6px rgba(0, 0, 0, .35);
	cursor: pointer;
	opacity: 0;
	transform: translateY(-50%) scale(.9);
	transition: opacity .2s, transform .2s var(--tuco-ease), background-color .2s, color .2s;
}
.tuco-fotos__flecha.is-anterior { left: .6rem; }
.tuco-fotos__flecha.is-siguiente { right: .6rem; }
.tuco-fotos:hover .tuco-fotos__flecha, .tuco-fotos__flecha:focus-visible { opacity: 1; transform: translateY(-50%) scale(1); }
.tuco-fotos__flecha:hover { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); }
.tuco-fotos__puntos { position: absolute; left: 0; right: 0; bottom: .6rem; z-index: 2; display: flex; justify-content: center; gap: 4px; opacity: 0; transition: opacity .2s; pointer-events: none; }
.tuco-fotos__puntos i { width: 6px; height: 6px; border-radius: 50%; background: var(--wp--preset--color--line-strong); }
.tuco-fotos__puntos i.is-activo { background: var(--wp--preset--color--contrast); }
.tuco-fotos:hover .tuco-fotos__puntos { opacity: 1; }
@media (hover: none) {
	.tuco-fotos__flecha { opacity: .92; transform: translateY(-50%) scale(.85); }
	.tuco-fotos__puntos { opacity: 1; }
}

/* ---------- Ficha de producto ---------- */
.tuco-ficha__galeria .wp-block-woocommerce-product-image-gallery { max-width: none !important; width: 100%; }
.tuco-ficha__galeria .woocommerce-product-gallery { width: 100% !important; float: none !important; margin: 0 !important; }
.tuco-ficha__galeria .woocommerce-product-gallery__image,
.tuco-ficha__galeria .flex-viewport { background: var(--tuco-foto); border-radius: var(--wp--custom--radius--card); }
.tuco-ficha__galeria .woocommerce-product-gallery__image img { max-height: 620px; object-fit: contain; }
.tuco-ficha__galeria .flex-control-thumbs { display: flex; gap: .6rem; margin-top: .6rem !important; }
.tuco-ficha__galeria .flex-control-thumbs li { width: 5rem !important; float: none !important; }
.tuco-ficha__galeria .flex-control-thumbs img {
	background: var(--tuco-foto);
	border-radius: var(--wp--custom--radius--card);
	border: 1px solid transparent;
	opacity: .65;
	transition: opacity .2s, border-color .2s;
}
.tuco-ficha__galeria .flex-control-thumbs img:hover,
.tuco-ficha__galeria .flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--wp--preset--color--line-strong); }
.tuco-ficha__compra > * + * { margin-block-start: var(--wp--preset--spacing--30); }
.tuco-ficha__compra .wp-block-post-title { margin-block-start: .2rem; }
@media (min-width: 782px) {
	.tuco-ficha__compra { position: sticky; top: var(--wp--preset--spacing--40); align-self: flex-start; }
}
/* Información adicional: compacta, etiqueta y valor juntos */
.tuco-ficha__detalles .woocommerce-product-attributes { max-width: 680px; }
.tuco-ficha__detalles .woocommerce-product-attributes th { width: 42%; padding-right: 1rem; vertical-align: top; }
.tuco-ficha__detalles .woocommerce-product-attributes td { text-align: left; }
.woocommerce-tabs .tabs li a { transition: color .2s; }
.woocommerce-tabs .tabs li a:hover { color: var(--wp--preset--color--accent); }

/* ---------- Diario: la foto sobre su propio fondo ---------- */
.wp-block-post-featured-image { background: var(--tuco-foto); border-radius: var(--wp--custom--radius--card); overflow: hidden; }
.wp-block-post-featured-image img { transition: transform .6s var(--tuco-ease); }
.wp-block-post:hover .wp-block-post-featured-image img { transform: scale(1.05); }
.wp-block-post .wp-block-post-title a { text-decoration: none; transition: color .2s; }
.wp-block-post:hover .wp-block-post-title a { color: var(--wp--preset--color--accent); }

/* ---------- Filtros ---------- */
.wc-block-product-filters label { transition: color .15s; }
.wc-block-product-filters label:hover { color: var(--wp--preset--color--accent); }

@media (prefers-reduced-motion: reduce) {
	.tuco-carrusel.is-carrusel > .tuco-diapo, .tuco-diapo__foto img, .tuco-cat__foto img,
	.wc-block-components-product-image img, .wp-block-post-featured-image img { transition: none !important; animation: none !important; transform: none !important; }
}

/* =============================================================
   0.4 · Cabecera fija, menú del móvil, tarjetas alineadas,
   compra rápida, ofertas y paginación
   ============================================================= */

/* ---------- Cabecera fija y compacta al bajar ---------- */
header.wp-block-template-part.tuco-cabecera-fija {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 60;
}
@media (max-width: 600px) { header.wp-block-template-part.tuco-cabecera-fija { top: 0; } }
.tuco-cabecera-fija > .wp-block-group:first-child { /* banda de aviso */
	max-height: 3rem;
	overflow: hidden;
	transition: max-height .3s var(--tuco-ease), padding .3s var(--tuco-ease);
}
.tuco-cabecera-fija.is-compacta > .wp-block-group:first-child { max-height: 0; padding-block: 0 !important; }
.tuco-cabecera-fija > .wp-block-group:last-child { transition: padding .3s var(--tuco-ease), box-shadow .3s; }
.tuco-cabecera-fija.is-compacta > .wp-block-group:last-child {
	padding-block: .35rem !important;
	box-shadow: 0 10px 24px -20px rgba(0, 0, 0, .5);
}
.tuco-cabecera-fija .wp-block-site-title, .tuco-cabecera-fija .tuco-lema, .tuco-logo svg { transition: font-size .3s, transform .3s, width .3s, height .3s; }
.tuco-cabecera-fija.is-compacta .tuco-lema { display: none; }
.tuco-cabecera-fija.is-compacta .tuco-logo svg { width: 30px; height: 30px; }

/* ---------- Móvil y tablet: hamburguesa y nombre; sin la pelota ---------- */
@media (max-width: 1079px) {
	.tuco-logo { display: none; }
}

/* ---------- Menú del móvil ---------- */
.wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--contrast) !important;
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40) !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 2.5rem !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 0 !important; width: 100%; align-items: stretch !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
	width: 100%;
	border-bottom: 1px solid var(--wp--preset--color--line);
	padding-block: .9rem;
	align-items: flex-start !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--display);
	font-size: var(--wp--preset--font-size--x-large);
	line-height: 1.1;
	padding: 0 !important;
	background: none;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	display: flex !important; flex-direction: row !important; flex-wrap: wrap; gap: .4rem !important;
	padding: .8rem 0 0 !important;
	border: 0 !important; box-shadow: none !important; background: none !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { width: auto; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--body);
	font-size: .875rem !important;
	padding: .45rem .9rem !important;
	border: 1px solid var(--wp--preset--color--line-strong);
	border-radius: 999px;
	background: none;
	transition: background-color .2s, color .2s, border-color .2s;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:active {
	background: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon { display: none; }
.wp-block-navigation__responsive-container.is-menu-open .tuco-solo-movil > .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--label) !important; font-size: .8rem !important; letter-spacing: .14em; text-transform: uppercase;
}
.wp-block-navigation__responsive-container-close { top: var(--wp--preset--spacing--40) !important; right: var(--wp--preset--spacing--40) !important; }
.wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }

/* ---------- Carrusel más bajo ---------- */
.tuco-carrusel { padding-top: var(--wp--preset--spacing--40) !important; }
.tuco-carrusel .has-huge-font-size { font-size: clamp(2.2rem, 3.6vw, 3.4rem) !important; }
.tuco-diapo__foto a { max-height: 360px; }
.tuco-carrusel .wp-block-heading + p { margin-top: .6rem; }

/* ---------- Tarjetas: todo alineado aunque el nombre ocupe más líneas ---------- */
.wc-block-product-template > li.wc-block-product {
	display: grid;
	grid-template-rows: subgrid;
	grid-row: span 5;
	row-gap: .5rem;
	align-content: start;
}
.wc-block-product > .wc-block-components-product-image { grid-row: 1; margin-bottom: .4rem !important; }
.wc-block-product > .wp-block-post-title { grid-row: 2; margin: 0 !important; align-self: start; }
.wc-block-product > .tuco-caracter { grid-row: 3; align-self: start; margin: 0 !important; }
.wc-block-product > .wp-block-woocommerce-product-price { grid-row: 4; margin: 0 !important; align-self: end; }
.wc-block-product > .tuco-rapida { grid-row: 5; align-self: start; }
.wc-block-product-template { row-gap: var(--wp--preset--spacing--60) !important; }

/* ---------- Compra rápida ---------- */
.tuco-rapida { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.tuco-rapida__boton {
	display: inline-flex; align-items: center; gap: .4rem;
	padding: .45rem .9rem;
	border: 1px solid var(--wp--preset--color--contrast);
	border-radius: 999px;
	font-size: .8125rem; font-weight: 600; text-decoration: none;
	color: var(--wp--preset--color--contrast);
	transition: background-color .2s, color .2s, transform .2s var(--tuco-ease);
}
.tuco-rapida__boton:hover, .tuco-rapida__boton:focus-visible { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); transform: translateY(-2px); }
.tuco-rapida__boton.loading { opacity: .6; pointer-events: none; }
.tuco-rapida__boton.added { background: var(--wp--preset--color--band-2); border-color: var(--wp--preset--color--band-2); color: var(--wp--preset--color--on-band); }
.tuco-rapida__boton.added span::after { content: " ✓"; }
.tuco-rapida .added_to_cart { font-size: .8125rem; color: var(--wp--preset--color--accent); }

/* ---------- Ofertas: porcentaje y precio tachado en gris ---------- */
.wc-block-components-product-sale-badge, .woocommerce span.onsale {
	background: var(--wp--preset--color--accent) !important;
	color: var(--wp--preset--color--on-accent) !important;
	font-family: var(--wp--preset--font-family--body) !important;
	font-size: .75rem !important;
	font-weight: 700;
	letter-spacing: 0 !important;
	font-variant-numeric: tabular-nums;
	text-transform: none !important;
	border-radius: 999px !important;
	padding: .3rem .65rem !important;
	min-height: 0 !important; min-width: 0 !important; line-height: 1.2 !important;
}
.woocommerce span.onsale { top: .75rem !important; left: .75rem !important; right: auto !important; z-index: 3; }
del, .wc-block-components-product-price__regular, .price del {
	color: var(--wp--preset--color--muted) !important;
	font-weight: 400 !important;
	opacity: .8;
	text-decoration-thickness: 1px;
}
ins, .wc-block-components-product-price__value.is-discounted, .price ins {
	text-decoration: none !important;
	color: var(--wp--preset--color--accent);
	font-weight: 600;
}

/* ---------- Paginación ---------- */
.wp-block-query-pagination { gap: .5rem; align-items: center; margin-top: var(--wp--preset--spacing--60) !important; }
.wp-block-query-pagination-numbers { display: flex; gap: .35rem; }
.wp-block-query-pagination .page-numbers,
.wp-block-query-pagination-previous,
.wp-block-query-pagination-next {
	display: inline-grid; place-items: center;
	min-width: 2.6rem; height: 2.6rem; padding: 0 .4rem;
	border-radius: 999px;
	border: 1px solid var(--wp--preset--color--line-strong);
	font-family: var(--wp--preset--font-family--label);
	font-size: .875rem;
	text-decoration: none;
	transition: background-color .2s, color .2s, border-color .2s, transform .2s var(--tuco-ease);
}
.wp-block-query-pagination a.page-numbers:hover,
.wp-block-query-pagination-previous:hover,
.wp-block-query-pagination-next:hover { background: var(--wp--preset--color--contrast); border-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); transform: translateY(-2px); }
/* Página actual: una pelota */
.wp-block-query-pagination .page-numbers.current {
	position: relative;
	border-color: transparent;
	background: var(--wp--preset--color--pop);
	color: var(--wp--preset--color--band);
	font-weight: 600;
	overflow: hidden;
}
.wp-block-query-pagination .page-numbers.current::before,
.wp-block-query-pagination .page-numbers.current::after {
	content: ""; position: absolute; top: -10%; bottom: -10%; width: 70%;
	border: 1.5px solid rgba(255, 255, 255, .85); border-radius: 50%;
}
.wp-block-query-pagination .page-numbers.current::before { left: -48%; }
.wp-block-query-pagination .page-numbers.current::after { right: -48%; }
/* Flechas en lugar de «Página siguiente» */
.wp-block-query-pagination-previous, .wp-block-query-pagination-next { font-size: 0 !important; width: 2.6rem; }
.wp-block-query-pagination-previous::before, .wp-block-query-pagination-next::before {
	content: ""; width: .55rem; height: .55rem;
	border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
}
.wp-block-query-pagination-previous::before { transform: translateX(2px) rotate(135deg); }
.wp-block-query-pagination-next::before { transform: translateX(-2px) rotate(-45deg); }
.wp-block-query-pagination-previous-arrow, .wp-block-query-pagination-next-arrow { display: none; }
/* En móvil se cargan solos al deslizar */
.tuco-infinito .wp-block-query-pagination { display: none !important; }
.tuco-cargando { display: flex; justify-content: center; align-items: center; gap: .6rem; padding: var(--wp--preset--spacing--50) 0; font-size: .875rem; color: var(--wp--preset--color--muted); }
.tuco-cargando__pelota { width: 1.4rem; height: 1.4rem; border-radius: 50%; background: var(--wp--preset--color--pop); box-shadow: inset -3px -3px 0 rgba(0,0,0,.08); }
.tuco-cargando.is-activo .tuco-cargando__pelota { animation: tuco-bote .6s ease-in-out infinite alternate; }
@keyframes tuco-bote { from { transform: translateY(0); } to { transform: translateY(-12px); } }

@media (prefers-reduced-motion: reduce) {
	.tuco-cargando.is-activo .tuco-cargando__pelota { animation: none; }
}
