
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600;700;800&display=swap');

/*
	Modern dark-blue theme for NexGov Inc.
	- Reset & base styles
	- Root variables for colors & transitions
	- Responsive container and layout utilities
	- Gradient backgrounds and subtle animations
*/

:root{
	--bg:#ffffff; /* page background (white) */
	--surface:#f3f5f7; /* light grey surfaces for cards, nav */
	--muted:#60738a;
	--accent:#8B3A3A; /* primary red wine */
	--accent-2:#6B2D26;
	--glass: rgba(2,6,23,0.03);
	--elev: rgba(16,24,32,0.06);
	--text:#0b1720; /* dark text for contrast */
	--muted-2:#6b7f92;
	--success:#06b6a4;
	--danger:#ef4444;
	--trans: 300ms cubic-bezier(.4,0,.2,1);
	--radius:12px;
}

/* Particles JS Background */
#particles-js{
	position:fixed;
	top:0;
	left:0;
	width:100vw;
	height:100vh;
	z-index:-1;
	background:#f8f8f8;
	pointer-events:none;
}

/* Reset */
*{box-sizing:border-box}

/* Ensure all main sections sit above particles background */
main, header, footer{
	position:relative;
	z-index:1;
}
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;font:inherit;vertical-align:baseline}
article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section{display:block}
html,body{height:100%}
ol,ul{list-style:none}
img{max-width:100%;height:auto;display:block}
a{text-decoration:none;color:inherit}
button,input,textarea{font:inherit}

/* Smooth scrolling */
html{scroll-behavior:smooth}

/* Base */
body{
	font-family:'Poppins',Inter,Segoe UI,Helvetica,Arial,sans-serif;
	background:transparent;
	color:var(--text);
	-webkit-font-smoothing:antialiased;
	-moz-osx-font-smoothing:grayscale;
	line-height:1.5;
}

.container{max-width:1200px;margin:0 auto;padding:0 20px}

/* Top bar */
.top-bar{
	background:linear-gradient(180deg,rgba(255,255,255,0.02),transparent);
	color:var(--muted-2);
	font-size:13px;
	border-bottom:1px solid rgba(255,255,255,0.03);
}
.top-nav ul{display:flex;gap:18px;align-items:center;justify-content:flex-end;padding:10px 20px}
.top-nav a{color:var(--muted-2);opacity:.9;transition:color var(--trans),opacity var(--trans)}
.top-nav a:hover{color:var(--text);opacity:1}

/* Branding area */
.branding{
	display:flex;
	align-items:center;
	gap:12px;
	padding:0;
	margin:0;
}
.brand-link{
	display:flex;
	gap:12px;
	align-items:center;
}
.logo-img{
	height:56px;
	width:auto;
	object-fit:contain;
	transition:transform var(--trans);
}
.logo-img:hover{transform:translateY(-2px)}
.company-name{
	font-size:18px;
	color:var(--text);
	letter-spacing:0.3px;
	margin:0;
	line-height:1;
}
.tagline{display:none}

/* Primary navigation */
.main-nav{
	background:transparent;
	border:none;
	display:flex;
	align-items:center;
	margin-left:auto;
}
.main-nav ul{
	display:flex;
	gap:28px;
	align-items:center;
	justify-content:flex-end;
	padding:0;
	margin:0;
}
.main-nav a{color:var(--muted-2);font-weight:600;position:relative;padding:8px 6px;transition:color var(--trans),transform var(--trans)}
.main-nav a:after{content:'';position:absolute;left:0;bottom:0;height:2px;width:0;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width var(--trans)}
.main-nav a:hover{color:var(--text);transform:translateY(-2px)}
.main-nav a:hover:after{width:100%}
.main-nav a:active{transform:translateY(0px);opacity:0.8}
.main-nav .nav-cta{background:linear-gradient(90deg,var(--accent),var(--accent-2));color:#fff;padding:10px 14px;border-radius:8px;transition:all var(--trans);position:relative;overflow:hidden}
.main-nav .nav-cta:after{display:none}
.main-nav .nav-cta:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(140,140,140,0.18);filter:brightness(1.1)}
.main-nav .nav-cta:active{transform:translateY(-1px)}

/* Nav toggle (hamburger) */
.nav-inner{display:flex;align-items:center;justify-content:space-between;width:100%;flex:1}
.nav-toggle{display:none;background:transparent;border:0;padding:8px;cursor:pointer}
.hamburger{display:inline-block;width:28px;height:16px;position:relative}
.hamburger:before,.hamburger:after,.hamburger span{content:'';position:absolute;left:0;right:0;height:3px;background:var(--text);border-radius:3px;transition:transform var(--trans),opacity var(--trans)}
.hamburger:before{top:0}
.hamburger span{top:6.5px}
.hamburger:after{bottom:0}

/* Menu (desktop) */
.nav-menu{
	display:flex;
	gap:28px;
	align-items:center;
	margin:0;
	padding:0;
}
.nav-menu li{position:relative}
.nav-menu a{
	display:inline-flex;
	align-items:center;
	gap:8px;
	transition:transform var(--trans),color var(--trans);
	font-size:14px;
}
.nav-menu a:hover{transform:scale(1.04)}

/* Dropdowns (desktop) */
.dropdown{position:absolute;left:0;top:calc(100% + 8px);min-width:220px;background:var(--surface);border-radius:10px;padding:10px 6px;box-shadow:0 12px 36px rgba(16,24,32,0.08);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity var(--trans),transform var(--trans),visibility var(--trans)}
.dropdown li{padding:6px 12px}
.dropdown li a{color:var(--text);font-weight:500}
.has-dropdown:hover > .dropdown{opacity:1;visibility:visible;transform:none}

/* Dropdown fade-in animation */
.dropdown.fade-in{animation:fadeIn .28s ease both}

