/* Visual restyling from the supplied reference; content and section order stay intact. */
:root {
  --night: var(--palette-night);
  --night-soft: var(--palette-card);
  --light-text: var(--palette-white);
  --soft-text: var(--palette-soft);
  --electric: var(--palette-accent);
  --glass-border: rgb(var(--palette-line-rgb) / .24);
}
body, body.site-page { color: var(--light-text); background: var(--night); }
html { scroll-padding-top: var(--header-offset, 114px); }
.site-header {
  position: sticky;
  top: 0;
  z-index: 40;
  width: 100%;
  min-height: 98px;
  height: auto;
  padding: 16px max(32px, calc((100% - 1280px) / 2));
  background: rgb(var(--palette-night-rgb) / .78);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgb(var(--palette-line-rgb) / .16);
  box-shadow: 0 8px 24px rgb(var(--palette-night-rgb) / .12);
}
.site-header .brand, .site-footer .brand { padding: 10px 14px; background: var(--palette-white); border: 1px solid rgb(var(--palette-white-rgb) / .5); border-radius: 12px; }
.site-header .brand { background: transparent; border-color: transparent; }
.site-header .nav a, .nav-group summary { color: var(--palette-soft); }
.nav-group[open] summary, .nav-group.has-current summary, .nav a[aria-current="page"] { color: var(--palette-accent); }
.nav-submenu { background: var(--palette-card); border-color: var(--palette-slate); box-shadow: 0 16px 36px rgb(var(--palette-night-rgb) / .3); }
.nav-submenu a:hover, .nav-submenu a[aria-current="page"] { background: var(--palette-slate); color: var(--palette-white); }
.nav-toggle { background: var(--palette-card); border-color: var(--palette-button-end); color: var(--palette-white); }
.button { border-radius: 999px; }
.button-primary, .button-small { color: var(--palette-white); background: linear-gradient(110deg, var(--palette-button-start), var(--palette-button-end)); box-shadow: 0 8px 28px rgb(var(--palette-accent-rgb) / .3), inset 0 1px 0 rgb(var(--palette-white-rgb) / .25); }
.button-primary:hover, .button-small:hover { background: linear-gradient(110deg, var(--palette-button-start), var(--palette-button-end)); }
.text-link { color: var(--palette-soft); border-bottom-color: var(--palette-accent); }
.text-link:hover { color: var(--palette-white); }
.eyebrow { color: var(--palette-soft); font-size: var(--fs-label); line-height: var(--lh-label); letter-spacing: .13em; }
h1, h2, h3 { letter-spacing: -.035em; }
h1 em, h2 em { color: var(--electric); }
.hero-background {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: var(--night);
  background-image:
    linear-gradient(180deg, rgb(var(--palette-night-rgb) / .42) 0%, rgb(var(--palette-night-rgb) / .56) 22%, rgb(var(--palette-night-rgb) / .84) 40%, var(--palette-night) 52%, var(--palette-night) 100%),
    linear-gradient(90deg, rgb(var(--palette-card-rgb) / .28) 0%, transparent 52%, rgb(var(--palette-night-rgb) / .08) 100%);
  background-position: top center;
  background-repeat: no-repeat;
  background-size: 100% 100%, 100% 100%;
}
.hero {
  isolation: isolate;
  width: 100%;
  min-height: 0;
  margin: 0;
  padding: 64px 32px 26px;
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  gap: 94px;
  overflow: visible;
  border-bottom: 0;
  background: transparent;
  box-shadow: none;
}
.hero > * { position: relative; z-index: 1; }
.hero-copy { width: min(100%, 980px); text-align: center; }
.hero-copy .eyebrow, .hero-actions { justify-content: center; }
.hero-copy h1 { max-width: 100%; margin: 0 auto 24px; font-size: var(--fs-h1); line-height: var(--lh-h1); font-weight: 800; letter-spacing: -.045em; text-wrap: balance; }
.hero-copy h1 em { color: var(--electric); text-shadow: 0 0 40px rgb(var(--palette-accent-rgb) / .2); }
.hero-text, .collection-note { max-width: 780px; margin: 0 auto; color: var(--palette-white); font-size: var(--fs-large); font-weight: 400; line-height: var(--lh-large); letter-spacing: -.015em; }
.section-two .collection-note { max-width: 1040px; margin-top: 28px; text-align: center; }
.collection-note-lead { white-space: nowrap; }
.collection-note-keep { white-space: nowrap; }
@media (max-width: 980px) {
  .collection-note-lead { white-space: normal; }
}
.hero-text strong { color: inherit; font-weight: 700; }
.hero-departments { display: block; }
.hero-invitation { max-width: 880px; margin: 24px auto 0; color: var(--electric); font-size: var(--fs-h2); font-weight: 700; line-height: var(--lh-h2); letter-spacing: -.035em; text-wrap: balance; }
.hero-invitation .slogan-intro, .hero-invitation .slogan-bridge, .hero-invitation strong, .hero-invitation .slogan-result { display: inline; margin: 0; color: inherit; font: inherit; letter-spacing: inherit; }
.hero-actions { margin-top: 28px; flex-wrap: wrap; }
.hero .product-window {
  z-index: 1;
  width: min(100%, 860px);
  max-width: 860px;
  justify-self: center;
  color: var(--ink);
  border: 8px solid var(--palette-slate);
  border-radius: 22px;
  box-shadow: 0 0 0 1px var(--palette-accent), 0 28px 65px rgb(var(--palette-night-rgb) / .5), 0 0 80px rgb(var(--palette-accent-rgb) / .26);
  transform: none;
}
.hero .hero-dashboard { display: block; width: 100%; height: auto; }
.hero .window-topbar { height: 44px; }
.hero .workspace { min-height: 350px; }
.hero .workspace-body { padding: 24px 32px; }
.hero .workspace-heading h2 { font-size: 1.3rem; }
.hero .window-title, .hero .generate-button, .hero .workspace-tabs, .hero .panel-title { font-size: .72rem; }
.hero .field span, .hero .languages small, .hero .quality-card span, .hero .quality-card small { font-size: .64rem; }
.hero .field strong, .hero .languages b, .hero .quality-card strong { font-size: .76rem; }
.hero .window-note { font-size: .68rem; }
.hero .section-reference { top: 16px; right: max(20px, calc((100% - 1280px)/2)); }
.section-two {
  margin-top: 0;
  padding-top: 32px;
  background: transparent;
}
.section-two .intro-band { min-height: 0; padding: 56px 0 48px; }
.section-two .intro-context { width: min(860px, 100%); }
.intro-context h2 { color: var(--light-text); font-size: var(--fs-h2); line-height: var(--lh-h2); letter-spacing: -.035em; text-wrap: balance; }
.intro-context h2 em { color: var(--electric); }
.intro-context p { max-width: 700px; color: var(--soft-text); font-size: var(--fs-large); line-height: var(--lh-large); }
.section-two .sources-section { padding-bottom: 88px; }
.section-two .sources-canvas { overflow: visible; }
.source-icon { background: var(--palette-slate); border: 1px solid var(--palette-accent); box-shadow: 0 0 25px rgb(var(--palette-accent-rgb) / .22); }
.source-tile b { color: var(--palette-white); }
.source-tile small { color: var(--palette-soft); }
.collection-lines path { stroke: var(--palette-accent); stroke-width: 3.4; }
.section-two .data-hub {
  background-color: var(--palette-night);
  background-image:
    linear-gradient(145deg, rgb(var(--palette-night-rgb) / .28), rgb(var(--palette-card-rgb) / .5)),
    url("../img/illustrations/hero-monitor-network-v3.png");
  background-position: 82% 48%;
  background-size: 410% auto;
  border-color: var(--palette-accent);
  box-shadow:
    inset 0 0 32px rgb(var(--palette-accent-rgb) / .2),
    0 0 0 10px rgb(var(--palette-accent-rgb) / .12),
    0 0 66px rgb(var(--palette-accent-rgb) / .32);
}
.section-two .hub-logo { position: relative; z-index: 1; }
.section-two .logo-hub { filter: drop-shadow(0 0 12px rgb(var(--palette-accent-rgb) / .32)); }
.section-two .data-modules li { background: transparent; border: 1px solid var(--glass-border); border-radius: 18px; box-shadow: none; }
.section-two .data-modules p { color: var(--soft-text); }
.section-two .collection-steps { color: var(--palette-sky); border-color: var(--glass-border); }
.section-two .collection-steps i { color: var(--palette-accent); }
.advantage-overview {
  color: var(--palette-night);
  background: radial-gradient(ellipse at 78% 4%, rgb(var(--palette-accent-rgb) / .2), transparent 42%), var(--palette-paper);
  border-top: 1px solid rgb(var(--palette-line-rgb) / .38);
}
.advantage-overview__intro {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
  align-items: end;
  gap: clamp(40px, 8vw, 120px);
  margin-bottom: 52px;
}
.advantage-overview__intro .eyebrow { margin-bottom: 18px; color: var(--palette-slate); }
.advantage-overview__intro h2 {
  max-width: 760px;
  margin: 0;
  color: var(--palette-night);
  font-size: clamp(3rem, 5.4vw, 5.25rem);
  font-weight: 700;
  line-height: 1.02;
  letter-spacing: -.055em;
}
.advantage-overview__intro > p {
  max-width: 470px;
  margin: 0 0 8px;
  color: var(--palette-slate);
  font-size: var(--fs-large);
  line-height: var(--lh-large);
}
.advantage-overview__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.advantage-overview__card {
  position: relative;
  display: flex;
  min-height: 330px;
  padding: 34px 32px 28px;
  flex-direction: column;
  color: var(--palette-white);
  border: 1px solid rgb(var(--palette-white-rgb) / .18);
  border-radius: 18px;
  box-shadow: 0 18px 38px rgb(var(--palette-night-rgb) / .14);
  transition: transform .32s ease, box-shadow .32s ease;
}
.advantage-overview__card--language { background: linear-gradient(145deg, var(--palette-slate), var(--palette-card)); }
.advantage-overview__card--quality { background: linear-gradient(145deg, var(--palette-button-start), var(--palette-button-end)); }
.advantage-overview__card--publish { background: linear-gradient(145deg, var(--palette-brand), var(--palette-button-end)); }
.advantage-overview__card h3 { max-width: 92%; margin: 0 0 14px; color: inherit; font-size: var(--fs-h3); line-height: var(--lh-h3); }
.advantage-overview__card > p { margin: 0; color: var(--palette-white); font-size: var(--fs-normal); line-height: var(--lh-normal); }
.advantage-overview__number { position: absolute; top: 22px; right: 24px; color: rgb(var(--palette-white-rgb) / .58); font: 500 var(--fs-label)/var(--lh-label) var(--mono); letter-spacing: .08em; }
.advantage-overview__card ul { display: grid; gap: 8px; margin: auto 0 0; padding: 28px 0 0; list-style: none; }
.advantage-overview__card li { position: relative; padding-left: 20px; color: var(--palette-white); font-size: var(--fs-small); font-weight: 600; line-height: var(--lh-small); }
.advantage-overview__card li::before { position: absolute; left: 0; content: "✓"; color: var(--palette-accent); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .advantage-overview__card:hover { transform: translateY(-10px); box-shadow: 0 28px 48px rgb(var(--palette-night-rgb) / .22); }
}
@media (max-width: 980px) {
  .advantage-overview__intro { grid-template-columns: 1fr; gap: 24px; }
  .advantage-overview__cards { grid-template-columns: 1fr; }
  .advantage-overview__card { min-height: 280px; }
}
@media (max-width: 680px) {
  .advantage-overview__intro { margin-bottom: 34px; }
  .advantage-overview__intro h2 { font-size: var(--fs-h2); line-height: var(--lh-h2); }
  .advantage-overview__intro > p br { display: none; }
  .advantage-overview__card { min-height: 0; padding: 30px 24px 26px; }
  .advantage-overview__card ul { margin-top: 28px; padding-top: 0; }
}
.features-benefits, .workflow { background: radial-gradient(ellipse at 50% 0%, rgb(var(--palette-button-start-rgb) / .2), transparent 65%), var(--palette-night); color: var(--palette-white); }
.features-benefits { position: relative; isolation: isolate; border: 0; border-top: 1px solid rgb(var(--palette-white-rgb) / .28); }
.section-two .sources-section { border-bottom: 0; }
.benefit-orbits {
  --orbit-size: clamp(620px, 76vw, 980px);
  position: absolute;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
  background: radial-gradient(ellipse at 88% 48%, rgb(var(--palette-accent-rgb) / .2), transparent 60%);
}
.benefit-orbits::before, .benefit-orbits::after {
  content: "";
  position: absolute;
  left: 88%;
  top: 48%;
  width: var(--orbit-size);
  height: var(--orbit-size);
  border: 1px dashed rgb(var(--palette-accent-rgb) / .38);
  border-radius: 50%;
  transform: translate(-50%, -50%);
}
.benefit-orbits::after {
  width: calc(var(--orbit-size) * .66);
  height: calc(var(--orbit-size) * .66);
  border-style: solid;
  border-color: rgb(var(--palette-accent-rgb) / .32);
}
.features-benefits .section-intro, .workflow-top { display: flex; flex-direction: column; align-items: center; gap: 22px; text-align: center; }
.features-benefits .section-intro h2, .workflow h2 { max-width: 980px; font-size: var(--fs-h2); line-height: var(--lh-h2); }
.features-benefits .section-intro > p:last-child, .workflow-top > p { max-width: 760px; margin: 0; color: var(--soft-text); font-size: var(--fs-normal); line-height: var(--lh-normal); }
.features-benefits .section-intro > p:last-child { color: var(--electric); font-size: var(--fs-large); font-weight: 400; line-height: var(--lh-large); letter-spacing: -.015em; }
.features-benefits .benefit-highlight { color: var(--palette-white); }
.workflow-top .eyebrow { justify-content: center; }
.features-benefits .feature-list { gap: 44px 18px; margin-top: 42px; }
.features-benefits .feature-card, .features-benefits .feature-card:nth-child(4n + 1) {
  padding: 26px;
  min-height: 205px;
  border: 1px solid var(--glass-border);
  border-radius: 18px;
  background: linear-gradient(145deg, rgb(var(--palette-sky-rgb) / .13), rgb(var(--palette-accent-rgb) / .04));
  box-shadow: inset 0 1px 0 rgb(var(--palette-mist-rgb) / .05), 0 12px 24px rgb(var(--palette-night-rgb) / .12);
}
.features-benefits .feature-number { color: var(--palette-accent); font: 300 4rem/1 var(--sans); letter-spacing: -.05em; font-variant-numeric: tabular-nums; text-shadow: 0 3px 5px rgb(var(--palette-night-rgb) / .5), 0 8px 16px rgb(var(--palette-night-rgb) / .3); }
.features-benefits .feature-card h3 { color: var(--palette-white); margin-top: 32px; font-size: var(--fs-large); line-height: var(--lh-large); letter-spacing: -.02em; }
.workflow-steps { gap: 18px; border: 0; margin-top: 42px; }
.workflow-steps li, .workflow-steps li + li { padding: 24px; border: 1px solid var(--glass-border); border-radius: 18px; background: linear-gradient(145deg, rgb(var(--palette-sky-rgb) / .13), rgb(var(--palette-accent-rgb) / .04)); }
.workflow-steps .workflow-icon { display: grid; place-items: center; width: 64px; height: 64px; color: var(--palette-accent); }
.workflow-icon svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.workflow-steps h3 { margin-top: 32px; font-size: var(--fs-large); letter-spacing: -.025em; line-height: var(--lh-large); }
.workflow-steps p { max-width: none; color: var(--soft-text); font-size: var(--fs-normal); line-height: var(--lh-normal); }
.workflow {
  --soft-text: var(--palette-slate);
  --glass-border: rgb(var(--palette-slate-rgb) / .26);
  color: var(--palette-night);
  background:
    radial-gradient(ellipse at 12% 16%, rgb(var(--palette-paper-rgb) / .95), transparent 48%),
    radial-gradient(ellipse at 88% 28%, rgb(var(--palette-accent-rgb) / .65), transparent 48%),
    radial-gradient(ellipse at 45% 100%, rgb(var(--palette-accent-rgb) / .55), transparent 60%),
    linear-gradient(125deg, var(--palette-ice), var(--palette-sky) 48%, var(--palette-lavender));
}
.workflow h2, .workflow-steps h3 { color: var(--palette-night); }
.workflow h2 em { color: var(--palette-button-end); }
.workflow-top .eyebrow { color: var(--palette-slate); }
.workflow-steps li, .workflow-steps li + li {
  background: var(--night);
  box-shadow: inset 0 1px 0 rgb(var(--palette-ice-rgb) / .16), 0 12px 28px rgb(var(--palette-slate-rgb) / .15);
}
.workflow-steps li > span { color: var(--palette-accent); line-height: var(--lh-label); }
.workflow-steps h3 { color: var(--palette-white); line-height: var(--lh-large); }
.workflow-steps p { color: var(--palette-white); line-height: var(--lh-normal); }
.autonomy { background: var(--night); color: var(--light-text); border-bottom: 1px solid var(--glass-border); }
.autonomy-heading { max-width: 900px; margin: 0 auto 42px; text-align: center; }
.autonomy-heading .eyebrow { justify-content: center; color: var(--soft-text); }
.autonomy-heading h2 { margin: 0; font-size: var(--fs-h2); line-height: var(--lh-h2); letter-spacing: -.035em; }
.autonomy-heading h2 em { color: var(--electric); font-style: normal; }
.autonomy-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 5vw, 72px); max-width: 1180px; margin: 0 auto; align-items: center; }
.autonomy-visual { width: 100%; max-width: 480px; margin: 0; }
.autonomy-visual img { display: block; width: 100%; height: auto; border-radius: 22px; }
.autonomy-points { list-style: none; margin: 0; padding: 0; min-width: 0; }
.autonomy-points li { position: relative; padding: 21px 0 21px 24px; border-bottom: 1px solid var(--glass-border); }
.autonomy-points li:first-child { padding-top: 0; }
.autonomy-points li:last-child { padding-bottom: 0; border-bottom: 0; }
.autonomy-points li::before { content: ""; position: absolute; top: 32px; left: 0; width: 7px; height: 7px; border-radius: 50%; background: var(--palette-accent); }
.autonomy-points li:first-child::before { top: 11px; }
.autonomy-points h3 { margin: 0 0 8px; color: var(--palette-accent); font-size: var(--fs-h3); line-height: var(--lh-h3); letter-spacing: -.02em; }
.autonomy-points p { margin: 0; color: var(--palette-white); font-size: var(--fs-normal); line-height: var(--lh-normal); }
@media (max-width: 800px) {
  .autonomy-layout { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .autonomy-visual { justify-self: center; }
  .autonomy-points h3 { font-size: var(--fs-large); line-height: var(--lh-large); }
}
.teams { background: radial-gradient(ellipse at 100% 50%, rgb(var(--palette-brand-rgb) / .13), transparent 34%), radial-gradient(ellipse at 25% 50%, rgb(var(--palette-accent-rgb) / .22), transparent 58%), var(--palette-night); }
.team-copy h2 { color: var(--palette-white); line-height: 1.12; letter-spacing: -.035em; }
.team-copy h2 em { color: var(--electric); }
.team-copy > p:not(.eyebrow) { color: var(--soft-text); }
.team-node { padding: 14px 16px; color: var(--palette-white); background: var(--palette-card); border-color: var(--palette-button-end); border-radius: 12px; box-shadow: 0 10px 28px rgb(var(--palette-night-rgb) / .15); }
.team-node b { font-size: .85rem; }
.team-node span { color: var(--palette-soft); font-size: .7rem; }
.team-orbit { border-color: var(--palette-slate); }
.language-tools .team-visual { isolation: isolate; grid-column: 2; grid-row: 1; }
.language-tools .team-visual::before {
  position: absolute;
  inset: 1%;
  z-index: 0;
  content: "";
  pointer-events: none;
  border-radius: 50%;
  box-shadow: 0 0 0 14px rgb(var(--palette-accent-rgb) / .12), 0 0 50px rgb(var(--palette-accent-rgb) / .35);
}
.language-tools .team-visual::after {
  position: absolute;
  inset: -12% -28% -12% -8%;
  z-index: 0;
  content: "";
  pointer-events: none;
  border-radius: 52% 46% 46% 52%;
  background: radial-gradient(ellipse at 42% 50%, rgb(var(--palette-accent-rgb) / .24) 0%, rgb(var(--palette-brand-rgb) / .14) 38%, transparent 74%);
  filter: blur(22px);
}
.language-tools .language-image {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  clip-path: circle(47.2% at 50% 50%);
  transform: scale(1.06);
}
.language-card { position: absolute; display: grid; align-items: center; width: 170px; min-height: 114px; z-index: 1; transform: translate(-50%, -50%); }
.language-card[data-position="active"] { top: 50%; left: 16px; z-index: 2; }
.language-card[data-position="top"] { top: 2%; left: 75%; }
.language-card[data-position="bottom"] { top: 98%; left: 75%; }
.language-tools .team-node {
  position: relative;
  width: 100%;
  min-width: 0;
  min-height: 76px;
  padding: 18px 20px;
  font: inherit;
  text-align: center;
  cursor: pointer;
  background: rgb(var(--palette-card-rgb) / .48);
  border-color: rgb(var(--palette-button-end-rgb) / .5);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  transition: background .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.language-tools .team-node b { font-size: 1.1rem; font-weight: 600; }
.language-tools .team-node[aria-pressed="true"] {
  background: linear-gradient(125deg, rgb(var(--palette-button-start-rgb) / .58), rgb(var(--palette-button-end-rgb) / .58));
  border-color: var(--palette-accent);
  box-shadow: 0 0 28px rgb(var(--palette-accent-rgb) / .25);
}
.language-tools .team-node:focus-visible { outline: 3px solid var(--palette-white); outline-offset: 5px; }
.language-tools.is-cursor-hidden, .language-tools.is-cursor-hidden * { cursor: none; }
.language-tools .language-details { grid-column: 1; grid-row: 1; width: 100%; min-width: 0; min-height: 320px; display: grid; align-items: center; }
.language-panel[hidden] { display: none; }
.language-tools .language-panel h2 { font-size: var(--fs-h2); font-weight: 400; color: var(--palette-accent); margin: 0 0 24px; line-height: var(--lh-h2); }
.language-tools .language-panel p { margin: 0; color: var(--palette-white); font-size: var(--fs-large); line-height: var(--lh-large); }
@media (prefers-reduced-motion: no-preference) {
  .language-tools .team-visual::before { animation: language-center-glow 4.5s ease-in-out infinite; }
  @keyframes language-center-glow {
    0%, 35%, 100% { box-shadow: 0 0 0 14px rgb(var(--palette-accent-rgb) / .12), 0 0 50px rgb(var(--palette-accent-rgb) / .35), 0 0 110px rgb(var(--palette-accent-rgb) / 0); }
    65%, 75% { box-shadow: 0 0 0 14px rgb(var(--palette-accent-rgb) / .28), 0 0 66px rgb(var(--palette-accent-rgb) / .85), 0 0 110px rgb(var(--palette-accent-rgb) / .55); }
  }
  .language-card { transition: top 1.2s cubic-bezier(.45,0,.2,1), left 1.2s cubic-bezier(.45,0,.2,1); }
  .language-tools .team-node { animation: language-float 6s ease-in-out infinite; }
  .language-card--glossario .team-node { animation-delay: -2s; }
  .language-card--traduzioni .team-node { animation-delay: -4s; }
  .language-card:hover .team-node, .language-card:focus-within .team-node { animation-play-state: paused; }
  .language-panel:not([hidden]) { animation: language-reveal .28s ease-out; }
  @keyframes language-float { 0%, 100% { transform: translateY(8px); } 50% { transform: translateY(-24px); } }
  @keyframes language-reveal { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
}
@media (max-width: 980px) {
  .language-tools .team-visual { grid-column: 1; grid-row: 1; margin-block: 32px; }
  .language-tools .language-details { grid-column: 1; grid-row: 2; min-height: 280px; }
}
@media (max-width: 680px) {
  .language-tools .language-card { width: 40%; max-width: 140px; min-height: 100px; }
  .language-card[data-position="active"] { left: 20%; }
  .language-card[data-position="top"], .language-card[data-position="bottom"] { left: 78%; }
  .language-tools .team-node { min-height: 64px; padding: 14px 10px; }
  .language-tools .team-node b { font-size: 1rem; }
  .language-tools .language-panel h2 { font-size: var(--fs-h2); line-height: var(--lh-h2); }
}
.central-data { background: linear-gradient(135deg, var(--palette-button-start), var(--palette-button-end)); box-shadow: 0 0 0 14px rgb(var(--palette-accent-rgb) / .12), 0 0 50px rgb(var(--palette-accent-rgb) / .35); }
.cta-section { background: radial-gradient(ellipse at 70% 25%, rgb(var(--palette-accent-rgb) / .38), transparent 65%), linear-gradient(120deg, var(--palette-card), var(--palette-slate)); padding-block: 100px; }
.cta-section h2 { line-height: 1.12; letter-spacing: -.035em; }
.cta-section h2 em { color: var(--palette-accent); }
.cta-section .button-light { color: var(--palette-card); box-shadow: 0 8px 32px rgb(var(--palette-accent-rgb) / .18); }
.cta-section > .section-reference { position: absolute; }
.site-footer { min-height: 140px; }
.site-footer.company-footer {
  display: block;
  width: 100%;
  min-height: 0;
  margin: 0;
  padding: 64px max(32px, calc((100% - 1280px) / 2)) 28px;
  color: var(--palette-night);
  background: var(--palette-paper);
  border-top: 1px solid var(--palette-sky);
}
.company-footer .footer-columns { display: grid; grid-template-columns: 1fr 1.25fr 1.45fr .8fr; gap: 40px; }
.company-footer .footer-columns > * { min-width: 0; }
.company-footer h2 { margin: 0 0 22px; color: var(--palette-night); font-size: var(--fs-normal); line-height: var(--lh-normal); letter-spacing: -.015em; }
.company-footer p, .company-footer address, .company-footer a, .company-footer dl { color: var(--palette-slate); font-size: var(--fs-small); line-height: var(--lh-small); }
.company-footer p { margin: 0 0 18px; }
.company-footer a { text-decoration: none; overflow-wrap: anywhere; }
.company-footer a:hover { color: var(--palette-button-end); text-decoration: underline; text-underline-offset: 4px; }
.company-footer a:focus-visible { outline: 2px solid var(--palette-button-end); outline-offset: 5px; border-radius: 3px; }
.company-footer .brand { padding: 0; margin-bottom: 20px; border: 0; border-radius: 0; background: none; }
.company-footer .logo-footer { width: 164px; max-width: 100%; }
.company-footer .footer-label { margin: 26px 0 10px; font-size: var(--fs-label); }
.company-footer .footer-omega { display: inline-flex; max-width: 100%; padding: 17px 18px; border-radius: 10px; background: var(--palette-night); }
.footer-omega img { display: block; width: 174px; max-width: 100%; height: auto; }
.company-footer .footer-company-name { color: var(--palette-night); font-weight: 700; }
.company-footer address { margin-bottom: 18px; font-style: normal; }
.company-footer .footer-registration { margin: 0; font-size: var(--fs-small); line-height: var(--lh-small); }
.company-footer .footer-phone { display: inline-block; margin-bottom: 14px; color: var(--palette-night); font-size: var(--fs-normal); font-weight: 700; line-height: var(--lh-normal); }
.company-footer .footer-contacts { margin: 0; }
.footer-contacts dt { margin-top: 12px; color: var(--palette-night); font-size: var(--fs-label); font-weight: 700; line-height: var(--lh-label); }
.footer-contacts dd { margin: 0; }
.footer-links > a { display: block; margin-bottom: 5px; }
.company-footer .footer-bottom { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px 28px; margin-top: 42px; padding-top: 24px; border-top: 1px solid var(--palette-sky); }
.company-footer .footer-bottom p { margin: 0; order: 0; font-size: var(--fs-label); line-height: var(--lh-label); }
.company-footer .footer-bottom a { font-size: var(--fs-small); line-height: var(--lh-small); }
.footer-social { display: flex; gap: 20px; }
@media (max-width: 1080px) {
  .company-footer .footer-columns { grid-template-columns: 1fr 1fr; gap: 36px; }
}
@media (max-width: 600px) {
  .site-footer.company-footer { padding: 44px 20px 24px; }
  .company-footer .footer-columns { grid-template-columns: 1fr; gap: 32px; }
  .company-footer h2 { margin-bottom: 14px; line-height: var(--lh-normal); }
  .company-footer .footer-bottom { align-items: flex-start; flex-direction: column; }
}
.site-footer:not(.company-footer) p, .site-footer:not(.company-footer) > a:last-child { color: var(--palette-soft); }
.site-footer.company-footer {
  background:
    radial-gradient(circle at 7% 19%, transparent 178px, rgb(var(--palette-accent-rgb) / .13) 179px, transparent 180px),
    radial-gradient(circle at 7% 19%, transparent 270px, rgb(var(--palette-accent-rgb) / .09) 271px, transparent 272px),
    linear-gradient(120deg, var(--palette-paper), var(--palette-mist));
  padding-top: 72px;
}
.company-footer .footer-columns { grid-template-columns: 1fr 1.1fr; gap: 42px 64px; align-items: center; }
.company-footer .footer-identity { max-width: 420px; }
.company-footer .logo-footer { width: 248px; }
.company-footer .footer-identity > p:first-of-type { color: var(--palette-night); font-size: var(--fs-h2); font-weight: 500; line-height: var(--lh-h2); letter-spacing: -.035em; margin: 8px 0 30px; }
.company-footer .footer-label { margin: 0 0 10px; }
.company-footer .footer-omega { padding: 0; border-radius: 0; background: transparent; }
.company-footer .footer-omega img { width: 210px; mix-blend-mode: multiply; }
.company-footer .footer-contact-panel { position: relative; padding: 36px; border: 1px solid var(--palette-slate); border-radius: 30px 30px 8px 30px; background: radial-gradient(ellipse at 100% 0%, rgb(var(--palette-accent-rgb) / .25), transparent 65%), var(--palette-night); box-shadow: 0 18px 40px rgb(var(--palette-card-rgb) / .14); }
.company-footer .footer-contact-panel h2 { color: var(--palette-accent); font-size: var(--fs-small); letter-spacing: .12em; text-transform: uppercase; margin-bottom: 14px; line-height: var(--lh-small); }
.company-footer .footer-contact-panel a { color: var(--palette-white); }
.company-footer .footer-contact-panel a:hover { color: var(--palette-accent); }
.company-footer .footer-contact-panel a:focus-visible { outline-color: var(--palette-accent); }
.company-footer .footer-phone { display: inline; width: auto; margin: 0; font-size: var(--fs-small); font-weight: 400; letter-spacing: normal; line-height: var(--lh-small); }
.company-footer .footer-contacts { display: grid; grid-template-columns: auto 1fr; gap: 12px 18px; align-items: baseline; padding-top: 20px; border-top: 1px solid rgb(var(--palette-sky-rgb) / .25); }
.footer-contact-panel .footer-contacts dt { margin: 0; color: var(--palette-soft); font-size: var(--fs-label); font-weight: 400; line-height: var(--lh-label); }
.footer-contact-panel .footer-contacts dd a { font-size: var(--fs-small); line-height: var(--lh-small); }
.company-footer .footer-links { grid-column: 1 / -1; display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 28px 0; border-block: 1px solid var(--palette-sky); }
.company-footer .footer-links h2 { margin: 0 16px 0 0; font-size: var(--fs-small); line-height: var(--lh-small); }
.company-footer .footer-links > a { display: inline-flex; align-items: center; min-height: 40px; padding: 6px 14px; margin: 0; border: 1px solid var(--palette-soft); border-radius: 999px; background: rgb(var(--palette-white-rgb) / .45); font-size: var(--fs-small); line-height: var(--lh-small); }
.company-footer .footer-links > a:hover { color: var(--palette-white); background: var(--palette-night); border-color: var(--palette-night); text-decoration: none; }
.company-footer .footer-company { grid-column: 1 / -1; display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 12px 36px; align-items: start; }
.company-footer .footer-company h2 { grid-column: 1 / -1; margin: 0; font-size: var(--fs-label); text-transform: uppercase; letter-spacing: .1em; color: var(--palette-slate); line-height: var(--lh-label); }
.company-footer .footer-company p, .company-footer .footer-company address { margin: 0; color: var(--palette-slate); font-size: var(--fs-small); font-weight: 400; line-height: var(--lh-small); }
.company-footer .footer-bottom { margin-top: 32px; padding-top: 22px; }
@media (max-width: 1080px) {
  .company-footer .footer-columns { gap: 32px; grid-template-columns: .8fr 1.2fr; }
  .company-footer .footer-contact-panel { padding: 28px; }
  .company-footer .footer-contacts { grid-template-columns: 1fr; gap: 2px; }
  .footer-contact-panel .footer-contacts dd + dt { margin-top: 12px; }
}
@media (max-width: 700px) {
  .site-footer.company-footer { padding: 44px 20px 24px; }
  .company-footer .footer-columns { grid-template-columns: 1fr; gap: 30px; }
  .company-footer .footer-identity { max-width: 360px; }
  .company-footer .logo-footer { width: 210px; }
  .company-footer .footer-contact-panel { padding: 26px 22px; }
  .company-footer .footer-links h2 { flex-basis: 100%; margin-bottom: 6px; line-height: var(--lh-small); }
  .company-footer .footer-company { grid-template-columns: 1fr; gap: 18px; }
  .company-footer .footer-bottom { align-items: flex-start; flex-direction: column; }
}
.site-footer.company-footer.has-cta {
  border-top: 0;
  background:
    radial-gradient(circle at 88% 20%, transparent 230px, rgb(var(--palette-accent-rgb) / .18) 231px, transparent 232px),
    radial-gradient(circle at 88% 20%, transparent 350px, rgb(var(--palette-accent-rgb) / .12) 351px, transparent 352px),
    radial-gradient(ellipse at 88% 20%, rgb(var(--palette-line-rgb) / .28), transparent 60%),
    linear-gradient(120deg, var(--palette-paper), var(--palette-mist));
}
.company-footer.has-cta .cta-section { padding: 22px 0 70px; border: 0; background: transparent; overflow: visible; }
.company-footer .cta-section h2 { max-width: 980px; margin: 0 auto 24px; color: var(--palette-night); font-size: var(--fs-h2); line-height: var(--lh-h2); letter-spacing: -.035em; }
.company-footer .cta-section h2 em { color: var(--palette-button-end); }
.company-footer .cta-section .eyebrow { margin: 0 auto 22px; color: var(--palette-slate); font-size: var(--fs-label); line-height: var(--lh-label); }
.company-footer .cta-section > p:not(.eyebrow) { max-width: 580px; margin: 0 auto 28px; color: var(--palette-slate); font-size: var(--fs-normal); line-height: var(--lh-normal); }
.company-footer .cta-section .button-light { color: var(--palette-white); background: linear-gradient(110deg, var(--palette-button-start), var(--palette-button-end)); padding: 14px 24px; box-shadow: 0 8px 28px rgb(var(--palette-accent-rgb) / .3), inset 0 1px 0 rgb(var(--palette-white-rgb) / .25); }
.company-footer .cta-section .button-light:hover { background: linear-gradient(110deg, var(--palette-button-start), var(--palette-button-end)); text-decoration: none; }
.company-footer .cta-section > .section-reference { top: -36px; right: 0; }
@media (max-width: 680px) {
  .company-footer.has-cta .cta-section { padding: 32px 0 48px; }
  .company-footer .cta-section h2 { font-size: var(--fs-h2); line-height: var(--lh-h2); }
  .company-footer .cta-section > .section-reference { top: -20px; }
}
.site-footer:not(.company-footer) > a:last-child:hover { color: var(--palette-white); }
/* Footer: pannello contatti sovrapposto alla base chiara. */
.site-footer.company-footer,
.site-footer.company-footer.has-cta {
  padding: 76px max(24px, calc((100% - 1280px) / 2)) 56px;
  border: 0;
  background: linear-gradient(135deg, var(--palette-lavender), var(--palette-ice));
}
.site-footer.company-footer.has-cta {
  background:
    radial-gradient(ellipse at 12% 16%, rgb(var(--palette-paper-rgb) / .95), transparent 48%),
    radial-gradient(ellipse at 88% 28%, rgb(var(--palette-accent-rgb) / .65), transparent 48%),
    radial-gradient(ellipse at 45% 100%, rgb(var(--palette-accent-rgb) / .55), transparent 60%),
    linear-gradient(125deg, var(--palette-ice), var(--palette-sky) 48%, var(--palette-lavender));
}
.company-footer.has-cta .cta-section { padding: 0 0 52px; }
.company-footer > .footer-contact-panel {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: .7fr 1.3fr;
  align-items: center;
  gap: 36px;
  width: min(100% - 96px, 1080px);
  margin: 0 auto -64px;
  padding: 44px 52px;
  border: 1px solid rgb(var(--palette-white-rgb) / .2);
  border-radius: 18px;
  background: linear-gradient(115deg, var(--palette-button-start), var(--palette-button-end));
  box-shadow: 0 20px 48px rgb(var(--palette-button-start-rgb) / .2);
  overflow: hidden;
}
.company-footer > .footer-contact-panel::before {
  content: "";
  position: absolute;
  width: 270px;
  height: 270px;
  left: -110px;
  top: -150px;
  border: 1px solid rgb(var(--palette-white-rgb) / .18);
  border-radius: 50%;
  box-shadow: 0 0 0 40px rgb(var(--palette-white-rgb) / .04), 0 0 0 80px rgb(var(--palette-white-rgb) / .03);
  pointer-events: none;
}
.company-footer > .footer-contact-panel h2 {
  position: relative;
  margin: 0;
  color: var(--palette-white);
  font-size: var(--fs-h2);
  font-weight: 400;
  letter-spacing: -.035em;
  text-transform: none; line-height: var(--lh-h2); }
.company-footer > .footer-contact-panel .footer-contacts {
  position: relative;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 16px 24px;
  padding: 0 0 0 32px;
  border: 0;
  border-left: 1px solid rgb(var(--palette-white-rgb) / .3);
}
.company-footer > .footer-contact-panel .footer-contacts dt,
.company-footer > .footer-contact-panel .footer-contacts dd a {
  margin: 0;
  color: var(--palette-white);
  font-size: var(--fs-normal);
  font-weight: 400;
  line-height: var(--lh-normal);
}
.company-footer > .footer-contact-panel a:focus-visible { outline-color: var(--palette-white); }
.company-footer .footer-base {
  position: relative;
  padding: 116px 64px 28px;
  background:
    linear-gradient(110deg,
      rgb(var(--palette-night-rgb) / .74) 0%,
      rgb(var(--palette-card-rgb) / .66) 48%,
      rgb(var(--palette-slate-rgb) / .58) 100%),
    url("../img/illustrations/office-workspace-footer-wide.png") center / cover no-repeat;
  box-shadow: 0 18px 42px rgb(var(--palette-card-rgb) / .06);
}
.company-footer .footer-base .footer-columns {
  grid-template-columns: .85fr 1.3fr;
  align-items: start;
  gap: 48px 72px;
}
.company-footer .footer-base .footer-identity > p:first-of-type {
  max-width: 300px;
  margin: 0 0 24px;
  font-size: var(--fs-normal);
  font-weight: 400;
  line-height: var(--lh-normal);
  letter-spacing: 0;
}
.company-footer .footer-base .logo-footer { width: 210px; }
.company-footer .footer-base .footer-company {
  grid-column: auto;
  grid-template-columns: 1fr 1fr;
  gap: 20px 36px;
}
.company-footer .footer-base .footer-company h2 { font-size: var(--fs-small); line-height: var(--lh-small); }
.company-footer .footer-base .footer-company p,
.company-footer .footer-base .footer-company address { font-size: var(--fs-normal); font-weight: 400; line-height: var(--lh-normal); }
.company-footer .footer-base .footer-registration { grid-column: 1 / -1; }
.company-footer .footer-base .footer-bottom { margin-top: 44px; padding-top: 24px; }
.company-footer .footer-base .footer-bottom a,
.company-footer .footer-base .footer-bottom p,
.company-footer .footer-base .footer-label { font-size: var(--fs-small); }
.company-footer .footer-base p,
.company-footer .footer-base a,
.company-footer .footer-base .footer-company h2,
.company-footer .footer-base .footer-company p,
.company-footer .footer-base .footer-company address,
.company-footer .footer-base .footer-identity > p:first-of-type { color: var(--palette-white); }
.company-footer .footer-base a:hover { color: var(--palette-accent); }
.company-footer .footer-base a:focus-visible { outline-color: var(--palette-accent); }
.company-footer .footer-base .footer-bottom { border-top-color: rgb(var(--palette-line-rgb) / .24); }
.company-footer .footer-base .footer-omega img { mix-blend-mode: normal; }
@media (max-width: 1080px) {
  .company-footer > .footer-contact-panel { width: calc(100% - 48px); padding: 36px; grid-template-columns: .6fr 1.4fr; gap: 24px; }
  .company-footer > .footer-contact-panel .footer-contacts { padding-left: 24px; gap: 12px 16px; }
  .company-footer .footer-base { padding: 108px 36px 28px; }
  .company-footer .footer-base .footer-columns { gap: 40px; }
  .company-footer .footer-base .footer-company { grid-template-columns: 1fr; gap: 18px; }
}
@media (max-width: 760px) {
  .site-footer.company-footer,
  .site-footer.company-footer.has-cta { padding: 56px 16px 32px; }
  .company-footer > .footer-contact-panel { width: calc(100% - 24px); grid-template-columns: 1fr; padding: 30px 24px; gap: 22px; margin-bottom: -36px; }
  .company-footer > .footer-contact-panel .footer-contacts { padding: 22px 0 0; border-left: 0; border-top: 1px solid rgb(var(--palette-white-rgb) / .3); }
  .company-footer .footer-base { padding: 76px 24px 26px; }
  .company-footer .footer-base .footer-columns { grid-template-columns: 1fr; gap: 36px; }
  .company-footer .footer-base .footer-bottom { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 480px) {
  .company-footer > .footer-contact-panel .footer-contacts { grid-template-columns: minmax(0, 1fr); gap: 3px; }
  .company-footer > .footer-contact-panel .footer-contacts dd + dt { margin-top: 15px; }
}
/* Section 05: synchronized image, copy and icon carousel. */
.workflow-carousel {
  position: relative;
  width: min(1180px, 100%);
  margin: 48px auto 0;
  isolation: isolate;
}
.workflow-carousel__viewport {
  overflow: hidden;
  border: 1px solid rgb(var(--palette-line-rgb) / .48);
  border-radius: 24px;
  background: var(--palette-night);
  box-shadow: 0 30px 70px rgb(var(--palette-night-rgb) / .28);
}
.workflow-carousel__track {
  display: flex;
  transition: transform .72s cubic-bezier(.22, .61, .36, 1);
  will-change: transform;
}
.workflow-slide {
  position: relative;
  flex: 0 0 100%;
  min-width: 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}
.workflow-slide > img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: left top;
  filter: saturate(.94) contrast(1.02);
}
.workflow-slide__shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(0deg, rgb(var(--palette-night-rgb) / .88) 0%, rgb(var(--palette-night-rgb) / .48) 34%, transparent 72%);
}
.workflow-slide__content {
  position: absolute;
  z-index: 2;
  left: 50%;
  bottom: clamp(54px, 7vw, 92px);
  width: min(520px, calc(100% - 48px));
  min-height: 210px;
  padding: 30px 34px;
  overflow: visible;
  color: var(--palette-white);
  border: 1px solid rgb(var(--palette-line-rgb) / .3);
  border-radius: 20px;
  background: linear-gradient(135deg, rgb(var(--palette-slate-rgb) / .3), rgb(var(--palette-card-rgb) / .18));
  box-shadow: inset 0 1px 0 rgb(var(--palette-white-rgb) / .1), 0 18px 42px rgb(var(--palette-night-rgb) / .14);
  backdrop-filter: blur(9px);
  transform: translateX(-50%);
}
.workflow-slide__content h3 {
  position: relative;
  z-index: 1;
  max-width: calc(100% - 190px);
  margin: 0 0 10px;
  color: var(--palette-white);
  font-size: var(--fs-h2);
  line-height: var(--lh-h2);
  letter-spacing: -.045em;
  text-wrap: balance;
}
.workflow-slide__content p {
  position: relative;
  z-index: 1;
  max-width: calc(100% - 190px);
  margin: 0;
  color: var(--palette-white);
  font-size: var(--fs-normal);
  line-height: var(--lh-normal);
}
.workflow-slide__icon {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 210px;
  height: 210px;
  color: var(--palette-accent);
  opacity: .56;
  filter: drop-shadow(0 0 10px rgb(var(--palette-accent-rgb) / .4));
}
.workflow-slide__icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: .56;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.workflow-carousel__arrow {
  position: absolute;
  z-index: 4;
  top: 50%;
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  padding: 0;
  color: var(--palette-white);
  border: 1px solid rgb(var(--palette-white-rgb) / .36);
  border-radius: 50%;
  background: rgb(var(--palette-night-rgb) / .58);
  box-shadow: 0 10px 26px rgb(var(--palette-night-rgb) / .24);
  backdrop-filter: blur(10px);
  cursor: pointer;
  transform: translateY(-50%);
  transition: background-color .2s ease, transform .2s ease;
}
.workflow-carousel__arrow:hover { background: rgb(var(--palette-brand-rgb) / .9); }
.workflow-carousel__arrow:focus-visible { outline: 3px solid var(--palette-accent); outline-offset: 3px; }
.workflow-carousel__arrow--prev { left: 18px; }
.workflow-carousel__arrow--next { right: 18px; }
.workflow-carousel__dots {
  position: absolute;
  z-index: 4;
  right: 28px;
  bottom: 24px;
  display: flex;
  gap: 10px;
}
.workflow-carousel__dots button {
  width: 10px;
  height: 10px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgb(var(--palette-white-rgb) / .46);
  cursor: pointer;
  transition: width .28s ease, background-color .28s ease;
}
.workflow-carousel__dots button.is-active {
  width: 34px;
  border-radius: 999px;
  background: var(--palette-brand);
}
.workflow-carousel__dots button:focus-visible { outline: 2px solid var(--palette-white); outline-offset: 3px; }
@media (max-width: 760px) {
  .workflow-carousel { margin-top: 34px; }
  .workflow-slide { aspect-ratio: 4 / 5; }
  .workflow-slide > img { object-position: left top; }
  .workflow-slide__shade { background: linear-gradient(0deg, rgb(var(--palette-night-rgb) / .94) 0%, rgb(var(--palette-night-rgb) / .42) 58%, transparent 82%); }
  .workflow-slide__content { left: 50%; right: auto; bottom: 82px; width: calc(100% - 48px); min-height: 0; padding: 24px; transform: translateX(-50%); }
  .workflow-slide__content h3,
  .workflow-slide__content p { max-width: calc(100% - 112px); }
  .workflow-slide__icon { width: 108px; height: 108px; }
  .workflow-carousel__arrow { top: 42%; width: 42px; height: 42px; }
  .workflow-carousel__arrow--prev { left: 10px; }
  .workflow-carousel__arrow--next { right: 10px; }
  .workflow-carousel__dots { right: 50%; bottom: 22px; transform: translateX(50%); }
}
@media (prefers-reduced-motion: reduce) {
  .workflow-carousel__track { transition: none; }
}

/* Apply the same identity to the existing internal pages. */
.inner-hero { background: radial-gradient(ellipse at 80% 10%, rgb(var(--palette-accent-rgb) / .27), transparent 65%), var(--palette-card); border-bottom-color: var(--glass-border); }
.inner-hero h1 { color: var(--palette-white); line-height: var(--lh-h1); }
.breadcrumbs, .page-intro { color: var(--soft-text); }
.page-product-logo { box-sizing: content-box; padding: 0; background: none; }
.page-panel { background: linear-gradient(145deg, var(--palette-card), var(--palette-card)); border-color: var(--palette-slate); border-top-color: var(--palette-accent); box-shadow: 0 12px 28px rgb(var(--palette-night-rgb) / .12); }
.page-panel h2, .page-address h2 { color: var(--palette-white); line-height: var(--lh-h3); }
.page-panel p, .page-panel li, .page-address address { color: var(--palette-sky); }
.page-callout { background: linear-gradient(120deg, var(--palette-slate), var(--palette-card)); border: 1px solid var(--palette-button-end); }
.page-callout p { color: var(--palette-white); line-height: var(--lh-large); }
@media (prefers-reduced-motion: no-preference) {
  .hero .product-window { animation: product-float 4.8s cubic-bezier(.37,0,.63,1) infinite, hero-window-glow 4.5s ease-in-out infinite; }
  @keyframes hero-window-glow {
    0%, 35%, 100% { border-color: var(--palette-slate); box-shadow: 0 0 0 1px var(--palette-accent), 0 28px 65px rgb(var(--palette-night-rgb) / .5), 0 0 80px rgb(var(--palette-accent-rgb) / .26); }
    65%, 75% { border-color: var(--palette-accent); box-shadow: 0 0 0 4px rgb(var(--palette-accent-rgb) / .17), 0 28px 65px rgb(var(--palette-night-rgb) / .5), 0 0 90px rgb(var(--palette-accent-rgb) / .5); }
  }
  @keyframes product-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-26px); } }
  @keyframes product-float-mobile { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-14px); } }
}
@media (max-width: 680px) and (prefers-reduced-motion: no-preference) {
  .hero .product-window { animation-name: product-float-mobile, hero-window-glow; }
}
.features-benefits .feature-hover-shell { position: relative; display: grid; min-width: 0; }
.features-benefits .feature-hover-shell.is-floating { z-index: 1; }
.features-benefits .feature-hover-shell > .feature-card { pointer-events: none; }
@media (max-width: 1040px) {
  .site-header { padding-inline: 20px; }
  .site-header .nav { background: var(--palette-card); border-radius: 12px; max-height: 60dvh; overflow-y: auto; }
  .nav-submenu { background: var(--palette-card); }
}
@media (max-width: 980px) {
  .hero { width: 100%; padding-inline: 24px; }
  .features-benefits .feature-card:nth-child(odd), .workflow-steps li:nth-child(3) { padding: 24px; border-left: 1px solid var(--glass-border); }
  .teams { gap: 48px; }
}
@media (max-width: 680px) {
  .language-tools .team-visual::after { inset: -8% -14%; filter: blur(16px); }
  .hero { padding: 52px 20px 22px; gap: 70px; background-position: center, center, 68% center; }
  .hero-copy h1 { font-size: var(--fs-h1); line-height: var(--lh-h1); }
  .hero-text, .collection-note { font-size: var(--fs-large); line-height: var(--lh-large); }
  .hero-invitation { margin-top: 20px; line-height: var(--lh-h2); }
  .intro-context p, .features-benefits .section-intro > p:last-child { font-size: var(--fs-normal); line-height: var(--lh-normal); }
  .hero-actions { align-items: center; }
  .hero .product-window { width: 100%; margin: 0; border-width: 4px; border-radius: 14px; }
  .hero .workspace-body { padding: 16px 12px; }
  .hero .window-topbar { grid-template-columns: 24px 1fr 24px; padding-inline: 8px; }
  .hero .window-title { font-size: .6rem; }
  .hero .workspace-heading h2 { font-size: 1rem; }
  .hero .generate-button { font-size: .6rem; padding: 6px; }
  .hero .workspace-tabs { gap: 12px; font-size: .64rem; }
  .section-two .intro-band { padding-block: 36px; }
  .section-two .sources-section { padding-bottom: 60px; }
  .features-benefits .section-intro h2, .workflow h2 { font-size: var(--fs-h2); line-height: var(--lh-h2); }
  .features-benefits .feature-card, .features-benefits .feature-card:nth-child(odd) { min-height: 0; padding: 22px; }
  .features-benefits .feature-number { font-size: 3.5rem; }
  .workflow-steps .workflow-icon { width: 56px; height: 56px; }
  .features-benefits .feature-card h3 { margin-top: 20px; line-height: var(--lh-large); }
  .workflow-steps li, .workflow-steps li + li, .workflow-steps li:nth-child(3) { padding: 22px; border: 1px solid var(--glass-border); }
  .workflow-steps h3 { margin-top: 20px; line-height: var(--lh-large); }
  .team-node { min-width: 92px; padding: 10px; }
  .team-node b { font-size: .72rem; }
  .team-node span { font-size: .62rem; }
  .team-visual { width: min(100%, 370px); }
  .cta-section { padding: 72px 20px; }
  .site-footer { padding-block: 28px; }
  .page-product-logo { max-width: calc(100% - 40px); }
}
/* Inner pages: cards share the design of the module cards in home section 02. */
.site-page .page-panel {
  padding: 24px 18px;
  text-align: center;
  background: transparent;
  border: 1px solid var(--glass-border);
  border-radius: 18px;
  box-shadow: none;
}
.site-page .page-panel :is(p, li) { margin: 0; color: var(--soft-text); font-size: var(--fs-normal); line-height: var(--lh-normal); }
.site-page .page-panel p + p { margin-top: .8rem; }
.site-page .page-panel p strong { color: var(--palette-white); }
.site-page .page-panel h2 { margin-bottom: 1rem; color: var(--palette-accent); font-family: var(--sans); font-weight: 700; letter-spacing: -.02em; }
.site-page .page-panel ul { margin: 1rem 0 0; padding: 0; list-style-position: inside; }
.site-page .page-panel li + li { margin-top: .4rem; }
.site-page .page-panel :is(.text-link, .button) { margin-top: 1.2rem; }
/* Module pages (ListPro, NetPro, ManualPro): hero with a framed screenshot of the app, key facts,
   steps that alternate text and screenshot, FAQ and links to the other modules. */
