/* ============================================================
   CATALYSTO — SHARED STYLESHEET
   All pages import this. Edit once, updates everywhere.
============================================================ */

/* --- Google Fonts (non-blocking) --- */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

/* --- Variables --- */
:root{
  --accent:#FF5F1F;
  --accent-glow:rgba(255,95,31,0.22);
  --bg:#060C14;
  --bg2:#0C1420;
  --bg3:#101C2C;
  --card:linear-gradient(160deg,#13202F,#0D1825);
  --text:#F0F4F8;
  --muted:#8A96A3;
  --border:rgba(255,255,255,0.07);
}

/* --- Reset --- */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Inter','Helvetica Neue',system-ui,sans-serif;background:var(--bg);color:var(--text);overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
button{font-family:inherit;cursor:pointer;border:none;background:none}

/* --- Layout --- */
.container{width:90%;max-width:1320px;margin:0 auto}
section{padding:100px 0}

/* ============================================================
   BUTTONS
============================================================ */
.btn-primary{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--accent);color:#fff;
  padding:14px 28px;border-radius:10px;
  font-weight:700;font-size:15px;line-height:1;white-space:nowrap;
  transition:transform 0.25s ease,box-shadow 0.25s ease;
  box-shadow:0 4px 20px var(--accent-glow);
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px var(--accent-glow)}
.btn-secondary{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:1.5px solid rgba(255,255,255,0.2);color:#fff;
  padding:14px 28px;border-radius:10px;
  font-weight:600;font-size:15px;line-height:1;
  background:rgba(255,255,255,0.04);
  transition:background 0.25s,border-color 0.25s;
}
.btn-secondary:hover{background:rgba(255,255,255,0.1);border-color:rgba(255,255,255,0.4)}

