/* =========================================================
   GALLERY PAGE
   ========================================================= */


/* ==================== HERO ==================== */

.gallery-hero {

    min-height: 430px;

    display: flex;

    align-items: center;
    position: relative;
    overflow: hidden;

    background:
        linear-gradient(
            90deg,
            rgba(11, 31, 58, 0.96),
            rgba(11, 31, 58, 0.76)
        ),
        url("images/hero.png");

    background-size: cover;

    background-position: center;

    color: white;

    padding: 100px 0 80px;
}



.gallery-hero .eyebrow {

    color: #d5cb8d;

}


.gallery-hero h1 {

    max-width: 800px;

    margin: 15px 0;

    font-size: clamp(44px, 6vw, 76px);

    line-height: 1.05;

    letter-spacing: -2px;

}


.gallery-hero p:last-child {

    max-width: 650px;

    color: #d6deea;

    font-size: 15px;

    line-height: 1.8;

    margin-top: 25px;

}




/* ==================== GALLERY SECTION ==================== */

.gallery-section {

    padding: 100px 0;

    background: #ffffff;

}


.gallery-heading {

    display: flex;

    align-items: end;

    justify-content: space-between;

    gap: 40px;

    margin-bottom: 50px;

}


.gallery-heading h2 {

    margin-top: 8px;

    color: #0b1f3a;

    font-size: clamp(36px, 4vw, 52px);

    line-height: 1.1;

}


.gallery-heading > p {

    max-width: 430px;

    color: #718096;

    font-size: 14px;

    line-height: 1.8;

}



/* ==================== GALLERY GRID ==================== */

.gallery-grid {

    display: grid;

    grid-template-columns: repeat(3, 1fr);

    grid-auto-rows: 250px;

    gap: 18px;

}



/* ==================== GALLERY ITEM ==================== */

.gallery-item {

    position: relative;

    overflow: hidden;

    border-radius: 16px;

    background: #e8edf3;

    cursor: pointer;

}


.gallery-item img {

    width: 100%;

    height: 100%;

    display: block;

    object-fit: cover;

    transition:
        transform 0.6s ease;

}


.gallery-item:hover img {

    transform: scale(1.08);

}



/* ==================== SPECIAL SIZES ==================== */

.gallery-large {

    grid-row: span 2;

}


.gallery-wide {

    grid-column: span 2;

}



/* ==================== OVERLAY ==================== */

.gallery-overlay {

    position: absolute;

    inset: 0;

    display: flex;

    flex-direction: column;

    justify-content: flex-end;

    padding: 25px;

    background:
        linear-gradient(
            transparent 35%,
            rgba(7, 20, 38, 0.9)
        );

    color: white;

    opacity: 0;

    transition:
        opacity 0.35s ease;

}


.gallery-item:hover .gallery-overlay {

    opacity: 1;

}


.gallery-overlay span {

    width: 35px;

    height: 35px;

    display: grid;

    place-items: center;

    margin-bottom: 12px;

    border-radius: 50%;

    background: #d5cb8d;

    color: #0b1f3a;

    font-size: 10px;

    font-weight: 800;

}


.gallery-overlay h3 {

    margin: 0 0 5px;

    font-size: 20px;

}


.gallery-overlay p {

    margin: 0;

    color: #d5deea;

    font-size: 12px;

}



/* ==================== CTA ==================== */

.gallery-cta {

    padding: 75px 0;

    background: #0b1f3a;

    color: white;

}


.gallery-cta-inner {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 40px;

}


.gallery-cta .eyebrow {

    color: #d5cb8d;

}


.gallery-cta h2 {

    max-width: 700px;

    margin: 10px 0 0;

    font-size: clamp(32px, 4vw, 50px);

    line-height: 1.15;

}



/* ==================== ACTIVE NAV ==================== */

.nav-links a.active {

    color: #0b1f3a;

}


.nav-links a.active::after {

    width: 100%;

}



