/*
Theme Name: Imprenta Total
Theme URI: https://imprentatotal.es
Description: Tema hijo de Twenty Twenty-Five para Imprenta Total. Diseño "Tinta y papel" basado en el logo: fondo de tinta, papel cálido y los colores CMYK de imprenta.
Author: Imprenta Total
Template: twentytwentyfive
Version: 2.0.0
Requires at least: 6.7
Requires PHP: 8.0
Text Domain: imprenta-total
*/

/* =========================================================
   Variables
   ========================================================= */
:root {
	--it-ink: #12120D;
	--it-ink-2: #1C1C16;
	--it-ink-3: #282820;
	--it-paper: #F5F3EC;
	--it-paper-2: #ECE9DF;
	--it-card: #FFFDF7;
	--it-line: #DAD6C8;
	--it-line-ink: rgba(245, 243, 236, 0.12);
	--it-muted: #5C5A50;
	--it-muted-ink: #A9A799;
	--it-lima: #A0C818;
	--it-lima-dark: #5E7A0A;
	--it-cyan: #0098E0;
	--it-magenta: #E00078;
	--it-yellow: #F8E800;
	--it-cmyk: linear-gradient(90deg, var(--it-cyan) 0 25%, var(--it-magenta) 25% 50%, var(--it-yellow) 50% 75%, var(--it-ink-3) 75% 100%);
	--it-radius: 10px;
	--it-header-h: 5.5rem;
	--it-reg-mark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40' fill='none' stroke='%23A0C818' stroke-width='1.5'%3E%3Ccircle cx='20' cy='20' r='9'/%3E%3Cpath d='M20 2v36M2 20h36'/%3E%3C/svg%3E");
}

/* Acentos CMYK: --accent rellena, --accent-text es legible sobre papel. */
.it-accent--lima { --accent: var(--it-lima); --accent-text: var(--it-lima-dark); }
.it-accent--cyan { --accent: var(--it-cyan); --accent-text: #0072A8; }
.it-accent--magenta { --accent: var(--it-magenta); --accent-text: #B80062; }
.it-accent--yellow { --accent: var(--it-yellow); --accent-text: #6B6400; }
.it-color--lima { color: var(--it-lima); }
.it-color--cyan { color: var(--it-cyan); }
.it-color--magenta { color: var(--it-magenta); }
.it-color--yellow { color: var(--it-yellow); }

/* =========================================================
   Base
   ========================================================= */
html { scroll-behavior: smooth; }
/* Barra de desplazamiento con los colores de la marca: tinta sobre papel */
html { scrollbar-color: var(--it-ink-3) var(--it-paper); }
@supports not (scrollbar-color: auto) {
	::-webkit-scrollbar { width: 12px; height: 12px; }
	::-webkit-scrollbar-track { background: var(--it-paper); }
	::-webkit-scrollbar-thumb { background: var(--it-ink-3); border: 3px solid var(--it-paper); border-radius: 6px; }
	::-webkit-scrollbar-thumb:hover { background: var(--it-lima-dark); }
}
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
[id] { scroll-margin-top: calc(var(--it-header-h) + 1.5rem); }
h1, h2, h3, .wp-block-heading { font-stretch: 112%; text-wrap: balance; }
h1 { font-stretch: 125%; font-weight: 900; }
p { text-wrap: pretty; }
::selection { background: var(--it-lima); color: var(--it-ink); }
:focus-visible { outline: 3px solid var(--it-lima); outline-offset: 2px; }
.has-ink-background-color :where(h1, h2, h3, h4) { color: var(--it-paper); }

/* Botones */
.wp-block-button__link { transition: transform 0.2s, box-shadow 0.2s, background-color 0.2s; }
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--it-magenta); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: rgba(18, 18, 13, 0.06); }
.has-ink-background-color .wp-block-button.is-style-outline .wp-block-button__link:hover { color: var(--it-paper); background: rgba(245, 243, 236, 0.08); }
.wp-block-button.is-style-ink .wp-block-button__link { background: var(--it-ink); color: var(--it-lima); }
.wp-block-button.is-style-ink .wp-block-button__link:hover { background: var(--it-ink-3); color: var(--it-lima); box-shadow: 4px 4px 0 var(--it-cyan); }
.wp-block-button.is-small .wp-block-button__link { padding: 0.7rem 1.1rem; font-size: 0.75rem; }

/* Titulillo con mini barra CMYK */
.it-kicker {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0 0 0.9rem;
	font-family: var(--wp--preset--font-family--display);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--it-lima-dark);
}
.it-kicker::before { content: ""; width: 1.75rem; height: 0.375rem; background: var(--it-cmyk); flex: none; }
.it-kicker.has-text-align-center { display: flex; justify-content: center; }
.it-kicker--ink, .has-ink-background-color .it-kicker { color: var(--it-lima); }
.it-link-arrow { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.04em; white-space: nowrap; }
.it-link-arrow::after { content: " →"; }

/* Separador: barra CMYK corta */
.wp-block-separator.it-industrial-line { height: 0.375rem; width: 5rem; max-width: 5rem !important; border: 0; background: var(--it-cmyk); opacity: 1; margin-inline: auto !important; }

