/* ===== ROOT & RESET ===== */
:root{--nero-assoluto:#050505;--nero-profondo:#0a0a0a;--nero-elegante:#111;--carbone:#1a1a1a;--grafite:#2a2a2a;--rame:#b87333;--rame-chiaro:#d4956a;--oro-vecchio:#c9a961;--avorio:#f0e6d3;--avorio-scuro:#c4b9a8;--transition-smooth:all .5s cubic-bezier(.16,1,.3,1)}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Space Grotesk',sans-serif;background:var(--nero-assoluto);color:var(--avorio);line-height:1.6;overflow-x:hidden}

/* ===== INTRO OVERLAY ===== */
.intro-overlay{position:fixed;inset:0;z-index:10000;background:var(--nero-assoluto);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity 1.2s cubic-bezier(.16,1,.3,1),visibility 1.2s}
.intro-overlay.hidden{opacity:0;visibility:hidden;pointer-events:none}
.intro-logo{font-family:'Cormorant Garamond',serif;font-size:clamp(2.5rem,6vw,4.5rem);font-weight:300;color:var(--oro-vecchio);letter-spacing:6px;margin-bottom:1rem;opacity:0;animation:revealUp 1s cubic-bezier(.16,1,.3,1) forwards .3s}
.intro-sub{font-size:.75rem;text-transform:uppercase;letter-spacing:4px;color:var(--avorio-scuro);margin-bottom:3rem;opacity:0;animation:revealUp 1s cubic-bezier(.16,1,.3,1) forwards .6s}
.intro-play{width:80px;height:80px;border:1px solid var(--rame);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition-smooth);background:transparent;opacity:0;animation:revealUp 1s cubic-bezier(.16,1,.3,1) forwards .9s}
.intro-play:hover{background:var(--rame);transform:scale(1.1)}
.intro-play:hover svg{stroke:var(--nero-assoluto)}
.intro-play svg{width:28px;height:28px;stroke:var(--rame);fill:none;stroke-width:1.5;transition:stroke .5s;margin-left:4px}
.intro-hint{font-size:.65rem;text-transform:uppercase;letter-spacing:3px;color:var(--grafite);margin-top:2rem;opacity:0;animation:fadeIn 2s ease forwards 1.5s}

/* ===== AUDIO & CANVAS ===== */
#audioCanvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.3}
.mini-player{position:fixed;bottom:2rem;right:2rem;z-index:999;background:rgba(10,10,10,.9);backdrop-filter:blur(20px);border:1px solid var(--carbone);padding:.8rem 1.2rem;border-radius:100px;display:none;align-items:center;gap:1rem;transition:var(--transition-smooth)}
.mini-player.active{display:flex;animation:slideUp .6s cubic-bezier(.16,1,.3,1)}
.mini-player-title{font-size:.7rem;text-transform:uppercase;letter-spacing:2px;color:var(--rame);font-weight:600}
.mini-player-track{font-size:.75rem;color:var(--avorio-scuro)}
.mini-eq{display:flex;gap:2px;align-items:flex-end;height:20px}
.mini-eq-bar{width:3px;background:var(--rame);border-radius:1px;transition:height .1s ease}
.mini-btn{background:none;border:none;cursor:pointer;padding:.3rem}
.mini-btn svg{width:16px;height:16px;stroke:var(--avorio-scuro);fill:none;stroke-width:2}

/* ===== NAVIGATION ===== */
nav{position:fixed;top:0;width:100%;padding:1.2rem 4%;display:flex;justify-content:space-between;align-items:center;z-index:1000;background:linear-gradient(to bottom,rgba(5,5,5,.95) 0%,transparent 100%);backdrop-filter:blur(20px);transition:var(--transition-smooth)}
nav.scrolled{background:rgba(5,5,5,.98);border-bottom:1px solid var(--carbone)}
.logo{font-family:'Cormorant Garamond',serif;font-size:1.5rem;font-weight:600;color:var(--oro-vecchio);text-decoration:none;letter-spacing:3px;position:relative}
.logo::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--rame);transition:width .6s cubic-bezier(.16,1,.3,1)}
.logo:hover::after{width:100%}
.nav-links{display:flex;gap:2.5rem;list-style:none;align-items:center}
.nav-links a{color:var(--avorio-scuro);text-decoration:none;font-weight:400;font-size:.75rem;transition:color .4s;text-transform:uppercase;letter-spacing:2px;position:relative;padding-bottom:4px}
.nav-links a::after{content:'';position:absolute;bottom:0;left:50%;width:0;height:1px;background:var(--rame);transition:width .4s,left .4s}
.nav-links a:hover,.nav-links a.active{color:var(--rame-chiaro)}
.nav-links a:hover::after,.nav-links a.active::after{width:100%;left:0}
.mobile-toggle{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:.5rem}
.mobile-toggle span{width:24px;height:1.5px;background:var(--rame);transition:var(--transition-smooth)}

