:root{--bordeaux:#7a1f24;--oro:#FFA773;--verde-salvia:#a3b18a;--beige:#f8f3e7;--grafite:#0f0f12;--blu:#8FE8FF;}*{box-sizing:border-box;margin:0;padding:0}img,video{max-width:100%;height:auto;display:block}html{scroll-behavior:smooth;scroll-padding-top:80px}body{font-family:'Montserrat',system-ui,sans-serif;font-weight:300;background-color:var(--grafite);color:var(--beige);line-height:1.7;font-size:clamp(14px,1.2vw,18px);padding:2rem;}p{margin-bottom:1rem}h1,h2,h3{color:var(--oro);font-weight:500}h2{font-size:clamp(22px,3vw,34px);text-transform:uppercase;letter-spacing:1px;margin-bottom:1.5rem;}h3{font-size:clamp(16px,2.2vw,22px);font-weight:400;margin-bottom:.6rem;}*{transition:color .2s ease,background-color .2s ease,transform .25s ease}a{color:var(--oro);text-decoration:none;font-weight:600}a:hover{color:var(--verde-salvia);text-decoration:underline}a:focus,button:focus{outline:2px dashed var(--oro);outline-offset:4px}.bottone{display:inline-block;background-color:var(--oro);color:var(--grafite);padding:.6rem 1.2rem;border-radius:.6rem;margin-top:1rem;font-weight:600;}.bottone:hover{background-color:var(--verde-salvia);color:var(--grafite)}main[id],section{scroll-margin-top:80px}.header{position:sticky;top:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:.6rem 1.6rem;background-color:var(--grafite);border-bottom:1px solid #222533;}.logo{height:80px;width:auto;transition:height .3s ease}.menu{display:flex;gap:1.5rem}.menu a{color:var(--beige);font-weight:600}.menu a:hover{color:var(--oro)}.menu a.active{color:var(--oro);text-decoration:underline}.menu-toggle{display:none;background:none;border:none;font-size:1.8rem;color:var(--oro);cursor:pointer;padding:.5rem;border-radius:.4rem}.menu-toggle:hover{background-color:rgba(255,255,255,.1)}.hero{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:85vh;text-align:center;color:var(--beige);background:linear-gradient(180deg,rgba(15,15,18,0),rgba(21,24,33,.85)),url('../img/photo_hero.png') center/cover no-repeat;background-attachment:fixed;animation:fadeHero 1.6s ease-in-out both;}@media (max-width:1024px){.hero{background-attachment:scroll}}.hero-text{max-width:700px;padding:2rem;backdrop-filter:blur(4px);border-radius:.8rem;}.hero h2{color:var(--oro);margin-bottom:1rem;font-size:clamp(28px,4vw,48px);text-transform:uppercase;letter-spacing:1.5px;}.hero p{color:var(--beige);opacity:.9;font-size:clamp(14px,1.4vw,18px);line-height:1.6}@keyframes fadeHero{from{opacity:0;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.servizi{padding:4rem 2rem;background-color:var(--grafite);color:var(--beige);text-align:center}.servizi h2{color:var(--oro);margin-bottom:2rem}.grid-servizi{display:grid;gap:2rem;max-width:1000px;margin:0 auto;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));}.card{background-color:#151821;border:1px solid #222533;border-radius:.8rem;padding:2rem;transition:transform .3s ease,box-shadow .3s ease;}.card:hover{transform:translateY(-8px);box-shadow:0 10px 20px rgba(0,0,0,.4)}.card h3{color:var(--blu);margin-bottom:1rem}.card p{color:var(--beige);font-size:.95rem;line-height:1.5}.portfolio{padding:4rem 2rem;background-color:#151821;color:var(--beige);text-align:center}.portfolio h2{color:var(--oro);margin-bottom:2rem;font-size:clamp(22px,3vw,34px);text-transform:uppercase;letter-spacing:1px}.grid-portfolio{display:grid;gap:2rem;max-width:1100px;margin:0 auto;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.item{position:relative;overflow:visible;border-radius:.8rem;background:transparent;border:none;transition:transform .3s ease,box-shadow .3s ease;text-align:center;}.item:hover{transform:translateY(-4px);box-shadow:0 12px 26px rgba(0,0,0,.35)}.item img,.item video{width:100%;display:block;object-fit:cover;transition:transform .35s ease,opacity .35s ease}.item:hover img{transform:scale(1.03);opacity:.9}.overlay{position:absolute;inset:0;background:rgba(10,10,10,.65);color:var(--beige);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .35s ease;}.item:hover .overlay{opacity:1}.item.video:hover img,.item.video .overlay{display:none}.caption{margin-top:.6rem;font-size:.9rem;color:var(--beige);opacity:.85;text-align:center;line-height:1.4;letter-spacing:.3px;}.contatti{background-color:#151821;padding:4rem 2rem;text-align:center;color:var(--beige)}.contatti h2{color:var(--oro);margin-bottom:2rem}.grid-contatti{display:grid;gap:2rem;max-width:1000px;margin:0 auto;align-items:start;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));}.info{text-align:left}.info p{margin-bottom:1.5rem;line-height:1.6}.form-contatti{display:flex;flex-direction:column;gap:1rem}.form-contatti input,.form-contatti textarea{background-color:#0f0f12cc;color:var(--beige);border:1px solid #444;border-radius:.5rem;padding:.8rem;font-size:1rem;font-family:inherit;}.form-contatti input::placeholder,.form-contatti textarea::placeholder{color:#888}.form-contatti button{align-self:flex-start}.footer{background-color:#151821;color:var(--beige);padding:2rem 1rem;text-align:center;border-top:1px solid #222533}.footer-content{max-width:1000px;margin:0 auto}.footer-links{list-style:none;padding:0;margin:1rem 0;display:flex;justify-content:center;flex-wrap:wrap;gap:1.2rem}.footer-links a{color:var(--oro);font-weight:500}.footer-links a:hover{color:var(--verde-salvia)}.footer-social a{color:var(--oro);margin:0 .5rem;font-size:1.4rem}.footer-social a:hover{color:var(--verde-salvia);transform:scale(1.2)}.footer p{margin:.5rem 0;font-size:.9rem;font-weight:300;letter-spacing:.5px;color:var(--beige);display:flex;align-items:center;justify-content:center;gap:.4rem}.footer p strong{font-weight:500;color:var(--oro)}.footer p i{font-size:1rem;color:var(--oro)}@media (max-width:768px){.header{flex-direction:column;align-items:flex-start}.menu{display:none;flex-direction:column;width:100%;background:#151821;margin-top:1rem;padding:1rem;border-radius:.5rem}.menu a{margin:.5rem 0}.menu.open{display:flex}.menu-toggle{display:block}.hero{min-height:60vh;padding:2rem 1rem}}@media (max-width:480px){.header{padding:1rem}.hero{min-height:70vh}.bottone{width:100%;text-align:center}main[id],section{scroll-margin-top:100px}}.video-wrapper{position:relative;width:100%;padding-top:56.25%;background:#000;border-radius:.8rem;overflow:hidden}.video-wrapper video,.video-wrapper iframe{position:absolute;inset:0;width:100%;height:100%;display:block}.animate-on-scroll{opacity:0;transform:translateY(50px);transition:opacity .8s ease,transform .8s ease}.animate-on-scroll.visible{opacity:1;transform:translateY(0)}.animate-title{opacity:0;transform:translateX(-40px);transition:all .8s ease-out}.animate-title.visible{opacity:1;transform:translateX(0)}.logo,.logo-link{display:inline-block;will-change:transform,opacity}@keyframes slideLogoIn{0%{opacity:0;transform:translateX(120%)}60%{opacity:1;transform:translateX(-10%)}100%{opacity:1;transform:translateX(0)}}.logo.animate-in{animation:slideLogoIn 1.4s cubic-bezier(.16,1,.3,1) forwards}.logo-animated{opacity:0;transform:translateY(-8px) scale(.98);animation:logoIn .9s ease-out .2s forwards}@keyframes logoIn{to{opacity:1;transform:translateY(0) scale(1)}}.logo:hover,.logo-link:hover{transform:translateY(-2px);transition:transform .25s ease}@media (prefers-reduced-motion:reduce){.logo-animated{animation:none;opacity:1;transform:none}.logo:hover,.logo-link:hover{transform:none}}.logo-animated-3d{opacity:0;transform:perspective(800px) rotateX(8deg) translateY(-12px) scale(.98);transform-origin:center;animation:logoIn3D .9s cubic-bezier(.2,.8,.2,1) .2s forwards;}@keyframes logoIn3D{40%{opacity:1}to{opacity:1;transform:perspective(800px) rotateX(0) translateY(0) scale(1)}}.logo:hover,.logo-link:hover{transform-origin:center bottom;transform-style:preserve-3d;animation:logoSwing3DHover 1.2s ease-in-out}@keyframes logoSwing3DHover{0%{transform:perspective(800px) rotateX(0) rotateZ(0)}25%{transform:perspective(800px) rotateX(5deg) rotateZ(2deg)}50%{transform:perspective(800px) rotateX(-5deg) rotateZ(-2deg)}75%{transform:perspective(800px) rotateX(3deg) rotateZ(1deg)}100%{transform:perspective(800px) rotateX(0) rotateZ(0)}}@media (prefers-reduced-motion:reduce){.logo-animated-3d{animation:none;opacity:1;transform:none}}.modal[hidden]{display:none}.modal{position:fixed;inset:0;z-index:2000;display:grid;place-items:center}.modal__overlay{position:absolute;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(2px);animation:fadeOverlay .25s ease}@keyframes fadeOverlay{from{opacity:0}to{opacity:1}}.modal__content{position:relative;width:min(92vw,560px);background:#151821;color:var(--beige);border:1px solid #222533;border-radius:1rem;padding:1.4rem;box-shadow:0 24px 64px rgba(0,0,0,.55);transform:translateY(16px) scale(.98);opacity:0;transition:opacity .25s ease,transform .25s ease;}.modal.open .modal__content{opacity:1;transform:translateY(0) scale(1)}.modal__body>*{margin:0}.modal__body img,.modal__body video{width:100%;border-radius:.6rem;display:block}.popup-text{font-size:clamp(14px,1.2vw,18px);line-height:1.6;color:var(--beige);border-left:4px solid var(--oro);padding-left:.8rem}.no-scroll{overflow:hidden}@media (prefers-reduced-motion:reduce){.modal__content{transition:none;transform:none;opacity:1}}.intro-flyer{position:fixed;top:var(--flyer-top,12vh);left:0;width:100%;height:0;pointer-events:none;z-index:3000}.intro-flyer img{width:var(--flyer-width,clamp(1380px,25vw,520px));display:block;margin:0 auto;opacity:0;transform-origin:center bottom;will-change:transform,opacity;}.intro-flyer.play img{animation:flyerSequence var(--flyer-duration,3.2s) cubic-bezier(.16,1,.3,1) both}@keyframes flyerSequence{0%{opacity:0;transform:translateX(120vw) rotate(0)}10%{opacity:1}40%{transform:translateX(0) rotate(0)}55%{transform:translateX(0) rotate(0)}60%{transform:translateX(0) rotate(4deg)}65%{transform:translateX(0) rotate(-4deg)}70%{transform:translateX(0) rotate(3deg)}75%{transform:translateX(0) rotate(-3deg)}80%{transform:translateX(0) rotate(0)}90%{transform:translateX(-60vw)}100%{opacity:1;transform:translateX(-100vw) rotate(0)}}@media (prefers-reduced-motion:reduce){.intro-flyer.play img{animation:none;opacity:0}}.whatsapp-float{position:fixed;bottom:24px;left:24px;z-index:4000;width:64px;height:64px;border-radius:50%;background:rgba(0,0,0,.7);display:grid;place-items:center;box-shadow:0 4px 10px rgba(0,0,0,.25);backdrop-filter:blur(6px);isolation:isolate;font-size:0;line-height:0;transition:transform .25s ease,box-shadow .25s ease;}.whatsapp-float:hover{transform:scale(1.08);box-shadow:0 6px 16px rgba(255,215,0,.5)}.whatsapp-float svg{width:34px;height:34px;fill:#FFD700;display:block}.whatsapp-float{isolation:isolate}.whatsapp-float::before,.whatsapp-float::after{content:"";position:absolute;inset:-6px;border-radius:50%;pointer-events:none;z-index:-1;background:radial-gradient(circle,rgba(255,215,0,.70) 0%,rgba(255,215,0,.32) 30%,rgba(255,215,0,0) 60%);transform:scale(1);opacity:.9;animation:wa-pulse 2.6s ease-out infinite;}.whatsapp-float::before{animation-delay:1.3s}@keyframes wa-pulse{0%{transform:scale(1);opacity:.9;filter:none}60%{transform:scale(2.4);opacity:.12;filter:blur(2px)}100%{transform:scale(2.5);opacity:0;filter:blur(3px)}}html{box-sizing:border-box;-webkit-text-size-adjust:100%}*,*::before,*::after{box-sizing:inherit}body{margin:0;overflow-x:hidden;font-family:'Montserrat',system-ui,-apple-system,sans-serif;line-height:1.4}img,svg,video,canvas{max-width:100%;height:auto;display:block}.container,.wrapper,.section{max-width:1200px;margin-inline:auto;padding-inline:clamp(16px,5vw,32px)}h1{font-size:clamp(28px,6vw,44px);line-height:1.1}h2{font-size:clamp(22px,4.5vw,32px);line-height:1.2}h3{font-size:clamp(18px,3.8vw,24px);line-height:1.25}p,li{font-size:clamp(15px,3.5vw,18px)}.row,.grid,.columns{display:grid;gap:min(4vw,24px)}@media (min-width:900px){.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}}button,.btn,a.button{min-height:44px;padding:10px 18px}.header--fixed,header.is-fixed,header.sticky{position:sticky;top:0;z-index:1000}main{scroll-margin-top:80px}@media (max-width:768px){.cols-2,.two-col{display:grid;grid-template-columns:1fr}.hero,.section{padding-block:clamp(24px,8vw,64px)}}.hero-100vh,.fullvh,.vh-100{min-height:100svh}input,select,textarea{font-size:16px}[class*="col-"],[class*="w-"]{max-width:100%}