/* Mobile styles */
@media (max-width:880px){
	.nav-toggle{display:block}
	.nav-menu{position:fixed;top:0;right:0;height:100vh;width:320px;max-width:80%;flex-direction:column;padding:80px 20px;background:linear-gradient(180deg,var(--surface),#ffffff);box-shadow:-24px 0 48px rgba(16,24,32,0.08);transform:translateX(110%);transition:transform var(--trans);z-index:1300}
	.nav-menu li{width:100%}
	.nav-menu a{padding:12px 8px;display:block}
	.site-header.menu-open .nav-menu{transform:translateX(0)}
	.hamburger.open:before{transform:translateY(6.5px) rotate(45deg)}
	.hamburger.open span{opacity:0}
	.hamburger.open:after{transform:translateY(-6.5px) rotate(-45deg)}

	/* Mobile dropdowns become accordion-like */
	.dropdown{position:static;transform:none;opacity:1;visibility:visible;padding-left:12px;display:none;background:transparent;box-shadow:none}
	.has-dropdown.open > .dropdown{display:block}
}


/* Site header (glassmorphism) - Compact Horizontal Layout */
.site-header{
	position:fixed;
	top:0;
	left:0;
	right:0;
	display:flex;
	align-items:center;
	justify-content:space-between;
	height:80px;
	max-height:80px;
	z-index:1200;
	backdrop-filter: blur(8px) saturate(120%);
	background: rgba(255,255,255,0.55);
	border-bottom:1px solid rgba(16,24,32,0.04);
	transition:background var(--trans),backdrop-filter var(--trans),box-shadow var(--trans),padding var(--trans);
	padding:0 20px;
	gap:20px;
}
.site-header.scrolled{
	background: rgba(255,255,255,0.95);
	box-shadow: 0 6px 24px rgba(16,24,32,0.06);
	backdrop-filter: blur(8px) saturate(120%);
}

/* Keep header content compact and aligned */
.site-header .top-bar{display:none}
.site-header .branding{
	display:flex;
	align-items:center;
	gap:12px;
	padding:0;
	margin:0;
}
.site-header .main-nav{
	display:flex;
	align-items:center;
	padding:0;
	margin:0;
	border:none;
	background:transparent;
}

/* Gradient text for company name */
.company-name{
	background: linear-gradient(90deg,var(--accent),var(--accent-2));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	font-weight:700;
	font-size:18px;
	margin:0;
	line-height:1;
}
.brand-link{transition:transform var(--trans),opacity var(--trans)}
.brand-link:hover{transform:translateY(-4px);opacity:0.95}

/* Ensure main content isn't covered by fixed header: JS sets padding dynamically */
body{padding-top:0}

/* Compact header style on scroll */
.site-header.compact{
	height:80px;
	max-height:80px;
}
.site-header.compact .branding{padding:0}
.site-header.compact .logo-img{height:56px}
.site-header.compact .company-name{font-size:18px}

/* Focus styles for accessibility */
a:focus{outline:3px solid rgba(140,140,140,0.18);outline-offset:3px}
.nav-menu a:focus{transform:scale(1.02)}


/* Hero */
.hero{position:relative;z-index:1;min-height:80vh;display:flex;justify-content:center;align-items:center;background:transparent;overflow:hidden;padding:120px 20px}
.hero-wrapper{position:relative;width:100%;display:flex;justify-content:center;align-items:center;z-index:5}
.hero-content{display:flex;align-items:center;gap:50px;width:100%;max-width:1400px;margin:0 auto;position:relative;z-index:5;animation:fadeInUp 0.9s cubic-bezier(.4,0,.2,1) both;padding:0 20px;justify-content:center}
.hero-left{flex:1;z-index:6}
.hero-right{flex:1;z-index:3;animation:subtle-float 6s ease-in-out infinite}
.hero-title{font-size:clamp(72px,8vw,90px);line-height:1.1;color:var(--text);margin-bottom:28px;font-weight:800;letter-spacing:-1px;animation:fadeInUp .9s cubic-bezier(.4,0,.2,1) 0.1s both;transition:all 0.6s cubic-bezier(.4,0,.2,1)}
.hero-title:hover{letter-spacing:0px;transform:scale(1.02)}
.hero-sub{color:var(--muted);font-size:clamp(18px,2.2vw,22px);margin-bottom:36px;line-height:1.6;animation:fadeInUp .9s cubic-bezier(.4,0,.2,1) 0.25s both;transition:color 0.6s var(--trans)}
.hero-sub:hover{color:var(--text)}
.hero-ctas{animation:fadeInUp .9s cubic-bezier(.4,0,.2,1) 0.4s both;display:flex;gap:20px;align-items:center}
.hero-media{width:100%;min-height:480px;background:linear-gradient(180deg,rgba(255,255,255,0.02),transparent);border-radius:20px;box-shadow:0 12px 40px rgba(140,140,140,0.12),inset 0 -40px 100px rgba(140,140,140,0.05);z-index:3;transition:all 0.6s var(--trans);overflow:hidden}
.hero-media:hover{box-shadow:0 20px 60px rgba(140,140,140,0.18),inset 0 -40px 100px rgba(140,140,140,0.08)}

/* Enhanced Particle Canvas Interaction */
#hero-particles{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;transition:opacity 0.6s var(--trans)}
#hero-particles:hover{opacity:0.8}

/* Parallax transform helper */
.parallax{will-change:transform}

/* Slideshow Styling */
.slideshow-container{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  border-radius:20px;
  background:linear-gradient(135deg,rgba(140,140,140,0.08),rgba(120,120,120,0.04));
  border:1px solid rgba(140,140,140,0.12);
  box-shadow:0 20px 60px rgba(140,140,140,0.15),inset 0 1px 0 rgba(255,255,255,0.1);
}

.slide{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  animation:slideshow-fade 18s infinite;
}

.slide:nth-child(1){animation-delay:0s}
.slide:nth-child(2){animation-delay:3s}
.slide:nth-child(3){animation-delay:6s}
.slide:nth-child(4){animation-delay:9s}
.slide:nth-child(5){animation-delay:12s}
.slide:nth-child(6){animation-delay:15s}

@keyframes slideshow-fade{
  0%{opacity:0;z-index:1}
  5%{opacity:1;z-index:10}
  16.67%{opacity:1;z-index:10}
  22%{opacity:0;z-index:1}
  100%{opacity:0;z-index:1}
}

/* Navigation Dots */
.slideshow-dots{
  position:absolute;
  bottom:16px;
  left:50%;
  transform:translateX(-50%);
  display:flex;
  gap:10px;
  z-index:20;
}

.dot{
  width:10px;
  height:10px;
  border-radius:50%;
  background:rgba(255,255,255,0.4);
  cursor:pointer;
  transition:all 0.4s ease;
  border:2px solid rgba(255,255,255,0.6);
}

.dot.active{
  background:rgba(255,255,255,1);
  border-color:rgba(255,255,255,1);
  transform:scale(1.3);
  box-shadow:0 0 12px rgba(140,140,140,0.5);
}

.dot:hover{
  background:rgba(255,255,255,0.7);
  transform:scale(1.2);
}

/* Synchronized dot animation with slideshow */
.dot:nth-child(1){animation:dot-active 18s infinite}
.dot:nth-child(2){animation:dot-active 18s infinite 3s}
.dot:nth-child(3){animation:dot-active 18s infinite 6s}
.dot:nth-child(4){animation:dot-active 18s infinite 9s}
.dot:nth-child(5){animation:dot-active 18s infinite 12s}
.dot:nth-child(6){animation:dot-active 18s infinite 15s}

@keyframes dot-active{
  0%{background:rgba(255,255,255,0.4);border-color:rgba(255,255,255,0.6);transform:scale(1)}
  5%{background:rgba(255,255,255,1);border-color:rgba(255,255,255,1);transform:scale(1.3);box-shadow:0 0 12px rgba(140,140,140,0.5)}
  16.67%{background:rgba(255,255,255,1);border-color:rgba(255,255,255,1);transform:scale(1.3);box-shadow:0 0 12px rgba(140,140,140,0.5)}
  22%{background:rgba(255,255,255,0.4);border-color:rgba(255,255,255,0.6);transform:scale(1)}
  100%{background:rgba(255,255,255,0.4);border-color:rgba(255,255,255,0.6);transform:scale(1)}
}

/* Loading Animation for Initial Load */
.slideshow-container::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,0.3),transparent);
  animation:slideshow-loading 2s ease-in-out;
  z-index:30;
  pointer-events:none;
  border-radius:16px;
}

