/* ============================================================
   A Tutto Strato — Shared stylesheet (geometric 3D-print theme)
   ============================================================ */
*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --c-black:#0f0f0f;--c-white:#fafaf8;--c-muted:#6b6b6b;
  --c-line:#e0ddd6;--c-bg:#f5f3ef;
  --c-accent:#ff5b3a;       /* coral filament accent */
  --c-accent-2:#1a6cff;     /* technical blue */
  --font-head:'DM Serif Display',serif;
  --font-body:'DM Sans',sans-serif;
  --font-mono:'JetBrains Mono','Courier New',monospace;
}
html{scroll-behavior:smooth;}
body{background:var(--c-white);font-family:var(--font-body);color:var(--c-black);min-height:100vh;}

/* ===== NAV ===== */
.ats-nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:1.2rem 2.5rem;border-bottom:1px solid var(--c-line);
  position:sticky;top:0;background:rgba(250,250,248,0.94);
  backdrop-filter:blur(8px);z-index:200;
}
.ats-logo{font-family:var(--font-head);font-size:1.3rem;letter-spacing:-0.02em;cursor:pointer;color:var(--c-black);text-decoration:none;display:flex;align-items:center;gap:0.5rem;}
.ats-logo-mark{width:22px;height:22px;display:inline-block;}
.ats-nav-links{display:flex;gap:1.8rem;align-items:center;}
.ats-nav-links a{font-size:0.875rem;color:var(--c-muted);text-decoration:none;letter-spacing:0.02em;transition:color .2s;position:relative;}
.ats-nav-links a:hover{color:var(--c-black);}
.ats-nav-links a.active{color:var(--c-black);font-weight:500;}
.ats-nav-cta{font-size:0.875rem;background:var(--c-black);color:var(--c-white);border:none;padding:0.55rem 1.25rem;border-radius:2rem;cursor:pointer;font-family:var(--font-body);transition:opacity .2s;text-decoration:none;display:inline-block;}
.ats-nav-cta:hover{opacity:0.8;}
.ats-nav-right{display:flex;align-items:center;gap:0.6rem;}

/* Dropdown "Strumenti" */
.ats-drop{position:relative;}
.ats-drop-btn{font-size:0.875rem;color:var(--c-muted);background:none;border:none;cursor:pointer;font-family:var(--font-body);padding:0;display:flex;align-items:center;gap:0.25rem;}
.ats-drop-btn:hover{color:var(--c-black);}
.ats-drop-menu{
  position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(-4px);
  background:var(--c-white);border:1px solid var(--c-line);border-radius:10px;
  min-width:220px;padding:0.5rem;opacity:0;visibility:hidden;
  transition:opacity .18s,transform .18s,visibility .18s;
  box-shadow:0 12px 40px rgba(15,15,15,0.08);z-index:300;
}
.ats-drop:hover .ats-drop-menu, .ats-drop:focus-within .ats-drop-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.ats-drop-menu a{display:flex;flex-direction:column;padding:0.65rem 0.85rem;border-radius:6px;color:var(--c-black);text-decoration:none;transition:background .15s;}
.ats-drop-menu a:hover{background:var(--c-bg);}
.ats-drop-menu .di-title{font-size:0.9rem;font-weight:500;}
.ats-drop-menu .di-sub{font-size:0.74rem;color:var(--c-muted);margin-top:2px;}

/* Mobile hamburger */
.ats-burger{display:none;background:none;border:none;cursor:pointer;width:38px;height:38px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:0;}
.ats-burger span{display:block;width:22px;height:1.5px;background:var(--c-black);transition:all .25s;}
.ats-burger.open span:nth-child(1){transform:translateY(5.5px) rotate(45deg);}
.ats-burger.open span:nth-child(2){opacity:0;}
.ats-burger.open span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg);}

