:root {
	--cg-ugc-focus-color: #007bff;
}

/* -- Splide -- */
.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__arrow{-ms-flex-align:center;align-items:center;background:#ccc;border:0;border-radius:50%;cursor:pointer;display:-ms-flexbox;display:flex;height:2em;-ms-flex-pack:center;justify-content:center;opacity:.7;padding:0;position:absolute;top:50%;transform:translateY(-50%);width:2em;z-index:1}.splide__arrow svg{fill:#000;height:1.2em;width:1.2em}.splide__arrow:hover:not(:disabled){opacity:.9}.splide__arrow:disabled{opacity:.3}.splide__arrow:focus-visible{outline:3px solid #007bff;outline-offset:0px}.splide__arrow--prev{left:1em}.splide__arrow--prev svg{transform:scaleX(-1)}.splide__arrow--next{right:1em}.splide.is-focus-in .splide__arrow:focus{outline:3px solid #007bff;outline-offset:3px}.splide__pagination{bottom:.5em;left:0;padding:0 1em;position:absolute;right:0;z-index:1}.splide__pagination__page{background:#ccc;border:0;border-radius:50%;display:inline-block;height:8px;margin:3px;opacity:.7;padding:0;position:relative;transition:transform .2s linear;width:8px}.splide__pagination__page.is-active{background:#fff;transform:scale(1.4);z-index:1}.splide__pagination__page:hover{cursor:pointer;opacity:.9}.splide__pagination__page:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__pagination__page:focus{outline:3px solid #0bf;outline-offset:3px}.splide__progress__bar{background:#ccc;height:3px}.splide__slide{-webkit-tap-highlight-color:rgba(0,0,0,0)}.splide__slide:focus{outline:0}@supports(outline-offset:-3px){.splide__slide:focus-visible{outline:3px solid #0bf;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide__slide:focus-visible{border:3px solid #0bf}}@supports(outline-offset:-3px){.splide.is-focus-in .splide__slide:focus{outline:3px solid #0bf;outline-offset:-3px}}@media screen and (-ms-high-contrast:none){.splide.is-focus-in .splide__slide:focus{border:3px solid #0bf}.splide.is-focus-in .splide__track>.splide__list>.splide__slide:focus{border-color:#0bf}}.splide__toggle{cursor:pointer}.splide__toggle:focus-visible{outline:3px solid #0bf;outline-offset:3px}.splide.is-focus-in .splide__toggle:focus{outline:3px solid #0bf;outline-offset:3px}.splide__track--nav>.splide__list>.splide__slide{border:3px solid transparent;cursor:pointer}.splide__track--nav>.splide__list>.splide__slide.is-active{border:3px solid #000}.splide__arrows--rtl .splide__arrow--prev{left:auto;right:1em}.splide__arrows--rtl .splide__arrow--prev svg{transform:scaleX(1)}.splide__arrows--rtl .splide__arrow--next{left:1em;right:auto}.splide__arrows--rtl .splide__arrow--next svg{transform:scaleX(-1)}.splide__arrows--ttb .splide__arrow{left:50%;transform:translate(-50%)}.splide__arrows--ttb .splide__arrow--prev{top:1em}.splide__arrows--ttb .splide__arrow--prev svg{transform:rotate(-90deg)}.splide__arrows--ttb .splide__arrow--next{bottom:1em;top:auto}.splide__arrows--ttb .splide__arrow--next svg{transform:rotate(90deg)}.splide__pagination--ttb{bottom:0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;left:auto;padding:1em 0;right:.5em;top:0}

#cg-ugc__primaryCarousel-track {
  padding-top: 5px; /* Zoom hover effect */
}

/* -- Slide -- */
.cg-ugc__slide {
  position: relative;
  width: 100%; 
}
/* Remove default focus styles from the li */
.splide.is-focus-in .splide__slide.cg-ugc__slide:focus {
  outline: none;
}
/* Apply focus styles to the thumbnail when parent li is focused */
.cg-ugc__slide:focus-visible .cg-ugc__preview {
  outline: 3px solid #0bf;
  outline-offset: -3px;
  border-radius: 6px;
}

/* -- Preview Images -- */
.cg-ugc__slide .cg-ugc__preview {
  pointer-events: none;
  object-fit: cover;
  width: 100%;
  height: 100%; 
}
.cg-ugc__preview img {
  width: 100%;
}
.cg-ugc__thumbnail {
  width: 100%;
  display: block;
  position: relative;
  cursor: pointer;
}
.cg-ugc__thumbnail .cg-ugc__preview {
  height: 100%;
  width: 100%;
  display: block;
  cursor: pointer;  
  transition: transform 0.15s;
}
.cg-ugc__thumbnail .cg-ugc__preview img,
.cg-ugc__thumbnail .cg-ugc__preview video {
    border-radius: 6px;
}
.cg-ugc__thumbnail:hover .cg-ugc__preview {
  transform: scale(1.01);
}

