.product-card{opacity:0;transform:translateY(14px);animation:card-in .48s cubic-bezier(.22,.75,.28,1) forwards;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}
.product-card:nth-child(2n){animation-delay:.045s}.product-card:nth-child(3n){animation-delay:.09s}
.product-card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(16,34,53,.1);border-color:#bdd3e5}
.product-card img{transition:transform .5s cubic-bezier(.22,.75,.28,1)}.product-card:hover img{transform:scale(1.025)}
.department,.add,.primary,.cart-button,.whatsapp{transition:background-color .25s ease,color .25s ease,border-color .25s ease,transform .2s ease,box-shadow .25s ease}
.department:active,.add:active,.primary:active,.cart-button:active,.whatsapp:active{transform:scale(.97)}
.filters select,.search{transition:border-color .25s ease,box-shadow .25s ease}.filters select:focus,.search:focus-within{border-color:var(--blue2);box-shadow:0 0 0 4px rgba(12,120,199,.1)}
.cart{transition:transform .38s cubic-bezier(.22,.75,.28,1)}.backdrop{transition:opacity .32s ease}.filters{transition:transform .34s cubic-bezier(.22,.75,.28,1)}
@keyframes card-in{to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Entrada de marca */
.brand-intro{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:linear-gradient(145deg,#fff,#eef3f5);pointer-events:none;animation:intro-curtain 1.85s cubic-bezier(.65,0,.2,1) forwards}
.brand-intro-inner{display:grid;justify-items:center;gap:20px;animation:intro-mark 1.55s cubic-bezier(.22,.75,.28,1) both}
.brand-intro img{width:min(350px,72vw);height:auto}
.brand-intro span{text-transform:uppercase;letter-spacing:.32em;font-size:13px;font-weight:750;color:#356a86;opacity:0;animation:intro-years .8s .38s ease forwards}
.topbar{animation:nav-drop .7s 1.45s cubic-bezier(.22,.75,.28,1) both}
.hero>div:first-child>*{opacity:0;transform:translateY(28px);animation:hero-rise .85s cubic-bezier(.22,.75,.28,1) forwards}
.hero>div:first-child>*:nth-child(1){animation-delay:1.38s}.hero>div:first-child>*:nth-child(2){animation-delay:1.48s}.hero>div:first-child>*:nth-child(3){animation-delay:1.58s}.hero>div:first-child>*:nth-child(4){animation-delay:1.68s}
.hero-card{opacity:0;animation:hero-card-in 1s 1.55s cubic-bezier(.22,.75,.28,1) forwards}
.hero-card strong{display:inline-block;animation:years-breathe 5s 2.5s ease-in-out infinite}
.scroll-reveal{opacity:0;transform:translateY(34px);transition:opacity .8s cubic-bezier(.22,.75,.28,1) var(--reveal-delay,0ms),transform .8s cubic-bezier(.22,.75,.28,1) var(--reveal-delay,0ms)}
.scroll-reveal.revealed{opacity:1;transform:none}
@keyframes intro-mark{0%{opacity:0;transform:translateY(18px) scale(.94);filter:blur(7px)}45%{opacity:1;transform:none;filter:blur(0)}100%{opacity:1;transform:translateY(-8px) scale(1.015)}}
@keyframes intro-years{to{opacity:1;letter-spacing:.23em}}
@keyframes intro-curtain{0%,65%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}
@keyframes nav-drop{from{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:none}}
@keyframes hero-rise{to{opacity:1;transform:none}}
@keyframes hero-card-in{from{opacity:0;transform:translateY(32px) rotate(4deg) scale(.97)}to{opacity:1;transform:rotate(2deg) scale(1)}}
@keyframes years-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@media(prefers-reduced-motion:reduce){.brand-intro{display:none}.topbar,.hero>div:first-child>*,.hero-card{opacity:1;transform:none}.scroll-reveal{opacity:1;transform:none}.hero-card strong{animation:none}}

.hero-card{animation-name:hero-card-history-in}
@keyframes hero-card-history-in{from{opacity:0;transform:translateY(32px) rotate(4deg) scale(.97)}to{opacity:1;transform:rotate(2deg) scale(1)}}

/* Apertura centrada y breve: la barra no recibe una segunda animación. */
.brand-intro{animation:none;opacity:1;visibility:visible;transition:opacity .45s ease,visibility .45s ease}.brand-intro-inner{animation:intro-mark-arrive .55s cubic-bezier(.22,.75,.28,1) both}.brand-intro.finished{opacity:0;visibility:hidden}.topbar{animation:none!important}
@keyframes intro-mark-arrive{from{opacity:0;transform:translateY(16px) scale(.94);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}

/* Revelado escalonado de especialidades y categorías */
.worlds-track span.scroll-reveal{transform:translateY(42px) scale(.92);filter:blur(4px)}.worlds-track span.scroll-reveal.revealed{transform:none;filter:none}.category-card.scroll-reveal{transform:translateY(52px) scale(.94);filter:saturate(.65)}.category-card.scroll-reveal.revealed{transform:none;filter:none}.category-card.scroll-reveal:nth-child(2){transition-delay:90ms}.category-card.scroll-reveal:nth-child(3){transition-delay:180ms}.category-card.scroll-reveal:nth-child(4){transition-delay:70ms}.category-card.scroll-reveal:nth-child(5){transition-delay:160ms}.category-card.scroll-reveal:nth-child(6){transition-delay:250ms}
@media(prefers-reduced-motion:reduce){.brand-intro{display:none}.worlds-track span.scroll-reveal,.category-card.scroll-reveal{filter:none}}

/* Apertura institucional premium: marca, trayectoria y aire visual */
.brand-intro{background:radial-gradient(circle at 50% 42%,#173e53 0,#0b2b3c 38%,#061923 100%)}.brand-intro:before{content:"";position:absolute;inset:8%;border:1px solid rgba(255,255,255,.08);pointer-events:none}.brand-intro-inner{gap:28px}.brand-intro img{filter:brightness(0) invert(1);width:min(390px,74vw)}.brand-intro span{position:relative;color:rgba(255,255,255,.78);font-size:12px;letter-spacing:.2em;padding-top:22px;animation:intro-years .8s .38s ease forwards}.brand-intro span:before{content:"";position:absolute;left:50%;top:0;width:46px;height:1px;background:rgba(255,255,255,.45);transform:translateX(-50%)}

/* La página aparece de una sola vez, sin parpadeos en el encabezado. */
.intro-active>.topbar,.intro-active>.global-search-strip,.intro-active>main,.intro-active>footer{opacity:0;transform:translateY(10px)}.intro-active.page-reveal>.topbar,.intro-active.page-reveal>.global-search-strip,.intro-active.page-reveal>main,.intro-active.page-reveal>footer{animation:page-soft-enter .48s cubic-bezier(.22,.75,.28,1) both}.intro-active.page-reveal>.global-search-strip{animation-delay:0}.intro-active.page-reveal>main{animation-delay:.03s}.intro-active.page-reveal>footer{animation-delay:.06s}@keyframes page-soft-enter{to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.intro-active>.topbar,.intro-active>.global-search-strip,.intro-active>main,.intro-active>footer{opacity:1;transform:none}}
