*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --orange: #e05c10; --orange-light: #f07a30; --orange-dark: #b84000;
  --dark: #111314; --dark2: #1a1d1f; --dark3: #222629;
  --grey: #8a9099; --white: #ffffff;
  --light-bg: #f4f6f8; --light-surface: #ffffff; --light-surface-alt: #eef2f5;
  --light-text: #11161c; --light-muted: #27323d; --light-border: rgba(17,22,28,.14);
}
html { scroll-behavior: smooth; }
body { font-family: 'Barlow', sans-serif; background: var(--dark); color: var(--white); overflow-x: hidden; }
body.menu-open { overflow: hidden; }

.theme-toggle {
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--grey);
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.theme-toggle-nav { margin-left:auto; margin-right:18px; }
.theme-toggle-switch {
  position:relative;
  width:54px;
  height:30px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(255,255,255,.08);
  cursor:pointer;
  transition:background .2s, border-color .2s;
}
.theme-toggle-switch::after {
  content:'';
  position:absolute;
  top:3px;
  left:3px;
  width:22px;
  height:22px;
  border-radius:50%;
  background:var(--white);
  box-shadow:0 4px 12px rgba(0,0,0,.28);
  transition:transform .2s ease;
}
.theme-toggle-switch[aria-checked='true'] {
  background:rgba(224,92,16,.22);
  border-color:rgba(224,92,16,.42);
}
.theme-toggle-switch[aria-checked='true']::after { transform:translateX(24px); }
.theme-toggle-label-dark,
.theme-toggle-label-light { transition:color .2s ease, opacity .2s ease; }
.theme-toggle-switch[aria-checked='false'] ~ .theme-toggle-label-light,
.theme-toggle-switch[aria-checked='true'] ~ .theme-toggle-label-dark { opacity:.55; }

