.guifi-video-teaser{
  --guifi-icon-color: #ffffff;
  --guifi-btn-tx: -50%;
  --guifi-btn-ty: -50%;
  --guifi-button-offset-x: 0px;
  --guifi-button-offset-y: 0px;
--guifi-arrow-offset-x: 0px;
  --guifi-arrow-offset-y: 0px;
  --guifi-logo-offset-x: 0px;
  --guifi-logo-offset-y: 0px;
--guifi-logo-size: 40px;
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: 0;
cursor: pointer;
  background: #000;

  --guifi-text-y: 85%;
  --guifi-gradient-h: 360px;

  --guifi-grad-color: #000000;
  --guifi-grad-alpha: .65;
  --guifi-grad-rgb: 0 0 0;

  --guifi-btn-radius: 20px;
  --guifi-btn-radius-hover: 20px;
  --guifi-btn-color: #ff0000;
  --guifi-btn-color-hover: #ff1a1a;
  --guifi-btn-x: 50%;
  --guifi-btn-y: 50%;
  --guifi-logo-size: 28px;
  --guifi-logo-gap: 8px;
}

/* Ratio based on THUMBNAIL aspect */
.guifi-video-teaser .guifi-ratio{ display:block; padding-top: calc(100% / (16/9)); }
.guifi-video-teaser[data-thumb-aspect="1/1"] .guifi-ratio{ padding-top: 100%; }
.guifi-video-teaser[data-thumb-aspect="4/3"] .guifi-ratio{ padding-top: calc(100% / (4/3)); }
.guifi-video-teaser[data-thumb-aspect="4/5"] .guifi-ratio{ padding-top: calc(100% / (4/5)); }
.guifi-video-teaser[data-thumb-aspect="21/9"] .guifi-ratio{ padding-top: calc(100% / (21/9)); }
.guifi-video-teaser[data-thumb-aspect="9/16"] .guifi-ratio{ padding-top: calc(100% / (9/16)); }

.guifi-video-teaser .guifi-preview,
.guifi-video-teaser .guifi-embed{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit: cover;
}

.guifi-video-teaser .guifi-preview{ z-index: 2; }

/* Gradient layer: driven by data-grad-zone + center style */
.guifi-video-teaser.guifi-has-gradient::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  pointer-events:none;
  z-index: 2;
}

/* Bottom zone: gradient starts at bottom and runs up */
.guifi-video-teaser.guifi-has-gradient[data-grad-zone="bottom"]::after{
  bottom: 0;
  height: var(--guifi-gradient-h);
  background: linear-gradient(
    to top,
    rgb(var(--guifi-grad-rgb) / var(--guifi-grad-alpha)) 0%,
    rgb(var(--guifi-grad-rgb) / var(--guifi-grad-alpha)) 35%,
    rgb(var(--guifi-grad-rgb) / 0) 100%
  );
}

/* Top zone: hard at top, light fade towards bottom */
.guifi-video-teaser.guifi-has-gradient[data-grad-zone="top"]::after{
  top: 0;
  height: var(--guifi-gradient-h);
  background: linear-gradient(
    to bottom,
    rgb(var(--guifi-grad-rgb) / var(--guifi-grad-alpha)) 0%,
    rgb(var(--guifi-grad-rgb) / var(--guifi-grad-alpha)) 22%,
    rgb(var(--guifi-grad-rgb) / 0) 100%
  );
}

/* Center zone */
.guifi-video-teaser.guifi-has-gradient[data-grad-zone="center"]::after{
  top: 50%;
  transform: translateY(-50%);
  height: var(--guifi-gradient-h);
}

.guifi-video-teaser.guifi-has-gradient[data-grad-zone="center"][data-center-grad-style="fade"]::after{
  background:
    linear-gradient(to top, rgb(var(--guifi-grad-rgb) / var(--guifi-grad-alpha)), rgb(var(--guifi-grad-rgb) / 0)),
    linear-gradient(to bottom, rgb(var(--guifi-grad-rgb) / var(--guifi-grad-alpha)), rgb(var(--guifi-grad-rgb) / 0));
}

