/* Carosello lavorazioni: card verticali con video banner che parte da solo quando la card è visibile */
.carousel-categories{padding:110px 0 95px;background:radial-gradient(circle at 86% 17%,#183021 0,transparent 27%),#0b1119;overflow:hidden}
.carousel-heading{display:flex;justify-content:space-between;align-items:end;gap:35px;margin:0 8% 42px}
.carousel-heading .kicker:after{content:'';display:inline-block;width:74px;height:1px;margin:0 0 4px 17px;background:var(--green)}
.carousel-heading h2{margin:18px 0 0;font-size:clamp(35px,4.7vw,68px);line-height:.9;letter-spacing:-.065em;text-transform:uppercase}
.carousel-controls{display:flex;gap:10px}
.carousel-controls button{display:grid;place-items:center;width:52px;height:52px;border:1px solid var(--line);border-radius:50%;color:var(--light);font-size:20px;transition:color .22s,border-color .22s,background .22s,opacity .22s,transform .3s cubic-bezier(.22,1,.36,1)}
.carousel-controls button:hover,.carousel-controls button:focus-visible{border-color:var(--green);background:var(--green);color:var(--dark);transform:scale(1.06)}
.carousel-controls button:disabled{opacity:.3;pointer-events:none}

.carousel-track{display:flex;gap:16px;margin:0;padding:6px 8% 8px;list-style:none;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;scroll-padding-inline:8%;scrollbar-width:none;cursor:grab}
.carousel-track::-webkit-scrollbar{display:none}
.carousel-track.is-dragging{cursor:grabbing;scroll-snap-type:none}
.carousel-track.is-dragging .carousel-card{pointer-events:none}
.carousel-track:focus-visible{outline:2px solid var(--green);outline-offset:-2px}
.carousel-slide{flex:0 0 clamp(240px,21vw,330px);scroll-snap-align:start}

.carousel-card{position:relative;display:block;aspect-ratio:9/16;width:100%;overflow:hidden;border:1px solid rgba(115,183,67,.4);border-radius:13px;background:#050609;isolation:isolate;transition:border-color .35s,box-shadow .35s,transform .45s cubic-bezier(.22,1,.36,1)}
.carousel-card>img,.carousel-card>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.22,1,.36,1),opacity .5s ease,filter .4s}
.carousel-card>video{z-index:0;opacity:0}
.carousel-card.is-playing>video{opacity:1}
.carousel-card:before{content:'';position:absolute;z-index:1;inset:0;background:linear-gradient(0deg,rgba(5,6,9,.94) 0%,rgba(5,6,9,.5) 30%,rgba(5,6,9,0) 58%);transition:opacity .4s}
.carousel-card:after{content:'';position:absolute;z-index:3;right:16px;bottom:14px;left:16px;height:2px;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .7s cubic-bezier(.22,1,.36,1)}

.carousel-card span{position:absolute;z-index:2;right:70px;bottom:52px;left:18px;color:#fff;font-size:clamp(22px,1.9vw,30px);font-weight:700;line-height:.95;letter-spacing:-.045em;text-transform:uppercase}
.carousel-card i{position:absolute;z-index:2;right:70px;bottom:26px;left:18px;color:#d6d9d6;font-size:12px;font-style:normal;transition:color .3s}
.carousel-card b{position:absolute;z-index:2;right:16px;bottom:26px;display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--green);border-radius:50%;color:var(--green);font-size:20px;font-weight:400;transition:background .25s,color .25s,transform .35s cubic-bezier(.22,1,.36,1)}
.carousel-card:hover,.carousel-card:focus-visible{border-color:var(--green);box-shadow:0 22px 50px #0008,inset 0 0 26px #73b74335;transform:translateY(-6px)}
.carousel-card:hover>img,.carousel-card:focus-visible>img{transform:scale(1.06);filter:brightness(.85)}
.carousel-card.is-playing>img{opacity:0}
.carousel-card:hover:after,.carousel-card:focus-visible:after{transform:scaleX(1)}
.carousel-card:hover b,.carousel-card:focus-visible b{background:var(--green);color:var(--dark);transform:rotate(-45deg) scale(1.08)}
.carousel-card:hover i,.carousel-card:focus-visible i{color:var(--green)}

.carousel-progress{overflow:hidden;height:2px;margin:34px 8% 0;background:var(--line)}
.carousel-progress span{display:block;width:var(--progress-size,20%);height:100%;background:var(--green);transform:translateX(var(--progress-offset,0%))}

@media(max-width:850px){
  .carousel-categories{padding:85px 0 75px}
  .carousel-heading{margin:0 6% 34px}
  .carousel-track{padding-inline:6%;scroll-padding-inline:6%}
  .carousel-slide{flex-basis:clamp(230px,42vw,300px)}
  .carousel-progress{margin-inline:6%}
}
@media(max-width:560px){
  .carousel-categories{padding:74px 0 64px}
  .carousel-heading{align-items:flex-end}
  .carousel-controls{display:none}
  .carousel-track{gap:12px}
  .carousel-slide{flex-basis:72vw}
}
@media(prefers-reduced-motion:reduce){
  .carousel-card,.carousel-card>img,.carousel-card>video,.carousel-card:after,.carousel-card b,.carousel-progress span{transition:none}
}

/* Scorrimento automatico: niente snap durante l'animazione, card che "respirano" e immagini in parallasse */
.carousel-track.is-animating{scroll-snap-type:none}
.carousel-card{transition:border-color .35s,box-shadow .35s,transform .45s cubic-bezier(.22,1,.36,1),scale .55s cubic-bezier(.22,1,.36,1),filter .55s ease}
.carousel-track.is-animating .carousel-card{scale:.955;filter:brightness(.88)}
.carousel-card>img,.carousel-card>video{inset:0 -12%;width:124%;translate:var(--parallax,0%) 0}
@media(prefers-reduced-motion:reduce){.carousel-track.is-animating .carousel-card{scale:1;filter:none}.carousel-card>img,.carousel-card>video{translate:none}}