/* Trama de puntos como la "O" del logo */
.it-halftone { position: relative; overflow: hidden; isolation: isolate; }
.it-halftone::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image: radial-gradient(rgba(160, 200, 24, 0.22) 1.3px, transparent 1.7px);
	background-size: 14px 14px;
	-webkit-mask-image: radial-gradient(ellipse 60% 70% at 100% 0%, #000 0%, transparent 70%);
	mask-image: radial-gradient(ellipse 60% 70% at 100% 0%, #000 0%, transparent 70%);
}

/* =========================================================
   Cabecera
   ========================================================= */
/* WordPress envuelve la cabecera en <header class="wp-block-template-part"> de su misma altura:
   el sticky va en ese envoltorio para que tenga recorrido. */
.wp-site-blocks > .wp-block-template-part:has(> .it-header) { position: sticky; top: 0; z-index: 50; }
body.admin-bar .wp-site-blocks > .wp-block-template-part:has(> .it-header) { top: var(--wp-admin--admin-bar--height, 0); }
.it-header {
	position: relative;
	isolation: isolate;
	color: var(--it-paper);
	border-bottom: 1px solid var(--it-line-ink);
	padding-block: 0.85rem;
}
/* El fondo desenfocado va en una capa aparte: si el backdrop-filter estuviera en la cabecera,
   el menú móvil (position: fixed) quedaría recortado dentro de ella. */
.it-header::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(18, 18, 13, 0.94);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}
.it-header::before { content: ""; position: absolute; inset: 0 0 auto; height: 4px; background: var(--it-cmyk); }
.it-header__bar { gap: 1.5rem; }
.it-header__logo img { height: 3.6rem; width: auto; object-fit: contain; }
.it-header a { color: var(--it-paper); }
.it-nav .wp-block-navigation-item__content { padding-block: 0.5rem; }
.it-nav .wp-block-navigation-item__content:hover,
.it-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--it-lima); }
.it-nav .wp-block-navigation__submenu-container {
	background: var(--it-ink-2) !important;
	border: 1px solid var(--it-line-ink) !important;
	border-radius: var(--it-radius);
	padding: 0.5rem !important;
	min-width: 16rem !important;
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.35);
}
.it-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.6rem 0.75rem !important; border-radius: 6px; }
.it-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: rgba(245, 243, 236, 0.06); }
.it-dot > .wp-block-navigation-item__content::before { content: ""; display: inline-block; width: 0.55rem; height: 0.55rem; border-radius: 50%; margin-right: 0.6rem; background: var(--dot); }
.it-dot--lima { --dot: var(--it-lima); }
.it-dot--cyan { --dot: var(--it-cyan); }
.it-dot--magenta { --dot: var(--it-magenta); }
.it-dot--yellow { --dot: var(--it-yellow); }
.it-header__actions { flex-shrink: 0; }
.it-phone { margin: 0; font-size: 1.3rem; line-height: 1; white-space: nowrap; }
.it-header .it-phone a { color: var(--it-lima); }
.it-header .it-phone a:hover { color: var(--it-paper); }
.it-search .wp-block-search__button { background: transparent; color: var(--it-paper); border: 1px solid var(--it-line-ink); border-radius: 50%; width: 2.5rem; height: 2.5rem; padding: 0; margin: 0; display: grid; place-items: center; }
.it-search .wp-block-search__button:hover { border-color: var(--it-lima); color: var(--it-lima); }
.it-search .wp-block-search__input { background: var(--it-ink-2); color: var(--it-paper); border: 1px solid var(--it-line-ink); border-radius: 9999px; padding-inline: 1rem; }
.it-search.wp-block-search__searchfield-hidden .wp-block-search__input { border: 0; padding: 0; }
.it-search .wp-block-search__inside-wrapper { border: 0; background: transparent; padding: 0; }
/* Menú móvil en forma de popup: fondo oscurecido y tarjeta que cae desde arriba */
@media (max-width: 960px) { .it-nav .wp-block-navigation__responsive-container-open { width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 1px solid var(--it-line-ink); display: grid; place-items: center; color: var(--it-paper); } }
.it-nav .wp-block-navigation__responsive-container-open:hover { border-color: var(--it-lima); color: var(--it-lima); }
.it-nav .wp-block-navigation__responsive-container.is-menu-open {
	background: rgba(10, 10, 7, 0.6) !important;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	padding: 0.75rem !important;
	animation: it-menu-backdrop 0.3s ease both;
}
body.admin-bar .it-nav .wp-block-navigation__responsive-container.is-menu-open { top: var(--wp-admin--admin-bar--height, 0); }
.it-nav .is-menu-open .wp-block-navigation__responsive-close {
	position: relative;
	max-width: 32rem;
	margin: 0 auto;
	max-height: calc(100dvh - 1.5rem);
	overflow-y: auto;
	background: var(--it-ink-2);
	border: 1px solid var(--it-line-ink);
	border-radius: 18px;
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.55);
	animation: it-menu-panel 0.45s var(--it-ease, ease) both;
}
.it-nav .is-menu-open .wp-block-navigation__responsive-close::before { content: ""; position: sticky; top: 0; display: block; height: 5px; background: var(--it-cmyk); z-index: 2; }
.it-nav .is-menu-open .wp-block-navigation__responsive-dialog { padding: 1.25rem 1.5rem 1.5rem; margin: 0 !important; }
.it-nav .is-menu-open .wp-block-navigation__responsive-container-close { top: 1rem; right: 1rem; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: rgba(245, 243, 236, 0.08); color: var(--it-paper); display: grid; place-items: center; }
.it-nav .is-menu-open .wp-block-navigation__responsive-container-close:hover { background: var(--it-lima); color: var(--it-ink); }
.it-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 2.75rem !important; align-items: stretch !important; gap: 0 !important; }
.it-nav .is-menu-open .wp-block-navigation__container { align-items: stretch !important; gap: 0 !important; width: 100%; }
.it-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--it-line-ink); }
.it-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	display: flex; justify-content: space-between; align-items: center; width: 100%;
	padding: 1rem 0 !important; font-size: 1.35rem !important; font-stretch: 112%; font-weight: 800; letter-spacing: 0;
}
.it-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:not(.has-child) > .wp-block-navigation-item__content::after { content: "→"; color: var(--it-lima); font-size: 1.1rem; transition: transform 0.2s; }
.it-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover::after { transform: translateX(4px); }
/* Productos: chips en dos columnas con su color */
.it-nav .is-menu-open .wp-block-navigation__submenu-container {
	display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem !important;
	padding: 0 0 1rem !important; margin: 0 !important; border: 0 !important; box-shadow: none; background: transparent !important; min-width: 0 !important;
}
.it-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { width: 100%; }
.it-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: flex; align-items: center; width: 100%; padding: 0.75rem 0.8rem !important; border-radius: 10px;
	background: rgba(245, 243, 236, 0.05); border: 1px solid var(--it-line-ink);
	font-size: 0.8125rem !important; letter-spacing: 0.02em; line-height: 1.25; text-transform: none; font-weight: 600;
}
.it-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { border-color: var(--it-lima); background: rgba(160, 200, 24, 0.08); color: var(--it-paper); }
.it-nav .is-menu-open .wp-block-navigation__submenu-icon { display: none; }
/* Pie del popup (lo añade site.js): botón de presupuesto y teléfono */
.it-menu-foot { display: none; }
.is-menu-open .it-menu-foot { display: grid; gap: 0.75rem; margin-top: 1.5rem; }
.it-menu-foot a { display: flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 0.95rem 1rem; border-radius: 6px; font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.04em; }
.it-menu-foot .it-menu-foot__cta { background: var(--it-lima); color: var(--it-ink) !important; }
.it-menu-foot .it-menu-foot__phone { border: 1px solid var(--it-line-ink); color: var(--it-lima) !important; font-family: var(--wp--preset--font-family--coalition); font-size: 1.25rem; font-weight: 400; letter-spacing: 0.02em; }
/* Entrada escalonada de los elementos */
.it-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item,
.it-nav .is-menu-open .it-menu-foot { animation: it-menu-item 0.5s var(--it-ease, ease) both; }
.it-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(1) { animation-delay: 0.08s; }
.it-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(2) { animation-delay: 0.13s; }
.it-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(3) { animation-delay: 0.18s; }
.it-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(4) { animation-delay: 0.23s; }
.it-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(5) { animation-delay: 0.28s; }
.it-nav .is-menu-open .it-menu-foot { animation-delay: 0.33s; }
@keyframes it-menu-backdrop { from { opacity: 0; } }
@keyframes it-menu-panel { from { opacity: 0; transform: translateY(-16px) scale(0.97); } }
@keyframes it-menu-item { from { opacity: 0; transform: translateY(10px); } }
@media (max-width: 1240px) { .it-phone { display: none; } }
@media (max-width: 781px) {
	:root { --it-header-h: 4.5rem; }
	.it-header__logo img { height: 2.9rem; }
	.it-header__bar > .it-nav { order: 3; }
	.it-header__actions { margin-left: auto; }
	.it-header__cta .wp-block-button__link { padding: 0.6rem 0.8rem; font-size: 0.6875rem; }
}
@media (max-width: 380px) { .it-header__cta { display: none; } }

/* =========================================================
   Portada
   ========================================================= */
.it-hero { position: relative; overflow: hidden; isolation: isolate; padding-block: clamp(3.5rem, 7vw, 6.5rem); }
.it-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-image: radial-gradient(rgba(160, 200, 24, 0.25) 1.4px, transparent 1.8px);
	background-size: 15px 15px;
	-webkit-mask-image: radial-gradient(ellipse 55% 75% at 85% 30%, #000 0%, transparent 70%);
	mask-image: radial-gradient(ellipse 55% 75% at 85% 30%, #000 0%, transparent 70%);
}
.it-hero__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: clamp(2.5rem, 5vw, 5rem); align-items: center; }
.it-hero__text > * { margin-block: 0; }
.it-hero h1 { margin-block: 0.25rem 1.5rem; color: var(--it-paper); }
.it-hl { color: var(--it-lima); }
.it-lead { font-size: clamp(1.0625rem, 1.4vw, 1.25rem); color: var(--it-muted-ink); max-width: 34rem; margin-bottom: 2rem !important; }
.it-hero .wp-block-buttons { margin-bottom: 2.75rem !important; }
.it-hero .is-style-outline .wp-block-button__link { color: var(--it-paper); }
.it-trust { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; padding-top: 1.75rem; border-top: 1px solid var(--it-line-ink); }
.it-trust__item > * { margin: 0; }
.it-trust__value { font-family: var(--wp--preset--font-family--display); font-weight: 800; font-stretch: 112%; font-size: 1.6rem; line-height: 1.1; color: var(--it-paper); }
.it-trust__label { font-size: 0.8125rem; color: var(--it-muted-ink); line-height: 1.35; margin-top: 0.25rem !important; }