/* ===== HERO ===== */
.hero{height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;position:relative;overflow:hidden}
.hero-short{height:60vh}
.hero-content{position:relative;z-index:2;max-width:1000px;padding:0 2rem}
.hero-pretitle{font-size:.75rem;text-transform:uppercase;letter-spacing:6px;color:var(--rame);margin-bottom:2rem;opacity:0;animation:revealUp 1.2s cubic-bezier(.16,1,.3,1) forwards .3s}
.hero h1{font-family:'Cormorant Garamond',serif;font-size:clamp(3.5rem,10vw,8rem);font-weight:300;line-height:.95;margin-bottom:1.5rem;color:var(--avorio);opacity:0;animation:revealUp 1.4s cubic-bezier(.16,1,.3,1) forwards .6s}
.hero h1.h1-small{font-size:clamp(2.5rem,6vw,5rem)}
.hero h1 em{font-style:italic;color:var(--oro-vecchio);font-weight:400}
.hero-subtitle{font-family:'Cormorant Garamond',serif;font-size:clamp(1.1rem,2.5vw,1.6rem);font-weight:300;font-style:italic;color:var(--avorio-scuro);max-width:600px;margin:0 auto 3rem;opacity:0;animation:revealUp 1.2s cubic-bezier(.16,1,.3,1) forwards .9s}
.hero-cta{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap;opacity:0;animation:revealUp 1s cubic-bezier(.16,1,.3,1) forwards 1.2s}

/* ===== BUTTONS ===== */
.btn{padding:1rem 2.5rem;font-family:'Space Grotesk',sans-serif;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:3px;text-decoration:none;transition:var(--transition-smooth);position:relative;overflow:hidden;cursor:pointer;border:none;background:transparent;display:inline-block}
.btn-primary{background:var(--rame);color:var(--nero-assoluto)}
.btn-primary::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:var(--oro-vecchio);transition:left .5s cubic-bezier(.16,1,.3,1);z-index:-1}
.btn-primary:hover::before{left:0}
.btn-primary:hover{color:var(--nero-assoluto);transform:translateY(-3px);box-shadow:0 15px 40px rgba(184,115,51,.3)}
.btn-outline{border:1px solid var(--grafite);color:var(--avorio-scuro)}
.btn-outline:hover{border-color:var(--rame);color:var(--rame-chiaro);transform:translateY(-3px)}
.btn-small{padding:.7rem 1.5rem;font-size:.65rem}

/* ===== MARQUEE ===== */
.marquee-container{background:var(--nero-profondo);border-top:1px solid var(--carbone);border-bottom:1px solid var(--carbone);padding:1.2rem 0;overflow:hidden;position:relative;z-index:2}
.marquee{display:flex;width:max-content;animation:marqueeScroll 30s linear infinite}
.marquee-item{font-size:.8rem;text-transform:uppercase;letter-spacing:4px;color:var(--grafite);padding:0 3rem;white-space:nowrap}
.marquee-item span{color:var(--rame)}

/* ===== SECTION UTILITIES ===== */
.section{padding:8rem 5%;position:relative}
.section-pretitle{font-size:.7rem;text-transform:uppercase;letter-spacing:4px;color:var(--rame);margin-bottom:1rem}
.section-title{font-family:'Cormorant Garamond',serif;font-size:clamp(2.5rem,5vw,4rem);font-weight:300;line-height:1.1;color:var(--avorio);margin-bottom:1.5rem}
.section-title em{font-style:italic;color:var(--oro-vecchio)}
.section-desc{font-family:'Cormorant Garamond',serif;font-size:1.3rem;font-weight:300;color:var(--avorio-scuro);font-style:italic;max-width:600px;margin-bottom:3rem}
.section-header{text-align:center;margin-bottom:5rem}
.section-header .section-desc{margin:0 auto}
.container{max-width:1400px;margin:0 auto}
main{position:relative;z-index:2;min-height:100vh}

