.qm-pn{
  --qm-pn-copy-w:44%;
  --qm-pn-tab-h:42px;
  --qm-pn-offset:0px;
  --qm-pn-stage-h:300px;
  --qm-pn-gap:24px;
  --qm-pn-open-heading-gap:200px;
  --qm-pn-closed-heading-gap:35px;
  --qm-pn-number-w:96px;
  --qm-pn-first-y:420px;
  --qm-pn-scroll-step:300px;
  --qm-pn-end-hold:140px;
  --qm-pn-heading-top:24px;
  --qm-pn-copy-h:110px;
  --qm-pn-blur:8px;
  --qm-pn-inactive-alpha:.35;
  position:relative;
  width:100%;
  min-height:100svh;
  background:#fff;
  color:#111;
  isolation:isolate;
}
.qm-pn,.qm-pn *{box-sizing:border-box}
.qm-pn__pin{
  position:sticky;
  top:var(--qm-pn-offset);
  width:100%;
  height:calc(100svh - var(--qm-pn-offset));
  overflow:hidden;
  background:#fff;
}
.qm-pn__inner{
  position:relative;
  width:100%;
  height:100%;
  max-width:100%;
  margin:0 auto;
  padding:0 32px;
  overflow:hidden;
}
.qm-pn__heading-area{
  position:absolute;
  z-index:1;
  top:var(--qm-pn-heading-top);
  left:0;
  right:0;
  display:flex;
  justify-content:center;
  align-items:flex-start;
  width:100%;
  padding:0;
  pointer-events:none;
  overflow:visible;
}
.qm-pn__heading{
  position:relative;
  width:100%;
  max-width:100%;
  margin:0;
  padding:0;
  font-size:clamp(72px,12vw,220px);
  font-weight:800;
  line-height:.82;
  letter-spacing:-.06em;
  text-transform:uppercase;
  overflow:visible;
  text-wrap:balance;
  pointer-events:none;
}
.qm-pn__stack{
  position:absolute;
  z-index:2;
  inset:0;
  width:100%;
  height:100%;
  overflow:visible;
}
.qm-pn__row{
  position:absolute;
  top:0;
  left:0;
  z-index:calc(10 + var(--qm-pn-i));
  display:grid;
  grid-template-columns:minmax(0,var(--qm-pn-copy-w)) minmax(0,calc(100% - var(--qm-pn-copy-w)));
  grid-template-rows:1fr;
  align-items:stretch;
  width:100%;
  height:var(--qm-pn-stage-h);
  min-height:0;
  margin:0;
  background:#fff;
  overflow:hidden;
  will-change:transform;
  transform:translate3d(0,var(--qm-pn-first-y),0);
  backface-visibility:hidden;
}
.qm-pn__copy{
  min-width:0;
  height:100%;
  border-top:1px solid #d8d8d8;
  background:inherit;
  padding-right:clamp(14px,2.2vw,38px);
  overflow:hidden;
}
.qm-pn__tab{
  min-height:var(--qm-pn-tab-h);
  display:grid;
  grid-template-columns:var(--qm-pn-number-w) minmax(0,1fr);
  align-items:start;
  padding-top:8px;
  overflow:visible;
}
.qm-pn__number{
  display:block;
  padding-top:1px;
  font-size:13px;
  font-weight:700;
  line-height:1.1;
  white-space:nowrap;
}
.qm-pn__title-wrap{min-width:0;overflow:visible}
.qm-pn__title-link{display:block;color:inherit;text-decoration:none}
.qm-pn__title{
  margin:0;
  padding:0;
  font-size:clamp(19px,1.65vw,30px);
  font-weight:800;
  line-height:1.02;
  letter-spacing:-.03em;
  text-transform:uppercase;
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
}
.qm-pn__description{
  margin-left:var(--qm-pn-number-w);
  margin-top:10px;
  max-width:min(520px,calc(100% - var(--qm-pn-number-w)));
  font-size:13px;
  line-height:1.4;
  color:#555;
}
.qm-pn__visual{
  position:relative;
  min-width:0;
  min-height:0;
  height:100%;
  overflow:hidden;
  background:#ececec;
}
.qm-pn__visual img{
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:var(--qm-pn-img-fit,cover);
  object-position:var(--qm-pn-img-x,50%) var(--qm-pn-img-y,50%);
}

/* Blur opzionale: viene applicato soltanto ai contenuti testuali dei servizi
   già superati. Il titolo grande della sezione resta fuori da questa regola. */
