.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;
  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: 40px;
  --guifi-logo-gap: 8px;
}

/* Hoogte via aspect-ratio + padding-top fallback op .guifi-ratio */
.guifi-video-teaser{ aspect-ratio:16/9; }
.guifi-video-teaser[data-thumb-aspect="1/1"]{ aspect-ratio:1/1; }
.guifi-video-teaser[data-thumb-aspect="4/3"]{ aspect-ratio:4/3; }
.guifi-video-teaser[data-thumb-aspect="4/5"]{ aspect-ratio:4/5; }
.guifi-video-teaser[data-thumb-aspect="21/9"]{ aspect-ratio:21/9; }
.guifi-video-teaser[data-thumb-aspect="9/16"]{ aspect-ratio:9/16; }

.guifi-video-teaser .guifi-ratio{ display:block; padding-top:56.25%; }
.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:75%; }
.guifi-video-teaser[data-thumb-aspect="4/5"] .guifi-ratio{ padding-top:125%; }
.guifi-video-teaser[data-thumb-aspect="21/9"] .guifi-ratio{ padding-top:42.857%; }
.guifi-video-teaser[data-thumb-aspect="9/16"] .guifi-ratio{ padding-top:177.778%; }

/* Elementor nieuwe Container (.e-con) veroorzaakt cascaderende height:0 via drie mechanismes:
   1. .elementor-widget-container krijgt height:100% — circulaire referentie met auto flex-item.
   2. .e-con zelf heeft height:var(--height) dat naar 0 resolveert — flex-items shrinkken naar 0.
   3. In geneste containers: percentage-padding telt als 0 in flex min-content sizing — ook aspect-ratio
      werkt niet op non-replaced block flex-items in dit context.
   Fix: padding-bottom:% op .elementor-widget zelf — geeft een gegarandeerde fysieke hoogte in de
   flex layout, identiek aan de .guifi-ratio truc maar één niveau hoger. */
.e-con:has(.guifi-video-teaser){ height:auto !important; min-height:0 !important; }
/* padding-bottom:% op .elementor-widget geeft een fysieke flex-item hoogte via padding,
   zonder afhankelijk te zijn van percentage-padding in min-content context (die als 0 resolveert).
   height:0 + padding-bottom:56.25% = widget neemt 56.25% van container-breedte als hoogte in flex. */
.elementor-widget:has(> .elementor-widget-container > .guifi-video-teaser){ flex-shrink:0 !important; height:0 !important; padding-bottom:56.25% !important; overflow:visible !important; }
.elementor-widget:has(> .elementor-widget-container > .guifi-video-teaser[data-thumb-aspect="1/1"]){ padding-bottom:100% !important; }
.elementor-widget:has(> .elementor-widget-container > .guifi-video-teaser[data-thumb-aspect="4/3"]){ padding-bottom:75% !important; }
.elementor-widget:has(> .elementor-widget-container > .guifi-video-teaser[data-thumb-aspect="4/5"]){ padding-bottom:125% !important; }
.elementor-widget:has(> .elementor-widget-container > .guifi-video-teaser[data-thumb-aspect="21/9"]){ padding-bottom:42.857% !important; }
.elementor-widget:has(> .elementor-widget-container > .guifi-video-teaser[data-thumb-aspect="9/16"]){ padding-bottom:177.778% !important; }
.elementor-widget:has(> .elementor-widget-container > .guifi-video-teaser) > .elementor-widget-container{ height:auto !important; }

.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:focus,
.guifi-video-teaser .guifi-play:focus-visible{ outline: none; }
.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: var(--guifi-lb-radius, 16px);
  overflow: hidden;
  outline: none;
}

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

.guifi-video-teaser .guifi-static-embed{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  display:block;
  z-index:1;
}
.guifi-video-teaser .guifi-static-thumb{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  z-index:2;
  transition:opacity .4s;
  pointer-events:none;
}
.guifi-video-teaser .guifi-static-thumb.guifi-thumb-hidden{
  opacity:0;
}

.guifi-video-teaser:has(.guifi-static-embed) .guifi-play,
.guifi-video-teaser:has(.guifi-static-embed) .guifi-text-wrap{
  display:none;
}

.guifi-lightbox__close{
  position:absolute;
  top: 10px;
  right: 10px;
  width: 48px;
  height: 48px;
  border:0;
  border-radius: 12px;
  background: var(--guifi-lb-close-bg, rgba(255,255,255,.12)) !important;
  color: var(--guifi-lb-close-color, #fff) !important;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
}

.guifi-lightbox__close svg{
  width: 26px;
  height: 26px;
  fill: currentColor;
  display:block;
}

.guifi-lightbox__close--locked{
  opacity:.3;
  pointer-events:none;
  cursor:default;
}

/* Play button visibility — only hide on hover-capable devices; touch has no :hover */
@media (hover: hover) {
  .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-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: 44px;
  height: 44px;
  border: 0;
  border-radius: 999px;
  background: rgba(255,255,255,0.18);
  backdrop-filter: blur(6px);
  color: #fff;
  font-size: 26px;
  line-height: 44px;
  cursor: pointer;
}

.guifi-cta-close:hover{
  background: rgba(255,255,255,0.26);
}

.guifi-cta-close:focus-visible{
  outline: 2px solid rgba(255,255,255,0.55);
  outline-offset: 2px;
}


.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;
}

/* Transparent overlay that sits on top of the YouTube iframe and intercepts
   all mouse events so YouTube never sees hover — prevents its native
   title bar and center play button from appearing. */
.guifi-yt-blocker{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:auto;
  background:transparent;
}

/* Custom lightbox controls bar.
   Default: visible (for Vimeo and non-blocker cases).
   When .guifi-yt-blocker is present, JS adds --visible after 5 s so the bar
   fades in only after YouTube has auto-hidden its own native overlay. */
.guifi-lb-controls{
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 14px 14px;
  background:linear-gradient(transparent, rgba(0,0,0,.72));
  opacity:1;
  transition:opacity .6s;
  z-index:2;
  pointer-events:auto;
}
/* For YouTube with blocker: start hidden, fade in via JS after YouTube's auto-UI disappears */
.guifi-yt-blocker ~ .guifi-lb-controls{ opacity:0; pointer-events:none; }
.guifi-yt-blocker ~ .guifi-lb-controls.guifi-lb-controls--visible{ opacity:1; pointer-events:auto; }
.guifi-lb-btn{
  flex-shrink:0;
  background:none;
  border:0;
  padding:4px;
  color:#fff;
  cursor:pointer;
  line-height:0;
  border-radius:4px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.guifi-lb-btn:hover{ background:rgba(255,255,255,.15); }
.guifi-lb-btn:focus{ outline:none; }
.guifi-lb-btn:focus-visible{ outline:2px solid rgba(255,255,255,.6); outline-offset:2px; }
.guifi-lb-btn svg{ width:22px; height:22px; display:block; }
.guifi-lb-progress{
  flex:1;
  height:4px;
  background:rgba(255,255,255,.3);
  border-radius:2px;
  cursor:pointer;
  position:relative;
}
.guifi-lb-progress:hover{ height:6px; }
.guifi-lb-progress__fill{
  height:100%;
  background:#fff;
  border-radius:2px;
  width:0;
  pointer-events:none;
}
.guifi-lb-time{
  flex-shrink:0;
  font:12px/1 ui-monospace,monospace;
  color:#fff;
  white-space:nowrap;
  opacity:.85;
}
