.vsg-widget{width:100%;position:relative;z-index:1;contain:layout style}
.vsg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}

/* Natural, equal-height cards. No fixed aspect ratio and no parent-height inheritance. */
.vsg-card{min-width:0;position:relative;display:flex;min-height:var(--vsg-card-min-height,680px)}
.vsg-card__border{position:relative;width:100%;display:flex;padding:var(--border-width);border-radius:var(--radius);background:linear-gradient(var(--border-angle),var(--border-1),var(--border-2));box-shadow:0 0 var(--glow) color-mix(in srgb,var(--glow-color) 28%,transparent);overflow:hidden;box-sizing:border-box}
.vsg-card__inner{position:relative;z-index:1;width:100%;min-height:100%;border-radius:calc(var(--radius) - var(--border-width));overflow:hidden;display:flex;flex-direction:column;background:var(--card-bg)}

/* Media area: always fill the card edge-to-edge. No top/side black bars. */
.vsg-card__image{contain:paint;position:relative;flex:0 0 var(--image-height,300px);height:var(--image-height,300px);overflow:hidden;background:var(--card-bg);display:flex;align-items:center;justify-content:center;background-size:cover;background-position:center;background-repeat:no-repeat}
.vsg-card__image:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:46%;z-index:3;background:linear-gradient(to bottom,rgba(5,11,10,0) 0%,rgba(5,11,10,.22) 28%,rgba(5,11,10,.72) 70%,var(--card-bg) 100%);pointer-events:none}
.vsg-card__media-fade{position:absolute;left:0;right:0;bottom:-1px;height:30%;z-index:4;background:linear-gradient(to bottom,transparent 0%,color-mix(in srgb,var(--card-bg) 55%,transparent) 48%,var(--card-bg) 100%);pointer-events:none}
.vsg-card__image img,.vsg-card__image video{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);object-fit:cover;object-position:50% 50%;display:block;transform:none!important;transition:none!important;background:transparent}
.vsg-card:hover .vsg-card__image img,.vsg-card:hover .vsg-card__image video{transform:none!important}

.vsg-card__content{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;padding:var(--content-pad);padding-bottom:max(var(--content-pad),32px);position:relative;background:var(--card-bg);box-sizing:border-box}
.vsg-card__title{margin:0 0 10px;font-size:clamp(22px,2vw,34px);line-height:1.05;font-weight:750;letter-spacing:-.025em}
.vsg-card__desc{margin:0 0 28px;font-size:clamp(14px,1.05vw,18px);line-height:1.45}