.site-page .page-section + .page-section { margin-top: clamp(4rem, 8vw, 6rem); }
.site-page .page-section-title { margin: 0 0 1.6rem; color: var(--palette-white); font-family: var(--sans); font-size: var(--fs-h2); font-weight: 700; line-height: var(--lh-h2); letter-spacing: -.02em; text-align: center; }
.site-page .page-section-intro { max-width: 640px; margin: -.6rem auto 2.6rem; color: var(--soft-text); font-size: var(--fs-normal); line-height: var(--lh-normal); text-align: center; }
.site-page .page-panel h3 { margin: 0 0 .8rem; color: var(--palette-accent); font-family: var(--sans); font-size: var(--fs-large); font-weight: 700; line-height: var(--lh-large); letter-spacing: -.02em; }
.site-page .page-step { display: block; margin-bottom: .9rem; color: var(--palette-accent); font: 500 var(--fs-label)/var(--lh-label) var(--mono); letter-spacing: .13em; }
.site-page .module-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(2rem, 4vw, 4rem); align-items: center; }
.site-page .module-hero h1 { font-size: var(--fs-h1); line-height: var(--lh-h1); }
.site-page .module-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem 1.6rem; margin-top: 2rem; }
.site-page .module-hero__actions .text-link { color: var(--palette-white); }
.site-page .module-shot { margin: 0; overflow: hidden; background: var(--palette-night); border: 1px solid var(--glass-border); border-radius: 16px; box-shadow: 0 24px 60px rgb(var(--palette-night-rgb) / .5); }
.site-page .module-shot img { display: block; width: 100%; height: auto; }
.site-page .module-shot figcaption { padding: .8rem 1.1rem; color: var(--soft-text); background: var(--palette-card); border-top: 1px solid var(--glass-border); font-size: var(--fs-small); line-height: var(--lh-small); }
.site-page .module-hero__shot { box-shadow: 0 30px 80px rgb(var(--palette-night-rgb) / .6), 0 0 60px rgb(var(--palette-accent-rgb) / .14); }
.site-page .module-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0 0 clamp(4rem, 8vw, 6rem); padding: 0; list-style: none; }
.site-page .module-facts li { padding: 1.3rem 1.4rem; border: 1px solid var(--glass-border); border-radius: 16px; text-align: center; }
.site-page .module-facts strong { display: block; margin-bottom: .35rem; color: var(--palette-white); font-family: var(--sans); font-size: var(--fs-h3); font-weight: 700; letter-spacing: -.02em; line-height: var(--lh-h3); }
.site-page .module-facts span { color: var(--soft-text); font-size: var(--fs-normal); line-height: var(--lh-normal); }
.site-page .module-steps { display: grid; gap: clamp(3rem, 6vw, 5rem); margin: 0; padding: 0; list-style: none; }
.site-page .module-step { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.site-page .module-step:nth-child(even) { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.site-page .module-step:nth-child(even) .module-step__text { order: 2; }
.site-page .module-step h3 { margin: 0 0 .9rem; color: var(--palette-white); font-family: var(--sans); font-size: var(--fs-h3); font-weight: 700; line-height: var(--lh-h3); letter-spacing: -.02em; }
.site-page .module-step p { margin: 0; color: var(--soft-text); font-size: var(--fs-normal); line-height: var(--lh-normal); }
.site-page .module-faq { max-width: 860px; margin-inline: auto; }
.site-page .module-faq details { padding: 0 1.3rem; border: 1px solid var(--glass-border); border-radius: 14px; }
.site-page .module-faq details + details { margin-top: 12px; }
.site-page .module-faq summary { display: flex; justify-content: space-between; gap: 1rem; padding: 1.1rem 0; color: var(--palette-white); font-size: var(--fs-normal); font-weight: 700; cursor: pointer; list-style: none; }
.site-page .module-faq summary::-webkit-details-marker { display: none; }
.site-page .module-faq summary::after { content: "+"; flex: none; color: var(--palette-accent); font-size: 1.4rem; line-height: 1; transition: transform .2s; }
.site-page .module-faq details[open] summary::after { transform: rotate(45deg); }
.site-page .module-faq details p { margin: 0 0 1.2rem; color: var(--soft-text); line-height: 1.7; }
.site-page .module-faq > h3 { margin: 2.2rem 0 .9rem; color: var(--palette-accent); font-family: var(--sans); font-size: var(--fs-large); font-weight: 700; letter-spacing: -.01em; line-height: var(--lh-large); }
.site-page :is(.module-faq details, .page-intro, .module-step p) a { color: var(--palette-accent); text-decoration: underline; text-underline-offset: .2em; }
.site-page .module-links .page-panel img { display: block; width: auto; height: 44px; margin: 0 auto 1rem; }
@media (max-width: 900px) {
  .site-page .module-hero__grid, .site-page .module-step, .site-page .module-step:nth-child(even) { grid-template-columns: 1fr; }
  .site-page .module-step:nth-child(even) .module-step__text { order: 0; }
  .site-page .module-facts { grid-template-columns: 1fr; }
}
/* Inner pages: palette gradient over the particle background (particles-bg.js). */
.site-page .inner-hero {
  padding-top: clamp(3rem, 6vw, 5rem);
  background-color: var(--palette-night);
  background-image:
    linear-gradient(90deg, rgb(var(--palette-night-rgb) / .94) 0%, rgb(var(--palette-night-rgb) / .78) 38%, rgb(var(--palette-card-rgb) / .3) 72%, rgb(var(--palette-card-rgb) / .1) 100%),
    linear-gradient(0deg, rgb(var(--palette-night-rgb) / .55) 0%, transparent 35%);
  background-position: center, center;
  background-repeat: no-repeat;
  background-size: cover;
}
@media (max-width: 680px) {
  .site-page .inner-hero {
    background-image:
      linear-gradient(180deg, rgb(var(--palette-night-rgb) / .62) 0%, rgb(var(--palette-night-rgb) / .86) 55%, rgb(var(--palette-night-rgb) / .94) 100%);
    background-position: center;
  }
}
/* Hero showreel video in the product window: 16:9 frame, no float (the video carries the motion), glow kept. */
.hero .hero-video { aspect-ratio: 16 / 9; height: auto; object-fit: cover; background: var(--palette-night); }
@media (prefers-reduced-motion: no-preference) {
  .hero .product-window:has(.hero-video) { animation: hero-window-glow 4.5s ease-in-out infinite; }
}
/* Hero video on scroll: the window stays pinned and grows to fill the screen,
   then the page scrolls on. hero-video.js adds .is-scroll and sets --e (0 = window, 1 = full screen). */
.hero-video-stage { justify-self: stretch; }
.hero-video-pin { display: grid; place-items: center; }
.hero:has(.hero-video-stage.is-scroll) { row-gap: 0; }
.hero-background:has(.hero-video-stage.is-scroll) { overflow: clip; }
.hero-video-stage.is-scroll { --e: 0; --bw: 8px; --br: 22px; width: 100vw; height: 240vh; margin-inline: calc(50% - 50vw); }
.hero-video-stage.is-scroll .hero-video-pin { position: sticky; top: 0; height: 100vh; }
.hero-video-stage.is-scroll .product-window { max-width: none; border-width: calc(var(--bw) * (1 - var(--e))); border-radius: calc(var(--br) * (1 - var(--e))); }
.hero-video-stage.is-scroll .hero-video { width: 100%; height: 100%; aspect-ratio: auto; }
.hero-video-stage.is-portrait .hero-video { object-fit: contain; }
.hero-video-stage.is-expanding .product-window { animation: none; box-shadow: 0 0 0 calc(1px * (1 - var(--e))) var(--palette-accent), 0 28px 65px rgb(var(--palette-night-rgb) / calc(.5 * (1 - var(--e)))), 0 0 80px rgb(var(--palette-accent-rgb) / calc(.26 * (1 - var(--e)))); }
@media (max-width: 680px) {
  .hero-video-stage.is-scroll { --bw: 4px; --br: 14px; height: 200vh; }
}
/* Header hides while scrolling down and returns on scroll up (navigation.js). */
.site-header { transition: transform .38s cubic-bezier(.22, .61, .36, 1); }
.site-header.is-hidden { transform: translateY(calc(-100% - 32px)); }
@media (prefers-reduced-motion: reduce) { .site-header { transition: none; } }
/* Hero: pesi e spaziatura del titolo e dei testi (carattere unico del sito: Manrope). */
.hero-copy h1 { font-family: var(--sans); font-weight: 790; letter-spacing: -.03em; line-height: var(--lh-h1); }
.hero-text { font-family: var(--sans); font-weight: 430; letter-spacing: -.01em; line-height: var(--lh-normal); }
.hero-text strong { font-weight: 650; }
.hero-invitation { font-family: var(--sans); font-weight: 600; letter-spacing: -.02em; line-height: var(--lh-h2); }
.hero-actions :is(.button, .text-link) { font-family: var(--sans); font-weight: 650; }

/* ManualPro: domanda su una riga, invito alla demo su una sola riga sotto. */
.page-callout .callout-two-lines { max-width: none; }
.page-callout .callout-one-line { font-size: var(--fs-normal); font-weight: 600; color: var(--palette-soft); line-height: var(--lh-normal); }
@media (min-width: 1100px) {
  .page-callout .callout-one-line { white-space: nowrap; line-height: var(--lh-normal); }
}

/* Carosello flusso: screenshot interi e didascalia in una fascia sotto l'immagine. */
.workflow-slide { display: flex; flex-direction: column; aspect-ratio: auto; background: var(--palette-card); }
.workflow-slide > img { flex: none; height: auto; aspect-ratio: 16 / 10; object-position: left top; filter: none; }
.workflow-slide__shade { display: none; }
.workflow-slide__content {
  position: relative;
  left: auto;
  bottom: auto;
  display: grid;
  grid-template-columns: 64px 1fr;
  grid-template-rows: auto auto;
  column-gap: 22px;
  align-items: center;
  width: auto;
  min-height: 0;
  padding: 24px 150px 26px 32px;
  border: 0;
  border-top: 1px solid rgb(var(--palette-line-rgb) / .3);
  border-radius: 0;
  background: linear-gradient(120deg, var(--palette-slate), var(--palette-card));
  box-shadow: none;
  backdrop-filter: none;
  transform: none;
}
.workflow-slide__content h3,
.workflow-slide__content p { grid-column: 2; max-width: none; }
.workflow-slide__content h3 { margin: 0 0 4px; font-size: var(--fs-h2); line-height: var(--lh-h2); }
.workflow-slide__icon { position: static; grid-column: 1; grid-row: 1 / 3; width: 64px; height: 64px; opacity: .9; }
.workflow-carousel__arrow { top: calc(50% - 50px); }
.workflow-carousel__dots { bottom: 40px; }
@media (max-width: 760px) {
  .workflow-slide { aspect-ratio: auto; }
  .workflow-slide__content { left: auto; bottom: auto; width: auto; grid-template-columns: 44px 1fr; column-gap: 14px; padding: 18px 18px 52px; transform: none; }
  .workflow-slide__content h3,
  .workflow-slide__content p { max-width: none; }
  .workflow-slide__icon { width: 44px; height: 44px; }
  .workflow-carousel__arrow { top: 22%; }
  .workflow-carousel__dots { bottom: 20px; }
}

/* Home: tutti i titoli di sezione con la stessa misura, peso e interlinea di "I tuoi dati arrivano da più punti". */
body .sources-copy h2,
body .advantage-overview__intro h2,
body .features-benefits .section-intro h2,
body .workflow h2,
body .autonomy-heading h2,
body .language-tools .language-panel h2,
body .company-footer .cta-section h2 {
  font-size: var(--fs-h2);
  font-weight: 700;
  line-height: var(--lh-h2);
  letter-spacing: -.035em;
}
@media (max-width: 680px) {
  body .sources-copy h2,
  body .advantage-overview__intro h2,
  body .features-benefits .section-intro h2,
  body .workflow h2,
  body .autonomy-heading h2,
  body .language-tools .language-panel h2,
  body .company-footer .cta-section h2 { font-size: var(--fs-h2); line-height: var(--lh-h2); }
}

/* Logo DatiPro più grande nell'intestazione. */
.site-header .logo-header { width: 200px; }
@media (max-width: 800px) { .site-header .logo-header { width: 160px; } }

/* Riquadri delle pagine interne nello stile di "Perché scegliere DatiPro" in home. */
.benefit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.benefit-card,
.site-page .module-facts li {
  display: flex;
  flex-direction: column;
  min-height: 205px;
  padding: 26px;
  text-align: left;
  border: 1px solid var(--glass-border);
  border-radius: 18px;
  background: linear-gradient(145deg, rgb(var(--palette-sky-rgb) / .13), rgb(var(--palette-accent-rgb) / .04));
  box-shadow: inset 0 1px 0 rgb(var(--palette-mist-rgb) / .05), 0 12px 24px rgb(var(--palette-night-rgb) / .12);
}
.benefit-card__number,
.site-page .module-facts li::before {
  color: var(--palette-accent);
  font: 300 4rem/1 var(--sans);
  letter-spacing: -.05em;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 3px 5px rgb(var(--palette-night-rgb) / .5), 0 8px 16px rgb(var(--palette-night-rgb) / .3);
}
.benefit-card h3,
.site-page .module-facts strong {
  margin: 32px 0 .5rem;
  color: var(--palette-white);
  font-family: var(--sans);
  font-size: var(--fs-large);
  font-weight: 700;
  line-height: var(--lh-large);
  letter-spacing: -.02em;
}
.benefit-card p,
.site-page .module-facts span { margin: 0; color: var(--soft-text); font-size: var(--fs-normal); line-height: var(--lh-normal); }
.site-page .module-facts { gap: 18px; counter-reset: fact; }
.site-page .module-facts li { counter-increment: fact; }
.site-page .module-facts li::before { content: counter(fact, decimal-leading-zero); }
.feature-hover-shell { position: relative; display: grid; min-width: 0; }
.feature-hover-shell.is-floating { z-index: 1; }
.feature-hover-shell > .benefit-card { pointer-events: none; }
@media (max-width: 980px) { .benefit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) {
  .benefit-grid { grid-template-columns: 1fr; }
  .benefit-card, .site-page .module-facts li { min-height: 0; padding: 22px; }
  .benefit-card__number, .site-page .module-facts li::before { font-size: 3.5rem; }
  .benefit-card h3, .site-page .module-facts strong { margin-top: 20px; line-height: var(--lh-large); }
}

/* Riquadro Contatti: il titolo è centrato nella sua colonna (senza logo Omega 2000). */
.footer-contact-heading { position: relative; display: grid; justify-items: center; text-align: center; }

/* Carosello flusso più piccolo, nelle proporzioni delle nuove schermate. */
.workflow-carousel { width: min(100%, 960px); margin-inline: auto; }
.workflow-slide > img { aspect-ratio: 1600 / 820; }
.workflow-slide__content { padding-block: 20px 22px; }
.workflow-slide__content h3 { font-size: var(--fs-h3); line-height: var(--lh-h3); }

/* I tre riquadri iniziali dei moduli restano nello stile delle card, ma senza numero. */
.site-page .module-facts li::before { content: none; }
.site-page .module-facts li { justify-content: center; }
.site-page .module-facts strong { margin-top: 0; line-height: var(--lh-h3); }

/* Sfondo a particelle (particles.js, vedi particles-bg.js) al posto delle immagini di rete. */
.site-page .inner-hero { position: relative; isolation: isolate; overflow: hidden; }
.particles-layer { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.particles-layer canvas { display: block; width: 100%; height: 100%; }
.hero-background > .particles-layer {
  bottom: auto;
  height: min(100%, 900px);
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 45%, transparent 100%);
  mask-image: linear-gradient(180deg, #000 0%, #000 45%, transparent 100%);
}
.site-page .inner-hero > .particles-layer {
  -webkit-mask-image: linear-gradient(90deg, rgb(0 0 0 / .6) 0%, rgb(0 0 0 / .78) 40%, #000 70%);
  mask-image: linear-gradient(90deg, rgb(0 0 0 / .6) 0%, rgb(0 0 0 / .78) 40%, #000 70%);
}
@media (max-width: 680px) {
  .site-page .inner-hero > .particles-layer { -webkit-mask-image: none; mask-image: none; opacity: .85; }
}

/* Tre riquadri iniziali dei moduli: i due archi della home ("Perché scegliere DatiPro"), contenuti nel riquadro e animati. */
.site-page .module-facts li { position: relative; isolation: isolate; overflow: hidden; }
.site-page .module-facts li > * { position: relative; z-index: 1; }
.site-page .module-facts li::before,
.site-page .module-facts li::after {
  content: "";
  position: absolute;
  z-index: 0;
  left: 92%;
  top: 50%;
  width: 380px;
  height: 380px;
  border: 1px dashed rgb(var(--palette-accent-rgb) / .38);
  border-radius: 50%;
  translate: -50% -50%;
  pointer-events: none;
}
.site-page .module-facts li::after {
  width: 250px;
  height: 250px;
  border-style: solid;
  border-color: rgb(var(--palette-accent-rgb) / .32);
}
.site-page .module-facts li:nth-child(2)::before, .site-page .module-facts li:nth-child(2)::after { left: 8%; top: 40%; }
.site-page .module-facts li:nth-child(3)::before, .site-page .module-facts li:nth-child(3)::after { left: 88%; top: 70%; }
@media (prefers-reduced-motion: no-preference) {
  .site-page .module-facts li::before { animation: fact-orbit-spin 40s linear infinite; }
  .site-page .module-facts li::after { animation: fact-orbit-breathe 6s ease-in-out infinite alternate; }
  .site-page .module-facts li:nth-child(2)::before { animation-direction: reverse; }
  .site-page .module-facts li:nth-child(2)::after { animation-delay: -2s; }
  .site-page .module-facts li:nth-child(3)::after { animation-delay: -4s; }
}
@keyframes fact-orbit-spin { to { rotate: 360deg; } }
@keyframes fact-orbit-breathe { to { scale: 1.08; } }

/* L'alone dietro l'immagine delle lingue esce a destra: la sezione lo taglia, così la pagina non scorre in orizzontale. */
.language-tools { overflow: hidden; overflow: clip; }

/* Testo delle card (riquadri iniziali, "Cosa ti semplifica", "Il supporto per ogni modulo")
   nella stessa misura del testo dei passaggi sotto. */
.benefit-card p,
.site-page .module-facts span { font-size: var(--fs-normal); line-height: var(--lh-normal); }

/* Pagina 404: stile essenziale, tutto centrato. Occupa tutto lo schermo sotto l'intestazione
   (altezza misurata da navigation.js, 98px se manca JavaScript): il footer si raggiunge scorrendo. */
.error-simple {
  display: grid;
  place-items: center;
  min-height: calc(100vh - var(--header-height, 98px));
  min-height: calc(100svh - var(--header-height, 98px));
  padding: clamp(4rem, 10vw, 7rem) 24px;
  text-align: center;
  background: var(--palette-night);
}
.error-simple__inner { width: min(100%, 720px); }
.error-simple__text { max-width: 560px; line-height: var(--lh-normal); }
/* Il "404" è una costellazione di punti disegnata da error-404.js;
   senza JavaScript resta il numero in testo. */
.error-code {
  margin: 0;
  color: var(--palette-accent);
  font: 300 clamp(6rem, 18vw, 10rem)/1 var(--sans);
  white-space: nowrap;
}
.error-code canvas { display: block; width: 100%; margin-inline: auto; touch-action: pan-y; }
.error-code.has-canvas .error-code__text { display: none; }
.error-code::after {
  content: "";
  display: block;
  width: 48px;
  height: 2px;
  margin: 1.6rem auto 0;
  border-radius: 1px;
  background: var(--palette-button-end);
}
.error-simple h1 {
  margin: 1.6rem 0 .8rem;
  color: var(--palette-white);
  font-size: var(--fs-h2);
  font-weight: 700;
  line-height: var(--lh-h2);
  letter-spacing: -.02em;
}
.error-simple__text { margin: 0 auto 2.4rem; color: var(--soft-text); font-size: var(--fs-normal); line-height: var(--lh-normal); }
.error-simple__actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 1rem 1.8rem; }

/* Piani tariffari, dalla demo (variante mensile): intestazione come tutte le pagine interne con la card
   dei loghi, sezione dei prezzi e chiusura su fondo bianco, card dei moduli blu scure. */
.pricing-hero__grid { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(320px, .88fr); gap: 68px; align-items: center; }

.pricing-card {
  position: relative;
  padding: 30px;
  overflow: hidden;
  color: var(--palette-white);
  background: linear-gradient(150deg, rgb(var(--palette-slate-rgb) / .92), rgb(var(--palette-card-rgb) / .95));
  border: 1px solid rgb(var(--palette-accent-rgb) / .55);
  border-radius: 22px;
  box-shadow: 0 25px 55px rgb(var(--palette-night-rgb) / .45);
}
.pricing-card::after { content: ""; position: absolute; width: 170px; height: 170px; right: -65px; top: -80px; border-radius: 50%; background: rgb(var(--palette-accent-rgb) / .2); filter: blur(4px); }
.pricing-card > * { position: relative; z-index: 1; }
.pricing-card__label { margin: 0 0 11px; color: var(--palette-ice); font: 600 var(--fs-label)/1 var(--mono); letter-spacing: .08em; }
.pricing-card__description { margin: 0 0 16px; color: var(--palette-sky); font-size: var(--fs-normal); font-weight: 700; line-height: var(--lh-normal); }
.pricing-card__description strong { color: var(--palette-white); font-weight: 800; }
.pricing-card .no-break { white-space: nowrap; }
.pricing-card__brands { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0 0 18px; padding: 14px 0; border-block: 1px solid rgb(var(--palette-line-rgb) / .18); }
.pricing-card__brands img { display: block; width: auto; height: 16px; max-width: 100%; }
.pricing-card__detail { margin: 0 0 24px; color: var(--palette-sky); font-size: var(--fs-normal); font-weight: 700; line-height: var(--lh-normal); }
.pricing-card__rule { height: 1px; margin: 0 0 20px; border: 0; background: rgb(var(--palette-line-rgb) / .22); }
.pricing-card__list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 0; padding: 0; list-style: none; font-size: var(--fs-normal); font-weight: 750; line-height: var(--lh-normal); }
.pricing-card__list li::before { content: "✓"; display: inline-block; width: 17px; color: var(--palette-accent); }

.pricing-section { padding: clamp(4.5rem, 8vw, 6.75rem) 0 0; color: var(--palette-night); background: var(--palette-white); }
.pricing-section__heading { display: grid; grid-template-columns: minmax(0, .58fr) minmax(0, 1.42fr); gap: 12px 2rem; align-items: end; margin-bottom: 42px; }
.pricing-eyebrow { margin: 0 0 18px; color: var(--palette-button-end); font: 700 var(--fs-label)/var(--lh-label) var(--mono); letter-spacing: .13em; text-transform: uppercase; }
.pricing-section h2, .pricing-closing h2 { margin: 0; color: var(--palette-night); font-size: var(--fs-h2); line-height: var(--lh-h2); letter-spacing: -.055em; }
/* La frase sotto "Una scelta su misura" ha lo stesso stile del testo di "Parliamone insieme". */
.pricing-section__intro { margin: 0; color: var(--palette-slate); font-size: var(--fs-normal); font-weight: 400; line-height: var(--lh-normal); }
.pricing-section__intro strong { display: inline-block; margin-bottom: .3rem; color: var(--palette-button-end); font-size: var(--fs-large); line-height: var(--lh-large); }
.pricing-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 17px; }
.pricing-plan {
  position: relative;
  min-height: 358px;
  padding: 29px;
  color: var(--palette-white);
  background: linear-gradient(145deg, var(--palette-card), var(--palette-night));
  border: 1px solid var(--palette-card);
  border-radius: 18px;
  box-shadow: 0 20px 60px rgb(var(--palette-night-rgb) / .14);
}
.pricing-plan__number { margin: 0 0 31px; color: var(--palette-accent); font: 600 var(--fs-label)/var(--lh-label) var(--mono); }
.pricing-plan h3 { margin: 0 0 13px; color: var(--palette-white); font-size: var(--fs-h3); letter-spacing: -.045em; line-height: var(--lh-h3); }
.pricing-plan__copy { min-height: 98px; margin: 0 0 25px; color: var(--palette-sky); font-size: var(--fs-normal); line-height: var(--lh-normal); }
.pricing-plan__price { display: flex; align-items: baseline; gap: 6px; margin: 0 0 56px; color: var(--palette-white); font: 800 2.4rem/1 var(--sans); letter-spacing: -.05em; }
.pricing-plan__price small { font-size: 1.05rem; font-weight: 600; letter-spacing: 0; }
.pricing-plan__link { position: absolute; right: 29px; bottom: 26px; color: var(--palette-accent); font-size: var(--fs-normal); font-weight: 750; line-height: var(--lh-normal); }
.pricing-plan__link::after { content: "→"; margin-left: 7px; }
.pricing-plan__link:hover { color: var(--palette-white); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .pricing-plan { transition: translate .45s cubic-bezier(.16, 1, .3, 1), box-shadow .45s ease, border-color .45s ease; }
  .pricing-plan:hover { translate: 0 -8px; border-color: rgb(var(--palette-accent-rgb) / .55); box-shadow: 0 30px 70px rgb(var(--palette-night-rgb) / .28); }
}
.pricing-note { margin: 1.6rem 0 0; color: var(--palette-slate); font-size: var(--fs-normal); line-height: var(--lh-normal); text-align: center; }

/* Dalle card a "Parliamone insieme" la stessa distanza che c'è tra l'intestazione e "La soluzione completa"
   (tolto lo spazio della nota sotto le card: 1.6rem di margine più una riga da 1.425rem). */
.pricing-closing { padding: calc(clamp(4.5rem, 8vw, 6.75rem) - 3.025rem) 0 clamp(4rem, 7vw, 5.9rem); text-align: center; background: var(--palette-white); }
.pricing-closing h2 { max-width: 720px; margin: 0 auto 18px; }
.pricing-closing p:not(.pricing-eyebrow) { max-width: 540px; margin: 0 auto 29px; color: var(--palette-slate); font-size: var(--fs-normal); line-height: var(--lh-normal); }
.pricing-closing__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 11px; }
.pricing-button-outline { color: var(--palette-night); background: var(--palette-white); border: 1px solid var(--palette-sky); box-shadow: none; }
.pricing-button-outline:hover { border-color: var(--palette-button-end); }

@media (max-width: 1100px) {
  .pricing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pricing-plan__copy { min-height: 0; line-height: var(--lh-normal); }
}
@media (max-width: 840px) {
  .pricing-hero__grid, .pricing-section__heading { grid-template-columns: 1fr; gap: 38px; }
  .pricing-card { max-width: 520px; }
}
@media (max-width: 600px) {
  .pricing-grid { grid-template-columns: 1fr; }
  .pricing-plan { min-height: 285px; }
  .pricing-card { padding: 24px; }
  .pricing-card__brands { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px 16px; }
  .pricing-card__list { grid-template-columns: 1fr; line-height: var(--lh-normal); }
  .pricing-section__intro { text-align: left; line-height: var(--lh-normal); }
  .pricing-closing__actions .button { width: 100%; }
}

/* Intestazioni delle pagine interne tutte uguali: riempiono lo schermo sotto il menu (altezza del menu
   da navigation.js), contenuto centrato con lo stesso margine sopra e sotto, stesso sfondo a particelle
   e stessa misura del titolo in ogni pagina. */
.site-page .inner-hero {
  display: grid;
  align-content: center;
  min-height: calc(100vh - var(--header-height, 98px));
  min-height: calc(100svh - var(--header-height, 98px));
  padding-block: clamp(3rem, 6vw, 5rem);
}
.site-page .inner-hero h1 { font-size: var(--fs-h1); line-height: var(--lh-h1); }

/* Richiedi una demo: le card dei passaggi usano la sezione prezzi dei Piani tariffari (fondo bianco,
   card blu scure), senza titolo, prezzo e link; la sezione ha lo stesso spazio sopra e sotto. */
.pricing-section--steps { padding-bottom: clamp(4.5rem, 8vw, 6.75rem); }
.pricing-plan.pricing-plan--step { min-height: 0; }
.pricing-plan--step .pricing-plan__number { min-height: 2.9em; line-height: 1.45; }  /* due righe: i testi partono tutti alla stessa altezza */
.pricing-plan--step .pricing-plan__copy { min-height: 0; margin: 0; }

/* Sezioni con le card numerate (moduli, supporto tecnico, richiedi una demo): fondo bianco a tutta
   larghezza, come i prezzi nei Piani tariffari, con le card blu scure. */
.site-page .page-section.section-light {
  position: relative;
  padding-block: clamp(3.5rem, 7vw, 5.5rem);
  background: var(--palette-white);
  box-shadow: 0 0 0 100vmax var(--palette-white);
  clip-path: inset(0 -100vmax);
}
/* Prima sezione della pagina: attaccata all'intestazione (toglie lo spazio iniziale di .page-body). */
.site-page .page-body > .section-light:first-child { margin-top: -3rem; }
.site-page .section-light .page-section-title { color: var(--palette-night); }
.site-page .section-light .benefit-card {
  background: linear-gradient(145deg, var(--palette-card), var(--palette-night));
  border-color: var(--palette-card);
  box-shadow: 0 20px 60px rgb(var(--palette-night-rgb) / .14);
}

/* Chi siamo: sotto l'intestazione, testo a sinistra e immagine a destra;
   poi titolo a sinistra e testo a destra. */
.about-intro { display: grid; gap: clamp(2.2rem, 4vw, 3.2rem); }
.about-intro__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.about-intro__text h2 { margin: 0 0 1.2rem; color: var(--palette-white); font-size: var(--fs-h2); line-height: var(--lh-h2); letter-spacing: -.03em; }
.about-intro__text p { margin: 0; color: var(--soft-text); font-size: var(--fs-normal); line-height: var(--lh-normal); }
.about-intro__text p + p { margin-top: 1rem; }
.about-intro__text .button { margin-top: 2rem; }
.about-intro__media { margin: 0; overflow: hidden; border: 1px solid var(--glass-border); border-radius: 18px; box-shadow: 0 24px 60px rgb(var(--palette-night-rgb) / .5); }
.about-intro__media img { display: block; width: 100%; height: auto; }  /* immagine intera, nelle sue proporzioni */

.about-text { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 1.5rem clamp(2rem, 5vw, 4.5rem); align-items: start; }
.about-text h2 { margin: 0; color: var(--palette-white); font-size: var(--fs-h2); line-height: var(--lh-h2); letter-spacing: -.03em; }
.about-text p { margin: 0; color: var(--soft-text); font-size: var(--fs-normal); line-height: var(--lh-normal); }
.about-text p + p { margin-top: .9rem; }

@media (max-width: 900px) {
  .about-intro__grid, .about-text { grid-template-columns: minmax(0, 1fr); }
}

/* Home: "Qualunque sia il punto di partenza…" grande come il testo di "Perché scegliere DatiPro". */
.workflow-top > p { font-size: var(--fs-large); line-height: var(--lh-large); letter-spacing: -.015em; }
@media (max-width: 680px) { .workflow-top > p { font-size: var(--fs-normal); line-height: var(--lh-normal); } }