/* ===== CARDS ===== */
.card-grid{display:grid;gap:2rem}
.card{background:var(--nero-profondo);border:1px solid var(--carbone);overflow:hidden;transition:var(--transition-smooth);position:relative}
.card:hover{transform:translateY(-8px);border-color:rgba(184,115,51,.3);box-shadow:0 20px 60px rgba(0,0,0,.5)}
.card-img{height:240px;background:linear-gradient(135deg,var(--carbone) 0%,var(--nero-elegante) 100%);position:relative;overflow:hidden}
.card-img::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(5,5,5,.8) 0%,transparent 50%)}
.card-tag{position:absolute;top:1rem;left:1rem;background:rgba(184,115,51,.15);border:1px solid rgba(184,115,51,.3);color:var(--rame);padding:.3rem .8rem;font-size:.65rem;text-transform:uppercase;letter-spacing:2px;z-index:2}
.card-body{padding:2rem}
.card-date{font-size:.7rem;color:var(--rame);text-transform:uppercase;letter-spacing:2px;margin-bottom:.5rem}
.card-title{font-family:'Cormorant Garamond',serif;font-size:1.6rem;color:var(--avorio);margin-bottom:.8rem;font-weight:400}
.card-text{font-size:.9rem;color:var(--avorio-scuro);line-height:1.7}
.card-footer{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;border-top:1px solid var(--carbone)}
.card-price{font-size:1.2rem;color:var(--oro-vecchio);font-weight:600}
.card-status{font-size:.7rem;text-transform:uppercase;letter-spacing:2px;padding:.3rem .8rem;border-radius:2px}
.status-available{background:rgba(46,125,50,.15);color:#81c784;border:1px solid rgba(46,125,50,.3)}
.status-limited{background:rgba(184,115,51,.15);color:var(--rame);border:1px solid rgba(184,115,51,.3)}
.status-soldout{background:rgba(183,28,28,.15);color:#ef5350;border:1px solid rgba(183,28,28,.3)}

/* ===== CAROUSEL ===== */
.carousel{position:relative;overflow:hidden}
.carousel-track{display:flex;gap:2rem;transition:transform .6s cubic-bezier(.16,1,.3,1)}
.carousel-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border:1px solid var(--grafite);background:var(--nero-profondo);color:var(--avorio);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition-smooth);z-index:10;font-size:1.4rem}
.carousel-nav:hover{border-color:var(--rame);color:var(--rame)}
.carousel-prev{left:-24px}
.carousel-next{right:-24px}

/* ===== TIMELINE ===== */
.timeline{position:relative;max-width:800px;margin:0 auto;padding-left:3rem}
.timeline::before{content:'';position:absolute;left:0;top:0;bottom:0;width:1px;background:linear-gradient(to bottom,var(--rame),transparent)}
.timeline-item{position:relative;padding-bottom:4rem}
.timeline-item::before{content:'';position:absolute;left:-3rem;top:.3rem;width:12px;height:12px;border-radius:50%;background:var(--nero-assoluto);border:2px solid var(--rame);transform:translateX(-5px)}
.timeline-year{font-family:'Cormorant Garamond',serif;font-size:2rem;color:var(--oro-vecchio);margin-bottom:.5rem}
.timeline-text{color:var(--avorio-scuro);font-size:1rem;line-height:1.7}

/* ===== CALENDAR ===== */
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--carbone);border:1px solid var(--carbone)}
.calendar-cell{background:var(--nero-profondo);padding:1rem;min-height:100px;position:relative;transition:background .3s}
.calendar-cell:hover{background:var(--nero-elegante)}
.calendar-cell.empty{background:var(--nero-assoluto);opacity:.5}
.calendar-day-num{font-size:.8rem;color:var(--avorio-scuro);margin-bottom:.5rem}
.calendar-event{font-size:.65rem;background:rgba(184,115,51,.15);color:var(--rame);padding:.2rem .5rem;border-radius:2px;margin-bottom:.3rem;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .3s}
.calendar-event:hover{background:rgba(184,115,51,.3)}
.calendar-header{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;margin-bottom:1px}
.calendar-header-cell{text-align:center;padding:.8rem;font-size:.7rem;text-transform:uppercase;letter-spacing:2px;color:var(--avorio-scuro);background:var(--carbone)}
.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}
.calendar-month{font-family:'Cormorant Garamond',serif;font-size:2rem;color:var(--avorio)}

