
:root{--blue:#0759a8;--dark:#07336a;--orange:#ff7b18;--gold:#e6ad45;--ink:#18314c;--muted:#718196;--soft:#f5f9fd;--line:#dfe8f0;--footer:#202020}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:"Roboto",sans-serif;font-size:14px;color:var(--ink);line-height:1.7;overflow-x:hidden}h1,h2{font-family:"Playfair Display",serif;letter-spacing:-.025em;line-height:1.08}h1{font-size:clamp(2.6rem,5vw,5.2rem)}h2{font-size:clamp(2rem,3.5vw,3.55rem);color:#0d3561}h3{font-size:1.05rem;font-weight:700}p{color:var(--muted)}a{text-decoration:none}.section-space{padding:90px 0}.bg-soft{background:var(--soft)}
.site-header{z-index:1050;border-bottom:1px solid var(--line)}.navbar{min-height:74px}.logo{width:138px;height:56px;object-fit:contain}.nav-link{font-size:.81rem;font-weight:500;color:#435a71!important;padding:.55rem .64rem!important;position:relative}.nav-link:hover,.nav-link.active{color:var(--blue)!important}.nav-link.active:after{content:"";position:absolute;left:.64rem;right:.64rem;bottom:.15rem;height:2px;background:var(--orange)}
.brand-btn{background:linear-gradient(135deg,var(--blue),var(--dark));color:#fff;border:0}.brand-btn:hover,.orange-btn:hover{color:#fff;transform:translateY(-1px)}.orange-btn{background:linear-gradient(135deg,var(--orange),#ff9a2e);color:#fff;border:0;box-shadow:0 10px 24px rgba(255,123,24,.18)}.glass-btn{border:1px solid rgba(255,255,255,.5);background:rgba(255,255,255,.08);color:#fff;backdrop-filter:blur(8px)}.glass-btn:hover{background:#fff;color:var(--dark)}
.eyebrow,.kicker{display:inline-flex;align-items:center;gap:9px;color:var(--blue);font-size:.65rem;font-weight:700;letter-spacing:.15em;margin-bottom:12px}.eyebrow:before{content:"";width:28px;height:2px;background:linear-gradient(90deg,var(--orange),var(--blue))}
.hero-slide{min-height:650px;background-size:cover;background-position:center;position:relative;display:flex;align-items:center}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,27,59,.88),rgba(3,37,76,.69) 50%,rgba(3,37,76,.13))}.hero-inner{position:relative;z-index:2;color:#fff}.hero-inner .kicker{color:#ffbd7f}.hero-inner h1{color:#fff;max-width:800px}.hero-inner p{max-width:640px;color:rgba(255,255,255,.8);font-size:1rem}.carousel-control-prev-icon,.carousel-control-next-icon{width:38px;height:38px;border-radius:50%;background-size:16px;background-color:rgba(6,48,99,.68)}
.counter-strip{position:relative;z-index:5;margin-top:-36px}.counter-box{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 50px rgba(6,48,99,.12);overflow:hidden}.counter-cell{padding:24px 10px;border-right:1px solid var(--line)}.counter-cell:last-child{border-right:0}.counter-cell strong,.counter-cell b{font-family:"Playfair Display";font-size:1.9rem;color:var(--dark)}.counter-cell b{color:var(--orange)}.counter-cell span{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.data-note{text-align:center;font-size:.66rem;color:#8c99a6}
.content-image{width:100%;height:440px;object-fit:cover}.mini-img{width:100%;height:220px;object-fit:cover}.section-title{max-width:720px;margin:auto}.project-card,.blog-card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:.25s}.project-card:hover,.blog-card:hover{transform:translateY(-5px);box-shadow:0 18px 45px rgba(7,51,106,.1)}.project-card img,.blog-card img{width:100%;height:225px;object-fit:cover}.project-card small,.blog-card small{font-size:.62rem;color:var(--orange);font-weight:700;letter-spacing:.08em}.project-card p,.blog-card p{font-size:.8rem}.project-card a,.blog-card a{font-size:.74rem;font-weight:700;color:var(--blue)}
.gallery-thumb{position:relative;display:block;border-radius:15px;overflow:hidden;background:#000}.gallery-thumb img{width:100%;height:255px;object-fit:cover;transition:.3s}.gallery-thumb:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 45%,rgba(0,0,0,.62))}.gallery-thumb span{position:absolute;z-index:2;left:15px;bottom:13px;color:#fff;font-size:.74rem}.gallery-thumb:hover img{transform:scale(1.04)}.modal-image{height:min(76vh,720px);object-fit:cover}.modal-close{position:absolute;right:15px;top:15px;z-index:20}
.testimonial-card{padding:28px 24px;border:1px solid var(--line);border-radius:18px;background:#fff}.client-photo-placeholder{width:86px;height:86px;margin:0 auto 15px;border-radius:50%;border:2px dashed #b8c9d8;background:#edf5fb;color:var(--blue);display:grid;place-content:center}.client-photo-placeholder i{font-size:1.4rem}.client-photo-placeholder span{display:block;font-size:.55rem}.testimonial-card p{font-size:.84rem}.testimonial-card strong,.testimonial-card small{display:block}.testimonial-card small{font-size:.68rem;color:#8795a4}.stars{color:var(--orange);letter-spacing:2px;margin-bottom:8px}
.page-hero{min-height:370px;background-size:cover;background-position:center;position:relative;display:flex;align-items:center;color:#fff}.page-hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,31,65,.88),rgba(3,31,65,.52))}.page-hero h1{color:#fff}.page-hero p{color:rgba(255,255,255,.78);max-width:620px}.page-hero .kicker{color:#ffbd7f}
.info-list{display:grid;gap:13px;margin-top:20px}.info-list>div{display:flex;gap:12px}.info-list i{width:40px;height:40px;border-radius:12px;background:#edf5fc;color:var(--blue);display:grid;place-items:center}.info-list strong,.info-list small{display:block}.info-list small{font-size:.72rem;color:#8493a1}.step-card{height:100%;padding:24px;border:1px solid var(--line);border-radius:16px;background:#fff}.step-card b{color:var(--orange);font-size:.72rem}.step-card p{font-size:.78rem}.detail-box{position:sticky;top:100px;border:1px solid var(--line);border-radius:18px;padding:28px;background:#fff;box-shadow:0 16px 40px rgba(7,51,106,.08)}.detail-box ul{padding-left:18px;color:var(--muted);font-size:.82rem}.article h2{font-size:1.65rem;margin-top:26px}.article-cta{margin-top:35px;padding:25px;border-radius:16px;background:var(--soft)}
.contact-shell{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 18px 50px rgba(7,51,106,.08)}.map-panel{height:100%;min-height:570px;position:relative}.map-panel iframe{border:0;width:100%;height:100%;min-height:570px}.map-note{position:absolute;left:18px;right:18px;bottom:18px;background:rgba(255,255,255,.95);border-radius:13px;padding:14px;box-shadow:0 10px 30px rgba(7,51,106,.12)}.map-note strong,.map-note span,.map-note small{display:block}.map-note small{font-size:.64rem;color:#8a98a6}.contact-form{padding:38px;height:100%}.form-control,.form-select{border:1px solid #e1e9f0;background:#f8fafc;border-radius:9px;font-size:.8rem;padding:.72rem}.form-note{display:block;font-size:.63rem;color:#8997a5;margin-top:9px}
.mega-footer{position:relative;overflow:hidden;background:#202020;color:#f5f5f5;padding:70px 0 30px;min-height:430px}.mega-footer h3{font-size:1.3rem;color:#fff;margin-bottom:20px}.mega-footer p{color:#e2e2e2;margin-bottom:8px}.mega-footer a{color:#e8e8e8;display:block;margin:10px 0;font-size:.9rem}.mega-footer a:hover{color:var(--gold)}.mega-footer a i{color:var(--gold);font-size:.7rem;margin-right:8px}.mega-footer .mail-link{display:inline;color:var(--gold);font-weight:500}.contact-big{font-weight:700;color:#fff!important}.small-note{font-size:.78rem;color:#bfbfbf!important}.socials{display:flex;gap:12px;margin-top:20px}.socials a{width:46px;height:46px;border:1px solid #515151;display:grid;place-items:center;border-radius:2px;margin:0}.socials a i{color:#fff;font-size:1rem;margin:0}.footer-top{padding-bottom:48px;border-bottom:1px solid #2b2b2b}.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:25px;padding-top:30px;color:#cfcfcf;font-size:.78rem}.footer-brand-wrap{display:flex;align-items:center;gap:18px}.footer-logo-dark{width:150px;height:54px;object-fit:contain;background:#fff;border-radius:6px;padding:3px}.footer-rings{position:absolute;right:-160px;top:-120px;width:700px;height:700px;border:1px solid #303030;border-radius:50%}.footer-rings:after{content:"";position:absolute;inset:120px;border:1px solid #303030;border-radius:50%}.floating-actions{position:absolute;right:18px;bottom:75px;display:grid;gap:12px}.floating-actions a{display:flex;align-items:center;justify-content:center;gap:8px;margin:0;border-radius:999px;padding:11px 18px;color:#fff!important;font-weight:700;box-shadow:0 12px 28px rgba(0,0,0,.2)}.floating-actions a i{color:#fff;margin:0;font-size:1rem}.consult-btn{background:#3343a5}.whatsapp-btn{background:#22cf68}
@media(max-width:991.98px){.navbar-collapse{padding:12px 0}.nav-link.active:after{display:none}.hero-slide{min-height:580px}.counter-cell:nth-child(2){border-right:0}.counter-cell:nth-child(-n+2){border-bottom:1px solid var(--line)}.footer-rings{display:none}.floating-actions{position:fixed;z-index:1100;right:12px;bottom:12px}.floating-actions .consult-btn{display:none}.footer-bottom{padding-bottom:55px}.map-panel,.map-panel iframe{min-height:400px}}
@media(max-width:767.98px){body{font-size:13.5px}.section-space{padding:70px 0}.logo{width:124px}.hero-slide{min-height:530px}.page-hero{min-height:320px}.content-image{height:340px}.gallery-thumb img{height:230px}.contact-form{padding:26px 18px}.footer-bottom{display:grid}.footer-brand-wrap{display:grid;gap:8px}.mega-footer{padding-top:55px}}


/* ===== Mobile overflow fixes + menu enquiry + home contact ===== */
html, body{
  width:100%;
  max-width:100%;
  overflow-x:hidden !important;
}
img, svg, iframe, video{
  max-width:100%;
}
.container, .container-fluid, .row{
  max-width:100%;
}
.row{
  --bs-gutter-x:1.5rem;
}
[class*="col-"]{
  min-width:0;
}
.navbar-brand{
  flex-shrink:1;
  min-width:0;
}
.navbar-collapse{
  max-width:100%;
}
.menu-enquiry{
  background:linear-gradient(135deg,var(--orange),#ff9a2e);
  color:#fff!important;
  border:0;
  font-size:.78rem;
  font-weight:700;
  margin-top:0;
}
.menu-enquiry:hover{
  color:#fff!important;
  transform:translateY(-1px);
}
.hero-inner,
.page-hero .container,
.footer-top,
.footer-bottom{
  max-width:100%;
}
.hero-inner .btn{
  margin-bottom:8px;
}
.floating-actions{
  max-width:calc(100vw - 24px);
}
.floating-actions a{
  white-space:nowrap;
}
.home-contact-section{
  background:#f7fafc;
}
.home-contact-card{
  padding:48px;
  border-radius:24px;
  background:linear-gradient(135deg,#052d5d,#075fae);
  box-shadow:0 22px 60px rgba(7,51,106,.16);
}
.home-contact-card h2{
  color:#fff;
}
.home-contact-card p{
  color:rgba(255,255,255,.75);
  max-width:600px;
}
.light-eyebrow{
  color:#dbeeff;
}
.light-eyebrow:before{
  background:var(--orange);
}
.home-contact-points{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:20px;
}
.home-contact-points span{
  color:#e9f4ff;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  padding:7px 10px;
  font-size:.72rem;
}
.home-contact-points i{
  color:#ffb16d;
}
.home-contact-form{
  background:#fff;
  border-radius:18px;
  padding:22px;
}
.home-contact-form small{
  display:block;
  color:#8795a4;
  font-size:.63rem;
  margin-top:9px;
}

@media(max-width:991.98px){
  .site-header .container{
    padding-left:12px;
    padding-right:12px;
  }
  .navbar{
    min-height:68px;
  }
  .logo{
    width:118px;
    height:50px;
  }
  .navbar-toggler{
    flex:0 0 auto;
  }
  .navbar-collapse{
    width:100%;
    overflow:hidden;
  }
  .navbar-nav{
    width:100%;
    align-items:stretch!important;
  }
  .nav-item{
    width:100%;
  }
  .nav-link{
    display:block;
    width:100%;
    padding:.7rem .25rem!important;
  }
  .menu-enquiry{
    display:block;
    width:100%;
    text-align:center;
    margin:.45rem 0 0!important;
    padding:.7rem 1rem!important;
  }
  .hero-slide{
    min-height:560px;
  }
  .hero-inner{
    padding-left:18px;
    padding-right:18px;
  }
  .page-hero .container{
    padding-left:18px;
    padding-right:18px;
  }
  .counter-strip{
    margin-top:-22px;
  }
  .counter-box{
    margin-left:0;
    margin-right:0;
  }
  .content-image,
  .mini-img{
    width:100%;
  }
  .mega-footer{
    min-height:auto;
  }
  .footer-top{
    margin-left:0;
    margin-right:0;
  }
  .floating-actions{
    right:10px;
  }
  .home-contact-card{
    padding:30px 20px;
  }
}

@media(max-width:767.98px){
  .container{
    width:100%;
    padding-left:14px;
    padding-right:14px;
  }
  .section-space{
    padding:64px 0;
  }
  .hero-slide{
    min-height:520px;
    background-position:center;
  }
  .hero-overlay{
    background:rgba(2,27,59,.72);
  }
  .hero-inner h1{
    max-width:100%;
    font-size:clamp(2.35rem,10vw,3.35rem);
    word-break:normal;
  }
  .hero-inner p{
    max-width:100%;
    font-size:.9rem;
  }
  .hero-inner .btn{
    display:inline-flex;
    margin-left:0!important;
    margin-right:6px;
  }
  .page-hero{
    min-height:300px;
  }
  .page-hero h1{
    font-size:2.5rem;
  }
  .counter-cell{
    padding:18px 6px;
  }
  .gallery-thumb,
  .project-card,
  .blog-card,
  .testimonial-card,
  .contact-shell,
  .home-contact-card{
    max-width:100%;
  }
  .map-panel,
  .map-panel iframe{
    width:100%;
    min-width:0;
  }
  .footer-bottom{
    gap:12px;
  }
  .socials{
    flex-wrap:wrap;
  }
  .floating-actions{
    right:8px;
    bottom:8px;
  }
  .floating-actions .whatsapp-btn{
    padding:10px 14px;
    font-size:.78rem;
  }
  .home-contact-points{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:575.98px){
  .container{
    padding-left:12px;
    padding-right:12px;
  }
  .hero-inner{
    padding-left:8px;
    padding-right:8px;
  }
  .hero-inner .btn{
    width:100%;
    justify-content:center;
    margin-right:0!important;
  }
  .counter-cell strong,
  .counter-cell b{
    font-size:1.45rem;
  }
  .counter-cell span{
    font-size:.58rem;
  }
  .page-hero .container{
    padding-left:14px;
    padding-right:14px;
  }
  .content-image{
    height:300px;
  }
  .mini-img{
    height:190px;
  }
  .gallery-thumb img{
    height:215px;
  }
  .home-contact-points{
    grid-template-columns:1fr;
  }
  .home-contact-card{
    padding:24px 14px;
  }
  .home-contact-form{
    padding:16px;
  }
  .mega-footer{
    padding-left:0;
    padding-right:0;
  }
  .footer-logo-dark{
    max-width:130px;
  }
}


/* ===== Premium scrolling / hover / micro-interaction effects ===== */
:root{
  --ease-premium:cubic-bezier(.2,.7,.2,1);
}

/* Header transformation */
.site-header{
  transition:box-shadow .3s ease, background .3s ease, transform .3s ease;
}
.site-header.scrolled{
  box-shadow:0 10px 35px rgba(6,48,99,.10);
}
.site-header .navbar{
  transition:min-height .3s ease, padding .3s ease;
}
.site-header.scrolled .navbar{
  min-height:64px;
}
.site-header .logo{
  transition:width .3s ease, height .3s ease, transform .3s ease;
}
.site-header.scrolled .logo{
  width:124px;
  height:48px;
}

/* Nav underline animation */
.nav-link:before{
  content:"";
  position:absolute;
  left:.64rem;
  bottom:.15rem;
  width:0;
  height:2px;
  background:linear-gradient(90deg,var(--orange),var(--blue));
  transition:width .28s ease;
}
.nav-link:hover:before{
  width:calc(100% - 1.28rem);
}
.nav-link.active:before{
  width:calc(100% - 1.28rem);
}
.nav-link.active:after{display:none!important}

/* Buttons */
.btn{
  position:relative;
  overflow:hidden;
  transition:transform .25s var(--ease-premium), box-shadow .25s ease;
}
.btn:hover{
  transform:translateY(-2px);
}
.btn:active{
  transform:translateY(0) scale(.98);
}
.orange-btn:hover{
  box-shadow:0 14px 30px rgba(255,123,24,.28);
}
.brand-btn:hover{
  box-shadow:0 14px 30px rgba(7,89,168,.25);
}
.btn:after{
  content:"";
  position:absolute;
  top:-120%;
  left:-35%;
  width:28%;
  height:340%;
  transform:rotate(24deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.38),transparent);
  transition:left .55s ease;
  pointer-events:none;
}
.btn:hover:after{
  left:120%;
}

/* Reveal-on-scroll */
.reveal-section,
.reveal-item{
  opacity:0;
  transform:translateY(28px);
  transition:
    opacity .75s var(--ease-premium),
    transform .75s var(--ease-premium);
  will-change:opacity,transform;
}
.reveal-section.is-visible,
.reveal-item.is-visible{
  opacity:1;
  transform:none;
}

/* stagger children */
.row .reveal-item:nth-child(2){transition-delay:.08s}
.row .reveal-item:nth-child(3){transition-delay:.16s}
.row .reveal-item:nth-child(4){transition-delay:.24s}
.row .reveal-item:nth-child(5){transition-delay:.32s}
.row .reveal-item:nth-child(6){transition-delay:.40s}

/* Hero entrance */
.hero-animate > *{
  opacity:0;
  transform:translateY(24px);
}
.carousel-item.active .hero-animate > *{
  animation:heroRise .8s var(--ease-premium) forwards;
}
.carousel-item.active .hero-animate > *:nth-child(2){animation-delay:.08s}
.carousel-item.active .hero-animate > *:nth-child(3){animation-delay:.16s}
.carousel-item.active .hero-animate > *:nth-child(4){animation-delay:.24s}
.carousel-item.active .hero-animate > *:nth-child(5){animation-delay:.28s}
@keyframes heroRise{
  to{opacity:1;transform:none}
}

/* Subtle hero image zoom */
.carousel-item.active .hero-slide{
  animation:heroZoom 7s ease-out forwards;
}
@keyframes heroZoom{
  from{background-size:100% auto}
  to{background-size:106% auto}
}

/* Page hero entrance */
.page-hero-content{
  animation:pageHeroIn .8s var(--ease-premium) both;
}
@keyframes pageHeroIn{
  from{opacity:0;transform:translateY(20px)}
  to{opacity:1;transform:none}
}

/* Cards */
.fx-card{
  position:relative;
  transition:
    transform .35s var(--ease-premium),
    box-shadow .35s ease,
    border-color .35s ease;
}
.fx-card:hover{
  transform:translateY(-8px);
  box-shadow:0 22px 55px rgba(7,51,106,.13);
  border-color:rgba(7,89,168,.20);
}
.project-card img,
.blog-card img,
.fx-image{
  transition:transform .55s var(--ease-premium), filter .4s ease;
}
.project-card:hover img,
.blog-card:hover img{
  transform:scale(1.045);
}
.fx-image:hover{
  transform:scale(1.015);
  filter:saturate(1.05) contrast(1.02);
}

/* Gallery */
.fx-gallery{
  transition:transform .35s var(--ease-premium), box-shadow .35s ease;
}
.fx-gallery:hover{
  transform:translateY(-5px);
  box-shadow:0 18px 38px rgba(0,0,0,.14);
}
.fx-gallery span{
  transition:transform .3s ease;
}
.fx-gallery:hover span{
  transform:translateX(4px);
}

/* Counter */
.counter-box{
  transition:transform .35s var(--ease-premium), box-shadow .35s ease;
}
.counter-box:hover{
  transform:translateY(-4px);
  box-shadow:0 24px 58px rgba(6,48,99,.15);
}
.counter-cell{
  transition:background .25s ease;
}
.counter-cell:hover{
  background:#f8fbfe;
}

/* Floating glow on contact card */
.home-contact-card,
.contact-shell{
  position:relative;
  overflow:hidden;
}
.home-contact-card:before{
  content:"";
  position:absolute;
  width:330px;
  height:330px;
  border-radius:50%;
  right:-130px;
  top:-150px;
  background:rgba(255,255,255,.07);
  transition:transform .6s ease;
}
.home-contact-card:hover:before{
  transform:scale(1.15);
}

/* Inputs */
.form-control,
.form-select{
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.form-control:focus,
.form-select:focus{
  border-color:rgba(7,89,168,.45);
  background:#fff;
  box-shadow:0 0 0 .22rem rgba(7,89,168,.08);
}

/* Footer */
.mega-footer a{
  transition:color .2s ease, transform .2s ease;
}
.mega-footer a:hover{
  transform:translateX(3px);
}
.socials a{
  transition:transform .25s ease, background .25s ease, border-color .25s ease;
}
.socials a:hover{
  transform:translateY(-4px);
  border-color:var(--gold);
  background:#2a2a2a;
}
.floating-actions a{
  transition:transform .25s ease, box-shadow .25s ease;
}
.floating-actions a:hover{
  transform:translateY(-3px) scale(1.02);
  box-shadow:0 16px 34px rgba(0,0,0,.28);
}

/* Eyebrow animated line */
.eyebrow:before{
  transform-origin:left center;
  transition:transform .35s ease;
}
.eyebrow:hover:before{
  transform:scaleX(1.35);
}

/* Respect accessibility preferences */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
    transition-duration:.01ms!important;
  }
  .reveal-section,.reveal-item{
    opacity:1!important;
    transform:none!important;
  }
}

/* Mobile: no zoom background trick that can cause overflow/reflow */
@media(max-width:767.98px){
  .carousel-item.active .hero-slide{
    animation:none;
    background-size:cover;
  }
  .fx-card:hover,
  .fx-gallery:hover,
  .counter-box:hover{
    transform:none;
  }
  .site-header.scrolled .logo{
    width:116px;
    height:46px;
  }
}
