/* u-home.css — dettagli della Home che il pannello di Elementor non sa esprimere (area di lavoro «home»).
   Lo stile dei blocchi è nelle opzioni dei widget e nel Kit: qui solo ritaglio senza scorrimento (overflow:clip),
   evidenziatore della frase manifesto, esagono davanti ai dati di «Chi siamo», passaggio carosello/griglia dei prodotti. */

/* ritaglia le decorazioni che escono dalla sezione SENZA creare un contenitore scorrevole (mai overflow:hidden: romperebbe lo sticky) */
body.bee .bee-clip{overflow:clip}

/* hero: le forme decorative non intercettano il puntatore */
body.bee .bee-home-sh,body.bee .bee-home-zig,body.bee .bee-home-wm{pointer-events:none}
body.bee .bee-home-sh img,body.bee .bee-home-wm img{display:block;width:100%;height:auto;max-width:none}
body.bee .bee-home-sh-ape img{width:100%}

/* hero: titolo gigante su tre righe sfalsate (ogni riga ruota attorno all'angolo in basso a sinistra) */
body.bee .bee-home-l .elementor-heading-title{white-space:nowrap}

/* frase manifesto: <mark> = evidenziatore giallo sotto le parole; con il JS le parole si accendono scorrendo */
body.bee .bee-statement mark{background:linear-gradient(var(--bee-yel),var(--bee-yel)) no-repeat 0 94%/100% .3em;color:inherit}
body.bee .bee-statement.is-split .w{opacity:.2;transition:opacity .45s}
body.bee .bee-statement.is-split .w.on{opacity:1}
body.bee .bee-statement.is-split mark{background:none}
body.bee .bee-statement.is-split mark .w{background:linear-gradient(var(--bee-yel),var(--bee-yel)) no-repeat 0 94%/0 .3em;transition:opacity .45s,background-size .7s var(--bee-ease)}
body.bee .bee-statement.is-split mark .w.on{background-size:100% .3em}

/* Metodo: la tappa si accende quando la linea (Bee Volo) la raggiunge */
body.bee.bee-js .bee-home-step .elementor-widget{opacity:.35;transition:opacity .5s}
body.bee.bee-js .bee-home-step.on .elementor-widget{opacity:1}

/* Servizi: sotto la larghezza del desktop le scene sono blocchi normali impilati (lo sticky è attivo solo da desktop) */
@media (max-width:1100px){body.bee .bee-home-slot,body.bee .bee-home-scene{min-height:0!important}}
/* schermi bassi (portatili 13-14"): come nel prototipo, meno testo perché tutta la scena resti dentro l'altezza dello schermo:
   fino a 920 px di altezza spariscono i sottotitoli delle righe, fino a 760 anche la frase sotto il titolo */
@media (min-width:1101px) and (max-height:920px){
  body.bee .bee-home-svclist .elementor-widget-text-editor{display:none}
}
@media (min-width:1101px) and (max-height:760px){
  body.bee .bee-home-scene .bee-home-q-svc{display:none}
}

/* Prodotti: da 1360 px tre esagoni in riga (griglia), sotto il carosello (Loop Carousel). Fino a 1100 px lo decidono le opzioni
   «Nascondi su…» di Elementor; per la fascia 1101-1359 px basta questa regola. */
@media (min-width:1101px) and (max-width:1359px){
  body.bee .elementor-widget.bee-home-prod-car.elementor-hidden-desktop{display:block!important}
  body.bee .elementor-widget.bee-home-prod-grid{display:none!important}
}
body.bee .bee-home-prod-car{padding-bottom:6px}

/* movimento ridotto: nessuna transizione sulla frase e sulle tappe */
@media (prefers-reduced-motion:reduce){
  body.bee .bee-statement .w,body.bee .bee-home-step .elementor-widget{transition:none}
}

/* Servizi (fondo scuro): i titoli delle righe del Loop Grid ereditano il colore del testo (avorio); al passaggio diventano neri sul riempimento giallo */
body.bee .bee-home-dark .e-loop-item .elementor-heading-title{color:var(--bee-ivory)}
body.bee .bee-home-dark .e-loop-item .bee-row:hover .elementor-heading-title,body.bee .bee-home-dark .e-loop-item .bee-row:focus-within .elementor-heading-title{color:var(--bee-ink)}