.guifi-video-teaser.guifi-has-gradient[data-grad-zone="center"][data-center-grad-style="hard"]::after{
  background:
    linear-gradient(to top,
      rgb(var(--guifi-grad-rgb) / 0) 0%,
      rgb(var(--guifi-grad-rgb) / var(--guifi-grad-alpha)) 45%,
      rgb(var(--guifi-grad-rgb) / var(--guifi-grad-alpha)) 55%,
      rgb(var(--guifi-grad-rgb) / 0) 100%
    );
}

/* Play button */
.guifi-video-teaser .guifi-play{
  position:absolute;
  left: var(--guifi-btn-x);
  top: var(--guifi-btn-y);
transform: translate(calc(var(--guifi-btn-tx) + var(--guifi-button-offset-x, 0px)), calc(var(--guifi-btn-ty) + var(--guifi-button-offset-y, 0px)));
  width: var(--guifi-btn-size, 92px);
  height: var(--guifi-btn-size, 92px);
  
  padding: 0;
  overflow: hidden;
border: 0;
  border-radius: var(--guifi-btn-radius, 20px) !important;
  background-color: var(--guifi-btn-color, #ff0000) !important;
  display: grid;
  place-items: center;
  box-shadow: 0 18px 50px rgba(0,0,0,.35);
  transition: transform .15s ease, filter .15s ease, border-radius .15s ease, background-color .15s ease;
  z-index: 4;
}



.guifi-video-teaser .guifi-play:hover{
  background-color: var(--guifi-btn-color-hover, var(--guifi-btn-color, #ff0000)) !important;
}
.guifi-video-teaser:hover .guifi-play{
  transform: translate(calc(var(--guifi-btn-tx) + var(--guifi-button-offset-x, 0px)), calc(var(--guifi-btn-ty) + var(--guifi-button-offset-y, 0px))) scale(1.04);
  filter: brightness(1.05);
  border-radius: var(--guifi-btn-radius-hover);
  background: var(--guifi-btn-color-hover);
}

.guifi-video-teaser .guifi-play .guifi-play-inner{
  position: relative;
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  

  padding: 0;
  overflow: hidden;
}

.guifi-video-teaser .guifi-play .guifi-play-logo{
  width: var(--guifi-logo-size);
  height: var(--guifi-logo-size);
  object-fit: contain;
  display:block;
}

/* Text overlay */
.guifi-text-wrap{
  position:absolute;
  left:0;
  right:0;
  top: var(--guifi-text-y);
  transform: translateY(-50%);
  z-index: 3;
  pointer-events:none;
}

.guifi-text{ width: 100%; }

.guifi-title{
  margin: 0 0 6px;
  font-size: clamp(20px, 3vw, 32px);
  font-weight: 700;
  line-height: 1.2;
}

.guifi-subtitle{
  font-size: clamp(14px, 2vw, 18px);
  opacity: .92;
}

/* Fade-in animation on hover */
.guifi-video-teaser.guifi-fade-text .guifi-text{
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .2s ease, transform .2s ease;
}
.guifi-video-teaser.guifi-fade-text:hover .guifi-text{
  opacity: 1;
  transform: translateY(0);
}

/* Hide title/subtitle after click */
.guifi-video-teaser.guifi-playing[data-hide-text="yes"][data-open="inline"] .guifi-text-wrap{display:none;}

/* Lightbox */
.guifi-lightbox{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.75);
  display: grid;
  place-items: center;
  z-index: 999999;
  padding: 24px;
}

.guifi-lightbox__inner{
  position: relative;
  width: min(1000px, 92vw);
  background: #000;
  border-radius: 16px;
  overflow: hidden;
}

.guifi-lightbox__inner iframe{
  width:100%;
  height:100%;
  border:0;
  display:block;
}

.guifi-lightbox__close{
  position:absolute;
  top: 10px;
  right: 10px;
  width: 44px;
  height: 44px;
  border:0;
  border-radius: 12px;
  background: rgba(255,255,255,.12);
  color:#fff;
  cursor:pointer;
  font-size: 22px;
  line-height: 1;
}

/* Play button visibility */
.guifi-video-teaser[data-btn-visibility="hover"] .guifi-play{
  opacity: 0;
  pointer-events: none;
}
.guifi-video-teaser[data-btn-visibility="hover"]:hover .guifi-play{
  opacity: 1;
  pointer-events: auto;
}

.guifi-preview-fallback{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:1;
}

.guifi-play-label{
  position:absolute;
  left:50%;
  top: calc(var(--guifi-btn-y, 50%) + (var(--guifi-btn-size, 92px) / 2) + 10px);
  transform: translateX(-50%);
  z-index:4;
  font-size: 14px;
  color: #fff;
  text-shadow: 0 2px 12px rgba(0,0,0,.55);
  pointer-events:none;
  white-space: nowrap;
}
.guifi-play-label.guifi-hide-mobile{ }
@media (max-width: 767px){
  .guifi-play-label.guifi-hide-mobile{ display:none; }
}

/* Text animation presets */
.guifi-video-teaser[data-text-anim="fade"] .guifi-text{ opacity:0; transition: opacity .2s ease; }
.guifi-video-teaser[data-text-anim="fade"]:hover .guifi-text{ opacity:1; }

.guifi-video-teaser[data-text-anim="slide"] .guifi-text{ opacity:0; transform: translateY(10px); transition: opacity .2s ease, transform .2s ease; }
.guifi-video-teaser[data-text-anim="slide"]:hover .guifi-text{ opacity:1; transform: translateY(0); }

.guifi-video-teaser[data-text-anim="scale"] .guifi-text{ opacity:0; transform: scale(.98); transition: opacity .2s ease, transform .2s ease; }
.guifi-video-teaser[data-text-anim="scale"]:hover .guifi-text{ opacity:1; transform: scale(1); }

.guifi-debug{
  position:absolute;
  left: 10px;
  top: 10px;
  z-index: 5;
  font: 12px/1.2 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  background: rgba(0,0,0,.55);
  color:#fff;
  padding:6px 8px;
  border-radius: 10px;
  pointer-events:none;
  max-width: 90%;
  white-space: pre;
}

.guifi-consent{
  position:absolute;
  inset:0;
  z-index: 6;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(0,0,0,.25);
  backdrop-filter: blur(2px);
  color:#fff;
  font-weight: 600;
  text-align:center;
  padding: 16px;
}
.guifi-consent button{
  border:0;
  background: rgba(0,0,0,.6);
  color:#fff;
  padding: 10px 14px;
  border-radius: 12px;
  cursor:pointer;
}

img.guifi-preview-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;display:block;}

.guifi-video-teaser.guifi-force-fallback .guifi-preview{opacity:0;visibility:hidden;}
.guifi-video-teaser.guifi-force-fallback img.guifi-preview-fallback{opacity:1;visibility:visible;}

.guifi-video-teaser.guifi-text-follow-btn .guifi-text-wrap{top:calc(50% + (var(--guifi-btn-size, 92px)/2) + var(--guifi-text-btn-offset, 16px));transform:none;}

.guifi-play-arrow{display:block;}



/* Icon overlay centering */
.guifi-video-teaser .guifi-play-inner{
  position: relative;
}

.guifi-video-teaser .guifi-play-arrow,
.guifi-video-teaser .guifi-play-logo{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(calc(-50% + var(--guifi-icon-offset-x, 0px)), calc(-50% + var(--guifi-icon-offset-y, 0px)));
  display: flex;
  align-items: center;
  justify-content: center;
}

.guifi-video-teaser .guifi-play-arrow svg{
  width: calc(var(--guifi-btn-size, 92px) * 0.42);
height: calc(var(--guifi-btn-size, 92px) * 0.42);
display:block;
}

.guifi-video-teaser .guifi-play-logo svg{
  width: max(12px, var(--guifi-logo-size, 40px));
  height: max(12px, var(--guifi-logo-size, 40px));
  display:block;
}
.guifi-lightbox-close svg{
  width: 22px;
  height: 22px;
  fill: #fff;
  display:block;
}



.guifi-video-teaser .guifi-play,
.guifi-video-teaser .guifi-play:hover,
.guifi-video-teaser .guifi-play:hover::before{
  border-radius: var(--guifi-btn-radius-hover, var(--guifi-btn-radius));
}


 (used with custom X/Y) */
.guifi-btn-origin-center .guifi-video-teaser{
  --guifi-icon-color: #ffffff; --guifi-btn-tx: -50%; --guifi-btn-ty: -50%; }
.guifi-btn-origin-top-left .guifi-video-teaser{
  --guifi-icon-color: #ffffff; --guifi-btn-tx: 0%; --guifi-btn-ty: 0%; }
.guifi-btn-origin-top-right .guifi-video-teaser{
  --guifi-icon-color: #ffffff; --guifi-btn-tx: -100%; --guifi-btn-ty: 0%; }
.guifi-btn-origin-bottom-left .guifi-video-teaser{
  --guifi-icon-color: #ffffff; --guifi-btn-tx: 0%; --guifi-btn-ty: -100%; }
.guifi-btn-origin-bottom-center .guifi-video-teaser{
  --guifi-icon-color: #ffffff; --guifi-btn-tx: -50%; --guifi-btn-ty: -100%; }
.guifi-btn-origin-bottom-right .guifi-video-teaser{
  --guifi-icon-color: #ffffff; --guifi-btn-tx: -100%; --guifi-btn-ty: -100%; }


.guifi-video-teaser .guifi-play{color: var(--guifi-icon-color, #fff);}

.guifi-video-teaser .guifi-play svg, .guifi-video-teaser .guifi-play svg *{fill: currentColor; stroke: currentColor;}

.guifi-lightbox .guifi-lightbox__inner iframe,
.guifi-lightbox .guifi-lightbox__inner video{
  width: 100%;
  height: 100%;
}

/* Style-transfer helpers (Elementor copy/paste styles) */
@media (hover:hover){
  .guifi-btnvis-hover .guifi-play{opacity:0; pointer-events:none;}
  .guifi-btnvis-hover:hover .guifi-play{opacity:1; pointer-events:auto;}
}

.guifi-play-logo--svg svg{display:block; width:100%; height:100%;}

.guifi-lightbox__inner{box-sizing:border-box;}

/* Lightbox layout with padding */
.guifi-lightbox__inner{display:flex; align-items:center; justify-content:center;}
.guifi-lightbox__inner iframe,
.guifi-lightbox__inner video{max-height:100%; max-width:100%; height:auto;}

/* Consistent icon sizing (frontend vs editor) */
.guifi-video-teaser .guifi-play-inner{
  width: 100%;
  height: 100%;
  display:flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}
.guifi-video-teaser .guifi-play-arrow{
  width: 45%;
  height: 45%;
  display:block;
}
.guifi-video-teaser .guifi-play-logo{
  width: 45%;
  height: 45%;
  display:block;
}
.guifi-video-teaser .guifi-play-logo--svg svg{
  width:100%;
  height:100%;
  display:block;
}

/* Lightbox loader */
.guifi-lightbox__loader{
  position:absolute;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
}
.guifi-lightbox.is-loading .guifi-lightbox__loader{display:flex;}
.guifi-lightbox__loader::after{
  content:'';
  width:48px;
  height:48px;
  border-radius:50%;
  border:4px solid rgba(255,255,255,.35);
  border-top-color: rgba(255,255,255,.9);
  animation: guifiSpin .9s linear infinite;
}
@keyframes guifiSpin{to{transform:rotate(360deg);}}
.guifi-lightbox__inner{position:relative;}

/* iOS autoplay-with-sound overlay (shows a clear play intent) */
.guifi-embed-wrap{position:relative; width:100%; height:100%;}
.guifi-ios-autoplay-overlay{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(0,0,0,.35);
  backdrop-filter: blur(2px);
}
.guifi-ios-autoplay-btn{
  border:0;
  cursor:pointer;
  padding: 12px 18px;
  border-radius: 14px;
  font-weight: 700;
  background: rgba(0,0,0,.75);
  color:#fff;
}

/* Auto logo mode: if logo present, hide arrow to avoid see-through */
.guifi-video-teaser .guifi-play-logo{display:none;}
.guifi-video-teaser.guifi-has-logo .guifi-play-arrow{display:none !important;}
.guifi-video-teaser.guifi-has-logo .guifi-play-logo{display:block;}
.guifi-video-teaser .guifi-play-logo--img img{width:100%;height:100%;object-fit:contain;display:block;}


/* If logo present, never show the arrow behind it */
.guifi-video-teaser[data-icon-mode="logo"] .guifi-play-arrow,
.guifi-video-teaser.guifi-has-logo .guifi-play-arrow{
  display:none !important;
}

/* Custom SVG logo should inherit icon color */
.guifi-video-teaser .guifi-play-icon{
  width:100%;
  height:100%;
  display:block;
  color: var(--guifi-icon-color);
  fill: currentColor;
}
.guifi-video-teaser .guifi-play-icon *{
  fill: currentColor !important;
  stroke: currentColor !important;
}

.guifi-video-teaser .guifi-play-arrow{color:var(--guifi-icon-color);fill:currentColor;}

/* Ensure SVG logo inherits icon color even when SVG had hardcoded styles */
.guifi-video-teaser .guifi-play-icon{
  color: var(--guifi-icon-color) !important;
  fill: currentColor !important;
}
.guifi-video-teaser .guifi-play-icon [fill]:not([fill="none"]){
  fill: currentColor !important;
}
.guifi-video-teaser .guifi-play-icon [stroke]:not([stroke="none"]){
  stroke: currentColor !important;
}

/* Built-in/library SVG icons */
.guifi-video-teaser .guifi-play-inner svg.guifi-play-icon{
  width:100%;
  height:100%;
  display:block;
}
.guifi-video-teaser .guifi-play-logo{color:var(--guifi-icon-color,#fff);}

/* CTA overlay (lightbox + teaser) */
.guifi-cta-overlay{
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  z-index: 999999;
  background: rgba(0,0,0,0.55);
}

/* When CTA is injected inside teaser element, switch to absolute */
.guifi-video-teaser > .guifi-cta-overlay{
  position: absolute;
  inset: 0;
  z-index: 20;
}

.guifi-cta-box{
  position: relative;
  width: min(520px, 100%);
  border-radius: 16px;
  padding: 18px 18px 16px;
  background: #111;
  color: #fff;
  box-shadow: 0 14px 40px rgba(0,0,0,0.35);
}

.guifi-cta-close{
  position: absolute;
  top: 8px;
  right: 10px;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,0.14);
  color: #fff;
  font-size: 22px;
  line-height: 36px;
  cursor: pointer;
}

.guifi-cta-title{
  font-size: 18px;
  font-weight: 700;
  margin: 4px 0 8px;
}

.guifi-cta-text{
  font-size: 14px;
  opacity: 0.92;
  margin: 0 0 14px;
}

.guifi-cta-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  border-radius: 12px;
  background: #fff;
  color: #111;
  text-decoration: none;
  font-weight: 700;
}
