/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{background:var(--ink);padding-top:0}
.foot-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;padding-bottom:50px;border-bottom:1px solid var(--line)}
.foot-brand .logo{margin-bottom:20px}
.foot-brand p{color:var(--fog);max-width:36ch;font-size:14.5px}
.foot-col h5{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--fog-dim);margin:0 0 18px}
.foot-col a,.foot-col p{display:block;color:var(--fog);font-size:14.5px;padding:7px 0;transition:color .2s}
.foot-col a:hover{color:var(--orange)}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding:28px 0 50px}
.foot-bottom p{margin:0;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--fog-dim);text-transform:uppercase}
.foot-bottom .made{color:var(--fog-dim)}
.foot-legal{display:flex;gap:18px;flex-wrap:wrap;align-items:center;order:3;flex-basis:100%}
.foot-legal a{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--fog-dim);text-decoration:none;transition:color .2s}
.foot-legal a:hover{color:var(--orange)}

/* ---------- Footer animation ── scan-line + entrance + hover ---------- */

/* Scan-line arancio che scorre in cima al footer */
.site-footer { position: relative; overflow: hidden; }
.site-footer::before {
  content: "";
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg,
    transparent 0%,
    var(--orange) 25%,
    var(--yellow) 50%,
    var(--orange) 75%,
    transparent 100%);
  background-size: 300% 100%;
  animation: footScan 5s ease-in-out infinite;
  z-index: 1;
}
@keyframes footScan {
  0%   { background-position: 200% center; opacity: .5; }
  50%  { background-position: -50% center; opacity: 1; }
  100% { background-position: -200% center; opacity: .5; }
}

/* Entrance fade-up per le colonne del footer */
.foot-brand {
  animation: footUp .9s .2s var(--ease-out, cubic-bezier(.22,.68,0,1.2)) both;
}
.foot-top .foot-col:nth-child(2) {
  animation: footUp .9s .38s var(--ease-out, cubic-bezier(.22,.68,0,1.2)) both;
}
.foot-top .foot-col:nth-child(3) {
  animation: footUp .9s .56s var(--ease-out, cubic-bezier(.22,.68,0,1.2)) both;
}
@keyframes footUp {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: none; }
}

/* Hover: underline animato sui link footer */
.foot-col a {
  position: relative;
  display: inline-block;
}
.foot-col a::after {
  content: "";
  position: absolute;
  bottom: 4px; left: 0;
  width: 0; height: 1px;
  background: var(--orange);
  transition: width .3s ease;
}
.foot-col a:hover::after { width: 100%; }
.foot-col a:hover { color: var(--orange); }

/* Social links */
.foot-social{display:flex;gap:8px;margin-top:14px}
.foot-social-link{
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;
  border:1px solid var(--line-strong);border-radius:4px;
  color:var(--fog);transition:color .2s,border-color .2s;
}
.foot-social-link:hover{color:var(--orange);border-color:var(--orange)}

/* logo ufficiale cliente nel footer + glow su hover */
.foot-brand .logo .brand-logo{height:64px}
.site-footer .logo .brand-logo{transition:filter .3s ease}
.site-footer .logo:hover .brand-logo{filter:drop-shadow(0 0 8px rgba(255,106,26,.6))}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translate3d(0,34px,0);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
.reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.08s}
.reveal[data-d="2"]{transition-delay:.16s}
.reveal[data-d="3"]{transition-delay:.24s}
.reveal[data-d="4"]{transition-delay:.32s}

/* ---------- 3D scroll reveal (perspective tilt + directional fade) ---------- */
.reveal3d{opacity:0;transform:perspective(1200px) rotateY(-15deg) translate3d(0,52px,0);
  transform-origin:left center;backface-visibility:hidden;will-change:transform,opacity;
  transition:opacity .85s var(--ease-out),transform .9s var(--ease-out)}
.reveal3d.in{opacity:1;transform:perspective(1200px) rotateY(0deg) translate3d(0,0,0)}
.reveal3d[data-d="1"]{transition-delay:.07s}
.reveal3d[data-d="2"]{transition-delay:.14s}
.reveal3d[data-d="3"]{transition-delay:.21s}

/* ---------- entrance: nav blur-in ---------- */
@keyframes navIn{from{opacity:0;filter:blur(7px);transform:translate3d(0,-8px,0)}to{opacity:1;filter:blur(0);transform:none}}
.nav-anim a,.nav-anim .header-cta{animation:navIn .6s var(--ease-out) both}
.nav-anim a:nth-child(1){animation-delay:.30s}
.nav-anim a:nth-child(2){animation-delay:.38s}
.nav-anim a:nth-child(3){animation-delay:.46s}
.nav-anim a:nth-child(4){animation-delay:.54s}
.nav-anim a:nth-child(5){animation-delay:.62s}
.header-cta{animation:navIn .6s var(--ease-out) .7s both}