@keyframes slideshow-loading{
  0%{opacity:1;transform:translateX(-100%)}
  50%{opacity:1}
  100%{opacity:0;transform:translateX(100%)}
}

/* Responsive adjustments */
@media (max-width:880px){
  .hero-content{flex-direction:column;gap:32px;padding:20px 16px}
  .hero-left{width:100%}
  .hero-right{width:100%;animation:none}
  .hero-ctas{flex-direction:column;gap:16px;width:100%}
  .hero-ctas a{width:100%}
  .hero-media{width:100%;min-height:300px}
  .slideshow-container{
    aspect-ratio:4/3;
    min-height:280px;
  }
  
  .slideshow-dots{
    bottom:12px;
    gap:8px;
  }
  
  .dot{
    width:8px;
    height:8px;
  }
}

@media (max-width:640px){
  .slideshow-container{
    aspect-ratio:3/2;
    min-height:200px;
  }
  
  .slideshow-dots{
    bottom:10px;
    gap:6px;
  }
  
  .dot{
    width:7px;
    height:7px;
    border:1px solid rgba(255,255,255,0.6);
  }
  
  .dot.active{
    transform:scale(1.25);
  }
}

/* Animations */
@keyframes heroGradient{
	0%{background-position:0% 50%}
	50%{background-position:100% 50%}
	100%{background-position:0% 50%}
}

@keyframes fadeInUp{
	from{opacity:0;transform:translateY(24px)}
	to{opacity:1;transform:none}
}

@keyframes subtle-float{
	0%,100%{transform:translateY(0px)}
	50%{transform:translateY(-12px)}
}

/* Gradient Text Animation */
@keyframes textGradient{
	0%{background-position:0% 50%}
	50%{background-position:100% 50%}
	100%{background-position:0% 50%}
}

.hero-title.gradient-animate{
	background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--accent));
	-webkit-background-clip:text;
	-webkit-text-fill-color:transparent;
	background-clip:text;
	background-size:200% 200%;
	animation:textGradient 6s ease infinite;
}

/* Ripple Effect */
.ripple{
	position:absolute;
	border-radius:50%;
	background:rgba(255,255,255,0.6);
	transform:scale(0);
	animation:ripple-animation 0.6s ease-out;
	pointer-events:none;
}

@keyframes ripple-animation{
	to{
		transform:scale(4);
		opacity:0;
	}
}

/* Scroll Reveal Base */
.reveal{
	opacity:0;
	transform:translateY(30px);
	transition:opacity 0.6s cubic-bezier(.4,0,.2,1),transform 0.6s cubic-bezier(.4,0,.2,1);
}

.reveal.active{
	opacity:1;
	transform:translateY(0);
}

.reveal.fade-in-left{
	transform:translateX(-40px);
}

.reveal.fade-in-left.active{
	transform:translateX(0);
}

.reveal.fade-in-right{
	transform:translateX(40px);
}

.reveal.fade-in-right.active{
	transform:translateX(0);
}

.reveal.scale-in{
	transform:scale(0.95);
}

.reveal.scale-in.active{
	transform:scale(1);
}

/* Stagger children animations */
.reveal-group > * {
	opacity:0;
	transform:translateY(30px);
	transition:opacity 0.6s cubic-bezier(.4,0,.2,1),transform 0.6s cubic-bezier(.4,0,.2,1);
}

.reveal-group.active > * {
	opacity:1;
	transform:translateY(0);
}

.reveal-group > :nth-child(1) { transition-delay: 0s; }
.reveal-group > :nth-child(2) { transition-delay: 0.1s; }
.reveal-group > :nth-child(3) { transition-delay: 0.2s; }
.reveal-group > :nth-child(4) { transition-delay: 0.3s; }
.reveal-group > :nth-child(5) { transition-delay: 0.4s; }
.reveal-group > :nth-child(6) { transition-delay: 0.5s; }

/* Enhanced Hover State Animations */
.btn:active{
	transform:scale(0.98);
}

