:root{
    --zb-navy:#1f3f8f;
    --zb-navy-2:#294f9e;
    --zb-blue-active:#3e74e6;
    --zb-text:#172033;
    --zb-text-soft:#172033;
    --zb-white:#ffffff;
    --zb-line:rgba(28,52,109,.10);

    --zb-shell-max:1360px;
    --zb-mega-max:1180px;

    --zb-nav-h:96px;
    --zb-nav-h-compact:68px;

    --zb-nav-h-mobile:82px;
    --zb-nav-h-mobile-compact:72px;

    --zb-top-offset:18px;
    --zb-top-offset-compact:10px;

    --zb-logo-h:68px;
    --zb-logo-h-compact:44px;

    --zb-logo-h-mobile:54px;
    --zb-logo-h-mobile-compact:46px;

    --zb-radius:20px;
    --zb-radius-compact:18px;

    --zb-nav-maxw:1360px;
    --zb-nav-maxw-compact:760px;
    --zb-nav-maxw-peek:1120px;

    --zb-side-gap:40px;
    --zb-side-gap-compact:120px;
    --zb-side-gap-peek:56px;

    --zb-side-gap-mobile:24px;
    --zb-side-gap-mobile-compact:34px;

    --zb-font:"HK Grotesk", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    --zb-font-wide:"HK Grotesk Wide","HK Grotesk", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    --zb-ease:cubic-bezier(.22,.61,.36,1);
  }

  .zb-header{
    position:fixed;
    top:0;
    left:0;
    width:100%;
    z-index:120;
    font-family:var(--zb-font);

    --zb-current-nav-h:var(--zb-nav-h);
    --zb-current-top-offset:var(--zb-top-offset);
    --zb-current-logo-h:var(--zb-logo-h);
    --zb-current-radius:var(--zb-radius);
    --zb-current-nav-maxw:var(--zb-nav-maxw);
    --zb-current-side-gap:var(--zb-side-gap);

    padding-top:var(--zb-current-top-offset);
    transition:padding-top .28s var(--zb-ease);
  }

  .zb-header.is-scrolled{
    --zb-current-nav-h:var(--zb-nav-h-compact);
    --zb-current-top-offset:var(--zb-top-offset-compact);
    --zb-current-logo-h:var(--zb-logo-h-compact);
    --zb-current-radius:var(--zb-radius-compact);
    --zb-current-nav-maxw:var(--zb-nav-maxw-compact);
    --zb-current-side-gap:var(--zb-side-gap-compact);
  }

  .zb-header.is-scrolled.is-peek{
    --zb-current-nav-maxw:var(--zb-nav-maxw-peek);
    --zb-current-side-gap:var(--zb-side-gap-peek);
  }

  .zb-nav{
    width:min(calc(100% - var(--zb-current-side-gap)), var(--zb-current-nav-maxw));
    margin:0 auto;
    background:rgba(255,255,255,.97);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    border:1px solid rgba(28,52,109,.08);
    border-radius:var(--zb-current-radius);
    box-shadow:0 18px 50px rgba(16,34,73,.12);
    transition:
      width .36s var(--zb-ease),
      background .28s var(--zb-ease),
      border-color .28s var(--zb-ease),
      box-shadow .28s var(--zb-ease),
      border-radius .28s var(--zb-ease);
  }

  .zb-header.is-scrolled .zb-nav{
    background:rgba(255,255,255,.98);
    border-color:rgba(28,52,109,.09);
    box-shadow:0 12px 28px rgba(16,34,73,.09);
  }

  .zb-container{
    min-height:var(--zb-current-nav-h);
    padding:0 22px;
    display:flex;
    align-items:center;
    gap:18px;
    transition:min-height .28s var(--zb-ease), padding .28s var(--zb-ease), gap .28s var(--zb-ease);
  }

  .zb-brand{
    display:flex;
    align-items:center;
    text-decoration:none;
    color:inherit;
    flex:0 0 auto;
  }

  .zb-logo{
    height:var(--zb-current-logo-h);
    width:auto;
    display:block;
    transition:height .28s var(--zb-ease);
  }

  .zb-menu{
    margin-left:auto;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:18px;
    white-space:nowrap;
    transition:gap .28s var(--zb-ease);
  }

  .zb-header.is-scrolled.is-peek .zb-menu{
    gap:24px;
  }

  .zb-menu a{
    position:relative;
    display:inline-flex;
    align-items:center;
    height:var(--zb-current-nav-h);
    color:var(--zb-text-soft);
    text-decoration:none;
    font-size:17px;
    font-weight:700;
    letter-spacing:.01em;
    transition:
      color .18s var(--zb-ease),
      opacity .18s var(--zb-ease),
      height .28s var(--zb-ease),
      font-size .28s var(--zb-ease);
  }

  .zb-header.is-scrolled .zb-menu a{
    font-size:15px;
  }

  .zb-header.is-scrolled.is-peek .zb-menu a{
    font-size:15px;
  }

  .zb-menu a::after{
    content:none;
  }

  .zb-menu a:hover,
  .zb-menu a:focus-visible{
    color:var(--zb-navy-2);
  }

  .zb-menu a.is-selected,
  .zb-menu a[aria-expanded="true"]{
    color:var(--zb-blue-active);
  }

  .zb-burger{
    display:none;
    margin-left:auto;
    width:44px;
    height:44px;
    border-radius:14px;
    border:1px solid rgba(31,63,143,.10);
    background:rgba(41,79,158,.04);
    color:var(--zb-navy);
    align-items:center;
    justify-content:center;
    cursor:pointer;
    transition:
      background .28s var(--zb-ease),
      border-color .28s var(--zb-ease),
      color .28s var(--zb-ease);
  }

  .zb-burger__lines{
    display:block;
    width:18px;
    height:2px;
    background:currentColor;
    position:relative;
    border-radius:999px;
  }

  .zb-burger__lines::before,
  .zb-burger__lines::after{
    content:"";
    position:absolute;
    left:0;
    width:18px;
    height:2px;
    background:currentColor;
    border-radius:999px;
  }

  .zb-burger__lines::before{ top:-6px; }
  .zb-burger__lines::after{ top:6px; }

  .zb-mega{
    position:absolute;
    top:calc(var(--zb-current-top-offset) + var(--zb-current-nav-h) + 12px);
    left:50%;
    width:min(calc(100% - 40px), var(--zb-mega-max));
    transform:translate(-50%, -12px);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:
      top .28s var(--zb-ease),
      opacity .18s var(--zb-ease),
      transform .22s var(--zb-ease),
      visibility 0s linear .22s;
  }

  .zb-header.is-mega-open .zb-mega{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translate(-50%, 0);
    transition:
      top .28s var(--zb-ease),
      opacity .18s var(--zb-ease),
      transform .22s var(--zb-ease),
      visibility 0s;
  }

  .zb-mega__inner{
    background:rgba(255,255,255,.985);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    border:1px solid rgba(28,52,109,.08);
    border-radius:22px;
    box-shadow:0 26px 70px rgba(16,34,73,.14);
    padding:24px 28px 26px;
  }

  .zb-mega__panel{
    display:none;
  }

  .zb-header[data-open="prodotti"] .zb-mega__panel[data-panel="prodotti"],
  .zb-header[data-open="parco"] .zb-mega__panel[data-panel="parco"],
  .zb-header[data-open="servizi"] .zb-mega__panel[data-panel="servizi"]{
    display:block;
  }

  .zb-mega__layout{
    display:grid;
    grid-template-columns:320px minmax(0, 1fr);
    gap:34px;
    align-items:stretch;
  }

  .zb-mega__layout--products{
    grid-template-columns:minmax(0, 1.32fr) minmax(300px, .68fr);
    gap:24px;
    align-items:center;
  }

  .zb-mega__left{
    position:relative;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:8px;
    min-height:220px;
    padding-right:28px;
  }

  .zb-mega__left::after{
    content:"";
    position:absolute;
    right:0;
    top:50%;
    transform:translateY(-50%);
    width:1px;
    height:150px;
    background:rgba(31,63,143,.10);
  }

  .zb-mega__left--products{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:0 18px;
    align-items:center;
    align-content:center;
    min-height:220px;
    padding-right:22px;
  }

  .zb-mega__left--products::after{
    content:"";
    position:absolute;
    right:0;
    top:50%;
    transform:translateY(-50%);
    width:1px;
    height:130px;
    background:rgba(31,63,143,.10);
  }

  .zb-megaCol{
    display:flex;
    flex-direction:column;
    gap:8px;
  }

  .zb-mega__right{
    display:flex;
    align-items:stretch;
    justify-content:center;
    min-height:220px;
  }

  .zb-mega__right--products{
    min-height:220px;
    align-items:center;
  }

  .zb-mega__previewWrap{
    width:100%;
    display:grid;
    grid-template-columns:minmax(250px, 310px) minmax(260px, 360px);
    gap:28px;
    align-items:stretch;
    justify-content:center;
  }

  .zb-mega__previewWrap--imageOnly{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:100%;
  }

  .zb-mega__previewText{
    position:relative;
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-height:220px;
    padding-right:28px;
  }

  .zb-mega__previewText::after{
    content:"";
    position:absolute;
    right:0;
    top:50%;
    transform:translateY(-50%);
    width:1px;
    height:150px;
    background:rgba(31,63,143,.10);
  }

  .zb-mega__previewDesc:empty{
    display:none;
  }

  .zb-megaLink{
    appearance:none;
    border:0;
    background:transparent;
    text-align:left;
    padding:8px 0 8px 14px;
    font-family:var(--zb-font-wide);
    font-weight:650;
    color:var(--zb-text);
    font-size:15px;
    cursor:pointer;
    position:relative;
    transition:color .18s var(--zb-ease), opacity .18s var(--zb-ease), transform .18s var(--zb-ease);
  }

  .zb-megaLink:hover{
    color:var(--zb-navy);
    transform:translateX(2px);
  }

  .zb-megaLink.is-active{
    opacity:1;
    color:var(--zb-navy);
  }

  .zb-megaLink:not(.is-active){
    opacity:.62;
  }

  .zb-megaLink.is-active::before{
    content:"";
    position:absolute;
    left:0;
    top:50%;
    transform:translateY(-50%);
    width:6px;
    height:20px;
    border-radius:999px;
    background:var(--zb-navy-2);
  }

  .zb-mega__previewTitle{
    font-family:var(--zb-font-wide);
    font-weight:700;
    letter-spacing:-.02em;
    color:var(--zb-navy);
    font-size:20px;
    line-height:1.12;
  }

  .zb-mega__previewDesc{
    margin-top:7px;
    color:rgba(33,52,95,.72);
    font-size:14px;
    line-height:1.45;
  }

  .zb-mega__previewImg{
    width:100%;
    max-width:340px;
    height:220px;
    object-fit:contain;
    display:block;
    align-self:center;
    justify-self:center;
    filter:drop-shadow(0 18px 30px rgba(31,63,143,.12));
    pointer-events:none;
  }

  .zb-mega__previewImg--products{
    max-width:320px;
    height:190px;
  }

  .zb-mega__previewImg.is-machine{
    max-width:360px;
  }

  .zb-backdrop{
    position:fixed;
    inset:0;
    background:rgba(10,18,37,.36);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .22s var(--zb-ease), visibility 0s linear .22s;
    z-index:140;
  }

  .zb-mobile{
    position:fixed;
    top:0;
    right:0;
    height:100vh;
    width:min(88vw, 420px);
    background:rgba(255,255,255,.98);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    color:var(--zb-text);
    box-shadow:-28px 0 70px rgba(15,31,67,.18);
    transform:translateX(100%);
    opacity:0;
    visibility:hidden;
    transition:
      transform .28s var(--zb-ease),
      opacity .22s var(--zb-ease),
      visibility 0s linear .28s;
    display:flex;
    flex-direction:column;
    z-index:150;
  }

  .zb-header.is-open .zb-backdrop{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transition:opacity .22s var(--zb-ease), visibility 0s;
  }

  .zb-header.is-open .zb-mobile{
    transform:translateX(0);
    opacity:1;
    visibility:visible;
    transition:
      transform .28s var(--zb-ease),
      opacity .22s var(--zb-ease),
      visibility 0s;
  }

  .zb-mobile__head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:16px 16px 14px;
    border-bottom:1px solid rgba(28,52,109,.08);
  }

  .zb-mobile__title{
    font-weight:900;
    color:var(--zb-navy);
    letter-spacing:.02em;
  }

  .zb-close{
    width:40px;
    height:40px;
    border-radius:12px;
    border:1px solid rgba(31,63,143,.10);
    background:rgba(41,79,158,.04);
    color:var(--zb-navy);
    cursor:pointer;
  }

  .zb-mobile__nav{
    display:flex;
    flex-direction:column;
    gap:4px;
    padding:10px;
  }

  .zb-mobile__nav a{
    padding:13px 12px;
    border-radius:12px;
    text-decoration:none;
    color:var(--zb-text);
    font-weight:800;
  }

  .zb-mobile__nav a:hover{
    background:rgba(41,79,158,.06);
    color:var(--zb-navy);
  }

  .zb-mobile__cta{
    margin-top:auto;
    padding:14px 16px 18px;
    border-top:1px solid rgba(28,52,109,.08);
  }

  .zb-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:46px;
    padding:0 16px;
    border-radius:999px;
    font-size:14px;
    font-weight:850;
    text-decoration:none;
    white-space:nowrap;
    transition:background .18s var(--zb-ease), color .18s var(--zb-ease), border-color .18s var(--zb-ease);
  }

  .zb-btn--primary{
    background:var(--zb-navy-2);
    color:#fff;
    border:1px solid var(--zb-navy-2);
    box-shadow:0 12px 24px rgba(31,63,143,.16);
  }

  .zb-btn--primary:hover{
    background:var(--zb-navy);
    border-color:var(--zb-navy);
    color:#fff;
  }

  @media (max-width: 1180px){
    :root{
      --zb-nav-maxw-compact:680px;
      --zb-nav-maxw-peek:980px;
      --zb-side-gap-compact:80px;
      --zb-side-gap-peek:40px;
    }

    .zb-menu{ gap:16px; }
    .zb-menu a{ font-size:16px; }

    .zb-header.is-scrolled .zb-menu a{
      font-size:14px;
    }

    .zb-mega__layout--products{
      grid-template-columns:minmax(0, 1.24fr) minmax(260px, .76fr);
      gap:20px;
    }

    .zb-mega__left--products{
      gap:0 14px;
      min-height:210px;
    }

    .zb-mega__previewImg--products{
      max-width:290px;
      height:175px;
    }
  }

  @media (max-width: 1024px){
    .zb-header{
      --zb-current-nav-h:var(--zb-nav-h-mobile);
      --zb-current-logo-h:var(--zb-logo-h-mobile);
      --zb-current-side-gap:var(--zb-side-gap-mobile);
      --zb-current-nav-maxw:none;
    }

    .zb-header.is-scrolled{
      --zb-current-nav-h:var(--zb-nav-h-mobile-compact);
      --zb-current-logo-h:var(--zb-logo-h-mobile-compact);
      --zb-current-top-offset:8px;
      --zb-current-side-gap:var(--zb-side-gap-mobile-compact);
      --zb-current-nav-maxw:none;
    }

    .zb-header.is-scrolled.is-peek{
      --zb-current-side-gap:var(--zb-side-gap-mobile-compact);
      --zb-current-nav-maxw:none;
    }

    .zb-mega,
    .zb-menu{
      display:none !important;
    }

    .zb-burger{
      display:inline-flex;
    }

    .zb-nav{
      width:calc(100% - var(--zb-current-side-gap));
      max-width:none;
    }

    .zb-container{
      padding:0 16px;
      gap:16px;
    }
  }

  .zb-btn:focus-visible,
  .zb-burger:focus-visible,
  .zb-close:focus-visible,
  .zb-menu a:focus-visible,
  .zb-mobile__nav a:focus-visible,
  .zb-megaLink:focus-visible{
    outline:3px solid rgba(41,79,158,.22);
    outline-offset:2px;
    border-radius:12px;
  }

  html.zb-lock,
  body.zb-lock{
    overflow:hidden;
  }

