/* AI Engineering promotion banner. Geometry is theme-independent so changing
   theme never changes the banner or countdown dimensions. */
.banner-spring.banner-spring--ai {
  --ai-accent: #28bad9;
  --ai-violet: #7466e8;
  --ai-height: 9.6rem;
  position: relative;
  isolation: isolate;
  display: flex;
  width: 100%;
  min-height: var(--ai-height);
  overflow: hidden;
  border-block: 1px solid rgba(62, 143, 211, .2) !important;
  background: radial-gradient(circle at 8% 15%, rgba(113,92,232,.12), transparent 25%), radial-gradient(circle at 91% 90%, rgba(24,180,210,.12), transparent 28%), linear-gradient(112deg,#f8fbff,#eef7ff 48%,#f4f1ff) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 .7rem 2.6rem rgba(39,72,124,.1) !important;
}

.banner-spring.banner-spring--ai::before,
.banner-spring--ai .aurora-left {
  position: absolute;
  z-index: 0;
  top: -10rem;
  width: 40rem;
  height: 25rem;
  border-radius: 50%;
  content: "";
  filter: blur(2rem);
  pointer-events: none;
}

.banner-spring.banner-spring--ai::before {
  right: 5%;
  background: radial-gradient(ellipse, rgba(40,186,217,.13), transparent 68%) !important;
}

.banner-spring--ai .aurora-left {
  left: 3%;
  background: radial-gradient(ellipse, rgba(116,102,232,.12), transparent 68%);
}

.banner-spring.banner-spring--ai::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  background-image: linear-gradient(rgba(27,105,163,.045) 1px,transparent 1px), linear-gradient(90deg,rgba(27,105,163,.045) 1px,transparent 1px);
  background-size: 3.2rem 3.2rem;
  content: "";
  opacity: .72;
  pointer-events: none;
  -webkit-mask-image: linear-gradient(90deg,transparent,#000 15%,#000 85%,transparent);
  mask-image: linear-gradient(90deg,transparent,#000 15%,#000 85%,transparent);
}

.banner-spring--ai #spring-elements {
  position: absolute;
  z-index: 2;
  inset: 0;
  overflow: hidden;
  opacity: .28;
  pointer-events: none;
}

.banner-spring--ai .spring-item {
  position: absolute;
  bottom: -8%;
  left: 0;
  color: #187ba6;
  font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-weight: 800;
  opacity: 0;
  transform: translate3d(0,0,0) rotate(0) scale(.85);
}

.banner-spring--ai .spring-item.is-active { animation: springFly var(--spring-duration,7s) linear var(--spring-delay,0s) both; }

.banner-spring--ai .banner-spring-content {
  position: relative;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(100%,132rem);
  min-height: var(--ai-height);
  margin-inline: auto;
  padding: 1.2rem 2.8rem;
  gap: clamp(1.2rem,2vw,2.6rem);
}

html[data-theme] .banner-spring--ai .banner-spring-content {
  box-sizing: border-box;
  padding: 1.2rem 2.8rem !important;
  gap: clamp(1.2rem,2vw,2.6rem) !important;
}

.banner-spring--ai .banner-text {
  display: flex;
  flex: 1 1 38rem;
  align-items: center;
  min-width: 0;
  gap: 1.25rem;
}

html[data-theme] .banner-spring--ai .banner-text { gap: 1.25rem; }

.banner-spring--ai .banner-icon-wrap {
  position: relative;
  display: grid;
  flex: 0 0 4.6rem;
  width: 4.6rem;
  height: 4.6rem;
  overflow: hidden;
  place-items: center;
  border: 1px solid rgba(25,119,180,.26);
  border-radius: 1.45rem;
  background: linear-gradient(145deg,rgba(255,255,255,.94),rgba(211,237,250,.78));
  box-shadow: inset 0 1px 0 #fff, 0 .55rem 1.5rem rgba(40,87,143,.12);
}

.banner-spring--ai .banner-icon-wrap::before {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg,rgba(40,186,217,.14),transparent 55%,rgba(116,102,232,.14));
  content: "";
}