.nav-menu a:active{
	opacity:0.7;
}

/* Page Load Animation */
@keyframes pageLoad{
	from{
		opacity:0;
		filter:blur(10px);
	}
	to{
		opacity:1;
		filter:blur(0);
	}
}

body.loaded main{
	animation:pageLoad 0.8s cubic-bezier(.4,0,.2,1);
}

/* Enhanced Card Animations */
@keyframes cardScale{
	from{
		opacity:0;
		transform:scale(0.9) translateY(30px);
	}
	to{
		opacity:1;
		transform:scale(1) translateY(0);
	}
}

.card.reveal{
	animation:cardScale 0.6s cubic-bezier(.4,0,.2,1) forwards;
}

/* Floating Animation */
@keyframes float{
	0%, 100%{
		transform:translateY(0px);
	}
	50%{
		transform:translateY(-8px);
	}
}

.float-animation{
	animation:float 3s ease-in-out infinite;
}

/* Pulse Animation */
@keyframes pulse{
	0%, 100%{
		opacity:1;
	}
	50%{
		opacity:0.5;
	}
}

.pulse-animation{
	animation:pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

/* Glow Animation */
@keyframes glow{
	0%, 100%{
		box-shadow:0 0 5px rgba(140,140,140,0.5);
	}
	50%{
		box-shadow:0 0 20px rgba(140,140,140,0.8);
	}
}

.glow-animation{
	animation:glow 2s ease-in-out infinite;
}

/* Shimmer Animation for Loading */
@keyframes shimmer{
	0%{
		background-position:-1000px 0;
	}
	100%{
		background-position:1000px 0;
	}
}

.shimmer{
	background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,0.2) 50%,rgba(255,255,255,0) 100%);
	background-size:1000px 100%;
	animation:shimmer 2s infinite;
}

/* Bounce Animation */
@keyframes bounce{
	0%, 100%{
		transform:translateY(0);
	}
	50%{
		transform:translateY(-10px);
	}
}

.bounce-animation{
	animation:bounce 1s ease-in-out infinite;
}

/* Buttons */
.btn{display:inline-block;padding:18px 40px;border-radius:12px;font-weight:700;cursor:pointer;transition:transform var(--trans),box-shadow var(--trans),opacity var(--trans),background var(--trans);position:relative;overflow:hidden;animation:fadeInUp .9s cubic-bezier(.4,0,.2,1) 0.55s both}
.btn:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.2),transparent);transform:translateX(-100%);transition:transform .6s ease}
.btn.primary{background:linear-gradient(90deg,var(--accent),var(--accent-2));color:#fff;border:none;font-size:20px;position:relative}
.btn.ghost{background:transparent;border:2px solid var(--accent);color:var(--accent);font-size:20px;position:relative}
.btn.primary:hover{transform:translateY(-4px);box-shadow:0 0 24px rgba(140,140,140,0.4),0 16px 48px rgba(140,140,140,0.22)}
.btn.primary:active{transform:translateY(-2px);box-shadow:0 0 16px rgba(140,140,140,0.3),0 8px 24px rgba(140,140,140,0.15)}
.btn.ghost:hover{transform:translateY(-4px);box-shadow:0 0 16px rgba(140,140,140,0.28);background:rgba(140,140,140,0.04)}
.btn.ghost:active{transform:translateY(-2px)}
.btn:hover:before{transform:translateX(100%)}

/* Link Hover Effects */
a{position:relative}

.nav-menu a:hover{color:var(--text);text-decoration:none}
.nav-menu a:active{transform:scale(0.98) !important}

.footer-nav a:hover,
.info-card a:hover{position:relative;text-decoration:none}

.footer-nav a:before,
.info-card a:before{
	content:'';
	position:absolute;
	bottom:-2px;
	left:0;
	width:0;
	height:2px;
	background:var(--accent);
	transition:width var(--trans);
}

.footer-nav a:hover:before,
.info-card a:hover:before{
	width:100%;
}

/* Form Input Enhancements */
.form-input{
	position:relative;
}

.form-input:focus{
	border-color:var(--accent);
	background:rgba(255,255,255,0.7);
	box-shadow:0 0 0 3px rgba(140,140,140,0.1) !important;
}

.form-input::selection{
	background-color:rgba(140,140,140,0.2);
	color:var(--text);
}

/* Select Enhanced Styling */
select.form-input{
	appearance:none;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%232463f0' d='M6 9L1 4h10z'/%3E%3C/svg%3E");
	background-repeat:no-repeat;
	background-position:right 12px center;
	padding-right:32px;
}

/* Card Enhanced Hover */
.card:hover{
	z-index:10;
}

.team-card:hover .team-image{
	animation:float 2s ease-in-out infinite;
}

/* Service Card Glow Effect */
.card-front:hover{
	animation:glow-subtle 0.6s ease-in-out;
}

@keyframes glow-subtle{
	0%,100%{filter:drop-shadow(0 0 8px rgba(140,140,140,0))}
	50%{filter:drop-shadow(0 0 16px rgba(140,140,140,0.3))}
}

/* Services / cards */
.services{padding:80px 20px;position:relative;z-index:1;background:transparent}
.services .section-title{font-size:clamp(24px,4vw,36px);color:var(--text);margin-bottom:12px}
.services .section-sub{color:var(--muted);margin-bottom:40px;font-size:clamp(14px,1.8vw,18px)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;perspective:1000px}
.card{position:relative;height:480px;cursor:pointer;animation:slideInCard .6s cubic-bezier(.4,0,.2,1) calc(var(--delay)*0.1s) both}
.card-front{position:absolute;inset:0;background:linear-gradient(135deg,rgba(140,140,140,0.08),rgba(120,120,120,0.04));border:1px solid rgba(140,140,140,0.12);padding:28px;border-radius:16px;display:flex;flex-direction:column;justify-content:space-between;transition:all var(--trans);box-shadow:0 8px 24px rgba(2,6,23,0.12),inset 0 1px 0 rgba(255,255,255,0.1);overflow:hidden}

/* Card image container and overlay */
.card-image-container{height:220px;border-top-left-radius:16px;border-top-right-radius:16px;overflow:hidden;position:relative;width:calc(100% + 56px);margin:-28px -28px 12px -28px}
.card-image-container img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s var(--trans)}
.card-image-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,0.5),rgba(0,0,0,0));pointer-events:none;transition:opacity .3s var(--trans)}
.card:hover .card-image-container img{transform:scale(1.05)}

