 :root{
  --primary:#0B2341;      /* Deep Architectural Navy */
  --secondary:#E31E26;    /* Modern Teal */
  --accent:#05306a;       /* Construction Orange */
  --light:#F7F9FC;
  --dark:#1C2430;
  --nav-height:90px;
}

    * { -webkit-font-smoothing: antialiased; }

    body{
    font-family: "Outfit", sans-serif;
    overflow-x: hidden;
}

    /* Floating WhatsApp contact button */
    .whatsapp-float{
        position:fixed;
        right:24px;
        bottom:24px;
        z-index:1040;
        display:inline-flex;
        align-items:center;
        justify-content:center;
        width:58px;
        height:58px;
        border-radius:50%;
        background:#25D366;
        color:#fff;
        font-size:1.8rem;
        text-decoration:none;
        box-shadow:0 10px 24px rgba(0,0,0,.22);
        transition:transform .25s ease, box-shadow .25s ease;
    }

    .whatsapp-float:hover,
    .whatsapp-float:focus-visible{
        color:#fff;
        transform:translateY(-4px);
        box-shadow:0 14px 28px rgba(0,0,0,.28);
    }

    .whatsapp-float:focus-visible{
        outline:3px solid rgba(37,211,102,.35);
        outline-offset:4px;
    }

    /* CLIENTS */
    .clients-section{
        padding:100px 0 115px;
        background:#f7f9fc;
        overflow:hidden;
    }

    .clients-heading{
        max-width:680px;
        margin:0 auto 48px;
    }

    .clients-heading h2{
        color:var(--primary);
        margin:12px 0 14px;
    }

    .clients-heading p{
        color:#617083;
        margin:0;
    }

    .clients-slider{
        padding:0 44px 42px;
    }

    .client-slide{
        min-height: auto;
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap: 5px;
        /* padding:28px 20px; */
        border:1px solid rgba(11,35,65,.1);
        background:#fff;
        text-align:center;
        transition:transform .3s ease, border-color .3s ease, box-shadow .3s ease;
    }

    /* .client-slide:hover{
        border-color:var(--secondary);
        box-shadow:0 16px 32px rgba(11,35,65,.1);
        transform:translateY(-5px);
    } */

    .client-icon{
        width: 90px;
        height:90px;
        display:grid;
        place-items:center;
        border-radius:50%;
        /* background:rgba(227,30,38,.1); */
        color:var(--secondary);
        font-size:1.8rem;
    }

    .client-slide span{
        color:var(--primary);
        font-family:"Montserrat", sans-serif;
        font-size:.92rem;
        font-weight:700;
        line-height:1.4;
    }

    .clients-slider .owl-nav button.owl-prev,
    .clients-slider .owl-nav button.owl-next{
        position:absolute;
        top:50%;
        width:38px;
        height:38px;
        margin:0;
        border:1px solid rgba(11,35,65,.15);
        border-radius:50%;
        background:#fff;
        color:var(--primary);
        transform:translateY(-50%);
        transition:.25s ease;
    }

    .clients-slider .owl-nav button.owl-prev{ left:0; }
    .clients-slider .owl-nav button.owl-next{ right:0; }

    .clients-slider .owl-nav button:hover{
        background:var(--secondary);
        color:#fff;
    }

    .clients-slider .owl-dots{
        position:absolute;
        right:0;
        bottom:0;
        left:0;
    }

    .clients-slider .owl-dot span{
        background:rgba(11,35,65,.2)!important;
        transition:.25s ease;
    }

    .clients-slider .owl-dot.active span,
    .clients-slider .owl-dot:hover span{
        background:var(--secondary)!important;
    }

    @media (max-width:576px){
        .clients-section{ padding:76px 0 90px; }
        .clients-slider{ padding-right:38px; padding-left:38px; }
    }

    @media (max-width:576px){
        .whatsapp-float{
            right:16px;
            bottom:16px;
            width:54px;
            height:54px;
            font-size:1.65rem;
        }
    }

h1,h2,h3,h4,h5,h6,
.navbar-brand{
    font-family: "Montserrat", sans-serif;
}

   
    html{
      overflow-x: hidden;
    }

  

    /* =========================
   NAVBAR - URBAN FACADE
========================= */

.navbar-custom{
    position: fixed;
    top:0;
    left:0;
    right:0;
    z-index:999;
    min-height:var(--nav-height);
    /*padding:22px 0;*/
    background:transparent;
    transition:all .4s ease;
}

/* LOGO */
.navbar-brand{
    font-size:1.2rem;
    font-weight:700;
    color:#fff;
    letter-spacing:1px;
    text-transform:uppercase;
    width: 26%;
}

.navbar-brand img{
        width: 38%;
}

.navbar-brand span{
    color:var(--secondary);
    font-weight:400;
}

/* MENU */
.navbar-custom .nav-link{
    color:rgba(255,255,255,.88);
    font-size:.92rem;
    font-weight:500;
    margin:0 14px;
    position:relative;
    transition:.3s;
    text-transform:uppercase;
}

/* Use Bootstrap's caret (::after) but style and animate it to match site */
.navbar-custom .dropdown-toggle::after{
    margin-left:8px;
    vertical-align:middle;
    transition:transform .25s ease, color .2s ease;
    color:rgba(255,255,255,.9);
}
.navbar-custom.scrolled .dropdown-toggle::after{
    color:rgba(0,0,0,.7);
}
.dropdown-toggle::after {
    display: none;
}
/* Hide dropdown caret icon entirely when the site wants no icon */
.navbar-custom .dropdown-toggle::after{
    display: none !important;
    content: none !important;
}

