/* ===============================
   GLOBAL RESET
================================ */
*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Poppins',sans-serif;
}

html, body{
    width:100%;
    overflow-x:hidden;
    scroll-behavior:smooth;
}

body{
    background:#0b1a2b;
    color:#ffffff;
    animation: pageFade 0.8s ease-in-out;
}

@keyframes pageFade{
    from{opacity:0;}
    to{opacity:1;}
}

/* ===============================
   HEADER & LOGO
================================ */
.header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:10px 30px;
    position:fixed;
    width:100%;
    top:0;
    left:0;
    right:0;
    z-index:1000;
    transition:all 0.5s ease;
}

.header .logo img{
    height:100px;
    width:auto;
    transition:all 0.4s ease;
}

body.home .header{
    background:transparent;
}

body.home .header.scrolled{
    background:#0a1f44;
    box-shadow:0 4px 15px rgba(0,0,0,0.3);
}

body.home .header.scrolled .logo img{
    transform:scale(1.2);
}

/* ===============================
   NAVBAR LINKS & DROPDOWN
================================ */
.nav{
    display:flex;
    gap:25px;
}

.nav a{
    color:#fff;
    text-decoration:none;
    font-weight:500;
    padding:6px 10px;
    position:relative;
    transition:0.3s;
}

.nav a.active{
    background:#ffb300;
    color:#000;
    border-radius:6px;
}

.nav a:hover{
    color:#ffb300;
    transform:translateY(-2px);
}

.nav a::after{
    content:'';
    position:absolute;
    left:0;
    bottom:-4px;
    width:0;
    height:2px;
    background:#fbbf24;
    transition:0.3s;
}

.nav a:hover::after{
    width:100%;
}

/* Dropdown menu */
.nav-item{
    position:relative;
}

.nav-item > a{
    display:flex;
    align-items:center;
    justify-content:space-between;
    cursor:pointer;
}

.nav-item .dropdown{
    display:none;
    position:absolute;
    top:100%;
    left:0;
    background:#0a1f44;
    min-width:200px;
    border-radius:8px;
    box-shadow:0 4px 15px rgba(0,0,0,0.3);
    z-index:1000;
    flex-direction:column;
    opacity:0;
    transform:translateY(15px);
    transition:0.4s ease;
}

.nav-item .dropdown a{
    padding:10px 15px;
    color:#fff;
    text-decoration:none;
    font-weight:500;
    white-space:nowrap;
}

.nav-item .dropdown a:hover{
    background:#ffb300;
    color:#000;
}

.nav-item:hover .dropdown{
    display:flex;
    opacity:1;
    transform:translateY(0);
}

/* Mobile dropdown toggle */
@media(max-width:768px){
    .nav-item .dropdown{
        position:relative;
        top:0;
        background:#132c4a;
        border-radius:8px;
        display:none;
    }
    .nav-item.active .dropdown{
        display:flex;
    }
}

/* ===============================
   HAMBURGER MENU
================================ */
.hamburger{
    display:none;
    flex-direction:column;
    cursor:pointer;
    gap:4px;
}

.hamburger span{
    width:28px;
    height:3px;
    background:#fff;
    transition:0.4s;
}

.hamburger.active span:nth-child(1){
    transform:rotate(45deg) translate(5px,5px);
}

.hamburger.active span:nth-child(2){
    opacity:0;
}

.hamburger.active span:nth-child(3){
    transform:rotate(-45deg) translate(5px,-5px);
}

/* Mobile nav */
@media(max-width:768px){
    .nav{
        position:absolute;
        top:75px;
        right:0;
        background:#0a1f44;
        width:220px;
        flex-direction:column;
        padding:20px;
        display:none;
        border-radius:0 0 8px 8px;
        transform:translateX(100%);
        transition:0.4s ease;
    }

    .nav.active{
        display:flex;
        transform:translateX(0);
    }

    .hamburger{
        display:flex;
    }
}