/* La foto se presenta como un pliego impreso, con marca de registro y tira de color */
.it-sheet { position: relative; padding: 0.875rem 0.875rem 1.5rem; background: var(--it-paper); border-radius: 4px; transform: rotate(1.25deg); box-shadow: 0 30px 60px rgba(0, 0, 0, 0.45), -10px 10px 0 rgba(224, 0, 120, 0.85); }
.it-sheet figure { margin: 0; }
.it-sheet img { display: block; width: 100%; aspect-ratio: 7 / 5; object-fit: cover; border-radius: 2px; }
.it-sheet::after { content: ""; position: absolute; left: 0.875rem; right: 0.875rem; bottom: 0.55rem; height: 0.4rem; background: var(--it-cmyk); }
.it-sheet::before { content: ""; position: absolute; width: 2.25rem; height: 2.25rem; top: -1.6rem; right: -1.6rem; background: var(--it-reg-mark) center / contain no-repeat; }

@media (max-width: 960px) {
	.it-hero__grid { grid-template-columns: 1fr; }
	.it-sheet { transform: none; max-width: 36rem; }
	.it-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* =========================================================
   Secciones
   ========================================================= */
.it-section { padding-block: clamp(4rem, 8vw, 7rem); }
.it-section-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.5rem 3rem; margin-bottom: clamp(2rem, 4vw, 3.25rem) !important; }
.it-section-head__title { max-width: 44rem; }
.it-section-head__title > * { margin-block: 0; }
.it-section-head__text { max-width: 26rem; margin: 0 !important; color: var(--it-muted); }
.has-ink-background-color .it-section-head__text { color: var(--it-muted-ink); }

/* Servicios en cuadrícula bento */
.it-bento { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
.it-bento > * { margin: 0 !important; }
.it-bento > :nth-child(-n+2) { grid-column: span 2; }
.it-svc {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--it-card);
	border: 1px solid var(--it-line);
	border-radius: var(--it-radius);
	overflow: hidden;
	transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s;
}
.it-svc::before { content: ""; position: absolute; inset: 0 0 auto; height: 6px; background: var(--accent); z-index: 2; }
.it-svc:hover { transform: translate(-3px, -3px); box-shadow: 6px 6px 0 var(--accent); border-color: var(--it-ink); }
.it-svc__media { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; }
.it-bento > :nth-child(-n+2) .it-svc__media { aspect-ratio: 16 / 9; }
.it-svc__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s; }
.it-svc:hover .it-svc__media img { transform: scale(1.04); }
.it-svc__body { padding: 1.25rem 1.4rem 1.4rem; display: flex; flex-direction: column; flex: 1; }
.it-svc__body > * { margin: 0; }
.it-svc h3 { font-size: 1.3rem; }
.it-bento > :nth-child(-n+2) h3 { font-size: 1.75rem; }
.it-svc h3 a { color: var(--it-ink); }
.it-svc h3 a::after { content: ""; position: absolute; inset: 0; z-index: 3; }
.it-svc__desc { margin-top: 0.6rem !important; color: var(--it-muted); font-size: 0.9375rem; flex: 1; }
.it-svc__more { margin-top: 1.1rem !important; font-family: var(--wp--preset--font-family--display); font-size: 0.8125rem; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; color: var(--accent-text); }
.it-svc__more::after { content: " →"; display: inline-block; transition: transform 0.25s; }
.it-svc:hover .it-svc__more::after { transform: translateX(4px); }
@media (max-width: 1024px) { .it-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); } .it-bento > :nth-child(-n+2) { grid-column: span 1; } }
@media (max-width: 640px) { .it-bento { grid-template-columns: 1fr; } }

/* Carrusel de productos */
.it-carousel { display: flex !important; flex-wrap: nowrap !important; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 0.5rem; scrollbar-width: none; }
.it-carousel::-webkit-scrollbar { display: none; }
.it-carousel > * { flex: 0 0 15rem; scroll-snap-align: start; margin: 0 !important; }
@media (max-width: 781px) { .it-carousel > * { flex-basis: 11.5rem; } }
.it-carousel-wrap { position: relative; }
.it-carousel-wrap > .it-carousel { max-width: none; }
.it-carousel-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 5; width: 3rem; height: 3rem; border-radius: 50%; background: var(--it-ink); color: var(--it-lima); border: 0; cursor: pointer; display: grid; place-items: center; font-size: 1.5rem; box-shadow: 0 8px 20px rgba(0, 0, 0, 0.25); transition: transform 0.2s; }
.it-carousel-nav:hover { transform: translateY(-50%) scale(1.08); }
.it-carousel-nav.prev { left: -1rem; }
.it-carousel-nav.next { right: -1rem; }
@media (max-width: 781px) { .it-carousel-nav { display: none; } }

.it-tile { position: relative; aspect-ratio: 4 / 5; border-radius: var(--it-radius); overflow: hidden; background: var(--it-ink); }
.it-tile figure { margin: 0; height: 100%; }
.it-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s, opacity 0.3s; }
.it-tile:hover img { transform: scale(1.06); opacity: 0.85; }
.it-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(18, 18, 13, 0.85) 0%, rgba(18, 18, 13, 0) 55%); pointer-events: none; }
.it-tile .wp-block-heading { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; margin: 0; padding: 1rem; font-size: 1.05rem; font-stretch: 100%; }
.it-tile .wp-block-heading a { color: var(--it-paper); }
/* El título va posicionado sobre la foto: su enlace se estira hacia arriba y la ficha (overflow:hidden) lo recorta,
   así toda la imagen es clicable. */
.it-tile .wp-block-heading a::after { content: ""; position: absolute; inset: -100rem 0 0 0; }
.it-tile:focus-within { outline: 3px solid var(--it-lima); outline-offset: 3px; }
.it-tile .wp-block-heading a:focus-visible { outline: none; }
.it-tile .wp-block-heading a::before { content: ""; display: block; width: 1.5rem; height: 0.25rem; margin-bottom: 0.5rem; background: var(--it-lima); transition: width 0.3s; }
.it-tile:hover .wp-block-heading a::before { width: 3rem; }

/* Cómo trabajamos */
.it-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; }
.it-steps > * { margin: 0 !important; }
.it-step { padding-top: 1.5rem; border-top: 1px solid var(--it-line-ink); }
.it-step > * { margin: 0; }
/* Número en contorno; con animaciones activas se "entinta" de izquierda a derecha al aparecer. */
.it-step__num { --c: var(--it-lima); font-family: var(--wp--preset--font-family--display); font-weight: 900; font-stretch: 125%; font-size: 4.5rem; line-height: 1; color: transparent !important; -webkit-text-stroke: 1.5px var(--c); background: linear-gradient(90deg, var(--c) 50%, transparent 50%) 100% 0 / 200% 100% no-repeat; -webkit-background-clip: text; background-clip: text; }
.it-step__num.it-color--cyan { --c: var(--it-cyan); }
.it-step__num.it-color--magenta { --c: var(--it-magenta); }
.it-step__num.it-color--yellow { --c: var(--it-yellow); }
.it-step h3 { margin-top: 1rem !important; font-size: 1.2rem; color: var(--it-paper); }
.it-step__text { margin-top: 0.6rem !important; color: var(--it-muted-ink); font-size: 0.9375rem; }
@media (max-width: 960px) { .it-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .it-steps { grid-template-columns: 1fr; } }

/* Técnicas */
.it-tech-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.it-tech-grid > * { margin: 0 !important; }
.it-tech-card { position: relative; padding: 1.6rem; background: var(--it-card); border: 1px solid var(--it-line); border-radius: var(--it-radius); transition: border-color 0.25s, transform 0.25s; }
.it-tech-card:hover { border-color: var(--accent); transform: translateY(-3px); }
.it-tech-card::before { content: ""; display: block; width: 2.75rem; height: 2.75rem; border-radius: 50%; margin-bottom: 1.1rem; background: radial-gradient(var(--accent) 38%, transparent 42%) 0 0 / 7px 7px; box-shadow: inset 0 0 0 2px var(--accent); }
.it-tech-card > * { margin: 0; }
.it-tech-card h3 { font-size: 1.15rem; }
.it-tech__text { margin-top: 0.5rem !important; color: var(--it-muted); font-size: 0.9375rem; }
@media (max-width: 960px) { .it-tech-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .it-tech-grid { grid-template-columns: 1fr; } }

