:root {
  --primary: #4f46e5;
  --primary-dark: #3730a3;
  --primary-light: #818cf8;
  --secondary: #7c3aed;
  --accent: #f59e0b;
  --accent-dark: #d97706;
  --text-dark: #111827;
  --text-body: #374151;
  --text-muted: #6b7280;
  --bg-light: #f9fafb;
  --border: #e5e7eb;
  --radius: 12px;
  --shadow: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1);
  --shadow-lg: 0 10px 25px -5px rgba(0,0,0,.15), 0 8px 10px -6px rgba(0,0,0,.1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;color:var(--text-body);line-height:1.6;background:#fff}

/* ── Announcement Ticker ── */
.ticker-outer{overflow:hidden;flex:1;min-width:0}
.ticker-inner{display:inline-flex;white-space:nowrap;animation:tickerScroll 35s linear infinite}
.ticker-inner:hover{animation-play-state:paused}
.ticker-sep{margin:0 32px;opacity:.5}
@keyframes tickerScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* ── Navigation ── */
.nav-link{position:relative;color:#374151;text-decoration:none;font-weight:500;font-size:15px;padding:4px 0;transition:color .2s}
.nav-link::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:2px;background:var(--primary);transition:width .3s}
.nav-link:hover,.nav-link.active{color:var(--primary)}
.nav-link:hover::after,.nav-link.active::after{width:100%}

/* ── Mobile Menu ── */
#mobile-menu{display:none;padding-bottom:16px;border-top:1px solid var(--border)}
#mobile-menu.open{display:block}
#mobile-menu a{display:block;padding:10px 16px;color:#374151;text-decoration:none;font-weight:500;border-radius:8px;transition:background .2s,color .2s}
#mobile-menu a:hover,#mobile-menu a.active{background:#eef2ff;color:var(--primary)}

/* ── Buttons ── */
.btn-primary{display:inline-block;background:var(--primary);color:#fff;padding:10px 24px;border-radius:8px;font-weight:600;font-size:14px;text-decoration:none;transition:background .2s,transform .2s;cursor:pointer;border:none}
.btn-primary:hover{background:var(--primary-dark);transform:translateY(-1px)}
.btn-secondary{display:inline-block;background:transparent;color:var(--primary);padding:10px 24px;border-radius:8px;font-weight:600;font-size:14px;text-decoration:none;border:2px solid var(--primary);transition:all .2s;cursor:pointer}
.btn-secondary:hover{background:var(--primary);color:#fff}
.btn-white{display:inline-block;background:#fff;color:var(--primary);padding:10px 24px;border-radius:8px;font-weight:600;font-size:14px;text-decoration:none;transition:all .2s}
.btn-white:hover{background:#e0e7ff;transform:translateY(-1px)}

/* ── Cards ── */
.card-hover{transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s}
.card-hover:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg)}

/* ── Gradient Text ── */
.gradient-text{background:linear-gradient(135deg,#4f46e5,#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}

/* ── Section tags ── */
.section-tag{display:inline-block;background:rgba(79,70,229,.1);color:var(--primary);padding:6px 16px;border-radius:100px;font-size:12px;font-weight:700;margin-bottom:12px;letter-spacing:.8px;text-transform:uppercase}

/* ── Stats Counter ── */
.counter-num{font-size:2.5rem;font-weight:800;background:linear-gradient(135deg,#4f46e5,#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1}

/* ── Scroll Reveal ── */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .65s ease,transform .65s ease}
.reveal.visible{opacity:1;transform:none}
.reveal-l{opacity:0;transform:translateX(-30px);transition:opacity .65s ease,transform .65s ease}
.reveal-l.visible{opacity:1;transform:none}
.reveal-r{opacity:0;transform:translateX(30px);transition:opacity .65s ease,transform .65s ease}
.reveal-r.visible{opacity:1;transform:none}

/* ── FAQ ── */
.faq-item{border:1.5px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:12px;transition:box-shadow .2s,border-color .2s}
.faq-item.open{box-shadow:0 4px 16px rgba(79,70,229,.1);border-color:#c7d2fe}
.faq-btn{width:100%;text-align:left;padding:18px 22px;background:#fff;border:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:15px;font-weight:600;color:var(--text-dark);transition:background .2s}
.faq-btn:hover{background:var(--bg-light)}
.faq-body{max-height:0;overflow:hidden;transition:max-height .35s ease,padding .35s ease;background:var(--bg-light);color:var(--text-body);font-size:14px;line-height:1.75;padding:0 22px}
.faq-item.open .faq-body{max-height:400px;padding:16px 22px 20px}
.faq-icon{font-size:22px;font-weight:300;color:var(--primary);transition:transform .3s}
.faq-item.open .faq-icon{transform:rotate(45deg)}

/* ── Testimonial ── */
.testimonial-card{background:#fff;border-radius:16px;padding:28px;box-shadow:var(--shadow);border:1px solid #f0f0f0;transition:transform .3s,box-shadow .3s}
.testimonial-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(79,70,229,.12)}

/* ── Gallery ── */
.gallery-item{position:relative;overflow:hidden;border-radius:14px;cursor:pointer;aspect-ratio:4/3}
.gallery-item img,.gallery-item .gph{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.gallery-item:hover img,.gallery-item:hover .gph{transform:scale(1.08)}
.goverlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.7) 0%,transparent 60%);opacity:0;transition:opacity .3s;display:flex;align-items:flex-end;padding:18px}
.gallery-item:hover .goverlay{opacity:1}
.gallery-item.hidden-item{display:none}

/* ── Lightbox ── */
#lightbox{position:fixed;inset:0;background:rgba(0,0,0,.95);z-index:9999;display:none;align-items:center;justify-content:center}
#lightbox.active{display:flex}
.lb-img{max-width:90vw;max-height:80vh;object-fit:contain;border-radius:8px;box-shadow:0 24px 60px rgba(0,0,0,.5)}
.lb-btn{position:absolute;background:rgba(255,255,255,.15);border:none;color:#fff;width:48px;height:48px;border-radius:50%;font-size:20px;cursor:pointer;transition:background .2s;display:flex;align-items:center;justify-content:center}
.lb-btn:hover{background:rgba(255,255,255,.3)}
#lb-prev{left:16px}
#lb-next{right:16px}
#lb-close{top:16px;right:16px;font-size:24px}

/* ── Forms ── */
.form-input{width:100%;padding:12px 16px;border:1.5px solid var(--border);border-radius:8px;font-size:15px;color:var(--text-dark);background:#fff;transition:border-color .2s,box-shadow .2s;outline:none;font-family:inherit}
.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(79,70,229,.1)}
.form-input.has-error{border-color:#ef4444}
.form-label{display:block;font-size:13px;font-weight:600;color:var(--text-dark);margin-bottom:6px}
.error-msg{font-size:12px;color:#ef4444;margin-top:4px;display:none}
.error-msg.show{display:block}

/* ── Page Header ── */
.page-header{background:linear-gradient(135deg,#4f46e5 0%,#7c3aed 100%);padding:100px 0 64px;color:#fff;text-align:center;position:relative;overflow:hidden}
.page-header::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23fff' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/svg%3E")}

/* ── Contact Cards ── */
.contact-card{background:#fff;border-radius:16px;padding:32px 24px;box-shadow:var(--shadow);border:1px solid var(--border);text-align:center;transition:transform .3s,box-shadow .3s}
.contact-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}

/* ── Events ── */
.event-card{display:flex;gap:16px;padding:20px;background:#fff;border-radius:12px;border:1px solid var(--border);transition:box-shadow .2s,transform .2s}
.event-card:hover{box-shadow:0 8px 24px rgba(79,70,229,.1);transform:translateY(-2px)}

/* ── WhatsApp ── */
.whatsapp-float{position:fixed;bottom:84px;right:24px;width:56px;height:56px;background:#25d366;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(37,211,102,.4);z-index:200;transition:transform .3s,box-shadow .3s;text-decoration:none}
.whatsapp-float:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 8px 20px rgba(37,211,102,.5)}
.whatsapp-float svg{width:30px;height:30px;fill:#fff}
.text-whatsapp{color:#25d366}
.bg-whatsapp-light{background:#d1fae5}

/* ── Back to Top ── */
#back-to-top{position:fixed;bottom:24px;right:24px;width:48px;height:48px;background:var(--primary);color:#fff;border:none;border-radius:50%;font-size:20px;cursor:pointer;box-shadow:0 4px 12px rgba(79,70,229,.4);transition:all .3s;opacity:0;pointer-events:none;z-index:200;display:flex;align-items:center;justify-content:center}
#back-to-top.show{opacity:1;pointer-events:auto}
#back-to-top:hover{background:var(--primary-dark);transform:translateY(-3px)}

/* ── Footer ── */
.footer-link{color:#9ca3af;text-decoration:none;font-size:14px;transition:color .2s;display:block;margin-bottom:8px}
.footer-link:hover{color:#fff}

/* ── Glass Effect ── */
.glass{background:rgba(255,255,255,.12);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.2)}

/* ── Animations ── */
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
.animate-float{animation:float 5s ease-in-out infinite}
@keyframes pulse-soft{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
.animate-pulse-soft{animation:pulse-soft 2.5s ease-in-out infinite}
@keyframes spin-slow{to{transform:rotate(360deg)}}

/* ── Filter Buttons (Gallery) ── */
.filter-btn{padding:8px 20px;border-radius:100px;border:1.5px solid var(--border);background:#fff;color:var(--text-body);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}
.filter-btn:hover{border-color:var(--primary);color:var(--primary)}
.filter-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}

/* ── Hero Gradient ── */
.hero-bg{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);position:relative;overflow:hidden}

/* ── Responsive ── */
@media(max-width:768px){
  .counter-num{font-size:2rem}
  .page-header{padding:80px 0 48px}
  #lb-prev{left:8px}
  #lb-next{right:8px}
}
