
/* ═══════════════════════════════════════════
   LOCAL FONT FACES  (SIL Open Font License)
   Licenze in assets/fonts/LICENSE-*.txt
   ═══════════════════════════════════════════ */

@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/playfair-display-700.woff2') format('woff2');
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('../fonts/playfair-display-900.woff2') format('woff2');
}
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url('../fonts/playfair-display-700-italic.woff2') format('woff2');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('../fonts/dm-sans-300.woff2') format('woff2');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/dm-sans-400.woff2') format('woff2');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../fonts/dm-sans-500.woff2') format('woff2');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/dm-sans-600.woff2') format('woff2');
}

    :root {
      --primary:#0F172A; --accent:#5175FF; --accent-hover:#5C7CFA;
      --white:#FFFFFF; --bg-alt:#F4F6F8; --grey-mid:#6B7280;
      --border:#E5E7EB; --text-body:#374151;
    }
    *,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
    html{scroll-behavior:smooth;}
    body{font-family:"DM Sans",sans-serif;background:#0F172A;color:var(--text-body);overflow-x:hidden;}

    /* ── NAV ── */
    nav{
      position:fixed;top:0;left:0;right:0;z-index:1000;
      display:flex;align-items:center;justify-content:space-between;
      padding:0 5vw;height:96px;
      background:rgba(15,23,42,0.98);backdrop-filter:blur(12px);
      border-bottom:1px solid rgba(41,51,105,0.4);
    }
    .logo{display:flex;align-items:center;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent;}
    .logo img{height:80px;width:auto;display:block;filter:brightness(0) invert(1);}
    .logo-menu-hint { display: none; }
    .nav-links{display:flex;gap:36px;list-style:none;}
    .nav-links a{
      text-decoration:none;font-size:12px;font-weight:600;
      letter-spacing:0.18em;text-transform:uppercase;color:#e8edf4;
      transition:color 0.2s;position:relative;cursor:pointer;
    }
    .nav-links a::after{
      content:"";position:absolute;bottom:-4px;left:0;right:0;
      height:1px;background:var(--accent-hover);
      transform:scaleX(0);transition:transform 0.25s;
    }
    .nav-links a:hover{color:var(--accent-hover);}
    .nav-links a:hover::after{transform:scaleX(1);}
    .nav-links a.active{color:#fff;}
    .nav-links a.active::after{transform:scaleX(1);}

    @media(max-width: 900px) {
      nav {
        height: 110px;
        justify-content: center !important;
        align-items: center !important;
        padding: 0 !important;
        position: fixed;
        top: 0; left: 0; right: 0;
        z-index: 1000;
        flex-direction: column;
        gap: 0;
      }
      .logo {
        width: 100% !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 10px 0 4px;
      }
      .nav-links { display: none; }
      .logo img { height: 52px; }
      .logo-menu-hint {
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: 100%;
        gap: 20px;
        padding: 0 0 8px;
      }
      .logo-menu-hint a {
        font-size:9px;font-weight:700;letter-spacing:0.12em;
        color:rgba(255,255,255,0.5);
        cursor:pointer;
        -webkit-tap-highlight-color:transparent;
        transition:color 0.2s,text-shadow 0.2s;
        white-space:nowrap;
        text-decoration:none;
      }
      .logo-menu-hint a:hover,
      .logo-menu-hint a:active { color:#ffffff !important; text-shadow:0 0 12px rgba(255,255,255,0.6), 0 0 28px rgba(255,255,255,0.2); }
      .mobile-menu {
        position: fixed;
        top: 96px;
        left: 0; right: 0;
        background: rgba(10,16,32,0.98);
        backdrop-filter: blur(20px);
        -webkit-backdrop-filter: blur(20px);
        border-bottom: 1px solid rgba(93,124,250,0.3);
        z-index: 999;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.45s cubic-bezier(0.4,0,0.2,1), opacity 0.3s;
        opacity: 0;
        pointer-events: none;
      }
      .mobile-menu.visible {
        max-height: 400px;
        opacity: 1;
        pointer-events: all;
      }
      .mobile-menu ul {
        list-style: none;
        display: flex;
        flex-direction: column;
        padding: 12px 0 20px;
      }
      .mobile-menu a {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 12px;
        padding: 16px 5vw;
        font-size: 11px;
        font-weight: 600;
        letter-spacing: 0.22em;
        text-transform: uppercase;
        color: rgba(255,255,255,0.55);
        cursor: pointer;
        transition: color 0.2s, background 0.2s;
        border-bottom: 1px solid rgba(255,255,255,0.04);
        text-decoration: none;
      }
      .mobile-menu li:last-child a { border-bottom: none; }
      .mobile-menu a:hover, .mobile-menu a.active {
        color: #ffffff;
        background: rgba(58,75,176,0.1);
      }
      .mobile-menu .menu-dot {
        width: 4px; height: 4px;
        background: var(--accent-hover);
        border-radius: 50%;
        opacity: 0;
        transition: opacity 0.2s;
      }
      .mobile-menu a.active .menu-dot { opacity: 1; }
      .mobile-overlay {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 998;
        background: rgba(0,0,0,0.3);
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.3s;
      }
      .mobile-overlay.visible { opacity: 1; pointer-events: all; }
      .hero { padding-top: 160px !important; min-height: auto; }
      .page-hero { padding-top: 156px !important; }
      .hero-inner { grid-template-columns: 1fr !important; text-align: center; gap: 32px; }
      .hero-photo { order: -1; justify-content: center; }
      .photo-frame, .photo-circle { width: 280px; height: 280px; }
      .photo-ring { width: 300px; height: 300px; }
      .hero-text { display: flex; flex-direction: column; align-items: center; }
      .hero-desc, .hero-subtitle { text-align: center; margin-left: auto; margin-right: auto; }
      .hero-divider { margin-left: auto; margin-right: auto; }
      /* Contatti grid → colonna unica su mobile */
      #page-contatti section > div { grid-template-columns: 1fr !important; gap: 40px !important; }
      /* Rimuove striscia bianca sotto la sezione contatti */
      #page-contatti { background: var(--primary); }
      /* Alza WhatsApp sulla pagina contatti */
      #page-contatti ~ #waFloat, #waFloat { bottom: 24px !important; }
    }

    @media(min-width: 901px) {
      .mobile-menu { display: none !important; }
      .mobile-overlay { display: none !important; }
      .logo-tap-hint { display: none !important; }
      .mobile-menu-btn { display: none !important; }
      .logo-menu-hint { display: none !important; }
    }
    .page{display:none;animation:fadeIn 0.4s ease;}
    .page.active{display:block;}
    @keyframes fadeIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}

    /* ══════════════════════════════
       HOME
    ══════════════════════════════ */
    .hero{
      min-height:auto;
      background:linear-gradient(to top,#0F172A 0%,#1e2a4a 40%,#ffffff 100%);
      display:flex;align-items:center;
      padding:150px 5vw 90px;position:relative;overflow:hidden;
    }
    .hero-inner{
      position:relative;z-index:2;
      display:grid;grid-template-columns:1fr 1fr;
      gap:60px;align-items:center;
      width:100%;max-width:1200px;margin:0 auto;
    }
    .hero-photo{display:flex;justify-content:center;align-items:flex-end;animation:fadeSlideLeft 0.9s ease both;}
    .photo-frame{position:relative;width:500px;height:500px;}
    .photo-circle{
      width:500px;height:500px;border-radius:50%;
      background:transparent;border:3px solid rgba(93,124,250,0.25);
      display:flex;align-items:center;justify-content:center;
      overflow:hidden;position:relative;
      box-shadow:0 0 0 1px rgba(58,75,176,0.1),0 20px 60px rgba(41,51,105,0.18);
    }
    .photo-circle img{width:100%;height:100%;object-fit:cover;object-position:center top;}
    .photo-ring{
      position:absolute;top:-10px;left:-10px;
      width:520px;height:520px;border-radius:50%;
      border:1px dashed rgba(93,124,250,0.3);
      animation:spin 30s linear infinite;pointer-events:none;
    }
    .photo-ring::before{
      content:"";position:absolute;top:8px;left:8px;right:8px;bottom:8px;
      border-radius:50%;border:1px solid rgba(58,75,176,0.12);
    }
    .dot-accent{
      position:absolute;width:12px;height:12px;
      background:var(--accent-hover);border-radius:50%;
      top:20px;right:20px;box-shadow:0 0 20px var(--accent-hover);
      animation:pulse 2s ease-in-out infinite;
    }
    .hero-text{animation:fadeSlideRight 0.9s 0.2s ease both;}
    .hero-divider{width:60px;height:2px;background:linear-gradient(90deg,var(--accent),transparent);margin-bottom:24px;}
    .hero h1{
      font-family:"Playfair Display",serif;
      font-size:clamp(36px,4vw,56px);font-weight:900;
      color:var(--primary);line-height:1.1;margin-bottom:8px;
    }
    .hero h1 em{font-style:italic;color:#E2EAFF;}
    .hero-subtitle{font-size:clamp(16px,1.8vw,22px);font-weight:300;color:#374151;line-height:1.5;margin-bottom:28px;}
    .hero-desc{font-size:15px;line-height:1.8;color:rgba(255,255,255,0.85);max-width:480px;margin-bottom:40px;}
    .hero-desc strong{color:#ffffff;font-weight:700;}
    .hero-cta{
      display:inline-flex;align-items:center;gap:12px;
      background:var(--accent);color:var(--white);
      font-size:12px;font-weight:700;letter-spacing:0.18em;
      text-transform:uppercase;text-decoration:none;
      padding:16px 32px;border-radius:2px;cursor:pointer;
      box-shadow:0 4px 6px rgba(0,0,0,0.2),0 8px 24px rgba(0,0,0,0.15);
      transition:background 0.2s,transform 0.2s;
    }
    .hero-cta:hover{background:var(--accent-hover);transform:translateY(-2px);}
    .hero-cta svg{width:14px;height:14px;}

    /* Services on home */
    .services{padding:60px 40px 100px;background:#0F172A;}
    .section-header{text-align:center;margin-bottom:64px;}
    .section-label{
      display:inline-flex;align-items:center;gap:10px;
      font-size:11px;font-weight:600;letter-spacing:0.25em;
      text-transform:uppercase;color:var(--accent);margin-bottom:16px;
    }
    .section-label::before,.section-label::after{content:"";width:24px;height:1px;background:var(--accent);}
    .services h2,.portfolio-page h2,.servizi-page h2{
      font-family:"Playfair Display",serif;
      font-size:clamp(28px,3.5vw,46px);font-weight:900;
      color:var(--primary);margin-bottom:16px;
    }
    .section-header p{font-size:16px;color:var(--text-body);max-width:480px;margin:0 auto;line-height:1.7;}
    .services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1200px;margin:0 auto;}
    .service-card{background:rgba(255,255,255,0.05);border:1px solid rgba(93,124,250,0.3);overflow:hidden;transition:transform 0.3s,box-shadow 0.3s;position:relative;min-width:0;}
    .service-card:hover{transform:translateY(-6px);box-shadow:0 20px 60px rgba(13,27,46,0.12);}
    .service-card:hover .card-top-bar{background:var(--accent);}
    .card-top-bar{height:3px;background:var(--border);transition:background 0.3s;}
    .card-img{width:100%;height:220px;object-fit:cover;display:block;filter:grayscale(20%);transition:filter 0.3s;}
    .service-card:hover .card-img{filter:grayscale(0%);}
    .card-body{padding:32px;}
    .card-icon{width:44px;height:44px;background:var(--primary);display:flex;align-items:center;justify-content:center;margin-bottom:20px;border-radius:2px;}
    .card-icon svg{width:22px;height:22px;}
    .card-body h3{
      font-family:"Playfair Display",serif;
      font-size:24px;font-weight:700;
      margin-bottom:10px;
      color:#ffffff;
      transition:text-shadow 0.3s ease;
    }
    @media(max-width:600px){
      .card-body h3{ font-size:20px; }
    }
    .service-card:hover .card-body h3{
      text-shadow:0 0 12px rgba(255,255,255,0.6), 0 0 28px rgba(255,255,255,0.2);
    }
    .card-tagline{font-size:14px;font-weight:600;color:rgba(255,255,255,0.5);margin-bottom:16px;line-height:1.5;}
    .card-body .card-label{font-size:11px;font-weight:700;color:#93A8F4;text-transform:uppercase;letter-spacing:0.2em;margin-bottom:12px;}
    .card-list{list-style:none;margin-bottom:28px;}
    .card-list li{font-size:14px;color:rgba(255,255,255,0.5);padding:5px 0 5px 16px;position:relative;line-height:1.5;}
    .card-list li::before{content:"—";position:absolute;left:0;color:var(--accent);font-size:12px;}
    .card-cta{
      display:inline-flex;align-items:center;justify-content:center;gap:12px;
      font-size:12px;font-weight:700;letter-spacing:0.18em;
      text-transform:uppercase;text-decoration:none;
      color:#ffffff;background:var(--accent);
      padding:16px 28px;border-radius:3px;
      box-shadow:0 4px 6px rgba(0,0,0,0.2),0 8px 24px rgba(0,0,0,0.15);
      transition:background 0.2s,transform 0.2s;cursor:pointer;
      margin-top:8px;
    }
    .card-cta:hover{background:var(--accent-hover);transform:translateY(-2px);}
    .card-cta svg{width:14px;height:14px;}

    /* About strip */
    .about-strip{
      background:var(--primary);padding:80px 5vw;
      display:flex;align-items:center;justify-content:center;
      gap:80px;flex-wrap:wrap;position:relative;
    }
    .about-strip::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.15),transparent);}
    .about-quote{max-width:560px;}
    .about-quote blockquote{font-family:"Playfair Display",serif;font-size:clamp(18px,2.5vw,28px);font-weight:700;font-style:italic;color:var(--white);line-height:1.5;margin-bottom:20px;}
    .about-quote cite{font-size:13px;font-weight:500;letter-spacing:0.15em;text-transform:uppercase;color:var(--accent-hover);font-style:normal;}
    .about-values{display:flex;flex-direction:column;gap:20px;}
    .value-item{display:flex;align-items:center;gap:16px;}
    .value-dot{width:8px;height:8px;background:var(--accent-hover);border-radius:50%;flex-shrink:0;}
    .value-item span{font-size:14px;font-weight:500;color:var(--grey-mid);}

    /* Contact */
    .contact{padding:100px 5vw;background:#0F172A;text-align:center;}
    .contact-inner{max-width:640px;margin:0 auto;}
    .contact-inner h2{font-family:"Playfair Display",serif;font-size:clamp(28px,3.5vw,46px);font-weight:900;color:var(--primary);margin-bottom:16px;}
    .contact-inner p{font-size:16px;color:var(--text-body);line-height:1.7;margin-bottom:40px;}
    .contact-cta{
      display:inline-flex;align-items:center;gap:12px;
      background:var(--accent);color:#ffffff;
      font-size:12px;font-weight:700;letter-spacing:0.18em;
      text-transform:uppercase;text-decoration:none;
      padding:20px 48px;border-radius:3px;
      box-shadow:0 4px 6px rgba(0,0,0,0.2),0 8px 24px rgba(0,0,0,0.15);
      transition:background 0.2s,transform 0.2s;
      cursor:pointer;
    }
    .contact-cta:hover{background:var(--accent-hover);transform:translateY(-2px);}

    /* ══════════════════════════════
       PORTFOLIO
    ══════════════════════════════ */
    .page-hero{
      padding:160px 5vw 80px;
      background:linear-gradient(to top,#4a5a8a 0%,#93A8F4 30%,#b8c2e8 58%,#E2EAFF 80%,#ffffff 100%);
      text-align:center;
    }
    .eyebrow{
      display:inline-flex;align-items:center;gap:10px;
      font-size:11px;font-weight:600;letter-spacing:0.25em;
      text-transform:uppercase;color:var(--accent);margin-bottom:16px;
    }
    .eyebrow::before,.eyebrow::after{content:"";width:24px;height:1px;background:var(--accent);}
    .page-hero h1{font-family:"Playfair Display",serif;font-size:clamp(36px,5vw,64px);font-weight:900;color:#0F172A;line-height:1.1;margin-bottom:14px;}
    .page-hero h1 em{font-style:italic;color:#0F172A;}
    .page-hero p{font-size:17px;color:#ffffff;font-weight:500;max-width:540px;margin:0 auto;line-height:1.7;}

    .filter-bar{display:flex;justify-content:center;gap:8px;padding:52px 5vw 0;flex-wrap:wrap;}
    .filter-btn{
      font-family:"DM Sans",sans-serif;font-size:11px;font-weight:600;
      letter-spacing:0.15em;text-transform:uppercase;
      padding:10px 24px;border-radius:2px;
      border:1px solid var(--border);background:var(--white);
      color:var(--grey-mid);cursor:pointer;transition:all 0.2s;
    }
    .filter-btn:hover,.filter-btn.active{background:var(--accent);color:var(--white);border-color:var(--accent);}

    .portfolio-wrap{max-width:1300px;margin:0 auto;padding:48px 5vw 100px;}
    .category-section{margin-bottom:80px;}
    .category-label{
      display:flex;align-items:center;gap:14px;
      font-size:11px;font-weight:700;letter-spacing:0.25em;
      text-transform:uppercase;color:var(--accent);margin-bottom:28px;
    }
    .category-label::after{content:"";flex:1;height:1px;background:var(--border);}

    .split-panel{
      display:grid;grid-template-columns:300px 1fr;
      gap:0;border:1px solid var(--border);border-radius:4px;
      overflow:hidden;min-height:440px;
    }
    .project-list{border-right:1px solid var(--border);background:var(--bg-alt);}
    .project-item{
      padding:20px 24px;border-bottom:1px solid var(--border);
      cursor:pointer;transition:background 0.2s;position:relative;
    }
    .project-item:last-child{border-bottom:none;}
    .project-item:hover{background:#eaecf5;}
    .project-item.active{background:var(--white);border-left:3px solid var(--accent);}
    .project-item.active::after{
      content:"";position:absolute;right:-1px;top:50%;
      transform:translateY(-50%);
      border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:10px solid var(--white);
    }
    .project-num{font-family:"Playfair Display",serif;font-size:11px;color:var(--grey-mid);letter-spacing:0.1em;margin-bottom:6px;display:block;}
    .project-item h3{font-family:"Playfair Display",serif;font-size:16px;font-weight:700;color:var(--primary);line-height:1.3;margin-bottom:4px;}
    .project-item p{font-size:13px;color:var(--grey-mid);line-height:1.4;}
    .project-item.active h3{color:var(--accent);}

    .project-detail{display:none;flex-direction:column;animation:fadeIn 0.35s ease;}
    .project-detail.active{display:flex;}
    .detail-img{width:100%;height:260px;object-fit:cover;display:block;}
    .detail-img-placeholder{width:100%;height:260px;background:linear-gradient(135deg,#E2EAFF,#d0d8f5);display:flex;align-items:center;justify-content:center;font-size:12px;letter-spacing:0.15em;text-transform:uppercase;color:var(--accent-hover);opacity:0.6;}
    .detail-body{padding:28px 32px;flex:1;}
    .detail-tag{font-size:10px;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:var(--accent-hover);margin-bottom:10px;display:block;}
    .detail-body h2{font-family:"Playfair Display",serif;font-size:24px;font-weight:900;color:var(--primary);margin-bottom:12px;line-height:1.2;}
    .detail-body p{font-size:14px;color:var(--text-body);line-height:1.8;margin-bottom:20px;}
    .detail-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px;}
    .tag-pill{font-size:11px;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;padding:5px 14px;border-radius:2px;border:1px solid var(--border);color:var(--grey-mid);background:var(--bg-alt);}
    .detail-cta{
      display:inline-flex;align-items:center;gap:8px;
      font-size:11px;font-weight:700;letter-spacing:0.15em;
      text-transform:uppercase;text-decoration:none;
      color:var(--white);background:var(--accent);
      padding:12px 24px;border-radius:2px;cursor:pointer;
      box-shadow:0 4px 12px rgba(0,0,0,0.15);
      transition:background 0.2s,transform 0.2s;
    }
    .detail-cta:hover{background:var(--accent-hover);transform:translateY(-1px);}
    .detail-cta svg{width:12px;height:12px;}

    /* ══════════════════════════════
       SERVIZI
    ══════════════════════════════ */
    .services-wrap{max-width:1200px;margin:0 auto;padding:80px 5vw 100px;}
    .service-block{
      display:grid;grid-template-columns:1fr 1fr;
      gap:0;border:1px solid var(--border);border-radius:4px;
      overflow:hidden;margin-bottom:40px;transition:box-shadow 0.3s;
    }
    .service-block:hover{box-shadow:0 20px 60px rgba(15,23,42,0.1);}
    .service-block:nth-child(even){direction:rtl;}
    .service-block:nth-child(even)>*{direction:ltr;}
    .service-visual{background:linear-gradient(135deg,#E2EAFF,#d0d8f5);min-height:340px;position:relative;overflow:hidden;}
    .service-visual img{width:100%;height:100%;object-fit:cover;transition:transform 0.4s;}
    .service-block:hover .service-visual img{transform:scale(1.04);}
    .service-content{
      padding:52px;display:flex;flex-direction:column;justify-content:center;
      background:var(--white);border-left:1px solid var(--border);
    }
    .service-block:nth-child(even) .service-content{border-left:none;border-right:1px solid var(--border);}
    .service-num{font-family:"Playfair Display",serif;font-size:48px;font-weight:900;color:rgba(41,51,105,0.08);line-height:1;margin-bottom:4px;}
    .service-tag{font-size:10px;font-weight:700;letter-spacing:0.25em;text-transform:uppercase;color:var(--accent-hover);margin-bottom:14px;}
    .service-content h2{font-family:"Playfair Display",serif;font-size:28px;font-weight:900;color:var(--primary);line-height:1.2;margin-bottom:16px;}
    .service-content>p{font-size:15px;color:var(--text-body);line-height:1.8;margin-bottom:28px;}
    .service-list{list-style:none;margin-bottom:32px;}
    .service-list li{font-size:14px;color:var(--text-body);padding:7px 0 7px 20px;position:relative;border-bottom:1px solid var(--border);line-height:1.5;}
    .service-list li:last-child{border-bottom:none;}
    .service-list li::before{content:"—";position:absolute;left:0;color:var(--accent);font-size:12px;}
    .service-cta{
      display:inline-flex;align-items:center;gap:8px;
      font-size:11px;font-weight:700;letter-spacing:0.18em;
      text-transform:uppercase;text-decoration:none;
      color:var(--white);background:var(--accent);
      padding:14px 28px;border-radius:2px;cursor:pointer;
      box-shadow:0 4px 12px rgba(0,0,0,0.15);
      transition:background 0.2s,transform 0.2s;align-self:flex-start;
    }
    .service-cta:hover{background:var(--accent-hover);transform:translateY(-1px);}
    .service-cta svg{width:12px;height:12px;}

    /* CTA strip */
    .cta-strip{background:var(--primary);padding:80px 5vw;text-align:center;position:relative;}
    .cta-strip::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.15),transparent);}
    .cta-strip h2{font-family:"Playfair Display",serif;font-size:clamp(26px,3vw,42px);font-weight:900;color:var(--white);margin-bottom:14px;}
    .cta-strip p{font-size:16px;color:rgba(255,255,255,0.6);max-width:480px;margin:0 auto 36px;line-height:1.7;}
    .cta-btn{
      display:inline-flex;align-items:center;gap:10px;
      background:var(--accent);color:var(--white);
      font-size:12px;font-weight:700;letter-spacing:0.18em;
      text-transform:uppercase;text-decoration:none;cursor:pointer;
      padding:16px 36px;border-radius:2px;
      box-shadow:0 4px 6px rgba(0,0,0,0.2),0 8px 24px rgba(0,0,0,0.15);
      transition:background 0.2s,transform 0.2s;
    }
    .cta-btn:hover{background:var(--accent-hover);transform:translateY(-2px);}

    /* FOOTER */
    footer{
      background:var(--primary);padding:32px 5vw;
      display:flex;align-items:center;justify-content:space-between;
      flex-wrap:wrap;gap:16px;border-top:1px solid rgba(41,51,105,0.3);
    }
    footer p{font-size:12px;color:var(--grey-mid);letter-spacing:0.08em;}
    footer p strong{color:var(--white);}
    .footer-links{display:flex;gap:24px;list-style:none;}
    .footer-links a{font-size:11px;font-weight:600;letter-spacing:0.15em;text-transform:uppercase;color:var(--grey-mid);text-decoration:none;cursor:pointer;transition:color 0.2s;}
    .footer-links a:hover{color:var(--accent-hover);}

    /* ANIMATIONS */
    @keyframes fadeSlideLeft{from{opacity:0;transform:translateX(-40px);}to{opacity:1;transform:translateX(0);}}
    @keyframes fadeSlideRight{from{opacity:0;transform:translateX(40px);}to{opacity:1;transform:translateX(0);}}
    @keyframes spin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
    @keyframes pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:0.6;transform:scale(1.3);}}
    @keyframes fadeUp{from{opacity:0;transform:translateY(30px);}to{opacity:1;transform:translateY(0);}}
    .animate-up{opacity:0;animation:fadeUp 0.7s ease forwards;}
    .animate-up:nth-child(1){animation-delay:0.1s;}
    .animate-up:nth-child(2){animation-delay:0.25s;}
    .animate-up:nth-child(3){animation-delay:0.4s;}


    /* ── PORTFOLIO PROGETTI ── */
    /* PORTFOLIO CARDS — horizontal slide style */
    .portfolio-project {
      display: grid;
      grid-template-columns: 62% 38%;
      min-height: 460px;
      margin-bottom: 32px;
      border-radius: 16px;
      overflow: hidden;
      box-shadow: 0 4px 36px rgba(0,0,0,0.13);
    }
    .portfolio-project:last-child { margin-bottom: 0; }
    .portfolio-entry:nth-child(even) .portfolio-project { direction: rtl; }
    .portfolio-entry:nth-child(even) .portfolio-project > * { direction: ltr; }
    .pp-image-col {
      position: relative;
      overflow: hidden;
      background: #0F172A;
    }
    .pp-image-col img {
      width: 100%; height: 100%;
      object-fit: cover; object-position: top center;
      display: block;
      transition: transform 0.5s ease;
    }
    .portfolio-project:hover .pp-image-col img { transform: scale(1.03); }
    .pp-text-col {
      background: #151d2e;
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: 44px 40px;
    }
    .pp-tag {
      font-size: 10px; font-weight: 700; letter-spacing: 0.22em;
      text-transform: uppercase; color: #7ca4ff;
      display: block; margin-bottom: 14px;
    }
    .pp-title {
      font-family: "Playfair Display", serif;
      font-size: clamp(20px, 2.2vw, 28px); font-weight: 900;
      color: #f0f6ff; line-height: 1.15; margin: 0 0 14px;
      word-break: break-word; overflow-wrap: break-word;
    }
    .pp-desc {
      font-size: 13.5px; color: rgba(255,255,255,0.58);
      line-height: 1.78; margin: 0 0 26px;
    }
    .pp-tags-row { display: flex; gap: 7px; flex-wrap: wrap; margin-bottom: 30px; }
    .pp-pill {
      display: inline-block; font-size: 10px; font-weight: 700;
      letter-spacing: 0.11em; text-transform: uppercase;
      padding: 5px 11px; border-radius: 20px;
      background: rgba(100,140,255,0.12); color: #7ca4ff;
      border: 1px solid rgba(100,140,255,0.28);
    }
    .pp-cta {
      display: inline-flex; align-items: center; gap: 7px;
      font-size: 11px; font-weight: 700; letter-spacing: 0.14em;
      text-transform: uppercase;
      cursor: pointer; text-decoration: none;
      transition: gap 0.2s, color 0.25s;
      background: none; border: none; border-bottom: 2px solid transparent;
      padding: 0 0 3px 0; color: #7ca4ff;
    }
    .pp-cta:hover { gap: 11px; color: #ffffff; border-bottom-color: transparent; }

    /* Portfolio entry wrapper + preview strip */
    .portfolio-entry { margin-bottom: 44px; }
    .portfolio-entry:last-child { margin-bottom: 0; }
    .portfolio-entry .portfolio-project { margin-bottom: 0; }
    @media(max-width:768px) {
      .portfolio-project { grid-template-columns: 1fr; min-height: unset; margin-bottom: 24px; border-radius: 10px; }
      .portfolio-entry:nth-child(even) .portfolio-project { direction: ltr; }
      .pp-image-col { aspect-ratio: 16/9; min-height: unset; }
      .pp-text-col { padding: 32px 24px; }
      .pp-title { font-size: 22px; }
      .pp-desc { font-size: 13px; margin-bottom: 20px; }
      .pp-tags-row { margin-bottom: 20px; }
          }
    @media(max-width:768px) {
      #web-design { grid-template-columns: 1fr !important; }
      #web-design > div:first-child { order: 2; }
      #web-design > div:last-child  { order: 1; }
      #visual-design { grid-template-columns: 1fr !important; }
      #visual-design > div:first-child { order: 2; }
      #visual-design > div:last-child  { order: 1; }
    }

    /* ── SERVIZI RESPONSIVE ── */
    @media(max-width:860px){
      #page-servizi section > div > div[style*="grid-template-columns:1fr 1fr"] {
        grid-template-columns: 1fr !important;
        gap: 40px !important;
      }
      #page-servizi section > div > div[style*="grid-template-columns:1fr 1fr"] > div:first-child {
        order: 2;
      }
      #page-servizi section > div > div[style*="grid-template-columns:1fr 1fr"] > div:last-child {
        order: 1;
      }
    }
    /* ── MINI PORTFOLIO RESPONSIVE ── */
    @media(max-width:860px){
      #page-home section[style*="padding:80px 5vw;background:#0F172A"] > div > div[style*="grid-template-columns"] {
        grid-template-columns: 1fr !important;
      }
    }

    /* ══════════════════════════════════════
       RESPONSIVE — MOBILE & TABLET
       ══════════════════════════════════════ */

    /* ── SCHERMI MOLTO PICCOLI (≤380px): evita wrap testo nei pulsanti CTA ── */
    @media(max-width:380px){
      .hero-cta, .cta-btn, .card-cta, .contact-cta, .cta-service-btn {
        font-size:10.5px !important;
        letter-spacing:0.12em !important;
        padding-left:22px !important;
        padding-right:22px !important;
      }
    }

    /* ── HOME HERO ── */
    @media(max-width:900px){
      .hero { padding: 130px 5vw 60px; }
    }

    /* ── HOME SERVICES ── */
    @media(max-width:900px){
      .services { padding:60px 5vw 80px; }
      .services-grid { grid-template-columns:1fr !important; max-width:500px !important; margin:0 auto !important; }
    }



    /* ── HOME ABOUT STRIP ── */
    @media(max-width:860px){
      #page-home section[style*="border-top:1px solid rgba(93,124,250,0.2)"] {
        flex-direction:column !important;
        gap:40px !important;
        text-align:center;
      }
    }

    /* ── CHISONO ── */
    @media(max-width:900px){
      .chisono-inner { grid-template-columns:1fr !important; gap:28px !important; }
    }

    /* ── PORTFOLIO PAGE ── */
    @media(max-width:768px){
      .portfolio-project-header { grid-template-columns:1fr; gap:20px; padding:32px 5vw; }
      .pp-num { font-size:40px; }
      .pp-title { font-size:26px; }
      .pp-caption { padding:20px 5vw; flex-direction:column; align-items:flex-start; }
    }

    /* ── SERVIZI PAGE ── */
    @media(max-width:860px){
      #page-servizi section > div > div[style*="grid-template-columns:1fr 1fr"] {
        grid-template-columns:1fr !important;
        gap:40px !important;
      }
    }

    /* ── CONTATTI PAGE ── */
    @media(max-width:900px){
      #page-contatti section > div { grid-template-columns:1fr !important; gap:40px !important; }
      #page-contatti { background:var(--primary); }
    }

    /* ── PROCESS STEPS ── */
    @media(max-width:900px){
      .step-arrow { display:none; }
    }
    @media(max-width:500px){
    }

    /* ── PKG GRID SCROLL ── */
    @media(max-width:860px){
      .pkg-grid-wrap {
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
        scroll-snap-type:x mandatory;
        margin:0 -5vw;
        padding:0 5vw 16px;
      }
      .pkg-grid-wrap::-webkit-scrollbar { height:3px; }
      .pkg-grid-wrap::-webkit-scrollbar-thumb { background:var(--accent); border-radius:2px; }
      .pkg-grid-wrap > div[style*="grid-template-columns:repeat(3"] {
        display:flex !important;
        gap:12px !important;
        background:transparent !important;
        border:none !important;
        overflow:visible !important;
        width:max-content;
      }
      .pkg-grid-wrap > div > div {
        width:75vw !important;
        max-width:320px !important;
        flex-shrink:0;
        scroll-snap-align:start;
        border:1px solid var(--border) !important;
        border-radius:6px !important;
      }
    }

    /* ── FOOTER MOBILE ── */
    @media(max-width:600px){
      footer { flex-direction:column; align-items:flex-start; padding:24px 5vw 24px 5vw; }
      .footer-links { gap:16px; flex-wrap:wrap; }
    }

    /* ── CTA STRIP MOBILE ── */
    @media(max-width:600px){
      .cta-strip { padding:60px 5vw; }
      .cta-strip h2 { font-size:clamp(22px,5vw,32px); }
    }


      .hero-inner{grid-template-columns:1fr;text-align:center;gap:40px;}
      .hero-photo{order:-1;}
      .photo-frame,.photo-circle{width:280px;height:280px;}
      .photo-ring{width:300px;height:300px;}
      .about-strip{flex-direction:column;gap:40px;text-align:center;}
      .service-block{grid-template-columns:1fr;direction:ltr;}
      .service-block:nth-child(even){direction:ltr;}
      .service-content{border-left:none!important;border-right:none!important;border-top:1px solid var(--border);padding:32px 24px;}
      .service-visual{min-height:220px;}
      .split-panel{grid-template-columns:1fr;}
      .project-list{border-right:none;border-bottom:1px solid var(--border);}
      .project-item.active::after{display:none;}
    }
    @media(max-width:600px){
      .services-grid{grid-template-columns:1fr;}
    }
  

/* ===== SECTION ===== */


      /* ══ SQUARE CARDS ══ */
      .sq-grid {
        display:flex;
        gap:4px;
        padding:0 5vw 80px;
        box-sizing:border-box;
      }

      .sq-card {
        position:relative;
        flex:1;
        aspect-ratio:1/1;
        overflow:hidden;
        border-radius:10px;
        cursor:pointer;
      }

      .sq-bg {
        position:absolute; inset:0; overflow:hidden;
      }
      .sq-bg img {
        width:100%; height:100%;
        object-fit:cover; object-position:top center;
        filter:blur(5px) brightness(0.45) saturate(0.8);
        transform:scale(1.08);
        pointer-events:none;
      }

      .sq-overlay {
        position:absolute; inset:0;
        background:rgba(10,18,40,0.3);
        pointer-events:none;
      }

      .sq-logo {
        position:absolute; inset:0; z-index:2;
        display:flex; flex-direction:column;
        align-items:center; justify-content:center; gap:6px;
        transition:opacity 0.25s;
        pointer-events:none;
      }
      .sq-card:hover .sq-logo { opacity:0; }

      .sq-initials {
        font-family:'Playfair Display',serif;
        font-size:clamp(28px,3.5vw,52px);
        font-weight:900; color:#ffffff;
        line-height:1; letter-spacing:0.02em;
        text-shadow:0 2px 20px rgba(0,0,0,0.5);
      }

      .sq-scopri {
        position:absolute; inset:0; z-index:2;
        display:flex; align-items:center; justify-content:center;
        opacity:0;
        transition:opacity 0.25s;
        pointer-events:none;
      }
      .sq-card:hover .sq-scopri { opacity:1; }
      .sq-scopri span {
        display:inline-flex; align-items:center; gap:8px;
        font-size:clamp(12px,1.1vw,15px); font-weight:700;
        letter-spacing:0.22em; text-transform:uppercase; color:#ffffff;
        border:1px solid rgba(255,255,255,0.5);
        border-radius:100px;
        padding:10px 24px;
        background:rgba(255,255,255,0.08);
        backdrop-filter:blur(4px);
      }

      /* ── LIGHTBOX ── */
      .efc-lightbox {
        display:none; position:fixed; inset:0; z-index:9999;
        background:rgba(5,10,25,0.96);
        align-items:center; justify-content:center;
        animation:efcFadeIn 0.25s ease;
      }
      .efc-lightbox.open { display:flex; }
      @keyframes efcFadeIn { from{opacity:0} to{opacity:1} }
      .efc-lightbox-inner {
        position:relative;
        max-width:min(900px,92vw);
        max-height:90vh;
        animation:efcSlideUp 0.3s cubic-bezier(0.33,1,0.68,1);
      }
      @keyframes efcSlideUp { from{transform:translateY(22px);opacity:0} to{transform:translateY(0);opacity:1} }
      .efc-lightbox-inner img {
        width:100%; max-height:88vh;
        object-fit:contain; border-radius:8px; display:block;
      }
      .efc-lightbox-close {
        position:absolute; top:-14px; right:-14px;
        width:34px; height:34px; border-radius:50%;
        background:#1e2a4a; border:1px solid rgba(147,168,244,0.3);
        display:flex; align-items:center; justify-content:center;
        cursor:pointer; color:#93A8F4; z-index:10;
        transition:background 0.2s,color 0.2s;
      }
      .efc-lightbox-close:hover { background:#93A8F4; color:#fff; }

      /* ── MOBILE ── */
      @media(max-width:640px){
        .sq-grid { flex-wrap:wrap; gap:4px; padding:0 4vw 60px; }
        .sq-card { flex:calc(50% - 2px) !important; aspect-ratio:1/1 !important; }
      }

      @media(max-width:380px){
        .sq-card { flex:calc(50% - 2px) !important; }
      }
    

/* ===== SECTION ===== */


  @keyframes waPulse {
    0%   { box-shadow: 0 4px 20px rgba(37,211,102,0.45), 0 0 0 0 rgba(37,211,102,0.4); }
    50%  { box-shadow: 0 4px 20px rgba(37,211,102,0.45), 0 0 0 12px rgba(37,211,102,0); }
    100% { box-shadow: 0 4px 20px rgba(37,211,102,0.45), 0 0 0 0 rgba(37,211,102,0); }
  }
  @media(max-width: 900px) {
    #waFloat { bottom: 80px; right: 20px; width: 52px; height: 52px; }
  }


/* ===== SECTION ===== */


    .cs-topbar {
      position: fixed; top: 0; left: 0; right: 0; z-index: 100;
      display: flex; align-items: center; justify-content: space-between;
      padding: 22px 5vw;
      transition: background 0.4s, backdrop-filter 0.4s, border-color 0.4s;
      border-bottom: 1px solid transparent;
    }
    .cs-topbar.scrolled {
      background: rgba(15,23,42,0.92); backdrop-filter: blur(14px);
      border-color: rgba(255,255,255,0.05);
    }
    .cs-back {
      display: inline-flex; align-items: center; gap: 8px;
      font-size: 10px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
      color: rgba(255,255,255,0.7); cursor: pointer; text-decoration: none;
      transition: color 0.2s;
    }
    .cs-back:hover { color: #fff; }
    .cs-fp-tag {
      font-size: 10px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase;
      color: rgba(215,185,122,0.7);
    }

    /* HERO */
    .cs-hero {
      position: relative; overflow: hidden; max-height: 90vh;
    }
    .cs-hero-img {
      width: 100%; height: auto; display: block;
      transform: scale(1.06); transition: transform 5s ease;
    }
    .cs-hero.loaded .cs-hero-img { transform: scale(1); }
    .cs-hero-overlay {
      position: absolute; inset: 0;
      background: linear-gradient(160deg, rgba(10,13,8,0.1) 0%, rgba(10,13,8,0.55) 55%, rgba(10,13,8,0.97) 100%);
      display: flex; flex-direction: column; justify-content: flex-end;
      padding: 0 6vw 80px;
    }
    .cs-kicker {
      display: inline-flex; align-items: center; gap: 12px;
      font-size: 10px; font-weight: 700; letter-spacing: 0.26em; text-transform: uppercase;
      color: #D7B97A; margin-bottom: 24px;
    }
    .cs-kicker::before { content:''; width: 28px; height: 1px; background: #D7B97A; }
    .cs-hero-h1 {
      font-family: 'Playfair Display', serif;
      font-size: clamp(56px, 9vw, 120px);
      font-weight: 900; color: #fff; line-height: 0.92; letter-spacing: -0.02em;
      margin-bottom: 36px;
    }
    .cs-hero-h1 em { font-style: italic; color: rgba(255,255,255,0.45); font-weight: 400; }
    .cs-meta-bar {
      display: flex; gap: 0; padding-top: 24px;
      border-top: 1px solid rgba(255,255,255,0.1);
    }
    .cs-meta-item {
      padding-right: 32px; margin-right: 32px;
      border-right: 1px solid rgba(255,255,255,0.1);
    }
    .cs-meta-item:last-child { border-right: none; padding-right: 0; }
    .cs-meta-label { font-size: 9px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(215,185,122,0.55); margin-bottom: 5px; }
    .cs-meta-val { font-size: 13px; font-weight: 500; color: rgba(255,255,255,0.75); }
    .cs-scroll-hint {
      position: absolute; bottom: 28px; right: 6vw;
      font-size: 9px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
      color: rgba(255,255,255,0.3);
      display: flex; align-items: center; gap: 8px;
      animation: fpBlink 2s ease infinite;
    }
    @keyframes fpBlink { 0%,100%{opacity:0.3} 50%{opacity:0.7} }

    /* STATEMENT */
    .cs-statement {
      max-width: 940px; margin: 0 auto; padding: 130px 6vw 120px;
    }
    .cs-section-label {
      font-size: 10px; font-weight: 700; letter-spacing: 0.24em; text-transform: uppercase;
      color: rgba(147,168,244,0.5); margin-bottom: 32px;
      display: flex; align-items: center; gap: 14px;
    }
    .cs-section-label::after { content:''; flex:1; height:1px; background:rgba(147,168,244,0.12); }
    .cs-statement blockquote {
      font-family: 'Playfair Display', serif;
      font-size: clamp(24px, 3.2vw, 44px); font-weight: 400; font-style: italic;
      color: rgba(255,255,255,0.88); line-height: 1.5;
      margin: 0 0 52px; border: none; padding: 0;
    }
    .cs-statement blockquote strong { font-style: normal; font-weight: 900; color: #fff; }
    .cs-pills { display: flex; gap: 10px; flex-wrap: wrap; }
    .cs-pill {
      font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
      color: rgba(215,185,122,0.75); border: 1px solid rgba(215,185,122,0.22);
      padding: 8px 18px; border-radius: 100px;
    }

    /* FULL BLEED */
    .cs-full {
      width: 100%; height: 80vh; min-height: 440px; max-height: 860px;
      overflow: hidden;
    }
    .cs-full img { width: 100%; height: 100%; object-fit: cover; display: block; }

    /* SPLIT */
    .cs-split {
      display: grid; grid-template-columns: 58% 42%;
      max-width: 100%; margin: 0;
    }
    .cs-split.reverse { grid-template-columns: 42% 58%; }
    .cs-split.reverse .cs-split-img { order: 2; }
    .cs-split.reverse .cs-split-text { order: 1; }
    .cs-split-img {
      height: 72vh; min-height: 460px; max-height: 800px;
      overflow: hidden;
    }
    .cs-split-img img {
      width: 100%; height: 100%; object-fit: cover; display: block;
      transition: transform 0.8s cubic-bezier(0.22,1,0.36,1);
    }
    .cs-split:hover .cs-split-img img { transform: scale(1.03); }
    .cs-split-text {
      display: flex; flex-direction: column; justify-content: center;
      padding: 80px 6vw; background: #0F172A;
    }
    .cs-split-num {
      font-size: 10px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase;
      color: rgba(215,185,122,0.5); margin-bottom: 20px;
    }
    .cs-split-text h2 {
      font-family: 'Playfair Display', serif;
      font-size: clamp(24px, 2.6vw, 36px); font-weight: 700;
      color: #fff; line-height: 1.15; margin-bottom: 22px;
    }
    .cs-split-text p {
      font-size: 14px; line-height: 1.9;
      color: rgba(255,255,255,0.48); max-width: 380px;
    }

    /* DUO */
    .cs-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
    .cs-duo-cell {
      height: 62vh; min-height: 360px; max-height: 640px;
      overflow: hidden; position: relative;
    }

    .cs-duo-cell img {
      width: 100%; height: 100%; object-fit: contain; display: block;
      background: #0F172A;
    }
    .cs-duo-label {
      position: absolute; bottom: 0; left: 0; right: 0;
      padding: 22px 28px;
      background: linear-gradient(to top, rgba(10,13,8,0.88) 0%, transparent 100%);
    }
    .cs-duo-label span {
      font-size: 10px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase;
      color: rgba(215,185,122,0.85);
    }

    /* CTA */
    .cs-end-cta {
      text-align: center; padding: 120px 5vw 150px;
      background: var(--primary);
      border-top: 1px solid rgba(41,51,105,0.3);
    }
    .cs-end-label {
      font-size: 10px; font-weight: 700; letter-spacing: 0.24em; text-transform: uppercase;
      color: rgba(147,168,244,0.45); margin-bottom: 28px; display: block;
    }
    .cs-end-cta h2 {
      font-family: 'Playfair Display', serif;
      font-size: clamp(28px, 3.5vw, 50px); font-weight: 900;
      color: #fff; margin-bottom: 44px; line-height: 1.15;
    }

    @media(max-width: 860px) {
      .cs-meta-bar { flex-wrap: wrap; gap: 20px; }
      .cs-meta-item { border-right: none; padding-right: 0; margin-right: 0; }
      .cs-statement { padding: 80px 6vw; }
      .cs-split, .cs-split.reverse { grid-template-columns: 1fr; }
      .cs-split .cs-split-text, .cs-split.reverse .cs-split-text { order: 1; }
      .cs-split .cs-split-img, .cs-split.reverse .cs-split-img { order: 2; }
      .cs-split-img, .cs-duo-cell { height: 56vw; min-height: 240px; max-height: none; }
      .cs-full { height: 56vw; min-height: 240px; max-height: none; }
      .cs-split-text { padding: 48px 6vw; }
      .cs-duo { grid-template-columns: 1fr; }
    }
  

/* ===== SECTION ===== */


    #page-case-ge .ge-topbar {
      position: fixed; top: 0; left: 0; right: 0; z-index: 100;
      display: flex; align-items: center; justify-content: space-between;
      padding: 22px 5vw;
      transition: background 0.4s, border-color 0.4s;
      border-bottom: 1px solid transparent;
    }
    #page-case-ge .ge-topbar.scrolled {
      background: rgba(15,23,42,0.92); backdrop-filter: blur(14px);
      border-color: rgba(255,255,255,0.05);
    }
    .ge-back {
      display: inline-flex; align-items: center; gap: 8px;
      font-size: 11px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase;
      color: rgba(255,255,255,0.7); cursor: pointer; text-decoration: none;
      transition: color 0.2s;
    }
    .ge-back:hover { color: #fff; }
    .ge-tag {
      font-size: 10px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase;
      color: rgba(214,163,179,0.7);
    }

    /* HERO */
    .ge-hero {
      position: relative; overflow: hidden; max-height: 90vh;
    }
    .ge-hero img { width: 100%; height: auto; display: block; }
    .ge-hero-overlay {
      position: absolute; inset: 0;
      background: linear-gradient(160deg, rgba(15,23,42,0.1) 0%, rgba(15,23,42,0.55) 55%, rgba(15,23,42,0.97) 100%);
      display: flex; flex-direction: column; justify-content: flex-end;
      padding: 0 6vw 72px;
    }
    .ge-kicker {
      display: inline-flex; align-items: center; gap: 12px;
      font-size: 11px; font-weight: 700; letter-spacing: 0.26em; text-transform: uppercase;
      color: #D6A3B3; margin-bottom: 20px;
    }
    .ge-kicker::before { content:''; width: 28px; height: 1px; background: #D6A3B3; }
    .ge-hero-h1 {
      font-family: 'Playfair Display', serif;
      font-size: clamp(46px, 7vw, 96px);
      font-weight: 900; color: #fff; line-height: 0.95; letter-spacing: -0.02em;
      margin-bottom: 32px;
    }
    .ge-meta-bar {
      display: flex; gap: 0; padding-top: 22px;
      border-top: 1px solid rgba(255,255,255,0.1);
    }
    .ge-meta-item {
      padding-right: 32px; margin-right: 32px;
      border-right: 1px solid rgba(255,255,255,0.1);
    }
    .ge-meta-item:last-child { border-right: none; }
    .ge-meta-label { font-size: 10px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(214,163,179,0.55); margin-bottom: 5px; }
    .ge-meta-val { font-size: 14px; font-weight: 500; color: rgba(255,255,255,0.8); }

    /* SPLIT — stesso stile FP */
    .ge-split {
      display: grid; grid-template-columns: 58% 42%;
    }
    .ge-split.reverse { grid-template-columns: 42% 58%; }
    .ge-split.reverse .ge-split-img { order: 2; }
    .ge-split.reverse .ge-split-text { order: 1; }
    .ge-split-img {
      height: 62vh; min-height: 380px; max-height: 640px; overflow: hidden;
    }
    .ge-split-img img {
      width: 100%; height: 100%; object-fit: cover; display: block;
      object-position: center center;
    }
    .ge-split-text {
      display: flex; flex-direction: column; justify-content: center;
      padding: 72px 6vw; background: #0F172A;
    }
    .ge-split-num {
      font-size: 11px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase;
      color: rgba(214,163,179,0.5); margin-bottom: 20px;
    }
    .ge-split-text h2 {
      font-family: 'Playfair Display', serif;
      font-size: clamp(24px, 2.6vw, 34px); font-weight: 700;
      color: #fff; line-height: 1.15; margin-bottom: 22px;
    }
    .ge-split-text p {
      font-size: 15px; line-height: 1.9; color: rgba(255,255,255,0.5); max-width: 400px;
    }

    /* STATEMENT */
    .ge-statement {
      max-width: 940px; margin: 0 auto; padding: 110px 6vw 90px;
    }
    .ge-section-label {
      font-size: 11px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase;
      color: rgba(214,163,179,0.5); margin-bottom: 32px;
      display: flex; align-items: center; gap: 14px;
    }
    .ge-section-label::after { content:''; flex:1; height:1px; background:rgba(214,163,179,0.12); }
    .ge-statement blockquote {
      font-family: 'Playfair Display', serif;
      font-size: clamp(24px, 3.2vw, 44px); font-weight: 400; font-style: italic;
      color: rgba(255,255,255,0.88); line-height: 1.5;
      margin: 0 0 48px; border: none; padding: 0;
    }
    .ge-statement blockquote strong { font-style: normal; font-weight: 900; color: #fff; }
    .ge-pills { display: flex; gap: 10px; flex-wrap: wrap; }
    .ge-pill {
      font-size: 12px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
      color: rgba(214,163,179,0.75); border: 1px solid rgba(214,163,179,0.22);
      padding: 8px 18px; border-radius: 100px;
    }

    /* SEZIONE TEMATICA (padding standard) */
    .ge-section {
      padding: 0; border-top: 1px solid rgba(255,255,255,0.05);
    }

    /* LOGO SLIDER (invariato) */
    .ge-card-inner.flipped { transform: rotateY(180deg); }

    /* CTA */
    .ge-end-cta {
      text-align: center; padding: 120px 5vw 150px;
      background: var(--primary);
      border-top: 1px solid rgba(255,255,255,0.05);
    }
    .ge-end-label {
      font-size: 11px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase;
      color: rgba(214,163,179,0.45); margin-bottom: 28px; display: block;
    }
    .ge-end-cta h2 {
      font-family: 'Playfair Display', serif;
      font-size: clamp(28px, 3.5vw, 50px); font-weight: 900;
      color: #fff; margin-bottom: 44px; line-height: 1.15;
    }

    @media(max-width: 860px) {
      .ge-meta-bar { flex-wrap: wrap; gap: 20px; }
      .ge-meta-item { border-right: none; padding-right: 0; margin-right: 0; }
      .ge-statement { padding: 72px 6vw; }
      .ge-split, .ge-split.reverse { grid-template-columns: 1fr; }
      .ge-split.reverse .ge-split-img { order: 1; }
      .ge-split.reverse .ge-split-text { order: 2; }
      .ge-split-img { height: 56vw; min-height: 240px; max-height: none; }
      .ge-split-text { padding: 48px 6vw; }
    }
  

/* ===== SECTION ===== */


    #page-case-mm .mm-topbar {
      position: fixed; top: 0; left: 0; right: 0; z-index: 100;
      display: flex; align-items: center; justify-content: space-between;
      padding: 22px 5vw;
      transition: background 0.4s, border-color 0.4s;
      border-bottom: 1px solid transparent;
    }
    #page-case-mm .mm-topbar.scrolled {
      background: rgba(15,23,42,0.92); backdrop-filter: blur(14px);
      border-color: rgba(255,255,255,0.05);
    }
    .mm-back { display: inline-flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.7); cursor: pointer; text-decoration: none; transition: color 0.2s; }
    .mm-back:hover { color: #fff; }
    .mm-tag { font-size: 10px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(203,143,138,0.7); }
    .mm-hero { position: relative; overflow: hidden; max-height: 90vh; }
    .mm-hero img { width: 100%; height: auto; display: block; }
    .mm-hero-overlay { position: absolute; inset: 0; background: linear-gradient(160deg, rgba(15,23,42,0.05) 0%, rgba(15,23,42,0.45) 55%, rgba(15,23,42,0.97) 100%); display: flex; flex-direction: column; justify-content: flex-end; padding: 0 6vw 72px; }
    .mm-hero-h1 { font-family: 'Playfair Display', serif; font-size: clamp(42px, 6.5vw, 88px); font-weight: 900; color: #fff; line-height: 0.95; letter-spacing: -0.02em; margin-bottom: 32px; }
    .mm-meta-bar { display: flex; gap: 0; padding-top: 22px; border-top: 1px solid rgba(255,255,255,0.1); }
    .mm-meta-item { padding-right: 32px; margin-right: 32px; border-right: 1px solid rgba(255,255,255,0.1); }
    .mm-meta-item:last-child { border-right: none; }
    .mm-meta-label { font-size: 10px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(203,143,138,0.55); margin-bottom: 5px; }
    .mm-meta-val { font-size: 14px; font-weight: 500; color: rgba(255,255,255,0.8); }
    .mm-statement { max-width: 940px; margin: 0 auto; padding: 110px 6vw 90px; }
    .mm-section-label { font-size: 11px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(203,143,138,0.5); margin-bottom: 32px; display: flex; align-items: center; gap: 14px; }
    .mm-section-label::after { content:''; flex:1; height:1px; background:rgba(203,143,138,0.12); }
    .mm-statement blockquote { font-family: 'Playfair Display', serif; font-size: clamp(24px, 3.2vw, 44px); font-weight: 400; font-style: italic; color: rgba(255,255,255,0.88); line-height: 1.5; margin: 0 0 48px; border: none; padding: 0; }
    .mm-statement blockquote strong { font-style: normal; font-weight: 900; color: #fff; }
    .mm-pills { display: flex; gap: 10px; flex-wrap: wrap; }
    .mm-pill { font-size: 12px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(203,143,138,0.75); border: 1px solid rgba(203,143,138,0.22); padding: 8px 18px; border-radius: 100px; }
    .mm-split { display: grid; grid-template-columns: 58% 42%; }
    .mm-split.reverse { grid-template-columns: 42% 58%; }
    .mm-split.reverse .mm-simg { order: 2; }
    .mm-split.reverse .mm-stext { order: 1; }
    .mm-simg { height: 62vh; min-height: 380px; max-height: 640px; overflow: hidden; }
    .mm-simg img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .mm-stext { display: flex; flex-direction: column; justify-content: center; padding: 72px 6vw; background: #0F172A; }
    .mm-snum { font-size: 11px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(203,143,138,0.5); margin-bottom: 20px; }
    .mm-stext h2 { font-family: 'Playfair Display', serif; font-size: clamp(24px, 2.6vw, 34px); font-weight: 700; color: #fff; line-height: 1.15; margin-bottom: 22px; }
    .mm-stext p { font-size: 15px; line-height: 1.9; color: rgba(255,255,255,0.5); max-width: 400px; }
    .mm-sec { border-top: 1px solid rgba(255,255,255,0.05); }
    .mm-card-inner.flipped { transform: rotateY(180deg); }
    .mm-end-cta { text-align: center; padding: 120px 5vw 150px; background: var(--primary); border-top: 1px solid rgba(255,255,255,0.05); }
    .mm-end-label { font-size: 11px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(203,143,138,0.45); margin-bottom: 28px; display: block; }
    .mm-end-cta h2 { font-family: 'Playfair Display', serif; font-size: clamp(28px, 3.5vw, 50px); font-weight: 900; color: #fff; margin-bottom: 44px; line-height: 1.15; }
    @media(max-width:860px){
      .mm-meta-bar{flex-wrap:wrap;gap:20px;}
      .mm-meta-item{border-right:none;padding-right:0;margin-right:0;}
      .mm-statement{padding:72px 6vw;}
      .mm-split,.mm-split.reverse{grid-template-columns:1fr;}
      .mm-split.reverse .mm-simg{order:1;}
      .mm-split.reverse .mm-stext{order:2;}
      .mm-simg{height:56vw;min-height:240px;max-height:none;}
      .mm-stext{padding:48px 6vw;}
    }
  

/* ===== SECTION ===== */


    /* TOPBAR */
    .ama-topbar {
      position: fixed; top: 0; left: 0; right: 0; z-index: 100;
      display: flex; align-items: center; justify-content: space-between;
      padding: 22px 5vw;
      transition: background 0.4s, backdrop-filter 0.4s, border-color 0.4s;
      border-bottom: 1px solid transparent;
    }
    .ama-topbar.scrolled {
      background: rgba(15,23,42,0.92); backdrop-filter: blur(14px);
      border-color: rgba(255,255,255,0.05);
    }
    .ama-back {
      display: inline-flex; align-items: center; gap: 8px;
      font-size: 10px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
      color: rgba(255,255,255,0.7); cursor: pointer; text-decoration: none;
      transition: color 0.2s;
    }
    .ama-back:hover { color: #fff; }
    .ama-tag {
      font-size: 10px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase;
      color: rgba(100,140,255,0.55);
    }

    /* HERO FULLBLEED */
    .ama-hero-fp { position: relative; overflow: hidden; max-height: 92vh; }
    .ama-hero-fp .ama-hero-img {
      width: 100%; height: auto; display: block;
      transform: scale(1.04); transition: transform 5s ease;
    }
    .ama-hero-fp.loaded .ama-hero-img { transform: scale(1); }
    .ama-hero-fp .ama-hero-overlay {
      position: absolute; inset: 0;
      background: linear-gradient(160deg, rgba(4,10,25,0.04) 0%, rgba(4,10,25,0.38) 48%, rgba(4,10,25,0.93) 100%);
      display: flex; flex-direction: column; justify-content: flex-end;
      padding: 0 6vw 80px;
    }
    .ama-hero-fp .ama-scroll-hint {
      position: absolute; bottom: 30px; right: 6vw;
      font-size: 10px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
      color: rgba(255,255,255,0.38);
      display: flex; align-items: center; gap: 8px;
      animation: amaBlink 2s ease infinite;
    }
    @keyframes amaBlink { 0%,100%{opacity:0.3} 50%{opacity:0.7} }
    .ama-kicker {
      display: inline-flex; align-items: center; gap: 12px;
      font-size: 10px; font-weight: 700; letter-spacing: 0.26em; text-transform: uppercase;
      color: rgba(100,140,255,0.85); margin-bottom: 24px;
    }
    .ama-kicker::before { content:''; width: 28px; height: 1px; background: rgba(100,140,255,0.85); }
    .ama-hero-h1 {
      font-family: 'Playfair Display', serif;
      font-size: clamp(52px, 8.8vw, 118px);
      font-weight: 900; color: #fff; line-height: 0.93; letter-spacing: -0.02em;
      margin-bottom: 36px;
    }
    .ama-hero-h1 em { font-style: italic; color: rgba(255,255,255,0.42); font-weight: 400; }
    .ama-meta-bar {
      display: flex; gap: 0; padding-top: 24px;
      border-top: 1px solid rgba(255,255,255,0.1);
    }
    .ama-meta-item {
      padding-right: 32px; margin-right: 32px;
      border-right: 1px solid rgba(255,255,255,0.1);
    }
    .ama-meta-item:last-child { border-right: none; padding-right: 0; }
    .ama-meta-label {
      font-size: 9px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
      color: rgba(100,140,255,0.55); margin-bottom: 5px;
    }
    .ama-meta-val { font-size: 13px; font-weight: 500; color: rgba(255,255,255,0.75); }

    /* STATEMENT */
    .ama-statement {
      max-width: 940px; margin: 0 auto; padding: 130px 6vw 120px;
    }
    .ama-section-label {
      font-size: 10px; font-weight: 700; letter-spacing: 0.24em; text-transform: uppercase;
      color: rgba(100,140,255,0.45); margin-bottom: 32px;
      display: flex; align-items: center; gap: 14px;
    }
    .ama-section-label::after { content:''; flex:1; height:1px; background:rgba(100,140,255,0.12); }
    .ama-statement blockquote {
      font-family: 'Playfair Display', serif;
      font-size: clamp(22px, 3vw, 42px); font-weight: 400; font-style: italic;
      color: rgba(255,255,255,0.88); line-height: 1.5;
      margin: 0 0 52px; border: none; padding: 0;
    }
    .ama-statement blockquote strong { font-style: normal; font-weight: 900; color: #fff; }
    .ama-pills { display: flex; gap: 10px; flex-wrap: wrap; }
    .ama-pill {
      font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
      color: rgba(100,140,255,0.85); border: 1px solid rgba(100,140,255,0.22);
      padding: 8px 18px; border-radius: 100px;
    }

    /* FULLBLEED DESKTOP — homepage scroll tall */
    .ama-full-desktop {
      width: 100%; height: 88vh; min-height: 500px; overflow: hidden;
      position: relative;
    }
    .ama-full-desktop img {
      width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block;
    }
    .ama-full-desktop::after {
      content: ''; position: absolute; inset: 0;
      background: linear-gradient(to bottom, rgba(15,23,42,0.06) 0%, transparent 20%, transparent 80%, rgba(15,23,42,0.35) 100%);
      pointer-events: none;
    }

    /* MOBILE SPLIT — testo sx / telefono dx */
    .ama-mobile-split {
      display: grid; grid-template-columns: 42% 58%;
    }
    .ama-mobile-text {
      display: flex; flex-direction: column; justify-content: center;
      padding: 80px 6vw; background: #0F172A;
    }
    .ama-mobile-num {
      font-size: 10px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase;
      color: rgba(100,140,255,0.55); margin-bottom: 20px;
    }
    .ama-mobile-text h2 {
      font-family: 'Playfair Display', serif;
      font-size: clamp(24px, 2.6vw, 36px); font-weight: 700;
      color: #fff; line-height: 1.15; margin-bottom: 22px;
    }
    .ama-mobile-text p {
      font-size: 14px; line-height: 1.9;
      color: rgba(255,255,255,0.48); max-width: 340px;
    }
    .ama-mobile-img {
      height: 90vh; min-height: 540px; overflow: hidden;
      background: #060d20;
      display: flex; align-items: center; justify-content: center; padding: 48px 36px;
    }
    .ama-mobile-img img {
      height: 100%; max-height: 700px; width: auto; display: block;
      object-fit: contain;
      filter: drop-shadow(0 40px 80px rgba(26,86,219,0.28)) drop-shadow(0 12px 24px rgba(0,0,0,0.5));
    }

    /* FULLBLEED CATALOG — prodotti correlati */
    .ama-full-catalog {
      width: 100%; height: 52vh; min-height: 300px; max-height: 560px;
      overflow: hidden; position: relative; background: #060d20;
    }
    .ama-full-catalog img {
      width: 100%; height: 100%; object-fit: cover; object-position: top; display: block;
      opacity: 0.92;
    }
    .ama-full-catalog-overlay {
      position: absolute; inset: 0;
      background: linear-gradient(90deg, rgba(4,10,25,0.72) 0%, rgba(4,10,25,0) 50%, rgba(4,10,25,0.72) 100%);
      display: flex; align-items: center; padding: 0 6vw;
    }
    .ama-catalog-label {
      font-size: 10px; font-weight: 700; letter-spacing: 0.24em; text-transform: uppercase;
      color: rgba(100,140,255,0.55);
    }

    /* SCHEDA SPLIT — immagine sx / testo dx */
    .ama-scheda-split {
      display: grid; grid-template-columns: 58% 42%;
    }
    .ama-scheda-img {
      height: 78vh; min-height: 480px; overflow: hidden; background: #f5f5f5;
    }
    .ama-scheda-img img {
      width: 100%; height: 100%; object-fit: cover; object-position: top; display: block;
      transition: transform 0.8s cubic-bezier(0.22,1,0.36,1);
    }
    .ama-scheda-split:hover .ama-scheda-img img { transform: scale(1.025); }
    .ama-scheda-text {
      display: flex; flex-direction: column; justify-content: center;
      padding: 80px 6vw; background: #0F172A;
    }
    .ama-scheda-num {
      font-size: 10px; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase;
      color: rgba(100,140,255,0.55); margin-bottom: 20px;
    }
    .ama-scheda-text h2 {
      font-family: 'Playfair Display', serif;
      font-size: clamp(24px, 2.6vw, 36px); font-weight: 700;
      color: #fff; line-height: 1.15; margin-bottom: 22px;
    }
    .ama-scheda-text p {
      font-size: 14px; line-height: 1.9;
      color: rgba(255,255,255,0.48); max-width: 360px;
    }

    /* CTA */
    .ama-end-cta {
      text-align: center; padding: 120px 5vw 150px;
      background: var(--primary);
      border-top: 1px solid rgba(255,255,255,0.05);
    }
    .ama-end-label {
      font-size: 10px; font-weight: 700; letter-spacing: 0.24em; text-transform: uppercase;
      color: rgba(100,140,255,0.45); margin-bottom: 28px; display: block;
    }
    .ama-end-cta h2 {
      font-family: 'Playfair Display', serif;
      font-size: clamp(28px, 3.5vw, 50px); font-weight: 900;
      color: #fff; margin-bottom: 44px; line-height: 1.15;
    }

    @media(max-width: 860px) {
      .ama-meta-bar { flex-wrap: wrap; gap: 20px; }
      .ama-meta-item { border-right: none; padding-right: 0; margin-right: 0; }
      .ama-statement { padding: 80px 6vw; }
      .ama-mobile-split, .ama-scheda-split { grid-template-columns: 1fr; }
      .ama-mobile-img { height: 70vw; min-height: 320px; }
      .ama-mobile-text, .ama-scheda-text { padding: 48px 6vw; }
      .ama-mobile-text p, .ama-scheda-text p { max-width: none; }
      .ama-full-desktop { height: 60vw; }
      .ama-full-catalog { height: 48vw; min-height: 200px; }
      .ama-scheda-img { height: 60vw; min-height: 280px; }
    }
  
    /* ===== AMA V8 SECTIONS ===== */

    /* SECTION A - INTRO SPLIT */
    .ama8-intro {
      display: grid;
      grid-template-columns: 40% 60%;
      min-height: 68vh;
      background: #0F172A;
    }
    .ama8-intro-left {
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: 72px 6vw 72px 7vw;
    }
    .ama8-brand-logo {
      font-family: 'Playfair Display', serif;
      font-size: 1.05rem;
      font-weight: 900;
      letter-spacing: 0.08em;
      color: rgba(100,140,255,0.9);
      text-transform: uppercase;
      margin-bottom: 28px;
    }
    .ama8-logo-o { color: rgba(100,140,255,0.6); }
    .ama8-intro-headline {
      font-family: 'Playfair Display', serif;
      font-size: clamp(1.35rem, 2.2vw, 2rem);
      font-weight: 700;
      color: #fff;
      line-height: 1.38;
      margin: 0 0 20px;
    }
    .ama8-intro-desc {
      font-size: 0.95rem;
      color: rgba(255,255,255,0.55);
      line-height: 1.65;
      margin: 0;
    }
    .ama8-intro-right {
      overflow: hidden;
      height: 68vh;
      min-height: 420px;
    }

    /* SECTION B - THREE COLUMNS */
    
    /* BADGES GRID */
    .ama8-badges-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px 16px;
      margin-top: 32px;
    }
    .ama8-badge-item {
      display: flex;
      align-items: flex-start;
      gap: 12px;
    }
    .ama8-badge-icon {
      flex-shrink: 0;
      color: #1A56DB;
      margin-top: 2px;
    }
    .ama8-badge-title {
      font-size: 0.65rem;
      font-weight: 800;
      letter-spacing: 0.06em;
      color: #0F172A;
      margin-bottom: 3px;
      text-transform: uppercase;
    }
    .ama8-badge-sub {
      font-size: 0.73rem;
      color: #64748B;
      line-height: 1.4;
    }
    .ama8-three {
      display: grid;
      grid-template-columns: 33% 34% 33%;
      background: #f0f2f5;
      min-height: 72vh;
    }
    .ama8-tcol-left {
      padding: 72px 4vw 72px 7vw;
      display: flex;
      flex-direction: column;
      justify-content: center;
      background: #f0f2f5;
    }
    .ama8-proj-label {
      font-size: 0.7rem;
      font-weight: 700;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      color: #1A56DB;
      margin-bottom: 18px;
    }
    .ama8-proj-headline {
      font-family: 'Playfair Display', serif;
      font-size: clamp(1.35rem, 2vw, 1.85rem);
      font-weight: 800;
      color: #0F172A;
      line-height: 1.3;
      margin: 0 0 18px;
    }
    .ama8-proj-body {
      font-size: 0.88rem;
      color: #3a4a60;
      line-height: 1.7;
      margin: 0 0 32px;
    }
    
    
    
    
    .ama8-tcol-center {
      overflow: hidden;
      padding: 0;
    }
    .ama8-phone-wrap {
      height: 100%;
      min-height: 480px;
      width: 100%;
      overflow: hidden;
    }
    .ama8-phone-wrap img { width:100%; height:100%; object-fit:cover; object-position:center top; display:block; }
    .ama8-tcol-right {
      overflow: hidden;
      background: #fff;
    }
    .ama8-scheda-wrap {
      height: 100%;
      min-height: 420px;
      overflow: hidden;
    }


    /* PROJECT META ROW */
    .ama8-proj-meta {
      display: flex;
      flex-direction: column;
      gap: 8px;
      margin-top: 28px;
      padding: 20px 0 0;
      border-top: 1px solid rgba(255,255,255,0.12);
    }
    .ama8-proj-meta-item {
      display: flex;
      align-items: baseline;
      gap: 10px;
    }
    .ama8-proj-meta-label {
      font-size: 0.75rem;
      font-weight: 800;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: rgba(100,140,255,0.75);
      min-width: 72px;
      flex-shrink: 0;
    }
    .ama8-proj-meta-val {
      font-size: 0.95rem;
      color: rgba(255,255,255,0.55);
      line-height: 1.4;
    }

    /* SECTION C - TRUST BADGES */
    .ama8-trust {
      background: #060d20;
      padding: 64px 7vw 56px;
    }
    .ama8-trust-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 32px 48px;
      max-width: 860px;
      margin: 0 auto 48px;
    }
    .ama8-trust-item {
      display: flex;
      align-items: flex-start;
      gap: 18px;
    }
    .ama8-trust-icon {
      color: rgba(100,140,255,0.85);
      flex-shrink: 0;
      margin-top: 2px;
    }
    .ama8-trust-title {
      font-size: 0.75rem;
      font-weight: 800;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: #fff;
      margin-bottom: 5px;
    }
    .ama8-trust-sub {
      font-size: 0.83rem;
      color: rgba(255,255,255,0.5);
      line-height: 1.5;
    }
    .ama8-cat-row {
      display: flex;
      justify-content: center;
      gap: 14px;
      flex-wrap: wrap;
    }
    .ama8-cat-badge {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 10px 22px;
      border-radius: 6px;
      font-size: 0.85rem;
      font-weight: 700;
      letter-spacing: 0.04em;
    }
    .ama8-cat-win  { background: #0078D4; color: #fff; }
    .ama8-cat-ms   { background: #1e1e1e; color: #fff; }
    .ama8-cat-srv  { background: #1e3a5f; color: #fff; }

    /* FOOTER BAND */
    .ama8-footer-band {
      background: #fff;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 40px 7vw;
      border-top: 1px solid rgba(0,0,0,0.07);
    }
    .ama8-footer-logo {
      font-family: 'Playfair Display', serif;
      font-size: 1rem;
      font-weight: 900;
      letter-spacing: 0.06em;
      color: #0F172A;
      text-transform: uppercase;
    }
    .ama8-footer-sub {
      font-size: 0.78rem;
      color: #666;
      margin-top: 4px;
    }
    .ama8-footer-right {
      max-width: 380px;
      text-align: right;
      font-size: 0.88rem;
      color: #3a4a60;
      line-height: 1.6;
    }
    .ama8-footer-right strong { color: #0F172A; }

    /* MOBILE RESPONSIVE */
    /* ── AMA8 MOBILE RESPONSIVE ── */
    @media (max-width: 768px) {

      /* TOPBAR */
      .ama-topbar { padding: 14px 5vw; }
      .ama-tag { font-size: 0.6rem; }

      /* HERO */
      .ama-hero-fp { min-height: 62vw; }
      .ama-meta-bar { flex-wrap: wrap; gap: 14px 24px; padding: 20px 5vw; }
      .ama-meta-item { border-right: none; padding-right: 0; }

      /* SECTION A - INTRO SPLIT */
      .ama8-intro { grid-template-columns: 1fr; }
      .ama8-intro-left {
        padding: 48px 6vw 40px;
        order: 1;
      }
      .ama8-intro-right {
        order: 2;
        height: 58vw;
        min-height: 220px;
      }
      .ama8-intro-right img { object-position: center top; }
      .ama8-brand-logo img { width: 180px !important; }
      .ama8-intro-headline { font-size: clamp(1.25rem, 5.5vw, 1.6rem); }
      .ama8-intro-desc { font-size: 0.88rem; }

      /* SECTION B - THREE COLUMNS → stack */
      .ama8-three { grid-template-columns: 1fr; min-height: unset; }
      .ama8-tcol-left { padding: 44px 6vw 36px; order: 1; }
      .ama8-tcol-center { order: 2; min-height: 64vw; }
      .ama8-phone-wrap { min-height: 64vw; }
      .ama8-tcol-right { order: 3; }
      .ama8-scheda-wrap { min-height: 56vw; }
      .ama8-proj-headline { font-size: clamp(1.2rem, 5vw, 1.5rem); }
      .ama8-proj-body { font-size: 0.85rem; }

      /* BADGES inside left col → single column */
      .ama8-badges-grid {
        grid-template-columns: 1fr;
        gap: 16px;
        margin-top: 24px;
      }
      .ama8-badge-icon img { width: 36px !important; height: 36px !important; }

      /* SECTION C - TRUST */
      .ama8-trust { padding: 48px 6vw 40px; }
      .ama8-trust-grid { grid-template-columns: 1fr; gap: 22px; }
      .ama8-cat-row { gap: 10px; }
      .ama8-cat-badge { font-size: 0.78rem; padding: 9px 16px; }

      /* FOOTER BAND */
      .ama8-footer-band { flex-direction: column; gap: 20px; text-align: center; padding: 36px 6vw; }
      .ama8-footer-right { text-align: center; max-width: none; }

      /* END CTA */
      .ama-end-cta { padding: 80px 6vw 64px; }
      .ama-end-cta h2 { font-size: clamp(1.5rem, 6vw, 2.2rem); margin-bottom: 32px; }
    }

    /* ── SMALL PHONES (≤480px) ── */
    @media (max-width: 480px) {
      .ama8-intro-left { padding: 36px 5vw 28px; }
      .ama8-brand-logo img { width: 140px !important; }
      .ama8-intro-headline { font-size: 1.15rem; }
      .ama8-tcol-left { padding: 36px 5vw 28px; }
      .ama8-proj-headline { font-size: 1.15rem; }
      .ama8-trust { padding: 36px 5vw 28px; }
      .ama8-cat-badge { font-size: 0.73rem; padding: 8px 12px; }
      .ama-hero-fp { min-height: 70vw; }
    }

/* ──────────────────────────────────────────────
   CORREZIONI RESPONSIVE (Bug fixes)
────────────────────────────────────────────── */

/* Bug 7 – Topbar progetto + hero offset su mobile
   Il nav principale è height:110px su max-width:900px.
   I topbar delle pagine progetto vengono abbassati di conseguenza,
   e le hero ricevono un margin-top per non restare sotto il nav. */
@media(max-width:900px){
  .cs-topbar{top:110px !important;padding:12px 5vw;}
  .ge-topbar{top:110px !important;padding:12px 5vw;}
  .mm-topbar{top:110px !important;padding:12px 5vw;}
  .ama-topbar{top:110px !important;padding:12px 5vw;}
  .cs-hero{margin-top:152px;}
  .ge-hero{margin-top:152px;}
  .mm-hero{margin-top:152px;}
  .ama-hero-fp{margin-top:152px;}
}

/* Bug 5 – "Clicca per girare" visibile su mobile
   I container flip card non devono troncare il testo sotto la card. */
@media(max-width:860px){
  .ge-flip-wrap{height:auto !important;overflow:visible;}
  .mm-flip-wrap{height:auto !important;overflow:visible;}
}

/* Bug 4 – Griglia tipografia GE in colonna singola su mobile */
@media(max-width:600px){
  .ge-type-grid{grid-template-columns:1fr !important;}
  .ge-type-grid > div{padding:28px 24px !important;min-height:auto !important;}
}

/* Phase 3 – FP: Web Design grid
   Le inline style sull'elemento HTML sono state rimosse:
   tutta la logica risiede qui, senza bisogno di !important sul layout. */
.fp-webdesign-grid{
  display:grid;
  grid-template-columns:1.2fr 0.8fr 1fr;
  height:72vh;
  min-height:440px;
  max-height:760px;
}
/* Cell immagine: overflow nascosto per object-fit */
.fp-webdesign-grid > div:first-child,
.fp-webdesign-grid > div:last-child{
  overflow:hidden;
}
/* Mobile: colonna singola, testo in cima, immagini proporzionate */
@media(max-width:860px){
  .fp-webdesign-grid{
    grid-template-columns:1fr;
    height:auto;
    min-height:unset;
    max-height:none;
  }
  /* Testo: primo visivamente */
  .fp-webdesign-grid > div:nth-child(2){
    order:-1;
    padding:44px 6vw !important; /* !important solo per battere inline sul div figlio */
  }
  /* Immagini: altezza proporzionale, larghezza piena */
  .fp-webdesign-grid > div:first-child,
  .fp-webdesign-grid > div:last-child{
    height:56vw;
    min-height:200px;
    width:100%;
  }
  /* Immagini: nessuna deformazione, nessun ritaglio verticale */
  .fp-webdesign-grid > div:first-child img,
  .fp-webdesign-grid > div:last-child img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }
}

/* Phase 3 – FP: hero – contenuto visibile su mobile
   La hero inizia a 152px (nav 110px + topbar ~42px).
   Il contenuto overlay è ridotto per entrare nell'altezza naturale
   dell'immagine su schermi piccoli, evitando il clipping da overflow:hidden. */
@media(max-width:900px){
  .cs-hero{ min-height:340px; }
  .cs-hero-overlay{ padding-bottom:40px !important; }
  .cs-hero-h1{ font-size:clamp(36px,10vw,52px) !important; margin-bottom:18px !important; }
  .cs-meta-bar{ padding-top:14px !important; }
}

/* Phase 3 – FP: cs-end-cta padding ridotto su mobile */
@media(max-width:860px){
  .cs-end-cta{padding:64px 5vw 80px !important;}
}

/* Phase 3 – Servizi quote: 3 blocchi separati su mobile */
.sq-block{display:inline;}
@media(max-width:600px){
  .sq-block{display:block;}
  .sq-block:not(:last-child){margin-bottom:0.4em;}
}

/* Phase 3 – Portfolio: AMAINFORMATICA card image su mobile */
@media(max-width:768px){
  .pp-ama-img{aspect-ratio:4/3 !important;}
}

/* Phase 3 – GE Make Up Artist: hero contenuto visibile su mobile
   Stessa logica di FP: margin-top è già 152px (nav+topbar).
   Riduciamo overlay padding, h1 e meta-bar per evitare il clipping
   da overflow:hidden quando l'immagine è corta su smartphone. */
@media(max-width:900px){
  .ge-hero{ min-height:340px; }
  .ge-hero-overlay{ padding-bottom:40px !important; }
  .ge-hero-h1{ font-size:clamp(34px,10vw,46px) !important; margin-bottom:18px !important; }
  .ge-meta-bar{ padding-top:14px !important; }
}

/* Phase 3 – MM: hero contenuto visibile su mobile */
@media(max-width:900px){
  .mm-hero{ min-height:340px; }
  .mm-hero-overlay{ padding-bottom:40px !important; }
  .mm-hero-h1{ font-size:clamp(32px,10vw,42px) !important; margin-bottom:18px !important; }
  .mm-meta-bar{ padding-top:14px !important; }
}

/* Phase 3 – AMA: hero contenuto visibile su mobile
   Il selettore .ama-hero-fp .ama-hero-overlay rispecchia quello del desktop.
   min-height:340px con !important sovrascrive i valori vw dei blocchi a 768px/480px. */
@media(max-width:900px){
  .ama-hero-fp{ min-height:340px !important; }
  .ama-hero-fp .ama-hero-overlay{ padding-bottom:40px !important; }
  .ama-hero-h1{ font-size:clamp(36px,10vw,52px) !important; margin-bottom:18px !important; }
  .ama-meta-bar{ padding-top:14px !important; }
}

/* ══════════════════════════════════════════
   MOBILE HERO STACK — ≤768px
   Struttura unificata per tutte e 4 le pagine progetto:
   immagine sopra (altezza fissa) + sezione scura sotto
   ══════════════════════════════════════════ */
@media(max-width:768px){

  /* ── FP ── */
  .cs-hero{
    display:flex !important; flex-direction:column !important;
    overflow:visible !important; max-height:none !important; min-height:unset !important;
  }
  .cs-hero-img{
    width:100% !important; height:56vw !important;
    min-height:220px !important; max-height:290px !important;
    object-fit:cover !important; object-position:center 30% !important;
    transform:none !important; transition:none !important; flex-shrink:0 !important;
  }
  .cs-hero.loaded .cs-hero-img{ transform:none !important; }
  .cs-hero-overlay{
    position:relative !important; inset:auto !important;
    background:#0F172A !important; background-image:none !important;
    padding:22px 6vw 6px !important; justify-content:flex-start !important;
  }
  .cs-kicker{ margin-bottom:12px !important; font-size:9px !important; }
  .cs-hero-h1{ font-size:clamp(28px,8.5vw,42px) !important; margin-bottom:14px !important; line-height:1 !important; }
  .cs-meta-bar{ padding-top:14px !important; flex-wrap:wrap !important; gap:12px 0 !important; border-top:1px solid rgba(255,255,255,0.08) !important; }
  .cs-meta-item{ border-right:none !important; padding-right:0 !important; margin-right:0 !important; width:50% !important; }
  .cs-scroll-hint{
    position:relative !important; bottom:auto !important; right:auto !important;
    display:flex !important; justify-content:flex-end !important;
    padding:8px 6vw 18px !important; background:#0F172A !important;
    animation:none !important; opacity:0.45 !important;
  }

  /* ── GE ── */
  .ge-hero{
    display:flex !important; flex-direction:column !important;
    overflow:visible !important; max-height:none !important; min-height:unset !important;
  }
  .ge-hero > img{
    width:100% !important; height:56vw !important;
    min-height:220px !important; max-height:290px !important;
    object-fit:cover !important; object-position:center 20% !important;
    flex-shrink:0 !important;
  }
  .ge-hero-overlay{
    position:relative !important; inset:auto !important;
    background:#0F172A !important; background-image:none !important;
    padding:22px 6vw 6px !important; justify-content:flex-start !important;
  }
  .ge-hero-h1{ font-size:clamp(26px,8.5vw,40px) !important; margin-bottom:14px !important; line-height:1.05 !important; }
  .ge-meta-bar{ padding-top:14px !important; flex-wrap:wrap !important; gap:12px 0 !important; border-top:1px solid rgba(255,255,255,0.08) !important; }
  .ge-meta-item{ border-right:none !important; padding-right:0 !important; margin-right:0 !important; }
  .ge-scroll-hint{
    display:flex !important; align-items:center !important; justify-content:flex-end !important;
    gap:8px !important; padding:8px 6vw 18px !important; background:#0F172A !important;
    font-size:9px !important; font-weight:700 !important; letter-spacing:0.2em !important;
    text-transform:uppercase !important; color:rgba(255,255,255,0.35) !important;
  }

  /* ── MM ── */
  .mm-hero{
    display:flex !important; flex-direction:column !important;
    overflow:visible !important; max-height:none !important; min-height:unset !important;
  }
  .mm-hero > img{
    width:100% !important; height:56vw !important;
    min-height:220px !important; max-height:290px !important;
    object-fit:cover !important; object-position:center 25% !important;
    flex-shrink:0 !important;
  }
  .mm-hero-overlay{
    position:relative !important; inset:auto !important;
    background:#0F172A !important; background-image:none !important;
    padding:22px 6vw 6px !important; justify-content:flex-start !important;
  }
  .mm-hero-h1{ font-size:clamp(26px,8.5vw,40px) !important; margin-bottom:14px !important; line-height:1.05 !important; }
  .mm-meta-bar{ padding-top:14px !important; flex-wrap:wrap !important; gap:12px 0 !important; border-top:1px solid rgba(255,255,255,0.08) !important; }
  .mm-meta-item{ border-right:none !important; padding-right:0 !important; margin-right:0 !important; }
  .mm-scroll-hint{
    display:flex !important; align-items:center !important; justify-content:flex-end !important;
    gap:8px !important; padding:8px 6vw 18px !important; background:#0F172A !important;
    font-size:9px !important; font-weight:700 !important; letter-spacing:0.2em !important;
    text-transform:uppercase !important; color:rgba(255,255,255,0.35) !important;
  }

  /* ── AMA ── */
  .ama-hero-fp{
    display:flex !important; flex-direction:column !important;
    overflow:visible !important; max-height:none !important; min-height:unset !important;
  }
  .ama-hero-img{
    width:100% !important; height:56vw !important;
    min-height:220px !important; max-height:290px !important;
    object-fit:cover !important; object-position:center 30% !important;
    transform:none !important; transition:none !important; flex-shrink:0 !important;
  }
  .ama-hero-fp.loaded .ama-hero-img{ transform:none !important; }
  .ama-hero-fp .ama-hero-overlay{
    position:relative !important; inset:auto !important;
    background:#0F172A !important; background-image:none !important;
    padding:22px 6vw 6px !important; justify-content:flex-start !important;
  }
  .ama-kicker{ margin-bottom:12px !important; font-size:9px !important; }
  .ama-hero-h1{ font-size:clamp(28px,8.5vw,42px) !important; margin-bottom:14px !important; line-height:1 !important; }
  .ama-meta-bar{ padding-top:14px !important; flex-wrap:wrap !important; gap:12px 0 !important; border-top:1px solid rgba(255,255,255,0.08) !important; }
  .ama-meta-item{ border-right:none !important; padding-right:0 !important; margin-right:0 !important; width:33.33% !important; }
  .ama-scroll-hint{
    position:relative !important; bottom:auto !important; right:auto !important;
    display:flex !important; justify-content:flex-end !important;
    padding:8px 6vw 18px !important; background:#0F172A !important;
    animation:none !important; opacity:0.45 !important;
  }

  /* Nascondi scroll-hint GE e MM su desktop (non servono) */
}
@media(min-width:769px){
  .ge-scroll-hint{ display:none !important; }
  .mm-scroll-hint{ display:none !important; }
}

/* ══════════════════════════════════════
   CHI SONO
══════════════════════════════════════ */
.chi-sono-section {
  background: #0F172A;
  border-top: 1px solid rgba(93, 124, 250, 0.2);
  padding: 80px 5vw;
}
.chi-sono-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 0.35fr) minmax(0, 0.65fr);
  grid-template-rows: auto 1fr;
  column-gap: 64px;
  align-items: start;
}
.chi-sono-photo-col {
  grid-column: 1;
  grid-row: 1 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
}
.chi-sono-photo {
  width: 100%;
  max-width: 340px;
  height: auto;
  display: block;
}
.chi-sono-head {
  grid-column: 2;
  grid-row: 1;
  padding-top: 8px;
}
.chi-sono-body {
  grid-column: 2;
  grid-row: 2;
}
.chi-sono-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(147, 168, 244, 0.6);
  margin-bottom: 18px;
}
.chi-sono-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(28px, 3vw, 44px);
  font-weight: 700;
  color: #fff;
  line-height: 1.15;
  margin: 0 0 28px;
}
.chi-sono-title em {
  font-style: italic;
  color: #93A8F4;
}
.chi-sono-p {
  font-size: 15px;
  line-height: 1.85;
  color: rgba(255, 255, 255, 0.55);
  margin: 0 0 18px;
}
.chi-sono-p:last-child { margin-bottom: 0; }

/* Tablet: mantieni 2 col se c'è spazio */
@media (max-width: 860px) {
  .chi-sono-inner {
    column-gap: 40px;
  }
}

/* Mobile: singola colonna label+titolo → foto → testo */
@media (max-width: 640px) {
  .chi-sono-section { padding: 52px 6vw; }
  .chi-sono-inner {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    row-gap: 0;
    column-gap: 0;
  }
  .chi-sono-head {
    grid-column: 1;
    grid-row: 1;
    order: 1;
    padding-top: 0;
    margin-bottom: 28px;
  }
  .chi-sono-photo-col {
    grid-column: 1;
    grid-row: 2;
    order: 2;
    margin-bottom: 28px;
    justify-content: center;
  }
  .chi-sono-body {
    grid-column: 1;
    grid-row: 3;
    order: 3;
  }
  .chi-sono-photo {
    max-width: 270px;
    width: 100%;
    height: auto;
  }
  .chi-sono-title {
    font-size: clamp(28px, 9vw, 40px);
    margin-bottom: 0;
  }
  .chi-sono-p {
    font-size: 16px;
    line-height: 1.65;
    margin-bottom: 16px;
  }
}

/* ══════════════════════════════════════
   CHI SONO — HOMEPAGE: link "Scopri di più"
══════════════════════════════════════ */
.chi-sono-more-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #93A8F4;
  cursor: pointer;
  border-bottom: 1px solid rgba(123, 139, 191, 0.4);
  padding-bottom: 3px;
  transition: color 0.2s, border-color 0.2s;
  text-decoration: none;
}
.chi-sono-more-link:hover {
  color: #ffffff;
  border-color: rgba(255, 255, 255, 0.5);
}


/* ══════════════════════════════════════
   CHI SONO — PAGINA DEDICATA (prefisso csp-)
   Struttura grid a 3 blocchi (identica alla
   sezione homepage chi-sono):
   photo-col  | head   (riga 1)
   photo-col  | body   (riga 2)
══════════════════════════════════════ */

/* Hero */
.csp-hero {
  position: relative;
  padding: 160px 6vw 80px;
  background: linear-gradient(to top, #0F172A 0%, #1e2a4a 40%, #ffffff 100%);
  min-height: 340px;
  display: flex;
  align-items: center;
  overflow: hidden;
}
.csp-hero-watermark {
  position: absolute;
  right: 5vw;
  top: 50%;
  transform: translateY(-50%);
  font-family: 'Playfair Display', serif;
  font-size: clamp(60px, 14vw, 180px);
  font-weight: 900;
  color: rgba(255, 255, 255, 0.06);
  line-height: 1;
  pointer-events: none;
  user-select: none;
  white-space: nowrap;
}
.csp-hero-content {
  position: relative;
  z-index: 2;
  max-width: 700px;
}
.csp-hero-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(44px, 6vw, 76px);
  font-weight: 900;
  line-height: 1.05;
  margin: 0 0 16px;
  color: #0F172A;
}
.csp-hero-title em {
  font-style: italic;
  color: #ffffff;
}
.csp-hero-sub {
  font-size: 17px;
  color: #ffffff;
  font-weight: 500;
  margin: 0;
  line-height: 1.5;
  letter-spacing: 0.02em;
}

/* Sezione contenuto */
.csp-section {
  padding: 80px 5vw 100px;
  background: #0F172A;
}
.csp-inner {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 0.38fr) minmax(0, 0.62fr);
  grid-template-rows: auto 1fr;
  column-gap: 72px;
  align-items: start;
}

/* Foto: occupa entrambe le righe */
.csp-photo-col {
  grid-column: 1;
  grid-row: 1 / 3;
  display: flex;
  align-items: flex-start;
  justify-content: center;
}
.csp-photo {
  width: 100%;
  max-width: 340px;
  height: auto;
  display: block;
}

/* Intestazione: colonna 2, riga 1 */
.csp-head {
  grid-column: 2;
  grid-row: 1;
  padding-top: 8px;
}

/* Corpo: colonna 2, riga 2 */
.csp-body {
  grid-column: 2;
  grid-row: 2;
}

/* Tipografia */
.csp-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(147, 168, 244, 0.6);
  margin-bottom: 18px;
}
.csp-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(28px, 3vw, 44px);
  font-weight: 700;
  color: #fff;
  line-height: 1.15;
  margin: 0 0 32px;
}
.csp-title em {
  font-style: italic;
  color: #93A8F4;
}
.csp-p {
  font-size: 16px;
  line-height: 1.85;
  color: rgba(255, 255, 255, 0.6);
  margin: 0 0 22px;
}
.csp-p:last-of-type {
  margin-bottom: 36px;
}
.csp-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  background: #5175FF;
  color: #ffffff;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-radius: 3px;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s, transform 0.2s;
}
.csp-cta:hover {
  background: #6B8FFF;
  transform: translateY(-2px);
}

/* Tablet 768–900: riduci gap, togli sticky */
@media (max-width: 900px) {
  .csp-inner {
    column-gap: 48px;
  }
}
@media (max-width: 768px) {
  .csp-hero {
    padding: 140px 6vw 60px;
    min-height: 280px;
  }
  .csp-inner {
    grid-template-columns: minmax(0, 0.40fr) minmax(0, 0.60fr);
    column-gap: 36px;
  }
  .csp-photo {
    max-width: 240px;
  }
}

/* Mobile ≤640px: singola colonna — label→title→foto→testo→btn */
@media (max-width: 640px) {
  .csp-hero {
    padding: 126px 6vw 48px;
    min-height: 240px;
  }
  .csp-hero-watermark { display: none; }
  .csp-hero-title { font-size: clamp(36px, 10vw, 54px); }
  .csp-section { padding: 48px 6vw 64px; }

  .csp-inner {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    column-gap: 0;
    row-gap: 0;
  }
  /* Ordine: head(1) → photo-col(2) → body(3) */
  .csp-head {
    grid-column: 1;
    grid-row: 1;
    order: 1;
    padding-top: 0;
    margin-bottom: 20px;
  }
  .csp-photo-col {
    grid-column: 1;
    grid-row: 2;
    order: 2;
    justify-content: center;
    margin-bottom: 28px;
  }
  .csp-body {
    grid-column: 1;
    grid-row: 3;
    order: 3;
  }
  .csp-photo {
    max-width: 280px;
    width: 100%;
    height: auto;
  }
  .csp-title {
    font-size: clamp(28px, 9vw, 40px);
    margin-bottom: 0;
  }
  .csp-p { font-size: 16px; line-height: 1.65; margin-bottom: 18px; }
  .csp-p:last-of-type { margin-bottom: 28px; }
  .csp-cta { width: 100%; justify-content: center; padding: 16px 20px; }
}


/* ═══════════════════════════════════════════
   PRIVACY POLICY PAGE  (pp- prefix)
   ═══════════════════════════════════════════ */

.pp-hero {
  position: relative;
  padding: 140px 6vw 64px;
  background: linear-gradient(to bottom, #ffffff 0%, #1e2a4a 50%, #0F172A 100%);
  min-height: 280px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}
.pp-hero-watermark {
  position: absolute; right: 5vw; top: 50%; transform: translateY(-50%);
  font-family: 'Playfair Display', serif;
  font-size: clamp(50px, 11vw, 140px);
  font-weight: 900; color: rgba(255,255,255,0.05);
  pointer-events: none; user-select: none; white-space: nowrap;
}
.pp-hero-content { position: relative; z-index: 1; }
.pp-hero-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(36px, 5vw, 64px); font-weight: 900;
  color: #ffffff; line-height: 1.05; margin: 0 0 12px;
}
.pp-hero-title em { font-style: italic; color: #93A8F4; }
.pp-hero-sub {
  font-size: 13px; font-weight: 600; letter-spacing: 0.18em;
  text-transform: uppercase; color: rgba(255,255,255,0.45); margin: 0;
}

.pp-section {
  padding: 72px 5vw 100px;
  background: #0F172A;
}
.pp-inner {
  max-width: 780px;
  margin: 0 auto;
}
.pp-updated {
  font-size: 11px; font-weight: 600; letter-spacing: 0.18em;
  text-transform: uppercase; color: rgba(147,168,244,0.6);
  margin-bottom: 48px;
}
.pp-h2 {
  font-family: 'Playfair Display', serif;
  font-size: clamp(20px, 2.5vw, 28px);
  font-weight: 700; color: #ffffff;
  margin: 0 0 16px; line-height: 1.2;
}
.pp-h2:not(:first-of-type) { margin-top: 48px; }
.pp-p {
  font-size: 15px; line-height: 1.85;
  color: rgba(255,255,255,0.6); margin: 0 0 16px;
}
.pp-p a {
  color: #93A8F4; text-decoration: underline;
  text-underline-offset: 3px;
}
.pp-p a:hover { color: #ffffff; }
.pp-p strong { color: rgba(255,255,255,0.85); font-weight: 600; }
.pp-ul {
  padding-left: 20px; margin: 0 0 16px;
  color: rgba(255,255,255,0.6); font-size: 15px; line-height: 1.85;
}
.pp-ul li { margin-bottom: 6px; }
.pp-divider {
  border: none;
  border-top: 1px solid rgba(255,255,255,0.08);
  margin: 48px 0;
}
/* word-break per URL lunghi */
.pp-p a, .pp-ul a {
  word-break: break-word;
  overflow-wrap: break-word;
}
/* Mobile: font minima 16px come da spec */
@media (max-width: 640px) {
  .pp-section { padding: 48px 5vw 80px; }
  .pp-p  { font-size: 16px; line-height: 1.8; }
  .pp-ul { font-size: 16px; line-height: 1.8; }
  .pp-h2:not(:first-of-type) { margin-top: 36px; }
  .pp-divider { margin: 36px 0; }
}