/* Clientes */
.it-clients { padding-block: 3rem 3.5rem; }
.it-clients__title { text-align: center; font-family: var(--wp--preset--font-family--display); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--it-muted); margin-bottom: 1.75rem !important; }
.it-logos { gap: clamp(1.5rem, 5vw, 4rem) !important; align-items: center; }
.it-logos figure { margin: 0; }
.it-logos img { height: 3.75rem; width: auto; max-width: 150px; object-fit: contain; filter: grayscale(1) contrast(1.1); opacity: 0.55; mix-blend-mode: multiply; transition: all 0.3s; }
.it-logos img:hover { filter: none; opacity: 1; }

/* Franja final */
.it-cta-band { position: relative; overflow: hidden; isolation: isolate; padding-block: clamp(3.5rem, 7vw, 5.5rem); }
.it-cta-band::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(rgba(18, 18, 13, 0.16) 1.5px, transparent 1.9px); background-size: 14px 14px; -webkit-mask-image: linear-gradient(90deg, transparent 30%, #000 100%); mask-image: linear-gradient(90deg, transparent 30%, #000 100%); }
.it-cta-band__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2rem; }
.it-cta-band h2 { color: var(--it-ink); margin: 0; font-size: clamp(2rem, 4.5vw, 3.5rem); }
.it-cta-band__text { margin: 0.75rem 0 0 !important; max-width: 36rem; font-size: 1.0625rem; color: rgba(18, 18, 13, 0.8); }
.it-cta-band .is-style-outline .wp-block-button__link { color: var(--it-ink); }

/* =========================================================
   Pie
   ========================================================= */
.it-footer { position: relative; background: var(--it-ink); color: var(--it-muted-ink); padding-block: 4.5rem 2rem; }
.it-footer::before { content: ""; position: absolute; inset: 0 0 auto; height: 6px; background: var(--it-cmyk); }
.it-footer__title { margin: 0 0 1.1rem; font-family: var(--wp--preset--font-family--display); font-weight: 700; font-stretch: 112%; line-height: 1; text-transform: uppercase; color: var(--it-lima); font-size: 0.8125rem; letter-spacing: 0.14em; margin-bottom: 1.1rem; }
.it-footer a { color: var(--it-paper); }
.it-footer a:hover { color: var(--it-lima); }
.it-footer ul { list-style: none; padding: 0; margin: 0; font-size: 0.9375rem; }
.it-footer li + li { margin-top: 0.6rem; }
.it-footer__claim { max-width: 22rem; font-size: 0.9375rem; }
.it-footer .wp-block-site-logo img { height: 4.25rem; width: auto; }
.it-social .wp-social-link { color: var(--it-paper); }
.it-social .wp-social-link:hover { color: var(--it-lima); }
.it-footer__bottom { margin-top: 3.5rem !important; padding-top: 1.5rem; border-top: 1px solid var(--it-line-ink); font-size: 0.8125rem; gap: 1rem; }
.it-footer__bottom p { margin: 0; }
.it-footer__legal { display: flex; flex-wrap: wrap; gap: 1.5rem; }
.it-footer__legal a { color: var(--it-muted-ink); }

/* WhatsApp flotante */
.it-whatsapp { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 60; width: 3.5rem; height: 3.5rem; border-radius: 50%; background: #25D366; color: #fff; display: grid; place-items: center; box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3); transition: transform 0.3s; }
.it-whatsapp:hover { transform: scale(1.08); color: #fff; }
.it-whatsapp svg { width: 1.75rem; height: 1.75rem; fill: currentColor; }
.it-whatsapp::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: #25D366; opacity: 0.4; animation: it-ping 2.4s cubic-bezier(0, 0, 0.2, 1) infinite; z-index: -1; }
@keyframes it-ping { 75%, 100% { transform: scale(1.5); opacity: 0; } }

/* =========================================================
   Páginas interiores
   ========================================================= */
.it-page-head { margin-bottom: 2.5rem; }
.it-page-head h1 { font-stretch: 112%; font-weight: 800; line-height: 1; }
.page-template-default .wp-block-post-content > .it-page-head:first-child { padding-top: clamp(3rem, 6vw, 5rem); }
.it-section-label { display: flex; font-stretch: 100%; line-height: 1.65; align-items: center; gap: 1rem; margin-bottom: 1.75rem; font-family: var(--wp--preset--font-family--display); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--it-lima-dark); }
.it-section-label::after { content: ""; flex: 1; height: 1px; background: var(--it-line); }
.it-section-label::before { content: ""; width: 1.75rem; height: 0.375rem; background: var(--it-cmyk); }

/* Migas de pan del catálogo (bloque de SEOPress) */
.it-catalog-layout:has(> .it-breadcrumbs) { padding-top: clamp(0.875rem, 1.5vw, 1.25rem) !important; }
.it-breadcrumbs { margin-bottom: 1.25rem !important; font-family: var(--wp--preset--font-family--display); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--it-muted); }
.it-breadcrumbs .breadcrumb li::after { content: "/"; margin: 0 0.6rem; color: var(--it-line); }
.it-breadcrumbs a { color: var(--it-muted); text-decoration: none; }
.it-breadcrumbs a:hover { color: var(--it-lima-dark); }
.it-breadcrumbs [aria-current="page"] { color: var(--it-ink); }

/* Preguntas frecuentes al pie de las categorías (desplegables core/details) */
.it-faq { margin-top: clamp(3rem, 6vw, 4.5rem) !important; }
.it-faq > .wp-block-heading { margin-bottom: 1.25rem; }
.it-faq__item { margin: 0 !important; border-top: 1px solid var(--it-line); }
.it-faq__item:last-child { border-bottom: 1px solid var(--it-line); }
.it-faq__item summary { position: relative; padding: 1.1rem 2.75rem 1.1rem 0; list-style: none; cursor: pointer; font-family: var(--wp--preset--font-family--display); font-size: 1.0625rem; font-weight: 700; }
.it-faq__item summary::-webkit-details-marker { display: none; }
.it-faq__item summary::after { content: "+"; position: absolute; right: 0.25rem; top: 50%; transform: translateY(-50%); font-size: 1.6rem; font-weight: 400; line-height: 1; color: var(--it-lima-dark); transition: transform 0.2s; }
.it-faq__item[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.it-faq__item summary:hover { color: var(--it-lima-dark); }
.it-faq__item > p { margin: 0 0 1.25rem; color: var(--it-muted); }

/* Menú lateral de catálogo */
.it-catalog-layout { padding-top: clamp(2rem, 4vw, 3.5rem) !important; }
.it-catalog { position: sticky; top: calc(var(--it-header-h) + 1.5rem); background: var(--it-card); border: 1px solid var(--it-line); border-radius: var(--it-radius); overflow: hidden auto; max-height: calc(100vh - var(--it-header-h) - 3rem); }
.it-catalog > * { margin: 0 !important; }
.it-catalog__title { padding: 0.9rem 1.1rem; background: var(--it-ink); color: var(--it-lima); font-family: var(--wp--preset--font-family--display); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; }
.it-catalog__group { border-top: 1px solid var(--it-line); }
.it-catalog__group summary { padding: 0.75rem 1.1rem; font-family: var(--wp--preset--font-family--display); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; cursor: pointer; }
.it-catalog__group summary:hover { background: var(--it-paper); }
.it-catalog__group summary a { color: var(--it-ink); }
.it-catalog__group.is-current summary a, .it-catalog__group summary a:hover { color: var(--it-lima-dark); }
.it-catalog__list { list-style: none; margin: 0 0 0.6rem; padding: 0; font-size: 0.875rem; }
.it-catalog__list li { margin: 0; }
.it-catalog__list a { display: block; padding: 0.35rem 1.1rem 0.35rem 2.1rem; color: var(--it-muted); border-left: 3px solid transparent; }
.it-catalog__list a:hover { color: var(--it-ink); background: var(--it-paper); }
.it-catalog__list a[aria-current="page"] { color: var(--it-ink); font-weight: 600; border-left-color: var(--it-lima); background: var(--it-paper); }
@media (max-width: 1023px) {
	.it-catalog-layout .wp-block-columns { flex-wrap: wrap !important; }
	.it-catalog-col { flex-basis: 100% !important; }
	.it-catalog { position: static; max-height: none; display: inline-block; max-width: 100%; }
	.it-catalog__title { cursor: pointer; display: flex; align-items: center; gap: 0.6rem; }
	.it-catalog__title::before { content: "☰"; font-size: 1rem; }
	.it-catalog:not(.is-open) .it-catalog__group { display: none; }
	.it-catalog.is-open { display: block; }
}

/* Cuadrícula de secciones */
.it-tile.is-square { aspect-ratio: 1 / 1; transition: transform 0.25s, box-shadow 0.25s; }
.it-tile.is-square:hover { transform: translate(-3px, -3px); box-shadow: 6px 6px 0 var(--it-lima); }
.it-tile.is-square .wp-block-heading { font-size: 1.2rem; padding: 1.1rem; }
@media (max-width: 600px) { .it-tile-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } .it-tile.is-square .wp-block-heading { font-size: 0.95rem; padding: 0.75rem; } }

