/* ==========================================================================
   Diferenciais — banner em codigo (aneis de vidro, brilhos e icones SVG
   animados). Substitui a arte dobra-diferenciais.jpg.
   Tudo escopado em .feature-banner para nao vazar estilo pelo resto do site.
   Fontes: usa as fontes auto-hospedadas do site (Archivo / Inter), nao o CDN.
   ========================================================================== */

.feature-banner {
  /* 1u = 1px na arte original (1425 x 214); escala com a largura da tela. */
  --fb-u: min(calc(100vw / 1425), 1.4px);
  --fb-orb: calc(var(--fb-u) * 138);
  --fb-t: calc(var(--fb-u) * 11.5);
  --fb-d: calc(var(--fb-u) * 9.6);
  --fb-icon: #93eaff;
  --fb-icon-hot: #d8fbff;
  --fb-blue-deep: #0b64d9;
  --fb-blue-soft: #7fd4ff;
  --fb-title: #ffffff;
  --fb-muted: #8ea2bd;
  --fb-line: linear-gradient(180deg,
    transparent 0%,
    rgba(40, 140, 255, .55) 25%,
    rgba(110, 200, 255, .95) 50%,
    rgba(40, 140, 255, .55) 75%,
    transparent 100%);

  position: relative;
  z-index: 2;
  width: 100%;
  height: calc(var(--fb-u) * 214);
  overflow: hidden;
  color-scheme: dark;
  background:
    radial-gradient(55% 130% at 50% 0%, rgba(24, 120, 255, .22), transparent 62%),
    radial-gradient(75% 95% at 50% 100%, rgba(10, 110, 255, .30), transparent 66%),
    radial-gradient(35% 70% at 50% 50%, rgba(10, 70, 160, .12), transparent 70%),
    linear-gradient(90deg, #010610 0%, #031126 50%, #010610 100%);
}

/* Brilho central no topo. */
.feature-banner__glow-top {
  position: absolute;
  top: 0;
  left: 50%;
  width: calc(var(--fb-u) * 260);
  height: calc(var(--fb-u) * 46);
  transform: translateX(-50%);
  background:
    radial-gradient(ellipse 22% 26% at 50% 0%, rgba(255, 255, 255, .95) 0, rgba(170, 235, 255, .85) 45%, transparent 100%),
    radial-gradient(ellipse 50% 60% at 50% 0%, rgba(40, 160, 255, .75) 0, rgba(20, 110, 255, .35) 45%, transparent 100%),
    radial-gradient(ellipse 100% 100% at 50% 0%, rgba(20, 100, 255, .25) 0, transparent 70%);
  animation: fb-breathe 5s ease-in-out infinite;
  pointer-events: none;
}

/* Linha luminosa inferior. */
.feature-banner__line {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: calc(var(--fb-u) * 3);
  background: linear-gradient(90deg,
    rgba(11, 100, 217, .35) 0%,
    var(--fb-blue-deep) 14%,
    #1f9bff 36%,
    var(--fb-blue-soft) 50%,
    #1f9bff 64%,
    var(--fb-blue-deep) 86%,
    rgba(11, 100, 217, .35) 100%);
  box-shadow: 0 0 calc(var(--fb-u) * 14) rgba(30, 150, 255, .85), 0 -1px calc(var(--fb-u) * 6) rgba(30, 150, 255, .5);
}
.feature-banner__glow-bottom {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: calc(var(--fb-u) * 46);
  background:
    radial-gradient(ellipse 12% 38% at 50% 100%, rgba(255, 255, 255, .95) 0, rgba(150, 225, 255, .7) 40%, transparent 100%),
    radial-gradient(ellipse 34% 75% at 50% 100%, rgba(40, 160, 255, .65) 0, transparent 100%),
    linear-gradient(0deg, rgba(20, 120, 255, .24), transparent 80%);
  animation: fb-breathe 5s ease-in-out infinite reverse;
  pointer-events: none;
}

/* ---------- Grade de itens ---------- */
.feature-banner__items {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: space-between; /* mesmo vao dos dois lados de cada divisoria */
  padding: 0 6.8%;
}
.feature-banner__item {
  position: relative;
  flex: none;
  display: flex;
  align-items: center;
  gap: calc(var(--fb-u) * 12);
}

/* Divisorias verticais (no meio do vao entre um texto e a proxima esfera). */
.feature-banner__sep {
  flex: none;
  width: 1px;
  height: calc(var(--fb-u) * 150);
  background: var(--fb-line);
  box-shadow: 0 0 calc(var(--fb-u) * 7) rgba(40, 150, 255, .7);
  animation: fb-divider 6s ease-in-out infinite;
}
.feature-banner__sep:nth-of-type(2) { animation-delay: -2s; }
.feature-banner__sep:nth-of-type(3) { animation-delay: -4s; }

/* ---------- Esfera de vidro ---------- */
.feature-banner__orb {
  position: relative;
  flex: none;
  width: var(--fb-orb);
  height: var(--fb-orb);
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: radial-gradient(circle at 50% 50%,
    rgba(8, 80, 180, .30) 0%,
    rgba(5, 45, 110, .34) 55%,
    rgba(22, 125, 235, .38) 100%);
  border: 1px solid rgba(100, 195, 255, .8);
  box-shadow:
    0 0 calc(var(--fb-u) * 22) rgba(20, 130, 255, .5),
    inset 0 0 calc(var(--fb-u) * 30) rgba(20, 130, 255, .5),
    inset 0 0 calc(var(--fb-u) * 4) rgba(150, 225, 255, .55);
  animation: fb-orb 4.5s ease-in-out infinite alternate;
  transition: transform .35s ease;
}
.feature-banner__item:nth-child(2) .feature-banner__orb { animation-delay: -1.1s; }
.feature-banner__item:nth-child(3) .feature-banner__orb { animation-delay: -2.2s; }
.feature-banner__item:nth-child(4) .feature-banner__orb { animation-delay: -3.3s; }
.feature-banner__orb:hover { transform: scale(1.04); }
/* Anel externo discreto. */
.feature-banner__orb::before {
  content: "";
  position: absolute;
  inset: calc(var(--fb-u) * -7);
  border-radius: 50%;
  border: 1px solid rgba(50, 150, 255, .22);
  pointer-events: none;
}
/* Reflexo de vidro. */
.feature-banner__orb::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: radial-gradient(120% 75% at 32% 6%, rgba(150, 215, 255, .2), transparent 55%);
  pointer-events: none;
}