/* Dropdown menu theming to match site */
.navbar-custom .dropdown-menu{
    border-radius:12px;
    padding:6px 8px;
    border:1px solid rgba(11,35,65,.06);
    box-shadow:0 12px 40px rgba(11,35,65,.12);
    min-width:220px;
}
.navbar-custom .dropdown-item{
    color:var(--primary);
    font-weight:600;
    padding:10px 14px;
    text-transform:none;
}
.navbar-custom .dropdown-item:hover{
    background:var(--secondary);
    color:#fff;
}

/* Desktop: open dropdown on hover, keep click behavior on mobile */
@media (min-width: 992px) {
    .navbar-custom .dropdown .dropdown-menu{
        display: block; /* positioned but hidden by visibility/opacity */
        visibility: hidden;
        opacity: 0;
        transform: translateY(8px);
        transition: opacity .18s ease, transform .18s ease;
        pointer-events: none;
        z-index: 1050;
    }

    .navbar-custom .dropdown:hover > .dropdown-menu{
        visibility: visible;
        opacity: 1;
        transform: translateY(0);
        pointer-events: auto;
    }

    /* make caret indicate open on hover (rotate the ::after caret) */
    .navbar-custom .dropdown:hover > .dropdown-toggle::after{
        transform: rotate(180deg);
    }
}

.navbar-custom .nav-link::after{
    content:'';
    position:absolute;
    left:0;
    bottom:-4px;
    width:0;
    height:2px;
    background:var(--secondary);
    transition:.4s;
}

.navbar-custom .nav-link:hover::after,
.navbar-custom .nav-link.active::after{
    width:100%;
}

.navbar-custom .nav-link:hover,
.navbar-custom .nav-link.active{
    color:#fff;
}

/* BUTTON */
.btn-quote{
    background:var(--accent);
    color:#fff;
    border:none;
    border-radius:50px;
    padding:12px 28px;
    font-size:.85rem;
    font-weight:600;
    letter-spacing:.5px;
    transition:.35s;
}

.btn-quote:hover{
    background:var(--secondary);
    color:#fff;
    transform:translateY(-2px);
}

/* SCROLL EFFECT */
.navbar-custom.scrolled{
    background:#ffffff;
    /*padding:12px 0;*/
    box-shadow:0 8px 30px rgba(0,0,0,.08);
}

.navbar-custom.scrolled .navbar-brand{
    color:var(--primary);
}

.navbar-custom.scrolled .nav-link{
    color:#555;
}

.navbar-custom.scrolled .nav-link:hover,
.navbar-custom.scrolled .nav-link.active{
    color:var(--primary);
}

.navbar-custom.scrolled .nav-link::after{
    background:var(--secondary);
}

/* MOBILE MENU */
.navbar-toggler{
    border:none;
    box-shadow:none!important;
}

.navbar-toggler .bar{
    display:block;
    width:28px;
    height:2px;
    background:#fff;
    margin:6px 0;
    transition:.3s;
}

.navbar-custom.scrolled .navbar-toggler .bar{
    background:var(--primary);
}

    /* ============ HERO ============ */
    .hero {
      position: relative;
      height: 100vh;
      min-height: 540px;
      overflow: hidden;
      display: flex;
      align-items: center;
    }

    /* zooming background image (Ken Burns) */
    /* =========================
   HERO VIDEO
========================= */

.hero{
    position:relative;
    height:100vh;
    min-height:700px;
    overflow:hidden;
    display:flex;
    align-items:center;
}

.hero-video-wrapper{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    overflow:hidden;
    opacity: .8;
}

.hero-video{
    width:100%;
    height:100%;
    object-fit:cover;

    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%) scale(1.05);
}

/* Optional subtle zoom effect */

.hero-video{
    animation:heroZoom 20s ease-in-out infinite alternate;
}

@keyframes heroZoom{
    from{
        transform:translate(-50%,-50%) scale(1);
    }
    to{
        transform:translate(-50%,-50%) scale(1.08);
    }
}

    /* dark gradient overlay so text stays readable */
    .hero-overlay{
        position:absolute;
        inset:0;
        background: #000000b3;
  /* background:linear-gradient(
      90deg,
      rgba(11,35,65,.92) 0%,
      rgba(11,35,65,.72) 40%,
      rgba(11,35,65,.35) 100%
  ); */
}

    .hero-content {
      position: relative;
      z-index: 2;
      color: #fff;

    }

    .hero-eyebrow{
  color:var(--secondary);
}

.hero-eyebrow::before{
  background:var(--secondary);
}

  .hero h1{
  font-size:clamp(3rem,6vw,3rem);
  font-weight:700;
  line-height:1.08;
  letter-spacing:-1px;
      margin-top: 20px;
}

.hero h1 em{
  color:var(--secondary);
  font-style:normal;
}

   .hero p.lead{
  font-size:1.05rem;
  font-weight:300;
  line-height:1.9;
  color:rgba(255,255,255,.88);
  max-width:620px;
}

    .btn-hero {
      font-size: .82rem;
      font-weight: 500;
      letter-spacing: .22em;
      text-transform: uppercase;
      border-radius: 0;
      padding: 16px 38px;
      transition: all .35s ease;
    }
  .btn-hero-solid{
  background:var(--accent);
  border:1px solid #3c526e;
  color:#fff;
  border-radius:50px;
}

.btn-hero-solid:hover{
  background:var(--secondary);
  border-color:var(--secondary);
  color:#fff;
  transform:translateY(-3px);
}
    .btn-hero-ghost{
  border:1px solid rgba(255,255,255,.4);
  color:#fff;
  border-radius:50px;
  margin-left:15px;
}