/* Tarjetas anchas (Neones) */
.it-card { position: relative; display: flex; flex-direction: column; overflow: hidden; background: var(--it-card); border: 1px solid var(--it-line); border-radius: var(--it-radius); transition: transform 0.25s, box-shadow 0.25s; }
.it-card:hover { transform: translate(-3px, -3px); box-shadow: 6px 6px 0 var(--it-magenta); }
.it-card .it-card__media { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; }
.it-card .it-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s; }
.it-card:hover .it-card__media img { transform: scale(1.04); }
.it-card__body { padding: 1.25rem 1.4rem; }
.it-card__body > * { margin: 0; }
.it-card__body .wp-block-heading { font-size: var(--wp--preset--font-size--x-large); }
.it-card__body .wp-block-heading a { color: var(--it-ink); }
.it-card__body .wp-block-heading a::after { content: ""; position: absolute; inset: 0; }

/* Ficha de producto */
.it-page-head .wp-block-buttons { margin-bottom: 1.5rem; }
.it-page-head .wp-block-button__link { background: var(--it-ink); color: var(--it-paper); padding: 0.6rem 1rem; font-size: 0.75rem; }
.it-page-head .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { color: var(--it-lima); box-shadow: 4px 4px 0 var(--it-lima); }
.it-product-grid { align-items: start; margin-bottom: 4rem; }
.it-product-main { aspect-ratio: 4 / 3; border-radius: var(--it-radius); overflow: hidden; margin: 0; background: var(--it-ink); }
.it-product-main img { width: 100%; height: 100%; object-fit: cover; }
.it-thumbs { gap: 0.75rem !important; margin-top: 0.9rem !important; }
.it-thumbs figure { margin: 0; width: 5rem; height: 5rem; border-radius: 8px; overflow: hidden; border: 2px solid var(--it-line); cursor: pointer; transition: border-color 0.2s; }
.it-thumbs figure.is-active, .it-thumbs figure:hover { border-color: var(--it-lima); }
.it-thumbs img { width: 100%; height: 100%; object-fit: cover; }
.it-product-gallery h2 { margin-top: 2rem; }
.it-quote-card { position: sticky; top: calc(var(--it-header-h) + 1.5rem); padding: clamp(1.5rem, 3vw, 2.25rem); background: var(--it-card); border: 1px solid var(--it-line); border-radius: var(--it-radius); box-shadow: 0 18px 40px rgba(28, 28, 22, 0.08); overflow: hidden; }
.it-quote-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 6px; background: var(--it-cmyk); }
.it-quote-card > * + * { margin-top: 0.5rem; }
.it-quote-card strong { color: var(--it-lima-dark); }
.it-tech { padding: 1.25rem 1.4rem; background: var(--it-card); border: 1px solid var(--it-line); border-left: 4px solid var(--it-lima); border-radius: var(--it-radius); }
.it-tech > * { margin: 0; }
.it-tech h3 { text-transform: none; font-stretch: 100%; margin-bottom: 0.3rem; }
.it-techniques { margin-bottom: 4rem; }
@media (max-width: 781px) { .it-quote-card { position: relative; top: auto; } }

/* Sobre nosotros */
.it-stats { margin-block: 2.5rem 3.5rem !important; }
.it-stat { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 1.5rem 1rem; background: var(--it-card); border: 1px solid var(--it-line); border-radius: var(--it-radius); }
.it-stat > * { margin: 0; }
.it-stat__value { font-family: var(--wp--preset--font-family--display); font-weight: 800; font-stretch: 112%; font-size: 1.35rem; color: var(--it-ink); }
.it-prose { color: var(--it-muted); font-size: 1.0625rem; line-height: 1.8; }
.it-prose strong { color: var(--it-ink); }
.it-prose h2 { margin-top: 3.5rem; font-size: clamp(1.5rem, 3vw, 2rem); color: var(--it-ink); }
.it-prose h3 { margin-top: 1.75rem; font-size: 1.2rem; font-stretch: 100%; text-transform: none; color: var(--it-ink); }
.it-callout { color: var(--it-ink); font-style: italic; font-weight: 500; border-left: 4px solid var(--it-lima); padding: 0.25rem 0 0.25rem 1.25rem; }
.it-cta { text-align: center; padding-block: 3.5rem; margin-block: 3rem 4rem !important; border-top: 1px solid var(--it-line); }

/* Pedir presupuesto */
.it-quote-layout { align-items: start; margin-block: 1rem 5rem !important; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
@media (max-width: 781px) { .it-quote-layout { grid-template-columns: 1fr !important; } .it-quote-layout > .it-quote-card { order: -1; } /* en móvil, primero el formulario */ }
.it-contact-card { padding: 2rem; border-radius: var(--it-radius); background: var(--it-ink); color: var(--it-paper); }
.it-contact-card h2 { color: var(--it-paper); }
.it-contact__item { margin-top: 1.25rem !important; }
.it-contact__item > * { margin: 0; }
.it-contact__label { font-family: var(--wp--preset--font-family--display); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--it-lima); }
.it-contact__item a { color: var(--it-paper); }
.it-contact__item a:hover { color: var(--it-lima); }
.it-quote-layout .it-quote-card { position: relative; top: auto; }

/* Legales */
.page-template-page-legal main { color: var(--it-muted); }
.page-template-page-legal main h1 { font-size: clamp(2rem, 5vw, 3rem); color: var(--it-ink); }
.page-template-page-legal main h2 { font-size: 1.35rem; margin-top: 2.5rem; color: var(--it-ink); }
.page-template-page-legal main strong { color: var(--it-ink); }
.wp-block-table table { border-collapse: collapse; width: 100%; font-size: 0.9375rem; background: var(--it-card); }
.wp-block-table td, .wp-block-table th { border: 1px solid var(--it-line); padding: 0.65rem 0.8rem; text-align: left; vertical-align: top; }
.wp-block-table tr:first-child td { font-weight: 700; color: var(--it-paper); background: var(--it-ink); }

/* =========================================================
   Páginas de texto: banda de cabecera + dos columnas al ancho del sitio
   ========================================================= */
