/* TG Screen Gallery Pro v3.2.0
   Widget-scoped defaults. Elementor controls are allowed to win. */
.tg-widget-screen-gallery.tgsgp-wrap{
  --tg-orange:#e75925;
  --tg-text:#111;
  --tg-muted:#444;
  --tg-light:#f3f4f6;
  --tgsgp-eyebrow-color:#e75925;
  --tgsgp-eyebrow-bg:#f3f4f6;
  --tgsgp-eyebrow-radius:999px;
  --tgsgp-eyebrow-padding:8px 18px;
  --tgsgp-eyebrow-mb:14px;
  --tgsgp-title-color:#111;
  --tgsgp-subtitle-color:#333;
  box-sizing:border-box;
  color:var(--tg-text);
  font-family:Poppins,system-ui,-apple-system,Segoe UI,sans-serif;
  overflow:hidden;
}
.tg-widget-screen-gallery *{box-sizing:border-box}
.tg-widget-screen-gallery.tgsgp-pad-none{padding:0}
.tg-widget-screen-gallery.tgsgp-pad-compact{padding:clamp(20px,3vw,40px) clamp(16px,4vw,44px)}
.tg-widget-screen-gallery.tgsgp-pad-comfortable{padding:clamp(28px,5vw,72px) clamp(20px,6vw,72px)}
.tg-widget-screen-gallery.tgsgp-pad-spacious{padding:clamp(40px,7vw,104px) clamp(24px,8vw,112px)}

.tg-widget-screen-gallery .tgsgp-header{max-width:980px;margin:0 auto clamp(22px,3vw,42px);text-align:center}
.tg-widget-screen-gallery .tgsgp-eyebrow{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  max-width:max-content;
  margin-left:auto;
  margin-right:auto;
  margin-bottom:var(--tgsgp-eyebrow-mb);
  gap:8px;
  padding:var(--tgsgp-eyebrow-padding);
  border-radius:var(--tgsgp-eyebrow-radius);
  background:var(--tgsgp-eyebrow-bg);
  color:var(--tgsgp-eyebrow-color);
  font-family:Poppins,system-ui,sans-serif;
  font-size:13px;
  font-weight:700;
  line-height:1.2;
}
/* Header typography defaults only. Elementor-generated CSS uses stronger selectors and should override these. */
.tg-widget-screen-gallery .tgsgp-title{
  margin:0;
  color:var(--tgsgp-title-color);
  font-family:Poppins,system-ui,sans-serif;
  font-size:var(--tgsgp-title-size, clamp(2.125rem,3vw,3.5rem));
  font-weight:800;
  line-height:.98;
  letter-spacing:-.035em;
}
.tg-widget-screen-gallery .tgsgp-subtitle{
  margin:16px auto 0;
  max-width:760px;
  color:var(--tgsgp-subtitle-color);
  font-family:Poppins,system-ui,sans-serif;
  font-size:var(--tgsgp-subtitle-size, clamp(1rem,1.25vw,1.1875rem));
  font-weight:400;
  line-height:1.55;
}


/* Header size presets. These are intentionally class-based and low-specificity. Elementor Typography controls override them when Custom is used. */
.tg-widget-screen-gallery.tgsgp-title-small{--tgsgp-title-size:clamp(1.875rem,2.6vw,3rem)}
.tg-widget-screen-gallery.tgsgp-title-medium{--tgsgp-title-size:clamp(2.125rem,3vw,3.5rem)}
.tg-widget-screen-gallery.tgsgp-title-large{--tgsgp-title-size:clamp(2.375rem,3.4vw,4rem)}
.tg-widget-screen-gallery.tgsgp-title-custom{--tgsgp-title-size:inherit}
.tg-widget-screen-gallery.tgsgp-subtitle-small{--tgsgp-subtitle-size:clamp(.9375rem,1.15vw,1.0625rem)}
.tg-widget-screen-gallery.tgsgp-subtitle-medium{--tgsgp-subtitle-size:clamp(1rem,1.25vw,1.1875rem)}
.tg-widget-screen-gallery.tgsgp-subtitle-large{--tgsgp-subtitle-size:clamp(1.0625rem,1.4vw,1.3125rem)}
.tg-widget-screen-gallery.tgsgp-subtitle-custom{--tgsgp-subtitle-size:inherit}