.card:hover .card-front{transform:rotateY(8deg) rotateX(-6deg) translateZ(0);box-shadow:0 0 32px rgba(140,140,140,0.24),0 20px 48px rgba(2,6,23,0.18),inset 0 1px 0 rgba(255,255,255,0.15)}
.card-icon{font-size:clamp(32px,5vw,48px);color:var(--accent);margin-bottom:16px;transition:transform var(--trans),text-shadow var(--trans)}
.card:hover .card-icon{transform:scale(1.12) translateY(-4px);text-shadow:0 0 20px rgba(140,140,140,0.35)}
.card h3{font-size:clamp(18px,3vw,22px);color:var(--text);margin-bottom:12px;transition:color var(--trans)}
.card:hover h3{color:var(--accent)}
.card p{color:var(--muted-2);font-size:clamp(13px,1.6vw,16px);line-height:1.6;transition:color var(--trans)}
.card:hover p{color:var(--muted)}
.card:before{content:"";position:absolute;inset:0;border-radius:16px;background:linear-gradient(135deg,rgba(140,140,140,0.0),rgba(140,140,140,0.08));opacity:0;transition:opacity var(--trans);pointer-events:none}
.card:hover:before{opacity:1}

@keyframes slideInCard{
	from{opacity:0;transform:translateY(32px)}
	to{opacity:1;transform:translateY(0)}
}

/* Market Sectors */
.market-sectors{padding:80px 20px;position:relative;z-index:1;background:transparent}
.market-sectors .section-title{font-size:clamp(24px,4vw,36px);color:var(--text);margin-bottom:48px;text-align:center}

/* Three-Column Grid */
.sectors-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}

/* Sector Cards - Professional High-End Look */
.sector-card{
  background:#ffffff;
  border-top:3px solid var(--accent);
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 8px 24px rgba(0,0,0,0.05);
  transition:all 0.35s cubic-bezier(0.4,0,0.2,1);
  display:flex;
  flex-direction:column;
  cursor:pointer;
  position:relative;
}

/* Card Image - Grayscale by Default */
.sector-card .sector-image{
  width:100%;
  height:250px;
  background-size:cover;
  background-position:center;
  filter:grayscale(100%);
  transition:filter 0.35s cubic-bezier(0.4,0,0.2,1), transform 0.35s cubic-bezier(0.4,0,0.2,1);
  border-radius:12px 12px 0 0;
}

/* Card Content */
.sector-card .sector-content{
  padding:28px 24px;
  flex:1;
  display:flex;
  flex-direction:column;
  gap:14px;
}

.sector-title{
  font-size:18px;
  font-weight:700;
  color:var(--accent);
  margin:0;
  line-height:1.3;
  letter-spacing:0.2px;
}

.sector-hook{
  font-size:14px;
  font-weight:600;
  color:#0b1720;
  margin:0;
  line-height:1.4;
}

.sector-body{
  font-size:14px;
  color:#5a6b7f;
  line-height:1.7;
  margin:0;
}

.sector-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.sector-list li{
  font-size:13px;
  color:#5a6b7f;
  line-height:1.5;
  padding-left:18px;
  position:relative;
  transition:transform 0.35s cubic-bezier(0.4,0,0.2,1);
}

.sector-list li::before{
  content:'▸';
  position:absolute;
  left:0;
  color:var(--accent);
  font-weight:bold;
}

/* Hover State - Lift & Full Color with Enhanced Effects */
.sector-card:hover{
  transform:translateY(-10px);
  box-shadow:0 24px 64px rgba(139,58,58,0.25), 0 0 40px rgba(139,58,58,0.15);
}

.sector-card:hover .sector-image{
  filter:grayscale(0%);
  transform:scale(1.1);
}

.sector-card:hover .sector-list li{
  transform:translateX(5px);
}

/* Responsive adjustments for Market Sectors */
@media (max-width:1024px){
  .sectors-grid{grid-template-columns:repeat(2,1fr);gap:28px}
}

@media (max-width:768px){
  .market-sectors{padding:60px 20px}
  .sectors-grid{grid-template-columns:1fr;gap:24px}
  
  .sector-card .sector-image{height:160px}
  .sector-card .sector-content{padding:20px 18px}
  .sector-title{font-size:16px}
  .sector-body{font-size:13px}
  .sector-list li{font-size:12px;padding-left:16px}
}

/* Back to Top Button */
.back-to-top{
  position:fixed;
  bottom:30px;
  right:30px;
  width:50px;
  height:50px;
  background:var(--accent);
  color:#ffffff;
  border:none;
  border-radius:50%;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:20px;
  opacity:0;
  visibility:hidden;
  transition:opacity 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
  z-index:1000;
  box-shadow:0 4px 12px rgba(139,58,58,0.2);
}

.back-to-top.show{
  opacity:1;
  visibility:visible;
}

.back-to-top:hover{
  transform:translateY(-4px);
  box-shadow:0 8px 24px rgba(139,58,58,0.35);
  background:var(--accent-2);
}

.back-to-top:active{
  transform:translateY(-2px);
}

/* Responsive Back to Top */
@media (max-width:640px){
  .back-to-top{
    bottom:20px;
    right:20px;
    width:44px;
    height:44px;
    font-size:18px;
  }
}

/* About */
.about{padding:100px 20px;position:relative;z-index:1;background:transparent;}
.about-intro{text-align:center;margin-bottom:80px;max-width:800px;margin-left:auto;margin-right:auto}
.about-mission{font-size:clamp(18px,2.2vw,22px);color:var(--muted);line-height:1.8;margin-top:20px}

