/* =====================================================
   PEPTION® — Stylesheet
   ===================================================== */

/* ---------- Tokens ---------- */
:root{
  /* Base palette */
  --bg-0:#04041a;
  --bg-1:#070725;
  --bg-2:#0a0a2e;
  --bg-card:#0d0e2e;
  --bg-card-2:#11122e;
  --line:rgba(139,92,246,.18);
  --line-strong:rgba(139,92,246,.35);

  /* Brand */
  --pink:#ec4899;
  --pink-2:#f472b6;
  --purple:#8b5cf6;
  --purple-2:#a78bfa;
  --indigo:#6366f1;
  --blue:#3b82f6;
  --blue-2:#60a5fa;
  --cyan:#22d3ee;

  /* Text */
  --tx-0:#ffffff;
  --tx-1:#e8e9ff;
  --tx-2:#b6b8d6;
  --tx-3:#8b8eb0;
  --tx-mute:#6e7099;

  /* Gradients */
  --grad-brand:linear-gradient(95deg,#ec4899 0%,#a855f7 45%,#3b82f6 100%);
  --grad-brand-soft:linear-gradient(95deg,#f9a8d4 0%,#c4b5fd 45%,#93c5fd 100%);
  --grad-card:linear-gradient(155deg,rgba(31,28,73,.55) 0%,rgba(13,14,46,.85) 60%,rgba(8,8,30,.95) 100%);
  --grad-purple:linear-gradient(135deg,#a855f7,#6366f1);

  /* Shadow / glow */
  --glow-purple:0 0 60px rgba(139,92,246,.35);
  --glow-pink:0 0 80px rgba(236,72,153,.25);
  --shadow-card:0 30px 60px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.03);

  /* Spacing */
  --pad-section:120px;
  --pad-section-mobile:72px;
  --radius-card:18px;
  --radius-pill:999px;

  --font:'Manrope',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%}
html{scroll-behavior:smooth;background:#04041a}
body{
  font-family:var(--font);
  color:var(--tx-1);
  background:var(--bg-0);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  line-height:1.6;
  overflow-x:hidden;
  font-weight:300;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none;transition:color .25s ease}
ul{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,h5{margin:0;font-weight:300;letter-spacing:-.01em;color:var(--tx-0)}
p{margin:0}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}

::selection{background:rgba(168,85,247,.4);color:#fff}

/* ---------- Layout ---------- */
.container{
  max-width:1280px;
  margin:0 auto;
  padding:0 32px;
  position:relative;
  z-index:2;
}

.section{
  position:relative;
  padding:var(--pad-section) 0;
  isolation:isolate;
}
.section::before{
  content:"";
  position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent 0%,rgba(139,92,246,.25) 50%,transparent 100%);
  z-index:1;
}

/* ---------- Globalfx (subtle ambient) ---------- */
.bg-globalfx{
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
}
.bg-grid{
  position:absolute;
  inset:0;
  background-image:
    radial-gradient(circle at 20% 10%,rgba(99,102,241,.18),transparent 40%),
    radial-gradient(circle at 80% 70%,rgba(236,72,153,.12),transparent 45%);
  opacity:.9;
}
.bg-glow{
  position:absolute;
  width:600px;height:600px;border-radius:50%;
  filter:blur(120px);opacity:.35;
  animation:floatGlow 18s ease-in-out infinite;
}
.bg-glow--a{ background:radial-gradient(circle,#7c3aed,transparent 60%);top:-200px;left:-150px }
.bg-glow--b{ background:radial-gradient(circle,#ec4899,transparent 60%);bottom:-200px;right:-150px;animation-delay:-6s }

@keyframes floatGlow{
  0%,100%{transform:translate(0,0)}
  50%{transform:translate(40px,-30px)}
}

/* ---------- Typography helpers ---------- */
.grad-text{
  background:var(--grad-brand);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  background-size:200% 100%;
  animation:gradShift 8s ease-in-out infinite;
}
@keyframes gradShift{
  0%,100%{background-position:0% 50%}
  50%{background-position:100% 50%}
}

.section__title{
  font-size:clamp(2rem,3.4vw,3.25rem);
  font-weight:300;
  line-height:1.1;
  letter-spacing:-.02em;
  margin-bottom:1.2rem;
}
.section__title--center{text-align:center}

/* Badge de sección "01 — Péptidos" */
.section__badge{
  display:inline-flex;align-items:center;gap:10px;
  padding:6px 14px 6px 6px;
  background:rgba(139,92,246,.08);
  border:1px solid rgba(139,92,246,.25);
  border-radius:999px;
  font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--tx-1);font-weight:500;
  margin-bottom:18px;
  backdrop-filter:blur(8px);
}
.section__badge--center{margin-left:auto;margin-right:auto}
.section__badge-num{
  display:inline-flex;align-items:center;justify-content:center;
  width:24px;height:24px;border-radius:50%;
  background:var(--grad-brand);
  color:#fff;font-size:.66rem;font-weight:600;letter-spacing:0;
}

/* Shapes flotantes */
.float-shapes{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.float-shapes__dot{
  position:absolute;width:8px;height:8px;border-radius:50%;
  background:radial-gradient(circle,#a855f7,transparent 70%);
  filter:blur(2px);
}
.float-shapes__dot--1{top:20%;left:6%;animation:floatDot 9s ease-in-out infinite}
.float-shapes__dot--2{top:70%;right:8%;background:radial-gradient(circle,#ec4899,transparent 70%);animation:floatDot 11s ease-in-out -3s infinite}
.float-shapes__ring{
  position:absolute;width:180px;height:180px;
  top:30%;right:4%;
  border:1px dashed rgba(139,92,246,.18);
  border-radius:50%;
  animation:rotate 40s linear infinite;
}
.float-shapes__ring::before{
  content:"";position:absolute;width:100px;height:100px;
  top:50%;left:50%;transform:translate(-50%,-50%);
  border:1px dashed rgba(236,72,153,.18);border-radius:50%;
}
@keyframes floatDot{
  0%,100%{transform:translate(0,0);opacity:.6}
  50%{transform:translate(30px,-40px);opacity:1}
}

.section__lead{
  font-size:clamp(1.05rem,1.4vw,1.35rem);
  color:var(--tx-1);
  font-weight:400;
  margin-bottom:1.4rem;
}
.section__lead--center{text-align:center}

.section__body{
  color:var(--tx-2);
  font-size:.96rem;
  line-height:1.7;
  margin-bottom:1.1rem;
  max-width:46ch;
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 28px;
  font-weight:500;font-size:.95rem;
  border-radius:var(--radius-pill);
  transition:transform .25s ease,box-shadow .25s ease,background .25s ease,filter .25s ease;
  position:relative;
  white-space:nowrap;
}
.btn--pill{border-radius:999px}
.btn--gradient{
  background:var(--grad-brand);
  color:#fff;
  box-shadow:0 14px 38px rgba(168,85,247,.35), 0 6px 20px rgba(236,72,153,.25);
  background-size:200% 100%;
  animation:gradShift 8s ease-in-out infinite;
}
.btn--gradient:hover{transform:translateY(-2px);filter:brightness(1.1);box-shadow:0 18px 50px rgba(168,85,247,.45)}
.btn--ghost{
  border:1px solid rgba(255,255,255,.25);
  color:var(--tx-1);
  background:rgba(255,255,255,.02);
  backdrop-filter:blur(8px);
}
.btn--ghost:hover{
  border-color:var(--purple-2);
  background:rgba(139,92,246,.1);
  transform:translateY(-2px);
}
.btn--icon svg{flex:0 0 auto}

/* CTA morado destacado (nav "Verificar producto") */
.btn--purple{
  color:#fff;font-weight:600;letter-spacing:.01em;
  background:linear-gradient(135deg,#b06bf5 0%,#8b5cf6 55%,#7c3aed 100%);
  background-size:170% 100%;
  border:1px solid rgba(196,181,253,.5);
  box-shadow:0 6px 20px rgba(139,92,246,.55), inset 0 1px 0 rgba(255,255,255,.28);
  animation:ctaGlow 2.8s ease-in-out infinite;
}
@keyframes ctaGlow{
  0%,100%{box-shadow:0 6px 18px rgba(139,92,246,.45), inset 0 1px 0 rgba(255,255,255,.28)}
  50%{box-shadow:0 8px 28px rgba(168,85,247,.75), 0 0 18px rgba(168,85,247,.5), inset 0 1px 0 rgba(255,255,255,.28)}
}
.btn--purple:hover{
  transform:translateY(-2px);
  background-position:100% 0;
  box-shadow:0 12px 34px rgba(168,85,247,.85), 0 0 24px rgba(168,85,247,.6), inset 0 1px 0 rgba(255,255,255,.35);
}

/* ---------- Header ---------- */
.header{
  position:fixed;top:0;left:0;right:0;
  z-index:100;
  padding:18px 0;
  transition:background .3s ease,backdrop-filter .3s ease,padding .3s ease;
}
.header.is-scrolled{
  background:rgba(4,4,26,.78);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line);
  padding:10px 0;
}
.header__inner{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.header__logo img{height:32px;width:auto}

.nav__list{display:flex;align-items:center;gap:26px}
.nav__link{
  font-size:.92rem;color:var(--tx-2);font-weight:400;
  position:relative;padding:6px 2px;
}
.nav__link::after{
  content:"";position:absolute;left:0;bottom:0;height:2px;width:0;
  background:var(--grad-brand);border-radius:2px;transition:width .3s ease;
}
.nav__link:hover{color:#fff}
.nav__link:hover::after,.nav__link.is-active::after{width:100%}
.nav__link.is-active{color:#fff}

.header__cta{padding:10px 22px;font-size:.88rem}

.hamburger{
  display:none;width:38px;height:38px;
  flex-direction:column;justify-content:center;align-items:center;gap:5px;
}
.hamburger span{
  width:22px;height:2px;background:#fff;border-radius:2px;transition:transform .3s,opacity .3s;
}
.hamburger.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.is-open span:nth-child(2){opacity:0}
.hamburger.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.mobile-nav{
  position:fixed;inset:0 0 0 0;background:rgba(4,4,26,.96);backdrop-filter:blur(20px);
  z-index:90;display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;
}
.mobile-nav.is-open{opacity:1;visibility:visible}
.mobile-nav ul{display:flex;flex-direction:column;gap:22px;text-align:center}
.mobile-nav a{font-size:1.4rem;font-weight:300;color:var(--tx-1)}
.mobile-nav__cta{
  display:inline-block;margin-top:14px;padding:12px 28px;
  background:var(--grad-brand);border-radius:999px;color:#fff !important;font-size:1rem;
}

/* =====================================================
   HERO — Imagen como FONDO FULL-WIDTH
   La imagen hero-fondo.png (1672×941, ratio 16:9) cubre
   TODO el ancho del hero. El texto va encima, alineado
   a la izquierda, sobre un overlay oscuro que aclara
   hacia la derecha para que se aprecie la DNA.
   ===================================================== */
.hero{
  position:relative;
  min-height:100vh;
  padding:120px 0 140px;
  overflow:hidden;
  isolation:isolate;
}

/* FONDO FULL-WIDTH */
.hero__bg-dna{
  position:absolute;
  inset:0;
  z-index:-2;
  pointer-events:none;
  overflow:hidden;
}
.hero__bg-dna img{
  width:100%;height:100%;
  object-fit:cover;
  object-position:65% center;
  filter:saturate(1.15) brightness(1) contrast(1.02);
  animation:dnaIdle 18s ease-in-out infinite alternate;
  will-change:transform;
}
@keyframes dnaIdle{
  0%{transform:scale(1.02) translateX(0)}
  100%{transform:scale(1.08) translateX(-1%)}
}

/* OVERLAY oscuro que aclara hacia la derecha */
.hero__bg{
  position:absolute;inset:0;z-index:-1;
  overflow:hidden;
  pointer-events:none;
}
.hero__bg-gradient{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,
      rgba(4,4,26,.95) 0%,
      rgba(4,4,26,.85) 25%,
      rgba(4,4,26,.55) 50%,
      rgba(4,4,26,.25) 75%,
      rgba(4,4,26,.10) 100%),
    linear-gradient(180deg,
      rgba(4,4,26,.55) 0%,
      transparent 25%,
      transparent 65%,
      rgba(4,4,26,.65) 100%);
}
.hero__bg-radial{
  position:absolute;inset:0;
  background:
    radial-gradient(circle 800px at 80% 50%, rgba(168,85,247,.18), transparent 60%),
    radial-gradient(circle 600px at 95% 30%, rgba(236,72,153,.14), transparent 60%),
    radial-gradient(circle 500px at 15% 90%, rgba(59,130,246,.12), transparent 60%);
  mix-blend-mode:screen;
}

.hero__lines{display:none}

.hero__waves{position:absolute;left:0;right:0;bottom:0;height:220px;pointer-events:none}
.hero__waves svg{width:100%;height:100%;display:block}
.hero__wave-path{transform-origin:center;animation:waveShift 9s ease-in-out infinite}
.hero__wave-path--2{animation-duration:13s;animation-direction:reverse}
.hero__wave-path--3{animation-duration:17s}
@keyframes waveShift{
  0%,100%{transform:translateX(0)}
  50%{transform:translateX(-40px)}
}
.hero__particles{
  position:absolute;inset:0;width:100%;height:100%;
  pointer-events:none;opacity:.65;
  mix-blend-mode:screen;
}

/* wrap: hereda max-width del container y se centra en pantalla */
.hero__wrap{
  position:relative;
  z-index:2;
}
/* inner: SOLO contenedor del contenido textual, pegado a la izquierda del wrap */
.hero__inner{
  position:relative;
  display:flex;flex-direction:column;
  align-items:flex-start;
  text-align:left;
  max-width:620px;
  margin:0;             /* no auto — no se centra */
  min-height:calc(100vh - 260px);
  justify-content:center;
  padding-top:20px;
}
/* Forzar todos los hijos al borde izquierdo exacto */
.hero__inner > *{
  text-align:left;
  align-self:flex-start;
  margin-left:0;
  margin-right:auto;
}
.hero__inner *{text-align:left}
/* Refuerzo de legibilidad detrás del texto */
.hero__inner::before{
  content:"";
  position:absolute;
  left:-40px;top:50%;transform:translateY(-50%);
  width:calc(100% + 80px);height:115%;
  background:radial-gradient(ellipse 70% 60% at 25% 50%, rgba(4,4,26,.55), transparent 75%);
  filter:blur(20px);
  z-index:-1;
  pointer-events:none;
}

/* Chip decorativo - alineado izquierda */
.hero__chip{
  align-self:flex-start;
  display:inline-flex;align-items:center;gap:10px;
  padding:8px 16px;
  background:rgba(139,92,246,.08);
  border:1px solid rgba(139,92,246,.25);
  border-radius:999px;
  font-size:.74rem;
  color:var(--tx-1);
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:500;
  margin-bottom:24px;
  backdrop-filter:blur(10px);
  animation:fadeUp 1s 0s both cubic-bezier(.2,.6,.2,1);
}
.hero__chip-dot{
  width:7px;height:7px;border-radius:50%;
  background:#a855f7;
  box-shadow:0 0 12px #a855f7, 0 0 22px rgba(168,85,247,.6);
  animation:pulseDot 1.6s ease-in-out infinite;
}
@keyframes pulseDot{
  0%,100%{transform:scale(1);opacity:1}
  50%{transform:scale(1.4);opacity:.7}
}

.hero__brand{
  margin:0 0 14px;
  line-height:0;
}
.hero__brand img{
  width:min(440px,90%);
  height:auto;
  margin:0;
  display:block;
  filter:drop-shadow(0 0 60px rgba(139,92,246,.45));
  animation:fadeUp 1s .15s both cubic-bezier(.2,.6,.2,1);
}
.hero__title{
  font-size:clamp(1.5rem,2.6vw,2.5rem);
  font-weight:300;line-height:1.12;letter-spacing:-.02em;
  margin-bottom:1.6rem;color:#fff;white-space:nowrap;
  animation:fadeUp 1s .3s both cubic-bezier(.2,.6,.2,1);
}
.hero__desc{
  color:var(--tx-2);font-size:1.02rem;line-height:1.75;
  margin-bottom:2.2rem;max-width:32rem;
  animation:fadeUp 1s .45s both cubic-bezier(.2,.6,.2,1);
}
.hero__actions{
  display:flex;gap:14px;flex-wrap:wrap;
  margin-bottom:3rem;
  animation:fadeUp 1s .6s both cubic-bezier(.2,.6,.2,1);
}
@keyframes fadeUp{
  from{opacity:0;transform:translateY(24px)}
  to{opacity:1;transform:translateY(0)}
}

/* Strip de stats - alineado izquierda */
.hero__strip{
  align-self:stretch;
  display:flex;gap:0;
  border-top:1px solid var(--line);
  padding-top:24px;
  width:100%;max-width:32rem;
  text-align:left;
  animation:fadeUp 1s .8s both cubic-bezier(.2,.6,.2,1);
}
.hero__stat{text-align:left}
.hero__stat{
  flex:1;padding-right:18px;
  border-right:1px solid var(--line);
  padding-left:0;
}
.hero__stat:first-child{padding-left:0}
.hero__stat:last-child{border-right:0;padding-right:0}
.hero__stat + .hero__stat{padding-left:18px}
.hero__stat-num{
  display:block;font-size:1.6rem;font-weight:600;line-height:1;
  margin-bottom:6px;letter-spacing:-.02em;
}
.hero__stat-lbl{
  display:block;font-size:.72rem;color:var(--tx-3);
  line-height:1.35;letter-spacing:.02em;text-transform:uppercase;
}

/* Scroll indicator */
.hero__scroll{
  position:absolute;
  left:50%;transform:translateX(-50%);
  bottom:36px;
  width:26px;height:42px;
  border:1.5px solid rgba(255,255,255,.4);
  border-radius:14px;
  display:flex;justify-content:center;padding-top:7px;
  z-index:5;
  transition:border-color .3s ease,transform .3s ease;
}
.hero__scroll:hover{
  border-color:var(--purple-2);
  transform:translateX(-50%) translateY(4px);
}
.hero__scroll-dot{
  width:3px;height:8px;background:#fff;border-radius:2px;
  animation:scrollDot 1.8s ease-in-out infinite;
}
@keyframes scrollDot{
  0%{transform:translateY(0);opacity:1}
  100%{transform:translateY(16px);opacity:0}
}

/* Botón shimmer */
.btn--shimmer{position:relative;overflow:hidden}
.btn--shimmer::after{
  content:"";position:absolute;
  top:0;left:-100%;height:100%;width:60%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);
  animation:shimmer 3.2s ease-in-out infinite;
  pointer-events:none;
}
@keyframes shimmer{
  0%{left:-100%}
  60%,100%{left:120%}
}

/* =====================================================
   SECCIÓN PÉPTIDOS
   ===================================================== */
.section--peptidos{
  background:
    radial-gradient(ellipse 60% 80% at 90% 50%,rgba(59,130,246,.08),transparent 60%),
    linear-gradient(180deg,#040418 0%,#06062a 100%);
}
.peptidos__grid{
  display:grid;grid-template-columns:1fr 2fr;gap:60px;align-items:center;
}
.peptidos__cards{
  display:grid;grid-template-columns:repeat(3,1fr);gap:22px;
  align-items:stretch;
}

/* Frase destacada "base científica" */
.peptidos__highlight{
  margin-top:1.8rem;
  font-size:1.05rem;font-weight:600;line-height:1.5;color:var(--tx-1);
  padding:14px 20px;
  border-left:3px solid #a855f7;
  background:linear-gradient(90deg,rgba(139,92,246,.14),rgba(139,92,246,0));
  border-radius:0 12px 12px 0;
}

/* Imagen "Beneficios de los péptidos" con marco degradado */
.peptidos__visual{
  margin:0;
  animation:floatY 9s ease-in-out infinite;
}
.peptidos__visual-frame{
  position:relative;
  border-radius:24px;
  padding:3px;
  background:linear-gradient(135deg,#ec4899,#a855f7 45%,#3b82f6);
  box-shadow:0 30px 70px rgba(0,0,0,.5), 0 0 60px rgba(139,92,246,.28);
  transition:transform .5s cubic-bezier(.2,.6,.2,1),box-shadow .5s ease;
}
.peptidos__visual-frame::before{
  content:"";position:absolute;inset:0;border-radius:inherit;padding:3px;
  background:linear-gradient(135deg,rgba(255,255,255,.5),transparent 40%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
          mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  pointer-events:none;
}
.peptidos__visual-frame img{
  display:block;width:100%;height:auto;
  border-radius:21px;
  transition:transform .6s cubic-bezier(.2,.6,.2,1);
}
.peptidos__visual:hover .peptidos__visual-frame{
  transform:translateY(-4px);
  box-shadow:0 40px 90px rgba(0,0,0,.55), 0 0 80px rgba(168,85,247,.4);
}
.peptidos__visual:hover .peptidos__visual-frame img{transform:scale(1.015)}

/* ---------- Card base (glass + spotlight) ---------- */
.card{
  --spot-x:50%;
  --spot-y:0%;
  background:
    radial-gradient(circle 260px at var(--spot-x) var(--spot-y), rgba(168,85,247,.18), transparent 60%),
    var(--grad-card);
  border:1px solid var(--line);
  border-radius:var(--radius-card);
  padding:38px 28px 34px;
  text-align:center;
  position:relative;
  overflow:hidden;
  transition:transform .4s cubic-bezier(.2,.6,.2,1),border-color .35s ease,box-shadow .35s ease;
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  isolation:isolate;
}
/* Borde luminoso animado (conic) */
.card::before{
  content:"";position:absolute;inset:-1px;
  border-radius:inherit;
  background:conic-gradient(from 90deg at 50% 50%,
    rgba(168,85,247,0) 0%,
    rgba(236,72,153,.4) 25%,
    rgba(168,85,247,.5) 50%,
    rgba(59,130,246,.4) 75%,
    rgba(168,85,247,0) 100%);
  opacity:0;
  transition:opacity .4s ease;
  pointer-events:none;
  z-index:-1;
  filter:blur(10px);
}
/* Capa de fondo para tapar el conic en el centro */
.card::after{
  content:"";position:absolute;inset:1px;
  border-radius:calc(var(--radius-card) - 1px);
  background:linear-gradient(155deg,rgba(20,20,55,.85) 0%,rgba(10,10,38,.95) 100%);
  z-index:-1;
}
.card:hover{
  transform:translateY(-8px);
  border-color:transparent;
  box-shadow:0 30px 70px rgba(0,0,0,.55), 0 0 50px rgba(139,92,246,.25);
}
.card:hover::before{opacity:1;animation:rotateConic 6s linear infinite}
@keyframes rotateConic{
  to{filter:blur(10px) hue-rotate(360deg)}
}
.card__icon{
  width:78px;height:78px;margin:0 auto 20px;
  display:flex;align-items:center;justify-content:center;
  color:var(--purple-2);
  position:relative;
  transition:transform .4s cubic-bezier(.2,.6,.2,1);
}
.card__icon::before{
  content:"";position:absolute;inset:0;
  border-radius:50%;
  background:radial-gradient(circle,rgba(168,85,247,.15),transparent 65%);
  transition:transform .4s ease,opacity .4s ease;
}
.card:hover .card__icon{transform:scale(1.08) rotate(-3deg)}
.card:hover .card__icon::before{transform:scale(1.3);background:radial-gradient(circle,rgba(236,72,153,.25),transparent 65%)}
.card__title{
  font-size:1.18rem;font-weight:500;margin-bottom:14px;line-height:1.25;
  color:#fff;letter-spacing:-.01em;
}
.card__text{
  color:var(--tx-2);font-size:.88rem;line-height:1.65;
}

/* =====================================================
   SECCIÓN CONCEPTO
   ===================================================== */
.section--concepto{
  background:linear-gradient(180deg,#06062a 0%,#040420 100%);
  overflow:hidden;
}
.concepto__bgglow{
  position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:50%;height:80%;
  background:radial-gradient(ellipse at center,rgba(139,92,246,.2),transparent 65%);
  filter:blur(40px);
  z-index:0;
}
.concepto__grid{
  display:grid;grid-template-columns:1fr 1fr;gap:60px;
  align-items:center;
  min-height:520px;
}
.concepto__visual{
  position:relative;
  display:flex;justify-content:center;align-items:center;
  aspect-ratio:1319/1024;
  width:100%;
  max-width:560px;margin:0 auto;
  align-self:center;
}
.concepto__text{align-self:center}
.concepto__visual img{
  position:relative;z-index:2;
  width:100%;height:100%;
  object-fit:contain;
  filter:drop-shadow(0 0 120px rgba(168,85,247,.55)) saturate(1.15) brightness(1.08);
  animation:floatY 8s ease-in-out infinite;
  mix-blend-mode:screen;
  -webkit-mask-image:radial-gradient(circle at 50% 50%, #000 55%, transparent 90%);
          mask-image:radial-gradient(circle at 50% 50%, #000 55%, transparent 90%);
}

/* Canvas de partículas ADN encima de la esfera */
.concepto__particles{
  position:absolute;inset:-10%;
  width:120%;height:120%;
  z-index:3;
  pointer-events:none;
  mix-blend-mode:screen;
  opacity:.85;
}

/* Cadena ADN decorativa SVG cruzando la esfera */
.concepto__chain{
  position:absolute;
  left:-15%;right:-15%;
  width:130%;
  top:50%;transform:translateY(-50%) rotate(-8deg);
  height:120px;
  z-index:1;
  pointer-events:none;
  mix-blend-mode:screen;
  filter:drop-shadow(0 0 14px rgba(168,85,247,.5));
  animation:chainFloat 12s ease-in-out infinite alternate;
}
@keyframes chainFloat{
  0%{transform:translateY(-50%) rotate(-8deg) translateX(0)}
  100%{transform:translateY(-50%) rotate(-6deg) translateX(-8px)}
}
@keyframes floatY{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-18px)}
}
.concepto__orbit{
  position:absolute;
  width:90%;height:90%;border-radius:50%;
  border:1px dashed rgba(139,92,246,.15);
  top:50%;left:50%;transform:translate(-50%,-50%);
  animation:rotate 30s linear infinite;
}
.concepto__orbit--2{width:75%;height:75%;animation-duration:22s;animation-direction:reverse;border-color:rgba(236,72,153,.12)}
@keyframes rotate{ to{transform:translate(-50%,-50%) rotate(360deg)} }

.concepto__lead{margin-bottom:1.6rem;color:#fff;font-weight:400;font-size:1.2rem}

/* Variante logo "peption science" en el visual del concepto */
.concepto__visual--logo{
  aspect-ratio:auto;
  min-height:420px;
  overflow:visible;
}
.concepto__logo-wrap{
  position:relative;z-index:2;
  width:100%;
  display:flex;align-items:center;justify-content:center;
  animation:floatY 8s ease-in-out infinite;
}
.concepto__visual--logo .concepto__logo-wrap img{
  position:relative;z-index:2;
  width:min(560px,100%);height:auto;max-width:none;
  object-fit:contain;
  -webkit-mask-image:none;mask-image:none;
  mix-blend-mode:normal;
  animation:none;
  filter:drop-shadow(0 0 48px rgba(168,85,247,.55)) drop-shadow(0 0 100px rgba(59,130,246,.3));
}

.concepto__quote{
  margin-top:1.6rem;
  color:transparent;
  background:var(--grad-brand-soft);
  background-clip:text;-webkit-background-clip:text;
  font-size:1rem;
  line-height:1.7;
  font-weight:500;
}

/* =====================================================
   SECCIÓN MEDICINA
   ===================================================== */
.section--medicina{
  background:
    radial-gradient(ellipse 50% 60% at 10% 50%,rgba(59,130,246,.06),transparent 60%),
    linear-gradient(180deg,#040420 0%,#06062b 100%);
}
.medicina__grid{
  display:grid;grid-template-columns:.95fr 1.35fr;gap:60px;align-items:center;
}
.medicina__title-img{
  display:block;width:min(440px,100%);height:auto;margin:0 0 1.8rem;
  filter:drop-shadow(0 0 36px rgba(168,85,247,.42));
}

/* Imagen comparativa "medicina tradicional vs personalizada" */
.medicina__compare-visual{
  margin:0;
  position:relative;
  border-radius:24px;
  padding:3px;
  background:linear-gradient(135deg,#ec4899,#a855f7 45%,#3b82f6);
  box-shadow:0 30px 70px rgba(0,0,0,.5), 0 0 60px rgba(139,92,246,.28);
  transition:transform .5s cubic-bezier(.2,.6,.2,1),box-shadow .5s ease;
}
.medicina__compare-visual img{
  display:block;width:100%;height:auto;border-radius:21px;
  background:#fff;
}
.medicina__compare-visual:hover{
  transform:translateY(-4px);
  box-shadow:0 40px 90px rgba(0,0,0,.55), 0 0 80px rgba(168,85,247,.4);
}

.compare{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:0;
  background:var(--grad-card);
  border:1px solid var(--line);
  border-radius:20px;
  padding:14px;
  position:relative;
  overflow:hidden;
}
.compare__col{padding:14px 18px}
.compare__col--highlight{
  background:linear-gradient(180deg,rgba(139,92,246,.12),rgba(99,102,241,.06));
  border-radius:14px;
}
.compare__head{
  text-align:center;
  font-size:.95rem;font-weight:500;
  color:var(--tx-2);
  padding:14px 8px;
  border-bottom:1px solid var(--line);
  margin-bottom:10px;
}
.compare__head--grad{
  color:#fff;
  background:var(--grad-brand);
  -webkit-background-clip:text;background-clip:text;
  color:transparent;
  font-weight:600;
}
.compare__list li{
  display:flex;align-items:center;gap:12px;
  padding:14px 4px;
  color:var(--tx-2);font-size:.9rem;line-height:1.4;
  border-bottom:1px solid rgba(139,92,246,.08);
}
.compare__list li:last-child{border-bottom:0}
.compare__list--right li{color:var(--tx-1);justify-content:flex-start}
.compare__icon{
  flex:0 0 auto;
  width:34px;height:34px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:rgba(139,92,246,.1);
  border:1px solid rgba(139,92,246,.25);
}
.compare__arrow{
  display:flex;align-items:center;justify-content:center;
  padding:0 8px;
}
.compare__arrow-circle{
  width:44px;height:44px;border-radius:50%;
  background:rgba(139,92,246,.15);
  border:1px solid rgba(139,92,246,.4);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 30px rgba(139,92,246,.3);
}

/* =====================================================
   SECCIÓN INVESTIGACIÓN
   ===================================================== */
.section--investigacion{
  background:linear-gradient(180deg,#06062a 0%,#08082c 100%);
  overflow:hidden;
}
.investigacion__bg{position:absolute;inset:0;z-index:0;pointer-events:none}
.investigacion__bg-left,.investigacion__bg-right{
  position:absolute;top:0;height:100%;width:30%;object-fit:cover;
  opacity:.75;mix-blend-mode:screen;
  filter:saturate(1.1) brightness(1.05);
}
.investigacion__bg-left{left:0}
.investigacion__bg-right{right:0;transform:scaleX(-1)}
.investigacion__bg-fade{
  position:absolute;inset:0;
  background:linear-gradient(90deg,
    rgba(6,6,42,.7) 0%,
    rgba(6,6,42,.95) 30%,
    rgba(6,6,42,.95) 70%,
    rgba(6,6,42,.7) 100%);
}
.investigacion__inner{position:relative;z-index:2}
.investigacion__heading{text-align:center;max-width:780px;margin:0 auto 60px}
.investigacion__cards{
  display:grid;grid-template-columns:repeat(4,1fr);gap:22px;
}

/* =====================================================
   SECCIÓN ÁREAS DE EXPLORACIÓN
   ===================================================== */
.section--areas{
  background:
    radial-gradient(ellipse 50% 50% at 10% 30%,rgba(139,92,246,.08),transparent 60%),
    linear-gradient(180deg,#08082c 0%,#04041e 100%);
}
.areas__grid{
  display:grid;grid-template-columns:.85fr 2fr;gap:60px;align-items:center;
}
.areas__lead{max-width:42ch;margin-bottom:2rem}
.areas__lead strong{color:#fff;font-weight:600}
.areas__logo{
  display:block;width:min(240px,68%);height:auto;margin:0 0 1.5rem;
  filter:drop-shadow(0 0 28px rgba(168,85,247,.45));
}
.areas__items{
  display:grid;grid-template-columns:repeat(2,1fr);gap:36px 44px;
}
.area-item{
  display:flex;align-items:flex-start;gap:20px;text-align:left;padding:6px 4px;
  transition:transform .35s ease;
  cursor:default;
}
.area-item:hover{transform:translateY(-6px)}
.area-item:hover .area-item__icon{
  filter:drop-shadow(0 0 24px rgba(236,72,153,.5));
  transform:scale(1.08);
}
.area-item__icon{
  width:64px;height:64px;flex:0 0 64px;
  display:flex;align-items:center;justify-content:center;
  filter:drop-shadow(0 0 14px rgba(168,85,247,.3));
  transition:transform .4s cubic-bezier(.2,.6,.2,1),filter .4s ease;
}
.area-item__icon img{
  width:100%;height:100%;object-fit:contain;display:block;
}
.area-item__body{flex:1;min-width:0}
.area-item__title{
  font-size:1.15rem;font-weight:600;color:#fff;margin-bottom:6px;line-height:1.2;
}
.area-item__text{
  font-size:.9rem;color:var(--tx-2);line-height:1.5;
}

/* =====================================================
   SECCIÓN FINAL
   Imagen original: 1672×495 (ratio 3.378, panorámica)
   Texto a la izquierda explícito.
   ===================================================== */
.section--final{
  padding:100px 0 100px;
  background:linear-gradient(180deg,#04041e 0%,#06062a 100%);
  overflow:hidden;
  min-height:380px;
}
.section--final .container{
  display:flex;
  justify-content:flex-start;
  align-items:center;
  min-height:280px;
}
.final__bg{position:absolute;inset:0;z-index:0;pointer-events:none}
.final__bg img{
  position:absolute;
  right:-2%;
  top:50%;
  transform:translateY(-50%);
  width:62%;max-width:1000px;
  aspect-ratio:1672/495;
  height:auto;
  object-fit:cover;
  opacity:1;mix-blend-mode:screen;
  filter:saturate(1.2) brightness(1.1) contrast(1.05);
  -webkit-mask-image:radial-gradient(ellipse 80% 90% at 60% 50%, #000 35%, transparent 90%);
          mask-image:radial-gradient(ellipse 80% 90% at 60% 50%, #000 35%, transparent 90%);
}
.final__bg::before{
  content:"";position:absolute;
  right:-2%;top:50%;transform:translateY(-50%);
  width:62%;height:60%;
  background:radial-gradient(ellipse 60% 60% at 50% 50%,rgba(168,85,247,.25),transparent 70%);
  filter:blur(50px);
}
.final__bg-fade{
  position:absolute;inset:0;
  background:linear-gradient(90deg,
    rgba(4,4,30,.98) 0%,
    rgba(4,4,30,.92) 25%,
    rgba(4,4,30,.55) 55%,
    rgba(4,4,30,.15) 85%,
    rgba(4,4,30,0) 100%);
}
.final__inner{
  position:relative;z-index:2;
  width:100%;
  max-width:620px;
  margin:0 auto 0 0 !important;  /* fuerza pegado a la izquierda */
  text-align:left;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.final__inner > *{
  text-align:left !important;
  align-self:flex-start;
  margin-left:0;
  margin-right:auto;
}
.final__inner *{text-align:left}
.final__logo{height:44px;width:auto;margin:0 0 18px;display:block}
.final__title{
  font-size:clamp(1.8rem,2.6vw,2.6rem);
  font-weight:300;color:#fff;margin-bottom:18px;line-height:1.2;
  letter-spacing:-.015em;
}
.final__text{
  color:var(--tx-2);font-size:.96rem;line-height:1.7;max-width:54ch;
}

/* =====================================================
   FOOTER
   ===================================================== */
.footer{
  background:#04041a;
  border-top:1px solid var(--line);
  padding:50px 0 30px;
  position:relative;z-index:2;
}
.footer__top{
  display:grid;grid-template-columns:1.2fr 2fr auto;gap:40px;align-items:center;
  padding-bottom:30px;
}
.footer__logo{height:34px;width:auto;margin-bottom:10px}
.footer__tagline{color:var(--tx-3);font-size:.82rem;line-height:1.5}
.footer__nav{
  display:flex;flex-wrap:nowrap;gap:22px;justify-content:center;
}
.footer__nav a{font-size:.85rem;color:var(--tx-2);white-space:nowrap}
.footer__nav a:hover{color:#fff}
.footer__social{display:flex;gap:14px;align-items:center}
.footer__icon{
  width:38px;height:38px;border-radius:50%;
  border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--tx-2);
  transition:all .25s ease;
}
.footer__icon:hover{
  color:#fff;border-color:var(--purple-2);
  background:rgba(139,92,246,.1);
  transform:translateY(-2px);
}
.footer__bottom{
  border-top:1px solid var(--line);
  padding-top:24px;
  display:flex;flex-direction:column;align-items:flex-start;gap:16px;
}
.footer__legal{color:var(--tx-mute);font-size:.72rem;line-height:1.6;max-width:none}
.footer__links{display:flex;gap:14px;flex-wrap:wrap;font-size:.78rem;color:var(--tx-3)}
.footer__links a{color:var(--tx-3)}
.footer__links a:hover{color:#fff}
.footer__links span{color:var(--tx-mute)}

/* =====================================================
   REVEAL ANIMATIONS
   ===================================================== */
[data-reveal]{
  opacity:0;transform:translateY(28px);
  transition:opacity .9s cubic-bezier(.2,.6,.2,1),transform .9s cubic-bezier(.2,.6,.2,1);
}
[data-reveal].is-visible{opacity:1;transform:translateY(0)}

/* =====================================================
   CAROUSEL (mobile)
   ===================================================== */
.carousel-dots{display:none;justify-content:center;gap:8px;margin-top:18px}
.carousel-dots button{
  width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.2);
  transition:all .25s ease;
}
.carousel-dots button.is-active{background:var(--purple-2);width:24px;border-radius:4px}

/* =====================================================
   RESPONSIVE
   ===================================================== */
@media (max-width:1100px){
  .areas__items{grid-template-columns:repeat(2,1fr);gap:30px}
  .investigacion__cards{grid-template-columns:repeat(2,1fr)}
  .peptidos__grid{grid-template-columns:1fr;gap:40px}
  .peptidos__cards{grid-template-columns:repeat(3,1fr)}
}

@media (max-width:900px){
  :root{--pad-section:80px}
  .nav,.header__cta{display:none}
  .hamburger{display:flex}

  .hero{padding:0 0 60px;min-height:auto;text-align:left}
  .hero__inner{
    max-width:100%;
    align-items:flex-start;text-align:left;
    min-height:auto;
    padding-top:8px;
  }
  .hero__inner > *{text-align:left}
  .hero__bg-dna{
    position:relative;
    top:auto;right:auto;left:auto;transform:none;
    width:100%;max-width:560px;
    margin:110px auto 14px;
    aspect-ratio:1672/941;
    z-index:1;
    -webkit-mask-image:radial-gradient(ellipse 88% 75% at center,#000 30%,transparent 85%);
            mask-image:radial-gradient(ellipse 88% 75% at center,#000 30%,transparent 85%);
  }
  .hero__bg-dna::before{display:none}
  .hero__bg-dna img{position:relative;height:100%;object-position:center}
  .hero__chip{margin:0 0 18px;align-self:flex-start}
  .hero__brand img{margin:0 0 8px;width:min(340px,80%)}
  .hero__title{font-size:1.9rem;white-space:normal}
  .hero__desc{margin:0 0 1.6rem;text-align:left;max-width:100%}
  .hero__desc br{display:none}
  .hero__title br{display:none}
  .hero__actions{justify-content:flex-start}
  .hero__strip{margin:0;align-self:stretch}
  .hero__scroll{display:none}
  .hero__lines{display:none}

  .concepto__grid,.medicina__grid,.areas__grid{
    grid-template-columns:1fr;gap:36px;text-align:center;
  }
  .concepto__visual img{max-width:360px;margin:0 auto}
  .medicina__title-img,.areas__logo{margin-left:auto;margin-right:auto}
  .peptidos__visual{max-width:560px;margin:0 auto}
  .section__body,.areas__lead{margin-left:auto;margin-right:auto}

  /* Péptidos — centrar el texto en móvil (no estaba incluido arriba) */
  .peptidos__text{text-align:center}
  .peptidos__text .section__lead,
  .peptidos__text .section__body{margin-left:auto;margin-right:auto}
  .peptidos__highlight{
    text-align:center;
    border-left:none;
    border-radius:12px;
    background:linear-gradient(90deg,rgba(139,92,246,0),rgba(139,92,246,.14),rgba(139,92,246,0));
  }
  .compare__list--right li,.compare__list li{justify-content:flex-start;text-align:left}

  .investigacion__cards{grid-template-columns:repeat(2,1fr)}

  /* Carousel mobile - convert ¿Qué son los péptidos? into 1-up carousel */
  .peptidos__cards.is-carousel{
    display:flex;overflow-x:auto;
    scroll-snap-type:x mandatory;
    gap:16px;
    padding:4px 4px 18px;
    margin:0 -8px;
    scrollbar-width:none;
  }
  .peptidos__cards.is-carousel::-webkit-scrollbar{display:none}
  .peptidos__cards.is-carousel .card{
    flex:0 0 80%;scroll-snap-align:center;
  }

  /* Investigación: scroll cards horizontal — 1 fila */
  .investigacion__cards.is-carousel{
    display:flex;overflow-x:auto;
    scroll-snap-type:x mandatory;
    gap:16px;
    padding:4px 4px 18px;
    margin:0 -8px;
    scrollbar-width:none;
  }
  .investigacion__cards.is-carousel::-webkit-scrollbar{display:none}
  .investigacion__cards.is-carousel .card{
    flex:0 0 80%;scroll-snap-align:center;
  }

  .areas__items{grid-template-columns:1fr;gap:26px;max-width:420px;margin:0 auto}

  /* Sección final — en móvil se centra y el título va en una sola línea */
  .section--final .container{justify-content:center}
  .final__inner{
    align-items:center;
    margin:0 auto !important;
    text-align:center;
  }
  .final__inner > *{
    text-align:center !important;
    align-self:center;
    margin-left:auto;
    margin-right:auto;
  }
  .final__inner *{text-align:center}
  .final__logo{margin-left:auto;margin-right:auto}
  .final__title{
    white-space:nowrap;
    font-size:clamp(0.82rem,4.4vw,1.8rem);
  }

  .footer__top{grid-template-columns:1fr;gap:28px;text-align:center;justify-items:center}
  .footer__brand{display:flex;flex-direction:column;align-items:center;text-align:center}
  .footer__logo{margin-left:auto;margin-right:auto;display:block}
  .footer__nav{justify-content:center;flex-wrap:wrap}
  .footer__bottom{flex-direction:column;align-items:center;text-align:center}
  .footer__legal{max-width:none}
  .footer__links{justify-content:center}

  .compare{grid-template-columns:1fr;gap:10px;padding:10px}
  .compare__arrow{transform:rotate(90deg);justify-self:center;padding:4px 0}
  .compare__col--highlight{margin-top:6px}
  .compare__col{padding:10px}
  .compare__head{margin-bottom:6px}
  .compare__list li{padding:10px 4px;text-align:left}
  .compare__list--right li{padding-left:46px;position:relative}
  .compare__list--right li::before{
    content:"";position:absolute;left:8px;top:50%;transform:translateY(-50%);
    width:30px;height:30px;border-radius:50%;
    background:linear-gradient(135deg,#a855f7,#ec4899);
    box-shadow:0 0 16px rgba(168,85,247,.45);
  }
  .compare__list--right li::after{
    content:"";position:absolute;left:17px;top:50%;transform:translateY(-50%) rotate(45deg);
    width:5px;height:11px;border-right:2px solid #fff;border-bottom:2px solid #fff;margin-top:-2px;
  }
}

@media (max-width:560px){
  :root{--pad-section:60px}
  .container{padding:0 20px}
  .hero__brand img{width:min(280px,75%)}
  .hero__title{font-size:1.6rem}
  .hero__actions{flex-direction:column;width:100%}
  .hero__actions .btn{justify-content:center;width:100%}
  .btn{padding:13px 22px;font-size:.9rem}

  .section__title{font-size:1.8rem}
  .section__lead{font-size:1rem}

  .areas__items{grid-template-columns:1fr;gap:22px;max-width:420px;margin:0 auto}
  .investigacion__cards.is-carousel .card{flex:0 0 86%}
  .peptidos__cards.is-carousel .card{flex:0 0 86%}

  .final__bg img{width:100%;opacity:.4}
  .final__bg-fade{background:linear-gradient(180deg,rgba(4,4,30,.6) 0%,rgba(4,4,30,.92) 100%)}

  .footer__nav{gap:14px 18px}
  .footer__legal{font-size:.7rem}
  .footer__links{font-size:.72rem;gap:8px}
}

/* =====================================================
   MODALES (scanner + resultado)
   ===================================================== */
.modal{
  position:fixed;inset:0;z-index:200;
  display:none;
  align-items:center;justify-content:center;
  padding:20px;
}
.modal.is-open{display:flex;animation:modalFade .3s ease}
.modal__backdrop{
  position:absolute;inset:0;
  background:rgba(2,2,12,.78);
  backdrop-filter:blur(14px);
  cursor:pointer;
}
@keyframes modalFade{
  from{opacity:0}to{opacity:1}
}
.modal__panel{
  position:relative;
  width:100%;max-width:480px;
  background:linear-gradient(160deg,rgba(20,18,55,.92) 0%,rgba(10,10,38,.96) 100%);
  border:1px solid rgba(139,92,246,.28);
  border-radius:22px;
  padding:36px 28px 28px;
  box-shadow:0 40px 80px rgba(0,0,0,.6), 0 0 60px rgba(139,92,246,.22);
  backdrop-filter:blur(14px);
  isolation:isolate;
  overflow:hidden;
  animation:modalIn .4s cubic-bezier(.2,.6,.2,1);
}
.modal__panel::before{
  content:"";position:absolute;inset:-1px;
  border-radius:inherit;
  background:conic-gradient(from 0deg,rgba(168,85,247,0),rgba(236,72,153,.45),rgba(168,85,247,.6),rgba(59,130,246,.45),rgba(168,85,247,0));
  z-index:-2;filter:blur(14px);opacity:.6;
  animation:rotateConic 7s linear infinite;
}
.modal__panel::after{
  content:"";position:absolute;inset:1px;border-radius:calc(22px - 1px);
  background:linear-gradient(160deg,rgba(20,18,55,.95) 0%,rgba(10,10,38,.97) 100%);
  z-index:-1;
}
@keyframes modalIn{
  from{opacity:0;transform:translateY(20px) scale(.96)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
.modal__close{
  position:absolute;top:14px;right:14px;
  width:36px;height:36px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:var(--tx-2);
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.12);
  transition:all .25s ease;cursor:pointer;
  z-index:5;
}
.modal__close:hover{
  color:#fff;border-color:var(--purple-2);
  background:rgba(139,92,246,.15);transform:rotate(90deg);
}
.modal__title{
  font-size:1.35rem;font-weight:400;color:#fff;
  letter-spacing:-.01em;text-align:center;margin-bottom:6px;
}
.modal__sub{
  text-align:center;color:var(--tx-2);
  font-size:.86rem;margin-bottom:22px;
}

/* ---------- Scanner ---------- */
.modal__panel--scanner{max-width:440px}
.scanner{
  position:relative;
  width:100%;aspect-ratio:1/1;
  border-radius:18px;
  overflow:hidden;
  background:#000;
  box-shadow:inset 0 0 0 1px rgba(139,92,246,.3);
}
.scanner__video{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  background:#000;
}
.scanner__canvas{display:none}
.scanner__frame{
  position:absolute;inset:14%;
  pointer-events:none;
}
.scanner__frame span{
  position:absolute;
  width:30px;height:30px;
  border:3px solid #fff;
  filter:drop-shadow(0 0 8px rgba(168,85,247,.7));
}
.scanner__frame span:nth-child(1){top:0;left:0;border-right:0;border-bottom:0;border-top-left-radius:10px}
.scanner__frame span:nth-child(2){top:0;right:0;border-left:0;border-bottom:0;border-top-right-radius:10px}
.scanner__frame span:nth-child(3){bottom:0;left:0;border-right:0;border-top:0;border-bottom-left-radius:10px}
.scanner__frame span:nth-child(4){bottom:0;right:0;border-left:0;border-top:0;border-bottom-right-radius:10px}
.scanner__line{
  position:absolute;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,#a855f7,#ec4899,#a855f7,transparent);
  box-shadow:0 0 12px #a855f7;
  animation:scanLine 2.4s ease-in-out infinite;
}
@keyframes scanLine{
  0%,100%{top:0}
  50%{top:calc(100% - 2px)}
}
.scanner__status{
  position:absolute;left:0;right:0;bottom:0;
  padding:10px;
  background:linear-gradient(0deg,rgba(0,0,0,.85),transparent);
  color:#fff;font-size:.82rem;text-align:center;
  letter-spacing:.02em;
}

/* ---------- Resultado ---------- */
.modal__panel--result{max-width:500px;padding:44px 30px 30px;max-height:92vh;overflow-y:auto}
.result-check{
  width:88px;height:88px;margin:0 auto 18px;
  position:relative;
}
.result-check__bg{
  position:absolute;inset:0;border-radius:50%;
  background:radial-gradient(circle, rgba(34,197,94,.28), transparent 65%);
  animation:pulseGreen 2s ease-in-out infinite;
}
.result-check__ring{
  position:absolute;inset:0;border-radius:50%;
  border:1.5px solid rgba(34,197,94,.55);
  animation:ringExpand 1.8s ease-out infinite;
}
.result-check__circle{
  position:absolute;inset:12px;border-radius:50%;
  background:linear-gradient(135deg,#22c55e,#16a34a);
  box-shadow:0 10px 36px rgba(34,197,94,.45), inset 0 -8px 14px rgba(0,0,0,.18);
  display:flex;align-items:center;justify-content:center;
  animation:checkPop .55s .25s both cubic-bezier(.34,1.56,.64,1);
  transform:scale(0);
}
.result-check__svg{
  width:38px;height:38px;
  stroke:#fff;stroke-width:3.4;fill:none;
  stroke-linecap:round;stroke-linejoin:round;
}
.result-check__svg path{
  stroke-dasharray:30;stroke-dashoffset:30;
  animation:drawCheck .45s .6s forwards cubic-bezier(.2,.6,.2,1);
}
@keyframes drawCheck{ to{stroke-dashoffset:0} }
@keyframes pulseGreen{
  0%,100%{transform:scale(1);opacity:.7}
  50%{transform:scale(1.18);opacity:1}
}
@keyframes ringExpand{
  0%{transform:scale(.92);opacity:1}
  100%{transform:scale(1.45);opacity:0}
}
@keyframes checkPop{
  from{transform:scale(0) rotate(-180deg)}
  to{transform:scale(1) rotate(0)}
}

.result-head{text-align:center;margin-bottom:22px}
.result-tag{
  display:inline-flex;align-items:center;gap:8px;
  padding:5px 14px;
  background:rgba(34,197,94,.12);
  border:1px solid rgba(34,197,94,.35);
  border-radius:999px;
  color:#86efac;font-size:.7rem;
  letter-spacing:.1em;text-transform:uppercase;font-weight:600;
  margin-bottom:12px;
}
.result-tag::before{
  content:"";width:6px;height:6px;border-radius:50%;
  background:#22c55e;box-shadow:0 0 12px #22c55e;
  animation:pulseDot 1.6s ease-in-out infinite;
}
.result-title{
  font-size:1.7rem;font-weight:300;color:#fff;
  letter-spacing:-.02em;line-height:1.1;margin-bottom:6px;
}
.result-title strong{
  background:var(--grad-brand);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-weight:700;
}
.result-sub{color:var(--tx-2);font-size:.88rem;font-weight:400}

.result-fields{
  display:flex;flex-direction:column;gap:12px;
  padding:18px;margin-bottom:18px;
  background:rgba(255,255,255,.02);
  border:1px solid rgba(139,92,246,.18);
  border-radius:14px;
}
.result-fields .field{
  display:flex;justify-content:space-between;gap:10px;
  padding-bottom:10px;
  border-bottom:1px dashed rgba(139,92,246,.18);
}
.result-fields .field:last-child{border-bottom:0;padding-bottom:0}
.result-fields .field-lbl{
  color:var(--tx-3);font-size:.68rem;
  letter-spacing:.08em;text-transform:uppercase;font-weight:500;
}
.result-fields .field-val{
  color:#fff;font-size:.92rem;font-weight:500;
  text-align:right;word-break:break-word;
}
.result-fields .field-val--mono{
  font-family:'JetBrains Mono','Courier New',monospace;letter-spacing:.02em;
}
.result-fields .field--head{
  justify-content:flex-start;margin-top:4px;padding-top:12px;
  border-top:1px solid rgba(139,92,246,.28);border-bottom:0;
}
.result-fields .field--head .field-lbl{
  color:var(--purple-2);font-weight:700;font-size:.66rem;
}

.result-warning{
  display:flex;gap:12px;align-items:flex-start;
  padding:14px;
  background:linear-gradient(135deg,rgba(245,158,11,.08),rgba(239,68,68,.06));
  border:1px solid rgba(245,158,11,.28);
  border-radius:12px;
  margin-bottom:22px;
}
.result-warning__icon{
  flex:0 0 auto;
  width:32px;height:32px;border-radius:50%;
  background:linear-gradient(135deg,#f59e0b,#ef4444);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 16px rgba(245,158,11,.3);
}
.result-warning__icon svg{width:16px;height:16px;color:#fff}
.result-warning__txt{
  color:#fcd34d;font-size:.76rem;line-height:1.55;font-weight:400;
}
.result-warning__txt strong{color:#fef3c7;font-weight:600}

.result-actions{
  display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;
}
.result-actions .btn{padding:11px 22px;font-size:.86rem}

/* ----- Error state ----- */
.result--error .result-check__circle{
  background:linear-gradient(135deg,#ef4444,#dc2626);
  box-shadow:0 10px 36px rgba(239,68,68,.45);
}
.result--error .result-check__bg{background:radial-gradient(circle,rgba(239,68,68,.28),transparent 65%)}
.result--error .result-check__ring{border-color:rgba(239,68,68,.55)}
.result--error .result-tag{
  background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.35);color:#fca5a5;
}
.result--error .result-tag::before{background:#ef4444;box-shadow:0 0 12px #ef4444}

@media (max-width:560px){
  .modal__panel{padding:30px 20px 22px}
  .modal__panel--result{padding:36px 20px 22px}
  .result-title{font-size:1.4rem}
  .result-fields .field{flex-direction:column;align-items:flex-start;gap:2px}
  .result-fields .field-val{text-align:left}
  .result-actions{flex-direction:column-reverse}
  .result-actions .btn{width:100%;justify-content:center}
}

/* Reduced motion */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
}

/* =====================================================
   PÁGINAS LEGALES (Términos / Privacidad)
   ===================================================== */
.legal{
  position:relative;
  z-index:2;
  padding:160px 0 90px;
}

/* Encabezado de la página */
.legal__hero{
  max-width:860px;
  margin:0 auto 44px;
  text-align:center;
}
.legal__back{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.82rem;letter-spacing:.04em;
  color:var(--tx-2);
  padding:8px 16px 8px 12px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(139,92,246,.05);
  backdrop-filter:blur(8px);
  margin-bottom:26px;
  transition:all .25s ease;
}
.legal__back:hover{
  color:#fff;border-color:var(--purple-2);
  background:rgba(139,92,246,.12);
  transform:translateY(-2px);
}
.legal__back svg{flex:0 0 auto}
.legal__eyebrow{
  display:inline-block;
  font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--purple-2);font-weight:600;
  margin-bottom:14px;
}
.legal__title{
  font-size:clamp(2.1rem,4.4vw,3.4rem);
  font-weight:300;line-height:1.08;letter-spacing:-.02em;
  margin-bottom:16px;
}
.legal__updated{
  font-size:.8rem;color:var(--tx-mute);letter-spacing:.02em;
}

/* Tarjeta de contenido */
.legal__card{
  max-width:860px;
  margin:0 auto;
  background:var(--grad-card);
  border:1px solid var(--line);
  border-radius:var(--radius-card);
  box-shadow:var(--shadow-card);
  padding:clamp(28px,4.5vw,64px);
  position:relative;
  overflow:hidden;
}
.legal__card::before{
  content:"";
  position:absolute;left:0;right:0;top:0;height:2px;
  background:var(--grad-brand);
  opacity:.8;
}
.legal__intro{
  color:var(--tx-1);
  font-size:clamp(1rem,1.4vw,1.12rem);
  line-height:1.75;
  margin-bottom:14px;
}
.legal__intro + .legal__intro{margin-bottom:0}

.legal__section{
  padding-top:38px;
  margin-top:36px;
  border-top:1px solid var(--line);
}
.legal__section h2{
  display:flex;align-items:flex-start;gap:14px;
  font-size:clamp(1.15rem,2vw,1.45rem);
  font-weight:400;color:#fff;letter-spacing:-.01em;
  line-height:1.3;
  margin-bottom:14px;
}
.legal__num{
  flex:0 0 auto;
  display:inline-flex;align-items:center;justify-content:center;
  min-width:34px;height:34px;padding:0 6px;
  border-radius:10px;
  background:var(--grad-brand);
  color:#fff;font-size:.85rem;font-weight:600;letter-spacing:0;
  box-shadow:0 6px 18px rgba(168,85,247,.4);
  margin-top:2px;
}
.legal__section p{
  color:var(--tx-2);
  font-size:clamp(.95rem,1.2vw,1.02rem);
  line-height:1.78;
  margin-bottom:14px;
}
.legal__section p:last-child{margin-bottom:0}
.legal__section p strong{color:var(--tx-1);font-weight:600}
.legal__section .grad-text{font-weight:500}

/* Aviso destacado dentro del contenido */
.legal__note{
  margin-top:18px;
  padding:18px 20px;
  border-radius:14px;
  border:1px solid var(--line-strong);
  background:linear-gradient(120deg,rgba(236,72,153,.08),rgba(139,92,246,.08));
  color:var(--tx-1);
  font-size:.95rem;line-height:1.7;
}
.legal__note strong{color:#fff}

/* Pie de la tarjeta */
.legal__foot{
  margin-top:40px;padding-top:26px;
  border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;
}
.legal__foot p{color:var(--tx-mute);font-size:.8rem;line-height:1.6}
.legal__foot a{color:var(--purple-2)}
.legal__foot a:hover{color:#fff}

@media (max-width:560px){
  .legal{padding:120px 0 70px}
  .legal__section h2{gap:10px}
  .legal__num{min-width:30px;height:30px}
}