/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 900px) {

    .gallery-heading {

        align-items: start;

        flex-direction: column;

        gap: 15px;

    }


    .gallery-heading > p {

        max-width: 650px;

    }


    .gallery-grid {

        grid-template-columns: repeat(2, 1fr);

    }


    .gallery-large {

        grid-row: span 1;

    }


    .gallery-wide {

        grid-column: span 2;

    }

}



/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

    .gallery-hero {

        min-height: 400px;

        padding: 80px 0 65px;

    }


    .gallery-hero h1 {

        font-size: 42px;

        letter-spacing: -1px;

    }


    .gallery-hero p:last-child {

        font-size: 13px;

    }


    .gallery-section {

        padding: 70px 0;

    }


    .gallery-heading h2 {

        font-size: 36px;

    }


    .gallery-grid {

        grid-template-columns: 1fr;

        grid-auto-rows: 250px;

        gap: 15px;

    }


    .gallery-large {

        grid-row: span 1;

    }


    .gallery-wide {

        grid-column: span 1;

    }


    .gallery-overlay {

        opacity: 1;

        padding: 20px;

    }


    .gallery-overlay h3 {

        font-size: 18px;

    }


    .gallery-cta {

        padding: 60px 0;

    }


    .gallery-cta-inner {

        display: block;

    }


    .gallery-cta .btn {

        display: inline-block;

        margin-top: 25px;

    }

}



/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 400px) {

    .gallery-hero h1 {

        font-size: 36px;

    }


    .gallery-section {

        padding: 55px 0;

    }


    .gallery-grid {

        grid-auto-rows: 220px;

    }

}
/* =========================================================
   PREMIUM PAGE MOTION
   ========================================================= */
:root { --motion-ease: cubic-bezier(.22,1,.36,1); }
.about-hero, .page-hero, .projects-hero, .gallery-hero, .contact-hero { position:relative; overflow:hidden; isolation:isolate; }
.about-hero::after, .page-hero::after, .projects-hero::after, .gallery-hero::after, .contact-hero::after { content:""; position:absolute; inset:-10%; z-index:-1; background:linear-gradient(120deg,transparent 20%,rgba(255,255,255,.10) 45%,transparent 65%); transform:translateX(-120%); animation:heroLightSweep 7s ease-in-out infinite; pointer-events:none; }
.about-hero .container, .page-hero-content, .projects-hero .container, .gallery-hero .container, .contact-hero .container { position:relative; z-index:2; }
.motion-reveal { opacity:0; transform:translateY(42px) scale(.985); transition:opacity .8s var(--motion-ease),transform .8s var(--motion-ease); will-change:opacity,transform; }
.motion-reveal.from-left { transform:translateX(-42px); }
.motion-reveal.from-right { transform:translateX(42px); }
.motion-reveal.zoom { transform:scale(.94); }
.motion-reveal.is-visible { opacity:1; transform:none; }
.motion-delay-1 { transition-delay:.08s; } .motion-delay-2 { transition-delay:.16s; } .motion-delay-3 { transition-delay:.24s; } .motion-delay-4 { transition-delay:.32s; }
@keyframes heroLightSweep { 0%,55%{transform:translateX(-120%)} 75%,100%{transform:translateX(120%)} }
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.motion-reveal{opacity:1!important;transform:none!important}}


/* =========================================================
   SHARED SITE POLISH — RESPONSIVE NAV / FOOTER / MOTION
   ========================================================= */

:root{
  --site-navy:#0b1f3a;
  --site-orange:#f97f51;
  --site-border:#e7ecf3;
  --site-ease:cubic-bezier(.22,1,.36,1);
}

html{scroll-behavior:smooth; overflow-x:hidden;}
body{overflow-x:hidden;}