.it-page-hero { padding-block: clamp(3.5rem, 7vw, 5.5rem); }
.it-page-hero__inner > * { margin-block: 0; }
.it-page-hero h1 { font-size: clamp(2.25rem, 5vw, 3.75rem); max-width: 20ch; margin-block: 0.25rem 1.25rem; color: var(--it-paper); }
.it-page-hero .it-lead { max-width: 44rem; margin: 0 !important; }
.it-section--tight { padding-block: clamp(3rem, 6vw, 5rem); }
.it-two-col { display: grid; grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.it-overview.it-two-col { grid-template-columns: minmax(14rem, 18rem) minmax(0, 1fr); }
.it-two-col > * { margin: 0 !important; }
.it-two-col .it-prose { max-width: 46rem; }
.it-two-col .it-prose > :first-child { margin-top: 0; }
.it-aside { position: sticky; top: calc(var(--it-header-h) + 1.5rem); display: flex; flex-direction: column; gap: 1.25rem; }
.it-aside > * { margin: 0 !important; }
.it-about .it-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; margin: 0 !important; }
.it-about .it-stats > * { margin: 0 !important; }
.it-about .it-stat { padding: 1.1rem 0.75rem; }
.it-about .it-stat__value { font-size: 1.1rem; }
.it-aside-card { position: relative; padding: 1.75rem; border-radius: var(--it-radius); overflow: hidden; }
.it-aside-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 6px; background: var(--it-cmyk); }
.it-aside-card > * { margin: 0; }
.it-aside-card__text { font-size: 1.0625rem; line-height: 1.6; color: var(--it-paper); margin-bottom: 1.25rem !important; }
.it-toc { padding: 1.4rem; background: var(--it-card); border: 1px solid var(--it-line); border-radius: var(--it-radius); }
.it-toc > * { margin: 0; }
.it-toc__title { font-family: var(--wp--preset--font-family--display); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--it-lima-dark); margin-bottom: 0.75rem !important; }
.it-toc__list { list-style: none; padding: 0; margin: 0; font-size: 0.9375rem; }
.it-toc__list li { margin: 0; }
.it-toc__list a { display: block; padding: 0.45rem 0 0.45rem 0.85rem; color: var(--it-muted); border-left: 3px solid var(--it-line); line-height: 1.35; }
.it-toc__list a:hover, .it-toc__list a.is-active { color: var(--it-ink); border-left-color: var(--it-lima); }
.it-overview .it-prose h2 { scroll-margin-top: calc(var(--it-header-h) + 1.5rem); }
.it-overview .it-prose h2:first-child { margin-top: 0; }
/* Sólo márgenes verticales: los laterales automáticos son los que centran el bloque en el contenedor ancho. */
.it-quote-layout { display: grid; gap: clamp(1.5rem, 3vw, 2.5rem); margin-block: 0 !important; }
.it-quote-layout > * { margin: 0 !important; }
@media (max-width: 960px) {
	.it-two-col, .it-overview.it-two-col { grid-template-columns: 1fr; }
	.it-aside { position: static; }
	.it-overview .it-aside { display: none; }
}

/* =========================================================
   Taller en Madrid y envíos internacionales
   ========================================================= */
.it-world__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(2.5rem, 5vw, 5rem); align-items: center; }
.it-world__grid > * { margin: 0 !important; }
.it-world__text > * { margin-block: 0; }
.it-world h2 { margin-bottom: 1.25rem !important; }
.it-world__lead { color: var(--it-muted-ink); font-size: 1.0625rem; max-width: 34rem; margin-bottom: 1.75rem !important; }
.it-features { display: grid; gap: 1rem; margin-bottom: 2rem !important; }
.it-features > * { margin: 0 !important; }
.it-feature { position: relative; padding: 1rem 1.1rem 1rem 3.6rem; border: 1px solid var(--it-line-ink); border-radius: var(--it-radius); background: rgba(245, 243, 236, 0.03); }
.it-feature > * { margin: 0; }
.it-feature::before { content: ""; position: absolute; left: 1.1rem; top: 1.1rem; width: 1.6rem; height: 1.6rem; background: var(--it-lima); -webkit-mask: var(--icon) center / contain no-repeat; mask: var(--icon) center / contain no-repeat; }
.it-feature--taller { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 20h20M4 20V9l5 3V9l5 3V9l6 4v7M9 16h1M14 16h1'/%3E%3C/svg%3E"); }
.it-feature--mundo { --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20M12 2a15 15 0 0 1 0 20M12 2a15 15 0 0 0 0 20'/%3E%3C/svg%3E"); }
.it-feature__title strong { color: var(--it-paper); font-family: var(--wp--preset--font-family--display); font-size: 1rem; text-transform: uppercase; letter-spacing: 0.02em; }
.it-feature__text { color: var(--it-muted-ink); font-size: 0.9375rem; margin-top: 0.2rem !important; }
.it-world .is-style-outline .wp-block-button__link { color: var(--it-paper); }
@media (max-width: 960px) { .it-world__grid { grid-template-columns: 1fr; } }

/* Diagrama de rutas */
.it-route-card { position: relative; border-radius: 16px; background: var(--it-ink); border: 1px solid var(--it-line-ink); overflow: hidden; box-shadow: 0 30px 60px rgba(0, 0, 0, 0.35); }
.it-route-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 5px; background: var(--it-cmyk); z-index: 1; }
.it-routes { display: block; width: 100%; height: auto; }
.it-route { fill: none; stroke-width: 2.5; stroke-linecap: round; }
.it-route--open { stroke-dasharray: 6 8; }
.it-node__ring { fill: none; stroke-width: 1.5; opacity: 0.45; transform-box: fill-box; transform-origin: center; }
.it-node__label { font-family: Archivo, sans-serif; font-stretch: 112%; font-weight: 800; font-size: 13px; letter-spacing: 0.04em; fill: #F5F3EC; }
.it-madrid__label { font-family: Archivo, sans-serif; font-stretch: 125%; font-weight: 900; font-size: 18px; letter-spacing: 0.06em; fill: #A0C818; }
.it-madrid__sub { font-family: Inter, sans-serif; font-size: 12px; fill: #A9A799; }
.it-route__traveler { display: none; }
.it-shipping .it-route-card { box-shadow: none; }

/* Destinos */
.it-destinations { padding: 1.4rem; background: var(--it-card); border: 1px solid var(--it-line); border-radius: var(--it-radius); }
.it-destinations > * { margin: 0; }
.it-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.25rem !important; }
.it-chips span { padding: 0.45rem 0.8rem; border-radius: 9999px; background: var(--it-ink); color: var(--it-paper); font-size: 0.8125rem; font-weight: 600; }
.it-chips span.is-open { background: transparent; color: var(--it-lima-dark); border: 1.5px dashed var(--it-lima-dark); }
.it-checklist { list-style: none; padding: 0; }
.it-checklist li { position: relative; padding-left: 2rem; margin-bottom: 0.9rem; }
.it-checklist li::before { content: ""; position: absolute; left: 0; top: 0.35rem; width: 1.15rem; height: 1.15rem; border-radius: 50%; background: var(--it-lima) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2312120D' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center / 0.7rem no-repeat; }

/* Galería del taller */
.it-workshop { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 1rem; }
.it-workshop > * { margin: 0 !important; }
.it-workshop__photo { aspect-ratio: 4 / 3; border-radius: var(--it-radius); overflow: hidden; }
.it-workshop__photo:first-child { grid-row: span 2; aspect-ratio: auto; }
.it-workshop__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s; }
.it-workshop__photo:hover img { transform: scale(1.04); }
@media (max-width: 781px) { .it-workshop { grid-template-columns: 1fr 1fr; } .it-workshop__photo:first-child { grid-column: span 2; grid-row: auto; aspect-ratio: 16 / 10; } }

/* Nota bajo el formulario de las fichas */
.it-quote-note { margin-top: 1.25rem !important; padding-top: 1rem; border-top: 1px solid var(--it-line); font-size: 0.8125rem; color: var(--it-muted); }
.it-quote-note::before { content: "🌍 "; }

/* Menú: "Envíos internacionales" con un globo lima */
.it-nav-world > .wp-block-navigation-item__content::before { content: "🌍"; margin-right: 0.35rem; }

/* =========================================================
   Barra de contacto inferior (móvil)
   ========================================================= */
.it-actionbar { display: none; }
@media (max-width: 781px) {
	.it-actionbar {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 70;
		display: grid; grid-template-columns: 1fr 1fr 1.25fr; gap: 0.5rem;
		padding: 0.55rem 0.6rem calc(0.55rem + env(safe-area-inset-bottom));
		background: rgba(18, 18, 13, 0.96);
		-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
		border-top: 1px solid var(--it-line-ink);
		box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.25);
		transition: transform 0.35s var(--it-ease, ease);
	}
	.it-actionbar::before { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: var(--it-cmyk); }
	.it-actionbar__item {
		display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.2rem;
		min-height: 3.25rem; border-radius: 10px; color: var(--it-paper) !important;
		background: rgba(245, 243, 236, 0.06); border: 1px solid var(--it-line-ink);
		font-family: var(--wp--preset--font-family--display); font-size: 0.6875rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em;
	}
	.it-actionbar__item svg { width: 1.35rem; height: 1.35rem; }
	.it-actionbar__item--wa { background: #25D366; border-color: #25D366; color: #fff !important; }
	.it-actionbar__item--cta { background: var(--it-lima); border-color: var(--it-lima); color: var(--it-ink) !important; }
	.it-actionbar__item:active { transform: scale(0.97); }
	body { padding-bottom: calc(4.6rem + env(safe-area-inset-bottom)); }
	.it-whatsapp { display: none; }
	html.has-modal-open .it-actionbar { transform: translateY(110%); }
	.it-header__cta { display: none !important; }
}

/* =========================================================
   Buscador en popup
   ========================================================= */
.it-search-btn { width: 2.5rem; height: 2.5rem; padding: 0; border-radius: 50%; border: 1px solid var(--it-line-ink); background: transparent; color: var(--it-paper); display: grid; place-items: center; cursor: pointer; transition: border-color 0.2s, color 0.2s; }
.it-search-btn:hover { border-color: var(--it-lima); color: var(--it-lima); }
.it-search-btn svg { width: 1.1rem; height: 1.1rem; }
html.it-search-open { overflow: hidden; }
.it-search-pop { position: fixed; inset: 0; z-index: 100; display: flex; align-items: flex-start; justify-content: center; padding: clamp(0.75rem, 10vh, 7rem) 0.75rem 0.75rem; background: rgba(10, 10, 7, 0.6); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); opacity: 0; transition: opacity 0.2s ease; }
.it-search-pop[hidden] { display: none; }
.it-search-pop.is-open { opacity: 1; }
.it-search-pop__panel { position: relative; width: 100%; max-width: 40rem; max-height: calc(100dvh - 1.5rem); display: flex; flex-direction: column; overflow: hidden; background: var(--it-ink-2); color: var(--it-paper); border: 1px solid var(--it-line-ink); border-radius: 18px; box-shadow: 0 30px 80px rgba(0, 0, 0, 0.55); transform: translateY(-12px) scale(0.98); transition: transform 0.35s var(--it-ease, ease); }
.it-search-pop.is-open .it-search-pop__panel { transform: none; }
.it-search-pop__panel::before { content: ""; position: absolute; inset: 0 0 auto; height: 5px; background: var(--it-cmyk); }
.it-search-pop__form { display: flex; align-items: center; gap: 0.75rem; padding: 1.25rem 1.25rem 1rem; border-bottom: 1px solid var(--it-line-ink); }
.it-search-pop__form svg { width: 1.4rem; height: 1.4rem; color: var(--it-lima); flex: none; }
.it-search-pop__form input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--it-paper); font: 600 1.15rem/1.4 var(--wp--preset--font-family--body); }
.it-search-pop__form input::placeholder { color: var(--it-muted-ink); font-weight: 400; }
.it-search-pop__form input::-webkit-search-cancel-button { filter: invert(1); }
.it-search-pop__close { border: 0; background: transparent; padding: 0; cursor: pointer; }
.it-search-pop__close kbd { display: inline-block; padding: 0.25rem 0.5rem; border-radius: 6px; border: 1px solid var(--it-line-ink); color: var(--it-muted-ink); font: 600 0.6875rem/1 var(--wp--preset--font-family--body); }
.it-search-pop__close:hover kbd { border-color: var(--it-lima); color: var(--it-lima); }
.it-search-pop__x { display: none; width: 2rem; height: 2rem; border-radius: 50%; background: rgba(245, 243, 236, 0.08); color: var(--it-paper); place-items: center; font-size: 0.9rem; }
@media (hover: none), (max-width: 600px) { .it-search-pop__close kbd { display: none; } .it-search-pop__x { display: grid; } }
.it-search-pop__body { overflow-y: auto; padding: 1rem 1.25rem 1.25rem; }
.it-search-pop__label { margin: 0 0 0.75rem; font-family: var(--wp--preset--font-family--display); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--it-lima); }
.it-search-pop__chips { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.it-search-pop__chips a { padding: 0.5rem 0.85rem; border-radius: 9999px; border: 1px solid var(--it-line-ink); background: rgba(245, 243, 236, 0.04); color: var(--it-paper); font-size: 0.875rem; font-weight: 500; }
.it-search-pop__chips a:hover { border-color: var(--it-lima); color: var(--it-lima); }
.it-search-pop__results { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.25rem; }
.it-search-pop__results a { display: grid; grid-template-columns: 3rem 1fr auto; align-items: center; gap: 0.9rem; padding: 0.55rem; border-radius: 10px; color: var(--it-paper); border: 1px solid transparent; }
.it-search-pop__results a[aria-selected="true"], .it-search-pop__results a:hover { background: rgba(160, 200, 24, 0.08); border-color: rgba(160, 200, 24, 0.35); }
.it-search-pop__results img, .it-search-pop__noimg { width: 3rem; height: 3rem; border-radius: 8px; object-fit: cover; background: var(--it-ink-3); }
.it-search-pop__title { font-weight: 600; font-size: 0.9375rem; }
.it-search-pop__title mark { background: none; color: var(--it-lima); }
.it-search-pop__section { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--it-muted-ink); }
.it-search-pop__empty { text-align: center; padding: 1rem 0.5rem; color: var(--it-muted-ink); }
.it-search-pop__empty p { margin: 0 0 0.5rem; }
.it-search-pop__empty strong { color: var(--it-paper); }
.it-search-pop__cta { display: inline-block; margin-top: 0.75rem; padding: 0.85rem 1.4rem; border-radius: 6px; background: var(--it-lima); color: var(--it-ink) !important; font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: 0.8125rem; text-transform: uppercase; letter-spacing: 0.04em; }
@media (max-width: 600px) { .it-search-pop__section { display: none; } .it-search-pop__results a { grid-template-columns: 3rem 1fr; } }

