.z5kpi{
  --z5kpi-dark:#171214;
  --z5kpi-light:#fff;
  --z5kpi-muted:#555154;
  --z5kpi-accent:#D32127;
  --z5kpi-gap:24px;
  position:relative;
  width:100%;
  overflow:clip;
  color:var(--z5kpi-dark);
}
.z5kpi *{box-sizing:border-box}
.z5kpi__container{width:100%; max-width:1400px; margin:0 auto;}
.z5kpi__header{max-width:920px; margin-left:auto; margin-right:auto; text-align:center;}
.z5kpi__eyebrow{margin:0 0 14px; font-size:12px; line-height:1.1; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--z5kpi-accent);}
.z5kpi__heading{margin:0; color:var(--z5kpi-dark); font-size:clamp(2.35rem,4.2vw,4.4rem); line-height:.92; letter-spacing:-.045em; font-weight:800; text-transform:uppercase;}
.z5kpi__intro{margin:20px auto 0; max-width:62ch; color:var(--z5kpi-muted); font-size:clamp(1rem,1.2vw,1.18rem); line-height:1.55;}
.z5kpi__swiper{width:100%; overflow:visible;}
.z5kpi__grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--z5kpi-gap); width:100%; align-items:stretch;}
.z5kpi--cols-2 .z5kpi__grid{grid-template-columns:repeat(2,minmax(0,1fr));}
.z5kpi--cols-4 .z5kpi__grid{grid-template-columns:repeat(4,minmax(0,1fr));}
.z5kpi__slide{height:auto; min-width:0;}
.z5kpi__card{height:100%; min-height:260px; padding:54px; border-radius:22px; background:#fff; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; transition:transform .45s cubic-bezier(.625,.05,0,1), box-shadow .45s cubic-bezier(.625,.05,0,1);}
.z5kpi__card:hover{transform:translateY(-4px);}
.z5kpi__icon{width:54px; height:54px; border-radius:18px; display:flex; align-items:center; justify-content:center; margin-bottom:34px; background:var(--z5kpi-accent); color:#fff; flex:0 0 auto;}
.z5kpi__icon svg,.z5kpi__icon i{width:38%; height:38%; font-size:1em; display:block;}
.z5kpi__card-title{margin:0 0 22px; color:var(--z5kpi-dark); font-size:clamp(1.05rem,1.35vw,1.45rem); line-height:1.08; letter-spacing:.045em; font-weight:800; text-transform:uppercase;}
.z5kpi__card-text{margin:0; color:var(--z5kpi-muted); font-size:clamp(1rem,1.35vw,1.3rem); line-height:1.55; font-weight:400;}
.z5kpi--dark{color:#fff; background:#171214;}
.z5kpi--dark .z5kpi__heading{color:#fff;}
.z5kpi--dark .z5kpi__intro{color:rgba(255,255,255,.72);}
.z5kpi--dark .z5kpi__card{background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1);}
.z5kpi--dark .z5kpi__card-title{color:#fff;}
.z5kpi--dark .z5kpi__card-text{color:rgba(255,255,255,.7);}
.z5kpi__mobile-nav{display:none; margin-top:24px; align-items:center; justify-content:space-between; gap:24px; pointer-events:none;}
.z5kpi__arrows{display:flex; gap:12px; pointer-events:auto;}
.z5kpi__arrow{width:48px; height:48px; border-radius:999px; border:0; padding:0; display:flex; align-items:center; justify-content:center; color:#fff; background:#171214; cursor:pointer; transition:opacity .2s ease, transform .2s ease, background-color .2s ease;}
.z5kpi__arrow svg{width:22px; height:22px;}
.z5kpi__arrow:hover:not([disabled]){transform:translateY(-1px);}
.z5kpi__arrow[disabled]{background:#cfcfcf; cursor:default; pointer-events:none;}
.z5kpi__progress-wrap{display:flex; align-items:center; gap:18px; flex:1; min-width:0; max-width:520px; margin-left:auto; pointer-events:auto;}
.z5kpi__progress-track{position:relative; height:2px; flex:1; background:#d6d6d6; overflow:hidden; transform:translateZ(0);}
.z5kpi__progress-fill{position:absolute; inset:0; transform-origin:left center; background:#D32127; transform:scaleX(0); transition:transform .45s cubic-bezier(.625,.05,0,1);}
.z5kpi__counter{white-space:nowrap; color:#171214; font-size:12px; line-height:1; font-weight:700; letter-spacing:.12em; font-variant-numeric:tabular-nums;}
.z5kpi__counter-sep{display:inline-block; margin:0 .45em; color:rgba(23,18,20,.45);}
.z5kpi--dark .z5kpi__counter{color:#fff;}
.z5kpi--dark .z5kpi__counter-sep{color:rgba(255,255,255,.45);}
.z5kpi--dark .z5kpi__progress-track{background:rgba(255,255,255,.16);}
.z5kpi[data-enable-reveal="true"] [data-z5-kpi-reveal]{will-change:opacity,transform;}
@media (max-width: 1024px) and (min-width: 768px){
  .z5kpi__grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .z5kpi--cols-4 .z5kpi__grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 767px){
  .z5kpi{overflow:hidden;}
  .z5kpi__container{max-width:none;}
  .z5kpi__header{text-align:left; max-width:none; margin-left:0; margin-right:0;}
  .z5kpi__heading{font-size:clamp(2.1rem,12vw,3.2rem); line-height:.94; letter-spacing:-.05em;}
  .z5kpi__intro{margin-left:0; margin-right:0;}
  .z5kpi[data-mobile-swiper="true"] .z5kpi__swiper{overflow:visible; padding-right:20px;}
  .z5kpi[data-mobile-swiper="true"] .z5kpi__grid{display:flex; gap:0; align-items:stretch;}
  .z5kpi[data-mobile-swiper="true"] .z5kpi__slide{height:auto;}
  .z5kpi[data-mobile-swiper="true"] .z5kpi__card{height:100%;}
  .z5kpi[data-mobile-swiper="true"] .z5kpi__mobile-nav{display:flex;}
  .z5kpi[data-mobile-swiper="false"] .z5kpi__grid{display:grid; grid-template-columns:1fr;}
  .z5kpi__mobile-nav{gap:18px; align-items:center;}
  .z5kpi__arrow{width:42px; height:42px;}
  .z5kpi__progress-wrap{gap:12px;}
  .z5kpi__card-title{font-size:1.15rem;}
  .z5kpi__card-text{font-size:1rem;}
}
@media (prefers-reduced-motion: reduce){
  .z5kpi [data-z5-kpi-reveal]{opacity:1!important; transform:none!important;}
  .z5kpi__card{transition:none!important;}
}

/* v1.0.1: make Elementor Icon color controls cascade into SVG/FontAwesome internals. */
.z5kpi .z5kpi__icon,
.z5kpi .z5kpi__icon .elementor-icon,
.z5kpi .z5kpi__icon i,
.z5kpi .z5kpi__icon svg{
  color: inherit;
}
.z5kpi .z5kpi__icon > svg,
.z5kpi .z5kpi__icon .elementor-icon > svg,
.z5kpi .z5kpi__icon i{
  color: currentColor !important;
  fill: currentColor !important;
}
.z5kpi .z5kpi__icon svg path:not([fill="none"]),
.z5kpi .z5kpi__icon svg circle:not([fill="none"]),
.z5kpi .z5kpi__icon svg rect:not([fill="none"]),
.z5kpi .z5kpi__icon svg polygon:not([fill="none"]),
.z5kpi .z5kpi__icon svg polyline:not([fill="none"]),
.z5kpi .z5kpi__icon svg ellipse:not([fill="none"]),
.z5kpi .z5kpi__icon svg g:not([fill="none"]){
  fill: currentColor !important;
}
.z5kpi .z5kpi__icon svg [stroke]:not([stroke="none"]){
  stroke: currentColor !important;
}
.z5kpi .z5kpi__icon svg [fill="none"]{
  fill: none !important;
}

/* v1.0.2: protect desktop grid from late global Swiper CSS loaded by other widgets, while allowing mobile Swiper transforms. */
@media (min-width: 768px){
  .z5kpi .z5kpi__grid.swiper-wrapper{
    display:grid !important;
    transform:none !important;
    transition:none !important;
  }
  .z5kpi .z5kpi__slide.swiper-slide{
    width:auto !important;
    margin-right:0 !important;
    flex:initial !important;
  }
}
@media (max-width: 767px){
  .z5kpi[data-mobile-swiper="true"] .z5kpi__grid.swiper-wrapper{
    display:flex !important;
    gap:0 !important;
    transition-property:transform !important;
  }
  .z5kpi[data-mobile-swiper="false"] .z5kpi__grid.swiper-wrapper{
    display:grid !important;
    transform:none !important;
  }
}
