/*
Theme Name: Hello Istoreco Child
Theme URI: https://mazzer.ar
Description: Child theme de Hello Elementor para el sitio del Istituto Pavese per la Storia della Resistenza e dell'Età Contemporanea (Istoreco Pavia). Diseño y desarrollo: Mazzer.
Author: Mazzer
Author URI: https://mazzer.ar
Template: hello-elementor
Version: 1.0.4
Text Domain: hello-istoreco-child
*/

/* ==========================================================================
   Estilos custom del proyecto.
   Los estilos de diseño (colores, tipografía, layout) se manejan sobre todo
   desde Elementor; acá van solo overrides globales y ajustes que Elementor
   no cubre bien. Mantener minimal.
   ========================================================================== */

/* Variables de marca — placeholder, ajustar cuando se defina la paleta con Christian */
:root {
	--istoreco-dark: #1a1a1a;   /* fondo oscuro (el logo tiene texto blanco) */
	--istoreco-accent: #b3282d; /* rojo resistencia — provisional, revisar */
	--istoreco-text: #222222;
}

/* Foco visible para accesibilidad (sitio institucional/universitario) */
a:focus-visible,
button:focus-visible {
	outline: 2px solid var(--istoreco-accent);
	outline-offset: 2px;
}
/* ==========================================================================
   Header — logo blanco de Istoreco.
   Home: transparente superpuesto sobre el hero oscuro.
   Interiores: fondo oscuro sólido (el logo es blanco, necesita fondo oscuro).
   ========================================================================== */
/* Selectores con ID (#site-header) para ganar al Elementor Kit del dynamic-header */
header#site-header.site-header {
	background: var(--istoreco-dark) !important;
	padding-block: 14px !important;
}
header#site-header .custom-logo {
	max-height: 50px !important;
	height: 50px !important;
	width: auto !important;
}
header#site-header a,
header#site-header .site-navigation a,
header#site-header .site-navigation-toggle {
	color: #ffffff !important;
	fill: #ffffff !important;
}
header#site-header .site-navigation a:hover { opacity: .78; }

/* Home: header transparente superpuesto sobre el hero (el hero ya trae padding-top) */
body.home header#site-header.site-header {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	z-index: 100 !important;
	background: transparent !important;
}

/* Reset margin del body + Home sin título de página del theme (el hero ya lo dice).
   Así el hero llega a y=0 y el header transparente se superpone sobre el fondo scuro. */
body { margin: 0; }
/* El título de página del theme se oculta en TODAS las páginas: cada una trae
   su propio hero con el título (si no, sale duplicado arriba del hero). */
.page .page-header,
.page h1.entry-title,
.page .entry-title,
.page .site-main > header,
.page .site-main > .page-header { display: none !important; }

/* ==========================================================================
   Home Elementor — imágenes de cards (aree) y noticias a 16:10 uniforme
   (replica el aspect-ratio del molde; evita alturas dispares por las locandine)
   ========================================================================== */
.elementor-element-806ff26 .elementor-widget-image img,
.elementor-element-a87ca97 .elementor-widget-image img{
	aspect-ratio: 16 / 10;
	object-fit: cover;
	width: 100%;
	height: auto;
	display: block;
}

/* ==========================================================================
   Header — menú Raleway + "Diventa socio" como botón rojo (item id 17)
   ========================================================================== */
header#site-header .site-navigation ul.menu > li > a{
	font-family: 'Raleway', sans-serif;
	font-weight: 500;
	font-size: 15px;
}
header#site-header .site-navigation ul.menu > li.menu-item-17 > a{
	background: var(--istoreco-accent) !important;
	color: #fff !important;
	padding: 11px 24px !important;
	margin-left: 14px;
	font-weight: 600;
	transition: background .2s;
}
header#site-header .site-navigation ul.menu > li.menu-item-17 > a:hover{
	background: #951f24 !important;
	opacity: 1 !important;
}

/* ==========================================================================
   Footer HFE — links en gris tenue (no el rojo global), hover a blanco
   ========================================================================== */
#colophon a,
.elementor-40 a{
	color: #a3a09b !important;
	transition: color .2s;
}
#colophon a:hover,
.elementor-40 a:hover{
	color: #ffffff !important;
}

/* ==========================================================================
   MOBILE — ajustes responsive de la Home (títulos que en desktop son grandes)
   ========================================================================== */
@media (max-width: 767px){
	.elementor-page-31 h1,
	.elementor-element-fc7fac9 .elementor-heading-title{
		font-size: 33px !important;
		line-height: 1.2 !important;
	}
	.elementor-page-31 h2{
		font-size: 27px !important;
		line-height: 1.22 !important;
	}
	/* Hero: menos padding vertical en mobile */
	.elementor-element-ae32cca{
		padding-top: 108px !important;
		padding-bottom: 46px !important;
	}
	/* Stats: sin divisores verticales cuando se apilan */
	.elementor-element-bbe9623,
	.elementor-element-cd2bfa1{
		border: none !important;
	}
}

/* ==========================================================================
   Header — separadores "·" entre las voces de navegación (no antes del botón)
   ========================================================================== */
header#site-header .site-navigation ul.menu > li:not(.menu-item-16):not(.menu-item-17) > a::after{
	content: "·";
	color: rgba(255,255,255,.40);
	margin-left: 24px;
	font-weight: 400;
	display: inline-block;
}

/* ==========================================================================
   ROUND 2 (2 ago) — fidelidad al molde + spacing compacto + mobile
   ========================================================================== */

/* --- Stats: counters con el estilo del molde (Montserrat 800, rojo) --- */
.ist-counter .elementor-counter-number-wrapper{
	font-family: 'Montserrat', sans-serif !important;
	font-weight: 800 !important;
	font-size: 50px !important;
	color: #b3282d !important;
	line-height: 1 !important;
}
.elementor-element-4d80c62{ align-items: flex-start; }
/* stats más ancho: que las 3 columnas repartan todo el ancho */
.elementor-element-50b0702, .elementor-element-bbe9623, .elementor-element-cd2bfa1{ flex: 1 1 0 !important; }
.elementor-element-4d80c62 .elementor-widget-text-editor{ max-width: 260px; margin-inline: auto; }

/* --- Chi siamo: imagen ocupa todo el alto de la fila --- */
.elementor-element-41a58a3{ align-items: stretch !important; }
.elementor-element-21f9e89{ align-self: stretch; }
.elementor-element-65fb5a3{ display: flex; }
.elementor-element-65fb5a3 .elementor-widget-container{ width: 100%; }
.elementor-element-65fb5a3 img{ width: 100%; height: 100%; object-fit: cover; }

/* --- Menos padding vertical entre secciones (todas) --- */
.elementor-element-ecfbd99{ padding-top: 44px !important; padding-bottom: 44px !important; } /* stats */
.elementor-element-d7c179f{ padding-top: 16px !important; padding-bottom: 52px !important; } /* chi siamo */
.elementor-element-61a0870{ padding-top: 8px !important;  padding-bottom: 52px !important; } /* aree */
.elementor-element-928643a{ padding-top: 8px !important;  padding-bottom: 58px !important; } /* notizie */
.elementor-element-13296cb{ padding-top: 56px !important; padding-bottom: 56px !important; } /* cta */

/* --- Compactar márgenes internos (título/texto/botón) --- */
/* Chi siamo */
.elementor-element-1042f1a{ margin-bottom: 12px !important; }  /* eyebrow */
.elementor-element-2a1ddf2{ margin-bottom: 16px !important; }  /* h2 */
.elementor-element-2200a07{ margin-bottom: 14px !important; }  /* texto */
/* Aree cards */
.elementor-element-806ff26 .elementor-widget-image{ margin-bottom: 16px !important; }
.elementor-element-806ff26 .elementor-widget-icon{ margin-bottom: 10px !important; }
.elementor-element-806ff26 .elementor-widget-heading{ margin-bottom: 10px !important; }
.elementor-element-806ff26 .elementor-widget-text-editor{ margin-bottom: 14px !important; }
/* Noticias: menos margen imagen/fecha/título/texto/leggi */
.elementor-element-a87ca97 .elementor-widget-image{ margin-bottom: 14px !important; }
.elementor-element-a87ca97 .elementor-widget-heading{ margin-bottom: 8px !important; }
.elementor-element-a87ca97 .elementor-widget-text-editor{ margin-bottom: 10px !important; }
.elementor-element-9cd2a0e{ margin-bottom: 32px !important; } /* head noticias */
/* CTA: botón más cerca del texto */
.elementor-element-5ae1840{ margin-bottom: 14px !important; } /* h2 cta */
.elementor-element-921701e{ margin-bottom: 22px !important; } /* texto cta */

/* --- MOBILE --- */
@media (max-width: 767px){
	/* "Ultime notizie" a ancho completo (no 70%) */
	.elementor-element-6118c87{ width: 100% !important; }
	.elementor-element-9cd2a0e{ flex-direction: column; align-items: flex-start; gap: 16px; }
	/* menos aire entre elementos apilados */
	.elementor-page-31 .elementor-widget-image{ margin-bottom: 14px !important; }
	.elementor-page-31 .elementor-widget-heading{ margin-bottom: 8px !important; }
	.elementor-page-31 .elementor-widget-text-editor{ margin-bottom: 12px !important; }
	/* gap de filas apiladas más chico */
	.elementor-element-806ff26, .elementor-element-a87ca97{ gap: 30px !important; }
	.elementor-element-41a58a3{ gap: 20px !important; }
	.ist-counter .elementor-counter-number-wrapper{ font-size: 42px !important; }
	/* secciones: menos padding vertical en mobile */
	.elementor-element-ecfbd99, .elementor-element-61a0870, .elementor-element-928643a{ padding-top: 12px !important; padding-bottom: 36px !important; }
	.elementor-element-d7c179f{ padding-top: 8px !important; padding-bottom: 36px !important; }
}

/* --- Fix: iconos SVG en line-art (contorno, no relleno) como el molde --- */
.elementor-element-806ff26 .elementor-icon svg{
	fill: none !important;
	stroke: #b3282d !important;
	stroke-width: 1.6px;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.elementor-element-806ff26 .elementor-icon svg *{ fill: none !important; }

/* --- Fix: imagen Chi siamo ocupa TODO el alto de la fila --- */
.elementor-element-21f9e89{ align-self: stretch !important; display: flex !important; flex-direction: column; }
.elementor-element-65fb5a3{ flex: 1 1 auto !important; display: flex !important; }
.elementor-element-65fb5a3 .elementor-widget-container{ width: 100%; height: 100%; }
.elementor-element-65fb5a3 img{ width: 100% !important; height: 100% !important; object-fit: cover !important; }

/* --- Fix MOBILE: stats apilados (el flex:1 los mantenía en fila) + chi siamo img --- */
@media (max-width: 767px){
	.elementor-element-4d80c62{ flex-direction: column !important; gap: 30px !important; }
	.elementor-element-50b0702,
	.elementor-element-bbe9623,
	.elementor-element-cd2bfa1{
		flex: none !important;
		width: 100% !important;
		border: none !important;
	}
	/* Chi siamo apilado: imagen a alto natural (no el 100% del desktop) */
	.elementor-element-21f9e89{ display: block !important; }
	.elementor-element-65fb5a3 img{ height: auto !important; }
}

/* ==========================================================================
   ROUND 3 — spacing compacto y UNIFORME.
   Causa raíz: Elementor suma su gap de container (--widgets-spacing, ~20px)
   a los márgenes de cada widget. Se anula el gap y se controla solo por margin.
   ========================================================================== */

/* Anular el gap de container en las zonas de contenido apilado */
.elementor-element-806ff26 .e-con,          /* cards aree */
.elementor-element-a87ca97 .e-con,          /* cards news */
.elementor-element-f1d4abe,                 /* chi siamo texto */
.elementor-element-50b0702,
.elementor-element-bbe9623,
.elementor-element-cd2bfa1,                 /* stats columnas */
.elementor-element-70eeca2{                 /* cta */
	--widgets-spacing: 0px 0px !important;
	gap: 0 !important;
}

/* --- AREE cards: imagen → icono → título → texto → link --- */
.elementor-element-806ff26 .elementor-widget-image      { margin-bottom: 14px !important; }
.elementor-element-806ff26 .elementor-widget-icon       { margin-bottom: 8px  !important; }
.elementor-element-806ff26 .elementor-widget-heading    { margin-bottom: 8px  !important; }
.elementor-element-806ff26 .elementor-widget-text-editor{ margin-bottom: 12px !important; }
.elementor-element-806ff26 .elementor-widget-button     { margin-bottom: 0    !important; }

/* --- NEWS cards: imagen → fecha → título → texto → leggi --- */
.elementor-element-a87ca97 .elementor-widget-image      { margin-bottom: 14px !important; }
.elementor-element-a87ca97 .elementor-widget-heading    { margin-bottom: 8px  !important; }
.elementor-element-a87ca97 .elementor-widget-text-editor{ margin-bottom: 12px !important; }
.elementor-element-a87ca97 .elementor-widget-button     { margin-bottom: 0    !important; }

/* --- CHI SIAMO: eyebrow → título → párrafos → link --- */
.elementor-element-1042f1a{ margin-bottom: 10px !important; }
.elementor-element-2a1ddf2{ margin-bottom: 14px !important; }
.elementor-element-2200a07{ margin-bottom: 12px !important; }
.elementor-element-2200a07 p{ margin-bottom: 10px; }
.elementor-element-2200a07 p:last-child{ margin-bottom: 0; }

/* --- STATS: número → label → descripción (bien juntos) --- */
.ist-counter{ margin-bottom: 6px !important; }
.ist-counter .elementor-counter-number-wrapper{ margin-bottom: 0 !important; }
.elementor-element-4d80c62 .elementor-widget-heading    { margin-bottom: 6px  !important; }
.elementor-element-4d80c62 .elementor-widget-text-editor{ margin-bottom: 0    !important; }
.elementor-element-4d80c62 .elementor-counter-title     { display: none !important; }

/* --- CTA: título → texto → botón --- */
.elementor-element-5ae1840{ margin-bottom: 12px !important; }
.elementor-element-921701e{ margin-bottom: 18px !important; }

/* --- Mobile: misma escala compacta --- */
@media (max-width: 767px){
	.elementor-page-31 .elementor-widget-image      { margin-bottom: 12px !important; }
	.elementor-page-31 .elementor-widget-icon       { margin-bottom: 8px  !important; }
	.elementor-page-31 .elementor-widget-heading    { margin-bottom: 8px  !important; }
	.elementor-page-31 .elementor-widget-text-editor{ margin-bottom: 12px !important; }
	.ist-counter{ margin-bottom: 6px !important; }
}

/* Fix: el widget counter trae espacio interno propio bajo el número */
.ist-counter .elementor-counter{ margin-bottom: 0 !important; }
.ist-counter .elementor-counter-number-wrapper{ line-height: 1 !important; display: block; }
.ist-counter .elementor-widget-container{ margin-bottom: 0 !important; padding-bottom: 0 !important; }
.elementor-element-4d80c62 .ist-counter{ margin-bottom: 2px !important; }
.elementor-element-4d80c62 .ist-counter{ margin-bottom: -4px !important; }

/* Ancho: la fila de noticias está anidada en un boxed → doble gutter (1340).
   Se lleva a full para que respete el 1360 global del Kit. */
.elementor-element-a87ca97, .elementor-element-9cd2a0e{ max-width: 100% !important; width: 100% !important; }
.elementor-element-a87ca97 > .e-con-inner, .elementor-element-9cd2a0e > .e-con-inner{ max-width: 100% !important; padding-inline: 0 !important; }
.elementor-element-a87ca97, .elementor-element-9cd2a0e{
	--padding-inline-start: 0px !important;
	--padding-inline-end: 0px !important;
	--container-default-padding-inline-start: 0px !important;
	--container-default-padding-inline-end: 0px !important;
}
/* Counter: el widget separa el sufijo con espacio → pegarlo al número */
.ist-counter .elementor-counter-number-suffix{ margin-left: -0.28em !important; }

/* Header del theme (Hello) — su inner viene a 1140px y no lo toca el Kit de
   Elementor: alinearlo al ancho de contenido del sitio (1360). */
header#site-header .header-inner{
	max-width: 1360px !important;
	width: 100% !important;
	margin-inline: auto;
	padding-inline: 0 !important;
}

