/* ===== ISA · animaciones.css  (enlazar DESPUÉS de styles.css) ===== */
:root{--isa:#f05dae;--isa2:#ffc85a;--ink:#3d2450}

/* Reveal general */
.rv{opacity:0;transform:translateY(30px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.rv[data-anim="left"]{transform:translateX(-50px)}
.rv[data-anim="right"]{transform:translateX(50px)}
.rv[data-anim="zoom"]{transform:scale(.9)}
.rv.in{opacity:1;transform:none}

/* Marquee (carrusel infinito) */
.mq{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.mq-track{display:flex;gap:16px;width:max-content;animation:mq var(--t,45s) linear infinite}
.mq.rev .mq-track{animation-direction:reverse}
.mq:hover .mq-track{animation-play-state:paused}
@keyframes mq{to{transform:translateX(calc(-50% - 8px))}}

/* HERO */
#inicio{position:relative;overflow:hidden}
.blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:.35;pointer-events:none;z-index:0;animation:blob 14s ease-in-out infinite alternate}
.blob.b1{width:340px;height:340px;background:var(--isa2);top:-80px;left:-80px}
.blob.b2{width:280px;height:280px;background:#f3c9a5;bottom:-60px;right:8%;animation-delay:-6s}
@keyframes blob{to{transform:translate(60px,40px) scale(1.2)}}
.hero-plane{position:absolute;top:14%;left:-8%;font-size:30px;color:var(--isa);z-index:1;pointer-events:none;animation:fly 18s linear infinite}
@keyframes fly{0%{transform:translate(0,0) rotate(-8deg)}50%{transform:translate(60vw,-40px) rotate(-2deg)}100%{transform:translate(120vw,10px) rotate(-8deg)}}
.hero-copy,.hero-visual{position:relative;z-index:2}
.hero-copy p,.hero-actions,.hero-pills{opacity:0;animation:up .9s .9s forwards}
.hero-actions{animation-delay:1.15s}.hero-pills{animation-delay:1.4s}
@keyframes up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.hero-actions .btn-primary{animation:pulse 2.6s 2.5s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(145,85,123,.55)}70%{box-shadow:0 0 0 18px rgba(145,85,123,0)}100%{box-shadow:0 0 0 0 rgba(145,85,123,0)}}
.hero-pills{max-width:100%}
.hero-slider{overflow:hidden;border-radius:20px}
.hero-img{width:100%;display:block;animation:kb 16s ease-in-out infinite alternate}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.14) translate(-2%,-2%)}}
.card-grid .mini-card{animation:float 5s ease-in-out infinite;overflow:hidden;position:relative}
.card-grid .mini-card:nth-child(2){animation-delay:-1.2s}.card-grid .mini-card:nth-child(3){animation-delay:-2.4s}.card-grid .mini-card:nth-child(4){animation-delay:-3.6s}
.card-grid .mini-card img{transition:transform .8s}
.card-grid .mini-card:hover img{transform:scale(1.12)}
@keyframes float{50%{transform:translateY(-8px)}}