.feature-banner__icon {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  overflow: visible;
  filter: drop-shadow(0 0 3px rgba(90, 215, 255, .95)) drop-shadow(0 0 9px rgba(20, 125, 255, .85));
  animation: fb-icon-glow 4.5s ease-in-out infinite alternate;
}
.feature-banner__item:nth-child(2) .feature-banner__icon { animation-delay: -1.1s; }
.feature-banner__item:nth-child(3) .feature-banner__icon { animation-delay: -2.2s; }
.feature-banner__item:nth-child(4) .feature-banner__icon { animation-delay: -3.3s; }

.feature-banner__stroke {
  fill: none;
  stroke: var(--fb-icon);
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Icone: fibra. */
.feature-banner__dot { fill: var(--fb-icon-hot); animation: fb-twinkle 3.2s ease-in-out infinite; }
.feature-banner__dot:nth-child(2) { animation-delay: -.6s; }
.feature-banner__dot:nth-child(3) { animation-delay: -1.2s; }
.feature-banner__dot:nth-child(4) { animation-delay: -1.8s; }
.feature-banner__dot:nth-child(5) { animation-delay: -2.4s; }

/* Icone: velocimetro. */
.feature-banner__needle { transform-origin: 50px 56px; animation: fb-needle 7s ease-in-out infinite; }

/* ---------- Texto ---------- */
.feature-banner__txt { min-width: 0; }
.feature-banner__txt h3 {
  margin: 0;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 800;
  font-size: var(--fb-t);
  line-height: 1.08;
  letter-spacing: .01em;
  text-transform: uppercase;
  color: var(--fb-title);
  white-space: nowrap;
  text-shadow: 0 0 calc(var(--fb-u) * 8) rgba(80, 170, 255, .3);
}
.feature-banner__txt p {
  margin: calc(var(--fb-u) * 7) 0 0;
  font-family: var(--font-body);
  font-size: var(--fb-d);
  line-height: 1.32;
  font-weight: 400;
  color: var(--fb-muted);
  white-space: nowrap;
}

/* ---------- Animacoes ---------- */
@keyframes fb-breathe {
  0%, 100% { opacity: 1; }
  50% { opacity: .72; }
}
@keyframes fb-divider {
  0%, 100% { opacity: 1; }
  50% { opacity: .55; }
}
@keyframes fb-orb {
  from {
    box-shadow:
      0 0 calc(var(--fb-u) * 18) rgba(20, 130, 255, .38),
      inset 0 0 calc(var(--fb-u) * 24) rgba(20, 130, 255, .42),
      inset 0 0 calc(var(--fb-u) * 4) rgba(150, 225, 255, .5);
  }
  to {
    box-shadow:
      0 0 calc(var(--fb-u) * 28) rgba(30, 150, 255, .65),
      inset 0 0 calc(var(--fb-u) * 36) rgba(30, 150, 255, .6),
      inset 0 0 calc(var(--fb-u) * 5) rgba(170, 235, 255, .7);
  }
}
@keyframes fb-icon-glow {
  from { filter: drop-shadow(0 0 3px rgba(90, 215, 255, .9)) drop-shadow(0 0 8px rgba(20, 125, 255, .75)); }
  to { filter: drop-shadow(0 0 5px rgba(130, 232, 255, 1)) drop-shadow(0 0 16px rgba(30, 140, 255, .95)); }
}
@keyframes fb-twinkle {
  0%, 100% { opacity: 1; }
  50% { opacity: .55; }
}
@keyframes fb-needle {
  0%, 100% { transform: rotate(0deg); }
  28% { transform: rotate(-8deg); }
  55% { transform: rotate(5deg); }
  78% { transform: rotate(-3deg); }
}

/* ---------- Mobile: 2 x 2 ---------- */
@media (max-width: 860px) {
  .feature-banner {
    --fb-u: 1px;
    --fb-orb: 104px;
    --fb-t: 13px;
    --fb-d: 11.5px;
    height: auto;
    padding: 34px 0 44px;
  }
  .feature-banner__items {
    position: relative;
    inset: auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: start;
    row-gap: 34px;
    padding: 0;
  }
  .feature-banner__sep { display: none; }
  .feature-banner__item:nth-of-type(even)::before {
    content: "";
    position: absolute;
    left: 0;
    top: 4%;
    bottom: 4%;
    width: 1px;
    background: var(--fb-line);
    box-shadow: 0 0 7px rgba(40, 150, 255, .7);
  }
  .feature-banner__item,
  .feature-banner__item:nth-child(3),
  .feature-banner__item:nth-child(4) {
    flex-direction: column;
    justify-content: flex-start;
    gap: 16px;
    padding: 0 10px;
    text-align: center;
  }
  .feature-banner__txt h3,
  .feature-banner__txt p { white-space: normal; }
  .feature-banner__txt br { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .feature-banner *,
  .feature-banner *::before,
  .feature-banner *::after {
    animation: none !important;
    transition: none !important;
  }
}