/* Iconos SVG del sitio en line-art (Elementor les aplica fill por defecto) */
.elementor-widget-icon .elementor-icon svg{
	fill: none !important;
	stroke: currentColor;
	stroke-width: 1.6px;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.elementor-widget-icon .elementor-icon svg *{ fill: none !important; }

/* ==========================================================================
   MOBILE — reglas para TODAS las páginas (no solo la Home)
   ========================================================================== */
@media (max-width: 767px){
	.elementor h1{ font-size: 30px !important; line-height: 1.22 !important; word-break: break-word; }
	.elementor h2{ font-size: 25px !important; line-height: 1.25 !important; }
	.elementor h3{ font-size: 19px !important; }
	/* filas de 2+ columnas apiladas con menos aire */
	.elementor .e-con.e-flex[class*="elementor-element"] > .e-con{ min-width: 0; }
	/* cards de cariche sociali: apiladas */
	.elementor-element-58 .e-con{ min-width: 0; }
}

/* ==========================================================================
   Header — centrado vertical real (logo, menú y botón sobre el mismo eje)
   ========================================================================== */
header#site-header .header-inner{
	display: flex !important;
	align-items: center !important;
}
/* ⚠️ SOLO desktop: sin el media query, este display:flex pisa el ocultamiento
   del menú que hace el theme en mobile y el menú queda desplegado sobre el hero. */
@media (min-width: 1025px){
	header#site-header .site-navigation,
	header#site-header .site-navigation ul.menu{
		display: flex !important;
		align-items: center !important;
	}
}

/* ==========================================================================
   Chi siamo — imágenes de sección uniformes (mismo encuadre en las 6)
   ========================================================================== */
.elementor-58 .elementor-widget-image img,
.elementor-143 .elementor-widget-image img,
.elementor-146 .elementor-widget-image img,
.elementor-149 .elementor-widget-image img,
.elementor-140 .elementor-widget-image img{
	aspect-ratio: 4 / 3;
	object-fit: cover;
	width: 100%;
	height: auto;
	display: block;
}

/* MOBILE: la imagen SIEMPRE arriba del título y del texto.
   Las filas alternadas (row-reverse) se fuerzan a column para no invertir
   el orden — la imagen es el primer hijo en el DOM. */
@media (max-width: 767px){
	.elementor-58 .e-con.e-flex[class*="elementor-element"],
	.elementor-143 .e-con.e-flex[class*="elementor-element"],
	.elementor-146 .e-con.e-flex[class*="elementor-element"],
	.elementor-149 .e-con.e-flex[class*="elementor-element"],
	.elementor-140 .e-con.e-flex[class*="elementor-element"]{
		flex-direction: column !important;
	}
	.elementor-58 .elementor-widget-image,
	.elementor-143 .elementor-widget-image,
	.elementor-146 .elementor-widget-image,
	.elementor-149 .elementor-widget-image,
	.elementor-140 .elementor-widget-image{ margin-top: 0 !important; margin-bottom: 14px !important; }
}

/* Fix mobile: el flex de los containers boxed vive en .e-con-inner — sin esto
   el row-reverse sobrevive y la imagen queda DEBAJO del texto. */
@media (max-width: 767px){
	.elementor-58 .e-con-inner, .elementor-58 .e-con.e-flex,
	.elementor-143 .e-con-inner, .elementor-143 .e-con.e-flex,
	.elementor-146 .e-con-inner, .elementor-146 .e-con.e-flex,
	.elementor-149 .e-con-inner, .elementor-149 .e-con.e-flex,
	.elementor-140 .e-con-inner, .elementor-140 .e-con.e-flex{
		flex-direction: column !important;
	}
}

/* ==========================================================================
   Cariche sociali — nombre y cargo juntos, y el bloque centrado en la card
   ========================================================================== */
.elementor-element-db1daa1 > .e-con-inner > .e-con,
.elementor-element-db1daa1 > .e-con{
	justify-content: center !important;   /* centrado vertical dentro del box */
	min-height: 92px;
}
.elementor-element-db1daa1 .elementor-widget-heading{ margin-bottom: 2px !important; }
.elementor-element-db1daa1 .elementor-widget-text-editor{ margin-bottom: 0 !important; }
.elementor-element-db1daa1 .elementor-widget-text-editor p{ margin: 0; }
/* el gap del container sumaba 20px extra entre nombre y cargo */
.elementor-element-db1daa1 > .e-con-inner > .e-con,
.elementor-element-db1daa1 > .e-con{ --widgets-spacing: 0px 0px !important; gap: 0 !important; }

/* ==========================================================================
   BLOG (News) — hero + grilla, mismo lenguaje visual que la Home
   ========================================================================== */
/* Contenedor del template propio (News y artículos). El ancho ÚTIL tiene que ser
   1360px para caer sobre la misma grilla que las páginas de Elementor (texto de 33
   a 1393): con max-width:1360 + padding 32 el contenido arrancaba en 65, 32px
   corrido respecto del resto del sitio. */
.ist-wrap{ max-width: 1424px; margin-inline: auto; padding-inline: 32px; }

/* Hero de News en el registro de la propuesta B: pantalla completa, foto de fondo
   con degradado y contenido abajo a la izquierda, igual que las páginas Elementor.
   Sin foto cargada cae al fondo oscuro de siempre. */
