.shk-promo-banner {
  --shk-banner-navy: var(--shk-navy, #081a34);
  --shk-banner-blue: var(--shk-blue, #123c69);
  --shk-banner-gold: var(--shk-gold, #d5a72f);
  --shk-banner-gold-light: #f3dc8d;
  --shk-banner-cream: var(--shk-cream, #f7f2e8);
  --shk-banner-text: #182436;
  width: 100%;
  padding: clamp(22px, 4vw, 44px) 20px;
  background:
    radial-gradient(circle at 8% 16%, rgba(213,167,47,.11), transparent 25%),
    linear-gradient(180deg, #fff 0%, #faf8f2 100%);
  box-sizing: border-box;
  font-family: "Vazirmatn", Tahoma, Arial, sans-serif;
}
.shk-promo-banner *, .shk-promo-banner *::before, .shk-promo-banner *::after { box-sizing: border-box; }
.shk-promo-banner__shell {
  position: relative;
  width: min(1180px, 100%);
  margin: 0 auto;
  border-radius: 30px;
  isolation: isolate;
  z-index: 1;
  /* Option B: visibly breathing outer halo. */
  animation: shkBannerVisibleHalo 3.6s ease-in-out infinite;
  will-change: box-shadow, transform;
}

/* Gold halo immediately outside the banner edge. */
.shk-promo-banner__shell::before {
  content: "";
  position: absolute;
  inset: -8px;
  border-radius: 36px;
  border: 1px solid rgba(243,220,141,.42);
  pointer-events: none;
  z-index: 0;
  opacity: .42;
  box-shadow:
    0 0 10px rgba(243,220,141,.25),
    0 0 26px rgba(213,167,47,.16);
  animation: shkBannerOuterGlow 3.6s ease-in-out infinite;
  will-change: opacity, box-shadow, transform;
}

/* Soft navy/gold shadow under the card, also breathing. */
.shk-promo-banner__shell::after {
  content: "";
  position: absolute;
  left: 4%;
  right: 4%;
  bottom: -22px;
  height: 44px;
  border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(8,26,52,.34) 0%, rgba(213,167,47,.16) 42%, transparent 74%);
  filter: blur(15px);
  pointer-events: none;
  z-index: 0;
  opacity: .46;
  transform: scaleX(.90) translateY(0);
  animation: shkBannerFloorGlow 3.6s ease-in-out infinite;
  will-change: opacity, transform, filter;
}

@keyframes shkBannerVisibleHalo {
  0%, 100% {
    transform: translateY(0);
    box-shadow:
      0 18px 34px rgba(8,26,52,.18),
      0 0 0 1px rgba(213,167,47,.16),
      0 0 10px rgba(213,167,47,.14);
  }
  50% {
    transform: translateY(-1px);
    box-shadow:
      0 25px 54px rgba(8,26,52,.30),
      0 0 0 2px rgba(243,220,141,.55),
      0 0 30px rgba(213,167,47,.55),
      0 0 58px rgba(213,167,47,.22);
  }
}

@keyframes shkBannerOuterGlow {
  0%, 100% {
    opacity: .32;
    transform: scale(.994);
    box-shadow: 0 0 8px rgba(243,220,141,.18), 0 0 18px rgba(213,167,47,.12);
  }
  50% {
    opacity: .90;
    transform: scale(1.008);
    box-shadow: 0 0 18px rgba(243,220,141,.66), 0 0 42px rgba(213,167,47,.40);
  }
}

@keyframes shkBannerFloorGlow {
  0%, 100% { opacity: .30; transform: scaleX(.90) translateY(0); filter: blur(14px); }
  50% { opacity: .72; transform: scaleX(1.03) translateY(5px); filter: blur(19px); }
}

.shk-promo-banner__card {
  position: relative;
  min-height: 330px;
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(360px, .96fr);
  overflow: hidden;
  border: 1px solid rgba(213,167,47,.34);
  border-radius: 28px;
  background: radial-gradient(circle at 82% 28%, #174d80 0, var(--shk-banner-blue) 28%, var(--shk-banner-navy) 68%, #041126 100%);
  box-shadow: 0 22px 60px rgba(8,26,52,.15);
  isolation: isolate;
  z-index: 1;
}
  50% { box-shadow: 0 26px 68px rgba(8,26,52,.20), 0 0 24px rgba(213,167,47,.20); }
}
.shk-promo-banner__card::before {
  content: "";
  position: absolute;
  inset: 10px;
  border: 1px solid rgba(243,220,141,.15);
  border-radius: 20px;
  pointer-events: none;
  z-index: 4;
}
/* Inner light sweep across the banner image/card. */
.shk-promo-banner__card::after {
  content: "";
  position: absolute;
  inset: -12% -18%;
  pointer-events: none;
  z-index: 3;
  background:
    linear-gradient(118deg,
      rgba(255,255,255,0) 29%,
      rgba(243,220,141,0.00) 37%,
      rgba(243,220,141,0.10) 43%,
      rgba(255,245,204,0.24) 47%,
      rgba(255,250,230,0.34) 50%,
      rgba(255,245,204,0.24) 53%,
      rgba(243,220,141,0.10) 57%,
      rgba(243,220,141,0.00) 63%,
      rgba(255,255,255,0) 71%);
  mix-blend-mode: screen;
  opacity: .82;
  transform: translateX(-115%) skewX(-18deg);
  animation: shkSweepAcross 7.8s ease-in-out infinite;
}
@keyframes shkSweepAcross {
  0%, 18% { transform: translateX(-120%) skewX(-18deg); opacity: 0; }
  26% { opacity: .52; }
  40% { opacity: .90; }
  54% { opacity: .72; }
  66% { transform: translateX(112%) skewX(-18deg); opacity: 0; }
  100% { transform: translateX(112%) skewX(-18deg); opacity: 0; }
}
.shk-promo-banner__ray {
  position: absolute;
  width: 560px;
  height: 560px;
  border-radius: 50%;
  inset-inline-start: -240px;
  top: -260px;
  opacity: .10;
  background: repeating-conic-gradient(from 0deg, var(--shk-banner-gold) 0 3deg, transparent 3deg 11deg);
  z-index: 0;
}
.shk-promo-banner__spark { position: absolute; width: 7px; height: 7px; border-radius: 50%; background: var(--shk-banner-gold); opacity: .52; box-shadow: 0 0 0 8px rgba(213,167,47,.06); z-index: 1; }
.shk-promo-banner__spark--one { inset-inline-start: 44%; top: 17%; }
.shk-promo-banner__spark--two { inset-inline-start: 8%; bottom: 14%; width: 4px; height: 4px; }
.shk-promo-banner__content {
  position: relative;
  z-index: 5;
  align-self: center;
  padding: clamp(34px, 5vw, 62px);
  color: #fff;
}
.shk-promo-banner__eyebrow { display: inline-flex; align-items: center; gap: 10px; color: var(--shk-banner-gold-light); font-size: 12px; font-weight: 900; letter-spacing: .08em; }
.shk-promo-banner__eyebrow span { width: 34px; height: 2px; background: var(--shk-banner-gold); }
.shk-promo-banner__content h2 { margin: 14px 0 15px; color: #fff; font-size: clamp(30px, 4vw, 48px); line-height: 1.22; letter-spacing: -.02em; }
.shk-promo-banner__message { max-width: 680px; color: rgba(255,255,255,.82); font-size: clamp(14px, 1.6vw, 17px); line-height: 1.95; }
.shk-promo-banner__message p { margin: 0 0 10px; }
.shk-promo-banner__message p:last-child { margin-bottom: 0; }
.shk-promo-banner__button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 24px;
  padding: 12px 20px;
  border-radius: 999px;
  background: var(--shk-banner-gold);
  color: var(--shk-banner-navy) !important;
  font-weight: 900;
  font-size: 13px;
  text-decoration: none !important;
  box-shadow: 0 12px 30px rgba(213,167,47,.24);
  transition: transform .22s ease, box-shadow .22s ease, background .22s ease;
}
.shk-promo-banner__button:hover { transform: translateY(-2px); background: #e2b83f; box-shadow: 0 16px 34px rgba(213,167,47,.32); }
.shk-promo-banner__button-arrow { font-size: 17px; line-height: 1; }
.shk-promo-banner__media { position: relative; z-index: 2; min-height: 330px; overflow: hidden; background: #102c4a; }
.shk-promo-banner__media > a { display: block; width: 100%; height: 100%; }
.shk-promo-banner__image { display: block; width: 100%; height: 100%; min-height: 330px; object-fit: cover; object-position: center; transition: transform .55s ease; }
.shk-promo-banner__card:hover .shk-promo-banner__image { transform: scale(1.025); }
.shk-promo-banner__media-shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(8,26,52,.50), transparent 32%); }
.shk-promo-banner--image-left .shk-promo-banner__media { order: -1; }
.shk-promo-banner--image-left .shk-promo-banner__media-shade { background: linear-gradient(270deg, rgba(8,26,52,.50), transparent 32%); }
.shk-promo-banner--image .shk-promo-banner__card { display: block; min-height: 0; background: #fff; }
.shk-promo-banner--image .shk-promo-banner__media { min-height: 0; }
.shk-promo-banner--image .shk-promo-banner__image { width: 100%; height: auto; min-height: 0; max-height: 680px; object-fit: contain; background: #fff; }
.shk-promo-banner--image .shk-promo-banner__media-shade { display: none; }
.shk-promo-banner--text .shk-promo-banner__card { grid-template-columns: 1fr; min-height: 300px; }
.shk-promo-banner--text .shk-promo-banner__content { max-width: 920px; }
.shk-promo-banner[dir="rtl"] .shk-promo-banner__content { text-align: right; }
.shk-promo-banner[dir="ltr"] .shk-promo-banner__content { text-align: left; font-family: "Montserrat", Arial, sans-serif; }
@media (max-width: 860px) {
  .shk-promo-banner__card { grid-template-columns: 1fr; }
  .shk-promo-banner__media, .shk-promo-banner--image-left .shk-promo-banner__media { order: -1; min-height: 250px; }
  .shk-promo-banner__image { min-height: 250px; max-height: 430px; }
  .shk-promo-banner__media-shade, .shk-promo-banner--image-left .shk-promo-banner__media-shade { background: linear-gradient(180deg, transparent 60%, rgba(8,26,52,.52)); }
}
@media (max-width: 560px) {
  .shk-promo-banner { padding: 16px 12px 28px; }
  .shk-promo-banner__card { border-radius: 21px; }
  .shk-promo-banner__card::before { inset: 7px; border-radius: 15px; }
  .shk-promo-banner__content { padding: 30px 24px 34px; }
  .shk-promo-banner__content h2 { font-size: clamp(27px, 9vw, 38px); }
  .shk-promo-banner__media, .shk-promo-banner__image { min-height: 220px; }
}

@media (prefers-reduced-motion: reduce) {
  .shk-promo-banner__shell,
  .shk-promo-banner__shell::before,
  .shk-promo-banner__shell::after,
  .shk-promo-banner__card,
  .shk-promo-banner__card::after {
    animation: none !important;
  }
  .shk-promo-banner__shell {
    box-shadow: 0 20px 46px rgba(8,26,52,.24), 0 0 0 1px rgba(213,167,47,.28), 0 0 22px rgba(213,167,47,.25);
  }
  .shk-promo-banner__shell::before { opacity: .58; }
  .shk-promo-banner__card::after { transform: translateX(0) skewX(-18deg); opacity: .22; }
}