/* =========================================================
   Pantallas (secciones que se abren al hacer clic)
   ========================================================= */
.view{display:none}
.view.active{display:block; animation:viewIn .6s cubic-bezier(.2,.8,.2,1) both}
.view.leaving{display:block; animation:viewOut .23s ease-in both}
@keyframes viewIn{from{opacity:0; transform:translateY(28px)} to{opacity:1; transform:none}}
@keyframes viewOut{to{opacity:0; transform:translateY(-14px)}}

.nav-links a.active{color:var(--verde)}
.nav-links a.active::after{width:100%}

/* Inicio: ocupa la pantalla completa */
.view[data-view="inicio"] .hero{min-height:calc(100vh - 78px - 34px - 62px); min-height:calc(100svh - 78px - 34px - 62px); display:flex; align-items:center}
.view[data-view="inicio"] .hero > .wrap{width:100%}
/* Las pantallas internas arrancan con aire bajo el menú */
.view:not([data-view="inicio"]) > section:first-child{padding-top:64px}
#productos{border-radius:0}

/* Revelado escalonado un poco más vivo */
.reveal{transform:translateY(30px) scale(.98)}
.reveal.in{transform:none}

/* =========================================================
   Inicio: entrada animada
   ========================================================= */
.view.active .hero .pill{animation:rise .6s .05s both}
.view.active .hero h1 .l1{animation:rise .7s .15s both}
.view.active .hero h1 .l2{animation:rise .7s .28s both}
.view.active .hero h1 .nat::after{animation:grow .7s .75s both; transform-origin:left}
.view.active .hero .lead{animation:rise .7s .42s both}
.view.active .hero .hero-cta{animation:rise .7s .55s both}
.view.active .hero .trust div{animation:rise .6s both}
.view.active .hero .trust div:nth-child(1){animation-delay:.7s}
.view.active .hero .trust div:nth-child(2){animation-delay:.8s}
.view.active .hero .trust div:nth-child(3){animation-delay:.9s}
.hero .reveal{opacity:1; transform:none}   /* el inicio usa su propia coreografía */
@keyframes rise{from{opacity:0; transform:translateY(22px)} to{opacity:1; transform:none}}
@keyframes grow{from{transform:scaleX(0)} to{transform:scaleX(1)}}

/* Empaques: caen con rebote y luego flotan */
.view.active .pk-fresa{animation:drop .9s .35s cubic-bezier(.3,1.35,.5,1) both, float 6s 1.25s ease-in-out infinite}
.view.active .pk-mango{animation:drop .9s .5s cubic-bezier(.3,1.35,.5,1) both, float 6.8s 1.4s ease-in-out infinite}
.view.active .pk-pina{animation:drop .9s .65s cubic-bezier(.3,1.35,.5,1) both, float 7.4s 1.55s ease-in-out infinite}
@keyframes drop{from{opacity:0; transform:rotate(var(--r)) translateY(-140px) scale(.85)} to{opacity:1; transform:rotate(var(--r))}}
.pack:hover{transform:rotate(0deg) scale(1.05) !important; animation-play-state:paused; z-index:5}

/* Mancha lima que cambia de forma */
.blob{animation:morph 10s ease-in-out infinite}
@keyframes morph{
  0%,100%{border-radius:58% 42% 55% 45% / 48% 60% 40% 52%}
  33%{border-radius:45% 55% 40% 60% / 60% 42% 58% 40%}
  66%{border-radius:52% 48% 62% 38% / 42% 55% 45% 58%}
}
/* Fruta y hojas con movimiento suave */
.view.active .fr-fresa{animation:popIn .7s 1s both, bob 5s 1.7s ease-in-out infinite}
.view.active .fr-pina{animation:popIn .7s 1.15s both, bob 5.6s 1.85s ease-in-out infinite reverse}
@keyframes popIn{from{opacity:0; scale:.4} to{opacity:1; scale:1}}
@keyframes bob{0%,100%{translate:0 0; rotate:0deg} 50%{translate:0 -12px; rotate:-5deg}}
.leaf{animation:sway 3.6s ease-in-out infinite alternate}
@keyframes sway{from{rotate:-10deg} to{rotate:10deg}}