/* Header */
.header{
  position:sticky !important;
  top:0;
  z-index:1000 !important;
  width:100%;
  background:rgba(255,255,255,.96) !important;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--site-border);
  box-shadow:0 5px 24px rgba(11,31,58,.05);
}
.header .nav{
  min-height:84px;
  position:relative;
}
.header .brand{
  display:flex;
  align-items:center;
  gap:11px;
  text-decoration:none;
  color:var(--site-navy);
  flex-shrink:0;
}
.header .logo-img{width:52px;height:52px;object-fit:contain;}
.header .brand strong{font-size:14px;letter-spacing:1.2px;white-space:nowrap;}
.header .nav-links{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:clamp(16px,2.4vw,34px);
}
.header .nav-links a{
  position:relative;
  color:#31435c;
  text-decoration:none;
  font-size:13px;
  font-weight:650;
  letter-spacing:.4px;
  transition:color .3s ease,transform .3s ease;
}
.header .nav-links a:hover{color:var(--site-orange);transform:translateY(-1px);}
.header .nav-links > a:not(.brochure-btn)::after,
.header .services-toggle::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-7px;
  width:0;
  height:2px;
  background:var(--site-orange);
  transform:translateX(-50%);
  transition:width .3s ease;
}
.header .nav-links > a:not(.brochure-btn):hover::after,
.header .nav-links > a.active::after,
.header .services-toggle:hover::after{width:100%;}

.brochure-btn{
  padding:10px 14px !important;
  border-radius:8px;
  background:var(--site-navy);
  color:#fff !important;
  transition:transform .3s ease,box-shadow .3s ease,background .3s ease !important;
}
.brochure-btn:hover{
  background:#17365f !important;
  color:#fff !important;
  transform:translateY(-2px) !important;
  box-shadow:0 10px 22px rgba(11,31,58,.18);
}
.nav-services{position:relative;}
.services-toggle span{font-size:12px;margin-left:2px;}
.services-dropdown{
  position:absolute !important;
  top:calc(100% + 18px) !important;
  left:50% !important;
  transform:translate(-50%,10px) !important;
  width:320px !important;
  display:flex !important;
  flex-direction:column;
  gap:2px;
  padding:12px !important;
  background:#fff !important;
  border:1px solid var(--site-border);
  border-radius:14px !important;
  box-shadow:0 20px 50px rgba(11,31,58,.15) !important;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .25s ease,transform .25s var(--site-ease),visibility .25s ease;
  z-index:1100;
}
.nav-services:hover .services-dropdown,
.nav-services:focus-within .services-dropdown,
.nav-services.open .services-dropdown{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translate(-50%,0) !important;
}
.services-dropdown a{
  padding:10px 12px !important;
  border-radius:9px;
  line-height:1.35;
}
.services-dropdown a:hover{
  background:#f5f8fc;
  transform:none !important;
}
.services-dropdown a::after{display:none !important;}

