/* overrides.css – higher-level enhancements, experimental styles, and page-specific overrides */

/* Responsive typography root scale (fluid between 18px and 20px) */
html { font-size:clamp(17px, 1.15vw + 14px, 20px); }
body { background:#0b0e17; color:#e4e6eb; }
/* Transparent containers now (removed dark translucent background & blur for performance and to reveal starfield) */
main, .container { padding-top:1rem; padding-bottom:1.5rem; }
h2,h3,h4,h5,h6 { color:#f2f4f8; }
/* Fluid reduced heading scale (~30% smaller than Bootstrap defaults) */
/* Ratios chosen to keep clear hierarchy while avoiding oversized blocks on small screens. */
h2 { font-size:clamp(1.18rem, 0.9rem + 1.2vw, 1.4rem); line-height:1.22; }
h3 { font-size:clamp(1.05rem, 0.85rem + 0.9vw, 1.225rem); line-height:1.24; }
h4 { font-size:clamp(.95rem, 0.8rem + 0.6vw, 1.05rem); line-height:1.28; }
h5 { font-size:clamp(.85rem, 0.75rem + 0.45vw, .875rem); line-height:1.3; font-weight:600; }
h6 { font-size:clamp(.78rem, 0.7rem + 0.35vw, .7rem); line-height:1.35; font-weight:600; letter-spacing:.5px; text-transform:uppercase; }
/* h6 max kept low intentionally (label style). */
p,li { color:#d2d5dc; font-size:clamp(0.79rem, 0.29vw + 0.70rem, 0.84rem); line-height:1.58; }
a, p, li { -webkit-font-smoothing:antialiased; }
/* Reverted body copy to serif (Lora from base). Slight global size reduction applied. */
a { color:#7fb7ff; }
a:hover { color:#a4ceff; }

/* Dark gradient hero override (ensures consistency if inline styles removed) */
/* Hero container now hosts a starfield canvas; keep layering rules */
.intro-header { position:relative; overflow:hidden; background:linear-gradient(to bottom,#000 0%,#120a2b 70%,#1d0d44 100%); }
.intro-header canvas.hero-bg { position:absolute; inset:0; width:100%; height:100%; display:block; z-index:0; }
.intro-header > * { position:relative; z-index:1; }
.site-heading { text-shadow:1px 1px 2px rgba(0,0,0,.6); }
/* Reduced bottom padding on hero for tighter transition to content (index sine variant) */
.intro-header.sine .site-heading { padding-bottom:30px; }
/* Slightly tighten gap from hero to main content */
.intro-header.sine + main { padding-top:.5rem; }

/* Orbit gradient background variant (used on contact page) */
.intro-header.orbits { background:#05060a; }
.intro-header.orbits::before,
.intro-header.orbits::after { content:""; position:absolute; inset:0; background:radial-gradient(circle at 30% 40%, rgba(70,130,255,0.35), transparent 60%), radial-gradient(circle at 75% 65%, rgba(200,90,255,0.25), transparent 55%), radial-gradient(circle at 50% 110%, rgba(40,200,170,0.25), transparent 70%); mix-blend-mode:screen; animation:orbitPulse 14s linear infinite; }
.intro-header.orbits::after { animation-direction:reverse; animation-duration:22s; filter:blur(22px) saturate(140%); opacity:.8; }
@keyframes orbitPulse { 0% { transform:scale(1) rotate(0deg); } 50% { transform:scale(1.08) rotate(180deg); } 100% { transform:scale(1) rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .intro-header.orbits::before, .intro-header.orbits::after { animation:none; } }

/* Geometric lines effect (about page)
   Enhancement: Increased motion + contrast (Aug 2025) while keeping subtlety.
   Tuning notes:
   - Motion sped up (drift 32s -> 18s, pulse 18s -> 11.5s)
   - Greater translation & scale variance
   - Slightly stronger line + glow opacities
   - Added ultra-faint animated micro-grid for parallax depth
*/
.intro-header.geo-lines { background:#060910; }
.intro-header.geo-lines::before,
.intro-header.geo-lines::after { content:""; position:absolute; inset:0; pointer-events:none; }
/* Layer 1: moving linear gradients + micro grid */
.intro-header.geo-lines::before { background:
		/* Primary intersecting lines */
		repeating-linear-gradient(115deg, rgba(70,130,210,0.22) 0 2px, transparent 2px 68px),
		repeating-linear-gradient(205deg, rgba(150,90,230,0.18) 0 2px, transparent 2px 62px),
		/* Ambient radial blooms */
		radial-gradient(circle at 70% 35%, rgba(140,80,220,0.28), transparent 56%),
		radial-gradient(circle at 25% 65%, rgba(50,190,230,0.24), transparent 60%),
		/* Subtle micro grid */
		repeating-linear-gradient( 90deg, rgba(255,255,255,0.015) 0 1px, transparent 1px 18px),
		repeating-linear-gradient(  0deg, rgba(255,255,255,0.015) 0 1px, transparent 1px 18px);
	mix-blend-mode:screen; animation:geoDrift 18s linear infinite; }
/* Layer 2: blurred glow pulses */
.intro-header.geo-lines::after { background:
		radial-gradient(circle at 35% 40%, rgba(110,170,255,0.42), transparent 50%),
		radial-gradient(circle at 82% 72%, rgba(200,110,255,0.34), transparent 55%);
	filter:blur(26px) saturate(155%); opacity:.92; animation:geoPulse 11.5s ease-in-out infinite; }
@keyframes geoDrift { 0% { transform:translate3d(0,0,0) scale(1); } 33% { transform:translate3d(-6%,2%,0) scale(1.035); } 66% { transform:translate3d(3%, -2%,0) scale(1.05); } 100% { transform:translate3d(0,0,0) scale(1); } }
@keyframes geoPulse { 0%,100% { opacity:.70; transform:scale(1); } 50% { opacity:1; transform:scale(1.10); } }
@media (prefers-reduced-motion: reduce) { .intro-header.geo-lines::before, .intro-header.geo-lines::after { animation:none; } }

/* Waves energy effect (index when starfield disabled) */
.intro-header.waves { background:#04060b; }
.intro-header.waves::before,
.intro-header.waves::after { content:""; position:absolute; inset:0; pointer-events:none; }
/* Layer 1: horizontal flowing gradients */
.intro-header.waves::before { background:
	linear-gradient(115deg, rgba(40,90,160,0.35), transparent 70%),
	radial-gradient(circle at 85% 25%, rgba(130,60,210,0.28), transparent 60%),
	repeating-linear-gradient( to right, rgba(255,255,255,0.04) 0 2px, transparent 2px 130px);
	mix-blend-mode:screen; animation:wavesShift 26s linear infinite; }
/* Layer 2: soft moving vertical bands */
.intro-header.waves::after { background:
	repeating-linear-gradient(180deg, rgba(70,140,255,0.08) 0 4px, transparent 4px 120px),
	radial-gradient(circle at 25% 70%, rgba(40,200,170,0.22), transparent 65%);
	filter:blur(22px) saturate(145%); opacity:.9; animation:wavesPulse 14s ease-in-out infinite; }
@keyframes wavesShift { 0% { transform:translate3d(0,0,0) scale(1); } 50% { transform:translate3d(-6%,1%,0) scale(1.03); } 100% { transform:translate3d(0,0,0) scale(1); } }
@keyframes wavesPulse { 0%,100% { opacity:.7; transform:scale(1); } 50% { opacity:.95; transform:scale(1.07); } }
@media (prefers-reduced-motion: reduce) { .intro-header.waves::before, .intro-header.waves::after { animation:none; } }

/* Sine wave energy effect (index alternate) */
.intro-header.sine { background:#03060d radial-gradient(circle at 70% 40%, #0f2440 0%, #050910 70%) no-repeat; }
.intro-header.sine canvas.hero-sine { position:absolute; inset:0; width:100%; height:100%; display:block; z-index:0; }
.intro-header.sine > * { position:relative; z-index:1; }
/* Optional subtle noise overlay for texture */
.intro-header.sine::after { content:""; position:absolute; inset:0; background:radial-gradient(circle at 30% 20%, rgba(140,120,255,0.08), transparent 60%), radial-gradient(circle at 75% 70%, rgba(60,180,220,0.07), transparent 65%); mix-blend-mode:screen; pointer-events:none; }
@media (prefers-reduced-motion: reduce) { .intro-header.sine canvas.hero-sine { display:none; } }

/* Enhanced button palette */
.btn-primary { background:#234d8f; border-color:#1d4078; }
.btn-primary:hover,.btn-primary:focus { background:#1d4078; border-color:#183862; }

/* Green CTA variant */
.btn-success, .btn-cta-green { background:#2d8a34; border-color:#26732c; color:#fff; }
.btn-success:hover, .btn-cta-green:hover { background:#256f2b; border-color:#1e5a23; }

/* Dimmer info + primary/green buttons (retain contrast) */
.btn-info { background:rgba(71,143,165,0.8); border-color:#3d7c90; color:#fff; }
.btn-info:hover, .btn-info:focus { background:rgba(59,123,143,0.85); border-color:#336b7c; color:#fff; }
.btn-primary { background:rgba(29,63,114,0.8); border-color:#18365f; }
.btn-primary:hover, .btn-primary:focus { background:rgba(24,54,95,0.85); border-color:#132c4c; }
.btn-cta-green, .btn-success { background:rgba(35,108,42,0.8); border-color:#1e5c24; }
.btn-cta-green:hover, .btn-success:hover, .btn-cta-green:focus, .btn-success:focus { background:rgba(30,92,36,0.85); border-color:#194d1e; }

/* CTA group alignment */
.cta-group { display:flex; flex-wrap:wrap; gap:.55rem; margin-top:1.4rem; justify-content:flex-start; }
.site-heading .cta-group { margin-left:0; }
.cta-group a { margin:0 !important; }

/* Semi-transparent badge pill */
.badge-pill { background:rgba(36,59,85,0.5); }

/* Nav adjustments */
.navbar-brand, .navbar-nav .nav-link { font-family:'Open Sans','Helvetica Neue',Arial,sans-serif; letter-spacing:.5px; font-size:0.85rem; }
.navbar.bg-dark { background:rgba(6,20,37,0.38) !important; border-bottom:1px solid rgba(255,255,255,0.08); transition:background-color .35s ease; }
.navbar.bg-dark.scrolled { background:rgba(6,20,37,0.85) !important; }
/* Navbar density adjustments */
.navbar { padding-top:.3rem; padding-bottom:.3rem; }
.navbar-brand { padding-top:0; padding-bottom:0; font-size:0.95rem; line-height:1; display:flex; align-items:center; }
.navbar-nav .nav-link { padding-top:.35rem; padding-bottom:.35rem; line-height:1.1; }
.navbar-toggler { padding:.25rem .45rem; line-height:1; border-radius:.35rem; }
/* Slimmer hamburger icon */
.navbar-toggler-icon { width:1.15em; height:1.15em; background-size:1.15em 1.15em; }
/* Slightly dim lines for dark bg */
.navbar-dark .navbar-toggler-icon { filter:brightness(0.85); }
/* Collapsed menu alignment */
@media (max-width: 991.98px) { /* below lg */
	.navbar-collapse { padding-top:.25rem; }
	.navbar-nav .nav-link { padding-left:.15rem; }
}

/* Focus outline unified */
.btn:focus-visible, .nav-link:focus-visible, a:focus-visible { outline:2px solid #ffbf47; outline-offset:2px; }

/* News animation preference reduction */
@media (prefers-reduced-motion: reduce) { #news { transition:none; transform:none !important; } }

/* Utility spacing */
.stack-sm > * + * { margin-top:.75rem; }
.stack-md > * + * { margin-top:1.25rem; }
.stack-lg > * + * { margin-top:2rem; }

/* Card-ish panel (if needed later) */
.panel-soft { background:#f8f9fb; border:1px solid #dde2e8; border-radius:.75rem; padding:1.25rem 1.5rem; }

/* Link underlines on hover globally */
a:hover { text-decoration:underline; }

/* Remove legacy unused constructs safety net (can delete after verification) */
/* .navbar-custom, .floating-label-form-group, .pager etc intentionally not re-added here */

/* Print improvements */
@media print { a[href]::after { content:" (" attr(href) ")"; font-size:.75em; } }

/* Footer readability overrides */
footer p.copyright.text-muted { color:#6fb3ff !important; opacity:1 !important; }
footer .text-muted { color:#6fb3ff !important; }