/* ---- section ---- */

:root{
      --zb-title:#ffffff;
      --zb-primary:#274F9E;
      --zb-primary-2:#355fb3;
      --zb-secondary:#B1B9DF;
      --zb-navy:#192654;
      --zb-navy-deep:#0f1838;
      --zb-white:#ffffff;
      --zb-ink:#3C3C3B;
      --zb-muted:#878787;

      --zb-max:1380px;

      --zb-font:"HK Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
      --zb-font-wide:"HK Grotesk Wide","HK Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
      --zb-ease:cubic-bezier(.22,.61,.36,1);
    }

    html, body{
      margin:0;
      padding:0;
      width:100%;
      overflow-x:hidden;
      background:#ffffff;
    }

    .zb-hero-wrap,
    .zb-hero-wrap *,
    .zb-hero-wrap *::before,
    .zb-hero-wrap *::after{
      box-sizing:border-box;
    }

    .zb-hero-wrap{
      position:relative;
      display:block;
      width:100vw;
      max-width:100vw;
      left:50%;
      right:50%;
      margin-left:-50vw;
      margin-right:-50vw;
      padding:0 !important;
      background:#ffffff;
      font-family:var(--zb-font);
      overflow:hidden;
      isolation:isolate;
    }

    .zb-hero{
      position:relative;
      width:100%;
      min-height:clamp(670px, 86vh, 900px);
      background:#ffffff;
      color:var(--zb-white);
      overflow:hidden;
      isolation:isolate;
    }

    .zb-hero__media{
      position:absolute;
      inset:0;
      z-index:0;
      overflow:hidden;
    }

    .zb-hero__img,
    .zb-hero__video{
      position:absolute;
      inset:0;
      width:100%;
      height:100%;
      object-fit:cover;
      object-position:center center;
      transform:scale(1.02);
      filter:saturate(1.02) contrast(1.03);
    }

    .zb-hero__video{
      opacity:0;
      transition:opacity .45s ease;
    }

    .zb-hero.is-video .zb-hero__video{ opacity:1; }
    .zb-hero.is-video .zb-hero__img{ opacity:0; }

    /* PATINA SCURA */
    .zb-hero__overlay{
      position:absolute;
      inset:0;
      z-index:1;
      background:
        radial-gradient(
          1200px 720px at 18% 44%,
          rgba(7,11,22,.14) 0%,
          rgba(7,11,22,.40) 48%,
          rgba(7,11,22,0) 100%
        ),
        linear-gradient(
          90deg,
          rgba(7,11,22,.62) 0%,
          rgba(7,11,22,.46) 24%,
          rgba(7,11,22,.18) 52%,
          rgba(7,11,22,.30) 78%,
          rgba(7,11,22,.46) 100%
        ),
        linear-gradient(
          180deg,
          rgba(7,11,22,.20) 0%,
          rgba(7,11,22,.14) 34%,
          rgba(7,11,22,.38) 100%
        );
    }

    .zb-hero__inner{
      position:relative;
      z-index:3;
      min-height:inherit;
      display:flex;
      justify-content:center;
      padding:
        clamp(154px, 18vh, 220px)
        0
        clamp(108px, 11.8vw, 170px);
    }

    .zb-hero__container{
      width:100%;
      max-width:var(--zb-max);
      margin:0 auto;
      padding:0 clamp(8px, .9vw, 14px);
      position:relative;
      display:flex;
      align-items:center;
    }

    .zb-hero__grid{
      width:100%;
      display:grid;
      grid-template-columns:minmax(0, 1.18fr) minmax(420px, .56fr);
      align-items:end;
      gap:clamp(34px, 4vw, 92px);
      min-height:clamp(420px, 59vh, 590px);
    }

    .zb-hero__left{
      display:flex;
      flex-direction:column;
      justify-content:flex-end;
      align-items:flex-start;
      min-width:0;
      padding-bottom:clamp(0px, .35vw, 4px);
      transform:translateX(-18px);
    }

    .zb-hero__right{
      display:flex;
      justify-content:flex-end;
      align-items:flex-end;
      padding-bottom:clamp(122px, 13.2vh, 182px);
    }

    .zb-hero__title{
      margin:0;
      max-width:900px;
      font-family:var(--zb-font-wide);
      font-size:clamp(31px, 3.85vw, 64px);
      font-weight:600;
      text-transform:uppercase;
      letter-spacing:-.028em;
      line-height:.97;
      color:var(--zb-title);
      text-shadow:0 2px 10px rgba(0,0,0,.16);
      text-wrap:balance;
    }

    .zb-hero__copy{
      margin:0;
      max-width:560px;
      font-family:var(--zb-font);
      font-size:clamp(17px, 1.16vw, 20px);
      line-height:1.6;
      color:rgba(255,255,255,.95);
      text-shadow:0 1px 2px rgba(0,0,0,.30);
    }

    .zb-hero__actions{
      display:flex;
      flex-wrap:nowrap;
      align-items:center;
      gap:14px;
      margin-top:30px;
    }

    .zb-btn{
      display:inline-flex;
      align-items:center;
      justify-content:space-between;
      gap:14px;
      min-height:54px;
      min-width:220px;
      padding:0 22px;
      border-radius:10px;
      text-decoration:none;
      font-family:var(--zb-font);
      font-weight:700;
      font-size:15px;
      letter-spacing:.01em;
      transition:
        transform .18s var(--zb-ease),
        background .18s var(--zb-ease),
        border-color .18s var(--zb-ease),
        color .18s var(--zb-ease),
        opacity .18s var(--zb-ease);
      user-select:none;
      white-space:nowrap;
      box-sizing:border-box;
      backdrop-filter:blur(4px);
      -webkit-backdrop-filter:blur(4px);
    }

    .zb-btn--primary{
      background:var(--zb-primary);
      border:1px solid rgba(255,255,255,.06);
      color:var(--zb-white);
      box-shadow:0 10px 24px rgba(0,0,0,.18);
    }

    .zb-btn--primary:hover{
      transform:translateY(-2px);
      background:var(--zb-primary-2);
    }

    .zb-btn--ghost{
      background:rgba(255,255,255,.04);
      border:1px solid rgba(255,255,255,.35);
      color:var(--zb-white);
    }

    .zb-btn--ghost:hover{
      transform:translateY(-2px);
      background:rgba(255,255,255,.08);
      border-color:rgba(255,255,255,.55);
    }

    .zb-btn__arrow{
      display:inline-block;
      font-size:19px;
      line-height:1;
      transform:translateY(-.5px);
      flex:0 0 auto;
    }

    .zb-btn:focus-visible{
      outline:3px solid rgba(177,185,223,.9);
      outline-offset:3px;
    }

    .zb-hero__swoosh{
      position:absolute;
      left:0;
      right:0;
      bottom:-1px;
      width:100%;
      height:clamp(150px, 18vw, 280px);
      z-index:2;
      display:block;
      pointer-events:none;
    }

    @media (max-width: 1400px){
      .zb-hero__title{
        font-size:clamp(31px, 4.1vw, 60px);
      }

      .zb-hero__grid{
        grid-template-columns:minmax(0, 1.16fr) minmax(380px, .58fr);
      }
    }

    @media (max-width: 1180px){
      .zb-hero__grid{
        grid-template-columns:minmax(0, 1.12fr) minmax(340px, .62fr);
        gap:30px;
      }

      .zb-hero__title{
        font-size:clamp(30px, 4.7vw, 52px);
        max-width:780px;
      }

      .zb-hero__copy{
        max-width:500px;
        font-size:clamp(16px, 1.2vw, 18px);
      }

      .zb-btn{
        min-width:205px;
      }
    }

    @media (max-width: 980px){
      .zb-hero{
        min-height:740px;
      }

      .zb-hero__inner{
        padding:
          clamp(126px, 14vh, 150px)
          0
          110px;
      }

      .zb-hero__container{
        padding:0 18px;
      }

      .zb-hero__grid{
        grid-template-columns:1fr;
        align-items:end;
        min-height:545px;
        gap:28px;
      }

      /* SOLO MOBILE: titolo > sottotitolo > bottoni */
      .zb-hero__left{
        display:contents;
        padding-bottom:0;
        transform:none;
      }

      .zb-hero__title{
        order:1;
        max-width:100%;
        font-size:clamp(32px, 5.8vw, 48px);
      }

      .zb-hero__right{
        order:2;
        display:flex;
        justify-content:flex-start;
        align-items:flex-start;
        padding-bottom:0;
        margin-top:0;
      }

      .zb-hero__actions{
        order:3;
        margin-top:26px;
      }

      .zb-hero__copy{
        max-width:640px;
        font-size:17px;
      }

      .zb-hero__swoosh{
        height:190px;
      }
    }

    @media (max-width: 640px){
      .zb-hero{
        min-height:710px;
      }

      .zb-hero__inner{
        padding:138px 0 96px;
      }

      .zb-hero__container{
        padding:0 16px;
      }

      .zb-hero__grid{
        min-height:520px;
      }

      .zb-hero__title{
        font-size:clamp(29px, 7.5vw, 39px);
        line-height:1.01;
      }

      .zb-hero__copy{
        font-size:15px;
        line-height:1.65;
        max-width:100%;
      }

      .zb-hero__actions{
        width:100%;
        flex-wrap:wrap;
        gap:12px;
      }

      .zb-btn{
        min-height:50px;
        min-width:0;
        width:100%;
        padding:0 18px;
        font-size:14px;
      }

      .zb-hero__swoosh{
        height:130px;
      }
    }

    @media (prefers-reduced-motion: reduce){
      .zb-hero__video{ display:none !important; }
      .zb-hero__img{ opacity:1 !important; }
      .zb-hero__video,
      .zb-btn{ transition:none !important; }
    }