.btn-hero-ghost:hover{
  background:#fff;
  color:var(--primary);
}

    /* scroll-down hint */
    .scroll-hint {
      position: absolute;
      bottom: -56px;
      left: 50%;
      transform: translateX(-50%);
      z-index: 2;
      color: rgba(255,255,255,.75);
      font-size: .72rem;
      letter-spacing: .3em;
      text-transform: uppercase;
      text-decoration: none;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 10px;
      transition: color .3s ease;
    }
    .scroll-hint:hover { color: #fff; }
    .scroll-hint i { animation: bounce 2s infinite; }

    @keyframes bounce {
      0%, 100% { transform: translateY(0); }
      50%      { transform: translateY(8px); }
    }

    /* side stat card floating on the right */
   .hero-card{
  position:absolute;
  right:6%;
  bottom:0%;
  z-index:2;

  background:rgba(255,255,255,.12);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);

  border:1px solid rgba(255,255,255,.15);

  border-radius:20px;

  padding:28px 36px;

  display:flex;
  gap:45px;

  box-shadow:0 20px 50px rgba(0,0,0,.15);
}

.hero-card .num{
  font-family:"Montserrat",sans-serif;
  font-size:2.5rem;
  font-weight:700;
  color:var(--secondary);
  line-height:1;
}

.hero-card .label{
  font-size:.75rem;
  text-transform:uppercase;
  letter-spacing:2px;
  color:rgba(255,255,255,.8);
  margin-top:10px;
}
    

    /* respect users who turn animations off */
    @media (prefers-reduced-motion: reduce) {
      .hero-bg, .scroll-hint i { animation: none; }
    }

    /* ============ STORY / PROCESS SECTION ============ */
    .story-section{
    padding:80px 0;
    background:#F7F9FC;
    overflow:hidden;
}

    .section-eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 14px;
      font-size: .78rem;
      letter-spacing: .32em;
      text-transform: uppercase;
    
      margin-bottom: 18px;
    }
    .section-eyebrow::before {
      content: "";
      width: 46px; height: 1px;
      background: var(--primary);
    }

    .section-eyebrow{
    color:var(--secondary);
}

.section-eyebrow::before{
    background:var(--secondary);
}

 .story-section h2{
    font-size:clamp(2.2rem,3vw,3.5rem);
    line-height:1.15;
    margin-bottom:22px;
    font-weight:700;
    color:var(--primary);
}

.story-section h2 em{
    color:var(--secondary);
    font-style:normal;
}

    /* --- numbered process steps --- */
    .process-step {
      position: relative;
      padding-bottom: 44px;
    }
    /* vertical connector line */
    .process-step::before {
      content: "";
      position: absolute;
      left: -10px;
      top: 6px;
      bottom: 0;
      width: 1px;
 
    }

    .process-step::before{
    background:rgba(11,35,65,.15);
}
    .process-step:last-child { padding-bottom: 0; }
    .process-step:last-child::before { display: none; }

   .process-step .step-num{
    font-family:"Montserrat",sans-serif;
    font-size:2.4rem;
    font-weight:700;
    color:var(--secondary);
}

    .process-step h3{
    font-size:1.35rem;
    font-weight:600;
    color:var(--primary);
        padding-bottom: 10px;
    border-bottom:1px solid rgba(11,35,65,.15);
}

.process-step:hover h3{
    border-color:var(--secondary);
}

    .process-step p {
      font-weight: 300;
      color: rgba(30,28,26,.6);
      max-width: 460px;
      margin: 0;
    }

    .btn-story{
    background:var(--primary);
    border:1px solid var(--primary);
    color:#fff;
    border-radius:50px;
    padding:16px 42px;
    letter-spacing:1px;
}

.btn-story:hover{
    background:var(--secondary);
    border-color:var(--secondary);
    color:#fff;
    transform:translateY(-3px);
}

    /* --- image collage --- */
    .story-collage {
      position: relative;
      min-height: 640px;
    }
    .story-collage img {
        position: absolute;
        object-fit: cover;
        box-shadow: 0 24px 60px rgba(30, 28, 26, .18);
        border: 10px solid #fff;
        border-radius: 13px;
    }
    .collage-main {
      top: 0;
      left: 0;
      width: 74%;
      height: auto;
      /* height: 62%; */
      z-index: 1;
    }
    .collage-tall {
      top: 7%;
      right: 0;
      /* width: 26%;
      height: 46%; */
      z-index: 2;
      border: 6px solid var(--ivory);
    }
    .collage-wide {
      right: 4%;
      bottom: 0;
      width: 62%;
      height: 52%;
      z-index: 2;
      border: 6px solid var(--ivory);
    }
    .collage-small {
      left: 0;
      bottom: 4%;
      /* width: 34%;
      height: 38%; */
      z-index: 3;
      border: 6px solid var(--ivory);
    }

    /* brass frame accent behind the collage */
    .story-collage::after {
      content: "";
      position: absolute;
      top: -22px;
      right: -22px;
      width: 42%;
      height: 46%;
      border: 1px solid var(--brass);
      z-index: 0;
    }
.story-intro{
    color:#5f6d7b;
    font-weight:300;
    line-height:1.9;
    max-width:600px;
    margin-bottom:60px;
}

/* ======================================
   ABOUT US
====================================== */

.about-section{
    padding:120px 0;
    background:#fff;
}

.about-image{
    overflow:hidden;
    border-radius:20px;
}

.about-image img{
    width:100%;
    height:650px;
    object-fit:cover;
    transition:.5s;
}

.about-image:hover img{
    transform:scale(1.05);
}

.about-content h2{
      font-size: clamp(2.3rem, 3vw, 3.8rem);
    color: var(--primary);
    margin-bottom: 25px;
    line-height: 1.2;
    font-weight: 700;
}

.about-content h2 em{
    color:var(--secondary);
    font-style:normal;
}

.about-content p{
    color:#667085;
    line-height:1.9;
    margin-bottom:20px;
}

.about-highlights{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:30px;
}

.about-highlights span{
    padding:10px 18px;
    border:1px solid rgba(0,0,0,.08);
    background:#f8f9fb;
    color:var(--primary);
    font-size:.9rem;
    font-weight:500;
}