/* ===== FAQ ACCORDION ===== */
.accordion{border:1px solid var(--carbone);margin-bottom:1rem;overflow:hidden}
.accordion-header{padding:1.5rem 2rem;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background .3s}
.accordion-header:hover{background:rgba(184,115,51,.03)}
.accordion-header h4{font-family:'Cormorant Garamond',serif;font-size:1.2rem;color:var(--avorio);font-weight:400}
.accordion-icon{width:20px;height:20px;position:relative;transition:transform .4s}
.accordion-icon::before,.accordion-icon::after{content:'';position:absolute;background:var(--rame);transition:var(--transition-smooth)}
.accordion-icon::before{top:9px;left:0;width:20px;height:1px}
.accordion-icon::after{top:0;left:9px;width:1px;height:20px}
.accordion.open .accordion-icon::after{transform:rotate(90deg);opacity:0}
.accordion.open .accordion-body{max-height:500px}
.accordion-body{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.16,1,.3,1)}
.accordion-content{padding:0 2rem 2rem;color:var(--avorio-scuro);font-size:.95rem;line-height:1.7}

/* ===== MULTI-STEP FORM ===== */
.step-indicator{display:flex;justify-content:center;gap:1rem;margin-bottom:3rem}
.step-dot{width:40px;height:40px;border-radius:50%;border:1px solid var(--grafite);display:flex;align-items:center;justify-content:center;font-size:.8rem;color:var(--avorio-scuro);transition:var(--transition-smooth);position:relative}
.step-dot.active{border-color:var(--rame);color:var(--rame);background:rgba(184,115,51,.1)}
.step-dot.completed{border-color:var(--rame);background:var(--rame);color:var(--nero-assoluto)}
.step-dot::after{content:'';position:absolute;right:-1rem;width:1rem;height:1px;background:var(--grafite)}
.step-dot:last-child::after{display:none}
.form-step{display:none}
.form-step.active{display:block;animation:fadeIn .4s ease}
.form-grid{display:grid}
.input-line{width:100%;padding:1rem 0;background:transparent;border:none;border-bottom:1px solid var(--grafite);color:var(--avorio);font-family:'Cormorant Garamond',serif;font-size:1.1rem}
.input-line:focus{outline:none;border-bottom-color:var(--rame)}
.input-line::placeholder{color:var(--grafite)}
.input-label{display:block;margin-bottom:.8rem;font-size:.7rem;text-transform:uppercase;letter-spacing:3px;color:var(--rame)}
.input-wrap{margin-bottom:1.5rem}

/* ===== GALLERY ===== */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.gallery-item{aspect-ratio:4/3;background:linear-gradient(135deg,var(--carbone),var(--nero-elegante));border:1px solid var(--carbone);overflow:hidden;position:relative;cursor:pointer;transition:var(--transition-smooth)}
.gallery-item:hover{transform:scale(1.02);border-color:rgba(184,115,51,.3)}
.gallery-caption{position:absolute;bottom:0;left:0;right:0;padding:1.5rem;background:linear-gradient(to top,rgba(5,5,5,.9),transparent);transform:translateY(10px);transition:transform .4s}
.gallery-item:hover .gallery-caption{transform:translateY(0)}
.gallery-caption h4{font-family:'Cormorant Garamond',serif;font-size:1.1rem;color:var(--avorio);margin-bottom:.3rem}
.gallery-caption p{font-size:.75rem;color:var(--avorio-scuro);text-transform:uppercase;letter-spacing:2px}

/* ===== NUMBERS ===== */
.numbers-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:3rem}
.number-item{text-align:center;padding:3rem 2rem;border:1px solid var(--carbone)}
.number-value{font-family:'Cormorant Garamond',serif;font-size:4rem;color:var(--oro-vecchio);font-weight:300;line-height:1;margin-bottom:.5rem}
.number-label{font-size:.75rem;text-transform:uppercase;letter-spacing:3px;color:var(--avorio-scuro)}

