/* =========================================================
   CONTACT PAGE
   ========================================================= */


/* ==================== HERO ==================== */

.contact-hero {

    min-height: 430px;

    display: flex;

    align-items: center;

    padding: 100px 0 80px;

    color: white;

    background:
        linear-gradient(
            90deg,
            rgba(65, 95, 134, 0.97),
            rgba(177, 36, 102, 0.50)
        ),
        url("images/contact-us.jpeg");

    background-size: cover;

    background-position: center;

}


.contact-hero .eyebrow {

    color: #d5cb8d;

}


.contact-hero h1 {

    margin: 15px 0;

    max-width: 800px;

    font-size: clamp(44px, 6vw, 74px);

    line-height: 1.05;

    letter-spacing: -2px;

}


.contact-hero > .container > p:last-child {

    max-width: 620px;

    color: #d6deea;

    font-size: 15px;

    line-height: 1.8;

}



/* ==================== CONTACT SECTION ==================== */

.contact-section {

    padding: 100px 0;

    background: #ffffff;

}


.section-head {

    display: flex;

    align-items: end;

    justify-content: space-between;

    gap: 40px;

    margin-bottom: 50px;

}


.section-head h2 {

    margin-top: 8px;

    color: #0b1f3a;

    font-size: clamp(36px, 4vw, 52px);

}


.section-head > p {

    max-width: 450px;

    color: #718096;

    font-size: 14px;

    line-height: 1.8;

}



/* ==================== CONTACT GRID ==================== */

.contact-grid {

    display: grid;

    grid-template-columns: repeat(2, 1fr);

    gap: 18px;

}


.contact-card {

    padding: 30px;

    min-height: 220px;

    border: 1px solid #e2e8ef;

    border-radius: 50px 10px 100px 10px;

    background: #f7f9fb;

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease;

}


.contact-card:hover {

    transform: translateY(-6px);

    box-shadow:
        0 15px 35px rgba(11, 31, 58, 0.10);

}


.contact-icon {

    width: 48px;

    height: 48px;

    display: grid;

    place-items: center;

    margin-bottom: 22px;

    border-radius: 11px;

    background: #0b1f3a;

    color: white;

    font-size: 19px;

}


.contact-label {

    margin: 0 0 7px;

    color: #9b9270;

    font-size: 10px;

    font-weight: 800;

    letter-spacing: 1px;

}


.contact-card h3 {

    margin: 0 0 12px;

    color: #0b1f3a;

    font-size: 20px;

}


.contact-card a {

    display: block;

    margin: 6px 0;

    color: #53657c;

    text-decoration: none;

    font-size: 13px;

}


.contact-card a:hover {

    color: #0b1f3a;

}


.contact-card > p:last-child {

    max-width: 350px;

    margin: 0;

    color: #718096;

    font-size: 13px;

    line-height: 1.7;

}
.contact-card > p:nth-of-child(2) {

    max-width: 350px;

    margin: 0;

    color: #718096;

    font-size: 13px;

    line-height: 1.7;

}



/* ==================== PROJECT CONTACT ==================== */

.project-contact {

    padding: 100px 0;

    background: #f3f6f9;

}


.project-contact-grid {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 65px;

    align-items: center;

}


.project-contact-image {

    position: relative;

    min-height: 550px;

    overflow: hidden;

    border-radius: 18px;

}


.project-contact-image img {

    width: 100%;

    height: 100%;

    position: absolute;

    inset: 0;

    object-fit: cover;

    transition: transform 0.6s ease;

}


.project-contact-image:hover img {

    transform: scale(1.05);

}


.project-image-overlay {

    position: absolute;

    z-index: 2;

    left: 0;

    right: 0;

    bottom: 0;

    padding: 35px;

    color: white;

    background:
        linear-gradient(
            transparent,
            rgba(7, 20, 38, 0.95)
        );

}


.project-image-overlay p {

    margin: 0;

    color: #d5cb8d;

    font-size: 10px;

    font-weight: 800;

    letter-spacing: 1px;

}


.project-image-overlay h3 {

    max-width: 450px;

    margin: 10px 0 0;

    font-size: 34px;

    line-height: 1.15;

}



/* ==================== CONTENT ==================== */

.project-contact-content h2 {

    max-width: 600px;

    margin: 10px 0 20px;

    color: #0b1f3a;

    font-size: clamp(36px, 4vw, 54px);

    line-height: 1.1;

}


.project-contact-content > p:not(.eyebrow) {

    max-width: 600px;

    color: #718096;

    font-size: 14px;

    line-height: 1.8;

}