/* ---------- parallax helpers ---------- */
[data-par]{will-change:transform}
.geo-block{position:absolute;pointer-events:none;z-index:0;border:1px solid var(--line);border-radius:6px}
.geo-ring{position:absolute;pointer-events:none;z-index:0;border:1px solid rgba(255,106,26,.18);border-radius:50%}

@media (prefers-reduced-motion:reduce){
  .reveal,.reveal3d{opacity:1;transform:none}
  .hero h1 .line i{animation:none;transform:none}
  .hero-row .lead,.hero-actions{animation:none;opacity:1}
  .nav-anim a,.nav-anim .header-cta,.header-cta{animation:none}
  [data-par]{transform:none !important}
}

/* ============================================================
   FOOTER — Scena cantiere animata
   ============================================================ */

.foot-scene{width:100%;overflow:hidden;line-height:0;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 18%,#000 80%,transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 0%,#000 18%,#000 80%,transparent 100%)}
.foot-scene-svg{width:100%;height:auto;display:block}

/* Padding contenuto footer */
.site-footer>.wrap{padding-top:clamp(40px,5vw,64px)}

/* ── Camion 1: grande, destra → sinistra 20s ── */
.ft-truck1{animation:ftTruck1 20s linear infinite}
@keyframes ftTruck1{
  from{transform:translateX(1260px)}
  to  {transform:translateX(-200px)}
}

/* ── Camion 2: medio, sfasato 27s ── */
.ft-truck2{animation:ftTruck2 27s linear infinite;animation-delay:-11s}
@keyframes ftTruck2{
  from{transform:translateX(1260px)}
  to  {transform:translateX(-170px)}
}

/* ── Braccio ruspa: oscillazione ── */
.ft-exc-arm{
  transform-box:fill-box;
  transform-origin:100% 55%;
  animation:ftExcArm 5s ease-in-out infinite}
@keyframes ftExcArm{
  0%,100%{transform:rotate(0deg)}
  38%    {transform:rotate(20deg)}
  72%    {transform:rotate(-12deg)}
}

/* ── Polvere benna ── */
.ft-dust1{animation:ftDust 2.2s ease-in-out infinite}
.ft-dust2{animation:ftDust 2.2s ease-in-out infinite;animation-delay:-.7s}
.ft-dust3{animation:ftDust 2.2s ease-in-out infinite;animation-delay:-1.4s}
@keyframes ftDust{
  0%,100%{transform:scale(1);opacity:.65}
  50%    {transform:scale(1.6);opacity:.12}
}

/* ── Polvere ruote camion 1 ── */
.ft-t1dust{animation:ftWDust 1.4s ease-out infinite}
@keyframes ftWDust{
  0%  {transform:scale(1);opacity:.5}
  100%{transform:scale(2.8) translateX(-6px);opacity:0}
}

/* ── Fumo scarico ruspa ── */
.ft-smoke {animation:ftSmoke 3s ease-in-out infinite}
.ft-smoke2{animation:ftSmoke 3s ease-in-out infinite;animation-delay:-1.5s}
@keyframes ftSmoke{
  0%  {transform:translateY(0) scale(1);opacity:.6}
  100%{transform:translateY(-14px) scale(2.2);opacity:0}
}

/* ── Reduced motion: ferma tutto, mostra camion fermi ── */
@media(prefers-reduced-motion:reduce){
  .ft-truck1,.ft-truck2,.ft-exc-arm,
  .ft-dust1,.ft-dust2,.ft-dust3,
  .ft-t1dust,.ft-smoke,.ft-smoke2{animation:none}
  .ft-truck1{transform:translateX(380px)}
  .ft-truck2{transform:translateX(640px)}
}

/* ============================================================
   FLOATING SOCIAL SIDEBAR
   ============================================================ */
.soc-float{
  position:fixed;
  right:0;
  top:50%;
  transform:translateY(-50%);
  z-index:90;
  display:flex;
  flex-direction:column;
}
.soc-float-link{
  width:46px;
  height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--surface-2);
  border:1px solid var(--line-strong);
  border-right:none;
  color:var(--fog);
  transition:color .2s,background .2s,border-color .2s;
}
.soc-float-link:first-child{border-top-left-radius:8px}
.soc-float-link:last-child {border-bottom-left-radius:8px}
.soc-float-link:hover{
  background:var(--orange);
  color:#fff;
  border-color:var(--orange);
}
.soc-float-link.soc-wa{
  background:#25D366;
  color:#fff;
  border-color:#1EB85C;
}
.soc-float-link.soc-wa:hover{
  background:#128C7E;
  border-color:#128C7E;
}

/* WhatsApp nel footer */
.foot-social-link.soc-wa{
  background:#25D366;
  color:#fff;
  border-color:#1EB85C;
}
.foot-social-link.soc-wa:hover{
  background:#128C7E;
  border-color:#128C7E;
  color:#fff;
}

@media(max-width:768px){.soc-float{display:none}}