.ist-blog-hero{
	background: var(--istoreco-dark);
	padding: 72px 0;
}
.ist-blog-hero.has-img{
	position: relative; overflow: hidden;
	min-height: 100vh;
	display: flex; flex-direction: column; justify-content: center;
	padding: 107px 0 98px;
	background-size: cover; background-position: center center;
}
.ist-blog-hero.has-img::before{
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(13,13,13,.66), rgba(13,13,13,.66));
}
.ist-blog-hero.has-img .ist-wrap{
	position: relative; z-index: 1;
	/* como flex item, el margin-inline:auto del wrap lo contrae al contenido y lo
	   centra (medía 877px en vez de 1360): hay que fijarle el ancho. */
	width: 100%; align-self: stretch;
}
.ist-blog-hero.has-img .ist-eyebrow{ color: #ff8f93; }
.ist-blog-hero.has-img .ist-blog-title{ font-size: 58px; line-height: 1.08; max-width: 92%; }
.ist-blog-lead{
	font-family:'Raleway',sans-serif; font-size: 17px; line-height: 1.7;
	color: rgba(255,255,255,.82); max-width: 78ch; margin: 14px 0 0;
}
@media (max-width: 767px){
	.ist-blog-hero.has-img{ min-height: 78vh; }
	.ist-blog-hero.has-img .ist-blog-title{ font-size: 34px; max-width: 100%; }
	.ist-blog-lead{ font-size: 15.5px; }
}
.ist-eyebrow{
	display: block;
	font-family: 'Raleway', sans-serif;
	font-size: 12px; font-weight: 600; letter-spacing: 3px; text-transform: uppercase;
	color: var(--istoreco-accent); margin-bottom: 10px;
}
.ist-blog-title{
	font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 44px;
	line-height: 1.18; color: #fff; margin: 0;
}

.ist-blog-list{ background: #fff; padding: 56px 0 80px; }
.ist-blog-list .ist-grid{
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px 40px;
}
.ist-card-img{ display: block; margin-bottom: 14px; }
.ist-card-img img{
	width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; display: block;
	transition: transform .5s;
}
.ist-card:hover .ist-card-img img{ transform: scale(1.04); }
.ist-card-date{
	display: block; font-family: 'Raleway', sans-serif; font-size: 12px; font-weight: 600;
	letter-spacing: 1.5px; text-transform: uppercase; color: var(--istoreco-accent); margin-bottom: 8px;
}
.ist-card-title{
	font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 20px; line-height: 1.25;
	margin: 0 0 8px;
}
.ist-card-title a{ color: var(--istoreco-dark); text-decoration: none; }
.ist-card-title a:hover{ color: var(--istoreco-accent); }
.ist-card-excerpt{
	font-family: 'Raleway', sans-serif; font-size: 14px; line-height: 1.65; color: #6f6a63; margin: 0 0 12px;
}
.ist-card-link{
	font-family: 'Raleway', sans-serif; font-size: 14px; font-weight: 600;
	color: var(--istoreco-accent); text-decoration: none; display: inline-flex; gap: 8px; align-items: center;
}
.ist-card-link:hover span{ transform: translateX(3px); }
.ist-card-link span{ transition: transform .2s; }

.ist-pagination{ margin-top: 48px; }
.ist-pagination .page-numbers{
	font-family: 'Raleway', sans-serif; font-size: 14px; color: var(--istoreco-dark);
	padding: 8px 12px; text-decoration: none;
}
.ist-pagination .page-numbers.current{ background: var(--istoreco-accent); color: #fff; }
.ist-empty{ font-family: 'Raleway', sans-serif; color: #9a948c; }

@media (max-width: 1024px){ .ist-blog-list .ist-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 767px){
	.ist-blog-list .ist-grid{ grid-template-columns: 1fr; gap: 32px; }
	.ist-blog-title{ font-size: 30px; }
	.ist-blog-hero{ padding: 52px 0; }
	.ist-wrap{ padding-inline: 24px; }
}

/* Blog: el hero debe ir de borde a borde (Hello limita .site-main) */
.site-main.ist-blog{ max-width: none !important; width: 100% !important; padding: 0 !important; margin: 0 !important; }
.ist-blog > section{ width: 100%; }

/* ==========================================================================
   ARTÍCULO (single) — hero + portada + columna de lectura
   ========================================================================== */
.site-main.ist-single{ max-width: none !important; width: 100% !important; padding: 0 !important; margin: 0 !important; }
.ist-single-hero{ background: var(--istoreco-dark); padding: 56px 0 48px; }
.ist-back{
	display: inline-block; font-family:'Raleway',sans-serif; font-size: 13px; font-weight: 600;
	color: rgba(255,255,255,.72); text-decoration: none; margin-bottom: 20px;
}
.ist-back:hover{ color:#fff; }
.ist-single-date{
	display: block; font-family:'Raleway',sans-serif; font-size: 12px; font-weight: 600;
	letter-spacing: 1.5px; text-transform: uppercase; color: var(--istoreco-accent); margin-bottom: 10px;
}
.ist-single-title{
	font-family:'Montserrat',sans-serif; font-weight: 800; font-size: 38px; line-height: 1.2;
	color:#fff; margin: 0; max-width: 900px;
}
.ist-single-cover{ background:#fff; padding: 40px 0 0; }
.ist-single-cover img{
	/* portada a todo el ancho de la grilla (antes 900px y pegada a la izquierda) */
	width: 100%; max-width: 100%; height: auto;
	aspect-ratio: 16/9; object-fit: cover; display:block;
}

/* Imágenes dentro del texto del artículo: centradas en la columna de lectura.
   WordPress les pone .alignnone con `margin:20px 0`, que gana al margin-inline:
   por eso van los lados explícitos. */
.ist-prose img,
.ist-prose img.alignnone,
.ist-prose img.aligncenter{
	/* Ocupan el ancho disponible, pero NUNCA más que su tamaño original: estirar
	   una foto de 640px a 1360 la deja borrosa. Las que no llegan, van centradas. */
	display:block; width:100%; height:auto;
	max-width:min(100%, var(--img-natural, 100%));
	margin-left:auto !important; margin-right:auto !important;
}
.ist-prose figure{ margin-inline:auto; text-align:center; }
/* Videos del artículo: el shortcode de WP los deja en 320px fijos. */
.ist-prose video,
.ist-prose .wp-video,
.ist-prose .mejs-container{
	width:100% !important; max-width:min(100%, 960px) !important; height:auto !important;
	margin-inline:auto;
}
.ist-prose .wp-video-shortcode{ max-width:min(100%, 960px) !important; }
.ist-prose .wp-caption{ width:auto !important; max-width:100%; margin-inline:auto; }
.ist-single-body{ background:#fff; padding: 36px 0 80px; }
.ist-prose{
	/* Ancho completo de la grilla del sitio (1360px), como el resto de las páginas.
	   Nota: a este ancho la línea de texto queda larga para lectura corrida; se
	   compensa con un poco más de cuerpo e interlineado. */
	max-width: none;
	font-family:'Raleway',sans-serif; font-size: 17.5px; line-height: 1.85; color: #3a3733;
}
.ist-prose p{ margin: 0 0 18px; }
.ist-prose h2,.ist-prose h3{ font-family:'Montserrat',sans-serif; font-weight:700; color:var(--istoreco-dark); margin: 28px 0 12px; }
.ist-prose h2{ font-size: 26px; } .ist-prose h3{ font-size: 20px; }
.ist-prose a{ color: var(--istoreco-accent); }
.ist-prose img{ max-width: 100%; height: auto; margin: 20px 0; }
.ist-prose ul,.ist-prose ol{ margin: 0 0 18px 20px; }
.ist-prose li{ margin-bottom: 8px; }
/* comentarios ocultos (sitio institucional) */
.ist-single .comments-area, .ist-single #comments, .ist-single .comment-respond{ display: none !important; }

@media (max-width: 767px){
	.ist-single-title{ font-size: 27px; }
	.ist-single-hero{ padding: 40px 0 34px; }
	.ist-prose{ font-size: 16px; }
}
/* Títulos de noticia enlazados: sin subrayado, rojo al hover */
.elementor-element-a87ca97 .elementor-heading-title a{ text-decoration: none; color: inherit; }
.elementor-element-a87ca97 .elementor-heading-title a:hover{ color: var(--istoreco-accent); }

/* ==========================================================================
   Cards de igual alto con el link SIEMPRE al pie
   (blog, noticias de la Home y las 3 áreas temáticas)
   ========================================================================== */

/* --- Blog (grilla de News) --- */
.ist-blog-list .ist-grid{ align-items: stretch; }
.ist-card{ display: flex; flex-direction: column; height: 100%; }
.ist-card-link{ margin-top: auto; }

/* --- Home: noticias (a87ca97) y áreas temáticas (806ff26) --- */
.elementor-element-a87ca97 > .e-con-inner,
.elementor-element-806ff26 > .e-con-inner{
	align-items: stretch !important;
}
.elementor-element-a87ca97 > .e-con-inner > .e-con,
.elementor-element-806ff26 > .e-con-inner > .e-con{
	display: flex !important;
	flex-direction: column !important;
	align-self: stretch !important;   /* height:100% no resuelve con alto auto del padre */
}
/* el botón (Leggi l'articolo / Scopri…) se empuja al fondo de la card */
.elementor-element-a87ca97 .elementor-widget-button,
.elementor-element-806ff26 .elementor-widget-button{
	margin-top: auto !important;
}

/* ==========================================================================
   Formularios Contact Form 7 — estilo del sitio
   ========================================================================== */
.wpcf7 label{
	display: block; font-family:'Raleway',sans-serif; font-size: 14px; font-weight: 600;
	color: var(--istoreco-dark); margin-bottom: 14px;
}
.wpcf7 input[type=text],
.wpcf7 input[type=email],
.wpcf7 input[type=tel],
.wpcf7 select,
.wpcf7 textarea{
	width: 100%; margin-top: 6px; padding: 12px 14px;
	font-family:'Raleway',sans-serif; font-size: 15px; font-weight: 400; color: #2a2a2a;
	background: #fff; border: 1px solid #d8d5cf; border-radius: 0;
	transition: border-color .2s;
	box-sizing: border-box;
	/* explícito: el UA le da `normal` a select y quedaba 5px más bajo que los input */
	line-height: 1.5;
}

/* El menú desplegable trae el estilo nativo del navegador (bordo marcato e freccia
   di sistema) e stonava accanto agli altri campi: si azzera e si disegna la freccia. */
.wpcf7 select{
	appearance: none; -webkit-appearance: none; -moz-appearance: none;
	padding-right: 40px; cursor: pointer;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%235a564f' stroke-width='1.6' d='M1 1.5 6 6.5l5-5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
}
.wpcf7 select:focus{ border-color: var(--istoreco-accent); outline: none; }

/* los campos del formulario ocupan siempre el ancho disponible */
.istb-page .wpcf7 input[type=text],
.istb-page .wpcf7 input[type=email],
.istb-page .wpcf7 input[type=tel],
.istb-page .wpcf7 select,
.istb-page .wpcf7 textarea{
	width: 100%; box-sizing: border-box;
}
.wpcf7 input:focus, .wpcf7 textarea:focus{
	outline: none; border-color: var(--istoreco-accent);
}
.wpcf7 .ist-form-row{ display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.wpcf7 .ist-form-privacy{ margin: 6px 0 20px; }
.wpcf7 .ist-form-privacy .wpcf7-list-item{ margin: 0; }
.wpcf7 .ist-form-privacy label{ font-weight: 400; font-size: 13.5px; color: #6f6a63; display: flex; gap: 10px; align-items: flex-start; }
.wpcf7 .ist-form-privacy a{ color: var(--istoreco-accent); }
.wpcf7 input[type=submit]{
	background: var(--istoreco-accent); color: #fff; border: 0; border-radius: 0;
	font-family:'Raleway',sans-serif; font-size: 15px; font-weight: 600;
	padding: 15px 32px; cursor: pointer; transition: background .2s;
}
.wpcf7 input[type=submit]:hover{ background: #951f24; }
.wpcf7-not-valid-tip{ font-size: 13px; color: #b3282d; font-family:'Raleway',sans-serif; }
.wpcf7 form .wpcf7-response-output{
	font-family:'Raleway',sans-serif; font-size: 14px; border-width: 1px; margin: 18px 0 0; padding: 12px 14px;
}
@media (max-width: 767px){ .wpcf7 .ist-form-row{ grid-template-columns: 1fr; } }

/* Elenco dei fondi archivistici — lista a 3 columnas con viñeta roja */
.ist-fondi ul{ list-style: none; margin: 0; padding: 0; columns: 3; column-gap: 40px; }
.ist-fondi li{
	break-inside: avoid; padding: 7px 0 7px 18px; position: relative;
	border-bottom: 1px solid #dfe6ee;
}
.ist-fondi li::before{
	content: ""; position: absolute; left: 0; top: 16px;
	width: 6px; height: 6px; background: var(--istoreco-accent);
}
@media (max-width: 1024px){ .ist-fondi ul{ columns: 2; } }
@media (max-width: 767px){ .ist-fondi ul{ columns: 1; } }

/* ==========================================================================
   Archivio — bloque de números con el mismo diseño/animación que la Home
   ========================================================================== */
.elementor-element-d18a804, .elementor-element-8aab4e6,
.elementor-element-c2f5441, .elementor-element-d9b1166{
	--widgets-spacing: 0px 0px !important;
	gap: 0 !important;
	flex: 1 1 0 !important;
}
/* etiqueta bajo el número: mayúsculas, tracking, como en la Home */
.elementor-element-d18a804 .elementor-widget-text-editor,
.elementor-element-8aab4e6 .elementor-widget-text-editor,
.elementor-element-c2f5441 .elementor-widget-text-editor,
.elementor-element-d9b1166 .elementor-widget-text-editor{
	margin-top: 8px !important;
	margin-bottom: 0 !important;
}
.elementor-element-d18a804 .elementor-widget-text-editor p,
.elementor-element-8aab4e6 .elementor-widget-text-editor p,
.elementor-element-c2f5441 .elementor-widget-text-editor p,
.elementor-element-d9b1166 .elementor-widget-text-editor p{
	font-family: 'Raleway', sans-serif;
	font-size: 13px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase;
	color: #1a1a1a; margin: 0;
}
@media (max-width: 767px){
	.elementor-element-d18a804, .elementor-element-8aab4e6,
	.elementor-element-c2f5441, .elementor-element-d9b1166{
		flex: none !important; width: 100% !important; border: none !important;
	}
}

/* ==========================================================================
   Archivio — "Il patrimonio in numeri" (9 cifras en grilla, animadas)
   ========================================================================== */
.ist-numeri ul{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:28px 40px; }
.ist-numeri li{ display:flex; flex-direction:column; align-items:flex-start;
	/* mismo criterio que .istb-numgrid: la etiqueta no depende del <span> */
	font-family:'Raleway',sans-serif; font-size:13px; font-weight:600;
	letter-spacing:1.6px; text-transform:uppercase; color:var(--istoreco-dark); }
.ist-numeri strong{
	font-family:'Montserrat',sans-serif; font-weight:800; font-size:42px; line-height:1;
	color:var(--istoreco-accent); margin-bottom:6px;
	letter-spacing:normal; text-transform:none;
}
.ist-numeri span{ font:inherit; letter-spacing:inherit; text-transform:inherit; color:inherit; }
@media (max-width:900px){ .ist-numeri ul{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .ist-numeri ul{ grid-template-columns:1fr; gap:22px; } .ist-numeri strong{ font-size:36px; } }

/* Biblioteca — 2 cifras en línea (variante compacta de .ist-numeri) */
.ist-numeri-2 ul{ grid-template-columns:repeat(2,auto); gap:0 48px; justify-content:start; }
.ist-numeri-2 strong{ font-size:32px; }
.ist-numeri-2 li, .ist-numeri-2 span{ font-size:12px; letter-spacing:1.3px; }

/* Programma del corso — lista de encuentros */
.ist-programma ul{ list-style:none; margin:0; padding:0; }
.ist-programma li{
	padding:9px 0 9px 16px; position:relative; border-bottom:1px solid #dfe6ee;
}
.ist-programma li:last-child{ border-bottom:0; }
.ist-programma li::before{
	content:""; position:absolute; left:0; top:17px;
	width:5px; height:5px; background:var(--istoreco-accent);
}
.ist-programma strong{ color:var(--istoreco-dark); }

/* Lista con viñeta roja (Diventa socio — "Con il tuo contributo ci aiuterai a") */
.ist-check ul{ list-style:none; margin:14px 0 0; padding:0; }
.ist-check li{ position:relative; padding:8px 0 8px 24px; border-bottom:1px solid #dfe6ee; }
.ist-check li:last-child{ border-bottom:0; }
.ist-check li::before{
	content:""; position:absolute; left:0; top:16px; width:8px; height:8px;
	background:var(--istoreco-accent); border-radius:50%;
}

/* ==========================================================================
   Footer — iconos sociales (Facebook activo; Instagram y YouTube "presto")
   ========================================================================== */
.ist-social{ display:flex; gap:12px; align-items:center; }
.ist-social a, .ist-social .ist-social-soon{
	width:38px; height:38px; border:1px solid var(--border-dark,#333030); border-radius:50%;
	display:flex; align-items:center; justify-content:center;
	color:#fff; transition:background .2s, border-color .2s, opacity .2s;
}
.ist-social svg{ width:16px; height:16px; }
.ist-social a:hover{ background:var(--istoreco-accent); border-color:var(--istoreco-accent); }
/* Aún sin cuenta: se ven EXACTAMENTE igual que el activo, solo que no son
   clicables. El .38 de opacidad y el blanco puro los delataban al lado del
   #a3a09b que el footer le da al link de Facebook. */
.ist-social .ist-social-soon{ opacity:1; color:#a3a09b; cursor:default; }

/* ==========================================================================
   Footer — barra inferior: el copyright va a la izquierda.
   El contenedor de Elementor es column + align-items:center, y eso centra el
   BLOQUE entero (no el texto): el © arrancaba en 236 en vez de 33.
   ========================================================================== */
.elementor-element-f23fa33{ align-items: flex-start !important; }
/* en móvil esa columna trae 10px de padding propio: alineado el bloque a la
   izquierda, el © quedaba 10px adentro respecto del resto del footer */
@media (max-width: 767px){
	.elementor-element-f23fa33{ padding-inline: 0 !important; }
}

/* ==========================================================================
   Archivio — bloque "patrimonio": caja oscura 40% + caja celeste 60%
   (el control width de Elementor no se aplicó, se fija acá)
   ========================================================================== */
.elementor-element-5d363c5 > .e-con-inner{ gap: 0 !important; align-items: stretch; }
.elementor-element-4ee20f1{ width: 40% !important; flex: 0 0 40% !important; }
.elementor-element-069b702{ width: 60% !important; flex: 0 0 60% !important; }
/* la grilla de cifras dentro de la caja celeste */
.elementor-element-069b702 .ist-numeri ul{ gap: 24px 32px; }
.elementor-element-069b702 .ist-numeri strong{ font-size: 38px; }

@media (max-width: 900px){
	.elementor-element-4ee20f1, .elementor-element-069b702{
		width: 100% !important; flex: none !important;
	}
}

/* Iniziative — mismo bloque de 2 cajas (40% oscuro / 60% celeste) */
.elementor-element-0b71d41 > .e-con-inner{ gap: 0 !important; align-items: stretch; }
.elementor-element-50de930{ width: 40% !important; flex: 0 0 40% !important; }
.elementor-element-221dc49{ width: 60% !important; flex: 0 0 60% !important; }
@media (max-width: 900px){
	.elementor-element-50de930, .elementor-element-221dc49{ width:100% !important; flex:none !important; }
}

/* ==========================================================================
   Páginas legales — índice lateral (32%) + texto (68%)
   ========================================================================== */
/* IDs reales (el _css_classes de Elementor no rinde clase en el DOM) */
.elementor-element-a4c42f3, .elementor-element-9cd2a30{     /* aside: privacy / cookie */
	width: 32% !important; flex: 0 0 32% !important; position: sticky; top: 24px;
}
.elementor-element-70afe41, .elementor-element-3d9ff38{     /* texto legal */
	width: 68% !important; flex: 1 1 auto !important;
}
.elementor-element-70afe41 .ist-prose, .elementor-element-3d9ff38 .ist-prose{ max-width: none; }
.elementor-element-70afe41 h2[id], .elementor-element-3d9ff38 h2[id]{ scroll-margin-top: 90px; }

.ist-toc-t{
	display:block; font-family:'Raleway',sans-serif; font-size:12px; font-weight:600;
	letter-spacing:2px; text-transform:uppercase; color:var(--istoreco-accent); margin-bottom:14px;
}
.ist-toc ul{ list-style:none; margin:0; padding:0; }
.ist-toc li{ border-bottom:1px solid #dfe6ee; }
.ist-toc li:last-child{ border-bottom:0; }
.ist-toc a{
	display:block; padding:9px 0; color:#3a3733; text-decoration:none;
	font-size:14.5px; transition:color .2s;
}
.ist-toc a:hover{ color:var(--istoreco-accent); }
.ist-toc-box{
	margin-top:18px; padding:16px 18px; background:#fff; border-left:3px solid var(--istoreco-accent);
	font-size:14px; line-height:1.65; color:#3a3733;
}
.ist-toc-box a{ color:var(--istoreco-accent); }
/* que el ancla no quede tapada por el header */
.ist-legal-main h2[id]{ scroll-margin-top: 90px; }

@media (max-width: 900px){
	.elementor-element-a4c42f3, .elementor-element-9cd2a30,
	.elementor-element-70afe41, .elementor-element-3d9ff38{
		width:100% !important; flex:none !important; position:static;
	}
}

/* ==========================================================================
   MENÚ MOBILE (dropdown de Hello) — el header fuerza links blancos para el
   hero oscuro, y el dropdown viene con fondo blanco → texto invisible.
   Se le da fondo oscuro y se ordenan los ítems.
   ========================================================================== */
#site-header .site-navigation-dropdown{
	background: var(--istoreco-dark) !important;
	border-top: 1px solid rgba(255,255,255,.12);
}
#site-header .site-navigation-dropdown ul.menu{ padding: 6px 0; }
#site-header .site-navigation-dropdown li{ border-bottom: 1px solid rgba(255,255,255,.10); }
#site-header .site-navigation-dropdown li:last-child{ border-bottom: 0; }
#site-header .site-navigation-dropdown a{
	color: #fff !important;
	font-family: 'Raleway', sans-serif; font-size: 16px; font-weight: 500;
	padding: 15px 24px !important; display: block;
}
#site-header .site-navigation-dropdown a:active,
#site-header .site-navigation-dropdown a:hover{ background: rgba(255,255,255,.06); }
/* "Diventa socio" destacado también en mobile */
#site-header .site-navigation-dropdown li.menu-item-17 a{
	background: var(--istoreco-accent); margin: 8px 16px; text-align: center;
	font-weight: 600; padding: 14px 20px !important;
}
#site-header .site-navigation-dropdown li.menu-item-17{ border-bottom: 0; }
/* el separador "·" del desktop no va en el dropdown */
#site-header .site-navigation-dropdown a::after{ content: none !important; }
/* ⚠️ el <ul> del dropdown va en position:absolute → el contenedor mide 1px y
   el panel visible ES el <ul>: el fondo oscuro tiene que ir ahí, no en el padre. */
#site-header .site-navigation-dropdown ul.menu{
	background: var(--istoreco-dark) !important;
	position: absolute; left: 0; right: 0; width: 100%;
	box-shadow: 0 12px 24px rgba(0,0,0,.28);
}
#site-header .site-navigation-dropdown li,
#site-header .site-navigation-dropdown a{ background: transparent !important; }
#site-header .site-navigation-dropdown li.menu-item-17 a{ background: var(--istoreco-accent) !important; }
#site-header .site-navigation-dropdown a:hover{ background: rgba(255,255,255,.07) !important; }
/* el dropdown quedaba por debajo del contenido del hero → subir capa */
header#site-header{ z-index: 999 !important; }
#site-header .site-navigation-dropdown{ z-index: 1000; position: absolute; left: 0; right: 0; }
/* Logo del header más grande (pedido del cliente: que se vea de inmediato de quién es el sitio) */
header#site-header .custom-logo{ max-height: 66px !important; height: 66px !important; width: auto !important; }
@media (max-width: 767px){ header#site-header .custom-logo{ max-height: 52px !important; height: 52px !important; } }

/* ==========================================================================
   PROPUESTA B (Home B, page 283) — "archivio vivo"
   Misma identidad, otro registro: foto protagonista + movimiento al scroll.
   Se scopea a .elementor-283 para NO tocar la propuesta A.
   ========================================================================== */

/* --- HERO cinematográfico --- */
.elementor-283 .elementor-element-b36f907{ position:relative; overflow:hidden; }
/* ⚠️ el inner del hero va con align-items:flex-start → los widgets encogen al
   contenido (el h1 medía 872 y recortaba los span nowrap). Van a 100% a mano. */
.elementor-283 .elementor-element-b36f907 .e-con-inner > .elementor-widget{ width:100%; }
.elementor-283 .elementor-element-b36f907 h1{ max-width:79%; }
.elementor-283 .elementor-element-b36f907 h1 span{
	display:block; white-space:nowrap;                 /* cada frase en UNA línea */
	opacity:0; transform:translateY(28px);
	animation:istbUp .9s cubic-bezier(.16,1,.3,1) forwards;
}
.elementor-283 .elementor-element-b36f907 h1 span:nth-child(1){ animation-delay:.25s }
.elementor-283 .elementor-element-b36f907 h1 span:nth-child(2){ animation-delay:.45s }
.elementor-283 .elementor-element-b36f907 h1 span:nth-child(3){ animation-delay:.65s }
@keyframes istbUp{ to{ opacity:1; transform:none } }
/* ⚠️ el nowrap es un recurso de desktop: en mobile las frases NO entran y se
   cortaban fuera de pantalla (69px de overflow). Abajo de 768 vuelven a wrapear. */
@media (max-width:1024px){
	.elementor-283 .elementor-element-b36f907 h1{ max-width:100%; }
	.elementor-283 .elementor-element-b36f907 h1 span{ white-space:normal; }
}
/* zoom lentísimo sobre la foto del hero (Ken Burns) */
.elementor-283 .elementor-element-b36f907::before{
	content:""; position:absolute; inset:0; z-index:0;
	background:inherit; background-size:cover; background-position:center;
	animation:istbKB 26s ease-out forwards;
}
@keyframes istbKB{ from{ transform:scale(1) } to{ transform:scale(1.13) } }
/* indicador "Scorri" */
/* ⚠️ era un ::after decorativo — un pseudo-elemento NO se puede clickear.
   Ahora lo inyecta el JS como <a> real que baja a la sección siguiente. */
.istb-scorri{
	position:absolute; left:50%; bottom:26px; transform:translateX(-50%);
	z-index:3; color:#fff !important; opacity:.55; font-family:'Raleway',sans-serif;
	font-size:11px; letter-spacing:2.5px; padding-bottom:42px;
	text-decoration:none !important;   /* el kit de Elementor subraya TODOS los <a> */
	background:linear-gradient(#fff,#fff) no-repeat center bottom / 1px 34px;
	animation:istbSc 1.9s ease-in-out infinite;
	cursor:pointer; padding-inline:18px; padding-top:10px;
}
.istb-scorri:hover, .istb-scorri:focus-visible{ opacity:1; animation:none; }
@keyframes istbSc{ 0%,100%{ opacity:.35 } 50%{ opacity:.85 } }

/* --- CIFRAS sobre banda oscura --- */
.elementor-283 .istb-c .elementor-counter-number-wrapper{
	font-family:'Montserrat',sans-serif !important; font-weight:800 !important;
	font-size:52px !important; color:#fff !important; line-height:1 !important;
}
.elementor-283 .elementor-element-fab9a73 > .e-con-inner > .e-con{ flex:1 1 0 !important; }
.elementor-283 .istb-c{ margin-bottom:6px !important; }
/* ⚠️ el 52px fijo desbordaba 67px en 390px de ancho: las cifras son lo más largo
   de la página. Abajo de 768 bajan de cuerpo y las tres columnas se apilan. */
@media (max-width:767px){
	.elementor-283 .istb-c .elementor-counter-number-wrapper{ font-size:38px !important; }
	.elementor-283 .elementor-element-fab9a73 > .e-con-inner{ flex-wrap:wrap; }
	.elementor-283 .elementor-element-fab9a73 > .e-con-inner > .e-con{ flex:0 0 100% !important; }
	/* los divisores separan COLUMNAS: apiladas quedan como una raya suelta al costado */
	.elementor-283 .elementor-element-23e7e00,
	.elementor-283 .elementor-element-d528f73{ border-left:0 !important; }
}

/* --- LÍNEA DE TIEMPO --- */
.istb-tl ul{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:34px; position:relative; }
.istb-tl ul::before{ content:""; position:absolute; left:0; right:0; top:9px; height:1px; background:var(--border,#e4e0d8); }
.istb-tl li{ position:relative; padding-top:38px; }
.istb-tl li::before{
	content:""; position:absolute; left:0; top:3px; width:13px; height:13px; border-radius:50%;
	background:#fff; border:3px solid var(--istoreco-accent);
}
.istb-tl b{ display:block; font-family:'Montserrat',sans-serif; font-weight:800; font-size:26px; color:var(--istoreco-accent); margin-bottom:8px; }
.istb-tl span{ display:block; font-size:14.5px; line-height:1.65; color:#6f6a63; }
/* ⚠️ Apilada, la línea horizontal desaparece y los círculos quedan sueltos, sin
   nada que los una: abajo de 1025 la línea de tiempo pasa a ser VERTICAL. */
@media (max-width:1024px){
	.istb-tl ul{ grid-template-columns:1fr; gap:0 }
	.istb-tl ul::before{ display:none }
	.istb-tl li{ padding:0 0 28px 32px; }
	.istb-tl li::before{ left:0; top:4px; }
	.istb-tl li::after{ content:""; position:absolute; left:6px; top:22px; bottom:0; width:1px; background:var(--border,#e4e0d8); }
	.istb-tl li:last-child{ padding-bottom:0 }
	.istb-tl li:last-child::after{ display:none }
	.istb-tl b{ margin-bottom:6px }
}

/* --- BLOQUE claro a dos columnas (rompe la seguidilla de oscuros) --- */
/* ⚠️ la fila es e-con-full → NO tiene .e-con-inner: el gap y el padding hay que
   matarlos en el elemento mismo. Con 50%+50%+gap se iba 10px del viewport. */
.elementor-283 .elementor-element-64a606f{ gap:0 !important; padding:0 !important; align-items:stretch !important; flex-wrap:wrap !important; }
.elementor-283 .elementor-element-2992e7b,
.elementor-283 .elementor-element-081d3ea{ width:50% !important; max-width:50% !important; flex:0 0 50% !important; min-width:0 !important; }
/* la columna de la foto trae el padding 10px por defecto del container → dejaba
   un marco blanco de 10px alrededor de la imagen a sangre. */
.elementor-283 .elementor-element-2992e7b{ min-height:520px; padding:0 !important; }
/* ⚠️ el widget de imagen encoge al ancho natural del archivo (800px) y queda
   centrado, dejando franjas blancas a los costados. Va estirado a la columna. */
.elementor-283 .elementor-element-2992e7b .elementor-widget-image,
.elementor-283 .elementor-element-2992e7b .elementor-widget-container{ height:100%; width:100%; align-self:stretch; }
.elementor-283 .elementor-element-2992e7b img{ width:100%; height:100%; object-fit:cover; }
@media (max-width:900px){
	.elementor-283 .elementor-element-2992e7b, .elementor-283 .elementor-element-081d3ea{ width:100% !important; max-width:100% !important; flex:none !important; }
	.elementor-283 .elementor-element-2992e7b{ min-height:280px; }
	/* el 72px de desktop es demasiado en 390: se alinea con los 24px del resto */
	.elementor-283 .elementor-element-081d3ea{ padding:44px 24px !important; }
}

/* --- NOTIZIE portada de revista --- */
.istb-news{ display:grid; grid-template-columns:1.35fr 1fr; gap:34px; }
.istb-news .feat{ position:relative; min-height:460px; overflow:hidden; display:flex; align-items:flex-end; text-decoration:none; }
.istb-news .feat img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .7s; }
.istb-news .feat:hover img{ transform:scale(1.05); }
.istb-news .feat::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 34%,rgba(13,13,13,.9) 100%); }
.istb-news .feat .in{ position:relative; z-index:2; padding:34px; color:#fff; display:block; }
.istb-news .dt{ display:block; font-style:normal; font-size:12px; font-weight:600; letter-spacing:1.6px; text-transform:uppercase; color:#ff6b70; margin-bottom:9px; }
.istb-news .feat strong{ display:block; font-family:'Montserrat',sans-serif; font-weight:800; font-size:27px; line-height:1.2; color:#fff; margin-bottom:10px; }
.istb-news .feat .ex{ display:block; font-size:14.5px; color:rgba(255,255,255,.8); line-height:1.6; }
.istb-news .side{ display:flex; flex-direction:column; gap:22px; justify-content:space-between; }
.istb-news .sm{ display:grid; grid-template-columns:118px 1fr; gap:18px; background:#fff; padding:16px; align-items:center; text-decoration:none; }
.istb-news .sm img{ width:118px; height:96px; object-fit:cover; }
.istb-news .sm .dt{ color:var(--istoreco-accent); }
.istb-news .sm strong{ font-family:'Montserrat',sans-serif; font-weight:700; font-size:16.5px; line-height:1.28; color:var(--istoreco-dark); }
.istb-news .sm:hover strong{ color:var(--istoreco-accent); }
@media (max-width:1024px){ .istb-news{ grid-template-columns:1fr } }
@media (max-width:600px){ .istb-news .sm{ grid-template-columns:92px 1fr } .istb-news .sm img{ width:92px; height:78px } }

/* --- REVEAL al scroll (lo aplica el JS) --- */
.elementor-283 .istb-rv{ opacity:0; transform:translateY(18px); transition:opacity .45s cubic-bezier(.16,1,.3,1), transform .45s cubic-bezier(.16,1,.3,1); }
.elementor-283 .istb-rv.in{ opacity:1; transform:none; }

/* --- HEADER: fijo y compacto al hacer scroll, solo en la B --- */
.page-id-283 header#site-header{ position:fixed !important; top:0; left:0; right:0; background:transparent !important; transition:background .35s, padding .35s; }
.page-id-283 header#site-header.istb-solid{ background:rgba(20,20,20,.96) !important; padding-block:8px !important; box-shadow:0 6px 24px rgba(0,0,0,.25); }
.page-id-283 header#site-header.istb-solid .custom-logo{ max-height:48px !important; height:48px !important; }

/* --------------------------------------------------------------------------
   PROPUESTA B — Archivio B (page 288)
   ⚠️ _css_classes NO renderiza en containers → todo va por .elementor-element-<id>.
   -------------------------------------------------------------------------- */

/* hero: mismo tratamiento que la home B, con las dos frases en una línea */
.elementor-288 .elementor-element-286f1a3{ position:relative; overflow:hidden; }
/* ⚠️ con content_width:full el container NO tiene .e-con-inner — el selector
   tiene que cubrir los dos casos o los widgets encogen al contenido. */
.elementor-288 .elementor-element-286f1a3 > .elementor-widget,
.elementor-288 .elementor-element-286f1a3 > .e-con-inner > .elementor-widget{ width:100%; }
.elementor-288 .elementor-element-286f1a3 h1{ max-width:82%; }
.elementor-288 .elementor-element-286f1a3 h1 span{
	display:block; white-space:nowrap;
	opacity:0; transform:translateY(28px);
	animation:istbUp .9s cubic-bezier(.16,1,.3,1) forwards;
}
.elementor-288 .elementor-element-286f1a3 h1 span:nth-child(1){ animation-delay:.25s }
.elementor-288 .elementor-element-286f1a3 h1 span:nth-child(2){ animation-delay:.45s }
.elementor-288 .elementor-element-286f1a3 .elementor-widget-text-editor{ max-width:62%; }
@media (max-width:1024px){
	.elementor-288 .elementor-element-286f1a3 h1{ max-width:100%; }
	.elementor-288 .elementor-element-286f1a3 h1 span{ white-space:normal; }
	.elementor-288 .elementor-element-286f1a3 .elementor-widget-text-editor{ max-width:100%; }
}

/* las 9 cifras del patrimonio, sobre la banda oscura */
.istb-numgrid ul{ list-style:none; margin:26px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:34px 40px; }
/* El estilo de la ETIQUETA vive en el li, no en un <span>: al editar la cifra desde
   Elementor el editor se come los <span> y la etiqueta quedaba gris sobre el fondo
   oscuro (contraste 1,2:1). Puesto en el li funciona con span y sin span. */
.istb-numgrid li{ border-top:1px solid rgba(255,255,255,.16); padding-top:16px;
	font-family:'Raleway',sans-serif; font-size:12px; font-weight:600;
	letter-spacing:2px; text-transform:uppercase; color:#ff6b70; }
.istb-numgrid strong{ display:block; font-family:'Montserrat',sans-serif; font-weight:800; font-size:42px; line-height:1; color:#fff; margin-bottom:7px;
	letter-spacing:normal; text-transform:none; }
.istb-numgrid span{ display:block; font:inherit; letter-spacing:inherit; text-transform:inherit; color:inherit; }
@media (max-width:900px){ .istb-numgrid ul{ grid-template-columns:repeat(2,1fr) } }
@media (max-width:560px){
	/* se mantienen 2 columnas: a una sola, las 9 cifras hacían una tira interminable */
	.istb-numgrid ul{ grid-template-columns:repeat(2,1fr); gap:24px 20px }
	.istb-numgrid strong{ font-size:30px }
	.istb-numgrid li, .istb-numgrid span{ font-size:10.5px; letter-spacing:1.4px }
}

/* bloques a dos mitades (foto a sangre + texto) — mismo patrón que la home B */
.elementor-288 .elementor-element-7862bbe,
.elementor-288 .elementor-element-5ec0227{ gap:0 !important; padding:0 !important; align-items:stretch !important; flex-wrap:wrap !important; }
.elementor-288 .elementor-element-5e930b9, .elementor-288 .elementor-element-ad1daa6,
.elementor-288 .elementor-element-237cfc0, .elementor-288 .elementor-element-06dcb14{
	width:50% !important; max-width:50% !important; flex:0 0 50% !important; min-width:0 !important;
}
.elementor-288 .elementor-element-5e930b9,
.elementor-288 .elementor-element-ad1daa6{ min-height:520px; padding:0 !important; }
.elementor-288 .elementor-element-5e930b9 .elementor-widget-image,
.elementor-288 .elementor-element-ad1daa6 .elementor-widget-image,
.elementor-288 .elementor-element-5e930b9 .elementor-widget-container,
.elementor-288 .elementor-element-ad1daa6 .elementor-widget-container{ height:100%; width:100%; align-self:stretch; }
.elementor-288 .elementor-element-5e930b9 img,
.elementor-288 .elementor-element-ad1daa6 img{ width:100%; height:100%; object-fit:cover; display:block; }
@media (max-width:900px){
	.elementor-288 .elementor-element-5e930b9, .elementor-288 .elementor-element-ad1daa6,
	.elementor-288 .elementor-element-237cfc0, .elementor-288 .elementor-element-06dcb14{
		width:100% !important; max-width:100% !important; flex:none !important;
	}
	.elementor-288 .elementor-element-5e930b9, .elementor-288 .elementor-element-ad1daa6{ min-height:260px; }
	.elementor-288 .elementor-element-237cfc0, .elementor-288 .elementor-element-06dcb14{ padding:44px 24px !important; }
}

/* bloque oscuro a sangre: el texto no debe cruzar toda la pantalla */
.elementor-288 .elementor-element-b7c602d .elementor-widget-text-editor,
.elementor-288 .elementor-element-b7c602d .elementor-widget-heading{ max-width:760px; width:100%; }
.elementor-288 .elementor-element-b7c602d > .e-con-inner{ align-items:flex-start; }
.elementor-288 .elementor-element-b7c602d > .e-con-inner > .elementor-widget{ width:100%; }

/* listado de fondi a tres columnas */
.istb-fondi ul{ list-style:none; margin:26px 0 0; padding:0; columns:3; column-gap:40px; }
.istb-fondi li{ break-inside:avoid; padding:9px 0 9px 18px; position:relative; font-size:15px; line-height:1.5; color:#413d38; border-bottom:1px solid #ece8e1; }
.istb-fondi li::before{ content:""; position:absolute; left:0; top:17px; width:6px; height:6px; background:var(--istoreco-accent); }
@media (max-width:900px){ .istb-fondi ul{ columns:2 } }
@media (max-width:560px){ .istb-fondi ul{ columns:1 } }

/* reveal + header sólido también acá */
.elementor-288 .istb-rv{ opacity:0; transform:translateY(18px); transition:opacity .45s cubic-bezier(.16,1,.3,1), transform .45s cubic-bezier(.16,1,.3,1); }
.elementor-288 .istb-rv.in{ opacity:1; transform:none; }
.page-id-288 header#site-header{ position:fixed !important; top:0; left:0; right:0; background:transparent !important; transition:background .35s, padding .35s; }
.page-id-288 header#site-header.istb-solid{ background:rgba(20,20,20,.96) !important; padding-block:8px !important; box-shadow:0 6px 24px rgba(0,0,0,.25); }
.page-id-288 header#site-header.istb-solid .custom-logo{ max-height:48px !important; height:48px !important; }

/* ⚠️ los containers boxed de Archivio B salen con los widgets encogidos al
   contenido (quedan centrados y angostos): se fuerzan al ancho de la caja.
   El CTA (8e9297f) queda centrado a propósito. */
.elementor-288 .elementor-element-dd5e598 > .e-con-inner,
.elementor-288 .elementor-element-8ef61c4 > .e-con-inner,
.elementor-288 .elementor-element-9246b68 > .e-con-inner{ align-items:flex-start; }
.elementor-288 .elementor-element-dd5e598 > .e-con-inner > .elementor-widget,
.elementor-288 .elementor-element-8ef61c4 > .e-con-inner > .elementor-widget,
.elementor-288 .elementor-element-9246b68 > .e-con-inner > .elementor-widget{ width:100%; }

/* ==========================================================================
   Bloques a dos mitades — el texto se alinea a la grilla de 1360 del sitio.
   ⚠️ La columna de texto es full-bleed (llega al borde del viewport): sin esto
   el texto arranca/termina fuera de la grilla y en pantallas anchas queda más
   ancho que el resto de las secciones. El padding del lado exterior se calcula
   contra la grilla; el max() lo desactiva abajo de 1360 (ahí manda el 72px).
   ========================================================================== */
@media (min-width:901px){
	/* texto a la DERECHA (Home B: Didattica · Archivio B: cartaceo) */
	.elementor-283 .elementor-element-081d3ea,
	.elementor-288 .elementor-element-237cfc0{
		padding-right: max(72px, calc((100vw - 1360px) / 2)) !important;
	}
	/* texto a la IZQUIERDA (Archivio B: fonti orali — la fila va en row-reverse) */
	.elementor-288 .elementor-element-06dcb14{
		padding-left: max(72px, calc((100vw - 1360px) / 2)) !important;
	}
}


/* ==========================================================================
   Propuestas B — respiro lateral abajo de la grilla de 1360.
   ⚠️ Los containers boxed se construyeron con padding lateral 0 porque en
   desktop el .e-con-inner ya queda capado a 1360 y centrado. Abajo de eso el
   inner ocupa todo el ancho y el contenido quedaba pegado al borde (x=0).
   ========================================================================== */
@media (max-width:1424px){
	/* ⚠️ Archivio B usa containers BOXED (tienen .e-con-inner) y Home B usa FULL
	   (no tienen inner: el padding va en el container mismo). Hay que cubrir los dos. */
	.elementor-288 > .e-con > .e-con-inner{
		padding-left: max(24px, 4vw) !important;
		padding-right: max(24px, 4vw) !important;
	}
	/* 14px acá + los 10px propios del container = los 24px del resto del sitio */
	.elementor-283 > .e-con:not(.elementor-element-2af6b4a){
		padding-left: max(14px, 3vw) !important;
		padding-right: max(14px, 3vw) !important;
	}
}

/* ==========================================================================
   Archivio — Elenco dei fondi ad apertura a scomparsa (28 fondi + ricerca)
   Sostituisce la lista a 3 colonne (.ist-fondi / .istb-fondi).
   La riga chiusa mostra gia' nome + buste + fascicoli; aprendo si trova la
   scheda completa (descrizione, nota bibliografica, compilatore).
   <details>/<summary> nativi: nessun JS per aprire, contenuto sempre nel DOM
   (quindi indicizzabile da Google anche se la riga e' chiusa).
   ========================================================================== */
.ist-fondi-acc{ margin-top: 26px; }

/* --- campo di ricerca (solo con JS attivo: senza JS l'elenco resta tutto visibile) --- */
.ist-fondi-acc .cerca{ display:none; align-items:center; gap:16px; margin-bottom:18px; flex-wrap:wrap; }
.ist-fondi-acc.js .cerca{ display:flex; }
.ist-fondi-acc .cerca .q{
	flex:1 1 320px; min-width:0;
	font-family:'Raleway',sans-serif; font-size:15px; color:#3a3733;
	padding:13px 16px; border:1px solid #dfe6ee; border-radius:0; background:#fff;
	transition:border-color .2s, box-shadow .2s;
}
.ist-fondi-acc .cerca .q::placeholder{ color:#9b968e; }
.ist-fondi-acc .cerca .q:focus{
	outline:none; border-color:var(--istoreco-accent);
	box-shadow:0 0 0 3px rgba(179,40,45,.12);
}
.ist-fondi-acc .cerca .conta{
	flex:0 0 auto;   /* non si lascia schiacciare dall'input: "28 fondi" resta intero */
	font-family:'Raleway',sans-serif; font-size:12.5px; font-weight:600;
	letter-spacing:1.4px; text-transform:uppercase; color:#6b665e; white-space:nowrap;
}

/* --- riga del fondo --- */
.ist-fondi-acc .fondo{ border-bottom:1px solid #dfe6ee; }
.ist-fondi-acc .fondo:first-child{ border-top:1px solid #dfe6ee; }
.ist-fondi-acc .fondo[hidden]{ display:none; }

.ist-fondi-acc summary{
	list-style:none; cursor:pointer; position:relative;
	display:flex; align-items:baseline; gap:18px; flex-wrap:wrap;
	padding:15px 44px 15px 18px;
	transition:background .2s;
}
.ist-fondi-acc summary::-webkit-details-marker{ display:none; }
.ist-fondi-acc summary:hover{ background:#faf9f7; }
.ist-fondi-acc summary:focus-visible{ outline:2px solid var(--istoreco-accent); outline-offset:-2px; }

/* viñeta roja, coerente con la lista precedente */
.ist-fondi-acc summary::before{
	content:""; position:absolute; left:0; top:23px;
	width:6px; height:6px; background:var(--istoreco-accent);
}
/* segno +/- a destra */
.ist-fondi-acc summary::after{
	content:""; position:absolute; right:14px; top:50%;
	width:11px; height:11px; margin-top:-6px;
	background:
		linear-gradient(var(--istoreco-accent),var(--istoreco-accent)) center/11px 1.5px no-repeat,
		linear-gradient(var(--istoreco-accent),var(--istoreco-accent)) center/1.5px 11px no-repeat;
	transition:transform .25s;
}
/* aperto: sparisce la barra verticale e resta il segno meno (non ruotare:
   ruotando, la barra orizzontale diventa verticale e il "-" sembra una "|") */
.ist-fondi-acc .fondo[open] summary::after{ background-size:11px 1.5px, 0 0; }

.ist-fondi-acc .nome{
	font-family:'Raleway',sans-serif; font-size:15.5px; font-weight:600;
	line-height:1.45; color:var(--istoreco-dark); flex:1 1 auto;
}
.ist-fondi-acc .fondo[open] .nome{ color:var(--istoreco-accent); }
.ist-fondi-acc .cons{
	font-family:'Raleway',sans-serif; font-size:12.5px; letter-spacing:.6px;
	color:#6b665e; white-space:nowrap;
}
.ist-fondi-acc .cons b{ font-weight:700; color:#5f5a52; }
.ist-fondi-acc .cons i{ font-style:normal; opacity:.55; margin:0 3px; }

/* --- scheda aperta --- */
.ist-fondi-acc .corpo{ padding:2px 44px 26px 18px; }
.ist-fondi-acc .corpo p{
	font-family:'Raleway',sans-serif; font-size:15px; line-height:1.8;
	color:#4a463f; margin:0 0 14px;
}
.ist-fondi-acc .corpo p:last-child{ margin-bottom:0; }
.ist-fondi-acc .corpo .meta{
	font-size:13.5px; line-height:1.7; color:#7a746b;
	padding-top:12px; border-top:1px solid #ece8e1; margin-top:18px;
}
.ist-fondi-acc .corpo .meta + .meta{ padding-top:0; border-top:0; margin-top:6px; }
.ist-fondi-acc .corpo .meta span{
	font-weight:600; letter-spacing:1.2px; text-transform:uppercase;
	font-size:11.5px; color:var(--istoreco-dark); margin-right:8px;
}

.ist-fondi-acc .vuoto{
	font-family:'Raleway',sans-serif; font-size:15px; color:#6b665e;
	padding:26px 18px; margin:0;
}

@media (max-width:560px){
	.ist-fondi-acc summary{ padding:14px 38px 14px 16px; gap:4px; }
	.ist-fondi-acc summary::before{ top:21px; }
	.ist-fondi-acc .nome{ flex:1 1 100%; font-size:15px; }
	.ist-fondi-acc .corpo{ padding:2px 16px 22px 16px; }
}

/* --- variante propuesta B: piu' aria, tipografia piu' grande --- */
.istb-fondi-acc{ margin-top:32px; }
.istb-fondi-acc .fondo,
.istb-fondi-acc .fondo:first-child{ border-color:#ece8e1; }
.istb-fondi-acc .cerca .q{ border-color:#ece8e1; padding:15px 18px; font-size:15.5px; }
.istb-fondi-acc summary{ padding:19px 46px 19px 18px; }
.istb-fondi-acc summary::before{ top:27px; }
.istb-fondi-acc summary:hover{ background:#fbfaf8; }
.istb-fondi-acc .nome{ font-size:16.5px; }
.istb-fondi-acc .corpo{ padding:2px 46px 30px 18px; }
.istb-fondi-acc .corpo p{ font-size:15.5px; line-height:1.85; }

/* ==========================================================================
   Propuesta B — reglas GENÉRICAS para todas las páginas B (body.istb-page)
   Las de arriba están scopeadas a .elementor-283 / .page-id-288 porque nacieron
   cuando la B eran solo Home y Archivio. Estas valen para cualquier página B
   nueva sin tener que acordarse de sumar su ID.
   ========================================================================== */

/* Gutter de la grilla: el contenido del sitio mide 1360px centrado, o sea que el
   texto arranca a 33px del borde en un viewport de 1440. Los splits van a sangre,
   así que su columna de texto necesita ESE mismo margen del lado de afuera para
   caer sobre la misma línea que las secciones normales. */
:root, .istb-page{
	--istb-gutter: max(24px, calc((100vw - 1374px) / 2));
}

/* reveal al scroll */
.istb-page .istb-rv{
	opacity:0; transform:translateY(18px);
	transition:opacity .45s cubic-bezier(.16,1,.3,1), transform .45s cubic-bezier(.16,1,.3,1);
}
.istb-page .istb-rv.in{ opacity:1; transform:none; }

/* header transparente sobre el hero, sólido al bajar */
.istb-page header#site-header{
	position:fixed !important; top:0; left:0; right:0;
	background:transparent !important; transition:background .35s, padding .35s;
}
.istb-page header#site-header.istb-solid{
	background:rgba(20,20,20,.96) !important; padding-block:8px !important;
	box-shadow:0 6px 24px rgba(0,0,0,.25);
}
.istb-page header#site-header.istb-solid .custom-logo{ max-height:48px !important; height:48px !important; }

/* el theme imprime el título de la página: en B lo dice el hero */
.istb-page .page-header,
.istb-page h1.entry-title,
.istb-page .site-main > header{ display:none !important; }

/* Hero de página interna B.
   ⚠️ NO se scopea por clase: Elementor 4.2.1 GUARDA `_css_classes` en los containers
   pero NO la imprime en el markup (sí lo hace en los widgets — por eso `.istb-lead`
   funciona y `.istb-hero` no). Es la razón por la que el CSS original de Home B y
   Archivio B apunta a `.elementor-element-<id>`: no era una preferencia de estilo.
   Acá se resuelve por posición — el hero es siempre el primer container de la página. */
.istb-page .elementor > .e-con.e-parent:first-child{ position:relative; overflow:hidden; }
.istb-page .elementor > .e-con.e-parent:first-child h1{ max-width:92%; }
.istb-page .elementor > .e-con.e-parent:first-child h1 span{ display:block; }
.istb-page .elementor-widget.istb-lead{ max-width:78ch !important; margin-top:6px; }
@media (max-width:767px){
	.istb-page .elementor > .e-con.e-parent:first-child{ min-height:78vh !important; }
	.istb-page .elementor > .e-con.e-parent:first-child h1{ max-width:100%; font-size:34px !important; }
	.istb-page .elementor-widget.istb-lead{ max-width:100% !important; }
	.istb-page .istb-lead p{ font-size:15.5px !important; }
}

/* ==========================================================================
   Galerías de imágenes en páginas B (portadas de pubblicazioni en Didattica)
   El widget image-gallery usa el markup de galería de WordPress (floats + width
   en %, sin separación): las portadas quedaban pegadas una contra otra.
   Se pasa a grilla con aire, respetando el nº de columnas que eligió el widget.
   ========================================================================== */
.istb-page .elementor-widget-image-gallery .gallery{
	display:grid; gap:24px; margin:0 !important;
	width:100%;   /* al pasar a grid el bloque colapsa al contenido si no se fija */
}
.istb-page .elementor-widget-image-gallery,
.istb-page .elementor-widget-image-gallery .elementor-image-gallery{ width:100%; }
.istb-page .gallery-columns-2{ grid-template-columns:repeat(2,1fr); }
.istb-page .gallery-columns-3{ grid-template-columns:repeat(3,1fr); }
.istb-page .gallery-columns-4{ grid-template-columns:repeat(4,1fr); }
.istb-page .gallery-columns-5{ grid-template-columns:repeat(5,1fr); }
.istb-page .gallery-columns-6{ grid-template-columns:repeat(6,1fr); }
.istb-page .elementor-widget-image-gallery .gallery-item{
	width:auto !important; max-width:none !important;
	margin:0 !important; float:none !important; padding:0 !important;
}
.istb-page .elementor-widget-image-gallery .gallery-item img{
	width:100% !important; height:auto !important; display:block;
	border:0 !important; box-shadow:0 4px 18px rgba(26,26,26,.10);
	transition:transform .3s, box-shadow .3s;
}
.istb-page .elementor-widget-image-gallery .gallery-item img:hover{
	transform:translateY(-4px); box-shadow:0 12px 30px rgba(26,26,26,.18);
}
@media (max-width:900px){
	.istb-page .elementor-widget-image-gallery .gallery{ grid-template-columns:repeat(3,1fr) !important; gap:18px; }
}
@media (max-width:560px){
	.istb-page .elementor-widget-image-gallery .gallery{ grid-template-columns:repeat(2,1fr) !important; gap:14px; }
}

/* ==========================================================================
   Formulario de contacto en páginas B
   Al pasar la columna del form a ancho completo, la caja beige creció pero el
   .wpcf7 se quedó en su ancho previo y dejaba ~200px de hueco a la derecha.
   ========================================================================== */
.istb-page .wpcf7,
.istb-page .wpcf7 form,
.istb-page .wpcf7 .ist-form-row,
.istb-page .elementor-widget-shortcode,
.istb-page .elementor-widget-shortcode .elementor-widget-container{
	width:100%; max-width:100%;
}
.istb-page .wpcf7 p{ margin:0 0 14px; }

/* --- Splits imagen+texto de las páginas B (patrón de Home B) -----------------
   Van por ID porque Elementor 4.2.1 no imprime `_css_classes` en containers
   (ver nota del hero). Los IDs los genera el conversor A→B de forma
   determinística: misma página de origen = mismos IDs.
   Bloque de: Chi siamo B (294) */
.istb-page .elementor-element-0a0dc88,
.istb-page .elementor-element-7091988,
.istb-page .elementor-element-b361a88,
.istb-page .elementor-element-f00321a,
.istb-page .elementor-element-e0a2a9b,
.istb-page .elementor-element-faf41f7,
.istb-page .elementor-element-c7f7621{
	gap:0 !important; padding:0 !important;
	align-items:stretch !important; flex-wrap:wrap !important;
}
.istb-page .elementor-element-c1756b3,
.istb-page .elementor-element-2462b43,
.istb-page .elementor-element-dbbb0d2,
.istb-page .elementor-element-94e1432,
.istb-page .elementor-element-eb2df34,
.istb-page .elementor-element-fb91350,
.istb-page .elementor-element-3a3331a,
.istb-page .elementor-element-2d26d43,
.istb-page .elementor-element-5a83627,
.istb-page .elementor-element-028b0b2,
.istb-page .elementor-element-1498d1a,
.istb-page .elementor-element-9a5f12d,
.istb-page .elementor-element-0ec940e,
.istb-page .elementor-element-000ae50{
	width:50% !important; max-width:50% !important; flex:0 0 50% !important; min-width:0 !important;
}
.istb-page .elementor-element-c1756b3,
.istb-page .elementor-element-2462b43,
.istb-page .elementor-element-dbbb0d2,
.istb-page .elementor-element-94e1432,
.istb-page .elementor-element-eb2df34,
.istb-page .elementor-element-fb91350,
.istb-page .elementor-element-3a3331a{
	min-height:520px; padding:0 !important; overflow:hidden;
}
.istb-page .elementor-element-5a83627,
.istb-page .elementor-element-1498d1a,
.istb-page .elementor-element-0ec940e{
	padding-left:var(--istb-gutter) !important; padding-right:72px !important;
}
.istb-page .elementor-element-2d26d43,
.istb-page .elementor-element-028b0b2,
.istb-page .elementor-element-9a5f12d,
.istb-page .elementor-element-000ae50{
	padding-right:var(--istb-gutter) !important; padding-left:72px !important;
}
.istb-page .elementor-element-c1756b3 .elementor-widget-image,
.istb-page .elementor-element-2462b43 .elementor-widget-image,
.istb-page .elementor-element-dbbb0d2 .elementor-widget-image,
.istb-page .elementor-element-94e1432 .elementor-widget-image,
.istb-page .elementor-element-eb2df34 .elementor-widget-image,
.istb-page .elementor-element-fb91350 .elementor-widget-image,
.istb-page .elementor-element-3a3331a .elementor-widget-image,
.istb-page .elementor-element-c1756b3 .elementor-widget-image .elementor-widget-container,
.istb-page .elementor-element-2462b43 .elementor-widget-image .elementor-widget-container,
.istb-page .elementor-element-dbbb0d2 .elementor-widget-image .elementor-widget-container,
.istb-page .elementor-element-94e1432 .elementor-widget-image .elementor-widget-container,
.istb-page .elementor-element-eb2df34 .elementor-widget-image .elementor-widget-container,
.istb-page .elementor-element-fb91350 .elementor-widget-image .elementor-widget-container,
.istb-page .elementor-element-3a3331a .elementor-widget-image .elementor-widget-container{
	height:100%; width:100%; align-self:stretch;
	/* Elementor le da margin-bottom al widget (--widgets-spacing): sin esto la foto
	   queda 18px corta y aparece una franja del fondo abajo de cada split. */
	margin:0 !important; line-height:0;
}
.istb-page .elementor-element-c1756b3,
.istb-page .elementor-element-2462b43,
.istb-page .elementor-element-dbbb0d2,
.istb-page .elementor-element-94e1432,
.istb-page .elementor-element-eb2df34,
.istb-page .elementor-element-fb91350,
.istb-page .elementor-element-3a3331a{
	--widgets-spacing:0px 0px !important; gap:0 !important;
}
.istb-page .elementor-element-c1756b3 img,
.istb-page .elementor-element-2462b43 img,
.istb-page .elementor-element-dbbb0d2 img,
.istb-page .elementor-element-94e1432 img,
.istb-page .elementor-element-eb2df34 img,
.istb-page .elementor-element-fb91350 img,
.istb-page .elementor-element-3a3331a img{
	width:100%; height:100%; object-fit:cover; display:block;
}
@media (max-width:1024px){
.istb-page .elementor-element-c1756b3,
.istb-page .elementor-element-2462b43,
.istb-page .elementor-element-dbbb0d2,
.istb-page .elementor-element-94e1432,
.istb-page .elementor-element-eb2df34,
.istb-page .elementor-element-fb91350,
.istb-page .elementor-element-3a3331a,
.istb-page .elementor-element-2d26d43,
.istb-page .elementor-element-5a83627,
.istb-page .elementor-element-028b0b2,
.istb-page .elementor-element-1498d1a,
.istb-page .elementor-element-9a5f12d,
.istb-page .elementor-element-0ec940e,
.istb-page .elementor-element-000ae50{
		width:100% !important; max-width:100% !important; flex:none !important;
	}
.istb-page .elementor-element-c1756b3,
.istb-page .elementor-element-2462b43,
.istb-page .elementor-element-dbbb0d2,
.istb-page .elementor-element-94e1432,
.istb-page .elementor-element-eb2df34,
.istb-page .elementor-element-fb91350,
.istb-page .elementor-element-3a3331a{
		min-height:300px;
	}
.istb-page .elementor-element-2d26d43,
.istb-page .elementor-element-5a83627,
.istb-page .elementor-element-028b0b2,
.istb-page .elementor-element-1498d1a,
.istb-page .elementor-element-9a5f12d,
.istb-page .elementor-element-0ec940e,
.istb-page .elementor-element-000ae50{
		padding:48px 24px !important;
	}
}

/* Los estilos de estas tarjetas iban enumerados por ID (a67326e/241a0a9/710e4d0):
   un curso nuevo NO los heredaba y salía 30px más ancho y sin caja. Ahora cuelgan
   del contenedor de la fila, así cualquier tarjeta que agregue el cliente desde
   Elementor se ve igual sin tocar CSS. */
/* --- Tarjetas de las páginas B ------------------------------------------------
   La versión A las dejaba como cajas de borde fino con el contenido flotando.
   Acá: caja con respiro parejo, icono con más presencia y reacción al hover.
   Sin inventar contenido — solo el icono y el título que ya traía el cliente. */
.istb-page .elementor-element-9360795,
.istb-page .elementor-element-86cf21c{
	gap:20px !important; align-items:stretch !important; flex-wrap:wrap !important;
}
.istb-page .elementor-element-db8925d,
.istb-page .elementor-element-b2ed046,
.istb-page .elementor-element-2f880e0,
.istb-page .elementor-element-af32998,
.istb-page .elementor-element-6e05b61,
.istb-page .elementor-element-a2fca7a,
.istb-page .elementor-element-dcc546e,
.istb-page .elementor-element-236eb56,
.istb-page .elementor-element-100c5a0{
	padding:32px 28px !important;
	border-color:#e4e0d8 !important;
	background:#fff;
	transition:border-color .25s, box-shadow .25s, transform .25s;
	justify-content:flex-start !important;
	align-items:flex-start !important;
	text-align:left !important;
	gap:10px !important;
	/* reparto equitativo: con el width que traía la A + el gap no entraban las 4
	   tarjetas en la fila y la última caía sola a la línea de abajo */
	flex:1 1 0 !important;
	width:auto !important;
	max-width:none !important;
	min-width:0 !important;
}
.istb-page .elementor-element-db8925d > .e-con-inner > *,
.istb-page .elementor-element-b2ed046 > .e-con-inner > *,
.istb-page .elementor-element-2f880e0 > .e-con-inner > *,
.istb-page .elementor-element-af32998 > .e-con-inner > *,
.istb-page .elementor-element-6e05b61 > .e-con-inner > *,
.istb-page .elementor-element-a2fca7a > .e-con-inner > *,
.istb-page .elementor-element-dcc546e > .e-con-inner > *,
.istb-page .elementor-element-236eb56 > .e-con-inner > *,
.istb-page .elementor-element-100c5a0 > .e-con-inner > *,
.istb-page .elementor-element-db8925d > *,
.istb-page .elementor-element-b2ed046 > *,
.istb-page .elementor-element-2f880e0 > *,
.istb-page .elementor-element-af32998 > *,
.istb-page .elementor-element-6e05b61 > *,
.istb-page .elementor-element-a2fca7a > *,
.istb-page .elementor-element-dcc546e > *,
.istb-page .elementor-element-236eb56 > *,
.istb-page .elementor-element-100c5a0 > *{
	width:100%; text-align:left;
}
.istb-page .elementor-element-db8925d .elementor-widget:last-child,
.istb-page .elementor-element-b2ed046 .elementor-widget:last-child,
.istb-page .elementor-element-2f880e0 .elementor-widget:last-child,
.istb-page .elementor-element-af32998 .elementor-widget:last-child,
.istb-page .elementor-element-6e05b61 .elementor-widget:last-child,
.istb-page .elementor-element-a2fca7a .elementor-widget:last-child,
.istb-page .elementor-element-dcc546e .elementor-widget:last-child,
.istb-page .elementor-element-236eb56 .elementor-widget:last-child,
.istb-page .elementor-element-100c5a0 .elementor-widget:last-child{
	margin-bottom:0 !important;
}
.istb-page .elementor-element-db8925d:has(a):hover,
.istb-page .elementor-element-b2ed046:has(a):hover,
.istb-page .elementor-element-2f880e0:has(a):hover,
.istb-page .elementor-element-af32998:has(a):hover,
.istb-page .elementor-element-6e05b61:has(a):hover,
.istb-page .elementor-element-a2fca7a:has(a):hover,
.istb-page .elementor-element-dcc546e:has(a):hover,
.istb-page .elementor-element-236eb56:has(a):hover,
.istb-page .elementor-element-100c5a0:has(a):hover{
	border-color:var(--istoreco-accent) !important;
	box-shadow:0 10px 30px rgba(26,26,26,.09);
	transform:translateY(-3px);
}
.istb-page .elementor-element-db8925d .elementor-widget-icon,
.istb-page .elementor-element-b2ed046 .elementor-widget-icon,
.istb-page .elementor-element-2f880e0 .elementor-widget-icon,
.istb-page .elementor-element-af32998 .elementor-widget-icon,
.istb-page .elementor-element-6e05b61 .elementor-widget-icon,
.istb-page .elementor-element-a2fca7a .elementor-widget-icon,
.istb-page .elementor-element-dcc546e .elementor-widget-icon,
.istb-page .elementor-element-236eb56 .elementor-widget-icon,
.istb-page .elementor-element-100c5a0 .elementor-widget-icon{
	margin:0 !important;
}
.istb-page .elementor-element-db8925d .elementor-icon-wrapper,
.istb-page .elementor-element-b2ed046 .elementor-icon-wrapper,
.istb-page .elementor-element-2f880e0 .elementor-icon-wrapper,
.istb-page .elementor-element-af32998 .elementor-icon-wrapper,
.istb-page .elementor-element-6e05b61 .elementor-icon-wrapper,
.istb-page .elementor-element-a2fca7a .elementor-icon-wrapper,
.istb-page .elementor-element-dcc546e .elementor-icon-wrapper,
.istb-page .elementor-element-236eb56 .elementor-icon-wrapper,
.istb-page .elementor-element-100c5a0 .elementor-icon-wrapper{
	text-align:left !important;
}
.istb-page .elementor-element-db8925d .elementor-icon svg,
.istb-page .elementor-element-b2ed046 .elementor-icon svg,
.istb-page .elementor-element-2f880e0 .elementor-icon svg,
.istb-page .elementor-element-af32998 .elementor-icon svg,
.istb-page .elementor-element-6e05b61 .elementor-icon svg,
.istb-page .elementor-element-a2fca7a .elementor-icon svg,
.istb-page .elementor-element-dcc546e .elementor-icon svg,
.istb-page .elementor-element-236eb56 .elementor-icon svg,
.istb-page .elementor-element-100c5a0 .elementor-icon svg,
.istb-page .elementor-element-db8925d .elementor-icon img,
.istb-page .elementor-element-b2ed046 .elementor-icon img,
.istb-page .elementor-element-2f880e0 .elementor-icon img,
.istb-page .elementor-element-af32998 .elementor-icon img,
.istb-page .elementor-element-6e05b61 .elementor-icon img,
.istb-page .elementor-element-a2fca7a .elementor-icon img,
.istb-page .elementor-element-dcc546e .elementor-icon img,
.istb-page .elementor-element-236eb56 .elementor-icon img,
.istb-page .elementor-element-100c5a0 .elementor-icon img{
	width:30px !important; height:30px !important;
}
.istb-page .elementor-element-db8925d .elementor-widget-heading,
.istb-page .elementor-element-b2ed046 .elementor-widget-heading,
.istb-page .elementor-element-2f880e0 .elementor-widget-heading,
.istb-page .elementor-element-af32998 .elementor-widget-heading,
.istb-page .elementor-element-6e05b61 .elementor-widget-heading,
.istb-page .elementor-element-a2fca7a .elementor-widget-heading,
.istb-page .elementor-element-dcc546e .elementor-widget-heading,
.istb-page .elementor-element-236eb56 .elementor-widget-heading,
.istb-page .elementor-element-100c5a0 .elementor-widget-heading{
	margin:0 !important;
}
@media (max-width:900px){
.istb-page .elementor-element-db8925d,
.istb-page .elementor-element-b2ed046,
.istb-page .elementor-element-2f880e0,
.istb-page .elementor-element-af32998,
.istb-page .elementor-element-6e05b61,
.istb-page .elementor-element-a2fca7a,
.istb-page .elementor-element-dcc546e,
.istb-page .elementor-element-236eb56,
.istb-page .elementor-element-100c5a0{
		flex:1 1 calc(50% - 20px) !important; min-width:0;
	}
}
@media (max-width:520px){
.istb-page .elementor-element-db8925d,
.istb-page .elementor-element-b2ed046,
.istb-page .elementor-element-2f880e0,
.istb-page .elementor-element-af32998,
.istb-page .elementor-element-6e05b61,
.istb-page .elementor-element-a2fca7a,
.istb-page .elementor-element-dcc546e,
.istb-page .elementor-element-236eb56,
.istb-page .elementor-element-100c5a0{
		flex:1 1 100% !important;
	}
}


/* ==========================================================================
   Formulario de contacto en páginas B
   Al pasar la columna del form a ancho completo, la caja beige creció pero el
   .wpcf7 se quedó en su ancho previo y dejaba ~200px de hueco a la derecha.
   ========================================================================== */
.istb-page .wpcf7,
.istb-page .wpcf7 form,
.istb-page .wpcf7 .ist-form-row,
.istb-page .elementor-widget-shortcode,
.istb-page .elementor-widget-shortcode .elementor-widget-container{
	width:100%; max-width:100%;
}
.istb-page .wpcf7 p{ margin:0 0 14px; }

/* --- Splits imagen+texto de las páginas B (patrón de Home B) -----------------
   Van por ID porque Elementor 4.2.1 no imprime `_css_classes` en containers
   (ver nota del hero). Los IDs los genera el conversor A→B de forma
   determinística: misma página de origen = mismos IDs.
   Bloque de: Didattica B (295) */
.istb-page .elementor-element-e9b2fc7,
.istb-page .elementor-element-0284f6c,
.istb-page .elementor-element-81370e7{
	gap:0 !important; padding:0 !important;
	align-items:stretch !important; flex-wrap:wrap !important;
}
.istb-page .elementor-element-93adbc2,
.istb-page .elementor-element-665e0fe,
.istb-page .elementor-element-f32df2f,
.istb-page .elementor-element-d9f6884,
.istb-page .elementor-element-155a064,
.istb-page .elementor-element-20c3f87{
	width:50% !important; max-width:50% !important; flex:0 0 50% !important; min-width:0 !important;
}
.istb-page .elementor-element-93adbc2,
.istb-page .elementor-element-665e0fe,
.istb-page .elementor-element-f32df2f{
	min-height:520px; padding:0 !important; overflow:hidden;
}
.istb-page .elementor-element-20c3f87{
	padding-left:var(--istb-gutter) !important; padding-right:72px !important;
}
.istb-page .elementor-element-d9f6884,
.istb-page .elementor-element-155a064{
	padding-right:var(--istb-gutter) !important; padding-left:72px !important;
}
.istb-page .elementor-element-93adbc2 .elementor-widget-image,
.istb-page .elementor-element-665e0fe .elementor-widget-image,
.istb-page .elementor-element-f32df2f .elementor-widget-image,
.istb-page .elementor-element-93adbc2 .elementor-widget-image .elementor-widget-container,
.istb-page .elementor-element-665e0fe .elementor-widget-image .elementor-widget-container,
.istb-page .elementor-element-f32df2f .elementor-widget-image .elementor-widget-container{
	height:100%; width:100%; align-self:stretch;
	/* Elementor le da margin-bottom al widget (--widgets-spacing): sin esto la foto
	   queda 18px corta y aparece una franja del fondo abajo de cada split. */
	margin:0 !important; line-height:0;
}
.istb-page .elementor-element-93adbc2,
.istb-page .elementor-element-665e0fe,
.istb-page .elementor-element-f32df2f{
	--widgets-spacing:0px 0px !important; gap:0 !important;
}
.istb-page .elementor-element-93adbc2 img,
.istb-page .elementor-element-665e0fe img,
.istb-page .elementor-element-f32df2f img{
	width:100%; height:100%; object-fit:cover; display:block;
}
@media (max-width:1024px){
.istb-page .elementor-element-93adbc2,
.istb-page .elementor-element-665e0fe,
.istb-page .elementor-element-f32df2f,
.istb-page .elementor-element-d9f6884,
.istb-page .elementor-element-155a064,
.istb-page .elementor-element-20c3f87{
		width:100% !important; max-width:100% !important; flex:none !important;
	}
.istb-page .elementor-element-93adbc2,
.istb-page .elementor-element-665e0fe,
.istb-page .elementor-element-f32df2f{
		min-height:300px;
	}
.istb-page .elementor-element-d9f6884,
.istb-page .elementor-element-155a064,
.istb-page .elementor-element-20c3f87{
		padding:48px 24px !important;
	}
}

/* --- Tarjetas de las páginas B ------------------------------------------------
   La versión A las dejaba como cajas de borde fino con el contenido flotando.
   Acá: caja con respiro parejo, icono con más presencia y reacción al hover.
   Sin inventar contenido — solo el icono y el título que ya traía el cliente. */
.istb-page .elementor-element-7ed5224{
	gap:20px !important; align-items:stretch !important; flex-wrap:wrap !important;
}
.istb-page .elementor-element-7ed5224 > .e-con{
	padding:32px 28px !important;
	border-color:#e4e0d8 !important;
	background:#fff;
	transition:border-color .25s, box-shadow .25s, transform .25s;
	justify-content:flex-start !important;
	align-items:flex-start !important;
	text-align:left !important;
	gap:10px !important;
	/* reparto equitativo: con el width que traía la A + el gap no entraban las 4
	   tarjetas en la fila y la última caía sola a la línea de abajo */
	flex:1 1 0 !important;
	width:auto !important;
	max-width:none !important;
	min-width:0 !important;
}
.istb-page .elementor-element-7ed5224 > .e-con > .e-con-inner > *,
.istb-page .elementor-element-7ed5224 > .e-con > *{
	width:100%; text-align:left;
}
.istb-page .elementor-element-7ed5224 > .e-con .elementor-widget:last-child{
	margin-bottom:0 !important;
}
.istb-page .elementor-element-7ed5224 > .e-con:has(a):hover{
	border-color:var(--istoreco-accent) !important;
	box-shadow:0 10px 30px rgba(26,26,26,.09);
	transform:translateY(-3px);
}
.istb-page .elementor-element-7ed5224 > .e-con .elementor-widget-icon{
	margin:0 !important;
}
.istb-page .elementor-element-7ed5224 > .e-con .elementor-icon-wrapper{
	text-align:left !important;
}
.istb-page .elementor-element-7ed5224 > .e-con .elementor-icon svg,
.istb-page .elementor-element-7ed5224 > .e-con .elementor-icon img{
	width:30px !important; height:30px !important;
}
.istb-page .elementor-element-7ed5224 > .e-con .elementor-widget-heading{
	margin:0 !important;
}
@media (max-width:900px){
.istb-page .elementor-element-7ed5224 > .e-con{
		flex:1 1 calc(50% - 20px) !important; min-width:0;
	}
}
@media (max-width:520px){
.istb-page .elementor-element-7ed5224 > .e-con{
		flex:1 1 100% !important;
	}
}


/* ==========================================================================
   Formulario de contacto en páginas B
   Al pasar la columna del form a ancho completo, la caja beige creció pero el
   .wpcf7 se quedó en su ancho previo y dejaba ~200px de hueco a la derecha.
   ========================================================================== */
.istb-page .wpcf7,
.istb-page .wpcf7 form,
.istb-page .wpcf7 .ist-form-row,
.istb-page .elementor-widget-shortcode,
.istb-page .elementor-widget-shortcode .elementor-widget-container{
	width:100%; max-width:100%;
}
.istb-page .wpcf7 p{ margin:0 0 14px; }

/* --- Splits imagen+texto de las páginas B (patrón de Home B) -----------------
   Van por ID porque Elementor 4.2.1 no imprime `_css_classes` en containers
   (ver nota del hero). Los IDs los genera el conversor A→B de forma
   determinística: misma página de origen = mismos IDs.
   Bloque de: Iniziative B (296) */
/* Estos estilos iban por ID (33b91ff/7f8af69/31720d5): una iniciativa nueva no
   heredaba el split y salia rota. Ahora cuelgan del contenedor de la seccion,
   asi cada bloque que se agregue se ve igual. :first-child es la columna de la
   foto, :last-child la del texto; el :not(:first-child) saltea el encabezado. */

.istb-page .elementor-element-73bb689 > .e-con:not(:first-child){
	gap:0 !important; padding:0 !important;
	align-items:stretch !important; flex-wrap:wrap !important;
}
.istb-page .elementor-element-73bb689 > .e-con:not(:first-child) > .e-con:first-child,
.istb-page .elementor-element-73bb689 > .e-con:not(:first-child) > .e-con:last-child{
	width:50% !important; max-width:50% !important; flex:0 0 50% !important; min-width:0 !important;
}
.istb-page .elementor-element-73bb689 > .e-con:not(:first-child) > .e-con:first-child{
	/* La foto NO debe imponer la altura de la fila: con un afiche vertical el bloque
	   se iba a 1.100px y el texto corto quedaba flotando en un vacio enorme.
	   Sacandola del flujo, la altura la fija el texto (o el min-height) y la imagen
	   rellena con cover, sea horizontal o vertical. */
	min-height:520px; padding:0 !important; overflow:hidden; position:relative;
}
.istb-page .elementor-element-73bb689 > .e-con:not(:first-child) > .e-con:first-child > .e-con-inner,
.istb-page .elementor-element-73bb689 > .e-con:not(:first-child) > .e-con:first-child .elementor-widget-image{
	position:absolute; inset:0;
}
.istb-page .elementor-element-73bb689 > .e-con:not(:first-child) > .e-con:last-child{
	padding-right:var(--istb-gutter) !important; padding-left:72px !important;
}
.istb-page .elementor-element-73bb689 > .e-con:not(:first-child) > .e-con:first-child .elementor-widget-image,
.istb-page .elementor-element-73bb689 > .e-con:not(:first-child) > .e-con:first-child .elementor-widget-image .elementor-widget-container{
	height:100%; width:100%; align-self:stretch;
	/* Elementor le da margin-bottom al widget (--widgets-spacing): sin esto la foto
	   queda 18px corta y aparece una franja del fondo abajo de cada split. */
	margin:0 !important; line-height:0;
}
.istb-page .elementor-element-73bb689 > .e-con:not(:first-child) > .e-con:first-child{
	--widgets-spacing:0px 0px !important; gap:0 !important;
}
.istb-page .elementor-element-73bb689 > .e-con:not(:first-child) > .e-con:first-child img{
	width:100%; height:100%; object-fit:cover; object-position:top; display:block;
}
@media (max-width:1024px){
.istb-page .elementor-element-73bb689 > .e-con:not(:first-child) > .e-con:first-child,
.istb-page .elementor-element-73bb689 > .e-con:not(:first-child) > .e-con:last-child{
		width:100% !important; max-width:100% !important; flex:none !important;
	}
.istb-page .elementor-element-73bb689 > .e-con:not(:first-child) > .e-con:first-child{
		min-height:300px;
	}
.istb-page .elementor-element-73bb689 > .e-con:not(:first-child) > .e-con:last-child{
		padding:48px 24px !important;
	}
}


/* ==========================================================================
   Formulario de contacto en páginas B
   Al pasar la columna del form a ancho completo, la caja beige creció pero el
   .wpcf7 se quedó en su ancho previo y dejaba ~200px de hueco a la derecha.
   ========================================================================== */
.istb-page .wpcf7,
.istb-page .wpcf7 form,
.istb-page .wpcf7 .ist-form-row,
.istb-page .elementor-widget-shortcode,
.istb-page .elementor-widget-shortcode .elementor-widget-container{
	width:100%; max-width:100%;
}
.istb-page .wpcf7 p{ margin:0 0 14px; }

/* --- Splits imagen+texto de las páginas B (patrón de Home B) -----------------
   Van por ID porque Elementor 4.2.1 no imprime `_css_classes` en containers
   (ver nota del hero). Los IDs los genera el conversor A→B de forma
   determinística: misma página de origen = mismos IDs.
   Bloque de: Diventa socio B (298) */
.istb-page .elementor-element-93ecce2{
	gap:0 !important; padding:0 !important;
	align-items:stretch !important; flex-wrap:wrap !important;
}
.istb-page .elementor-element-2fa8198,
.istb-page .elementor-element-b7ae232{
	width:50% !important; max-width:50% !important; flex:0 0 50% !important; min-width:0 !important;
}
.istb-page .elementor-element-2fa8198{
	min-height:520px; padding:0 !important; overflow:hidden;
}
.istb-page .elementor-element-b7ae232{
	padding-right:var(--istb-gutter) !important; padding-left:72px !important;
}
.istb-page .elementor-element-2fa8198 .elementor-widget-image,
.istb-page .elementor-element-2fa8198 .elementor-widget-image .elementor-widget-container{
	height:100%; width:100%; align-self:stretch;
	/* Elementor le da margin-bottom al widget (--widgets-spacing): sin esto la foto
	   queda 18px corta y aparece una franja del fondo abajo de cada split. */
	margin:0 !important; line-height:0;
}
.istb-page .elementor-element-2fa8198{
	--widgets-spacing:0px 0px !important; gap:0 !important;
}
.istb-page .elementor-element-2fa8198 img{
	width:100%; height:100%; object-fit:cover; display:block;
}
@media (max-width:1024px){
.istb-page .elementor-element-2fa8198,
.istb-page .elementor-element-b7ae232{
		width:100% !important; max-width:100% !important; flex:none !important;
	}
.istb-page .elementor-element-2fa8198{
		min-height:300px;
	}
.istb-page .elementor-element-b7ae232{
		padding:48px 24px !important;
	}
}

/* --- Tarjetas de las páginas B ------------------------------------------------
   La versión A las dejaba como cajas de borde fino con el contenido flotando.
   Acá: caja con respiro parejo, icono con más presencia y reacción al hover.
   Sin inventar contenido — solo el icono y el título que ya traía el cliente. */
.istb-page .elementor-element-034f9ea{
	gap:20px !important; align-items:stretch !important; flex-wrap:wrap !important;
}
.istb-page .elementor-element-0823727,
.istb-page .elementor-element-e227892,
.istb-page .elementor-element-a2cf3d9,
.istb-page .elementor-element-e278931{
	padding:32px 28px !important;
	border-color:#e4e0d8 !important;
	background:#fff;
	transition:border-color .25s, box-shadow .25s, transform .25s;
	justify-content:flex-start !important;
	align-items:flex-start !important;
	text-align:left !important;
	gap:10px !important;
	/* reparto equitativo: con el width que traía la A + el gap no entraban las 4
	   tarjetas en la fila y la última caía sola a la línea de abajo */
	flex:1 1 0 !important;
	width:auto !important;
	max-width:none !important;
	min-width:0 !important;
}
.istb-page .elementor-element-0823727 > .e-con-inner > *,
.istb-page .elementor-element-e227892 > .e-con-inner > *,
.istb-page .elementor-element-a2cf3d9 > .e-con-inner > *,
.istb-page .elementor-element-e278931 > .e-con-inner > *,
.istb-page .elementor-element-0823727 > *,
.istb-page .elementor-element-e227892 > *,
.istb-page .elementor-element-a2cf3d9 > *,
.istb-page .elementor-element-e278931 > *{
	width:100%; text-align:left;
}
.istb-page .elementor-element-0823727 .elementor-widget:last-child,
.istb-page .elementor-element-e227892 .elementor-widget:last-child,
.istb-page .elementor-element-a2cf3d9 .elementor-widget:last-child,
.istb-page .elementor-element-e278931 .elementor-widget:last-child{
	margin-bottom:0 !important;
}
.istb-page .elementor-element-0823727:has(a):hover,
.istb-page .elementor-element-e227892:has(a):hover,
.istb-page .elementor-element-a2cf3d9:has(a):hover,
.istb-page .elementor-element-e278931:has(a):hover{
	border-color:var(--istoreco-accent) !important;
	box-shadow:0 10px 30px rgba(26,26,26,.09);
	transform:translateY(-3px);
}
.istb-page .elementor-element-0823727 .elementor-widget-icon,
.istb-page .elementor-element-e227892 .elementor-widget-icon,
.istb-page .elementor-element-a2cf3d9 .elementor-widget-icon,
.istb-page .elementor-element-e278931 .elementor-widget-icon{
	margin:0 !important;
}
.istb-page .elementor-element-0823727 .elementor-icon-wrapper,
.istb-page .elementor-element-e227892 .elementor-icon-wrapper,
.istb-page .elementor-element-a2cf3d9 .elementor-icon-wrapper,
.istb-page .elementor-element-e278931 .elementor-icon-wrapper{
	text-align:left !important;
}
.istb-page .elementor-element-0823727 .elementor-icon svg,
.istb-page .elementor-element-e227892 .elementor-icon svg,
.istb-page .elementor-element-a2cf3d9 .elementor-icon svg,
.istb-page .elementor-element-e278931 .elementor-icon svg,
.istb-page .elementor-element-0823727 .elementor-icon img,
.istb-page .elementor-element-e227892 .elementor-icon img,
.istb-page .elementor-element-a2cf3d9 .elementor-icon img,
.istb-page .elementor-element-e278931 .elementor-icon img{
	width:30px !important; height:30px !important;
}
.istb-page .elementor-element-0823727 .elementor-widget-heading,
.istb-page .elementor-element-e227892 .elementor-widget-heading,
.istb-page .elementor-element-a2cf3d9 .elementor-widget-heading,
.istb-page .elementor-element-e278931 .elementor-widget-heading{
	margin:0 !important;
}
@media (max-width:900px){
.istb-page .elementor-element-0823727,
.istb-page .elementor-element-e227892,
.istb-page .elementor-element-a2cf3d9,
.istb-page .elementor-element-e278931{
		flex:1 1 calc(50% - 20px) !important; min-width:0;
	}
}
@media (max-width:520px){
.istb-page .elementor-element-0823727,
.istb-page .elementor-element-e227892,
.istb-page .elementor-element-a2cf3d9,
.istb-page .elementor-element-e278931{
		flex:1 1 100% !important;
	}
}

/* ==========================================================================
   Aviso de cookies (informativa: el sitio solo usa cookie tecniche)
   ========================================================================== */
.ist-cookie{
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999;
	display: flex; align-items: center; justify-content: center; gap: 22px; flex-wrap: wrap;
	background: rgba(20,20,20,.97); color: #e6e3df;
	padding: 16px max(24px, calc((100vw - 1374px) / 2));
	font-family: 'Raleway', sans-serif; font-size: 14.5px; line-height: 1.6;
	box-shadow: 0 -6px 24px rgba(0,0,0,.22);
	transform: translateY(100%); transition: transform .35s cubic-bezier(.16,1,.3,1);
}
.ist-cookie.in{ transform: none; }
.ist-cookie p{ margin: 0; max-width: 78ch; }
.ist-cookie a{ color: #ff8f93; text-decoration: underline; }
.ist-cookie-ok{
	flex: 0 0 auto; cursor: pointer; border: 0;
	background: var(--istoreco-accent); color: #fff;
	font-family: 'Raleway', sans-serif; font-size: 14.5px; font-weight: 600;
	padding: 11px 26px; transition: background .2s;
}
.ist-cookie-ok:hover{ background: #951f24; }
.ist-cookie-ok:focus-visible{ outline: 2px solid #fff; outline-offset: 2px; }
@media (max-width: 640px){
	.ist-cookie{ gap: 12px; padding: 14px 18px; font-size: 13.5px; }
	.ist-cookie-ok{ width: 100%; }
}

/* ==========================================================================
   Noticias de la home — títulos de largo variable
   Desde que la grilla es dinámica ([istb_news]) los títulos son los reales de
   cada nota, no las versiones cortas que estaban escritas a mano. Se recortan
   por líneas en pantalla: el texto queda entero en el HTML, y la card
   conserva su altura.
   ========================================================================== */
.istb-news .feat strong,
.istb-news .sm strong{
	display: -webkit-box;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.istb-news .feat strong{ -webkit-line-clamp: 3; }
.istb-news .sm strong{ -webkit-line-clamp: 3; }
.istb-news .feat .ex{
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
}
/* Muchas notas usan como destacada el afiche del evento, que es vertical:
   encuadrado al centro se ve el cuerpo del texto. Desde arriba se ve el
   título, que es lo que identifica la nota en una miniatura. */
.istb-news .sm img{ object-position: top center; }

/* Logo del header sticky: un poco más grande en desktop para que el testo sia leggibile.
   En móvil se queda en 48px: a 390px un logo de 271px queda pegado al borde. */
@media (min-width:769px){
  .page-id-283 header#site-header.istb-solid .custom-logo,
  .page-id-288 header#site-header.istb-solid .custom-logo,
  .istb-page header#site-header.istb-solid .custom-logo{ max-height:58px !important; height:58px !important; }
}

/* ==========================================================================
   Pubblicazioni — fichas de los volúmenes
   Va por CLASE, no por ID: el cliente va a agregar publicaciones desde
   Elementor y cada una tiene que verse igual sin que nadie toque el CSS.
   (Es la lección de las tarjetas de curso y de los bloques de iniziativa.)
   ========================================================================== */
.ist-pubs{ display:flex; flex-direction:column; gap:0; }
.ist-pubs .pub{
	display:grid; grid-template-columns:168px 1fr; gap:0 34px;
	padding:30px 0; border-bottom:1px solid #e4e0d8; align-items:start;
}
.ist-pubs .pub:first-child{ border-top:1px solid #e4e0d8; }

/* la portada: proporción de libro, sombra sutil, y crece apenas al pasar por encima
   para que se note que se puede ampliar */
.ist-pubs .cop{ display:block; line-height:0; overflow:hidden; background:#f4f2ee; }
.ist-pubs .cop img{
	width:100%; height:auto; display:block;
	box-shadow:0 6px 20px rgba(26,26,26,.16);
	transition:transform .3s ease, box-shadow .3s ease;
}
.ist-pubs .cop:hover img{ transform:scale(1.03); box-shadow:0 12px 30px rgba(26,26,26,.24); }

.ist-pubs .autore{
	font-family:'Raleway',sans-serif; font-size:12px; font-weight:600;
	letter-spacing:2px; text-transform:uppercase; color:var(--istoreco-accent);
	margin:0 0 6px;
}
.ist-pubs .titolo{
	font-family:'Montserrat',sans-serif; font-weight:700; font-size:22px; line-height:1.28;
	color:var(--istoreco-dark); margin:0 0 8px;
}
.ist-pubs .edizione{
	font-family:'Raleway',sans-serif; font-size:14px; color:#6b665e; margin:0;
}
.ist-pubs .edizione i{ font-style:normal; color:#c9c3b8; margin:0 4px; }

/* la sinossi va plegada: con 16 volúmenes, abrirlas todas haría una página infinita */
.ist-pubs .sinossi{ margin-top:12px; }
.ist-pubs .sinossi summary{
	cursor:pointer; list-style:none; display:inline-flex; align-items:center; gap:7px;
	font-family:'Raleway',sans-serif; font-size:13px; font-weight:600;
	letter-spacing:1.2px; text-transform:uppercase; color:var(--istoreco-accent);
}
.ist-pubs .sinossi summary::-webkit-details-marker{ display:none; }
.ist-pubs .sinossi summary::after{
	content:'+'; font-size:16px; line-height:1; font-weight:700; transition:transform .2s;
}
.ist-pubs .sinossi[open] summary::after{ content:'−'; }
.ist-pubs .sinossi .testo p{
	margin:10px 0 0; font-family:'Raleway',sans-serif; font-size:15.5px;
	line-height:1.75; color:#4a463f;
}
/* sin sinossi todavía: la ficha se ve igual, sólo sin el desplegable */
.ist-pubs .pub .dati > *:last-child{ margin-bottom:0; }

@media (max-width:767px){
	.ist-pubs .pub{ grid-template-columns:110px 1fr; gap:0 20px; padding:24px 0; }
	.ist-pubs .titolo{ font-size:18px; }
	.ist-pubs .autore{ font-size:11px; letter-spacing:1.5px; }
}

/* Enlaces dentro del hero: el tema los pinta de #cc3366 (magenta por defecto),
   que sobre el fondo oscuro del hero se lee mal y queda fuera de paleta.
   Se usa el mismo acento claro del eyebrow. */
.istb-page .elementor > .e-con.e-parent:first-child a:not(.elementor-button):not(.istb-scorri){
	color:#ff8f93; text-decoration:underline; text-decoration-thickness:1px;
	text-underline-offset:3px; transition:color .2s;
}
.istb-page .elementor > .e-con.e-parent:first-child a:not(.elementor-button):not(.istb-scorri):hover{
	color:#fff;
}

/* Archivio corsi: el titolo enlaza alla locandina in PDF.
   Sin esto el enlace tomaría el color de link del tema (#cc3366) y además no se
   notaría que se puede abrir: se añade la etiqueta bajo il titolo.
   El hover de la tarjeta ya lo resuelve `:has(a):hover`, que estaba de antes. */
.istb-page .elementor-element-7ed5224 > .e-con .elementor-widget-heading a{
	color:inherit; text-decoration:none; display:block;
}
.istb-page .elementor-element-7ed5224 > .e-con .elementor-widget-heading a::after{
	content:'Locandina (PDF)';
	display:block; margin-top:10px;
	font-family:'Raleway',sans-serif; font-size:11.5px; font-weight:600;
	letter-spacing:1.4px; text-transform:uppercase; color:var(--istoreco-accent);
}
.istb-page .elementor-element-7ed5224 > .e-con:hover .elementor-widget-heading a::after{
	text-decoration:underline; text-underline-offset:3px;
}
