/* KIYAYA Banner Builder — Frontend */

/* container */
.kbb-banner{
  width: 100%;
  display: block;
  line-height: 0;
  overflow: visible; /* allow outer shadow */
}

/* shadow wrapper (kept in normal flow; JS sets its scaled width/height) */
.kbb-banner-shadow{
  display: inline-block;
  vertical-align: top;
  line-height: 0;
  font-size: 0;
  overflow: visible;
  transform: translateZ(0); /* avoid GPU clipping issues in some themes */
}

/* inner canvas (ALWAYS original pixel size via inline style) */
.kbb-banner-inner{
  position: relative;
  display: block;
  overflow: hidden; /* clip layers to radius */
}

/* layers */
.kbb-layer{
  position: absolute;
  box-sizing: border-box;
  overflow: hidden;
}

.kbb-layer img{
  width: 100% !important;
  height: 100% !important;
  display: block !important;
}

/* text */
.kbb-layer .kbb-text{
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 10px;
  box-sizing: border-box;
  line-height: 1.05;
  pointer-events: none;
}

/* full-banner click overlay */
.kbb-click{
  position: absolute;
  inset: 0;
  z-index: 50;
  display: block;
  text-decoration: none;
}

/* ensure layers above background */
.kbb-layer{ z-index: 10; }

/* animations */
.kbb-anim-fade{ animation: kbbFadeIn 1.3s ease-in-out infinite alternate; }
.kbb-anim-glow{ animation: kbbGlowPulse 1.6s ease-in-out infinite alternate; }
.kbb-anim-slide > .kbb-text,
.kbb-anim-slide .kbb-text,
.kbb-anim-slide img{
  animation: kbbSlideIn 1.2s ease-in-out infinite alternate;
}

@keyframes kbbFadeIn{ from{ opacity: .7; } to{ opacity: 1; } }
@keyframes kbbGlowPulse{ from{ filter: drop-shadow(0 0 0 rgba(255,255,255,0)); } to{ filter: drop-shadow(0 0 18px rgba(255,255,255,0.5)); } }
@keyframes kbbSlideIn{ from{ transform: translateX(-18px); opacity:0; } to{ transform: translateX(0); opacity:1; } }

@media (max-width:768px){
  .kbb-layer img{ object-fit: contain !important; }
}
