/*
 * Insinga Dental — stili del tema.
 *
 * REGOLA D'ORO: tutti i selettori sono avvolti in :where() => specificità 0.
 * Qualsiasi impostazione fatta in Elementor (Kit, widget, contenitori) vince
 * sempre, senza !important. Non usare mai !important in questo file.
 *
 * I colori/font puntano alle variabili globali di Elementor
 * (Impostazioni del sito > Colori/Font globali), con fallback.
 *
 * Indice: 1 Token · 2 Base · 3 Layout · 4 Header · 5 Menu · 6 Pulsanti
 *         7 Slider comuni · 8 Hero · 9 Carosello · 10 Testimonianze
 *         11 Moduli CF7 · 12 Griglia articoli · 13 Staff/utility · 14 Flottanti
 *         15 Footer · 16 Template PHP · 17 Riduci movimento
 */

/* 1 ─ Token (su body: lì Elementor definisce le variabili del Kit) */
:where(body) {
	--ins-blue: var(--e-global-color-primary, #2592cd);
	--ins-blue-700: var(--e-global-color-accent, #1677ae);
	--ins-ink: var(--e-global-color-secondary, #1f1f1f);
	--ins-text: var(--e-global-color-text, #707070);
	--ins-grey-hero: #8b8b8b;
	--ins-bg-soft: #f5f5f5;
	--ins-line: #e6e6e6;
	--ins-footer: #222222;
	--ins-footer-text: #bababa;
	--ins-error: #c62828;
	--ins-success: #2e7d32;
	--ins-font-head: var(--e-global-typography-primary-font-family, "Roboto"), "Helvetica Neue", Arial, sans-serif;
	--ins-font-body: var(--e-global-typography-text-font-family, "Open Sans"), "Helvetica Neue", Arial, sans-serif;
	--ins-font-accent: var(--e-global-typography-accent-font-family, "Open Sans"), "Helvetica Neue", Arial, sans-serif;
	--ins-radius: 2px;
	--ins-shadow-sm: 0 2px 8px rgba(17, 17, 17, .06);
	--ins-shadow-md: 0 12px 30px rgba(17, 17, 17, .10);
	--ins-shadow-blue: 0 8px 20px rgba(22, 119, 174, .28);
	--ins-dur-fast: 160ms;
	--ins-dur-base: 320ms;
	--ins-dur-slow: 700ms;
	--ins-dur-hero: 1000ms;
	--ins-kb-dur: 7500ms;
	--ins-ease-out: cubic-bezier(.22, 1, .36, 1);
	--ins-ease-inout: cubic-bezier(.65, 0, .35, 1);
	--ins-ease-std: cubic-bezier(.4, 0, .2, 1);
	--ins-ease-back: cubic-bezier(.34, 1.56, .64, 1);
	--ins-stagger: 90ms;
	--ins-stagger-hero: 140ms;
	--ins-stagger-menu: 50ms;
	--ins-dist-sm: 12px;
	--ins-dist-md: 28px;
	--ins-container: 1170px;
	--ins-adminbar: 0px;
}
:where(body.admin-bar) { --ins-adminbar: 32px; }
@media (max-width: 782px) { :where(body.admin-bar) { --ins-adminbar: 46px; } }
@media (max-width: 600px) { :where(body.admin-bar) { --ins-adminbar: 0px; } }
@media (max-width: 767px) { :where(body) { --ins-dist-md: 20px; --ins-stagger: 70ms; } }

/* 2 ─ Base */
:where(*, *::before, *::after) { box-sizing: border-box; }
:where(html) { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--ins-header-h, 80px) + 16px); }
@media (prefers-reduced-motion: no-preference) { :where(html) { scroll-behavior: smooth; } }
:where(body) {
	margin: 0;
	overflow-x: clip;
	background: #fff;
	color: var(--ins-text);
	font-family: var(--ins-font-body);
	font-size: 15px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
:where(h1, h2, h3, h4, h5, h6) { margin: 0 0 .6em; color: var(--ins-ink); font-family: var(--ins-font-head); font-weight: 400; line-height: 1.15; }
:where(p) { margin: 0 0 1em; }
:where(a) { color: var(--ins-blue-700); text-decoration: none; transition: color var(--ins-dur-fast) var(--ins-ease-std); }
:where(a:hover) { color: var(--ins-blue); }
:where(.elementor-widget-text-editor, .ins-entry__content) :where(p a, li a) { text-decoration: underline; text-underline-offset: 2px; }
:where(img, svg, video) { max-width: 100%; height: auto; }
:where(button, input, select, textarea) { font: inherit; color: inherit; }
:where(:focus-visible) { outline: 2px solid var(--ins-blue); outline-offset: 3px; }
:where(.ins-site-footer, .ins-hero, .ins-testi, [class*="ins-on-dark"]) :where(:focus-visible) { outline-color: #fff; }
:where(.screen-reader-text) {
	position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
	clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
:where(.ins-skip-link:focus) {
	position: fixed; top: 8px; left: 8px; z-index: 100000; width: auto; height: auto; clip: auto; margin: 0;
	padding: 12px 18px; background: #fff; color: var(--ins-ink); box-shadow: var(--ins-shadow-md);
}
:where(.ins-main:focus) { outline: none; }

/* Allineamenti dell'editor WordPress (anche dentro "Editor di testo" di Elementor) */
:where(.alignleft) { float: left; margin: 4px 24px 12px 0; }
:where(.alignright) { float: right; margin: 4px 0 12px 24px; }
:where(.aligncenter) { display: block; margin-inline: auto; }
:where(.elementor-widget-text-editor)::after { content: ""; display: table; clear: both; }
@media (max-width: 767px) { :where(.alignleft, .alignright) { float: none; display: block; margin: 0 0 16px; } }
:where(.gallery-item img, .elementor-image-gallery img) { transition: transform 600ms var(--ins-ease-out), filter var(--ins-dur-base); }
:where(.gallery-icon) { overflow: hidden; }
:where(.gallery-item:hover img) { transform: scale(1.06); }

/* 3 ─ Layout */
:where(.ins-container) { width: 100%; max-width: var(--ins-container); margin-inline: auto; padding-inline: 20px; }
@media (min-width: 768px) { :where(.ins-container) { padding-inline: 24px; } }
:where(.ins-section) { padding-block: clamp(3.5rem, 2.2rem + 5.5vw, 6.5rem); }

/* 4 ─ Header (layout Elementor): fisso in alto; la top bar scorre via. */
:where(.ins-site-header) { position: relative; z-index: 900; background: #fff; transition: box-shadow var(--ins-dur-base) var(--ins-ease-std); }
:where(body.ins-sticky-on) :where(.ins-site-header) { position: sticky; top: calc(var(--ins-adminbar) - var(--ins-topbar-h, 0px)); }
:where(.ins-site-header.is-compact) { box-shadow: 0 6px 24px rgba(17, 17, 17, .08); }
:where(.ins-site-header) :where(.ins-logo img) { transform-origin: left center; transition: transform var(--ins-dur-base) var(--ins-ease-std); }
:where(.ins-site-header.is-compact) :where(.ins-logo img) { transform: scale(.8); }
:where(.ins-topbar) :where(a) { color: inherit; }
:where(.ins-progress) {
	position: fixed; top: var(--ins-adminbar); left: 0; z-index: 1000; width: 100%; height: 3px;
	background: var(--ins-blue); transform: scaleX(0); transform-origin: left; pointer-events: none;
}

/* I pulsanti interni dei componenti usano 2 classi: battono lo stile "Pulsanti" del Kit
   (.elementor-kit-N button) ma restano sotto i controlli dei widget ({{WRAPPER}} ...). */
.ins-slider .ins-sl-arrow, .ins-slider .ins-sl-dot, .ins-slider .ins-sl-pause,
.ins-nav .ins-nav__toggle, .ins-nav .ins-sub-toggle, .ins-nav .ins-nav__close, .ins-float .ins-float__btn { padding: 0; margin: 0; font: inherit; line-height: 1; letter-spacing: 0; text-transform: none; box-shadow: none; min-height: 0; }
/* Stati hover/focus espliciti (il Kit colora button:hover/:focus). */
.ins-slider .ins-sl-dot:hover, .ins-slider .ins-sl-dot:focus { background: none; }
.ins-slider .ins-sl-pause:hover, .ins-slider .ins-sl-pause:focus { background: none; color: var(--ins-ink); }
.ins-nav .ins-nav__close:hover, .ins-nav .ins-nav__close:focus, .ins-nav .ins-sub-toggle:hover, .ins-nav .ins-sub-toggle:focus { background: transparent; color: var(--ins-panel-color, #1f1f1f); }
.ins-float .ins-float__wa:hover, .ins-float .ins-float__wa:focus { background: #25d366; color: #fff; }
/* Link dentro i componenti: il Kit colora tutti gli <a> (.elementor-kit-N a, 0,1,1). */
.ins-hero .ins-hero__btn, .ins-site .ins-btn { color: #fff; }
.ins-hero .ins-hero__btn:hover, .ins-hero .ins-hero__btn:focus, .ins-site .ins-btn:hover, .ins-site .ins-btn:focus { color: #fff; }
.ins-card .ins-card__title a, .ins-card .ins-card__title a:hover, .ins-card .ins-card__title a:focus { color: inherit; }
.ins-card .ins-card__zoom, .ins-card .ins-card__zoom:hover, .ins-card .ins-card__zoom:focus { color: #fff; }
.ins-post .ins-post__title a { color: var(--ins-ink); }
.ins-post .ins-post__title a:hover, .ins-post .ins-post__title a:focus { color: var(--ins-blue-700); }
.ins-nav .ins-nav__list .sub-menu a { color: var(--ins-ink); }
.ins-nav.is-mobile .ins-nav__list a { color: var(--ins-panel-color); }
.ins-pagination .page-numbers { color: var(--ins-ink); }
.ins-pagination .page-numbers.current, .ins-pagination a.page-numbers:hover, .ins-pagination a.page-numbers:focus { color: #fff; }

/* Selettore lingua */
:where(.ins-lang) { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; margin: 0; padding: 0; list-style: none; }
:where(.ins-lang li) { margin: 0; list-style: none; }
:where(.ins-lang a) { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-width: 44px; min-height: 44px; }
:where(.ins-lang img) { display: block; width: 20px; height: auto; border-radius: 2px; }
:where(.ins-lang .is-current a) { color: var(--ins-blue-700); }

/* 5 ─ Widget Menu di navigazione */
:where(.ins-nav) { --ins-pointer: var(--ins-blue); --ins-panel-bg: #fff; --ins-panel-color: var(--ins-ink); position: relative; display: flex; justify-content: var(--ins-toggle-align, flex-end); }
:where(.ins-nav__panel) { width: 100%; }
:where(.ins-nav__list) { display: flex; flex-wrap: wrap; align-items: center; gap: 0; margin: 0; padding: 0; list-style: none; }
:where(.ins-nav--vertical) :where(.ins-nav__list) { flex-direction: column; align-items: stretch; }
:where(.ins-nav__list li) { position: relative; list-style: none; }
:where(.ins-nav__list > li > a) {
	position: relative; display: flex; align-items: center; gap: 6px; min-height: 44px; padding: 10px 12px;
	color: var(--ins-ink); font-family: var(--ins-font-accent); font-size: 14px; font-weight: 600;
	text-transform: uppercase; letter-spacing: .04em; line-height: 1;
}
:where(.ins-nav__list > li > a:hover, .ins-nav__list > li > a:focus-visible, .ins-nav__list > li.current-menu-item > a, .ins-nav__list > li.current-menu-ancestor > a) { color: var(--ins-blue-700); }
:where(.ins-nav__list > li > a)::after {
	content: ""; position: absolute; left: 12px; right: 12px; height: 2px; background: var(--ins-pointer);
	transform: scaleX(0); transform-origin: right; transition: transform var(--ins-dur-base) var(--ins-ease-out);
}
:where(.ins-nav-pointer--top) :where(.ins-nav__list > li > a)::after { top: 0; }
:where(.ins-nav-pointer--underline) :where(.ins-nav__list > li > a)::after { bottom: 4px; }
:where(.ins-nav-pointer--none) :where(.ins-nav__list > li > a)::after { display: none; }
:where(.ins-nav__list > li > a:hover, .ins-nav__list > li > a:focus-visible, .ins-nav__list > li.current-menu-item > a, .ins-nav__list > li.current-menu-ancestor > a)::after { transform: scaleX(1); transform-origin: left; }
:where(.ins-nav__list .menu-item-has-children > a)::before {
	content: ""; order: 2; width: 6px; height: 6px; margin-top: -3px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg);
}
:where(.ins-nav__list .sub-menu) {
	position: absolute; top: 100%; left: 0; z-index: 50; min-width: 240px; width: 300px; margin: 0; padding: 8px 0; list-style: none;
	background: #fff; border-top: 2px solid var(--ins-blue); box-shadow: var(--ins-shadow-md);
	opacity: 0; visibility: hidden; transform: translateY(8px);
	transition: opacity var(--ins-dur-base) var(--ins-ease-std), transform var(--ins-dur-base) var(--ins-ease-out), visibility 0s linear var(--ins-dur-base);
}
:where(.ins-nav__list .sub-menu .sub-menu) { top: -10px; left: 100%; }
:where(.ins-nav__list li:hover > .sub-menu, .ins-nav__list li:focus-within > .sub-menu) { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
:where(.ins-nav__list .sub-menu a) { display: block; padding: 10px 20px; color: var(--ins-ink); font-size: 14px; line-height: 1.4; transition: color var(--ins-dur-fast), background-color var(--ins-dur-fast), padding var(--ins-dur-base) var(--ins-ease-out); }
:where(.ins-nav__list .sub-menu a:hover, .ins-nav__list .sub-menu a:focus-visible, .ins-nav__list .sub-menu .current-menu-item > a) { color: var(--ins-blue-700); background: var(--ins-bg-soft); padding-left: 26px; }
:where(.ins-nav__toggle, .ins-nav__panel-head, .ins-nav__overlay, .ins-sub-toggle) { display: none; }
.ins-nav .ins-nav__toggle {
	align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: var(--ins-radius);
	background: var(--ins-blue-700); color: #fff; cursor: pointer;
}
:where(.ins-burger) { position: relative; display: block; width: 22px; height: 16px; }
:where(.ins-burger span) { position: absolute; left: 0; width: 100%; height: 2px; background: currentColor; border-radius: 2px; transition: transform var(--ins-dur-base) var(--ins-ease-out), opacity var(--ins-dur-fast); }
:where(.ins-burger span:nth-child(1)) { top: 0; }
:where(.ins-burger span:nth-child(2)) { top: 7px; }
:where(.ins-burger span:nth-child(3)) { top: 14px; }
:where(.ins-nav.is-open) :where(.ins-burger span:nth-child(1)) { transform: translateY(7px) rotate(45deg); }
:where(.ins-nav.is-open) :where(.ins-burger span:nth-child(2)) { opacity: 0; }
:where(.ins-nav.is-open) :where(.ins-burger span:nth-child(3)) { transform: translateY(-7px) rotate(-45deg); }

/* Prima che il JS attivi la modalità mobile: nasconde subito il menu e mostra il pulsante (niente "flash"). */
@media (max-width: 1024px) {
	:where(.ins-nav-bp-tablet) :where(.ins-nav:not(.is-mobile)) :where(.ins-nav__panel) { display: none; }
	:where(.ins-nav-bp-tablet) :where(.ins-nav:not(.is-mobile)) :where(.ins-nav__toggle) { display: inline-flex; }
}
@media (max-width: 767px) {
	:where(.ins-nav-bp-mobile) :where(.ins-nav:not(.is-mobile)) :where(.ins-nav__panel) { display: none; }
	:where(.ins-nav-bp-mobile) :where(.ins-nav:not(.is-mobile)) :where(.ins-nav__toggle) { display: inline-flex; }
}
/* Pannello mobile: regole applicate quando JS aggiunge .is-mobile (breakpoint scelto nel widget). */
:where(.ins-nav.is-mobile) :where(.ins-nav__toggle) { display: inline-flex; }
:where(.ins-nav.is-mobile) :where(.ins-nav__panel) {
	position: fixed; top: 0; right: 0; bottom: 0; z-index: 10001; display: flex; flex-direction: column;
	width: min(86vw, 360px); padding: 0 0 24px; overflow-y: auto; background: var(--ins-panel-bg);
	box-shadow: -10px 0 40px rgba(17, 17, 17, .18); transform: translateX(100%); visibility: hidden;
	transition: transform 280ms var(--ins-ease-std), visibility 0s linear 280ms;
}
:where(.ins-nav.is-mobile.is-open) :where(.ins-nav__panel) { transform: none; visibility: visible; transition: transform 400ms var(--ins-ease-out), visibility 0s; }
:where(.ins-nav.is-mobile) :where(.ins-nav__panel-head) { display: flex; align-items: center; justify-content: space-between; min-height: 64px; padding: 0 12px 0 24px; border-bottom: 1px solid var(--ins-line); }
:where(.ins-nav__panel-title) { color: var(--ins-panel-color); font-family: var(--ins-font-head); font-size: 18px; text-transform: uppercase; letter-spacing: .06em; }
.ins-nav .ins-nav__close { width: 44px; height: 44px; padding: 0; border: 0; background: transparent; color: var(--ins-panel-color); font-size: 32px; line-height: 1; cursor: pointer; }
:where(.ins-nav.is-mobile) :where(.ins-nav__overlay) { display: block; position: fixed; inset: 0; z-index: 10000; background: rgba(17, 17, 17, .5); opacity: 0; pointer-events: none; transition: opacity var(--ins-dur-base); }
:where(.ins-nav.is-mobile.is-open) :where(.ins-nav__overlay) { opacity: 1; pointer-events: auto; }
:where(.ins-nav.is-mobile) :where(.ins-nav__list) { flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 0; }
:where(.ins-nav.is-mobile) :where(.ins-nav__list li) { display: flex; flex-wrap: wrap; border-bottom: 1px solid var(--ins-line); }
:where(.ins-nav.is-mobile) :where(.ins-nav__list a) {
	flex: 1; min-height: 52px; padding: 14px 24px; color: var(--ins-panel-color); font-size: 15px; font-weight: 600;
	text-transform: uppercase; letter-spacing: .04em; line-height: 1.35; background: none;
}
:where(.ins-nav.is-mobile) :where(.ins-nav__list > li > a)::after { display: none; }
:where(.ins-nav.is-mobile) :where(.ins-nav__list .menu-item-has-children > a)::before { display: none; }
:where(.ins-nav.is-mobile) :where(.ins-nav__list .current-menu-item > a) { color: var(--ins-blue-700); box-shadow: inset 3px 0 0 var(--ins-blue-700); }
.ins-nav.is-mobile .ins-sub-toggle {
	display: inline-flex; align-items: center; justify-content: center; width: 52px; min-height: 52px; padding: 0; border: 0;
	border-left: 1px solid var(--ins-line); background: transparent; color: var(--ins-panel-color); cursor: pointer;
}
:where(.ins-sub-toggle)::before { content: ""; width: 8px; height: 8px; margin-top: -4px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform var(--ins-dur-base) var(--ins-ease-out); }
:where(.ins-sub-toggle[aria-expanded="true"])::before { transform: rotate(225deg); margin-top: 4px; }
:where(.ins-nav.is-mobile) :where(.ins-nav__list .sub-menu) {
	position: static; display: none; width: 100%; min-width: 0; padding: 0; border: 0; box-shadow: none;
	background: var(--ins-bg-soft); opacity: 1; visibility: visible; transform: none; transition: none;
}
:where(.ins-nav.is-mobile) :where(.ins-nav__list .sub-menu.is-open) { display: block; animation: insFadeUpIn var(--ins-dur-base) var(--ins-ease-out); }
:where(.ins-nav.is-mobile) :where(.ins-nav__list .sub-menu a) { padding-left: 36px; font-size: 14px; text-transform: none; font-weight: 400; }
:where(.ins-nav.is-mobile.is-open) :where(.ins-nav__list > li) { animation: insMenuIn 420ms var(--ins-ease-out) backwards; animation-delay: calc(120ms + var(--ins-i, 0) * var(--ins-stagger-menu)); }
@keyframes insMenuIn { from { opacity: 0; transform: translateX(var(--ins-dist-md)); } to { opacity: 1; transform: none; } }
:where(html.ins-lock, html.ins-lock body) { overflow: hidden; }

/* 6 ─ Pulsanti del tema (usati da widget e template). I pulsanti nativi Elementor usano il Kit. */
:where(.ins-btn, .ins-hero__btn, .ins-cf7 input[type="submit"], .ins-cf7 button[type="submit"]) {
	position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px;
	padding: 14px 28px; overflow: hidden; isolation: isolate; border: 1px solid transparent; border-radius: var(--ins-radius);
	background-color: var(--ins-blue-700); color: #fff; font-family: var(--ins-font-accent); font-size: 14px; font-weight: 600;
	letter-spacing: .06em; line-height: 1.2; text-transform: uppercase; cursor: pointer;
	transition: background-color var(--ins-dur-base) var(--ins-ease-std), color var(--ins-dur-base), transform var(--ins-dur-base) var(--ins-ease-out), box-shadow var(--ins-dur-base);
}
:where(.ins-btn, .ins-hero__btn):hover, :where(.ins-btn, .ins-hero__btn):focus-visible,
:where(.ins-cf7 input[type="submit"], .ins-cf7 button[type="submit"]):hover { background-color: var(--ins-ink); color: #fff; transform: translateY(-2px); box-shadow: var(--ins-shadow-blue); }
:where(.ins-btn, .ins-hero__btn, .ins-cf7 [type="submit"]):active { transform: scale(.98); box-shadow: none; }
/* Pulsanti nativi Elementor: solo micro-interazione (colori dal Kit/widget). */
:where(.elementor-button) { transition: background-color var(--ins-dur-base) var(--ins-ease-std), color var(--ins-dur-base), transform var(--ins-dur-base) var(--ins-ease-out), box-shadow var(--ins-dur-base); }
:where(.elementor-button:hover, .elementor-button:focus-visible) { transform: translateY(-2px); box-shadow: var(--ins-shadow-blue); }

/* 7 ─ Componenti comuni degli slider */
:where(.ins-slider) { position: relative; }
:where(.ins-fade-track) { display: grid; }
:where(.ins-fade-track > .ins-sl-slide) { grid-area: 1 / 1; opacity: 0; visibility: hidden; transition: opacity var(--ins-dur-hero) var(--ins-ease-inout), visibility 0s linear var(--ins-dur-hero); }
:where(.ins-fade-track > .ins-sl-slide.is-active) { z-index: 2; opacity: 1; visibility: visible; transition: opacity var(--ins-dur-hero) var(--ins-ease-inout), visibility 0s; }
:where(.ins-fade-track > .ins-sl-slide.is-leaving) { z-index: 1; opacity: 1; visibility: visible; }
.ins-slider .ins-sl-arrow {
	display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; padding: 0; z-index: 5;
	border: 1px solid transparent; border-radius: var(--ins-radius); background: rgba(255, 255, 255, .9); color: var(--ins-ink); cursor: pointer;
	transition: background-color var(--ins-dur-base) var(--ins-ease-std), color var(--ins-dur-base), transform var(--ins-dur-base) var(--ins-ease-out), opacity var(--ins-dur-base);
}
:where(.ins-sl-arrow svg) { width: 45%; height: 45%; }
.ins-slider .ins-sl-arrow:hover, .ins-slider .ins-sl-arrow:focus { background: var(--ins-blue-700); color: #fff; }
.ins-slider .ins-sl-arrow--prev:hover { transform: translateX(-4px); }
.ins-slider .ins-sl-arrow--next:hover { transform: translateX(4px); }
.ins-slider .ins-sl-arrow[disabled] { opacity: .35; cursor: default; transform: none; background: rgba(255, 255, 255, .9); color: var(--ins-ink); }
:where(.ins-sl-footer) { display: flex; align-items: center; justify-content: center; gap: 4px; }
:where(.ins-sl-footer:empty) { display: none; }
:where(.ins-sl-dots) { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; }
:where(.ins-hero, .ins-testi) :where(.ins-sl-dots) { flex-wrap: nowrap; }
:where(.ins-slider) { --ins-dot: var(--ins-grey-hero); --ins-dot-active: var(--ins-blue-700); }
.ins-slider .ins-sl-dot {
	display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 44px; padding: 0; border: 0; background: none; cursor: pointer;
}
:where(.ins-sl-dot)::before { content: ""; width: 10px; height: 10px; border-radius: 999px; background: var(--ins-dot); transition: width var(--ins-dur-base) var(--ins-ease-out), background-color var(--ins-dur-base); }
:where(.ins-sl-dot[aria-current="true"])::before { width: 28px; background: var(--ins-dot-active); }
.ins-slider .ins-sl-pause { position: relative; width: 44px; height: 44px; padding: 0; border: 0; background: none; color: var(--ins-ink); cursor: pointer; }
:where(.ins-sl-pause__icon) { position: absolute; inset: 0; margin: auto; width: 12px; height: 14px; border-left: 4px solid currentColor; border-right: 4px solid currentColor; }
:where(.ins-sl-pause[aria-pressed="true"]) :where(.ins-sl-pause__icon) { width: 0; height: 0; border-style: solid; border-width: 8px 0 8px 13px; border-color: transparent transparent transparent currentColor; }
:where(.ins-sl-timer) { position: absolute; left: 0; right: 0; bottom: 0; z-index: 4; height: 3px; background: rgba(31, 31, 31, .12); pointer-events: none; }
:where(.ins-sl-timer:not(.is-visible)) { opacity: 0; }
:where(.ins-sl-timer span) { display: block; height: 100%; background: var(--ins-blue); transform: scaleX(0); transform-origin: left; }
:where(.ins-slider.is-running) :where(.ins-sl-timer span) { animation: insTimer var(--ins-hold, 6500ms) linear forwards; }
:where(.ins-slider.is-paused) :where(.ins-sl-timer span, .ins-hero__img) { animation-play-state: paused; }
@keyframes insTimer { to { transform: scaleX(1); } }

/* Effetto "Scorrimento" dello slider hero */
:where(.ins-hero--slide) :where(.ins-fade-track > .ins-sl-slide) { transition: visibility 0s linear 900ms; }
:where(.ins-hero--slide) :where(.ins-fade-track > .ins-sl-slide.is-active) { opacity: 1; animation: insSlideIn 900ms var(--ins-ease-inout) both; }
:where(.ins-hero--slide) :where(.ins-fade-track > .ins-sl-slide.is-leaving) { animation: insSlideOut 900ms var(--ins-ease-inout) both; }
@keyframes insSlideIn { from { transform: translateX(100%); } to { transform: none; } }
@keyframes insSlideOut { from { transform: none; } to { transform: translateX(-30%); } }

/* 8 ─ Slider hero */
:where(.ins-hero) { height: 800px; overflow: hidden; background: #e9e9e9; }
:where(.ins-hero__track) { height: 100%; }
:where(.ins-hero__slide) { position: relative; height: 100%; overflow: hidden; }
:where(.ins-hero__media) { position: absolute; inset: 0; }
.ins-hero .ins-hero__img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center top; }
:where(.ins-hero__slide:nth-child(6n+2) .ins-hero__img) { transform-origin: 0 0; }
:where(.ins-hero__slide:nth-child(6n+3) .ins-hero__img) { transform-origin: 100% 100%; }
:where(.ins-hero__slide:nth-child(6n+4) .ins-hero__img) { transform-origin: 100% 0; }
:where(.ins-hero__slide:nth-child(6n+5) .ins-hero__img) { transform-origin: 0 100%; }
:where(.ins-kenburns-yes) :where(.ins-hero__slide.is-active .ins-hero__img, .ins-hero__slide.is-leaving .ins-hero__img) { animation: insKenBurns var(--ins-kb-dur) linear both; }
@keyframes insKenBurns { from { transform: scale(1); } to { transform: scale(1.08); } }
:where(.ins-hero__overlay) { position: absolute; inset: 0; pointer-events: none; }
:where(.ins-hero__inner) { position: relative; z-index: 2; display: flex; align-items: center; justify-content: flex-end; height: 100%; max-width: var(--ins-container); margin-inline: auto; padding: 40px 24px 80px; }
:where(.ins-hero__content) { max-width: 100%; }
:where(.ins-hero__fg) { display: block; width: min(995px, 90vw); height: auto; margin: 0 auto 24px; }
:where(.ins-hero__text) { color: var(--ins-grey-hero); font-family: "Trebuchet MS", "Segoe UI", sans-serif; font-size: clamp(2.375rem, 1.325rem + 4.485vw, 4.6875rem); line-height: .95; }
:where(.ins-hero__text > *) { margin: 0 0 .08em; padding-block: .06em; }
:where(.ins-hero__text) :where(strong, b) { color: var(--ins-blue-700); font-size: clamp(2.875rem, 1.625rem + 5.333vw, 5.625rem); font-weight: 700; }
:where(.ins-hero__btn) { margin-top: 24px; }
/* Righe che compaiono in sequenza quando la slide diventa attiva. */
:where(.ins-js) :where(.ins-hero__slide) :where(.ins-hero__text > *, .ins-hero__fg, .ins-hero__btn) { opacity: 0; }
:where(.ins-js) :where(.ins-hero__slide.is-active) :where(.ins-hero__text > *) { animation: insLineUp var(--ins-dur-hero) var(--ins-ease-out) both; animation-delay: calc(300ms + var(--ins-line, 0) * var(--ins-stagger-hero)); }
:where(.ins-js) :where(.ins-hero__slide.is-active) :where(.ins-hero__fg) { animation: insSoftZoomIn 800ms var(--ins-ease-out) 200ms both; }
:where(.ins-js) :where(.ins-hero__slide.is-active) :where(.ins-hero__btn) { animation: insFadeUpIn 700ms var(--ins-ease-out) both; animation-delay: calc(500ms + var(--ins-lines, 3) * var(--ins-stagger-hero)); }
:where(.ins-hero__text > *:nth-child(2)) { --ins-line: 1; }
:where(.ins-hero__text > *:nth-child(3)) { --ins-line: 2; }
:where(.ins-hero__text > *:nth-child(4)) { --ins-line: 3; }
:where(.ins-hero__text > *:nth-child(5)) { --ins-line: 4; }
:where(.ins-hero__text > *:nth-child(n+6)) { --ins-line: 5; }
@keyframes insLineUp { from { opacity: 0; transform: translateY(.55em); clip-path: inset(0 0 100% 0); } to { opacity: 1; transform: none; clip-path: inset(-10% -5% -20% -5%); } }
@keyframes insSoftZoomIn { from { opacity: 0; transform: scale(.94); } to { opacity: 1; transform: none; } }
@keyframes insFadeUpIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
:where(.ins-hero) :where(.ins-sl-arrow) { position: absolute; top: 50%; translate: 0 -50%; }
:where(.ins-hero) :where(.ins-sl-arrow--prev) { left: 24px; }
:where(.ins-hero) :where(.ins-sl-arrow--next) { right: 24px; }
:where(.ins-hero) :where(.ins-sl-footer) { position: absolute; left: 50%; bottom: 24px; z-index: 5; width: max-content; max-width: calc(100% - 32px); transform: translateX(-50%); padding: 0 8px; border-radius: 999px; background: rgba(255, 255, 255, .9); box-shadow: var(--ins-shadow-sm); }
@media (max-width: 1024px) {
	.ins-hero .ins-sl-arrow { display: none; }
	:where(.ins-hero__inner) { align-items: flex-end; padding-bottom: 96px; }
}
@media (max-width: 767px) {
	:where(.ins-hero__inner) { justify-content: flex-start; }
	:where(.ins-hero__slide) :where(.ins-hero__overlay) { background-image: linear-gradient(0deg, rgba(255, 255, 255, .88) 0, rgba(255, 255, 255, .55) 32%, transparent 58%); }
}

/* 9 ─ Carosello trattamenti */
:where(.ins-carousel) { --ins-per-view: 4; --ins-gap: 0px; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
:where(.ins-carousel__viewport) { flex: 0 0 100%; overflow: hidden; }
:where(.ins-carousel__track) {
	display: flex; gap: var(--ins-gap); margin: 0; padding: 0; list-style: none; overflow-x: auto; overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none;
}
:where(.ins-carousel__track)::-webkit-scrollbar { display: none; }
:where(.ins-carousel__item) { flex: 0 0 calc((100% - (var(--ins-per-view) - 1) * var(--ins-gap)) / var(--ins-per-view)); min-width: 0; scroll-snap-align: start; list-style: none; }
.ins-carousel .ins-sl-arrow { border-color: var(--ins-grey-hero); background: #fff; }
:where(.ins-carousel) :where(.ins-sl-footer) { flex: 0 0 100%; }
:where(.ins-card) { --ins-card-shade: rgba(17, 17, 17, .6); --ins-card-shade-hover: rgba(22, 119, 174, .92); position: relative; overflow: hidden; height: 100%; background: #1f1f1f; isolation: isolate; }
:where(.ins-card__media) { height: 300px; overflow: hidden; }
.ins-card .ins-card__img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform 600ms var(--ins-ease-out); }
:where(.ins-card)::after {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background: linear-gradient(0deg, var(--ins-card-shade) 0%, transparent 60%); transition: opacity var(--ins-dur-base) var(--ins-ease-std);
}
:where(.ins-card)::before {
	content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: 0;
	background: linear-gradient(0deg, var(--ins-card-shade-hover) 0%, transparent 85%); transition: opacity var(--ins-dur-base) var(--ins-ease-std);
}
:where(.ins-card__body) { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 20px 22px; transition: transform var(--ins-dur-base) var(--ins-ease-out); }
:where(.ins-card__title) { margin: 0; color: #fff; font-family: var(--ins-font-head); font-size: 18px; line-height: 1.2; text-transform: uppercase; }
:where(.ins-card__title a) { color: inherit; }
:where(.ins-card__title a)::after { content: ""; position: absolute; inset: 0; z-index: 2; }
:where(.ins-card__more) { display: inline-block; margin-top: 8px; color: #fff; font-family: var(--ins-font-accent); font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; opacity: 0; transform: translateY(8px); transition: opacity var(--ins-dur-base), transform var(--ins-dur-base) var(--ins-ease-out); }
:where(.ins-card__zoom) {
	position: absolute; top: 16px; right: 16px; z-index: 3; display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; border-radius: 999px; background: var(--ins-blue); color: #fff; font-size: 26px; line-height: 1;
	opacity: 0; transform: scale(.6) rotate(-90deg); transition: opacity var(--ins-dur-base), transform var(--ins-dur-base) var(--ins-ease-back);
}
:where(.ins-card:hover, .ins-card:focus-within) :where(.ins-card__img) { transform: scale(1.08); }
:where(.ins-card:hover, .ins-card:focus-within)::before { opacity: 1; }
:where(.ins-card:hover, .ins-card:focus-within) :where(.ins-card__body) { transform: translateY(-12px); }
:where(.ins-card:hover, .ins-card:focus-within) :where(.ins-card__more) { opacity: 1; transform: none; transition-delay: 80ms; }
:where(.ins-card:hover, .ins-card:focus-within) :where(.ins-card__zoom) { opacity: 1; transform: none; }
@media (hover: none) { :where(.ins-card__zoom) { opacity: 1; transform: none; } }

/* 10 ─ Testimonianze */
:where(.ins-testi) { color: #fff; text-align: center; }
:where(.ins-testi__quote) { display: block; width: 44px; height: 33px; margin: 0 auto 20px; color: rgba(255, 255, 255, .55); }
:where(.ins-testi__track) { max-width: 760px; margin-inline: auto; }
:where(.ins-testi__item) { margin: 0; }
:where(.ins-testi__message) { margin: 0 0 18px; padding: 0; border: 0; color: #fff; font-size: 18px; line-height: 1.6; font-style: italic; }
:where(.ins-testi__message p:last-child) { margin-bottom: 0; }
:where(.ins-testi__author) { display: flex; flex-direction: column; gap: 2px; }
:where(.ins-testi__name) { color: #fff; font-weight: 700; letter-spacing: .04em; }
:where(.ins-testi__role) { font-size: 13px; opacity: .8; }
:where(.ins-js) :where(.ins-testi__item.is-active) :where(.ins-testi__message) { animation: insTestiIn 600ms var(--ins-ease-out) both; }
:where(.ins-js) :where(.ins-testi__item.is-active) :where(.ins-testi__author) { animation: insTestiIn 600ms var(--ins-ease-out) 100ms both; }
@keyframes insTestiIn { from { opacity: 0; filter: blur(6px); transform: translateY(12px); } to { opacity: 1; filter: none; transform: none; } }
:where(.ins-testi) :where(.ins-fade-track > .ins-sl-slide) { transition-duration: 400ms; }
:where(.ins-testi) :where(.ins-sl-arrow) { position: absolute; top: 50%; translate: 0 -50%; }
.ins-testi .ins-sl-arrow { border-color: #fff; background: transparent; color: #fff; }
.ins-testi .ins-sl-arrow:hover, .ins-testi .ins-sl-arrow:focus { background: #fff; color: var(--ins-ink); }
:where(.ins-testi) :where(.ins-sl-arrow--prev) { left: 0; }
:where(.ins-testi) :where(.ins-sl-arrow--next) { right: 0; }
:where(.ins-testi) :where(.ins-sl-footer) { margin-top: 16px; }
:where(.ins-testi.ins-slider) { --ins-dot: rgba(255, 255, 255, .5); --ins-dot-active: #fff; }
.ins-testi .ins-sl-pause, .ins-testi .ins-sl-pause:hover, .ins-testi .ins-sl-pause:focus { color: #fff; }
@media (max-width: 767px) { .ins-testi .ins-sl-arrow { display: none; } :where(.ins-testi__message) { font-size: 16px; } }

/* 11 ─ Moduli Contact Form 7 */
:where(.ins-cf7) { --ins-focus: var(--ins-blue-700); --ins-form-gap: 16px; }
:where(.ins-cf7 form > p, .ins-cf7 .wpcf7-form > p) { margin: 0 0 var(--ins-form-gap); }
:where(.ins-form-grid) { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--ins-form-gap); }
:where(.ins-form-grid > *) { grid-column: 1 / -1; min-width: 0; }
:where(.ins-cf7) { container-type: inline-size; }
@container (min-width: 380px) {
	:where(.ins-form-grid > .ins-col-6) { grid-column: span 6; }
	:where(.ins-form-grid > .ins-col-4) { grid-column: span 4; }
	:where(.ins-form-grid > .ins-col-center) { grid-column: 5 / span 4; }
}
:where(.ins-cf7 .ins-label) { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
:where(.ins-form-labels-yes) :where(.ins-cf7 .ins-label) { position: static; width: auto; height: auto; margin: 0 0 6px; overflow: visible; clip: auto; display: block; font-size: 14px; font-weight: 600; color: var(--ins-ink); }
:where(.ins-cf7 .wpcf7-form-control-wrap) { display: block; }
:where(.ins-cf7) :where(input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]), select, textarea) {
	display: block; width: 100%; min-height: 48px; padding: 11px 14px; border: 1px solid #c9c9c9; border-radius: var(--ins-radius);
	background: #fff; color: var(--ins-ink); font-size: 16px; line-height: 1.4;
	transition: border-color var(--ins-dur-fast), box-shadow var(--ins-dur-base) var(--ins-ease-std);
}
:where(.ins-cf7 textarea) { height: 140px; resize: vertical; }
:where(.ins-cf7 select) { appearance: none; padding-right: 40px; background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 15px) 50%; background-size: 5px 5px; background-repeat: no-repeat; }
:where(.ins-cf7) :where(input, select, textarea):hover { border-color: var(--ins-ink); }
:where(.ins-cf7) :where(input, select, textarea):focus { outline: none; border-color: var(--ins-focus); box-shadow: 0 0 0 1px var(--ins-focus), 0 0 0 4px rgba(37, 146, 205, .2); }
:where(.ins-cf7 ::placeholder) { color: #8b8b8b; opacity: 1; }
:where(.ins-cf7 .wpcf7-acceptance, .ins-cf7 .wpcf7-list-item) { margin: 0; font-size: 13px; line-height: 1.5; }
:where(.ins-cf7 .wpcf7-list-item label) { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
:where(.ins-cf7 input[type="checkbox"]) { flex: 0 0 auto; width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--ins-blue-700); }
:where(.ins-cf7 .ins-submit) { display: grid; justify-items: var(--ins-submit-align, start); }
:where(.ins-cf7 .wpcf7-spinner) { margin: 12px auto 0; }
.ins-cf7 .wpcf7-not-valid-tip { margin-top: 6px; color: var(--ins-error); font-size: 13px; }
.ins-cf7 .wpcf7-list-item { margin: 0; }
.ins-cf7 .wpcf7 .wpcf7-spinner { margin: 12px auto 0; }
.ins-cf7 .wpcf7 form .wpcf7-response-output { margin: 16px 0 0; padding: 12px 16px; border: 1px solid currentColor; border-radius: var(--ins-radius); font-size: 14px; }
.ins-cf7 .wpcf7 form.sent .wpcf7-response-output { color: var(--ins-success); border-color: var(--ins-success); }
.ins-cf7 .wpcf7 form:is(.invalid, .unaccepted, .payment-required, .failed, .aborted, .spam) .wpcf7-response-output { color: var(--ins-error); border-color: var(--ins-error); }
:where(.ins-cf7) :where(.wpcf7-not-valid) { border-color: var(--ins-error); }
:where(.ins-cf7 form.invalid .wpcf7-not-valid) { animation: insShake 300ms var(--ins-ease-std) 1; }
:where(.ins-cf7 .wpcf7-response-output) { margin: 16px 0 0; padding: 12px 16px; border: 1px solid currentColor; border-radius: var(--ins-radius); font-size: 14px; }
:where(.ins-cf7 form.sent .wpcf7-response-output) { color: var(--ins-success); border-color: var(--ins-success); }
:where(.ins-cf7 form.invalid .wpcf7-response-output, .ins-cf7 form.failed .wpcf7-response-output, .ins-cf7 form.spam .wpcf7-response-output) { color: var(--ins-error); border-color: var(--ins-error); }
:where(.ins-cf7 .wpcf7-quiz-label) { display: block; margin-bottom: 6px; font-size: 14px; }
@keyframes insShake { 25% { transform: translateX(-4px); } 75% { transform: translateX(4px); } }

/* 12 ─ Griglia articoli */
:where(.ins-posts) { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
@media (max-width: 1024px) { :where(.ins-posts--archive, .ins-posts--portfolio) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { :where(.ins-posts--archive, .ins-posts--portfolio) { grid-template-columns: 1fr; } }
:where(.ins-post) { display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid var(--ins-line); transition: transform var(--ins-dur-base) var(--ins-ease-out), box-shadow var(--ins-dur-base); }
:where(.ins-post:hover) { transform: translateY(-6px); box-shadow: var(--ins-shadow-md); }
:where(.ins-post__media) { display: block; height: 220px; overflow: hidden; }
.ins-post .ins-post__media img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform 600ms var(--ins-ease-out); }
:where(.ins-post:hover) :where(.ins-post__media img) { transform: scale(1.06); }
:where(.ins-post__body) { display: flex; flex: 1; flex-direction: column; gap: 10px; padding: 22px 24px 26px; }
:where(.ins-post__meta) { color: var(--ins-grey-hero); font-size: 13px; }
:where(.ins-post__title) { margin: 0; font-size: 20px; line-height: 1.25; text-transform: uppercase; }
:where(.ins-post__title a) { color: var(--ins-ink); }
:where(.ins-post__title a:hover) { color: var(--ins-blue-700); }
:where(.ins-post__excerpt p) { margin: 0; }
:where(.ins-post__more) { margin-top: auto; color: var(--ins-blue-700); font-family: var(--ins-font-accent); font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
:where(.ins-pagination) { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: 40px; }
:where(.ins-pagination .page-numbers) { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 12px; border: 1px solid var(--ins-line); color: var(--ins-ink); }
:where(.ins-pagination .page-numbers.current, .ins-pagination a.page-numbers:hover) { border-color: var(--ins-blue-700); background: var(--ins-blue-700); color: #fff; }

/* 13 ─ Staff (contenitore con classe ins-team-card) e utility per i titoli */
:where(.ins-team-card) { transition: transform var(--ins-dur-base) var(--ins-ease-out), box-shadow var(--ins-dur-base); }
:where(.ins-team-card) :where(.elementor-widget-image) { overflow: hidden; }
:where(.ins-team-card) :where(.elementor-widget-image img) { display: block; transition: transform 600ms var(--ins-ease-out); }
:where(.ins-team-card:hover) { transform: translateY(-6px); box-shadow: var(--ins-shadow-md); }
:where(.ins-team-card:hover) :where(.elementor-widget-image img) { transform: scale(1.05); }
:where(.ins-team-card) :where(.elementor-heading-title) { transition: color var(--ins-dur-base); }
:where(.ins-team-card:hover) :where(.elementor-widget-heading .elementor-heading-title) { color: var(--ins-blue-700); }
:where(.ins-team-card) :where(.elementor-widget-heading)::after { content: ""; display: block; width: 0; height: 2px; margin: 10px auto 0; background: var(--ins-blue); transition: width var(--ins-dur-base) var(--ins-ease-out); }
:where(.ins-team-card:hover) :where(.elementor-widget-heading)::after { width: 40px; }
:where(.elementor-social-icon) { transition: transform var(--ins-dur-base) var(--ins-ease-back), background-color var(--ins-dur-base), color var(--ins-dur-base); }
:where(.elementor-social-icon:hover, .elementor-social-icon:focus-visible) { transform: scale(1.08); }
/* Titolo con barra laterale blu (classe CSS "ins-bar-title" sul widget Titolo). */
:where(.ins-bar-title) :where(.elementor-heading-title) { position: relative; padding-left: 22px; }
:where(.ins-bar-title) :where(.elementor-heading-title)::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--ins-blue); transform-origin: top; }
:where(.ins-js .animated) :where(.ins-bar-title .elementor-heading-title)::before, :where(.ins-js .ins-bar-title.animated .elementor-heading-title)::before { animation: insBarGrow 600ms var(--ins-ease-out) 150ms backwards; }
@keyframes insBarGrow { from { transform: scaleY(0); } to { transform: scaleY(1); } }
/* Evidenziatore su una parola: <span class="ins-mark">parola</span> nel testo del titolo. */
:where(.ins-mark) { position: relative; z-index: 0; display: inline-block; }
:where(.ins-mark)::after { content: ""; position: absolute; left: -.08em; right: -.08em; bottom: .06em; z-index: -1; height: .38em; background: rgba(37, 146, 205, .18); transform-origin: left; }
:where(.ins-on-dark .ins-mark, .ins-testi .ins-mark)::after { background: rgba(255, 255, 255, .22); }
:where(.ins-js .animated) :where(.ins-mark)::after { animation: insMark 700ms var(--ins-ease-out) 350ms backwards; }
@keyframes insMark { from { transform: scaleX(0); } to { transform: scaleX(1); } }
/* Sollevamento al passaggio (Effetti di movimento > Sollevamento). */
:where(.ins-lift-yes) { transition: transform var(--ins-dur-base) var(--ins-ease-out), box-shadow var(--ins-dur-base); }
:where(.ins-lift-yes:hover, .ins-lift-yes:focus-within) { transform: translateY(-6px); box-shadow: var(--ins-shadow-md); }
/* Alone pulsante (classe "ins-halo" su un widget). */
:where(.ins-halo) { position: relative; }
:where(.ins-halo.animated)::after { content: ""; position: absolute; inset: 0; border: 2px solid rgba(255, 255, 255, .6); border-radius: inherit; pointer-events: none; animation: insHalo 1400ms var(--ins-ease-out) 800ms 2 both; }
@keyframes insHalo { from { opacity: .6; transform: scale(1); } to { opacity: 0; transform: scale(1.5); } }
/* Lista icone in linea (top bar) */
:where(.ins-topbar) :where(.elementor-icon-list-item a) { min-height: 32px; }

/* 14 ─ Pulsanti flottanti */
:where(.ins-float) { --ins-float-size: 56px; --ins-float-x: 24px; --ins-float-y: 24px; position: fixed; bottom: var(--ins-float-y); right: var(--ins-float-x); z-index: 950; display: flex; flex-direction: column-reverse; align-items: center; gap: 12px; }
:where(.ins-float-side-left) :where(.ins-float) { right: auto; left: var(--ins-float-x); }
.ins-float .ins-float__btn {
	position: relative; display: inline-flex; align-items: center; justify-content: center; width: var(--ins-float-size); height: var(--ins-float-size);
	padding: 0; border: 0; border-radius: 999px; box-shadow: var(--ins-shadow-md); cursor: pointer;
	transition: transform var(--ins-dur-base) var(--ins-ease-out), opacity var(--ins-dur-base), box-shadow var(--ins-dur-base);
}
.ins-float .ins-float__btn:hover, .ins-float .ins-float__btn:focus-visible { transform: translateY(-3px); }
.ins-float .ins-float__wa { background: #25d366; color: #fff; }
:where(.ins-float__wa svg) { width: 55%; height: 55%; }
:where(.ins-float__wa.has-pulse)::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: inherit; z-index: -1; animation: insPulse 1600ms var(--ins-ease-out) 1500ms 3 both; }
@keyframes insPulse { from { opacity: .5; transform: scale(1); } to { opacity: 0; transform: scale(1.6); } }
.ins-float .ins-float__top { width: calc(var(--ins-float-size) - 8px); height: calc(var(--ins-float-size) - 8px); background: #fff; color: var(--ins-ink); }
.ins-float .ins-float__top:hover, .ins-float .ins-float__top:focus { background: #fff; color: var(--ins-blue-700); }
.ins-float .ins-float__top:not(.is-visible) { opacity: 0; transform: translateY(12px) scale(.9); pointer-events: none; visibility: hidden; }
:where(.ins-float__ring) { position: absolute; inset: 0; width: 100%; height: 100%; transform: rotate(-90deg); }
:where(.ins-float__ring circle) { fill: none; stroke-width: 2; }
:where(.ins-float__ring-track) { stroke: var(--ins-line); }
:where(.ins-float__ring-fill) { stroke: var(--ins-blue); stroke-dasharray: 138.23; stroke-dashoffset: 138.23; }
:where(.ins-float__arrow) { width: 20px; height: 20px; transition: transform var(--ins-dur-base) var(--ins-ease-out); }
:where(.ins-float__top:hover) :where(.ins-float__arrow) { transform: translateY(-2px); }
@media (max-width: 767px) { :where(.ins-float) { --ins-float-x: 16px; --ins-float-y: 16px; --ins-float-size: 52px; } }

/* 15 ─ Footer (layout Elementor) */
:where(.ins-site-footer) { position: relative; }
:where(.ins-site-footer) :where(.elementor-icon-list-item a, .ins-nav__list .sub-menu a) { transition: color var(--ins-dur-fast), transform var(--ins-dur-base) var(--ins-ease-out); }
:where(.ins-footer-links) :where(.ins-nav__list > li > a) { padding: 6px 0; min-height: 36px; color: var(--ins-footer-text); font-family: var(--ins-font-body); font-weight: 400; text-transform: none; letter-spacing: 0; line-height: 1.4; }
:where(.ins-footer-links) :where(.ins-nav__list > li > a)::after { display: none; }
:where(.ins-footer-links) :where(.ins-nav__list > li > a)::before { content: "\203A"; order: 0; width: auto; height: auto; margin: 0; border: 0; transform: none; opacity: 0; transition: opacity var(--ins-dur-fast); }
:where(.ins-footer-links) :where(.ins-nav__list > li > a:hover, .ins-nav__list > li > a:focus-visible) { color: #fff; transform: translateX(4px); }
:where(.ins-footer-links) :where(.ins-nav__list > li > a:hover)::before { opacity: 1; }

/* 16 ─ Template PHP (archivi, articoli, 404, fallback) */
:where(.ins-page-banner) { position: relative; overflow: hidden; padding: 56px 0; background: #f6f6f6 var(--ins-banner-image, none) center / cover no-repeat; }
:where(.ins-page-banner[style])::before { content: ""; position: absolute; inset: 0; background: rgba(17, 17, 17, .55); }
:where(.ins-page-banner__inner) { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; }
:where(.ins-page-banner__title) { margin: 0; font-size: clamp(1.75rem, 1.466rem + 1.212vw, 2.375rem); text-transform: uppercase; animation: insMaskUpIn 900ms var(--ins-ease-out) both; }
:where(.ins-page-banner[style]) :where(.ins-page-banner__title, .ins-page-banner__subtitle, .ins-breadcrumb, .ins-breadcrumb a) { color: #fff; }
:where(.ins-page-banner__subtitle) { width: 100%; margin: 0; order: 3; }
:where(.ins-breadcrumb) { display: flex; flex-wrap: wrap; gap: 8px; font-size: 13px; color: var(--ins-text); }
@keyframes insMaskUpIn { from { opacity: 0; clip-path: inset(100% 0 0 0); transform: translateY(20px); } to { opacity: 1; clip-path: inset(-10% 0 -20% 0); transform: none; } }
:where(.ins-entry) { max-width: 860px; margin-inline: auto; }
:where(.ins-entry__meta) { color: var(--ins-grey-hero); font-size: 13px; }
:where(.ins-entry__thumb) { margin: 0 0 28px; }
:where(.ins-entry__content) :where(img) { height: auto; }
:where(.ins-entry__content) :where(h2, h3) { margin-top: 1.6em; text-transform: uppercase; }
:where(.ins-404) { text-align: center; }
:where(.ins-404__code) { margin: 0; color: var(--ins-blue); font-family: var(--ins-font-head); font-size: clamp(5rem, 3rem + 10vw, 10rem); line-height: 1; }
:where(.ins-comments) { max-width: 860px; margin: 48px auto 0; }
:where(.post-navigation) { max-width: 860px; margin: 40px auto 0; }
:where(.post-navigation .nav-links) { display: flex; justify-content: space-between; gap: 20px; }
:where(.ins-fallback-header) { border-bottom: 1px solid var(--ins-line); }
:where(.ins-fallback-header__inner) { display: flex; align-items: center; justify-content: space-between; min-height: 80px; gap: 20px; }
:where(.ins-fallback-header__brand) { color: var(--ins-ink); font-family: var(--ins-font-head); font-size: 22px; }
:where(.ins-fallback-header__brand img) { max-height: 60px; width: auto; }
:where(.ins-fallback-nav ul) { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 0; padding: 0; list-style: none; }
:where(.ins-fallback-nav .sub-menu) { display: none; }
:where(.ins-fallback-footer) { padding: 32px 0; background: var(--ins-footer); color: var(--ins-footer-text); text-align: center; }
:where(.ins-editor-notice) { padding: 16px; border: 1px dashed #c9c9c9; background: #fafafa; color: #555; font-size: 13px; }
:where(.ins-layout-preview__spacer) { padding: 120px 24px; background: repeating-linear-gradient(45deg, #fafafa 0 12px, #f2f2f2 12px 24px); color: #999; text-align: center; }
:where(.ins-posts-empty) { text-align: center; }

/* 17 ─ Riduci movimento: niente animazioni decorative, stati finali immediati. */
@media (prefers-reduced-motion: reduce) {
	:where(.ins-hero__img, .ins-card__img, .ins-post__media img, .ins-team-card img) { animation: none; transform: none; }
	:where(.ins-js) :where(.ins-hero__slide) :where(.ins-hero__text > *, .ins-hero__fg, .ins-hero__btn) { opacity: 1; animation: none; }
	:where(.ins-js) :where(.ins-testi__item.is-active) :where(.ins-testi__message, .ins-testi__author) { animation: none; }
	:where(.ins-fade-track > .ins-sl-slide) { transition-duration: 200ms; }
	:where(.ins-sl-timer) { display: none; }
	:where(.ins-float__wa.has-pulse)::after, :where(.ins-halo.animated)::after { animation: none; display: none; }
	:where(.ins-mark)::after, :where(.ins-bar-title .elementor-heading-title)::before { animation: none; }
	:where(.ins-page-banner__title) { animation: none; }
	:where(.ins-nav.is-mobile.is-open) :where(.ins-nav__list > li) { animation: none; }
	:where(*) { scroll-behavior: auto; }
}
