/* ============================================================
   ALPHA STORE — premium.css
   A camada que dá o acabamento "Apple": luz, profundidade e movimento.
   Carregue DEPOIS de styles.css e animations.css.
   ============================================================ */

/* ------------------------------------------------------------
   0. ÍCONES SVG (substituem os emojis)
   ------------------------------------------------------------ */
.ico-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  line-height: 0;
}
.ico { display: block; }

/* Ícone dentro de um "selo" luminoso — usado nos cartões de vantagem */
.ico-selo {
  width: 52px;
  height: 52px;
  border-radius: 15px;
  display: grid;
  place-items: center;
  color: var(--accent);

  background:
    linear-gradient(145deg, rgba(10,132,255,.20), rgba(10,132,255,.04));
  border: 1px solid rgba(10,132,255,.25);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    0 10px 30px -12px rgba(10,132,255,.55);

  transition: transform .5s var(--ease), box-shadow .5s var(--ease);
}
.card-luz:hover .ico-selo {
  transform: translateY(-2px) scale(1.06);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.16),
    0 16px 44px -12px rgba(10,132,255,.8);
}

/* ------------------------------------------------------------
   1. AURORA — o fundo vivo do hero
   Três manchas de luz que respiram devagar. É o que dá o ar
   "futurista" sem pesar: são só gradientes borrados.
   ------------------------------------------------------------ */
.aurora {
  position: absolute;
  inset: -20%;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
  filter: blur(90px);
  opacity: .75;
}
.aurora span {
  position: absolute;
  display: block;
  border-radius: 50%;
  mix-blend-mode: screen;
}
.aurora span:nth-child(1) {
  width: 46vw; height: 46vw;
  left: 8%; top: 4%;
  background: radial-gradient(circle, rgba(10,132,255,.85) 0%, transparent 66%);
  animation: flutuar1 18s ease-in-out infinite alternate;
}
.aurora span:nth-child(2) {
  width: 40vw; height: 40vw;
  right: 6%; top: 14%;
  background: radial-gradient(circle, rgba(94,92,230,.70) 0%, transparent 66%);
  animation: flutuar2 22s ease-in-out infinite alternate;
}
.aurora span:nth-child(3) {
  width: 34vw; height: 34vw;
  left: 38%; bottom: 0%;
  background: radial-gradient(circle, rgba(0,210,255,.55) 0%, transparent 66%);
  animation: flutuar3 26s ease-in-out infinite alternate;
}

@keyframes flutuar1 {
  from { transform: translate3d(0,0,0) scale(1); }
  to   { transform: translate3d(6vw, 5vh, 0) scale(1.15); }
}
@keyframes flutuar2 {
  from { transform: translate3d(0,0,0) scale(1.1); }
  to   { transform: translate3d(-7vw, 7vh, 0) scale(.92); }
}
@keyframes flutuar3 {
  from { transform: translate3d(0,0,0) scale(.95); }
  to   { transform: translate3d(4vw, -6vh, 0) scale(1.2); }
}

/* Textura sutil por cima — tira o aspecto "plástico" do gradiente */
.grao::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: .05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ------------------------------------------------------------
   2. HERO CINEMATOGRÁFICO
   ------------------------------------------------------------ */
.hero-premium {
  position: relative;
  min-height: 100svh;
  display: grid;
  place-items: center;
  text-align: center;
  overflow: hidden;
  background: var(--bg);
}
.hero-premium .hero-content { position: relative; z-index: 3; }

/* Máscara que funde o hero com a seção de baixo */
.hero-premium::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 45%;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(180deg, transparent, var(--bg) 92%);
}

/* Título gigante com brilho que atravessa o texto */
.titulo-hero {
  font-size: clamp(2.8rem, 8vw, 6.5rem);
  font-weight: 700;
  letter-spacing: -.045em;
  line-height: .98;
  margin-bottom: 22px;
}

/* A palavra que brilha */
.brilha {
  background: linear-gradient(
    100deg,
    var(--accent) 0%,
    #7fc4ff 28%,
    #ffffff 42%,
    #7fc4ff 56%,
    var(--accent) 100%
  );
  background-size: 250% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: passarBrilho 6s linear infinite;
}
@keyframes passarBrilho {
  from { background-position: 200% 0; }
  to   { background-position: -50% 0; }
}

/* Entrada das linhas do título, uma de cada vez */
.linha-sobe { display: block; overflow: hidden; }
.linha-sobe > span {
  display: block;
  transform: translateY(105%);
  animation: subirLinha 1.1s var(--ease) forwards;
}
.linha-sobe:nth-child(1) > span { animation-delay: .15s; }
.linha-sobe:nth-child(2) > span { animation-delay: .30s; }
@keyframes subirLinha {
  to { transform: translateY(0); }
}

/* ------------------------------------------------------------
   3. CARTÃO COM LUZ QUE SEGUE O CURSOR (o toque Apple)
   O premium.js atualiza --mx / --my com a posição do mouse.
   ------------------------------------------------------------ */
.card-luz {
  position: relative;
  isolation: isolate;
  overflow: hidden;

  padding: 28px;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.015));
  border: 1px solid var(--border);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);

  transition: transform .55s var(--ease), border-color .4s var(--ease);
}

/* O halo de luz */
.card-luz::before {
  content: "";
  position: absolute;
  inset: -1px;
  z-index: -1;
  border-radius: inherit;
  opacity: 0;
  transition: opacity .45s var(--ease);
  background: radial-gradient(
    340px circle at var(--mx, 50%) var(--my, 50%),
    rgba(10,132,255,.16),
    transparent 62%
  );
}
.card-luz:hover::before { opacity: 1; }