/* ============================================================
   NAVBAR
============================================================ */
.navbar{
  position:fixed;top:0;left:0;width:100%;z-index:1000;
  background:rgba(6,12,20,0.88);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.nav-logo img{height:36px;width:auto;display:block}
.nav-links{display:flex;align-items:center;gap:8px;list-style:none}
.nav-links a{
  font-size:14px;font-weight:500;color:var(--muted);
  padding:8px 14px;border-radius:8px;
  transition:color 0.2s,background 0.2s;
}
.nav-links a:hover{color:var(--text);background:rgba(255,255,255,0.05)}
.nav-links a.active{color:var(--text);background:rgba(255,255,255,0.06)}
/* dropdown */
.nav-dropdown{position:relative}
.nav-dropdown > a::after{content:' ▾';font-size:10px;opacity:0.6}
.dropdown-menu{
  display:none;position:absolute;top:calc(100% + 8px);left:0;
  background:rgba(10,18,28,0.98);border:1px solid var(--border);
  border-radius:12px;padding:8px;min-width:200px;
  box-shadow:0 20px 60px rgba(0,0,0,0.5);
  z-index:100;
}
.nav-dropdown:hover .dropdown-menu{display:block}
.dropdown-menu a{
  display:flex;align-items:center;gap:10px;
  padding:10px 14px;border-radius:8px;
  font-size:14px;color:var(--muted);
  transition:color 0.2s,background 0.2s;
}
.dropdown-menu a:hover{color:var(--text);background:rgba(255,255,255,0.05)}
.dropdown-menu a span{font-size:16px}
.hamburger{display:none;flex-direction:column;gap:5px;padding:4px;cursor:pointer}
.hamburger span{display:block;width:24px;height:2px;background:#fff;border-radius:2px;transition:0.3s}
.hamburger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}
.mobile-menu{
  display:none;position:fixed;
  top:65px;left:0;right:0;bottom:0;
  background:rgba(6,12,20,0.98);
  padding:24px;z-index:999;
  flex-direction:column;gap:4px;
  overflow-y:auto;
}
.mobile-menu.open{display:flex}
.mobile-menu a{font-size:16px;font-weight:500;color:var(--text);padding:12px 16px;border-radius:10px;transition:background 0.2s}
.mobile-menu a:hover{background:rgba(255,255,255,0.05)}
.mobile-menu .mob-divider{height:1px;background:var(--border);margin:8px 0}
.mobile-menu .mob-sub{font-size:12px;color:var(--muted);font-weight:600;letter-spacing:1px;text-transform:uppercase;padding:8px 16px}

/* ============================================================
   HERO (shared base)
============================================================ */
.hero{position:relative;min-height:100vh;display:flex;align-items:center;padding-top:72px;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero-overlay{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(105deg,rgba(6,12,20,0.97) 0%,rgba(6,12,20,0.88) 40%,rgba(6,12,20,0.55) 70%,rgba(6,12,20,0.25) 100%);
}
.hero-inner{position:relative;z-index:2;padding:80px 0}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(255,95,31,0.12);border:1px solid rgba(255,95,31,0.25);
  border-radius:100px;padding:6px 16px;
  font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;
  color:var(--accent);margin-bottom:24px;
}
.hero-eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);display:inline-block;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.3}}
.hero-title{font-size:clamp(38px,5.5vw,82px);font-weight:800;line-height:1.05;letter-spacing:-2px;margin-bottom:24px;color:#fff}
.hero-title .accent{color:var(--accent)}
.hero-desc{font-size:clamp(15px,1.3vw,18px);line-height:1.85;color:#A8B4C0;max-width:580px;margin-bottom:36px}
.hero-btns{display:flex;gap:16px;flex-wrap:wrap}

/* ============================================================
   SECTION LABELS & TITLES
============================================================ */
.section-label{
  display:inline-flex;align-items:center;gap:8px;
  font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;
  color:var(--accent);margin-bottom:14px;
}
.section-label::before{content:'';width:20px;height:2px;background:var(--accent);border-radius:2px}
.section-title{text-align:center;margin-bottom:64px}
.section-title h2{font-size:clamp(30px,3.5vw,52px);font-weight:800;letter-spacing:-2px;line-height:1.1;margin-bottom:14px}
.section-title h2 .accent{color:var(--accent)}
.section-title p{font-size:16px;color:var(--muted);max-width:560px;margin:0 auto;line-height:1.8}

/* ============================================================
   SCROLL REVEAL ANIMATION
============================================================ */
.reveal{opacity:0;transform:translateY(30px);transition:opacity 0.65s ease,transform 0.65s ease}
.reveal.visible{opacity:1;transform:none}
.reveal-left{opacity:0;transform:translateX(-30px);transition:opacity 0.65s ease,transform 0.65s ease}
.reveal-left.visible{opacity:1;transform:none}
.reveal-right{opacity:0;transform:translateX(30px);transition:opacity 0.65s ease,transform 0.65s ease}
.reveal-right.visible{opacity:1;transform:none}
.delay-1{transition-delay:0.1s}
.delay-2{transition-delay:0.2s}
.delay-3{transition-delay:0.3s}
.delay-4{transition-delay:0.4s}

/* ============================================================
   FOOTER
============================================================ */
footer{background:#040A11;border-top:1px solid var(--border);padding:72px 0 0}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;padding-bottom:60px;border-bottom:1px solid var(--border)}
.footer-brand img{height:40px;width:auto;margin-bottom:18px}
.footer-brand p{font-size:14px;color:var(--muted);line-height:1.8;max-width:280px}
.footer-col h5{font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#fff;margin-bottom:20px;opacity:0.5}
.footer-col a{display:block;font-size:14px;color:var(--muted);margin-bottom:12px;transition:color 0.2s}
.footer-col a:hover{color:var(--text)}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding:24px 0;font-size:13px;color:var(--muted)}

/* ============================================================
   VIDEO MODAL
============================================================ */
.modal{display:none;position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,0.92);backdrop-filter:blur(10px);align-items:center;justify-content:center}
.modal.open{display:flex}
.modal-inner{position:relative;width:92%;max-width:960px}
.modal-close{position:absolute;top:-48px;right:0;background:none;border:none;color:#fff;font-size:28px;cursor:pointer;opacity:0.7;transition:opacity 0.2s}
.modal-close:hover{opacity:1}
.modal-video{position:relative;width:100%;padding-bottom:56.25%;height:0;border-radius:16px;overflow:hidden}
.modal-video iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}

/* ============================================================
   VIDEO FACADE
============================================================ */
.video-facade{position:relative;aspect-ratio:16/9;border-radius:18px;overflow:hidden;cursor:pointer;background:#000;border:1px solid var(--border)}
.video-facade img{width:100%;height:100%;object-fit:cover;opacity:0.8;transition:opacity 0.3s;display:block}
.video-facade:hover img{opacity:1}
.play-btn{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:72px;height:72px;border-radius:50%;background:var(--accent);
  display:flex;align-items:center;justify-content:center;
  border:3px solid rgba(255,255,255,0.25);
  box-shadow:0 8px 32px rgba(255,95,31,0.5);
  transition:transform 0.2s,box-shadow 0.2s;z-index:2;
}
.video-facade:hover .play-btn{transform:translate(-50%,-50%) scale(1.1);box-shadow:0 12px 40px rgba(255,95,31,0.7)}
.play-btn svg{fill:#fff;margin-left:5px}

/* ============================================================
   CTA PANEL (shared)
============================================================ */
.cta-panel{
  background:linear-gradient(135deg,#0E1A2B,#162236);
  border:1px solid rgba(255,95,31,0.15);border-radius:32px;
  padding:clamp(40px,5vw,80px);
  display:flex;justify-content:space-between;align-items:center;gap:40px;
  position:relative;overflow:hidden;
}
.cta-panel::before{content:'';position:absolute;right:-60px;top:-60px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(255,95,31,0.12),transparent 70%);pointer-events:none}
.cta-panel h2{font-size:clamp(28px,3vw,48px);font-weight:800;letter-spacing:-2px;line-height:1.05;margin-bottom:12px}
.cta-panel h2 .accent{color:var(--accent)}
.cta-panel p{font-size:16px;color:var(--muted);max-width:500px;line-height:1.7}

/* ============================================================
   RESPONSIVE
============================================================ */
@media(max-width:1100px){
  .nav-links,.nav-cta .btn-primary{display:none}
  .hamburger{display:flex}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:768px){
  section{padding:72px 0}
  .hero{min-height:auto;padding-top:65px}
  .hero-inner{padding:48px 0 32px}
  .hero-btns{flex-direction:column}
  .cta-panel{flex-direction:column;text-align:center}
  .footer-grid{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column;gap:8px;text-align:center}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;transition-duration:0.01ms !important}}

/* ============================================================
   FLOATING WHATSAPP BUTTON — shows on every page
============================================================ */
.float-wa{
  position:fixed;bottom:28px;right:28px;z-index:900;
  width:60px;height:60px;border-radius:50%;
  background:#25D366;
  display:flex;align-items:center;justify-content:center;
  /* Single smooth box-shadow pulse — no child elements needed, no flicker */
  animation:floatIn 0.6s ease 1.2s both, waPulse 2.8s ease-in-out 1.8s infinite;
  will-change:box-shadow,transform;
}
.float-wa:hover{
  animation:none;
  transform:scale(1.12);
  box-shadow:0 0 0 8px rgba(37,211,102,0.2), 0 8px 32px rgba(37,211,102,0.55);
}
.float-wa svg{width:30px;height:30px;flex-shrink:0;display:block}
/* Remove ring divs from being necessary — pulse is all box-shadow */
.float-wa-ring,.float-wa-ring2{display:none}
@keyframes floatIn{
  0%{opacity:0;transform:scale(0.5) translateY(20px);box-shadow:none}
  100%{opacity:1;transform:scale(1) translateY(0);box-shadow:0 8px 28px rgba(37,211,102,0.45)}
}
@keyframes waPulse{
  0%  {box-shadow:0 0 0 0   rgba(37,211,102,0.55), 0 8px 28px rgba(37,211,102,0.4)}
  50% {box-shadow:0 0 0 14px rgba(37,211,102,0),   0 8px 28px rgba(37,211,102,0.4)}
  100%{box-shadow:0 0 0 0   rgba(37,211,102,0),    0 8px 28px rgba(37,211,102,0.4)}
}
@media(max-width:640px){.float-wa{bottom:18px;right:18px;width:54px;height:54px}}