/* ===== GEOMETRIC ELEMENTS (3D-print theme) ===== */
.layer-bg{
  position:absolute;inset:0;pointer-events:none;opacity:.5;
  background:
    repeating-linear-gradient(0deg, transparent 0 22px, rgba(15,15,15,0.04) 22px 23px),
    radial-gradient(circle at 80% 30%, rgba(255,91,58,0.07), transparent 50%);
}
.tech-grid{
  position:absolute;inset:0;pointer-events:none;opacity:.45;
  background-image:
    linear-gradient(rgba(15,15,15,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(15,15,15,0.05) 1px, transparent 1px);
  background-size:40px 40px;
  mask-image:radial-gradient(ellipse at center, black 30%, transparent 80%);
}

/* ===== PAGE CONTAINER ===== */
.page-wrap{max-width:1200px;margin:0 auto;padding:0 2.5rem;}
.page-hero{padding:5rem 2.5rem 3rem;position:relative;overflow:hidden;border-bottom:1px solid var(--c-line);}
.page-hero-inner{position:relative;max-width:1200px;margin:0 auto;}
.page-eyebrow{font-size:0.75rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--c-accent);margin-bottom:1rem;font-weight:500;font-family:var(--font-mono);}
.page-title{font-family:var(--font-head);font-size:3.4rem;line-height:1.05;letter-spacing:-0.02em;margin-bottom:1.25rem;max-width:780px;}
.page-title em{font-style:italic;color:var(--c-muted);}
.page-subtitle{color:var(--c-muted);font-size:1.1rem;max-width:620px;line-height:1.6;}

/* ===== BUTTONS ===== */
.btn-primary{background:var(--c-black);color:var(--c-white);border:none;padding:0.8rem 1.75rem;border-radius:2rem;cursor:pointer;font-family:var(--font-body);font-size:0.9rem;transition:opacity .2s,transform .15s;text-decoration:none;display:inline-block;font-weight:500;}
.btn-primary:hover{opacity:0.88;transform:translateY(-1px);}
.btn-ghost{background:none;color:var(--c-black);border:1px solid var(--c-line);padding:0.75rem 1.5rem;border-radius:2rem;cursor:pointer;font-family:var(--font-body);font-size:0.9rem;transition:border-color .2s;text-decoration:none;display:inline-block;}
.btn-ghost:hover{border-color:var(--c-black);}
.btn-accent{background:var(--c-accent);color:#fff;border:none;padding:0.8rem 1.75rem;border-radius:2rem;cursor:pointer;font-family:var(--font-body);font-size:0.9rem;text-decoration:none;display:inline-block;font-weight:500;transition:transform .15s,box-shadow .2s;}
.btn-accent:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(255,91,58,0.32);}

/* ===== CARDS ===== */
.card{background:var(--c-white);border:1px solid var(--c-line);border-radius:12px;padding:1.75rem;transition:transform .2s,border-color .2s;}
.card:hover{border-color:#cfcabf;}

/* ===== FOOTER ===== */
.ats-footer{border-top:1px solid var(--c-line);margin-top:6rem;background:var(--c-bg);}
.ats-footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:3rem;padding:3.5rem 2.5rem 2rem;max-width:1300px;margin:0 auto;}
.ats-footer h4{font-family:var(--font-head);font-size:1.05rem;margin-bottom:1rem;}
.ats-footer-col p{font-size:0.85rem;color:var(--c-muted);line-height:1.65;margin-bottom:0.5rem;}
.ats-footer-col ul{list-style:none;}
.ats-footer-col ul li{margin-bottom:0.5rem;}
.ats-footer-col ul a{font-size:0.85rem;color:var(--c-muted);text-decoration:none;transition:color .15s;}
.ats-footer-col ul a:hover{color:var(--c-black);}
.ats-footer-bottom{border-top:1px solid var(--c-line);padding:1.25rem 2.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;max-width:1300px;margin:0 auto;font-size:0.78rem;color:var(--c-muted);}
.ats-footer-social{display:flex;gap:0.5rem;}
.ats-footer-social a{width:34px;height:34px;border:1px solid var(--c-line);border-radius:50%;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:0.95rem;color:var(--c-muted);transition:all .18s;}
.ats-footer-social a:hover{border-color:var(--c-black);color:var(--c-black);}