/* ===== TEAM ===== */
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem}
.team-card{text-align:center}
.team-avatar{width:120px;height:120px;border-radius:50%;background:linear-gradient(135deg,var(--carbone),var(--nero-elegante));margin:0 auto 1.5rem;border:2px solid var(--grafite);display:flex;align-items:center;justify-content:center;font-size:2.5rem}
.team-name{font-family:'Cormorant Garamond',serif;font-size:1.4rem;color:var(--avorio);margin-bottom:.3rem}
.team-role{font-size:.75rem;color:var(--rame);text-transform:uppercase;letter-spacing:2px;margin-bottom:1rem}
.team-bio{font-size:.85rem;color:var(--avorio-scuro);line-height:1.7}

/* ===== TESTIMONIAL ===== */
.testimonial{text-align:center;max-width:700px;margin:0 auto;padding:3rem}
.testimonial-quote{font-family:'Cormorant Garamond',serif;font-size:1.6rem;font-style:italic;color:var(--avorio-scuro);line-height:1.6;margin-bottom:2rem}
.testimonial-author{font-size:.85rem;color:var(--rame);text-transform:uppercase;letter-spacing:2px}

/* ===== NEWSLETTER ===== */
.newsletter-box{max-width:600px;margin:0 auto;text-align:center;padding:4rem;background:var(--nero-profondo);border:1px solid var(--carbone);position:relative}
.newsletter-box::before{content:'';position:absolute;top:-1px;left:50%;transform:translateX(-50%);width:80px;height:2px;background:var(--rame)}
.newsletter-form{display:flex;gap:1rem;margin-top:2rem;flex-wrap:wrap;justify-content:center}
.newsletter-form input{flex:1;min-width:250px;padding:1rem 1.5rem;background:var(--nero-assoluto);border:1px solid var(--grafite);color:var(--avorio);font-family:'Space Grotesk',sans-serif;font-size:.9rem}
.newsletter-form input:focus{outline:none;border-color:var(--rame)}

/* ===== BLOG ===== */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.blog-card:first-child{grid-column:span 2}
.blog-meta{display:flex;gap:1rem;margin-bottom:.5rem}
.blog-meta span:first-child{font-size:.65rem;text-transform:uppercase;letter-spacing:2px;color:var(--rame)}
.blog-meta span:last-child{font-size:.65rem;color:var(--avorio-scuro)}
.blog-search{width:100%;padding:1rem 1.5rem;background:var(--nero-profondo);border:1px solid var(--carbone);color:var(--avorio);font-family:'Space Grotesk',sans-serif;margin-bottom:2rem}
.blog-search:focus{outline:none;border-color:var(--rame)}

/* ===== MEDIA / GALLERY ===== */
.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-bottom:4rem}
.video-item{aspect-ratio:16/9;background:linear-gradient(135deg,var(--carbone),var(--nero-elegante));border:1px solid var(--carbone);display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;overflow:hidden;transition:var(--transition-smooth)}
.video-item:hover{border-color:rgba(184,115,51,.3);transform:translateY(-4px)}
.video-play{width:60px;height:60px;border:1px solid var(--rame);border-radius:50%;display:flex;align-items:center;justify-content:center}
.video-play svg{width:20px;height:20px;stroke:var(--rame);fill:none;stroke-width:1.5;margin-left:3px}

/* ===== MAP ===== */
.map-placeholder{height:400px;background:linear-gradient(135deg,var(--carbone),var(--nero-elegante));border:1px solid var(--carbone);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
.map-placeholder::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%232a2a2a' fill-opacity='0.4'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}
.map-pin{font-size:3rem;position:relative;z-index:2}

/* ===== MODAL ===== */
.modal{position:fixed;inset:0;z-index:10003;background:rgba(5,5,5,.95);backdrop-filter:blur(10px);display:none;align-items:center;justify-content:center;padding:2rem}
.modal.active{display:flex;animation:fadeIn .3s ease}
.modal-content{background:var(--nero-profondo);border:1px solid var(--carbone);max-width:800px;width:100%;max-height:90vh;overflow-y:auto;position:relative}
.modal-close{position:absolute;top:1rem;right:1rem;width:40px;height:40px;border:1px solid var(--grafite);background:var(--nero-elegante);color:var(--avorio);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition-smooth);font-size:1.2rem;z-index:10}
.modal-close:hover{border-color:var(--rame);color:var(--rame)}

