.njs-ad{
  --njs-gradient:var(--njs-bg);
  position:relative;isolation:isolate;
  display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;
  width:100%;box-sizing:border-box;margin:20px 0;padding:var(--njs-padding,18px);
  background:var(--njs-gradient,var(--njs-bg));color:var(--njs-text);
  border:var(--njs-border-width,1px) solid var(--njs-border);border-radius:var(--njs-radius,16px);
  font-family:var(--njs-font,inherit);font-size:var(--njs-size,18px);font-weight:700;text-align:center;
  box-shadow:0 8px var(--njs-shadow,0) rgba(15,23,42,.10);overflow:hidden
}
.njs-ad-image{display:block;max-width:100%;width:auto;height:auto;max-height:280px;object-fit:cover;border-radius:max(8px,calc(var(--njs-radius) * .55))}
.njs-image-link{display:flex;align-items:center;justify-content:center;max-width:100%;min-width:0}
.njs-ad-title{line-height:1.7;min-width:0}.njs-title-link{color:inherit!important;text-decoration:none!important}.njs-title-link:hover{text-decoration:underline!important}
.njs-ad-cta{display:inline-flex;align-items:center;justify-content:center;background:var(--njs-cta-bg);color:var(--njs-cta-color)!important;text-decoration:none!important;padding:9px 18px;border-radius:999px;line-height:1.4;white-space:nowrap}

/* Stable layout choices used by the admin designer. */
.njs-layout-stacked{display:flex;flex-direction:column}
.njs-layout-horizontal{display:grid;grid-template-columns:minmax(120px,32%) minmax(0,1fr);grid-template-rows:auto auto;column-gap:18px;row-gap:10px;text-align:right;align-items:center}
.njs-layout-horizontal .njs-image-link{grid-column:1;grid-row:1 / span 2;width:100%}
.njs-layout-horizontal .njs-ad-image{width:100%;max-height:190px}
.njs-layout-horizontal .njs-ad-title{grid-column:2;grid-row:1;align-self:end;width:100%}
.njs-layout-horizontal .njs-ad-cta{grid-column:2;grid-row:2;justify-self:start;align-self:start}
.njs-layout-compact{display:flex;flex-direction:row;gap:12px;text-align:right;align-items:center}
.njs-layout-compact .njs-image-link{width:72px;height:72px;flex:0 0 72px}
.njs-layout-compact .njs-ad-image{width:72px;height:72px;object-fit:cover;border-radius:12px}
.njs-layout-compact .njs-ad-title{width:100%;flex:1 1 auto}
.njs-layout-compact .njs-ad-cta{margin:0;flex:0 0 auto}

/* Legacy template classes are kept so existing ads do not change after upgrade. */
.njs-template-capsule{max-width:100%}
.njs-template-glass{background:var(--njs-gradient,var(--njs-bg));backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--njs-text);border-color:var(--njs-border)}
.njs-template-neon{background:var(--njs-gradient,var(--njs-bg));color:var(--njs-text);border-color:var(--njs-border);box-shadow:0 0 calc(var(--njs-shadow) + 8px) var(--njs-border)}
.njs-template-flash_sale{background:var(--njs-gradient,var(--njs-bg));color:var(--njs-text);border-color:var(--njs-border)}
.njs-template-alert{background:var(--njs-gradient,var(--njs-bg));color:var(--njs-text);border-color:var(--njs-border)}
.njs-template-gold{background:var(--njs-gradient,var(--njs-bg));color:var(--njs-text);border-color:var(--njs-border)}
.njs-template-shop{background:var(--njs-gradient,var(--njs-bg));color:var(--njs-text);border-color:var(--njs-border)}
.njs-template-service{background:var(--njs-gradient,var(--njs-bg));color:var(--njs-text);border-color:var(--njs-border)}
.njs-template-realestate{background:var(--njs-gradient,var(--njs-bg));color:var(--njs-text);border-color:var(--njs-border)}
.njs-template-auto{background:var(--njs-gradient,var(--njs-bg));color:var(--njs-text);border-color:var(--njs-border)}
.njs-template-daily{background:var(--njs-gradient,var(--njs-bg));color:var(--njs-text);border-color:var(--njs-border)}
.njs-template-membership{background:var(--njs-gradient,var(--njs-bg));color:var(--njs-text);border-color:var(--njs-border)}
.njs-template-breaking{background:var(--njs-gradient,var(--njs-bg));color:var(--njs-text);border-color:var(--njs-border);border-style:dashed}
.njs-template-simple{background:var(--njs-gradient,var(--njs-bg));color:var(--njs-text);border-color:var(--njs-border)}
.njs-template-card{background:var(--njs-gradient,var(--njs-bg));color:var(--njs-text);border-color:var(--njs-border)}
.njs-template-festival{background:var(--njs-gradient,var(--njs-bg));color:var(--njs-text);border-color:var(--njs-border)}
.njs-template-shipping{background:var(--njs-gradient,var(--njs-bg));color:var(--njs-text);border-color:var(--njs-border)}
.njs-template-new_product{background:var(--njs-gradient,var(--njs-bg));color:var(--njs-text);border-color:var(--njs-border)}
.njs-template-app{background:var(--njs-gradient,var(--njs-bg));color:var(--njs-text);border-color:var(--njs-border)}
.njs-template-branding{background:var(--njs-gradient,var(--njs-bg));color:var(--njs-text);border-color:var(--njs-border);letter-spacing:.2px}