/* FAQ (Accordion con classe bee-faq): solo filetti orizzontali, come nel prototipo (Elementor disegna un riquadro intorno a ogni voce) */
body.bee .bee-faq .elementor-accordion .elementor-accordion-item{border-left:0;border-right:0}
body.bee .bee-faq .elementor-accordion .elementor-tab-content{border-top:0}

/* ===== Servizi: scene a scorrimento bloccato (come nel prototipo) =====
   u-home.js aggiunge `is-pin` alla sezione solo se il movimento non è ridotto: senza, le quattro scene restano blocchi impilati. */
body.bee .bee-scena svg{display:block;width:100%;max-width:min(430px,36vh);height:auto;margin-inline:auto;overflow:visible}
body.bee .bee-scena svg *{transform-box:view-box}
@media (max-width:760px){body.bee .bee-scena svg{max-width:min(200px,24vh);margin-inline:0}}
:root{--bee-sh:min(100vh,920px);--bee-sc:min(60vh,520px)}
@supports (height:100svh){:root{--bee-sh:min(100svh,920px);--bee-sc:min(60svh,520px)}}
body.bee .bee-home-servizi.is-pin{padding-top:0!important;padding-bottom:0!important}
body.bee .is-pin .bee-home-track{height:calc(var(--bee-sh) + 3*var(--bee-sc));margin-top:0!important}
body.bee .is-pin .bee-home-stage{position:sticky;top:0;height:var(--bee-sh);overflow:hidden;box-sizing:border-box;
  padding:calc(var(--bee-hd) + clamp(8px,2vh,26px)) 0 clamp(12px,2.4vh,28px);gap:clamp(.6rem,1.8vh,1.4rem)}
body.bee .is-pin .bee-home-scenes{position:relative;flex:1 1 0;min-height:0;width:100%}
body.bee .is-pin .bee-home-scene{position:absolute;inset:0;border-top:0!important;opacity:0;visibility:hidden;transform:translateY(28px);pointer-events:none;
  padding-top:0!important;padding-bottom:0!important;min-height:0!important;
  transition:opacity .5s ease,transform .7s var(--bee-ease),visibility 0s .5s}
body.bee .is-pin .bee-home-scene.is-on{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition-delay:0s}
body.bee .is-pin .bee-home-scene.is-past{transform:translateY(-28px)}
body.bee .is-pin .bee-home-idx{cursor:pointer;transition:border-color .4s}
body.bee .is-pin .bee-home-idx .elementor-heading-title{transition:color .3s}
body.bee .is-pin .bee-home-idx[aria-current="true"]{border-top-color:var(--bee-yel)!important}
body.bee .is-pin .bee-home-idx[aria-current="true"] .elementor-heading-title{color:var(--bee-ivory)}
@media (max-width:760px){
  body.bee .is-pin .bee-home-scene .bee-home-q-svc,body.bee .is-pin .bee-home-svclist .elementor-widget-text-editor{display:none}
  body.bee .bee-home-idx .elementor-heading-title{display:none}
}
@media (max-height:920px) and (min-width:761px){body.bee .is-pin .bee-home-svclist .elementor-widget-text-editor{display:none}}
@media (max-height:760px) and (min-width:761px){body.bee .is-pin .bee-home-scene .bee-home-q-svc{display:none}}