/* Director section */
.director-section{
    padding:80px 0;
    background:#fff;
}
.director-image img{
    width:100%;
    height:auto;
    object-fit:cover;
    border-radius:16px;
    box-shadow:0 30px 70px rgba(11,35,65,.08);
}
.director-content h2{
    font-size:clamp(1.8rem,2.6vw,2.8rem);
    color:var(--primary);
    margin-bottom:8px;
}
.director-title{
    color:var(--secondary);
    font-weight:700;
    margin-bottom:16px;
}
.director-content p{
    color:#667085;
    line-height:1.9;
}
.director-cta .btn{
    padding:12px 28px;
    border-radius:50px;
}

/* WhatsApp floating button */
.whatsapp-float{
    position:fixed;
    right:22px;
    bottom:22px;
    z-index:1200;
}
.whatsapp-float a{
    display:flex;
    align-items:center;
    justify-content:center;
    width:56px;
    height:56px;
    border-radius:50%;
    background:#25D366;
    color:#fff;
    box-shadow:0 12px 30px rgba(37,211,102,.18);
    font-size:1.4rem;
    transition:transform .18s ease, box-shadow .18s ease;
}
.whatsapp-float a:hover{ transform:translateY(-6px); box-shadow:0 20px 40px rgba(37,211,102,.22); }

@media (max-width:576px){
    .whatsapp-float{ right:14px; bottom:14px; }
    .whatsapp-float a{ width:48px; height:48px; font-size:1.1rem; }
}
..director-name {
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 8px;
}
.director-title,
.director-company {
    font-size: 16px;
    font-weight: 500;
}


   /* ===================================
   SERVICES SECTION
=================================== */

.services-section{
    padding:80px 0;
    background:#ffffff;
    position:relative;
    overflow:hidden;
}

