.qm-hs{--qm-hs-text-width:35%;--qm-hs-padding:clamp(24px,4.5vw,88px);--qm-hs-gap:14px;--qm-hs-collage-padding:18px;--qm-hs-offset:0px;--qm-hs-height:calc(100svh - var(--qm-hs-offset));position:relative;width:100%;background:#f5f1e8;color:#1f3f43;isolation:isolate}
.qm-hs *{box-sizing:border-box}.qm-hs__viewport{position:relative;width:100%;overflow:hidden}.qm-hs__track{width:100%;display:flex;flex-direction:column}.qm-hs__panel{position:relative;width:100%;min-width:0;min-height:var(--qm-hs-height);flex-shrink:0;overflow:hidden}.qm-hs.is-horizontal .qm-hs__viewport{height:var(--qm-hs-height)}.qm-hs.is-horizontal .qm-hs__track{flex-direction:row;height:100%;will-change:transform}.qm-hs.is-horizontal .qm-hs__panel{flex:0 0 100%;height:100%;min-height:0}
.qm-hs .qm-hs__intro{display:grid;place-items:center;text-align:center;padding:var(--qm-hs-padding)}.qm-hs__intro-inner{max-width:100%}.qm-hs .qm-hs__intro-title{font-size:clamp(60px,10vw,190px);line-height:1.02;letter-spacing:-.045em;font-weight:400;color:inherit;margin:24px 0;overflow-wrap:anywhere}.qm-hs .qm-hs__label{font-size:12px;letter-spacing:.2em;text-transform:uppercase;margin:0 0 24px;color:inherit}.qm-hs .qm-hs__title{font-size:clamp(28px,3.4vw,64px);line-height:1.08;font-weight:400;letter-spacing:-.025em;margin:0 0 30px;color:inherit;overflow-wrap:anywhere}.qm-hs .qm-hs__copy{font-size:clamp(14px,1.2vw,19px);line-height:1.65}.qm-hs__intro .qm-hs__copy{max-width:640px;margin:auto}.qm-hs__copy p:last-child{margin-bottom:0}

/* CTA pill: stile editoriale, completamente personalizzabile da Elementor */
.qm-hs .qm-hs__cta{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;align-self:flex-start;margin-top:30px;border:1px solid currentColor;text-decoration:none;line-height:1;min-width:230px;transition:background-color .3s ease,color .3s ease,border-color .3s ease,transform .3s ease}
.qm-hs__intro .qm-hs__cta{align-self:center;margin-left:auto;margin-right:auto}
.qm-hs .qm-hs__cta:hover{transform:translateY(-1px)}
.qm-hs__cta-arrow{font-size:1.15em;line-height:1;transition:transform .3s ease}
.qm-hs__cta:hover .qm-hs__cta-arrow{transform:translateX(5px)}
.qm-hs .qm-hs__split{display:flex}.qm-hs__split-copy{flex:0 0 var(--qm-hs-text-width);min-width:0;padding:var(--qm-hs-padding);display:flex;flex-direction:column;justify-content:center;overflow:auto}.qm-hs__split-image{flex:1;min-width:0;position:relative}.qm-hs__split.is-image-left .qm-hs__split-image{order:1}.qm-hs__split.is-image-left .qm-hs__split-copy{order:2}.qm-hs__split.is-image-right .qm-hs__split-copy{order:1}.qm-hs__split.is-image-right .qm-hs__split-image{order:2}.qm-hs .qm-hs__split-image img,.qm-hs .qm-hs__full>img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0;max-width:none}.qm-hs__full{position:relative}.qm-hs__placeholder{display:grid;place-items:center;width:100%;height:100%;min-height:200px;padding:30px;background:#d9dfd9;color:#41544e;text-align:center;font:16px/1.5 sans-serif}
/* Masonry editoriale: dimensioni volutamente diverse, sempre dentro la viewport */
.qm-hs .qm-hs__collage{padding:var(--qm-hs-collage-padding)}.qm-hs__grid{height:var(--qm-hs-height);max-height:100%;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(12,minmax(0,1fr));gap:var(--qm-hs-gap);grid-auto-flow:dense}.qm-hs.is-horizontal .qm-hs__grid{height:100%}.qm-hs .qm-hs__tile{display:block;position:relative;width:100%;height:100%;min-height:0;min-width:0;padding:0!important;border:0!important;border-radius:0;background:none;overflow:hidden;cursor:zoom-in;appearance:none}.qm-hs .qm-hs__tile img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;transition:transform .45s ease}.qm-hs .qm-hs__tile:hover img{transform:scale(1.025)}.qm-hs__tile:focus-visible{outline:3px solid currentColor;outline-offset:-5px}
/* Layout ottimizzato per 6 foto */
.qm-hs__grid--six .qm-hs__tile:nth-child(1){grid-column:1/5;grid-row:1/8}.qm-hs__grid--six .qm-hs__tile:nth-child(2){grid-column:5/9;grid-row:1/5}.qm-hs__grid--six .qm-hs__tile:nth-child(3){grid-column:9/13;grid-row:1/7}.qm-hs__grid--six .qm-hs__tile:nth-child(4){grid-column:5/9;grid-row:5/13}.qm-hs__grid--six .qm-hs__tile:nth-child(5){grid-column:1/5;grid-row:8/13}.qm-hs__grid--six .qm-hs__tile:nth-child(6){grid-column:9/13;grid-row:7/13}
/* Layout masonry per 7-12 foto */
.qm-hs__grid:not(.qm-hs__grid--six) .qm-hs__tile:nth-child(1){grid-column:1/5;grid-row:1/5}.qm-hs__grid:not(.qm-hs__grid--six) .qm-hs__tile:nth-child(2){grid-column:5/9;grid-row:1/4}.qm-hs__grid:not(.qm-hs__grid--six) .qm-hs__tile:nth-child(3){grid-column:9/13;grid-row:1/6}.qm-hs__grid:not(.qm-hs__grid--six) .qm-hs__tile:nth-child(4){grid-column:5/9;grid-row:4/8}.qm-hs__grid:not(.qm-hs__grid--six) .qm-hs__tile:nth-child(5){grid-column:1/5;grid-row:5/9}.qm-hs__grid:not(.qm-hs__grid--six) .qm-hs__tile:nth-child(6){grid-column:9/13;grid-row:6/10}.qm-hs__grid:not(.qm-hs__grid--six) .qm-hs__tile:nth-child(7){grid-column:5/7;grid-row:8/13}.qm-hs__grid:not(.qm-hs__grid--six) .qm-hs__tile:nth-child(8){grid-column:7/9;grid-row:8/11}.qm-hs__grid:not(.qm-hs__grid--six) .qm-hs__tile:nth-child(9){grid-column:1/5;grid-row:9/13}.qm-hs__grid:not(.qm-hs__grid--six) .qm-hs__tile:nth-child(10){grid-column:9/11;grid-row:10/13}.qm-hs__grid:not(.qm-hs__grid--six) .qm-hs__tile:nth-child(11){grid-column:11/13;grid-row:10/13}.qm-hs__grid:not(.qm-hs__grid--six) .qm-hs__tile:nth-child(12){grid-column:7/9;grid-row:11/13}
/* fallback per pochi elementi */
.qm-hs__grid--count-1 .qm-hs__tile:nth-child(1){grid-column:1/13;grid-row:1/13}.qm-hs__grid--count-2 .qm-hs__tile:nth-child(1){grid-column:1/7;grid-row:1/13}.qm-hs__grid--count-2 .qm-hs__tile:nth-child(2){grid-column:7/13;grid-row:1/13}.qm-hs__grid--count-3 .qm-hs__tile:nth-child(1){grid-column:1/5;grid-row:1/13}.qm-hs__grid--count-3 .qm-hs__tile:nth-child(2){grid-column:5/9;grid-row:1/13}.qm-hs__grid--count-3 .qm-hs__tile:nth-child(3){grid-column:9/13;grid-row:1/13}.qm-hs__grid--count-4 .qm-hs__tile:nth-child(1){grid-column:1/7;grid-row:1/7}.qm-hs__grid--count-4 .qm-hs__tile:nth-child(2){grid-column:7/13;grid-row:1/5}.qm-hs__grid--count-4 .qm-hs__tile:nth-child(3){grid-column:1/7;grid-row:7/13}.qm-hs__grid--count-4 .qm-hs__tile:nth-child(4){grid-column:7/13;grid-row:5/13}.qm-hs__grid--count-5 .qm-hs__tile:nth-child(1){grid-column:1/5;grid-row:1/8}.qm-hs__grid--count-5 .qm-hs__tile:nth-child(2){grid-column:5/9;grid-row:1/5}.qm-hs__grid--count-5 .qm-hs__tile:nth-child(3){grid-column:9/13;grid-row:1/7}.qm-hs__grid--count-5 .qm-hs__tile:nth-child(4){grid-column:5/9;grid-row:5/13}.qm-hs__grid--count-5 .qm-hs__tile:nth-child(5){grid-column:1/5;grid-row:8/13}
.qm-hs__nav{display:none;position:absolute;z-index:6;bottom:18px;right:24px;gap:12px;align-items:center;padding:5px 10px;background:rgba(15,27,29,.78);color:white;border-radius:40px}.qm-hs.is-horizontal .qm-hs__nav{display:flex}.qm-hs .qm-hs__nav button{border:0;background:transparent;color:inherit;padding:8px 12px;font:22px/1 sans-serif;cursor:pointer}.qm-hs__nav button:disabled{opacity:.3;cursor:default}.qm-hs__counter{font:12px/1.2 sans-serif;min-width:48px;text-align:center}
/* Freccia verticale: indica che si continua a scrollare verso il basso, ma al click avanza */
.qm-hs__down{position:absolute;z-index:7;left:50%;bottom:20px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:7px;border:0!important;background:transparent!important;color:#fff!important;padding:8px 14px!important;cursor:pointer;mix-blend-mode:difference}.qm-hs__down span{font:600 9px/1 sans-serif;letter-spacing:.22em}.qm-hs__down b{font:400 25px/1 sans-serif;animation:qmHsArrow 1.55s ease-in-out infinite}.qm-hs__down:focus-visible{outline:2px solid currentColor;outline-offset:4px}@keyframes qmHsArrow{0%,100%{transform:translateY(0);opacity:.7}50%{transform:translateY(7px);opacity:1}}
.qm-hs-lightbox{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;overflow:hidden!important;color:white;overscroll-behavior:contain}.qm-hs-lightbox::backdrop{background:transparent}.qm-hs-lightbox__shade{position:absolute;inset:0;background:#080c0d;opacity:0}.qm-hs-lightbox__photo{position:absolute;overflow:hidden;margin:0;will-change:left,top,width,height}.qm-hs-lightbox__photo img{width:100%;height:100%;display:block;object-fit:cover;max-width:none}.qm-hs-lightbox__close{position:absolute;z-index:2;right:20px;top:20px;width:48px;height:48px;border:1px solid #ffffff88!important;border-radius:50%;background:#102024b3!important;color:white!important;font:32px/1 sans-serif!important;padding:0!important;cursor:pointer}.qm-hs-lightbox__close:focus-visible{outline:3px solid white;outline-offset:4px}
/* Stessa esperienza orizzontale anche su notebook, tablet e mobile. Il layout resta side-by-side. */
@media(max-width:1024px){.qm-hs{--qm-hs-padding:clamp(22px,4vw,48px);--qm-hs-gap:10px;--qm-hs-collage-padding:12px}.qm-hs .qm-hs__intro-title{font-size:clamp(54px,10vw,120px)}.qm-hs .qm-hs__title{font-size:clamp(27px,4.4vw,44px)}.qm-hs__split-copy{flex-basis:40%}.qm-hs__nav{right:14px;bottom:14px}.qm-hs__down{bottom:14px}}
@media(max-width:767px){.qm-hs{--qm-hs-padding:20px;--qm-hs-gap:7px;--qm-hs-collage-padding:8px}.qm-hs .qm-hs__intro-title{font-size:clamp(42px,12vw,78px)}.qm-hs .qm-hs__split{flex-direction:row}.qm-hs__split-copy{flex:0 0 44%;padding:20px;overflow:auto}.qm-hs__split-image{min-height:0}.qm-hs .qm-hs__title{font-size:clamp(22px,6vw,30px);margin-bottom:12px}.qm-hs .qm-hs__label{margin-bottom:10px;font-size:9px}.qm-hs .qm-hs__copy{font-size:12px;line-height:1.4}.qm-hs__nav{bottom:8px;right:8px;transform:scale(.88);transform-origin:bottom right}.qm-hs__down{bottom:8px}.qm-hs__down span{font-size:8px}.qm-hs__down b{font-size:22px}}
@media(prefers-reduced-motion:reduce){.qm-hs__track{will-change:auto}.qm-hs__down b{animation:none}}

@media(max-width:767px){.qm-hs .qm-hs__cta{min-width:0;gap:20px;margin-top:18px}}

/* =========================================================
   0.2.3 · Responsive refinement
   ========================================================= */
@media (max-width:1024px){
  .qm-hs{--qm-hs-height:var(--qm-hs-tablet-height,88svh)}
  .qm-hs__tile--hide-tablet{display:none!important}
  .qm-hs .qm-hs__collage{display:flex;align-items:center;justify-content:center}
  .qm-hs__grid{width:min(100%,980px);height:100%;margin:auto}
}

@media (max-width:767px){
  .qm-hs{--qm-hs-height:var(--qm-hs-mobile-height,82svh);--qm-hs-padding:18px;--qm-hs-gap:6px;--qm-hs-collage-padding:10px}
  .qm-hs__tile--hide-mobile{display:none!important}

  /* Slide 2: testo sopra, immagine sotto su smartphone. */
  .qm-hs .qm-hs__split{display:grid;grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}
  .qm-hs__split-copy,
  .qm-hs__split.is-image-left .qm-hs__split-copy,
  .qm-hs__split.is-image-right .qm-hs__split-copy{order:1;flex:none;width:100%;padding:18px 20px 14px;overflow:visible;justify-content:flex-start}
  .qm-hs__split-image,
  .qm-hs__split.is-image-left .qm-hs__split-image,
  .qm-hs__split.is-image-right .qm-hs__split-image{order:2;min-height:0;position:relative}
  .qm-hs .qm-hs__split-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .qm-hs .qm-hs__title{font-size:clamp(24px,7.2vw,34px);line-height:1.02;margin-bottom:10px}
  .qm-hs .qm-hs__copy{font-size:12px;line-height:1.38}
  .qm-hs .qm-hs__cta{margin-top:14px;min-width:190px;gap:18px}

  /* Slide 3: immagine interamente contenuta nel pannello ridotto. */
  .qm-hs__full{display:flex;align-items:center;justify-content:center;background:#000}
  .qm-hs .qm-hs__full>img{object-fit:cover;width:100%;height:100%}

  /* Collage mobile centrato e più leggibile: 8 tessere max di default. */
  .qm-hs .qm-hs__collage{display:flex;align-items:center;justify-content:center;padding:10px}
  .qm-hs__grid{width:100%;height:100%;max-width:560px;margin:auto;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(10,minmax(0,1fr));gap:6px}
  .qm-hs__grid .qm-hs__tile:nth-child(1){grid-column:1/4;grid-row:1/5}
  .qm-hs__grid .qm-hs__tile:nth-child(2){grid-column:4/7;grid-row:1/4}
  .qm-hs__grid .qm-hs__tile:nth-child(3){grid-column:4/7;grid-row:4/7}
  .qm-hs__grid .qm-hs__tile:nth-child(4){grid-column:1/4;grid-row:5/8}
  .qm-hs__grid .qm-hs__tile:nth-child(5){grid-column:4/7;grid-row:7/11}
  .qm-hs__grid .qm-hs__tile:nth-child(6){grid-column:1/3;grid-row:8/11}
  .qm-hs__grid .qm-hs__tile:nth-child(7){grid-column:3/5;grid-row:8/11}
  .qm-hs__grid .qm-hs__tile:nth-child(8){grid-column:5/7;grid-row:8/11}
  .qm-hs__nav{bottom:6px;right:6px}
  .qm-hs__down{bottom:5px}
}

/* =========================================================
   0.2.4 · Mobile interaction, crop e overflow
   ========================================================= */
.elementor-widget-qm-horizontal-story,
.elementor-widget-qm-horizontal-story > .elementor-widget-container,
.qm-hs{
  width:100%;
  max-width:100%;
  overflow-x:clip;
}
.qm-hs{overflow:clip;overscroll-behavior-x:none}
.qm-hs__viewport{max-width:100%;overscroll-behavior-x:none;touch-action:pan-y}
.qm-hs__track{max-width:none}
.qm-hs__picture{display:block;position:absolute;inset:0;width:100%;height:100%}
.qm-hs__picture>img{display:block;width:100%;height:100%;max-width:none}

@media(max-width:767px){
  /* Slide 2: blocco compatto, padding alto corretto e immagine che usa tutto lo spazio residuo. */
  .qm-hs .qm-hs__split{
    height:100%;
    min-height:0;
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows:minmax(0,auto) minmax(0,1fr);
    align-content:stretch;
    overflow:hidden;
  }
  .qm-hs__split-copy,
  .qm-hs__split.is-image-left .qm-hs__split-copy,
  .qm-hs__split.is-image-right .qm-hs__split-copy{
    order:1;
    width:100%;
    min-height:0;
    padding:clamp(24px,5.5vw,34px) 20px 18px;
    overflow:visible;
    justify-content:flex-start;
  }
  .qm-hs__split-image,
  .qm-hs__split.is-image-left .qm-hs__split-image,
  .qm-hs__split.is-image-right .qm-hs__split-image{
    order:2;
    position:relative;
    width:100%;
    height:100%;
    min-height:0;
    overflow:hidden;
  }
  .qm-hs .qm-hs__split-image .qm-hs__picture,
  .qm-hs .qm-hs__split-image img{position:absolute;inset:0;width:100%;height:100%}

  /* Slide 3: niente spazio residuo; il crop viene deciso dai controlli responsive. */
  .qm-hs__full{height:100%;min-height:0;overflow:hidden;display:block;background:transparent}
  .qm-hs__full>.qm-hs__picture,
  .qm-hs__full>.qm-hs__picture>img,
  .qm-hs__full>img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important}

  /* Collage: sempre contenuto e centrato nella viewport, senza elementi fuori asse. */
  .qm-hs .qm-hs__collage{position:relative;height:100%;min-height:0;overflow:hidden;padding:0!important;display:block}
  .qm-hs__collage .qm-hs__grid{
    position:absolute;
    inset:10px;
    width:auto!important;
    height:auto!important;
    max-width:none!important;
    margin:0!important;
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    grid-template-rows:repeat(10,minmax(0,1fr));
    gap:6px;
    overflow:hidden;
  }
  .qm-hs__collage .qm-hs__tile{min-width:0;min-height:0;overflow:hidden}
  .qm-hs__collage .qm-hs__tile img{width:100%;height:100%;object-fit:cover}

  /* Mobile masonry sicuro: nessuna tessera esce dalla griglia. */
  .qm-hs__collage .qm-hs__tile:nth-child(1){grid-column:1/4;grid-row:1/5}
  .qm-hs__collage .qm-hs__tile:nth-child(2){grid-column:4/7;grid-row:1/4}
  .qm-hs__collage .qm-hs__tile:nth-child(3){grid-column:4/7;grid-row:4/7}
  .qm-hs__collage .qm-hs__tile:nth-child(4){grid-column:1/4;grid-row:5/8}
  .qm-hs__collage .qm-hs__tile:nth-child(5){grid-column:4/7;grid-row:7/11}
  .qm-hs__collage .qm-hs__tile:nth-child(6){grid-column:1/3;grid-row:8/11}
  .qm-hs__collage .qm-hs__tile:nth-child(7){grid-column:3/5;grid-row:8/11}
  .qm-hs__collage .qm-hs__tile:nth-child(8){grid-column:5/7;grid-row:8/11}
}

/* Utility per griglie Elementor a 2 colonne con numero dispari di card.
   Aggiungi la classe "qm-mobile-last-wide" al contenitore padre. */
@media(max-width:767px){
  .qm-mobile-last-wide>.e-con:last-child,
  .qm-mobile-last-wide>.elementor-element:last-child{
    flex-basis:100%!important;
    width:100%!important;
    max-width:100%!important;
  }
}
.qm-hs__full .qm-hs__picture>img{object-fit:cover;object-position:center}