.banner-spring--ai .banner-icon-wrap i { position: relative; color: #126da8 !important; font-size: 1.75rem; text-shadow: none; }
.banner-spring--ai .banner-text-content { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; gap: .35rem; }

.banner-spring--ai .spring-title {
  position: relative;
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  padding-inline-start: 1.15rem;
  color: #0b2c55 !important;
  background: none !important;
  font-family: Peyda,iransansweb,sans-serif;
  font-size: clamp(1.55rem,1.35vw,1.85rem);
  font-weight: 900;
  line-height: 1.35;
  letter-spacing: -.025em;
  text-shadow: none;
  -webkit-text-fill-color: currentColor;
}

.banner-spring--ai .spring-title::before {
  position: absolute;
  inset-block: .15em;
  inset-inline-start: 0;
  width: .35rem;
  border-radius: 999px;
  background: linear-gradient(180deg,var(--ai-accent),var(--ai-violet));
  box-shadow: 0 .3rem .8rem rgba(46,144,205,.2);
  content: "";
}

.banner-spring--ai .spring-message { margin-top: 0 !important; color: #465b78 !important; font-size: 1.12rem; font-weight: 650; line-height: 1.55; }
.banner-spring--ai .discount { display: inline-flex; align-items: center; margin-inline: .2rem; padding: .12rem .65rem; border: 1px solid rgba(22,127,178,.2); border-radius: 999px; color: #086c95 !important; background: rgba(255,255,255,.72); box-shadow: inset 0 1px 0 #fff; font-size: .95em; font-weight: 900; text-shadow: none; }
html[data-theme] .banner-spring--ai .spring-message { font-size: 1.12rem; line-height: 1.55; }
html[data-theme] .banner-spring--ai .discount { box-sizing: border-box; min-height: 0; padding: .12rem .65rem; line-height: 1.4; }
.banner-spring--ai .banner-divider { flex: 0 0 1px; width: 1px; height: 4.4rem; background: linear-gradient(transparent,rgba(36,126,181,.32),transparent); box-shadow: none; }

.banner-spring--ai .banner-timer-panel { display: flex; flex: 0 0 auto; flex-direction: column; align-items: center; justify-content: center; gap: .4rem; }
.banner-spring--ai .banner-timer-label { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; color: #405b7c; font-size: .95rem; font-weight: 750; line-height: 1.2; white-space: nowrap; }
.banner-spring--ai .banner-timer-label i { color: #0e789e; font-size: .9rem; }

.banner-spring--ai .timer-group {
  display: flex;
  align-items: center;
  gap: .4rem;
  padding: .35rem;
  border: 1px solid rgba(28,106,164,.12);
  border-radius: 1.3rem;
  direction: ltr;
  background: rgba(255,255,255,.54);
  box-shadow: 0 .45rem 1.4rem rgba(34,80,136,.08);
  backdrop-filter: blur(1rem);
}

.banner-spring--ai .timer-box {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 4.7rem;
  height: 4.5rem;
  overflow: hidden;
  border: 1px solid rgba(25,115,174,.19) !important;
  border-radius: 1rem;
  background: linear-gradient(155deg,rgba(255,255,255,.98),rgba(222,241,251,.84)) !important;
  box-shadow: inset 0 1px 0 #fff, 0 .25rem .8rem rgba(30,86,143,.08) !important;
  transition: border-color 180ms ease, transform 180ms ease;
}

.banner-spring--ai .timer-box::before { position: absolute; inset: 0 18% auto; height: 2px; border-radius: 0 0 999px 999px; background: linear-gradient(90deg,var(--ai-accent),var(--ai-violet)); box-shadow: none; content: ""; }
.banner-spring--ai .timer-box:hover { border-color: rgba(21,119,181,.38) !important; transform: translateY(-1px); }
.banner-spring--ai .timer-box div { color: #123d72 !important; font-size: 1.55rem; font-weight: 900; font-variant-numeric: tabular-nums; line-height: 1; letter-spacing: -.02em; text-shadow: none !important; }
.banner-spring--ai .timer-box small { margin-top: .3rem; color: #61738b !important; font-size: .82rem; font-weight: 700; line-height: 1; }
.banner-spring--ai .timer-sep { margin: 0 0 1.1rem; color: #4482a4; font-size: 1.35rem; font-weight: 800; line-height: 1; text-shadow: none; }

html[data-theme] .banner-spring--ai .banner-cta {
  position: relative;
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  min-height: 4.5rem;
  overflow: hidden;
  gap: 1rem;
  padding: .75rem 1.45rem;
  border: 1px solid rgba(81,178,222,.5) !important;
  border-radius: 1.15rem;
  color: #fff !important;
  background: linear-gradient(118deg,#103c6c 0%,#17689f 58%,#5147ae 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.17),0 .65rem 1.5rem rgba(21,66,123,.18) !important;
  font-size: 1.14rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.01em;
  text-shadow: none;
  white-space: nowrap;
  transition: transform 180ms ease,box-shadow 180ms ease,background-position 220ms ease;
}

html[data-theme] .banner-spring--ai .banner-cta::before { display: none; content: none; animation: none; }
html[data-theme] .banner-spring--ai .banner-cta::after { position: absolute; inset: auto 1.2rem 0; height: 1px; border-radius: 999px; background: linear-gradient(90deg,transparent,rgba(162,235,255,.9),transparent); content: ""; opacity: .7; }
html[data-theme] .banner-spring--ai .banner-cta i { display: inline-flex; width: auto; height: 1.8rem; align-items: center; padding-inline-start: 1rem; border: 0; border-inline-start: 1px solid rgba(255,255,255,.28); border-radius: 0; color: #c9f6ff; background: transparent; box-shadow: none; font-size: .9rem; transition: transform 180ms ease; }
html[data-theme] .banner-spring--ai .banner-cta:hover,html[data-theme] .banner-spring--ai .banner-cta:focus-visible { color: #fff !important; background: linear-gradient(118deg,#164b82 0%,#1878b1 58%,#6054c6 100%) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.22),0 .9rem 2rem rgba(25,76,139,.25) !important; filter: none; transform: translateY(-2px); }
html[data-theme] .banner-spring--ai .banner-cta:hover i { transform: translateX(-3px); }
html[data-theme] .banner-spring--ai .banner-cta:focus-visible { outline: 3px solid rgba(33,164,211,.28); outline-offset: 3px; }

@media (min-width: 1100.02px) {
  html[data-theme] .banner-spring.banner-spring--ai,
  html[data-theme] .banner-spring--ai .banner-spring-content {
    box-sizing: border-box;
    height: var(--ai-height) !important;
    min-height: var(--ai-height) !important;
  }
}

/* Explicit light selectors outrank the legacy theme banner rules. */
html[data-theme="light"] .banner-spring.banner-spring--ai {
  min-height: var(--ai-height);
  border-block-color: rgba(62,143,211,.2) !important;
  background: radial-gradient(circle at 8% 15%,rgba(113,92,232,.12),transparent 25%),radial-gradient(circle at 91% 90%,rgba(24,180,210,.12),transparent 28%),linear-gradient(112deg,#f8fbff,#eef7ff 48%,#f4f1ff) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9),0 .7rem 2.6rem rgba(39,72,124,.1) !important;
}
html[data-theme="light"] .banner-spring--ai .banner-spring-content { min-height: var(--ai-height); }
html[data-theme="light"] .banner-spring--ai .banner-icon-wrap { border-color: rgba(25,119,180,.26); background: linear-gradient(145deg,rgba(255,255,255,.94),rgba(211,237,250,.78)); box-shadow: inset 0 1px 0 #fff,0 .55rem 1.5rem rgba(40,87,143,.12); }
html[data-theme="light"] .banner-spring--ai .banner-icon-wrap i { color: #126da8 !important; text-shadow: none; }
html[data-theme="light"] .banner-spring--ai .spring-title { color: #0b2c55 !important; background: none !important; text-shadow: none; -webkit-text-fill-color: currentColor; }
html[data-theme="light"] .banner-spring--ai .spring-message { color: #465b78 !important; }
html[data-theme="light"] .banner-spring--ai .discount { color: #086c95 !important; background: rgba(255,255,255,.72); border-color: rgba(22,127,178,.2); box-shadow: inset 0 1px 0 #fff; text-shadow: none; }
html[data-theme="light"] .banner-spring--ai .banner-divider { background: linear-gradient(transparent,rgba(36,126,181,.32),transparent); box-shadow: none; }
html[data-theme="light"] .banner-spring--ai .banner-timer-label { color: #405b7c; }
html[data-theme="light"] .banner-spring--ai .banner-timer-label i { color: #0e789e; text-shadow: none; }
html[data-theme="light"] .banner-spring--ai .timer-group { border-color: rgba(28,106,164,.12); background: rgba(255,255,255,.54); box-shadow: 0 .45rem 1.4rem rgba(34,80,136,.08); }
html[data-theme="light"] .banner-spring--ai .timer-box { border-color: rgba(25,115,174,.19) !important; background: linear-gradient(155deg,rgba(255,255,255,.98),rgba(222,241,251,.84)) !important; box-shadow: inset 0 1px 0 #fff,0 .25rem .8rem rgba(30,86,143,.08) !important; }
html[data-theme="light"] .banner-spring--ai .timer-box div { color: #123d72 !important; text-shadow: none !important; }
html[data-theme="light"] .banner-spring--ai .timer-box small { color: #61738b !important; }
html[data-theme="light"] .banner-spring--ai .timer-sep { color: #4482a4; text-shadow: none; }
html[data-theme="light"] .banner-spring--ai .banner-cta { border-color: rgba(49,133,184,.48) !important; color: #fff !important; background: linear-gradient(118deg,#103c6c 0%,#17689f 58%,#5147ae 100%) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.17),0 .65rem 1.5rem rgba(21,66,123,.18) !important; }

/* Dark palette only. No geometry changes are allowed here. */
html[data-theme="dark"] .banner-spring.banner-spring--ai { border-block-color: rgba(73,173,213,.22) !important; background: radial-gradient(circle at 8% 15%,rgba(106,84,218,.13),transparent 25%),radial-gradient(circle at 91% 90%,rgba(20,160,188,.12),transparent 28%),linear-gradient(112deg,#07101e,#0c1930 48%,#17152e) !important; box-shadow: inset 0 1px 0 rgba(140,210,237,.08),0 .7rem 2.6rem rgba(0,5,16,.25) !important; }
html[data-theme="dark"] .banner-spring--ai #spring-elements { opacity: .25; }
html[data-theme="dark"] .banner-spring--ai .spring-item { color: #5bc9df; text-shadow: 0 0 .5rem rgba(47,200,232,.18); }
html[data-theme="dark"] .banner-spring--ai .banner-icon-wrap { border-color: rgba(104,201,226,.22); background: linear-gradient(145deg,rgba(34,75,105,.56),rgba(29,27,70,.68)); box-shadow: inset 0 1px 0 rgba(192,240,255,.1),0 .45rem 1.2rem rgba(0,7,20,.24); }
html[data-theme="dark"] .banner-spring--ai .banner-icon-wrap i { color: #88e7f3 !important; text-shadow: 0 0 .55rem rgba(76,214,235,.18); }
html[data-theme="dark"] .banner-spring--ai .spring-title { color: #f1f7ff !important; text-shadow: none; }
html[data-theme="dark"] .banner-spring--ai .spring-message { color: #aebed2 !important; }
html[data-theme="dark"] .banner-spring--ai .discount { border-color: rgba(84,194,219,.2); color: #8be4ef !important; background: rgba(27,68,92,.38); box-shadow: inset 0 1px 0 rgba(181,235,247,.06); }
html[data-theme="dark"] .banner-spring--ai .banner-divider { background: linear-gradient(transparent,rgba(101,194,221,.24),transparent); }
html[data-theme="dark"] .banner-spring--ai .banner-timer-label { color: #a6b9d0; }
html[data-theme="dark"] .banner-spring--ai .banner-timer-label i { color: #73d8e7; }
html[data-theme="dark"] .banner-spring--ai .timer-group { border-color: rgba(83,174,208,.12); background: rgba(2,10,24,.28); box-shadow: inset 0 1px 0 rgba(178,225,242,.04),0 .45rem 1.4rem rgba(0,5,16,.18); }
html[data-theme="dark"] .banner-spring--ai .timer-box { border-color: rgba(85,181,211,.2) !important; background: linear-gradient(155deg,rgba(28,65,91,.6),rgba(15,20,47,.74)) !important; box-shadow: inset 0 1px 0 rgba(184,231,246,.07),0 .2rem .7rem rgba(0,4,14,.2) !important; }
html[data-theme="dark"] .banner-spring--ai .timer-box div { color: #edfaff !important; }
html[data-theme="dark"] .banner-spring--ai .timer-box small { color: #8ca4bb !important; }
html[data-theme="dark"] .banner-spring--ai .timer-sep { color: #608da3; }
html[data-theme="dark"] .banner-spring--ai .banner-cta { border-color: rgba(104,203,229,.38) !important; color: #f4fcff !important; background: linear-gradient(118deg,#123b65 0%,#145f8f 58%,#49419d 100%) !important; box-shadow: inset 0 1px 0 rgba(205,245,255,.13),0 .65rem 1.5rem rgba(0,6,18,.28) !important; }
html[data-theme="dark"] .banner-spring--ai .banner-cta i { color: #9be8f4; background: transparent; box-shadow: none; }

@keyframes springFly {
  0% { opacity: 0; transform: translate3d(0,0,0) rotate(0) scale(.8); }
  15% { opacity: .65; }
  85% { opacity: .28; }
  100% { opacity: 0; transform: translate3d(var(--spring-drift-x,0),var(--spring-rise,-13rem),0) rotate(var(--spring-rotate,280deg)) scale(var(--spring-scale,1.08)); }
}

@media (max-width: 1100px) {
  html[data-theme] .banner-spring.banner-spring--ai,html[data-theme] .banner-spring--ai .banner-spring-content { height: auto !important; min-height: 0 !important; }
  html[data-theme] .banner-spring--ai .banner-spring-content { flex-wrap: wrap; justify-content: center; padding: 1.4rem 2.8rem !important; gap: 1rem !important; }
  .banner-spring--ai .banner-text { flex-basis: 100%; justify-content: center; text-align: center; }
  .banner-spring--ai .banner-text-content { align-items: center; }
  .banner-spring--ai .banner-divider { display: none; }
}

@media (max-width: 575.98px) {
  html[data-theme] .banner-spring--ai .banner-spring-content { padding: 1.2rem 1rem 1.35rem !important; gap: 1rem !important; }
  .banner-spring--ai .banner-text { gap: .8rem; }
  .banner-spring--ai .banner-icon-wrap { flex-basis: 4rem; width: 4rem; height: 4rem; border-radius: 1.2rem; }
  .banner-spring--ai .banner-icon-wrap i { font-size: 1.5rem; }
  .banner-spring--ai .spring-title { font-size: 1.42rem; }
  html[data-theme] .banner-spring--ai .spring-message { font-size: 1rem; }
  .banner-spring--ai .banner-timer-panel { flex: 1 1 100%; width: 100%; }
  .banner-spring--ai .timer-group { gap: .3rem; padding: .3rem; }
  .banner-spring--ai .timer-box { width: 4.35rem; height: 4.25rem; }
  .banner-spring--ai .timer-box div { font-size: 1.42rem; }
  .banner-spring--ai .timer-sep { margin-inline: -.05rem; }
  html[data-theme] .banner-spring--ai .banner-cta { min-height: 4.2rem; padding: .7rem 1.35rem; }
}

@media (max-width: 390px) {
  .banner-spring--ai .banner-icon-wrap { display: none; }
  .banner-spring--ai .timer-box { width: 4rem; }
}

@media (prefers-reduced-motion: reduce) {
  .banner-spring--ai .spring-item { display: none !important; }
  .banner-spring--ai .banner-cta,.banner-spring--ai .banner-cta i,.banner-spring--ai .timer-box { transition: none !important; }
}
