/* ===== EE CBF — Shared styles ===== */
:root{
  --royal:#7851A9; --deep:#5F3087; --beige:#F4E9D3;
  --sky:#87CEEB; --lsky:#EAF7FD; --white:#FFFFFF;
}

html{scroll-behavior:smooth;}
body{font-family:'Montserrat',sans-serif;color:#1f1a2e;overflow-x:hidden;}

h1,h2,h3,h4,h5,.font-display{font-family:'Oswald',sans-serif;letter-spacing:.5px;}

/* Selection */
::selection{background:var(--royal);color:#fff;}

/* Scrollbar */
::-webkit-scrollbar{width:11px;height:11px;}
::-webkit-scrollbar-track{background:#f1ecf7;}
::-webkit-scrollbar-thumb{background:linear-gradient(var(--royal),var(--deep));border-radius:10px;}

/* ===== Animated gradient text ===== */
.gradient-text{
  background:linear-gradient(90deg,var(--royal),var(--deep),var(--sky),var(--royal));
  background-size:300% auto;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
  animation:gradShift 6s linear infinite;
}
@keyframes gradShift{to{background-position:300% center;}}

/* ===== Buttons ===== */
.btn{position:relative;overflow:hidden;transition:all .35s cubic-bezier(.4,0,.2,1);}
.btn::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.35);
  transform:translateX(-120%) skewX(-20deg);transition:transform .6s;}
.btn:hover::after{transform:translateX(120%) skewX(-20deg);}
.btn:hover{transform:translateY(-3px);box-shadow:0 14px 30px -10px rgba(95,48,135,.6);}
.btn:active{transform:translateY(-1px);}

/* ===== Card lift ===== */
.lift{transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s;}
.lift:hover{transform:translateY(-10px);box-shadow:0 26px 50px -18px rgba(95,48,135,.45);}

/* ===== Hero ken-burns ===== */
.kenburns{animation:kenburns 18s ease-in-out infinite alternate;}
@keyframes kenburns{
  0%{transform:scale(1) translate(0,0);}
  100%{transform:scale(1.12) translate(-2%,2%);}
}

/* ===== Float blobs ===== */
.blob{position:absolute;filter:blur(60px);opacity:.55;border-radius:50%;animation:float 14s ease-in-out infinite;}
@keyframes float{0%,100%{transform:translateY(0) translateX(0);}50%{transform:translateY(-30px) translateX(20px);}}

/* ===== Marquee ===== */
.marquee{display:flex;gap:3rem;width:max-content;animation:scrollX 28s linear infinite;}
@keyframes scrollX{to{transform:translateX(-50%);}}

/* ===== Reveal on scroll (AOS fallback / custom) ===== */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1);}
.reveal.in{opacity:1;transform:none;}

/* ===== Underline grow ===== */
.link-underline{position:relative;}
.link-underline::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--sky);transition:width .3s;}
.link-underline:hover::after{width:100%;}

/* ===== Nav scrolled ===== */
.nav-solid{background:rgba(255,255,255,.94)!important;backdrop-filter:blur(14px);box-shadow:0 10px 30px -18px rgba(0,0,0,.4);}
.nav-solid ul a{color:var(--deep)!important;}
.nav-solid .brand-logo{box-shadow:none;background:transparent!important;}

/* ===== Brand logo badge (combination mark) ===== */
.brand-logo{transition:background .4s ease,box-shadow .4s ease;}

/* ===== Shimmer skeleton (img fallback) ===== */
.img-fade{opacity:0;transition:opacity .9s ease;}
.img-fade.loaded{opacity:1;}

/* ===== Counter ===== */
.counter{font-variant-numeric:tabular-nums;}

/* ===== Wave divider ===== */
.wave-svg{display:block;width:100%;height:auto;}

/* ===== Arrow bounce ===== */
.bounce{animation:bounce 2.4s infinite;}
@keyframes bounce{0%,100%{transform:translateY(0);}50%{transform:translateY(10px);}}

/* ===== Section title kicker ===== */
.kicker{display:inline-flex;align-items:center;gap:.5rem;font-family:'Oswald';letter-spacing:3px;font-size:.8rem;text-transform:uppercase;color:var(--royal);font-weight:600;}
.kicker::before,.kicker::after{content:"";height:1px;width:34px;background:var(--royal);opacity:.45;}

/* ===== Pulse ring (WhatsApp) ===== */
.pulse-ring{position:absolute;inset:0;border-radius:9999px;background:#25D366;opacity:.6;animation:pulse 2s infinite;}
@keyframes pulse{0%{transform:scale(1);opacity:.6;}100%{transform:scale(1.8);opacity:0;}}

/* ===== Side accent ===== */
.side-l{border-left:4px solid var(--sky);}

/* ===== Mobile menu ===== */
.mobile-menu{max-height:0;overflow:hidden;transition:max-height .5s ease;}
.mobile-menu.open{max-height:420px;}

/* ===== Cookie consent ===== */
#cookieConsent{opacity:0;transform:translateY(20px);transition:opacity .4s cubic-bezier(.2,.8,.2,1),transform .4s cubic-bezier(.2,.8,.2,1);}
#cookieConsent.cookie-in{opacity:1;transform:none;}
#cookieConsent.cookie-out{opacity:0;transform:translateY(20px);}
#cookieConsent.hidden{display:none!important;}