/* ===== TOAST ===== */
.toast{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%) translateY(80px);background:var(--nero-elegante);border:1px solid var(--rame);padding:1rem 2rem;z-index:10005;display:flex;align-items:center;gap:1rem;font-size:.85rem;transition:transform .4s cubic-bezier(.16,1,.3,1);white-space:nowrap}
.toast.show{transform:translateX(-50%) translateY(0)}
.toast-icon{color:var(--rame)}

/* ===== COOKIE ===== */
.cookie-banner{position:fixed;bottom:0;left:0;right:0;background:var(--nero-elegante);border-top:1px solid var(--carbone);padding:1.5rem 5%;display:flex;align-items:center;justify-content:space-between;gap:2rem;z-index:10002;transform:translateY(100%);transition:transform .5s cubic-bezier(.16,1,.3,1)}
.cookie-banner.show{transform:translateY(0)}
.cookie-banner p{font-size:.85rem;color:var(--avorio-scuro);flex:1}
.cookie-banner a{color:var(--rame)}

/* ===== BACK TO TOP ===== */
.back-to-top{position:fixed;bottom:2rem;left:2rem;z-index:998;width:48px;height:48px;border:1px solid var(--grafite);background:var(--nero-profondo);color:var(--avorio);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition-smooth);opacity:0;visibility:hidden;transform:translateY(20px)}
.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}
.back-to-top:hover{border-color:var(--rame);color:var(--rame)}

/* ===== REVEAL ===== */
.reveal{opacity:0;transform:translateY(40px);transition:all 1s cubic-bezier(.16,1,.3,1)}
.reveal.active{opacity:1;transform:translateY(0)}

/* ===== SKELETON ===== */
.skeleton{background:linear-gradient(90deg,var(--carbone) 25%,var(--grafite) 50%,var(--carbone) 75%);background-size:200% 100%;animation:skeletonLoad 1.5s infinite;border-radius:4px}
@keyframes skeletonLoad{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ===== FOOTER ===== */
footer{background:var(--nero-profondo);padding:6rem 5% 3rem;border-top:1px solid var(--carbone);position:relative;z-index:2}
.footer-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:4rem;margin-bottom:4rem}
.footer-brand h3{font-family:'Cormorant Garamond',serif;font-size:2rem;color:var(--oro-vecchio);margin-bottom:1.5rem;font-weight:400}
.footer-brand p{color:var(--avorio-scuro);font-size:.95rem;line-height:1.8;max-width:350px}
.footer-col h4{font-size:.7rem;text-transform:uppercase;letter-spacing:3px;color:var(--rame);margin-bottom:1.5rem}
.footer-col ul{list-style:none}
.footer-col li{margin-bottom:.8rem}
.footer-col a{color:var(--avorio-scuro);text-decoration:none;font-size:.9rem;transition:color .3s;position:relative}
.footer-col a::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--rame);transition:width .3s}
.footer-col a:hover{color:var(--rame-chiaro)}
.footer-col a:hover::after{width:100%}
.footer-bottom{max-width:1200px;margin:0 auto;padding-top:2rem;border-top:1px solid var(--carbone);display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:var(--grafite);text-transform:uppercase;letter-spacing:2px}

/* ===== KEYFRAMES ===== */
@keyframes revealUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes marqueeScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ===== RESPONSIVE — TABLET ===== */
@media(max-width:1024px){
/* Nav */
.nav-links{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(5,5,5,.98);flex-direction:column;justify-content:center;align-items:center;gap:2rem;z-index:999}
.nav-links.open{display:flex}
.nav-links a{font-size:1.2rem;letter-spacing:3px}
.mobile-toggle{display:flex;z-index:1001;position:relative}
/* Grids */
.card-grid,.blog-grid,.team-grid{grid-template-columns:1fr 1fr!important}
.numbers-grid{grid-template-columns:1fr 1fr!important}
.blog-card:first-child{grid-column:auto!important;display:block}
.footer-grid{grid-template-columns:1fr 1fr}
/* Timeline */
.timeline{padding-left:2rem}
.timeline::before{left:0}
.timeline-item::before{left:-2rem}
/* Gallery & Video */
.gallery-grid{grid-template-columns:repeat(2,1fr)!important}
.video-grid{grid-template-columns:repeat(2,1fr)!important}
/* Form */
.form-grid{grid-template-columns:1fr!important}
}