/* ===============================
   HERO SECTION
================================ */
.hero{
    height:90vh;
    background-size:cover;
    background-position:center;
}

.overlay{
    height:100%;
    background:rgba(0,0,0,.55);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:20px;
}

.overlay h2{
    font-size:46px;
    margin-bottom:15px;
    opacity:0;
    transform:translateY(-60px);
    animation:heroTop 1s ease forwards;
}

.overlay p{
    font-size:18px;
    margin-bottom:25px;
    opacity:0;
    transform:translateY(60px);
    animation:heroBottom 1s ease forwards;
    animation-delay:0.4s;
}

.btn{
    padding:14px 36px;
    background:#ffb300;
    color:#000;
    text-decoration:none;
    border-radius:30px;
    font-weight:600;
    position:relative;
    overflow:hidden;
    transition:0.4s;
    animation:fadeBtn 1s ease forwards;
    animation-delay:0.8s;
    opacity:0;
}

@keyframes heroTop{
    to{opacity:1; transform:translateY(0);}
}
@keyframes heroBottom{
    to{opacity:1; transform:translateY(0);}
}
@keyframes fadeBtn{
    to{opacity:1;}
}

.btn::before{
    content:'';
    position:absolute;
    top:0;
    left:-100%;
    width:100%;
    height:100%;
    background:linear-gradient(120deg,transparent,rgba(255,255,255,0.5),transparent);
    transition:0.5s;
}

.btn:hover::before{
    left:100%;
}

/* ===============================
   FEATURES / BOXES
================================ */
.features{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:30px;
    padding:70px 20px;
    background:#0e223a;
}

.box{
    background:#132c4a;
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 0 25px rgba(255,179,0,.15);
    transition:0.4s ease;
}

.box img{
    width:100%;
    height:200px;
    object-fit:cover;
}

.box h3{
    padding:15px;
}

.box p{
    padding:0 15px 20px;
    font-size:14px;
    opacity:.85;
}

.box:hover{
    transform:translateY(-12px);
    box-shadow:0 15px 40px rgba(255,179,0,0.3);
}

/* ===============================
   SECTIONS: ABOUT / SERVICES / CONTACT
================================ */
.section{
    max-width:1200px;
    margin:120px auto 60px auto;
    padding:0 20px;
    line-height:1.8;
}

.section h2{
    font-size:36px;
    margin-bottom:20px;
    color:#ffb300;
}

.section p{
    font-size:16px;
    opacity:.9;
}

/* ===============================
   CONTACT / APPLY FORM
================================ */
.contact-hero{
    background:#0e223a;
    padding:100px 20px 60px;
    text-align:center;
}

.contact-section{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:30px;
    padding:60px 20px;
}

.contact-box{
    background:#132c4a;
    padding:30px;
    border-radius:18px;
    box-shadow:0 0 25px rgba(255,179,0,.12);
    position:relative;
    transition:0.4s ease;
}

.contact-box:hover{
    transform:scale(1.02);
    box-shadow:0 10px 35px rgba(255,179,0,0.25);
}

.contact-box h3{
    color:#ffb300;
    margin-bottom:20px;
}

.contact-box p{
    margin-bottom:15px;
    line-height:1.6;
}

.contact-box a{
    color:#ffb300;
    text-decoration:none;
}

/* ===============================
   FORM INPUTS WITH FLOATING LABEL
================================ */
.input-wrapper{
    position:relative;
    margin-bottom:20px;
}

.input-wrapper input,
.input-wrapper textarea,
.input-wrapper select{
    width:100%;
    padding:14px 12px;
    border:2px solid #ffb300;
    border-radius:8px;
    outline:none;
    font-size:15px;
    background:#fff;
    color:#000;
    transition:0.3s;
}

.input-wrapper textarea{
    resize:none;
}

