/* Extracted from luigina.html */

/* ---- style block 1 ---- */
:root{
      --g: #15908D;
      --g-b: rgba(255,255,255,.16);
      --g-s: 0 18px 40px rgba(2,8,23,.18);
      --acc-1: #8B5CF6;
      --acc-2: #F472B6;
      --ink: #0f172a;
      --muted: rgba(15,23,42,.72);
      --muted2: rgba(15,23,42,.58);
      --radius: 18px;
      --max: 1240px;
      --padX: 18px;
      --padY: 10px;
      --gap: 18px;
      --r: 22px;
    }

    html, body{ margin:0; padding:0; background:#fff; }

    .aofHdrWrap, .aofHdrWrap * ,
    .pg, .pg *{
      font-family: ui-sans-serif, system-ui, -apple-system, "SF Pro Display", "SF Pro Text",
                   "Inter", "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      box-sizing: border-box;
    }

    /* ===== HEADER (copiato dallo stile homepage) ===== */
    .aofHdrWrap{
      position: fixed;
      top: 14px;
      left: 0;
      right: 0;
      z-index: 9999;
      pointer-events: none;
    }

    .aofHdr{
      pointer-events: auto;
      width: min(var(--max), calc(100% - 28px));
      margin: 0 auto;
      background: var(--g);
      border: 1px solid var(--g-b);
      border-radius: var(--radius);
      box-shadow: var(--g-s);
      overflow: clip;
      position: relative;
    }

    .aofHdr::before{
      content:"";
      position:absolute;
      inset:0;
      pointer-events:none;
      background:
        radial-gradient(900px 140px at 18% 0%, rgba(255,255,255,.14), transparent 60%),
        radial-gradient(900px 160px at 82% 0%, rgba(0,0,0,.10), transparent 62%),
        linear-gradient(180deg, rgba(255,255,255,.07), transparent 55%);
      opacity:.95;
    }

    .aofHdrInner{
      position: relative;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: var(--gap);
      padding: var(--padY) var(--padX);
    }

    .aofLogo{
      display:flex;
      align-items:center;
      gap: 10px;
      text-decoration:none;
      color: rgba(255,255,255,.97);
      min-width: 180px;
    }
    .aofLogoMark{
      width: 46px;
      height: 46px;
      border-radius: 14px;
      padding: 2px;
      background: linear-gradient(135deg, #15908D, #0F766E);
      box-shadow: 0 14px 30px rgba(21,144,141,.16);
      flex: 0 0 auto;
    }
    .aofLogoMark > .aofLogoMark__in{
      width: 100%;
      height: 100%;
      border-radius: 12px;
      background: rgba(255,255,255,.10);
      border: 1px solid rgba(255,255,255,.18);
      display:flex;
      align-items:center;
      justify-content:center;
      overflow:hidden;
    }
    .aofLogoMark img{
      width: 32px;
      height: 32px;
      object-fit: contain;
      display:block;
      filter: drop-shadow(0 2px 8px rgba(0,0,0,.20));
    }
    .aofLogoText{
      display:flex;
      flex-direction:column;
      line-height:1.05;
    }
    .aofLogoText strong{
      font-size: 14px;
      letter-spacing:.12em;
      text-transform: uppercase;
      font-weight: 850;
    }
    .aofLogoText span{
      font-size: 12.5px;
      color: rgba(255,255,255,.68);
      letter-spacing:.01em;
      font-weight: 650;
    }

    .aofNav{
      display:flex;
      align-items:center;
      gap: 6px;
      padding: 6px;
      border-radius: 14px;
      border: 1px solid rgba(255,255,255,.16);
      background: rgba(255,255,255,.08);
    }
    .aofNav a{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      padding: 10.5px 13px;
      border-radius: 12px;
      font-size: 14px;
      text-decoration:none;
      color: rgba(255,255,255,.84);
      transition: transform .18s ease, background .18s ease, color .18s ease;
      white-space: nowrap;
      font-weight: 750;
      letter-spacing: .01em;
    }
    .aofNav a:hover{
      background: rgba(255,255,255,.14);
      color: rgba(255,255,255,.97);
      transform: translateY(-1px);
    }

    .aofRight{
      display:flex;
      align-items:center;
      gap: 10px;
      min-width: 180px;
      justify-content: flex-end;
    }

    .aofBtn{
      display:inline-flex;
      align-items:center;
      gap: 10px;
      padding: 11px 14px;
      border-radius: 14px;
      border: 1px solid rgba(255,255,255,.26);
      color: rgba(255,255,255,.98);
      background: linear-gradient(135deg, var(--acc-1), var(--acc-2));
      text-decoration: none;
      transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
      font-weight: 900;
      letter-spacing: .01em;
      box-shadow: 0 16px 30px rgba(139,92,246,.14);
      user-select: none;
    }
    .aofBtn:hover{
      transform: translateY(-1px);
      box-shadow: 0 22px 44px rgba(139,92,246,.16);
      filter: saturate(1.03);
    }
    .aofBtn svg{ width: 18px; height: 18px; fill: rgba(255,255,255,.96); }

    .aofBurger{
      width: 46px;
      height: 46px;
      border-radius: 14px;
      border: 1px solid rgba(255,255,255,.18);
      background: rgba(255,255,255,.10);
      display:none;
      align-items:center;
      justify-content:center;
      cursor:pointer;
      transition: transform .18s ease, background .18s ease;
    }
    .aofBurger:hover{ transform: translateY(-1px); background: rgba(255,255,255,.16); }
    .aofBurger span{
      width: 18px;
      height: 2px;
      background: rgba(255,255,255,.92);
      position: relative;
      border-radius: 2px;
      display:block;
    }
    .aofBurger span::before,
    .aofBurger span::after{
      content:"";
      position:absolute;
      left:0;
      width: 18px;
      height: 2px;
      background: rgba(255,255,255,.92);
      border-radius: 2px;
      transition: transform .18s ease, top .18s ease, opacity .18s ease;
    }
    .aofBurger span::before{ top: -6px; }
    .aofBurger span::after{ top: 6px; }

    .aofDrawer{ display:none; padding: 0 12px 12px; position: relative; }
    .aofDrawerInner{
      border-radius: 16px;
      border: 1px solid rgba(255,255,255,.16);
      background: rgba(255,255,255,.08);
      overflow: hidden;
    }
    .aofDrawerInner a{
      display:flex;
      align-items:center;
      justify-content:space-between;
      padding: 14px 14px;
      text-decoration:none;
      color: rgba(255,255,255,.97);
      font-size: 14.5px;
      border-top: 1px solid rgba(255,255,255,.12);
      font-weight: 800;
      letter-spacing: .01em;
    }
    .aofDrawerInner a:first-child{ border-top: 0; }
    .aofDrawerInner a small{
      color: rgba(255,255,255,.72);
      font-size: 12.5px;
      font-weight: 700;
    }

    .aofHdr.is-open .aofDrawer{ display:block; }
    .aofHdr.is-open .aofBurger span{ background: transparent; }
    .aofHdr.is-open .aofBurger span::before{ top:0; transform: rotate(45deg); }
    .aofHdr.is-open .aofBurger span::after{ top:0; transform: rotate(-45deg); }

    @media (max-width: 980px){
      .aofNav{ display:none; }
      .aofBurger{ display:flex; }
      .aofBtn{ display:none; }
    }

    .aofHdrSpacer{ height: 96px; }

    /* ===== PAGE ===== */
    .pg{ background:#fff; }
    .wrap{ width: min(var(--max), calc(100% - 28px)); margin:0 auto; }

    .hl{
      background: linear-gradient(135deg, var(--acc-1), var(--acc-2));
      -webkit-background-clip:text;
      background-clip:text;
      color: transparent;
    }

    /* HERO (ispirato alla homepage) */
    .hero{
      background:#fff;
      padding: 44px 0 68px;
    }
    .hero__grid{
      display:grid;
      grid-template-columns: 1.15fr .85fr;
      gap: clamp(18px, 3vw, 44px);
      align-items:center;
    }
    .kicker{
      display:inline-flex;
      align-items:center;
      gap: 10px;
      padding: 10px 12px;
      border-radius: 999px;
      border: 1px solid rgba(15,23,42,.10);
      background: rgba(15,23,42,.03);
      color: rgba(15,23,42,.78);
      font-weight: 800;
      font-size: 13px;
      letter-spacing: .02em;
      margin-bottom: 14px;
    }
    .kicker__dot{
      width: 10px; height: 10px; border-radius: 999px;
      background:
        radial-gradient(circle at 30% 30%, rgba(255,255,255,.9), rgba(255,255,255,0) 60%),
        linear-gradient(135deg, var(--acc-1), var(--acc-2));
      box-shadow: 0 10px 22px rgba(139,92,246,.14);
    }
    .hero__title{
      margin:0 0 12px 0;
      color: var(--ink);
      font-size: clamp(36px, 4.4vw, 54px);
      line-height: 1.04;
      letter-spacing:-0.02em;
      font-weight: 950;
      max-width: 22ch;
    }
    .hero__sub{
      margin:0 0 18px 0;
      color: var(--muted);
      font-size: 16.5px;
      line-height: 1.7;
      max-width: 70ch;
      font-weight: 650;
    }
    .hero__row{
      display:flex;
      align-items:center;
      gap: 12px;
      flex-wrap:wrap;
      margin-top: 10px;
    }
    .btn{
      display:inline-flex;
      align-items:center;
      gap: 10px;
      padding: 12px 14px;
      border-radius: 14px;
      border: 1px solid rgba(255,255,255,.26);
      color: rgba(255,255,255,.98);
      background: linear-gradient(135deg, var(--acc-1), var(--acc-2));
      text-decoration:none;
      font-weight: 950;
      letter-spacing:.01em;
      box-shadow: 0 16px 30px rgba(139,92,246,.16);
      transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
      user-select:none;
    }
    .btn:hover{
      transform: translateY(-2px);
      box-shadow: 0 22px 44px rgba(139,92,246,.18);
      filter: saturate(1.03);
    }
    .btn svg{ width: 18px; height: 18px; fill: rgba(255,255,255,.96); }
    .hint{
      color: rgba(15,23,42,.58);
      font-weight: 650;
      font-size: 13.5px;
      line-height:1.5;
      max-width: 52ch;
    }

    .heroCard{
      border-radius: var(--r);
      border:1px solid rgba(15,23,42,.10);
      background:#fff;
      overflow:hidden;
      box-shadow: 0 22px 60px rgba(2,8,23,.10);
      position: relative;
    }
    .heroCard::before{
      content:"";
      position:absolute; inset:0;
      pointer-events:none;
      background:
        radial-gradient(900px 240px at 35% 0%, rgba(139,92,246,.10), transparent 60%),
        radial-gradient(900px 240px at 75% 0%, rgba(244,114,182,.10), transparent 62%);
      opacity:.9;
    }
    .heroCard img{
      position: relative;
      width:100%;
      height: 520px;
      object-fit: contain;
      object-position: 50% 50%;
      display:block;
      background: #fff;
      filter: none;
      transform: none;
    }
    .heroCard__cap{
      position:absolute;
      left: 14px;
      right: 14px;
      bottom: 14px;
      padding: 12px 12px;
      border-radius: 16px;
      border: 1px solid rgba(255,255,255,.22);
      background: rgba(15,23,42,.58);
      color: rgba(255,255,255,.95);
      backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      box-shadow: 0 18px 40px rgba(2,8,23,.22);
      font-weight: 800;
      font-size: 13.5px;
      line-height: 1.35;
    }

    /* SECTIONS */
    .sec{ padding: 78px 0; background:#fff; }
    .sec__head{ text-align:center; margin-bottom: 26px; }
    .sec__title{
      margin:0 auto 10px;
      text-align:center;
      color: var(--ink);
      font-size: clamp(32px, 3.6vw, 44px);
      line-height:1.12;
      letter-spacing:-0.02em;
      font-weight:950;
      max-width: 36ch;
    }

    .sec__title--qual{
      max-width: none;
    }
    .secTitleLine{ display: inline; }

    @media (min-width: 981px){
      .sec__title--qual{ white-space: nowrap; }
    }

    @media (max-width: 560px){
      .secTitleLine{ display:block; }
    }
    .sec__sub{
      margin:0 auto;
      text-align:center;
      color: var(--muted);
      font-size:16.5px;
      line-height:1.65;
      max-width: 78ch;
      font-weight: 650;
    }

    .grid3{
      display:grid;
      grid-template-columns: repeat(3, minmax(0,1fr));
      gap: 14px;
      margin-top: 22px;
    }
    .card{
      border-radius: var(--r);
      border: 1px solid rgba(15,23,42,.10);
      background: rgba(15,23,42,.02);
      padding: 18px 18px;
      position: relative;
      overflow: hidden;
    }
    .card::before{
      content:"";
      position:absolute;
      inset:-40% -30%;
      background:
        radial-gradient(circle at 20% 20%, rgba(139,92,246,.10), transparent 55%),
        radial-gradient(circle at 80% 30%, rgba(244,114,182,.10), transparent 55%),
        radial-gradient(circle at 45% 90%, rgba(21,144,141,.08), transparent 55%);
      transform: rotate(10deg);
      opacity: .9;
      pointer-events:none;
    }
    .card__in{ position: relative; z-index: 2; display:flex; gap: 12px; align-items:flex-start; }
    .ico{
      width: 40px; height: 40px;
      border-radius: 14px;
      padding: 2px;
      background: linear-gradient(135deg, var(--acc-1), var(--acc-2));
      flex: 0 0 auto;
      box-shadow: 0 14px 30px rgba(139,92,246,.12);
    }
    .ico__in{
      width:100%; height:100%;
      border-radius: 12px;
      background: rgba(255,255,255,.66);
      border: 1px solid rgba(15,23,42,.06);
      display:grid;
      place-items:center;
    }
    .ico svg{ width: 18px; height: 18px; fill: rgba(15,23,42,.72); }
    .card h3{
      margin: 0 0 6px 0;
      font-size: 15.8px;
      line-height: 1.25;
      color: var(--ink);
      font-weight: 950;
      letter-spacing: -.01em;
    }
    .card p{
      margin: 0;
      color: var(--muted2);
      font-size: 14.4px;
      line-height: 1.55;
      font-weight: 650;
    }

    .twoCol{
      display:grid;
      grid-template-columns: 1fr 1fr;
      gap: 18px;
      margin-top: 24px;
      align-items:start;
    }
    .panel{
      border-radius: var(--r);
      border: 1px solid rgba(15,23,42,.10);
      background:#fff;
      box-shadow: 0 18px 46px rgba(2,8,23,.08);
      overflow:hidden;
      display:flex;
      flex-direction: column;
    }
    .panel__img{
      aspect-ratio: 16/10;
      width:100%;
      overflow:hidden;
      position:relative;
      background: #0b1220;
    }
    .panel__img img{
      width:100%; height:100%;
      object-fit: cover;
      display:block;
      transform: scale(1.02);
      filter: saturate(1.02) contrast(1.02);
      opacity:.92;
    }
    .panel__body{ padding: 16px 16px 18px; flex: 1; }
    .panel__body h3{
      margin:0 0 8px 0;
      color: var(--ink);
      font-size: 17px;
      line-height: 1.25;
      font-weight: 950;
      letter-spacing:-.01em;
    }
    .panel__body ul{
      margin:0;
      padding-left: 18px;
      color: rgba(15,23,42,.72);
      font-weight: 650;
      line-height: 1.65;
      font-size: 14.6px;
    }
    .note{
      margin-top: 14px;
      color: rgba(15,23,42,.62);
      font-size: 13.8px;
      line-height: 1.55;
      font-weight: 650;
    }

    /* ===== STORIA (timeline stile homepage) ===== */
    :root{
      --luimax:1240px;
      --luit-r:22px;
    }
    .luit, .luit *{
      font-family: ui-sans-serif, system-ui, -apple-system, "SF Pro Display", "SF Pro Text",
                   "Inter", "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      box-sizing:border-box;
    }
    .luit{
      --luitProg: 0;
      --luitRailX: 50%;
      background:#fff;
      padding: 78px 0;
      overflow: visible;
    }
    .luit__wrap{
      width:min(var(--luimax), calc(100% - 28px));
      margin:0 auto;
    }
    .luit__head{ text-align:center; margin-bottom: 26px; }
    .luit__kicker{
      display:inline-flex; align-items:center; gap:10px;
      padding:10px 12px; border-radius:999px;
      border:1px solid rgba(15,23,42,.10);
      background: rgba(15,23,42,.03);
      color: rgba(15,23,42,.78);
      font-weight:800; font-size:13px; letter-spacing:.02em;
      margin:0 auto 14px;
    }
    .luit__dot{
      width:10px; height:10px; border-radius:999px;
      background: var(--g);
      box-shadow: 0 10px 22px rgba(21,144,141,.16);
    }
    .luit__title{
      margin:0 0 10px 0;
      color: var(--ink);
      font-size: clamp(32px, 3.6vw, 44px);
      line-height:1.12;
      letter-spacing:-0.02em;
      font-weight:950;
    }
    .luit__sub{
      margin:0 auto;
      color: var(--muted);
      font-size:16.5px;
      line-height:1.65;
      max-width: 80ch;
      font-weight:650;
    }

    .luitRail{
      position:relative;
      margin-top: 28px;
      padding-top: 6px;
      overflow: visible;
    }
    .luitRail::before{
      content:"";
      position:absolute;
      left: var(--luitRailX);
      top: 0;
      bottom: 0;
      width: 4px;
      transform: translateX(-50%);
      border-radius: 999px;
      background: rgba(15,23,42,.10);
      z-index: 0;
    }
    .luitRail::after{
      content:"";
      position:absolute;
      left: var(--luitRailX);
      top: 0;
      bottom: 0;
      width: 4px;
      transform: translateX(-50%) scaleY(var(--luitProg));
      transform-origin: top;
      border-radius: 999px;
      background: linear-gradient(180deg, rgba(21,144,141,.98), rgba(21,144,141,.78));
      opacity: .95;
      z-index: 0;
      filter: drop-shadow(0 10px 18px rgba(21,144,141,.16));
    }

    .luitList{ list-style:none; padding:0; margin:0; display:grid; gap: 18px; }
    .luitItem{
      display:grid;
      grid-template-columns: minmax(0, 1fr) 90px minmax(0, 1fr);
      column-gap: 18px;
      align-items: center;
      position: relative;
    }
    .luitNode{
      grid-column: 2;
      position: relative;
      display:grid;
      place-items:center;
      height: 120px;
      z-index: 1;
    }
    .luitRing{
      width: 56px;
      height: 56px;
      border-radius: 999px;
      background: rgba(255,255,255,.90);
      border: 1px solid rgba(15,23,42,.14);
      box-shadow: 0 18px 40px rgba(2,8,23,.10);
      display:grid;
      place-items:center;
      position: relative;
      overflow:hidden;
    }
    .luitRing::before{
      content:"";
      position:absolute; inset:-50%;
      background: radial-gradient(circle at 30% 20%, rgba(21,144,141,.22), transparent 55%);
      transform: rotate(18deg);
      opacity: .9;
      pointer-events:none;
    }
    .luitYear{
      position: relative;
      z-index: 2;
      font-weight: 950;
      letter-spacing: .04em;
      font-size: 12.5px;
      color: rgba(15,23,42,.86);
    }
    .luitCard{
      grid-column: 1;
      justify-self:end;
      width: min(560px, 100%);
      border-radius: var(--luit-r);
      border: 1px solid rgba(15,23,42,.10);
      background: #fff;
      box-shadow: 0 18px 46px rgba(2,8,23,.08);
      overflow:hidden;
      position: relative;
    }
    .luitCard::before{
      content:"";
      position:absolute;
      inset:-12% -10%;
      pointer-events:none;
      background:
        radial-gradient(circle at 18% 20%, rgba(21,144,141,.10), transparent 55%),
        radial-gradient(circle at 82% 25%, rgba(15,23,42,.06), transparent 56%);
      opacity:.95;
    }
    .luitCard__in{ position:relative; z-index:2; padding: 16px 16px 18px; }
    .luitBadge{
      display:inline-flex; align-items:center; gap:8px;
      padding:8px 10px; border-radius:999px;
      border:1px solid rgba(15,23,42,.10);
      background: rgba(15,23,42,.03);
      color: rgba(15,23,42,.78);
      font-weight:900;
      font-size: 12px;
      letter-spacing:.01em;
      white-space: nowrap;
      margin-bottom: 10px;
    }
    .luitCard h3{
      margin: 0 0 8px 0;
      font-size: 17px;
      line-height:1.25;
      color: var(--ink);
      font-weight: 950;
      letter-spacing:-.01em;
    }
    .luitCard p{
      margin: 0;
      font-size: 14.6px;
      line-height:1.65;
      color: rgba(15,23,42,.70);
      font-weight: 650;
    }

    .luitItem.is-right .luitCard{ grid-column: 3; justify-self:start; }
    .luitItem.is-right .luitNode::before,
    .luitItem.is-left .luitNode::before{
      content:"";
      position:absolute;
      top: 50%;
      width: 18px;
      height: 2px;
      background: rgba(15,23,42,.12);
      border-radius: 2px;
    }
    .luitItem.is-left .luitNode::before{ left: -18px; }
    .luitItem.is-right .luitNode::before{ right: -18px; }

    .luitItem.is-on .luitCard{
      border-color: rgba(15,23,42,.16);
      box-shadow: 0 26px 62px rgba(2,8,23,.11);
    }
    .luitItem.is-on .luitRing{
      box-shadow: 0 24px 70px rgba(21,144,141,.18);
    }

    @media (max-width: 980px){
      .luit{ padding: 62px 0; }
      .luitItem{ grid-template-columns: minmax(0, 1fr) 64px minmax(0, 1fr); }
    }
    @media (max-width: 680px){
      .luit{ --luitRailX: 28px; }
      .luit__title{ font-size: 34px; }
      .luitItem{ grid-template-columns: 56px minmax(0, 1fr); column-gap: 12px; }
      .luitNode{ grid-column: 1; height: 88px; }
      .luitCard{ grid-column: 2 !important; justify-self: stretch !important; }
      .luitItem.is-left .luitNode::before,
      .luitItem.is-right .luitNode::before{
        left: 42px;
        right: auto;
        width: 18px;
      }
    }
    @media (prefers-reduced-motion: reduce){
      .luitRail::after, .luitCard{ transition:none !important; }
    }

    /* ===== QUALIFICHE (testi sx + banner dx) ===== */
    .qualGrid{
      margin-top: 24px;
      display:grid;
      grid-template-columns: 1.2fr .8fr;
      gap: 18px;
      align-items: stretch;
    }
    .qualBox{
      border-radius: var(--r);
      border: 1px solid rgba(15,23,42,.10);
      background:#fff;
      box-shadow: 0 18px 46px rgba(2,8,23,.08);
      overflow:hidden;
      height: 100%;
    }
    .qualBox__in{
      padding: 16px 16px 18px;
      height: 100%;
    }
    .qualBox h3{
      margin:0 0 10px 0;
      color: var(--ink);
      font-size: 17px;
      line-height: 1.25;
      font-weight: 950;
      letter-spacing:-.01em;
    }
    .qualBox h4{
      margin: 14px 0 8px 0;
      color: rgba(15,23,42,.86);
      font-size: 14px;
      line-height: 1.2;
      font-weight: 950;
      letter-spacing: .08em;
      text-transform: uppercase;
    }
    .qualBox ul{
      margin: 0;
      padding-left: 18px;
      color: rgba(15,23,42,.72);
      font-weight: 650;
      line-height: 1.65;
      font-size: 14.6px;
    }
    .qualBanner{
      border-radius: var(--r);
      border: 1px solid rgba(15,23,42,.12);
      background: #f4fbfa;
      box-shadow: 0 22px 60px rgba(2,8,23,.10);
      overflow:hidden;
      position: relative;
      height: 100%;
      cursor: pointer;
    }
    .qualBanner::before{
      content:"";
      position:absolute; inset:0;
      pointer-events:none;
      background:
        radial-gradient(680px 200px at 10% 0%, rgba(21,144,141,.16), transparent 60%),
        radial-gradient(760px 260px at 90% 10%, rgba(21,144,141,.10), transparent 62%),
        linear-gradient(140deg, rgba(255,255,255,.96), rgba(244,251,250,.86));
      opacity:.98;
    }
    .qualBanner__in{
      position: relative;
      padding: 22px;
      color: #1f2937;
      display:flex;
      flex-direction: column;
      gap: 12px;
      height: 100%;
      justify-content: center;
    }
    .qualBanner__eyebrow{
      font-size: 12px;
      letter-spacing: .26em;
      text-transform: uppercase;
      color: rgba(15,23,42,.62);
      font-weight: 800;
    }
    .qualBanner__title{
      margin: 0;
      font-size: 24px;
      line-height: 1.18;
      font-weight: 950;
      letter-spacing: -.01em;
    }
    .qualBanner__sub{
      margin: 0;
      color: rgba(31,41,55,.76);
      font-size: 14.8px;
      line-height: 1.6;
      font-weight: 600;
    }
    .qualBanner__preview{
      margin-top: 6px;
      display:grid;
      grid-template-columns: repeat(2, minmax(0,1fr));
      gap: 10px;
    }
    .qualBanner__preview img{
      width:100%;
      height: 110px;
      object-fit: cover;
      border-radius: 14px;
      border: 1px solid rgba(15,23,42,.14);
      box-shadow: 0 14px 32px rgba(2,8,23,.14);
      filter: saturate(1.05) contrast(1.02);
      background: rgba(255,255,255,.7);
    }
    .qualBanner__btn{
      margin-top: 10px;
      align-self: flex-start;
      display:inline-flex;
      align-items:center;
      gap: 10px;
      padding: 12px 16px;
      border-radius: 999px;
      border: 1px solid rgba(15,23,42,.18);
      background: linear-gradient(120deg, rgba(244,114,182,.22), rgba(244,114,182,.10));
      color: #1f2937;
      font-weight: 800;
      font-size: 14px;
      letter-spacing: .01em;
      cursor: pointer;
      transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
      box-shadow: 0 14px 30px rgba(2,8,23,.16);
    }
    .qualBanner__btn svg{
      width: 18px;
      height: 18px;
      fill: currentColor;
    }
    .qualBanner__btn:hover{
      transform: translateY(-2px);
      border-color: rgba(244,114,182,.45);
      box-shadow: 0 18px 40px rgba(2,8,23,.22);
    }
    .qualBanner__btn:focus-visible{
      outline: 2px solid rgba(244,114,182,.6);
      outline-offset: 3px;
    }
    .qualBanner__hover{
      position:absolute;
      inset:0;
      display:flex;
      align-items:center;
      justify-content:center;
      text-align:center;
      font-weight: 950;
      font-size: 20px;
      letter-spacing: .02em;
      color: #fff;
      background:
        radial-gradient(240px 140px at 50% 40%, rgba(255,255,255,.18), transparent 60%),
        linear-gradient(135deg, rgba(244,114,182,.78), rgba(217,70,239,.55));
      opacity: 0;
      transition: opacity .25s ease, transform .25s ease;
      pointer-events:none;
      text-shadow: 0 12px 24px rgba(2,8,23,.28);
    }
    .qualBanner:hover .qualBanner__hover{
      opacity: 1;
      transform: scale(1.01);
    }
    .qualBanner:hover .qualBanner__in{
      filter: blur(1.2px) saturate(.95);
    }
    @media (max-width: 980px){
      .qualGrid{ grid-template-columns: 1fr; }
      .qualBanner{ min-height: 420px; }
      .qualBanner__preview img{ height: 120px; }
    }
    @media (max-width: 640px){
      .qualBanner{ min-height: 380px; }
      .qualBanner__preview{ grid-template-columns: 1fr; }
      .qualBanner__preview img{ height: 140px; }
    }

    /* ===== MODALE ATTESTATI ===== */
    .attestatiModal{
      position: fixed;
      inset: 0;
      display: none;
      align-items: center;
      justify-content: center;
      z-index: 12000;
    }
    .attestatiModal.is-open{ display: flex; }
    .attestatiModal__backdrop{
      position: absolute;
      inset: 0;
      background: rgba(8,12,20,.65);
      backdrop-filter: blur(6px);
    }
    .attestatiModal__panel{
      position: relative;
      width: min(900px, 92vw);
      max-height: 86vh;
      background: #f7f3f0;
      border-radius: 24px;
      border: 1px solid rgba(15,23,42,.12);
      box-shadow: 0 24px 70px rgba(2,8,23,.35);
      color: #1f2937;
      padding: 22px;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      gap: 16px;
    }
    .attestatiModal__head{
      display:flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 18px;
    }
    .attestatiModal__head h3{
      margin: 0 0 4px 0;
      font-size: 22px;
      font-weight: 900;
    }
    .attestatiModal__head p{
      margin: 0;
      color: rgba(55,65,81,.76);
      font-size: 14.5px;
      font-weight: 600;
    }
    .attestatiModal__close{
      border: none;
      background: rgba(15,23,42,.08);
      color: #1f2937;
      width: 38px;
      height: 38px;
      border-radius: 50%;
      font-size: 22px;
      cursor: pointer;
      transition: transform .2s ease, background .2s ease;
    }
    .attestatiModal__close:hover{ transform: rotate(6deg); background: rgba(15,23,42,.14); }
    .attestatiModal__grid{
      display:grid;
      grid-template-columns: 1fr;
      gap: 14px;
      overflow-y: auto;
      padding-right: 4px;
    }
    .attestatiModal__grid img{
      width: 100%;
      border-radius: 16px;
      border: 1px solid rgba(15,23,42,.12);
      background: rgba(255,255,255,.9);
      box-shadow: 0 18px 38px rgba(2,8,23,.24);
    }
    @media (max-width: 720px){
      .attestatiModal__panel{ padding: 18px; }
      .attestatiModal__grid{ grid-template-columns: 1fr; }
    }

    body.modal-open{
      overflow: hidden;
    }

    /* ===== CTA (ripristinata) ===== */
    .cta{
      padding: 62px 0 78px;
      background:#fff;
    }
    .ctaBox{
      width: min(var(--max), calc(100% - 28px));
      margin:0 auto;
      border-radius: var(--r);
      border: 1px solid rgba(15,23,42,.10);
      background: linear-gradient(180deg, rgba(15,23,42,.02), rgba(15,23,42,.00));
      position: relative;
      overflow:hidden;
      box-shadow: 0 22px 56px rgba(2,8,23,.08);
      padding: 18px;
    }
    .ctaBox::before{
      content:"";
      position:absolute;
      inset:-30% -20%;
      background:
        radial-gradient(900px 260px at 20% 20%, rgba(21,144,141,.12), transparent 60%),
        radial-gradient(900px 300px at 80% 70%, rgba(15,23,42,.06), transparent 62%);
      pointer-events:none;
      opacity:.95;
    }
    .ctaBox__in{
      position: relative;
      z-index:2;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: 14px;
      flex-wrap:wrap;
    }
    .ctaBox h2{
      margin:0;
      color: var(--ink);
      font-size: clamp(26px, 3vw, 34px);
      line-height: 1.15;
      letter-spacing:-.02em;
      font-weight: 950;
      max-width: 30ch;
    }
    .ctaBox p{
      margin:6px 0 0;
      color: var(--muted);
      font-size: 15.5px;
      line-height:1.6;
      font-weight: 650;
      max-width: 70ch;
    }

    /* responsive */
    @media (max-width: 980px){
      .hero{ padding: 34px 0 58px; }
      .hero__grid{ grid-template-columns: 1fr; }
      .heroCard img{ height: 420px; }
      .sec{ padding: 62px 0; }
      .grid3{ grid-template-columns: 1fr; }
      .twoCol{ grid-template-columns: 1fr; }
    }
    @media (max-width: 560px){
      .hero__title{ font-size: 38px; max-width: 22ch; }
      .sec__title{ font-size: 34px; }
    }
    @media (prefers-reduced-motion: reduce){
      .aofNav a, .aofBtn, .btn{ transition:none !important; }
    }

/* ---- style block 2 ---- */
:root{
      --aof-green:#15908D;
      --aof-accent-1:#8B5CF6;
      --aof-accent-2:#F472B6;
      --aof-wa-shadow: 0 18px 40px rgba(2,8,23,.22);
    }
    .aofWAFab, .aofWAFab *{
      font-family: ui-sans-serif, system-ui, -apple-system, "SF Pro Display", "SF Pro Text",
                   "Inter","Segoe UI",Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      box-sizing: border-box;
    }
    .aofWAFab{
      position: fixed;
      right: 18px;
      bottom: 18px;
      z-index: 9998;
    }
    .aofWAFab__btn{
      width: 62px;
      height: 62px;
      border-radius: 999px;
      display: grid;
      place-items: center;
      text-decoration: none;
      background: var(--aof-green);
      border: 1px solid rgba(255,255,255,.22);
      box-shadow: var(--aof-wa-shadow);
      position: relative;
      overflow: hidden;
      transform: translateZ(0);
      transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
    }
    .aofWAFab__btn::before{
      content:"";
      position:absolute;
      inset:-40%;
      background: radial-gradient(circle at 30% 20%, rgba(255,255,255,.28), transparent 55%);
      transform: rotate(18deg);
      opacity: .75;
      pointer-events:none;
    }
    .aofWAFab__btn:hover{
      transform: translateY(-2px);
      box-shadow: 0 22px 56px rgba(2,8,23,.26);
      filter: saturate(1.02);
    }
    .aofWAFab__icon{
      width: 30px;
      height: 30px;
      display:block;
      position: relative;
      z-index: 2;
      filter: drop-shadow(0 2px 10px rgba(0,0,0,.18));
    }
    .aofWAFab__icon .wa-phone{
      transform: translate(0.7px, 0.9px);
      transform-origin: 50% 50%;
    }
    .aofWAFab__tip{
      position: absolute;
      right: 74px;
      bottom: 10px;
      padding: 10px 12px;
      border-radius: 14px;
      background: rgba(15,23,42,.92);
      color: rgba(255,255,255,.95);
      font-size: 13px;
      font-weight: 800;
      letter-spacing: .01em;
      white-space: nowrap;
      box-shadow: 0 18px 40px rgba(2,8,23,.22);
      opacity: 0;
      transform: translateX(8px);
      pointer-events: none;
      transition: opacity .18s ease, transform .18s ease;
    }
    .aofWAFab__btn:hover + .aofWAFab__tip{
      opacity: 1;
      transform: translateX(0);
    }
    @media (max-width: 520px){
      .aofWAFab{ right: 14px; bottom: 14px; }
      .aofWAFab__btn{ width: 58px; height: 58px; }
      .aofWAFab__icon{ width: 28px; height: 28px; }
      .aofWAFab__tip{ display:none; }
    }

/* ---- style block 3 ---- */
:root{
      --g:#15908D;
      --acc-1:#8B5CF6;
      --acc-2:#F472B6;

      --w: rgba(255,255,255,.97);
      --w2: rgba(255,255,255,.84);
      --w3: rgba(255,255,255,.68);

      --max: 1240px;
      --r: 22px;
    }

    .aofFtr, .aofFtr *{
      font-family: ui-sans-serif, system-ui, -apple-system, "SF Pro Display", "SF Pro Text",
                   "Inter","Segoe UI",Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      box-sizing: border-box;
    }

    .aofFtr{
      position: relative;
      background: var(--g);
      color: var(--w);
      padding: 78px 0 26px;
      overflow: hidden;
    }

    .aofFtr::before{
      content:"";
      position:absolute;
      left:0; right:0; top:0;
      height: 2px;
      background: linear-gradient(135deg, var(--acc-1), var(--acc-2));
      opacity: .95;
    }

    .aofFtr::after{
      content:"";
      position:absolute;
      inset:-30% -20%;
      background:
        radial-gradient(700px 320px at 15% 25%, rgba(255,255,255,.14), transparent 60%),
        radial-gradient(820px 380px at 85% 30%, rgba(0,0,0,.14), transparent 62%),
        radial-gradient(700px 360px at 55% 95%, rgba(139,92,246,.12), transparent 60%),
        radial-gradient(700px 360px at 80% 85%, rgba(244,114,182,.10), transparent 60%);
      pointer-events:none;
      opacity:.92;
    }

    .aofFtr__wrap{
      position: relative;
      z-index: 2;
      width: min(var(--max), calc(100% - 28px));
      margin: 0 auto;
    }

    .aofFtr__grid{
      display:grid;
      grid-template-columns: 1.15fr .85fr 1.1fr;
      gap: 16px;
      align-items:start;
    }

    .aofFtrCard{
      border-radius: var(--r);
      border: 1px solid rgba(255,255,255,.16);
      background: rgba(255,255,255,.08);
      box-shadow: 0 18px 40px rgba(2,8,23,.14);
      overflow: hidden;
      position: relative;
    }
    .aofFtrCard::before{
      content:"";
      position:absolute; inset:0;
      pointer-events:none;
      background:
        radial-gradient(900px 200px at 20% 0%, rgba(255,255,255,.12), transparent 60%),
        linear-gradient(180deg, rgba(255,255,255,.06), transparent 60%);
      opacity:.95;
    }
    .aofFtrCard__in{
      position: relative;
      padding: 18px 18px;
    }

    .aofFtrBrand{
      display:flex;
      gap: 12px;
      align-items:flex-start;
    }
    .aofFtrMark{
      width: 46px; height: 46px;
      border-radius: 14px;
      padding: 2px;
      background: linear-gradient(135deg, var(--acc-1), var(--acc-2));
      box-shadow: 0 14px 30px rgba(139,92,246,.16);
      flex: 0 0 auto;
    }
    .aofFtrMark__in{
      width:100%; height:100%;
      border-radius: 12px;
      background: rgba(255,255,255,.10);
      border: 1px solid rgba(255,255,255,.18);
      display:grid;
      place-items:center;
      overflow:hidden;
    }
    .aofFtrMark img{
      width: 32px; height: 32px;
      object-fit: contain;
      display:block;
      filter: drop-shadow(0 2px 8px rgba(0,0,0,.22));
    }

    .aofFtrTitle{
      margin: 0 0 6px 0;
      font-size: 14px;
      letter-spacing:.12em;
      text-transform: uppercase;
      font-weight: 900;
      color: var(--w);
    }
    .aofFtrSub{
      margin: 0;
      color: var(--w2);
      font-size: 14.6px;
      line-height: 1.65;
      font-weight: 650;
    }

    .aofFtrCtaRow{
      margin-top: 14px;
      display:flex;
      gap: 12px;
      align-items:center;
      flex-wrap:wrap;
    }
    .aofFtrBtn{
      display:inline-flex;
      align-items:center;
      gap: 10px;
      padding: 12px 14px;
      border-radius: 14px;
      border: 1px solid rgba(255,255,255,.26);
      color: rgba(255,255,255,.98);
      background: linear-gradient(135deg, var(--acc-1), var(--acc-2));
      text-decoration:none;
      font-weight: 950;
      letter-spacing:.01em;
      box-shadow: 0 16px 30px rgba(139,92,246,.16);
      transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
      user-select:none;
      width: fit-content;
    }
    .aofFtrBtn:hover{
      transform: translateY(-2px);
      box-shadow: 0 22px 44px rgba(139,92,246,.18);
      filter: saturate(1.03);
    }
    .aofFtrBtn svg{ width:18px; height:18px; fill: rgba(255,255,255,.96); }
    .aofFtrMini{
      color: var(--w3);
      font-weight: 700;
      font-size: 13.5px;
      line-height: 1.5;
      max-width: 52ch;
    }

    .aofFtrH{
      margin: 0 0 12px;
      font-weight: 950;
      letter-spacing: -.01em;
      font-size: 16px;
      color: var(--w);
    }

    .aofFtrLinks{ display:grid; gap: 10px; }
    .aofFtrLink{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: 10px;
      padding: 12px 12px;
      border-radius: 16px;
      border: 1px solid rgba(255,255,255,.16);
      background: rgba(255,255,255,.06);
      text-decoration:none;
      color: var(--w);
      font-weight: 850;
      letter-spacing:.01em;
      transition: transform .18s ease, background .18s ease;
    }
    .aofFtrLink:hover{ transform: translateY(-1px); background: rgba(255,255,255,.10); }
    .aofFtrLink small{ color: var(--w3); font-weight: 700; }

    .aofFtrList{ list-style:none; padding:0; margin:0; display:grid; gap: 12px; }
    .aofFtrItem{ display:flex; gap: 12px; align-items:flex-start; }
    .aofFtrIcon{
      width: 40px; height: 40px;
      border-radius: 14px;
      padding: 2px;
      background: linear-gradient(135deg, var(--acc-1), var(--acc-2));
      flex: 0 0 auto;
      box-shadow: 0 14px 30px rgba(139,92,246,.14);
    }
    .aofFtrIcon__in{
      width:100%; height:100%;
      border-radius: 12px;
      background: rgba(255,255,255,.10);
      border: 1px solid rgba(255,255,255,.18);
      display:grid;
      place-items:center;
    }
    .aofFtrIcon svg{ width: 18px; height: 18px; fill: rgba(255,255,255,.92); }
    .aofFtrText b{ display:block; font-weight: 950; color: var(--w); margin-bottom: 2px; }
    .aofFtrText span, .aofFtrText a{
      color: var(--w2);
      font-weight: 650;
      text-decoration:none;
      line-height:1.5;
      font-size: 14.6px;
    }
    .aofFtrText a:hover{ text-decoration: underline; }

    .aofFtrHours{
      margin-top: 14px;
      border-top: 1px solid rgba(255,255,255,.14);
      padding-top: 14px;
      display:grid;
      gap: 10px;
    }
    .aofFtrHoursRow{
      display:flex;
      align-items:baseline;
      justify-content:space-between;
      gap: 12px;
      color: var(--w2);
      font-weight: 750;
      font-size: 14px;
    }
    .aofFtrHoursRow strong{ color: var(--w); font-weight: 950; }
    .aofFtrHoursRow em{ font-style: normal; color: var(--w3); font-weight: 750; }

    .aofFtrBar{
      margin-top: 18px;
      padding-top: 16px;
      border-top: 1px solid rgba(255,255,255,.14);
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap: 10px;
      flex-wrap:wrap;
    }
    .aofFtrLegal{
      color: var(--w3);
      font-weight: 700;
      font-size: 13px;
      display:flex;
      gap: 8px;
      flex-wrap:wrap;
    }
    .aofFtrLegal a{ color: var(--w2); text-decoration:none; font-weight: 850; }
    .aofFtrLegal a:hover{ text-decoration: underline; }
    .aofFtrCopy{ color: var(--w3); font-weight: 750; font-size: 13px; }

    @media (max-width: 980px){
      .aofFtr{ padding: 62px 0 22px; }
      .aofFtr__grid{ grid-template-columns: 1fr; }
    }