/* subtle blueprint pattern */
.services-section::before{
    content:'';
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;

    background-image:
    linear-gradient(rgba(11,35,65,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(11,35,65,.025) 1px, transparent 1px);

    background-size:80px 80px;

    pointer-events:none;
}

.services-heading{
    max-width:850px;
    margin:auto;
    position:relative;
    z-index:2;
}

.services-heading h2{
    font-size:clamp(2.2rem,vw,3.5rem);
    font-weight:700;
    color:var(--primary);
    margin-bottom:20px;
}

.services-heading h2 em{
    color:var(--secondary);
    font-style:normal;
}

.services-heading p{
    max-width:700px;
    margin:auto;
    color:#667085;
    line-height:1.9;
}

/* CARD */

.service-card{
  position: relative;
  height: 260px;
  border: none;
  background: var(--primary);
  transition: .4s ease;
  overflow: hidden;
  border-radius: 25px;
  overflow: hidden;
  width: 100%;
}

.service-image,
.service-image::after{
    position:absolute;
    inset:0;
}

.service-image::after{
    content:'';
    background:linear-gradient(180deg, rgba(11,35,65,.02) 25%, rgba(11,35,65,.92) 100%);
}

.service-image img{
    width:100%;
    height:260px;
    object-fit:cover;
    transition:transform .5s ease;
}

.service-card:hover{
    transform:translateY(-8px);
    box-shadow:0 25px 60px rgba(11,35,65,.10);
}

.service-card:hover .service-image img{
    transform:scale(1.08);
}

.service-number{
    position:absolute;
    top:20px;
    right:25px;
    font-size:3.0rem;
    font-weight:700;
    color:rgba(255,255,255,.72);
    line-height:1;
    z-index:1;
}

.service-card-content{
    position:absolute;
    right:35px;
    bottom:32px;
    left:35px;
    z-index:1;
}

.service-card h3{
    font-size:1.35rem;
    font-weight:600;
    color:#fff;
    margin-bottom:15px;
}
.footer-logo img{
    
        width: 45%;
}
.service-card p{
    color:rgba(255,255,255,.82);
    line-height:1.8;
    margin:0;
}

/* ==================================
   PROCESS FLOW
================================== */



.process-header{
    max-width:750px;
    margin:auto;
    margin-bottom:80px;
}

.process-section{
    padding:80px 0;
    background:#f7f9fc;
    overflow:hidden;
    position:relative;
}

/* blueprint pattern */

.process-section::before{
    content:'';
    position:absolute;
    inset:0;

    background-image:
    linear-gradient(rgba(11,35,65,.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(11,35,65,.02) 1px, transparent 1px);

    background-size:90px 90px;

    pointer-events:none;
}

.process-header h2{
    font-size:clamp(2.5rem,3vw,4rem);
    color:var(--primary);
    font-weight:700;
}

.process-header h2 em{
    color:var(--secondary);
    font-style:normal;
}

.process-header p{
    color:#667085;
    line-height:1.9;
    margin-top:20px;
}

/* FLOW */

.process-flow{

    position:relative;

    display:grid;
    grid-template-columns:repeat(3,1fr);

    gap:80px 100px;

    max-width:1100px;

    margin:auto;
}

/* connecting lines */

.process-flow::before{
    content:'';

    position:absolute;

    top:79%;

    left:15%;

    width:70%;

    height:2px;

    background:linear-gradient(
        90deg,
        rgba(0,163,163,.2),
        var(--secondary),
        rgba(0,163,163,.2)
    );

    z-index:1;
}

.process-flow::after {
    content: '';
    position: absolute;
    top: 21%;
    left: 15%;
    width: 70%;
    height: 2px;
    background: linear-gradient(90deg, rgba(0, 163, 163, .2), var(--secondary), rgba(0, 163, 163, .2));
    z-index: 1;
}

.process-node{

    position:relative;

    background:#fff;

    padding:40px 30px;

    border:1px solid rgba(11,35,65,.08);

    border-radius:20px;

    text-align:center;

    transition:.4s;

    z-index:2;
}

.process-node:hover{
    transform:translateY(-10px);

    box-shadow:0 25px 60px rgba(11,35,65,.10);
}

/* top row */

.process-node:nth-child(1),
.process-node:nth-child(3),
.process-node:nth-child(5){
    transform:translateY(-40px);
}

/* bottom row */

.process-node:nth-child(2),
.process-node:nth-child(4),
.process-node:nth-child(6){
    transform:translateY(40px);
}

.process-node:hover{
    transform:translateY(-10px);
}

.process-node span{

    width:70px;
    height:70px;

    display:flex;
    align-items:center;
    justify-content:center;

    margin:auto auto 20px;

    border-radius:50%;

    background:rgba(0,163,163,.08);

    color:var(--secondary);

    font-size:1.3rem;
    font-weight:700;
}

.process-node h4{
    color:var(--primary);
    font-size:1.15rem;
    font-weight:600;
    margin:0;
}

/* connector dots */

.process-node::after{

    content:'';

    position:absolute;

    top:50%;

    right:-52px;

    width:12px;
    height:12px;

    background:var(--secondary);

    border-radius:50%;
}

.process-node:nth-child(3)::after,
.process-node:nth-child(6)::after{
    display:none;
}

/* ======================================
   WHY CHOOSE US
====================================== */

.why-us-section{
    padding:130px 0;
    background:#f7f9fc;
    overflow:hidden;
}

/* IMAGE */

.why-image-wrapper{

    position:relative;

    height:700px;
}

.why-image-wrapper img{

    width:100%;
    height:100%;

    object-fit:cover;

    border-radius:28px;

    box-shadow:0 30px 80px rgba(11,35,65,.15);
}

/* floating badge */

.experience-badge{

    position:absolute;
        padding: 10px;
    bottom:40px;
    right:-40px;

    width:180px;
    height:180px;

    background:var(--secondary);

    border-radius:50%;

    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;

    color:#fff;

    box-shadow:0 25px 50px rgba(0,163,163,.25);
}

.experience-badge span{

    font-size:3rem;
    font-weight:700;
    line-height:1;
}

.experience-badge small{

    text-align:center;
    line-height:1.4;
    letter-spacing:1px;
    text-transform:uppercase;
}

/* CONTENT */

.why-content h2, .projects-head h2{

    font-size:clamp(2.4rem,3vw,4rem);

    color:var(--primary);

    margin-bottom:25px;
    font-weight: 700;

    line-height:1.15;
}

.why-content h2 em{

    color:var(--secondary);
    font-style:normal;
}

.why-content > p{

    color:#667085;

    line-height:1.9;

    margin-bottom:45px;
}

/* FEATURES */

.why-list{

    display:flex;
    flex-direction:column;
    gap:30px;
}

.why-item{

    display:flex;
    gap:25px;
}

.why-item span{

    min-width:65px;
    height:65px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:50%;

    background:rgba(0,163,163,.08);

    color:var(--secondary);

    font-weight:700;
}

.why-item h5{

    color:var(--primary);

    margin-bottom:8px;

    font-size:1.15rem;
}

.why-item p{

    color:#667085;

    margin:0;

    line-height:1.8;
}

/* STATS */

.why-stats{

    margin-top:50px;

    display:flex;

    justify-content:space-between;

    border-top:1px solid rgba(11,35,65,.08);

    padding-top:35px;
}

.why-stats h3{
    font-size:3rem;
    font-weight:700;
    color:var(--primary);
    margin-bottom:8px;
    line-height:1;
    position:relative;
}

.why-stats h3::after{
    content:"+";
    color:var(--secondary);
    margin-left:4px;
}

.why-stats div{
    position:relative;
    padding-right:30px;
}

.why-stats div:not(:last-child)::before{
    content:"";
    position:absolute;
    right:0;
    top:50%;
    transform:translateY(-50%);
    width:1px;
    height:50px;
    background:rgba(11,35,65,.12);
}

.why-stats span{

    color:#667085;

    font-size:.9rem;
}

/* ===============================
   TESTIMONIAL
================================ */

.testimonial-section{
    background:#f7f9fc;
    overflow:hidden;
}

.testimonial-content{
    padding:100px 80px;
}

.testimonial-content h2{
    font-size:clamp(2.5rem,3vw,4rem);
    color:var(--primary);
    margin-top:15px;
    font-weight: 700;
}

.testimonial-bg{
    position:relative;
    padding:120px 0;
    background:url('../images/blueprint-bg.jpg') center center/cover;
}

.testimonial-bg::before{
    content:'';
    position:absolute;
    inset:0;
    background:rgba(255,255,255,.85);
}

.testimonial-slider{
    position:relative;
    z-index:2;
}

.testimonial-card{

    background:#fff;

    max-width:720px;

    margin:auto;

    padding:70px 60px;

    text-align:center;

    box-shadow:0 25px 70px rgba(11,35,65,.12);

    border-top:4px solid var(--secondary);

    position:relative;
}

.testimonial-card i{

    font-size:4rem;

    color:rgba(0,163,163,.15);

    position:absolute;

    top:20px;
    left:30px;
}

.testimonial-card .company{

    display:block;

    text-transform:uppercase;

    letter-spacing:3px;

    color:#888;

    margin-bottom:20px;
}

.testimonial-card h4{

    color:var(--primary);

    margin-bottom:25px;

    font-size:1.6rem;

    font-weight:600;
}

.testimonial-card p{

    color:#667085;

    line-height:2;
}

.testimonial-nav{

    margin-top:60px;

    display:flex;
    gap:15px;
}

.testimonial-nav button{

    width:60px;
    height:60px;

    border-radius:50%;

    border:1px solid rgba(11,35,65,.15);

    background:#fff;

    transition:.4s;
}

.testimonial-nav button:hover{

    background:var(--secondary);
    color:#fff;
    border-color:var(--secondary);
}

     /* ============ PROJECTS SECTION ============ */
  .projects-section {
    padding: 70px 0;
    
  }
 
  /* header row: heading left, button right */
  .projects-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
    flex-wrap: wrap;
    margin-bottom: 0px;
    /* margin-bottom: 60px; */
  }
 
 
  .projects-head h2 em { font-style: italic; color: var(--secondary); }
 .testimonial-content h2 em{
  color: var(--secondary);  
 }
  .btn-viewall {
    font-size: .8rem;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
    border-radius: 0;
    padding: 15px 40px;
    background: transparent;
    color: var(--ink);
    border: 1px solid var(--ink);
    white-space: nowrap;
    transition: all .35s ease;
  }
  .btn-viewall:hover {
    background: var(--brass);
    border-color: var(--brass);
    color: #fff;
  }
 
  /* ---- project card ---- */
  .project-card {
    position: relative;
    display: block;
    overflow: hidden;
    text-decoration: none;
    background: var(--ink);
    cursor: zoom-in;
    border-radius: 10px;
  }
 
  .project-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .8s cubic-bezier(.22,.61,.36,1), opacity .5s ease;
  }
  .project-card:hover img {
    transform: scale(1.08);
    opacity: .55;
  }
 
  /* card heights: tall cards + regular cards for a collage feel */
  .project-card.h-tall { height: 560px; }
  .project-card.h-reg  { height: 265px; }
 
  /* caption slides up on hover */
  .project-caption {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    padding: 26px 28px;
    color: #fff;
    background: linear-gradient(to top, rgba(20,18,16,.85), rgba(20,18,16,0));
    transform: translateY(14px);
    opacity: 0;
    transition: transform .5s ease, opacity .5s ease;
    pointer-events: none;
  }
  .project-card:hover .project-caption {
    transform: translateY(0);
    opacity: 1;
  }
 
  .project-caption .cat {
    display: block;
    font-size: .7rem;
    font-weight: 500;
    letter-spacing: .28em;
    text-transform: uppercase;
    color: var(--brass);
    margin-bottom: 8px;
  }
  .project-caption h3 {
    font-size: 1.35rem;
    color: #fff;
    margin: 0;
  }
 
  /* zoom icon top-right of card on hover */
  .project-card .go {
    position: absolute;
    top: 22px; right: 22px;
    width: 44px; height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--brass);
    color: #fff;
    font-size: 1.1rem;
    transform: translateY(-10px);
    opacity: 0;
    transition: transform .5s ease .05s, opacity .5s ease .05s;
    pointer-events: none;
  }
  .project-card:hover .go {
    transform: translateY(0);
    opacity: 1;
  }
 
  /* keep gutters consistent with tall/regular stacking */
  .projects-grid { --bs-gutter-x: 1.5rem; --bs-gutter-y: 1.5rem; }
 
  /* ---- lightbox theming to match the site ---- */
  .glightbox-clean .gslide-media {
    box-shadow: 0 30px 80px rgba(0,0,0,.45);
  }
  .glightbox-clean .gslide-title {
    font-family: "Marcellus", serif;
    font-size: 1.4rem;
    color: #fff;
    margin-bottom: 4px;
  }
  .glightbox-clean .gslide-desc {
    font-family: "Jost", sans-serif;
    font-size: .78rem;
    font-weight: 500;
    letter-spacing: .28em;
    text-transform: uppercase;
    color: var(--brass);
  }
  .glightbox-clean .gslide-description {
    background: transparent;
  }
  .goverlay { background: rgba(20,18,16,.94); }
  .glightbox-clean .gnext,
  .glightbox-clean .gprev,
  .glightbox-clean .gclose {
    background: rgba(176,141,87,.9); /* brass */
    border-radius: 0;
  }
  .glightbox-clean .gnext:hover,
  .glightbox-clean .gprev:hover,
  .glightbox-clean .gclose:hover {
    background: var(--brass-dark, #97753f);
  }
 




/* ==========================
   CTA SECTION
========================== */

.cta-section{
    position:relative;
    padding:70px 0;
    overflow:hidden;
}

.cta-bg{
    position:absolute;
    inset:0;

    background:
    url("../images/cta-bg.png")
    center center/cover no-repeat;

    background-attachment:fixed;
 
}

.cta-overlay{
    position:absolute;
    inset:0;

    background:
    linear-gradient(135deg, rgba(20, 18, 16, .88), rgb(20 18 16 / 84%));
}

.cta-content{
    position:relative;
    z-index:2;
    max-width:900px;
    margin:auto;
}

.cta-content h2{
    color:#fff;
    font-size:50px;
    line-height:1.15;
    margin:25px 0;
}

.cta-content h2 em{
    color:var(--brass);
    font-style:italic;
}

.cta-content p{
    color:rgba(255,255,255,.82);
    font-size:1.1rem;
    font-weight:300;
    line-height:1.9;
    max-width:760px;
    margin:0 auto 45px;
}

.cta-buttons{
    display:flex;
    justify-content:center;
    gap:20px;
    flex-wrap:wrap;
}

/* Primary Button */

.btn-cta-primary{
    background:var(--accent);
    color:#fff;
    border:1px solid var(--accent);

    padding:18px 42px;

    font-size:.82rem;
    font-weight:500;
    letter-spacing:.22em;
    text-transform:uppercase;
        border-radius: 50px;
    transition:.4s ease;
}

.btn-cta-primary:hover{
    background:var(--brass-dark);
    border-color:var(--brass-dark);
    color:#fff;
    transform:translateY(-3px);
}

/* Secondary Button */

.btn-cta-secondary{
    background:transparent;
    color:#fff;
    border:1px solid rgba(255,255,255,.45);
    border-radius: 50px;
    padding:18px 42px;

    font-size:.82rem;
    font-weight:500;
    letter-spacing:.22em;
    text-transform:uppercase;

    transition:.4s ease;
}

.btn-cta-secondary:hover{
    background:#fff;
    color:var(--ink);
    border-color:#fff;
    transform:translateY(-3px);
}

/* subtle glow */

.cta-content::after{
    content:"";

    position:absolute;

    left:50%;
    top:50%;

    transform:translate(-50%,-50%);

    width:550px;
    height:550px;

    background:radial-gradient(
    circle,
    rgba(176,141,87,.12),
    transparent 70%
    );

    pointer-events:none;
}

/* ==========================
   FOOTER
========================== */

.site-footer{
    background:var(--secondary);
    color:#fff;
    padding-top:100px;
    position:relative;
}

.footer-logo{
    display:inline-block;
    text-decoration:none;

    font-family:"Marcellus", serif;
    font-size:1.6rem;
    color:#fff;

    margin-bottom:25px;
}

.footer-logo span{
    color:var(--brass);
}

.footer-about{
    color:#fff;
    /* color:rgba(255,255,255,.70); */
    line-height:1.9;
    font-weight:300;
    max-width:380px;
}

.site-footer h4{
    color:#fff;
    margin-bottom:28px;
    font-size:1.3rem;
}

.footer-links,
.footer-contact{
    list-style:none;
    padding:0;
    margin:0;
}

.footer-links li{
    margin-bottom:14px;
}

.footer-links a{
    text-decoration:none;
    color:#fff;
    /* color:rgba(255,255,255,.70); */
    transition:.35s ease;
}

.footer-links a:hover{
    color:var(--brass);
    padding-left:6px;
}

.footer-contact li{
    display:flex;
    gap:12px;
    margin-bottom:18px;
    color:rgba(255,255,255,.70);
    line-height:1.7;
}

.footer-contact i{
    color: #fff;
    /* color:var(--brass); */
    margin-top:4px;
}

.footer-contact a{
    color: #fff;
    /* color:rgba(255,255,255,.70); */
    text-decoration:none;
}

.footer-contact a:hover{
    color:var(--brass);
}

/* contact grid for address lines */
.footer-contact .contact-grid{
    display:grid;
    grid-template-columns:32px 1fr;
    gap:12px;
    align-items:start;
}
.footer-contact .contact-grid-icon i{
    font-size:1.15rem;
    color: #fff;
    /* color:var(--secondary); */
}
.footer-contact .contact-grid-content address{
    margin:0;
    font-style:normal;
    color:rgba(255,255,255,.85);
}

.footer-bottom{
    margin-top:70px;
    border-top:1px solid rgb(255 255 255 / 30%);
    padding:28px 0;

}

.footer-bottom-inner{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    flex-wrap:wrap;
}

.footer-bottom p{
    margin:0;
    color:#fff;
    font-size:.95rem;
}

.footer-bottom p a{
    margin:0;
    color:rgba(255,255,255,.55);
    font-size:.95rem;
}

/* ==========================
   INNER HERO
========================== */

.inner-hero{
    position:relative;
    min-height:400px;
    display:flex;
    align-items:center;
    overflow:hidden;
}

.inner-hero-bg{
    position:absolute;
    inset:0;
    background:
    url("../images/hero-banner.png")
    center center/cover no-repeat;

    background-attachment:fixed;
    transform:scale(1.05);
}

.inner-hero-overlay{
    position:absolute;
    inset:0;

    background:
    linear-gradient(90deg, rgb(20 18 16) 0%, rgba(20, 18, 16, .45) 45%, rgb(20 18 16 / 96%) 100%);
}

.inner-hero-content{
    position:relative;
    z-index:2;
    max-width:700px;
}


.inner-hero h1{
    /* font-family:"Marcellus", serif; */
    /* font-size:clamp(3rem,5vw,5.5rem); */
    font-size: 35px;
    color:#fff;
    margin:25px 0;
    line-height:1.1;
}

.breadcrumb-wrap{
    display:flex;
    align-items:center;
    gap:14px;
}

.breadcrumb-wrap a{
    color:rgba(255,255,255,.85);
    text-decoration:none;
    transition:.3s;
}

.breadcrumb-wrap a:hover{
    color:var(--brass);
}

.breadcrumb-wrap i{
    color:rgba(255,255,255,.5);
    font-size:.8rem;
}

.breadcrumb-wrap .active{
    color:var(--secondary);
}


/* ==========================
   WORK VIDEO SECTION
========================== */

.work-video-section{
    padding:70px 0;
    background:var(--ivory);
}

.section-heading{
    margin-bottom:60px;
}

.section-heading h2{
    max-width: 850px;
    font-size: clamp(2.2rem, 3vw, 4rem);
    line-height: 1.15;
    margin-top: 20px;
    font-weight: 700;
}

.section-heading h2 em{
    color:var(--secondary);
    font-style:italic;
}

.video-card{
    transition:.4s ease;
}

.video-card:hover{
    transform:translateY(-6px);
}

.video-card video{
    width:100%;
    height:420px;
    object-fit:cover;
    border-radius:12px;
    display:block;
}

.video-card h4{
    margin-top:18px;
    font-size:1.3rem;
    font-family:"Marcellus", serif;
    color:var(--ink);
}




/* ==========================
   CONTACT STRIP
========================== */

.contact-strip{
    padding:90px 0;
    background:var(--ivory);
}

.contact-box{
    text-align:center;
    padding:0 40px;
    position:relative;
}

.contact-box::after{
    content:"";
    position:absolute;
    right:0;
    top:50%;

    width:1px;
    height:100px;

    background:rgba(30,28,26,.12);

    transform:translateY(-50%);
}

.contact-box:last-child::after{
    display:none;
}

.contact-icon{
    margin-bottom:25px;
}

.contact-icon i{
    font-size:1.6rem;
    color:var(--accent);
}

.contact-content{
    color:rgba(30,28,26,.65);
    line-height:2;
}

.contact-content a{
    display:block;
    text-decoration:none;
    color:rgba(30,28,26,.65);
    transition:.3s;
}

.contact-content a:hover{
    color:var(--brass);
}

   .contact-box{
        padding:35px 20px;
    }

    .contact-box::after{
        display:none;
    }

/* ==========================
   MAP
========================== */

.map-section{
    line-height:0;
}

.map-section iframe{
    width:100%;
    height:400px;
    border:0;
    display:block;
}
.b-right{
      border-right: 0.5px solid var(--secondary);
}









 /* mobile dropdown panel */
    @media (max-width: 991px) {
      .navbar-collapse{
        margin-top:20px;
        background:#fff;
        padding:25px;
        border-radius:15px;
        box-shadow:0 15px 40px rgba(0,0,0,.08);
    }

    .navbar-custom .nav-link{
        color:var(--dark);
        padding:10px 0;
        margin:0;
    }

    .btn-quote{
        margin-top:15px;
        width:100%;
        text-align:center;
    }

         .contact-box{
        padding:35px 20px;
    }

    .why-image-wrapper{
        height:500px;
    }

    .experience-badge{
        right:20px;
        width:140px;
        height:140px;
    }

    .experience-badge span{
        font-size:2.2rem;
    }
.b-right{
      border-bottom: 0.5px solid var(--brass);
      border-right: none;
}

.about-section{
        padding:90px 0;
    }

    .about-image img{
        height:450px;
    }
.btn-hero-ghost{
  display: none;
}
.contact-strip {
    padding: 30px 0;
  }
    .contact-box::after{
        display:none;
    }

    .why-us-section{
        padding:90px 0;
    }
  
    .about-details-section{
        padding:90px 0;
    }

    .about-image img{
        height:400px;
    }
  .services-section{
    padding:90px 0;
  }
   .cta-section{
        padding:120px 0;
    }

      .site-footer{
        padding-top:80px;
    }

    .work-video-section{
        padding:90px 0;
    }

    .video-card video{
        height:320px;
    }
    .footer-bottom-inner{
        text-align:center;
        justify-content:center;
    }

    .cta-bg{
        background-attachment:scroll;
    }

    .cta-content h2{
        font-size:2.3rem;
    }

    .cta-content::after{
        width:320px;
        height:320px;
    }
  
.faq-section{
        padding:90px 0;
    }

    .faq-question span{
        font-size:1.1rem;
    }
      .hero-card { display: none; }

      .story-section { padding: 90px 0; }
      .story-collage { min-height: 460px; margin-top: 60px; }
      .projects-section { padding: 90px 0; }
    .project-card.h-tall { height: 420px; }
    .project-card.h-reg  { height: 300px; }

     .services-section{
        padding:90px 0;
    }

    .service-card{
        padding:35px 25px;
    }

        .process-flow{
        grid-template-columns:1fr;
        gap:25px;
    }

    .process-flow::before{
        display:none;
    }

    .process-node{
        transform:none !important;
    }

    .process-node::after{
        display:none;
    }


    }

    @media(max-width:767px){

    .services-heading h2{
        font-size:2rem;
    }

    .service-number{
        font-size:2.8rem;
    }

     .why-us-section{
        padding:90px 0;
    }

    .why-image-wrapper{
        height:400px;
    }

    .why-stats{
        flex-direction:column;
        gap:20px;
    }

}

     @media (max-width: 576px) {
      .process-step { padding-left: 66px; }
      .process-step::before { left: 48px; }
      .process-step .step-num { font-size: 1.5rem; }
      .story-collage { min-height: 340px; }
       .project-card.h-tall,
    .project-card.h-reg { height: 320px; }
        .about-details-section {
        padding: 50px 0;
    }
        .cta-section {
        padding: 50px 0;
    }
    .projects-section {
        padding: 50px 0;
    }
    .btn-cta-primary, .btn-cta-secondary {
    padding: 12px 30px;
  }
.hero-eyebrow{
  display: none;
}

    .story-section, .services-section, .testimonial-section, .faq-section {
        padding: 50px 0;
    }
.navbar-brand img {
    width: 66%;
}
.about-content h2, .testimonial-content h2, .projects-head h2, .hero h1, .story-section h2, .services-heading h2, .process-header h2, .why-content h2{
        font-size: 30px;
}
.testimonial-section{
    padding: 0;
}
.hero {
    min-height: 610px;
}

.testimonial-content {
    padding: 30px;
}
.testimonial-bg {
    position: relative;
    padding: 50px 0;
}

.process-section {
    padding: 30px 0;
}
.work-video-section {
        padding: 30px 0;
    }
.process-header {
    margin-bottom: 50px;
}

    .cta-content h2 {
        font-size: 30px;
    }

    .why-stats {
        flex-direction: column;
        gap: 20px;
        justify-content: center;
        align-items: center;
        text-align: center;
    }

    .why-stats div {
    position: static;
}

.why-us-section{
    padding: 0px 0;
}

.footer-logo img{
    width: 40%;
}

    .site-footer
 {
        padding-top: 50px;
    }

    }



.dropdown-item.active, .dropdown-item:active {
    background: none;
}


.clients-section {
    padding: 70px 0;
    background: url("../images/clients-bg.jpg") center center/cover no-repeat;
}
i.bi.bi-facebook {
    font-size: 22px;
    color: #fff;
}
.social-link a {
    color: #fff;
    font-size: 22px;
}
img.collage-main.h-150.aos-init.aos-animate {
    height: auto;
    width: 100%;
}

img.services-image.aos-init.aos-animate {
    width: 250px;
    border: 2px dotted;
    border-radius: 10px;
    margin-top: 35px;
}