/* animazioni delle illustrazioni: partono quando la scena è attiva */
.bee-scena .arw{transform-origin:120px 120px}.bee-scena .bull{transform-origin:120px 120px}
.bee-scena .sw{transform-box:fill-box;transform-origin:center}.bee-scena .grow{transform-box:fill-box;transform-origin:left center}
.bee-scena .btnb{transform-box:fill-box;transform-origin:center}.bee-scena .wire{stroke-dasharray:1}
.bee-scena .wave{transform-box:fill-box;transform-origin:left center}
.bee-home-scene.is-on .arw{animation:bee-align 1.1s var(--bee-ease) both}
.bee-home-scene.is-on .a1{--r:-75deg}.bee-home-scene.is-on .a2{--r:55deg;animation-delay:.1s}.bee-home-scene.is-on .a3{--r:80deg;animation-delay:.2s}.bee-home-scene.is-on .a4{--r:-45deg;animation-delay:.3s}
@keyframes bee-align{from{transform:rotate(var(--r));opacity:0}30%{opacity:1}to{transform:none;opacity:1}}
.bee-home-scene.is-on .bull{animation:bee-pulse 1s ease 1.3s both}
@keyframes bee-pulse{0%{transform:scale(1)}50%{transform:scale(1.8)}100%{transform:scale(1)}}
@keyframes bee-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
.bee-home-scene.is-on .sw{animation:bee-pop .5s var(--bee-ease) both;animation-delay:calc(1.1s + var(--k)*.15s)}
@keyframes bee-pop{from{transform:scale(0);opacity:0}to{transform:none;opacity:1}}
.bee-home-scene.is-on .grow{animation:bee-grow .5s var(--bee-ease) both;animation-delay:calc(.2s + var(--k)*.22s)}
@keyframes bee-grow{from{transform:scaleX(0)}to{transform:none}}
.bee-home-scene.is-on .cursor{animation:bee-cur 1.4s ease 1.4s both}
@keyframes bee-cur{from{transform:translate(70px,16px)}70%{transform:translate(0,0)}to{transform:translate(0,0)}}
.bee-home-scene.is-on .btnb{animation:bee-clk .4s ease 2.3s both}
@keyframes bee-clk{50%{transform:scale(1.25)}}
.bee-home-scene.is-on .badge{animation:bee-pop .5s var(--bee-ease) 2.6s both}
.bee-home-scene.is-on .scr{animation:bee-slide .6s var(--bee-ease) both;animation-delay:calc(.2s + var(--k)*.2s)}
@keyframes bee-slide{from{transform:translateX(-30px);opacity:0}to{transform:none;opacity:1}}
.bee-home-scene.is-on .wire{animation:bee-draw 1s ease 1s both}
.bee-home-scene.is-on .pk{animation:bee-travel 1.8s linear 2s infinite}
@keyframes bee-travel{from{transform:translateX(0);opacity:1}to{transform:translateX(60px);opacity:1}}
.bee-home-scene.is-on .wave{animation:bee-wave 2.2s ease-out infinite;animation-delay:calc(var(--k)*.3s)}
@keyframes bee-wave{0%{opacity:0;transform:scale(.6)}35%{opacity:1}100%{opacity:0;transform:scale(1.15)}}
.bee-home-scene.is-on .bub{animation:bee-pop .55s var(--bee-ease) both;animation-delay:calc(.4s + var(--k)*.6s)}
.bee-home-scene.is-on .td{animation:bee-blink 1s ease infinite;animation-delay:calc(var(--k)*.18s + 2s)}
@keyframes bee-blink{50%{opacity:.2}}
@media (prefers-reduced-motion:reduce){.bee-home-scene *{animation:none!important}}

/* Servizi bloccati: titolo come nel prototipo (cresce con la larghezza ma anche con l'altezza dello schermo) e testata più compatta sugli schermi bassi */
body.bee .is-pin .bee-home-svchead .elementor-heading-title{font-size:clamp(1.6rem,min(4vw,6.4vh),3.8rem);line-height:1}
@media (max-height:920px) and (min-width:761px){
  body.bee .is-pin .bee-home-svchead{align-items:center}
  body.bee .is-pin .bee-home-svchead .elementor-widget-text-editor{display:none}
}
@media (max-width:760px){body.bee .is-pin .bee-home-svchead .elementor-widget-text-editor{display:none}body.bee .is-pin .bee-home-svchead .elementor-heading-title{font-size:1.7rem}}

/* Servizi bloccati: righe dell'elenco compatte (come nel prototipo), così le quattro famiglie stanno nell'altezza dello schermo */
body.bee .is-pin .bee-home-svclist .bee-row{padding:clamp(5px,1.1vh,13px) 14px!important}
body.bee .is-pin .bee-home-svclist .elementor-heading-title{font-size:clamp(1.05rem,2.6vh,1.55rem)!important}