/* ==================== SERVICE LIST ==================== */

.service-list {

    display: grid;

    grid-template-columns: 1fr 1fr;

    gap: 12px;

    margin: 30px 0;

}


.service-list div {

    display: flex;

    align-items: center;

    gap: 9px;

    color: #405168;

    font-size: 12px;

}


.service-list span {

    width: 23px;

    height: 23px;

    display: grid;

    place-items: center;

    border-radius: 50%;

    background: #0b1f3a;

    color: white;

    font-size: 10px;

}



/* ==================== QUOTE BUTTON ==================== */

.quote-button {

    display: inline-block;

    padding: 15px 25px;

    border-radius: 8px;

    background: #0b1f3a;

    color: white;

    text-decoration: none;

    font-size: 13px;

    font-weight: 700;

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease;

}


.quote-button:hover {

    transform: translateY(-4px);

    box-shadow:
        0 10px 25px rgba(11, 31, 58, 0.20);

}

.contact-map-box {
    width: 100%;
    background: #ffffff;
    border-radius: 18px;
    padding: 22px;
    box-shadow: 0 12px 35px rgba(8, 27, 51, 0.10);
    border: 1px solid #e7ebf0;
}

.map-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
}

.map-label {
    display: block;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 2px;
    color: #b9a95e;
    margin-bottom: 6px;
}

.map-header h3 {
    margin: 0;
    color: #081b33;
    font-size: 22px;
}

.map-direction-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 11px 17px;
    background: #081b33;
    color: #ffffff;
    text-decoration: none;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 700;
    transition: all 0.3s ease;
}

.map-direction-btn:hover {
    background: #d5cb8d;
    color: #081b33;
    transform: translateY(-2px);
}

.map-frame {
    width: 100%;
    overflow: hidden;
    border-radius: 13px;
    border: 1px solid #e5e9ef;
}

.map-frame iframe {
    display: block;
    width: 100%;
    min-height: 420px;
}

/* Mobile */
@media (max-width: 600px) {

    .contact-map-box {
        padding: 15px;
        border-radius: 14px;
    }

    .map-header {
        display: block;
    }

    .map-header h3 {
        font-size: 19px;
        margin-bottom: 14px;
    }

    .map-direction-btn {
        width: 100%;
        justify-content: center;
    }

    .map-frame iframe {
        min-height: 320px;
    }
}



/* ==================== CTA ==================== */

.contact-cta {

    padding: 75px 0;

    background: #0b1f3a;

    color: white;

}


.contact-cta-inner {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 35px;

}


.contact-cta .eyebrow {

    color: #d5cb8d;

}


.contact-cta h2 {

    margin-top: 8px;

    font-size: clamp(34px, 4vw, 52px);

}


.cta-button {

    display: inline-block;

    padding: 15px 25px;

    border-radius: 8px;

    background: #d5cb8d;

    color: #0b1f3a;

    text-decoration: none;

    font-size: 13px;

    font-weight: 800;

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease;

}


.cta-button:hover {

    transform: translateY(-4px);

    box-shadow:
        0 10px 25px rgba(0, 0, 0, 0.20);

}



/* ==================== ACTIVE NAV ==================== */

.nav-links a.active {

    color: #0b1f3a;

}


.nav-links a.active::after {

    width: 100%;

}



/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 900px) {

    .section-head {

        align-items: start;

        flex-direction: column;

        gap: 15px;

    }


    .project-contact-grid {

        grid-template-columns: 1fr;

        gap: 45px;

    }


    .project-contact-image {

        min-height: 450px;

    }

}



/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

    .contact-hero {

        min-height: 400px;

        padding: 80px 0 65px;

    }


    .contact-hero h1 {

        font-size: 42px;

        letter-spacing: -1px;

    }


    .contact-section,
    .project-contact {

        padding: 70px 0;

    }


    .contact-grid {

        grid-template-columns: 1fr;

    }


    .contact-card {

        min-height: auto;

    }


    .project-contact-image {

        min-height: 380px;

    }


    .project-image-overlay h3 {

        font-size: 28px;

    }


    .service-list {

        grid-template-columns: 1fr;

    }


    .contact-cta {

        padding: 60px 0;

    }


    .contact-cta-inner {

        display: block;

    }


    .cta-button {

        margin-top: 25px;

    }

}



/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media (max-width: 400px) {

    .contact-hero h1 {

        font-size: 36px;

    }


    .contact-card {

        padding: 22px;

    }

}
/* =========================================================
   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;
}