/* -- Preview skeleton loading -- */
.cg-ugc__preview {
  position: relative;
  width: 100%;
  padding-bottom: 177.78%; /* 9:16 aspect ratio (9/16 = 0.5625, 1/0.5625 = 1.7778) */
}
.cg-ugc__skeleton {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #eee;
  animation: cg-ugc-pulse 1.5s infinite;
  border-radius: 8px;
  opacity: 1;
  transition: opacity 0.3s;
}
.cg-ugc__preview.loaded .cg-ugc__skeleton {
  opacity: 0;
  pointer-events: none;
}

@keyframes cg-ugc-pulse {
  0% { background-color: #eee; }
  50% { background-color: #e0e0e0; }
  100% { background-color: #eee; }
}

.cg-ugc__preview img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 1;
  transition: opacity 0.3s;
}

/* -- Play icon -- */
.cg-ugc__playIcon {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 36px;
  height: 36px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  pointer-events: none;  
}
.cg-ugc__playIcon svg {
  width: 20px;
  height: 20px;
  fill: #fff;
}

/* -- Caption -- */
.cg-ugc__previewCaption {
  padding: 10px;
  text-align: center;
  font-size: clamp(0.875rem, 0.748rem + 0.4065vw, 1rem); /* 14-16 */
  text-wrap: pretty;
  line-height: 1.4;
}

/* -- Modal -- */
.cg-ugc__micromodal-slide {
  display: none;
}
.cg-ugc__micromodal-slide.is-open {
  display: block;
}
.cg-ugc__modal.is-open {
  display: flex;
}
.cg-ugc__modal__overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.8);
  z-index: -1;
}
.cg-ugc__modalContainer {
  display: flex;
  align-items: center;
}

/* -- Modal Header -- */
.cg-ugc__modal__header {
  position: absolute;
  display: flex;
  justify-content: space-between;
  box-sizing: border-box;
  width: 75%;
  z-index: 1;
}
.cg-ugc__modal__close {
  display: flex;
  justify-content: center;
  align-items: center;
  border: none;
  color: white;
  cursor: pointer;
  width: 44px;
  height: 44px;
  background: transparent;
  border-radius: 50%;
  outline: none;
}
.cg-ugc__modal__close:focus-visible,
.cg-ugc__mute-toggle:focus-visible {
  outline: 3px solid #007bff;
  outline-offset: -3px;
}
.cg-ugc__modal__close svg {
  width: 24px;
  height: 24px;
}

/* -- Fullscreen -- */
.cg-ugc__modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.9);
  z-index: 1000;
  justify-content: center;
  align-items: center;
}
.cg-ugc__modalWrapper {
  display: flex;
  width: 100%;
  height: 100%;
  flex-direction: row;
  overflow: hidden;
}
.cg-ugc__modalContainer {
  display: flex;
  width: 100%;
  height: 100%;
  flex-direction: row;
  align-items: stretch;
}