/* ===== WHATSAPP FLOAT ===== */
.wa-float{position:fixed;bottom:1.75rem;right:1.75rem;z-index:300;display:flex;align-items:center;gap:0.6rem;background:#25D366;color:#fff;text-decoration:none;border-radius:2rem;padding:0.65rem 1.2rem 0.65rem 0.9rem;font-family:var(--font-body);font-size:0.875rem;font-weight:500;box-shadow:0 4px 20px rgba(37,211,102,0.35);transition:transform .2s,box-shadow .2s;}
.wa-float:hover{transform:translateY(-2px);box-shadow:0 6px 24px rgba(37,211,102,0.45);}
.wa-float svg{width:20px;height:20px;fill:#fff;flex-shrink:0;}

/* ===== UTILITY ===== */
.section{padding:5rem 2.5rem;}
.section-header{margin-bottom:3rem;}
.section-eyebrow{font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--c-accent);margin-bottom:0.6rem;font-weight:500;}
.section-title{font-family:var(--font-head);font-size:2.4rem;letter-spacing:-0.02em;line-height:1.1;}
.section-desc{color:var(--c-muted);margin-top:0.75rem;max-width:640px;line-height:1.65;}

/* ===== RESPONSIVE ===== */
@media(max-width:900px){
  .ats-footer-grid{grid-template-columns:1fr 1fr;gap:2rem;padding:2.5rem 1.5rem 1.5rem;}
}
@media(max-width:768px){
  .ats-nav{padding:1rem 1.25rem;}
  .ats-nav-links{
    display:none;position:fixed;top:60px;left:0;right:0;background:var(--c-white);
    flex-direction:column;align-items:stretch;gap:0;padding:1rem 1.25rem 1.5rem;
    border-bottom:1px solid var(--c-line);box-shadow:0 12px 24px rgba(0,0,0,0.05);
  }
  .ats-nav-links.open{display:flex;}
  .ats-nav-links a, .ats-drop-btn{padding:0.7rem 0;border-bottom:1px solid var(--c-line);width:100%;}
  .ats-drop{width:100%;}
  .ats-drop-menu{position:static;transform:none;opacity:1;visibility:visible;box-shadow:none;border:none;padding:0 0 0 1rem;min-width:0;}
  .ats-burger{display:flex;}
  .ats-nav-cta{display:none;}
  .page-hero{padding:3rem 1.25rem 2rem;}
  .page-title{font-size:2.2rem;}
  .page-wrap{padding:0 1.25rem;}
  .section{padding:3rem 1.25rem;}
  .ats-footer-grid{grid-template-columns:1fr;}
  .ats-footer-bottom{padding:1.25rem 1.25rem;flex-direction:column;text-align:center;}
}

/* ============================================================
   3D Print theme — Bobine fluttuanti + G-code estrusore animato
   ============================================================ */

/* Layer di bobine sull'hero/sezioni beige */
.spools-layer{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden;perspective:600px;}
.spool{position:absolute;animation:drift 9s ease-in-out infinite;transform-style:preserve-3d;}
.spool svg{width:100%;height:100%;display:block;animation:spin3d 5s linear infinite;}
@keyframes spin3d{from{transform:rotateY(0deg);}to{transform:rotateY(360deg);}}
@keyframes drift{0%,100%{transform:translate(0,0);}50%{transform:translate(28px,-22px);}}
@keyframes drift-2{0%,100%{transform:translate(0,0);}50%{transform:translate(-32px,18px);}}
@keyframes drift-3{0%,100%{transform:translate(0,0);}50%{transform:translate(22px,28px);}}
@keyframes drift-4{0%,100%{transform:translate(0,0);}50%{transform:translate(-26px,-30px);}}
@keyframes drift-5{0%,100%{transform:translate(0,0);}50%{transform:translate(34px,-14px);}}
.spool-1{top:60px;right:140px;width:140px;height:140px;animation-duration:9s;}
.spool-1 svg{animation-duration:5s;}
.spool-2{top:40px;left:38%;width:115px;height:115px;animation-name:drift-2;animation-duration:11s;opacity:0.75;}
.spool-2 svg{animation-duration:7s;animation-direction:reverse;}
.spool-3{top:46%;right:60px;width:125px;height:125px;animation-name:drift-3;animation-duration:10s;}
.spool-3 svg{animation-duration:6s;}
.spool-4{bottom:30px;left:46%;width:100px;height:100px;animation-name:drift-4;animation-duration:12s;opacity:0.70;}
.spool-4 svg{animation-duration:8s;animation-direction:reverse;}
.spool-5{top:55%;left:62%;width:92px;height:92px;animation-name:drift-5;animation-duration:13s;opacity:0.80;}
.spool-5 svg{animation-duration:6.5s;}
@media(max-width:768px){
  .spool-1{width:90px;height:90px;right:20px;top:30px;}
  .spool-2,.spool-4,.spool-5{display:none;}
  .spool-3{width:70px;height:70px;right:30px;top:auto;bottom:30px;}
}

/* Sezione dark "Strumenti" con G-code estrusore */
.gcode-section{background:#0f0f0f;color:#fff;position:relative;overflow:hidden;}
.gcode-section .gcode-bg{position:absolute;inset:0;pointer-events:none;opacity:.65;width:100%;height:100%;}
.gcode-path{stroke-dasharray:1;stroke-dashoffset:1;animation:draw-gcode 24s linear infinite;}
@keyframes draw-gcode{
  0%   { stroke-dashoffset: 1; }
  70%  { stroke-dashoffset: 0; }
  92%  { stroke-dashoffset: 0; }
  100% { stroke-dashoffset: 1; }
}
.nozzle-glow{animation:nozzle-pulse 1.4s ease-in-out infinite;transform-origin:center;transform-box:fill-box;}
@keyframes nozzle-pulse{
  0%,100%{transform:scale(1);opacity:.95;}
  50%{transform:scale(1.45);opacity:.55;}
}
.gcode-readout{
  position:absolute;right:1rem;bottom:1rem;
  font-family:var(--font-mono);font-size:0.5rem;line-height:1.5;color:rgba(255,255,255,0.32);
  text-align:right;letter-spacing:0.02em;z-index:2;
  background:rgba(0,0,0,0.45);border:1px solid rgba(255,91,58,0.22);border-radius:5px;padding:0.35rem 0.5rem;
  backdrop-filter:blur(4px);max-width:140px;pointer-events:none;
}
.gcode-readout .gline{display:block;animation:typeflicker 1.6s steps(1) infinite;}
.gcode-readout .gline:nth-child(1){animation-delay:0s;}
.gcode-readout .gline:nth-child(2){animation-delay:0.3s;}
.gcode-readout .gline:nth-child(3){animation-delay:0.6s;}
.gcode-readout .gline:nth-child(4){animation-delay:0.9s;color:#ff5b3a;}
.gcode-readout .gline:nth-child(5){animation-delay:1.2s;color:rgba(255,255,255,0.55);}
@keyframes typeflicker{0%,90%{opacity:1;}95%{opacity:.3;}100%{opacity:1;}}
.gcode-readout .blink{display:inline-block;width:6px;height:0.8em;background:#ff5b3a;vertical-align:text-bottom;animation:blink 0.7s steps(2) infinite;margin-left:3px;}
@keyframes blink{0%,50%{opacity:1;}51%,100%{opacity:0;}}

/* Hero: pattern layer lines orizzontali */
.hero-bg-layers::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    repeating-linear-gradient(0deg, transparent 0 20px, rgba(15,15,15,0.04) 20px 21px),
    radial-gradient(circle at 75% 30%, rgba(255,91,58,0.08), transparent 55%);
}
@media(max-width:768px){
  .gcode-readout{display:none;}
}

/* ============================================================
   Emoji backgrounds (materiali, preventivo, stl, faq)
   ============================================================ */
.emoji-bg{
  position:absolute;inset:0;pointer-events:none;z-index:0;overflow:hidden;
}
.emoji-bg .e{
  position:absolute;font-size:2rem;opacity:0.18;
  filter:saturate(1.2);
  animation:e-drift 18s ease-in-out infinite, e-spin 30s linear infinite;
}
@keyframes e-drift{
  0%,100%{transform:translate(0,0) rotate(0deg);}
  25%{transform:translate(24px,-18px) rotate(8deg);}
  50%{transform:translate(-16px,22px) rotate(-6deg);}
  75%{transform:translate(20px,12px) rotate(4deg);}
}
@keyframes e-spin{from{filter:hue-rotate(0deg) saturate(1.2);}to{filter:hue-rotate(360deg) saturate(1.2);}}

/* Ensure pages with emoji-bg have positioning context */
[data-emoji-bg]{position:relative;}
[data-emoji-bg] > *:not(.emoji-bg){position:relative;z-index:2;}

/* Chi siamo hero image background */
.chi-image-side{
  position:relative;border-radius:18px;overflow:hidden;
  background:#0f0f0f;min-height:520px;
  background-image:url('img/about-hero.png');
  background-size:cover;background-position:center;
  box-shadow:0 30px 80px rgba(15,15,15,0.18);
  border:1px solid var(--c-line);
}
.chi-image-side::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 50%, rgba(0,0,0,0.6) 100%);
}
.chi-image-credit{
  position:absolute;left:1rem;bottom:1rem;color:#fff;font-family:var(--font-mono);font-size:0.72rem;
  letter-spacing:0.06em;z-index:2;
}
.chi-image-credit small{display:block;opacity:0.7;font-size:0.62rem;margin-top:2px;}