/* 8.0.1 balanced front effects: Soft Breathing is one step more visible while staying transform-only. */
.njs-ad.njs-animation-cta_glow .njs-ad-cta{position:relative;isolation:isolate;transform-origin:center;animation:njsCtaGlowButton 2.7s cubic-bezier(.4,0,.2,1) infinite!important;will-change:transform}
.njs-ad.njs-animation-cta_glow .njs-ad-cta::before{content:"";position:absolute;inset:-4px;border:2px solid var(--njs-cta-bg);border-radius:inherit;pointer-events:none;opacity:.12;transform:scale(.94);box-shadow:0 0 18px 3px var(--njs-cta-bg);animation:njsCtaGlowHalo 2.7s cubic-bezier(.4,0,.2,1) infinite!important;will-change:transform,opacity}
.njs-ad.njs-animation-border_pulse::before{content:"";position:absolute;z-index:5;inset:1px;border:2px solid var(--njs-border);border-radius:inherit;pointer-events:none;opacity:.18;transform:scale(.985);animation:njsBorderPulse791 2.9s cubic-bezier(.4,0,.2,1) infinite!important;will-change:transform,opacity}
.njs-ad.njs-animation-sweep_light .njs-ad-cta{position:relative;overflow:hidden;isolation:isolate}
.njs-ad.njs-animation-sweep_light .njs-ad-cta::after{content:"";position:absolute;z-index:2;top:-85%;bottom:-85%;left:-50%;width:38%;transform:translate3d(-270%,0,0) rotate(16deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.96),transparent);pointer-events:none;opacity:0;animation:njsCtaSweep791 3.15s cubic-bezier(.22,.61,.36,1) infinite!important;will-change:transform,opacity}
.njs-ad.njs-animation-sweep_light .njs-ad-cta>*{position:relative;z-index:3}
.njs-ad.njs-animation-breathing{transform-origin:center;animation:njsBreathing791 3.7s cubic-bezier(.4,0,.2,1) infinite!important;will-change:transform}
@keyframes njsCtaGlowButton{0%,100%{transform:scale(1)}50%{transform:scale(1.023)}}
@keyframes njsCtaGlowHalo{0%,100%{opacity:.10;transform:scale(.94)}50%{opacity:.68;transform:scale(1.065)}}
@keyframes njsBorderPulse791{0%,100%{opacity:.16;transform:scale(.985)}50%{opacity:.90;transform:scale(1.022)}}
@keyframes njsCtaSweep791{0%,22%{transform:translate3d(-285%,0,0) rotate(16deg);opacity:0}30%{opacity:.95}64%{opacity:.95}76%,100%{transform:translate3d(730%,0,0) rotate(16deg);opacity:0}}
@keyframes njsBreathing791{0%,100%{transform:scale(1)}50%{transform:scale(1.024)}}

/* Legacy animation classes stay available for ads created before 7.6. */
.njs-animation-pulse{animation:njsPulse 2.4s infinite ease-in-out}
.njs-animation-glow{animation:njsGlow 2s infinite alternate}
.njs-animation-bounce{animation:njsBounce 2.2s infinite ease-in-out}
.njs-animation-shimmer::after{content:"";position:absolute;z-index:2;top:-55%;bottom:-55%;left:-45%;width:28%;transform:translateX(-220%) rotate(14deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.34),transparent);pointer-events:none;animation:njsShimmer 2.9s infinite ease-in-out}
.njs-animation-shimmer>*{position:relative;z-index:3}
@keyframes njsPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.012)}}
@keyframes njsGlow{from{filter:drop-shadow(0 0 0 var(--njs-border))}to{filter:drop-shadow(0 0 8px var(--njs-border))}}
@keyframes njsBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes njsShimmer{0%,18%{transform:translateX(-240%) rotate(14deg)}72%,100%{transform:translateX(620%) rotate(14deg)}}

@media(max-width:600px){
  .njs-ad{margin:14px 0;padding:var(--njs-padding,14px);font-size:clamp(14px,var(--njs-size),20px);border-radius:min(var(--njs-radius),28px)}
  .njs-ad-image{max-height:190px}.njs-ad-cta{width:100%;box-sizing:border-box}
  .njs-layout-horizontal,.njs-layout-compact{display:flex;flex-direction:column;text-align:center}
  .njs-layout-horizontal .njs-image-link,.njs-layout-compact .njs-image-link{width:100%;height:auto}
  .njs-layout-horizontal .njs-ad-image,.njs-layout-compact .njs-ad-image{width:auto;height:auto;max-height:180px}
  .njs-layout-horizontal .njs-ad-cta,.njs-layout-compact .njs-ad-cta{align-self:stretch}
  .njs-ad.njs-animation-cta_glow .njs-ad-cta{animation-duration:3.05s!important}
  .njs-ad.njs-animation-border_pulse::before{animation-duration:3.25s!important}
  .njs-ad.njs-animation-sweep_light .njs-ad-cta::after{animation-duration:3.55s!important}
  .njs-ad.njs-animation-breathing{animation:njsBreathing791Mobile 4s cubic-bezier(.4,0,.2,1) infinite!important}
}
@keyframes njsBreathing791Mobile{0%,100%{transform:scale(1)}50%{transform:scale(1.015)}}
@media(prefers-reduced-motion:reduce){
  .njs-ad,.njs-ad-cta,.njs-ad::before,.njs-ad-cta::before,.njs-ad-cta::after{animation:none!important}
  .njs-animation-shimmer::after{display:none!important}
  .njs-ad.njs-animation-cta_glow .njs-ad-cta{transform:none!important}
  .njs-ad.njs-animation-cta_glow .njs-ad-cta::before{opacity:.24;transform:none!important}
  .njs-ad.njs-animation-border_pulse::before{opacity:.42;transform:none!important}
  .njs-ad.njs-animation-sweep_light .njs-ad-cta::after{opacity:.16;transform:translate3d(150%,0,0) rotate(16deg)!important}
  .njs-ad.njs-animation-breathing{transform:none!important}
}