/* Button stays fully inside the card with real bottom spacing. */
.vsg-card__button,.vsg-widget .vsg-card__button{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:12px;border:1px solid var(--vsg-accent)!important;background:transparent!important;color:var(--vsg-accent)!important;border-radius:999px;padding:12px 18px;font:inherit;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;appearance:none;-webkit-appearance:none;box-shadow:none!important;flex:0 0 auto}
.vsg-card__button:hover,.vsg-card__button:focus-visible,.vsg-widget .vsg-card__button:hover,.vsg-widget .vsg-card__button:focus-visible{background:var(--vsg-accent)!important;border-color:var(--vsg-accent)!important;color:#000!important;transform:translateY(-1px);outline:none!important;box-shadow:none!important}
.vsg-card__button *{color:inherit!important}

/* Single long border glow – same masked conic-gradient method as the VIRAL Text Box. */
@property --vsg-runner-angle{
  syntax:'<angle>';
  initial-value:0deg;
  inherits:false;
}
.vsg-card--video_ai .vsg-card__border{isolation:isolate;overflow:visible}
.vsg-border-runner{
  --vsg-runner-angle:0deg;
  position:absolute;
  inset:-2px;
  z-index:4;
  padding:2px;
  border-radius:var(--radius);
  pointer-events:none;
  opacity:.98;
  background:conic-gradient(
    from var(--vsg-runner-angle),
    transparent 0deg,
    transparent 250deg,
    rgba(0,255,225,0) 262deg,
    color-mix(in srgb,var(--vsg-runner-color,#d7fffb) 32%,transparent) 276deg,
    color-mix(in srgb,var(--vsg-runner-color,#d7fffb) 72%,transparent) 294deg,
    var(--vsg-runner-color,#d7fffb) 313deg,
    color-mix(in srgb,var(--vsg-runner-color,#d7fffb) 82%,transparent) 330deg,
    color-mix(in srgb,var(--vsg-runner-color,#d7fffb) 36%,transparent) 344deg,
    rgba(0,255,225,0) 356deg,
    transparent 360deg
  );
  filter:drop-shadow(0 0 4px color-mix(in srgb,var(--vsg-runner-color,#d7fffb) 92%,transparent)) drop-shadow(0 0 11px color-mix(in srgb,var(--vsg-accent,#00ffe1) 62%,transparent)) drop-shadow(0 0 20px color-mix(in srgb,var(--vsg-accent,#00ffe1) 28%,transparent));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  animation:vsgBorderRun var(--vsg-runner-speed,1.15s) linear infinite;animation-play-state:paused;
}
.vsg-widget.vsg-is-active .vsg-border-runner{animation-play-state:running}
@keyframes vsgBorderRun{from{--vsg-runner-angle:0deg}to{--vsg-runner-angle:360deg}}

/* Video remains cheap: poster is shown until JS attaches and starts the source. */
.vsg-card__media--video{background:transparent;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.vsg-card__media--video:not([src]){object-fit:cover}

/* Popup – stable full-page v1.3 behavior. */
.vsg-modal{position:fixed!important;inset:0!important;z-index:2147483000!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:20px!important;opacity:0;visibility:hidden;transition:opacity .18s ease,visibility .18s ease;font-family:inherit}
.vsg-modal.is-open{opacity:1;visibility:visible}
.vsg-modal__backdrop{position:absolute!important;inset:0!important;background:var(--vsg-overlay,rgba(0,0,0,.78))!important;backdrop-filter:blur(var(--vsg-overlay-blur,12px))!important;-webkit-backdrop-filter:blur(var(--vsg-overlay-blur,12px))!important}
.vsg-modal__panel{position:relative!important;z-index:1!important;width:min(680px,calc(100vw - 32px))!important;max-height:min(82vh,760px)!important;overflow:auto!important;background:var(--vsg-popup-bg,#07110f)!important;border:1px solid color-mix(in srgb,var(--vsg-accent,#00ffe1) 68%,transparent)!important;border-radius:26px!important;padding:clamp(30px,5vw,56px)!important;box-shadow:0 24px 90px rgba(0,0,0,.7),0 0 46px color-mix(in srgb,var(--vsg-accent,#00ffe1) 18%,transparent)!important;transform:translateY(12px) scale(.985);transition:transform .22s ease;box-sizing:border-box!important}
.vsg-modal.is-open .vsg-modal__panel{transform:translateY(0) scale(1)}
.vsg-modal__title{margin:0 54px 18px 0!important;color:var(--vsg-popup-title,#fff)!important;font-size:clamp(28px,4vw,48px)!important;line-height:1.03!important;letter-spacing:-.03em!important}
.vsg-modal__text{color:var(--vsg-popup-text,#d6dfdd)!important;font-size:clamp(16px,1.45vw,20px)!important;line-height:1.65!important}
.vsg-modal__text p:last-child{margin-bottom:0}
.vsg-modal__close{position:absolute!important;top:18px!important;right:18px!important;width:44px!important;height:44px!important;border-radius:50%!important;border:1px solid var(--vsg-accent,#00ffe1)!important;background:rgba(0,0,0,.35)!important;color:var(--vsg-accent,#00ffe1)!important;display:grid!important;place-items:center!important;padding:0!important;margin:0!important;cursor:pointer!important;appearance:none!important;-webkit-appearance:none!important;box-sizing:border-box!important;line-height:1!important}
.vsg-modal__close span{display:block!important;width:auto!important;height:auto!important;font-size:30px!important;line-height:.8!important;font-family:Arial,sans-serif!important;font-weight:300!important;transform:translateY(-1px)!important;color:inherit!important}
.vsg-modal__close:hover,.vsg-modal__close:focus-visible{background:var(--vsg-accent,#00ffe1)!important;color:#000!important;border-color:var(--vsg-accent,#00ffe1)!important;outline:none!important}
body.vsg-modal-open{overflow:hidden!important}

@media(max-width:1024px){.vsg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vsg-card--video_ai{order:-1}}
@media(max-width:767px){.vsg-grid{grid-template-columns:1fr}.vsg-card{min-height:var(--vsg-card-min-height-mobile,620px)}.vsg-card--video_ai{order:-1}.vsg-card__button{padding:11px 15px}.vsg-modal{padding:12px!important}.vsg-modal__panel{width:100%!important;max-height:calc(100dvh - 24px)!important;padding:30px 22px 26px!important;border-radius:22px!important}.vsg-modal__close{top:12px!important;right:12px!important;width:42px!important;height:42px!important}.vsg-modal__title{margin-right:46px!important}}
@media(prefers-reduced-motion:reduce){.vsg-card__button,.vsg-modal,.vsg-modal__panel{transition:none!important}.vsg-border-runner{animation:none!important}}
