.zfg{
  --zfg-gap:16px;
  --zfg-radius:16px;
  --zfg-margin-top:0px;
  --zfg-margin-bottom:24px;
  --zfg-padding:0px;
  --zfg-image-fit:cover;
  --zfg-border-width:0px;
  --zfg-border-color:rgba(255,255,255,0.35);
  --zfg-shadow:0 4px 16px rgba(0,0,0,.10);
  display:grid;
  gap:var(--zfg-gap);
  width:100%;
  margin:var(--zfg-margin-top) 0 var(--zfg-margin-bottom);
  padding:var(--zfg-padding);
  box-sizing:border-box;
}
.zfg-card,
.zfg-carousel{
  position:relative;
  display:block;
  overflow:hidden;
  border-radius:var(--zfg-radius);
  color:#fff;
  text-decoration:none!important;
  min-height:0;
  box-sizing:border-box;
  border:var(--zfg-border-width) var(--zfg-border-style,solid) var(--zfg-border-color);
  box-shadow:var(--zfg-shadow);
}
.zfg-card-img{
  display:block;
  width:100%;
  height:100%;
  object-fit:var(--zfg-image-fit);
  object-position:center;
  border-radius:inherit;
}
.zfg-card-img--empty{
  display:block;
  width:100%;
  height:100%;
  background:linear-gradient(135deg,#3a3a3a,#1a1a1a);
}
.zfg-card-title{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:2;
  padding:22px 0 0;
  background:var(--zfg-title-overlay,linear-gradient(transparent,rgba(0,0,0,.65)));
  pointer-events:none;
  overflow:hidden;
}
.zfg-card-title-text{
  display:block;
  padding:6px 14px 10px;
  font-size:var(--zfg-title-size,16px);
  font-weight:bold;
  color:var(--zfg-title-color,#fff);
  line-height:1.3;
  overflow:hidden;
  text-overflow:ellipsis;
  word-break:break-word;
}
.zfg-hero-lines-1 .zfg-slot-hero .zfg-card-title-text{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:1;
  line-clamp:1;
}
.zfg-hero-lines-2 .zfg-slot-hero .zfg-card-title-text{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-clamp:2;
}
.zfg-hero-lines-3 .zfg-slot-hero .zfg-card-title-text{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  line-clamp:3;
}
.zfg-corner-lines-1 .zfg-layout-grid_5_hero .zfg-card.zfg-pos-tl .zfg-card-title-text,
.zfg-corner-lines-1 .zfg-layout-grid_5_hero .zfg-card.zfg-pos-tr .zfg-card-title-text,
.zfg-corner-lines-1 .zfg-layout-grid_5_hero .zfg-card.zfg-pos-bl .zfg-card-title-text,
.zfg-corner-lines-1 .zfg-layout-grid_5_hero .zfg-card.zfg-pos-br .zfg-card-title-text{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:1;
  line-clamp:1;
  font-size:var(--zfg-title-size-corner,14px);
}
.zfg-corner-lines-2 .zfg-layout-grid_5_hero .zfg-card.zfg-pos-tl .zfg-card-title-text,
.zfg-corner-lines-2 .zfg-layout-grid_5_hero .zfg-card.zfg-pos-tr .zfg-card-title-text,
.zfg-corner-lines-2 .zfg-layout-grid_5_hero .zfg-card.zfg-pos-bl .zfg-card-title-text,
.zfg-corner-lines-2 .zfg-layout-grid_5_hero .zfg-card.zfg-pos-br .zfg-card-title-text{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-clamp:2;
  font-size:var(--zfg-title-size-corner,14px);
}
.zfg-corner-lines-3 .zfg-layout-grid_5_hero .zfg-card.zfg-pos-tl .zfg-card-title-text,
.zfg-corner-lines-3 .zfg-layout-grid_5_hero .zfg-card.zfg-pos-tr .zfg-card-title-text,
.zfg-corner-lines-3 .zfg-layout-grid_5_hero .zfg-card.zfg-pos-bl .zfg-card-title-text,
.zfg-corner-lines-3 .zfg-layout-grid_5_hero .zfg-card.zfg-pos-br .zfg-card-title-text{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
  line-clamp:3;
  font-size:var(--zfg-title-size-corner,14px);
}
.zfg-layout-grid_5_hero{
  grid-template-columns:1fr 2fr 1fr;
  grid-template-rows:220px 220px;
  align-items:stretch;
}
.zfg-layout-grid_5_hero .zfg-slot-hero{
  position:relative;
  grid-column:2;
  grid-row:1/3;
  min-height:0;
  height:100%;
}
.zfg-layout-grid_5_hero .zfg-slot-hero>.zfg-carousel,
.zfg-layout-grid_5_hero .zfg-slot-hero>.zfg-card{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  min-height:100%;
}
.zfg-layout-grid_5_hero .zfg-card.zfg-pos-tl{grid-column:1;grid-row:1}
.zfg-layout-grid_5_hero .zfg-card.zfg-pos-bl{grid-column:1;grid-row:2}
.zfg-layout-grid_5_hero .zfg-card.zfg-pos-tr{grid-column:3;grid-row:1}
.zfg-layout-grid_5_hero .zfg-card.zfg-pos-br{grid-column:3;grid-row:2}
.zfg-layout-grid_5_hero .zfg-card.zfg-pos-tl,
.zfg-layout-grid_5_hero .zfg-card.zfg-pos-tr,
.zfg-layout-grid_5_hero .zfg-card.zfg-pos-bl,
.zfg-layout-grid_5_hero .zfg-card.zfg-pos-br{
  height:100%;
  min-height:0;
}
.zfg-layout-grid_5_hero .zfg-card.zfg-pos-tl .zfg-card-img,
.zfg-layout-grid_5_hero .zfg-card.zfg-pos-tr .zfg-card-img,
.zfg-layout-grid_5_hero .zfg-card.zfg-pos-bl .zfg-card-img,
.zfg-layout-grid_5_hero .zfg-card.zfg-pos-br .zfg-card-img,
.zfg-layout-grid_5_hero .zfg-slot-hero .zfg-card-img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.zfg-carousel{
  position:relative;
  width:100%;
  height:100%;
  overflow:hidden;
}
.zfg-carousel-track{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.zfg-carousel-slide{
  position:absolute;
  inset:0;
  opacity:0;
  visibility:hidden;
  transition:opacity .45s ease, transform .45s ease;
}
.zfg-carousel-slide .zfg-carousel-card{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
}
.zfg-carousel-slide.is-active{
  opacity:1;
  visibility:visible;
  z-index:1;
}
.zfg-carousel-effect-slide .zfg-carousel-slide{
  transform:translateX(100%);
}
.zfg-carousel-effect-slide .zfg-carousel-slide.is-active{
  transform:translateX(0);
}
.zfg-carousel-effect-slide .zfg-carousel-slide.is-leaving{
  transform:translateX(-100%);
}
.zfg-carousel-card .zfg-card-img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.zfg-layout-grid_5_hero .zfg-carousel-card .zfg-card-title,
.zfg-layout-grid_5_hero .zfg-slot-hero>.zfg-card .zfg-card-title{
  padding-top:18px;
}
.zfg-layout-grid_5_hero .zfg-carousel-card .zfg-card-title-text,
.zfg-layout-grid_5_hero .zfg-slot-hero>.zfg-card .zfg-card-title-text{
  padding-bottom:24px;
}
.zfg-carousel-dots{
  position:absolute;
  left:0;
  right:0;
  bottom:12px;
  z-index:5;
  display:flex;
  justify-content:center;
  gap:6px;
}
.zfg-dot{
  width:8px;
  height:8px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.45);
  cursor:pointer;
}
.zfg-dot.is-active{background:#fff}
.zfg-arrow{
  position:absolute;
  top:50%;
  z-index:5;
  transform:translateY(-50%);
  width:32px;
  height:32px;
  border:0;
  border-radius:50%;
  background:rgba(0,0,0,.35);
  color:#fff;
  font-size:22px;
  line-height:1;
  cursor:pointer;
}
.zfg-arrow-prev{left:8px}
.zfg-arrow-next{right:8px}
.zfg-preset-glass .zfg-card,
.zfg-preset-glass .zfg-carousel{
  box-shadow:var(--zfg-shadow), inset 0 1px 0 rgba(255,255,255,.22);
}
.zfg-preset-outline .zfg-card,
.zfg-preset-outline .zfg-carousel{
  box-shadow:none;
}
.zfg-hover-lift .zfg-card,
.zfg-hover-lift .zfg-carousel{
  transition:transform .25s ease, box-shadow .25s ease;
}
.zfg-hover-lift .zfg-card:hover,
.zfg-hover-lift .zfg-carousel:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 28px rgba(0,0,0,.16);
}
.zfg-hover-zoom .zfg-card-img{
  transition:transform .35s ease;
}
.zfg-hover-zoom .zfg-card:hover .zfg-card-img,
.zfg-hover-zoom .zfg-carousel:hover .zfg-card-img{
  transform:scale(1.06);
}
@media(max-width:768px){
  .zfg-layout-grid_5_hero{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:
      calc((100vw - 64px)/2)
      calc(100vw - 44px)
      calc((100vw - 64px)/2);
    gap:14px;
  }
  .zfg-layout-grid_5_hero .zfg-card{margin:0;min-height:0}
  .zfg-layout-grid_5_hero .zfg-slot-hero{
    grid-column:1/3;
    grid-row:2;
    width:100%;
    height:100%;
  }
  .zfg-layout-grid_5_hero .zfg-card.zfg-pos-tl{grid-column:1;grid-row:1}
  .zfg-layout-grid_5_hero .zfg-card.zfg-pos-tr{grid-column:2;grid-row:1}
  .zfg-layout-grid_5_hero .zfg-card.zfg-pos-bl{grid-column:1;grid-row:3}
  .zfg-layout-grid_5_hero .zfg-card.zfg-pos-br{grid-column:2;grid-row:3}
  .zfg-card-title{
    padding-top:0;
    background:linear-gradient(to top,rgba(0,0,0,.82) 0%,rgba(0,0,0,.28) 72%,transparent 100%);
  }
  .zfg-card-title-text{
    display:block;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    font-size:12px;
    padding:16px 8px 5px;
    line-height:1.2;
    -webkit-line-clamp:unset;
    line-clamp:unset;
    -webkit-box-orient:unset;
  }
  .zfg-layout-grid_5_hero .zfg-card.zfg-pos-tl .zfg-card-title-text,
  .zfg-layout-grid_5_hero .zfg-card.zfg-pos-tr .zfg-card-title-text,
  .zfg-layout-grid_5_hero .zfg-card.zfg-pos-bl .zfg-card-title-text,
  .zfg-layout-grid_5_hero .zfg-card.zfg-pos-br .zfg-card-title-text{
    font-size:11px;
    padding:12px 6px 4px;
  }
  .zfg-slot-hero .zfg-card-title-text{
    white-space:nowrap;
    font-size:13px;
    padding:18px 10px 22px;
  }
  .zfg-layout-grid_5_hero .zfg-carousel-card .zfg-card-title,
  .zfg-layout-grid_5_hero .zfg-slot-hero>.zfg-card .zfg-card-title{
    padding-top:0;
  }
  .zfg-carousel-dots{
    bottom:8px;
    gap:5px;
  }
  .zfg-dot{
    width:6px;
    height:6px;
  }
  .zfg-arrow{display:none}
}