/* ---- section ---- */

:root{
    --zb-primary:#274F9E;
    --zb-primary-2:#355fb3;
    --zb-soft:#B1B9DF;
    --zb-navy:#192654;
    --zb-white:#ffffff;
    --zb-ink:#3C3C3B;
    --zb-muted:#7f7f7f;
    --zb-border:rgba(25,38,84,.08);
    --zb-max:1180px;
    --zb-pad-x:16px;
    --zb-font:"HK Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    --zb-font-wide:"HK Grotesk Wide","HK Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  }

  .zb-realizziamo{
    position:relative;
    background:#fff;
    padding:clamp(56px, 7vw, 96px) 0 28px;
    overflow:hidden;
  }

  .zb-realizziamo::before,
  .zb-realizziamo::after{
    content:none !important;
  }

  .zb-realizziamo,
  .zb-realizziamo *{
    box-sizing:border-box;
  }

  .zb-realizziamo__container{
    position:relative;
    max-width:var(--zb-max);
    margin:0 auto;
    padding:0 var(--zb-pad-x);
  }

  .zb-realizziamo__head{
    text-align:center;
    margin-bottom:clamp(20px, 2.6vw, 30px);
  }

  .zb-realizziamo__title{
    margin:0 0 14px 0;
    color:var(--zb-navy);
    font-family:var(--zb-font-wide);
    font-size:clamp(41px, 4.6vw, 60px);
    line-height:1.01;
    letter-spacing:-.024em;
    font-weight:600;
  }

  .zb-realizziamo__subtitle{
    margin:0 auto;
    max-width:none;
    color:var(--zb-ink);
    font-family:var(--zb-font);
    font-size:clamp(18px, 1.7vw, 21px);
    line-height:1.56;
    white-space:nowrap;
  }

  .zb-realizziamo__fullbleed{
    position:relative;
    width:100vw;
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
  }

  .zb-realizziamo__viewport{
    --per-view:3;
    --card-w:calc(100vw / var(--per-view));
    position:relative;
    width:100%;
    overflow:hidden;
    padding:0;
    cursor:grab;
    user-select:none;
    touch-action:pan-y;
  }

  .zb-realizziamo__viewport.is-dragging{
    cursor:grabbing;
  }

  .zb-realizziamo__track{
    list-style:none;
    margin:0;
    padding:0;
    display:flex;
    gap:0;
    will-change:transform;
    transition:transform .58s cubic-bezier(.22,.61,.36,1);
  }

  .zb-realizziamo__item{
    flex:0 0 var(--card-w);
    min-width:var(--card-w);
  }

  .zb-realizziamo__card{
    position:relative;
    width:100%;
    aspect-ratio:1 / 0.68;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0;
    overflow:hidden;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none !important;
  }

  .zb-realizziamo__item + .zb-realizziamo__item .zb-realizziamo__card{
    box-shadow:none !important;
  }

  .zb-realizziamo__img{
    display:block;
    width:98%;
    height:98%;
    object-fit:contain;
    pointer-events:none;
    filter:none !important;
    box-shadow:none !important;
    transform:translateZ(0);
  }

  .zb-realizziamo__controls{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    padding:18px 0 0;
  }

  .zb-mobile-break{
    display:none;
  }

  .zb-realizziamo__nav{
    width:52px;
    height:52px;
    border-radius:999px;
    border:1px solid rgba(25,38,84,.12);
    background:#fff;
    color:var(--zb-navy);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    font-size:30px;
    line-height:1;
    box-shadow:0 10px 24px rgba(25,38,84,.08);
    transition:
      transform .2s ease,
      background .2s ease,
      color .2s ease,
      border-color .2s ease,
      box-shadow .2s ease;
  }

  .zb-realizziamo__nav:hover{
    transform:translateY(-2px);
    background:var(--zb-navy);
    color:#fff;
    border-color:var(--zb-navy);
    box-shadow:0 14px 30px rgba(25,38,84,.14);
  }

  .zb-realizziamo__nav:focus-visible{
    outline:3px solid rgba(177,185,223,.85);
    outline-offset:2px;
  }

  @media (max-width: 980px){
    .zb-realizziamo__viewport{
      --per-view:2;
    }

    .zb-realizziamo__card{
      aspect-ratio:1 / 0.78;
    }

    .zb-realizziamo__img{
      width:96%;
      height:96%;
    }
  }

  @media (max-width: 640px){
    .zb-mobile-break{
      display:block;
    }

    .zb-realizziamo{
      padding:44px 0 10px;
    }

    .zb-realizziamo__title{
      font-size:clamp(34px, 6.6vw, 46px);
    }

    .zb-realizziamo__head{
      margin-bottom:-8px;
    }

    .zb-realizziamo__subtitle{
      font-size:clamp(16px, 2.2vw, 18px);
      max-width:none;
      line-height:1.42;
      white-space:normal;
      text-wrap:pretty;
    }

    .zb-realizziamo__controls{
      padding-top:0;
      margin-top:-18px;
      gap:10px;
    }

    .zb-realizziamo__nav{
      width:46px;
      height:46px;
      font-size:27px;
    }
  }

  @media (max-width: 520px){
    .zb-realizziamo__viewport{
      --per-view:1;
    }

    .zb-realizziamo__card{
      aspect-ratio:1 / 0.92;
    }

    .zb-realizziamo__img{
      width:94%;
      height:94%;
    }
  }

  @media (prefers-reduced-motion: reduce){
    .zb-realizziamo__track,
    .zb-realizziamo__nav{
      transition:none !important;
    }
  }

/* ---- section ---- */

.zb-partner{
    --zb-navy:#192654;
    --zb-blue:#274F9E;
    --zb-soft:#B1B9DF;
    --zb-ink:#3C3C3B;
    --zb-muted:#7f7f7f;
    --zb-max:1360px;
    --zb-page-pad:18px;
    --zb-font:"HK Grotesk", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    --zb-font-wide:"HK Grotesk Wide","HK Grotesk", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;

    position:relative;
    padding:clamp(58px, 6vw, 96px) var(--zb-page-pad);
    background:#ffffff;
    overflow:hidden;
  }

  .zb-partner::before,
  .zb-partner::after{
    content:none !important;
  }

  .zb-partner *,
  .zb-partner *::before,
  .zb-partner *::after{
    box-sizing:border-box;
  }

  .zb-partner__container{
    max-width:var(--zb-max);
    margin:0 auto;
    display:grid;
    grid-template-columns:1.04fr .96fr;
    gap:clamp(34px, 4.2vw, 76px);
    align-items:center;
    position:relative;
  }

  .zb-partner__left{
    min-width:0;
    position:relative;
    z-index:2;
  }

  .zb-h2{
    margin:0 0 16px -14px;
    font-family:var(--zb-font-wide);
    font-weight:600;
    color:var(--zb-navy);
    letter-spacing:-.024em;
    font-size:clamp(41px, 4.6vw, 60px);
    line-height:1.01;
    max-width:780px;
  }

  .zb-h2__l1,
  .zb-h2__l2,
  .zb-h2__l3{
    display:inline-block;
    white-space:nowrap;
  }

  .zb-lead{
    margin:0 0 24px -14px;
    font-family:var(--zb-font);
    color:var(--zb-ink);
    font-size:clamp(18px, 1.7vw, 21px);
    line-height:1.56;
    max-width:760px;
  }

  .zb-lead strong{
    font-weight:800;
    color:var(--zb-navy);
  }

  .zb-lead__l1,
  .zb-lead__l2,
  .zb-lead__l3{
    display:inline-block;
    white-space:nowrap;
  }

  .zb-features{
    margin:0 0 0 -14px;
    padding:0;
    list-style:none;
    display:grid;
    gap:12px;
    max-width:532px;
  }

  .zb-feature{
    display:grid;
    grid-template-columns:42px 1fr;
    gap:14px;
    align-items:flex-start;
    background:#ffffff;
    border:1px solid rgba(25,38,84,.10);
    border-radius:18px;
    padding:14px 16px;
    box-shadow:0 12px 28px rgba(25,38,84,.06);
  }

  .zb-ico{
    width:42px;
    height:42px;
    border-radius:14px;
    display:grid;
    place-items:center;
    color:var(--zb-navy);
    background:rgba(177,185,223,.24);
    border:1px solid rgba(177,185,223,.42);
    flex:0 0 auto;
  }

  .zb-ico svg{
    width:22px;
    height:22px;
  }

  .zb-feature__title{
    margin:0 0 3px 0;
    font-family:var(--zb-font);
    font-weight:800;
    color:var(--zb-navy);
    font-size:16px;
  }

  .zb-feature__desc{
    font-family:var(--zb-font);
    color:var(--zb-muted);
    font-size:14.5px;
    line-height:1.52;
  }

  .zb-partner__right{
    margin:0;
    display:flex;
    justify-content:flex-end;
    align-items:center;
    overflow:visible;
  }

  .zb-partner__media{
    position:relative;
    width:min(900px, 46vw);
    aspect-ratio:1.56 / 1;
    transform:translateX(max(0px, calc((100vw - var(--zb-max)) / 2 - var(--zb-page-pad) - 34px)));
  }

  .zb-partner__media::after{
    content:"";
    position:absolute;
    left:24px;
    right:14px;
    bottom:-14px;
    height:20px;
    background:rgba(25,38,84,.08);
    border-radius:999px;
    filter:blur(10px);
    pointer-events:none;
  }

  .zb-partner__frame{
    position:absolute;
    inset:0;
    overflow:hidden;
    background:#f7f7f7;
    border-radius:220px 0 220px 0 / 170px 0 170px 0;
    box-shadow:
      0 18px 38px rgba(25,38,84,.10),
      inset 0 0 0 1px rgba(25,38,84,.06);
  }

  .zb-partner__img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    object-position:44% center;
    transform:translateZ(0) scale(1.03);
  }

  @media (max-width: 1180px){
    .zb-partner__container{
      grid-template-columns:1fr 1fr;
      gap:30px;
    }

    .zb-h2{
      font-size:clamp(36px, 4.2vw, 52px);
    }

    .zb-lead{
      font-size:clamp(17px, 1.7vw, 19px);
    }

    .zb-partner__media{
      width:min(780px, 45vw);
      transform:translateX(max(0px, calc((100vw - var(--zb-max)) / 2 - var(--zb-page-pad) - 16px)));
    }

    .zb-partner__frame{
      border-radius:180px 0 180px 0 / 144px 0 144px 0;
    }
  }

  @media (max-width: 980px){
    .zb-partner{
      padding:46px 18px 72px;
    }

    .zb-partner__container{
      grid-template-columns:1fr;
      gap:28px;
    }

    .zb-h2{
      margin-left:0;
      font-size:clamp(34px, 6.6vw, 46px);
      max-width:100%;
    }

    .zb-lead{
      margin-left:0;
      font-size:clamp(16px, 2.2vw, 18px);
      max-width:100%;
    }

    .zb-h2__l1,
    .zb-h2__l2,
    .zb-h2__l3,
    .zb-lead__l1,
    .zb-lead__l2,
    .zb-lead__l3{
      white-space:normal;
    }

    .zb-features{
      margin-left:0;
      max-width:100%;
    }

    .zb-partner__right{
      order:2;
      justify-content:flex-start;
      margin-top:10px;
    }

    .zb-partner__media{
      width:min(820px, 100%);
      aspect-ratio:1.44 / 1;
      transform:none;
    }

    .zb-partner__frame{
      border-radius:160px 0 160px 0 / 128px 0 128px 0;
    }

    .zb-partner__media::after{
      left:18px;
      right:10px;
      bottom:-10px;
    }

    .zb-partner__img{
      object-position:46% center;
    }
  }

  @media (max-width: 640px){
    .zb-feature{
      grid-template-columns:38px 1fr;
      padding:13px 14px;
    }

    .zb-ico{
      width:38px;
      height:38px;
      border-radius:13px;
    }

    .zb-feature__title{
      font-size:15px;
    }

    .zb-feature__desc{
      font-size:14px;
    }

    .zb-partner__media{
      aspect-ratio:1.24 / 1;
    }

    .zb-partner__frame{
      border-radius:108px 0 108px 0 / 92px 0 92px 0;
    }

    .zb-partner__img{
      object-position:48% center;
    }
  }

