/* ===== Site-wide full-width layout (loaded after main.css) ===== */
body{
    background:#fff;
    -webkit-font-smoothing:antialiased;
}
.wrapper{ padding-top:96px; }
.wrapper > div > .container,
.wrapper header .container,
.wrapper footer .container{
    width:100%;
    max-width:none;
}

/* --- Header --- */
header{
    background:rgba(255,255,255,.96);
    -webkit-backdrop-filter:blur(8px);
    backdrop-filter:blur(8px);
    box-shadow:0 1px 0 rgba(0,0,0,.06), 0 6px 24px rgba(20,24,80,.06);
}
header .container{ padding:22px 48px; background:transparent; }
@media (min-width:1200px){
    header .header-wrapper > .col-md-12{
        display:grid;
        grid-template-columns:1fr auto 1fr;
        align-items:center;
    }
    header .header-wrapper .logo{ justify-self:start; float:none; }
    header .header-wrapper nav{ float:none; }
    header .header-wrapper .contact-number{ justify-self:end; float:none; margin-top:0; }
    header .header-wrapper nav .main-nav li a{ margin:0 clamp(12px, 1.6vw, 28px); }
}
header .main-nav li a:after{ height:2px; bottom:-6px; background:transparent; transform:scaleX(0); transform-origin:left; }
header .main-nav li a:hover:after,
header .main-nav li a.active:after{ background:#2f3483; transform:scaleX(1); }

/* --- Inner-page banner images (About, Services, Blog, Contact...) --- */
.hero-section .container{ padding:0; }
.hero-section .row{ margin:0; }
.hero-section .row > img.img-responsive{
    width:100%;
    height:clamp(260px, 42vh, 480px);
    object-fit:cover;
}

/* --- Intro bands (home + contact) --- */
.home-intro .container{ padding:0; }
.home-intro .row{ margin:0; }
.intro-content{
    border-bottom:0;
    padding:90px 12% 96px;
    background:#2f3483;
    background:linear-gradient(135deg, #2f3483 0%, #1f2366 100%);
}
.intro-content p{ max-width:1100px; margin-left:auto; margin-right:auto; }
.primary-bg .more-btn,
.intro-content a.more-btn{
    color:#fff;
    border-radius:40px;
    margin-top:20px;
}

/* --- Generic content sections (About, Services, Blog, landing pages) --- */
.section .primary-bg{
    padding:70px 12%;
    background:linear-gradient(135deg, #2f3483 0%, #1f2366 100%);
}
.section .primary-bg > *{ margin-left:auto; margin-right:auto; }
.section .primary-bg p,
.section h1 + p, .section h2 + p{ max-width:1100px; }
.section p{ max-width:1100px; }
.section .about-content,
.section .service-content{
    padding-left:max(20px, calc((100% - 1200px) / 2));
    padding-right:max(20px, calc((100% - 1200px) / 2));
}
.section .about-content{ padding-top:50px; padding-bottom:50px; }
.section .row > img.img-responsive{
    width:100%;
    max-height:560px;
    object-fit:cover;
}
.section .more-btn{ border-radius:40px; }
.section .row > .more-btn{ margin-top:10px; }

/* --- Services page --- */
.service-tags{
    list-style:none;
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:10px;
    max-width:1000px;
    margin:28px auto 0;
}
.service-tags li{
    padding:5px 16px;
    font-size:14px;
    border:1px solid rgba(255,255,255,.45);
    border-radius:20px;
    background:rgba(255,255,255,.06);
}
.section .service-content.light-bg{ background:#f5f6fa; }
.service-row{ display:flex; flex-wrap:wrap; align-items:center; }
.service-graph img{ margin:0 auto; }
.service-card{
    background:#fff;
    border-radius:6px;
    padding:36px 40px;
    box-shadow:0 6px 22px rgba(20,24,80,.07);
}
.section .service-card h3{
    margin:0 0 20px;
    padding-bottom:16px;
    border-bottom:1px solid #e6e8f0;
}
.service-list > li{
    position:relative;
    padding:9px 0 9px 32px;
    border-bottom:1px solid #f0f1f6;
}
.service-list > li:last-child{ border-bottom:0; }
.service-list > li:before{
    content:"\f00c";
    font-family:FontAwesome;
    position:absolute;
    left:0; top:9px;
    width:22px; height:22px;
    line-height:22px;
    margin-top:4px;
    text-align:center;
    font-size:11px;
    color:#2f3483;
    background:rgba(47,52,131,.1);
    border-radius:50%;
}
.service-list a{ color:#252525; transition:color .3s ease; }
.service-list a:hover{ color:#2f3483; text-decoration:none; }
.service-list a:after{
    content:"\f105";
    font-family:FontAwesome;
    margin-left:8px;
    color:#2f3483;
}
.section .service-content .service-sub{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin:12px 0 4px;
}
.section .service-content .service-sub li{
    font-size:14px;
    line-height:22px;
    padding:7px 12px;
    background:#f5f6fa;
    border-radius:4px;
}
.clients-logos{
    max-width:1200px;
    margin:0 auto;
    padding:40px 20px 10px;
}
.clients-logos img{ width:100%; }

/* --- Projects page --- */
.page-title .container{
    padding-left:48px; padding-right:48px;
    background:#fff;
    border-top:0;
    border-bottom:1px solid #e6e8f0;
}
.page-title .filter-container .filter-categories{
    background:#fff;
    border:1px solid #dfe2ec;
    border-radius:4px;
}
.page-title .filter-container .filter-categories ul{
    border-radius:4px;
    color:#252525;
}
.page-title .filter-container .filter-categories:hover ul{
    border:1px solid #dfe2ec;
    box-shadow:0 12px 28px rgba(20,24,80,.12);
}
.page-title .filter-container .filter-categories ul li:hover,
.page-title .filter-container .filter-categories ul li.active{ background:#f0f1f8; color:#2f3483; }
.featured-projects .container{ padding-left:48px; padding-right:48px; }
.featured-projects #projects-container{ background:transparent; }
.featured-projects .container.white-bg:has(#projects-container){ background:#f5f6fa; padding-top:50px; padding-bottom:60px; }
#projects-container .mix{ width:20%; height:calc(13vw + 120px); }
#projects-container .img-block{
    border-radius:6px;
    box-shadow:0 8px 22px rgba(20,24,80,.10);
    transition:transform .35s ease, box-shadow .35s ease;
}
#projects-container .mix:hover .img-block{
    transform:translateY(-5px);
    box-shadow:0 18px 34px rgba(20,24,80,.18);
}
#projects-container .img-block:after{ background:rgba(31,35,102,.6); }
#projects-container .img-block:hover img{ transform:scale(1.08); }
#projects-container h4.projhead{ margin-top:4px; }
#projects-container p.secondary.projhead{
    display:inline-block;
    margin-top:8px;
    padding:2px 12px;
    font-size:12px;
    color:#2f3483;
    background:rgba(47,52,131,.08);
    border-radius:20px;
}

/* --- Contact page --- */
.contact-form-container .container{ background:#f5f6fa; }
.contact-form-container .contact-form .form-control{ border:1px solid #e2e4ee; border-radius:4px; }
.contact-form-container .contact-form .btn-send{ border-radius:40px; }

.contact-split .container{
    padding-top:80px;
    padding-bottom:80px;
    padding-left:max(24px, calc((100% - 1320px) / 2));
    padding-right:max(24px, calc((100% - 1320px) / 2));
}
.contact-split .row{ display:flex; flex-wrap:wrap; }
.contact-split-title{
    margin:0 0 30px;
    font-size:18px;
    font-weight:600;
    text-transform:uppercase;
    color:#252525;
}
.contact-split-title:after{
    content:"";
    display:block;
    width:48px; height:3px;
    background:#2f3483;
    margin-top:14px;
}
.contact-split-form{ padding-right:40px; }
.contact-split .contact-form{ width:100%; max-width:none; margin:0; }
.contact-split .contact-form .btn-send{ margin-top:10px; }

.contact-split-address .address-card{
    background:#fff;
    border-radius:6px;
    padding:26px 28px;
    margin-bottom:24px;
    box-shadow:0 6px 22px rgba(20,24,80,.07);
    border-left:4px solid #2f3483;
}
.address-card h4{
    margin:0 0 16px;
    font-size:16px;
    font-weight:600;
    color:#2f3483;
}
.address-card h4 .fa{ margin-right:8px; }
.address-list{ list-style:none; }
.address-list li{
    display:flex;
    align-items:flex-start;
    font-size:14px;
    line-height:24px;
    margin-bottom:10px;
    color:#555;
}
.address-list li:last-child{ margin-bottom:0; }
.address-list li .fa{
    flex:0 0 30px;
    width:30px; height:30px;
    line-height:30px;
    margin-right:14px;
    margin-top:-3px;
    text-align:center;
    font-size:14px;
    color:#2f3483;
    background:rgba(47,52,131,.08);
    border-radius:50%;
}
.address-list li a{ color:#2f3483; }

.map-full .container{ padding:0; }
.map-full .row{ margin:0; }
.corporate-location.map-full .embedded-map{
    position:relative;
    top:auto; right:auto; bottom:auto; left:0;
    width:100%;
    height:480px;
}

/* --- Contact strip + footer --- */
.contact-info .container{ padding:0; }
.contact-info .row{ margin:0; }
.contact-info .content{
    border-top:0;
    padding:80px 12%;
    background:linear-gradient(135deg, #2f3483 0%, #1f2366 100%);
}
.contact-info .content a:not(.more-btn){ border-bottom:1px solid rgba(255,255,255,.4); }
.contact-info .content .more-btn{ border-radius:40px; }
footer{ background:#14163d; color:rgba(255,255,255,.65); padding:44px 0 34px; }
footer a{ color:rgba(255,255,255,.85); }
footer a:hover{ color:#fff; }
footer .social a{ opacity:.85; transition:opacity .3s ease, transform .3s ease; }
footer .social a:hover{ opacity:1; transform:translateY(-3px); }
footer .social a img{
    border-radius:50%;
    -webkit-clip-path:circle(46% at 50% 50%);
    clip-path:circle(46% at 50% 50%);
}

/* --- Responsive --- */
@media (max-width:1199px){
    #projects-container .mix{ width:25%; height:calc(17vw + 120px); }
}
@media (max-width:991px){
    header .container{ padding:22px 24px; }
    .intro-content{ padding:64px 6%; }
    .section .primary-bg{ padding:56px 6%; }
    .page-title .container,
    .featured-projects .container{ padding-left:24px; padding-right:24px; }
    #projects-container .mix{ width:33.333%; height:calc(23vw + 120px); }
    .contact-split-form{ padding-right:15px; margin-bottom:40px; }
}
@media (max-width:767px){
    .wrapper{ padding-top:74px; }
    header .container{ padding:15px 20px; }
    .hero-section .row > img.img-responsive{ height:220px; }
    .intro-content{ padding:50px 20px; }
    .section .primary-bg{ padding:44px 20px; }
    .page-title .container,
    .featured-projects .container{ padding-left:12px; padding-right:12px; }
    #projects-container .mix{ width:50%; height:0; }
    .service-card{ padding:26px 20px; margin-top:30px; }
    .section .service-content .service-sub{ grid-template-columns:1fr; }
    .contact-split .container{ padding-top:50px; padding-bottom:50px; }
    .contact-split #contactForm{ margin-bottom:0; }
    .corporate-location.map-full .embedded-map{ height:360px; }
    .contact-info .content{ padding:56px 20px; }
}
@media (max-width:500px){
    #projects-container .mix{ width:100%; height:auto; }
}