.input-wrapper select{
    appearance:none;
    -webkit-appearance:none;
    -moz-appearance:none;
}

.input-wrapper label{
    position:absolute;
    left:12px;
    top:14px;
    padding:0 4px;
    color:#666;
    font-size:15px;
    pointer-events:none;
    transition:0.3s;
    background:#fff;
}

.input-wrapper input:focus,
.input-wrapper textarea:focus,
.input-wrapper select:focus,
.input-wrapper input.filled,
.input-wrapper textarea.filled,
.input-wrapper select.filled{
    border-color:#ffb300;
    background:#fefefe;
}

.input-wrapper input:focus + label,
.input-wrapper textarea:focus + label,
.input-wrapper select:focus + label,
.input-wrapper input.filled + label,
.input-wrapper textarea.filled + label,
.input-wrapper select.filled + label{
    top:-8px;
    left:8px;
    font-size:12px;
    color:#ffb300;
}

input.valid-number{
    background:#e6ffe6;
    border-color:#28a745;
}

.contact-box button{
    width:100%;
    padding:14px;
    background:#ffb300;
    color:#000;
    border:none;
    border-radius:30px;
    font-weight:600;
    cursor:pointer;
    transition: all 0.3s ease;
}

.contact-box button:hover{
    background:#e6a600;
}

/* ===============================
   FOOTER
================================ */
footer{
    background:#081321;
    text-align:center;
    padding:20px;
    font-size:14px;
    opacity:.8;
}

.footer{
    background:#081321;
    color:#fff;
    padding:50px 20px 20px 20px;
    font-family:'Poppins',sans-serif;
    font-size:14px;
}

.footer-container{
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    max-width:1200px;
    margin:0 auto;
    gap:30px;
}

.footer h3, .footer h4{
    color:#ffb300;
    margin-bottom:15px;
}

.footer a{
    color:#fff;
    text-decoration:none;
    transition: all 0.3s ease;
}

.footer a:hover{
    color:#ffb300;
}

.footer-company p, .footer-links ul li, .footer-social a{
    margin-bottom:10px;
}

.footer-links ul{
    list-style:none;
    padding:0;
}

.footer-links ul li i, .footer-social a i, .footer-company p i{
    margin-right:8px;
    color:#ffb300;
}

.footer-social a{
    display:inline-block;
}

.footer-bottom{
    text-align:center;
    padding-top:20px;
    border-top:1px solid #ffb300;
    margin-top:20px;
    font-size:13px;
    opacity:0.8;
}

/* Responsive footer */
@media(max-width:768px){
    .footer-container{
        flex-direction:column;
        gap:20px;
    }

    .footer-links, .footer-social, .footer-company{
        text-align:center;
    }
}

/* ===============================
   SCROLL REVEAL ANIMATIONS
================================ */
.reveal-bottom{
    opacity:0;
    transform:translateY(60px);
    transition:0.8s ease;
}

.reveal-left{
    opacity:0;
    transform:translateX(-60px);
    transition:0.8s ease;
}

.reveal-right{
    opacity:0;
    transform:translateX(60px);
    transition:0.8s ease;
}

.reveal-zoom{
    opacity:0;
    transform:scale(0.8);
    transition:0.8s ease;
}

.reveal-bottom.active,
.reveal-left.active,
.reveal-right.active,
.reveal-zoom.active{
    opacity:1;
    transform:translate(0,0) scale(1);
}
/* ===============================
   CUSTOM FILE UPLOAD DESIGN
================================ */
.file-upload {
    position: relative;
    margin-bottom: 20px;
}

.file-upload input[type="file"] {
    display: none;
}

.file-upload label {
    display: block;
    background: #132c4a;
    color: #fff;
    border: 2px dashed #ffb300;
    padding: 14px;
    border-radius: 10px;
    cursor: pointer;
    text-align: center;
    transition: 0.3s ease;
}

.file-upload label:hover {
    background: #0e223a;
    border-color: #fbbf24;
}

