body{margin:0;font-family:'Google Sans Flex',sans-serif;color:#1B2140;font-variation-settings:'GRAD' -50;}
a{color:#FF5A1F;text-decoration:none;}
a:hover{color:#e14e18;}
::selection{background:#FF5A1F;color:#fff;}
img{max-width:100%;}
button{font-family:inherit;}

@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes lineGrow{from{stroke-dashoffset:60}to{stroke-dashoffset:0}}
@keyframes dotPulse{0%,100%{opacity:0.35}50%{opacity:1}}
@keyframes lupaPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
@keyframes iconFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes boxClose{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(0deg)}}

/* Scroll-reveal (JS adds .is-revealed via IntersectionObserver) */
.reveal{opacity:0;transform:translateY(20px);transition:opacity 0.6s ease,transform 0.6s ease;}
.reveal.is-revealed{opacity:1;transform:none;}
.reveal-up24{opacity:0;transform:translateY(24px);transition:opacity 0.6s ease,transform 0.6s ease;}
.reveal-up24.is-revealed{opacity:1;transform:none;}
.reveal-up14{opacity:0;transform:translateY(14px);transition:opacity 0.5s ease,transform 0.5s ease;}
.reveal-up14.is-revealed{opacity:1;transform:none;}
.reveal-line{transform:scaleX(0);transform-origin:left;transition:transform 1.7s cubic-bezier(0.4,0,0.2,1);}
.reveal-line.is-revealed{transform:scaleX(1);}

/* Floating nav */
.float-nav{position:fixed;top:-100px;left:0;right:0;z-index:60;max-width:1280px;margin:0 auto;padding:0 32px;opacity:0;transition:top 0.35s ease,opacity 0.35s ease;box-sizing:border-box;}
.float-nav.is-visible{top:16px;opacity:1;}

/* Hero slides */
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 0.6s ease;pointer-events:none;}
.hero-slide.is-active{opacity:1;pointer-events:auto;}

/* Service flip cards */
.service-card{perspective:1400px;}
.service-card-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform 0.7s cubic-bezier(0.4,0.2,0.2,1);}
.service-card:hover .service-card-inner{transform:rotateY(180deg);}
.service-face{position:absolute;inset:0;border-radius:18px;overflow:hidden;backface-visibility:hidden;}

/* Proceso step icons */
.step-icon{transition:transform 0.4s ease;}
.step-icon:hover{transform:translateY(-6px) scale(1.06);}

/* Brand logos */
.brand-logo img{filter:grayscale(1);opacity:0.7;transition:filter 0.35s ease,opacity 0.35s ease;}
.brand-logo:hover img{filter:grayscale(0);opacity:1;}
.brand-page{display:none;}
.brand-page.is-active{display:grid;}

/* PDF modal */
.pdf-modal{position:fixed;inset:0;background:rgba(5,29,101,0.7);z-index:100;display:none;align-items:center;justify-content:center;padding:32px;}
.pdf-modal.is-open{display:flex;}