/* ---- section ---- */

.zb-pm-section,
    .zb-pm-section *,
    .zb-pm-section *::before,
    .zb-pm-section *::after{
      box-sizing:border-box;
    }

    .zb-pm-section{
      --zb-primary:#274F9E;
      --zb-primary-2:#355fb3;
      --zb-soft:#B1B9DF;
      --zb-navy:#192654;
      --zb-white:#ffffff;
      --zb-ink:#3C3C3B;
      --zb-muted:#7f7f7f;
      --zb-border:rgba(25,38,84,.10);
      --zb-max:1360px;

      --zb-font:"HK Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
      --zb-font-wide:"HK Grotesk Wide","HK Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

      position:relative;
      background:#fff;
      color:var(--zb-ink);
      font-family:var(--zb-font);
      padding:0;
      overflow:visible;
    }

    /* =========================
       TOP BAND
    ========================= */
    .zb-pm-intro{
      position:relative;
      min-height:clamp(180px, 20vw, 240px);
      padding:clamp(34px, 4.5vw, 56px) 0;
      background:linear-gradient(135deg, rgba(25,38,84,1), rgba(25,38,84,.96));
      overflow:visible;
    }

    .zb-pm-intro::before{
      content:"";
      position:absolute;
      inset:-240px auto auto -240px;
      width:560px;
      height:560px;
      background:radial-gradient(circle at 40% 40%, rgba(39,79,158,.18), rgba(39,79,158,0) 62%);
      pointer-events:none;
      filter:blur(2px);
    }

    .zb-pm-intro::after{
      content:none !important;
    }

    .zb-pm-intro__wrap{
      max-width:var(--zb-max);
      margin:0 auto;
      padding:0 18px;
      position:relative;
      min-height:inherit;
      display:flex;
      align-items:center;
    }

    .zb-pm-intro__copy{
      position:relative;
      z-index:3;
      max-width:780px;
      width:100%;
      transform:translateX(-10px);
      padding-right:0;
    }

    .zb-pm-intro__title{
      margin:0 0 16px 0;
      font-family:var(--zb-font-wide);
      font-weight:600;
      color:#fff;
      letter-spacing:-.024em;
      font-size:clamp(41px, 4.6vw, 60px);
      line-height:1.01;
      white-space:nowrap;
    }

    .zb-pm-intro__text{
      margin:0;
      font-family:var(--zb-font);
      color:rgba(255,255,255,.88);
      font-size:clamp(18px, 1.7vw, 21px);
      line-height:1.56;
      max-width:760px;
    }

    /* =========================
       SLIDER
    ========================= */
    .zb-machines-editorial{
      position:relative;
      width:100%;
      background:#fff;
      overflow:hidden;
    }

    .zb-machines-editorial__viewport{
      position:relative;
      overflow:hidden;
      width:100%;
    }

    .zb-machines-editorial__track{
      display:flex;
      width:100%;
      transition:transform .7s cubic-bezier(.22,.61,.36,1);
      will-change:transform;
    }

    .zb-me-slide{
      flex:0 0 100%;
      min-width:100%;
      display:grid;
      grid-template-columns:1.02fr .98fr;
      min-height:710px;
      background:#fff;
    }

    .zb-me-slide__media{
      position:relative;
      min-height:710px;
      overflow:hidden;
      isolation:isolate;
    }

    .zb-me-slide__media img{
      position:absolute;
      inset:0;
      width:100%;
      height:100%;
      object-fit:cover;
      display:block;
      transform:scale(1.01);
    }

    .zb-me-slide__overlay{
      position:absolute;
      inset:0;
      background:
        linear-gradient(90deg, rgba(0,0,0,.44) 0%, rgba(0,0,0,.22) 34%, rgba(0,0,0,.08) 100%),
        linear-gradient(180deg, rgba(0,0,0,.10), rgba(0,0,0,.26));
      z-index:1;
    }

    .zb-me-slide__mediaText{
      position:absolute;
      left:clamp(28px, 4vw, 58px);
      right:clamp(28px, 4vw, 58px);
      bottom:clamp(34px, 5vw, 64px);
      z-index:2;
    }

    .zb-me-slide__bigTitle{
      margin:0;
      color:#fff;
      font-family:var(--zb-font-wide);
      font-size:clamp(42px, 4.8vw, 74px);
      line-height:.98;
      letter-spacing:-.04em;
      font-weight:600;
      text-transform:uppercase;
      max-width:12ch;
      text-wrap:balance;
    }

    .zb-me-slide__panel{
      display:flex;
      align-items:center;
      background:#fff;
      min-height:710px;
    }

    .zb-me-slide__panelInner{
      width:100%;
      max-width:760px;
      padding:clamp(66px, 6.6vw, 104px);
    }

    .zb-me-slide__title{
      margin:0 0 24px 0;
      font-family:var(--zb-font-wide);
      font-weight:600;
      color:var(--zb-navy);
      letter-spacing:-.024em;
      font-size:clamp(41px, 4.6vw, 60px);
      line-height:.97;
      max-width:none;
    }

    .zb-me-slide__titleLine{
      display:block;
    }

    .zb-me-slide__titleLine--nowrap{
      white-space:nowrap;
    }

    .zb-me-slide__lead{
      margin:0;
      font-family:var(--zb-font);
      color:var(--zb-ink);
      font-size:clamp(18px, 1.7vw, 21px);
      line-height:1.56;
      max-width:34ch;
    }

    /* CONTROLLI */
    .zb-machines-editorial__bottomControls{
      position:absolute;
      left:50%;
      bottom:46px;
      transform:translateX(-50%);
      z-index:6;
      display:flex;
      align-items:center;
      gap:10px;
      pointer-events:none;
    }

    .zb-machines-editorial__nav{
      width:42px;
      height:42px;
      border-radius:999px;
      border:1px solid rgba(25,38,84,.14);
      background:#fff;
      color:var(--zb-navy);
      display:inline-flex;
      align-items:center;
      justify-content:center;
      cursor:pointer;
      font-size:24px;
      line-height:1;
      box-shadow:0 8px 18px rgba(25,38,84,.10);
      transition:
        transform .2s ease,
        background .2s ease,
        color .2s ease,
        border-color .2s ease;
      pointer-events:auto;
    }

    .zb-machines-editorial__nav:hover{
      transform:translateY(-2px);
      background:var(--zb-navy);
      color:#fff;
      border-color:var(--zb-navy);
    }

    .zb-machines-editorial__dots{
      display:flex;
      align-items:center;
      gap:8px;
      padding:0 2px;
      pointer-events:auto;
    }

    .zb-machines-editorial__dot{
      width:9px;
      height:9px;
      border:0;
      border-radius:999px;
      background:rgba(255,255,255,.82);
      cursor:pointer;
      padding:0;
      transition:
        width .24s ease,
        background .24s ease,
        transform .24s ease,
        opacity .24s ease;
      box-shadow:0 3px 8px rgba(0,0,0,.10);
    }

    .zb-machines-editorial__dot:hover{
      transform:translateY(-1px);
    }

    .zb-machines-editorial__dot.is-active{
      width:24px;
      background:linear-gradient(135deg, var(--zb-primary), var(--zb-primary-2));
    }

    .zb-machines-editorial__nav:focus-visible,
    .zb-machines-editorial__dot:focus-visible{
      outline:3px solid rgba(177,185,223,.9);
      outline-offset:3px;
    }

    @media (max-width: 1180px){
      .zb-pm-intro__copy{
        transform:none;
        padding-right:0;
      }
    }

    @media (max-width: 980px){
      .zb-pm-intro{
        min-height:auto;
        padding:40px 0 44px;
        overflow:hidden;
      }

      .zb-pm-intro__wrap{
        display:block;
      }

      .zb-pm-intro__copy{
        justify-self:start;
        text-align:left;
        max-width:100%;
        transform:none;
        padding-right:0;
      }

      .zb-pm-intro__title{
        white-space:normal;
        font-size:clamp(34px, 6.6vw, 46px);
      }

      .zb-pm-intro__text{
        font-size:clamp(16px, 2.2vw, 18px);
        max-width:100%;
      }

      .zb-me-slide{
        grid-template-columns:1fr;
      }

      .zb-me-slide__media,
      .zb-me-slide__panel{
        min-height:auto;
      }

      .zb-me-slide__media{
        min-height:440px;
      }

      .zb-me-slide__panelInner{
        max-width:none;
      }

      .zb-me-slide__title,
      .zb-me-slide__lead{
        max-width:none;
      }

      .zb-me-slide__titleLine--nowrap{
        white-space:normal;
      }

      .zb-machines-editorial__bottomControls{
        bottom:34px;
      }
    }

    @media (max-width: 640px){
      .zb-pm-intro{
        padding:34px 0 36px;
      }

      .zb-pm-intro__wrap{
        padding:0 16px;
      }

      .zb-pm-intro__title{
        font-size:clamp(30px, 8.8vw, 42px);
      }

    .zb-pm-intro__text{
      font-size:16px;
    }

    .zb-me-slide{
      grid-template-columns:1fr;
      grid-template-rows:352px 402px;
      min-height:754px;
    }

    .zb-me-slide__media{
      min-height:352px;
      height:352px;
    }

      .zb-me-slide__mediaText{
        left:22px;
        right:22px;
        bottom:22px;
      }

      .zb-me-slide__bigTitle{
        font-size:clamp(34px, 10vw, 48px);
        max-width:10ch;
      }

    .zb-me-slide__panel{
      min-height:402px;
      height:402px;
      align-items:flex-start;
    }

    .zb-me-slide__panelInner{
      min-height:100%;
      padding:34px 22px 88px;
    }

      .zb-me-slide__title{
        font-size:clamp(34px, 8vw, 46px);
        line-height:1.02;
      }

      .zb-me-slide__lead{
        font-size:16px;
      }

      .zb-machines-editorial__bottomControls{
        bottom:24px;
        gap:8px;
      }

      .zb-machines-editorial__nav{
        width:38px;
        height:38px;
        font-size:22px;
      }

      .zb-machines-editorial__dot{
        width:8px;
        height:8px;
      }

      .zb-machines-editorial__dot.is-active{
        width:20px;
      }
    }

    @media (prefers-reduced-motion: reduce){
      .zb-machines-editorial__track,
      .zb-machines-editorial__nav,
      .zb-machines-editorial__dot{
        transition:none !important;
      }
    }