/* Stats Banner */
.stats-banner{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:30px;margin-bottom:80px;padding:40px 20px;background:linear-gradient(135deg,rgba(140,140,140,0.06),rgba(120,120,120,0.03));border-radius:20px;border:1px solid rgba(140,140,140,0.1)}
.stat-card{text-align:center}
.stat-number{font-size:clamp(36px,8vw,60px);font-weight:800;background:linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.stat-label{color:var(--muted);font-size:14px;margin-top:8px;text-transform:uppercase;letter-spacing:0.5px}

/* About Grid */
.about-grid{display:grid;grid-template-columns:1fr 320px;gap:48px;align-items:center;margin-bottom:80px}
.about-copy h3{font-size:28px;color:var(--text);margin-bottom:16px}
.about-copy p{color:var(--muted);margin-bottom:16px;line-height:1.8}
.about-list{color:var(--muted);list-style:none;margin-bottom:0}
.about-list li{margin-bottom:12px;display:flex;align-items:center;gap:10px}
.about-list li:before{content:'✓';color:var(--accent);font-weight:bold}
.visual-placeholder{width:100%;height:300px;background:linear-gradient(135deg,rgba(140,140,140,0.08),rgba(120,120,120,0.04));border-radius:16px;border:1px solid rgba(140,140,140,0.12);overflow:hidden}
.visual-placeholder img{width:100%;height:100%;object-fit:cover;display:block}

/* Team Section */
.team-section{margin-bottom:60px}
.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;margin-top:40px}
.team-card{background:linear-gradient(135deg,rgba(140,140,140,0.04),transparent);border:1px solid rgba(140,140,140,0.1);padding:32px 24px;border-radius:16px;text-align:center;transition:all var(--trans);cursor:pointer;animation:slideUp .6s cubic-bezier(.4,0,.2,1) calc(var(--delay)*0.1s) both}
.team-card:hover{transform:translateY(-8px);border-color:rgba(140,140,140,0.24);box-shadow:0 20px 60px rgba(140,140,140,0.1)}
.team-image{width:80px;height:80px;margin:0 auto 20px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:flex;align-items:center;justify-content:center;font-size:40px;color:white;transition:transform var(--trans)}
.team-card:hover .team-image{transform:scale(1.1)}
.team-card h4{font-size:18px;color:var(--text);margin-bottom:6px}
.team-title{font-size:13px;color:var(--accent);font-weight:600;text-transform:uppercase;margin-bottom:12px}
.team-bio{color:var(--muted);font-size:14px;line-height:1.6}

@keyframes slideUp{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}

/* Partners Section */
.partners-section{
	padding:60px 0;
	background:#ffffff;
	overflow:hidden;
	scroll-margin-top:90px;
}

.partners-wrapper{
	max-width:1200px;
	margin:0 auto;
	padding:0 20px;
}

.partners-section .section-title{
	text-align:center;
	margin-bottom:48px;
	color:var(--text);
}

.partners-marquee-container{
	width:100%;
	overflow:hidden;
	position:relative;
}

.partners-marquee{
	display:flex;
	gap:50px;
	width:max-content;
	padding:20px 0;
	animation:marqueeScroll 30s linear infinite;
	align-items:center;
}

.partner-logo{
	height:75px;
	width:auto;
	min-width:150px;
	object-fit:contain;
	flex-shrink:0;
	display:block;
}

@keyframes marqueeScroll{
	0%{
		transform:translateX(0);
	}
	100%{
		transform:translateX(calc(-50% - 25px));
	}
}

/* Responsive adjustments */
@media (max-width:1024px){
	.partners-marquee{gap68px;min-width:136px}
}

@media (max-width:768px){
	.partners-section{padding:40px 0}
	.partners-marquee{gap:35px;padding:20px 0}
	.partner-logo{height:60px;min-width:120px}
}

@media (max-width:480px){
	.partners-section{padding:32px 0}
	.partners-wrapper{padding:0 16px}
	.partners-marquee{gap:25px;padding:15px 0}
	.partner-logo{height:50px;min-width:100px	100%{transform:translateX(calc(-50% - 17.5px))}
	}
}

@media (max-width:480px){
	.partners-section{padding:32px 0}
	.partners-wrapper{padding:0 16px}
	.partners-marquee{gap:25px;padding:20px 0}
	.partner-logo{height:60px;min-width:120px}
	@keyframes marqueeScroll{
		0%{transform:translateX(0)}
		100%{transform:translateX(calc(-50% - 12.5px))}
	}
}


/* Contact */
.contact{padding:100px 20px;position:relative;z-index:1;background:transparent}
.contact-flex{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;margin-top:48px}

/* Contact Form */
.contact-form-wrapper{background:linear-gradient(135deg,rgba(255,255,255,0.8),rgba(255,255,255,0.5));border:2px solid var(--accent);padding:40px;border-radius:20px;backdrop-filter:blur(8px);box-shadow:0 12px 40px rgba(139,58,58,0.15)}
.contact-form{display:flex;flex-direction:column;gap:24px}
.form-group{position:relative;margin-bottom:8px}
.form-input{width:100%;padding:16px 14px;background:rgba(255,255,255,0.85);border:2px solid rgba(139,58,58,0.3);border-radius:10px;font-family:inherit;font-size:15px;color:var(--text);transition:all var(--trans);outline:none}
.form-input::placeholder{color:var(--muted-2);opacity:0.7}
.form-input:focus{border-color:var(--accent);background:rgba(255,255,255,0.95);box-shadow:0 0 0 3px rgba(139,58,58,0.15)}
.form-input:-webkit-autofill,.form-input:-webkit-autofill:hover,.form-input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 30px rgba(255,255,255,0.7) inset !important;-webkit-text-fill-color:var(--text) !important}
.form-group.active input.form-input ~ .form-label,.form-group.focused input.form-input ~ .form-label{top:-8px;font-size:12px;color:var(--accent);font-weight:600;opacity:0}
.form-label{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:14px;color:var(--muted-2);font-weight:600;pointer-events:none;transition:all var(--trans);background:linear-gradient(135deg,rgba(255,255,255,0.8),rgba(255,255,255,0.5));padding:0 6px;opacity:1}
.form-group.active .form-label,.form-group.focused .form-label{top:-8px;font-size:12px;color:var(--accent);font-weight:600;opacity:0}
.form-error{display:block;font-size:12px;color:var(--danger);margin-top:4px;opacity:0;transition:opacity var(--trans)}
.form-group.error .form-input{border-color:var(--danger);box-shadow:0 0 0 3px rgba(239,68,68,0.1)}
.form-group.error .form-error{opacity:1}