/* ===== RESPONSIVE — MOBILE ===== */
@media(max-width:768px){
/* Body & layout */
body{font-size:15px}
.section{padding:4rem 5%}
.container{padding:0}

/* Hero */
.hero{height:100svh;padding-top:5rem}
.hero-short{height:auto;min-height:50vh;padding:7rem 5% 4rem}
.hero-content{padding:0 1.2rem}
.hero-cta{flex-direction:column;align-items:center;gap:1rem}
.hero-cta .btn{width:100%;text-align:center}

/* Intro overlay */
.intro-logo{letter-spacing:3px;font-size:clamp(2rem,10vw,3.5rem)}
.intro-sub{letter-spacing:2px;font-size:.65rem;text-align:center;padding:0 2rem}
.intro-hint{display:none}

/* Nav */
.mobile-toggle{display:flex;z-index:1001;position:relative}

/* Section headers */
.section-header{margin-bottom:3rem}
.section-title{font-size:clamp(2rem,8vw,3rem)!important}
.section-desc{font-size:1.1rem}

/* Grids — tutto a 1 colonna */
.card-grid,.blog-grid,.team-grid,.numbers-grid,.gallery-grid,.video-grid{grid-template-columns:1fr!important}
.blog-card:first-child{grid-column:auto!important}

/* Numbers — 2 colonne su mobile è più leggibile di 1 */
.numbers-grid{grid-template-columns:1fr 1fr!important}
.number-value{font-size:3rem}
.number-item{padding:2rem 1rem}

/* Cards */
.card-img{height:180px}
.card-body{padding:1.5rem}
.card-footer{padding:1rem 1.5rem}

/* Timeline */
.timeline{padding-left:1.5rem}
.timeline::before{left:0}
.timeline-item::before{left:-1.5rem;transform:translateX(-50%)}
.timeline-year{font-size:1.5rem}
.timeline-text{font-size:.9rem}

/* Gallery */
.gallery-grid{grid-template-columns:1fr 1fr!important;gap:.5rem}
.gallery-item{aspect-ratio:1}

/* Video */
.video-grid{grid-template-columns:1fr!important}

/* Calendar */
.calendar-grid,.calendar-header{grid-template-columns:repeat(7,1fr)}
.calendar-cell{min-height:44px;padding:.3rem}
.calendar-day-num{font-size:.65rem}
.calendar-event{display:none}
.calendar-month{font-size:1.3rem}
.calendar-toolbar{gap:.5rem}
.calendar-toolbar .btn{padding:.5rem .8rem;font-size:.6rem}

/* Form */
.form-grid{grid-template-columns:1fr!important;gap:0}
.step-indicator{gap:.5rem}
.step-dot{width:32px;height:32px;font-size:.7rem}
.step-dot::after{right:-.5rem;width:.5rem}
.input-line{font-size:1rem}

/* Blog search + filters */
.blog-search{font-size:.85rem}

/* Mini player */
.mini-player{bottom:0;right:0;left:0;border-radius:0;border-left:none;border-right:none;border-bottom:none;padding:.8rem 1.2rem;justify-content:space-between}

/* Back to top — sale sopra il mini player */
.back-to-top{bottom:5rem;left:1rem;width:40px;height:40px;font-size:.9rem}

/* Cookie banner */
.cookie-banner{flex-direction:column;gap:1rem;padding:1.2rem 5%;text-align:center}

/* Modal */
.modal{padding:.5rem}
.modal-content{max-height:95vh}

/* Footer */
.footer-grid{grid-template-columns:1fr;gap:2rem}
.footer-bottom{flex-direction:column;gap:1rem;text-align:center}
footer{padding:4rem 5% 2rem}

/* Newsletter */
.newsletter-form{flex-direction:column;gap:.8rem}
.newsletter-form input,.newsletter-form .btn{width:100%}
.newsletter-box{padding:2.5rem 1.5rem}

/* Team */
.team-avatar{width:90px;height:90px}

/* Accordion */
.accordion-header{padding:1.2rem 1.2rem}
.accordion-content{padding:0 1.2rem 1.5rem}

/* Specs tags */
.card-body [style*="display:flex"]{flex-wrap:wrap}

/* Buttons */
.btn{padding:.85rem 1.8rem;font-size:.7rem}
.btn-small{padding:.6rem 1.2rem}

/* Map */
.map-placeholder{height:250px}
}
