/* Header and Global Component Styles */

:root{
  --indigo:#6366f1; --purple:#7c3aed; --blue:#2563eb; --cyan:#06b6d4;
  --ink:#0f172a; --muted:#64748b; --light:#f8fafc; --card:#ffffff;
  --grad: linear-gradient(135deg, var(--purple) 0%, var(--blue) 50%, var(--cyan) 100%);
  --brand:#ff6b35; --brand2:#ff944d;
  --orange-primary: #ff6b35;
  --orange-dark: #e55a2b;
  
  /* Light theme (default) */
  --bg-primary: #ffffff;
  --bg-secondary: #f8fafc;
  --bg-tertiary: #f1f5f9;
  --text-primary: #0f172a;
  --text-secondary: #64748b;
  --text-muted: #94a3b8;
  --border-color: #e2e8f0;
  --shadow-color: rgba(15, 23, 42, 0.1);
  --navbar-bg: rgba(255, 255, 255, 0.95);
  --card-bg: #ffffff;
}

[data-theme="dark"] {
  --bg-primary: #0f172a;
  --bg-secondary: #1e293b;
  --bg-tertiary: #334155;
  --text-primary: #f8fafc;
  --text-secondary: #cbd5e1;
  --text-muted: #94a3b8;
  --border-color: #334155;
  --shadow-color: rgba(0, 0, 0, 0.3);
  --navbar-bg: rgba(15, 23, 42, 0.95);
  --card-bg: #1e293b;
  --ink: #f8fafc;
  --muted: #cbd5e1;
  --light: #1e293b;
  --card: #1e293b;
}

