.ffm-hvg-grid{display:grid;grid-template-columns:repeat(var(--ffm-hvg-cols),minmax(0,1fr));width:100%;min-width:0;box-sizing:border-box}
.ffm-hvg-card{position:relative;min-width:0;overflow:hidden;background:#111;cursor:pointer}
.ffm-hvg-media{position:relative;width:100%;aspect-ratio:var(--ffm-hvg-aspect);overflow:hidden;background:#111}
.ffm-hvg-poster,.ffm-hvg-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ffm-hvg-video{opacity:0;transition:opacity .18s ease}
.ffm-hvg-card.is-playing .ffm-hvg-video{opacity:1}
.ffm-hvg-card.is-playing .ffm-hvg-poster{opacity:0}
.ffm-hvg-shade{position:absolute;inset:0;background:rgba(0,0,0,.08);pointer-events:none;opacity:0;transition:opacity .18s ease}
.ffm-hvg-card.is-playing .ffm-hvg-shade{opacity:1}
.ffm-hvg-info{position:absolute;left:0;right:0;bottom:0;padding:14px;color:#fff;z-index:3;text-shadow:0 1px 4px rgba(0,0,0,.5);pointer-events:none}
.ffm-hvg-title{font-weight:600;font-size:15px}.ffm-hvg-price{font-size:13px;margin-top:3px}.ffm-hvg-price del{opacity:.7}
.ffm-hvg-link{position:absolute;inset:0;z-index:5;font-size:0;text-indent:-9999px}
.ffm-hvg-empty{padding:20px;background:#f5f5f5}
@media(max-width:1024px){.ffm-hvg-grid{grid-template-columns:repeat(min(3,var(--ffm-hvg-cols)),minmax(0,1fr))}}
@media(max-width:767px){.ffm-hvg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ffm-hvg-info{padding:10px}.ffm-hvg-title{font-size:13px}.ffm-hvg-price{font-size:12px}}
@media(prefers-reduced-motion:reduce){.ffm-hvg-video,.ffm-hvg-shade{transition:none}}


/* V1.0.3 MOBILE VISIBILITY HARDENING */
.ffm-hvg-grid,
.elementor-element .ffm-hvg-grid{
  visibility:visible !important;
  opacity:1 !important;
  box-sizing:border-box !important;
}
.ffm-hvg-grid{display:grid !important;}
.ffm-hvg-card{display:block !important;visibility:visible !important;opacity:1 !important;}
.ffm-hvg-media{display:block !important;visibility:visible !important;min-height:1px !important;}

@media (max-width:767px){
  .ffm-hvg-grid,
  .elementor-element .ffm-hvg-grid{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    min-height:1px !important;
    visibility:visible !important;
    opacity:1 !important;
  }
  .ffm-hvg-card,
  .ffm-hvg-media{
    width:100% !important;
    max-width:100% !important;
  }
}

@media (max-width:480px){
  .ffm-hvg-grid,
  .elementor-element .ffm-hvg-grid{
    grid-template-columns:1fr !important;
  }
}


/* V1.0.4: layout/visibility recovery for Elementor/XStore containers */
.elementor-widget-ffm_hover_video_grid,
.elementor-widget-ffm_hover_video_grid > .elementor-widget-container,
.ffm-hvg-force-visible {
  visibility: visible !important;
  opacity: 1 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
}
.elementor-widget-ffm_hover_video_grid.ffm-hvg-force-visible,
.elementor-widget-ffm_hover_video_grid > .elementor-widget-container.ffm-hvg-force-visible {
  display: block !important;
}
.ffm-hvg-grid {
  position: relative !important;
  display: grid !important;
  align-items: stretch !important;
  align-content: start !important;
  grid-auto-rows: auto !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}
.ffm-hvg-card {
  display: block !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.ffm-hvg-media {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-height: 180px !important;
}
.ffm-hvg-poster,
.ffm-hvg-video {
  max-width: none !important;
  min-width: 0 !important;
  min-height: 0 !important;
}
@media(max-width:767px){
  .elementor-widget-ffm_hover_video_grid,
  .elementor-widget-ffm_hover_video_grid > .elementor-widget-container {
    display:block !important;
    width:100% !important;
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
  }
  .ffm-hvg-grid {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    width:100% !important;
    height:auto !important;
    min-height:1px !important;
  }
}
@media(max-width:480px){
  .ffm-hvg-grid { grid-template-columns:1fr !important; }
}