/* A borda que acende do lado do cursor */
.card-luz::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  padding: 1px;
  opacity: 0;
  transition: opacity .45s var(--ease);
  background: radial-gradient(
    320px circle at var(--mx, 50%) var(--my, 50%),
    rgba(10,132,255,.75),
    transparent 60%
  );
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
}
.card-luz:hover::after { opacity: 1; }

.card-luz:hover {
  transform: translateY(-6px);
  border-color: rgba(255,255,255,.14);
}

.card-luz h3 {
  margin-top: 18px;
  font-size: 1.12rem;
  letter-spacing: -.015em;
}
.card-luz p { margin-top: 8px; color: var(--text-muted); font-size: .93rem; line-height: 1.55; }

/* ------------------------------------------------------------
   4. BOTÕES COM BRILHO QUE ATRAVESSA
   ------------------------------------------------------------ */
.btn-primary {
  position: relative;
  overflow: hidden;
}
.btn-primary::after {
  content: "";
  position: absolute;
  top: 0; bottom: 0;
  left: -60%;
  width: 45%;
  transform: skewX(-20deg);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.35), transparent);
  transition: left .75s var(--ease);
}
.btn-primary:hover::after { left: 120%; }

/* Botão fantasma com vidro */
.btn-ghost {
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* ------------------------------------------------------------
   5. CARTÃO DE PRODUTO — brilho na borda e zoom suave
   ------------------------------------------------------------ */
.product-card {
  position: relative;
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.012));
  transition: transform .6s var(--ease), box-shadow .6s var(--ease), border-color .4s var(--ease);
}
.product-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  opacity: 0;
  transition: opacity .45s var(--ease);
  background: linear-gradient(140deg, rgba(10,132,255,.8), transparent 45%, rgba(10,132,255,.35));
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  pointer-events: none;
}
.product-card:hover::after { opacity: 1; }
.product-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 30px 70px -30px rgba(10,132,255,.45), var(--shadow);
}
.product-card:hover .product-media img { transform: scale(1.08); }

.product-media img,
.product-media video { transition: transform 1.1s var(--ease); }

/* O preço com números alinhados (fonte tabular) */
.product-price,
.preco-venda,
.preco-revenda-valor,
.stat-value {
  font-variant-numeric: tabular-nums;
  letter-spacing: -.025em;
}

/* ------------------------------------------------------------
   6. CABEÇALHO QUE REAGE AO SCROLL
   ------------------------------------------------------------ */
.header {
  transition: background .4s var(--ease), border-color .4s var(--ease), height .4s var(--ease);
  border-bottom-color: transparent;
}
.header.rolou {
  background: rgba(10,10,10,.72);
  border-bottom-color: var(--border);
  box-shadow: 0 10px 40px -20px rgba(0,0,0,.9);
}

/* Sublinhado que cresce no menu */
.nav a {
  position: relative;
  padding-bottom: 3px;
}
.nav a::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  height: 1.5px;
  width: 0;
  background: var(--accent);
  transition: width .35s var(--ease);
}
.nav a:hover::after,
.nav a.active::after { width: 100%; }

/* ------------------------------------------------------------
   7. REVELAÇÃO MAIS SOFISTICADA (com desfoque)
   ------------------------------------------------------------ */
[data-reveal="cine"] {
  opacity: 0;
  transform: translateY(38px) scale(.985);
  filter: blur(12px);
}
[data-reveal="cine"].is-visible {
  opacity: 1;
  transform: none;
  filter: none;
  animation: revelarCine 1.1s var(--ease);
}
@keyframes revelarCine {
  from { opacity: 0; transform: translateY(38px) scale(.985); filter: blur(12px); }
}

/* ------------------------------------------------------------
   8. LINHA DIVISÓRIA LUMINOSA
   ------------------------------------------------------------ */
.linha-luz {
  height: 1px;
  border: 0;
  background: linear-gradient(90deg, transparent, rgba(10,132,255,.6), transparent);
}

/* ------------------------------------------------------------
   9. RÓTULO DE SEÇÃO (eyebrow) com ponto pulsante
   ------------------------------------------------------------ */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.eyebrow::before {
  content: "";
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 0 rgba(10,132,255,.7);
  animation: pulsar 2.4s ease-out infinite;
}
@keyframes pulsar {
  0%   { box-shadow: 0 0 0 0 rgba(10,132,255,.6); }
  70%  { box-shadow: 0 0 0 9px rgba(10,132,255,0); }
  100% { box-shadow: 0 0 0 0 rgba(10,132,255,0); }
}

/* ------------------------------------------------------------
   10. BOTÃO FLUTUANTE DO WHATSAPP — com pulso
   ------------------------------------------------------------ */
.fab-whatsapp {
  box-shadow: 0 10px 30px rgba(37,211,102,.35);
}
.fab-whatsapp::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: #25d366;
  z-index: -1;
  animation: ondaZap 2.6s ease-out infinite;
}
@keyframes ondaZap {
  0%   { transform: scale(1); opacity: .45; }
  100% { transform: scale(1.75); opacity: 0; }
}

/* ------------------------------------------------------------
   11. RESPEITA QUEM DESLIGOU ANIMAÇÕES
   ------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .aurora span,
  .brilha,
  .eyebrow::before,
  .fab-whatsapp::before { animation: none !important; }

  .linha-sobe > span { transform: none !important; animation: none !important; }
  [data-reveal="cine"] { opacity: 1 !important; transform: none !important; filter: none !important; }
}