.qm-pn--blur-previous .qm-pn__row .qm-pn__tab,
.qm-pn--blur-previous .qm-pn__row .qm-pn__description{
  transition:filter .38s ease;
}
.qm-pn--blur-previous .qm-pn__row.is-past .qm-pn__tab,
.qm-pn--blur-previous .qm-pn__row.is-past .qm-pn__description{
  filter:blur(var(--qm-pn-blur));
}

/* Attenuazione opzionale dei servizi non attivi.
   Il servizio corrente usa il marrone pieno; sia i precedenti sia i successivi
   usano lo stesso colore con alpha ridotta. Il titolo grande resta invariato. */
.qm-pn--dim-inactive .qm-pn__row .qm-pn__number,
.qm-pn--dim-inactive .qm-pn__row .qm-pn__title,
.qm-pn--dim-inactive .qm-pn__row .qm-pn__description{
  color:rgba(66,56,45,var(--qm-pn-inactive-alpha))!important;
  transition:color .32s ease;
}
.qm-pn--dim-inactive .qm-pn__row.is-active .qm-pn__number,
.qm-pn--dim-inactive .qm-pn__row.is-active .qm-pn__title,
.qm-pn--dim-inactive .qm-pn__row.is-active .qm-pn__description{
  color:#42382D!important;
}
.qm-pn--blur-previous.qm-pn--dim-inactive .qm-pn__row .qm-pn__description{
  transition:filter .38s ease,color .32s ease;
}

/* L'editor resta lineare e modificabile; i controlli responsive di Elementor
   governano dimensioni, spazi, allineamenti e layout per ogni breakpoint attivo. */
.elementor-editor-active .qm-pn{height:auto!important;min-height:0!important}
.elementor-editor-active .qm-pn__pin{position:relative!important;top:auto!important;height:auto!important;overflow:visible!important}
.elementor-editor-active .qm-pn__inner{height:auto!important;overflow:visible!important}
.elementor-editor-active .qm-pn__heading-area{position:relative!important;top:auto!important;left:auto!important;right:auto!important;margin:0 0 32px!important}
.elementor-editor-active .qm-pn__heading{position:relative!important;margin:0!important}
.elementor-editor-active .qm-pn__stack{position:relative!important;inset:auto!important;height:auto!important}
.elementor-editor-active .qm-pn__row{
  position:relative!important;
  top:auto!important;
  left:auto!important;
  transform:none!important;
  height:var(--qm-pn-stage-h)!important;
  margin-bottom:var(--qm-pn-gap)!important;
}
.elementor-editor-active .qm-pn--blur-previous .qm-pn__row .qm-pn__tab,
.elementor-editor-active .qm-pn--blur-previous .qm-pn__row .qm-pn__description{
  filter:none!important;
  transition:none!important;
}
.elementor-editor-active .qm-pn--dim-inactive .qm-pn__row .qm-pn__number,
.elementor-editor-active .qm-pn--dim-inactive .qm-pn__row .qm-pn__title,
.elementor-editor-active .qm-pn--dim-inactive .qm-pn__row .qm-pn__description{
  color:inherit!important;
  transition:none!important;
}

/* Solo adattamenti strutturali di sicurezza. Nessun valore di stile responsive
   viene forzato qui: resta sotto il controllo dei device di Elementor. */
@media (max-width:767px){
  .qm-pn__description{max-width:none}
  .qm-pn__visual{min-height:0;height:100%}
}

@media (prefers-reduced-motion:reduce){
  .qm-pn--blur-previous .qm-pn__row .qm-pn__tab,
  .qm-pn--blur-previous .qm-pn__row .qm-pn__description,
  .qm-pn--dim-inactive .qm-pn__row .qm-pn__number,
  .qm-pn--dim-inactive .qm-pn__row .qm-pn__title,
  .qm-pn--dim-inactive .qm-pn__row .qm-pn__description{transition:none}
  .qm-pn{height:auto!important;min-height:0}
  .qm-pn__pin{position:relative;top:auto;height:auto;overflow:visible}
  .qm-pn__inner{height:auto;overflow:visible}
  .qm-pn__heading-area{position:relative;top:auto;left:auto;right:auto;margin-bottom:28px}
  .qm-pn__stack{position:relative;inset:auto;height:auto}
  .qm-pn__row{position:relative;transform:none!important;height:auto;min-height:260px;margin-bottom:var(--qm-pn-gap)}
  .qm-pn__visual{min-height:240px}
}
