/* LOMIENS shared hero primitives — extracted/evolved from LOMIENS_web_site/index.html */

:root {
  --color-stellar-blue: #2f6bff;
  --color-electric-blue: #5b8cff;
  --color-neon-cyan: #7aa8ff;
  --bg-top: #0a2a66;
  --bg-bottom: #040f2a;
  --deep: #001529;
}

/* Artboard root — own gradient + own background texture so each card preview is self-contained */
.lh-stage {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: linear-gradient(180deg, var(--bg-top) 0%, var(--bg-bottom) 100%);
  color: #fff;
  font-family: "Inter", system-ui, sans-serif;
  isolation: isolate;
}

/* ---- Background layers (aurora + hex grid) ---- */
.lh-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}
.lh-aurora {
  position: absolute;
  inset: -20%;
  filter: blur(90px);
}
.lh-blob {
  position: absolute;
  border-radius: 50%;
  opacity: 0.22;
}
.lh-blob.a {
  top: 5%;
  left: 8%;
  width: 55%;
  height: 80%;
  background: radial-gradient(circle, rgba(47, 107, 255, 0.5) 0%, transparent 60%);
}
.lh-blob.b {
  bottom: -10%;
  right: 0%;
  width: 60%;
  height: 80%;
  background: radial-gradient(circle, rgba(23, 60, 170, 0.45) 0%, transparent 60%);
}
.lh-hex {
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg width='60' height='104' viewBox='0 0 60 104' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 0l30 17.32v34.64L30 69.28 0 51.96V17.32z' fill='none' stroke='rgba(47, 107, 255, 0.1)' stroke-width='1'/%3E%3C/svg%3E");
  background-size: 64px auto;
}
.lh-hex-glow {
  position: absolute;
  inset: 0;
  opacity: 0.15;
  background-image: url("data:image/svg+xml,%3Csvg width='60' height='104' viewBox='0 0 60 104' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 0l30 17.32v34.64L30 69.28 0 51.96V17.32z' fill='none' stroke='rgba(122, 168, 255, 0.5)' stroke-width='1.5'/%3E%3C/svg%3E");
  background-size: 64px auto;
}

/* ---- Type effects ---- */
.lh-shine {
  background: linear-gradient(
    110deg,
    #ffffff 0%,
    #ffffff 30%,
    #7fb0ff 42%,
    #4d8bff 50%,
    #7fb0ff 58%,
    #ffffff 70%,
    #ffffff 100%
  );
  background-size: 250% auto;
  background-position: 150% center;
  color: transparent !important;
  -webkit-text-fill-color: transparent;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  animation: lh-shine 4.5s ease-in-out infinite;
}
@keyframes lh-shine {
  0% { background-position: 150% center; }
  100% { background-position: -50% center; }
}
.lh-laser {
  background: linear-gradient(90deg, #ffffff, #2f6bff, #ffffff);
  background-size: 200% auto;
  color: transparent;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: lh-laser 5s linear infinite;
}
@keyframes lh-laser {
  to { background-position: 200% center; }
}

/* ---- Premium card (the glass tile used in stats / mockup frames) ---- */
.lh-card {
  position: relative;
  background: linear-gradient(180deg, #38496e 0%, #2c3c60 42%, #243552 100%);
  border: 1px solid rgba(255, 255, 255, 0.23);
  box-shadow:
    inset 0 1px 0 0 rgba(255, 255, 255, 0.08),
    0 20px 45px -26px rgba(0, 0, 0, 0.75);
}
.lh-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.06) 26%, transparent 55%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  pointer-events: none;
}

/* Glass tile (softer, more transparent) — used for floating frames */
.lh-glass {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.07) 0%, rgba(255, 255, 255, 0.03) 100%);
  border: 1px solid rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* ---- Buttons ---- */
.lh-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: var(--color-stellar-blue);
  color: #fff;
  padding: 20px 32px;
  border-radius: 999px;
  font-weight: 800;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  box-shadow: 0 15px 40px -12px rgba(47, 107, 255, 0.6);
  border: none;
  cursor: pointer;
  transition: all 0.3s ease;
  white-space: nowrap;
}
.lh-btn-primary:hover {
  background: #1e50d8;
  transform: translateY(-1px);
}
.lh-btn-outline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 20px 32px;
  border-radius: 999px;
  font-weight: 800;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: transparent;
  cursor: pointer;
  transition: all 0.3s ease;
  white-space: nowrap;
}
.lh-btn-outline:hover {
  border-color: #fff;
  background: rgba(255, 255, 255, 0.05);
}

/* ---- Lockup chip (logo + LOMIENS / data analysis), used in navbar of each hero ---- */
.lh-lockup {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.lh-lockup .mark {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(8px);
}
.lh-lockup .mark img {
  height: 22px;
  width: auto;
  display: block;
}
.lh-lockup .word {
  display: flex;
  flex-direction: column;
  line-height: 1;
}
.lh-lockup .word .name {
  font-size: 16px;
  font-weight: 900;
  letter-spacing: 0.22em;
}
.lh-lockup .word .tag {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--color-stellar-blue);
  margin-top: 4px;
}

/* ---- Section kicker (eyebrow editorial: traço de cor + rótulo em caixa baixa) ---- */
.lh-badge {
  display: inline-flex;
  align-items: center;
  gap: 13px;
  padding: 0;
  background: none;
  border: none;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  font-size: 11px;
  font-weight: 700;
  text-transform: none;
  letter-spacing: 0.04em;
  color: #8fb4ff;
}
.lh-badge::before { content: none; }
/* O "dot" vira o traço de acento à esquerda do rótulo */
.lh-badge .dot {
  width: 28px;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, rgba(47, 107, 255, 0) 0%, var(--color-stellar-blue) 100%);
  box-shadow: none;
  flex-shrink: 0;
}
.lh-badge .dot::after { content: none; }

/* ---- Small utilities ---- */
.lh-divider {
  height: 1px;
  background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.1), transparent);
}

/* Mobile dos botões fica centralizado em styles/site-styles.css
   (@media max-width: 860px) — fonte única de verdade. */
