:root{
    --bg:#0c0c0e;
    --surface:#17171a;
    --surface-2:#1f1f23;
    --red:#e23628;
    --white:#f5f5f2;
    --muted:#9a9aa2;
    --line:#2a2a2f;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--bg);
    color:var(--white);
    font-family:'Inter', sans-serif;
    line-height:1.5;
    overflow-x:hidden;
  }
  a{color:inherit; text-decoration:none;}
  .wrap{max-width:1180px; margin:0 auto; padding:0 32px;}
  .eyebrow{
    font-family:'Oswald', sans-serif;
    text-transform:uppercase;
    letter-spacing:0.18em;
    font-size:13px;
    color:var(--red);
    font-weight:600;
  }
  h1,h2,h3{font-family:'Anton', sans-serif; font-weight:400; letter-spacing:0.01em; text-transform:uppercase;}

  /* NAV */
  nav{
    position:fixed; top:0; left:0; right:0; z-index:50;
    background:rgba(12,12,14,0.85);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  nav .wrap{display:flex; align-items:center; justify-content:space-between; height:76px;}
  nav img{height:26px; display:block;}
  nav .links{display:flex; gap:22px; font-family:'Oswald', sans-serif; font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--muted); flex-wrap:wrap;}
  nav .links a:hover{color:var(--white);}
  nav .cta{
    font-family:'Oswald', sans-serif; font-size:13px; letter-spacing:0.1em; text-transform:uppercase;
    border:1px solid var(--red); color:var(--white); padding:10px 20px;
  }
  nav .cta:hover{background:var(--red);}

  /* HERO */
  .hero{
    position:relative;
    min-height:100vh;
    display:flex; flex-direction:column; justify-content:center;
    padding-top:76px;
    overflow:hidden;
  }
  .hero::before{
    content:"";
    position:absolute; inset:0;
    background:
      radial-gradient(ellipse 900px 500px at 15% 30%, rgba(226,54,40,0.14), transparent 60%),
      radial-gradient(ellipse 700px 500px at 85% 70%, rgba(226,54,40,0.10), transparent 60%);
    animation:sweep 14s ease-in-out infinite alternate;
    pointer-events:none;
  }
  @keyframes sweep{
    0%{ opacity:0.6; transform:translateX(-2%);}
    100%{ opacity:1; transform:translateX(2%);}
  }
  .hero-inner{position:relative; z-index:2;}
  .hero .eyebrow{margin-bottom:22px; display:block;}
  .hero h1{
    font-size:clamp(48px, 8vw, 108px);
    line-height:0.96;
    max-width:920px;
  }
  .hero h1 span{color:var(--red);}
  .hero p{
    margin-top:28px;
    max-width:540px;
    font-size:18px;
    color:var(--muted);
  }
  .hero .actions{margin-top:44px; display:flex; gap:16px; flex-wrap:wrap;}
  .btn{
    font-family:'Oswald', sans-serif; font-size:14px; letter-spacing:0.1em; text-transform:uppercase;
    padding:16px 30px; display:inline-block; border:1px solid var(--line);
  }
  .btn.primary{background:var(--red); border-color:var(--red);}
  .btn.primary:hover{background:#c72e22;}
  .btn.ghost:hover{border-color:var(--white);}

  /* MARQUEE */
  .marquee{
    border-top:1px solid var(--line); border-bottom:1px solid var(--line);
    overflow:hidden; white-space:nowrap; padding:22px 0;
    background:var(--surface);
  }
  .marquee-track{display:inline-block; animation:scroll 32s linear infinite;}
  .marquee-track span{
    font-family:'Oswald', sans-serif; font-size:15px; letter-spacing:0.08em; text-transform:uppercase;
    color:var(--muted); margin:0 28px;
  }
  .marquee-track span b{color:var(--white); font-weight:600;}
  @keyframes scroll{
    0%{transform:translateX(0);}
    100%{transform:translateX(-50%);}
  }

  section{padding:120px 0;}
  .section-head{max-width:640px; margin-bottom:64px;}
  .section-head .eyebrow{margin-bottom:16px; display:block;}
  .section-head h2{font-size:clamp(32px, 4vw, 48px); line-height:1.05;}

  /* ABOUT */
  .about-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:64px; align-items:start;}
  .about-grid p{color:var(--muted); font-size:17px; margin-bottom:20px; max-width:520px;}
  .traits{display:flex; flex-direction:column; gap:0;}
  .trait{padding:26px 0; border-top:1px solid var(--line);}
  .trait:last-child{border-bottom:1px solid var(--line);}
  .trait h3{font-family:'Oswald', sans-serif; font-weight:600; font-size:16px; letter-spacing:0.06em; text-transform:uppercase; margin-bottom:8px; color:var(--red);}
  .trait p{color:var(--muted); font-size:15px; margin:0; max-width:none;}

  /* UNIQUE PANEL */
  .unique{background:var(--bg);}
  .unique-panel{
    border:1px solid var(--red);
    padding:56px;
    display:grid; grid-template-columns:0.9fr 1.1fr; gap:56px; align-items:start;
  }
  .unique-panel .kicker{
    font-family:'Oswald', sans-serif; font-weight:600; font-size:15px; letter-spacing:0.04em;
    color:var(--white); margin-bottom:18px;
  }
  .unique-panel .kicker b{color:var(--red);}
  .unique-panel p{color:var(--muted); font-size:16px; max-width:440px;}
  .unique-list{display:flex; flex-direction:column; gap:24px;}
  .unique-item{border-top:1px solid var(--line); padding-top:20px;}
  .unique-item:first-child{border-top:none; padding-top:0;}
  .unique-item h3{font-family:'Oswald', sans-serif; font-weight:600; font-size:15px; letter-spacing:0.05em; text-transform:uppercase; color:var(--red); margin-bottom:8px;}
  .unique-item p{color:var(--muted); font-size:15px; margin:0; max-width:none;}

  /* BADGE (tag UNIQUE) */
  .badge{
    display:inline-block; border:1px solid var(--red); color:var(--red);
    font-family:'Oswald', sans-serif; font-weight:700; font-size:13px; letter-spacing:0.1em;
    padding:8px 16px; margin-bottom:20px; text-transform:uppercase;
  }

  /* PILLARS (chi siamo / unique) */
  .pillars{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:48px;}
  .pillar{border:1px solid var(--line); padding:28px;}
  .pillar .n{font-family:'Anton', sans-serif; font-size:26px; color:#3a3a40; display:block; margin-bottom:20px;}
  .pillar h3{font-family:'Oswald', sans-serif; font-weight:600; font-size:17px; letter-spacing:0.02em; text-transform:none; color:var(--white); margin-bottom:10px;}
  .pillar p{color:var(--muted); font-size:14px; margin:0; max-width:none;}

  .project-tags{display:flex; flex-wrap:wrap; gap:14px; margin-top:36px;}
  .project-tags .label{width:100%; font-family:'Oswald', sans-serif; font-weight:700; font-size:13px; letter-spacing:0.1em; color:var(--red); text-transform:uppercase; margin-bottom:6px;}
  .ptag{border:1px solid var(--line); padding:14px 22px; font-family:'Oswald', sans-serif; font-size:15px; color:var(--white);}

  /* ONE OF US */
  .oneofus{background:var(--surface);}
  .oneofus h2{font-size:clamp(30px,4vw,44px);}
  .oneofus .sub{font-family:'Oswald', sans-serif; font-weight:600; font-size:16px; color:var(--muted); margin-top:8px;}
  .oneofus p.intro{color:var(--muted); font-size:16px; max-width:640px; margin-top:20px;}
  .brand-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin-top:20px;}
  .brand-grid .b{border:1px solid var(--line); padding:16px 10px; text-align:center; font-family:'Inter', sans-serif; font-size:13px; color:var(--white);}
  .cat-label{font-family:'Oswald', sans-serif; font-weight:700; font-size:13px; letter-spacing:0.1em; color:var(--red); text-transform:uppercase; margin-top:36px; margin-bottom:16px; display:block;}
  .inst-grid{display:flex; flex-wrap:wrap; gap:14px;}
  .inst-grid .b{border:1px solid var(--red); background:rgba(226,54,40,0.06); padding:14px 24px; font-family:'Oswald', sans-serif; font-weight:600; font-size:15px; color:var(--white);}

  /* KUNIQUE CLIENTI */
  .kunique-clients p.intro{color:var(--muted); font-size:16px; max-width:640px; margin-top:20px;}
  .tag-row{display:flex; flex-wrap:wrap; gap:12px;}
  .tag-row .r{border:1px solid var(--line); padding:12px 20px; font-family:'Oswald', sans-serif; font-weight:600; font-size:14px; color:var(--white);}
  .tag-row .r.comune{border-color:var(--red); background:rgba(226,54,40,0.06);}

  /* SERVIZI CARDS */
  .servizi-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:44px;}
  .servizi-cards .card{border:1px solid var(--line); padding:28px; min-height:150px;}
  .servizi-cards .card h3{font-family:'Oswald', sans-serif; font-weight:700; font-size:19px; color:var(--red); margin-bottom:12px;}
  .servizi-cards .card p{color:var(--muted); font-size:14px; margin:0; max-width:none;}
  .servizi-toggle{
    margin-top:28px; background:none; border:1px solid var(--red); color:var(--red);
    font-family:'Oswald', sans-serif; font-weight:700; font-size:14px; letter-spacing:0.06em; text-transform:uppercase;
    padding:14px 26px; cursor:pointer;
  }
  .servizi-toggle:hover{background:var(--red); color:var(--white);}
  .servizi-extra{
    display:none;
    grid-template-columns:repeat(2,1fr); gap:24px; margin-top:24px;
    max-width:calc(66.6% + 12px);
  }
  .servizi-extra.open{display:grid;}

  /* SERVICES */
  .services{background:var(--surface);}
  .tag-cloud{display:flex; flex-wrap:wrap; gap:14px;}
  .tag{
    font-family:'Oswald', sans-serif; text-transform:uppercase; letter-spacing:0.06em; font-size:14px;
    border:1px solid var(--line); padding:14px 24px; color:var(--white);
    transition:border-color .2s, color .2s;
  }
  .tag:hover{border-color:var(--red); color:var(--red);}

  /* CASE HISTORY */
  .stats{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); margin-top:64px;}
  .stat{background:var(--bg); padding:44px 32px;}
  .stat .num{font-family:'Anton', sans-serif; font-size:52px; color:var(--red); line-height:1;}
  .stat .label{margin-top:12px; color:var(--muted); font-size:14px; font-family:'Oswald', sans-serif; text-transform:uppercase; letter-spacing:0.06em;}

  /* RADIO */
  .radio{
    background:var(--surface-2);
    border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  }
  .radio-grid{display:grid; grid-template-columns:0.8fr 1.2fr; gap:64px; align-items:center;}
  .radio h2{font-size:clamp(28px,3.4vw,40px); line-height:1.08; margin-bottom:20px;}
  .radio p{color:var(--muted); font-size:16px; margin-bottom:14px; max-width:480px;}
  .schedule{display:flex; flex-direction:column; gap:14px;}
  .schedule .row{display:flex; justify-content:space-between; border-bottom:1px solid var(--line); padding-bottom:14px; font-family:'Oswald', sans-serif; text-transform:uppercase; letter-spacing:0.04em; font-size:14px;}
  .schedule .row span:last-child{color:var(--red);}

  /* CONTACT */
  .contact{text-align:center;}
  .contact h2{font-size:clamp(36px,6vw,72px); max-width:820px; margin:0 auto 32px;}
  .contact p{color:var(--muted); margin-bottom:40px;}

  footer{border-top:1px solid var(--line); padding:48px 0;}
  footer .wrap{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px;}
  footer img{height:20px; opacity:0.8;}
  footer .meta{font-family:'Oswald', sans-serif; font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted);}

  /* PAGE HEADER (sottopagine) */
  .page-header{
    padding-top:170px; padding-bottom:70px;
    border-bottom:1px solid var(--line);
  }
  .page-header h1{font-size:clamp(40px,6vw,72px); line-height:0.98; max-width:820px;}
  .page-header p{margin-top:22px; color:var(--muted); font-size:17px; max-width:560px;}

  /* GALLERY */
  .gallery-filters{display:flex; gap:12px; margin-bottom:44px; flex-wrap:wrap;}
  .gallery-filters button{
    font-family:'Oswald', sans-serif; text-transform:uppercase; letter-spacing:0.06em; font-size:13px;
    background:none; border:1px solid var(--line); color:var(--muted); padding:10px 20px; cursor:pointer;
    transition:border-color .2s, color .2s;
  }
  .gallery-filters button.active, .gallery-filters button:hover{border-color:var(--red); color:var(--white);}

  .gallery-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:18px;
  }
  .gallery-item{
    position:relative;
    aspect-ratio:4/3;
    background:var(--surface);
    border:1px solid var(--line);
    overflow:hidden;
    display:flex; align-items:center; justify-content:center;
  }
  .gallery-item img, .gallery-item video{
    width:100%; height:100%; object-fit:cover; display:block;
  }
  .gallery-item .placeholder{
    font-family:'Oswald', sans-serif; font-size:13px; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted);
    text-align:center; padding:20px;
  }
  .gallery-item .placeholder .hint{display:block; margin-top:6px; font-size:11px; color:#5a5a62; text-transform:none; letter-spacing:0;}
  .gallery-item .tag{
    position:absolute; top:12px; left:12px;
    font-family:'Oswald', sans-serif; font-size:11px; letter-spacing:0.08em; text-transform:uppercase;
    background:rgba(12,12,14,0.75); color:var(--white); padding:5px 10px;
  }
  .gallery-item.video .tag{background:var(--red);}
  .gallery-item.tall{grid-row:span 2;}

  @media (max-width:860px){
    .gallery-grid{grid-template-columns:repeat(2, 1fr);}
    .page-header{padding-top:130px;}
  }
  @media (max-width:560px){
    .gallery-grid{grid-template-columns:1fr;}
  }

  @media (max-width:860px){
    nav .links{display:none;}
    .about-grid, .radio-grid, .unique-panel{grid-template-columns:1fr; gap:40px;}
    .unique-panel{padding:32px;}
    .stats{grid-template-columns:1fr;}
    .pillars, .servizi-cards{grid-template-columns:1fr;}
    .brand-grid{grid-template-columns:repeat(2,1fr);}
    .servizi-extra{grid-template-columns:1fr; max-width:100%;}
    section{padding:80px 0;}
  }