/* -- Video Section - */
.cg-ugc__modalPlayer {
  width: 75%;
  height: 100vh;
  background-color: black;  
}
.cg-ugc__modalPlayer media-player {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cg-ugc__modalPlayer media-player video {
  height: 100%;
}

/* -- Vidstack -- */
.cg-ugc__container [data-media-player][data-layout=video]:not([data-fullscreen]) {
  border: none;
  border-radius: 0;
}
.ccg-ugc__container .vds-controls {
  border-radius: 0;
}

/* Video.js */
.video-js {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.video-js.vjs-fluid:not(.vjs-audio-only-mode) {
  height: 100% !important;
}
.video-js.vjs-default-skin .vjs-big-play-button { 
  display: none; 
}
.cg-ugc__modalPlayer .video-js .vjs-control-bar {
  z-index: 3;
  background-color: transparent;
}
.cg-ugc__modalPlayer .video-js .vjs-load-progress {
  background: transparent;
}
.cg-ugc__modalPlayer .video-js .vjs-load-progress div {
  background: rgba(0,0,0,0.01);
}

.cg-ugc__modalPlayer .video-js .vjs-volume-panel,
.cg-ugc__modalPlayer .video-js .vjs-picture-in-picture-control,
.cg-ugc__modalPlayer .video-js .vjs-fullscreen-control,
.cg-ugc__modalPlayer .video-js .vjs-subs-caps-button,
.cg-ugc__modalPlayer .video-js .vjs-captions-button {
  display: none;
}
.splide__slide:not(.is-visible) .cg-ugc__modalPlayer .video-js .vjs-control-bar {
  display: none;
}

/* Unmute button on mobile */
.cg-ugc__modalPlayer {
  position: relative;
}
.cg-ugc__unmute-button {
  position: absolute;
  background: rgba(0, 0, 0, 0.7);
  color: white;
  border: none;
  cursor: pointer;
  z-index: 2;
  font-size: 14px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 120px;
  height: 120px;
  justify-content: center;
  align-items: center;
  backdrop-filter: blur(4px);
  background-color: #ffffff1a;
  border-radius: 50%;
  display: none; /* Hidden by default, shown on mobile via flex when muted */
}
.cg-ugc__unmute-button svg {
  width: 60px;
  height: 60px;
  fill: #fff;
}
.cg-ugc__modalContent {
  width: 100vw;
  display: flex;
}
.cg-ugc__productContent {
  line-height: 1.5;
}
.cg-ugc__productCard-image img {
  height: auto;
  width: auto;
  display: block;
  max-width: 150px;
  max-height: 150px;
}
.cg-ugc__productCard-image {
  margin-bottom: 1rem;
}
.cg-ugc__productCard-title {
  font-size: 20px;
  font-weight: 700;
}
.cg-ugc__productCard-price {
  font-size: 16px;
}
.cg-ugc__productCard-cta__minimal {
  border: none;
  padding: 0;
  background-color: #111;
  width: 40px;
  height: 40px;
  border-radius: 8px;
  display: flex;
  justify-content: center;
  align-items: center;
}
.cg-ugc__productCard-cta__minimal svg {
  stroke: #fff;
  width: 26px;
}
.cg-ugc__productCard-image img {
  height: auto;
  width: auto;
  display: block;
  max-width: 150px;
  max-height: 150px;
}
.cg-ugc__additionalContent-description {
  color: #323232;
  font-size: 14px;
}
.cg-ugc__poweredby span {
  opacity: 0.8;
}
.cg-ugc__poweredby a {
  text-decoration: none;
  font-weight: 600;
}

/* -- Modal Arrows -- */
.cg-ugc__modal .splide__arrows {
  position: absolute;
  left: 75%;
  top: 0px;
  bottom: auto;
  margin-left: -30px;
  height: 100dvh;    
}
.cg-ugc__modal .splide__arrows--ttb .splide__arrow--prev {
  margin-top: -3em;
  top: 50%;
}
.cg-ugc__modal .splide__arrows--ttb .splide__arrow--next {
  margin-bottom: -3.5em;
  top: calc(50% + 0.5rem);
}
.cg-ugc__modal .splide__arrow {
  backdrop-filter: blur(4px);
  background-color: #ffffff1a;
  width: 2.5em;
  height: 2.5em;
}
.cg-ugc__modal .splide__arrow svg {
  fill: none;
  stroke: #fff;
  width: 20px;
  height: 20px;
}
.cg-ugc__modal .splide__arrows--ttb .splide__arrow--prev svg,
.cg-ugc__modal .splide__arrows--ttb .splide__arrow--next svg {
  transform: none;
}

/* -- Mute toggle -- */
.cg-ugc__thumbnail .cg-ugc__thumbnail-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cg-ugc__mute-toggle {
  z-index: 2;
  display: flex;
  justify-content: center;
  align-items: center;
  border: none;
  color: white;
  cursor: pointer;
  background: transparent;
  border-radius: 50%;
  width: 44px;
  height: 44px;
  outline: none;
  order: -1;
}
.cg-ugc__mute-toggle svg {
  width: 20px;
  height: 20px;
  stroke: white;
}
.cg-ugc__mute-toggle .volume-on,
.cg-ugc__mute-toggle .volume-off {
  position: absolute;
  transition: opacity 0.2s;
}
.cg-ugc__mute-toggle[data-muted="true"] .volume-on {
  opacity: 0;
}
.cg-ugc__mute-toggle[data-muted="true"] .volume-off {
  opacity: 1;
}
.cg-ugc__mute-toggle[data-muted="false"] .volume-on {
  opacity: 1;
}
.cg-ugc__mute-toggle[data-muted="false"] .volume-off {
  opacity: 0;
}

/* -- Focus states -- */
.splide__slide video {
  pointer-events: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  outline: none;
  tabindex: -1;
}
.cg-ugc__slide:focus-visible .cg-ugc__thumbnail video {
  outline: 3px solid var(--cg-ugc-focus-color);
  outline-offset: -3px;
  border-radius: 6px;
}
.splide__slide.cg-ugc__slide:focus:not(:focus-visible) {
  outline: none;
}

/* -- Pause/Play video on interaction and display play icon -- */
.cg-ugc__video-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
}
.cg-ugc__video-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  background: transparent;
  cursor: pointer;
  z-index: 2;
}
.cg-ugc__play-button {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.6);
  border: 2px solid white;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  color: white;
  display: none;
}
.cg-ugc__play-button svg {
  width: 32px;
  height: 32px;
}
.cg-ugc__play-button:hover {
  background: rgba(0, 0, 0, 0.8);
}
/* Hide play button during slide transitions */
.splide__slide:not(.is-active) .cg-ugc__play-button {
  display: none;
}
.is-visible .cg-ugc__video-wrapper.is-paused .cg-ugc__play-button {
  display: flex;
}
.cg-ugc__play-button.hidden {
  display: none !important; /* Important is required */
}

