:root{--bg:#080808;--surface:#111;--white:#fff;--muted:#b4b4b4;--red:#ef1827;--line:#292929;--max:1420px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;background:var(--bg);color:var(--white);font-family:Inter,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--red);outline-offset:4px}.wrap{width:min(calc(100% - 100px),var(--max));margin-inline:auto}.skip{position:absolute;top:-100px;left:12px;z-index:100;background:white;color:black;padding:12px}.skip:focus{top:12px}.header{position:absolute;z-index:30;top:0;left:0;width:100%;height:96px;display:flex;align-items:center;gap:30px;padding:0 clamp(25px,5vw,90px);background:linear-gradient(#050505d9,#05050505)}.brand{display:flex;align-items:center;flex:0 0 auto}.brand img{display:block;width:170px;height:auto}.nav{display:flex;align-items:center;gap:clamp(15px,2.4vw,38px);margin:auto}.nav a{font-size:12px;font-weight:800;text-transform:uppercase;white-space:nowrap;transition:color .2s}.nav a:hover,.nav a.active{color:var(--red)}.button{min-height:48px;padding:0 22px;display:inline-flex;align-items:center;justify-content:center;gap:22px;font-size:12px;letter-spacing:.015em;text-transform:uppercase;font-weight:800;transition:transform .25s,background .25s,border-color .25s}.button:hover{transform:translateY(-3px)}.button-red{background:var(--red);color:white;border:1px solid var(--red)}.button-red:hover{background:#c9101d}.button-outline{border:1px solid var(--red);color:var(--red)}.button-glass{border:1px solid #ddd;color:white;background:#0005}.header-cta{white-space:nowrap}.menu-toggle{display:none;border:0;background:transparent;padding:12px;cursor:pointer}.menu-toggle span{display:block;width:26px;height:2px;background:white;margin:5px 0}.hero{height:min(850px,100svh);min-height:650px;position:relative;display:flex;align-items:center;isolation:isolate}.hero-image{position:absolute;inset:0;background-image:url('assets/hero-concerto.jpg');background-size:cover;background-position:center 52%;z-index:-3}.hero-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#000 0%,#000e 24%,#0008 48%,#0002 78%),linear-gradient(0deg,#080808 0%,transparent 27%,#0004 100%)}.hero-content{padding-top:70px}.eyebrow,.kicker{font-size:12px;letter-spacing:.11em;font-weight:800;color:var(--red);text-transform:uppercase}.eyebrow{color:white;display:flex;align-items:center;gap:14px}.red-line{height:2px;width:35px;background:var(--red)}h1,h2,h3,p{margin-top:0}h1,h2{font-weight:900;letter-spacing:-.065em;line-height:.98}h1{font-size:clamp(53px,6.1vw,110px);margin:27px 0 24px}h1 em{font-style:normal;color:var(--red)}.hero-content p{max-width:520px;font-size:clamp(15px,1.3vw,19px);line-height:1.65;color:#e0e0e0}.hero-actions{display:flex;gap:14px;margin-top:30px}.hero-bottom{position:absolute;bottom:35px;left:50%;transform:translateX(-50%);display:flex;justify-content:space-between;font-size:11px;font-weight:800;letter-spacing:.08em}.section{padding-top:115px;padding-bottom:115px}.section-top{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:40px}.section-top p{color:var(--muted);font-size:15px;line-height:1.6}h2{font-size:clamp(42px,5.4vw,82px);margin:15px 0 0}h2 span{color:var(--red)}.filters{display:flex;gap:9px;flex-wrap:wrap;margin:30px 0}.filter{border:1px solid #4a4a4a;background:transparent;color:#eee;border-radius:999px;padding:11px 19px;font-size:12px;font-weight:700;cursor:pointer;transition:.2s}.filter:hover,.filter.active{border-color:var(--red);background:var(--red);color:white}.portfolio-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.portfolio-card{position:relative;aspect-ratio:4/4.5;overflow:hidden;background:#1d1d1d;border:0;padding:0;text-align:left;cursor:pointer;color:white}.portfolio-card:nth-child(3n+2){aspect-ratio:4/3.8}.portfolio-card img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.85);transition:transform .55s,filter .55s}.portfolio-card:hover img{transform:scale(1.065);filter:saturate(1.12)}.portfolio-card:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#000c)}.portfolio-card .card-label{position:absolute;z-index:1;left:18px;bottom:18px;font-size:clamp(16px,1.6vw,25px);font-weight:900;text-transform:uppercase;letter-spacing:-.035em}.portfolio-card .arrow{position:absolute;z-index:1;right:16px;bottom:15px;font-size:23px;color:var(--red)}.portfolio-note{color:#858585;font-size:12px;margin-top:18px}.about-section{background:#121212}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,8vw,130px);align-items:center}.about-visual{min-height:440px;background:radial-gradient(circle at 55% 40%,#731019,#1b0507 45%,#080808 78%);position:relative;overflow:hidden;display:grid;place-items:center}.big-d{font-size:clamp(180px,25vw,370px);font-weight:900;line-height:1;letter-spacing:-.1em}.big-d span{color:var(--red)}.about-label{position:absolute;bottom:25px;left:28px;font-size:11px;letter-spacing:.15em;font-weight:800}.about-copy p{max-width:510px;color:#c6c6c6;line-height:1.85;font-size:16px;margin:25px 0}.text-link{font-weight:900;font-size:12px;color:var(--red);display:inline-flex;gap:25px;margin-top:10px}.services-section h2{margin-bottom:45px}.services-list>div{display:grid;grid-template-columns:60px 1fr 25px;align-items:center;border-top:1px solid var(--line);padding:27px 8px}.services-list>div:last-child{border-bottom:1px solid var(--line)}.services-list>div>span{color:var(--red);font-size:14px;font-weight:800}.services-list h3{font-size:clamp(21px,3vw,39px);letter-spacing:-.05em;margin:0}.contact-section{padding:115px 0;background:radial-gradient(ellipse at 90% 50%,#6b0b17 0%,#1a0509 35%,#080808 75%)}.contact-inner h2{margin:20px 0}.contact-inner p{font-size:17px;color:#ccc;max-width:510px;line-height:1.6;margin:20px 0 28px}.contact-inner .contact-warning{font-size:11px;color:#aaa;margin-top:18px}.footer{min-height:115px;display:flex;align-items:center;justify-content:space-between;gap:25px}.footer img{width:120px}.footer span,.footer a{font-size:11px;color:#aaa}.lightbox{border:0;background:#090909;padding:45px 18px 18px;max-width:min(95vw,1100px);max-height:95vh;color:white}.lightbox::backdrop{background:#000e}.lightbox img{display:block;max-width:100%;max-height:75vh;object-fit:contain;margin:auto}.lightbox p{text-align:center;font-size:13px;margin:15px 0 0}.lightbox-close{position:absolute;top:0;right:7px;background:transparent;border:0;color:white;font-size:36px;cursor:pointer}
@media(max-width:1100px){.header{gap:16px}.brand img{width:145px}.header-cta{display:none}.portfolio-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.wrap{width:min(calc(100% - 64px),var(--max))}}
@media(max-width:760px){.wrap{width:calc(100% - 36px)}.header{height:74px;padding:0 18px;justify-content:space-between}.brand img{width:142px}.menu-toggle{display:block}.nav{display:none;position:absolute;top:74px;left:0;right:0;padding:20px 24px 30px;background:#0a0a0a;flex-direction:column;align-items:stretch;gap:0;border-bottom:1px solid #333}.nav.open{display:flex}.nav a{padding:15px 0;font-size:15px}.hero{min-height:650px;height:90svh;max-height:840px}.hero-image{background-position:58% 62%}.hero-shade{background:linear-gradient(90deg,#000b,#0003),linear-gradient(0deg,#080808 0%,#0008 40%,#0002 100%)}.hero-content{padding-top:65px}.eyebrow{font-size:10px}h1{font-size:clamp(45px,9vw,72px);margin:20px 0}.hero-content p{font-size:14px;max-width:360px}.hero-actions{flex-wrap:wrap}.button{padding:0 16px;font-size:11px}.hero-bottom{bottom:25px;font-size:9px}.section{padding-top:75px;padding-bottom:75px}.section-top{display:block}.section-top p{margin-top:20px}.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.portfolio-card .card-label{left:11px;bottom:12px;font-size:16px}.portfolio-card .arrow{right:10px;bottom:9px}.filter{padding:9px 13px;font-size:11px}.about-grid{grid-template-columns:1fr;gap:40px}.about-visual{min-height:310px}.about-copy p{font-size:14px}.contact-section{padding:85px 0}.footer{padding-top:30px;padding-bottom:30px;flex-wrap:wrap}.footer img{width:105px}.footer span{order:3;width:100%}}
@media(max-width:390px){h1{font-size:43px}.portfolio-card .card-label{font-size:13px}.portfolio-grid{gap:7px}.hero-actions{gap:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* DAVEZZ — servizi individuali cliccabili */
.services-list>a{display:grid;grid-template-columns:60px 1fr 25px;align-items:center;border-top:1px solid var(--line);padding:27px 8px;transition:background .2s,padding .2s}
.services-list>a:last-child{border-bottom:1px solid var(--line)}
.services-list>a>span{color:var(--red);font-size:14px;font-weight:800}
.services-list>a:hover{background:#161616;padding-left:18px}
@media(max-width:600px){.services-list>a{grid-template-columns:40px 1fr 22px;padding:22px 4px}.services-section h2{overflow-wrap:anywhere}}

/* DAVEZZ TYPOGRAPHY — Archivo Black Bold + Manrope */




body,button,input,select,textarea{font-family:'Manrope',Arial,sans-serif}
h1,h2,.services-list h3,.portfolio-card .card-label,.big-d{font-family:'Archivo Black','Manrope',Arial,sans-serif;font-weight:700;letter-spacing:-.045em;line-height:1.1}
h1{font-size:clamp(37px,5.3vw,86px);overflow-wrap:break-word}
h2{font-size:clamp(30px,4.2vw,65px);overflow-wrap:break-word}
.nav a,.button,.kicker,.eyebrow,.filter,.text-link{font-family:'Manrope',Arial,sans-serif;font-weight:600}
.services-list h3{font-size:clamp(18px,2.5vw,32px)}
@media(max-width:760px){h1{font-size:clamp(30px,7.4vw,53px)}h2{font-size:clamp(26px,7vw,43px)}.services-list h3{font-size:clamp(16px,4.8vw,24px)}}
@media(max-width:390px){h1{font-size:clamp(27px,7.2vw,34px)}}

/* DAVEZZ — allineamento uniforme delle frecce */
.portfolio-card .arrow{
  position:absolute;
  right:18px;
  bottom:18px;
  width:26px;
  height:26px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:23px;
  line-height:1;
  color:var(--red);
  z-index:2;
}
.services-list > a{
  display:grid;
  grid-template-columns:60px minmax(0,1fr) 26px;
  align-items:center;
  gap:0;
  border-top:1px solid var(--line);
  padding:27px 8px;
}
.services-list > a:last-child{border-bottom:1px solid var(--line)}
.services-list > a > span:first-child{color:var(--red);font-size:14px;font-weight:800}
.services-list > a > span:last-child{
  width:26px;height:26px;display:flex;align-items:center;justify-content:center;
  font-size:23px;line-height:1;color:var(--red);
}
.services-list > a h3{margin:0;font-size:clamp(21px,3vw,39px);letter-spacing:-.05em}
@media(max-width:760px){
  .portfolio-card .arrow{right:12px;bottom:12px;width:22px;height:22px;font-size:20px}
  .services-list > a{grid-template-columns:44px minmax(0,1fr) 22px;padding:22px 4px}
  .services-list > a > span:last-child{width:22px;height:22px;font-size:20px}
}

/* Portfolio DAVEZZ: schede di dimensioni identiche su ogni riga */
.portfolio-grid{align-items:stretch;grid-auto-rows:auto}
.portfolio-card,
.portfolio-card:nth-child(3n+2){aspect-ratio:4 / 4.5;min-width:0;display:block}
.portfolio-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.portfolio-card .card-label{right:48px}
@media(max-width:760px){.portfolio-card .card-label{right:36px}}

/* FIX: cards always have a measurable height; filtering respects hidden attribute. */
.portfolio-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch}
.portfolio-card,.portfolio-card:nth-child(3n+2){display:block;position:relative;aspect-ratio:auto;height:auto;min-height:0;overflow:hidden}
.portfolio-card::before{content:"";display:block;padding-top:112.5%}
.portfolio-card[hidden]{display:none!important}
.portfolio-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media(max-width:1100px){.portfolio-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Mobile layout safeguard: keep hero copy inside the device viewport. */
@media (max-width:760px){
 html,body{max-width:100%;overflow-x:clip}
 .wrap{width:calc(100% - 36px);max-width:100%;min-width:0}
 .hero{width:100%;min-height:620px;height:100svh;overflow:hidden}
 .hero-content{width:calc(100% - 36px);max-width:100%;min-width:0;margin-inline:auto;padding-top:74px}
 .hero-content h1{font-size:clamp(25px,6.5vw,43px);line-height:1.16;letter-spacing:-.045em;max-width:100%;overflow-wrap:anywhere;word-break:normal}
 .hero-content .eyebrow{font-size:9px;line-height:1.5;flex-wrap:wrap}
 .hero-content p{max-width:100%;font-size:14px}
 .hero-actions{display:flex;flex-wrap:wrap;gap:10px;max-width:100%}
 .hero-actions .button{max-width:100%;min-height:46px;white-space:normal;text-align:center}
 .hero-bottom{width:calc(100% - 36px);max-width:100%;gap:12px}
 .portfolio-grid{min-width:0}
 .portfolio-card{min-width:0}
 .portfolio-card .card-label{overflow-wrap:anywhere}
 .about-grid,.section-top,.contact-inner{min-width:0}
 .about-visual{min-width:0}
}
@media (max-width:390px){
 .hero-content h1{font-size:clamp(24px,6.1vw,29px)}
 .hero-actions .button{font-size:10px;padding-inline:12px}
}

/* DAVEZZ Cinematic — progressive enhancement */
@media (prefers-reduced-motion:no-preference){
.hero-content .eyebrow,.hero-content h1,.hero-content p,.hero-actions{animation:davezzIntro .85s both cubic-bezier(.2,.7,.2,1)}
.hero-content h1{animation-delay:.12s}.hero-content p{animation-delay:.25s}.hero-actions{animation-delay:.38s}
.hero-image{animation:davezzHeroZoom 14s ease-out both}
.portfolio-card img{transition:transform .65s cubic-bezier(.2,.7,.2,1)}.portfolio-card:hover img{transform:scale(1.065)}
.portfolio-card .arrow{transition:transform .3s ease}.portfolio-card:hover .arrow{transform:translate(3px,-3px)}
/* Scroll animations are triggered on intersection, not at initial page load. */
}
@keyframes davezzIntro{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes davezzHeroZoom{from{transform:scale(1.05)}to{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.hero-image,.hero-content *, .section-top h2,.about-copy h2,.services-section>h2,.contact-inner h2,.page-intro h1,.contact-page-copy h2{animation:none!important}}

/* Cinematic scroll reveal: never hide content before JS executes */
@media (prefers-reduced-motion: no-preference) {
  .davezz-enter { animation: davezzScrollIn .85s cubic-bezier(.2,.7,.2,1) both; }
  @keyframes davezzScrollIn { from { opacity: .15; transform: translate3d(0,28px,0); } to { opacity: 1; transform: translate3d(0,0,0); } }
}

/* DAVEZZ — visible cinematic entrance for titles, copy and sections.
   No element is hidden while waiting for JavaScript: content stays accessible. */
@media (prefers-reduced-motion: no-preference) {
  .cinema-in {
    animation: davezzCinematicReveal 1.05s cubic-bezier(.16,1,.3,1) var(--cinema-delay, 0ms) both !important;
  }
  .section-top h2.cinema-in, .about-copy h2.cinema-in,
  .services-section > h2.cinema-in, .contact-inner h2.cinema-in,
  .page-intro h1.cinema-in, .contact-page-copy h2.cinema-in {
    animation-name: davezzTitleReveal !important;
  }
  @keyframes davezzCinematicReveal {
    0% { opacity: .08; transform: translate3d(0, 48px, 0); filter: blur(7px); }
    100% { opacity: 1; transform: translate3d(0, 0, 0); filter: blur(0); }
  }
  @keyframes davezzTitleReveal {
    0% { opacity: .05; transform: translate3d(0, 64px, 0) scale(.975); filter: blur(5px); }
    100% { opacity: 1; transform: translate3d(0, 0, 0) scale(1); filter: blur(0); }
  }
}

/* DAVEZZ — social footer */
.footer-social{border-top:1px solid #292929;padding-top:70px;padding-bottom:64px;display:flex;justify-content:space-between;align-items:end;gap:35px}
.footer-social-kicker{display:block;color:var(--red);font-size:11px;font-weight:800;letter-spacing:.16em;margin-bottom:18px}
.footer-social h2{font-family:'Archivo Black','Manrope',Arial,sans-serif;font-weight:700;font-size:clamp(42px,6vw,84px);letter-spacing:-.045em;line-height:1;margin:0}
.footer-social h2 span{color:var(--red)}
.footer-social-links{display:flex;gap:12px;flex-wrap:wrap}
.footer-social-links a{min-width:185px;display:flex;align-items:center;gap:13px;padding:19px 18px;border:1px solid #383838;font-family:'Manrope',Arial,sans-serif;font-size:12px;font-weight:700;letter-spacing:.05em;transition:background .25s,border-color .25s,transform .25s,color .25s}
.footer-social-links a svg{width:21px;height:21px;flex:none;color:var(--red);transition:color .25s}
.footer-social-links a:hover{background:var(--red);border-color:var(--red);transform:translateY(-4px);color:#fff}
.footer-social-links a:hover svg{color:#fff}
.footer-social-arrow{margin-left:auto;font-size:18px;transition:transform .25s}
.footer-social-links a:hover .footer-social-arrow{transform:translate(2px,-2px)}
@media(max-width:760px){.footer-social{padding-top:55px;padding-bottom:42px;display:block}.footer-social-links{margin-top:28px}.footer-social-links a{flex:1 1 145px;min-width:0;padding:15px 12px;font-size:11px;gap:9px}.footer-social-links a svg{width:19px;height:19px}}
@media(prefers-reduced-motion:reduce){.footer-social-links a,.footer-social-links a svg,.footer-social-arrow{transition:none}}

/* Build Your Event integration */
.davezz-cta-pair{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap}
.davezz-configurator-promo{margin-top:24px;margin-bottom:48px;padding-top:38px!important;padding-bottom:38px!important;border-top:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16);display:flex;align-items:center;justify-content:space-between;gap:30px}
.davezz-configurator-promo h2{font-size:clamp(26px,4vw,54px);line-height:1.1;margin:12px 0}.davezz-configurator-promo h2 span{color:#e60012}.davezz-configurator-promo p{max-width:560px;line-height:1.6}.davezz-configurator-promo .button{flex-shrink:0}@media(max-width:700px){.davezz-configurator-promo{flex-direction:column;align-items:flex-start}.davezz-cta-pair{justify-content:flex-start}}