/* Form Submit Button */
.form-submit{position:relative;overflow:hidden;min-height:48px;margin-top:12px;align-self:center;width:auto}
.form-submit.loading{pointer-events:none;opacity:0.8}
.form-submit.loading .btn-text{opacity:0}
.btn-spinner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0}
.form-submit.loading .btn-spinner{opacity:1;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* Form Status Messages */
.form-status{margin-top:12px;opacity:0;max-height:0;overflow:hidden;transition:all var(--trans)}
.form-status.show{opacity:1;max-height:100px}
.alert{padding:14px 16px;border-radius:10px;font-size:14px;animation:slideIn .4s cubic-bezier(.4,0,.2,1)}
.alert-success{background:rgba(6,182,164,0.1);border:1px solid rgba(6,182,164,0.2);color:#0a7c6a}
.alert-error{background:rgba(239,68,68,0.1);border:1px solid rgba(239,68,68,0.2);color:#991b1b}
@keyframes slideIn{from{transform:translateY(-16px);opacity:0}to{transform:translateY(0);opacity:1}}

/* Contact Info Cards */
.contact-sidebar{display:flex;flex-direction:column;justify-content:center;min-height:100%}
.contact-info-cards{display:flex;flex-direction:column;gap:32px;height:100%}
.info-card{background:linear-gradient(135deg,rgba(140,140,140,0.08),rgba(120,120,120,0.04));border:1px solid rgba(140,140,140,0.12);padding:24px;border-radius:14px;transition:all var(--trans);animation:slideInCard .6s cubic-bezier(.4,0,.2,1) calc(var(--delay)*0.1s) both}
.info-card:hover{transform:translateX(8px);border-color:rgba(36,99,240,0.24);box-shadow:0 12px 32px rgba(36,99,240,0.12)}
.info-icon{font-size:24px;color:var(--accent);margin-bottom:12px}
.info-card h4{font-size:16px;color:var(--text);margin-bottom:8px;font-weight:600}
.info-card p{font-size:14px;color:var(--muted);margin:4px 0}
.info-card a{color:var(--accent);text-decoration:none;transition:opacity var(--trans)}
.info-card a:hover{opacity:0.8;text-decoration:underline}
.text-small{font-size:12px !important}


/* Footer */
.site-footer{background:linear-gradient(180deg,#4a4a4a,#2a2a2a);border-top:1px solid rgba(255,255,255,0.02)}

.footer-top{padding:60px 20px 40px}
.footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1.2fr;gap:40px;align-items:start}
.footer-brand{margin-bottom:0}
.footer-logo{height:60px;margin-bottom:12px}
.footer-tag{color:white;margin:8px 0;font-size:14px}
.footer-desc{color:white;font-size:13px;line-height:1.6;margin-top:8px}

.footer-nav h5,.footer-contact h5,.footer-newsletter h5{font-size:14px;color:white;margin-bottom:16px;text-transform:uppercase;letter-spacing:0.5px;font-weight:600}
.footer-nav ul{list-style:none}
.footer-nav li{margin-bottom:10px}
.footer-nav a{color:white;text-decoration:none;transition:color var(--trans),transform var(--trans);display:inline-block}
.footer-nav a:hover{color:var(--accent);transform:translateX(4px)}

.footer-contact p{color:white;margin-bottom:12px;font-size:14px}
.footer-contact a{color:white;text-decoration:none;transition:color var(--trans);display:inline-flex;gap:8px;align-items:center}
.footer-contact a:hover{color:var(--accent)}

/* Newsletter Form */
.newsletter-form{width:100%}
.newsletter-input-group{display:flex;gap:8px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.3);border-radius:10px;padding:4px;transition:all var(--trans)}
.newsletter-input-group:focus-within{border-color:var(--accent);background:rgba(255,255,255,0.1);box-shadow:0 0 0 3px rgba(139,58,58,0.2)}
.newsletter-input-group input{flex:1;background:transparent;border:none;padding:12px 14px;color:white;outline:none;font-size:14px}
.newsletter-input-group input::placeholder{color:rgba(255,255,255,0.6)}
.newsletter-input-group button{background:transparent;border:none;color:var(--accent);cursor:pointer;padding:0 12px;font-size:16px;transition:all var(--trans)}
.newsletter-input-group button:hover{color:white;transform:translateX(2px)}
.newsletter-status{font-size:12px;margin-top:8px}

/* Footer Bottom */
.footer-bottom{border-top:1px solid rgba(255,255,255,0.05);padding:24px 20px}
.footer-bottom-content{display:flex;justify-content:space-between;align-items:center;gap:24px}
.legal{flex:1;color:white;font-size:12px}
.legal-links{list-style:none;display:flex;gap:16px;margin-top:8px}
.legal-links a{color:white;text-decoration:none;transition:color var(--trans);font-size:12px}
.legal-links a:hover{color:var(--accent)}

/* Footer Socials */
.footer-socials{display:flex;gap:12px}
.social-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,0.1);color:white;transition:all var(--trans);text-decoration:none;position:relative;overflow:hidden;font-size:18px}
.social-icon:before{content:'';position:absolute;inset:0;background:var(--accent);border-radius:50%;transform:scale(0);transition:transform var(--trans);z-index:-1}
.social-icon:hover{color:white;transform:translateY(-4px);box-shadow:0 8px 24px rgba(139,58,58,0.4)}
.social-icon:hover:before{transform:scale(1)}
.social-icon:active{transform:translateY(-2px)}

/* Back to Top Button */
.back-to-top{position:fixed;bottom:30px;right:30px;width:48px;height:48px;border-radius:50%;background:var(--accent);color:white;border:none;cursor:pointer;font-size:18px;transition:all var(--trans);opacity:0;visibility:hidden;pointer-events:none;display:flex;align-items:center;justify-content:center;z-index:999;box-shadow:0 8px 24px rgba(36,99,240,0.3);position:relative;overflow:hidden}
.back-to-top:before{content:'';position:absolute;inset:0;background:radial-gradient(circle,white,transparent);opacity:0;transition:opacity var(--trans)}
.back-to-top.show{opacity:1;visibility:visible;pointer-events:auto;animation:float 3s ease-in-out infinite}
.back-to-top:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(36,99,240,0.4)}
.back-to-top:hover:before{opacity:0.1}
.back-to-top:active{transform:translateY(0);box-shadow:0 4px 16px rgba(36,99,240,0.2)}

