/* Leva Ops · stili condivisi */
body { font-size: 16px; }
@media (min-width: 768px) { body { font-size: 18px; } }
.section { padding-top: 72px; padding-bottom: 72px; }
@media (min-width: 768px) { .section { padding-top: 120px; padding-bottom: 120px; } }
.label { font-family: 'JetBrains Mono', monospace; font-weight: 500; font-size: 13px; letter-spacing: .18em; text-transform: uppercase; }
[data-lucide] { stroke-width: 1.5; }

/* Segnaposto da sostituire con dati reali prima della pubblicazione */
.ph { outline: 1px dashed currentColor; outline-offset: 1px; border-radius: 3px; padding: 0 .2em; opacity: .9; }

details > summary { list-style: none; }
details > summary::-webkit-details-marker { display: none; }
details[open] .faq-icon { transform: rotate(45deg); }

/* Sfondo del sub-brand Audit Margini Operativi */
.bg-audit { background: linear-gradient(135deg, #23405A 0%, #141A21 100%); }

/* Slider (scenario titolare, simulatore SmartDeal) */
input[type=range] { -webkit-appearance: none; appearance: none; width: 100%; height: 6px; border-radius: 99px; background: rgba(20,26,33,.18); outline: none; }
input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; width: 22px; height: 22px; border-radius: 50%; background: #141A21; border: 3px solid #C8F051; cursor: pointer; box-shadow: 0 0 0 1px #141A21; }
input[type=range]::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; background: #141A21; border: 3px solid #C8F051; cursor: pointer; }

/* ===== Movimento (attivo solo con JS e senza "riduci movimento") ===== */
@keyframes lv-draw { to { stroke-dashoffset: 0; } }
@keyframes lv-pop  { to { opacity: 1; transform: none; } }
@keyframes w-up    { to { transform: none; } }
@keyframes fade-up { to { opacity: 1; transform: none; } }
@keyframes fade-side { to { opacity: 1; transform: none; } }
@keyframes ping-lime { 0% { box-shadow: 0 0 0 0 rgba(200,240,81,.55); } 70%,100% { box-shadow: 0 0 0 12px rgba(200,240,81,0); } }

/* Logo: la leva si disegna, il fulcro "atterra" */
.motion #leva-mark line { stroke-dasharray: 44; stroke-dashoffset: 44; animation: lv-draw .9s .15s cubic-bezier(.65,0,.35,1) forwards; }
.motion #leva-mark path { opacity: 0; transform: translateY(5px); transform-box: fill-box; animation: lv-pop .55s .85s cubic-bezier(.2,.8,.2,1) forwards; }

/* Hero: titolo parola per parola, colonne in ingresso */
.motion .w-o { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .12em; margin-bottom: -.12em; }
.motion .w-i { display: inline-block; transform: translateY(110%); animation: w-up .9s cubic-bezier(.2,.8,.2,1) forwards; }
.motion .h-in   { opacity: 0; transform: translateY(18px); animation: fade-up .8s cubic-bezier(.2,.8,.2,1) forwards; }
.motion .h-side { opacity: 0; transform: translateX(48px); animation: fade-side 1s cubic-bezier(.2,.8,.2,1) forwards; }
.motion .ping { animation: ping-lime 2.4s 2.2s ease-out infinite; }

/* Hero: griglia di costruzione + riflesso lime che segue il mouse */
.motion .hero-fx { position: relative; isolation: isolate;
  background-image: radial-gradient(650px circle at var(--mx, 75%) var(--my, 35%), rgba(200,240,81,.09), transparent 60%); }
.motion .hero-fx::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: linear-gradient(rgba(244,245,241,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(244,245,241,.045) 1px, transparent 1px);
  background-size: 120px 120px; background-position: var(--gx, 0) var(--gy, 0);
  -webkit-mask-image: radial-gradient(ellipse 70% 70% at 60% 40%, #000 30%, transparent 80%);
          mask-image: radial-gradient(ellipse 70% 70% at 60% 40%, #000 30%, transparent 80%); }
.motion .tilt { transition: transform .5s cubic-bezier(.2,.8,.2,1); transform-style: preserve-3d; will-change: transform; }

/* Comparsa allo scroll, a cascata */
.motion .rv { opacity: 0; transform: translateY(32px); transition: opacity .9s cubic-bezier(.2,.8,.2,1), transform .9s cubic-bezier(.2,.8,.2,1), box-shadow .3s; transition-delay: var(--d, 0ms); }
.motion .rv.in { opacity: 1; transform: none; }
.motion .rv.in.lift:hover { transform: translateY(-6px); transition-delay: 0ms; box-shadow: 0 24px 48px -24px rgba(20,26,33,.35); }

/* Barre che si riempiono */
.motion .bar-fill { transition: width 1.6s cubic-bezier(.2,.8,.2,1) .2s; }

/* Header: si "stacca" quando si scorre */
header.sticky { transition: box-shadow .3s, background-color .3s; }
header.sticky.scrolled { box-shadow: 0 10px 30px -12px rgba(0,0,0,.5); }

/* Micro-interazioni: freccia che scorre, CTA lime che si illumina */
a > span[aria-hidden="true"] { display: inline-block; transition: transform .25s cubic-bezier(.2,.8,.2,1); }
a:hover > span[aria-hidden="true"] { transform: translateX(4px); }
a.bg-lime { transition: background-color .2s, box-shadow .3s, transform .2s; }
a.bg-lime:hover { box-shadow: 0 0 0 6px rgba(200,240,81,.18), 0 12px 30px -10px rgba(200,240,81,.45); }
a.bg-lime:active { transform: scale(.98); }

@media (prefers-reduced-motion: reduce) {
  a > span[aria-hidden="true"], a.bg-lime { transition: none; }
}

/* ===== Strato Brand Identity v1.0 ===== */

/* Etichette mono: spaziatura ampia come nel documento (es. "T O N O  D I  V O C E") */
.label { letter-spacing: .24em; }

/* Superfici piatte: un'unica ombra morbida, niente ombre pesanti */
.shadow-brand { box-shadow: 0 1px 0 rgba(20,26,33,.04), 0 28px 56px -28px rgba(0,0,0,.45); }

/* Pittogramma in trasparenza (come nelle pagine "Valori") */
.has-ghost { position: relative; isolation: isolate; overflow: hidden; }
.ghost-mark {
  position: absolute; z-index: -1; pointer-events: none;
  width: min(72vw, 920px); aspect-ratio: 48 / 32; height: auto;
  right: -10%; bottom: -22%;
  color: #20262E; --fulcrum: #20262E;
}
@media (max-width: 767px) { .ghost-mark { width: 120vw; right: -40%; bottom: -12%; } }

/* Tabelle "documento": squadrate, bordo a griglia, intestazione grafite, righe alternate */
.bi-table-wrap { border: 1px solid #C9D1D8; background: #F4F5F1; }
.bi-table { border-collapse: collapse; background: #F4F5F1; }
.bi-table th, .bi-table td { color: #141A21 !important; border: 1px solid #C9D1D8; }
.bi-table thead th { background: #141A21 !important; color: #F4F5F1 !important; font-family: 'DM Sans', sans-serif; font-weight: 600; border-color: #141A21; }
.bi-table thead th.text-lime { color: #C8F051 !important; }
.bi-table tbody tr:nth-child(even) th, .bi-table tbody tr:nth-child(even) td { background: #E9EDF0; }
.bi-table tbody th { font-weight: 500; }
.bi-table tfoot th, .bi-table tfoot td { background: #DDE3E8 !important; font-weight: 700; }
.bi-table tfoot .text-lime { background: #C8F051 !important; }

/* Badge dei moduli con colore di risalto dedicato */
.badge-lead   { background: #E8590C; color: #FFFFFF; } /* SmartLead · Acquisizione B2B */
.badge-health { background: #2B8A3E; color: #FFFFFF; } /* SmartMargin · Termometro di salute */
