/* =====================================================================
 * Sphere — Site Template Sphere Mesh 1.0 (template spheremesh2)
 * Skin di spheremesh.com. Carica DOPO sp-site-layout-2.0, sp-site-template-basic-2.0,
 * sp-site-template-basicpro-1.0 e sp-animations-2.0 (loadingOrder 16).
 * Prefissi: sp-tplsm-* (specifici di questo skin), --sp-tplsm-* (token statici derivati).
 *
 * @placeholders: #0d1421
 * Tutti gli altri colori arrivano come --sp-* dal :root di sp-site-layout-2.0 (sempre letti
 * con fallback). Nessun placeholder nuovo, nessun !important.
 *
 * FONDO SCURO GLOBALE (decisione di Davide, 23/9). basic-2.0 e' disegnato per fondi chiari e
 * cabla inchiostri e superfici attraverso i suoi token --sp-tpl-*: qui quei token vengono
 * RIMAPPATI (§1) e i selettori che usano il bianco come superficie tornano scuri (§2). E' la
 * via "strato per strato nel foglio del template": il core e basic-2.0 non si toccano.
 *
 * LEGGIBILE A RIPOSO (§3): tutto e' visibile senza JS. Le entrate animate partono solo sotto
 * html.sp-js-motion, che jSite-2.0 mette solo se il movimento non e' ridotto.
 *
 * 2026-09-23 — piano: claudio/proposte/spheremesh-template-piano.md
 * ===================================================================== */

/* =====================================================================
 * §0 Token
 * ===================================================================== */