/* Cinta de beneficios en movimiento */
.marquee{background:var(--verde); color:#fff; overflow:hidden; white-space:nowrap; padding:18px 0; position:relative}
.marquee-track{display:inline-flex; gap:44px; padding-left:44px; animation:marq 32s linear infinite; font-family:var(--disp); font-weight:700; font-size:1.12rem; letter-spacing:.02em}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track span{display:inline-flex; align-items:center; gap:14px}
.marquee-track i{width:10px; height:10px; border-radius:50%; background:var(--lima); display:inline-block}
@keyframes marq{to{transform:translateX(-50%)}}

/* =========================================================
   Detalles interactivos
   ========================================================= */
/* Botón con destello */
.btn-shine{position:relative; overflow:hidden}
.btn-shine::after{content:""; position:absolute; top:0; left:-60%; width:40%; height:100%;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent); transform:skewX(-20deg);
  animation:shine 3.8s 2s ease-in-out infinite}
@keyframes shine{0%{left:-60%} 30%,100%{left:130%}}

/* Tarjetas de sabor */
.card-media img{transition:transform .45s cubic-bezier(.3,1.4,.5,1)}
.card:hover .card-media img{transform:scale(1.1) rotate(-5deg)}
.card-media::before{transition:transform .45s ease}
.card:hover .card-media::before{transform:scale(1.08)}
.badge{transition:transform .6s ease}
.card:hover .badge{transform:rotate(-18deg) scale(1.08)}
.add:active{transform:scale(.94)}

/* Fruta que vuela al carrito */
.fly{position:fixed; z-index:200; pointer-events:none; object-fit:contain; filter:drop-shadow(0 12px 14px rgba(0,0,0,.25))}
.cart-count{transition:background .2s}

/* Pasos del proceso */
.step .ic{transition:transform .4s cubic-bezier(.3,1.5,.5,1)}
.step:hover .ic{transform:scale(1.15) rotate(-8deg)}
.step{transition:transform .25s ease, box-shadow .25s ease}
.step:hover{transform:translateY(-6px)}
.step-arrow{animation:nudge 1.6s ease-in-out infinite}
@keyframes nudge{50%{translate:6px 0}}
.view.active .step .num{animation:pulse-num 2.4s ease-in-out infinite}
@keyframes pulse-num{0%,100%{box-shadow:0 0 0 0 rgba(226,226,0,.7)} 50%{box-shadow:0 0 0 10px rgba(226,226,0,0)}}