/* Newsletter Button Enhancement */
.newsletter-input-group button{position:relative;overflow:hidden}
.newsletter-input-group button:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.3),transparent);transform:translateX(-100%);transition:transform 0.6s ease}
.newsletter-input-group button:hover:before{transform:translateX(100%)}

@media (max-width:1200px){
  .footer-grid{grid-template-columns:1fr 1fr;gap:30px}
  .footer-bottom-content{flex-direction:column;text-align:center}
  .back-to-top{bottom:20px;right:20px}
}

@media (max-width:768px){
  .contact-flex{grid-template-columns:1fr}
  .stats-banner{gap:16px;padding:24px 16px}
  .timeline:before{left:24px}
  .timeline-item{margin-bottom:32px}
  .timeline-dot{left:24px}
  .timeline-content{padding-left:60px;padding-right:0}
  .footer-grid{grid-template-columns:1fr;gap:20px}
  .back-to-top{width:40px;height:40px;font-size:14px}
}

@media (max-width:640px){
  .about-grid{grid-template-columns:1fr;gap:32px}
  .team-grid{grid-template-columns:1fr}
  .contact-form-wrapper{padding:24px 16px}
}

/* Utility */
.fade-in{animation:fadeIn .9s var(--trans) both}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* Responsive */
@media (max-width:1200px){
	.cards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}
	.footer-grid{grid-template-columns:1fr 1fr;gap:30px}
}

@media (max-width:1000px){
	.cards{grid-template-columns:repeat(2,1fr)}
	.hero-inner{flex-direction:column;gap:32px}
	.hero-media{min-height:300px}
}

@media (max-width:880px){
	.cards,.contact-flex{grid-template-columns:1fr}
}

@media (max-width:768px){
	.card{height:auto;min-height:280px}
	.card-front{padding:20px}
	.services{padding:60px 18px}
	.contact-flex{grid-template-columns:1fr}
	.stats-banner{gap:16px;padding:24px 16px}
	.timeline:before{left:24px}
	.timeline-item{margin-bottom:32px}
	.timeline-dot{left:24px}
	.timeline-content{padding-left:60px;padding-right:0}
	.footer-grid{grid-template-columns:1fr;gap:20px}
	.back-to-top{width:40px;height:40px;font-size:14px;bottom:20px;right:20px}
}

@media (max-width:640px){
	.main-nav ul{overflow-x:auto;gap:12px;padding:8px}
	.hero-inner{flex-direction:column;gap:24px;padding-top:40px}
	.hero-copy{max-width:100%}
	.hero-title{font-size:clamp(28px,7vw,42px)}
	.hero-sub{font-size:clamp(14px,2vw,18px)}
	.hero-media{min-height:240px;margin-top:12px}
	.btn{padding:10px 18px;font-size:14px}
	.cards{grid-template-columns:1fr}
	.logo-img{height:72px}
	.branding{padding:12px 16px}
	.card{height:300px}
	.card-icon{font-size:clamp(28px,5vw,40px)}
	.about-grid{grid-template-columns:1fr;gap:32px}
	.team-grid{grid-template-columns:1fr}
	.contact-form-wrapper{padding:24px 16px}
	.contact-info-cards{gap:24px}
	.footer-bottom-content{flex-direction:column;text-align:center}
}

/* Touch Device Styles */
@media (hover:none) and (pointer:coarse){
	.site-header .nav-link::after,
	.card:hover,
	.social-icon:hover,
	.btn:hover,
	.team-card:hover,
	.info-card:hover,
	.footer-nav a:hover,
	.back-to-top:hover{
		/* Disable hover-triggered transforms on touch devices */
		transform:none !important;
		box-shadow:var(--shadow-glow) !important;
	}

	button, [role="button"], .btn, .card, .social-icon, .social-link{
		min-height:48px;
		min-width:48px;
		padding:12px 16px;
	}

	/* Ensure sufficient touch target size */
	.social-icon{
		width:48px;
		height:48px;
		font-size:20px;
	}

	/* Touch active state styling */
	.touch-active{
		opacity:0.85 !important;
	}
}

/* Body class for touch devices */
body.touch-device .nav-link::after{
	display:none;
}

body.touch-device .site-header .nav-link:active{
	color:var(--accent);
}

body.touch-device .card,
body.touch-device .social-icon,
body.touch-device .btn,
body.touch-device .team-card,
body.touch-device .info-card{
	transition:opacity var(--trans);
}

body.touch-device .back-to-top{
	bottom:20px;
	right:20px;
}

/* Safe area insets for notched devices */
@supports (padding: max(0px)) {
	body{
		padding-left:env(safe-area-inset-left);
		padding-right:env(safe-area-inset-right);
	}
	
	.site-header{
		padding-top:env(safe-area-inset-top);
	}
	
	.back-to-top{
		bottom:calc(30px + env(safe-area-inset-bottom));
		right:calc(30px + env(safe-area-inset-right));
	}
}

/* Lazy loading image blur-up effect */
img.lazy-load{
	filter:blur(5px);
	opacity:0.8;
	transition:filter 0.3s var(--trans), opacity 0.3s var(--trans);
}

img.lazy-load[src]:not([src=""]) {
	filter:blur(0);
	opacity:1;
}

/* Respect user preference for reduced motion */
@media (prefers-reduced-motion:reduce){
	*{animation-duration:0s !important;transition-duration:0s !important}
}


