/* ============================================
   易迈科技 (e.Mai Tech) — Static Site Styles
   ============================================ */

/* ---- Reset & Base ---- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Noto Sans SC","Inter",sans-serif;background:#03045E;color:#fff;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{text-decoration:none;color:inherit;transition:color .3s}
img{max-width:100%;display:block}
button{cursor:pointer;font-family:inherit}
input,textarea,select{font-family:inherit}

/* ---- Google Fonts ---- */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700;800;900&family=Space+Grotesk:wght@700&family=JetBrains+Mono:wght@400;500&family=Inter:wght@400;500&display=swap');

/* ---- CSS Variables ---- */
:root{
  --klein:#002FA7;
  --klein-light:#1A4FD4;
  --klein-glow:rgba(0,47,167,.2);
  --navy-deep:#03045E;
  --navy-surface:#0A0E27;
  --navy-elevated:#11163A;
  --text-primary:#FFFFFF;
  --text-secondary:#8B9BB4;
  --text-muted:#5C6789;
  --border-subtle:#1A2047;
  --success:#10B981;
  --warning:#F59E0B;
  --error:#EF4444;
  --font-heading:"Noto Sans SC",sans-serif;
  --font-space:"Space Grotesk",sans-serif;
  --font-mono:"JetBrains Mono",monospace;
}

/* ---- Container ---- */
.container{width:100%;max-width:1280px;margin:0 auto;padding:0 24px}
@media(min-width:1024px){.container{padding:0 48px}}
@media(min-width:1280px){.container{padding:0 80px}}

/* ---- Grid ---- */
.grid{display:grid;gap:24px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1023px){.grid-lg-2{grid-template-columns:repeat(2,1fr)}.grid-lg-1{grid-template-columns:1fr}}
@media(max-width:767px){.grid-md-1{grid-template-columns:1fr}.grid-md-2{grid-template-columns:repeat(2,1fr)}}

/* ---- Flex ---- */
.flex{display:flex}
.flex-col{flex-direction:column}
.items-center{align-items:center}
.justify-center{justify-content:center}
.justify-between{justify-content:space-between}
.flex-wrap{flex-wrap:wrap}
.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-6{gap:24px}.gap-8{gap:32px}.gap-12{gap:48px}
.flex-1{flex:1}

/* ---- Typography ---- */
.text-klein{color:var(--klein)}
.text-white{color:#fff}
.text-secondary{color:var(--text-secondary)}
.text-muted{color:var(--text-muted)}
.text-success{color:var(--success)}
.text-error{color:var(--error)}

.font-heading{font-family:var(--font-heading)}
.font-space{font-family:var(--font-space)}
.font-mono{font-family:var(--font-mono)}

.font-normal{font-weight:400}
.font-medium{font-weight:500}
.font-semibold{font-weight:600}
.font-bold{font-weight:700}
.font-extrabold{font-weight:800}
.font-black{font-weight:900}

.text-xs{font-size:12px}
.text-sm{font-size:14px}
.text-base{font-size:16px}
.text-lg{font-size:18px}
.text-xl{font-size:20px}
.text-2xl{font-size:24px}
.text-3xl{font-size:clamp(28px,3vw,48px)}
.text-4xl{font-size:clamp(32px,3.5vw,56px)}
.text-5xl{font-size:clamp(36px,4vw,64px)}
.text-hero{font-size:clamp(40px,5vw,72px)}
.text-hero-lg{font-size:clamp(48px,6vw,96px)}

.leading-tight{line-height:1.15}
.leading-snug{line-height:1.3}
.leading-normal{line-height:1.5}
.leading-relaxed{line-height:1.7}

.tracking-tight{letter-spacing:-0.02em}
.tracking-wide{letter-spacing:0.02em}
.tracking-wider{letter-spacing:0.04em}
.tracking-widest{letter-spacing:0.08em}

.text-center{text-align:center}

/* ---- Spacing ---- */
.py-4{padding-top:16px;padding-bottom:16px}
.py-6{padding-top:24px;padding-bottom:24px}
.py-8{padding-top:32px;padding-bottom:32px}
.py-12{padding-top:48px;padding-bottom:48px}
.py-16{padding-top:64px;padding-bottom:64px}
.py-20{padding-top:80px;padding-bottom:80px}
.py-section{padding-top:120px;padding-bottom:120px}

.px-6{padding-left:24px;padding-right:24px}
.p-6{padding:24px}
.p-8{padding:32px}
.p-10{padding:40px}

.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}
.mt-5{margin-top:20px}.mt-6{margin-top:24px}.mt-8{margin-top:32px}
.mt-9{margin-top:36px}.mt-10{margin-top:40px}.mt-16{margin-top:64px}
.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.mb-8{margin-bottom:32px}
.mb-10{margin-bottom:40px}.mb-12{margin-bottom:48px}.mb-16{margin-bottom:64px}
.mx-auto{margin-left:auto;margin-right:auto}

