@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');

*{margin:0;padding:0;box-sizing:border-box;font-family:'Inter','Segoe UI',sans-serif;}

body{background:#fff;color:#1a1a1a;line-height:1.6;}

h1,h2,h3,h4,h5,h6{letter-spacing:-0.5px;}
h2{font-size:2.5rem;font-weight:700;margin-bottom:1rem;color:#0b3d91;}
.section-intro{
  font-size:1.1rem;
  color:#666;
  margin-bottom:2.5rem;
  font-weight:400;
  letter-spacing:0.3px;
  max-width:600px;
  margin-left:auto;
  margin-right:auto;
}
h3{font-size:1.3rem;font-weight:600;color:#1a1a1a;margin-bottom:0.8rem;}

:focus{outline:2px solid #0b3d91;outline-offset:2px;}

/* Header Navigation */
header nav{
  display:flex;justify-content:space-between;align-items:center;
  padding:1.2rem 5%;background:linear-gradient(135deg,#0b3d91 0%,#1a5bc5 100%);
  color:white;box-shadow:0 2px 12px rgba(11,61,145,0.15);
  position:sticky;top:0;z-index:100;
}

nav .nav-links{list-style:none;display:flex;gap:2.5rem;}
nav .nav-links li{display:inline-block;}
nav .nav-links a,
#lang-switch{
  color:white;text-decoration:none;font-weight:500;cursor:pointer;
  transition:all 0.3s ease;font-size:0.95rem;letter-spacing:0.3px;
  background:rgba(255,255,255,0.15);
  padding:0.4rem 0.8rem;border-radius:20px;
  display:flex;align-items:center;gap:0.3rem;
}

#lang-switch .lang-icon{font-size:1.1rem;}
#lang-switch .lang-text{font-size:0.95rem;}
nav .nav-links a:hover,#lang-switch:hover{opacity:0.85;transform:translateY(-2px);}

.logo{
  font-size:1.7rem;font-weight:700;letter-spacing:-1px;
  background:linear-gradient(135deg,#fff 0%,#f0f4f8 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  background-clip:text;
}

/* Buttons */
.btn{
  display:inline-block;padding:1rem 2.2rem;
  background:linear-gradient(135deg,#0b3d91 0%,#1a5bc5 100%);
  color:white;border:none;border-radius:8px;text-decoration:none;
  cursor:pointer;transition:all 0.3s ease;font-weight:600;letter-spacing:0.3px;
  box-shadow:0 4px 15px rgba(11,61,145,0.2);
  position:relative;overflow:hidden;font-size:0.95rem;
}

.btn::before{
  content:'';
  position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(135deg,transparent,rgba(255,255,255,0.2));
  transition:left 0.5s ease;
}

.btn:hover{
  transform:translateY(-3px);box-shadow:0 8px 25px rgba(11,61,145,0.3);
}

.btn:hover::before{left:100%;}
.btn:focus{outline:2px solid #fff;outline-offset:2px;}

/* Hero Section */
.hero-carousel{
  position:relative;height:80vh;overflow:hidden;
  /* slide backgrounds will appear above animated gradient/video */
}
.hero-bg-video{
  position:absolute;top:0;left:0;width:100%;height:100%;
  object-fit:cover;z-index:-3;
  /* keep muted video under gradient layers */
}
.hero-carousel::before{
  content:'';
  position:absolute;top:0;left:0;width:100%;height:100%;
  background: linear-gradient(120deg,#0b3d91,#1a5bc5,#0b3d91);
  background-size:300% 300%;
  animation:gradientBG 15s ease infinite;
  filter:blur(30px) contrast(0.8);
  z-index:-2;
}
.hero-carousel::after{
  content:'';
  position:absolute;top:0;left:0;width:100%;height:100%;
  background:rgba(255,255,255,0.05);
  pointer-events:none;
  z-index:-1;
}

@keyframes gradientBG {
  0%{background-position:0% 50%;}
  50%{background-position:100% 50%;}
  100%{background-position:0% 50%;}
}

.carousel-slide{
  position:absolute;width:100%;height:100%;top:0;left:100%;
  background-size:cover;background-position:center;
  background-color:rgba(0,0,0,0.4); /* semi-transparent to let gradient show through */
  transition:opacity 1s ease-in-out,left 0.8s;
  opacity:0;
}

.carousel-slide.active{left:0;opacity:1;}

.carousel-text{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  color:white;text-align:center;
  background:rgba(0,0,0,0.3);backdrop-filter:blur(10px);
  padding:3rem 2rem;border-radius:12px;
  border:1px solid rgba(255,255,255,0.1);
  max-width:600px;box-shadow:0 8px 32px rgba(0,0,0,0.2);
}

.carousel-text h1{
  font-size:2.8rem;font-weight:700;margin-bottom:1rem;
  letter-spacing:-1px;line-height:1.2;
}

.carousel-text p{
  font-size:1.1rem;margin-bottom:1.5rem;
  font-weight:300;letter-spacing:0.2px;opacity:0.95;
}

.carousel-controls{
  position:absolute;width:100%;top:50%;display:flex;justify-content:space-between;
  padding:0 2rem;color:white;font-size:2.5rem;cursor:pointer;
  z-index:10;
}

.carousel-controls span{
  transition:all 0.3s ease;opacity:0.6;
  background:rgba(0,0,0,0.3);padding:0.5rem 1rem;border-radius:8px;
}

.carousel-controls span:hover{opacity:1;transform:scale(1.1);}

/* About Section */
#about{
  padding:6rem 5%;display:flex;justify-content:center;
  background:linear-gradient(to bottom,#f8fafb 0%,#ffffff 100%);
}

.about-content{
  display:flex;flex-wrap:wrap;align-items:center;gap:3rem;max-width:1200px;
}

.about-text{
  flex:1;min-width:350px;padding:1rem;
}

.about-text p{
  font-size:1rem;margin-bottom:1.2rem;line-height:1.8;
  color:#333;font-weight:300;
}

.about-text strong{font-weight:600;color:#0b3d91;}

.about-image{flex:1;min-width:300px;padding:1rem;}

.about-image img{
  width:100%;border-radius:12px;
  box-shadow:0 10px 40px rgba(11,61,145,0.15);
}

/* Features Section */
#features{
  padding:6rem 5%;text-align:center;
  background:linear-gradient(135deg,#f8fafb 0%,#e8eef5 100%);
}

.feature-cards{
  display:flex;justify-content:space-around;flex-wrap:wrap;
  margin-top:3rem;gap:2rem;max-width:1200px;margin-left:auto;margin-right:auto;
}

/* Services Section */
#services{
  padding:6rem 5%;text-align:center;
  background:#fff;
}

#services h2{margin-bottom:1.5rem;}

.service-cards{
  display:flex;justify-content:space-around;flex-wrap:wrap;
  margin-top:3rem;gap:2rem;max-width:1200px;margin-left:auto;margin-right:auto;
}

/* Card Styles */
.card{
  background:#fff;padding:2.5rem;margin:0;
  border-radius:12px;transition:all 0.3s ease;cursor:pointer;
  width:300px;display:flex;flex-direction:column;align-items:center;
  box-shadow:0 2px 8px rgba(0,0,0,0.08);
  border:1px solid #e8eef5;
}

.card img{
  width:70px;height:70px;margin-bottom:1.5rem;
  filter:drop-shadow(0 2px 4px rgba(11,61,145,0.1));
}

.card h3{margin-bottom:1rem;}

.card p{
  font-size:0.95rem;color:#666;line-height:1.7;
  font-weight:300;text-align:center;
}

.card:hover{
  transform:translateY(-8px);
  box-shadow:0 12px 30px rgba(11,61,145,0.15);
  border-color:#0b3d91;
}

/* Recognition Section */
#recognition{
  padding:6rem 5%;text-align:center;
  background:linear-gradient(to bottom,#f8fafb 0%,#ffffff 100%);
}

.recognition-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:2rem;margin-top:3rem;max-width:1200px;margin-left:auto;margin-right:auto;
}

.recognition-item{
  background:#fff;padding:2.5rem;text-align:center;
  border-radius:16px;transition:all 0.3s ease;
  box-shadow:0 4px 16px rgba(0,0,0,0.08);
  border:1px solid #e8eef5;
}

.recognition-item:hover{
  transform:translateY(-8px);
  box-shadow:0 12px 32px rgba(11,61,145,0.15);
  border-color:#0b3d91;
}

.recognition-icon{
  font-size:3rem;margin-bottom:1.5rem;
  display:block;
}

.recognition-item h3{
  font-size:1.2rem;font-weight:600;color:#0b3d91;
  margin-bottom:1rem;
}

.recognition-item p{
  font-size:0.95rem;color:#666;line-height:1.6;
  font-weight:400;
}

#results{padding:6rem 5%;text-align:center;background:linear-gradient(135deg,#f0f7ff 0%,#e8eef5 100%)}
#results h2{margin-bottom:2rem;color:#0b3d91}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2rem;margin:3rem 0;max-width:1200px;margin-left:auto;margin-right:auto}
.stat{
  background:linear-gradient(135deg,#fff 0%,#f8fafb 100%);
  padding:2.5rem 1.5rem;
  border-radius:16px;
  box-shadow:0 8px 24px rgba(11,61,145,0.1);
  border:2px solid rgba(11,61,145,0.08);
  transition:all 0.4s cubic-bezier(0.34,1.56,0.64,1);
  position:relative;overflow:hidden;
}
.stat-icon{
  display:block;
  font-size:2.5rem;
  margin-bottom:1rem;
  animation:float 3s ease-in-out infinite;
}
.stat::before{
  content:'';
  position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(11,61,145,0.05),transparent);
  transition:left 0.5s ease;
}
.stat:hover{
  transform:translateY(-12px);
  box-shadow:0 16px 40px rgba(11,61,145,0.18);
  border-color:rgba(11,61,145,0.2);
}
.stat:hover::before{left:100%}
.stat strong{
  display:block;
  font-size:2.8rem;
  font-weight:700;
  background:linear-gradient(135deg,#0b3d91 0%,#1a5bc5 100%);
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  margin-bottom:0.8rem;
  letter-spacing:-1px;
}
.stat span{
  display:block;
  font-size:0.95rem;
  color:#666;
  font-weight:500;
  letter-spacing:0.3px;
}

@keyframes float{
  0%,100%{transform:translateY(0px)}
  50%{transform:translateY(-10px)}
}

/* Partners */
#partners{padding:6rem 5%;text-align:center;background:#fff}
#partners h2{margin-bottom:1rem;color:#0b3d91}
.partners-subtitle{
  font-size:1rem;
  color:#666;
  margin-bottom:2rem;
  font-weight:400;
  letter-spacing:0.3px;
}
.partners-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:2rem;
  margin-top:2rem;
  max-width:1200px;
  margin-left:auto;
  margin-right:auto;
  perspective:1000px;
}
.partner-flip-card{
  height:180px;
  cursor:pointer;
}
.partner-flip-inner{
  position:relative;
  width:100%;
  height:100%;
  transition:transform 0.6s;
  transform-style:preserve-3d;
}
.partner-flip-card:hover .partner-flip-inner{
  transform:rotateY(180deg);
}
.partner-flip-front,
.partner-flip-back{
  position:absolute;
  width:100%;
  height:100%;
  backface-visibility:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  padding:1.5rem;
}
.partner-flip-front{
  background:linear-gradient(135deg,#f8fafb 0%,#fff 100%);
  border:2px solid #e8eef5;
  box-shadow:0 4px 16px rgba(0,0,0,0.08);
}
.partner-flip-front img{
  width:80px;
  height:80px;
  object-fit:contain;
  filter:drop-shadow(0 2px 8px rgba(11,61,145,0.1));
}
.partner-flip-back{
  background:linear-gradient(135deg,#0b3d91 0%,#1a5bc5 100%);
  color:white;
  flex-direction:column;
  gap:0.8rem;
  transform:rotateY(180deg);
  box-shadow:0 8px 24px rgba(11,61,145,0.2);
}
.partner-flip-back h4{
  margin:0;
  font-size:1.1rem;
  font-weight:700;
  letter-spacing:0.3px;
}
.partner-flip-back p{
  margin:0;
  font-size:0.85rem;
  font-weight:300;
  letter-spacing:0.2px;
  opacity:0.95;
}

/* Testimonials Section */
#testimonials{
  padding:6rem 5%;text-align:center;
  background:linear-gradient(135deg,#f8fafb 0%,#e8eef5 100%);
}

.testimonials-grid{
  display:flex;flex-wrap:wrap;justify-content:center;
  margin-top:3rem;gap:2rem;max-width:1200px;margin-left:auto;margin-right:auto;
}

.testimonial{
  background:#fff;padding:2rem;margin:0;
  border-radius:12px;max-width:300px;
  box-shadow:0 2px 8px rgba(0,0,0,0.08);
  border-left:4px solid #0b3d91;transition:all 0.3s ease;
}

.testimonial:hover{
  box-shadow:0 8px 20px rgba(11,61,145,0.15);
  transform:translateY(-4px);
}

.testimonial p{
  font-size:0.95rem;font-style:italic;color:#333;
  margin-bottom:1.2rem;line-height:1.8;font-weight:300;
}

.testimonial span{
  font-size:0.85rem;color:#0b3d91;font-weight:600;
  letter-spacing:0.3px;
}

/* CTA Section */
.cta-banner{
  padding:5rem 5%;text-align:center;
  background:linear-gradient(135deg,#0b3d91 0%,#1a5bc5 100%);
  color:white;
}

.cta-banner h2{color:white;margin-bottom:1.5rem;}

.cta-banner .btn{
  background:white;color:#0b3d91;
  box-shadow:0 4px 15px rgba(255,255,255,0.2);
}

.cta-banner .btn:hover{
  background:#f0f4f8;
  box-shadow:0 8px 25px rgba(255,255,255,0.3);
}

/* Contact Section */
#contact{
  padding:6rem 5%;text-align:center;
  background:linear-gradient(to bottom,#f8fafb 0%,#ffffff 100%);
}
#contact h2{color:#0b3d91;}

.contact-info .icon{margin-right:0.4rem;}

.contact-container{
  display:flex;flex-wrap:wrap;justify-content:space-around;
  margin-top:3rem;gap:3rem;max-width:1200px;margin-left:auto;margin-right:auto;
}

form{
  flex:1;min-width:300px;max-width:450px;
  display:flex;flex-direction:column;
  box-shadow:0 2px 12px rgba(0,0,0,0.08);
  padding:2rem;border-radius:12px;background:#f8fafb;
}

form input, form textarea{
  margin-bottom:1.2rem;padding:1rem;
  border:1px solid #e8eef5;border-radius:8px;
  font-family:'Inter',sans-serif;font-size:0.95rem;
  transition:all 0.3s ease;
}

form button{
  background:#0b3d91;
  color:white;
  width:100%;
  border:none;
  cursor:pointer;
  margin-top:0.5rem;
}

form input:focus, form textarea:focus{
  border-color:#0b3d91;background:#fff;
  box-shadow:0 0 0 3px rgba(11,61,145,0.1);
}

.contact-info{flex:1;min-width:250px;margin-top:0;text-align:left;}

.contact-info p{margin-bottom:1rem;font-size:0.95rem;color:#333;}

.contact-info a{color:#0b3d91;text-decoration:none;font-weight:600;}
.contact-info a:hover{text-decoration:underline;}

/* Footer */
footer{
  /* reverted to solid navy tone per user request */
  background:#0b3d91;
  color:white;text-align:center;padding:3rem 1rem;margin-top:0;
}

footer .footer-links{
  list-style:none;padding:0;margin-bottom:1.5rem;
  display:flex;justify-content:center;flex-wrap:wrap;gap:1.5rem;
}

footer .footer-links li{margin:0;}

footer .footer-links a{
  color:white;text-decoration:none;font-size:0.9rem;
  transition:all 0.3s ease;opacity:0.9;
}

footer .footer-links a:hover{opacity:1;text-decoration:underline;}

footer .social-icons{margin:1.5rem 0;}
footer .social-icons a{margin:0 0.8rem;display:inline-block;transition:transform 0.3s ease;}
footer .social-icons a:hover{transform:translateY(-3px);}
footer .social-icons img{width:28px;height:28px;filter:grayscale(100%) brightness(0);opacity:0.9;}

footer .newsletter{margin:1.5rem auto;max-width:450px;}
footer .newsletter p{margin-bottom:0.8rem;font-size:0.95rem;}
footer .newsletter form{display:flex;gap:0.5rem;background:transparent;padding:0;box-shadow:none;}
footer .newsletter input{margin-bottom:0;background:white;color:#333;border:none;}
footer .newsletter button{border-radius:0 8px 8px 0;margin:0;width:auto;}

footer p{font-size:0.85rem;opacity:0.9;margin-top:1.5rem;}

/* Scroll Reveal Animation */
.animate{opacity:0;transform:translateY(30px);transition:opacity 0.6s ease-out,transform 0.6s ease-out;}
.animate.visible{opacity:1;transform:translateY(0);}

/* Responsive Design */
@media(max-width:768px){
  h2{font-size:1.8rem;}
  nav .nav-links{gap:1rem;}
  .carousel-text{padding:2rem;max-width:90%;}
  .carousel-text h1{font-size:1.8rem;}
  .carousel-text p{font-size:0.95rem;}
  
  .about-content,.service-cards,.feature-cards,.portfolio-grid,.contact-container{
    flex-direction:column;align-items:center;
  }
  
  .card,.testimonial,.portfolio-item{width:100%;max-width:450px;}
  
  .contact-info{text-align:center;margin-top:2rem;}
  
  .stats-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}
  .stat{padding:2rem 1rem}
  .stat strong{font-size:2.2rem}
  .stat-icon{font-size:2rem}
  
  .partners-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1.5rem}
  .partner-flip-card{height:160px}
  .partner-flip-front img{width:70px;height:70px}
  .partner-flip-back h4{font-size:1rem}
  .partner-flip-back p{font-size:0.8rem}
  .partners-subtitle{font-size:0.9rem;margin-bottom:1.5rem}
}

@media(max-width:480px){
  header nav{padding:0.8rem 3%;}
  nav .nav-links{gap:0.8rem;font-size:0.85rem;}
  .carousel-text{padding:1.5rem;}
  .carousel-text h1{font-size:1.4rem;}
  .btn{padding:0.8rem 1.5rem;font-size:0.85rem;}
}