/* =========================================================
   Movimiento (sólo con html.it-motion: hay JS y no se pide reducir movimiento)
   ========================================================= */
:root { --it-ease: cubic-bezier(0.22, 1, 0.36, 1); }

/* Transición suave entre páginas (navegadores compatibles); la cabecera no parpadea */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: 0.3s; }
.it-header { view-transition-name: it-header; }

/* Cabecera que se compacta al bajar */
.it-header { transition: padding 0.35s var(--it-ease), background-color 0.35s, box-shadow 0.35s; }
.it-header .it-header__logo img { transition: height 0.35s var(--it-ease); }
.it-header.is-scrolled { padding-block: 0.45rem; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25); }
.it-header.is-scrolled .it-header__logo img { height: 2.9rem; }

/* La barra CMYK se "imprime" de izquierda a derecha */
.it-motion .it-header::before { transform-origin: left; animation: it-print-bar 1.1s var(--it-ease) both; }
@keyframes it-print-bar { from { transform: scaleX(0); } }

/* Titular de portada: las tintas entran desplazadas y se alinean (registro) */
.it-motion .it-hero h1 { animation: it-register 1.2s var(--it-ease) 0.15s both; }
@keyframes it-register {
	from { opacity: 0; text-shadow: -10px 0 rgba(0, 152, 224, 0.75), 10px 0 rgba(224, 0, 120, 0.75); transform: translateY(12px); }
	55% { opacity: 1; text-shadow: -3px 0 rgba(0, 152, 224, 0.5), 3px 0 rgba(224, 0, 120, 0.5); }
	to { text-shadow: 0 0 rgba(0, 152, 224, 0), 0 0 rgba(224, 0, 120, 0); transform: none; }
}
.it-motion .it-hero .it-kicker,
.it-motion .it-hero .it-lead,
.it-motion .it-hero .wp-block-buttons,
.it-motion .it-hero .it-trust { animation: it-fade-up 0.9s var(--it-ease) both; }
.it-motion .it-hero .it-kicker { animation-delay: 0.05s; }
.it-motion .it-hero .it-lead { animation-delay: 0.45s; }
.it-motion .it-hero .wp-block-buttons { animation-delay: 0.6s; }
.it-motion .it-hero .it-trust { animation-delay: 0.75s; }
@keyframes it-fade-up { from { opacity: 0; transform: translateY(18px); } }