:root {
  --sp-contrast-dark: #0d1421;

  --sp-tplsm-bg:        var(--sp-background, #070b12);
  --sp-tplsm-surface:   var(--sp-contrast-dark, #0d1421);
  --sp-tplsm-surface-2: color-mix(in srgb, var(--sp-contrast-dark, #0d1421) 92%, var(--sp-default, #e9eef4));
  --sp-tplsm-deep:      color-mix(in srgb, var(--sp-background, #070b12) 70%, var(--sp-footer, #04070c));
  --sp-tplsm-glass:     color-mix(in srgb, var(--sp-background, #070b12) 74%, transparent);
  --sp-tplsm-text:      var(--sp-default, #e9eef4);
  --sp-tplsm-text-2:    color-mix(in srgb, var(--sp-default, #e9eef4) 76%, var(--sp-background, #070b12));
  --sp-tplsm-muted:     var(--sp-muted, #8493a6);
  --sp-tplsm-line:      color-mix(in srgb, var(--sp-default, #e9eef4) 11%, transparent);
  --sp-tplsm-line-soft: color-mix(in srgb, var(--sp-default, #e9eef4) 6%, transparent);
  --sp-tplsm-p-dim:     color-mix(in srgb, var(--sp-primary, #0abab5) 13%, transparent);
  --sp-tplsm-p-line:    color-mix(in srgb, var(--sp-primary, #0abab5) 36%, transparent);
  --sp-tplsm-p-glow:    color-mix(in srgb, var(--sp-primary, #0abab5) 32%, transparent);
  --sp-tplsm-a-dim:     color-mix(in srgb, var(--sp-tertiary, #d4a35a) 14%, transparent);
  --sp-tplsm-a-line:    color-mix(in srgb, var(--sp-tertiary, #d4a35a) 40%, transparent);
  /* testo sul bottone teal: il fondo scuro, non il bianco (contrasto AA) */
  --sp-tplsm-on-primary: color-mix(in srgb, var(--sp-background, #070b12) 88%, var(--sp-primary, #0abab5));
  --sp-tplsm-ease: cubic-bezier(.19, 1, .22, 1);
  --sp-tplsm-radius: 16px;
  --sp-tplsm-radius-xl: 24px;
  --sp-tplsm-section: clamp(64px, 8vw, 120px);
  /* UN solo sistema bottone per tutto il sito (Davide: "i pulsanti tutti uguali") */
  --sp-tplsm-btn-h: 48px;
  --sp-tplsm-btn-px: 24px;
  --sp-tplsm-btn-r: 10px;
  --sp-tplsm-btn-fs: .95rem;
  --sp-tplsm-top: calc(var(--sp-tpl-topbar-h, 38px) + var(--sp-tpl-header-h, 72px));

  /* colori della sfera (letti dal modulo [data-sp-sphere] di jSite-2.0) */
  --sp-sphere-node:  var(--sp-primary, #0abab5);
  --sp-sphere-pulse: var(--sp-secondary, #3ff0e8);
  --sp-sphere-hub:   var(--sp-tertiary, #d4a35a);

  /* §1 remap dei token di basic-2.0 (disegnati per fondo chiaro) */
  --sp-tpl-navy-0:    var(--sp-tplsm-text, #e9eef4);       /* 44 usi come testo, 20 come fondo: i fondi in §2 */
  --sp-tpl-navy-1:    var(--sp-tplsm-surface-2, #19202b);
  --sp-tpl-navy-deep: var(--sp-tplsm-deep, #06090f);
  --sp-tpl-ink-0:     var(--sp-tplsm-text, #e9eef4);
  --sp-tpl-ink-1:     var(--sp-tplsm-text-2, #b6bdc7);
  --sp-tpl-ink-2:     var(--sp-tplsm-muted, #8493a6);
  --sp-tpl-line:      var(--sp-tplsm-line, rgba(233, 238, 244, .11));
  --sp-tpl-line-dark: var(--sp-tplsm-line-soft, rgba(233, 238, 244, .06));
  --sp-tpl-bg-soft:   var(--sp-tplsm-surface, #0d1421);
  --sp-tpl-shadow-1:  0 1px 2px rgba(0, 0, 0, .45);
  --sp-tpl-shadow-2:  0 18px 50px rgba(0, 0, 0, .5);
}

/* =====================================================================
 * §2 Fondo scuro: gli strati ereditati da basic-2.0
 * ===================================================================== */
body { background: var(--sp-tplsm-bg, #070b12); color: var(--sp-tplsm-text, #e9eef4); }

/* barra alta: il gradiente primary→secondary con testo bianco non regge sul teal */
.sp-tpl-topbar {
  background: var(--sp-tplsm-deep, #06090f);
  color: var(--sp-tplsm-text-2, #b6bdc7);
  border-bottom: 1px solid var(--sp-tplsm-line-soft, rgba(233, 238, 244, .06));
}
.sp-tpl-topbar a { color: var(--sp-tplsm-text-2, #b6bdc7); }
.sp-tpl-topbar a:hover { color: var(--sp-primary, #0abab5); opacity: 1; }

.sp-tpl-header {
  background: var(--sp-tplsm-glass, rgba(7, 11, 18, .74));
  -webkit-backdrop-filter: saturate(150%) blur(16px);
  backdrop-filter: saturate(150%) blur(16px);
  border-bottom-color: var(--sp-tplsm-line-soft, rgba(233, 238, 244, .06));
}

/* superfici che basic-2.0 dipinge di bianco (#ffffff o #fff) */
.sp-tpl-section, .sp-tpl-content { background: transparent; }
.sp-tpl-value-card, .sp-tpl-news-card, .sp-tpl-product-card, .sp-tpl-login-card,
.sp-tpl-review-card, .sp-tpl-faq, .sp-tpl-bento-card, .sp-tpl-case-card,
.sp-tpl-account-sidebar, .sp-tpl-tab.active, .sp-tpl-tabpane, .sp-tpl-flip-face,
.sp-tpl-content-card, .sp-tpl-reserved-card, .sp-tpl-info-card, .sp-tpl-dash-card,
.sp-tpl-sec-totp-secret {
  background: var(--sp-tplsm-surface, #0d1421);
}
.sp-tpl-search-box input, .sp-tpl-news-search input, .sp-tpl-login-form input,
.sp-tpl-login-form input:focus {
  background: var(--sp-tplsm-deep, #06090f);
  color: var(--sp-tplsm-text, #e9eef4);
}
.sp-tpl-slide-dot.is-active { background: var(--sp-primary, #0abab5); }
/* il QR del TOTP deve restare su bianco per essere letto: resta com'e' */

/* fondi che basic-2.0 costruisce con --sp-tpl-navy-* (qui navy-0 e' diventato chiaro) */
.sp-tpl-lang-panel, .sp-tpl-section--dark, .sp-tpl-news-thumb, .sp-tpl-product-thumb,
.sp-tpl-guide, .sp-tpl-guide-panel, .sp-tpl-reserved--hero, .sp-tpl-reserved--mesh,
.sp-tpl-slideshow, .sp-tpl-hero, .sp-tpl-hero-bg, .sp-tpl-metrics, .sp-tpl-cta-card {
  background: var(--sp-tplsm-deep, #06090f);
}
.sp-tpl-guide-step.is-current { background: var(--sp-tplsm-surface-2, #19202b); }
.sp-tpl-pagination button.is-active { background: var(--sp-primary, #0abab5); color: var(--sp-tplsm-on-primary, #071215); }
.sp-tpl-btn--dark { background: var(--sp-tplsm-surface-2, #19202b); color: var(--sp-tplsm-text, #e9eef4); }
.sp-tpl-btn--dark:hover { background: var(--sp-tplsm-surface, #0d1421); color: var(--sp-tplsm-text, #e9eef4); }

/* BOTTONI — un sistema, tre varianti: primary (teal pieno), ghost (bordato), testo.
   Stessa altezza, padding, raggio, peso e spaziatura ovunque: hero, cta, pagine, banner cookie. */
.sp-tpl-btn, .sp-cookie-banner .sp-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: var(--sp-tplsm-btn-h, 48px);
  padding: 0 var(--sp-tplsm-btn-px, 24px);
  border-radius: var(--sp-tplsm-btn-r, 10px);
  border: 1px solid transparent;
  font-family: inherit; font-size: var(--sp-tplsm-btn-fs, .95rem); font-weight: 600;
  letter-spacing: .01em; line-height: 1.2; text-transform: none; white-space: nowrap;
  transition: background var(--sp-tr, .25s), border-color var(--sp-tr, .25s), color var(--sp-tr, .25s), transform var(--sp-tr, .25s);
}
.sp-tpl-btn:hover, .sp-cookie-banner .sp-button:hover { transform: translateY(-1px); }
.sp-tpl-btn--ghost, .sp-tpl-btn--outline, .sp-cookie-banner .sp-button {
  background: transparent; border-color: var(--sp-tplsm-line, rgba(233, 238, 244, .11)); color: var(--sp-tplsm-text, #e9eef4);
}
.sp-tpl-btn--ghost:hover, .sp-tpl-btn--outline:hover, .sp-cookie-banner .sp-button:hover {
  border-color: var(--sp-tplsm-p-line, rgba(10, 186, 181, .36)); color: var(--sp-primary, #0abab5);
}
.sp-tpl-btn--primary, .sp-cookie-banner .sp-button[data-control="closeCookieBanner"] {
  background: var(--sp-primary, #0abab5); border-color: var(--sp-primary, #0abab5);
  color: var(--sp-tplsm-on-primary, #071215);
  box-shadow: 0 10px 30px var(--sp-tplsm-p-glow, rgba(10, 186, 181, .32));
}
.sp-tpl-btn--primary:hover, .sp-cookie-banner .sp-button[data-control="closeCookieBanner"]:hover {
  background: var(--sp-secondary, #3ff0e8); border-color: var(--sp-secondary, #3ff0e8); color: var(--sp-tplsm-on-primary, #071215);
}
.sp-tpl-btn--text { background: transparent; border-color: transparent; padding-inline: 4px; color: var(--sp-primary, #0abab5); }
.sp-tpl-btn:focus-visible, .sp-cookie-banner .sp-button:focus-visible { outline: 2px solid var(--sp-primary, #0abab5); outline-offset: 3px; }

/* testata delle pagine interne */
.sp-tpl-page-hero { background: var(--sp-tplsm-deep, #06090f); }
.sp-tpl-page-hero-bg {
  background:
    radial-gradient(ellipse 55% 60% at 50% 35%, var(--sp-tplsm-p-dim, rgba(10, 186, 181, .13)), transparent 65%),
    linear-gradient(180deg, var(--sp-tplsm-deep, #06090f) 0%, var(--sp-tplsm-bg, #070b12) 100%);
}
/* sezioni "soft" di basic-2.0: fondo pagina, niente fasce chiare */
.sp-tpl-intro, .sp-tpl-cta, .sp-tpl-reviews, .sp-tpl-logos, .sp-tpl-bento, .sp-tpl-case,
.sp-tpl-reserved, .sp-tpl-section--soft {
  background: transparent;
}

/* =====================================================================
 * §3 Motion — leggibile a riposo
 * ===================================================================== */
/* sp-animations-2.0 nasconde .sp-anim-reveal finche' il JS non aggiunge .is-in: qui la
   nascondiamo SOLO se il JS e' partito davvero (html.sp-js-motion). */
html:not(.sp-js-motion) .sp-anim-reveal { opacity: 1; transform: none; }

@keyframes sp-tplsm-settle { from { transform: translateY(.25em); letter-spacing: -.01em; } to { transform: none; } }
@keyframes sp-tplsm-kb { from { transform: scale(1.04); } to { transform: scale(1.14) translate(-1.5%, -1%); } }
@keyframes sp-tplsm-rise { 0% { transform: translateY(0); opacity: 0; } 12% { opacity: 1; } 88% { opacity: 1; } 100% { transform: translateY(calc(-1 * var(--sp-tplsm-rise, 420px))); opacity: 0; } }
@keyframes sp-tplsm-cue { 0% { transform: scaleY(0); transform-origin: top; } 50% { transform: scaleY(1); transform-origin: top; } 51% { transform-origin: bottom; } 100% { transform: scaleY(0); transform-origin: bottom; } }

/* =====================================================================
 * §4 Testi di scena
 * ===================================================================== */
.sp-tplsm-display {
  font-size: clamp(2.2rem, 5vw, 4.4rem);
  font-weight: 600;
  line-height: 1.04;
  letter-spacing: -.035em;           /* compensazione: display grandi sembrano sparsi */
  color: var(--sp-tplsm-text, #e9eef4);
  max-width: 18ch;
}
.sp-tplsm-accent {
  font-style: normal;
  font-weight: 300;
  color: var(--sp-secondary, #3ff0e8);
  text-shadow: 0 0 40px var(--sp-tplsm-p-glow, rgba(10, 186, 181, .32));
}
.sp-tplsm-badge {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid var(--sp-tplsm-p-line, rgba(10, 186, 181, .36));
  background: var(--sp-tplsm-p-dim, rgba(10, 186, 181, .13));
  color: var(--sp-tplsm-text-2, #b6bdc7);
  font-size: .9rem; font-weight: 500;
}
.sp-tplsm-badge::before {
  content: ""; width: 7px; height: 7px; border-radius: 50%;
  background: var(--sp-primary, #0abab5);
  box-shadow: 0 0 0 4px var(--sp-tplsm-p-dim, rgba(10, 186, 181, .13));
}
.sp-tplsm-section { padding-block: var(--sp-tplsm-section, clamp(72px, 10vw, 150px)); position: relative; }

/* =====================================================================
 * §5 Hero stage
 * ===================================================================== */
.sp-tpl-hero.sp-tplsm-hero {
  position: relative; isolation: isolate; overflow: hidden;
  display: flex; align-items: flex-end; justify-content: center;
  min-height: clamp(700px, 100svh, 1100px);   /* niente 100vh (§13.15): svh con tetto */
  padding: calc(var(--sp-tplsm-top, 110px) + 24px) 0 clamp(64px, 8vw, 116px);
  background: var(--sp-tplsm-deep, #06090f);
  text-align: center;
}
.sp-tplsm-hero-stage { position: absolute; inset: 0; z-index: -1; }
/* canvas a TUTTA LARGHEZZA della scena: niente scatola dietro la sfera. La sfera si posiziona
   dentro il canvas (data-sp-sphere-cx/-cy) e il suo alone sfuma a zero prima dei bordi.
   Il contenitore delle etichette ha la stessa scatola del canvas (coordinate condivise). */
.sp-tplsm-sphere--hero,
.sp-tplsm-hero .sp-tplsm-sphere-labels {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  background: transparent;
}
.sp-tplsm-sphere { display: block; }
/* le sfere dentro card e testate sfumano verso i bordi del loro canvas: niente taglio netto */
.sp-tplsm-sphere--page, .sp-tplsm-sphere--bento, .sp-tplsm-sphere--cta {
  -webkit-mask-image: radial-gradient(closest-side, #000 72%, transparent 100%);
          mask-image: radial-gradient(closest-side, #000 72%, transparent 100%);
}
.sp-tplsm-sphere-labels { pointer-events: none; }
.sp-sphere-label {
  position: absolute; left: 0; top: 0; opacity: 0;
  padding: 4px 11px; border-radius: 999px; white-space: nowrap;
  font-size: .78rem; font-weight: 600; letter-spacing: .02em;
  color: var(--sp-tplsm-text, #e9eef4);
  background: var(--sp-tplsm-glass, rgba(7, 11, 18, .74));
  border: 1px solid var(--sp-tplsm-a-line, rgba(212, 163, 90, .4));
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  will-change: transform, opacity;
}
.sp-sphere-label::before {
  content: ""; display: inline-block; width: 6px; height: 6px; border-radius: 50%;
  background: var(--sp-tertiary, #d4a35a); margin-inline-end: 8px; vertical-align: 1px;
}
.sp-tplsm-stage-images, .sp-tplsm-stage-video, .sp-tplsm-stage-mesh { position: absolute; inset: 0; width: 100%; height: 100%; }
.sp-tplsm-stage-img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  opacity: 0; transition: opacity 1.6s var(--sp-tplsm-ease, cubic-bezier(.19, 1, .22, 1));
}
.sp-tplsm-stage-img.is-active { opacity: .5; }
.sp-js-motion .sp-tplsm-stage-img.is-kb { animation: sp-tplsm-kb 9s var(--sp-ease-out, ease-out) both; }
.sp-tplsm-stage-video { object-fit: cover; opacity: .45; }
.sp-tplsm-stage-veil {
  position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 60% 55% at 50% 42%, transparent 35%, var(--sp-tplsm-deep, #06090f) 100%),
    linear-gradient(180deg, transparent 40%, color-mix(in srgb, var(--sp-tplsm-deep, #06090f) 92%, transparent) 88%);
}
.sp-tplsm-hero-inner {
  position: relative;
  display: flex; flex-direction: column; align-items: center; gap: clamp(18px, 2.4vw, 28px);
  max-width: 1000px;
}
.sp-tplsm-slides { display: grid; width: 100%; }
.sp-tplsm-slide { display: flex; flex-direction: column; align-items: center; gap: clamp(16px, 2vw, 24px); }
.sp-tplsm-hero.is-staged .sp-tplsm-slide {
  grid-area: 1 / 1;
  opacity: 0; visibility: hidden; transform: translateY(12px);
  transition: opacity .9s var(--sp-tplsm-ease, cubic-bezier(.19, 1, .22, 1)), transform .9s var(--sp-tplsm-ease, cubic-bezier(.19, 1, .22, 1)), visibility 0s linear .9s;
}
.sp-tplsm-hero.is-staged .sp-tplsm-slide.is-active {
  opacity: 1; visibility: visible; transform: none;
  transition: opacity .9s var(--sp-tplsm-ease, cubic-bezier(.19, 1, .22, 1)), transform .9s var(--sp-tplsm-ease, cubic-bezier(.19, 1, .22, 1)), visibility 0s;
}
.sp-tplsm-hero h1.sp-tplsm-title, .sp-tplsm-hero h2.sp-tplsm-title {
  margin: 0;
  font-size: clamp(2.7rem, 6.8vw, 6rem);
  font-weight: 600; line-height: 1; letter-spacing: -.04em;   /* compensazione display */
  color: var(--sp-tplsm-text, #e9eef4);
  text-shadow: 0 2px 30px color-mix(in srgb, var(--sp-tplsm-deep, #06090f) 70%, transparent);
  max-width: 15ch;
}
.sp-js-motion .sp-tplsm-slide.is-active .sp-tplsm-title { animation: sp-tplsm-settle 1.4s var(--sp-tplsm-ease, cubic-bezier(.19, 1, .22, 1)) both; }
.sp-tplsm-hero p.sp-tplsm-lead {
  margin: 0; max-width: 56ch;
  font-size: clamp(1.05rem, 1.5vw, 1.24rem); line-height: 1.6;
  color: var(--sp-tplsm-text-2, #b6bdc7);
}
.sp-tplsm-claims { list-style: none; margin: 0; padding: 0; display: grid; justify-items: center; }
.sp-tplsm-claim { font-size: 1.05rem; font-weight: 600; color: var(--sp-tertiary, #d4a35a); }
.sp-tplsm-claims.is-rotating .sp-tplsm-claim {
  grid-area: 1 / 1; opacity: 0; transform: translateY(8px);
  transition: opacity .6s var(--sp-tplsm-ease, cubic-bezier(.19, 1, .22, 1)), transform .6s var(--sp-tplsm-ease, cubic-bezier(.19, 1, .22, 1));
}
.sp-tplsm-claims.is-rotating .sp-tplsm-claim.is-active { opacity: 1; transform: none; }
.sp-tplsm-hero .sp-tpl-hero-actions { justify-content: center; }
.sp-tplsm-stage-dots { display: flex; gap: 8px; }
.sp-tplsm-stage-dots button {
  width: 28px; height: 4px; padding: 0; border: 0; border-radius: 4px; cursor: pointer;
  background: var(--sp-tplsm-line, rgba(233, 238, 244, .11));
  transition: background var(--sp-tr, .25s), width var(--sp-tr, .25s);
}
.sp-tplsm-stage-dots button.is-active { width: 44px; background: var(--sp-primary, #0abab5); }
.sp-tplsm-stage-dots button:focus-visible { outline: 2px solid var(--sp-primary, #0abab5); outline-offset: 3px; }
.sp-tplsm-scroll-cue { display: none; }   /* sembrava un difetto: via */

/* =====================================================================
 * §6 Settori (marquee di basicpro, dati di logosStrip)
 * ===================================================================== */
.sp-tplsm-logos { background: transparent; border-block: 1px solid var(--sp-tplsm-line-soft, rgba(233, 238, 244, .06)); }
.sp-tplsm-logos .sp-anim-marquee-track { display: flex; width: max-content; }
.sp-tplsm-logos-set { display: flex; flex: none; gap: 64px; padding-inline-end: 64px; }
.sp-tplsm-logos .sp-tplpro-logos-label { color: var(--sp-tplsm-muted, #8493a6); letter-spacing: .04em; text-transform: none; font-size: .95rem; }
.sp-tplsm-logos .sp-tplpro-logo { color: var(--sp-tplsm-text-2, #b6bdc7); white-space: nowrap; display: inline-flex; align-items: center; gap: 12px; }
/* l'esagono del logo al posto del quadratino grigio di basicpro */
.sp-tplsm-logos .sp-tplpro-logo-mark {
  width: 14px; height: 16px; border-radius: 0; opacity: .85;
  background: var(--sp-primary, #0abab5);
  clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);   /* l'esagono del logo */
}

/* =====================================================================
 * §7 Manifesto (introGrid.sp-tplsm-manifesto)
 * ===================================================================== */
.sp-tplsm-manifesto-head {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(32px, 6vw, 96px); align-items: end;
}
.sp-tplsm-manifesto-lead { color: var(--sp-tplsm-text-2, #b6bdc7); font-size: 1.1rem; line-height: 1.7; max-width: 60ch; }
.sp-tplsm-steps {
  list-style: none; margin: 0; padding: clamp(48px, 7vw, 88px) 0 0;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 3vw, 40px);
}
.sp-tplsm-step { display: flex; flex-direction: column; gap: 12px; padding-top: 22px; border-top: 1px solid var(--sp-tplsm-line, rgba(233, 238, 244, .11)); }
.sp-tplsm-step-n {
  font-size: clamp(2.4rem, 4vw, 3.4rem); font-weight: 300; line-height: 1;
  color: var(--sp-tertiary, #d4a35a); font-variant-numeric: tabular-nums;
}
.sp-tplsm-step h3 { margin: 0; font-size: 1.3rem; color: var(--sp-tplsm-text, #e9eef4); }
.sp-tplsm-step p { margin: 0; color: var(--sp-tplsm-muted, #8493a6); line-height: 1.65; }

/* =====================================================================
 * §8 Stack esploso (introGrid.sp-tplsm-stack + [data-sp-scroll-progress])
 * --sp-scroll-p arriva dal JS (0 entra dal basso, 1 esce dall'alto). Senza JS o col movimento
 * ridotto vale 0.5: gli strati stanno quasi aperti, leggibili.
 * ===================================================================== */
.sp-tplsm-stack {
  background: var(--sp-tplsm-surface, #0d1421);
  border-block: 1px solid var(--sp-tplsm-line-soft, rgba(233, 238, 244, .06));
  --sp-tplsm-open: clamp(0, calc((var(--sp-scroll-p, .5) - .12) * 2.6), 1);
}
.sp-tplsm-stack-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 96px); align-items: center; }
.sp-tplsm-stack-head { display: flex; flex-direction: column; gap: 22px; }
.sp-tplsm-stack-lead { color: var(--sp-tplsm-text-2, #b6bdc7); font-size: 1.08rem; line-height: 1.7; max-width: 54ch; }
.sp-tplsm-layers {
  list-style: none; margin: 0; padding: 0 0 0 30px; position: relative;
  display: flex; flex-direction: column;
  gap: calc(4px + var(--sp-tplsm-open, .84) * 14px);
  perspective: 1400px;
  --sp-tplsm-rise: 380px;
}
.sp-tplsm-layers::before {
  content: ""; position: absolute; left: 8px; top: 16px; bottom: 16px; width: 1px;
  background: linear-gradient(to top, var(--sp-tplsm-a-line, rgba(212, 163, 90, .4)), var(--sp-tplsm-p-line, rgba(10, 186, 181, .36)));
}
.sp-js-motion .sp-tplsm-layers::after {
  content: ""; position: absolute; left: 5px; bottom: 16px; width: 7px; height: 38px; border-radius: 4px;
  background: linear-gradient(to top, transparent, var(--sp-secondary, #3ff0e8));
  box-shadow: 0 0 18px var(--sp-tplsm-p-glow, rgba(10, 186, 181, .32));
  animation: sp-tplsm-rise 3.8s var(--sp-ease, ease) infinite;
}
.sp-tplsm-layer {
  display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 18px; align-items: center;
  padding: 18px 22px;
  border-radius: var(--sp-tplsm-radius, 16px);
  border: 1px solid color-mix(in srgb, var(--sp-primary, #0abab5) calc(var(--sp-tplsm-open, .84) * 30%), var(--sp-tplsm-line, rgba(233, 238, 244, .11)));
  background: linear-gradient(180deg, var(--sp-tplsm-surface-2, #19202b), var(--sp-tplsm-surface, #0d1421));
  box-shadow: 0 calc(10px + var(--sp-tplsm-open, .84) * 16px) 40px rgba(0, 0, 0, .35);
  transform-origin: 50% 100%;
  transform:
    translateY(calc((1 - var(--sp-tplsm-open, .84)) * var(--sp-tplsm-layer, 0) * 22px))
    rotateX(calc((1 - var(--sp-tplsm-open, .84)) * 58deg));
}
.sp-tplsm-layer-idx {
  display: inline-grid; place-items: center; width: 48px; height: 32px; border-radius: 999px;
  font-size: .82rem; font-weight: 700; letter-spacing: .04em;
  color: var(--sp-tertiary, #d4a35a); background: var(--sp-tplsm-a-dim, rgba(212, 163, 90, .14)); border: 1px solid var(--sp-tplsm-a-line, rgba(212, 163, 90, .4));
}
.sp-tplsm-layer-body h3 { margin: 0 0 4px; font-size: 1.18rem; color: var(--sp-tplsm-text, #e9eef4); }
.sp-tplsm-layer-body p { margin: 0; font-size: .95rem; color: var(--sp-tplsm-muted, #8493a6); line-height: 1.55; }

/* =====================================================================
 * §9 Bento con la card sfera
 * ===================================================================== */
.sp-tplsm-bento { padding-block: var(--sp-tplsm-section, clamp(72px, 10vw, 150px)); }
.sp-tplsm-bento .sp-tpl-bento-card { border-radius: var(--sp-tplsm-radius, 16px); }
.sp-tplsm-bento .sp-tpl-bento-card:hover { border-color: var(--sp-tplsm-p-line, rgba(10, 186, 181, .36)); box-shadow: 0 20px 60px rgba(0, 0, 0, .4); }
.sp-tplsm-bento .sp-tpl-ico {
  display: inline-grid; place-items: center; width: 48px; height: 48px; margin-bottom: 18px;
  border-radius: 50%; border: 1px solid var(--sp-tplsm-p-line, rgba(10, 186, 181, .36));
  background: var(--sp-tplsm-p-dim, rgba(10, 186, 181, .13));
  color: var(--sp-primary, #0abab5); font-size: 1.2rem;
}
.sp-tpl-bento-card.sp-tplsm-bento--sphere {
  grid-column: span 2; grid-row: span 2;
  position: relative; overflow: hidden; isolation: isolate;
  display: flex; flex-direction: column; justify-content: flex-end;
  min-height: 420px;
  background:
    radial-gradient(ellipse 70% 80% at 78% 30%, var(--sp-tplsm-p-dim, rgba(10, 186, 181, .13)), transparent 62%),
    var(--sp-tplsm-surface, #0d1421);
}
.sp-tplsm-sphere--bento { position: absolute; z-index: -1; right: -12%; top: -12%; width: 78%; aspect-ratio: 1; }
.sp-tplsm-bento--sphere h3 { font-size: clamp(1.8rem, 3vw, 2.8rem); }
.sp-tplsm-bento--sphere p { max-width: 44ch; }

/* =====================================================================
 * §10 Metriche (niente gradienti: numero pieno e leggero)
 * ===================================================================== */
.sp-tpl-metrics.sp-tplsm-metrics {
  background: transparent; text-align: left;
  border-block: 1px solid var(--sp-tplsm-line-soft, rgba(233, 238, 244, .06));
}
.sp-tplsm-metrics .sp-tpl-metrics-grid { gap: 0; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sp-tplsm-metrics .sp-tpl-metric { min-width: 0; padding: 12px 24px; border-inline-start: 1px solid var(--sp-tplsm-line, rgba(233, 238, 244, .11)); }
.sp-tplsm-metrics .sp-tpl-metric:first-child { border-inline-start: 0; }
.sp-tplsm-metrics .sp-tpl-metric-value {
  display: block; font-size: clamp(2.2rem, 3.6vw, 3.6rem); font-weight: 300; letter-spacing: -.03em;
  overflow-wrap: anywhere;   /* mai sopra la colonna accanto */
  color: var(--sp-tplsm-text, #e9eef4); font-variant-numeric: tabular-nums;
}
.sp-tplsm-metrics .sp-tpl-metric-label { color: var(--sp-tplsm-muted, #8493a6); }

/* =====================================================================
 * §11 Case study
 * ===================================================================== */
.sp-tplsm-case-title { margin: 0 0 clamp(32px, 5vw, 56px); font-size: clamp(1.6rem, 2.6vw, 2.2rem); color: var(--sp-tplsm-text-2, #b6bdc7); font-weight: 500; }
.sp-tplsm-case-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, .6fr); gap: clamp(32px, 6vw, 96px); align-items: end; }
.sp-tplsm-quote {
  margin: 0; position: relative; padding-top: 56px;
  font-size: clamp(1.45rem, 2.6vw, 2.2rem); font-weight: 400; line-height: 1.38; letter-spacing: -.005em;
  color: var(--sp-tplsm-text, #e9eef4);
}
.sp-tplsm-quote::before {
  content: "\201C"; position: absolute; top: -10px; left: -4px;
  font-size: 6rem; line-height: 1; font-weight: 700; color: var(--sp-tertiary, #d4a35a);
}
.sp-tplsm-case-points { margin: 0; display: flex; flex-direction: column; gap: 22px; padding-inline-start: 28px; border-inline-start: 1px solid var(--sp-tplsm-line, rgba(233, 238, 244, .11)); }
.sp-tplsm-case-points dt { font-size: 2.2rem; font-weight: 300; letter-spacing: -.03em; color: var(--sp-tplsm-text, #e9eef4); }
.sp-tplsm-case-points dd { margin: 4px 0 0; color: var(--sp-tplsm-muted, #8493a6); }

/* =====================================================================
 * §12 CTA con la sfera
 * ===================================================================== */
.sp-tpl-cta.sp-tplsm-cta { background: transparent; padding-block: 0 var(--sp-tplsm-section, clamp(72px, 10vw, 150px)); }
.sp-tplsm-cta-card {
  position: relative; isolation: isolate; overflow: hidden;
  display: flex; justify-content: center; text-align: center;
  padding: clamp(64px, 9vw, 130px) clamp(20px, 4vw, 48px);
  border-radius: var(--sp-tplsm-radius-xl, 24px);
  border: 1px solid var(--sp-tplsm-p-line, rgba(10, 186, 181, .36));
  background: radial-gradient(ellipse 60% 70% at 50% 0%, var(--sp-tplsm-p-dim, rgba(10, 186, 181, .13)), transparent 62%), var(--sp-tplsm-surface, #0d1421);
}
.sp-tplsm-sphere--cta { position: absolute; z-index: -2; left: 50%; top: 50%; width: min(820px, 130%); aspect-ratio: 1; translate: -50% -50%; opacity: .6; }
.sp-tplsm-cta-card::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: radial-gradient(ellipse 50% 55% at 50% 50%, transparent 25%, var(--sp-tplsm-surface, #0d1421) 92%);
}
.sp-tplsm-cta-inner { display: flex; flex-direction: column; align-items: center; gap: 22px; }
.sp-tplsm-cta-inner .sp-tplsm-display { margin: 0 auto; }
.sp-tplsm-cta-inner p { margin: 0; color: var(--sp-tplsm-text-2, #b6bdc7); max-width: 48ch; font-size: 1.08rem; }

/* =====================================================================
 * §13 Soluzioni e feature (introGrid.sp-tplsm-solutions) — impianto del mockup di giugno
 * ===================================================================== */
.sp-tplsm-solutions-lead { color: var(--sp-tplsm-text-2, #b6bdc7); max-width: 60ch; margin-top: 18px; }
.sp-tplsm-solutions-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.sp-tplsm-solutions .sp-tplsm-display + .sp-tplsm-solutions-grid,
.sp-tplsm-solutions-lead + .sp-tplsm-solutions-grid { margin-top: clamp(40px, 5vw, 64px); }
.sp-tplsm-solution {
  position: relative; display: flex; flex-direction: column; gap: 12px;
  padding: 30px 28px 34px;
  border-radius: var(--sp-tplsm-radius, 16px);
  border: 1px solid var(--sp-tplsm-line, rgba(233, 238, 244, .11));
  background: linear-gradient(180deg, var(--sp-tplsm-surface-2, #19202b), var(--sp-tplsm-surface, #0d1421));
  color: var(--sp-tplsm-text, #e9eef4);
  text-decoration: none;
  transition: transform .45s var(--sp-tplsm-ease, cubic-bezier(.19, 1, .22, 1)), border-color var(--sp-tr, .25s), box-shadow .45s var(--sp-tplsm-ease, cubic-bezier(.19, 1, .22, 1));
}
a.sp-tplsm-solution:hover { transform: translateY(-5px); border-color: var(--sp-tplsm-p-line, rgba(10, 186, 181, .36)); box-shadow: 0 24px 60px rgba(0, 0, 0, .45); }
a.sp-tplsm-solution:focus-visible { outline: 2px solid var(--sp-primary, #0abab5); outline-offset: 3px; }
.sp-tplsm-solution-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.sp-tplsm-solution-ico {
  position: relative; display: inline-grid; place-items: center; width: 48px; height: 48px;
  border-radius: 50%; border: 1px solid var(--sp-tplsm-p-line, rgba(10, 186, 181, .36)); background: var(--sp-tplsm-p-dim, rgba(10, 186, 181, .13));
  color: var(--sp-primary, #0abab5); font-size: 1.15rem;
}
.sp-tplsm-solution-n { font-size: .9rem; font-weight: 600; color: var(--sp-tplsm-muted, #8493a6); font-variant-numeric: tabular-nums; }
.sp-tplsm-solution h3 { margin: 0; font-size: 1.22rem; color: var(--sp-tplsm-text, #e9eef4); }
.sp-tplsm-solution p { margin: 0; color: var(--sp-tplsm-muted, #8493a6); font-size: .96rem; line-height: 1.6; }
.sp-tplsm-solution-go {
  position: absolute; right: 26px; bottom: 26px; color: var(--sp-primary, #0abab5);
  opacity: 0; transform: translateX(-6px);
  transition: opacity var(--sp-tr, .25s), transform .45s var(--sp-tplsm-ease, cubic-bezier(.19, 1, .22, 1));
}
a.sp-tplsm-solution:hover .sp-tplsm-solution-go,
a.sp-tplsm-solution:focus-visible .sp-tplsm-solution-go { opacity: 1; transform: none; }
.sp-tplsm-features .sp-tplsm-solution-n { display: none; }

/* =====================================================================
 * §14 Testata delle pagine interne con la sfera piccola
 * ===================================================================== */
.sp-tplsm-sphere--page {
  position: absolute; left: 50%; top: 50%;
  width: min(560px, 90vw); aspect-ratio: 1; translate: -50% -50%;
  opacity: .55;
}

/* =====================================================================
 * §14b Banner cookie (markup legacy: .sp-cookie-banner + bottoni .sp-button della 1.x)
 * ===================================================================== */
.sp-cookie-banner {
  background: var(--sp-tplsm-glass, rgba(7, 11, 18, .74));
  -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
  border: 1px solid var(--sp-tplsm-line, rgba(233, 238, 244, .11));
  border-radius: var(--sp-tplsm-radius, 16px);
  color: var(--sp-tplsm-text-2, #b6bdc7);
  box-shadow: 0 24px 60px rgba(0, 0, 0, .5);
}
.sp-cookie-banner__msg { font-size: .92rem; line-height: 1.6; }
.sp-cookie-banner__actions .sp-flex { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
/* i bottoni del banner usano il sistema unico (§2) */

/* =====================================================================
 * §14c Logo — DUE VARIANTI, UNA VARIABILE (template: logo() e footerMenu() stampano entrambi)
 *   --sp-tplsm-logo-mode: 0  →  A  esagono di snap (SVG di basic2, colori da basic-2.0)
 *   --sp-tplsm-logo-mode: 1  →  B  sfera di nodi del mockup v1 (PNG 128px, maschera teal)
 * Il simbolo spento resta nel markup con larghezza e margine zero: e' decorativo (aria-hidden).
 * ===================================================================== */
:root {
  --sp-tplsm-logo-mode: 0;
  --sp-tplsm-logo: url("data:image/png;base64,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");
}
.sp-tplsm-logo { display: inline-flex; align-items: center; gap: 0; }
.sp-tplsm-logo .sp-tpl-logo-svg,
.sp-tpl-footer-brand .sp-tpl-footer-logo-svg {
  flex: none;
  width:  calc((1 - var(--sp-tplsm-logo-mode, 0)) * 32px);
  height: 32px;
  margin-inline-end: calc((1 - var(--sp-tplsm-logo-mode, 0)) * 12px);
}
.sp-tpl-footer-brand .sp-tpl-footer-logo-svg { width: calc((1 - var(--sp-tplsm-logo-mode, 0)) * 40px); height: 40px; }
.sp-tplsm-logo-mark {
  display: inline-block; flex: none;
  width:  calc(var(--sp-tplsm-logo-mode, 0) * 36px);
  height: 36px;
  margin-inline-end: calc(var(--sp-tplsm-logo-mode, 0) * 12px);
  background: linear-gradient(135deg, var(--sp-primary, #0abab5), var(--sp-secondary, #3ff0e8));
  -webkit-mask: var(--sp-tplsm-logo, none) center / contain no-repeat;
          mask: var(--sp-tplsm-logo, none) center / contain no-repeat;
}
.sp-tplsm-logo-mark--footer { width: calc(var(--sp-tplsm-logo-mode, 0) * 44px); height: 44px; }
.sp-tplsm-logo .sp-tpl-logo-brand { color: var(--sp-tplsm-text, #e9eef4); font-weight: 600; letter-spacing: -.01em; }
/* basic-2.0 sotto i 640px centra la scritta in assoluto (header a 3 zone): qui simbolo e
   nome restano insieme a sinistra, come nel mockup */
@media (max-width: 640px) {
  .sp-tplsm-logo .sp-tpl-logo-brand { position: static; transform: none; }
}

/* =====================================================================
 * §15 Responsive
 * ===================================================================== */
@media (max-width: 1024px) {
  .sp-tpl-bento-card.sp-tplsm-bento--sphere { grid-column: 1 / -1; grid-row: auto; min-height: 360px; }
  .sp-tplsm-solutions-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 880px) {
  /* telefono e tablet stretti: la sfera sale sopra il testo e occupa la larghezza */
  .sp-tplsm-sphere--hero { --sp-sphere-cy: .3; --sp-sphere-radius: .44; }
  .sp-tplsm-manifesto-head, .sp-tplsm-stack-grid, .sp-tplsm-case-grid { grid-template-columns: 1fr; }
  .sp-tplsm-steps { grid-template-columns: 1fr; }
  .sp-tplsm-case-points { flex-direction: row; flex-wrap: wrap; padding-inline-start: 0; border-inline-start: 0; padding-top: 22px; border-top: 1px solid var(--sp-tplsm-line, rgba(233, 238, 244, .11)); }
  .sp-tplsm-metrics .sp-tpl-metrics-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
  .sp-tplsm-metrics .sp-tpl-metric:nth-child(odd) { border-inline-start: 0; }
}
@media (max-width: 560px) {
  .sp-tplsm-solutions-grid { grid-template-columns: 1fr; }
  .sp-tplsm-layer { grid-template-columns: 44px minmax(0, 1fr); padding: 14px 16px; }
  .sp-tplsm-layers { padding-left: 22px; }
  .sp-tplsm-hero .sp-tpl-hero-actions .sp-tpl-btn { flex: 1 1 100%; justify-content: center; }
  .sp-tplsm-scroll-cue { display: none; }
  /* sp-site-layout-2.0 fa di __actions una griglia a 2 colonne: il blocco legacy e' UN figlio,
     quindi deve prendere tutta la riga, e dentro diventa lui la griglia dei bottoni */
  .sp-cookie-banner__actions .sp-flex { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; justify-content: stretch; width: 100%; padding: 0; }
  /* un foglio del sito mette #sp-cookie-banner .sp-button { width: 50% } sotto i 600px: stesso
     peso (id + classi) per vincere senza !important */
  #sp-cookie-banner .sp-cookie-banner__actions .sp-flex > .sp-button { width: 100%; max-width: none; justify-self: stretch; box-sizing: border-box; white-space: normal; text-align: center; }
  .sp-cookie-banner .sp-button[data-control="closeCookieBanner"] { grid-column: 1 / -1; }
  .sp-tplsm-metrics .sp-tpl-metric { padding-inline: 14px; }
  .sp-tplsm-metrics .sp-tpl-metric-value { font-size: clamp(2rem, 10vw, 2.8rem); }
}