[data-theme='light'] body,
body[data-theme='light'] {
  background:var(--light-bg);
  color:var(--light-text);
}
body[data-theme='light'] nav {
  background:rgba(255,255,255,.9);
  border-bottom:1px solid rgba(24,32,40,.08);
}
body[data-theme='light'] .nav-toggle {
  border-color:rgba(24,32,40,.16);
}
body[data-theme='light'] .nav-toggle span { background:var(--light-text); }
body[data-theme='light'] .nav-links a,
body[data-theme='light'] .mobile-menu-link,
body[data-theme='light'] footer p,
body[data-theme='light'] .footer-links a,
body[data-theme='light'] .card p,
body[data-theme='light'] .punto p,
body[data-theme='light'] .contact-item span,
body[data-theme='light'] .contact-consent,
body[data-theme='light'] .gallery-caption,
body[data-theme='light'] .policy-page .legal-card p,
body[data-theme='light'] .policy-page .legal-card ul,
body[data-theme='light'] .ledwall-panel ul,
body[data-theme='light'] .ledwall-card p,
body[data-theme='light'] .cookie-text,
body[data-theme='light'] .hero-desc,
body[data-theme='light'] .ledwall-intro,
body[data-theme='light'] .gallery-page .page-hero p,
body[data-theme='light'] .ledwall-page .ledwall-hero p,
body[data-theme='light'] .ledwall-panel p,
body[data-theme='light'] .ledwall-cta p {
  color:var(--light-muted);
}
body[data-theme='light'] .gallery-page .page-hero p,
body[data-theme='light'] .ledwall-page .ledwall-hero p,
body[data-theme='light'] .gallery-caption,
body[data-theme='light'] .ledwall-card p,
body[data-theme='light'] .ledwall-panel p,
body[data-theme='light'] .ledwall-intro,
body[data-theme='light'] .ledwall-cta p {
  color:#202a34;
}
body[data-theme='light'] .nav-links a,
body[data-theme='light'] .mobile-menu-link,
body[data-theme='light'] .footer-links a,
body[data-theme='light'] footer p {
  color:#202a34;
}
body[data-theme='light'] #servizi,
body[data-theme='light'] #contatti,
body[data-theme='light'] .punto,
body[data-theme='light'] .card,
body[data-theme='light'] .legal-card,
body[data-theme='light'] .gallery-item,
body[data-theme='light'] .ledwall-panel,
body[data-theme='light'] .contact-form input,
body[data-theme='light'] .contact-form textarea,
body[data-theme='light'] .mobile-menu,
body[data-theme='light'] .cookie-banner {
  background:var(--light-surface);
  color:var(--light-text);
}
body[data-theme='light'] .ledwall-section,
body[data-theme='light'] #qualita,
body[data-theme='light'] .policy-page,
body[data-theme='light'] .gallery-page,
body[data-theme='light'] .ledwall-page {
  background:var(--light-bg);
}
body[data-theme='light'] .card,
body[data-theme='light'] .legal-card,
body[data-theme='light'] .gallery-item,
body[data-theme='light'] .ledwall-panel,
body[data-theme='light'] .contact-form input,
body[data-theme='light'] .contact-form textarea,
body[data-theme='light'] .mobile-menu,
body[data-theme='light'] .cookie-banner,
body[data-theme='light'] .punto {
  border-color:var(--light-border);
}
body[data-theme='light'] .hero {
  background:linear-gradient(180deg,#f8fafc 0%,#eef3f7 100%);
}
body[data-theme='light'] .hero-bg {
  background:
    radial-gradient(circle at 18% 36%, rgba(255,177,112,.28) 0%, rgba(255,177,112,.08) 22%, rgba(255,177,112,0) 48%),
    radial-gradient(circle at 76% 20%, rgba(224,92,16,.24) 0%, rgba(224,92,16,.10) 20%, rgba(224,92,16,0) 50%),
    radial-gradient(circle at 82% 72%, rgba(61,102,156,.20) 0%, rgba(61,102,156,.08) 30%, rgba(61,102,156,0) 58%),
    linear-gradient(125deg, rgba(255,255,255,.96) 0%, rgba(246,249,252,.94) 38%, rgba(234,240,246,.9) 100%),
    repeating-linear-gradient(175deg, rgba(24,32,40,.03) 0 2px, rgba(24,32,40,0) 2px 9px),
    linear-gradient(120deg, #f6f8fb 0%, #edf2f6 40%, #dde7f0 100%);
  filter:saturate(1) contrast(1);
}
body[data-theme='light'] .hero-video { opacity:.08; mix-blend-mode:multiply; }
body[data-theme='light'] .hero-sub,
body[data-theme='light'] .hero-sub span,
body[data-theme='light'] .stat-label,
body[data-theme='light'] h1,
body[data-theme='light'] .section-title,
body[data-theme='light'] .contact-item strong,
body[data-theme='light'] .legal-card h3,
body[data-theme='light'] .gallery-page h1,
body[data-theme='light'] .ledwall-card h3,
body[data-theme='light'] .ledwall-page h1,
body[data-theme='light'] .ledwall-panel h3,
body[data-theme='light'] .ledwall-cta h2,
body[data-theme='light'] .footer-logo,
body[data-theme='light'] .cookie-title {
  color:var(--light-text);
}
body[data-theme='light'] .stat-label,
body[data-theme='light'] .section-label,
body[data-theme='light'] .theme-toggle,
body[data-theme='light'] .contact-consent a,
body[data-theme='light'] .cookie-text a {
  color:#1f2b36;
}
body[data-theme='light'] .hero-badge,
body[data-theme='light'] .punto-icon,
body[data-theme='light'] .card-icon,
body[data-theme='light'] .contact-ico {
  background:rgba(224,92,16,.12);
}
body[data-theme='light'] .hero-grid { opacity:.06; }
body[data-theme='light'] .stat { border-left-color:var(--orange); }
body[data-theme='light'] .theme-toggle { color:var(--light-muted); }
body[data-theme='light'] .theme-toggle-switch {
  border-color:rgba(24,32,40,.16);
  background:rgba(24,32,40,.06);
}
body[data-theme='light'] footer {
  background:#e9eef2;
  border-top:1px solid rgba(24,32,40,.08);
}
body[data-theme='light'] .site-credit { color:var(--light-muted); border-top-color:rgba(24,32,40,.08); }
body[data-theme='light'] .site-credit a { color:#202a34; }
body[data-theme='light'] .gallery-media {
  background:linear-gradient(130deg,#edf2f6 0%,#e1e8ef 65%,#d5dee7 100%);
}
body[data-theme='light'] .gallery-caption {
  border-top:1px solid rgba(24,32,40,.08);
}
body[data-theme='light'] .cookie-btn-secondary {
  color:var(--light-text);
  border-color:rgba(24,32,40,.16);
}
body[data-theme='light'] .cookie-btn-secondary:hover {
  color:var(--orange);
  border-color:var(--orange);
}
body[data-theme='light'] .lightbox {
  background:rgba(241,245,249,.94);
}
body[data-theme='light'] .lightbox-close,
body[data-theme='light'] .lightbox-nav {
  background:rgba(255,255,255,.88);
  color:var(--light-text);
  border:1px solid rgba(24,32,40,.1);
}
body[data-theme='light'] .lightbox-figure figcaption { color:var(--light-text); }

/* NAV */
nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 6%;
  background: rgba(17,19,20,.9); backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(224,92,16,.2);
  transition: background .3s;
}
.logo { font-family:'Barlow Condensed',sans-serif; font-size:1.5rem; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
.logo { display:inline-flex; align-items:center; text-decoration:none; }
.logo img { height:44px; width:auto; display:block; }
.nav-toggle { display:none; width:44px; height:44px; background:transparent; border:1px solid rgba(255,255,255,.16); border-radius:6px; align-items:center; justify-content:center; flex-direction:column; gap:5px; cursor:pointer; }
.nav-toggle span { display:block; width:18px; height:2px; background:var(--white); border-radius:999px; }
.nav-links { display:flex; gap:32px; list-style:none; margin-left:56px; }
.nav-links a { color:var(--grey); text-decoration:none; font-size:.88rem; font-weight:500; letter-spacing:.06em; text-transform:uppercase; transition:color .2s; }
.nav-links a:hover { color:var(--orange); }
.nav-cta { background:var(--orange); color:var(--white); border:none; border-radius:3px; padding:10px 24px; font-family:'Barlow Condensed',sans-serif; font-size:1rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; transition:background .2s,transform .15s; }
.nav-cta:hover { background:var(--orange-light); transform:translateY(-1px); }
.mobile-menu { position:fixed; top:84px; left:5%; right:5%; z-index:99; display:none; flex-direction:column; gap:10px; padding:18px; background:rgba(17,19,20,.98); border:1px solid rgba(224,92,16,.2); border-radius:10px; box-shadow:0 18px 40px rgba(0,0,0,.35); }
.mobile-menu-link { color:var(--white); text-decoration:none; font-family:'Barlow Condensed',sans-serif; font-size:1.1rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:8px 4px; }
.mobile-menu .theme-toggle { padding:8px 4px; justify-content:flex-start; }
.mobile-menu-cta { width:100%; margin-top:4px; }

/* HERO */
.hero { min-height:100vh; display:flex; flex-direction:column; justify-content:center; padding:98px 6% 56px; position:relative; overflow:hidden; }
.hero-bg {
  position:absolute; inset:0;
  background:
    radial-gradient(circle at 18% 36%, rgba(255,177,112,.36) 0%, rgba(255,177,112,.10) 22%, rgba(255,177,112,0) 48%),
    radial-gradient(circle at 76% 20%, rgba(224,92,16,.42) 0%, rgba(224,92,16,.18) 20%, rgba(224,92,16,0) 50%),
    radial-gradient(circle at 82% 72%, rgba(61,102,156,.32) 0%, rgba(61,102,156,.12) 30%, rgba(61,102,156,0) 58%),
    linear-gradient(125deg, rgba(8,10,14,.94) 0%, rgba(16,19,26,.88) 38%, rgba(19,25,35,.78) 100%),
    repeating-linear-gradient(175deg, rgba(255,255,255,.025) 0 2px, rgba(255,255,255,0) 2px 9px),
    linear-gradient(120deg, #15181d 0%, #1a1f28 40%, #2b3440 100%);
  background-size:cover;
  background-position:center;
  filter:saturate(1.12) contrast(1.06);
}
.hero-bg::before {
  content:'';
  position:absolute;
  right:6%;
  top:18%;
  width:min(38vw,460px);
  height:min(22vw,260px);
  border:4px solid rgba(255,255,255,.9);
  box-shadow:0 14px 36px rgba(0,0,0,.38);
  transform:rotate(-7deg);
  background-image:
    linear-gradient(to bottom, rgba(0,0,0,.10), rgba(0,0,0,.34)),
    url('../img/hero-reference.png'),
    linear-gradient(130deg, #4f5a66 0%, #2c343e 45%, #1d232c 100%);
  background-size:100% 100%, cover, 100% 100%;
  background-position:0 0, center, 0 0;
  background-repeat:no-repeat;
  opacity:.62;
}
.hero-bg::after {
  content:'';
  position:absolute;
  left:-8%;
  bottom:19%;
  width:min(58vw,780px);
  height:56px;
  background:linear-gradient(92deg, rgba(224,92,16,.94) 0%, rgba(240,122,48,.92) 62%, rgba(224,92,16,.9) 100%);
  border-top:2px solid rgba(255,255,255,.45);
  border-bottom:2px solid rgba(10,11,12,.45);
  box-shadow:0 12px 28px rgba(0,0,0,.38);
  transform:rotate(-6deg);
  opacity:.86;
}
.hero-video {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:.22;
  mix-blend-mode:overlay;
}
.hero-video.is-hidden { display:none; }
.hero-grid { position:absolute; inset:0; opacity:.04; background-image:linear-gradient(var(--orange) 1px,transparent 1px),linear-gradient(90deg,var(--orange) 1px,transparent 1px); background-size:60px 60px; }
.hero-content { position:relative; z-index:2; max-width:680px; }
.hero-badge { display:inline-flex; align-items:center; gap:8px; background:rgba(224,92,16,.15); border:1px solid rgba(224,92,16,.35); border-radius:20px; padding:6px 16px; font-size:.78rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--orange-light); margin-bottom:28px; animation:fadeUp .6s ease both; }
.live-dot { width:7px; height:7px; border-radius:50%; background:var(--orange); animation:pulse 1.5s infinite; }
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.4;transform:scale(.7)} }
h1 { font-family:'Barlow Condensed',sans-serif; font-size:clamp(2.45rem,6.2vw,4.9rem); font-weight:900; line-height:.95; text-transform:uppercase; animation:fadeUp .7s .1s ease both; }
h1 em { font-style:normal; color:var(--orange); }
.hero-sub { font-family:'Barlow Condensed',sans-serif; font-size:clamp(.95rem,2.2vw,1.35rem); font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--white); margin-top:10px; animation:fadeUp .7s .2s ease both; }
.hero-sub span { color:var(--white); }
.hero-desc { margin-top:18px; max-width:520px; font-size:.95rem; color:rgba(255,255,255,.92); line-height:1.65; animation:fadeUp .7s .3s ease both; }
.hero-actions { display:flex; gap:14px; margin-top:26px; flex-wrap:wrap; animation:fadeUp .7s .4s ease both; }
.btn-primary { background:linear-gradient(180deg,#f4863e 0%,#e05c10 100%); color:var(--white); border:1.5px solid rgba(255,255,255,.46); border-radius:3px; padding:16px 36px; font-family:'Barlow Condensed',sans-serif; font-size:1.15rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; transition:background .2s,box-shadow .2s,transform .15s,border-color .2s; text-shadow:0 1px 2px rgba(0,0,0,.38); box-shadow:0 8px 26px rgba(0,0,0,.42),0 8px 34px rgba(224,92,16,.28); }
.btn-primary:hover { background:linear-gradient(180deg,#f79a5c 0%,#ea6f25 100%); border-color:rgba(255,255,255,.72); transform:translateY(-2px); box-shadow:0 12px 34px rgba(0,0,0,.46),0 12px 40px rgba(224,92,16,.34); }
.btn-secondary { background:linear-gradient(180deg,#f4863e 0%,#e05c10 100%); color:var(--white); border:1.5px solid rgba(255,255,255,.46); border-radius:3px; padding:16px 36px; font-family:'Barlow Condensed',sans-serif; font-size:1.15rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; transition:background .2s,box-shadow .2s,transform .15s,border-color .2s; text-shadow:0 1px 2px rgba(0,0,0,.38); box-shadow:0 8px 26px rgba(0,0,0,.42),0 8px 34px rgba(224,92,16,.28); }
.btn-secondary:hover { background:linear-gradient(180deg,#f79a5c 0%,#ea6f25 100%); border-color:rgba(255,255,255,.72); transform:translateY(-2px); box-shadow:0 12px 34px rgba(0,0,0,.46),0 12px 40px rgba(224,92,16,.34); }
.hero-stats { display:flex; gap:32px; margin-top:20px; flex-wrap:wrap; animation:fadeUp .7s .5s ease both; }
.stat { border-left:2px solid var(--orange); padding-left:16px; }
.stat-num { font-family:'Barlow Condensed',sans-serif; font-size:2.2rem; font-weight:900; line-height:1; }
.stat-num span { color:var(--orange); }
.stat-label { font-size:.78rem; color:var(--white); letter-spacing:.06em; text-transform:uppercase; margin-top:4px; }
@keyframes fadeUp { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:translateY(0)} }

/* SECTIONS */
section { padding:90px 6%; }
.section-label { font-size:.75rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--orange); margin-bottom:12px; }
.section-title { font-family:'Barlow Condensed',sans-serif; font-size:clamp(2rem,5vw,3.4rem); font-weight:900; text-transform:uppercase; line-height:1; }
.section-title em { font-style:normal; color:var(--orange); }

/* SERVIZI */
#servizi { background:var(--dark2); }
.servizi-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:24px; margin-top:52px; }
.card { background:var(--dark3); border:1px solid rgba(255,255,255,.06); border-radius:6px; padding:36px 28px; position:relative; overflow:hidden; transition:border-color .3s,transform .3s,box-shadow .3s; }
.card::before { content:''; position:absolute; inset:0; background:linear-gradient(135deg,rgba(224,92,16,.08) 0%,transparent 60%); opacity:0; transition:opacity .3s; }
.card:hover { border-color:rgba(224,92,16,.4); transform:translateY(-4px); box-shadow:0 16px 50px rgba(0,0,0,.4); }
.card:hover::before { opacity:1; }
.card-icon { width:52px; height:52px; background:rgba(224,92,16,.12); border-radius:8px; display:flex; align-items:center; justify-content:center; margin-bottom:22px; }
.card-icon svg { width:26px; height:26px; stroke:var(--orange); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.card h3 { font-family:'Barlow Condensed',sans-serif; font-size:1.4rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; margin-bottom:12px; }
.card p { font-size:.9rem; color:var(--grey); line-height:1.65; }

/* LED WALL */
.ledwall-section { background:linear-gradient(180deg,#131618 0%,#171b1e 100%); }
.ledwall-intro { margin-top:16px; max-width:860px; color:#d9dde2; line-height:1.8; font-size:.96rem; }
.ledwall-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:20px; margin-top:34px; }
.ledwall-card {
  background:linear-gradient(145deg, rgba(255,255,255,.03) 0%, rgba(255,255,255,.01) 100%);
  border:1px solid rgba(224,92,16,.22);
  border-radius:8px;
  padding:28px 24px;
  box-shadow:0 10px 30px rgba(0,0,0,.22);
}
.ledwall-card h3 { font-family:'Barlow Condensed',sans-serif; font-size:1.28rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; margin-bottom:10px; }
.ledwall-card p { color:var(--grey); line-height:1.7; font-size:.9rem; }
.ledwall-actions { margin-top:30px; }

/* QUALITÀ */
#qualita { background:var(--dark); }
.punti-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:52px; background:transparent; border:none; border-radius:0; overflow:visible; }
.punto { background:var(--dark2); padding:40px 32px; text-align:center; transition:background .25s; }
.punto:hover { background:var(--dark3); }
.punto-icon { width:56px; height:56px; background:rgba(224,92,16,.12); border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 18px; }
.punto-icon svg { width:26px; height:26px; stroke:var(--orange); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.punto h4 { font-family:'Barlow Condensed',sans-serif; font-size:1.2rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--orange); margin-bottom:10px; }
.punto p { font-size:.85rem; color:var(--grey); line-height:1.6; }

/* CTA STRIP */
.cta-strip { background:linear-gradient(100deg,var(--orange-dark) 0%,var(--orange) 60%,var(--orange-light) 100%); padding:72px 6%; text-align:center; position:relative; overflow:hidden; }
.cta-strip::before { content:''; position:absolute; inset:0; background:repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(0,0,0,.04) 10px,rgba(0,0,0,.04) 20px); }
.cta-strip h2 { font-family:'Barlow Condensed',sans-serif; font-size:clamp(2rem,5vw,3.6rem); font-weight:900; text-transform:uppercase; position:relative; margin-bottom:16px; }
.cta-strip p { font-size:1rem; opacity:.88; max-width:480px; margin:0 auto 36px; position:relative; }
.btn-white { background:var(--white); color:var(--orange-dark); border:none; border-radius:3px; padding:18px 48px; font-family:'Barlow Condensed',sans-serif; font-size:1.3rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; position:relative; transition:transform .2s,box-shadow .2s; box-shadow:0 8px 30px rgba(0,0,0,.25); }
.btn-white:hover { transform:translateY(-3px); box-shadow:0 14px 40px rgba(0,0,0,.35); }

/* CONTATTI */
#contatti { background:var(--dark2); }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; margin-top:52px; align-items:start; }
.contact-info { display:flex; flex-direction:column; gap:28px; }
.contact-item { display:flex; align-items:center; gap:18px; }
.contact-ico { width:48px; height:48px; flex-shrink:0; background:rgba(224,92,16,.12); border-radius:50%; display:flex; align-items:center; justify-content:center; }
.contact-ico svg { width:22px; height:22px; stroke:var(--orange); fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.contact-item strong { display:block; font-family:'Barlow Condensed',sans-serif; font-size:1.05rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; margin-bottom:4px; }
.contact-item span { font-size:.9rem; color:var(--grey); }
.contact-form { display:flex; flex-direction:column; gap:16px; }
.contact-form input, .contact-form textarea { background:var(--dark3); border:1.5px solid rgba(255,255,255,.1); border-radius:4px; padding:14px 18px; color:var(--white); font-family:'Barlow',sans-serif; font-size:.95rem; outline:none; transition:border-color .2s; }
.contact-form input:focus, .contact-form textarea:focus { border-color:var(--orange); }
.contact-form textarea { resize:vertical; min-height:130px; }
.contact-form ::placeholder { color:var(--grey); }
.contact-form button { background:var(--orange); color:var(--white); border:none; border-radius:4px; padding:15px; font-family:'Barlow Condensed',sans-serif; font-size:1.1rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; transition:background .2s,transform .15s; }
.contact-form button:hover { background:var(--orange-light); transform:translateY(-1px); }
.contact-consent { display:flex; align-items:flex-start; gap:10px; font-size:.9rem; color:var(--grey); line-height:1.5; }
.contact-consent input { margin-top:4px; flex-shrink:0; }
.contact-consent a { color:var(--orange-light); text-decoration:none; }
.contact-consent a:hover { color:var(--orange); }

/* FOOTER */
footer { background:#0b0d0e; border-top:1px solid rgba(255,255,255,.07); padding:32px 6%; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; }
.footer-logo { font-family:'Barlow Condensed',sans-serif; font-weight:900; font-size:1.2rem; text-transform:uppercase; }
.footer-logo span { color:var(--orange); }
footer p { font-size:.8rem; color:var(--grey); }
.footer-company { display:flex; flex-direction:column; gap:4px; flex:1 1 320px; }
.footer-links { display:flex; gap:24px; }
.footer-links a { font-size:.8rem; color:var(--grey); text-decoration:none; transition:color .2s; }
.footer-links a:hover { color:var(--orange); }
.footer-social { display:flex; align-items:center; gap:12px; }
.footer-social a {
  width:42px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.04);
  color:var(--grey);
  text-decoration:none;
  transition:transform .2s, border-color .2s, color .2s, background .2s;
}
.footer-social a:hover {
  color:var(--orange);
  border-color:rgba(224,92,16,.45);
  background:rgba(224,92,16,.08);
  transform:translateY(-1px);
}
.footer-social svg { width:20px; height:20px; fill:currentColor; display:block; }
.site-credit { flex-basis:100%; text-align:center; font-size:.8rem; line-height:1.5; color:var(--grey); margin-top:8px; padding-top:16px; border-top:1px solid rgba(255,255,255,.07); }
.site-credit a { color:var(--grey); font-weight:500; text-decoration:none; transition:color .2s; }
.site-credit a:hover { color:var(--orange); text-decoration:underline; }

.cookie-banner {
  position:fixed;
  left:24px;
  right:24px;
  bottom:24px;
  z-index:300;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  padding:20px 22px;
  background:rgba(17,19,20,.96);
  border:1px solid rgba(224,92,16,.28);
  border-radius:10px;
  box-shadow:0 20px 60px rgba(0,0,0,.45);
  backdrop-filter:blur(12px);
}
.cookie-banner.hidden { display:none; }
.cookie-content { max-width:760px; }
.cookie-title { font-family:'Barlow Condensed',sans-serif; font-size:1.2rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin-bottom:8px; }
.cookie-text { color:#d9dde2; font-size:.92rem; line-height:1.65; }
.cookie-text a { color:var(--orange-light); text-decoration:none; }
.cookie-actions { display:flex; gap:12px; flex-wrap:wrap; flex-shrink:0; }
.cookie-btn {
  border-radius:4px;
  padding:13px 20px;
  font-family:'Barlow Condensed',sans-serif;
  font-size:1rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
  transition:transform .15s, background .2s, border-color .2s, color .2s;
}
.cookie-btn:hover { transform:translateY(-1px); }
.cookie-btn-primary { background:var(--orange); color:var(--white); border:1px solid var(--orange); }
.cookie-btn-primary:hover { background:var(--orange-light); border-color:var(--orange-light); }
.cookie-btn-secondary { background:transparent; color:var(--white); border:1px solid rgba(255,255,255,.2); }
.cookie-btn-secondary:hover { border-color:var(--orange); color:var(--orange); }
.legal-section { padding-top:40px; }
.legal-card {
  margin-top:28px;
  background:var(--dark3);
  border:1px solid rgba(255,255,255,.06);
  border-radius:8px;
  padding:28px;
}
.legal-card h3 {
  font-family:'Barlow Condensed',sans-serif;
  font-size:1.5rem;
  font-weight:700;
  text-transform:uppercase;
  margin-bottom:14px;
}
.legal-card p { color:var(--grey); line-height:1.8; font-size:.95rem; }
.policy-page main { padding-top:120px; min-height:100vh; }
.policy-page .page-hero { padding:40px 6% 20px; }
.policy-page .page-hero p { color:#d9dde2; max-width:780px; line-height:1.8; margin-top:18px; }
.policy-page .legal-card ul { margin-top:12px; padding-left:18px; color:var(--grey); line-height:1.8; }
.policy-page .legal-card li + li { margin-top:8px; }

.ledwall-page main { padding-top:120px; min-height:100vh; }
.ledwall-page .ledwall-hero { padding:44px 6% 24px; }
.ledwall-page .ledwall-hero p { color:#d9dde2; max-width:860px; line-height:1.8; margin-top:18px; }
.ledwall-content { padding:20px 6% 80px; }
.ledwall-content-grid { display:grid; grid-template-columns:repeat(2,minmax(260px,1fr)); gap:22px; }
.ledwall-panel {
  background:var(--dark3);
  border:1px solid rgba(255,255,255,.08);
  border-radius:8px;
  padding:26px;
}
.ledwall-panel h3 {
  font-family:'Barlow Condensed',sans-serif;
  font-size:1.45rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  margin-bottom:12px;
}
.ledwall-panel p { color:#d9dde2; line-height:1.75; }
.ledwall-panel ul { margin-top:8px; padding-left:20px; color:var(--grey); line-height:1.8; }
.ledwall-panel li + li { margin-top:8px; }
.ledwall-process { margin-top:22px; }
.ledwall-cta {
  margin-top:22px;
  padding:30px;
  border-radius:8px;
  border:1px solid rgba(224,92,16,.32);
  background:linear-gradient(120deg, rgba(224,92,16,.16) 0%, rgba(224,92,16,.07) 42%, rgba(224,92,16,.03) 100%);
}
.ledwall-cta h2 {
  font-family:'Barlow Condensed',sans-serif;
  font-size:clamp(1.6rem,3.5vw,2.4rem);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.ledwall-cta p { margin-top:10px; color:#e6e8eb; line-height:1.7; max-width:760px; }
.ledwall-cta .btn-primary { margin-top:20px; }

.gallery-page .photo-hero { --section-visual:url('../img/section-photo.svg'); }
.gallery-page .video-hero { --section-visual:url('../img/section-video.svg'); }
.ledwall-page .ledwall-hero { --section-visual:url('../img/section-ledwall.svg'); }

.gallery-page .page-hero,
.ledwall-page .ledwall-hero {
  position:relative;
  overflow:hidden;
  min-height:320px;
  padding-right:min(34vw, 390px);
}

.gallery-page .page-hero::after,
.ledwall-page .ledwall-hero::after {
  content:'';
  position:absolute;
  right:6%;
  top:34px;
  width:min(30vw, 340px);
  aspect-ratio:16 / 9;
  border:3px solid rgba(255,255,255,.84);
  box-shadow:0 12px 28px rgba(0,0,0,.34);
  transform:rotate(-6deg);
  background-image:
    linear-gradient(to bottom, rgba(0,0,0,.10), rgba(0,0,0,.30)),
    var(--section-visual),
    linear-gradient(130deg, #4f5a66 0%, #2c343e 45%, #1d232c 100%);
  background-size:100% 100%, cover, 100% 100%;
  background-position:0 0, center, 0 0;
  background-repeat:no-repeat;
  opacity:.64;
}

.gallery-page main { padding-top:120px; min-height:100vh; }
.gallery-page .page-hero { padding:40px 6% 20px; }
.gallery-page .page-hero { padding-right:min(34vw, 390px); }
.gallery-page .page-hero p { color:#d9dde2; max-width:760px; line-height:1.8; margin-top:18px; }
body[data-theme='light'] .gallery-page .page-hero p,
body[data-theme='light'] .page-hero.photo-hero p,
body[data-theme='light'] .page-hero.photo-hero .hero-desc,
body[data-theme='light'] .page-hero.video-hero p,
body[data-theme='light'] .page-hero.video-hero .hero-desc,
body[data-theme='light'] .ledwall-page .ledwall-hero p,
body[data-theme='light'] .page-hero.ledwall-hero p,
body[data-theme='light'] .page-hero.ledwall-hero .hero-desc,
body[data-theme='light'] .ledwall-page .ledwall-intro {
  color:var(--light-text) !important;
}
.gallery-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:20px;
  padding:20px 6% 80px;
}
.gallery-item {
  background:var(--dark3);
  border:1px solid rgba(255,255,255,.08);
  border-radius:8px;
  overflow:hidden;
}
.gallery-media {
  aspect-ratio:16/10;
  width:100%;
  object-fit:cover;
  display:block;
  background:linear-gradient(130deg,#1d2023 0%,#2a2f34 65%,#3f4b53 100%);
}
.gallery-page .gallery-media { cursor:zoom-in; transition:transform .25s ease, filter .25s ease; }
.gallery-page .gallery-item:hover .gallery-media { transform:scale(1.02); filter:brightness(1.06); }
.gallery-caption {
  padding:14px 16px;
  font-size:.88rem;
  color:#d9dde2;
  border-top:1px solid rgba(255,255,255,.06);
}

.lightbox {
  position:fixed;
  inset:0;
  z-index:1200;
  background:rgba(7,8,10,.92);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:30px 80px;
}
.lightbox[hidden] { display:none !important; }
.lightbox-figure {
  margin:0;
  max-width:min(1200px,88vw);
  max-height:88vh;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.lightbox-figure img {
  max-width:100%;
  max-height:78vh;
  border-radius:8px;
  box-shadow:0 18px 55px rgba(0,0,0,.55);
}
.lightbox-figure figcaption {
  margin-top:14px;
  font-size:.95rem;
  color:#eff2f5;
  text-align:center;
}
.lightbox-close,
.lightbox-nav {
  position:absolute;
  border:0;
  background:rgba(17,19,20,.68);
  color:#fff;
  cursor:pointer;
  transition:background .2s ease, transform .2s ease;
}
.lightbox-close:hover,
.lightbox-nav:hover { background:rgba(224,92,16,.9); transform:translateY(-1px); }
.lightbox-close {
  top:20px;
  right:24px;
  width:46px;
  height:46px;
  border-radius:50%;
  font-size:1.8rem;
  line-height:1;
}
.lightbox-nav {
  top:50%;
  transform:translateY(-50%);
  width:52px;
  height:52px;
  border-radius:50%;
  font-size:1.8rem;
  line-height:1;
}
.lightbox-prev { left:18px; }
.lightbox-next { right:18px; }

/* ANIMATIONS */
.reveal { opacity:0; transform:translateY(30px); transition:opacity .65s ease,transform .65s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

/* RESPONSIVE */
@media (min-width:901px) { .mobile-menu{display:none !important;} }
@media (max-width:900px) { .punti-grid{grid-template-columns:1fr} .contact-grid{grid-template-columns:1fr} .nav-links,.nav-cta,.theme-toggle-nav{display:none} .nav-toggle{display:flex} }
@media (max-width:900px) { body.menu-open .mobile-menu{display:flex} }
@media (max-width:900px) { .cookie-banner{left:16px; right:16px; bottom:16px; flex-direction:column;} }
@media (max-width:900px) { .ledwall-content-grid{grid-template-columns:1fr;} }
@media (max-width:900px) { .gallery-page .page-hero, .ledwall-page .ledwall-hero{min-height:auto; padding-right:6%;} .gallery-page .page-hero::after, .ledwall-page .ledwall-hero::after{display:none;} }
@media (max-width:600px) {
  .hero-stats{gap:24px}
  nav{padding:16px 5%}
  .theme-toggle{font-size:.72rem; gap:8px}
  .cookie-actions{width:100%}
  .cookie-btn{width:100%}
  .lightbox{padding:20px 16px}
  .lightbox-nav{width:42px;height:42px;font-size:1.4rem}
  .lightbox-prev{left:8px}
  .lightbox-next{right:8px}
  .lightbox-close{top:10px;right:10px;width:40px;height:40px}
  .lightbox-figure img{max-height:70vh}
  .lightbox-figure figcaption{font-size:.85rem}
  .hero-video{opacity:.18; mix-blend-mode:normal}
  .hero-bg{
    background:
      linear-gradient(to right, rgba(10,11,12,.94) 0%, rgba(10,11,12,.88) 45%, rgba(10,11,12,.80) 100%),
      radial-gradient(circle at 78% 24%, rgba(224,92,16,.16) 0%, rgba(224,92,16,.08) 14%, rgba(224,92,16,0) 38%),
      linear-gradient(120deg, #1a1d1f 0%, #222629 38%, #3a4349 100%);
  }
}