/* ---- section ---- */

.zb-sv5,
    .zb-sv5 *,
    .zb-sv5 *::before,
    .zb-sv5 *::after{
      box-sizing:border-box;
    }

    .zb-sv5{
      --zb5-navy:#192654;
      --zb5-accent:#274F9E;
      --zb5-soft:#B1B9DF;
      --zb5-ink:#3C3C3B;
      --zb5-muted:#7f7f7f;
      --zb5-white:#ffffff;
      --zb5-gray:#e5e7eb;
      --zb5-max:1360px;

      --zb5-font:"HK Grotesk", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
      --zb5-font-wide:"HK Grotesk Wide","HK Grotesk", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;

      position:relative;
      background:#fff;
      color:var(--zb5-ink);
      font-family:var(--zb5-font);
      padding:0;
      overflow:hidden;
    }

    .zb-sv5__wrap{
      max-width:var(--zb5-max);
      margin:0 auto;
      padding:0 18px;
      position:relative;
    }

    .zb-sv5__top{
      position:relative;
      min-height:clamp(180px, 20vw, 240px);
      padding:clamp(34px, 4.5vw, 56px) 0;
      background:linear-gradient(135deg, rgba(25,38,84,1), rgba(25,38,84,.96));
      overflow:hidden;
      isolation:isolate;
    }

    .zb-sv5__top::before{
      content:"";
      position:absolute;
      inset:-240px auto auto -240px;
      width:560px;
      height:560px;
      background:radial-gradient(circle at 40% 40%, rgba(39,79,158,.18), rgba(39,79,158,0) 62%);
      pointer-events:none;
      filter:blur(2px);
      z-index:0;
    }

    .zb-sv5__top::after{
      content:none !important;
    }

    .zb-sv5__wrap--top{
      min-height:inherit;
      display:grid;
      grid-template-columns:1fr minmax(420px, 780px);
      align-items:center;
      position:relative;
      z-index:2;
    }

    .zb-sv5__topText{
      grid-column:2;
      justify-self:end;
      text-align:right;
      max-width:780px;
      position:relative;
      z-index:2;
    }

    .zb-sv5__h2{
      margin:0 0 16px 0;
      font-family:var(--zb5-font-wide);
      font-weight:600;
      color:#fff;
      letter-spacing:-.024em;
      font-size:clamp(41px, 4.6vw, 60px);
      line-height:1.01;
    }

    .zb-sv5__sub{
      margin:0 0 0 auto;
      font-family:var(--zb5-font);
      color:rgba(255,255,255,.88);
      font-size:clamp(18px, 1.7vw, 21px);
      line-height:1.56;
      max-width:860px;
    }

    .zb-sv5__bleed{
      position:relative;
      width:100vw;
      max-width:100vw;
      margin-left:calc(50% - 50vw);
      margin-right:calc(50% - 50vw);
      overflow:hidden;
    }

    .zb-sv5__cards{
      display:flex;
      gap:0;
      align-items:stretch;
      min-height:clamp(430px, 44vw, 590px);
      width:100%;
      background:#0f1838;
      border-top:1px solid rgba(255,255,255,.10);
      border-bottom:1px solid rgba(255,255,255,.10);
    }

    .zb-sv5__card{
      position:relative;
      min-width:0;
      min-height:inherit;
      overflow:hidden;
      isolation:isolate;
      background:#0f1838;
      border-right:1px solid rgba(255,255,255,.12);
      cursor:pointer;
      flex:1 1 0;
      contain:layout paint;
      transition:
        flex-grow .56s cubic-bezier(.22,.61,.36,1),
        opacity .22s ease;
    }

    .zb-sv5__card:last-child{
      border-right:0;
    }

    .zb-sv5__cards.is-hovering[data-active="1"] .zb-sv5__card[data-card="1"],
    .zb-sv5__cards.is-hovering[data-active="2"] .zb-sv5__card[data-card="2"],
    .zb-sv5__cards.is-hovering[data-active="3"] .zb-sv5__card[data-card="3"]{
      flex-grow:1.34;
    }

    .zb-sv5__cards.is-hovering[data-active="1"] .zb-sv5__card[data-card="2"],
    .zb-sv5__cards.is-hovering[data-active="1"] .zb-sv5__card[data-card="3"],
    .zb-sv5__cards.is-hovering[data-active="2"] .zb-sv5__card[data-card="1"],
    .zb-sv5__cards.is-hovering[data-active="2"] .zb-sv5__card[data-card="3"],
    .zb-sv5__cards.is-hovering[data-active="3"] .zb-sv5__card[data-card="1"],
    .zb-sv5__cards.is-hovering[data-active="3"] .zb-sv5__card[data-card="2"]{
      flex-grow:.83;
    }

    .zb-sv5__card::after{
      content:"";
      position:absolute;
      inset:0;
      background:rgba(8,12,22,.18);
      opacity:0;
      z-index:2;
      pointer-events:none;
      transition:opacity .28s ease;
    }

    .zb-sv5__cards.is-hovering .zb-sv5__card:not(.is-active)::after{
      opacity:1;
    }

    .zb-sv5__card:focus-visible{
      outline:3px solid rgba(177,185,223,.92);
      outline-offset:-3px;
    }

    .zb-sv5__hint{
      display:none;
      margin:10px 0 0;
      color:rgba(255,255,255,.82);
      font-family:var(--zb-font);
      font-size:12px;
      font-weight:600;
      letter-spacing:.08em;
      text-transform:uppercase;
    }

    .zb-sv5__media{
      position:absolute;
      inset:0;
      z-index:0;
      overflow:hidden;
      background:#0f1838;
    }

    .zb-sv5__video{
      position:absolute;
      inset:0;
      width:100%;
      height:100%;
      object-fit:cover;
      object-position:center center;
      display:block;
      opacity:.84;
      transform:scale(1.015) translateZ(0);
      transition:
        transform .82s cubic-bezier(.19,1,.22,1),
        opacity .5s ease;
      backface-visibility:hidden;
      pointer-events:none;
    }

    .zb-sv5__video{
      z-index:0;
    }

    .zb-sv5__card.is-active .zb-sv5__video{
      transform:scale(1.04) translateZ(0);
      opacity:1;
    }

    .zb-sv5__card[data-card="3"] .zb-sv5__overlay{
      background:
        linear-gradient(180deg,
          rgba(15,24,56,.02) 0%,
          rgba(15,24,56,.08) 40%,
          rgba(15,24,56,.62) 76%,
          rgba(15,24,56,.92) 100%),
        linear-gradient(90deg,
          rgba(15,24,56,.05) 0%,
          rgba(15,24,56,0) 50%,
          rgba(15,24,56,.08) 100%);
    }

    .zb-sv5__overlay{
      position:absolute;
      inset:0;
      z-index:1;
      background:
        linear-gradient(180deg,
          rgba(8,12,22,.14) 0%,
          rgba(8,12,22,.14) 24%,
          rgba(8,12,22,.42) 56%,
          rgba(8,12,22,.88) 100%),
        linear-gradient(90deg,
          rgba(8,12,22,.28) 0%,
          rgba(8,12,22,.10) 50%,
          rgba(8,12,22,.32) 100%);
      pointer-events:none;
    }

    .zb-sv5__content{
      position:relative;
      z-index:3;
      min-height:inherit;
      display:flex;
      align-items:flex-end;
      padding:24px;
    }

    .zb-sv5__inner{
      width:100%;
    }

    .zb-sv5__cardTitle{
      margin:0 0 10px;
      font-family:var(--zb5-font-wide);
      font-size:clamp(28px, 2.35vw, 40px);
      line-height:1.04;
      letter-spacing:-.024em;
      font-weight:600;
      color:#fff;
      max-width:16ch;
      text-wrap:balance;
    }

    .zb-sv5__excerpt{
      margin:0;
      max-width:38ch;
      font-size:clamp(16px, 1.12vw, 19px);
      line-height:1.5;
      color:rgba(255,255,255,.95);
      font-style:normal;
      font-weight:400;
    }

    .zb-sv5__reveal{
      overflow:hidden;
      max-height:0;
      opacity:0;
      transform:translateY(8px);
      margin-top:0;
      transition:
        max-height .72s cubic-bezier(.19,1,.22,1),
        opacity .42s ease,
        transform .72s cubic-bezier(.19,1,.22,1),
        margin-top .72s cubic-bezier(.19,1,.22,1);
    }

    .zb-sv5__card.is-active .zb-sv5__reveal{
      max-height:280px;
      opacity:1;
      transform:translateY(0);
      margin-top:16px;
    }

    .zb-sv5__detail{
      margin:0 0 14px;
      max-width:44ch;
      font-size:clamp(15px, 1.05vw, 17px);
      line-height:1.68;
      color:rgba(255,255,255,.90);
    }

    .zb-sv5__points{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin:0;
      padding:0;
      list-style:none;
    }

    .zb-sv5__points li{
      display:inline-flex;
      align-items:center;
      min-height:34px;
      padding:8px 12px;
      background:rgba(255,255,255,.10);
      border:1px solid rgba(255,255,255,.16);
      color:#fff;
      font-size:13px;
      line-height:1;
      font-weight:600;
    }

    @media (max-width: 1180px){
      .zb-sv5__wrap--top{
        grid-template-columns:1fr minmax(380px, 700px);
      }

      .zb-sv5__h2{
        font-size:clamp(36px, 4.2vw, 52px);
      }

      .zb-sv5__sub{
        font-size:clamp(17px, 1.7vw, 19px);
      }

      .zb-sv5__cards{
        min-height:520px;
      }

      .zb-sv5__content{
        padding:20px;
      }

      .zb-sv5__cardTitle{
        font-size:clamp(24px, 2.2vw, 32px);
      }
    }

    @media (max-width: 980px){
      a,
      button,
      [role="button"],
      [tabindex]{
        -webkit-tap-highlight-color:transparent;
      }

      .zb-sv5__top{
        min-height:auto;
        padding:40px 0 44px;
      }

      .zb-sv5__wrap--top{
        grid-template-columns:1fr;
      }

      .zb-sv5__topText{
        grid-column:auto;
        justify-self:start;
        text-align:left;
        max-width:100%;
      }

      .zb-sv5__h2{
        font-size:clamp(34px, 6.6vw, 46px);
      }

      .zb-sv5__sub{
        font-size:clamp(16px, 2.2vw, 18px);
        max-width:100%;
        margin:0;
      }

      .zb-sv5__cards{
        display:grid;
        grid-template-columns:1fr !important;
        min-height:0;
      }

      .zb-sv5__card{
        min-height:360px;
        border-right:0;
        border-bottom:1px solid rgba(255,255,255,.12);
        flex:none;
      }

      .zb-sv5__card:last-child{
        border-bottom:0;
      }

      .zb-sv5__cardTitle{
        max-width:none;
        font-size:clamp(24px, 4.8vw, 30px);
      }

      .zb-sv5__excerpt{
        font-size:17px;
      }

      .zb-sv5__detail{
        font-size:16px;
      }

      .zb-sv5__points li{
        font-size:13px;
      }

    }

    @media (max-width: 640px){
      .zb-sv5__wrap{
        padding:0 16px;
      }

      .zb-sv5__top{
        padding:34px 0 36px;
      }

      .zb-sv5__h2{
        font-size:clamp(30px, 8.8vw, 42px);
      }

      .zb-sv5__sub{
        font-size:16px;
      }

    .zb-sv5__card{
      min-height:330px;
      transition:min-height .72s cubic-bezier(.19,1,.22,1);
    }

    .zb-sv5__card.is-active{
      min-height:458px;
    }

      .zb-sv5__card:focus-visible{
        outline:none;
      }

      .zb-sv5__content{
        padding:18px 16px;
      }

      .zb-sv5__cardTitle{
        font-size:clamp(22px, 7vw, 28px);
      }

      .zb-sv5__excerpt{
        font-size:15px;
      }

    .zb-sv5__detail{
      font-size:15px;
    }

    .zb-sv5__card.is-active .zb-sv5__reveal{
      max-height:360px;
      margin-top:18px;
    }

      .zb-sv5__hint{
        display:block;
      }

      .zb-sv5__points{
        gap:8px;
      }

      .zb-sv5__points li{
        font-size:12px;
        min-height:31px;
      }

    }

    @media (prefers-reduced-motion: reduce){
      .zb-sv5__card,
      .zb-sv5__video,
      .zb-sv5__reveal,
      .zb-sv5__card::after{
        transition:none !important;
      }
    }