.file-name {
    margin-top: 8px;
    font-size: 13px;
    color: #ffb300;
    text-align: center;
}
/* ============================= */
/* APPLY FORM RESPONSIVE DESIGN */
/* ============================= */

.contact-section{
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 50px 20px;
}

.contact-box{
  width: 100%;
  max-width: 750px;
  background: #fff;
  padding: 35px;
  border-radius: 15px;
  box-shadow: 0 10px 40px rgba(0,0,0,0.08);
}

.input-wrapper input,
.input-wrapper textarea,
.input-wrapper select{
  width: 100%;
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 14px;
  font-family: 'Poppins', sans-serif;
  transition: 0.3s;
  background: #f9f9f9;
}

.input-wrapper input:focus,
.input-wrapper textarea:focus,
.input-wrapper select:focus{
  border-color: #ff9800;
  background: #fff;
  box-shadow: 0 0 8px rgba(255,152,0,0.2);
  outline: none;
}

button{
  width: 100%;
  background: linear-gradient(45deg,#ff9800,#ffb300);
  color: #fff;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  padding: 15px;
  transition: 0.3s;
}

button:hover{
  transform: translateY(-2px);
  box-shadow: 0 6px 15px rgba(255,152,0,0.4);
}

/* MOBILE FIX */
@media (max-width: 768px){

  .contact-section{
    padding: 20px 15px;
  }

  .contact-box{
    padding: 20px;
    border-radius: 12px;
  }

  .contact-box h3{
    font-size: 18px;
    margin-bottom: 15px;
  }

  .input-wrapper{
    margin-bottom: 18px;
  }

  .input-wrapper input,
  .input-wrapper textarea,
  .input-wrapper select{
    font-size: 14px;
    padding: 12px;
  }

  .file-upload{
    padding: 12px;
  }

  .file-upload label{
    font-size: 14px;
  }

  button{
    font-size: 15px;
    padding: 14px;
  }
}
/* ===============================
   CONTACT PAGE RESPONSIVE (Copy from Apply Page)
================================ */
.contact-section{
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 50px 20px;
}

.contact-box{
  width: 100%;
  max-width: 750px;
  background: #ffffff;
  color: #000;
  padding: 35px;
  border-radius: 15px;
  box-shadow: 0 10px 40px rgba(0,0,0,0.08);
}

.input-wrapper input,
.input-wrapper textarea,
.input-wrapper select{
  width: 100%;
  border: 1px solid #ddd;
  border-radius: 8px;
  padding: 14px;
  font-family: 'Poppins', sans-serif;
  transition: 0.3s;
  background: #f9f9f9;
}

.input-wrapper input:focus,
.input-wrapper textarea:focus,
.input-wrapper select:focus{
  border-color: #ff9800;
  background: #fff;
  box-shadow: 0 0 8px rgba(255,152,0,0.2);
  outline: none;
}

button{
  width: 100%;
  background: linear-gradient(45deg,#ff9800,#ffb300);
  color: #fff;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  padding: 15px;
  transition: 0.3s;
}

button:hover{
  transform: translateY(-2px);
  box-shadow: 0 6px 15px rgba(255,152,0,0.4);
}

/* MOBILE FIX */
@media (max-width: 768px){

  .contact-section{
    padding: 20px 15px;
  }

  .contact-box{
    padding: 20px;
    border-radius: 12px;
  }

  .contact-box h3{
    font-size: 18px;
    margin-bottom: 15px;
  }

  .input-wrapper{
    margin-bottom: 18px;
  }

  .input-wrapper input,
  .input-wrapper textarea,
  .input-wrapper select{
    font-size: 14px;
    padding: 12px;
  }

  .file-upload{
    padding: 12px;
  }

  .file-upload label{
    font-size: 14px;
  }

  button{
    font-size: 15px;
    padding: 14px;
  }
}