/* CATÁLOGO */
.dst-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
.dst-card{position:relative;display:block;overflow:hidden;border-radius:24px;aspect-ratio:4/5;background:#eee;isolation:isolate;text-decoration:none}
.dst-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s cubic-bezier(.2,.7,.2,1);z-index:-2}
.dst-card::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(43,26,37,.85));z-index:-1}
.dst-card::after{content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);transition:left .9s}
.dst-card:hover img{transform:scale(1.15) rotate(1deg)}
.dst-card:hover::after{left:140%}
.dst-info{position:absolute;left:0;right:0;bottom:0;padding:20px;color:#fff;transition:transform .5s}
.dst-info h4{margin:0;font-family:'Playfair Display',serif;font-size:1.5rem;color:#fff}
.dst-cta{display:inline-block;margin-top:10px;padding:8px 16px;border-radius:999px;background:#fff;color:var(--isa);font-weight:700;font-size:.85rem;opacity:0;transform:translateY(16px);transition:.45s}
.dst-card:hover .dst-cta,.dst-card:focus-visible .dst-cta{opacity:1;transform:none}
@media(hover:none){.dst-cta{opacity:1;transform:none}}

/* NOSOTROS */
.about-image{position:relative}
.about-image::before{content:"";position:absolute;inset:-12px;border:2px solid var(--isa2);border-radius:28px;animation:frame 6s ease-in-out infinite alternate;z-index:0}
.about-image img{position:relative;z-index:1;width:100%;border-radius:24px;display:block}
@keyframes frame{to{transform:rotate(3deg) scale(1.02)}}
.mq-card{flex:0 0 280px;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 12px 30px rgba(145,85,123,.15);transition:transform .4s}
.mq-card:hover{transform:translateY(-10px) rotate(-1deg)}
.mq-card img{width:100%;height:180px;object-fit:cover;display:block}
.mq-card h4{margin:14px 16px 4px;color:var(--isa)}
.mq-card p{margin:0 16px 18px;font-size:.92rem;line-height:1.45}

/* GALERÍA */
.gal-row{margin-top:16px}
.gal-item{flex:0 0 auto;height:260px;border-radius:20px;overflow:hidden;cursor:zoom-in}
.gal-item img{height:100%;width:auto;display:block;transition:transform .8s}
.gal-item:hover img{transform:scale(1.1)}
#lb{position:fixed;inset:0;background:rgba(20,10,16,.92);display:none;align-items:center;justify-content:center;z-index:9999;padding:20px}
#lb.open{display:flex;animation:fade .3s}
#lb img{max-width:100%;max-height:90vh;border-radius:14px;animation:zin .4s}
#lb span{position:absolute;top:16px;right:24px;font-size:42px;color:#fff;cursor:pointer}
@keyframes fade{from{opacity:0}}@keyframes zin{from{transform:scale(.85);opacity:0}}

/* PRÓXIMOS */
.px-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:26px}
.px-card{background:#fff;border-radius:26px;overflow:hidden;box-shadow:0 14px 40px rgba(145,85,123,.16);transition:transform .5s,box-shadow .5s}
.px-card:hover{transform:translateY(-12px) rotate(-.6deg);box-shadow:0 26px 60px rgba(145,85,123,.28)}
.px-card:nth-child(even):hover{transform:translateY(-12px) rotate(.6deg)}
.px-media{overflow:hidden;cursor:zoom-in}
.px-media img{width:100%;display:block;transition:transform 1s}
.px-card:hover .px-media img{transform:scale(1.07)}
.px-body{padding:20px;text-align:center}
.px-btn{position:relative;overflow:hidden;display:inline-block;margin-top:8px;padding:13px 26px;border-radius:999px;background:var(--isa);color:#fff;font-weight:700;text-decoration:none}
.px-btn::after{content:"";position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent);animation:shine 3s infinite}
@keyframes shine{to{left:160%}}

/* CONTACTO */
.contact-item{transition:transform .3s}.contact-item:hover{transform:translateX(8px)}
.contact-icon{animation:float 4s ease-in-out infinite}
.form-card .input,.form-card .textarea{transition:box-shadow .3s,transform .3s}
.form-card .input:focus,.form-card .textarea:focus{outline:none;box-shadow:0 0 0 4px rgba(145,85,123,.25);transform:translateY(-2px)}

/* WhatsApp flotante */
.wa-float{position:fixed;right:20px;bottom:20px;width:60px;height:60px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;font-size:30px;text-decoration:none;z-index:900;animation:waPulse 2.2s infinite;transition:transform .3s}
.wa-float:hover{transform:scale(1.12) rotate(8deg)}
@keyframes waPulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,.6)}70%{box-shadow:0 0 0 20px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}.hero-copy p,.hero-actions,.hero-pills{opacity:1}}