/* ==========================================================================
   Ossidiana — adattamento a Elementor
   La base (ossidiana-base.css) è lo stile originale di ossidiana.net.
   Qui: come gli elementi di Elementor ereditano quello stile + componenti.
   Classi da usare in Elementor (Avanzate > Classi CSS):
     Tipografia:  section-title · h1 · h2 · h3 · h4 · os-thin · uppercase
     Pulsanti:    os-btn-primary · os-btn-pill · os-btn-light
     Immagini:    os-cover · os-contain · os-top · os-bottom · os-dim (luminosità 50%)
     Effetti:     os-glow (alone viola) · os-reveal (compare scorrendo)
   ========================================================================== */

/* --- Base ---------------------------------------------------------------- */
html, body { width: auto; overflow-x: clip !important; }
body.os-site { background-color: rgb(var(--color-background)); color: rgb(var(--color-neutral-white)); font-family: Switzer, sans-serif; }
body.os-site { font-size: var(--text-base); line-height: var(--text-base-line-height); }
.os-site .elementor a { color: inherit; text-decoration: none; }
.os-site .site-main, .os-site .page-content { margin: 0; padding: 0; max-width: none; }
.os-site img { max-width: 100%; }

/* I testi di Elementor ereditano dalla classe messa sul widget */
.os-site .elementor-widget-heading .elementor-heading-title,
.os-site .elementor-widget-text-editor,
.os-site .elementor-widget-text-editor p {
	font-family: inherit; font-size: inherit; line-height: inherit; font-weight: inherit;
	color: inherit; text-transform: inherit; letter-spacing: inherit; text-align: inherit;
}
.os-site .elementor-widget-text-editor p { margin: 0; }
.os-site .elementor-widget-text-editor.os-gap p + p { margin-top: 1rem; }
.os-site .elementor-widget:not(:last-child) { margin-block-end: 0; }
.os-site .e-con { --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; }