/* El pliego entra y se asienta; al pasar el ratón se endereza */
.it-sheet { transition: transform 0.6s var(--it-ease), box-shadow 0.6s var(--it-ease); }
.it-motion .it-sheet { animation: it-sheet-in 1.3s var(--it-ease) 0.35s both; }
@keyframes it-sheet-in { from { opacity: 0; transform: translateY(40px) rotate(5deg); } }
.it-sheet:hover { transform: rotate(0deg) translateY(-4px); box-shadow: 0 36px 70px rgba(0, 0, 0, 0.5), -6px 6px 0 rgba(224, 0, 120, 0.85); }

/* Trama con leve parallax (la variable la actualiza site.js) */
.it-hero::before { transform: translate3d(0, calc(var(--it-scroll, 0) * 0.25px), 0); will-change: transform; }

/* Aparición al hacer scroll, en cascada (--i lo pone site.js) */
.it-motion .it-reveal { opacity: 0; transform: translateY(26px); transition: opacity 0.8s var(--it-ease), transform 0.8s var(--it-ease); transition-delay: calc(var(--i, 0) * 80ms); }
.it-motion .it-reveal.is-visible { opacity: 1; transform: none; }
/* Las tarjetas recuperan su transición de hover una vez visibles */
.it-motion .it-svc.it-reveal.is-visible, .it-motion .it-tech-card.it-reveal.is-visible, .it-motion .it-tile.it-reveal.is-visible, .it-motion .it-card.it-reveal.is-visible { transition: opacity 0.8s var(--it-ease) calc(var(--i, 0) * 80ms), transform 0.25s, box-shadow 0.25s, border-color 0.25s; }

.it-motion .it-svc.it-reveal.is-visible:hover, .it-motion .it-card.it-reveal.is-visible:hover, .it-motion .it-tile.is-square.it-reveal.is-visible:hover { transform: translate(-3px, -3px); }
.it-motion .it-tech-card.it-reveal.is-visible:hover { transform: translateY(-3px); }

/* Rutas: se dibujan al aparecer y un punto viaja por cada una */
.it-motion .it-route:not(.it-route--open) { stroke-dasharray: 700; stroke-dashoffset: 700; transition: stroke-dashoffset 1.8s var(--it-ease) var(--d, 0s); }
.it-motion .it-route--open { opacity: 0; transition: opacity 1s ease calc(var(--d, 0s) + 0.6s); }
.it-motion .is-visible .it-route:not(.it-route--open) { stroke-dashoffset: 0; }
.it-motion .is-visible .it-route--open { opacity: 1; }
.it-motion .it-route__traveler { display: block; offset-rotate: 0deg; animation: it-travel 4.5s ease-in-out var(--d, 0s) infinite; opacity: 0; }
@keyframes it-travel { 0% { offset-distance: 0%; opacity: 0; } 10% { opacity: 1; } 85% { opacity: 1; } 100% { offset-distance: 100%; opacity: 0; } }
.it-motion .it-node__ring { animation: it-ring 2.6s ease-out infinite; }
@keyframes it-ring { 0% { transform: scale(0.6); opacity: 0.7; } 100% { transform: scale(1.6); opacity: 0; } }

/* Los números de los pasos se entintan */
.it-motion .it-step__num { transition: background-position 1.1s var(--it-ease) calc(var(--i, 0) * 120ms + 0.3s); }
.it-motion .it-step.is-visible .it-step__num { background-position: 0 0; }

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

/* Ajustes */
.wp-block-post-content > .alignfull { margin-block: 0 !important; }
.it-trust > * { margin: 0 !important; }
.it-carousel-nav[hidden] { display: none; }
.it-social { gap: 0.75rem !important; margin-top: 1.25rem !important; }
.it-social .wp-social-link svg { width: 1.5rem; height: 1.5rem; }
.it-svc > *, .it-card > *, .it-tile > * { margin: 0 !important; }

/* Chips del menú móvil y WhatsApp oculto con el menú abierto */
.it-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { box-sizing: border-box; min-width: 0; }
.it-nav .is-menu-open .wp-block-navigation__submenu-container > .wp-block-navigation-item { min-width: 0; }
html.has-modal-open .it-whatsapp { opacity: 0; pointer-events: none; }

/* =========================================================
   Cabecera al hacer scroll: cápsula flotante + barra CMYK de progreso
   ========================================================= */
.it-header::before { clip-path: inset(0 calc((1 - var(--it-progress, 1)) * 100%) 0 0); transition: clip-path 0.2s linear; }
@media (min-width: 782px) {
	.it-header::after { transition: inset 0.55s var(--it-ease, ease), border-radius 0.55s var(--it-ease, ease), box-shadow 0.55s, background-color 0.55s; }
	.it-header.is-scrolled { border-bottom-color: transparent; box-shadow: none; padding-block: 0.95rem; }
	.it-header.is-scrolled::after {
		inset: 0.5rem max(0.5rem, calc((100% - 1320px) / 2 - 2rem));
		border-radius: 9999px;
		background-color: rgba(28, 28, 22, 0.85);
		box-shadow: 0 14px 40px rgba(0, 0, 0, 0.35), inset 0 0 0 1px rgba(245, 243, 236, 0.1);
	}
	.it-header.is-scrolled .it-header__logo img { height: 2.6rem; }
	.it-header.is-scrolled .it-phone { font-size: 1.15rem; }
}

/* Página de resultados de búsqueda */
.it-search-again { width: auto; height: auto; margin-top: 1.5rem; padding: 0.75rem 1.2rem; border-radius: 9999px; display: inline-flex; gap: 0.6rem; font: 700 0.8125rem/1 var(--wp--preset--font-family--display); text-transform: uppercase; letter-spacing: 0.04em; }
.it-results .wp-block-post-template { gap: 1.25rem; }
.it-result { position: relative; height: 100%; padding: 1.5rem; background: var(--it-card); border: 1px solid var(--it-line); border-left: 4px solid var(--it-lima); border-radius: var(--it-radius); transition: transform 0.25s, box-shadow 0.25s; }
.it-result:hover { transform: translate(-3px, -3px); box-shadow: 6px 6px 0 var(--it-lima); }
.it-result > * { margin: 0; }
.it-result .wp-block-post-title { font-size: 1.15rem; }
.it-result .wp-block-post-title a { color: var(--it-ink); }
.it-result .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; }
.it-result .wp-block-post-excerpt { margin-top: 0.6rem; color: var(--it-muted); font-size: 0.9rem; }
.it-result .wp-block-post-excerpt__more-link { font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: 0.8125rem; text-transform: uppercase; color: var(--it-lima-dark); }
.it-no-results { padding-block: 2rem; }

/* Menú de escritorio en pantallas medianas: más compacto para que quepa en una línea */
@media (max-width: 1240px) and (min-width: 782px) {
	.it-nav .wp-block-navigation__container { gap: 1.1rem !important; }
	.it-nav .wp-block-navigation-item__content { font-size: 0.75rem; letter-spacing: 0.03em; }
	.it-header__bar { gap: 1rem; }
}
@media (max-width: 1100px) and (min-width: 782px) {
	.it-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .it-nav-contact { display: none !important; } /* sigue en el popup, el botón de presupuesto y el pie */
	.it-header__logo img { height: 3rem; }
}

/* Tablet (hasta 960px): el menú completo no cabe, se usa la hamburguesa con el popup como en móvil */
@media (max-width: 960px) and (min-width: 600px) {
	.it-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
	.it-header__bar > .it-nav { order: 3; }
	.it-header__actions { margin-left: auto; }
}

/* Popup del menú: chips a todo el ancho, enlaces alineados a la izquierda con la flecha al final */
.it-nav .is-menu-open .wp-block-navigation__submenu-container { width: 100% !important; align-self: stretch; }
.it-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { justify-content: flex-start !important; gap: 0.5rem; }
.it-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:not(.has-child) > .wp-block-navigation-item__content::after { margin-left: auto; }
@media (max-width: 960px) and (min-width: 600px) { .it-header__actions { margin-left: auto !important; } }
