/* GET Italia – pagina «Siti web immersivi e AI»
   Stili della pagina isolati sotto .imx, così non toccano il resto del sito.
   Font, barra del menu e piè di pagina sono quelli del sito. */
.imx{--site-hdr:85px}

.imx {
  --yellow: #fab90b;
  --navy: #1e2346;
  --light: #f2f3f7;
  --muted: #3b4063;
  --kicker: #4a4f6e;
  --soft: #d5d8e8;
  --dim: #a9aecb;
  --rule: #c9cddc;
  --hair: #dde0ea;
  --line-dark: #3a4070;
  --yellow-hover: #ffc833;
  --navy-hover: #2c3366;
  --link-hover: #3a4180;
  --f-display: "Red Hat Display", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-text: "Red Hat Text", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --gutter: clamp(20px, 5vw, 96px);
  --section: clamp(64px, 9vw, 120px);
  --head-gap: clamp(40px, 5vw, 64px);
  --fs-h2: clamp(32px, 3.8vw, 54px);
  --fs-lead: clamp(18px, 1.5vw, 21px);
  --fs-body: 17px;
}
@media (width<=640px) {
  .imx {
    --fs-body: 16px;
  }
}
.imx *,
.imx *:before,
.imx *:after {
  box-sizing: border-box;
}
html:has(.imx) {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-snap-type: y proximity;
  background: #fff;
  scroll-padding-top: 0;
}
.imx .sec,
.imx #contatti {
  scroll-snap-align: start;
  scroll-margin-top: var(--site-hdr);
}
@media (width<=767px) {
  .imx .sec,
  .imx #contatti {
    scroll-margin-top: var(--site-hdr);
  }
  .imx .pc-card,
  .imx .uc-cell,
  .imx .calc .card,
  .imx .mt__s,
  .imx .fc {
    scroll-snap-align: start;
    scroll-margin-top: 80px;
  }
}
html.rm:has(.imx) {
  scroll-snap-type: none;
}
@media (prefers-reduced-motion: no-preference) {
  html:has(.imx) {
    scroll-behavior: smooth;
  }
}
.imx {
  color: var(--navy);
  font: 400 var(--fs-body) / 1.6 var(--f-text);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizelegibility;
  margin: 0;
}
.imx img,
.imx svg,
.imx canvas {
  max-width: 100%;
  display: block;
}
.imx a {
  color: inherit;
}
.imx h1,
.imx h2,
.imx h3 {
  font-family: var(--f-display);
  margin: 0;
}
.imx p {
  margin: 0;
}
.imx ul,
.imx ol {
  margin: 0;
  padding: 0;
}
.imx button {
  font: inherit;
}
.imx :focus-visible {
  outline: 3px solid var(--yellow);
  outline-offset: 3px;
}
.imx .wrap {
  width: 100%;
  max-width: calc(1248px + 2 * var(--gutter));
  padding: 0 var(--gutter);
  margin: 0 auto;
}
.imx .sec {
  padding: var(--section) 0;
}
.imx .sec--navy {
  background: var(--navy);
  color: #fff;
}
.imx .sec--white {
  background: #fff;
}
.imx .sec--light {
  background: var(--light);
}
.imx .eyebrow {
  font: 400 18px/1.6 var(--f-text);
  color: var(--kicker);
  margin: 0 0 20px;
}
.imx .sec--navy .eyebrow {
  color: var(--yellow);
}
.imx .h2 {
  max-width: 900px;
  font-size: var(--fs-h2);
  letter-spacing: -0.015em;
  font-weight: 900;
  line-height: 1.07;
}
.imx .sec--navy .h2 {
  color: #fff;
}
.imx .lead {
  max-width: 760px;
  font-size: var(--fs-lead);
  color: var(--muted);
  margin-top: 20px;
  line-height: 1.55;
}
.imx .sec--navy .lead {
  color: var(--soft);
}
.imx .note {
  max-width: 760px;
  color: var(--muted);
  margin-top: 20px;
  font-size: 15px;
  line-height: 1.6;
}
@property --hv-x {
  syntax: "<percentage>";
  inherits: false;
  initial-value: -110%;
}
html.fx-blurIn .imx h2[data-fx="blur"] {
  font-kerning: none;
  font-variant-ligatures: none;
}
.imx .bi-w {
  white-space: nowrap;
  display: inline-block;
}
.imx .bi-l {
  display: inline-block;
}
html.fx-blurIn .imx .bi-ready:not(.is-in) .bi-l {
  opacity: 0;
  filter: blur(8px);
}
html.fx-rise .imx .ri-ready {
  transition:
    opacity 0.6s cubic-bezier(0.2, 0.8, 0.2, 1) var(--d, 0s),
    translate 0.6s cubic-bezier(0.2, 0.8, 0.2, 1) var(--d, 0s);
}
html.fx-rise .imx .ri-ready:not(.is-in) {
  opacity: 0;
  translate: 0 32px;
}
.imx :is(#perche, #demo, #metodo, #garanzie, #faq) {
  content-visibility: auto;
}
.imx #perche {
  contain-intrinsic-size: auto 591px;
}
.imx #demo {
  contain-intrinsic-size: auto 677px;
}
.imx #garanzie {
  contain-intrinsic-size: auto 629px;
}
.imx #metodo {
  contain-intrinsic-size: auto 622px;
}
.imx #faq {
  contain-intrinsic-size: auto 474px;
}
@media (width>=1100px) and (width<=1399px) {
  .imx #perche {
    contain-intrinsic-size: auto 571px;
  }
  .imx #demo {
    contain-intrinsic-size: auto 670px;
  }
  .imx #garanzie {
    contain-intrinsic-size: auto 558px;
  }
  .imx #metodo {
    contain-intrinsic-size: auto 605px;
  }
  .imx #faq {
    contain-intrinsic-size: auto 410px;
  }
}
@media (width>=1024px) and (width<=1099px) {
  .imx #perche {
    contain-intrinsic-size: auto 688px;
  }
  .imx #demo {
    contain-intrinsic-size: auto 730px;
  }
  .imx #garanzie {
    contain-intrinsic-size: auto 700px;
  }
  .imx #metodo {
    contain-intrinsic-size: auto 649px;
  }
  .imx #faq {
    contain-intrinsic-size: auto 390px;
  }
}
@media (width>=900px) and (width<=1023px) {
  .imx #perche {
    contain-intrinsic-size: auto 680px;
  }
  .imx #demo {
    contain-intrinsic-size: auto 1512px;
  }
  .imx #garanzie {
    contain-intrinsic-size: auto 691px;
  }
  .imx #metodo {
    contain-intrinsic-size: auto 863px;
  }
  .imx #faq {
    contain-intrinsic-size: auto 371px;
  }
}
@media (width>=768px) and (width<=899px) {
  .imx #perche {
    contain-intrinsic-size: auto 1237px;
  }
  .imx #demo {
    contain-intrinsic-size: auto 1502px;
  }
  .imx #garanzie {
    contain-intrinsic-size: auto 703px;
  }
  .imx #metodo {
    contain-intrinsic-size: auto 853px;
  }
  .imx #faq {
    contain-intrinsic-size: auto 380px;
  }
}
@media (width>=600px) and (width<=767px) {
  .imx #perche {
    contain-intrinsic-size: auto 1237px;
  }
  .imx #demo {
    contain-intrinsic-size: auto 1502px;
  }
  .imx #garanzie {
    contain-intrinsic-size: auto 778px;
  }
  .imx #metodo {
    contain-intrinsic-size: auto 901px;
  }
  .imx #faq {
    contain-intrinsic-size: auto 472px;
  }
}
@media (width>=540px) and (width<=599px) {
  .imx #perche {
    contain-intrinsic-size: auto 1289px;
  }
  .imx #demo {
    contain-intrinsic-size: auto 1382px;
  }
  .imx #garanzie {
    contain-intrinsic-size: auto 1215px;
  }
  .imx #metodo {
    contain-intrinsic-size: auto 1503px;
  }
  .imx #faq {
    contain-intrinsic-size: auto 549px;
  }
}
@media (width>=414px) and (width<=539px) {
  .imx #perche {
    contain-intrinsic-size: auto 1406px;
  }
  .imx #demo {
    contain-intrinsic-size: auto 1434px;
  }
  .imx #garanzie {
    contain-intrinsic-size: auto 1239px;
  }
  .imx #metodo {
    contain-intrinsic-size: auto 1503px;
  }
  .imx #faq {
    contain-intrinsic-size: auto 549px;
  }
}
@media (width>=375px) and (width<=413px) {
  .imx #perche {
    contain-intrinsic-size: auto 1506px;
  }
  .imx #demo {
    contain-intrinsic-size: auto 1499px;
  }
  .imx #garanzie {
    contain-intrinsic-size: auto 1315px;
  }
  .imx #metodo {
    contain-intrinsic-size: auto 1565px;
  }
  .imx #faq {
    contain-intrinsic-size: auto 617px;
  }
}
@media (width>=345px) and (width<=374px) {
  .imx #perche {
    contain-intrinsic-size: auto 1534px;
  }
  .imx #demo {
    contain-intrinsic-size: auto 1632px;
  }
  .imx #garanzie {
    contain-intrinsic-size: auto 1363px;
  }
  .imx #metodo {
    contain-intrinsic-size: auto 1695px;
  }
  .imx #faq {
    contain-intrinsic-size: auto 666px;
  }
}
@media (width<=344px) {
  .imx #perche {
    contain-intrinsic-size: auto 1661px;
  }
  .imx #demo {
    contain-intrinsic-size: auto 1656px;
  }
  .imx #garanzie {
    contain-intrinsic-size: auto 1473px;
  }
  .imx #metodo {
    contain-intrinsic-size: auto 1723px;
  }
  .imx #faq {
    contain-intrinsic-size: auto 700px;
  }
}
.imx .cta__act {
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 8px;
  display: flex;
}
@media (width>=900px) {
  .imx .cta__act {
    grid-area: 1/2 / span 2;
    justify-content: flex-end;
    margin: 0;
  }
}
@media (width<=640px) {
  .imx .cta__act {
    flex-direction: column;
    gap: 10px;
  }
}
.imx .hv {
  --hv-t: translate 0.2s cubic-bezier(0.2, 0.8, 0.2, 1), scale 0.2s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.imx :where(.hv) {
  position: relative;
}
:where(html.fx-cardHover) .imx .hv {
  transition: var(--hv-t);
}
:where(html.fx-cardHover) .imx .hv:not(.hv--own):after,
:where(html.fx-cardHover) .imx .hv-glare {
  content: "";
  border-radius: inherit;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s;
  position: absolute;
  inset: 0;
  box-shadow: 0 22px 40px -22px #0b0e2466;
}
@media (hover: hover) and (pointer: fine) {
  :where(html.fx-cardHover) .imx .hv:hover {
    translate: 0 calc(-1 * var(--hv-lift, 7px));
  }
  :where(html.fx-cardHover) .imx .hv:hover:after,
  :where(html.fx-cardHover) .imx .hv:hover .hv-glare {
    opacity: 1;
  }
}
:where(html.fx-cardHover) .imx .hv:active {
  transition-duration: 90ms;
  scale: 0.98;
}
.imx .btn {
  isolation: isolate;
  min-height: 48px;
  font: 700 16px/1.2 var(--f-text);
  text-align: center;
  cursor: pointer;
  --hv-line: #ffffff40;
  border: 2px solid #0000;
  border-radius: 4px;
  justify-content: center;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  text-decoration: none;
  transition:
    color 0.16s,
    background-color 0.16s,
    border-color 0.16s cubic-bezier(0.2, 0.8, 0.2, 1);
  display: inline-flex;
  position: relative;
  box-shadow:
    inset 0 1px #ffffff40,
    0 6px 16px -10px #1e234659;
}
html.fx-sheen .imx :is(.btn, .nav-toggle):after {
  content: "";
  z-index: -1;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(
    105deg,
    transparent calc(30% + var(--hv-x)),
    var(--hv-line) calc(48% + var(--hv-x)),
    transparent calc(66% + var(--hv-x))
  );
  transition: --hv-x 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
  position: absolute;
  inset: 0;
}
html.fx-sheen .imx :is(.btn, .nav-toggle):hover:after, html.fx-sheen .imx :is(.btn, .nav-toggle):focus-visible:after {
  --hv-x: 110%;
}
.imx :is(.btn, .nav-toggle, .site-nav__toggle):active {
  transition-duration: 90ms;
  transform: scale(0.97);
}
.imx .btn__arrow {
  transition: translate 0.16s cubic-bezier(0.2, 0.8, 0.2, 1);
  display: inline-block;
}
.imx .btn:hover .btn__arrow,
.imx .btn:focus-visible .btn__arrow {
  translate: 4px;
}
.imx .btn-yellow {
  background: var(--yellow);
  border-color: var(--yellow);
  color: var(--navy);
  --hv-line: #ffffff57;
}
.imx .btn-yellow:hover {
  background: var(--yellow-hover);
  border-color: var(--yellow-hover);
}
.imx .btn-ghost {
  border-color: var(--line-dark);
  color: #fff;
  --hv-line: #ffffff1f;
  background: 0 0;
}
.imx .btn-ghost:hover {
  border-color: var(--yellow);
  color: var(--yellow);
}
.imx .btn-navy {
  background: var(--navy);
  border-color: var(--navy);
  color: #fff;
  --hv-line: #ffffff2e;
}
.imx .btn-navy:hover {
  background: var(--navy-hover);
  border-color: var(--navy-hover);
}
.imx .btn-ghost-navy {
  border-color: var(--navy);
  color: var(--navy);
  --hv-line: #1e234614;
  background: 0 0;
}
.imx .btn-ghost-navy:hover {
  background: var(--navy);
  color: #fff;
  --hv-line: #ffffff2e;
}
.imx .btn-pill {
  border-radius: 999px;
  min-height: 44px;
  padding: 9px 20px;
  font-size: 15px;
}
@media (width<=640px) {
  .imx .cta__act .btn {
    width: 100%;
  }
}
.imx .card {
  --hv-lift: 8px;
  --hv-t: translate 0.2s cubic-bezier(0.2, 0.8, 0.2, 1), scale 0.2s cubic-bezier(0.2, 0.8, 0.2, 1);
  --card-bg: #fff;
  --card-line: #dde0ea;
  --card-fg: var(--navy);
  --card-p: #3b4063;
  --card-pad: 28px;
  color: var(--card-fg);
  background: var(--card-bg);
  border: 1px solid var(--card-line);
  min-width: 0;
  padding: var(--card-pad);
  border-radius: 8px;
  flex-direction: column;
  align-items: flex-start;
  text-decoration: none;
  display: flex;
  position: relative;
}
.imx .sec--navy .card {
  --card-bg: #151935;
  --card-line: #3a4070;
  --card-fg: #fff;
  --card-p: #c9cddc;
}
.imx .card h3 {
  font: 700 22px/1.25 var(--f-display);
  margin: 0;
}
.imx .card p {
  color: var(--card-p);
  margin: 10px 0 0;
  font-size: 15px;
  line-height: 1.6;
}
.imx .card .btn-pill {
  margin-top: 24px;
}
.imx .card .ico {
  margin-bottom: 20px;
}
html.fx-cardHover .imx .card {
  transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
  transition:
    transform 0.25s cubic-bezier(0.2, 0.8, 0.2, 1),
    box-shadow 0.25s,
    var(--hv-t);
}
@media (hover: hover) and (pointer: fine) {
  html.fx-cardHover .imx .card:hover {
    box-shadow: 0 24px 48px -24px #15193573;
  }
}
html.fx-cardHover .imx .card.hv:not(.hv--own):after {
  box-shadow: none;
  z-index: 1;
}
@media (hover: hover) and (pointer: fine) {
  html.fx-cardHover .imx .sec--navy .card:hover,
  html.fx-cardHover .imx .sec--navy .fc:hover :is(.card__f, .card__b) {
    box-shadow: 0 24px 48px -24px #000c;
  }
}
.imx .fc {
  background: 0 0;
  border: 0;
  border-radius: 8px;
  padding: 0;
  display: block;
}
html.fx-cardHover .imx .fc {
  transform-style: preserve-3d;
}
.imx .card__fl {
  transform-style: preserve-3d;
  display: grid;
}
html.fx-cardFlip .imx .card__fl {
  transition: transform 0.8s ease-in-out;
}
.imx .card__f,
.imx .card__b {
  color: var(--card-fg);
  background: var(--card-bg);
  border: 1px solid var(--card-line);
  min-width: 0;
  padding: var(--card-pad);
  z-index: 0;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  border-radius: 8px;
  flex-direction: column;
  grid-area: 1/1;
  align-items: flex-start;
  transition:
    box-shadow 0.25s,
    visibility 0s 0.4s;
  display: flex;
  position: relative;
}
.imx .fc.hv:after {
  content: none;
}
.imx .card__b,
.imx .fc.is-open .card__fl {
  transform: rotateY(180deg);
}
.imx .fc:not(.is-open) .card__b,
.imx .fc.is-open .card__f {
  visibility: hidden;
}
html:not(.fx-cardFlip) .imx :is(.card__f, .card__b) {
  transition: none;
}
@media (hover: hover) and (pointer: fine) {
  html.fx-cardHover .imx .fc:hover :is(.card__f, .card__b) {
    box-shadow: 0 24px 48px -24px #15193573;
  }
  html.fx-cardHover .imx .fc:hover .card__fl > :after {
    opacity: 1;
  }
}
.imx .card__b .btn-pill {
  margin-top: auto;
}
.imx .card__b ul {
  color: var(--card-p);
  gap: 12px;
  margin: 0;
  padding: 0;
  font-size: 15px;
  line-height: 1.5;
  list-style: none;
  display: grid;
}
.imx .card__b li {
  padding-left: 18px;
  position: relative;
}
.imx .card__b li:before {
  content: "";
  background: var(--yellow);
  border-radius: 50%;
  width: 6px;
  height: 6px;
  position: absolute;
  top: 0.55em;
  left: 0;
}
.imx .card__b .card__t {
  font: 700 15px/1.3 var(--f-text);
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--card-p);
  margin: 0 0 16px;
}
.imx .ico {
  --a: var(--yellow);
  width: 56px;
  height: 56px;
  color: var(--navy);
  fill: none;
  stroke: currentColor;
  stroke-width: 2px;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: none;
  display: block;
}
.imx .sec--navy .ico {
  color: #fff;
}
.imx :is(.skip, .site-logo, .site-nav__link):active {
  transition-duration: 90ms;
  scale: 0.97;
}
html.rm .imx :is(.site-header, .nav-toggle) {
  transition: none;
}
.imx .glass-card {
  --px: 28px;
  isolation: isolate;
  color: #fff;
  min-width: 0;
  padding: 52px var(--px) 28px;
  background: linear-gradient(#151935, #1e2346);
  border: 1px solid #3a4070;
  border-radius: 8px;
  flex-direction: column;
  align-items: flex-start;
  display: flex;
  position: relative;
}
.imx .glass-card__n {
  font: 400 12px/1 var(--mono);
  letter-spacing: 0.06em;
  color: #c9cddc;
  top: 20px;
  left: var(--px);
  position: absolute;
}
.imx .glass-card h3 {
  font: 700 22px/1.25 var(--f-display);
  color: #fff;
  margin: 0;
}
.imx .glass-card p {
  color: #c9cddc;
  margin: 12px 0 0;
  font-size: 15px;
  line-height: 1.6;
}
.imx .pc-card {
  --hv-lift: 8px;
  perspective: 1400px;
}
.imx .pc-card,
.imx .fl {
  min-width: 0;
  display: grid;
  position: relative;
}
.imx .fl > .glass-card {
  backface-visibility: hidden;
  grid-area: 1/1;
}
.imx .fl__b {
  visibility: hidden;
}
.imx .pc-card.is-back .fl__b {
  visibility: visible;
}
.imx .pc-card.is-back .fl__f {
  visibility: hidden;
}
.imx .fl {
  transition:
    translate 0.2s cubic-bezier(0.2, 0.8, 0.2, 1),
    rotate 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
}
html.fx-cardFlip .imx .pc-card.is-open .fl {
  transform: rotateY(180deg);
}
html.fx-cardFlip .imx .fl__b {
  transform: scaleX(-1);
}
html.fx-cardFlip .imx .pc-card.is-turning .fl {
  will-change: transform;
  animation: 1s both pc-flip-close;
}
html.fx-cardFlip .imx .pc-card.is-turning[data-turn="open"] .fl {
  animation-name: pc-flip-open;
}
html.fx-cardFlip .imx .pc-card.is-turning .fl__f {
  animation: 1s both pc-flip-show;
}
html.fx-cardFlip .imx .pc-card.is-turning .fl__b,
html.fx-cardFlip .imx .pc-card.is-turning[data-turn="open"] .fl__f {
  animation: 1s both pc-flip-hide;
}
html.fx-cardFlip .imx .pc-card.is-turning[data-turn="open"] .fl__b {
  animation: 1s both pc-flip-show;
}
@keyframes pc-flip-open {
  0% {
    animation-timing-function: cubic-bezier(0.5, 0, 0.75, 0.5);
    transform: translateZ(0) scale(1) rotateX(0) rotateY(0);
  }
  50% {
    animation-timing-function: cubic-bezier(0.35, 0.35, 0.3, 1);
    transform: translateZ(60px) scale(1.04) rotateX(-4deg) rotateY(90deg);
  }
  78% {
    animation-timing-function: cubic-bezier(0.4, 0, 0.3, 1);
    transform: translateZ(10px) scale(1.01) rotateX(-1deg) rotateY(190deg);
  }
  to {
    transform: translateZ(0) scale(1) rotateX(0) rotateY(180deg);
  }
}
@keyframes pc-flip-close {
  0% {
    animation-timing-function: cubic-bezier(0.5, 0, 0.75, 0.5);
    transform: translateZ(0) scale(1) rotateX(0) rotateY(180deg);
  }
  50% {
    animation-timing-function: cubic-bezier(0.35, 0.35, 0.3, 1);
    transform: translateZ(60px) scale(1.04) rotateX(-4deg) rotateY(90deg);
  }
  78% {
    animation-timing-function: cubic-bezier(0.4, 0, 0.3, 1);
    transform: translateZ(10px) scale(1.01) rotateX(-1deg) rotateY(-10deg);
  }
  to {
    transform: translateZ(0) scale(1) rotateX(0) rotateY(0);
  }
}
@keyframes pc-flip-hide {
  0% {
    opacity: 1;
    animation-timing-function: step-end;
  }
  50%,
  to {
    opacity: 0;
  }
}
@keyframes pc-flip-show {
  0% {
    opacity: 0;
    animation-timing-function: step-end;
  }
  50%,
  to {
    opacity: 1;
  }
}
.imx .pc-card:before {
  content: "";
  pointer-events: none;
  opacity: 0;
  transform-origin: 50% 100%;
  z-index: -1;
  background: radial-gradient(#151935a6, #15193500 70%);
  border-radius: 50%;
  position: absolute;
  inset: 60% 4% -12px;
}
html.fx-cardFlip .imx .pc-card.is-turning:before {
  will-change: transform, opacity;
  animation: 1s cubic-bezier(0.4, 0, 0.2, 1) both pc-flip-shadow;
}
@keyframes pc-flip-shadow {
  0%,
  to {
    opacity: 0;
    transform: translateY(0) scale(1);
  }
  50% {
    opacity: 1;
    transform: translateY(14px) scale(1.16, 1.3);
  }
}
.imx .fl__l {
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}
.imx .fl__l li {
  color: #fff;
  font: 500 16px/1.45 var(--f-text);
  padding-left: 20px;
  position: relative;
}
.imx .fl__l li:before {
  content: "";
  background: #fab90b;
  width: 10px;
  height: 2px;
  position: absolute;
  top: 0.68em;
  left: 0;
}
.imx .pc-card.hv:hover {
  translate: none;
}
@media (hover: hover) and (pointer: fine) {
  html.fx-cardHover .imx .pc-card:hover .fl {
    translate: 0 calc(-1 * var(--hv-lift, 7px));
  }
}
.imx .s3d {
  transform-style: preserve-3d;
  position: relative;
}
.imx .s3d.is-tilt,
.imx .s3d.is-float {
  will-change: transform;
}
.imx .s3d__f,
.imx .s3d__k {
  pointer-events: none;
  position: absolute;
}
.imx .s3d__f--t,
.imx .s3d__f--b {
  left: calc(var(--s3d-bw) * -1);
  right: calc(var(--s3d-bw) * -1);
  height: var(--s3d-d);
}
.imx .s3d__f--l,
.imx .s3d__f--r {
  top: calc(var(--s3d-bw) * -1);
  bottom: calc(var(--s3d-bw) * -1);
  width: var(--s3d-d);
}
.imx .s3d__f--t {
  top: calc(var(--s3d-bw) * -1);
  transform-origin: 50% 0;
  background: linear-gradient(var(--s3d-top), var(--s3d-side));
  transform: rotateX(-90deg);
}
.imx .s3d__f--b {
  bottom: calc(var(--s3d-bw) * -1);
  transform-origin: 50% 100%;
  background: linear-gradient(0deg, var(--s3d-side), var(--s3d-side2));
  transform: rotateX(90deg);
}
.imx .s3d__f--l {
  left: calc(var(--s3d-bw) * -1);
  transform-origin: 0;
  background: linear-gradient(90deg, var(--s3d-side), var(--s3d-side2));
  transform: rotateY(90deg);
}
.imx .s3d__f--r {
  right: calc(var(--s3d-bw) * -1);
  transform-origin: 100%;
  background: linear-gradient(270deg, var(--s3d-side), var(--s3d-side2));
  transform: rotateY(-90deg);
}
.imx .s3d__k {
  inset: calc(var(--s3d-bw) * -1);
  border-radius: inherit;
  transform: translateZ(calc(var(--s3d-d) * -1));
  background: var(--s3d-back);
  box-shadow: var(--s3d-shadow, 0 30px 50px -24px #000a);
}
html.fx-cardHover .imx .s3d:active {
  scale: 0.98;
}
.imx .hl {
  color: var(--yellow);
}
.imx .hero {
  --hdr: var(--site-hdr);
  --hh: max(640px, calc(100svh - var(--hdr)));
  --fs: clamp(36px, 4.4vw, 72px);
  --bl: 0.113;
  --cx: 54%;
  --cy: calc(var(--hh) * 0.46);
  --r: calc(var(--hh) * 0.4);
  --rx: min(calc(var(--hh) * 0.58), 44vw);
  --halo-shade: 0 0 2px var(--navy), 0 0 10px var(--navy);
  color: #fff;
  background: var(--navy);
  min-height: var(--hh);
  -webkit-user-select: none;
  user-select: none;
  -webkit-user-drag: none;
  touch-action: pan-y pinch-zoom;
  padding: 0 0 clamp(28px, 3vw, 40px);
  position: relative;
  overflow: clip;
}
html.fx-heroPointer .imx .hero.is-gl {
  cursor: grab;
}
html.fx-heroPointer .imx .hero.is-drag,
html.fx-heroPointer .imx .hero.is-drag * {
  cursor: grabbing;
}
.imx .hero :is(a, button) {
  -webkit-user-drag: none;
}
.imx .hero__fx {
  z-index: 0;
  pointer-events: none;
  position: absolute;
  inset: 0;
}
.imx .hero__fx:before,
.imx .hero__fx:after {
  content: "";
  left: calc(var(--cx) - var(--rx) * 1.4);
  top: calc(var(--cy) - var(--r) * 1.4);
  width: calc(var(--rx) * 2.8);
  height: calc(var(--r) * 2.8);
  -webkit-mask-composite: source-in;
  position: absolute;
  rotate: -12deg;
  scale: 1 0.95;
  mask-composite: intersect;
}
.imx .hero__fx:before {
  background: radial-gradient(
    closest-side,
    #0000 48%,
    #3a40703d 60%,
    #d5d8e830 69%,
    #ffffff2e 71.4%,
    #d5d8e81f 75%,
    #3a40702e 84%,
    #0000 96%
  );
  -webkit-mask-image: linear-gradient(#000 50%, #0000 63%);
  mask-image: linear-gradient(#000 50%, #0000 63%);
}
.imx .hero__fx:after {
  opacity: 0.85;
  background:
    radial-gradient(circle, #fff 0 0.9px, #0000 1.5px) 0 0/23px 29px,
    radial-gradient(circle, #d5d8e8 0 0.8px, #0000 1.4px) 9px 13px/31px 37px,
    radial-gradient(circle, #fff 0 1.2px, #0000 1.8px) 17px 5px/47px 43px,
    radial-gradient(circle, #fab90b 0 1px, #0000 1.6px) 5px 21px/89px 83px,
    radial-gradient(circle, #fff 0 0.7px, #0000 1.2px) 3px 11px/13px 17px,
    radial-gradient(circle, #d5d8e8 0 0.6px, #0000 1.1px) 6px 2px/11px 9px;
  transition: opacity 1.2s;
  -webkit-mask-image: radial-gradient(closest-side, #0000 56%, #000c 66%, #000 71.4%, #0007 79%, #0000 90%),
    linear-gradient(#000 50%, #0000 63%);
  mask-image: radial-gradient(closest-side, #0000 56%, #000c 66%, #000 71.4%, #0007 79%, #0000 90%),
    linear-gradient(#000 50%, #0000 63%);
}
.imx .hero__gl {
  opacity: 0;
  width: 100%;
  max-width: none;
  height: 100%;
  transition: opacity 1.2s;
  position: absolute;
  inset: 0;
}
.imx .hero.is-gl .hero__gl {
  opacity: 1;
}
.imx .hero.is-gl .hero__fx:after {
  opacity: 0;
}
.imx .hero__in {
  z-index: 1;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: calc(var(--hh) * 0.5) auto;
  display: grid;
  position: relative;
}
.imx .hero__eyebrow {
  font: 400 12px/1.5 var(--mono);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #d5d8e8;
  text-shadow: var(--halo-shade);
  grid-area: 1/1;
  align-self: end;
  margin: 0 0 14px;
}
.imx .hero__eyebrow:before {
  content: "[  ";
}
.imx .hero__eyebrow:after {
  content: "  ]";
}
.imx .hero__title {
  font: 900 var(--fs) / 0.95 var(--f-display);
  letter-spacing: -0.02em;
  text-transform: uppercase;
  text-align: left;
  grid-area: 2/1;
  align-self: start;
  margin: 0;
}
.imx .hero__ln {
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  -webkit-text-fill-color: transparent;
  background: linear-gradient(90deg, #fff, #d5d8e8 60%, #fff);
  -webkit-background-clip: text;
  background-clip: text;
}
.imx .hero__ln .hl {
  color: #fab90b;
  -webkit-text-fill-color: #fab90b;
}
.imx .hero__side {
  max-width: 440px;
  margin-top: 32px;
}
.imx .hero__lead {
  color: #d5d8e8;
  max-width: 380px;
  text-shadow: var(--halo-shade);
  margin: 0;
  font-size: 17px;
  line-height: 1.6;
}
.imx .hero__actions {
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
  display: flex;
}
.imx .hero__actions .btn {
  min-height: 52px;
}
.imx .hero__proof {
  color: #d5d8e8;
  text-shadow: var(--halo-shade);
  flex-wrap: wrap;
  gap: 6px 18px;
  margin: 16px 0 0;
  padding: 0;
  font-size: 15px;
  line-height: 1.5;
  list-style: none;
  display: flex;
}
@media (width<=767px) {
  .imx .hero {
    --hdr: var(--site-hdr);
    --cx: 50%;
  }
  .imx .hero__actions .btn {
    flex: 100%;
  }
}
@media (width>=1024px) {
  .imx .hero {
    height: var(--hh);
    padding: 0;
  }
  .imx .hero__in {
    grid-template-columns: 62% minmax(0, 1fr);
    grid-template-rows: calc(var(--hh) * 0.5) auto 1fr auto;
    column-gap: 32px;
    height: 100%;
  }
  .imx .hero__side {
    width: 100%;
    margin: 0 0 calc(var(--fs) * var(--bl)) 0;
    grid-area: 1/2/3/3;
    place-self: end;
  }
  .imx .hero__actions {
    flex-wrap: nowrap;
  }
  .imx .hero__actions .btn {
    padding-inline: 22px;
  }
}
@media (width>=1024px) and (width<1400px) {
  .imx .hero__actions {
    flex-direction: column;
    align-items: flex-start;
  }
}
@media (width>=860px) {
  .imx #perche {
    padding: 56px 0 48px;
  }
}
.imx #perche .pc-grid {
  gap: 16px;
  margin: 32px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
}
.imx #perche .glass-card {
  background: radial-gradient(90% 60% at 30% 0, #3a407080, #0000),
    linear-gradient(165deg, #232850, #151935 75%);
  padding-top: 48px;
  padding-bottom: 24px;
  box-shadow:
    inset 0 1px #ffffff2e,
    0 24px 48px -24px #15193573;
}
.imx #perche .pc-ico {
  filter: drop-shadow(0 14px 10px #fab90b38);
  width: 88px;
  height: 88px;
  margin: -8px 0 12px -6px;
  display: block;
}
.imx #perche .pc-ico svg {
  height: 100%;
  transition: transform 0.5s;
}
html.fx-cardHover .imx #perche .pc-ico {
  animation:
    4s ease-in-out infinite alternate pc-x,
    4s ease-in-out -2s infinite alternate pc-y;
}
.imx #perche .pc-card:nth-child(2) .pc-ico {
  animation-delay:
    -3s,
    -5s;
}
.imx #perche .pc-card:nth-child(3) .pc-ico {
  animation-delay:
    -6s,
    -8s;
}
@keyframes pc-x {
  0% {
    translate: -6px;
    rotate: -8deg;
  }
  to {
    translate: 6px;
    rotate: 8deg;
  }
}
@keyframes pc-y {
  0% {
    transform: translateY(-6px);
  }
  to {
    transform: translateY(6px);
  }
}
html.fx-cardHover .imx #perche .hv-glare {
  box-shadow: 0 24px 48px -20px #000c;
}
@media (width>=1200px) {
  .imx #perche .pc-ico {
    width: 104px;
    height: 104px;
    margin: 0;
    position: absolute;
    top: 8px;
    right: 14px;
  }
  .imx #perche h3 {
    padding-right: 100px;
  }
}
.imx #perche h3 {
  min-height: 2.5em;
}
.imx #perche .fl__f p {
  margin-bottom: 20px;
}
.imx #perche .glass-card .btn {
  margin-top: auto;
}
.imx #perche .fl__b {
  padding-top: 52px;
}
.imx #perche .fl__l {
  margin-bottom: 24px;
}
@media (width>=860px) {
  .imx #perche .pc-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (width<860px) {
  .imx #perche h3 {
    min-height: 0;
  }
}
html.fx-rise .imx #perche .pc-card {
  opacity: 0;
  transform: translateY(40px);
}
html.fx-rise .imx #perche .is-in .pc-card {
  opacity: 1;
  transition:
    opacity 0.6s ease-out,
    transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1),
    translate 0.24s cubic-bezier(0.2, 0.8, 0.2, 1),
    scale 0.12s;
  transform: none;
}
html.fx-rise .imx #perche .is-in .pc-card:nth-child(2) {
  transition-delay: 0.12s, 0.12s, 0s, 0s;
}
html.fx-rise .imx #perche .is-in .pc-card:nth-child(3) {
  transition-delay: 0.24s, 0.24s, 0s, 0s;
}
.imx #perche .is-skip .pc-card {
  transition: none !important;
}
.imx #soluzioni {
  padding: 64px 0 48px;
}
@media (width>=768px) {
  .imx #soluzioni {
    min-height: clamp(560px, 100svh - var(--site-hdr), 1100px);
  }
}
.imx #soluzioni .h2 {
  max-width: none;
}
.imx #soluzioni .sol-lead {
  max-width: 900px;
  margin-top: 14px;
  font-size: 17px;
}
.imx .cloud {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  position: relative;
}
@media (width>=600px) {
  .imx .cloud {
    gap: 16px;
  }
}
.imx .xs-card {
  color: #fff;
  min-width: 0;
  min-height: 150px;
  font-size: var(--fz, 16px);
  perspective: 900px;
  transition:
    opacity 0.3s,
    filter 0.3s;
  display: flex;
  position: relative;
}
.imx .xs-card__in {
  --s3d-side: #3d4686;
  --s3d-top: #8c95d0;
  --s3d-side2: #262c5a;
  --s3d-back: #1e2346d9;
  --glass: inset 0 0 24px #fff2, 0 0 34px #8c95d040;
  min-width: 0;
  box-shadow: var(--glass);
  background: radial-gradient(120% 80% at 20% 0, #ffffff38, #fff0 70%),
    linear-gradient(165deg, #8c95d073, #8c95d04d);
  border: 1px solid #ffffff2e;
  border-top-color: #ffffff5c;
  border-radius: 4px;
  flex-direction: column;
  flex: 1;
  align-items: flex-start;
  padding: 1.25em 1.25em 0.5em;
  display: flex;
  position: relative;
}
.imx .xs-card__k {
  font: 400 0.8125em/1 var(--mono);
  letter-spacing: 0.06em;
  color: #d5d8e8;
  margin: 0 0 0.75em;
}
.imx .xs-card__name {
  font: 700 1.375em/1.18 var(--f-display);
  overflow-wrap: break-word;
  hyphens: auto;
  margin: auto 0 0;
}
.imx .xs-card__tags {
  flex-wrap: wrap;
  gap: 6px;
  margin: 0.75em 0 0;
  padding: 0;
  font-size: 0.9375em;
  line-height: 1.3;
  list-style: none;
  display: flex;
}
.imx .xs-card__tags li {
  border: 1px solid #ffffff2e;
  border-radius: 999px;
  padding: 4px 10px;
}
@media (width<=599px) {
  .imx .xs-card {
    min-height: 132px;
  }
  .imx .xs-card__in {
    padding: 1em 1em 0.25em;
  }
  .imx .xs-card__name {
    font-size: 1.0625em;
  }
}
.imx .xs-card__open {
  width: 100%;
  min-height: 48px;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  background: 0 0;
  border: 0;
  align-items: flex-end;
  margin: 0;
  padding: 0;
  display: flex;
}
.imx .xs-card__open:after {
  content: "";
  z-index: 1;
  border-radius: inherit;
  position: absolute;
  inset: 0;
}
.imx .xs-card__desc {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden;
}
.imx .xs-card__link {
  z-index: 2;
  isolation: isolate;
  color: #d5d8e8;
  --hv-line: #ffffff2e;
  border-radius: 4px;
  align-items: center;
  min-height: 48px;
  margin: 12px 0 0 -8px;
  padding: 0 8px;
  font-size: 0.9375em;
  line-height: 1.3;
  text-decoration: none;
  display: inline-flex;
  position: relative;
}
html.fx-sheen .imx .xs-card__link:before {
  content: "";
  z-index: -1;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(
    105deg,
    transparent calc(30% + var(--hv-x)),
    var(--hv-line) calc(48% + var(--hv-x)),
    transparent calc(66% + var(--hv-x))
  );
  transition: --hv-x 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
  position: absolute;
  inset: 0;
}
html.fx-sheen .imx .xs-card__link:is(:hover, :focus-visible):before {
  --hv-x: 110%;
}
.imx .xs-card__link:hover {
  color: #fab90b;
  text-underline-offset: 3px;
  text-decoration: underline;
}
.imx .xs-card__link:active {
  transition-duration: 90ms;
  scale: 0.96;
}
html.fx-cardHover .imx .xs-card__in:has(.xs-card__open:active) {
  scale: 0.98;
}
html.fx-cardHover .imx .xs-card__in {
  transition: translate 0.25s cubic-bezier(0.2, 0.8, 0.2, 1);
}
html.fx-cardHover .imx .xs-card .s3d__k:after {
  content: "";
  border-radius: inherit;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.25s;
  position: absolute;
  inset: 0;
  box-shadow: 0 24px 48px -24px #000c;
}
@media (hover: hover) and (pointer: fine) {
  html.fx-cardHover .imx .xs-card:hover > .xs-card__in {
    translate: 0 -8px;
  }
  html.fx-cardHover .imx .xs-card:hover .s3d__k:after {
    opacity: 1;
  }
}
.imx .xs-card.is-zoom {
  z-index: 30;
}
.imx .xs-card.is-zoom .xs-card__desc {
  clip: auto;
  clip-path: none;
  white-space: normal;
  width: auto;
  height: auto;
  font: 400 17px/1.55 var(--f-text);
  color: #d5d8e8;
  margin: 0.9rem 0 0.4rem;
  animation: 0.35s 0.12s both sol-in;
  position: static;
  overflow: visible;
}
@keyframes sol-in {
  0% {
    opacity: 0;
  }
}
.imx .cloud:not(.is-3d) .xs-card.is-zoom {
  grid-column: 1/-1;
}
.imx .xs-card.is-zoom .xs-card__in {
  outline-offset: -2px;
  box-shadow:
    var(--glass),
    0 40px 80px -30px #15193599;
  outline: 2px solid #fab90b;
}
.imx .is-zoom .xs-card__in {
  background: #1e2346 linear-gradient(165deg, #8c95d073, #8c95d04d);
}
.imx .cloud.has-zoom .xs-card:not(.is-zoom) {
  opacity: 0.45;
  filter: blur(2px);
}
@media (width>=768px) {
  html.fx-cloud .imx .cloud {
    perspective: 1100px;
    touch-action: pan-y;
    cursor: grab;
    -webkit-user-select: none;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    height: clamp(330px, 100vh - 400px, 620px);
    display: block;
    overflow-x: clip;
  }
  html.fx-cloud .imx .cloud.is-drag {
    cursor: grabbing;
  }
  html.fx-cloud .imx .cloud.has-zoom {
    z-index: 3;
  }
  html.fx-cloud .imx .xs-card {
    transform-origin: 50%;
    transform-style: preserve-3d;
    perspective: none;
    width: min(44%, 500px);
    min-height: 0;
    position: absolute;
    top: 50%;
    left: 50%;
  }
  html.fx-cloud .imx .xs-card__in {
    box-shadow:
      var(--glass),
      0 30px 50px -28px #000000b3;
  }
  html.fx-cloud .imx .xs-card__name {
    margin-top: 0;
  }
  html.fx-cloud .imx .cloud .xs-card__open {
    width: auto;
  }
  html.fx-cloud .imx .cloud:not(.is-in) .xs-card {
    opacity: 0;
  }
  html.fx-cloud .imx .cloud:not(.is-3d) .xs-card {
    visibility: hidden;
  }
  html.fx-cloud .imx .cloud .xs-card__link {
    pointer-events: none;
    -webkit-user-drag: none;
  }
  html.fx-cloud .imx .cloud.is-intro .xs-card {
    pointer-events: none;
  }
  html.fx-cloud .imx .cloud .xs-card.is-zoom {
    cursor: pointer;
    min-height: calc(70% - 24px);
  }
  html.fx-cloud .imx .cloud .xs-card.is-zoom .xs-card__link {
    pointer-events: auto;
    margin-top: auto;
    font-size: 16px;
    transform: translateZ(2px);
  }
  html.fx-cloud .imx .cloud .xs-card.is-zoom .xs-card__desc {
    max-width: 34em;
    font-size: 17px;
  }
  html.fx-cloudField .imx .cloud:before,
  html.fx-cloudField .imx .cloud:after {
    content: "";
    pointer-events: none;
    z-index: 0;
    opacity: 0.22;
    background: radial-gradient(circle, #fab90b 0 1.2px, #0000 1.8px) 0 0/46px 46px;
    animation: 23s linear infinite paused sol-drift;
    position: absolute;
    inset: -46px;
    -webkit-mask: radial-gradient(closest-side, #000 40%, #0000);
    mask: radial-gradient(closest-side, #000 40%, #0000);
  }
  html.fx-cloudField .imx .cloud:after {
    opacity: 0.14;
    background: radial-gradient(circle, #fab90b 0 0.8px, #0000 1.3px) 11px 17px/29px 29px;
    animation: 31s linear infinite paused sol-drift2;
  }
  html.fx-cloudField .imx .cloud.is-vis:before,
  html.fx-cloudField .imx .cloud.is-vis:after {
    animation-play-state: running;
  }
}
@keyframes sol-drift {
  to {
    transform: translate(46px, -46px);
  }
}
@keyframes sol-drift2 {
  to {
    transform: translate(-29px, -29px);
  }
}
@media (width<=767px) {
  html.fx-cloud .imx .cloud {
    margin-inline: calc(var(--gutter) * -1);
    padding: 18px var(--gutter) 30px;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: var(--gutter);
    scrollbar-width: none;
    overscroll-behavior-x: contain;
    gap: 12px;
    display: flex;
    overflow-x: auto;
  }
  html.fx-cloud .imx .cloud::-webkit-scrollbar {
    display: none;
  }
  html.fx-cloud .imx .xs-card {
    scroll-snap-align: start;
    flex: 0 0 min(78vw, 320px);
    height: 300px;
    min-height: 0;
  }
  html.fx-cloud .imx .xs-card__in {
    padding: 1.25em 1.25em 0.5em;
  }
  html.fx-cloud .imx .xs-card__name {
    font-size: 1.375em;
  }
  html.fx-cloud .imx .xs-card .s3d__k {
    box-shadow: 0 14px 22px -16px #0009;
  }
  html.fx-cloud .imx .xs-card.is-zoom {
    height: auto;
    min-height: 300px;
  }
  html.fx-cloud .imx .xs-card.is-zoom .xs-card__name {
    margin-top: 0;
  }
  html.fx-cloud .imx .xs-card.is-zoom .xs-card__desc {
    margin: 0.5rem 0 0;
    font-size: 15px;
    line-height: 1.5;
  }
  html.fx-cloud .imx .xs-card.is-zoom .xs-card__link {
    margin-top: auto;
  }
}
html.rm .imx .cloud .xs-card,
html.rm .imx .xs-card .xs-card__desc {
  transition: none;
  animation: none;
}
html.rm .imx .cloud.has-zoom .xs-card:not(.is-zoom) {
  filter: none;
}
.imx #demo {
  --dh: 460px;
  --ch: calc(var(--dh) + 80px);
}
.imx #demo .demo__grid {
  align-items: start;
  gap: 28px;
  display: grid;
}
.imx #demo .demo__head .h2 {
  max-width: 620px;
}
.imx #demo .demo__head .eyebrow {
  margin-bottom: 10px;
}
.imx #demo .demo__head .lead {
  margin-top: 14px;
}
.imx #demo .demo__list {
  gap: 8px;
  margin-top: 14px;
}
.imx #demo .demo__list li {
  color: var(--navy);
  font-size: 15px;
}
.imx #demo .demo__cta {
  margin-top: 16px;
}
.imx #demo .sr {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden;
}
@media (width>=1024px) {
  .imx #demo {
    --dh: 240px;
    --ch: 580px;
    --h: clamp(28px, 2.7vw - 2px, 36px);
    min-height: clamp(560px, 100svh - var(--site-hdr), 1100px);
    padding: 16px 0 8px;
  }
  .imx #demo .demo__grid {
    grid: "head chat" "prisms chat" 1fr / minmax(0, 40fr) minmax(0, 56fr);
    gap: 12px 4%;
  }
  .imx #demo .demo__head .lead {
    margin-top: 10px;
    font-size: 16px;
    line-height: 1.5;
  }
  .imx #demo .demo__list,
  .imx #demo .demo__cta {
    margin-top: 10px;
  }
  .imx #demo .demo__head .eyebrow {
    margin-bottom: 6px;
  }
  .imx #demo .demo__list {
    gap: 6px;
  }
  .imx #demo .note {
    margin-top: 6px;
  }
  .imx #demo .demo__head {
    grid-area: head;
  }
  .imx #demo .demo__head .h2 {
    font-size: var(--h);
    white-space: nowrap;
  }
  .imx #demo .prisms {
    grid-area: prisms;
  }
  .imx #demo .demo__chat {
    margin-top: calc(39px + 1.07 * var(--h));
    grid-area: chat;
  }
}
@media (width<=640px) {
  .imx #demo {
    --dh: 400px;
  }
}
.imx #demo .note {
  margin-top: 10px;
}
.imx #demo .prisms {
  min-width: 0;
}
.imx #demo .prisms__stage {
  height: var(--dh);
  touch-action: pan-y;
  -webkit-user-select: none;
  user-select: none;
  perspective: 1000px;
  background:
    radial-gradient(circle at 20% 30%, #ffffff8c 0 1px, #0000 1.6px) 0 0/149px 131px,
    radial-gradient(circle at 60% 70%, #ffffff59 0 1px, #0000 1.6px) 0 0/211px 173px,
    radial-gradient(circle at 35% 85%, #fab90b80 0 1px, #0000 1.6px) 0 0/181px 241px,
    radial-gradient(at 50% 45%, #2c3366, #1e2346 45%, #151935 85%);
  border-radius: 8px;
  position: relative;
  overflow: hidden;
}
html.fx-game .imx #demo .prisms__stage {
  cursor: grab;
}
html.fx-game .imx #demo .prisms__stage:before {
  content: "";
  pointer-events: none;
  background:
    radial-gradient(circle at 30% 60%, #fff 0 1.2px, #0000 2px) 0 0/157px 193px,
    radial-gradient(circle at 75% 20%, #fff 0 1px, #0000 1.6px) 0 0/227px 139px;
  animation: 3.2s ease-in-out infinite alternate dm-tw;
  position: absolute;
  inset: 0;
}
@keyframes dm-tw {
  0% {
    opacity: 0.1;
  }
  to {
    opacity: 0.6;
  }
}
.imx #demo .is-drag {
  cursor: grabbing;
}
.imx #demo .prisms__world {
  transform-style: preserve-3d;
  position: absolute;
  top: 50%;
  left: 50%;
}
.imx #demo .prism {
  --f: #2c3366;
  --t: #3a4070;
  --d: #1e2346;
  --e: #5a63a4;
  touch-action: none;
  transform-style: preserve-3d;
  width: 96px;
  height: 60px;
  transform: rotateX(-20deg) rotateY(30deg) translate(var(--x), var(--y));
  margin: -30px 0 0 -48px;
  position: absolute;
}
.imx #demo .prism--y {
  --f: var(--yellow);
  --t: #ffd24d;
  --d: #dca20c;
  --e: #ffc833;
}
.imx #demo .prism--w {
  --f: #fff;
  --t: #fff;
  --d: #dde0ea;
  --e: #c9cddc;
}
.imx #demo .prism:first-child {
  --x: -56px;
  --y: 40px;
}
.imx #demo .prism:nth-child(2) {
  --x: 56px;
  --y: 40px;
}
.imx #demo .prism:nth-child(3) {
  --x: 0px;
  --y: -21px;
}
.imx #demo .prism i {
  backface-visibility: hidden;
  background: linear-gradient(135deg, #ffffff38, #0000 60%) var(--f);
  box-shadow: inset 0 0 0 1px var(--e);
  position: absolute;
  inset: 0;
  transform: translateZ(14px);
}
.imx #demo .prism i:nth-child(2) {
  transform: rotateY(180deg) translateZ(14px);
}
.imx #demo .prism i:nth-child(3) {
  background-color: var(--t);
  inset: 16px 0;
  transform: rotateX(90deg) translateZ(30px);
}
.imx #demo .prism i:nth-child(4) {
  background-color: var(--d);
  inset: 16px 0;
  transform: rotateX(-90deg) translateZ(30px);
}
.imx #demo .prism i:nth-child(n + 5) {
  background-color: var(--d);
  inset: 0 34px;
  transform: rotateY(90deg) translateZ(48px);
}
.imx #demo .prism i:nth-child(6) {
  transform: rotateY(-90deg) translateZ(48px);
}
.imx #demo .prisms__ui {
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 16px;
  min-height: 44px;
  margin-top: 12px;
  display: flex;
}
.imx #demo .prisms__ui .btn-pill {
  margin: 0;
}
html:not(.fx-game) .imx #demo .prisms__ui .btn,
.imx #demo .prisms__ui .btn:disabled {
  opacity: 0.6;
  cursor: default;
  pointer-events: none;
}
.imx #demo .demo__chat {
  min-width: 0;
}
.imx #demo .chat {
  height: var(--ch);
  border: 1px solid var(--hair);
  background: #fff;
  border-radius: 8px;
  flex-direction: column;
  min-width: 0;
  display: flex;
  overflow: hidden;
  box-shadow:
    0 34px 60px -34px #1e234673,
    0 10px 24px -16px #1e234640;
}
html.fx-cardHover .imx #demo .chat {
  --hv-lift: 8px;
  scale: none;
  transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
  transition:
    transform 0.25s cubic-bezier(0.2, 0.8, 0.2, 1),
    box-shadow 0.25s,
    var(--hv-t);
}
html.fx-cardHover .imx #demo .chat:after {
  content: none;
}
@media (hover: hover) and (pointer: fine) {
  html.fx-cardHover .imx #demo .chat:hover {
    box-shadow:
      0 34px 60px -34px #1e234673,
      0 10px 24px -16px #1e234640,
      0 24px 48px -24px #15193573;
  }
}
.imx #demo .chat-head {
  background: var(--navy);
  color: #fff;
  font: 700 15px/1.3 var(--f-text);
  flex-wrap: wrap;
  flex: none;
  align-items: center;
  gap: 6px 10px;
  padding: 14px 20px;
  display: flex;
}
.imx #demo .chat-head i {
  background: var(--yellow);
  border-radius: 50%;
  flex: none;
  width: 10px;
  height: 10px;
}
.imx #demo .chat-tag {
  font: 700 15px/1 var(--f-text);
  color: var(--yellow);
  border: 1px solid #fab90b8c;
  border-radius: 3px;
  padding: 4px 7px;
}
.imx #demo .chat-sub {
  font: 400 15px/1.3 var(--f-text);
  color: var(--soft);
}
.imx #demo .chat-tag {
  margin-left: auto;
}
.imx #demo .chat-body {
  flex-direction: column;
  flex: auto;
  gap: 12px;
  min-height: 0;
  padding: 18px 20px;
  display: flex;
  overflow-y: auto;
}
.imx #demo .chat-body:focus-visible {
  outline: 3px solid var(--yellow);
  outline-offset: -3px;
}
.imx #demo .msg {
  overflow-wrap: anywhere;
  border-radius: 4px;
  flex: none;
  max-width: 88%;
  padding: 10px 14px;
  font-size: 15px;
  line-height: 1.5;
  position: relative;
}
.imx #demo .msg.bot,
.imx #demo .msg--hi {
  background: var(--light);
  color: var(--navy);
  align-self: flex-start;
}
.imx #demo .msg.user {
  background: var(--navy);
  color: #fff;
  align-self: flex-end;
}
html.fx-typeIn .imx #demo .msg--hi:not(.is-on),
.imx #demo .msg.is-typing {
  color: #0000;
}
.imx #demo .msg__v {
  color: var(--navy);
  position: absolute;
  top: 10px;
  left: 14px;
  right: 14px;
}
.imx #demo .chat-q {
  flex-wrap: wrap;
  flex: none;
  gap: 8px;
  padding-top: 4px;
  display: flex;
}
.imx #demo .btn-chip {
  --hv-line: #1e23461f;
  border: 1px solid var(--rule);
  min-height: 48px;
  box-shadow: none;
  color: var(--navy);
  font: 400 15px/1.35 var(--f-text);
  text-align: left;
  background: #fff;
  border-radius: 4px;
  justify-content: flex-start;
  padding: 10px 14px;
}
.imx #demo .btn-chip:hover {
  border-color: var(--navy);
}
.imx #demo .btn-chip--re {
  --hv-line: #ffffff40;
  background: var(--navy);
  border-color: var(--navy);
  color: #fff;
  font-weight: 700;
}
.imx #demo .btn-chip--re:before {
  content: "↺" / "";
  font-weight: 400;
}
.imx #demo .chat-in {
  border-top: 1px solid var(--hair);
  flex: none;
  gap: 8px;
  padding: 12px 20px;
  display: flex;
}
.imx #demo .chat-in input {
  color: var(--navy);
  font: 400 16px/1.3 var(--f-text);
  border: 1px solid var(--rule);
  border-radius: 4px;
  flex: auto;
  min-width: 0;
  height: 48px;
  padding: 0 14px;
}
.imx #demo .chat-in input::placeholder {
  color: var(--kicker);
}
.imx #demo .chat-in input:focus-visible {
  outline-offset: 0;
}
.imx #demo .chat-in .btn {
  flex: none;
  width: 48px;
  min-height: 48px;
  padding: 0;
}
@media (width<=640px) {
  .imx #demo .chat-body {
    padding: 14px 16px;
  }
  .imx #demo .chat-in {
    padding: 10px 16px;
  }
}
.imx .mt {
  margin-top: 28px;
}
.imx .mt__rule {
  height: 2px;
  margin-bottom: 24px;
  display: block;
  position: relative;
}
.imx .mt__line {
  background: var(--yellow);
  height: 2px;
  display: block;
}
.imx .mt__m {
  display: none;
}
html.fx-metodoMarker .imx .mt__m {
  background: var(--yellow);
  clip-path: polygon(0 0, 100% 50%, 0 100%);
  width: 24px;
  height: 24px;
  translate: var(--mx, 0px) 0;
  transition: translate 0.3s linear;
  display: block;
  position: absolute;
  top: -11px;
  left: 0;
}
.imx .mt__row {
  gap: 16px;
  list-style: none;
  display: grid;
}
@media (width>=600px) {
  .imx .mt__row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (width>=1024px) {
  .imx .mt__row {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.imx .mt__s {
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  display: flex;
}
.imx #metodo .card {
  --card-pad: 20px;
}
.imx #metodo .mt__s {
  --mt-glow: 0 0 0 1px #fab90b, 0 16px 40px -12px #fab90b80;
}
html:not(.fx-metodoMarker) .imx .mt__s > .card,
.imx .mt__s.is-lit > .card {
  box-shadow: var(--mt-glow);
}
.imx .mt__step {
  flex: auto;
}
.imx .mt__sub {
  gap: 2px;
  padding: 14px 16px 13px;
}
.imx .mt__i {
  color: var(--yellow);
  font: 400 22px/1 var(--f-text);
  margin-bottom: 4px;
  display: block;
}
.imx .mt__sub strong {
  font: 700 16px/1.25 var(--f-display);
  color: var(--navy);
  display: block;
}
.imx .mt__sub small {
  font: 400 15px/1.4 var(--f-text);
  color: var(--card-p);
  display: block;
}
.imx .mt__n {
  font: 900 40px/1 var(--f-display);
  color: var(--navy);
  margin-bottom: 12px;
  padding-bottom: 6px;
  display: inline-block;
  position: relative;
}
.imx .mt__n:after {
  content: "";
  background: var(--yellow);
  transform-origin: 0;
  height: 3px;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}
.imx #metodo .card h3 {
  font-size: 20px;
}
html.fx-metodoMarker .imx .mt__s > .card {
  opacity: 0;
  translate: 0 16px;
}
html.fx-metodoMarker .imx .mt__s .mt__n:after {
  transform: scaleX(0);
}
html.fx-metodoMarker .imx .mt__s.is-lit > .card {
  opacity: 1;
  animation: 0.9s mt-pop;
  translate: 0 -2px;
}
@keyframes mt-pop {
  0% {
    opacity: 0;
    animation-timing-function: cubic-bezier(0.2, 0.8, 0.2, 1);
    translate: 0 16px;
    scale: 1;
  }
  50% {
    opacity: 1;
    animation-timing-function: cubic-bezier(0.2, 0.8, 0.2, 1);
    translate: 0 -6px;
    scale: 1.03;
  }
  to {
    opacity: 1;
    translate: 0 -2px;
    scale: 1;
  }
}
.imx .mt__sub {
  --hv-lift: 4px;
}
@media (hover: hover) and (pointer: fine) {
  html.fx-cardHover .imx .mt__s.is-lit > .card:hover {
    translate: 0 calc(-1 * var(--hv-lift, 7px));
  }
  html.fx-cardHover .imx .mt__s.is-lit > .mt__step:hover {
    box-shadow:
      var(--mt-glow),
      0 24px 48px -24px #15193573;
  }
  html.fx-cardHover .imx .mt__s.is-lit > .mt__sub:hover {
    box-shadow:
      var(--mt-glow),
      0 12px 24px -12px #15193573;
  }
}
html.fx-cardHover .imx .mt__s.is-lit > .card:active {
  scale: 0.98;
}
html.fx-metodoMarker .imx .mt__s.is-lit .mt__n:after {
  transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1) 0.3s;
  transform: none;
}
html.fx-metodoMarker .imx .mt.is-skip :is(.mt__s > .card, .mt__m) {
  transition: none;
  animation: none;
}
@media (width>=1024px) {
  .imx #metodo {
    padding: 52px 0;
  }
  .imx #garanzie {
    min-height: clamp(560px, 100svh - var(--site-hdr), 1100px);
    padding: 72px 0;
  }
}
.imx .gr {
  margin: var(--head-gap) 0 0;
  gap: 16px;
  padding: 0;
  list-style: none;
  display: grid;
}
.imx .gr > li {
  min-width: 0;
  display: flex;
}
.imx .gr .card {
  width: 100%;
}
.imx #garanzie .note {
  margin-top: 24px;
}
@media (width>=600px) {
  .imx .gr {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (width>=1100px) {
  .imx .gr {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .imx #garanzie .card {
    --card-pad: 24px;
  }
}
.imx #faq {
  flex-direction: column;
  justify-content: center;
  min-height: calc(100vh - var(--site-hdr));
  display: flex;
}
@media (width<=767px) {
  .imx #faq {
    min-height: calc(100vh - var(--site-hdr));
  }
}
.imx .fq__list {
  margin: var(--head-gap) 0 0;
  gap: 12px;
  padding: 0;
  list-style: none;
  display: grid;
}
@media (width>=768px) {
  .imx .fq__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.imx .fq__q {
  --card-pad: 13px 20px 13px 24px;
  width: 100%;
  min-height: 56px;
  font: 700 19px/1.3 var(--f-display);
  text-align: left;
  cursor: pointer;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin: 0;
}
@media (width>=1024px) {
  .imx .fq__q {
    font-size: 21px;
  }
}
.imx .fq__q:hover {
  color: var(--link-hover);
}
.imx .fq__x {
  flex: none;
  width: 20px;
  height: 20px;
  display: block;
  position: relative;
}
.imx .fq__x:before,
.imx .fq__x:after {
  content: "";
  background: var(--navy);
  border-radius: 1px;
  width: 20px;
  height: 2px;
  margin: -1px 0 0 -10px;
  position: absolute;
  top: 50%;
  left: 50%;
}
.imx .fq__x:after {
  rotate: 90deg;
}
.imx .fq__q:hover .fq__x:before,
.imx .fq__q:hover .fq__x:after {
  background: var(--link-hover);
}
.imx .fq__dlg {
  color: #fff;
  background: 0 0;
  border: 0;
  width: 100vw;
  max-width: 100vw;
  height: 100dvh;
  max-height: 100dvh;
  margin: 0;
  padding: 0;
  overflow: hidden auto;
}
.imx .fq__dlg::backdrop {
  backdrop-filter: blur(4px);
  background: #15193599;
}
html:not(.js) .imx .fq__dlg {
  color: var(--navy);
  width: auto;
  max-width: calc(1248px + 2 * var(--gutter));
  height: auto;
  padding: 0 var(--gutter) var(--section);
  margin: 0 auto;
  display: block;
  position: static;
}
html:not(.js) .imx #faq .fq__list,
html:not(.js) .imx .fq__nav,
html:not(.js) .imx .fq__close {
  display: none;
}
.imx .fq__dlg .fq {
  flex-direction: column;
  justify-content: center;
  min-height: 100%;
  padding: 72px 0 24px;
  display: flex;
}
html:not(.js) .imx .fq__dlg .fq {
  padding: 0;
}
body.fq-lock {
  overflow: hidden;
}
@keyframes fqIn {
  0% {
    opacity: 0;
    scale: 0.96;
  }
}
@keyframes fqFade {
  0% {
    opacity: 0;
  }
}
html.fx-faqOpen .imx .fq__dlg[open] {
  animation: 0.28s cubic-bezier(0.2, 0.8, 0.2, 1) fqIn;
}
html.fx-faqOpen .imx .fq__dlg[open]::backdrop {
  animation: 0.28s fqFade;
}
.imx .fq__close {
  --hv-line: #ffffff38;
  color: #fff;
  width: 48px;
  height: 48px;
  font: 400 30px/1 var(--f-text);
  z-index: 2;
  background: #151935;
  border: 1px solid #5a6194;
  border-radius: 50%;
  padding: 0;
  position: absolute;
  top: 16px;
  right: 16px;
}
.imx .fq__close:hover {
  color: var(--yellow);
  border-color: var(--yellow);
}
.imx .fq__row {
  gap: 16px;
  display: grid;
}
@media (width>=768px) {
  html:not(.js) .imx .fq__row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
.imx .fq__c {
  color: #fff;
  background: #3a4070;
  border-radius: 8px;
  padding: 24px;
  position: relative;
}
.imx .fq__c h3 {
  font: 700 21px/1.3 var(--f-display);
  margin: 0;
}
.imx .fq__n {
  font: 400 12px/1.4 var(--mono);
  letter-spacing: 0.12em;
  color: var(--yellow);
  margin-bottom: 10px;
  display: block;
}
.imx .fq__c p {
  color: var(--soft);
  margin: 16px 0 0;
  font-size: 16px;
  line-height: 1.6;
}
.imx .fq__nav {
  justify-content: center;
  align-items: center;
  gap: 24px;
  margin-top: 4px;
  display: flex;
}
.imx .fq__ctl {
  align-items: center;
  gap: 12px;
  display: flex;
}
.imx .fq__b {
  color: #fff;
  width: 48px;
  height: 48px;
  font: 700 18px/1 var(--f-text);
  cursor: pointer;
  --hv-line: #ffffff38;
  background: 0 0;
  border: 1px solid #5a6194;
  border-radius: 50%;
  padding: 0;
  transition:
    border-color 0.16s,
    color 0.16s,
    opacity 0.16s,
    transform 0.16s cubic-bezier(0.2, 0.8, 0.2, 1);
  box-shadow: inset 0 1px #ffffff1f;
}
.imx .fq__b:active {
  transition-duration: 90ms;
}
.imx .fq__b:hover {
  border-color: var(--yellow);
  color: var(--yellow);
}
.imx .fq__b[aria-disabled="true"] {
  opacity: 0.4;
  cursor: default;
}
.imx .fq__ct {
  text-align: center;
  min-width: 56px;
  font: 400 14px/1 var(--mono);
  color: var(--soft);
}
.imx .fq__hint {
  font: 700 15px/1 var(--f-text);
  color: var(--soft);
  align-items: center;
  gap: 8px;
  transition: opacity 0.5s;
  display: none;
}
html.fx-faqDrag .imx .fq__hint {
  display: inline-flex;
}
.imx .fq__hint-a {
  color: var(--yellow);
  display: inline-block;
}
.imx .fq__hint.is-gone {
  opacity: 0;
}
html.js .imx .fq__track {
  --cw: 360px;
  padding: 22px calc(50% - var(--cw) / 2) 28px;
  touch-action: pan-y;
  -webkit-user-select: none;
  user-select: none;
  cursor: grab;
  overflow: clip;
}
html.js .imx .fq__track:focus-visible {
  outline-offset: -3px;
}
html.js .imx .fq__track.is-drag {
  cursor: grabbing;
}
html.js .imx .fq__row {
  perspective: 900px;
  align-items: stretch;
  gap: 20px;
  width: max-content;
  display: flex;
}
html.js .imx .fq__c {
  --hv-lift: 8px;
  width: var(--cw);
  min-height: 340px;
  transition:
    border-color 0.2s,
    box-shadow 0.25s,
    rotate 0.25s cubic-bezier(0.2, 0.8, 0.2, 1),
    var(--hv-t, translate 0s);
  opacity: 0.6;
  background: linear-gradient(#3d4475, #2b3160);
  border: 1px solid #ffffff14;
  flex: none;
  padding: 28px;
  overflow: hidden;
  transform: scale(0.92);
  box-shadow: 0 24px 50px -24px #0009;
}
html.js .imx .fq__c:after {
  content: none;
}
@media (hover: hover) and (pointer: fine) {
  html.fx-cardHover .imx .fq__c:hover {
    box-shadow:
      0 24px 50px -24px #0009,
      0 24px 48px -24px #000c;
  }
}
html.js .imx .fq__c:first-child {
  opacity: 1;
  transform: scale(1.04);
}
html.js .imx .fq__c:before {
  content: "";
  background: var(--yellow);
  transform-origin: 0;
  pointer-events: none;
  height: 6px;
  transition: transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  transform: scaleX(0);
}
html.js .imx .fq__c.is-on:before {
  transform: none;
}
html.js .imx .fq__c.is-on {
  border-color: #fab90b59;
}
html.js .imx .fq__c .fq__n {
  color: #fff;
}
html.js .imx .fq__c.is-on .fq__n {
  color: var(--yellow);
}
html.rm .imx .fq__c,
html.rm .imx .fq__c:before {
  transition: none;
}
@media (width<=640px) {
  html.js .imx .fq__track {
    --cw: 300px;
  }
  html.js .imx .fq__c {
    padding: 22px;
  }
  html.js .imx .fq__c h3 {
    font-size: 19px;
  }
  html.js .imx .fq__c p {
    font-size: 15px;
  }
}
@keyframes fqNudge {
  0%,
  to {
    translate: 0;
  }
  50% {
    translate: 6px;
  }
}
html.fx-faqDrag .imx .fq__hint-a {
  animation: 0.9s ease-in-out 0.8s 3 fqNudge;
}
.imx #contatti {
  background: var(--yellow);
  color: var(--navy);
  flex-direction: column;
  justify-content: center;
  min-height: calc(100vh - var(--site-hdr));
  padding: 64px 0;
  display: flex;
}
@media (width<=767px) {
  .imx #contatti {
    min-height: calc(100vh - var(--site-hdr));
  }
}
.imx #contatti .ct__in {
  align-items: start;
  gap: 32px 48px;
  display: grid;
}
.imx #contatti .h2 {
  max-width: none;
  font-size: clamp(30px, 3.4vw, 48px);
}
.imx #contatti .lead {
  max-width: 640px;
  color: var(--navy);
  margin: 20px 0 0;
  font-size: clamp(17px, 1.4vw, 20px);
}
.imx #contatti .eyebrow {
  color: var(--navy);
}
.imx #contatti :focus-visible {
  outline-color: var(--navy);
}
.imx #contatti .ct__form {
  align-items: stretch;
  gap: 14px;
  width: 100%;
}
html.fx-cardHover .imx #contatti .ct__form:hover {
  box-shadow: none;
}
.imx #contatti .ct__f {
  flex-direction: column;
  gap: 6px;
  display: flex;
}
.imx #contatti .ct__lbl {
  font: 700 15px/1.4 var(--f-text);
  color: var(--navy);
}
.imx #contatti input:not([type="checkbox"]),
.imx #contatti select,
.imx #contatti textarea {
  box-sizing: border-box;
  width: 100%;
  min-height: 48px;
  font: 400 16px/1.4 var(--f-text);
  color: var(--navy);
  border: 1px solid var(--rule);
  background: #fff;
  border-radius: 4px;
  margin: 0;
  padding: 0 14px;
}
.imx #contatti textarea {
  resize: vertical;
  padding: 10px 14px;
}
.imx #contatti input::placeholder,
.imx #contatti textarea::placeholder {
  color: var(--kicker);
  opacity: 1;
}
.imx #contatti .ct__check {
  cursor: pointer;
  align-items: flex-start;
  gap: 10px;
  font-size: 15px;
  line-height: 1.5;
  display: flex;
}
.imx #contatti .ct__check input {
  width: 20px;
  height: 20px;
  accent-color: var(--navy);
  flex: none;
  margin: 1px 0 0;
}
.imx #contatti .ct__form .btn {
  align-self: start;
}
.imx #contatti .ct__form .note {
  margin-top: 0;
}
@media (width>=900px) {
  .imx #contatti .ct__in {
    grid-template-columns: minmax(0, 6fr) minmax(0, 6fr);
  }
}
@media (width<=640px) {
  .imx #contatti {
    padding: 48px 0;
  }
  .imx #contatti .ct__form .btn {
    align-self: stretch;
    width: 100%;
  }
}
.imx .up {
  color: #fff;
  cursor: pointer;
  background: #1e2346b3;
  border: 1px solid #ffffff26;
  border-radius: 50%;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  text-decoration: none;
  transition:
    transform 0.3s,
    background-color 0.2s;
  display: grid;
  box-shadow: 0 6px 16px -8px #0008;
}
.imx .up svg {
  display: block;
}
@media (hover: hover) and (pointer: fine) {
  .imx .up:hover {
    transform: translateY(-2px);
  }
}
.imx .totop {
  right: 24px;
  bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  z-index: 40;
  opacity: 0;
  pointer-events: none;
  transition:
    opacity 0.3s,
    transform 0.3s,
    background-color 0.2s;
  position: fixed;
  transform: translateY(8px);
}
.imx .totop.is-on {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
@media (hover: hover) and (pointer: fine) {
  .imx .totop.is-on:hover {
    background: #1e2346d9;
    transform: translateY(-2px);
  }
}
html.rm .imx .up,
html.rm .imx .totop {
  transition: none;
}

/* Modulo contatti collegato al backend del sito: errori e conferma di invio */
.imx #contatti .ct__err {
  background: #fff;
  border-left: 5px solid #c0392b;
  border-radius: 4px;
  padding: 14px 18px;
  font-size: 15px;
  line-height: 1.5;
}
.imx #contatti .ct__err ul {
  margin-top: 6px;
  padding-left: 18px;
  list-style: disc;
}
.imx #contatti .ct__check a {
  color: var(--navy);
  font-weight: 700;
}
.imx #contatti .ct__done {
  gap: 10px;
}
.imx #contatti .ct__done h3 {
  font: 900 clamp(24px, 2.2vw, 30px) / 1.15 var(--f-display);
}
.imx #contatti .ct__done p {
  font-size: 17px;
  margin: 0;
}
.imx .draft-flag {
  grid-area: 1/1;
  align-self: start;
  margin-top: 16px;
}