.tg-widget-screen-gallery .tgsgp-viewport{
  width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  touch-action:auto;
  overscroll-behavior-x:contain;
  cursor:grab;
  scroll-behavior:smooth;
}
.tg-widget-screen-gallery .tgsgp-viewport::-webkit-scrollbar{display:none}
.tg-widget-screen-gallery .tgsgp-viewport.is-dragging{cursor:grabbing;user-select:none}
.tg-widget-screen-gallery .tgsgp-track{display:flex;align-items:stretch;gap:24px;padding:4px 2px 12px;min-width:100%}
.tg-widget-screen-gallery .tgsgp-card{
  flex:0 0 420px;
  max-width:88vw;
  background:#fff;
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 18px 50px rgba(0,0,0,.08);
  border:1px solid rgba(0,0,0,.08);
  transition:transform .22s ease, box-shadow .22s ease;
}
.tg-widget-screen-gallery .tgsgp-card.is-active{box-shadow:0 24px 65px rgba(0,0,0,.14)}
.tg-widget-screen-gallery .tgsgp-card:hover{transform:translateY(-2px)}
.tg-widget-screen-gallery .tgsgp-media{position:relative;aspect-ratio:16/10;background:#f2f2f2;overflow:hidden;border-radius:24px 24px 0 0}
.tg-widget-screen-gallery .tgsgp-poster,.tg-widget-screen-gallery .tgsgp-video,.tg-widget-screen-gallery .tgsgp-media iframe{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.tg-widget-screen-gallery .tgsgp-video{opacity:0;transition:opacity .18s ease}
.tg-widget-screen-gallery .tgsgp-card.is-loaded .tgsgp-video,.tg-widget-screen-gallery .tgsgp-card.is-playing .tgsgp-video,.tg-widget-screen-gallery .tgsgp-card.is-paused .tgsgp-video{opacity:1}
.tg-widget-screen-gallery .tgsgp-card.is-playing .tgsgp-poster,.tg-widget-screen-gallery .tgsgp-card.is-paused .tgsgp-poster{opacity:0;pointer-events:none}

.tg-widget-screen-gallery .tgsgp-play{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  z-index:5;
  width:58px;
  height:58px;
  border:none;
  border-radius:999px;
  background:rgba(255,255,255,.92);
  color:#111;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 12px 34px rgba(0,0,0,.22);
  cursor:pointer;
  transition:opacity .16s ease, transform .16s ease, background .16s ease;
}
.tg-widget-screen-gallery .tgsgp-play:hover{transform:translate(-50%,-50%) scale(1.06)}
.tgsgp-icon{display:none;position:relative;color:currentColor}
.tgsgp-icon-play{
  width:0;
  height:0;
  border-top:10px solid transparent;
  border-bottom:10px solid transparent;
  border-left:16px solid currentColor;
  margin-left:4px;
}
.tgsgp-icon-pause{
  width:18px;
  height:22px;
}
.tgsgp-icon-pause:before,
.tgsgp-icon-pause:after{
  content:"";
  position:absolute;
  top:0;
  width:6px;
  height:22px;
  background:currentColor;
  border-radius:3px;
}
.tgsgp-icon-pause:before{left:2px}
.tgsgp-icon-pause:after{right:2px}

.tgsgp-card.is-paused .tgsgp-play{opacity:1;pointer-events:auto}
.tgsgp-card.is-paused .tgsgp-icon-play{display:block}
.tgsgp-card.is-paused .tgsgp-icon-pause{display:none}
.tgsgp-card:not(.is-playing) .tgsgp-icon-play{display:block}
.tgsgp-card:not(.is-playing) .tgsgp-icon-pause{display:none}
.tgsgp-card.is-playing .tgsgp-icon-play{display:none}
.tgsgp-card.is-playing .tgsgp-icon-pause{display:block}
.tgsgp-card.is-playing .tgsgp-play{opacity:0;pointer-events:none}
.tgsgp-card.is-playing:hover .tgsgp-play,
.tgsgp-card.is-playing.show-control .tgsgp-play{opacity:1;pointer-events:auto}

.tg-widget-screen-gallery .tgsgp-content{padding:22px 24px 26px}
.tg-widget-screen-gallery .tgsgp-badge{display:inline-flex;padding:6px 12px;border-radius:999px;background:#f1f1f1;color:#111;font-size:12px;font-weight:700;margin-bottom:12px}
.tg-widget-screen-gallery .tgsgp-card-title{margin:0 0 8px;font-family:Poppins,system-ui,sans-serif;font-weight:800;font-size:21px;line-height:1.2;color:#111}
.tg-widget-screen-gallery .tgsgp-card-text{margin:0;color:#444;font-size:15px;line-height:1.55}
.tg-widget-screen-gallery .tgsgp-button{display:inline-flex;margin-top:16px;padding:11px 18px;border-radius:999px;background:var(--tg-orange);color:#fff;text-decoration:none;font-weight:700}
.tg-widget-screen-gallery .tgsgp-button:hover{color:#fff;background:#cf481b;filter:none}

@media(max-width:767px){
  .tg-widget-screen-gallery .tgsgp-track{gap:16px;padding-bottom:8px;scroll-snap-type:none}
  .tg-widget-screen-gallery .tgsgp-card{flex-basis:82vw;max-width:82vw;scroll-snap-align:none}
  .tg-widget-screen-gallery .tgsgp-content{padding:18px}
  .tg-widget-screen-gallery .tgsgp-play{width:54px;height:54px}
  .tg-widget-screen-gallery .tgsgp-card:hover{transform:none}
  .tg-widget-screen-gallery .tgsgp-card.is-playing:hover .tgsgp-play{opacity:0;pointer-events:none}
  .tg-widget-screen-gallery .tgsgp-card.is-playing.show-control .tgsgp-play{opacity:1;pointer-events:auto}
}

/* v3 Smart Interaction Engine */
.tg-widget-screen-gallery .tgsgp-viewport{position:relative;outline:none}
:where(.tgsgp-viewport:focus-visible){box-shadow:0 0 0 3px rgba(231,89,37,.22);border-radius:24px}
.tg-widget-screen-gallery .tgsgp-hint{
  position:absolute;
  right:18px;
  bottom:18px;
  z-index:8;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 14px;
  border-radius:999px;
  background:rgba(17,17,17,.76);
  color:#fff;
  font-family:Poppins,system-ui,sans-serif;
  font-size:12px;
  font-weight:700;
  line-height:1;
  pointer-events:none;
  opacity:.92;
  transform:translateY(0);
  transition:opacity .2s ease, transform .2s ease;
}
.tg-widget-screen-gallery.tgsgp-interacted .tgsgp-hint{opacity:0;transform:translateY(6px)}
@media(max-width:767px){.tg-widget-screen-gallery .tgsgp-hint{display:none}}

/* v3.1 local isolation: no cross-widget selectors. */
.tg-widget-screen-gallery .tgsgp-title{font-weight:800;}
.tg-widget-screen-gallery .tgsgp-card-title{font-weight:800;}

/* v3.2.3: reliable rounded clipping for native media and Vimeo.
   The wrapper performs the clipping; the iframe slightly overscans to avoid
   anti-aliasing seams and Vimeo edge gaps. */
.tg-widget-screen-gallery.tgsgp-wrap{
  --tgsgp-card-radius:24px;
}
.tg-widget-screen-gallery .tgsgp-card{
  border-radius:var(--tgsgp-card-radius);
  overflow:hidden;
  isolation:isolate;
}
.tg-widget-screen-gallery .tgsgp-media{
  position:relative;
  overflow:hidden!important;
  border-radius:var(--tgsgp-card-radius)!important;
  isolation:isolate;
  transform:translateZ(0);
  -webkit-transform:translateZ(0);
  -webkit-mask-image:-webkit-radial-gradient(white, black);
  clip-path:inset(0 round var(--tgsgp-card-radius));
}
.tg-widget-screen-gallery .tgsgp-media .tgsgp-poster,
.tg-widget-screen-gallery .tgsgp-media .tgsgp-video{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-width:100%!important;
  min-height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
  border-radius:inherit!important;
}
.tg-widget-screen-gallery .tgsgp-media iframe,
.tg-widget-screen-gallery .tgsgp-media .tgsgp-vimeo-frame{
  position:absolute!important;
  top:-2px!important;
  right:-2px!important;
  bottom:-2px!important;
  left:-2px!important;
  width:calc(100% + 4px)!important;
  height:calc(100% + 4px)!important;
  min-width:calc(100% + 4px)!important;
  min-height:calc(100% + 4px)!important;
  max-width:none!important;
  border:0!important;
  border-radius:inherit!important;
  display:block!important;
  transform:translateZ(0);
  -webkit-transform:translateZ(0);
}
.tg-widget-screen-gallery .tgsgp-media.is-vimeo-active{
  background:#000;
}


/* v3.2.4: Vimeo players are intrinsically 16:9. Keeping the media wrapper
   at 16:10 forces Vimeo to letterbox the video and exposes a dark strip at
   the lower edge. Use the native Vimeo ratio so the picture reaches the
   rounded lower corners cleanly. */
.tg-widget-screen-gallery .tgsgp-media--vimeo{
  aspect-ratio:16 / 9!important;
}
.tg-widget-screen-gallery .tgsgp-media--vimeo iframe,
.tg-widget-screen-gallery .tgsgp-media--vimeo .tgsgp-vimeo-frame{
  top:-3px!important;
  right:-3px!important;
  bottom:-3px!important;
  left:-3px!important;
  width:calc(100% + 6px)!important;
  height:calc(100% + 6px)!important;
  min-width:calc(100% + 6px)!important;
  min-height:calc(100% + 6px)!important;
}

/* v3.2.5: equal-height cards with bottom-aligned CTA buttons. */
.tg-widget-screen-gallery .tgsgp-card{
  display:flex;
  flex-direction:column;
  height:auto;
}
.tg-widget-screen-gallery .tgsgp-media{
  flex:0 0 auto;
}
.tg-widget-screen-gallery .tgsgp-content{
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  align-items:flex-start;
  width:100%;
}
.tg-widget-screen-gallery .tgsgp-button{
  margin-top:auto;
  translate:0 16px;
  margin-bottom:16px;
}
