:root {
  --bg: #090909;
  --surface: #121212;
  --text: #f5f5f2;
  --muted: #aaa8a2;
  --accent: #2198d6;
  --accent-light: #68bee8;
  --line: rgba(255, 255, 255, 0.13);
  --wrap: 1160px;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  overflow-x: hidden;
  font:
    16px/1.45 Arial,
    Helvetica,
    sans-serif;
}
a {
  color: inherit;
}
.cursor-light {
  position: fixed;
  z-index: 5;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
.cursor-light-core {
  position: absolute;
  width: 360px;
  height: 360px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(33, 152, 214, 0.18), rgba(33, 152, 214, 0) 67%);
  filter: blur(8px);
  transform: translate(-50%, -50%);
}
.site-header {
  position: relative;
  z-index: 6;
  height: 73px;
  display: flex;
  align-items: center;
  gap: 31px;
  padding: 0 max(38px, calc((100vw - var(--wrap)) / 2));
  border-bottom: 1px solid var(--line);
}
.brand {
  display: flex;
  width: 123px;
  line-height: 0;
}
.brand img {
  width: 100%;
  height: auto;
}
.site-nav {
  display: flex;
  gap: 24px;
  margin-left: auto;
}
.site-nav a {
  color: var(--muted);
  font-size: 14px;
  text-decoration: none;
  transition: color 0.2s ease;
}
.site-nav a:hover {
  color: var(--text);
}
.phone-link {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: 0;
  min-height: 44px;
  font-size: 17px;
  text-decoration: none;
}
.phone-link svg {
  width: 20px;
  color: var(--accent-light);
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.7;
}
.hero {
  min-height: 475px;
  display: flex;
  align-items: center;
  background:
    linear-gradient(
      90deg,
      #090909 0%,
      rgba(9, 9, 9, 0.98) 31%,
      rgba(9, 9, 9, 0.61) 54%,
      rgba(9, 9, 9, 0.1) 100%
    ),
    url("images/sport.jpg") right center / 68% auto no-repeat;
}
.hero-content {
  width: min(100% - 76px, var(--wrap));
  min-width: 0;
  margin: auto;
  padding: 92px 0 70px;
}
.problems {
  padding: 92px max(38px, calc((100vw - var(--wrap)) / 2));
  background: var(--surface);
}
.problems-heading {
  margin-bottom: 24px;
}
.problems-heading .eyebrow {
  margin-bottom: 0;
  color: #2198d6 !important;
}
.problems h2 {
  margin: 0;
  font-size: clamp(34px, 4vw, 56px);
  letter-spacing: -0.045em;
  line-height: 1.04;
}
.problems h2 em {
  color: var(--accent-light);
  font-style: normal;
}
.problems-heading > p:last-child {
  max-width: 420px;
  margin: 0;
  color: var(--muted);
}
.problems-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line);
}
.problems-grid article {
  min-height: 290px;
  padding: 28px 30px 29px;
  border-right: 1px solid var(--line);
}
.problems-grid article:first-child { padding-left: 0; }
.problems-grid article:last-child {
  padding-right: 0;
  border-right: 0;
}
.problems-grid span {
  color: var(--accent-light);
  font-size: 12px;
  font-weight: 700;
}
.problems-grid blockquote {
  margin: 24px 0;
  font-size: clamp(21px, 2.3vw, 31px);
  font-style: italic;
  letter-spacing: -0.035em;
  line-height: 1.14;
}
.problems-grid p {
  max-width: 295px;
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}
.nina-highlight {
  padding: 0 0 88px;
  background: var(--surface);
}
.nina-highlight-card {
  position: relative;
  display: flex;
  min-height: 430px;
  overflow: hidden;
  flex-direction: column;
  justify-content: space-between;
  background:
    linear-gradient(90deg, #101111 0%, rgba(16, 17, 17, 0.97) 41%, rgba(16, 17, 17, 0.46) 66%, rgba(16, 17, 17, 0.1) 100%),
    url("images/dettagli/nea-avatar.png") center 42% / cover no-repeat;
  border: 1px solid rgba(104, 190, 232, 0.35);
  border-radius: 4px;
}
.nina-highlight-card > * {
  min-width: 0;
}
.nina-highlight-card > div {
  position: relative;
  z-index: 1;
  max-width: 590px;
  padding: 43px 48px 28px;
}
.nina-highlight-card .tool-name {
  display: inline-block;
  padding: 4px 11px;
  border: 1px solid var(--accent-light);
  border-radius: 7px;
  color: var(--accent-light);
  font-size: 20px;
  line-height: 1;
}
.nina-highlight-card h2 {
  margin: 18px 0 14px;
  font-size: clamp(28px, 3vw, 43px);
  letter-spacing: -0.045em;
  line-height: 1.08;
}
.nina-highlight-card p {
  margin: 0 0 12px;
  color: #d1d6d9;
  font-size: 16px;
  line-height: 1.48;
}
.nina-highlight-card .outline-button {
  margin-top: 13px;
}
.nina-highlight-card .nina-highlight-note {
  position: relative;
  z-index: 1;
  max-width: 100%;
  margin: 0;
  padding: 17px 48px;
  border-top: 1px solid rgba(104, 190, 232, 0.55);
  background: rgba(13, 15, 15, 0.88);
  color: var(--accent-light);
  font-size: 14px;
  font-weight: 600;
}
.eyebrow {
  margin: 0 0 17px;
  color: var(--accent-light);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
}
.hero h1 {
  max-width: 590px;
  margin: 0;
  font-size: clamp(29px, 4.2vw, 52px);
  letter-spacing: -0.045em;
  line-height: 1.08;
}
.hero h1 span { display: block; white-space: nowrap; }
.hero h1 em { color: var(--accent-light); font-style: normal; }
.hero-copy {
  max-width: 510px;
  margin: 22px 0 23px;
  color: var(--muted);
  font-size: 18px;
  line-height: 1.5;
}
.hero-actions {
  display: flex;
  align-items: center;
  gap: 24px;
}
.hero .button {
  min-height: 48px;
  padding: 12px 20px;
  border-color: var(--accent);
  border-radius: 8px;
  background: var(--accent);
  box-shadow: none;
}
.hero .button:hover { background: var(--accent-light); color: #071018; }
.hero-actions p {
  margin: 0;
  font-size: 14px;
}
.hero-actions p a {
  color: var(--accent-light);
  font-size: 18px;
  font-weight: 700;
  text-decoration: none;
}
.button,
.outline-button {
  min-height: 43px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 24px;
  border: 1px solid transparent;
  border-radius: 3px;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: 0.2s;
}
.button {
  background: var(--accent);
  color: #fff;
}
.button:hover {
  background: var(--accent-light);
  color: #07131a;
}
.outline-button {
  border-color: var(--accent-light);
}
.outline-button:hover {
  background: var(--accent);
  color: #fff;
}
.trust-bar,
.proof {
  display: grid;
  width: min(100% - 76px, var(--wrap));
  margin: auto;
}
.trust-bar {
  grid-template-columns: repeat(4, 1fr);
  width: 100%;
  padding: 30px max(38px, calc((100vw - var(--wrap)) / 2));
  border-block: 1px solid rgba(104, 190, 232, 0.18);
  background: #10161a;
}
.trust-bar article,
.proof article {
  display: flex;
  gap: 17px;
  padding: 0 19px;
}
.trust-bar article:first-child,
.proof article:first-child {
  padding-left: 0;
}
.trust-icon {
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  color: var(--accent-light);
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}
.icon,
.module-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  color: var(--accent-light);
  font-size: 37px;
  font-weight: 300;
  line-height: 1;
}
.trust-bar h2,
.proof h2 {
  margin: 3px 0 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.025em;
  text-transform: uppercase;
}
.trust-bar p,
.proof p {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.38;
}
.modules,
.tools {
  width: min(100% - 76px, var(--wrap));
  margin: auto;
  padding: 29px 0 35px;
}
.section-heading {
  text-align: center;
}
.section-heading h2 {
  margin: 0;
  font-size: 27px;
  letter-spacing: -0.035em;
}
.section-heading h2 em {
  color: var(--accent-light);
  font-style: normal;
}
.section-heading p {
  margin: 3px 0 20px;
  color: var(--muted);
  font-size: 14px;
}
.module-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 11px;
}
.module-grid .module-card {
  min-height: 227px;
  display: flex;
  flex-direction: column;
  padding: 18px 14px 14px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: linear-gradient(125deg, #151515, #0e0e0e);
  transition: border-color .22s ease, box-shadow .22s ease, filter .22s ease;
  color: inherit;
  text-decoration: none;
}
.module-grid .module-card:hover { border-color: rgba(104,190,232,.9); box-shadow: 0 0 0 1px rgba(33,152,214,.18), 0 24px 45px rgba(33,152,214,.16); filter: brightness(1.08); }
@media (min-width: 801px) {
  .module-grid .module-card:nth-child(4) {
    grid-column: 2;
  }
}
.module-icon {
  height: 55px;
  margin: auto;
  font-size: 51px;
}
.module-grid .module-icon { display: none; }
.module-grid .module-card::before { width: 54px; height: 54px; display: block; flex: 0 0 auto; margin: 2px auto 15px; content: ""; background: var(--accent); -webkit-mask: url("images/neagest-module-icons.png") no-repeat 0 center / 500% auto; mask: url("images/neagest-module-icons.png") no-repeat 0 center / 500% auto; -webkit-mask-mode: luminance; mask-mode: luminance; }
.module-grid .module-card:nth-child(2)::before { -webkit-mask-position: 25% center; mask-position: 25% center; }
.module-grid .module-card:nth-child(3)::before { -webkit-mask-position: 50% center; mask-position: 50% center; }
.module-grid .module-card:nth-child(4)::before { -webkit-mask-position: 75% center; mask-position: 75% center; }
.module-grid .module-card:nth-child(5)::before, .module-grid .module-card:nth-child(6)::before { -webkit-mask-position: 100% center; mask-position: 100% center; }
.module-grid h3 {
  margin: 6px auto 9px;
  max-width: 170px;
  text-align: center;
  font-size: 14px;
  line-height: 1.15;
  text-transform: uppercase;
}
.module-grid p {
  margin: 0 auto;
  color: var(--muted);
  max-width: 230px;
  text-align: center;
  font-size: 12px;
  line-height: 1.36;
}
.module-grid small {
  margin: 10px auto 0;
  color: var(--accent-light);
  text-align: center;
  font-size: 10px;
}
.module-link { margin: 11px auto 0; color: var(--accent-light); font-size: 11px; font-weight: 700; }
.module-link span { display: inline-block; transition: transform .2s ease; }
.module-card:hover .module-link span, .module-card:focus-visible .module-link span { transform: translateX(4px); }
.tools {
  width: 100%;
  padding: 34px max(38px, calc((100vw - var(--wrap)) / 2)) 40px;
  background: #10161a;
  border-block: 1px solid rgba(104, 190, 232, 0.18);
}
.tools .section-heading,
.tools-grid {
  width: min(100%, var(--wrap));
  margin-inline: auto;
}
.tools-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
.tools-grid article {
  min-height: 267px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--surface);
}
.tools-grid > article > div:first-child {
  padding: 21px 25px 9px;
  max-width: 295px;
}
.tool-name {
  display: inline-block;
  padding: 3px 10px;
  border: 1px solid var(--accent-light);
  border-radius: 4px;
  color: var(--accent-light);
  font-size: 18px;
}
.tools h3 {
  margin: 13px 0 12px;
  font-size: 18px;
  line-height: 1.2;
}
.tools p {
  margin: 0 0 10px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.37;
}
.teo {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 386px !important;
  background:
    linear-gradient(90deg, #101111 0%, rgba(16, 17, 17, 0.96) 42%, rgba(16, 17, 17, 0.38) 69%, rgba(16, 17, 17, 0.1) 100%),
    url("images/neagest-teo-phone.png") center/cover !important;
}
.teo > div:first-child {
  position: relative;
  z-index: 1;
  max-width: 340px !important;
  padding: 29px 37px 18px !important;
}
.teo .tool-name {
  padding: 4px 11px;
  border-color: var(--accent-light);
  border-radius: 7px;
  color: var(--accent-light);
  font-size: 20px;
  line-height: 1;
}
.teo h3 {
  margin: 17px 0 13px;
  font-size: 21px;
  line-height: 1.27;
}
.teo p {
  margin-bottom: 11px;
  color: #d1d6d9;
  font-size: 14px;
  line-height: 1.45;
}
.tools-grid .tool-note {
  margin-top: auto;
  padding: 12px 25px;
  border-top: 1px solid rgba(33, 152, 214, 0.45);
  color: var(--accent-light);
  font-size: 11px;
}
.tools-grid .teo .tool-note {
  position: relative;
  z-index: 1;
  margin-bottom: 0;
  padding: 16px 37px 17px;
  border-top-color: rgba(104, 190, 232, 0.55);
  background: rgba(13, 15, 15, 0.9);
  color: var(--accent-light);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.45;
}
.nina {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(235px, 0.82fr);
  align-items: start;
  min-height: 386px !important;
  padding: 0 17px 0 0;
  background:
    radial-gradient(circle at 67% 38%, rgba(33, 152, 214, 0.09), transparent 35%),
    linear-gradient(135deg, #151615 0%, #0d0f0f 100%) !important;
}
.nina--chart-only {
  display: flex;
  min-height: 280px !important;
  padding: 0;
  align-items: center;
  justify-content: center;
}
.nina--chart-only .chart {
  width: 100%;
  max-width: none;
  min-height: 100%;
  height: 280px;
  margin: 0;
  border: 0;
  border-radius: 0;
}
.tools-grid > article.nina--chart-only > .chart {
  align-self: stretch;
  max-width: none !important;
  padding: 30px 38px 24px !important;
}
.nina > div:first-child {
  max-width: 340px !important;
  padding: 29px 37px 18px !important;
}
.nina .tool-name {
  padding: 4px 11px;
  border-color: var(--accent-light);
  border-radius: 7px;
  color: var(--accent-light);
  font-size: 20px;
  line-height: 1;
}
.nina h3 {
  margin: 17px 0 13px;
  font-size: 21px;
  line-height: 1.27;
}
.nina p {
  margin-bottom: 11px;
  color: #d1d6d9;
  font-size: 14px;
  line-height: 1.45;
}
.nina .chart {
  align-self: center;
  min-height: 234px;
  margin: 0;
  padding: 19px 18px 15px;
  border: 1px solid rgba(104, 190, 232, 0.23);
  border-radius: 9px;
  background:
    linear-gradient(rgba(104, 190, 232, 0.07) 1px, transparent 1px) 0 56px / 100% 32px,
    linear-gradient(90deg, rgba(104, 190, 232, 0.06) 1px, transparent 1px) 0 56px / 46px 100%,
    rgba(9, 11, 11, 0.84);
  box-shadow: inset 0 0 26px rgba(0, 0, 0, 0.28);
}
.nina .chart > p {
  margin: 0;
  color: #f2f5f6;
  font-size: 14px;
  font-weight: bold;
}
.nina .chart small {
  display: block;
  margin-top: 3px;
  color: #a9b5bb;
  font-size: 10px;
  font-weight: 400;
}
.nina .chart svg {
  width: 100%;
  height: 76px;
  margin: 7px 0 2px;
  color: var(--accent);
  fill: none;
  stroke: currentColor;
  stroke-width: 2.4;
  filter: drop-shadow(0 0 4px rgba(33, 152, 214, 0.42));
}
.nina .chart > div {
  display: flex;
  gap: 0;
  margin: 3px -18px -15px;
  border-top: 1px solid rgba(104, 190, 232, 0.18);
  padding: 11px 18px 13px;
}
.nina .chart span {
  flex: 1;
  color: #bac4c8;
  font-size: 10px;
  line-height: 1.25;
}
.nina .chart span + span {
  padding-left: 17px;
  border-left: 1px solid rgba(104, 190, 232, 0.18);
}
.nina .chart b {
  display: block;
  margin-top: 5px;
  color: var(--accent-light);
  font-size: 23px;
  font-weight: 500;
}
.proof {
  width: 100%;
  grid-template-columns: 1fr 1fr;
  padding: 31px max(38px, calc((100vw - var(--wrap)) / 2));
  border-block: 1px solid rgba(104, 190, 232, 0.18);
  background: #0b0c0b;
}
.proof article {
  align-items: flex-start;
  max-width: 560px;
  padding: 0 44px;
}
.proof article:nth-child(2) {
  justify-self: end;
}
.proof-icon {
  display: block;
  width: 64px;
  height: 64px;
  flex: 0 0 64px;
  margin-top: 1px;
  background: var(--accent);
  -webkit-mask: url("images/neagest-proof-icons.png") no-repeat 0 center / 200% auto;
  mask: url("images/neagest-proof-icons.png") no-repeat 0 center / 200% auto;
  -webkit-mask-mode: luminance;
  mask-mode: luminance;
}
.proof-icon--handshake {
  -webkit-mask-position: 100% center;
  mask-position: 100% center;
}
.proof h2 {
  font-size: 14px;
}
.proof p {
  max-width: 400px;
  font-size: 16px;
  line-height: 1.42;
}
.cta {
  padding: 29px 20px 42px;
  border-top: 1px solid rgba(104, 190, 232, 0.18);
  background: #10161a;
  text-align: center;
}
.cta h2 {
  margin: 0;
  font-size: 25px;
  letter-spacing: -0.03em;
}
.cta p {
  margin: 3px 0 17px;
  color: var(--muted);
  font-size: 14px;
}
.cta div {
  display: flex;
  justify-content: center;
  gap: 12px;
}
.cta .button,
.cta .outline-button {
  min-width: 210px;
}
.cta-form {
  display: grid;
  max-width: 840px;
  margin: 24px auto 0;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  text-align: left;
}
.cta-form label {
  display: grid;
  gap: 6px;
  color: var(--accent-light);
  font-size: 12px;
  font-weight: 700;
}
.cta-form input,
.cta-form textarea {
  width: 100%;
  min-height: 46px;
  padding: 11px 13px;
  border: 1px solid rgba(104, 190, 232, 0.46);
  border-radius: 4px;
  background: rgba(9, 9, 9, 0.62);
  color: var(--text);
  font: inherit;
  resize: vertical;
}
.cta-form textarea { min-height: 72px; }
.cta-form input:focus,
.cta-form textarea:focus { outline: 2px solid var(--accent-light); outline-offset: 2px; }
.cta-form__message { grid-column: 1 / -1; }
.cta-form .button { justify-self: center; min-width: 210px; border: 0; }
.site-footer {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 20px max(38px, calc((100vw - var(--wrap)) / 2));
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 11px;
}
.site-footer p {
  margin: 0;
}
.mobile-actions {
  display: none;
}
a:focus-visible {
  outline: 2px solid var(--accent-light);
  outline-offset: 3px;
}
@media (max-width: 800px) {
  body {
    padding-bottom: 64px;
  }
  .site-header {
    height: 66px;
    padding: 0 16px;
    gap: 15px;
  }
  .brand {
    width: 108px;
  }
  .site-nav {
    display: none;
  }
  .phone-link {
    font-size: 14px;
  }
  .phone-link svg {
    width: 18px;
  }
  .hero {
    min-height: 590px;
    align-items: flex-start;
    background:
      linear-gradient(
        180deg,
        rgba(9, 9, 9, 0.92) 0%,
        rgba(9, 9, 9, 0.72) 51%,
        rgba(9, 9, 9, 0.2) 100%
      ),
      url("images/sport.jpg") right bottom / 92% auto no-repeat;
  }
  .hero-content {
    width: calc(100% - 32px);
    max-width: calc(100% - 32px);
    min-width: 0;
    padding-top: 64px;
  }
  .hero h1 {
    font-size: clamp(29px, 8vw, 38px);
  }
  .hero-copy {
    font-size: 16px;
    overflow-wrap: anywhere;
  }
  .hero-actions {
    align-items: flex-start;
    flex-direction: column;
    gap: 15px;
  }
  .trust-bar,
  .proof,
  .modules,
  .tools {
    width: calc(100% - 32px);
  }
  .trust-bar {
    grid-template-columns: 1fr 1fr;
    gap: 24px 8px;
    padding: 25px 16px;
  }
  .trust-bar article {
    padding: 0 !important;
    gap: 11px;
  }
  .trust-icon {
    width: 27px;
    height: 27px;
  }
  .icon {
    font-size: 28px;
  }
  .trust-bar h2 {
    font-size: 10px;
  }
  .trust-bar p {
    font-size: 12px;
  }
  .modules {
    padding-top: 35px;
  }
  .section-heading h2 {
    font-size: 24px;
  }
  .module-grid {
    grid-template-columns: 1fr 1fr;
    gap: 9px;
  }
  .module-grid .module-card {
    min-height: 236px;
    padding: 11px 9px;
  }
  .module-icon {
    height: 47px;
    font-size: 43px;
  }
  .module-grid h3 {
    font-size: 12px;
  }
  .module-grid p {
    font-size: 11px;
  }
  .tools-grid {
    grid-template-columns: 1fr;
  }
  .tools {
    width: 100%;
    padding: 35px 16px 40px;
  }
  .tools-grid article {
    min-height: 255px;
  }
  .teo {
    min-height: 438px !important;
    background:
      linear-gradient(180deg, #101111 0%, rgba(16, 17, 17, 0.97) 39%, rgba(16, 17, 17, 0.42) 72%, rgba(16, 17, 17, 0.16) 100%),
      url("images/neagest-teo-phone.png") center/cover !important;
  }
  .teo > div:first-child {
    max-width: none !important;
    padding: 26px 24px 16px !important;
  }
  .teo h3 {
    font-size: 20px;
  }
  .teo p {
    font-size: 16px;
    line-height: 1.4;
  }
  .tools-grid .teo .tool-note {
    padding: 15px 24px 16px;
    font-size: 14px;
  }
  .nina {
    grid-template-columns: 1fr;
    min-height: 0 !important;
    padding: 0;
  }
  .nina > div:first-child {
    max-width: none !important;
    padding: 26px 24px 16px !important;
  }
  .nina h3 {
    font-size: 20px;
  }
  .nina p {
    font-size: 16px;
    line-height: 1.4;
  }
  .nina .chart {
    min-height: 250px;
    margin: 0 24px 24px;
  }
  .proof {
    grid-template-columns: 1fr;
    gap: 23px;
    width: 100%;
    padding: 28px 16px;
  }
  .proof article {
    padding: 0;
  }
  .proof article:nth-child(2) {
    justify-self: stretch;
  }
  .proof-icon {
    width: 52px;
    height: 52px;
    flex-basis: 52px;
  }
  .proof h2 {
    font-size: 13px;
  }
  .proof p {
    font-size: 14px;
  }
  .cta {
    padding: 35px 16px;
  }
  .cta h2 {
    font-size: 25px;
  }
  .cta div {
    flex-direction: column;
    align-items: stretch;
  }
  .cta .button,
  .cta .outline-button {
    width: 100%;
  }
  .cta-form { grid-template-columns: 1fr; }
  .cta-form__message { grid-column: auto; }
  .cta-form .button { width: 100%; }
  .site-footer {
    padding: 20px 16px;
    flex-direction: column;
  }
  .mobile-actions {
    position: fixed;
    z-index: 10;
    right: 6px;
    bottom: 6px;
    left: 6px;
    height: 50px;
    display: grid;
    grid-template-columns: 1fr 1.28fr;
    overflow: hidden;
    border-radius: 6px;
    background: var(--accent);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.38);
  }
  .mobile-actions a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    text-transform: uppercase;
  }
  .mobile-actions a:first-child {
    border-right: 1px solid rgba(255, 255, 255, 0.4);
  }
}
@media (max-width: 420px) {
  .hero h1 {
    font-size: 34px;
  }
  .module-grid {
    grid-template-columns: 1fr;
  }
  .module-grid .module-card {
    min-height: 205px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  .cursor-light {
    display: none;
  }
  .button,
  .outline-button {
    transition: none;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .module-grid .module-card { animation: module-drift-one 6s ease-in-out infinite; }
  .module-grid .module-card:nth-child(2) { animation-name: module-drift-two; animation-delay: -.9s; }
  .module-grid .module-card:nth-child(3) { animation-name: module-drift-three; animation-delay: -1.8s; }
  .module-grid .module-card:nth-child(4) { animation-name: module-drift-two; animation-delay: -2.7s; }
  .module-grid .module-card:nth-child(5) { animation-name: module-drift-three; animation-delay: -3.6s; }
  .module-grid .module-card:nth-child(6) { animation-name: module-drift-one; animation-delay: -4.5s; }
  .hero-content > * {
    animation: hero-reveal 700ms cubic-bezier(0.16, 1, 0.3, 1) both;
  }
  .hero-content > :nth-child(1) { animation-delay: 80ms; }
  .hero-content > :nth-child(2) { animation-delay: 150ms; }
  .hero-content > :nth-child(3) { animation-delay: 230ms; }
  .hero-content > :nth-child(4) { animation-delay: 310ms; }
  .has-motion .scroll-reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 600ms ease, transform 600ms cubic-bezier(0.16, 1, 0.3, 1);
  }
  .has-motion .scroll-reveal.is-visible { opacity: 1; transform: translateY(0); }
  .has-motion .stagger-item {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 480ms ease var(--reveal-delay, 0ms), transform 480ms cubic-bezier(0.16, 1, 0.3, 1) var(--reveal-delay, 0ms);
  }
  .has-motion .is-visible .stagger-item { opacity: 1; transform: translateY(0); }
  .has-motion .trust-bar .stagger-item {
    opacity: 0;
    filter: blur(4px);
    transform: translate3d(-40px, 0, 0);
    transition:
      opacity 820ms ease calc(var(--reveal-delay, 0ms) + 320ms),
      filter 820ms ease calc(var(--reveal-delay, 0ms) + 320ms),
      transform 980ms cubic-bezier(0.16, 1, 0.3, 1) calc(var(--reveal-delay, 0ms) + 320ms);
  }
  .has-motion .trust-bar .stagger-item:nth-child(even) {
    transform: translate3d(40px, 0, 0);
  }
  .has-motion .trust-bar.is-visible .stagger-item {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0, 0, 0);
  }
}

@keyframes module-drift-one { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
@keyframes module-drift-two { 0%, 100% { transform: translateY(-5px); } 50% { transform: translateY(5px); } }
@keyframes module-drift-three { 0%, 100% { transform: translateY(3px); } 50% { transform: translateY(-5px); } }

@keyframes hero-reveal {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Scala tipografica delle sezioni di contenuto: l'hero resta invariato. */
.trust-bar h2 {
  font-size: 12px;
}
.trust-bar p {
  font-size: 14px;
}
.section-heading h2 {
  font-size: 30px;
}
.section-heading p {
  font-size: 16px;
}
.module-grid h3 {
  font-size: 15px;
}
.module-grid p {
  font-size: 13px;
}
.module-grid small {
  font-size: 11px;
}
.teo h3,
.nina h3 {
  font-size: 22px;
}
.teo p,
.nina p {
  font-size: 15px;
}
.tools-grid .teo .tool-note {
  font-size: 14px;
}
.proof h2 {
  font-size: 15px;
}
.proof p {
  font-size: 17px;
}
.cta h2 {
  font-size: 28px;
}
.cta p {
  font-size: 16px;
}

@media (max-width: 800px) {
  .nina--chart-only {
    min-height: 280px !important;
    padding: 0;
  }
  .nina--chart-only .chart {
    min-height: 280px;
    height: 280px;
    margin: 0;
  }
  .nina-highlight {
    padding: 0 0 64px;
  }
  .nina-highlight-card {
    min-height: 520px;
    background:
      linear-gradient(180deg, #101111 0%, rgba(16, 17, 17, 0.96) 39%, rgba(16, 17, 17, 0.48) 72%, rgba(16, 17, 17, 0.16) 100%),
      url("images/dettagli/nea-avatar.png") center 38% / cover no-repeat;
  }
  .nina-highlight-card > div {
    max-width: none;
    padding: 112px 24px 22px;
  }
  .nina-highlight-card p {
    font-size: 15px;
  }
  .nina-highlight-card .nina-highlight-note {
    padding: 15px 24px max(17px, env(safe-area-inset-bottom));
    font-size: 13px;
  }
  .problems {
    padding: 64px 24px;
  }
  .problems-heading {
    display: block;
    margin-bottom: 34px;
  }
  .problems-heading .eyebrow {
    margin-bottom: 17px;
  }
  .problems-heading > p:last-child {
    margin-top: 21px;
    font-size: 15px;
  }
  .problems-grid {
    grid-template-columns: 1fr;
  }
  .problems-grid article,
  .problems-grid article:first-child,
  .problems-grid article:last-child {
    min-height: 0;
    padding: 25px 0;
    border-right: 0;
    border-bottom: 1px solid var(--line);
    min-width: 0;
  }
  .problems-grid article:last-child {
    border-bottom: 0;
  }
  .problems-grid blockquote {
    margin: 16px 0;
    max-width: 100%;
    font-size: 26px;
    overflow-wrap: anywhere;
  }
  .trust-bar h2 {
    font-size: 11px;
  }
  .trust-bar p {
    font-size: 13px;
  }
  .section-heading h2 {
    font-size: 26px;
  }
  .section-heading p {
    font-size: 15px;
  }
  .module-grid h3 {
    font-size: 13px;
  }
  .module-grid p {
    font-size: 12px;
  }
  .module-grid small {
    font-size: 10px;
  }
  .proof h2 {
    font-size: 14px;
  }
  .proof p {
    font-size: 15px;
  }
  .cta h2 {
    font-size: 27px;
  }
  .cta p {
    font-size: 16px;
  }
}

.site-footer{display:grid;grid-template-columns:minmax(130px,.65fr) minmax(280px,1.4fr) minmax(185px,1fr);align-items:start;gap:36px;padding:46px max(24px,calc((100vw - 960px)/2));border-top:1px solid var(--line);background:#080909;color:var(--muted);font-size:12px;line-height:1.55}.footer-brand{display:block;width:176px;line-height:0}.footer-brand img{width:100%;height:auto}.footer-company-info p{margin:0 0 5px}.footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:7px}.footer-links span{margin-bottom:5px;color:var(--text)}.footer-links a{color:var(--muted);text-decoration:none}.footer-links a:hover{text-decoration:underline;color:var(--text)}.footer-address{margin:4px 0 0!important}.footer-address strong{color:var(--text)}@media(max-width:700px){.site-footer{grid-template-columns:1fr;gap:25px;padding:34px 16px}.footer-links{gap:9px}}
/* Variante Sport e Benessere: stessa composizione di Ristorazione, con accento viola. */
:root {
  --bg: #020b19;
  --surface: #020b19;
  --accent: #7da834;
  --accent-light: #7da834;
  --line: rgba(125, 168, 52, 0.26);
}
body,
.site-header,
.problems,
.nina-highlight,
.modules,
.tools,
.proof,
.cta,
.site-footer { background: var(--bg); }
.brand { width: 190px; }
.cursor-light-core { background: radial-gradient(circle, rgba(125, 168, 52, 0.28), rgba(125, 168, 52, 0) 67%); }
.hero {
  min-height: 430px;
  background:
    linear-gradient(90deg, #020b19 0%, rgba(2, 11, 25, .98) 31%, rgba(2, 11, 25, .61) 54%, rgba(2, 11, 25, .1) 100%),
    url("images/sport.jpg") right center / 68% auto no-repeat;
}
.hero .button,
.button,
.mobile-actions { background: var(--accent); border-color: var(--accent); }
.hero .button:hover,
.button:hover { background: #93be47; color: #fff; }
.outline-button { border-color: var(--accent); }
.outline-button:hover { background: var(--accent); color: #fff; }
.problems { padding-top: 32px; padding-bottom: 32px; }
.problems-grid article { min-height: 178px; }
.problems-heading .eyebrow { color: var(--accent-light) !important; }
.problems-grid span { color: var(--accent-light); }

.nina-highlight { padding: 16px 0 20px; }
.nina-highlight-card {
  width: min(100% - 76px, var(--wrap));
  height: 350px;
  min-height: 0;
  margin: auto;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(340px, .92fr);
  overflow: hidden;
  border: 1px solid var(--accent);
  border-radius: 8px;
  background: var(--bg);
  box-shadow: inset 0 1px 0 rgba(125, 168, 52, .3), 0 14px 30px rgba(0, 0, 0, .22);
}
.nina-highlight-card > * { min-width: 0; }
.nina-highlight-copy { position: relative; z-index: 1; max-width: 590px; padding: 26px 40px; align-self: center; }
.nina-highlight-card .tool-name { color: var(--accent-light); border-color: var(--accent); }
.nina-highlight-card h2 { margin: 18px 0 14px; font-size: clamp(26px, 2.7vw, 38px); letter-spacing: -.045em; line-height: 1.08; }
.nina-highlight-card p { color: #d9d4e0; }
.nina-highlight-visual { position: relative; height: 350px; min-height: 0; margin: 0; overflow: hidden; }
.nina-highlight-visual::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(2, 11, 25, .32), transparent 34%); content: ""; pointer-events: none; }
.nina-highlight-visual > img { position: absolute; bottom: -80px; left: 29%; display: block; width: auto; max-width: none; height: 480px; object-fit: contain; object-position: center bottom; transform: translateX(-50%); }
.nina-chat-preview { position: absolute; z-index: 1; right: 22px; bottom: 22px; width: min(278px, calc(100% - 34px)); margin: 0; padding: 17px; border: 1px solid rgba(255,255,255,.16); border-radius: 15px; background: rgba(2,11,25,.94); box-shadow: 0 14px 30px rgba(0,0,0,.28); }
.nina-chat-preview__eyebrow { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0 0 6px!important; color:#b7b1c1!important; font-size:9px!important; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.nina-chat-preview__eyebrow span { padding:4px 7px; border:1px solid rgba(157, 210, 172, .48); border-radius:999px; color:#a9e2b6; font-size:8px; letter-spacing:0; text-transform:lowercase; }
.nina-chat-preview h3 { margin:0 0 7px; color:#fff; font-size:20px; line-height:1.1; }
.nina-highlight-card .nina-chat-preview > p:not(.nina-chat-preview__eyebrow):not(.nina-chat-preview__input) { margin-bottom:12px; color:#d9d4e0; font-size:12px; line-height:1.35; }
.nina-chat-preview ul { display:grid; gap:6px; margin:0; padding:0; list-style:none; }
.nina-chat-preview li { padding:8px 9px; border:1px solid rgba(255,255,255,.1); border-radius:7px; color:#f2eef7; font-size:11px; line-height:1.25; }
.nina-chat-preview__input { display:flex; justify-content:space-between; align-items:center; margin:10px 0 0!important; padding:10px; border:1px solid rgba(255,255,255,.12); border-radius:7px; color:#aaa4b0!important; font-size:10px!important; }
.nina-chat-preview__input span { display:grid; place-items:center; width:26px; height:22px; margin:-6px -6px -6px 0; border-radius:4px; background:var(--accent); color:#fff; font-size:15px; }
.nina-chat-messages { display:grid; gap:8px; min-height:100px; margin:8px 0 10px; transition:opacity .18s ease, transform .18s ease; }
.nina-chat-messages.is-changing { opacity:0; transform:translateY(6px); }
.nina-highlight-card .nina-chat-preview .nina-message { width:fit-content; max-width:92%; margin:0; padding:9px 11px; border-radius:10px; font-size:11px; line-height:1.35; animation:nina-chat-message-in .42s cubic-bezier(.22,1,.36,1) both; }
.nina-highlight-card .nina-chat-preview .nina-message--user { justify-self:end; border-bottom-right-radius:3px; background:var(--accent); color:#fff; }
.nina-highlight-card .nina-chat-preview .nina-message--nina { justify-self:start; border:1px solid rgba(255,255,255,.13); border-bottom-left-radius:3px; background:rgba(255,255,255,.08); color:#edf1f2; animation-delay:.22s; }
.nina-typing { display:inline-flex; align-items:center; gap:3px; min-width:32px; }
.nina-typing i { width:4px; height:4px; border-radius:50%; background:#dfe7e9; animation:nina-typing-dot .8s ease-in-out infinite alternate; }
.nina-typing i:nth-child(2) { animation-delay:.18s; }
.nina-typing i:nth-child(3) { animation-delay:.36s; }
@keyframes nina-chat-message-in { from { opacity:0; transform:translateY(9px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes nina-typing-dot { from { opacity:.35; transform:translateY(0); } to { opacity:1; transform:translateY(-2px); } }
@media (prefers-reduced-motion: reduce) { .nina-chat-messages, .nina-highlight-card .nina-chat-preview .nina-message { transition:none; animation:none; } .nina-typing i { animation:none; } }

.modules { padding-top: 22px; padding-bottom: 36px; }
.modules .module-grid { margin-top: 42px; }
.module-grid .module-card { min-height: 304px; display:flex; flex-direction:column; overflow:hidden; padding:0 0 15px; border-radius:16px; background:var(--bg); }
.module-grid .module-card::before { display: none; }
.module-grid .module-photo { position:relative; display:block; height:126px; overflow:hidden; background:#0b1522; }
.module-grid .module-photo::after { position:absolute; inset:0; background:linear-gradient(180deg, transparent 48%, rgba(2,11,25,.74)); content:""; }
.module-grid .module-photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .35s ease; }
.module-grid .module-card:hover { border-color:var(--accent); box-shadow:0 0 0 1px rgba(69,38,106,.24), 0 24px 45px rgba(69,38,106,.2); }
.module-grid .module-card:hover .module-photo img, .module-grid .module-card:focus-visible .module-photo img { transform:scale(1.06); }
.module-grid h3 { margin:17px 16px 8px; max-width:none; text-align:left; }
.module-grid p { margin:0 16px; max-width:none; text-align:left; }
.module-link { margin:auto 16px 0; padding-top:11px; color:var(--accent-light); }
.tools { width:100%; padding:24px max(38px, calc((100vw - var(--wrap)) / 2)); border-block-color:rgba(196,178,222,.18); }
.tools-grid article { background:var(--bg); }
.proof { padding-block:31px; border-block-color:rgba(196,178,222,.18); }
.proof-icon { background:var(--accent); }
.cta { border-top-color:rgba(196,178,222,.18); }
.cta-form label { color:#fff; }
.cta-form input, .cta-form textarea { border-color:#fff; background:rgba(2,11,25,.62); color:#fff; }
.cta-form input:focus, .cta-form textarea:focus { outline-color:var(--accent-light); }

@media (max-width: 800px) {
  .brand { width: 155px; }
  .hero { min-height:590px; background:linear-gradient(180deg, rgba(2,11,25,.92) 0%, rgba(2,11,25,.72) 51%, rgba(2,11,25,.2) 100%), url("images/sport.jpg") right bottom / 92% auto no-repeat; }
  .problems { padding:32px 24px; }
  .nina-highlight { padding:16px 0 20px; }
  .nina-highlight-card { width:calc(100% - 32px); height:auto; min-height:580px; grid-template-columns:1fr; }
  .nina-highlight-copy { padding:28px 24px 0; }
  .nina-highlight-visual { display:grid; height:350px; grid-template-columns:minmax(0,.35fr) minmax(0,.65fr); align-items:center; gap:10px; padding:16px 12px; }
  .nina-highlight-visual > img { position:relative; bottom:auto; left:auto; width:100%; height:318px; transform:none; }
  .nina-chat-preview { position:relative; right:auto; bottom:auto; width:100%; align-self:center; }
  .module-grid .module-card { min-height:278px; padding-bottom:12px; }
  .module-grid .module-photo { height:104px; }
  .module-grid h3 { margin:13px 12px 7px; }
  .module-grid p, .module-link { margin-right:12px; margin-left:12px; }
}

@media (max-width: 800px) {
  .hero {
    min-height: 0;
    flex-direction: column;
    align-items: stretch;
    background: #020b19;
  }
  .hero-content {
    width: calc(100% - 32px);
    max-width: calc(100% - 32px);
    margin: 0 auto;
    padding: 48px 0 34px;
  }
  .hero::after {
    display: block;
    width: 100%;
    flex: 0 0 auto;
    aspect-ratio: 16 / 10;
    background: url("images/sport.jpg") center / cover no-repeat;
    content: "";
  }
}

/* Il Problema: variante a fumetti della pagina Ristorazione. */
.problems {
  padding: 32px max(38px, calc((100vw - var(--wrap)) / 2));
}
.problems-heading { margin-bottom: 24px; }
.problems-grid {
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  border-top: 0;
}
.problems-grid article,
.problems-grid article:first-child,
.problems-grid article:last-child {
  min-height: 0;
  min-width: 0;
  padding: 0;
  border: 0;
}
.problems-grid blockquote {
  position: relative;
  min-height: 112px;
  margin: 0;
  padding: 16px;
  border: 1px solid var(--accent);
  border-radius: 22px;
  background: var(--bg);
  font-size: clamp(16px, 1.5vw, 20px);
  font-style: italic;
  letter-spacing: -.035em;
  line-height: 1.25;
}
.problems-grid blockquote::after {
  position: absolute;
  bottom: -9px;
  left: 28px;
  width: 17px;
  height: 17px;
  border-right: 1px solid var(--accent);
  border-bottom: 1px solid var(--accent);
  background: var(--bg);
  content: "";
  transform: rotate(45deg);
}
@media (max-width: 800px) {
  .problems { padding: 32px 24px; }
  .problems-heading { margin-bottom: 24px; }
  .problems-grid { grid-template-columns: 1fr; gap: 16px; }
  .problems-grid article,
  .problems-grid article:first-child,
  .problems-grid article:last-child { padding: 0; border: 0; }
  .problems-grid blockquote { min-height: 0; font-size: 18px; }
}

/* Dimensioni della fascia esperienza allineate a Ristorazione. */
@media (min-width: 801px) {
  .module-grid { grid-template-columns: repeat(4, 1fr); }
  .module-grid .module-card:nth-child(4) { grid-column: auto; }
}
.proof {
  padding: 18px max(38px, calc((100vw - var(--wrap)) / 2));
}
.proof article { padding: 0 24px; }
.proof-icon {
  width: 48px;
  height: 48px;
  flex-basis: 48px;
}
.proof h2 { font-size: 13px; }
.proof p { font-size: 14px; line-height: 1.42; }
.cta-form .button { justify-self: start; }

/* Richiesta demo: struttura condivisa con Ristorazione. */
.demo-request{padding:24px 0;background:var(--bg)}.demo-request__inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.78fr);gap:34px;width:min(100% - 76px,var(--wrap));margin:auto;padding:28px 32px;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--text)}.demo-request__eyebrow{display:flex;align-items:center;gap:17px;margin:0;color:var(--accent-light);font-size:12px;font-weight:700;letter-spacing:.1em}.demo-request__eyebrow span{width:80px;height:1px;background:currentColor}.demo-request__pitch h2{margin:16px 0 13px;font-size:clamp(36px,3.8vw,52px);letter-spacing:-.045em;line-height:.98}.demo-request__pitch h2 em{color:var(--accent-light);font-style:normal}.demo-request__lead{margin:0;color:var(--muted);font-size:15px;line-height:1.42}.demo-request__benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:22px 0 0;padding:0;list-style:none}.demo-request__benefits li{display:grid;gap:5px;color:var(--muted);font-size:12px;line-height:1.32}.demo-request__benefits strong{color:var(--text);font-size:13px}.demo-request__form{align-self:center;padding:24px;border-radius:12px;background:#fff;color:#151513;box-shadow:0 14px 32px rgba(0,0,0,.2)}.demo-request__fields{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}.demo-request__fields label{display:grid;gap:4px;font-size:12px;font-weight:700}.demo-request__fields input,.demo-request__fields textarea{width:100%;min-height:44px;padding:9px 11px;border:1px solid #dddeda;border-radius:11px;background:#fafaf9;color:#171816;font:inherit}.demo-request__fields textarea{min-height:66px;resize:vertical}.demo-request__full{grid-column:1/-1}.demo-request__consent{display:grid;grid-template-columns:22px 1fr;gap:9px;align-items:start;margin:13px 0;font-size:11px;line-height:1.32}.demo-request__consent input{width:22px;height:22px;margin:0;accent-color:var(--accent)}.demo-request__consent a{color:inherit}.demo-request__form button{width:100%;min-height:50px;border:0;border-radius:12px;background:var(--accent);color:#fff;font:700 12px/1 inherit;letter-spacing:.09em;cursor:pointer}.demo-request__form button:hover{filter:brightness(.9)}@media(max-width:800px){.demo-request{padding:30px 0}.demo-request__inner{grid-template-columns:1fr;width:calc(100% - 32px);padding:32px}}@media(max-width:600px){.demo-request{padding:24px 0}.demo-request__inner{padding:28px 18px}.demo-request__pitch h2{font-size:40px}.demo-request__benefits,.demo-request__fields{grid-template-columns:1fr;gap:12px}.demo-request__full{grid-column:auto}.demo-request__form{padding:22px 16px}}
.problems-heading .eyebrow {
  margin-bottom: 0;
  font-size: 20px;
}

/* Il problema: titolo seguito dalle difficoltà quotidiane. */
.problems { padding: 10px 0 18px; background: var(--bg); }
.problems-heading { position: relative; z-index: 1; width: min(100% - 76px, var(--wrap)); margin: 0 auto 25px; }
@media (max-width: 800px) {
  .problems { padding: 10px 0 14px; }
  .problems-heading { width: calc(100% - 32px); margin-bottom: 25px; }
}
@media (max-width: 800px) {
  .proof { padding: 20px 16px; }
  .proof article { padding: 0; }
  .proof-icon { width: 42px; height: 42px; flex-basis: 42px; }
  .proof h2 { font-size: 12px; }
  .proof p { font-size: 13px; }
  .cta-form .button { justify-self: stretch; }
}
.partners-showcase{padding:40px 0 64px;background:var(--bg);color:var(--text)}.partners-showcase__inner{width:min(100% - 76px,var(--wrap));margin:auto;text-align:center}.partners-showcase h2{margin:0 0 28px;font-size:clamp(28px,3.2vw,40px);letter-spacing:-.05em}.partners-showcase__grid{display:grid;grid-template-columns:repeat(3,minmax(0,148px));justify-content:center;gap:14px;margin:0;padding:0;list-style:none}.partners-showcase__grid li{display:grid;aspect-ratio:1;place-items:center;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.035);transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease}.partners-showcase__grid li:hover{border-color:var(--accent-light);box-shadow:0 14px 28px rgba(0,0,0,.2);transform:translateY(-5px)}.partners-showcase__grid img{display:block;max-width:76%;max-height:58%;object-fit:contain}@media(max-width:600px){.partners-showcase{padding:30px 0 46px}.partners-showcase__inner{width:100%}.partners-showcase__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:0 16px}}

.metrics-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: 26px max(38px, calc((100vw - var(--wrap)) / 2));
  border-block: 1px solid var(--line);
  background: #020b19;
}
.metrics-strip article { padding: 0 44px; text-align: center; }
.metrics-strip article + article { border-left: 1px solid var(--line); }
.metrics-strip__value { margin: 0; color: var(--accent); font-size: clamp(42px, 4.2vw, 58px); font-weight: 700; letter-spacing: -.07em; line-height: 1; }
.metrics-strip h2 { margin: 10px 0 0; color: #fff; font-size: clamp(13px, 1.35vw, 16px); font-weight: 500; letter-spacing: 0; line-height: 1.25; text-transform: none; }
@media (max-width: 800px) {
  .metrics-strip { grid-template-columns: 1fr; padding: 10px 16px; }
  .metrics-strip article { padding: 20px 0; }
  .metrics-strip article + article { border-top: 1px solid var(--line); border-left: 0; }
}

/* Card prodotto: immagini e composizione allineate a Ristorazione. */
@media (min-width: 801px) {
  .modules .module-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.module-grid .module-card {
  min-height: 304px;
  overflow: hidden;
  padding: 0 0 15px;
  border-radius: 16px;
  background: var(--bg);
}
.module-grid .module-photo {
  height: 164px;
  background: var(--bg);
}
.module-grid .module-photo img {
  object-fit: contain;
  object-position: center;
}
.module-grid .module-card:hover .module-photo img,
.module-grid .module-card:focus-visible .module-photo img { transform: none; }
.module-grid .module-card:first-child .module-photo::after { display: none; }
.module-grid h3 { margin: 17px 16px 8px; }
.module-grid p { margin: 0 16px; }
.module-link { margin: auto 16px 0; padding-top: 11px; }
@media (max-width: 800px) {
  .module-grid .module-card { min-height: 278px; padding-bottom: 12px; }
  .module-grid .module-photo { height: 136px; }
  .module-grid h3 { margin: 13px 12px 7px; }
  .module-grid p, .module-link { margin-right: 12px; margin-left: 12px; }
}

.demo-request__pitch { align-self: center; }

.problem-messages { position: relative; overflow: hidden; padding: 24px 30px 64px; background: var(--bg); }
.messages-wrapper { display: grid; width: min(100%, var(--wrap)); grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: auto; }
.message-card { position: relative; display: flex; width: 100%; min-height: 110px; align-items: center; padding: 16px; border-radius: 28px; background: linear-gradient(135deg, #7da834 0%, #668d2b 100%); box-shadow: 0 15px 35px rgba(0,0,0,.22), 0 0 30px rgba(125,168,52,.12); color: #fff; opacity: 0; transform: translateY(30px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease; }
.message-card.is-visible { opacity: 1; transform: translateY(0); }
.message-card:hover { transform: translateY(-5px); box-shadow: 0 20px 45px rgba(0,0,0,.3), 0 0 40px rgba(125,168,52,.18); }
.message-card-1, .message-card-2, .message-card-3 { align-self: stretch; margin: 0; }
.message-card-1::before, .message-card-2::before, .message-card-3::before { position: absolute; right: -14px; bottom: 14px; width: 28px; height: 28px; background: #668d2b; clip-path: polygon(0 0, 100% 100%, 0 100%); content: ""; }
.message-card p { position: relative; z-index: 2; margin: 0; color: #fff; font-size: 20px; font-weight: 400; letter-spacing: -.02em; line-height: 1.35; }
@media (max-width: 900px) { .problem-messages { padding: 18px 20px 52px; } .messages-wrapper { grid-template-columns: 1fr; gap: 25px; } .message-card, .message-card-1, .message-card-2, .message-card-3 { max-width: 92%; } .message-card-1, .message-card-3 { justify-self: end; } .message-card-2 { justify-self: start; } .message-card { min-height: 110px; padding: 12px 16px; border-radius: 28px; } .message-card p { font-size: 20px; } }
@media (prefers-reduced-motion: reduce) { .message-card { opacity: 1; transform: none; transition: none; } }

.clients-showcase.partners-showcase {
  padding: 0 0 64px;
  overflow: hidden;
  background: var(--bg);
  color: var(--text);
}
.clients-showcase.partners-showcase .clients-showcase__inner {
  width: 100%;
  max-width: none;
  margin: 0;
  text-align: center;
}
.clients-showcase.partners-showcase h2 {
  margin: 0 0 42px;
  font-size: 30px;
  letter-spacing: -.05em;
}
.clients-showcase.partners-showcase .partners-showcase__grid {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 42px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.clients-showcase.partners-showcase .partners-showcase__grid li {
  display: block;
  aspect-ratio: auto;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.clients-showcase.partners-showcase .partners-showcase__grid img {
  display: block;
  width: 150px;
  height: 82px;
  max-width: none;
  max-height: none;
  object-fit: contain;
}
.clients-showcase.partners-showcase .partners-showcase__grid li:nth-child(1) img { transform: scale(2.2); }
.clients-showcase.partners-showcase .partners-showcase__grid li:nth-child(2) img { transform: scale(1.95); }
.clients-showcase.partners-showcase .partners-showcase__grid li:hover { border-color: transparent; box-shadow: none; transform: none; }
@media (max-width: 600px) {
  .clients-showcase.partners-showcase { padding-bottom: 46px; }
  .clients-showcase.partners-showcase h2 { margin-bottom: 28px; }
  .clients-showcase.partners-showcase .partners-showcase__grid { gap: 22px; padding: 0 16px; }
  .clients-showcase.partners-showcase .partners-showcase__grid img { width: 88px; height: 58px; }
  .clients-showcase.partners-showcase .partners-showcase__grid li:nth-child(1) img { transform: scale(1.83); }
  .clients-showcase.partners-showcase .partners-showcase__grid li:nth-child(2) img { transform: scale(1.6); }
}