/* Tipografia (stessi valori fluidi dell'originale) */
.os-site .section-title, .os-site .section-title * { font-family: PPNeueMontreal, sans-serif; font-size: var(--text-section-title); line-height: var(--text-section-title-line-height); font-weight: 700; }
.os-site .h1, .os-site .h1 .elementor-heading-title { font-family: PPNeueMontreal, sans-serif; font-size: var(--text-h1); line-height: var(--text-h1-line-height); font-weight: 700; }
.os-site .h2, .os-site .h2 .elementor-heading-title { font-family: Switzer, sans-serif; font-size: var(--text-h2); line-height: var(--text-h2-line-height); font-weight: 500; }
.os-site .h3, .os-site .h3 .elementor-heading-title { font-family: Switzer, sans-serif; font-size: var(--text-h3); line-height: var(--text-h3-line-height); font-weight: 500; }
.os-site .h4, .os-site .h4 .elementor-heading-title { font-family: Switzer, sans-serif; font-size: var(--text-h4); line-height: var(--text-h4-line-height); font-weight: 700; }
.os-site .os-base { font-size: var(--text-base); line-height: var(--text-base-line-height); font-weight: 400; font-family: Switzer, sans-serif; }
.os-site .os-thin { font-size: var(--text-thin); line-height: var(--text-thin-line-height); font-weight: 300; }
.os-site .os-light { color: rgb(var(--color-neutral-light)); }
.os-site .os-primary { color: rgb(var(--color-primary)); }
.os-site .os-radial-num .elementor-heading-title,
.os-site .os-radial-num { background-image: radial-gradient(50% 50% at 50% 50%, #9e72e6 0, #4b3777 100%); -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; }
.os-site .os-balance { text-wrap: balance; }

/* --- Pulsanti ------------------------------------------------------------ */
.os-site .elementor-button { font-family: Switzer, sans-serif; font-size: var(--text-base); line-height: var(--text-base-line-height); font-weight: 400; border-radius: .25rem; padding: 1.25rem 2rem; min-width: 9rem; transition: background-color .15s cubic-bezier(.4,0,.2,1), color .15s; fill: currentColor; }
.os-site .os-btn-primary .elementor-button { background-color: rgb(var(--color-primary)); color: #fff; }
.os-site .os-btn-primary .elementor-button:hover { background-color: rgb(var(--color-primary) / .9); color: #fff; }
.os-site .os-btn-light .elementor-button { background-color: rgb(var(--color-neutral-light)); color: rgb(var(--color-neutral-dark)); }
.os-site .os-btn-light .elementor-button:hover { background-color: rgb(var(--color-neutral-medium) / .9); }
.os-site .os-btn-pill .elementor-button { border-radius: 9999px; padding-left: 2rem; padding-right: 2rem; }

/* --- Immagini ------------------------------------------------------------ */
.os-site .os-cover, .os-site .os-contain { height: 100%; }
.os-site .os-cover .elementor-widget-container, .os-site .os-contain .elementor-widget-container { height: 100%; }
.os-site .os-cover img, .os-site .os-contain img { width: 100%; height: 100%; max-width: none; display: block; }
.os-site .os-cover img { object-fit: cover; }
.os-site .os-contain img { object-fit: contain; }
.os-site .os-top img { object-position: top; }
.os-site .os-bottom img { object-position: bottom; }
.os-site .os-dim img, .os-site .os-dim video { filter: brightness(.5); }

/* --- Sfondi con alone viola ---------------------------------------------- */
.os-site .os-glow { position: relative; isolation: isolate; }
.os-site .os-glow::before {
	content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background: radial-gradient(var(--rad, 60vw) var(--rad, 60vw) at var(--position-x, 0%) var(--position-y, 0%), rgba(158,114,230,.3) 0, rgba(158,114,230,0) 100%);
}
@media (min-width: 768px) {
	body.os-site { background-image: radial-gradient(500px 500px at var(--mouse-x, -999px) var(--mouse-y, -999px), rgba(158,114,230,.4) 0, rgba(158,114,230,0) 100%); background-attachment: fixed; }
}

/* --- Header --------------------------------------------------------------- */
.os-header { position: fixed !important; top: 0; left: 0; right: 0; z-index: 50; height: 64px; padding: 0 1rem !important; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
@media (min-width: 1025px) { .os-header { height: 94px; } }
.admin-bar .os-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .os-header { top: 46px; } }
.os-header > .e-con-inner, .os-header .os-header-nav { height: 100%; }
.os-header .os-header-nav { width: 100%; border-bottom: 1px solid rgb(var(--color-neutral-white)); padding: 1rem !important; transition: border-color .5s cubic-bezier(.4,0,.2,1); align-items: center; }
.os-home .os-header .os-header-nav, .os-header.os-open .os-header-nav { border-color: transparent; }
.os-header .os-logo, .os-header .os-logo .elementor-widget-container, .os-header .os-logo a { height: 100%; }
.os-header .os-header-nav > .elementor-element { flex: 0 0 auto; }
.os-header .os-header-nav > .os-spacer { flex: 1 1 auto; }
.os-header .os-logo img { height: 100%; width: auto; min-height: 2.5rem; max-width: none; }
.os-header .os-logo-desktop img { width: 334px !important; height: 61px !important; }
.os-header .os-logo-mobile img { width: 26px !important; height: 32px !important; min-height: 0; }
.os-header .os-logo-desktop { display: block; }
.os-header .os-logo-mobile { display: none; }
@media (max-width: 1024px) {
	.os-header .os-logo-desktop, .os-header .os-nav-desktop { display: none !important; }
	.os-header .os-logo-mobile { display: block; }
	.os-header .os-logo img { min-height: 2rem; }
}
@media (min-width: 1025px) { .os-header .os-burger { display: none !important; } }

/* Menu desktop: voce che scivola via inclinata e rientra dall'alto */
.os-nav-desktop .elementor-nav-menu--main .elementor-item { padding: 0 .5rem 0 0 !important; margin: 0; font-size: var(--text-h4); line-height: var(--text-h4-line-height); font-weight: 700; text-transform: uppercase; color: rgb(var(--color-neutral-white)) !important; overflow: hidden; position: relative; display: block; }
.os-nav-desktop .elementor-nav-menu > li + li { margin-left: 2rem; }
.os-nav-desktop .elementor-item::before, .os-nav-desktop .elementor-item::after { display: none !important; }
.os-nav-desktop .os-roll { display: block; position: relative; }
.os-nav-desktop .os-roll span { display: block; transition: transform .3s ease-in; }
.os-nav-desktop .os-roll span + span { position: absolute; left: 0; top: 0; transform: translateY(-160%) skewY(-12deg); }
.os-nav-desktop .elementor-item:hover .os-roll span:first-child { transform: translateY(160%) skewY(-12deg); }
.os-nav-desktop .elementor-item:hover .os-roll span + span { transform: translateY(0) skewY(0); }
.os-nav-desktop .elementor-item.elementor-item-active::after { content: ""; display: block !important; position: absolute; top: 0; right: 0; width: .25rem; height: .25rem; border-radius: 9999px; background: rgb(var(--color-neutral-white)); opacity: 1 !important; transform: none !important; }

/* Hamburger mobile (due linee) */
.os-burger .elementor-button { background: transparent !important; padding: 0 !important; min-width: 2rem; display: flex; flex-direction: column; gap: 1rem; align-items: center; }
.os-burger .elementor-button-text { display: none; }
.os-burger .elementor-button::before, .os-burger .elementor-button::after { content: ""; display: block; height: 1px; width: 2rem; background: rgb(var(--color-neutral-light)); transition: transform .15s cubic-bezier(.4,0,.2,1); }
.os-open .os-burger .elementor-button::before { transform: translateY(calc(1rem + .5px)) rotate(45deg); }
.os-open .os-burger .elementor-button::after { transform: translateY(calc(-1rem - .5px)) rotate(-45deg); }

/* Menu mobile a tutto schermo (popup di Elementor Pro) */
.os-mobile-menu .dialog-widget-content { background: rgb(var(--color-neutral-dark)) !important; }
.os-mobile-menu .elementor-nav-menu--main .elementor-item, .os-mobile-menu .os-menu-big .elementor-item { font-family: PPNeueMontreal, sans-serif; font-size: var(--text-h1); line-height: var(--text-h1-line-height); font-weight: 700; text-transform: uppercase; padding: 0 !important; color: rgb(var(--color-neutral-white)) !important; }
.os-mobile-menu .elementor-nav-menu--layout-vertical .elementor-nav-menu > li + li { margin-top: 2rem; }

/* --- Footer --------------------------------------------------------------- */
.os-footer { position: relative; z-index: 20; margin: 0 1rem 2rem !important; }
.os-footer .os-footer-border { border-top: 1px solid rgb(var(--color-neutral-light)); }
.os-footer .os-footer-logo { margin-top: 2rem; }
.os-footer .os-footer-logo img { width: 100%; height: auto; aspect-ratio: 936/171; }
@media (min-width: 768px) { .os-footer .os-footer-logo { padding: 0 1rem; } }
.os-footer .os-footer-colhead { font-size: var(--text-h4); line-height: var(--text-h4-line-height); font-weight: 700; text-transform: uppercase; }
.os-footer .elementor-icon-list-text { font-size: var(--text-base); line-height: var(--text-base-line-height); color: rgb(var(--color-neutral-white)); }
.os-footer .elementor-icon-list-item a:hover .elementor-icon-list-text { color: rgb(var(--color-primary)); }
.os-footer .os-footer-cta .elementor-heading-title { display: inline-block; border-bottom: 1px solid rgb(var(--color-neutral-white)); padding-bottom: .25rem; }
.os-footer .os-copy { font-size: var(--text-thin); line-height: var(--text-thin-line-height); font-weight: 300; }
@media (max-width: 767px) { .os-footer .os-footer-col { border-bottom: 1px solid rgb(var(--color-neutral-white) / .2); padding: 1rem 0 !important; } }

/* --- Hero con immagine fissa (Lo studio, Servizi) ------------------------- */
.os-hero { position: relative; height: 160vh; }
.os-hero .os-hero-media { position: sticky !important; top: 0; width: 100%; height: 100dvh; overflow: hidden; }
.os-hero .os-hero-media .elementor-widget-image { position: absolute; inset: 0; }
.os-hero .os-hero-text { position: relative; z-index: 10; margin-top: calc(-1 * var(--text-section-title-line-height) - 2rem) !important; }
.os-hero .os-hero-title { padding: 1rem; }
.os-hero .os-hero-sub { position: relative; z-index: -1; padding: 1rem; }
@media (min-width: 1025px) { .os-left-spacing { margin-left: 8rem !important; } }
.os-show-mobile { display: none !important; }
@media (max-width: 767px) { .os-hide-mobile { display: none !important; } .os-show-mobile { display: block !important; } }

/* --- Banner "È il momento…" con badge che seguono il mouse ---------------- */
.os-banner { position: relative; overflow: hidden; min-height: 100dvh; padding: 10rem 1rem !important; }
@media (min-width: 768px) { .os-banner { padding: 1rem !important; } }
.os-banner-line { position: relative; display: flex; align-items: center; justify-content: center; gap: 1rem; text-align: center; }
.os-banner-line .elementor-heading-title { transition: transform .3s; text-transform: uppercase; }
.os-banner-line:hover .elementor-heading-title { transform: translateX(6%); }
.os-badge { position: absolute; top: 50%; height: 65%; width: 0; transform: translateY(-50%); border-radius: .5rem; overflow: hidden; pointer-events: none; z-index: 20; transition: width .3s, left .08s linear; }
.os-badge.os-pill { border-radius: 9999px; }
.os-badge img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.os-banner-line:hover .os-badge { width: clamp(4.2rem, 4vw, 12rem); }
.os-banner-line:hover .os-badge.os-small { width: clamp(4rem, 1vw, 10rem); }
.os-badge.red { background: rgb(230 114 135); } .os-badge.purple { background: rgb(158 114 230); } .os-badge.blue { background: rgb(105 163 250); } .os-badge.green { background: rgb(114 230 140); } .os-badge.yellow { background: rgb(244 191 88); }
@media (max-width: 767px) { .os-badge { display: none; } }

/* --- Comparsa allo scroll -------------------------------------------------- */
.os-reveal { opacity: 0; transform: translateY(2rem); transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
.os-reveal.os-in { opacity: 1; transform: none; }
.os-appear { transform: scaleX(0); transform-origin: left; transition: transform 1s cubic-bezier(.2,.7,.2,1); }
.os-appear.os-in { transform: scaleX(1); }
.elementor-editor-active .os-reveal, .elementor-editor-active .os-appear { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .os-reveal, .os-appear { opacity: 1; transform: none; transition: none; } }

/* --- Utilità ---------------------------------------------------------------- */
@media (max-width: 1024px) { .os-hide-tablet-down { display: none !important; } }
@media (min-width: 1025px) { .os-show-tablet-down { display: none !important; } }
.os-right, .os-right * { text-align: right; }
@media (max-width: 767px) { .os-right, .os-right * { text-align: left; } }
.os-center, .os-center * { text-align: center; }
.os-border-t { border-top: 1px solid rgb(var(--color-neutral-white)); }
.os-site .h1 p, .os-site .section-title p { margin: 0; }
@media (min-width: 1025px) { .os-hero-sub .elementor-widget-container, .os-left-spacing-inner .elementor-widget-container { margin-left: 8rem; } }

/* --- Lo studio: numeri --------------------------------------------------------- */
.os-numbers-top { position: relative; width: 100%; }
@media (min-width: 768px) { .os-numbers-top { min-height: 40vw; } }
.os-illustration { position: absolute !important; top: 0; right: 0; width: 40vw; aspect-ratio: 1/1; height: auto !important; }
@media (min-width: 768px) { .os-illustration { left: 0; right: auto; top: 50%; transform: translateY(-50%); } }
.os-numbers-text { margin-top: 6rem; width: 100%; }
@media (min-width: 768px) { .os-numbers-text { max-width: 80%; margin-right: 10rem !important; } }
@media (min-width: 1025px) { .os-numbers-text { margin-right: 14rem !important; } }
.os-two-cols > * { flex: 1 1 0; }
.os-num { flex: 1 1 0; }

/* --- Immagine del team con maschera a forma di logo ------------------------------- */
.os-full-image { width: 100%; overflow: clip; }
.os-full-image .elementor-widget-image { height: 100dvh; }
@media (max-width: 767px) { .os-full-image .elementor-widget-image { height: auto; aspect-ratio: 1/1; } }
.os-mask-reveal img { -webkit-mask-image: url(../img/logo-icon.svg); mask-image: url(../img/logo-icon.svg); -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: var(--os-mask, 50%) var(--os-mask, 50%); mask-size: var(--os-mask, 50%) var(--os-mask, 50%); -webkit-mask-position: 45% 60%; mask-position: 45% 60%; }
.elementor-editor-active .os-mask-reveal img { -webkit-mask-image: none; mask-image: none; }

/* --- Lo studio: team ------------------------------------------------------------ */
.os-team { display: block !important; }
@media (min-width: 768px) { .os-team-intro { position: sticky !important; top: 94px; padding-top: 2rem !important; width: fit-content; max-width: 50%; } }
@media (min-width: 1025px) { .os-team-intro { max-width: 34%; } }
.os-team-intro .elementor-widget-text-editor { margin-top: 0; }
.os-team-right { width: 100%; }
.os-team-grid { display: grid !important; grid-template-columns: 1fr; gap: 2rem; width: 100%; }
@media (min-width: 768px) { .os-team-grid { max-width: 50%; margin-top: -20rem !important; } }
@media (min-width: 1025px) { .os-team-grid { grid-template-columns: 1fr 1fr; max-width: 64%; } }
.os-team-grid > .os-card:nth-child(odd) { margin-top: 2rem !important; }
.os-card-media { position: relative; display: flex !important; flex-direction: column; justify-content: flex-end; width: 100%; aspect-ratio: 9/14; overflow: hidden; }
.os-card-bg { width: 100%; aspect-ratio: 1/1; background: rgb(var(--color-neutral-white) / .1); border-radius: .5rem; }
.os-card-img { position: absolute !important; inset: 0; }
.os-card-img .elementor-widget-container, .os-card-img img { width: 100%; height: 100%; }
.os-card-img img { object-fit: contain; object-position: bottom; }
.os-card-role { margin-top: .5rem; }

/* --- Lo studio: cristallo -------------------------------------------------------- */
.os-stone { position: relative; overflow-x: clip; }
.os-stone-sticky { position: sticky !important; top: 0; height: 100vh; width: 100%; z-index: 20; overflow: clip; pointer-events: none; }
.os-stone-sticky .elementor-widget-image { position: absolute; inset: 0; transition: transform 1s cubic-bezier(.4,0,.2,1); transform-origin: center; }
.os-stone-texts { position: relative; z-index: 30; }
.os-stone-step { min-height: 100vh; }
.os-stone-first { margin-top: -100vh !important; transform: translateY(-8rem); }
@media (max-width: 767px) { .os-stone-first { margin-top: -110vh !important; transform: none; } }
.os-stone-right, .os-stone-left { width: 100%; padding-bottom: 2rem !important; }
@media (min-width: 768px) { .os-stone-right, .os-stone-left { width: 50%; padding-bottom: 6rem !important; } .os-stone-right { align-self: flex-end; padding-right: 6rem !important; } .os-stone-left { align-self: flex-start; padding-left: 6rem !important; } }
@media (min-width: 1280px) { .os-stone-right, .os-stone-left { width: 40%; } .os-stone-right { padding-right: 10rem !important; } .os-stone-left { padding-left: 10rem !important; } }
/* posizioni del cristallo (impostate dallo script in base al testo visibile) */
.os-stone[data-step="0"] .os-stone-sticky .elementor-widget-image { transform: scale(.85) translateY(22%); }
.os-stone[data-step="1"] .os-stone-sticky .elementor-widget-image { transform: scale(.95) translate(-27%, 2%); }
.os-stone[data-step="2"] .os-stone-sticky .elementor-widget-image { transform: scale(2.6) translate(17%, 12%); }
.os-stone[data-step="3"] .os-stone-sticky .elementor-widget-image { transform: scale(2.6) translate(30%, 6%); }
@media (max-width: 767px) { .os-stone[data-step] .os-stone-sticky .elementor-widget-image { transform: scale(1); } .os-stone[data-step="0"] .os-stone-sticky .elementor-widget-image, .os-stone[data-step="3"] .os-stone-sticky .elementor-widget-image { transform: scale(3) translate(-15%, -6%); } }

/* --- Home: slider a tutto schermo -------------------------------------------------- */
.os-slider { position: relative; width: 100%; height: 100vh; overflow: clip; padding-top: 64px !important; }
@media (min-width: 1025px) { .os-slider { padding-top: 94px !important; } }
.os-slides { position: relative; width: 100%; height: 100%; overflow: hidden; }
.os-slide { position: absolute !important; inset: 0; transform: translateX(100%); transition: transform .8s cubic-bezier(.7,0,.3,1); z-index: 1; }
.os-slide.os-active { transform: translateX(0); z-index: 2; }
.os-slide.os-leaving { transform: translateX(-100%); }
.os-slide.os-from-left { transform: translateX(-100%); }
.os-slide .os-slide-bg, .os-slide .os-slide-video { position: absolute !important; inset: 0; }
.os-slide-video .elementor-wrapper, .os-slide-video video { width: 100%; height: 100%; object-fit: cover; aspect-ratio: auto !important; }
.os-slide-video .elementor-wrapper { height: 100%; }
.os-slide-content { position: absolute !important; left: 0; right: 0; top: 50%; transform: translateY(-50%); z-index: 10; margin: 0 auto; padding: 4rem 1rem !important; width: 100%; color: rgb(var(--color-neutral-white)); }
@media (min-width: 640px) { .os-slide-content { max-width: 640px; } } @media (min-width: 768px) { .os-slide-content { max-width: 768px; } }
@media (min-width: 1024px) { .os-slide-content { max-width: 1024px; } } @media (min-width: 1280px) { .os-slide-content { max-width: 1280px; } }
@media (min-width: 1536px) { .os-slide-content { max-width: 1536px; } }
.os-slider-arrows { position: absolute !important; left: 16px; right: 16px; bottom: 4rem; z-index: 10; transform: translateY(-50%); pointer-events: none; }
.os-slider-arrows .elementor-widget { pointer-events: auto; }
.os-slider-arrows .elementor-button { min-width: 4rem; height: 2.5rem; padding: .5rem 1rem; }
.os-slider-arrows .elementor-button-text { display: none; }
.os-slider-arrows .elementor-button-icon { font-size: 1rem; }

/* --- Servizi --------------------------------------------------------------------- */
.os-servizi { padding-top: 6rem !important; }
.os-svc-list { padding: 0 1rem !important; }
@media (min-width: 1025px) { .os-svc-list { margin-left: 8rem !important; } }
.os-svc-row { gap: 1rem; padding: 2rem 0 !important; border-top: 1px solid rgb(var(--color-neutral-white) / .4); }
.os-svc-row.os-svc-first { border-top: 0; }
.os-svc-title { gap: .5rem; flex-grow: 1; order: 2; }
.os-svc-desc { order: 3; }
.os-svc-icon { order: 1; width: 4rem !important; min-width: 4rem; aspect-ratio: 1/1; position: relative; }
.os-svc-icon .elementor-widget-image { position: absolute; inset: 0; } .os-svc-icon img { width: 4rem !important; height: 4rem !important; }
@media (min-width: 1025px) {
	.os-svc-row { gap: 4rem; padding: 4rem 0 !important; }
	.os-svc-title { gap: 8rem; min-width: 40%; max-width: 40%; width: 40%; order: 1; }
	.os-svc-desc { order: 2; }
	.os-svc-icon { order: 3; margin-left: auto !important; }
}
@media (min-width: 768px) { .os-svc-desc { width: 52%; } }

/* --- Pagine con intestazione semplice ------------------------------------------- */
.os-page-hero { padding-top: 64px !important; position: relative; z-index: 1; }
@media (min-width: 1025px) { .os-page-hero { padding-top: 94px !important; } }
.os-site .container { width: 100%; margin-left: auto !important; margin-right: auto !important; }

/* --- Case studies (elenco con foto al passaggio del mouse) ------------------------ */
.os-case-list { margin: 6rem 0 !important; border-top: 1px solid rgb(var(--color-neutral-white) / .4); border-bottom: 1px solid rgb(var(--color-neutral-white) / .4); }
.os-case-row { display: grid !important; grid-template-columns: 2fr 3fr; transition: all .15s; }
.os-case-img { position: relative; overflow: clip; height: 100%; transition: height .15s; }
.os-case-img .elementor-widget-image { position: absolute; inset: 0; }
@media (min-width: 768px) { .os-case-img { height: 0; align-self: stretch; } .os-case-row:hover .os-case-img { height: 100%; } }
.os-case-text { position: relative; min-height: 10rem; padding: 0 .5rem !important; border-left: 1px solid rgb(var(--color-neutral-white) / .4); border-bottom: 1px solid rgb(var(--color-neutral-white) / .4); isolation: isolate; }
.os-case-row:last-child .os-case-text { border-bottom: 0; }
@media (min-width: 1025px) { .os-case-text { gap: 4rem; } }
.os-case-name { width: 100%; } @media (min-width: 768px) { .os-case-name { width: 60%; } }
.os-case-hoverbg { position: absolute !important; top: 0; left: 0; width: 100%; height: 0; z-index: -1; background: linear-gradient(to right, rgb(var(--color-neutral-light) / .06) 60%, rgb(var(--color-neutral-medium) / .1)); transition: height .15s; }
.os-case-row:hover .os-case-hoverbg { height: 100%; }
.os-case-row:hover .os-case-text { color: rgb(var(--color-primary)); }

/* --- Moduli ---------------------------------------------------------------------- */
.os-form .elementor-field-group { margin-bottom: 0 !important; padding: 0 !important; }
.os-form .elementor-field-label { font-size: var(--text-h4); line-height: var(--text-h4-line-height); font-weight: 700; text-transform: uppercase; color: rgb(var(--color-neutral-white)); padding-left: 1.5rem; margin-bottom: .25rem; }
.os-form .elementor-field-textual, .os-form select.elementor-field, .os-form .elementor-field-type-upload input { background: transparent !important; border: 0 !important; border-bottom: 1px solid rgb(var(--color-neutral-white)) !important; border-radius: 0 !important; color: rgb(var(--color-neutral-white)) !important; padding: .75rem 1.5rem !important; min-height: 3.5rem; font-size: var(--text-base); }
.os-form select.elementor-field option { color: #1d1d1e; }
.os-form .elementor-select-wrapper::before { color: rgb(var(--color-neutral-white)); }
.os-form .elementor-field-type-acceptance .elementor-field-option { display: flex; gap: .5rem; align-items: center; font-size: var(--text-base); line-height: 1.5rem; }
.os-form .elementor-field-type-acceptance input { width: 1.5rem; height: 1.5rem; accent-color: rgb(var(--color-primary)); }
.os-form .elementor-button { background: rgb(var(--color-primary)) !important; color: #fff; margin-top: 2.5rem; }
.os-form .elementor-button:hover { background: rgb(var(--color-primary) / .9) !important; }
.os-form .e-form__buttons { justify-content: flex-start; }
.os-grid2 > .e-con, .os-grid2 > .elementor-widget { flex: 1 1 0; }
.os-contact-form .os-form { width: 100%; }
@media (min-width: 768px) { .os-contact-form .elementor-form { max-width: 85%; } }

/* Link grandi con effetto di scorrimento (Contatti) */
.os-roll-link { font-family: PPNeueMontreal, sans-serif; font-size: 3.75rem; line-height: 1; font-weight: 700; text-transform: uppercase; }
@media (min-width: 1025px) { .os-socials { padding-left: 8rem !important; } }
.os-roll-link a { display: inline-block; overflow: hidden; position: relative; padding-right: .5rem; }
.os-roll-link .os-roll { display: block; position: relative; } .os-roll-link .os-roll span { display: block; transition: transform .3s ease-in; }
.os-roll-link .os-roll span + span { position: absolute; left: 0; top: 0; transform: translateY(-120%) skewY(-12deg); }
.os-roll-link a:hover .os-roll span:first-child { transform: translateY(120%) skewY(-12deg); }
.os-roll-link a:hover .os-roll span + span { transform: none; }

/* Lavora con noi: striscia di foto che scorre */
.os-lavora-intro h2 { margin-bottom: 1rem; }
.os-strip { overflow: hidden; width: 100%; margin-top: 4rem !important; }
.os-strip-track { width: max-content; gap: 1rem; animation: os-scroll 40s linear infinite; }
.os-strip-item { width: 14rem !important; aspect-ratio: 9/11; border-radius: .5rem; overflow: hidden; background: rgb(var(--color-neutral-light)); flex: none !important; }
@media (min-width: 1025px) { .os-strip-item { width: 18rem !important; } }
@keyframes os-scroll { to { transform: translateX(calc(-50% - .5rem)); } }
.elementor-editor-active .os-strip-track { animation: none; }

/* Privacy */
.os-privacy p { margin: 0 0 1rem !important; }

/* --- Case study ---------------------------------------------------------------- */
.os-project-hero { position: relative; height: 100vh; overflow: clip; }
.os-project-hero > .elementor-widget-image { position: absolute; inset: 0; }
.os-ptext, .os-pgrid { padding: 4rem 1rem !important; }
.os-ptext .os-col1 { flex: 1 1 0; } .os-ptext .os-col2 { flex: 2 1 0; margin-top: 1rem !important; }
@media (min-width: 768px) { .os-ptext { gap: 0 !important; } }
.os-pgrid > .os-col { flex: 1 1 0; } .os-pgrid > .os-col + .os-col { margin-top: 1rem !important; }
.os-description p { margin: 0 !important; padding-bottom: 1rem; display: block; }
.os-pimage { width: 100%; overflow: clip; }
.os-pimage .elementor-widget-image { height: 100dvh; }
@media (max-width: 767px) { .os-pimage .elementor-widget-image { height: auto; aspect-ratio: 1/1; } }
.os-pvideo-wrap { width: 100%; aspect-ratio: 16/9; overflow: clip; }
.os-stats { border-top: 1px solid rgb(var(--color-neutral-white)); border-bottom: 1px solid rgb(var(--color-neutral-white)); }
.os-stat { flex: 1 1 0; padding: 4rem 1rem 1rem !important; }
.os-stat + .os-stat { border-left: 1px solid rgb(var(--color-neutral-white)); }
@media (max-width: 767px) { .os-stat + .os-stat { border-left: 0; border-top: 1px solid rgb(var(--color-neutral-white)); } }
.os-next { position: relative; overflow: clip; height: calc(100vh - 64px); display: flex !important; align-items: flex-start; justify-content: center; }
.os-next-title { padding-top: 50% !important; transform: translateY(-50%); }
.os-next-img { position: absolute !important; inset: 0; z-index: 10; }
.os-next-img .elementor-widget-image, .os-next-img a { display: block; height: 100%; }
.os-next-btnwrap { position: absolute !important; right: 3rem; bottom: 3rem; z-index: 20; }
@media (max-width: 767px) {
	.os-footer-col > .elementor-widget:not(:first-child) { display: none; }
	.os-footer-col.os-open > .elementor-widget:not(:first-child) { display: block; }
	.os-footer-colhead { cursor: pointer; }
	.os-footer-colhead .elementor-heading-title::after { content: "+"; float: right; font-weight: 400; }
	.os-footer-col.os-open .os-footer-colhead .elementor-heading-title::after { content: "−"; }
}
.os-next.os-going .os-next-btn .elementor-button { animation: os-pulse 1s ease-in-out infinite; }
@keyframes os-pulse { 50% { opacity: .6; } }

/* Correzioni di larghezza per i blocchi rientrati */
@media (min-width: 1025px) { .os-svc-list, .os-left-spacing { width: auto !important; align-self: stretch; } }
/* Footer: griglia a 6 colonne come l'originale */
@media (min-width: 768px) {
	.os-footer .os-footer-columns { display: grid !important; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 2rem; }
	.os-footer .os-footer-intro { grid-column: span 3; width: auto !important; }
	.os-footer .os-footer-col { width: auto !important; }
}
.os-gap-sm p + p { margin-top: .5rem !important; }
.os-footer .os-footer-intro .elementor-widget-text-editor { margin-bottom: 0; }
.os-footer .os-footer-cta { font-size: 2.25rem; line-height: 2.5rem; }

/* Contenitore centrato (come .container di Tailwind) */
.os-site .e-con.container { width: 100% !important; max-width: 100% !important; margin-left: auto !important; margin-right: auto !important; }
@media (min-width: 640px) { .os-site .e-con.container { max-width: 640px !important; } }
@media (min-width: 768px) { .os-site .e-con.container { max-width: 768px !important; } }
@media (min-width: 1024px) { .os-site .e-con.container { max-width: 1024px !important; } }
@media (min-width: 1280px) { .os-site .e-con.container { max-width: 1280px !important; } }
@media (min-width: 1536px) { .os-site .e-con.container { max-width: 1536px !important; } }
@media (min-width: 2560px) { .os-site .e-con.container { max-width: 2560px !important; } }

/* Moduli: etichetta dentro il campo che si rimpicciolisce quando scrivi */
.os-form .elementor-field-group:not(.elementor-field-type-acceptance):not(.elementor-field-type-upload) { position: relative; }
.os-form .elementor-field-group:not(.elementor-field-type-acceptance):not(.elementor-field-type-upload) > .elementor-field-label {
	position: absolute; left: 1.5rem; top: 50%; margin: -0.75rem 0 0; padding: 0; z-index: 1; pointer-events: none;
	transform-origin: left; transition: transform .15s; color: rgb(var(--color-neutral-light) / .9);
}
.os-form .elementor-field-group.os-filled > .elementor-field-label { transform: translateY(-1.25rem) scale(.75); color: rgb(var(--color-neutral-white)); }
.os-form .elementor-field-group { margin-top: 1rem; }
.os-form .elementor-field-type-select > .elementor-field-label { transform: translateY(-1.25rem) scale(.75); }
.os-form textarea.elementor-field { min-height: 3.5rem; resize: vertical; }
.os-lavora-form .elementor-field-label, .os-lavora .os-form .elementor-field-label { text-transform: none; font-weight: 400; font-size: var(--text-base); }
.os-form .elementor-field-type-upload .elementor-field-label { font-size: .75rem; text-transform: none; padding-left: 1.5rem; }

.os-roll-link .os-roll span + span { transform: translateY(-140%) skewY(-12deg); }
.os-next-btnwrap { width: auto !important; }
.os-next-btn .elementor-button { min-width: 0; }
.os-next-img img { filter: brightness(.5); }
.os-next-title { position: relative; z-index: 5; }

/* Header mobile: tutto su una riga */
.os-header .os-header-nav { flex-wrap: nowrap !important; flex-direction: row !important; }
.os-header .os-header-nav > .elementor-element { width: auto !important; max-width: none !important; }
.os-header .os-header-nav > .os-spacer { flex: 1 1 auto !important; min-width: 1px; }
/* Footer mobile: prima testo e colonne, poi il logo */
@media (max-width: 767px) {
	.os-footer > .e-con-inner, .os-footer { display: flex !important; flex-direction: column !important; }
	.os-footer .os-footer-columns { order: 1; } .os-footer .os-footer-logo { order: 2; } .os-footer .os-copy-row { order: 3; margin-top: 2rem !important; }
	.os-footer .os-footer-colhead .elementor-heading-title::after { content: "↓"; }
	.os-footer .os-footer-col.os-open .os-footer-colhead .elementor-heading-title::after { content: "↑"; }
	.os-footer .os-footer-intro { margin-bottom: 2rem !important; }
	.os-footer .os-footer-col { border-bottom-color: rgb(var(--color-neutral-white)) !important; }
}

.os-footer { width: auto !important; }

/* ==========================================================================
   Leggibilità e proporzioni del testo (miglioramento rispetto all'originale)
   ========================================================================== */
:root {
	/* testo un filo più grande sugli schermi grandi, invariato su mobile */
	--text-base: clamp(1rem, 0.55rem + 0.55vw, 1.375rem);
	--text-thin: clamp(0.9375rem, 0.55rem + 0.45vw, 1.125rem);
	--text-h3: clamp(1.25rem, 0.6rem + 0.85vw, 2.25rem);
	--text-h4: clamp(1rem, 0.55rem + 0.6vw, 1.5rem);
}
/* interlinee: l'originale usava 1,0 anche per i paragrafi */
.os-site .elementor-widget-text-editor { line-height: 1.6; }
.os-site .elementor-widget-text-editor.h3, .os-site .os-hero-sub { line-height: 1.4; }
.os-site .elementor-widget-text-editor.h2, .os-site .h2 .elementor-heading-title, .os-site .h2 { line-height: 1.2; }
.os-site .h1, .os-site .h1 .elementor-heading-title { line-height: 1.02; }
.os-site .section-title, .os-site .section-title * { line-height: 0.95; }
.os-site .os-copy, .os-site .elementor-icon-list-text { line-height: 1.5; }
.os-site .elementor-widget-text-editor.h3 p + p, .os-site .os-gap p + p { margin-top: 1rem; }
/* lunghezza riga comoda (circa 60-70 caratteri) */
.os-site .os-measure, .os-site .os-description, .os-site .os-team-intro .elementor-widget-text-editor, .os-site .os-privacy { max-width: 66ch !important; }
.os-site .os-description p { padding-bottom: 1.1em; }
/* su tablet e mobile gli "a capo" forzati del desktop spezzano male le righe: li ignoriamo */
@media (max-width: 1024px) {
}
@media (max-width: 767px) {
	.os-site .os-hero-sub { font-size: 1.125rem; }
	.os-site .os-stat .elementor-widget-text-editor { font-size: 0.9375rem; }
	.os-site .os-two-cols p, .os-site .os-numbers p { display: inline; }
	.os-site .os-two-cols p::after, .os-site .os-numbers-text p::after { content: " "; }
}
/* Home: sezione introduttiva */
.os-home-intro .os-home-h1 { max-width: 14ch; }
@media (min-width: 1025px) { .os-home-intro .os-home-h1 { max-width: none; } }
/* FAQ */
.os-faq .elementor-accordion-item { border: 0 !important; border-bottom: 1px solid rgb(var(--color-neutral-white) / .4) !important; }
.os-faq .elementor-tab-title { padding: 1.5rem 0 !important; color: rgb(var(--color-neutral-white)) !important; font-size: var(--text-h2); line-height: 1.2; font-weight: 500; }
.os-faq .elementor-tab-title a { color: inherit !important; }
.os-faq .elementor-tab-title.elementor-active { color: rgb(var(--color-primary)) !important; }
.os-faq .elementor-accordion-icon { color: rgb(var(--color-neutral-white)); }
.os-faq .elementor-tab-content { border: 0 !important; padding: 0 0 1.5rem !important; color: rgb(var(--color-neutral-light)); max-width: 66ch; line-height: 1.6; font-size: var(--text-base); }

/* ==========================================================================
   Home ridisegnata
   ========================================================================== */
.os-eyebrow { color: rgb(var(--color-primary)); letter-spacing: .08em; text-align: center; }
.os-home-manifesto { min-height: 100vh; }
.os-home-manifesto .os-measure { margin-left: auto !important; margin-right: auto !important; }
.os-border-top { border-top: 1px solid rgb(var(--color-neutral-white) / .4); }
/* Numeri */
.os-home-results .os-stat { gap: .5rem; padding-bottom: 2rem !important; }
.os-stat-client { margin-top: auto !important; padding-top: 1rem; font-size: var(--text-base); color: rgb(var(--color-primary)); }
.os-stat-client a:hover { text-decoration: underline; }
/* Servizi compatti */
.os-home-svc-list { border-top: 1px solid rgb(var(--color-neutral-white) / .4); margin: 0 1rem !important; width: auto !important; }
.os-home-svc { border-bottom: 1px solid rgb(var(--color-neutral-white) / .4); padding: 1.5rem 0 !important; gap: 1rem; transition: color .2s, padding .3s; }
.os-home-svc .os-svc-num { width: 4rem; flex: none; color: rgb(var(--color-neutral-medium)); }
@media (min-width: 1025px) { .os-home-svc .os-svc-num { width: 12rem; } .os-home-svc { padding: 2rem 0 !important; } }
.os-home-svc .os-svc-name { flex: 1 1 auto; }
.os-home-svc .os-svc-arrow { transition: transform .3s; }
.os-home-svc:hover { color: rgb(var(--color-primary)); }
@media (min-width: 1025px) { .os-home-svc:hover { padding-left: 1rem !important; } }
.os-home-svc:hover .os-svc-arrow { transform: translateX(.5rem); }
/* Case study in evidenza */
.os-feat { flex: 1 1 0; }
.os-feat-img { aspect-ratio: 4/5; overflow: hidden; border-radius: .5rem; }
.os-feat-img .elementor-widget-image { height: 100%; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.os-feat:hover .os-feat-img .elementor-widget-image { transform: scale(1.04); }
.os-feat:hover .h2 { color: rgb(var(--color-primary)); }
@media (max-width: 767px) { .os-feat-img { aspect-ratio: 4/3; } .os-feat + .os-feat { margin-top: 1.5rem !important; } }
/* Metodo */
.os-step { flex: 1 1 0; border-top: 1px solid rgb(var(--color-neutral-white) / .4); padding-top: 1.5rem !important; }
/* Team */
.os-strip-home { margin-top: 0 !important; }
.os-home-svc { flex-wrap: nowrap !important; }
.os-home-svc .os-svc-name { flex: 1 1 0 !important; min-width: 0; width: auto !important; }
.os-home-svc .os-svc-arrow, .os-home-svc .os-svc-num { flex: none !important; width: auto; }
@media (min-width: 1025px) { .os-home-svc .os-svc-num { width: 12rem !important; } }
.os-home-manifesto { gap: 0 !important; }
.os-home-manifesto .os-eyebrow { margin-bottom: 1.5rem !important; }
.os-home-manifesto .os-banner-line + .os-banner-line { margin-top: 0 !important; }
.os-home-manifesto > .elementor-widget-text-editor { margin-top: 2rem !important; margin-bottom: 2rem !important; }
.os-home-team > .e-con:first-child > .elementor-widget-heading { flex: none !important; width: auto !important; white-space: nowrap; }
.os-home-team > .e-con:first-child > .e-con { flex: 0 1 34rem !important; width: auto !important; }
@media (max-width: 767px) { .os-home-team > .e-con:first-child > .elementor-widget-heading { white-space: normal; } .os-home-team > .e-con:first-child > .e-con { flex: 1 1 auto !important; } }

/* Home: messaggio principale sopra il video della prima slide */
.os-slide-first .os-dim-video video { filter: brightness(.35); }
.os-slide-hero { position: absolute !important; inset: 0; z-index: 10; padding: 2rem 1rem 6rem !important; gap: 0 !important; }
.os-slide-hero .os-eyebrow { margin-bottom: 1.5rem !important; }
.os-slide-hero .os-hero-lead { margin: 2rem auto !important; text-align: center; }
.os-slide-hero .os-hero-lead p { text-align: center; }
.os-slide-hero .os-banner-line { width: 100%; }
@media (max-width: 767px) { .os-slide-hero { padding-bottom: 7rem !important; } .os-slide-hero .os-hero-lead { margin: 1.25rem auto !important; } }
.os-slider-arrows { width: auto !important; }
.os-slide-hero .os-banner-line { margin: 0 !important; padding: 0 !important; }
@media (max-width: 767px) {
	.os-slide-hero .os-hero-lead { font-size: 1rem; line-height: 1.5; }
	.os-slide-hero .os-banner-line .elementor-heading-title { line-height: 1; }
	.os-slide-hero .os-banner-line + .os-banner-line { margin-top: .25rem !important; }
}

/* ==========================================================================
   Proporzioni allineate al design Figma (desktop). Su mobile restano i minimi.
   ========================================================================== */
:root {
	--text-section-title: clamp(2.5rem, 9.7vw, 31.875rem);
	--text-section-title-line-height: clamp(2.5rem, 8.9vw, 30rem);
	--text-h1: clamp(2rem, 4.45vw, 15rem);
	--text-h1-line-height: clamp(2.2rem, 5vw, 16rem);
	--text-h3: clamp(1.125rem, 1.35vw, 4.5rem);
	--text-h4: clamp(1rem, 1.18vw, 4rem);
	--text-base: clamp(1rem, 1.11vw, 3.5rem);
	--text-thin: clamp(0.9375rem, 0.9vw, 3rem);
}
.os-site .section-title, .os-site .section-title * { line-height: var(--text-section-title-line-height); }
.os-site .h1, .os-site .h1 .elementor-heading-title { line-height: 1.12; }
.os-site .elementor-widget-text-editor.h3, .os-site .os-hero-sub { line-height: 1.25; }
/* banner sfalsati: allineati a sinistra con il rientro della riga */
@media (min-width: 1025px) {
	.os-banner { align-items: stretch !important; }
	.os-banner .os-banner-line.os-stagger { width: auto !important; align-self: flex-start; }
	.os-banner .os-banner-line.os-stagger .elementor-heading-title { text-align: left; }
}
/* Case studies: riga chiara con testo scuro al passaggio del mouse (come nel Figma) */
.os-case-hoverbg { background: linear-gradient(to right, rgb(var(--color-neutral-light)) 60%, rgb(var(--color-neutral-medium))) !important; }
.os-case-row:hover .os-case-text { color: rgb(var(--color-neutral-dark)) !important; }

/* Elementor 4 (markup ottimizzato) non ha più .elementor-widget-container: rientri sul widget stesso */
@media (min-width: 1025px) {
	.os-site .os-hero-sub, .os-site .os-left-spacing-inner { margin-left: 8rem !important; }
	.os-site .os-hero-sub { padding-left: 1rem !important; }
}
.os-site .os-cover > img, .os-site .os-contain > img { width: 100%; height: 100%; }
.os-site .os-hero-sub, .os-site .os-left-spacing-inner { max-width: 44rem; }
@media (min-width: 1025px) { .os-site .os-hero-sub, .os-site .os-left-spacing-inner { max-width: 44vw !important; width: auto !important; } }

/* ==========================================================================
   Banner: animazione come nel Figma
   - al passaggio del mouse la riga scivola di lato (alternando destra/sinistra)
   - compaiono vicino al cursore barrette colorate sottili e una foto quadrata/tonda
   ========================================================================== */
.os-banner-line .elementor-heading-title { transition: transform .45s cubic-bezier(.2,.7,.2,1) !important; }
.os-banner-line:hover .elementor-heading-title { transform: none; }
@media (min-width: 1025px) {
	.os-banner-line.os-shift-p:hover .elementor-heading-title { transform: translateX(5.8vw) !important; }
	.os-banner-line.os-shift-n:hover .elementor-heading-title { transform: translateX(-6.5vw) !important; }
	.os-banner-line.os-stagger:not(.os-shift-n):not(.os-shift-p):hover .elementor-heading-title { transform: translateX(7vw) !important; }
}
.os-banner-line .elementor-widget-button { transition: transform .45s cubic-bezier(.2,.7,.2,1); }
@media (min-width: 1025px) { .os-banner-line:hover .elementor-widget-button { transform: translateX(5.8vw); } }
.os-badges { position: absolute !important; inset: 0; pointer-events: none; z-index: 20; }
.os-badge { position: absolute; top: 34%; height: 1.67vw; width: 7.4vw; border-radius: 9999px; transform: scaleX(0); transform-origin: left center; transition: transform .35s cubic-bezier(.2,.7,.2,1), left .12s linear; overflow: hidden; }
.os-badge:nth-child(2) { top: 58%; }
.os-badge:nth-child(3) { top: 50%; }
.os-badge:has(img) { width: 6.9vw; height: 6.9vw; top: 50%; border-radius: .5rem; transform: translateY(-50%) scale(0); transform-origin: center; }
.os-badge.os-pill:has(img) { border-radius: 9999px; width: 5.9vw; height: 5.9vw; background: #f2f0f5 !important; }
.os-badge img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.os-banner-line:hover .os-badge { transform: scaleX(1); }
.os-banner-line:hover .os-badge:has(img) { transform: translateY(-50%) scale(1); }
.os-banner-line:hover .os-badge.os-small { width: 7.4vw; }
@media (max-width: 1024px) { .os-badges { display: none; } }
/* "Di performance, di valori e sartoria": a sinistra, prima riga rientrata */
.os-perf, .os-perf * { text-align: left !important; }
@media (min-width: 1025px) {
	.os-perf p:first-child { margin-left: 7.8vw !important; }
	.os-numbers-text { margin-left: 42vw !important; margin-right: 0 !important; max-width: none !important; width: auto !important; align-items: flex-start !important; }
	.os-numbers-text .os-two-cols { gap: 1.8vw !important; width: 41vw !important; margin-top: 1.5rem !important; }
	.os-numbers-top { justify-content: flex-start !important; }
}

/* Footer: dati aziendali nella riga in basso (su mobile uno per riga) */
.os-legal span + span::before { content: "·"; margin: 0 .6em; opacity: .6; }
@media (max-width: 767px) {
	.os-legal span { display: block; }
	.os-legal span + span::before { content: none; }
}

/* Home, prima slide: titolo statico (niente animazioni al passaggio del mouse) */
.os-hero-title p { margin: 0 !important; }
.os-hero-title .elementor-heading-title { transform: none !important; transition: none !important; }

/* Frecce dello slider: solo freccia bianca, senza riquadro */
.os-slider-arrows .os-slider-btn .elementor-button,
.os-slider-arrows .os-slider-btn .elementor-button:hover,
.os-slider-arrows .os-slider-btn .elementor-button:focus {
	background: transparent !important; border: 0 !important; box-shadow: none !important;
	color: #fff !important; fill: #fff !important; min-width: 0; height: auto; padding: .5rem !important; transform: none !important;
}
.os-slider-arrows .os-slider-btn .elementor-button-icon { font-size: 2rem; }
.os-slider-arrows .os-slider-btn .elementor-button-icon svg { width: 2rem; height: 2rem; fill: #fff !important; }

/* Menu mobile: l'header (logo + hamburger che diventa X) resta sopra il menu aperto, così si può chiudere */
@media (max-width: 1024px) {
	.elementor-location-header, header.os-header { position: relative; z-index: 10001 !important; }
	.os-header.os-open { background: rgb(var(--color-neutral-dark)) !important; }
	.os-mobile-menu .os-mobile-menu-inner { padding-top: 96px !important; }
}

/* Footer: link legali (Privacy, Cookie Policy iubenda, Preferenze cookie) */
.os-legal-links { display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; margin: 0; }
.os-legal-links a { color: inherit; text-decoration: none; }
.os-legal-links a:hover { text-decoration: underline; }