/* ---- Backgrounds ---- */
.bg-navy-deep{background:var(--navy-deep)}
.bg-navy-surface{background:var(--navy-surface)}
.bg-navy-elevated{background:var(--navy-elevated)}
.bg-klein{background:var(--klein)}

/* ---- Borders ---- */
.border-subtle{border:1px solid var(--border-subtle)}
.border-t-subtle{border-top:1px solid var(--border-subtle)}
.border-b-subtle{border-bottom:1px solid var(--border-subtle)}
.rounded{border-radius:4px}
.rounded-lg{border-radius:8px}
.rounded-xl{border-radius:12px}
.rounded-full{border-radius:9999px}

/* ---- Components ---- */
/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:16px 36px;border-radius:4px;font-size:16px;font-weight:600;letter-spacing:0.04em;border:none;cursor:pointer;transition:all .3s}
.btn-primary{background:var(--klein);color:#fff}
.btn-primary:hover{background:var(--klein-light);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,47,167,.25)}
.btn-outline{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4)}
.btn-outline:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.8)}
.btn-white{background:#fff;color:var(--klein)}
.btn-white:hover{background:#F5F7FA}
.btn-lg{padding:16px 36px;font-size:16px}

/* Cards */
.card{background:var(--navy-surface);border:1px solid var(--border-subtle);border-radius:8px;overflow:hidden;transition:all .4s}
.card:hover{border-color:rgba(0,47,167,.5);box-shadow:0 0 40px rgba(0,47,167,.13);transform:translateY(-6px)}
.card-feature{background:var(--navy-elevated);border-radius:12px;padding:40px;border:1px solid var(--border-subtle);transition:all .4s}
.card-feature:hover{box-shadow:0 0 30px rgba(0,47,167,.08)}
.card-elevated{background:var(--navy-elevated);border:1px solid var(--border-subtle);border-radius:12px;padding:32px}

/* Section label */
.section-label{font-family:var(--font-mono);font-size:12px;font-weight:500;color:var(--klein);text-transform:uppercase;letter-spacing:0.08em}
.section-labelabout{font-family:var(--font-mono);font-size:12px;font-weight:500;color:#fff;text-transform:uppercase;letter-spacing:0.08em}

/* Icon box */
.icon-box{width:56px;height:56px;border-radius:12px;background:rgba(0,47,167,.13);display:flex;align-items:center;justify-content:center}
.icon-box svg{width:28px;height:28px;color:var(--klein)}

/* Tag */
.tag{display:inline-block;padding:4px 12px;border-radius:9999px;font-size:12px;font-weight:500;background:rgba(0,47,167,.13);color:var(--klein)}

/* Form inputs */
.form-input{width:100%;background:var(--navy-surface);border:1px solid var(--border-subtle);border-radius:6px;padding:14px 18px;font-size:16px;color:#fff;outline:none;transition:all .3s}
.form-input::placeholder{color:var(--text-muted)}
.form-input:focus{border-color:var(--klein);box-shadow:0 0 0 3px rgba(0,47,167,.15)}
.form-input.error{border-color:var(--error)}
textarea.form-input{resize:none}
select.form-input{appearance:none;cursor:pointer}

/* Spec table */
.spec-table{border:1px solid var(--border-subtle);border-radius:12px;overflow:hidden}
.spec-row{display:flex;border-bottom:1px solid var(--border-subtle)}
.spec-row:last-child{border-bottom:none}
.spec-row:nth-child(even){background:var(--navy-elevated)}
.spec-label{width:40%;padding:16px 24px;font-size:15px;font-weight:600;color:var(--text-secondary)}
.spec-value{flex:1;padding:16px 24px;font-family:var(--font-mono);font-size:15px;color:#fff}
@media(max-width:639px){.spec-label,.spec-value{width:100%}.spec-row{flex-direction:column}}

/* ---- Animations ---- */
@keyframes fadeInUp{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeInLeft{from{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:translateX(0)}}
@keyframes fadeInRight{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes scaleIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes spinSlow{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}
@keyframes pulseDot{0%{transform:scale(1);opacity:1}100%{transform:scale(2);opacity:0}}
@keyframes bounceChevron{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
@keyframes ctaPulse{0%,100%{box-shadow:0 0 0 0 rgba(0,47,167,.4)}50%{box-shadow:0 0 0 12px rgba(0,47,167,0)}}
@keyframes travel-orb{0%{left:0}100%{left:100%}}

/* Product card hover accent line */
.product-card:hover .accent-line{transform:scaleX(1)!important}
.product-card:hover{transform:translateY(-6px);border-color:rgba(0,47,167,.5);box-shadow:0 0 40px rgba(0,47,167,.13)}
.product-card:hover img{transform:scale(1.05)}

.animate-fadeInUp{animation:fadeInUp .8s cubic-bezier(.4,0,.2,1) forwards}
.animate-fadeIn{animation:fadeIn .8s ease forwards}
.animate-scaleIn{animation:scaleIn .8s cubic-bezier(.4,0,.2,1) forwards}
.animate-float{animation:float 4s ease-in-out infinite}
.animate-spin-slow{animation:spinSlow 20s linear infinite}
.animate-pulse-dot::before{content:'';position:absolute;inset:0;border-radius:50%;background:var(--klein);animation:pulseDot 1.5s ease-out infinite}
.animate-bounce-chevron{animation:bounceChevron 2s ease-in-out infinite}
.animate-cta-pulse{animation:ctaPulse 2s ease-in-out infinite}

/* Stagger delays */
.delay-100{animation-delay:.1s}
.delay-200{animation-delay:.2s}
.delay-300{animation-delay:.3s}
.delay-400{animation-delay:.4s}
.delay-500{animation-delay:.5s}
.delay-600{animation-delay:.6s}
.delay-700{animation-delay:.7s}
.delay-800{animation-delay:.8s}

/* Scroll reveal base */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.4,0,.2,1)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-left{opacity:0;transform:translateX(-40px);transition:opacity .8s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.4,0,.2,1)}
.reveal-left.visible{opacity:1;transform:translateX(0)}
.reveal-right{opacity:0;transform:translateX(40px);transition:opacity .8s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.4,0,.2,1)}
.reveal-right.visible{opacity:1;transform:translateX(0)}
.reveal-scale{opacity:0;transform:scale(.95);transition:opacity .8s cubic-bezier(.4,0,.2,1),transform .8s cubic-bezier(.4,0,.2,1)}
.reveal-scale.visible{opacity:1;transform:scale(1)}

/* Stagger children */
.stagger-children .reveal-child{opacity:0;transform:translateY(30px);transition:opacity .6s cubic-bezier(.4,0,.2,1),transform .6s cubic-bezier(.4,0,.2,1)}
.stagger-children.visible .reveal-child{opacity:1;transform:translateY(0)}
.stagger-children.visible .reveal-child:nth-child(1){transition-delay:.0s}
.stagger-children.visible .reveal-child:nth-child(2){transition-delay:.08s}
.stagger-children.visible .reveal-child:nth-child(3){transition-delay:.16s}
.stagger-children.visible .reveal-child:nth-child(4){transition-delay:.24s}
.stagger-children.visible .reveal-child:nth-child(5){transition-delay:.32s}
.stagger-children.visible .reveal-child:nth-child(6){transition-delay:.40s}

/* ---- Navigation ---- */
.navbar{position:fixed;top:0;left:0;right:0;height:72px;z-index:50;transition:background .3s,backdrop-filter .3s}
.navbar.scrolled{background:rgba(3,4,94,.9);backdrop-filter:blur(16px)}
.navbar-inner{height:100%;display:flex;align-items:center;justify-content:space-between;max-width:1280px;margin:0 auto;padding:0 24px}
@media(min-width:1024px){.navbar-inner{padding:0 48px}}

.nav-logo img{height:40px;width:auto}
.nav-links{display:flex;align-items:center;gap:32px}
.nav-links a{font-size:15px;font-weight:500;color:var(--text-secondary);position:relative}
.nav-links a:hover{color:#fff}
.nav-links a::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:2px;background:var(--klein);transition:width .3s}
.nav-links a:hover::after{width:100%}
.nav-links a.active{color:#fff}

/* Dropdown */
.dropdown{position:relative}
.dropdown-menu{position:absolute;top:100%;left:-16px;min-width:200px;background:var(--navy-elevated);border:1px solid var(--border-subtle);border-radius:8px;padding:8px 0;opacity:0;visibility:hidden;transform:translateY(-8px);transition:all .3s;box-shadow:0 16px 48px rgba(0,0,0,.3)}
.dropdown:hover .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}
.dropdown-menu a{display:block;padding:10px 20px;font-size:14px;color:var(--text-secondary)}
.dropdown-menu a:hover{background:rgba(0,47,167,.1);color:#fff}

/* Mobile menu */
.mobile-menu-btn{display:none;background:none;border:none;color:#fff;padding:8px}
.mobile-menu{position:fixed;inset:0;background:var(--navy-deep);z-index:100;padding:80px 24px 24px;transform:translateX(100%);transition:transform .4s cubic-bezier(.4,0,.2,1)}
.mobile-menu.open{transform:translateX(0)}
.mobile-menu-close{position:absolute;top:20px;right:20px;background:none;border:none;color:#fff;padding:8px}
.mobile-menu a{display:block;padding:16px 0;font-size:20px;font-weight:600;color:var(--text-secondary);border-bottom:1px solid var(--border-subtle)}
.mobile-menu a:hover{color:#fff}

@media(max-width:1023px){
  .nav-links{display:none}
  .mobile-menu-btn{display:block}
}

/* ---- Footer ---- */
.footer{background:var(--navy-deep);border-top:1px solid var(--border-subtle);padding:80px 0 40px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px}
@media(max-width:1023px){.footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:639px){.footer-grid{grid-template-columns:1fr}}
.footer-link{color:var(--text-secondary);font-size:14px;display:block;margin-top:12px;transition:color .3s}
.footer-link:hover{color:#fff}
.footer-bottom{margin-top:48px;padding-top:24px;border-top:1px solid var(--border-subtle);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
@media(max-width:639px){.footer-bottom{flex-direction:column;text-align:center}}

/* ---- Hero ---- */
.hero{position:relative;min-height:100dvh;display:flex;align-items:center;justify-content:center;overflow:hidden}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0}
.hero-particles{position:absolute;inset:0;z-index:1}
.hero-overlay{position:absolute;inset:0;z-index:1;pointer-events:none}
.hero-content{position:relative;z-index:2;max-width:900px;padding:0 24px;text-align:center;padding-top:72px}

/* ---- Product Card ---- */
.product-card .card-img{aspect-ratio:4/3;overflow:hidden}
.product-card .card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.product-card:hover .card-img img{transform:scale(1.05)}
.product-card .accent-line{height:3px;background:var(--klein);transform:scaleX(0);transform-origin:left;transition:transform .4s}
.product-card:hover .accent-line{transform:scaleX(1)}

/* ---- Section spacing ---- */
@media(max-width:1023px){
  .py-section{padding-top:80px;padding-bottom:80px}
  .hide-lg{display:none}
}
@media(max-width:767px){
  .text-hero{font-size:clamp(32px,10vw,48px)}
  .text-hero-lg{font-size:clamp(36px,12vw,56px)}
}

/* Responsive grids for homepage */
.product-grid{grid-template-columns:repeat(3,1fr)}
.feature-grid{grid-template-columns:repeat(2,1fr)}
.about-grid{grid-template-columns:45% 55%}
.data-grid{grid-template-columns:55% 45%}
@media(max-width:1023px){
  .product-grid{grid-template-columns:repeat(2,1fr)}
  .feature-grid{grid-template-columns:1fr}
  .about-grid{grid-template-columns:1fr}
  .data-grid{grid-template-columns:1fr}
}
@media(max-width:767px){
  .product-grid{grid-template-columns:1fr}
}

/* Utility */
.relative{position:relative}
.absolute{position:absolute}
.inset-0{top:0;right:0;bottom:0;left:0}
.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}
.overflow-hidden{overflow:hidden}
.pointer-events-none{pointer-events:none}
.w-full{width:100%}.h-full{height:100%}
.max-w-
{max-width:560px}
.max-w-lg{max-width:640px}
.max-w-xl{max-width:800px}
.max-w-2xl{max-width:900px}
.aspect-4-3{aspect-ratio:4/3}
.aspect-16-10{aspect-ratio:16/10}
.object-cover{object-fit:cover}
.object-contain{object-fit:contain}
.opacity-0{opacity:0}
.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.list-none{list-style:none}
.cursor-pointer{cursor:pointer}
.space-y-4 > * + *{margin-top:16px}
.space-y-6 > * + *{margin-top:24px}

/* Icon SVG colors */
.svg-klein{color:var(--klein)}
.svg-white{color:#fff}
.svg-secondary{color:var(--text-secondary)}
.svg-muted{color:var(--text-muted)}

/* Decorative */
.corner-tl{position:absolute;top:16px;left:16px;width:60px;height:60px;border-top:3px solid var(--klein);border-left:3px solid var(--klein);border-top-left-radius:8px}
.corner-br{position:absolute;bottom:16px;right:16px;width:60px;height:60px;border-bottom:3px solid var(--klein);border-right:3px solid var(--klein);border-bottom-right-radius:8px}

/* Glow */
.glow-klein{box-shadow:0 0 80px rgba(0,47,167,.13)}
.glow-klein-sm{box-shadow:0 0 30px rgba(0,47,167,.08)}
.glow-klein-lg{box-shadow:0 0 40px rgba(0,47,167,.13)}