/* ---- section ---- */

.zb-metodo-section,
    .zb-metodo-section *,
    .zb-metodo-section *::before,
    .zb-metodo-section *::after{
      box-sizing:border-box;
    }

    .zb-metodo-section{
      --zb-m-blue:#274F9E;
      --zb-m-blue-2:#355fb3;
      --zb-m-active:#192654;
      --zb-m-navy:#192654;
      --zb-m-ink:#3C3C3B;
      --zb-m-border:rgba(25,38,84,.12);
      --zb-m-border-strong:rgba(255,255,255,.14);
      --zb-m-card-muted:#DADADA;
      --zb-m-card-active:#192654;
      --zb-m-max:1360px;
      --zb-m-ease:cubic-bezier(.22,.61,.36,1);

      --zb-m-font:"HK Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
      --zb-m-font-wide:"HK Grotesk Wide","HK Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

      position:relative;
      background:#ffffff;
      color:var(--zb-m-ink);
      font-family:var(--zb-m-font);
      padding:clamp(56px, 6vw, 82px) 0 clamp(34px, 4.2vw, 56px);
      overflow:hidden;
    }

    .zb-metodo-wrap{
      max-width:var(--zb-m-max);
      margin:0 auto;
      padding:0 18px;
    }

    .zb-metodo-head{
      display:grid;
      grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
      gap:24px;
      align-items:end;
      margin-bottom:38px;
    }

    .zb-metodo-head__right{
      padding-left:52px;
    }

    .zb-metodo-title{
      margin:0;
      color:var(--zb-m-navy);
      font-family:var(--zb-m-font-wide);
      font-size:clamp(40px, 4.8vw, 64px);
      line-height:.98;
      letter-spacing:-.04em;
      font-weight:600;
    }

    .zb-metodo-title span{
      display:block;
    }

    .zb-metodo-text{
      margin:0;
      max-width:46ch;
      color:var(--zb-m-ink);
      font-size:clamp(17px, 1.45vw, 20px);
      line-height:1.7;
    }

    .zb-metodo-list{
      display:grid;
      gap:18px;
      width:calc(100vw - 88px);
      margin-left:calc(50% - 50vw + 44px);
      margin-right:calc(50% - 50vw + 44px);
    }

    .zb-metodo-card{
      display:grid;
      grid-template-columns:172px minmax(0, 1.62fr) minmax(210px, .60fr);
      width:100%;
      min-height:384px;
      background:var(--zb-m-card-muted);
      border:1px solid var(--zb-m-border);
      border-radius:0 52px 0 52px;
      overflow:hidden;
      opacity:0;
      transform:translateY(22px);
      transition:
        opacity .42s var(--zb-m-ease),
        transform .42s var(--zb-m-ease),
        background-color .22s linear,
        border-color .22s linear;
    }

    .zb-metodo-card.is-in{
      opacity:1;
      transform:none;
    }

    .zb-metodo-card.is-active{
      background:var(--zb-m-card-active);
      border-color:var(--zb-m-border-strong);
    }

    .zb-metodo-card__num{
      display:flex;
      align-items:flex-start;
      justify-content:flex-start;
      padding:28px 18px 22px 34px;
      border-right:1px solid var(--zb-m-border);
      color:rgba(39,79,158,.18);
      font-family:var(--zb-m-font-wide);
      font-size:clamp(58px, 5vw, 86px);
      line-height:.9;
      letter-spacing:-.06em;
      font-weight:700;
      user-select:none;
      transition:color .22s linear, border-color .22s linear;
    }

    .zb-metodo-card__num > span{
      display:block;
      transform:none;
    }

    .zb-metodo-card.is-active .zb-metodo-card__num{
      color:rgba(255,255,255,.34);
      border-right-color:rgba(255,255,255,.14);
    }

    .zb-metodo-card__body{
      display:flex;
      flex-direction:column;
      justify-content:center;
      min-width:0;
      padding:38px 38px 36px 42px;
      border-right:1px solid var(--zb-m-border);
      transition:border-color .22s linear;
    }

    .zb-metodo-card.is-active .zb-metodo-card__body{
      border-right-color:rgba(255,255,255,.14);
    }

    .zb-metodo-card__kicker{
      display:inline-block;
      margin-bottom:10px;
      color:var(--zb-m-blue);
      font-size:13px;
      font-weight:800;
      letter-spacing:.05em;
      text-transform:uppercase;
      transition:color .22s linear;
    }

    .zb-metodo-card__title{
      margin:0 0 14px 0;
      color:var(--zb-m-navy);
      font-family:var(--zb-m-font-wide);
      font-size:clamp(34px, 2.45vw, 46px);
      line-height:1.02;
      letter-spacing:-.03em;
      font-weight:600;
      max-width:18ch;
      text-wrap:balance;
      transition:color .22s linear;
    }

    .zb-metodo-card__desc{
      margin:0;
      color:var(--zb-m-ink);
      font-size:clamp(16px, 1.08vw, 18px);
      line-height:1.72;
      max-width:66ch;
      transition:color .22s linear;
    }

    .zb-metodo-card__tags{
      display:flex;
      flex-wrap:wrap;
      gap:10px;
      margin-top:18px;
    }

    .zb-metodo-card__tags span{
      display:inline-flex;
      align-items:center;
      min-height:36px;
      padding:8px 12px;
      border:1px solid rgba(39,79,158,.12);
      background:#ffffff;
      color:var(--zb-m-navy);
      font-size:13px;
      font-weight:700;
      line-height:1;
      white-space:nowrap;
      transition:
        background-color .22s linear,
        color .22s linear,
        border-color .22s linear;
    }

    .zb-metodo-card__media{
      position:relative;
      margin:0;
      min-height:384px;
      background:
        radial-gradient(circle at 50% 28%, rgba(255,255,255,.66) 0%, rgba(255,255,255,.22) 30%, rgba(255,255,255,0) 54%),
        linear-gradient(180deg, #ececec 0%, #d6d6d6 100%);
      transition:background .22s linear;
    }

    .zb-metodo-card__media img{
      position:absolute;
      inset:30px 18px 30px 18px;
      width:calc(100% - 36px);
      height:calc(100% - 60px);
      object-fit:contain;
      object-position:center center;
      display:block;
      opacity:.52;
      transition:opacity .22s linear;
    }

    .zb-metodo-card.is-active .zb-metodo-card__kicker,
    .zb-metodo-card.is-active .zb-metodo-card__title,
    .zb-metodo-card.is-active .zb-metodo-card__desc{
      color:#ffffff;
    }

    .zb-metodo-card.is-active .zb-metodo-card__tags span{
      background:#ffffff;
      color:var(--zb-m-navy);
      border-color:rgba(255,255,255,.22);
    }

    .zb-metodo-card.is-active .zb-metodo-card__media{
      background:
        radial-gradient(circle at 50% 28%, rgba(255,255,255,.10) 0%, rgba(255,255,255,.03) 28%, rgba(255,255,255,0) 54%),
        linear-gradient(180deg, rgba(255,255,255,.04) 0%, rgba(255,255,255,.02) 100%);
    }

    .zb-metodo-card.is-active .zb-metodo-card__media img{
      opacity:1;
    }

    @media (max-width: 1180px){
      .zb-metodo-head{
        grid-template-columns:1fr;
        gap:18px;
        margin-bottom:34px;
      }

      .zb-metodo-head__right{
        padding-left:18px;
      }

      .zb-metodo-text{
        max-width:52ch;
      }

      .zb-metodo-list{
        width:calc(100vw - 54px);
        margin-left:calc(50% - 50vw + 27px);
        margin-right:calc(50% - 50vw + 27px);
        gap:16px;
      }

      .zb-metodo-card{
        grid-template-columns:150px minmax(0,1.55fr) minmax(180px,.54fr);
        min-height:350px;
        border-radius:0 46px 0 46px;
      }

      .zb-metodo-card__num{
        padding-left:28px;
      }

      .zb-metodo-card__body{
        padding:30px 28px 28px 34px;
      }

      .zb-metodo-card__title{
        font-size:clamp(30px, 3vw, 40px);
      }

      .zb-metodo-card__media{
        min-height:350px;
      }
    }

    @media (max-width: 920px){
      .zb-metodo-card{
        grid-template-columns:132px minmax(0,1fr);
      }

      .zb-metodo-card__body{
        border-right:0;
      }

      .zb-metodo-card__media{
        grid-column:2;
        min-height:240px;
        border-top:1px solid var(--zb-m-border);
      }

      .zb-metodo-card.is-active .zb-metodo-card__media{
        border-top:1px solid rgba(255,255,255,.14);
      }
    }

    @media (max-width: 760px){
      .zb-metodo-section{
        padding:52px 0 58px;
      }

      .zb-metodo-wrap{
        padding:0 16px;
      }

      .zb-metodo-title{
        font-size:clamp(34px, 9vw, 46px);
      }

      .zb-metodo-head{
        margin-bottom:30px;
      }

      .zb-metodo-head__right{
        padding-left:0;
      }

      .zb-metodo-text{
        font-size:16px;
      }

      .zb-metodo-list{
        width:calc(100vw - 20px);
        margin-left:calc(50% - 50vw + 10px);
        margin-right:calc(50% - 50vw + 10px);
        gap:14px;
      }

      .zb-metodo-card{
        grid-template-columns:1fr;
        min-height:auto;
        border-radius:0 36px 0 36px;
      }

      .zb-metodo-card__num{
        border-right:0;
        border-bottom:1px solid var(--zb-m-border);
        padding:18px 20px 14px;
        font-size:42px;
      }

      .zb-metodo-card.is-active .zb-metodo-card__num{
        border-bottom-color:rgba(255,255,255,.14);
      }

      .zb-metodo-card__body{
        padding:22px 20px 24px;
        border-right:0;
      }

      .zb-metodo-card__title{
        font-size:clamp(24px, 7vw, 32px);
        max-width:none;
      }

      .zb-metodo-card__desc{
        font-size:15px;
      }

      .zb-metodo-card__tags{
        gap:8px;
      }

      .zb-metodo-card__tags span{
        min-height:32px;
        padding:7px 10px;
        font-size:12px;
      }

      .zb-metodo-card__media{
        grid-column:auto;
        min-height:220px;
        border-top:1px solid var(--zb-m-border);
      }

      .zb-metodo-card.is-active .zb-metodo-card__media{
        border-top:1px solid rgba(255,255,255,.14);
      }

      .zb-metodo-card__media img{
        inset:18px 16px 18px 16px;
        width:calc(100% - 32px);
        height:calc(100% - 36px);
      }
    }

    @media (prefers-reduced-motion: reduce){
      .zb-metodo-card{
        transition:none !important;
        opacity:1 !important;
        transform:none !important;
      }

      .zb-metodo-card__num,
      .zb-metodo-card__body,
      .zb-metodo-card__kicker,
      .zb-metodo-card__title,
      .zb-metodo-card__desc,
      .zb-metodo-card__tags span,
      .zb-metodo-card__media,
      .zb-metodo-card__media img{
        transition:none !important;
      }
    }

/* ---- section ---- */

.zb-gp,
  .zb-gp *,
  .zb-gp *::before,
  .zb-gp *::after{
    box-sizing:border-box;
  }

  .zb-gp{
    --zb-gp-blue:#274F9E;
    --zb-gp-active:#192654;
    --zb-gp-navy:#192654;
    --zb-gp-ink:#3C3C3B;
    --zb-gp-border:rgba(25,38,84,.12);
    --zb-gp-border-strong:rgba(255,255,255,.18);
    --zb-gp-light:#DADADA;
    --zb-gp-bg:#ffffff;

    --zb-gp-max:1360px;
    --zb-gp-cards-max:1540px;
    --zb-gp-radius-hero:clamp(44px, 6vw, 86px);

    --zb-gp-font:"HK Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    --zb-gp-font-wide:"HK Grotesk Wide","HK Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

    position:relative;
    background:var(--zb-gp-bg);
    color:var(--zb-gp-ink);
    font-family:var(--zb-gp-font);
    padding:clamp(26px, 2.4vw, 36px) 0 0;
    overflow:hidden;
  }

  .zb-gp__headWrap{
    max-width:var(--zb-gp-max);
    margin:0 auto;
    padding:0 10px 86px;
  }

  .zb-gp__head{
    display:grid;
    grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
    gap:28px;
    align-items:end;
  }

  .zb-gp__headLeft{
    min-width:0;
    transform:translateY(-6px);
  }

  .zb-gp__headRight{
    min-width:0;
    padding-left:72px;
  }

  .zb-gp__title{
    margin:0;
    color:var(--zb-gp-navy);
    font-family:var(--zb-gp-font-wide);
    font-size:clamp(40px, 4.8vw, 64px);
    line-height:.98;
    letter-spacing:-.04em;
    font-weight:600;
    text-wrap:balance;
  }

  .zb-gp__text{
    margin:0;
    max-width:58ch;
    color:var(--zb-gp-ink);
    font-size:clamp(17px, 1.45vw, 20px);
    line-height:1.7;
  }

  .zb-gp__cardsShell{
    width:min(calc(100vw - 8px), var(--zb-gp-cards-max));
    margin:0 auto;
    padding:0 0 72px;
  }

  .zb-gp__cardsWrap{
    display:grid;
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:0;
    width:100%;
    border-top:1px solid var(--zb-gp-border);
    background:var(--zb-gp-light);
    overflow:hidden;
    border-radius:0 var(--zb-gp-radius-hero) 0 var(--zb-gp-radius-hero);
  }

  .zb-gp__card{
    position:relative;
    min-height:390px;
    background:var(--zb-gp-light);
    border-bottom:1px solid var(--zb-gp-border);
    overflow:hidden;
    isolation:isolate;
    transition:
      background-color .28s ease,
      border-color .28s ease,
      color .28s ease;
  }

  .zb-gp__card:nth-child(odd){
    border-right:1px solid var(--zb-gp-border);
  }

  .zb-gp__wmImg{
    position:absolute;
    right:24px;
    top:46%;
    transform:translateY(-50%);
    width:min(33%, 218px);
    max-width:218px;
    height:auto;
    object-fit:contain;
    pointer-events:none;
    user-select:none;
    z-index:1;
    opacity:.16;
    mix-blend-mode:multiply;
    filter:
      brightness(0)
      saturate(100%)
      invert(27%)
      sepia(36%)
      saturate(1684%)
      hue-rotate(198deg)
      brightness(94%)
      contrast(92%);
    transition:
      opacity .28s ease,
      transform .28s ease,
      filter .28s ease;
  }

  .zb-gp__card--wm-sm .zb-gp__wmImg{
    width:min(29%, 188px);
    max-width:188px;
    right:26px;
    top:45%;
  }

  .zb-gp__card--wm-lg .zb-gp__wmImg{
    width:min(37%, 248px);
    max-width:248px;
    right:18px;
    top:47%;
  }

  .zb-gp__cardInner{
    position:relative;
    z-index:2;
    padding:42px 54px 40px 42px;
    min-height:390px;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }

  .zb-gp__cardTitle{
    margin:0 0 18px 0;
    color:var(--zb-gp-navy);
    font-family:var(--zb-gp-font-wide);
    font-size:clamp(32px, 2.5vw, 44px);
    line-height:1.02;
    letter-spacing:-.03em;
    font-weight:600;
    max-width:14ch;
    text-wrap:balance;
    transition:color .28s ease;
  }

  .zb-gp__cardDesc{
    margin:0;
    color:var(--zb-gp-ink);
    font-size:clamp(16px, 1.08vw, 18px);
    line-height:1.72;
    max-width:58ch;
    transition:color .28s ease;
  }

  .zb-gp__tag{
    display:inline-flex;
    align-items:center;
    align-self:flex-start;
    min-height:36px;
    padding:8px 12px;
    margin-top:22px;
    border:1px solid rgba(39,79,158,.12);
    background:#ffffff;
    color:var(--zb-gp-blue);
    font-size:13px;
    font-weight:700;
    line-height:1;
    white-space:nowrap;
    transition:
      background-color .28s ease,
      color .28s ease,
      border-color .28s ease,
      box-shadow .28s ease;
  }

  .zb-gp__card:hover{
    background:var(--zb-gp-active);
    border-color:var(--zb-gp-border-strong);
  }

  .zb-gp__card:hover .zb-gp__cardTitle,
  .zb-gp__card:hover .zb-gp__cardDesc{
    color:#ffffff;
  }

  .zb-gp__card:hover .zb-gp__tag{
    background:#ffffff;
    color:var(--zb-gp-blue);
    border-color:rgba(255,255,255,.32);
    box-shadow:0 8px 22px rgba(0,0,0,.08);
  }

  .zb-gp__card:hover .zb-gp__wmImg{
    opacity:.24;
    mix-blend-mode:screen;
    filter:brightness(0) invert(1);
    transform:translateY(-50%) scale(1.03);
  }

  @media (max-width:1100px){
    .zb-gp__headWrap{
      padding:0 10px 68px;
    }

    .zb-gp__head{
      grid-template-columns:1fr;
      gap:18px;
    }

    .zb-gp__headLeft{
      transform:translateY(-3px);
    }

    .zb-gp__headRight{
      padding-left:20px;
    }

    .zb-gp__text{
      max-width:54ch;
    }

    .zb-gp__cardsShell{
      width:min(calc(100vw - 6px), var(--zb-gp-cards-max));
      padding:0 0 56px;
    }

    .zb-gp__wmImg{
      right:18px;
      top:45%;
      width:min(30%, 196px);
      max-width:196px;
    }

    .zb-gp__card--wm-sm .zb-gp__wmImg{
      width:min(26%, 166px);
      max-width:166px;
      right:20px;
    }

    .zb-gp__card--wm-lg .zb-gp__wmImg{
      width:min(34%, 220px);
      max-width:220px;
      right:14px;
      top:46%;
    }
  }

  @media (max-width:760px){
    .zb-gp{
      padding-top:22px;
    }

    .zb-gp__headWrap{
      padding:0 8px 52px;
    }

    .zb-gp__title{
      font-size:clamp(34px, 9vw, 46px);
    }

    .zb-gp__text{
      font-size:16px;
      max-width:100%;
    }

    .zb-gp__headLeft{
      transform:none;
    }

    .zb-gp__headRight{
      padding-left:0;
    }

    .zb-gp__cardsShell{
      width:100%;
      padding:0 14px 42px;
      box-sizing:border-box;
    }

    .zb-gp__cardsWrap{
      grid-template-columns:1fr;
      border-radius:0 42px 0 42px;
    }

    .zb-gp__card{
      min-height:292px;
    }

    .zb-gp__card:nth-child(odd){
      border-right:0;
    }

    .zb-gp__wmImg{
      right:10px;
      top:44%;
      width:min(34%, 148px);
      max-width:148px;
      opacity:.13;
    }

    .zb-gp__card--wm-sm .zb-gp__wmImg{
      width:min(28%, 124px);
      max-width:124px;
      right:10px;
      top:42%;
    }

    .zb-gp__card--wm-lg .zb-gp__wmImg{
      width:min(38%, 166px);
      max-width:166px;
      right:8px;
      top:44%;
    }

    .zb-gp__cardInner{
      min-height:100%;
      padding:28px 20px 28px;
    }

    .zb-gp__cardTitle{
      font-size:clamp(24px, 7vw, 32px);
      max-width:calc(100% - 88px);
      margin-bottom:14px;
      padding-right:0;
      line-height:1.04;
      text-wrap:balance;
    }

      .zb-gp__cardDesc{
        font-size:15px;
        line-height:1.7;
        max-width:calc(100% - 92px);
        text-wrap:pretty;
      }

    .zb-gp__tag{
      min-height:34px;
      font-size:12px;
      white-space:normal;
    }

    .zb-gp__br-desktop{
      display:none;
    }
  }

  @media (prefers-reduced-motion: reduce){
    .zb-gp__card,
    .zb-gp__cardTitle,
    .zb-gp__cardDesc,
    .zb-gp__tag,
    .zb-gp__wmImg{
      transition:none !important;
    }
  }

/* ---- section ---- */

.zb-contactmap,
    .zb-contactmap *,
    .zb-contactmap *::before,
    .zb-contactmap *::after{
      box-sizing:border-box;
    }

    .zb-contactmap{
      --zb-navy:#192654;
      --zb-navy-deep:#101936;
      --zb-blue:#274F9E;
      --zb-blue-2:#355fb3;
      --zb-white:#ffffff;
      --zb-ink:#3C3C3B;
      --zb-light:#DADADA;

      --zb-panel-line:rgba(255,255,255,.16);
      --zb-panel-text:rgba(255,255,255,.88);
      --zb-panel-text-strong:#ffffff;
      --zb-panel-separator:rgba(255,255,255,.14);

      --zb-max:1360px;
      --zb-pad-x:20px;

      --zb-font:"HK Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
      --zb-font-wide:"HK Grotesk Wide","HK Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

      position:relative;
      font-family:var(--zb-font);
      background:#fff;
      overflow:hidden;
      padding:34px 0 84px;
    }

    .zb-contactmap__container{
      width:100%;
      max-width:var(--zb-max);
      margin:0 auto;
      padding-left:var(--zb-pad-x);
      padding-right:var(--zb-pad-x);
    }

    /* =========================
       HEAD
    ========================= */
    .zb-contactmap__headWrap{
      padding:0 0 50px;
    }

    .zb-contactmap__head{
      display:grid;
      grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
      gap:28px;
      align-items:end;
    }

    .zb-contactmap__headLeft{
      min-width:0;
      transform:translateY(-12px);
    }

    .zb-contactmap__headRight{
      min-width:0;
      padding-left:36px;
    }

    .zb-contactmap__sectionTitle{
      margin:0;
      color:var(--zb-navy);
      font-family:var(--zb-font-wide);
      font-size:clamp(40px, 4.8vw, 64px);
      line-height:.98;
      letter-spacing:-.04em;
      font-weight:600;
      text-wrap:balance;
    }

    .zb-contactmap__sectionText{
      margin:0;
      max-width:46ch;
      color:var(--zb-ink);
      font-size:clamp(17px, 1.45vw, 20px);
      line-height:1.7;
    }

    /* =========================
       CARD MAPPA
    ========================= */
    .zb-contactmap__wrap{
      display:grid;
      grid-template-columns:minmax(0, 1.45fr) minmax(320px, .72fr);
      align-items:stretch;
      background:#fff;
      border:1px solid rgba(25,38,84,.08);
      border-radius:26px;
      overflow:hidden;
    }

    .zb-contactmap__mapbox{
      position:relative;
      min-height:560px;
      background:#eef1f4;
    }

    .zb-contactmap__map{
      width:100%;
      height:100%;
      border:0;
      display:block;
      filter:saturate(.96) contrast(1.01);
    }

    .zb-contactmap__panel{
      position:relative;
      background:var(--zb-navy);
      color:var(--zb-panel-text);
      border-left:1px solid rgba(255,255,255,.10);
      display:flex;
      align-items:center;
      min-width:0;
    }

    .zb-contactmap__panelInner{
      width:100%;
      padding:30px 24px;
    }

    .zb-contactmap__group + .zb-contactmap__group{
      margin-top:22px;
      padding-top:18px;
      border-top:1px solid var(--zb-panel-line);
    }

    .zb-contactmap__title{
      margin:0 0 14px 0;
      font-family:var(--zb-font-wide);
      font-size:clamp(20px, 1.45vw, 27px);
      line-height:1.05;
      letter-spacing:-.02em;
      font-weight:700;
      color:var(--zb-panel-text-strong);
      text-transform:uppercase;
    }

    .zb-contactmap__row{
      display:grid;
      grid-template-columns:1fr auto;
      gap:12px;
      align-items:center;
      padding:8px 0;
    }

    .zb-contactmap__label{
      font-size:14px;
      line-height:1.4;
      font-weight:700;
      color:var(--zb-panel-text-strong);
    }

    .zb-contactmap__value{
      font-size:14px;
      line-height:1.4;
      color:var(--zb-panel-text);
      text-align:right;
    }

    .zb-contactmap__contact,
    .zb-contactmap__address{
      display:grid;
      grid-template-columns:22px 1fr;
      gap:10px;
      align-items:start;
      color:var(--zb-panel-text);
      text-decoration:none;
      font-size:14px;
      line-height:1.5;
      word-break:break-word;
    }

    .zb-contactmap__contact + .zb-contactmap__contact{
      margin-top:12px;
    }

    .zb-contactmap__address{
      margin-bottom:14px;
    }

    .zb-contactmap__contact:hover{
      text-decoration:underline;
      text-decoration-color:rgba(255,255,255,.7);
    }

    .zb-contactmap__icon{
      width:22px;
      height:22px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
      color:#ffffff;
      transform:translateY(1px);
      flex:0 0 auto;
    }

    .zb-contactmap__icon svg{
      width:18px;
      height:18px;
      display:block;
    }

    .zb-contactmap__mapslink{
      display:inline-flex;
      align-items:center;
      gap:8px;
      color:#ffffff;
      text-decoration:none;
      font-size:13px;
      font-weight:700;
      line-height:1;
      padding-bottom:2px;
      border-bottom:1px solid rgba(255,255,255,.34);
      transition:border-color .18s ease, opacity .18s ease;
    }

    .zb-contactmap__mapslink:hover{
      border-color:#ffffff;
      opacity:1;
    }

    .zb-contactmap__contact:focus-visible,
    .zb-contactmap__mapslink:focus-visible{
      outline:3px solid rgba(255,255,255,.35);
      outline-offset:3px;
      border-radius:10px;
    }

    @media (max-width:1100px){
      .zb-contactmap__head{
        grid-template-columns:1fr;
        gap:18px;
      }

      .zb-contactmap__headLeft{
        transform:translateY(-8px);
      }

      .zb-contactmap__headRight{
        padding-left:20px;
      }

      .zb-contactmap__sectionText{
        max-width:52ch;
      }
    }

    @media (max-width:980px){
      .zb-contactmap{
        padding-top:28px;
        padding-bottom:72px;
      }

      .zb-contactmap__wrap{
        grid-template-columns:1fr;
      }

      .zb-contactmap__mapbox{
        min-height:380px;
      }

      .zb-contactmap__panel{
        border-left:0;
        border-top:1px solid rgba(255,255,255,.12);
      }

      .zb-contactmap__panelInner{
        padding:24px 20px 22px;
      }
    }

    @media (max-width:760px){
      .zb-contactmap__headWrap{
        padding-bottom:30px;
      }

      .zb-contactmap__headRight{
        padding-left:0;
      }

      .zb-contactmap__headLeft{
        transform:translateY(-4px);
      }

      .zb-contactmap__sectionTitle{
        font-size:clamp(34px, 9vw, 46px);
      }

      .zb-contactmap__sectionText{
        font-size:16px;
        max-width:100%;
      }
    }

    @media (max-width:640px){
      .zb-contactmap{
        padding-bottom:60px;
      }

      .zb-contactmap__container{
        padding-left:16px;
        padding-right:16px;
      }

      .zb-contactmap__wrap{
        border-radius:20px;
      }

      .zb-contactmap__mapbox{
        min-height:300px;
      }

      .zb-contactmap__panelInner{
        padding:22px 16px 20px;
      }

      .zb-contactmap__title{
        font-size:23px;
      }

      .zb-contactmap__row{
        grid-template-columns:1fr;
        gap:4px;
        padding:8px 0;
      }

      .zb-contactmap__value{
        text-align:left;
      }

      .zb-contactmap__contact,
      .zb-contactmap__address{
        font-size:14px;
      }
    }

/* ---- section ---- */

.zb-footer3,
    .zb-footer3 *,
    .zb-footer3 *::before,
    .zb-footer3 *::after{
      box-sizing:border-box;
    }

    .zb-footer3{
      --zb-navy:#192654;
      --zb-navy-deep:#101936;
      --zb-blue:#274F9E;
      --zb-blue-2:#355fb3;
      --zb-white:#ffffff;
      --zb-light:#DADADA;
      --zb-line:rgba(255,255,255,.14);

      --zb-max:1360px;
      --zb-pad-x:20px;

      --zb-font:"HK Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
      --zb-font-wide:"HK Grotesk Wide","HK Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

      width:100%;
      background:transparent;
      color:var(--zb-white);
      font-family:var(--zb-font);
      overflow:hidden;
      position:relative;
    }

    .zb-footer3__container{
      width:100%;
      max-width:var(--zb-max);
      margin:0 auto;
      padding-left:var(--zb-pad-x);
      padding-right:var(--zb-pad-x);
    }

    /* =========================
       MAIN FOOTER
    ========================= */
    .zb-footer3__main{
      position:relative;
      overflow:hidden;
      isolation:isolate;
      background:
        radial-gradient(circle at 12% 10%, rgba(53,95,179,.20), rgba(53,95,179,0) 34%),
        linear-gradient(180deg, #17224c 0%, #101936 100%);
    }

    .zb-footer3__main::before{
      content:"";
      position:absolute;
      inset:0;
      background:
        linear-gradient(90deg, rgba(255,255,255,.02), rgba(255,255,255,0) 24%),
        linear-gradient(180deg, rgba(255,255,255,.015), rgba(255,255,255,0) 30%);
      pointer-events:none;
      z-index:0;
    }

    .zb-footer3__wmImg{
      position:absolute;
      right:22px;
      bottom:42px;
      width:min(30vw, 390px);
      max-width:390px;
      height:auto;
      object-fit:contain;
      pointer-events:none;
      user-select:none;
      z-index:0;
      opacity:.17;
      mix-blend-mode:screen;
      filter:brightness(0) invert(1);
    }

    .zb-footer3__grid{
      position:relative;
      z-index:1;
      display:grid;
      grid-template-columns:1.2fr 1fr 1fr;
      gap:52px;
      padding-top:110px;
      padding-bottom:118px;
      min-height:460px;
      align-items:start;
    }

    .zb-footer3__col{
      min-width:0;
    }

    .zb-footer3__title{
      margin:0 0 22px 0;
      color:#fff;
      font-family:var(--zb-font-wide);
      font-size:clamp(26px, 1.8vw, 34px);
      line-height:1.05;
      font-weight:700;
      letter-spacing:-.03em;
    }

    .zb-footer3__text{
      margin:0;
      color:rgba(255,255,255,.88);
      font-size:18px;
      line-height:1.85;
      max-width:34ch;
    }

    .zb-footer3__info{
      list-style:none;
      margin:0;
      padding:0;
      display:grid;
      gap:22px;
    }

    .zb-footer3__info li{
      display:grid;
      gap:6px;
      color:#fff;
      font-size:17px;
      line-height:1.75;
    }

    .zb-footer3__lineLabel{
      color:#fff;
      font-weight:700;
      font-size:16px;
      line-height:1.3;
      letter-spacing:0;
      text-transform:none;
    }

    .zb-footer3__stack{
      display:grid;
      gap:4px;
    }

    .zb-footer3__info a{
      color:#fff;
      text-decoration:none;
    }

    .zb-footer3__info a:hover{
      text-decoration:underline;
    }

    /* =========================
       BOTTOM
    ========================= */
    .zb-footer3__bottom{
      position:relative;
      z-index:1;
      border-top:1px solid var(--zb-line);
      background:rgba(0,0,0,.10);
    }

    .zb-footer3__bottomInner{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
      padding-top:20px;
      padding-bottom:20px;
    }

    .zb-footer3__bottomText{
      margin:0;
      color:rgba(255,255,255,.70);
      font-size:13px;
      line-height:1.6;
    }

    .zb-footer3__bottomLinks{
      display:flex;
      align-items:center;
      gap:18px;
      flex-wrap:wrap;
    }

    .zb-footer3__bottomLinks a{
      color:#fff;
      text-decoration:none;
      font-size:14px;
      font-weight:700;
    }

    .zb-footer3__bottomLinks a:hover{
      text-decoration:underline;
    }

    .zb-footer3__info a:focus-visible,
    .zb-footer3__bottomLinks a:focus-visible{
      outline:3px solid rgba(177,185,223,.9);
      outline-offset:3px;
      border-radius:10px;
    }

    @media (max-width:1080px){
      .zb-footer3__grid{
        grid-template-columns:1fr 1fr;
        gap:40px;
        padding-top:92px;
      }

      .zb-footer3__col--about{
        grid-column:1 / -1;
      }

      .zb-footer3__wmImg{
        width:min(34vw, 310px);
        max-width:310px;
        right:16px;
        bottom:34px;
        opacity:.15;
      }
    }

    @media (max-width:640px){
      .zb-footer3__grid{
        grid-template-columns:1fr;
        gap:30px;
        padding-top:76px;
        padding-bottom:76px;
        min-height:auto;
      }

      .zb-footer3__title{
        font-size:26px;
      }

      .zb-footer3__text{
        font-size:16px;
        line-height:1.8;
      }

      .zb-footer3__info li{
        font-size:16px;
      }

      .zb-footer3__lineLabel{
        font-size:15px;
      }

      .zb-footer3__bottomInner{
        flex-direction:column;
        align-items:flex-start;
      }

      .zb-footer3__wmImg{
        width:min(48vw, 210px);
        max-width:210px;
        right:10px;
        bottom:162px;
        opacity:.13;
      }
    }

    .zb-footer3__credit{
      color:rgba(255,255,255,.86);
      font-size:14px;
      font-weight:700;
      line-height:1.4;
    }