/* -- Desktop -- */
@media (min-width: 993px) {
  .cg-ugc__modal__header {
    padding-top: 10px;
  }
  .cg-ugc__productContent {
    width: 25%;
    height: 100vh;
    background-color: #fff;
    padding: 1.5rem 1.5rem 1rem 1.5rem;
    overflow-y: auto;
    box-sizing: border-box;
    display: flex;
    flex-direction: column; 
  }
  .cg-ugc__productCard-cta__wide {
    width: 100%;
    background: #111;
    color: #fff;
    padding: 16px 20px;
    border: none;
    font-size: 16px;
    font-weight: 700;
    border-radius: 4px;
    cursor: pointer;
    margin: 0.75rem 0 1.5rem 0;
  }
  .cg-ugc__productCard-cta__minimal {
    display: none;
  }
  .cg-ugc__poweredby {
    display: none;
  }
}

/* -- Mobile -- */
@media (max-width: 992px) {
  .cg-ugc__modal__header {
    width: 100%;
    top: 40px;
  }
  /* Play icon */
  .cg-ugc__playIcon {
    width: 28px;
    height: 28px;
  }
  .cg-ugc__playIcon svg {
    width: 16px;
    height: 16px;
  }
  /* Modal grid */
  .cg-ugc__modalContent {
    flex-direction: column;
  }
  .cg-ugc__modalPlayer {
    width: 100%;
    height: 100dvh;
  }
  .cg-ugc__modalPlayer .video-js .vjs-tech {
    object-fit: cover;
  }
  /* Modal arrows */
  .cg-ugc__modal .splide__arrows {
    left: 100%;
    margin-left: -30px;
  }
  /* Modal product */
  .cg-ugc__additionalContent {
    display: none;
  }
  .cg-ugc__productContent {
    height: auto;
    padding: 12px;
    position: absolute;
    bottom: 40px;
    left: 15px;
    width: calc(100% - 30px);
    border-radius: 6px;
    box-sizing: border-box;
    z-index: 3;
  }
  .cg-ugc__productCard {
    display: flex;
    align-items: center;
  }
  .cg-ugc__productCard-image {
    width: 60px;
    flex-shrink: 0;
    margin: 0;
  }
  .cg-ugc__productCard img {
    width: 60px;
    height: 60px;
    border-radius: 8px;
    object-fit: cover;
  }
  .cg-ugc__productCard-title {
    font-size: 13px;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2; /* Number of lines */
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-right: 50px;
  }
  .cg-ugc__productCard-price {
    font-size: 13px;
    margin-bottom: 0.25rem;
  }
  .cg-ugc__productCard-details {
    width: 100%;
    display: flex;
    flex-direction: column;
    padding: 0 12px;
  }
  .cg-ugc__productContent {
    background-color: rgba(255, 255, 255, 0.85);
  }
  .cg-ugc__productCard-cta__minimal {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 12px;
  }
  .cg-ugc__productCard-cta__wide {
    display: none;
  }
  .cg-ugc__poweredby {
    position: absolute;
    bottom: -25px;
    width: 100%;
    left: 0px;
    text-align: center;
    font-size: 11px;
    color: #fff;
  }
  .cg-ugc__poweredby span {
    opacity: 0.9;
  }
  .cg-ugc__poweredby a {
    text-decoration: none;
    font-weight: bold;
    color: #fff;
  }
  .cg-ugc__modalPlayer .video-js .vjs-control-bar {
    top: 10px;
    bottom: auto;
  }
  .cg-ugc__modalPlayer .vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {
    visibility: visible;
    opacity: 1; 
  }
}