﻿
    :root{
      --bg:#fbe4ea;
      --soft:#fdf1f0;
      --line:#ead3d7;
      --text:#1f1a17;
      --muted:#6f5b56;
      --heading:#17110f;

      --accent:#cf2b36;
      --accent-2:#a6232d;
      --accent-soft:#f6d8dd;
      --peach:#f3d3be;

      --shadow: 0 18px 50px rgba(31,26,23,.12);
      --radius: 18px;
      --max: 1120px;

      --fs-body: clamp(1rem, .98rem + .18vw, 1.08rem);
      --fs-lead: clamp(1.08rem, 1rem + .45vw, 1.24rem);
      --fs-h1: clamp(2.7rem, 4.7vw, 4.1rem);
      --fs-h2: clamp(2rem, 1.4rem + 1.1vw, 2.6rem);
      --fs-h3: clamp(1.3rem, 1.1rem + .45vw, 1.62rem);
      --fs-small: .94rem;

      --btn-height: 50px;
      --btn-radius: 18px;
      --btn-px: 24px;
    }

    *{ box-sizing:border-box; }
    html,body{ height:100%; }
    html{ overflow-x:hidden; }
    body{
      margin:0;
      font-family: "Manrope", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
      color:var(--text);
      background:var(--bg);
      font-size:var(--fs-body);
      line-height:1.58;
      letter-spacing:.005em;
    }
    body.menu-open{ overflow:hidden; }
    body{ overflow-x:hidden; }
    img, video, iframe{ max-width:100%; }

    a{ color:inherit; text-decoration:none; }
    a:hover{ text-decoration:underline; }
    p{
      margin:0;
      color:var(--muted);
    }
    h1,h2,h3,h4{
      margin:0;
      color:var(--heading);
      line-height:1.2;
      letter-spacing:-.01em;
      font-weight:800;
      font-family: "Sora", "Manrope", ui-sans-serif, system-ui, sans-serif;
    }
    h2{ font-size:var(--fs-h2); }
    h3{ font-size:var(--fs-h3); }

    .skip-link{
      position:absolute;
      left:10px;
      top:-44px;
      z-index:50;
      background:#111;
      color:#fff;
      padding:10px 14px;
      border-radius:10px;
      font-weight:700;
      text-decoration:none;
    }
    .skip-link:focus{
      top:10px;
      outline:2px solid #fff;
      outline-offset:2px;
    }

    :focus-visible{
      outline:2px solid var(--accent);
      outline-offset:3px;
    }

    /* Layout helpers */
    .container{ width:min(var(--max), calc(100% - 40px)); margin-inline:auto; }
    .grid{ display:grid; gap:22px; }
    .btn{
      display:inline-flex; align-items:center; justify-content:center;
      min-height:var(--btn-height);
      padding:0 var(--btn-px);
      border-radius:var(--btn-radius);
      border:1px solid var(--accent);
      background:var(--accent);
      color:white;
      font-size:.98rem;
      font-weight:750;
      letter-spacing:.01em;
      text-decoration:none;
      box-shadow: 0 16px 40px rgba(43,31,22,.18);
      transition: transform .16s ease, filter .16s ease, background .16s ease, border-color .16s ease;
    }
    .btn:hover{
      filter:brightness(1.05);
      transform: translateY(-1px);
      text-decoration:none;
    }
    .btn.secondary{
      border:1px solid var(--accent);
      background:var(--accent);
      color:#fff;
      box-shadow: 0 16px 40px rgba(43,31,22,.18);
    }
    .btn.secondary:hover{
      background: var(--accent-2);
      border-color: var(--accent-2);
    }

    /* Varianti su hero scuro */
    .hero-media .btn{ border-color: rgba(255,255,255,.18); }
    .hero-media .btn.secondary{
      border-color: var(--accent);
      background: var(--accent);
      color:#fff;
    }
    .hero-media .btn.secondary:hover{
      background: var(--accent-2);
      border-color: var(--accent-2);
    }

    /* Header */
    header{
      position:fixed; top:0; left:0; width:100%; z-index:10;
      background: linear-gradient(180deg, rgba(0,0,0,.68), rgba(0,0,0,.38));
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      border-bottom:1px solid rgba(255,255,255,.14);
      transition: transform .28s ease, opacity .24s ease;
      will-change: transform, opacity;
    }
    header.header-hidden{
      transform: translateY(-115%);
      opacity:0;
      pointer-events:none;
    }
    .nav{
      display:flex; align-items:center; justify-content:space-between;
      padding:8px 0;
      gap:18px;
    }
    .brand{
      display:flex; align-items:center; gap:10px;
      font-weight:800;
      letter-spacing:.4px;
    }
    .brand-mark{
      width:280px;
      height:78px;
      display:block;
      object-fit:contain;
      flex:0 0 auto;
      filter:
        drop-shadow(0 0 14px rgba(244,118,111,.48))
        drop-shadow(0 0 28px rgba(220,18,21,.34));
    }

    nav ul{
      list-style:none;
      display:flex;
      gap:14px;
      margin:0;
      padding:0;
      align-items:center;
      flex-wrap:nowrap;
    }
    nav a{
      font-weight:650;
      font-size:.98rem;
      letter-spacing:.01em;
      color:rgba(255,255,255,.96);
      white-space:nowrap;
    }
    nav a:hover{ color:#ffdfe3; text-decoration:none; }

    .nav-cta{ display:flex; gap:10px; align-items:center; }
    .nav-cta .btn{
      min-height:42px;
      padding:0 20px;
      border-radius:16px;
      font-size:.95rem;
    }
    .nav-cta .mobile-top-course-btn{
      display:none;
      min-height:38px;
      padding:0 12px;
      border-radius:13px;
      font-size:.88rem;
    }
    .course-active-pill{
      min-height:42px;
      padding:0 14px;
      border-radius:14px;
      border:1px solid rgba(255,255,255,.34);
      background: rgba(207,43,54,.24);
      color:#fff;
      font-weight:800;
      font-size:.9rem;
      display:inline-flex;
      align-items:center;
      gap:8px;
      white-space:nowrap;
      box-shadow: 0 10px 28px rgba(0,0,0,.16);
      transition: transform .2s ease, background .2s ease, border-color .2s ease;
    }
    .nav-course-item{
      display:flex;
      align-items:center;
    }
    .nav-course-pill{
      min-height:38px;
      padding:0 12px;
      border-radius:13px;
      font-size:.88rem;
    }
    .course-active-pill:hover{
      text-decoration:none;
      background: rgba(207,43,54,.34);
      border-color: rgba(255,255,255,.48);
      transform: translateY(-1px);
    }
    .pulse-dot{
      width:10px;
      height:10px;
      border-radius:50%;
      background:#ff5a65;
      box-shadow: 0 0 0 0 rgba(255, 90, 101, .66);
      animation: pulse-ring 1.8s ease-out infinite;
      flex:0 0 auto;
    }
    .course-highlight-btn{
      position:relative;
      isolation:isolate;
    }
    .course-highlight-btn::after{
      content:'';
      position:absolute;
      inset:-5px;
      border-radius:20px;
      border:1px solid rgba(207,43,54,.42);
      opacity:.35;
      animation: pulse-soft 2.1s ease-out infinite;
      pointer-events:none;
      z-index:-1;
    }
    .section-cta-group .course-active-pill{
      min-height:48px;
      padding:0 18px;
      border-radius:16px;
      border-color: rgba(207,43,54,.35);
      background: rgba(207,43,54,.12);
      color: var(--accent);
      box-shadow:none;
    }
    .section-cta-group .course-active-pill .pulse-dot{
      animation: pulse-dot-pop 1.45s ease-in-out infinite;
      box-shadow: 0 0 0 0 rgba(255, 90, 101, .78);
    }
    .section-cta-group .course-active-pill:hover{
      background: rgba(207,43,54,.18);
      border-color: rgba(207,43,54,.45);
    }
    @keyframes pulse-ring{
      0% { box-shadow: 0 0 0 0 rgba(255, 90, 101, .64); }
      70% { box-shadow: 0 0 0 9px rgba(255, 90, 101, 0); }
      100% { box-shadow: 0 0 0 0 rgba(255, 90, 101, 0); }
    }
    @keyframes pulse-soft{
      0% { transform: scale(1); opacity:.45; }
      70% { transform: scale(1.04); opacity:0; }
      100% { transform: scale(1); opacity:0; }
    }
    @keyframes pulse-dot-pop{
      0%{
        transform: scale(1);
        box-shadow: 0 0 0 0 rgba(255, 90, 101, .78);
      }
      35%{
        transform: scale(1.18);
        box-shadow: 0 0 0 8px rgba(255, 90, 101, 0);
      }
      100%{
        transform: scale(1);
        box-shadow: 0 0 0 0 rgba(255, 90, 101, 0);
      }
    }
    .sr-only{
      position:absolute;
      width:1px;
      height:1px;
      padding:0;
      margin:-1px;
      overflow:hidden;
      clip:rect(0,0,0,0);
      white-space:nowrap;
      border:0;
    }
    .lang-switch{
      display:inline-flex;
      align-items:center;
      position:relative;
    }
    .lang-switch select{
      min-height:42px;
      padding:0 14px;
      border-radius:14px;
      border:1px solid rgba(255,255,255,.35);
      background: rgba(255,255,255,.16);
      color:#fff;
      font-weight:700;
      font-size:.92rem;
      outline:none;
      cursor:pointer;
      appearance:none;
      -webkit-appearance:none;
    }
    .lang-switch select option{
      color:#111;
      background:#fff;
    }
    .lang-switch.mobile{
      margin-top:8px;
    }
    .lang-switch.mobile select{
      width:100%;
      background: rgba(255,255,255,.12);
    }

    /* Mobile menu */
    .burger{ display:none; border:1px solid rgba(255,255,255,.24); background:transparent; padding:10px 12px; border-radius:12px; }
    .burger span{ display:block; width:18px; height:2px; background:#fff; margin:4px 0; }
    .mobile-panel{
      display:none;
      padding:12px 0 18px;
      border-top:1px solid rgba(255,255,255,.12);
    }
    .mobile-panel a{ display:block; padding:10px 0; color:rgba(232,221,198,.92); font-weight:600; }
    .mobile-course-link{
      display:flex !important;
      align-items:center;
      gap:8px;
      color:#ffecee !important;
      font-weight:800 !important;
    }
    .mobile-course-link::before{
      content:'';
      width:8px;
      height:8px;
      border-radius:50%;
      background:#ff5a65;
      box-shadow: 0 0 0 0 rgba(255, 90, 101, .62);
      animation: pulse-ring 1.8s ease-out infinite;
      flex:0 0 auto;
    }

    /* Hero */
    .hero{ padding:0; }
    /* rimuovo qualsiasi background immagine: il video sarÃ  l'unico sfondo */
    .hero-media{
      position:relative;
      overflow:hidden;
      min-height:90vh;
      display:flex;
      align-items:center;
      padding:0;
      border-bottom:1px solid var(--line);
      background:none;
    }
    .hero-video{
      position:absolute;
      top:0;
      left:0;
      width:100%;
      height:100%;
      object-fit:cover;
      z-index:0;
    }
    .hero-media::before{
      content:'';
      position:absolute;
      inset:0;
      background:
        linear-gradient(90deg, rgba(31,26,23,.54) 0%, rgba(31,26,23,.36) 34%, rgba(31,26,23,.18) 68%, rgba(31,26,23,.10) 100%),
        linear-gradient(180deg, rgba(31,26,23,.22), rgba(31,26,23,.36));
      z-index:1;
    }
    .hero-media .container{
      position:relative;
      z-index:2;
      min-height:90vh;
      display:flex;
      align-items:center;
      padding-top:88px;
      padding-bottom:56px;
    }

    .hero-content{
      max-width:560px;
      padding:12px 0;
      transform:translateY(10px);
    }

    .kicker{
      color:rgba(255,255,255,.78);
      font-weight:800;
      letter-spacing:.24em;
      text-transform:uppercase;
      font-size:.78rem;
      margin-bottom:16px;
    }

    h1{
      margin:0 0 16px;
      font-size:var(--fs-h1);
      line-height:1.05;
      font-weight:700;
      color:#fff;
      max-width:12ch;
    }

    .lead{
      color:rgba(255,255,255,.85);
      font-size:var(--fs-lead);
      line-height:1.62;
      max-width:32rem;
      margin:0;
    }

    .hero-actions{
      margin-top:28px;
      display:flex;
      gap:12px;
      flex-wrap:wrap;
    }
    .hero-actions .btn{
      min-width:220px;
    }

    .hero-strip{
      margin-top:26px;
      display:flex;
      gap:14px;
      flex-wrap:nowrap;
      align-items:center;
    }

    .chip-link{
      display:inline-flex;
      align-items:center;
      gap:9px;
      min-height:44px;
      padding:0 18px;
      border-radius:16px;
      border:1px solid var(--accent);
      background:var(--accent);
      color:#fff;
      font-weight:700;
      white-space:nowrap;
      text-decoration:none;
      transition:background .15s ease;
    }
    .chip-link-icon{
      width:28px;
      height:28px;
      flex:0 0 28px;
      display:block;
      filter: brightness(0) invert(1) drop-shadow(0 0 .5px rgba(255,255,255,.95));
      transform: translateY(-1px);
    }

    .chip-link:hover{
      background:var(--accent-2);
      text-decoration:none;
    }

    .hero-info{
      color:rgba(255,255,255,.92);
      font-weight:600;
      white-space:nowrap;
    }

    /* Sections */
    section{
      padding:56px 0;
      background:var(--soft);
    }
    section:nth-of-type(even){
      background:var(--bg);
    }
    .section-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:18px; margin-bottom:18px; }
    .section-head h2{ margin:0; }
    .section-head > div{
      min-width:0;
    }
    .section-head p{
      margin-top:8px;
      max-width:62ch;
      font-size:1.02rem;
      line-height:1.55;
    }
    .section-head .btn{
      align-self:flex-start;
      flex-shrink:0;
    }
    .section-cta-group{
      display:flex;
      align-items:flex-start;
      gap:10px;
      flex-wrap:wrap;
    }

    .azienda-layout{
      grid-template-columns: 1.05fr .95fr;
      gap:38px;
      align-items:center;
    }
    .azienda-copy{ max-width:62ch; }
    #azienda .azienda-copy{
      display:flex;
      flex-direction:column;
      align-items:flex-start;
    }
    #azienda .azienda-copy .section-head{
      width:100%;
      margin-bottom:12px !important;
    }
    #azienda .azienda-copy .section-head > div{
      width:100%;
      margin:0;
      padding:0;
    }
    #azienda .azienda-copy h2,
    #azienda .azienda-copy .section-head p,
    #azienda .azienda-copy .azienda-text,
    #azienda .azienda-copy > div{
      margin-left:0;
      padding-left:0;
      text-align:left;
    }
    .azienda-text{
      margin:0 0 14px;
      font-size:1.05rem;
      line-height:1.62;
    }
    .azienda-media-wrap{
      position:relative;
      border-radius:calc(var(--radius) + 6px);
      overflow:hidden;
      box-shadow:var(--shadow);
      min-height:420px;
      background:linear-gradient(180deg, rgba(255,246,239,.92), rgba(246,233,223,.78));
      isolation:isolate;
    }
    .azienda-media{
      width:100%;
      height:100%;
      min-height:420px;
      object-fit:cover;
      display:block;
      filter:none;
      transform:none;
    }
    .azienda-logo-sticker{
      position:absolute;
      left:50%;
      top:43%;
      transform:translate(-50%, -50%);
      width:clamp(76px, 8.8vw, 104px);
      height:auto;
      display:block;
      z-index:2;
      pointer-events:none;
      opacity:1;
      filter:none;
    }

    .kpis{
      background:var(--soft);
      border-top:1px solid var(--line);
      border-bottom:1px solid var(--line);
    }
    .kpis-head{
      display:flex;
      align-items:center;
      justify-content:flex-start;
      margin-bottom:22px;
    }
    .kpis-kicker{
      display:inline-block;
      font-size:.78rem;
      letter-spacing:.22em;
      text-transform:uppercase;
      color:var(--muted);
      font-weight:800;
    }
    .kpi-grid{
      grid-template-columns: repeat(4, 1fr);
      gap:22px;
    }
    .kpi{
      border:none;
      border-radius:0;
      padding:4px 10px;
      background:transparent;
      box-shadow:none;
      cursor:default;
      display:flex;
      flex-direction:column;
      align-items:center;
      text-align:center;
    }
    .kpi-icon{
      width:60px;
      height:60px;
      object-fit:contain;
      display:block;
      margin:0 0 12px;
    }
    .kpi b{
      display:block;
      margin-bottom:8px;
      font-size:clamp(1.9rem, 1.5rem + .9vw, 2.35rem);
      line-height:1.04;
      letter-spacing:-.01em;
      color:var(--text);
      text-align:center;
    }
    .kpi span{
      color:var(--muted);
      font-size:1rem;
      line-height:1.45;
      max-width:24ch;
      display:block;
      text-align:center;
    }

    #marchi{
      padding:0;
      background:transparent !important;
      border:0;
    }
    .brands-stage{
      background:#fff;
      padding:34px 0;
    }
    .brands-inline-head{
      justify-content:center;
      margin-bottom:14px;
    }
    .brands-inline-head h2{
      text-align:center;
    }
    .brands-grid{
      display:flex;
      flex-wrap:nowrap;
      gap:4px;
      align-items:center;
      overflow-x:auto;
      overflow-y:hidden;
      scroll-behavior:auto;
      scrollbar-width:none;
      -ms-overflow-style:none;
      padding:4px 2px;
    }
    .brands-grid::-webkit-scrollbar{
      display:none;
    }
    .brand-card{
      flex:0 0 auto;
      min-height:unset;
      border:none;
      border-radius:0;
      background: transparent;
      display:grid;
      place-items:center;
      text-align:center;
      padding:2px 4px;
      box-shadow:none;
    }
    .brand-logo{
      display:flex;
      align-items:center;
      justify-content:center;
      width:auto;
      min-width:188px;
      min-height:172px;
      padding:0 4px;
    }
    .brand-logo img{
      max-width:100%;
      max-height:172px;
      width:auto;
      height:auto;
      object-fit:contain;
      display:block;
    }
    .brand-fallback{
      font-family: "Sora", "Manrope", ui-sans-serif, system-ui, sans-serif;
      font-size:clamp(.92rem, .88rem + .25vw, 1.03rem);
      font-weight:700;
      letter-spacing:.05em;
      text-transform:uppercase;
      color:var(--heading);
      opacity:.72;
      display:none !important;
    }
    .brand-card.logo-missing{
      display:none;
    }

    .cards{ grid-template-columns:repeat(2, 1fr); }
    .service-grid{
      grid-template-columns:repeat(2, 1fr);
      gap:18px;
    }
    .service-tile{
      position:relative;
      min-height:230px;
      border-radius: var(--radius);
      overflow:hidden;
      border:1px solid rgba(255,255,255,.22);
      box-shadow: 0 14px 30px rgba(31,26,23,.12);
      background-image:
        linear-gradient(180deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,.56) 100%);
      background-size:cover;
      background-repeat:no-repeat;
      display:flex;
      align-items:center;
      justify-content:center;
    }
    .service-tile::after{
      content:"";
      position:absolute;
      inset:0;
      background: rgba(0,0,0,.32);
      pointer-events:none;
      z-index:1;
    }
    .service-consulenza{
      background-image:
        linear-gradient(180deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,.56) 100%),
        url('assets/img/come-lavoriamo-consulenza.jpg');
      background-position:center center;
    }
    .service-logistica{
      background-image:
        linear-gradient(180deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,.56) 100%),
        url('assets/img/come-lavoriamo-logistica.jpg');
      background-position:center;
    }
    .service-formazione{
      background-image:
        linear-gradient(180deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,.56) 100%),
        url('assets/img/come-lavoriamo-formazione.jpg');
      background-position:center;
    }
    .service-macchinari{
      background-image:
        linear-gradient(180deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,.56) 100%),
        url('assets/img/come-lavoriamo-macchinari.jpg');
      background-position:center;
    }
    .service-content{
      width:100%;
      max-width:52ch;
      padding:16px 18px;
      margin:0 14px;
      text-align:center;
      background: transparent;
      backdrop-filter: blur(2px);
      border-radius:14px;
      position:relative;
      z-index:2;
    }
    .service-content h3{
      color:#fff;
      margin:0 0 8px;
      font-size:clamp(1.4rem, 1.2rem + .45vw, 1.72rem);
    }
    .service-content p{
      margin:0;
      color:rgba(255,255,255,.92);
      font-size:1.02rem;
      line-height:1.5;
      max-width:46ch;
      margin:0 auto;
    }
    .work-grid{
      grid-template-columns: repeat(4, minmax(0,1fr));
      gap:18px;
    }
    .work-item{
      position:relative;
      padding:16px 8px 10px;
      min-height:170px;
    }
    .work-item h3{
      margin:0 0 10px;
      font-size:1.16rem;
      color:var(--accent-2);
      padding-bottom:8px;
      border-bottom:2px solid rgba(159,19,21,.22);
    }
    .work-item p{
      margin:0;
      color:var(--muted);
      font-size:1rem;
      line-height:1.55;
    }
    .card{
      border:1px solid var(--line);
      border-radius: var(--radius);
      padding:22px;
      background: rgba(255,255,255,.52);
      box-shadow: 0 4px 12px rgba(31,26,23,.04);
      transition: none;
      cursor:default;
    }
    .card:hover{
      transform:none;
      box-shadow: 0 4px 12px rgba(31,26,23,.04);
    }
    .card h3{
      margin:0 0 10px;
      color:var(--heading);
      font-size:clamp(1.42rem, 1.2rem + .5vw, 1.74rem);
    }
    .card p{
      margin:0;
      font-size:clamp(1.03rem, .98rem + .2vw, 1.14rem);
      line-height:1.62;
    }

    /* Instagram slider */
    .ig-slider{
      border:1px solid var(--line);
      border-radius: var(--radius);
      background: linear-gradient(180deg, rgba(255,255,255,.7), rgba(251,228,234,.42));
      box-shadow: 0 12px 28px rgba(31,26,23,.08);
      overflow:hidden;
      padding:14px;
    }
    .lightwidget-widget{
      width:100%;
      aspect-ratio: 4 / 1.45;
      height:auto !important;
      min-height:0 !important;
      border:0;
      display:block;
    }
    .ig-track{
      display:grid;
      grid-auto-flow: column;
      grid-auto-columns: 240px;
      gap:14px;
      overflow-x:auto;
      scroll-snap-type: x mandatory;
      scroll-behavior:smooth;
      padding-bottom:6px;
    }
    .ig-track::-webkit-scrollbar{ height:10px; }
    .ig-track::-webkit-scrollbar-thumb{ background: rgba(31,26,23,.18); border-radius:999px; }
    .ig-item{
      scroll-snap-align: start;
      border-radius:16px;
      overflow:hidden;
      display:block;
      border:1px solid rgba(201,170,146,.74);
      background: rgba(255,255,255,.06);
    }
    .ig-item img{
      width:100%;
      height:100%;
      aspect-ratio: 1 / 1;
      object-fit:cover;
      display:block;
      transform: scale(1);
      transition: transform .25s ease;
    }
    .ig-item:hover img{ transform: scale(1.03); }

    @media (max-width: 980px){
      .ig-track{ grid-auto-columns: 200px; }
      .work-grid{ grid-template-columns: repeat(2, minmax(0,1fr)); }
    }
    @media (max-width: 640px){
      .work-grid{ grid-template-columns: 1fr; }
      .work-item{ min-height: unset; }
    }
    @media (max-width: 640px){
      .hero-strip{
        flex-wrap:wrap;
        gap:10px;
      }
      .ig-track{ grid-auto-columns: 72vw; }
    }

    /* Reviews (semplice) */
    .reviews-grid{
      display:grid;
      grid-template-columns: repeat(3, 1fr);
      gap:18px;
    }
    .review-card{
      border:1px solid var(--line);
      border-radius: var(--radius);
      background: linear-gradient(180deg, rgba(255,255,255,.7), rgba(251,228,234,.42));
      box-shadow: 0 12px 28px rgba(31,26,23,.08);
      padding:18px;
      min-height: 180px;
      display:flex;
      flex-direction:column;
      justify-content:space-between;
    }
    .review-top{ display:flex; justify-content:space-between; align-items:center; gap:12px; }
    .stars{ font-weight:900; letter-spacing:.08em; color: var(--accent); }
    .review-meta{ color: var(--muted); font-weight:700; font-size:.9rem; }
    .review-text{ margin:12px 0 0; color: var(--muted); }
    .review-name{ margin-top:14px; font-weight:800; }
    .reviews-widget-shell{
      display:grid;
      gap:14px;
    }

    @media (max-width: 980px){
      .reviews-grid{ grid-template-columns: 1fr; }
    }

    /* Contatti */
    .contact-grid{
      grid-template-columns: 1.1fr .9fr;
      gap:22px;
      align-items:stretch;
    }

    .map-card{
      border:1px solid var(--line);
      border-radius: var(--radius);
      overflow:hidden;
      background: linear-gradient(180deg, rgba(255,255,255,.7), rgba(251,228,234,.42));
      box-shadow: var(--shadow);
      display:flex;
      flex-direction:column;
      height:auto;
      min-height:0;
      text-decoration:none;
    }
    .map-card:hover{ text-decoration:none; }

    .floating-wa{
      display:none;
      position:fixed;
      right:14px;
      bottom:14px;
      z-index:60;
      align-items:center;
      gap:8px;
      min-height:52px;
      padding:0 14px;
      border-radius:999px;
      background:var(--accent);
      color:#fff;
      border:1px solid rgba(255,255,255,.34);
      box-shadow: 0 12px 28px rgba(166,35,45,.32);
      font-weight:800;
      text-decoration:none;
      animation: waPulse 2.2s ease-in-out infinite;
      overflow:visible;
    }
    .floating-wa::after{
      content:"";
      position:absolute;
      inset:-4px;
      border-radius:999px;
      border:2px solid rgba(255,255,255,.7);
      opacity:0;
      transform:scale(.9);
      animation: waRing 2.2s ease-out infinite;
      pointer-events:none;
    }
    .floating-wa:hover{
      text-decoration:none;
      background:var(--accent-2);
      animation-play-state: paused;
    }
    .floating-wa img{
      width:22px;
      height:22px;
      display:block;
      filter: brightness(0) invert(1);
    }

    @keyframes waPulse{
      0%, 100%{
        transform: translateY(0) scale(1);
        box-shadow: 0 12px 28px rgba(166,35,45,.32);
      }
      18%{
        transform: translateY(-2px) scale(1.08);
        box-shadow: 0 18px 38px rgba(166,35,45,.48);
      }
      32%{
        transform: translateY(0) scale(1);
      }
      46%{
        transform: translateY(-1px) scale(1.05);
      }
      60%{
        transform: translateY(0) scale(1);
      }
    }
    @keyframes waRing{
      0%{
        opacity:.75;
        transform:scale(.88);
      }
      55%{
        opacity:.25;
      }
      100%{
        opacity:0;
        transform:scale(1.28);
      }
    }

    .wa-chat-widget{
      position:fixed;
      right:20px;
      bottom:20px;
      width:min(350px, calc(100vw - 40px));
      border-radius:20px;
      overflow:hidden;
      border:1px solid var(--line);
      box-shadow: 0 20px 44px rgba(31,26,23,.2);
      background: linear-gradient(180deg, rgba(255,255,255,.88), rgba(251,228,234,.94));
      color:var(--text);
      z-index:58;
      opacity:0;
      transform:translateY(16px);
      pointer-events:none;
      transition: opacity .28s ease, transform .28s ease;
    }
    .wa-chat-widget.open{
      opacity:1;
      transform:translateY(0);
      pointer-events:auto;
    }
    .wa-chat-head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      padding:13px 14px;
      background: linear-gradient(135deg, #cf2b36, #a6232d);
    }
    .wa-chat-brand{
      display:flex;
      align-items:center;
      gap:8px;
    }
    .wa-chat-brand img{
      width:28px;
      height:28px;
      display:block;
      filter: brightness(0) invert(1);
    }
    .wa-chat-brand strong{
      font-size:1.05rem;
      letter-spacing:.01em;
      color:#fff;
    }
    .wa-chat-close{
      appearance:none;
      border:0;
      width:34px;
      height:34px;
      border-radius:999px;
      background:rgba(255,255,255,.2);
      color:#fff;
      font-size:1.6rem;
      line-height:1;
      cursor:pointer;
    }
    .wa-chat-body{
      padding:14px;
      background: transparent;
    }
    .wa-chat-body p{
      margin:0 0 12px;
      color:var(--text);
      line-height:1.46;
      font-size:1.02rem;
      background: rgba(255,255,255,.82);
      border:1px solid rgba(234,211,215,.95);
      border-radius:16px;
      padding:12px 13px;
    }
    .wa-chat-cta{
      display:flex;
      align-items:center;
      justify-content:center;
      min-height:48px;
      border-radius:999px;
      background:var(--accent);
      color:#fff;
      font-weight:800;
      font-size:1rem;
      text-decoration:none;
      box-shadow: 0 12px 24px rgba(166,35,45,.26);
    }
    .wa-chat-cta:hover{
      text-decoration:none;
      background:var(--accent-2);
    }

    /* Mappa visibile senza cookie: immagine statica (OpenStreetMap) */
    .map-media{
      flex:1 1 auto;
      min-height:0;
      border-bottom:1px solid var(--line);
    }
    .map-media iframe{
      width:100%;
      height:100%;
      display:block;
      border:0;
    }
    .map-footer{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:12px;
      padding:14px 16px;
      flex:0 0 auto;
    }
    .map-title{ font-weight:900; }
    .map-sub{ color:var(--muted); font-weight:650; font-size:.98rem; }
    .map-cta{
      display:inline-flex;
      align-items:center;
      gap:10px;
      min-height:var(--btn-height);
      padding:0 var(--btn-px);
      border-radius:var(--btn-radius);
      border:1px solid var(--accent);
      background:var(--accent);
      color:#fff;
      font-weight:750;
      font-size:.98rem;
      line-height:1;
      letter-spacing:.01em;
      white-space:nowrap;
      box-shadow: 0 16px 40px rgba(43,31,22,.18);
    }
    .map-cta-icon{
      width:24px;
      height:24px;
      flex:0 0 24px;
      display:block;
      filter: brightness(0) invert(1);
    }

    .contact-actions{
      display:grid;
      grid-template-columns: 1fr;
      gap:10px;
    }
    .action{
      appearance:none;
      width:100%;
      text-align:left;
      cursor:pointer;
      display:flex;
      gap:14px;
      align-items:center;
      min-height:var(--btn-height);
      padding:10px 14px;
      border-radius:var(--btn-radius);
      border:1px solid var(--line);
      background: rgba(255,255,255,.56);
      color:var(--text);
      box-shadow: 0 2px 8px rgba(31,26,23,.04);
      text-decoration:none;
      transition: transform .15s ease, background .15s ease;
    }
    .action:hover{
      text-decoration:none;
      background: rgba(255,255,255,.78);
      border-color: rgba(217,58,77,.32);
      transform: translateY(-1px);
    }
    .action .ico{
      width:30px;
      height:30px;
      display:grid;
      place-items:center;
      flex:0 0 30px;
      color:var(--heading);
      line-height:0;
    }
    .action-icon{
      width:26px;
      height:26px;
      display:block;
      object-fit:contain;
      filter: brightness(0) saturate(100%);
    }
    .action-icon-email{ width:24px; height:24px; }
    .action-icon-whatsapp{ width:25px; height:25px; }
    .action-icon-call{ width:24px; height:24px; }
    .action-icon-instagram{ width:25px; height:25px; }
    .action-icon-facebook{ width:29px; height:29px; }
    .action-button .action-icon{
      transform: translateY(-.5px);
    }
    .action b{
      display:block;
      font-size:1.2rem;
      line-height:1.2;
      letter-spacing:-.01em;
      color:var(--heading);
    }
    .action small{
      display:block;
      color:var(--muted);
      margin-top:3px;
      font-size:.95rem;
      font-weight:650;
      line-height:1.35;
    }
    .action-button{
      font: inherit;
    }

    .contact-grid > .card{
      height:auto;
      min-height:0;
      overflow:visible;
    }

    .mini-mail-form{
      margin-top:14px;
      padding:16px;
      border:1px solid var(--line);
      border-radius:16px;
      background: rgba(255,255,255,.5);
      display:none;
    }
    .mini-mail-form.open{ display:block; }
    .mini-mail-head h4{ margin:0 0 6px; font-size:1.22rem; color:var(--heading); }
    .mini-mail-head p{ margin:0 0 14px; color:var(--muted); font-size:1rem; }
    .mini-mail-grid{
      display:grid;
      grid-template-columns: 1fr 1fr;
      gap:12px;
      margin-bottom:12px;
    }
    .mini-mail-form label{ display:block; }
    .mini-mail-form label span{
      display:block;
      font-size:.92rem;
      font-weight:700;
      margin-bottom:6px;
    }
    .mini-mail-form input,
    .mini-mail-form textarea{
      width:100%;
      border:1px solid var(--line);
      background: rgba(255,255,255,.55);
      color:var(--text);
      border-radius:14px;
      padding:12px 14px;
      font: inherit;
      outline:none;
    }
    .mini-mail-form input:focus,
    .mini-mail-form textarea:focus{
      border-color: rgba(209,31,51,.45);
      box-shadow: 0 0 0 3px rgba(209,31,51,.08);
    }
    .mini-mail-actions{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      margin-top:14px;
    }
    /* Fallback: nasconde eventuali pulsanti legacy del vecchio mini form */
    #miniMailForm #gmailBtn,
    #miniMailForm .mini-mail-actions button[type="submit"]{
      display:none !important;
    }
    .mini-mail-result{
      margin-top:10px;
      font-size:.94rem;
      font-weight:700;
      display:none;
    }
    .mini-mail-result.ok{ color:#1f7a3f; display:block; }
    .mini-mail-result.err{ color:#a6232d; display:block; }
    .hp-field{
      position:absolute !important;
      left:-9999px !important;
      width:1px;
      height:1px;
      overflow:hidden;
    }

    @media (max-width: 980px){
      .contact-grid{ grid-template-columns: 1fr; }
      .map-card{
        height:auto;
        min-height:0;
      }
      .contact-grid > .card{
        height:auto;
        min-height:0;
        overflow:visible;
        max-height:none !important;
      }
      .map-media{
        min-height:240px;
      }
      .contact-actions{ grid-template-columns: 1fr; }
      .mini-mail-grid{ grid-template-columns: 1fr; }
    }

    /* Footer */
    footer{
      padding:14px 0 10px;
      border-top:1px solid rgba(255,255,255,.12);
      background: #000;
      color:#E8DDC6;
    }
    footer .container{
      width:min(1140px, calc(100% - 64px));
    }
    .footer-grid{
      display:grid;
      grid-template-columns: auto 1fr;
      gap:24px;
      align-items:center;
    }
    .footer-brand{
      display:flex;
      flex-direction:column;
      gap:0;
      max-width:none;
    }
    .footer-brand .brand{
      display:flex;
      align-items:center;
      gap:12px;
    }
    .footer-logo{
      display:block;
      width:132px;
      height:auto;
      filter:
        drop-shadow(0 0 10px rgba(244,118,111,.24))
        drop-shadow(0 0 20px rgba(220,18,21,.16));
    }
    .footer-nav-title{
      display:none;
    }
    .footer-links{
      display:flex;
      flex-wrap:wrap;
      justify-content:flex-end;
      align-items:center;
      gap:8px 24px;
    }
    .footer-links a{
      color:#fff;
      font-size:.96rem;
      font-weight:620;
    }
    .footer-links a:hover{ text-decoration:none; color:#cf2b36; }
    .fineprint{
      margin-top:10px;
      color:rgba(232,221,198,.72);
      font-size:.84rem;
      border-top:1px solid rgba(232,221,198,.24);
      padding-top:8px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px 20px;
      flex-wrap:wrap;
    }
    .legal-links{
      display:flex;
      flex-wrap:wrap;
      gap:8px 16px;
      align-items:center;
    }
    .legal-links a{
      color:#fff;
      font-weight:600;
      text-decoration:none;
    }
    .legal-links a:hover{
      color:#cf2b36;
      text-decoration:none;
    }
    .legal-data{
      display:flex;
      flex-wrap:wrap;
      gap:4px 12px;
      color:rgba(255,255,255,.86);
    }
    .legal-data span{
      display:inline-flex;
      align-items:center;
      gap:8px;
    }
    .legal-data span:not(:last-child)::after{
      content:"•";
      color:rgba(232,221,198,.45);
      margin-left:4px;
    }

    /* Responsive */
    @media (max-width: 1180px){
      nav ul{
        gap:10px;
      }
      nav a{
        font-size:.93rem;
      }
      .nav-course-pill{
        padding:0 10px;
        font-size:.84rem;
      }
    }
    @media (max-width: 980px){
      .hero-wrap{ grid-template-columns: 1fr; }
      .cards{ grid-template-columns: 1fr; }
      .service-grid{ grid-template-columns: 1fr; }
      .brand-grid{ grid-template-columns: repeat(3, 1fr); }
      .kpi-grid{ grid-template-columns: repeat(2, 1fr); }
      #marchi{
        padding:0;
      }
      .brands-stage{
        padding:24px 0;
      }
      .brands-grid{
        gap:4px;
      }
      .brand-card{
        flex:0 0 auto;
      }
      .brand-logo{
        min-width:158px;
        min-height:140px;
      }
      .brand-logo img{
        max-height:140px;
      }
      .azienda-layout{
        grid-template-columns: 1fr;
        gap:18px;
      }
      .azienda-copy{
        max-width:none;
      }
      .azienda-media-wrap{
        order:-1;
        min-height:280px;
        max-height:340px;
        border-radius:18px;
      }
      .azienda-media{
        min-height:280px;
      }
      .azienda-logo-sticker{
        width:clamp(104px, 24vw, 132px);
        top:67%;
      }
      footer .container{ width:min(960px, calc(100% - 32px)); }
      .footer-grid{ grid-template-columns: 1fr; gap:10px; }
      .footer-links{ justify-content:flex-start; gap:6px 16px; }
      .fineprint{ justify-content:flex-start; }
      .brand-mark{ width:220px; height:64px; }
      .footer-logo{ width:120px; }
    }
    @media (max-width: 820px){
      nav ul{ display:none; }
      .burger{ display:inline-block; }
      .nav-cta .btn.secondary{ display:none; }
      .desktop-contact-btn{ display:none; }
      .nav-cta .mobile-top-course-btn{ display:inline-flex; }
      .mobile-panel{ display:none; }
      .mobile-panel.open{ display:block; }
      .nav-cta .lang-switch{
        display:none;
      }
      .nav-course-pill{
        display:none;
      }

      body{
        padding-bottom:84px;
      }
      .container{
        width:min(var(--max), calc(100% - 26px));
      }
      section{
        padding:44px 0;
      }
      .section-head{
        flex-direction:column;
        gap:12px;
        margin-bottom:14px;
      }
      .section-head p{
        font-size:.98rem;
        line-height:1.5;
      }
      .section-cta-group{
        width:100%;
      }
      .hero-media{
        min-height:84vh;
      }
      .hero-media .container{
        min-height:84vh;
        padding-top:98px;
        padding-bottom:34px;
      }
      .hero-content{
        max-width:100%;
      }
      h1{
        max-width:15ch;
      }
      .hero-strip{
        flex-wrap:wrap;
        align-items:center;
        gap:8px 12px;
      }
      .chip-link{
        max-width:100%;
        width:auto;
      }
      .hero-info{
        display:inline-flex;
        align-items:center;
        line-height:1.3;
      }
      .hero-strip .hero-info:last-child{
        flex-basis:100%;
      }
      .service-tile{
        min-height:208px;
      }
      .service-content{
        margin:0 10px;
        padding:14px 12px;
      }
      .card{
        padding:18px;
      }
      .map-footer{
        flex-direction:column;
        align-items:flex-start;
      }
      .map-cta{
        width:100%;
        justify-content:center;
      }
      .floating-wa{
        display:inline-flex;
        right:12px;
        bottom:12px;
        min-height:54px;
        min-width:54px;
        padding:0 16px;
      }
      .wa-chat-widget{
        display:none;
      }
    }
    @media (max-width: 980px) and (max-height: 560px){
      nav ul{ display:none; }
      .burger{ display:inline-block; }
      .desktop-contact-btn{ display:none; }
      .nav-cta .mobile-top-course-btn{ display:inline-flex; }
      .nav-cta .lang-switch{ display:none; }
      .nav-course-pill{ display:none; }
      .azienda-logo-sticker{ top:89%; }
    }
    @media (max-width: 560px){
      .kpi-grid{
        grid-template-columns:1fr;
      }
      .brands-grid{
        gap:2px;
      }
      .brand-card{
        flex:0 0 auto;
      }
      .brand-logo{
        min-width:132px;
        min-height:118px;
      }
      .brand-logo img{
        max-height:118px;
      }
      .azienda-media-wrap{
        min-height:230px;
        max-height:280px;
      }
      .azienda-media{
        min-height:230px;
      }
      .azienda-logo-sticker{
        width:clamp(98px, 28vw, 124px);
        top:67%;
      }
      .azienda-text{
        font-size:1rem;
        line-height:1.56;
        margin-bottom:12px;
      }
      .brand-mark{
        width:188px;
        height:56px;
      }
      .floating-wa{
        width:56px;
        height:56px;
        padding:0;
        justify-content:center;
      }
      .floating-wa span{
        display:none;
      }
    }
    @media (prefers-reduced-motion: reduce){
      .floating-wa{
        animation: waPulse 2.8s ease-in-out infinite;
      }
      .floating-wa::after{
        animation: waRing 2.8s ease-out infinite;
      }
    }

    .section-head,
    .kpi,
    .brand-card,
    .service-tile,
    .card,
    .map-card,
    .reviews-widget-shell,
    .hero-content{
      opacity:0;
      transform:translateY(20px);
      transition:opacity .55s ease, transform .55s ease;
    }
    .section-head.is-visible,
    .kpi.is-visible,
    .brand-card.is-visible,
    .service-tile.is-visible,
    .card.is-visible,
    .map-card.is-visible,
    .reviews-widget-shell.is-visible,
    .hero-content.is-visible{
      opacity:1;
      transform:translateY(0);
    }
    @media (prefers-reduced-motion: reduce){
      .mobile-course-link::before{
        animation:none !important;
      }
      .section-head,
      .kpi,
      .brand-card,
      .service-tile,
      .card,
      .map-card,
      .reviews-widget-shell,
      .hero-content{
        opacity:1;
        transform:none;
        transition:none;
      }
    }
  