/* Hamburger */
.menu{
  display:none;
  width:44px;
  height:44px;
  padding:8px;
  border:1px solid var(--site-border);
  border-radius:10px;
  background:#fff;
  cursor:pointer;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
}
.menu span{
  display:block;
  width:21px;
  height:2px;
  border-radius:2px;
  background:var(--site-navy);
  transition:transform .3s ease,opacity .2s ease;
}
.menu.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu.is-open span:nth-child(2){opacity:0;}
.menu.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* Footer */
footer{
  position:relative !important;
  z-index:10 !important;
  background:#cbbd93 !important;
  color:#0f0141;
}
.footer-grid{
  display:grid !important;
  grid-template-columns:minmax(220px,1.2fr) minmax(150px,.7fr) minmax(260px,1.3fr) !important;
  gap:clamp(35px,6vw,90px) !important;
  padding:58px 0 !important;
}
.footer-brand{display:flex;align-items:center;gap:10px;color:#0f0141 !important;text-decoration:none;}
.footer-brand .logo-img2{width:58px;height:58px;object-fit:contain;}
.footer-grid h4{
  margin:0 0 14px;
  font-size:14px;
  color:#0f0141;
  letter-spacing:.4px;
}
.footer-grid p,.footer-grid a:not(.brand){
  display:block;
  margin:8px 0;
  font-size:12px;
  line-height:1.65;
  color:#351717;
  text-decoration:none;
}
.footer-grid a:not(.brand):hover{color:#0b1f3a;}
.footer-company > p{max-width:330px;margin-top:16px !important;}
.copyright{
  padding:15px 0 !important;
  background:#061222 !important;
  color:#aab4c3 !important;
  font-size:11px !important;
}
.contain{display:flex;align-items:center;justify-content:center;text-align:center;}

/* Site-wide page transition */
body{opacity:1;transition:opacity .35s ease;}
body.page-exit{opacity:0;}
@media (prefers-reduced-motion:reduce){body{transition:none;}}

/* Better interactive motion */
.btn,.brochure-btn,.card,.service-card,.project-card,.gallery-item,.info-card,.feature-card{
  transition:transform .45s var(--site-ease),box-shadow .45s var(--site-ease),background-color .3s ease,border-color .3s ease;
}
.btn:hover,.card:hover,.service-card:hover,.project-card:hover,.gallery-item:hover,.info-card:hover,.feature-card:hover{
  transform:translateY(-6px);
}

/* Mobile */
@media (max-width:800px){
  .header .nav{min-height:70px;padding-left:4%;padding-right:4%;}
  .header .logo-img{width:46px;height:46px;}
  .header .brand strong{font-size:12px;}
  .menu{display:flex;margin-left:auto;}
  .header .nav-links{
    position:absolute !important;
    top:calc(100% + 8px) !important;
    left:3% !important;
    right:3% !important;
    width:auto !important;
    max-height:calc(100vh - 90px);
    overflow-y:auto;
    display:flex !important;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:2px;
    padding:12px !important;
    background:rgba(255,255,255,.99);
    border:1px solid var(--site-border);
    border-radius:16px;
    box-shadow:0 20px 50px rgba(11,31,58,.16);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-10px);
    transition:opacity .25s ease,transform .25s var(--site-ease),visibility .25s ease;
  }
  .header .nav-links.open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none;
  }
  .header .nav-links > a,
  .header .services-toggle{
    display:block;
    width:100%;
    box-sizing:border-box;
    padding:13px 14px !important;
    border-radius:9px;
  }
  .header .nav-links > a:hover,
  .header .services-toggle:hover{background:#f5f8fc;transform:none !important;}
  .header .nav-links > a:not(.brochure-btn)::after,
  .header .services-toggle::after{display:none;}
  .brochure-btn{text-align:center;margin-top:5px;}
  .nav-services{width:100%;}
  .services-dropdown{
    position:static !important;
    width:auto !important;
    margin:2px 0 5px;
    padding:4px !important;
    box-shadow:none !important;
    border:0 !important;
    border-radius:10px !important;
    transform:none !important;
    display:none !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
  }
  .nav-services.open .services-dropdown{display:flex !important;}
  .services-dropdown a{padding:10px 12px !important;font-size:12px !important;}
  .footer-grid{
    grid-template-columns:1fr 1fr !important;
    gap:35px 25px !important;
    padding:45px 0 !important;
  }
  .footer-company{grid-column:1/-1;}
}
@media (max-width:520px){
  .footer-grid{grid-template-columns:1fr !important;gap:28px !important;}
  .footer-company{grid-column:auto;}
  .footer-brand .logo-img2{width:52px;height:52px;}
  .copyright{font-size:10px !important;}
}

/* Service-page anchor targets */
#electrical-installation,#panel-switchgear,#industrial-electrical,#substation-power,#cable-termination,#maintenance-support{
  scroll-margin-top:100px;
}

/* ===== Services dropdown hover bridge fix ===== */
.nav-services::after{
  content:"";
  position:absolute;
  left:-12px;
  right:-12px;
  top:100%;
  height:22px;
  background:transparent;
  z-index:1099;
}
.services-dropdown{
  top:calc(100% + 18px) !important;
}