/* Button Styles */
.btn-gradient{ background:var(--grad); color:#fff; border:0; box-shadow:0 8px 20px rgba(37,99,235,.25); }
.btn-gradient:hover{ filter:brightness(.95); color:#fff; transform:translateY(-1px); }

.text-primary{color:var(--orange-primary) !important}
.btn-primary{background-color:var(--orange-primary);border-color:var(--orange-primary)}
.btn-primary:hover{background-color:var(--orange-dark);border-color:var(--orange-dark)}
.btn-outline-primary{color:var(--orange-primary);border-color:var(--orange-primary)}
.btn-outline-primary:hover{background-color:var(--orange-primary);border-color:var(--orange-primary);color:#fff}

/* Topbar */
.topbar{ background: linear-gradient(90deg, #111827, #1f2937); padding:.35rem 0; position:relative; }
.topbar .link-light:hover{ opacity:1!important; text-decoration:underline; }
.scroll-progress{ position:absolute; left:0; bottom:0; height:3px; width:0; background:var(--grad); }

/* Navbar */
.navbar{ 
  backdrop-filter:saturate(1.1) blur(6px); 
  background: var(--navbar-bg) !important;
  border-bottom: 1px solid var(--border-color);
}
.navbar .dropdown-menu{ 
  border-radius:14px; 
  background: var(--card-bg);
  border: 1px solid var(--border-color);
}
.mm-title{ font-weight:700; margin-bottom:.35rem; color: var(--text-primary); }
.mm-link{ display:block; padding:.35rem 0; color: var(--text-primary); text-decoration:none; }
.mm-link:hover{ color:var(--orange-primary); }
.mm-card{ background: var(--bg-secondary); border:1px solid var(--border-color); border-radius:12px; }

/* Make icons inline & centered with text across all menu items */
.navbar .nav-link{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  font-weight:600;
  line-height:1.1;    /* tighten line height so icons align perfectly */
  padding:.6rem .9rem;
  color: var(--text-primary);
}
.navbar .nav-link .bi{
  font-size:1.05rem;
  line-height:1;      /* ensures no vertical drift */
  transform: translateY(1px); /* micro-align baseline */
  color:var(--blue);
}
.navbar .nav-link:hover {
  color: var(--orange-primary);
}

.navbar .nav-link:focus {
  color: var(--orange-primary);
}

.navbar .nav-link.active {
  color: var(--orange-primary) !important;
}

/* Larger, more visible brand logo (responsive) */
.brand-wrap{
  display:flex; align-items:center; gap:.6rem;
}
.brand-logo{
  height:78px;        /* bigger logo on desktop */
  width:auto;
  object-fit:contain;
  filter: drop-shadow(0 3px 12px rgba(37,99,235,.15));
}
.brand-title{
  font-weight:800;
  letter-spacing:.2px;
}

@media (max-width: 576px){
  .brand-logo{ height:64px; }  /* still bigger than before on mobile */
  .brand-title{ font-size: .95rem; }
}

/* Hero Base Styles (NOT for index hero-section) */
.hero{ background: linear-gradient(180deg,#fff,#f6f8ff); }
.hero-bg{
  position:absolute; inset:-10% -10% auto -10%; height:60%;
  background: radial-gradient(900px 300px at -10% -20%, rgba(124,58,237,.08), transparent 60%),
              radial-gradient(800px 260px at 110% -10%, rgba(37,99,235,.07), transparent 65%);
  animation: float 8s ease-in-out infinite alternate;
}
@keyframes float { from{ transform: translateY(-6px) } to{ transform: translateY(6px) } }

/* Text and Background Utilities */
.text-gradient{ background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.bg-soft{ background:#eef2ff; color:#374151; }
.text-white-75{ color: rgba(255,255,255,.75)!important; }
.text-brand{ color: var(--brand)!important; }

/* Value Lists */
.value-list li{ margin:.4rem 0; color:var(--muted); }
.value-list i{ color:#2563eb; margin-right:.5rem; }

/* Stat Cards */
.stat-card{ background:#fff; border:1px solid #e5e7eb; border-radius:12px; padding:1rem; text-align:center; box-shadow:0 6px 18px rgba(15,23,42,.05); }
.stat-number{ font-size:1.8rem; font-weight:800; }
.stat-label{ font-size:.85rem; color:var(--muted); }

/* Hero Carousel */
.hero-carousel img{ object-fit: cover; height: 380px; }
@media (min-width: 992px){ .hero-carousel img{ height: 420px; } }
.carousel-caption{ background: linear-gradient(180deg, rgba(0,0,0,.0), rgba(0,0,0,.45)); padding:1rem 1.25rem; border-radius:0 0 1rem 1rem; }
.partner-logo{ height:26px; opacity:.75; filter:grayscale(1); }
.partner-logo:hover{ opacity:1; filter:none; }
.hero-wave{ position:absolute; bottom:-1px; left:0; width:100%; height:90px; }

/* Tighten space below the hero carousel and captions */
.hero-carousel { margin-bottom: 0 !important; }
.hero-carousel .carousel-item { aspect-ratio: 16 / 9; }              /* keeps a consistent height */
.hero-carousel .carousel-item > img { width:100%; height:100%; object-fit:cover; display:block; }
.hero-carousel .carousel-caption { bottom: 1rem; padding-bottom: 0; } /* pulls caption up slightly */

/* Optional: make the countdown bar sit a touch closer */
#deadlineBar { margin-top: .5rem; }

/* Capacity Indicators */
.capacity{ width:140px; height:8px; background:#e5e7eb; border-radius:8px; overflow:hidden; }
.capacity-bar{ height:100%; width:0; background:var(--grad); }

/* Mini CTA */
.mini-cta{ position:sticky; bottom:0; background:linear-gradient(135deg,#111827,#1f2937); color:#fff; transform:translateY(100%); transition:.3s; }
.mini-cta.show{ transform:translateY(0); }

/* Rotating Pills */
.rotating-pills .badge{ margin-right:.4rem; }

/* Utility Spacing */
.py-6{ padding-top:4rem!important; padding-bottom:4rem!important; }
.py-7{ padding-top:5rem!important; padding-bottom:5rem!important; }

/* Dark Mode Support - Global Styles */
body {
  background-color: var(--bg-primary);
  color: var(--text-primary);
  transition: background-color 0.3s ease, color 0.3s ease;
}

[data-theme="dark"] body {
  background-color: var(--bg-primary);
  color: var(--text-primary);
}

[data-theme="dark"] .card {
  background-color: var(--card-bg);
  color: var(--text-primary);
  border-color: var(--border-color);
}

[data-theme="dark"] .offcanvas {
  background-color: var(--bg-secondary);
  color: var(--text-primary);
  border-color: var(--border-color);
}

[data-theme="dark"] .offcanvas .nav-link {
  color: var(--text-secondary);
}

[data-theme="dark"] .offcanvas .nav-link:hover {
  color: var(--orange-primary);
}

[data-theme="dark"] .offcanvas .nav-link:focus {
  color: var(--orange-primary);
}

[data-theme="dark"] .offcanvas .nav-link.active {
  color: var(--orange-primary) !important;
}

[data-theme="dark"] .btn-outline-dark {
  color: var(--text-primary);
  border-color: var(--border-color);
}

[data-theme="dark"] .btn-outline-dark:hover {
  background: var(--bg-tertiary);
  color: var(--text-primary);
}

/* Footer Styles */
.footer-modern{
  background: linear-gradient(180deg, var(--bg-secondary), var(--bg-tertiary));
  border-top: 1px solid var(--border-color);
  color: var(--text-primary);
}

[data-theme="dark"] .footer-modern{
  background: linear-gradient(180deg, var(--bg-secondary), var(--bg-primary));
  border-top-color: var(--border-color);
}

[data-theme="dark"] .footer-modern .text-muted {
  color: var(--text-secondary) !important;
}

[data-theme="dark"] .footer-modern .text-brand {
  color: var(--orange-primary) !important;
}

.footer-link{
  display:inline-flex; align-items:center; gap:.25rem;
  color: var(--text-secondary); text-decoration:none;
}
.footer-link:hover{ color:var(--orange-primary); text-decoration:underline; }

.social-ico{
  width:40px; height:40px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  background: var(--bg-tertiary); color: var(--orange-primary);
  transition: transform .2s, background .2s, color .2s;
  border: 1px solid var(--border-color);
}
.social-ico:hover{ transform: translateY(-2px); background: var(--orange-primary); color: var(--bg-primary); }

.btn-brand{
  --bs-btn-bg:var(--brand);
  --bs-btn-border-color:var(--brand);
  --bs-btn-hover-bg:var(--brand);
  --bs-btn-hover-border-color:var(--brand);
  color:#fff;
}

.back-to-top{
  position: fixed; right: 1rem; bottom: 1rem; z-index: 1040;
  width: 46px; height: 46px; border-radius: 50%;
  display: none; align-items: center; justify-content: center;
  box-shadow: 0 10px 22px rgba(0,0,0,.15);
}
.back-to-top.show{ display:flex; }

/* Partners Scroller */
.partners-scroller{
  display:flex; align-items:center; overflow:hidden;
  border-top:1px dashed rgba(93, 160, 170, 0.06);
  padding-top:.75rem;
}
.partners-track{
  display:flex; gap:18px; overflow:auto; padding-bottom:.25rem;
  scrollbar-width: thin;
}
.partner-logo{ height:28px; opacity:.9; transition:opacity .2s, transform .2s; }
.partner-logo:hover{ opacity:1; transform:translateY(-2px) }

/* CTA Pro Section */
.cta-pro{
  background:
    radial-gradient(1200px 500px at -10% -10%, rgba(255,255,255,.08), transparent 60%),
    radial-gradient(1200px 500px at 110% 110%, rgba(255,255,255,.08), transparent 60%),
    linear-gradient(135deg, #0b1220, #1b2440 55%, #0f1831);
  position: relative;
  color: #ffffff;
}

[data-theme="dark"] .cta-pro {
  background:
    radial-gradient(1200px 500px at -10% -10%, rgba(255,255,255,.05), transparent 60%),
    radial-gradient(1200px 500px at 110% 110%, rgba(255,255,255,.05), transparent 60%),
    linear-gradient(135deg, #000408, #0f1831 55%, #1e293b);
}

[data-theme="dark"] .cta-pro .text-dark {
  color: var(--text-primary) !important;
}
.cta-ribbon{
  position:absolute; inset:0 0 auto 0; height:6px;
  background: linear-gradient(90deg, var(--brand), var(--brand2), var(--brand));
  background-size: 200% 100%;
  animation: ribbon 8s linear infinite;
}
@keyframes ribbon{ from{background-position:0 0} to{background-position:200% 0} }

.grad-text{
  background: linear-gradient(90deg, #ffd3c2, #fff, #ffd3c2);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

.cta-card{ border-radius:16px; }
.bg-brand{ background: var(--brand)!important; }

/* Countdown digits */
.cd-box{ width:32%; background:#0f1831; border-radius:12px; padding:.6rem 0; }
.cd-num{ font-size:2rem; font-weight:800; color:#fff; line-height:1; }
.cd-label{ color:#b8c0d6; font-size:.8rem; }

/* Big gradient button with pulse + shine */
.btn-cta{
  color:#fff; border:0; border-radius:999px; font-weight:800; letter-spacing:.2px;
  background-image: linear-gradient(135deg, var(--brand), var(--brand2));
  box-shadow: 0 10px 22px rgba(0,0,0,.25), 0 0 0 0 rgba(255,107,53,.35);
  position: relative; overflow: hidden; transition: transform .12s ease, box-shadow .2s ease;
}
.btn-cta:hover{ transform: translateY(-1px); box-shadow:0 14px 28px rgba(0,0,0,.28); }
.btn-cta::after{
  content:""; position:absolute; inset:0 -40% 0 auto; width:40%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,.35), transparent);
  transform: skewX(-20deg); animation: shine 3s ease-in-out infinite;
}
@keyframes shine{ 0%{left:-40%} 100%{left:140%} }

/* Sticky mobile bar */
.cta-sticky{
  position: fixed; left:0; right:0; bottom:0; z-index: 1030;
  background: linear-gradient(135deg, rgba(15,24,49,.96), rgba(27,36,64,.96));
  padding:.6rem 0; border-top:1px solid rgba(255,255,255,.08);
  backdrop-filter: blur(6px);
}

/* Reduce motion for sensitive users */
/* Theme Toggle Button */
#theme-toggle, #mobile-theme-toggle {
  border: 1px solid var(--border-color);
  background: var(--card-bg);
  color: var(--text-primary);
  transition: all 0.3s ease;
}

#theme-toggle:hover, #mobile-theme-toggle:hover {
  background: var(--bg-secondary);
  border-color: var(--orange-primary);
  color: var(--orange-primary);
  transform: translateY(-1px);
}

#theme-toggle i, #mobile-theme-toggle i {
  transition: transform 0.3s ease;
}

#theme-toggle:hover i, #mobile-theme-toggle:hover i {
  transform: rotate(180deg);
}

@media (prefers-reduced-motion: reduce){
  .btn-cta::after, .cta-ribbon{ animation: none; }
  #theme-toggle i, #mobile-theme-toggle i { transition: none; }
  #theme-toggle:hover i, #mobile-theme-toggle:hover i { transform: none; }
}