/* Beneficios */
.ben{transition:transform .25s ease, background .25s}
.ben:hover{transform:translateY(-5px); background:var(--verde-suave)}
.ben svg{transition:transform .4s cubic-bezier(.3,1.5,.5,1)}
.ben:hover svg{transform:scale(1.15) rotate(8deg)}
.aud{transition:background .2s, transform .2s}
.aud:hover{background:#ffffff2e; transform:translateY(-2px)}

/* Botón de WhatsApp: pequeño saludo periódico */
.wa-float{animation:wave 6s 3s ease-in-out infinite}
@keyframes wave{0%,88%,100%{rotate:0deg} 91%{rotate:-14deg} 94%{rotate:12deg} 97%{rotate:-6deg}}

@media(max-width:980px){
  .view[data-view="inicio"] .hero{min-height:0}
}
@media(prefers-reduced-motion:reduce){
  .view.active, .view.leaving{animation:none}
  .marquee-track{animation:none}
}

/* Tarjetas de contacto */
.contact-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px}
.contact-card{background:#fff; border-radius:var(--r); padding:28px 24px; box-shadow:var(--shadow); text-decoration:none; color:var(--tinta); display:block; transition:transform .25s ease}
.contact-card:hover{transform:translateY(-6px)}
.contact-card h3{font-size:1.35rem; color:var(--verde); margin:14px 0 6px}
.contact-card p{margin:0 0 12px; color:var(--tinta-suave); font-size:1rem}
.contact-card b{color:var(--verde); font-family:var(--disp)}
.cc-ic{width:54px; height:54px; border-radius:16px; background:var(--verde-suave); color:var(--verde); display:grid; place-items:center; transition:transform .4s cubic-bezier(.3,1.5,.5,1)}
.cc-ic svg{width:28px; height:28px}
.cc-ic.wa{background:#25D366; color:#fff}
.contact-card:hover .cc-ic{transform:rotate(-10deg) scale(1.1)}
@media(max-width:760px){ .contact-grid{grid-template-columns:1fr} }

/* =========================================================
   Ofertas y packs
   ========================================================= */
.off{position:absolute; top:18px; right:18px; z-index:3; background:var(--fresa); color:#fff; font-family:var(--disp); font-weight:800;
  font-size:.95rem; padding:.3em .75em; border-radius:100px; box-shadow:0 8px 16px -8px rgba(228,32,46,.8); transform:rotate(6deg)}
.card:hover .off{animation:wiggle .5s ease}
@keyframes wiggle{25%{transform:rotate(-6deg) scale(1.08)} 75%{transform:rotate(10deg) scale(1.08)}}
.price .old{display:block; font-size:.5em; font-weight:700; color:var(--tinta-suave); text-decoration:line-through; text-decoration-thickness:2px; text-decoration-color:var(--fresa); margin-bottom:-2px}

.pack-grid{display:grid; grid-template-columns:1fr 1fr; gap:26px}
.pack-card{--cs:var(--lima-suave); --c:var(--lima); display:grid; grid-template-columns:230px 1fr; padding:0}
.pack-card[data-pack="pack5"]{--cs:var(--verde-suave)}
.pack-media{height:auto; min-height:260px; position:relative}
.pack-media::before{display:none}
.pack-media .pm{position:absolute; width:96px; border-radius:10px; box-shadow:0 14px 22px -12px rgba(0,0,0,.45); transition:transform .45s cubic-bezier(.3,1.4,.5,1)}
.pack-media .pm0{left:18px;  top:60px; transform:rotate(-12deg)}
.pack-media .pm1{left:66px;  top:40px; z-index:2; transform:rotate(0deg)}
.pack-media .pm2{left:114px; top:60px; transform:rotate(12deg)}
.pack-card:hover .pm0{transform:rotate(-20deg) translate(-8px,-4px)}
.pack-card:hover .pm2{transform:rotate(20deg) translate(8px,-4px)}
.pack-card:hover .pm1{transform:translateY(-10px)}
.card:hover .pack-media img{scale:1}
.units{position:absolute; left:50%; bottom:22px; translate:-50% 0; z-index:3; background:var(--verde); color:#fff; font-family:var(--disp); font-weight:800;
  font-size:1.3rem; width:58px; height:58px; border-radius:50%; display:grid; place-items:center; border:4px solid #fff}
.pack-card .card-body{padding:26px 24px 24px 6px}
.extras{background:#fff9; border-radius:14px; padding:10px 12px 0; margin:-4px 0 12px}
.extras-t{font-family:var(--disp); font-weight:700; font-size:.9rem; color:var(--verde)}
.extras .field{margin:6px 0 10px}
.extras .field label{font-size:.8rem}
.extras select{padding:.5em .7em; font-size:.95rem}
.save{margin:0 0 12px; font-size:.9rem; color:var(--verde); font-weight:700}

/* Miniatura de pack en el carrito */
.ci-stack{position:relative; background:transparent; box-shadow:none}
.ci-stack img{position:absolute; width:34px; border-radius:5px; box-shadow:0 4px 8px -4px rgba(0,0,0,.5)}
.ci-stack img:nth-child(1){left:0; top:10px; transform:rotate(-10deg)}
.ci-stack img:nth-child(2){left:9px; top:4px; z-index:2}
.ci-stack img:nth-child(3){left:18px; top:10px; transform:rotate(10deg)}

@media(max-width:980px){
  .pack-grid{grid-template-columns:1fr; max-width:620px; margin:0 auto}
}
@media(max-width:600px){
  .pack-card{grid-template-columns:1fr}
  .pack-media{min-height:210px}
  .pack-media .pm{width:86px}
  .pack-media .pm0{left:calc(50% - 125px); top:34px}
  .pack-media .pm1{left:calc(50% - 43px); top:18px}
  .pack-media .pm2{left:calc(50% + 39px); top:34px}
  .pack-card .card-body{padding:10px 18px 22px}
}

/* N.° de pedido en la pantalla de gracias */
.order-id{display:inline-flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:center; background:var(--lima-suave); border:1.5px dashed #b5b500; border-radius:14px; padding:10px 16px; margin:0 0 14px; font-size:.9rem; color:var(--verde-osc)}
.order-id b{font-family:var(--disp); font-size:1.2rem; letter-spacing:.04em; color:var(--tinta)}
