/* ======================================
   GOOGLE FONTS
====================================== */

/*
Heading Font: Space Grotesk
Body Font: Inter

<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
*/


/* ======================================
   ROOT VARIABLES
====================================== */

:root{

    /* Colors */
    --primary:#00338D;
    --secondary:#00245F;
    --accent:#F2B705;
    --dark:#0F172A;
    --light:#F8FAFC;
    --text:#334155;
    --border:#E2E8F0;

    /* Typography */
    --heading-font:'Space Grotesk', sans-serif;
    --body-font:'Inter', sans-serif;

    /* Font Weights */
    --fw-light:300;
    --fw-regular:400;
    --fw-medium:500;
    --fw-semibold:600;
    --fw-bold:700;
    --fw-extrabold:800;

    /* Transition */
    --transition:.3s ease;
}


/* ======================================
   GLOBAL TYPOGRAPHY
====================================== */

html{
    scroll-behavior:smooth;
}

body{
    font-family:var(--body-font);
    font-size:16px;
    font-weight:400;
    line-height:1.8;
    color:var(--text);
    background:#fff;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
}


/* ======================================
   HEADINGS
====================================== */

h1,
h2,
h3,
h4,
h5,
h6{
    font-family:var(--heading-font);
    color:var(--dark);
    margin:0;
    font-weight:700;
    line-height:1.2;
}

h1{
    font-size:72px;
    font-weight:700;
    letter-spacing:-2px;
}

h2{
    font-size:52px;
    font-weight:700;
    letter-spacing:-1px;
}

h3{
    font-size:38px;
    font-weight:700;
}

h4{
    font-size:30px;
    font-weight:600;
}

h5{
    font-size:24px;
    font-weight:600;
}

h6{
    font-size:20px;
    font-weight:600;
}


/* ======================================
   PARAGRAPHS
====================================== */

p{
    margin-bottom:20px;
    font-size:16px;
    line-height:1.8;
    color:var(--text);
}


/* ======================================
   LINKS
====================================== */

a{
    text-decoration:none;
    transition:var(--transition);
    color:inherit;
}

a:hover{
    text-decoration:none;
    color:var(--primary);
}


/* ======================================
   SMALL TEXT
====================================== */

small{
    font-size:14px;
    line-height:1.6;
}


/* ======================================
   LISTS
====================================== */

ul,
ol{
    margin:0;
    padding:0;
    list-style:none;
}


/* ======================================
   BUTTON TYPOGRAPHY
====================================== */

.btn,
button{
    font-family:var(--body-font);
    font-size:15px;
    font-weight:600;
    letter-spacing:.5px;
    text-transform:uppercase;
}


/* ======================================
   HERO TYPOGRAPHY
====================================== */

.hero-title{
    font-size:72px;
    font-weight:700;
    line-height:1.05;
    letter-spacing:-2px;
    color:#fff;
}

.hero-subtitle{
    font-size:18px;
    font-weight:500;
    line-height:1.8;
    color:rgba(255,255,255,.85);
}


/* ======================================
   SECTION TITLES
====================================== */

.section-subtitle{
    display:inline-block;
    font-size:14px;
    font-weight:700;
    letter-spacing:2px;
    text-transform:uppercase;
    color:var(--accent);
    margin-bottom:15px;
}

.section-title{
    font-size:52px;
    font-weight:700;
    line-height:1.2;
    margin-bottom:25px;
}


/* ======================================
   SERVICE CARD TYPOGRAPHY
====================================== */

.service-card h3{
    font-size:28px;
    margin-bottom:15px;
}

.service-card p{
    font-size:15px;
}

.services-slider .owl-item.active.center .service-card{
    border-color:rgba(0,51,141,.25);
}

.services-slider .owl-item.active.center .service-card::before{
    transform:scaleX(1);
}


/* ======================================
   TESTIMONIAL TYPOGRAPHY
====================================== */

.testimonial-content{
    font-size:22px;
    line-height:1.8;
    font-weight:500;
}

.testimonial-author{
    font-size:18px;
    font-weight:700;
}

.testimonial-location{
    font-size:14px;
    opacity:.8;
}


/* ======================================
   FAQ TYPOGRAPHY
====================================== */

.faq-question{
    font-size:20px;
    font-weight:600;
}

.faq-answer{
    font-size:16px;
}


/* ======================================
   FOOTER TYPOGRAPHY
====================================== */

.footer-title{
    font-size:22px;
    font-weight:700;
    margin-bottom:20px;
}

.footer-links a{
    font-size:15px;
}


/* ======================================
   TEXT UTILITIES
====================================== */

.text-primary{
    color:var(--primary)!important;
}

.text-accent{
    color:var(--accent)!important;
}

.text-dark{
    color:var(--dark)!important;
}

.fw-300{
    font-weight:300;
}

.fw-400{
    font-weight:400;
}

.fw-500{
    font-weight:500;
}

.fw-600{
    font-weight:600;
}

.fw-700{
    font-weight:700;
}

.fw-800{
    font-weight:800;
}

.section-padding{

    padding:120px 0;

}

/*=====================================================
                    HEADER
=====================================================*/

.header{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    z-index:9999;
    padding:18px 0;
    transition:.35s ease;
}

/*=====================================================
                STICKY HEADER
=====================================================*/

.header.sticky{
    position:fixed;
    top:0;
    left:0;
    animation:headerDown .4s ease;
}

@keyframes headerDown{

    from{
        opacity:0;
        transform:translateY(-100%);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }

}

.header.sticky .main-navbar{

    background:#ffffff;

    box-shadow:0 15px 40px rgba(0,0,0,.08);

    border:1px solid rgba(0,0,0,.06);

}

/*=====================================================
                NAVBAR
=====================================================*/

.main-navbar{

    display:flex;

    align-items:center;

    justify-content:space-between;

    height:72px;

    padding:0 22px;

    border-radius:16px;

    background:rgba(255,255,255,.10);

    backdrop-filter:blur(16px);

    -webkit-backdrop-filter:blur(16px);

    border:1px solid rgba(255,255,255,.15);

    transition:.35s ease;

}

/*=====================================================
                    LOGO
=====================================================*/

.navbar-logo{

    display:flex;

    align-items:center;

    flex-shrink:0;

}

.navbar-logo img{

    width:85px;

    height:auto;

    display:block;

    transition:.35s ease;

}

.header.sticky .navbar-logo img{

    width:80px;

}

/*=====================================================
                NAVIGATION
=====================================================*/

.navbar-menu{

    display:flex;

    align-items:center;

    justify-content:center;

    list-style:none;

    margin:0;

    padding:0;

    flex:1;

    gap:5px;

}

.navbar-menu>li{

    position:relative;

}

.navbar-menu>li>a{

    display:flex;

    align-items:center;

    gap:6px;

    padding:10px 14px;

    color:#ffffff;

    font-size:15px;

    font-weight:600;

    transition:.3s ease;

    position:relative;

}

.header.sticky .navbar-menu>li>a{

    color:#222;

}

.navbar-menu>li>a:hover{

    color:var(--accent);

}

.navbar-menu>li.active>a{

    color:var(--accent);

}

/*=====================================================
                UNDERLINE
=====================================================*/

.navbar-menu>li>a::after{

    content:"";

    position:absolute;

    left:14px;

    bottom:4px;

    width:0;

    height:2px;

    border-radius:50px;

    background:var(--accent);

    transition:.35s ease;

}

.navbar-menu>li:hover>a::after,

.navbar-menu>li.active>a::after{

    width:calc(100% - 28px);

}

/*=====================================================
                RIGHT SIDE
=====================================================*/

.navbar-right{

    display:flex;

    align-items:center;

    gap:10px;

}

/*=====================================================
                PHONE BUTTON
=====================================================*/

.phone-btn{

    width:42px;

    height:42px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:rgba(255,255,255,.12);

    border:1px solid rgba(255,255,255,.18);

    color:#fff;

    transition:.3s ease;

}

.header.sticky .phone-btn{

    background:#f5f5f5;

    color:var(--primary);

    border:1px solid #e7e7e7;

}

.phone-btn:hover{

    background:var(--primary);

    color:#fff;

    transform:translateY(-2px);

}

/*=====================================================
                CTA BUTTON
=====================================================*/

.quote-btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:11px 22px;

    border-radius:50px;

    background:var(--primary);

    color:#fff;

    font-size:14px;

    font-weight:600;

    transition:.35s ease;

    white-space:nowrap;

}

.quote-btn:hover{

    background:var(--secondary);

    color:#fff;

    transform:translateY(-2px);

    box-shadow:0 15px 30px rgba(0,51,141,.18);

}

/*=====================================================
                DROPDOWN
=====================================================*/

.has-dropdown{

    position:relative;

}

.has-dropdown>a i{

    font-size:10px;

    margin-left:4px;

    transition:.3s;

}

.has-dropdown:hover>a i{

    transform:rotate(180deg);

}

.dropdown-menu-custom{

    position:absolute;

    top:115%;

    left:0;

    width:260px;

    padding:10px 0;

    margin:0;

    list-style:none;

    background:#fff;

    border-radius:14px;

    border:none;

    opacity:0;

    visibility:hidden;

    transform:translateY(15px);

    transition:.35s ease;

    box-shadow:0 18px 45px rgba(0,0,0,.08);

}

.has-dropdown:hover .dropdown-menu-custom{

    opacity:1;

    visibility:visible;

    transform:translateY(0);

}

.dropdown-menu-custom li{

    margin:0;

}

.dropdown-menu-custom li a{

    display:block;

    padding:13px 22px;

    color:#333;

    font-size:14px;

    font-weight:500;

    transition:.3s;

}

.dropdown-menu-custom li a:hover{

    background:#f7f8fa;

    color:var(--primary);

    padding-left:28px;

}

/*=====================================================
                HAMBURGER
=====================================================*/

.menu-toggle{

    display:none;

    width:46px;

    height:46px;

    border-radius:50%;

    background:rgba(255,255,255,.12);

    border:1px solid rgba(255,255,255,.18);

    position:relative;

    cursor:pointer;

    transition:.3s ease;
}

.menu-toggle:hover{

    background:var(--accent);

    border-color:var(--accent);
}

.header.sticky .menu-toggle{

    background:rgba(0,51,141,.06);

    border-color:rgba(0,51,141,.12);
}

.header.sticky .menu-toggle:hover{

    background:var(--accent);

    border-color:var(--accent);
}

.menu-toggle span{

    position:absolute;

    left:50%;

    width:20px;

    height:2px;

    border-radius:2px;

    background:#fff;

    transform:translateX(-50%);

    transition:.35s cubic-bezier(.68,-.4,.27,1.4);
}

.header.sticky .menu-toggle span{

    background:#222;
}

.menu-toggle:hover span{

    background:#fff;
}

.menu-toggle span:nth-child(1){

    top:17px;
}

.menu-toggle span:nth-child(2){

    top:23px;
}

.menu-toggle span:nth-child(3){

    top:29px;

    width:14px;

    left:calc(50% + 3px);
}

.menu-toggle.active{

    background:var(--accent);

    border-color:var(--accent);
}

.menu-toggle.active span{

    background:#fff;
}

.menu-toggle.active span:nth-child(1){

    transform:translateX(-50%) rotate(45deg);

    top:23px;
}

.menu-toggle.active span:nth-child(2){

    opacity:0;

    transform:translateX(-50%) scale(0);
}

.menu-toggle.active span:nth-child(3){

    transform:translateX(-50%) rotate(-45deg);

    top:23px;

    width:20px;

    left:50%;
}

/*=====================================================
                MOBILE MENU
=====================================================*/

.mobile-menu{

    position:fixed;

    top:0;

    right:-340px;

    width:320px;

    height:100vh;

    background:#fff;

    z-index:99999;

    transition:.4s ease;

    overflow-y:auto;

    padding:30px;

}

.mobile-menu.active{

    right:0;

}

/*=====================================================
            MOBILE HEADER
=====================================================*/

.mobile-header{

    display:flex;

    align-items:center;

    justify-content:space-between;

    margin-bottom:30px;

}

.mobile-header img{

    width:85px;

}

.close-menu{

    width:40px;

    height:40px;

    border:none;

    border-radius:50%;

    background:#f4f4f4;

    cursor:pointer;

    transition:.3s;

}

.close-menu:hover{

    background:var(--primary);

    color:#fff;

}

/*=====================================================
            MOBILE NAV
=====================================================*/

.mobile-nav{

    list-style:none;

    padding:0;

    margin:0;

}

.mobile-nav li{

    border-bottom:1px solid #eee;

}

.mobile-nav li a{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:16px 0;

    color:#222;

    font-size:15px;

    font-weight:600;

    transition:.3s;

}

.mobile-nav li a:hover{

    color:var(--primary);

    padding-left:6px;

}

/*=====================================================
            MOBILE SUBMENU
=====================================================*/

.mobile-submenu{

    display:none;

    list-style:none;

    padding-left:18px;

    margin-bottom:10px;

}

.mobile-submenu li{

    border:none;

}

.mobile-submenu li a{

    font-size:14px;

    padding:10px 0;

    color:#666;

}

/*=====================================================
            MOBILE CTA
=====================================================*/

.mobile-btn{

    display:flex;

    justify-content:center;

    align-items:center;

    margin-top:25px;

    padding:14px;

    width:100%;

    border-radius:50px;

    background:var(--primary);

    color:#fff;

    font-weight:600;

    transition:.35s;

}

.mobile-btn:hover{

    background:var(--secondary);

    color:#fff;

}

/*=====================================================
                OVERLAY
=====================================================*/

.mobile-overlay{

    position:fixed;

    inset:0;

    background:rgba(0,0,0,.55);

    opacity:0;

    visibility:hidden;

    transition:.35s;

    z-index:9998;

}

.mobile-overlay.active{

    opacity:1;

    visibility:visible;

}

/*======================================
HERO SECTION
======================================*/

.hero-section{
    position:relative;
}

.hero-slide{

    position:relative;

    height:100vh;

    min-height:800px;

    display:flex;

    align-items:center;
}

.hero-slide img{

    position:absolute;

    inset:0;

    width:100%;
    height:100%;

    object-fit:cover;
}

.hero-overlay{

    position:absolute;

    inset:0;

    background:
    linear-gradient(
        90deg,
        rgba(0,0,0,.75) 0%,
        rgba(0,0,0,.35) 60%,
        rgba(0,0,0,.20) 100%
    );
}

.hero-content{

    position:relative;

    z-index:2;

    max-width:700px;
}

.hero-subtitle{

    display:inline-block;

    color:var(--accent);

    text-transform:uppercase;

    letter-spacing:2px;

    margin-bottom:20px;

    font-weight:600;
}

.hero-content h1,
.hero-content h2{

    color:#fff;

    font-size:72px;

    line-height:1.1;

    margin-bottom:25px;
}

.hero-content p{

    color:rgba(255,255,255,.85);

    font-size:18px;

    line-height:1.8;

    max-width:650px;

    margin-bottom:40px;
}

.hero-buttons{

    display:flex;

    align-items:center;

    gap:15px;

    flex-wrap:wrap;
}

/* ---------------------------------------------------------------------
   PRIMARY / OUTLINE BUTTON BASE STYLES
   These two classes (.primary-btn / .outline-btn) are reused across the
   hero, FAQ and footer CTA sections. Only the footer-scoped variant had
   base styling in the original stylesheet, so the hero and FAQ buttons
   rendered unstyled. This block gives every use of the classes the same
   pill-button look already defined for .footer-cta-btns, using the same
   variables and values -- no new design, just filling the missing base
   rule so it's consistent everywhere the markup already uses it.
--------------------------------------------------------------------- */
.primary-btn,
.outline-btn{

    min-width:220px;

    height:58px;

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:10px;

    border-radius:60px;

    font-size:15px;

    font-weight:600;

    text-decoration:none;

    transition:all .4s ease;
}

.primary-btn{

    background:linear-gradient(
        135deg,
        var(--accent),
        #f5b301
    );

    color:#fff !important;

    border:none;
}

.primary-btn:hover{

    color:#fff !important;

    transform:translateY(-4px);

    box-shadow:
    0 15px 35px rgba(245,179,1,.25);
}

.outline-btn{

    background:rgba(0,0,0,.03);

    border:1px solid rgba(0,0,0,.12);

    color:var(--dark) !important;
}

.outline-btn:hover{

    background:var(--primary);

    color:#fff !important;

    border-color:var(--primary);

    transform:translateY(-4px);
}

.primary-btn i,
.outline-btn i{

    transition:.3s ease;
}

.primary-btn:hover i,
.outline-btn:hover i{

    transform:translateX(4px);
}

/* Buttons that sit on a dark background (hero, footer CTA) need the
   light glass variant instead of the default light-background outline. */
.hero-buttons .outline-btn,
.footer-cta-btns .outline-btn{

    background:rgba(255,255,255,.08);

    border:1px solid rgba(255,255,255,.2);

    color:#fff !important;

    backdrop-filter:blur(10px);
}

.hero-buttons .outline-btn:hover,
.footer-cta-btns .outline-btn:hover{

    background:#fff;

    color:var(--primary) !important;

    border-color:#fff;
}

/* Swiper */

.hero-slider .swiper-pagination{

    bottom:40px;
}

.hero-slider .swiper-pagination-bullet{

    width:12px;
    height:12px;

    background:#fff;

    opacity:.5;
}

.hero-slider .swiper-pagination-bullet-active{

    opacity:1;

    background:var(--accent);
}

/*======================================
SERVICE STRIP
======================================*/

.service-strip{

    position:relative;

    z-index:30;

    margin-top:-40px;
}

.service-strip .row{

    background:#fff;

    border-radius:20px;

    overflow:hidden;

    box-shadow:
    0 20px 50px rgba(0,0,0,.08);
}

.service-strip-item{

    padding:30px 20px;

    text-align:center;

    border-right:
    1px solid rgba(0,0,0,.06);

    transition:.3s ease;
}

.service-strip-item:last-child{
    border-right:none;
}

.service-strip-item:hover{

    background:#f8fbff;
}

.service-strip-item i{

    font-size:28px;

    color:var(--primary);

    margin-bottom:15px;
}

.service-strip-item h4{

    margin:0;

    font-size:18px;
}

/*======================================
ABOUT SECTION
======================================*/

.about-section{
    position:relative;
    padding:120px 0;
    background:#fff;
    overflow:hidden;
}

.about-shape{
    position:absolute;
    top:-150px;
    right:-150px;
    width:450px;
    height:450px;
    border-radius:50%;
    background:rgba(0,51,141,.04);
    z-index:1;
}

/*======================================
ABOUT IMAGE
======================================*/

.about-image-wrapper{
    position:relative;
    z-index:2;
}

.about-image{
    position:relative;
    overflow:hidden;
    border-radius:20px;
    box-shadow:0 25px 60px rgba(0,0,0,.10);
}

.about-image img{
    width:100%;
    display:block;
    transition:.6s ease;
}

.about-image:hover img{
    transform:scale(1.05);
}

/*======================================
EXPERIENCE BADGE
======================================*/

.experience-badge {
    position: absolute;
    right: -25px;
    top: 0;
    width: 140px;
    height: 140px;
    background: var(--primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    text-align: center;
    box-shadow: 0 20px 50px rgba(0, 51, 141, .25);
    z-index: 5;
    animation: floatBadge 4s ease-in-out infinite;
}

.experience-badge .year-count{
    font-size: 36px;
    font-weight: 700;
    color: #fff;
    line-height: 1;
    margin-bottom: 8px;
}

.experience-badge .year-text{
    font-size:13px;
    font-weight:500;
    color:#fff;
    line-height:1.5;
    max-width:90px;
}

/*======================================
BADGE FLOAT ANIMATION
======================================*/

@keyframes floatBadge{

    0%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-12px);
    }

    100%{
        transform:translateY(0);
    }

}

/*======================================
ABOUT CONTENT
======================================*/

.about-content{
    position:relative;
    z-index:2;
    padding-left:40px;
}

.section-subtitle{
    display:inline-block;
    color:var(--accent);
    font-size:14px;
    font-weight:700;
    letter-spacing:2px;
    text-transform:uppercase;
    margin-bottom:15px;
}

.section-title{
    margin-bottom:25px;
    max-width:600px;
}

.about-content p{
    margin-bottom:20px;
}

/*======================================
FEATURE LIST
======================================*/

.about-features{
    display:flex;
    flex-wrap:wrap;
    margin-top:35px;
    margin-bottom:40px;
}

.feature-item{
    width:50%;
    display:flex;
    align-items:center;
    margin-bottom:18px;
}

.feature-item i{
    width:26px;
    height:26px;

    border-radius:50%;

    background:rgba(242,183,5,.15);
    color:var(--accent);

    font-size:12px;

    display:flex;
    align-items:center;
    justify-content:center;

    margin-right:12px;
}

.feature-item span{
    font-size:15px;
    font-weight:500;
    color:var(--dark);
}

/*======================================
BUTTONS
======================================*/

.about-buttons{
    display:flex;
    align-items:center;
    gap:15px;
}

.btn-primary-custom{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    padding:16px 34px;

    background:var(--primary);
    color:#fff;

    border-radius:8px;

    font-size:14px;
    font-weight:600;

    letter-spacing:.5px;
    text-transform:uppercase;

    transition:.3s ease;
}

.btn-primary-custom:hover{
    background:var(--accent);
    color:var(--dark);
    transform:translateY(-3px);
}

.btn-outline-custom{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    padding:16px 34px;

    border:2px solid var(--primary);

    color:var(--primary);

    border-radius:8px;

    font-size:14px;
    font-weight:600;

    letter-spacing:.5px;
    text-transform:uppercase;

    transition:.3s ease;
}

.btn-outline-custom:hover{
    background:var(--primary);
    color:#fff;
    transform:translateY(-3px);
}

/*======================================
SERVICES SECTION
======================================*/

.services-section{
    position:relative;
    padding:120px 0;
    background:var(--light);
    overflow:hidden;
}

.services-section::before{
    content:'';

    position:absolute;

    top:-150px;
    left:-150px;

    width:400px;
    height:400px;

    border-radius:50%;

    background:rgba(0,51,141,.04);
}

.section-heading{
    max-width:700px;
    margin:0 auto 60px;
}

.section-description{
    max-width:650px;
    margin:0 auto;
}

/*======================================
OWL STRUCTURE FIX
======================================*/

.services-slider .owl-stage{
    display:flex;
}

.services-slider .owl-item{
    display:flex;
    padding-bottom:2px;
}

/* Owl Carousel's outer wrapper clips vertically as well as horizontally
   by default (needed to mask the horizontal slide, not the card content).
   Splitting the axes keeps the slide mask but stops it from shaving off
   the last couple of pixels of card padding around the "Learn More"
   link, which was making the card look like it ran under the section
   below it instead of sitting inside its own breathing room. */
.services-slider .owl-stage-outer{
    overflow:hidden visible;

    padding-bottom:10px;

    margin-bottom:-10px;
}

/*======================================
SERVICE CARD
======================================*/

.service-card {
    position: relative;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 20px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    transition: .4s ease;
    margin: 10px 0 0 0;
}

/* Top Accent Line */

.service-card::before{
    content:'';

    position:absolute;

    top:0;
    left:0;

    width:100%;
    height:4px;

    background:linear-gradient(
        90deg,
        var(--primary),
        var(--accent)
    );

    transform:scaleX(0);

    transform-origin:left;

    transition:.4s ease;

    z-index:3;
}

.services-grid .row{

    margin-left:-18px;

    margin-right:-18px;

}

.services-grid .row > div{

    padding-left:18px;

    padding-right:18px;

    margin-bottom:36px;

}

/* Decorative Corner Shape */

.service-card::after{
    content:'';

    position:absolute;

    top:0;
    right:0;

    width:120px;
    height:120px;

    background:rgba(0,51,141,.03);

    border-radius:0 0 0 100%;

    pointer-events:none;
}

.service-card:hover{
    transform:translateY(-8px);

    border-color:rgba(0,51,141,.22);

    background:linear-gradient(180deg,#fff 0%,#fbfcfe 100%);
}

.service-card:hover::before{
    transform:scaleX(1);
}

/*======================================
SERVICE IMAGE
======================================*/

.service-image{
    position:relative;
    overflow:hidden;
    flex-shrink:0;
}

.service-image::before{
    content:'';

    position:absolute;

    inset:0;

    background:linear-gradient(
        to top,
        rgba(0,0,0,.28),
        transparent 55%
    );

    z-index:1;
}

.service-image img{
    width:100%;
    height:260px;
    object-fit:cover;

    transition:.6s ease;
}

.service-card:hover .service-image img{
    transform:scale(1.08);
}

/*======================================
SERVICE CONTENT
======================================*/

.service-content{
    padding:30px 30px 34px;

    display:flex;
    flex-direction:column;

    flex-grow:1;
}

.service-content h3{
    position:relative;

    font-size:28px;

    min-height:68px;

    display:flex;
    align-items:center;

    margin-bottom:20px;

    padding-bottom:15px;
}

.service-content h3::after{
    content:'';

    position:absolute;

    left:0;
    bottom:0;

    width:40px;
    height:3px;

    background:var(--accent);

    transition:.3s ease;
}

.service-card:hover h3::after{
    width:70px;
}

.service-content p{
    min-height:95px;
    margin-bottom:25px;
}

/*======================================
SERVICE LINK
======================================*/

.service-link{
    margin-top:auto;

    display:inline-flex;
    align-items:center;

    gap:10px;

    color:var(--primary);

    font-weight:600;

    transition:.3s ease;
}

.service-link i{
    transition:.3s ease;
}

.service-card:hover .service-link i{
    transform:translateX(5px);
}

/*======================================
OWL NAVIGATION
======================================*/

.services-slider .owl-nav{
    margin-top:50px;
    text-align:center;
}

.services-slider .owl-prev,
.services-slider .owl-next{

    width:55px;
    height:55px;

    display:flex!important;
    align-items:center;
    justify-content:center;

    border-radius:50%!important;

    background:#fff!important;

    border:1px solid var(--border)!important;

    color:var(--primary)!important;

    margin:0 8px;

    box-shadow:0 10px 25px rgba(0,0,0,.06);

    transition:.3s ease;
}

.services-slider .owl-prev:hover,
.services-slider .owl-next:hover{

    background:var(--primary)!important;

    border-color:var(--primary)!important;

    color:#fff!important;

    transform:translateY(-3px);

    box-shadow:0 15px 30px rgba(0,51,141,.18);
}

.services-slider .owl-nav i,
.services-slider .owl-nav span{
    font-size:18px;
    line-height:1;
}

/*======================================
OWL DOTS
======================================*/

.services-slider .owl-dots{
    margin-top:25px;
    text-align:center;
}

.services-slider .owl-dot span{
    width:12px;
    height:12px;

    background:#d7dce2!important;

    transition:.35s ease;
}

.services-slider .owl-dot:hover span{
    background:var(--accent)!important;
    opacity:.6;
}

.services-slider .owl-dot.active span{
    width:32px!important;

    border-radius:6px!important;

    background:var(--accent)!important;
}

/*======================================
SECTION WATERMARK
======================================*/

.services-section .container{
    position:relative;
    z-index:2;
}

.services-section .container::before{
    content:'FENCING';

    position:absolute;

    top:-40px;
    right:0;

    font-size:140px;
    font-weight:800;

    color:rgba(0,51,141,.03);

    pointer-events:none;

    line-height:1;

    z-index:-1;
}

/*======================================
WHY CHOOSE SECTION
======================================*/

.why-choose-section{
    position:relative;
    padding:120px 0;
    background:var(--dark);
    overflow:hidden;
}

.why-choose-section::before{
    content:'';

    position:absolute;

    top:-200px;
    left:-200px;

    width:500px;
    height:500px;

    border-radius:50%;

    background:
    radial-gradient(
        circle,
        rgba(0,51,141,.25),
        transparent
    );
}

.why-choose-section::after{
    content:'';

    position:absolute;

    bottom:-200px;
    right:-200px;

    width:500px;
    height:500px;

    border-radius:50%;

    background:
    radial-gradient(
        circle,
        rgba(242,183,5,.12),
        transparent
    );
}

/*======================================
CONTENT
======================================*/

.why-content{
    position:relative;
    z-index:2;
}

.why-content .section-subtitle{
    color:var(--accent);
}

.why-content .section-title{
    color:#fff;
    margin-bottom:25px;
}

.why-content p{
    color:rgba(255,255,255,.75);
}

/*======================================
WHY LIST
======================================*/

.why-list{
    margin-top:45px;
}

.why-item{

    display:flex;

    gap:20px;

    padding:25px;

    margin-bottom:20px;

    border:1px solid rgba(255,255,255,.08);

    border-radius:18px;

    background:
    rgba(255,255,255,.03);

    backdrop-filter:blur(10px);

    transition:.35s ease;
}

.why-item:hover{

    transform:translateY(-6px);

    border-color:
    rgba(242,183,5,.35);
}

.why-item i{

    width:65px;
    height:65px;

    min-width:65px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:16px;

    background:
    linear-gradient(
        135deg,
        var(--primary),
        var(--secondary)
    );

    color:#fff;

    font-size:22px;
}

.why-item h4{
    color:#fff;
    margin-bottom:8px;
}

.why-item p{
    margin:0;
    font-size:15px;
}

/*======================================
IMAGE
======================================*/

.why-image{
    position:relative;
    z-index:2;
}

.why-image img{

    width:100%;

    border-radius:25px;

    display:block;

    min-height:650px;
    object-fit:cover;
}

/*======================================
FLOATING CARD
======================================*/

.floating-card{

    position:absolute;

    right:-30px;
    bottom:40px;

    width:220px;

    padding:30px;

    border-radius:20px;

    background:#fff;

    text-align:center;

    animation:floatCard 4s ease-in-out infinite;
}

.floating-card span{

    display:block;

    font-size:48px;

    font-weight:700;

    color:var(--primary);

    line-height:1;
}

.floating-card p{

    margin-top:10px;

    color:var(--text);

    font-weight:500;
}

/*======================================
ANIMATION
======================================*/

@keyframes floatCard{

    0%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-12px);
    }

    100%{
        transform:translateY(0);
    }
}

/*======================================
PROJECTS SECTION
======================================*/

.projects-section{
    padding:120px 0;
    background:#fff;
}

.project-showcase{
    position:relative;
    overflow:hidden;
    border-radius:30px;
}

.project-showcase img{
    width:100%;
    height:700px;
    object-fit:cover;
    display:block;
}

.project-showcase::before{
    content:'';

    position:absolute;
    inset:0;

    background:
    linear-gradient(
        to top,
        rgba(0,0,0,.75),
        rgba(0,0,0,.15)
    );
}

.project-overlay{

    position:absolute;

    left:60px;
    bottom:60px;

    z-index:2;

    max-width:500px;
}

.project-overlay span{

    display:inline-block;

    color:var(--accent);

    font-size:14px;

    text-transform:uppercase;

    letter-spacing:2px;

    margin-bottom:15px;
}

.project-overlay h3{

    color:#fff;

    font-size:42px;

    line-height:1.2;

    margin-bottom:25px;
}

.project-btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:16px 35px;

    background:#fff;

    color:var(--primary);

    border-radius:50px;

    font-weight:600;
}

/*======================================
THUMBNAILS
======================================*/

.projects-thumb-slider{
    margin-top:25px;
}

.projects-thumb-slider .swiper-slide{

    opacity:.5;

    cursor:pointer;

    transition:.3s ease;
}

.projects-thumb-slider .swiper-slide-thumb-active{
    opacity:1;
}

.projects-thumb-slider img{

    width:100%;

    height:120px;

    object-fit:cover;

    border-radius:15px;
}

/*======================================
NAVIGATION
======================================*/

.project-navigation{

    display:flex;

    justify-content:center;

    gap:15px;

    margin-top:40px;
}

.project-prev,
.project-next{

    width:60px;
    height:60px;

    border-radius:50%;

    border:1px solid var(--border);

    display:flex;
    align-items:center;
    justify-content:center;

    cursor:pointer;

    transition:.3s ease;
}

.project-prev:hover,
.project-next:hover{

    background:var(--primary);

    color:#fff;
}

/*======================================
PROCESS SECTION
======================================*/

.process-section{
    position:relative;
    padding:120px 0;
    background:#f8fafc;
    overflow:hidden;
}

.process-section::before{

    content:'PROCESS';

    position:absolute;

    top:60px;
    right:-50px;

    font-size:160px;
    font-weight:800;

    color:rgba(0,51,141,.03);

    pointer-events:none;
}

/*======================================
IMAGE
======================================*/

.process-image{
    position:relative;
}

.process-image img{

    width:100%;

    height:750px;

    object-fit:cover;

    border-radius:30px;

    transition:1s ease;
}

.process-image:hover img{
    transform:scale(1.03);
}

/*======================================
BADGE
======================================*/

.process-badge{

    position:absolute;

    left:-30px;
    bottom:40px;

    width:180px;
    height:180px;

    border-radius:50%;

    background:var(--primary);

    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;

    text-align:center;

    animation:floatBadge 4s ease-in-out infinite;
}

.process-badge span{

    font-size:42px;
    font-weight:700;

    color:#fff;

    line-height:1;
}

.process-badge p{

    color:#fff;

    margin-top:8px;

    font-size:14px;
}

/*======================================
CONTENT
======================================*/

.process-content{
    padding-left:50px;
}

.process-content .section-title{
    margin-bottom:20px;
}

.process-content .section-description{
    margin-bottom:50px;
}

/*======================================
STEPS
======================================*/

.process-steps{
    position:relative;
}

.process-step{

    display:flex;

    align-items:flex-start;

    gap:25px;

    padding-bottom:35px;

    position:relative;

    opacity:0;

    transform:translateY(50px);

    transition:.8s ease;
}

.process-step.active{
    opacity:1;
    transform:translateY(0);
}

.process-step:not(:last-child)::after{

    content:'';

    position:absolute;

    left:32px;
    top:70px;

    width:2px;
    height:70px;

    background:
    linear-gradient(
        to bottom,
        var(--primary),
        var(--accent)
    );
}

.step-number{

    width:65px;
    height:65px;

    min-width:65px;

    border-radius:50%;

    background:#fff;

    border:2px solid var(--primary);

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:18px;
    font-weight:700;

    color:var(--primary);

    transition:.4s ease;
}

.process-step:hover .step-number{

    background:var(--primary);

    color:#fff;

    transform:scale(1.08);
}

.step-content{

    flex:1;
}

.step-content h3{

    margin-bottom:10px;
}

.step-content p{
    margin:0;
}

/*======================================
ANIMATION
======================================*/

@keyframes floatBadge{

    0%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-12px);
    }

    100%{
        transform:translateY(0);
    }
}


/*======================================
TESTIMONIALS SECTION
======================================*/

.testimonials-section{
    position:relative;
    padding:120px 0;
    overflow:hidden;
    background:linear-gradient(
        180deg,
        #ffffff 0%,
        #f6f9fd 100%
    );
}

/* Soft decorative glows, same visual language used in the footer, to give
   the section a bit more depth behind the card. */
.testimonials-section::before,
.testimonials-section::after{
    content:"";
    position:absolute;
    border-radius:50%;
    filter:blur(80px);
    z-index:0;
    pointer-events:none;
}

.testimonials-section::before{
    width:420px;
    height:420px;
    top:-120px;
    left:-160px;
    background:rgba(0,51,141,.07);
}

.testimonials-section::after{
    width:380px;
    height:380px;
    bottom:-140px;
    right:-140px;
    background:rgba(242,183,5,.10);
}

.testimonial-wrapper{
    position:relative;
    max-width:950px;
    margin:auto;
    z-index:1;
}

/* Accent quote badge sitting on top of the card, replacing the old giant
   low-opacity watermark glyph with a proper branded focal point. */
.quote-icon{

    position:absolute;

    left:50%;
    top:-38px;

    transform:translateX(-50%);

    width:76px;
    height:76px;

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:28px;

    color:#fff;

    background:linear-gradient(
        135deg,
        var(--accent),
        #f5b301
    );

    border-radius:50%;

    box-shadow:0 15px 35px rgba(242,183,5,.35);

    z-index:3;
}

.testimonial-item{

    position:relative;

    background:#fff;

    padding:70px 60px 60px;

    border-radius:30px;

    border:1px solid var(--border);

    text-align:center;

    z-index:2;

    box-shadow:0 25px 60px rgba(15,23,42,.07);
}

.review-stars{
    color:#ffc107;
    margin-bottom:25px;

    display:flex;
    align-items:center;
    justify-content:center;
    gap:4px;

    font-size:16px;
}

.review-text{

    font-size:22px;

    line-height:1.8;

    margin-bottom:35px;
}

.review-author{

    display:flex;

    justify-content:center;

    align-items:center;

    gap:15px;
}

.author-avatar{

    width:70px;
    height:70px;

    border-radius:50%;

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--secondary)
    );

    color:#fff;

    font-weight:700;

    display:flex;

    align-items:center;

    justify-content:center;

    box-shadow:0 0 0 4px rgba(0,51,141,.08);

    overflow:hidden;
}

.review-author h4{
    margin-bottom:5px;
}

.review-author span{
    color:#666;
}

/* Second pass: faded decorative quote mark behind the review copy, and a
   thin accent ring around the avatar so the author row reads as a small
   card of its own rather than plain text. */
.review-text{
    position:relative;
}

.review-text::before{
    content:'\201C';
    position:absolute;
    top:-38px;
    left:50%;
    transform:translateX(-50%);
    font-family:Georgia,serif;
    font-size:110px;
    line-height:1;
    color:rgba(0,51,141,.06);
    z-index:-1;
    pointer-events:none;
}

.review-author{
    padding-top:22px;
    margin-top:5px;
    border-top:1px solid var(--border);
}

.author-avatar{
    position:relative;
}

.author-avatar::after{
    content:'';
    position:absolute;
    inset:-4px;
    border-radius:50%;
    border:1px dashed rgba(242,183,5,.5);
}

/*======================================
STATS
======================================*/

.trust-stats{
    margin-top:70px;
}

.stat-box{
    text-align:center;
    padding:25px;
}

.stat-box h3{

    font-size:52px;

    font-weight:700;

    color:var(--primary);

    margin-bottom:10px;
}

.stat-box h3 span{
    color:var(--accent);
    font-size:30px;
}

.stat-box p{
    margin:0;
}

/*======================================
OWL NAV
======================================*/

.testimonial-slider .owl-nav{

    margin-top:40px;

    display:flex;

    justify-content:center;

    gap:15px;
}

.testimonial-slider .owl-prev,
.testimonial-slider .owl-next{

    width:60px;
    height:60px;

    display:flex!important;
    align-items:center;
    justify-content:center;

    border-radius:50%!important;

    background:#fff!important;

    border:1px solid var(--border)!important;

    color:var(--primary)!important;

    box-shadow:0 10px 25px rgba(0,0,0,.06);

    transition:.3s ease;
}

.testimonial-slider .owl-prev:hover,
.testimonial-slider .owl-next:hover{

    background:var(--primary)!important;

    color:#fff!important;

    transform:translateY(-3px);

    box-shadow:0 15px 30px rgba(0,51,141,.18);
}

.testimonial-slider .owl-nav i,
.testimonial-slider .owl-nav span{
    font-size:18px;
    line-height:1;
}

/*======================================
FAQ SECTION
======================================*/

.faq-section{

    position:relative;

    padding:120px 0;

    background:
    linear-gradient(
        180deg,
        #ffffff 0%,
        #f8fbff 100%
    );

    overflow:hidden;
}

.faq-section::before{

    content:'FAQ';

    position:absolute;

    top:50px;
    right:-30px;

    font-size:180px;

    font-weight:800;

    color:rgba(0,51,141,.03);

    pointer-events:none;
}

/*======================================
LEFT CONTENT
======================================*/

.faq-content{
    padding-right:40px;
}

.faq-content .section-title{
    margin-bottom:25px;
}

.faq-content .section-description{
    margin-bottom:35px;
}

/*======================================
INFO CARD
======================================*/

.faq-info-card{

    display:flex;

    align-items:center;

    gap:20px;

    padding:25px;

    margin-bottom:35px;

    border-radius:20px;

    background:#fff;

    border:1px solid var(--border);
}

.faq-info-card i{

    width:70px;
    height:70px;

    border-radius:18px;

    background:
    linear-gradient(
        135deg,
        var(--primary),
        var(--secondary)
    );

    color:#fff;

    display:flex;
    align-items:center;
    justify-content:center;

    font-size:24px;
}

.faq-info-card h4{
    margin-bottom:5px;
}

.faq-info-card p{
    margin:0;
}

/*======================================
FAQ WRAPPER
======================================*/

.faq-wrapper{
    position:relative;
}

.faq-item{

    background:#fff;

    border:1px solid rgba(0,51,141,.08);

    border-radius:20px;

    margin-bottom:18px;

    overflow:hidden;

    transition:.3s ease;
}

.faq-item:hover{
    transform:translateY(-4px);
}

.faq-item.active{

    border-color:var(--accent);
}

.faq-question{

    padding:25px 30px;

    display:flex;

    justify-content:space-between;

    align-items:center;

    cursor:pointer;
}

.faq-question h3{

    margin:0;

    font-size:20px;
}

.faq-question span{

    width:40px;
    height:40px;

    border-radius:50%;

    background:#f5f8fc;

    display:flex;
    align-items:center;
    justify-content:center;

    transition:.3s ease;
}

.faq-item.active .faq-question span{

    background:var(--primary);

    color:#fff;

    transform:rotate(45deg);
}

.faq-answer{

    max-height:0;

    overflow:hidden;

    transition:max-height .4s ease;
}

.faq-answer p{

    padding:0 30px 25px;

    margin:0;
}

/*======================================
PREMIUM FOOTER
======================================*/

.footer{

    position:relative;

    overflow:hidden;

    background:
    linear-gradient(
        135deg,
        #061327 0%,
        #0B2348 50%,
        #061327 100%
    );
}

/*======================================
BACKGROUND EFFECTS
======================================*/

.footer::before{

    content:'PRIME';

    position:absolute;

    top:50%;
    left:50%;

    transform:
    translate(-50%,-50%);

    font-size:240px;

    font-weight:800;

    color:rgba(255,255,255,.025);

    letter-spacing:20px;

    white-space:nowrap;

    pointer-events:none;

    z-index:1;
}

.footer-grid{

    position:absolute;

    inset:0;

    background-image:
    linear-gradient(
        rgba(255,255,255,.03) 1px,
        transparent 1px
    ),
    linear-gradient(
        90deg,
        rgba(255,255,255,.03) 1px,
        transparent 1px
    );

    background-size:50px 50px;

    z-index:1;
}

.footer-glow{

    position:absolute;

    border-radius:50%;

    filter:blur(120px);

    pointer-events:none;

    z-index:1;
}

.footer-glow-1{

    width:500px;
    height:500px;

    background:
    rgba(0,102,255,.15);

    top:-250px;
    left:-250px;
}

.footer-glow-2{

    width:450px;
    height:450px;

    background:
    rgba(255,183,0,.10);

    bottom:-200px;
    right:-200px;
}

/*======================================
CTA AREA
======================================*/

.footer-cta{

    position:relative;

    z-index:2;

    text-align:center;

    padding:120px 0 90px;
}

.footer-subtitle{

    display:inline-block;

    color:var(--accent);

    text-transform:uppercase;

    letter-spacing:2px;

    font-size:14px;

    font-weight:600;

    margin-bottom:20px;
}

.footer-cta h2{

    color:#fff;

    max-width:900px;

    margin:0 auto 25px;

    line-height:1.2;
}

.footer-cta p{

    color:rgba(255,255,255,.70);

    max-width:700px;

    margin:0 auto 40px;
}

.footer-cta-btns{

    display:flex;

    justify-content:center;

    align-items:center;

    gap:15px;

    flex-wrap:wrap;
}

/*======================================
FOOTER MAIN
======================================*/

.footer-main{

    position:relative;

    z-index:2;

    padding:80px 0;

    border-top:
    1px solid rgba(255,255,255,.08);
}

.footer-logo {
    max-height: 110px;
    margin-bottom: 25px;
    filter: drop-shadow(0 0 15px rgba(255, 255, 255, .08)) drop-shadow(0 0 25px rgba(0, 102, 255, .15));
}

.footer-widget h3{

    color:#fff;

    margin-bottom:25px;

    font-size:22px;
}

.footer-widget p{

    color:rgba(255,255,255,.70);

    margin-bottom:25px;
}

.footer-widget ul{

    margin:0;
    padding:0;

    list-style:none;
}

.footer-widget ul li{

    margin-bottom:14px;
}

.footer-widget ul li a{

    color:rgba(255,255,255,.70);

    transition:.3s ease;
}

.footer-widget ul li a:hover{

    color:var(--accent);

    padding-left:6px;
}

/*======================================
CONTACT INFO
======================================*/

.footer-contact li{

    display:flex;

    align-items:flex-start;

    gap:12px;

    color:rgba(255,255,255,.70);
}

.footer-contact li i{

    color:var(--accent);

    margin-top:4px;

    min-width:18px;
}

/*======================================
SOCIAL ICONS
======================================*/

.footer-social{

    display:flex;

    gap:12px;
}

.footer-social a{

    width:50px;
    height:50px;

    border-radius:14px;

    display:flex;

    align-items:center;
    justify-content:center;

    background:
    rgba(255,255,255,.05);

    border:
    1px solid rgba(255,255,255,.08);

    color:#fff;

    transition:.4s ease;
}

.footer-social a:hover{

    background:var(--primary);

    transform:
    translateY(-5px)
    rotate(-3deg);

    color:#fff;
}

/*======================================
FOOTER CTA BUTTONS
======================================*/

.footer-cta-btns{

    display:flex;

    justify-content:center;

    align-items:center;

    gap:20px;

    flex-wrap:wrap;
}

.footer-cta-btns a{

    min-width:220px;

    height:58px;

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:10px;

    border-radius:60px;

    font-size:15px;

    font-weight:600;

    text-decoration:none;

    transition:all .4s ease;
}

/* Primary */

.footer-cta-btns .primary-btn{

    background:linear-gradient(
        135deg,
        var(--accent),
        #f5b301
    );

    color:#fff !important;

    border:none;
}

.footer-cta-btns .primary-btn:hover{

    color:#fff !important;

    transform:translateY(-4px);

    box-shadow:
    0 15px 35px rgba(245,179,1,.25);
}

/* Outline */

.footer-cta-btns .outline-btn{

    background:rgba(255,255,255,.05);

    border:1px solid rgba(255,255,255,.15);

    color:#fff !important;

    backdrop-filter:blur(10px);
}

.footer-cta-btns .outline-btn:hover{

    background:#fff;

    color:var(--primary) !important;

    border-color:#fff;

    transform:translateY(-4px);
}

/* Icons */

.footer-cta-btns a i{

    transition:.3s ease;
}

.footer-cta-btns a:hover i{

    transform:translateX(4px);
}

.footer-bottom {
    z-index: 1;
    position: relative;
}

/*======================================
FOOTER BOTTOM
======================================*/

.footer-bottom{

    position:relative;

    z-index:2;

    padding:30px 0;

    border-top:
    1px solid rgba(255,255,255,.08);
}

.footer-bottom p{

    margin:0;

    font-size:14px;

    font-weight:400;

    color:rgba(255,255,255,.60);

    letter-spacing:.3px;
}

.footer-bottom a{

    position:relative;

    color:rgba(255,255,255,.60);

    font-size:14px;

    font-weight:500;

    text-decoration:none;

    transition:all .3s ease;
}

.footer-bottom a::after{

    content:'';

    position:absolute;

    left:0;
    bottom:-4px;

    width:0;

    height:1px;

    background:var(--accent);

    transition:.3s ease;
}

.footer-bottom a:hover{

    color:var(--accent);
}

.footer-bottom a:hover::after{

    width:100%;
}

/*======================================
BACK TO TOP
======================================*/

.back-to-top{

    position:fixed;

    right:30px;
    bottom:30px;

    width:60px;
    height:60px;

    border-radius:18px;

    display:flex;

    align-items:center;
    justify-content:center;

    background:
    rgba(255,255,255,.08);

    backdrop-filter:blur(12px);

    border:
    1px solid rgba(255,255,255,.12);

    box-shadow:
    0 10px 30px rgba(0,0,0,.15);

    color:#fff;

    opacity:0;
    visibility:hidden;

    transform:
    translateY(20px);

    transition:.4s ease;

    z-index:999;
    overflow:hidden;
}

.back-to-top.active{

    opacity:1;
    visibility:visible;

    transform:
    translateY(0);
}

.back-to-top span{

    width:42px;
    height:42px;

    border-radius:12px;

    background:
    linear-gradient(
        135deg,
        var(--primary),
        var(--secondary)
    );

    display:flex;

    align-items:center;
    justify-content:center;

    transition:.4s ease;
}

.back-to-top:hover{

    transform:
    translateY(-6px);
}

.back-to-top:hover span{

    background:
    linear-gradient(
        135deg,
        var(--accent),
        #f5b301
    );

    box-shadow:
    0 10px 25px rgba(245,179,1,.35);
}

.back-to-top i{

    font-size:16px;

    transition:.3s ease;
}

.back-to-top:hover i{

    transform:
    translateY(-3px);
}

.back-to-top::before{

    content:'';

    position:absolute;

    inset:-8px;

    border-radius:24px;

    background:
    radial-gradient(
        rgba(0,102,255,.25),
        transparent 70%
    );

    animation:
    pulseGlow 2.5s infinite;

    z-index:-1;
}

@keyframes pulseGlow{

    0%{
        transform:scale(.9);
        opacity:.8;
    }

    50%{
        transform:scale(1.1);
        opacity:.3;
    }

    100%{
        transform:scale(.9);
        opacity:.8;
    }
}

/*=====================================================
                    PAGE BANNER
=====================================================*/

/* =====================================================================
   PAGE BANNER -- "DIAGONAL SPLIT" CONCEPT
   Ground-up redesign: a solid brand-gradient panel carrying the content
   on the left, a diagonally-clipped photo panel on the right, a dot-grid
   texture and glow blobs for depth, and a rotated location tag riding
   the seam between the two panels. Falls back to a simpler stacked
   layout on tablet/mobile in responsive.css.
===================================================================== */

.page-banner{

    position:relative;

    min-height:520px;

    display:flex;

    align-items:center;

    padding:170px 0 70px;

    overflow:hidden;

    background:linear-gradient(135deg,var(--dark) 0%,var(--secondary) 55%,var(--primary) 100%);

}

.page-banner::before{

    content:'';

    position:absolute;

    inset:0;

    background-image:radial-gradient(rgba(255,255,255,.07) 1.5px,transparent 1.5px);

    background-size:24px 24px;

    opacity:.6;

    z-index:0;

    pointer-events:none;

}

.page-banner::after{

    content:'';

    position:absolute;

    top:-140px;

    left:6%;

    width:340px;

    height:340px;

    border-radius:50%;

    background:rgba(242,183,5,.16);

    filter:blur(110px);

    z-index:0;

    pointer-events:none;

}

/*=====================================================
                BACKGROUND (right diagonal panel)
=====================================================*/

.page-banner-bg{

    position:absolute;

    top:0;

    right:0;

    bottom:0;

    width:46%;

    z-index:0;

    clip-path:polygon(22% 0,100% 0,100% 100%,0 100%);

}

.page-banner-bg img{

    width:100%;

    height:100%;

    object-fit:cover;

    object-position:center;

    filter:saturate(1.05) brightness(.78);

    transform:scale(1.08);

    animation:ppfBannerZoom 10s ease-out forwards;

}

.page-banner-bg::after{

    content:'MELBOURNE \2022  VICTORIA';

    position:absolute;

    right:26px;

    bottom:50px;

    writing-mode:vertical-rl;

    transform:rotate(180deg);

    font-size:12px;

    font-weight:600;

    letter-spacing:4px;

    text-transform:uppercase;

    color:rgba(255,255,255,.75);

    z-index:1;

}

@keyframes ppfBannerZoom{

    from{ transform:scale(1.08); }

    to{ transform:scale(1); }

}

/*=====================================================
                OVERLAY (seam blend, on top of the image panel)
=====================================================*/

.page-banner-overlay{

    position:absolute;

    top:0;

    right:0;

    bottom:0;

    width:46%;

    clip-path:polygon(22% 0,100% 0,100% 100%,0 100%);

    background:linear-gradient(100deg,var(--dark) 0%,rgba(0,36,95,.55) 30%,transparent 65%);

    z-index:1;

}

/*=====================================================
                CONTENT
=====================================================*/

.page-banner .container{

    position:relative;

    z-index:2;

}

.page-banner .row.justify-content-center{

    justify-content:flex-start!important;

}

.page-banner-content{

    position:relative;

    max-width:600px;

    color:#fff;

    animation:ppfBannerRise .9s cubic-bezier(.22,1,.36,1) both;

}

@keyframes ppfBannerRise{

    from{ opacity:0; transform:translateY(28px); }

    to{ opacity:1; transform:translateY(0); }

}

/*=====================================================
                SUB TITLE
=====================================================*/

.page-subtitle{

    display:inline-flex;

    align-items:center;

    gap:9px;

    padding:9px 20px 9px 16px;

    margin-bottom:22px;

    border-radius:40px;

    background:rgba(255,255,255,.1);

    border:1px solid rgba(255,255,255,.22);

    backdrop-filter:blur(10px);

    color:#fff;

    font-size:13px;

    font-weight:600;

    text-transform:uppercase;

    letter-spacing:1.2px;

}

.page-subtitle::before{

    content:'';

    width:7px;

    height:7px;

    border-radius:50%;

    background:var(--accent);

    box-shadow:0 0 0 4px rgba(242,183,5,.25);

    flex-shrink:0;

}

/*=====================================================
                TITLE
=====================================================*/

.page-banner-content h1{

    position:relative;

    font-size:58px;

    line-height:1.12;

    font-weight:700;

    color:#fff;

    margin-bottom:22px;

    padding-left:22px;

    border-left:4px solid var(--accent);

}

/*=====================================================
                DESCRIPTION
=====================================================*/

.page-banner-content p{

    max-width:520px;

    color:rgba(255,255,255,.82);

    font-size:17px;

    line-height:1.8;

    margin-bottom:32px;

}

/*=====================================================
                BREADCRUMB
=====================================================*/

.breadcrumb-list{

    display:inline-flex;

    align-items:center;

    flex-wrap:wrap;

    gap:12px;

    list-style:none;

    margin:0;

    padding:0;

}

.breadcrumb-list li{

    display:flex;

    align-items:center;

    gap:12px;

    color:rgba(255,255,255,.55);

    font-size:14px;

    font-weight:600;

    text-transform:uppercase;

    letter-spacing:.5px;

}

.breadcrumb-list li:last-child{

    color:var(--accent);

}

.breadcrumb-list a{

    color:rgba(255,255,255,.75);

    transition:.3s ease;

}

.breadcrumb-list a:hover{

    color:var(--accent);

}

.breadcrumb-list i{

    font-size:10px;

    color:rgba(255,255,255,.4);

}

/*=====================================================
                ABOUT COMPANY
=====================================================*/

/* =====================================================================
   ABOUT PAGE -- full redesign of every section below the banner.
   New visual language for this page specifically: a bold accent tab
   on section headings, angled/ringed image treatments instead of the
   old corner-frame, numbered "credential" cards instead of plain
   centered icon cards, an arrow-linked process timeline, and a
   quote-style commitment callout.
===================================================================== */

.about-company{

    position:relative;

    overflow:hidden;

    background:#fff;

}

/*=====================================================
                IMAGE
=====================================================*/

.about-company-image{

    position:relative;

    z-index:1;

}

.about-company-image img{

    width:100%;

    border-radius:16px 60px 16px 16px;

    display:block;

    box-shadow:0 25px 60px rgba(15,23,42,.12);

    transition:.5s ease;

}

.about-company-image:hover img{

    transform:scale(1.02);
}

/* Ring + glow instead of the old square corner frame */

.about-company-image::before{

    content:"";

    position:absolute;

    width:130px;

    height:130px;

    border:6px solid var(--accent);

    border-radius:50%;

    top:-30px;

    right:-30px;

    z-index:-1;

    opacity:.9;

}

.about-company-image::after{

    content:"";

    position:absolute;

    width:220px;

    height:220px;

    border-radius:50%;

    background:rgba(0,51,141,.06);

    bottom:-50px;

    left:-50px;

    z-index:-1;

}

/*=====================================================
                CONTENT
=====================================================*/

.about-company .section-heading{

    margin-bottom:25px;

}

.about-company .section-tag{

    display:inline-flex;

    align-items:center;

    gap:10px;

}

.about-company .section-tag::before{

    content:'';

    width:28px;

    height:3px;

    border-radius:3px;

    background:var(--accent);

}

.about-company .section-heading h2{

    margin-top:15px;

    margin-bottom:20px;

}

.about-company p{

    font-size:16px;

    line-height:1.9;

    color:#666;

    margin-bottom:20px;

}

/*=====================================================
            COMPANY HIGHLIGHTS
=====================================================*/

.company-highlights{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:16px;

    margin-top:35px;

}

.company-highlight{

    position:relative;

    display:flex;

    align-items:center;

    gap:14px;

    padding:18px 22px;

    background:#fff;

    border-radius:14px;

    transition:.35s ease;

    border:1px solid var(--border);

    border-left:3px solid var(--accent);

}

.company-highlight:hover{

    background:var(--primary);

    border-left-color:var(--accent);

    transform:translateX(6px);

    box-shadow:0 18px 35px rgba(0,51,141,.15);

}

.company-highlight i{

    width:42px;

    height:42px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:12px;

    background:rgba(0,51,141,.10);

    color:var(--primary);

    font-size:17px;

    transition:.35s ease;
}

.company-highlight span{

    font-size:15px;

    font-weight:600;

    color:#333;

    transition:.35s ease;

}

.company-highlight:hover i{

    background:rgba(255,255,255,.18);

    color:#fff;

}

.company-highlight:hover span{

    color:#fff;

}

/*=====================================================
                WHY CHOOSE US
=====================================================*/

.why-choose{

    position:relative;

    background:#f8f9fc;

    overflow:hidden;

}

.why-choose::before{

    content:'';

    position:absolute;

    top:-160px;

    right:-120px;

    width:400px;

    height:400px;

    border-radius:50%;

    background:rgba(0,51,141,.04);

    z-index:0;

}

.why-choose .section-heading{

    position:relative;

    z-index:1;

    max-width:700px;

    margin:0 auto 60px;

}

.why-choose .section-heading p{

    margin-top:18px;

    color:#666;

    line-height:1.8;

}

/*=====================================================
                CARD -- numbered credential card
=====================================================*/

.choose-card{

    position:relative;

    display:flex;

    flex-direction:column;

    align-items:flex-start;

    background:#fff;

    border-radius:18px;

    padding:40px 32px 34px;

    text-align:left;

    transition:.4s ease;

    box-shadow:0 15px 35px rgba(0,0,0,.05);

    border:1px solid var(--border);

    margin-bottom:30px;

    height:100%;

    overflow:hidden;

    z-index:1;

}

.choose-card:hover{

    transform:translateY(-8px);

    border-color:transparent;

    box-shadow:0 30px 60px rgba(0,51,141,.14);

}

/* Large faded ordinal number in the corner */

.choose-card::after{

    content:counter(ppf-choose-count);

    counter-increment:ppf-choose-count;

    position:absolute;

    top:6px;

    right:18px;

    font-family:var(--heading-font);

    font-size:64px;

    font-weight:800;

    color:rgba(0,51,141,.05);

    line-height:1;

    z-index:0;

}

.why-choose .row{

    counter-reset:ppf-choose-count;

    margin-left:-15px;

    margin-right:-15px;

}

/* Top Border */

.choose-card::before{

    content:"";

    position:absolute;

    left:0;

    top:0;

    width:100%;

    height:4px;

    background:linear-gradient(
        90deg,
        var(--primary),
        var(--accent)
    );

    transform:scaleX(0);

    transform-origin:left;

    transition:.4s;

    z-index:2;

}

.choose-card:hover::before{

    transform:scaleX(1);

}

/*=====================================================
                ICON
=====================================================*/

.choose-icon{

    position:relative;

    width:64px;

    height:64px;

    margin-bottom:22px;

    border-radius:16px;

    display:flex;

    align-items:center;

    justify-content:center;

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--secondary)
    );

    color:#fff;

    font-size:24px;

    transition:.4s;

    z-index:1;

}

.choose-card:hover .choose-icon{

    border-radius:50%;

    transform:rotate(-8deg) scale(1.05);

}

/*=====================================================
                TITLE
=====================================================*/

.choose-card h4{

    position:relative;

    font-size:22px;

    font-weight:700;

    color:var(--dark);

    margin-bottom:12px;

    z-index:1;

}

/*=====================================================
                DESCRIPTION
=====================================================*/

.choose-card p{

    position:relative;

    font-size:15px;

    color:#666;

    line-height:1.8;

    margin:0;

    z-index:1;

}

/*=====================================================
            ROW GAP
=====================================================*/

.why-choose .row>div{

    padding-left:15px;

    padding-right:15px;

    margin-bottom:30px;

}

/*=====================================================
                OUR PROCESS
=====================================================*/

.our-process{

    position:relative;

    background:#fff;

    overflow:hidden;

}

.our-process .section-heading{

    max-width:700px;

    margin:0 auto 70px;

}

.our-process .section-heading p{

    margin-top:18px;

    color:#666;

    line-height:1.8;

}

/*=====================================================
                TIMELINE
=====================================================*/

.our-process .row{

    position:relative;

}

.our-process .row::before{

    content:"";

    position:absolute;

    top:55px;

    left:10%;

    right:10%;

    height:2px;

    background:repeating-linear-gradient(90deg,var(--border) 0,var(--border) 8px,transparent 8px,transparent 16px);

    z-index:0;

}

/*=====================================================
                PROCESS BOX
=====================================================*/

.process-box{

    position:relative;

    background:#fff;

    border-radius:18px;

    padding:40px 25px;

    text-align:center;

    box-shadow:0 15px 35px rgba(0,0,0,.06);

    border:1px solid var(--border);

    transition:.35s ease;

    height:100%;

    z-index:2;

}

.process-box:hover{

    transform:translateY(-10px);

    border-color:transparent;

    box-shadow:0 25px 60px rgba(0,0,0,.12);

}

/* Connector arrow between steps (desktop only) */

.our-process .col-lg-3:not(:last-child) .process-box::after{

    content:'\f178';

    font-family:'Font Awesome 5 Free';

    font-weight:900;

    position:absolute;

    top:50px;

    right:-32px;

    font-size:16px;

    color:var(--accent);

    z-index:3;

}

/*=====================================================
                NUMBER
=====================================================*/

.process-number{

    position:absolute;

    right:20px;

    top:15px;

    font-size:52px;

    font-weight:800;

    color:rgba(0,51,141,.08);

}

/*=====================================================
                ICON
=====================================================*/

.process-icon{

    width:78px;

    height:78px;

    margin:0 auto 25px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--secondary)
    );

    color:#fff;

    font-size:28px;

    border:5px solid rgba(0,51,141,.08);

    transition:.35s;

}

.process-box:hover .process-icon{

    background:linear-gradient(135deg,var(--accent),#f5b301);

    border-color:rgba(242,183,5,.18);

    transform:scale(1.06);

}

/*=====================================================
                TITLE
=====================================================*/

.process-box h4{

    font-size:22px;

    font-weight:700;

    margin-bottom:15px;

}

/*=====================================================
                TEXT
=====================================================*/

.process-box p{

    font-size:15px;

    line-height:1.8;

    color:#666;

    margin:0;

}

/*=====================================================
                OUR COMMITMENT
=====================================================*/

.our-commitment{

    position:relative;

    background:linear-gradient(180deg,#f8f9fc 0%,#fff 100%);

    overflow:hidden;

}

.our-commitment .section-heading{

    margin-bottom:25px;

}

.our-commitment .section-tag{

    display:inline-flex;

    align-items:center;

    gap:10px;

}

.our-commitment .section-tag::before{

    content:'';

    width:28px;

    height:3px;

    border-radius:3px;

    background:var(--accent);
}

.our-commitment .section-heading h2{

    margin-top:15px;

    margin-bottom:20px;

}

.our-commitment p{

    font-size:16px;

    line-height:1.9;

    color:#666;

    margin-bottom:20px;

}

/* Pull-quote style callout replacing the plain second paragraph */

.our-commitment p:last-of-type{

    position:relative;

    padding:20px 24px;

    background:#fff;

    border-left:4px solid var(--accent);

    border-radius:0 14px 14px 0;

    box-shadow:0 15px 35px rgba(0,0,0,.05);

    color:var(--dark);

    font-weight:500;

}

/*=====================================================
                IMAGE
=====================================================*/

.our-commitment .commitment-image{

    position:relative;

}

.our-commitment .commitment-image img{

    width:100%;

    border-radius:60px 16px 16px 16px;

    display:block;

    box-shadow:0 25px 60px rgba(15,23,42,.12);

    transition:.4s ease;

}

.our-commitment .commitment-image:hover img{

    transform:scale(1.02);

}

/* Decorative Shape */

.our-commitment .commitment-image::after{

    content:"";

    position:absolute;

    width:140px;

    height:140px;

    border-radius:20px;

    background:var(--primary);

    opacity:.08;

    right:-25px;

    bottom:-25px;

    z-index:-1;

}

.our-commitment .commitment-image::before{

    content:"";

    position:absolute;

    width:110px;

    height:110px;

    border:6px solid var(--accent);

    border-radius:50%;

    top:-28px;

    left:-28px;

    z-index:-1;

    opacity:.9;

}

/*=====================================================
                SERVICES GRID
=====================================================*/

.services-grid{

    position: relative;

    background: #f8f9fc;

    overflow: hidden;

}

.services-grid .section-heading{

    max-width: 720px;

    margin: 0 auto 60px;

}

.services-grid .section-heading p{

    margin-top: 18px;

    color: #666;

    line-height: 1.8;

}

/*=====================================================
            EQUAL HEIGHT
=====================================================*/

.services-grid .col-lg-4{

    display:flex;

}

.services-grid .service-card{

    width:100%;

}

/*=====================================================
                PROJECTS INTRO
=====================================================*/

.projects-intro{

    position:relative;

    background:#fff;

    overflow:hidden;

}

/*=====================================================
                IMAGE
=====================================================*/

.projects-intro-image{

    position:relative;

}

.projects-intro-image img{

    width:100%;

    border-radius:24px;

    display:block;

    box-shadow:0 20px 60px rgba(0,0,0,.08);

    transition:.4s ease;

}

.projects-intro-image:hover img{

    transform:scale(1.03);

}

/* Decorative Border */

.projects-intro-image::before{

    content:"";

    position:absolute;

    width:180px;

    height:180px;

    border:8px solid var(--primary);

    border-radius:24px;

    top:-25px;

    left:-25px;

    z-index:-1;

}

/*=====================================================
                CONTENT
=====================================================*/

.projects-intro .section-heading{

    margin-bottom:25px;

}

.projects-intro .section-heading h2{

    margin-top:15px;

    margin-bottom:20px;

}

.projects-intro p{

    font-size:16px;

    line-height:1.9;

    color:#666;

    margin-bottom:20px;

}

/*=====================================================
                PROJECT STATS
=====================================================*/

.project-stats{

    display:flex;

    gap:20px;

    margin-top:35px;

    flex-wrap:wrap;

}

.project-stat{

    flex:1;

    min-width:150px;

    background:#f8f9fc;

    border-radius:18px;

    padding:25px 20px;

    text-align:center;

    border:1px solid #edf1f5;

    transition:.35s ease;

}

.project-stat:hover{

    background:var(--primary);

    transform:translateY(-6px);

    box-shadow:0 18px 35px rgba(0,51,141,.15);

}

.project-stat h3{

    font-size:22px;

    font-weight:700;

    color:var(--primary);

    margin-bottom:8px;

    transition:.35s ease;

}

.project-stat span{

    font-size:14px;

    color:#666;

    font-weight:600;

    transition:.35s ease;

}

.project-stat:hover h3,

.project-stat:hover span{

    color:#fff;

}

/*=====================================================
                FEATURED PROJECTS
=====================================================*/

.featured-projects{

    position:relative;

    background:#f8f9fc;

    overflow:hidden;

}

.featured-projects .section-heading{

    max-width:720px;

    margin:0 auto 60px;

}

.featured-projects .section-heading p{

    margin-top:18px;

    color:#666;

    line-height:1.8;

}

/*=====================================================
                PROJECT CARD
=====================================================*/

.project-card{

    position:relative;

    background:#fff;

    border-radius:22px;

    overflow:hidden;

    box-shadow:0 15px 40px rgba(0,0,0,.06);

    transition:.4s ease;

    margin-bottom:30px;

    height:100%;

}

.project-card:hover{

    transform:translateY(-10px);

    box-shadow:0 25px 60px rgba(0,0,0,.12);

}

/*=====================================================
                PROJECT IMAGE
=====================================================*/

.project-image{

    position:relative;

    overflow:hidden;

}

.project-image img{

    width:100%;

    height:300px;

    object-fit:cover;

    transition:.6s ease;

}

.project-card:hover .project-image img{

    transform:scale(1.08);

}

/* Dark Overlay */

.project-image::after{

    content:"";

    position:absolute;

    inset:0;

    background:linear-gradient(
        to top,
        rgba(0,0,0,.35),
        rgba(0,0,0,0)
    );

    opacity:0;

    transition:.4s;

}

.project-card:hover .project-image::after{

    opacity:1;

}

/* Top Accent */

.project-image::before{

    content:"";

    position:absolute;

    top:0;

    left:0;

    width:100%;

    height:4px;

    background:linear-gradient(
        90deg,
        var(--primary),
        var(--accent)
    );

    z-index:2;

}

/*=====================================================
                PROJECT CONTENT
=====================================================*/

.project-content{

    padding:30px;

    position:relative;

}

/*=====================================================
                CATEGORY
=====================================================*/

.project-category{

    display:inline-block;

    padding:7px 16px;

    margin-bottom:18px;

    border-radius:50px;

    background:rgba(0,51,141,.08);

    color:var(--primary);

    font-size:13px;

    font-weight:600;

    transition:.35s ease;

}

.project-card:hover .project-category{

    background:var(--primary);

    color:#fff;

}

/*=====================================================
                TITLE
=====================================================*/

.project-content h3{

    font-size:24px;

    font-weight:700;

    color:var(--dark);

    margin-bottom:12px;

    transition:.35s ease;

}

.project-card:hover h3{

    color:var(--primary);

}

/*=====================================================
                LOCATION
=====================================================*/

.project-content p{

    color:#666;

    font-size:15px;

    margin-bottom:25px;

}

/*=====================================================
                BUTTON
=====================================================*/

.project-content a{

    display:inline-flex;

    align-items:center;

    gap:10px;

    color:var(--primary);

    font-size:15px;

    font-weight:600;

    transition:.35s ease;

}

.project-content a i{

    transition:.35s ease;

}

.project-card:hover .project-content a{

    color:var(--secondary);

}

.project-card:hover .project-content a i{

    transform:translateX(8px);

}

/*=====================================================
                BOTTOM ACCENT
=====================================================*/

.project-card::after{

    content:"";

    position:absolute;

    left:0;

    bottom:0;

    width:0;

    height:4px;

    background:linear-gradient(
        90deg,
        var(--primary),
        var(--accent)
    );

    transition:.4s ease;

}

.project-card:hover::after{

    width:100%;

}

/*=====================================================
                ROW SPACING
=====================================================*/

.featured-projects .row{

    margin-left:-15px;

    margin-right:-15px;

}

.featured-projects .row > div{

    padding-left:15px;

    padding-right:15px;

    margin-bottom:30px;

}

/*=====================================================
                LOAD MORE BUTTON
=====================================================*/

.featured-projects .theme-btn{

    min-width:220px;

    justify-content:center;

}

/*=====================================================
                PROJECT COMMITMENT
=====================================================*/

.project-commitment{

    position:relative;

    background:#fff;

    overflow:hidden;

}

.project-commitment .section-heading{

    margin-bottom:25px;

}

.project-commitment .section-heading h2{

    margin-top:15px;

    margin-bottom:20px;

}

.project-commitment p{

    font-size:16px;

    line-height:1.9;

    color:#666;

    margin-bottom:20px;

}

/*=====================================================
                IMAGE
=====================================================*/

.commitment-image{

    position:relative;

}

.commitment-image img{

    width:100%;

    display:block;

    border-radius:22px;

    box-shadow:0 20px 60px rgba(0,0,0,.08);

    transition:.4s ease;

}

.commitment-image:hover img{

    transform:scale(1.03);

}

/* Decorative Shape */

.commitment-image::before{

    content:"";

    position:absolute;

    width:170px;

    height:170px;

    border:8px solid var(--primary);

    border-radius:24px;

    top:-25px;

    right:-25px;

    z-index:-1;

}

/*=====================================================
                LIST
=====================================================*/

.commitment-list{

    margin-top:35px;

    padding:0;

    list-style:none;

}

.commitment-list li{

    display:flex;

    align-items:center;

    gap:15px;

    padding:15px 0;

    font-size:16px;

    font-weight:600;

    color:var(--dark);

    border-bottom:1px solid #eceff3;

}

.commitment-list li:last-child{

    border-bottom:none;

}

.commitment-list i{

    width:42px;

    height:42px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    background:rgba(0,51,141,.08);

    color:var(--primary);

    font-size:17px;

    transition:.35s ease;

}

.commitment-list li:hover i{

    background:var(--primary);

    color:#fff;

}

/*=====================================================
                BLOG INTRO
=====================================================*/

.blog-intro{

    position:relative;

    background:#fff;

    overflow:hidden;

}

/*=====================================================
                IMAGE
=====================================================*/

.blog-intro-image{

    position:relative;

}

.blog-intro-image img{

    width:100%;

    display:block;

    border-radius:22px;

    box-shadow:0 20px 60px rgba(0,0,0,.08);

    transition:.4s ease;

}

.blog-intro-image:hover img{

    transform:scale(1.03);

}

/* Decorative Border */

.blog-intro-image::before{

    content:"";

    position:absolute;

    width:180px;

    height:180px;

    border:8px solid var(--primary);

    border-radius:24px;

    top:-25px;

    left:-25px;

    z-index:-1;

}

/*=====================================================
                CONTENT
=====================================================*/

.blog-intro .section-heading{

    margin-bottom:25px;

}

.blog-intro .section-heading h2{

    margin-top:15px;

    margin-bottom:20px;

}

.blog-intro p{

    font-size:16px;

    line-height:1.9;

    color:#666;

    margin-bottom:20px;

}

/*=====================================================
                LATEST BLOGS
=====================================================*/

.latest-blogs{

    position:relative;

    background:#f8f9fc;

    overflow:hidden;

}

.latest-blogs .section-heading{

    max-width:720px;

    margin:0 auto 60px;

}

.latest-blogs .section-heading p{

    margin-top:18px;

    color:#666;

    line-height:1.8;

}

/*=====================================================
                BLOG CARD
=====================================================*/

.blog-card{

    position:relative;

    background:#fff;

    border-radius:22px;

    overflow:hidden;

    height:100%;

    transition:.4s ease;

    box-shadow:0 15px 40px rgba(0,0,0,.06);

    margin-bottom:30px;

}

.blog-card:hover{

    transform:translateY(-10px);

    box-shadow:0 30px 60px rgba(0,0,0,.12);

}

/*=====================================================
                BLOG IMAGE
=====================================================*/

.blog-image{

    position:relative;

    overflow:hidden;

}

.blog-image img{

    width:100%;

    height:260px;

    object-fit:cover;

    transition:.6s ease;

}

.blog-card:hover .blog-image img{

    transform:scale(1.08);

}

/*=====================================================
                IMAGE OVERLAY
=====================================================*/

.blog-image::after{

    content:"";

    position:absolute;

    inset:0;

    background:linear-gradient(
        to top,
        rgba(0,0,0,.35),
        rgba(0,0,0,0)
    );

    opacity:0;

    transition:.35s;

}

.blog-card:hover .blog-image::after{

    opacity:1;

}

/*=====================================================
                TOP ACCENT
=====================================================*/

.blog-image::before{

    content:"";

    position:absolute;

    top:0;

    left:0;

    width:100%;

    height:4px;

    background:linear-gradient(
        90deg,
        var(--primary),
        var(--accent)
    );

    z-index:2;

}

/*=====================================================
                BLOG CONTENT
=====================================================*/

.blog-content{

    padding:30px;

    position:relative;

}

/*=====================================================
                CATEGORY & DATE
=====================================================*/

.blog-category{

    display:inline-block;

    padding:7px 16px;

    border-radius:50px;

    background:rgba(0,51,141,.08);

    color:var(--primary);

    font-size:13px;

    font-weight:600;

    margin-bottom:18px;

    transition:.35s ease;

}

.blog-date{

    display:block;

    margin-bottom:15px;

    font-size:14px;

    color:#888;

    font-weight:500;

}

.blog-card:hover .blog-category{

    background:var(--primary);

    color:#fff;

}

/*=====================================================
                BLOG TITLE
=====================================================*/

.blog-content h3{

    font-size:24px;

    font-weight:700;

    line-height:1.4;

    color:var(--dark);

    margin-bottom:15px;

    transition:.35s ease;

}

.blog-card:hover h3{

    color:var(--primary);

}

/*=====================================================
                BLOG EXCERPT
=====================================================*/

.blog-content p{

    font-size:15px;

    color:#666;

    line-height:1.8;

    margin-bottom:25px;

}

/*=====================================================
                READ MORE
=====================================================*/

.blog-content a{

    display:inline-flex;

    align-items:center;

    gap:10px;

    color:var(--primary);

    font-size:15px;

    font-weight:600;

    transition:.35s ease;

}

.blog-content a i{

    transition:.35s ease;

}

.blog-card:hover .blog-content a{

    color:var(--secondary);

}

.blog-card:hover .blog-content a i{

    transform:translateX(8px);

}

/*=====================================================
                BOTTOM ACCENT
=====================================================*/

.blog-card::after{

    content:"";

    position:absolute;

    left:0;

    bottom:0;

    width:0;

    height:4px;

    background:linear-gradient(
        90deg,
        var(--primary),
        var(--accent)
    );

    transition:.4s ease;

}

.blog-card:hover::after{

    width:100%;

}

/*=====================================================
                GRID SPACING
=====================================================*/

.latest-blogs .row{

    margin-left:-15px;

    margin-right:-15px;

}

.latest-blogs .row > div{

    padding-left:15px;

    padding-right:15px;

    margin-bottom:30px;

}

/*=====================================================
                BUTTON
=====================================================*/

.latest-blogs .theme-btn{

    min-width:220px;

    justify-content:center;

}

/*=====================================================
                BLOG META
=====================================================*/

.blog-meta{

    display:flex;

    align-items:center;

    justify-content:space-between;

    margin-bottom:20px;

    gap:15px;

}

.blog-category{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:7px 16px;

    border-radius:50px;

    background:rgba(0,51,141,.08);

    color:var(--primary);

    font-size:13px;

    font-weight:600;

    transition:.35s ease;

}

.blog-date{

    display:flex;

    align-items:center;

    gap:8px;

    font-size:14px;

    color:#777;

    font-weight:500;

}

.blog-date i{

    color:var(--primary);

    font-size:13px;

}

.blog-card:hover .blog-category{

    background:var(--primary);

    color:#fff;

}

/*=====================================================
                CONTACT INFO
=====================================================*/

.contact-info{

    position:relative;

    background:#f8f9fc;

    overflow:hidden;

}

.contact-info .section-heading{

    max-width:700px;

    margin:0 auto 60px;

}

.contact-info .section-heading p{

    margin-top:18px;

    color:#666;

    line-height:1.8;

}

/*=====================================================
                CONTACT CARD
=====================================================*/

.contact-card{

    position:relative;

    background:#fff;

    border-radius:22px;

    padding:40px 30px;

    text-align:center;

    box-shadow:0 15px 40px rgba(0,0,0,.06);

    transition:.4s ease;

    height:100%;

    overflow:hidden;

}

.contact-card:hover{

    transform:translateY(-10px);

    box-shadow:0 25px 60px rgba(0,0,0,.12);

}

/*=====================================================
                TOP BORDER
=====================================================*/

.contact-card::before{

    content:"";

    position:absolute;

    top:0;

    left:0;

    width:100%;

    height:4px;

    background:linear-gradient(
        90deg,
        var(--primary),
        var(--accent)
    );

    transform:scaleX(0);

    transform-origin:left;

    transition:.4s ease;

}

.contact-card:hover::before{

    transform:scaleX(1);

}

/*=====================================================
                ICON
=====================================================*/

.contact-icon{

    width:85px;

    height:85px;

    margin:0 auto 25px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--secondary)
    );

    color:#fff;

    font-size:30px;

    transition:.4s ease;

}

.contact-card:hover .contact-icon{

    transform:rotateY(180deg);

}

/*=====================================================
                TITLE
=====================================================*/

.contact-card h4{

    font-size:24px;

    font-weight:700;

    color:var(--dark);

    margin-bottom:15px;

}

/*=====================================================
                TEXT
=====================================================*/

.contact-card p,

.contact-card a{

    color:#666;

    font-size:16px;

    line-height:1.8;

    transition:.35s ease;

    word-break:break-word;

}

.contact-card a:hover{

    color:var(--primary);

}

/*=====================================================
                GRID SPACING
=====================================================*/

.contact-info .row{

    margin-left:-15px;

    margin-right:-15px;

}

.contact-info .row > div{

    padding-left:15px;

    padding-right:15px;

    margin-bottom:30px;

}

/*=====================================================
                CONTACT SECTION
=====================================================*/

.contact-section{

    position:relative;

    background:#fff;

    overflow:hidden;

}

/*=====================================================
                FORM WRAPPER
=====================================================*/

.contact-form-wrapper{

    background:#fff;

    padding:45px;

    border-radius:24px;

    box-shadow:0 20px 60px rgba(0,0,0,.06);

}

.contact-form-wrapper .section-heading{

    margin-bottom:30px;

}

.contact-form-wrapper .section-heading h2{

    margin:15px 0;

}

.contact-form-wrapper .section-heading p{

    color:#666;

    margin:0;

}

/*=====================================================
                FORM
=====================================================*/

.form-group{

    margin-bottom:20px;

}

.contact-form .form-control{

    width:100%;

    height:58px;

    border:1px solid #e7ebf0;

    border-radius:14px;

    padding:0 18px;

    font-size:15px;

    color:#333;

    background:#f8f9fc;

    transition:.35s ease;

    box-shadow:none;

}

.contact-form textarea.form-control{

    height:170px;

    resize:none;

    padding:18px;

}

.contact-form select.form-control{

    appearance:none;

    cursor:pointer;

}

.contact-form .form-control:focus{

    border-color:var(--primary);

    background:#fff;

    box-shadow:none;

}

.contact-form .theme-btn{

    margin-top:10px;

}

/*=====================================================
                SIDEBAR
=====================================================*/

.contact-sidebar{

    background:#f8f9fc;

    padding:40px;

    border-radius:24px;

    height:100%;

}

.contact-sidebar h3{

    font-size:28px;

    font-weight:700;

    margin-bottom:20px;

}

.contact-sidebar p{

    color:#666;

    line-height:1.8;

    margin-bottom:30px;

}

/*=====================================================
                CONTACT LIST
=====================================================*/

.contact-sidebar ul{

    list-style:none;

    padding:0;

    margin:0 0 35px;

}

.contact-sidebar ul li{

    display:flex;

    align-items:flex-start;

    gap:15px;

    margin-bottom:22px;

    color:#444;

    line-height:1.7;

}

.contact-sidebar ul li i{

    width:45px;

    height:45px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    background:rgba(0,51,141,.08);

    color:var(--primary);

    font-size:18px;

    flex-shrink:0;

}

.contact-sidebar a{

    color:#444;

    transition:.3s ease;

}

.contact-sidebar a:hover{

    color:var(--primary);

}

/*=====================================================
                MAP
=====================================================*/

.contact-map{

    overflow:hidden;

    border-radius:18px;

}

.contact-map iframe{

    width:100%;

    height:280px;

    border:0;

    display:block;

}

/*=====================================================
                CONTACT FORM BUTTON
=====================================================*/

.contact-form .theme-btn{

    width:100%;

    justify-content:center;

    min-height:58px;

    border-radius:14px;

    font-size:16px;

    font-weight:600;

    margin-top:10px;

    transition:.35s ease;

}

.contact-form .theme-btn:hover{

    transform:translateY(-3px);

}

/*=====================================================
                SERVICE AREAS
=====================================================*/

.service-areas{

    background:#f8f9fc;

}

.service-areas .section-heading{

    max-width:700px;

    margin:0 auto 50px;

}

.areas-list{

    display:flex;

    flex-wrap:wrap;

    justify-content:center;

    gap:18px;

}

.areas-list span{

    padding:14px 24px;

    border-radius:50px;

    background:#fff;

    border:1px solid #e8edf3;

    color:var(--dark);

    font-weight:600;

    transition:.35s ease;

    box-shadow:0 10px 25px rgba(0,0,0,.04);

}

.areas-list span:hover{

    background:var(--primary);

    color:#fff;

    transform:translateY(-4px);

}

/* =====================================================================
   LIGHT POLISH ENHANCEMENTS
   Additive-only refinements: no layout, color palette, typography scale
   or structure changes. Just filling in missing hover/shadow/focus
   states on a handful of elements that had none, using the same values
   (colors, radii, shadow depths, transition speeds) already established
   everywhere else in this stylesheet, so it reads as one consistent
   design rather than a new one.
===================================================================== */

/* Smooth in-page scrolling (FAQ anchors, back-to-top, in-page nav). */
html{
    scroll-behavior:smooth;
}

/* Branded text selection color instead of the browser default. */
::selection{
    background:var(--accent);
    color:#fff;
}

/* Trust-stat numbers (Projects Completed / Years Experience / etc.) had
   no card treatment at all -- give them the same card language as every
   other card component on the site. */
.stat-box{

    background:#fff;

    border-radius:20px;

    box-shadow:0 15px 35px rgba(0,0,0,.05);

    transition:.35s ease;
}

.stat-box:hover{

    transform:translateY(-8px);

    box-shadow:0 25px 50px rgba(0,0,0,.1);
}

/* Testimonial card had a flat border with no depth or hover response. */
.testimonial-item{

    box-shadow:0 20px 50px rgba(0,0,0,.05);

    transition:.35s ease;
}

.testimonial-item:hover{

    transform:translateY(-6px);

    box-shadow:0 30px 60px rgba(0,0,0,.09);
}

/* Contact form inputs had no visible focus ring -- add a subtle branded
   glow so keyboard/focus state is clearer without changing the field
   chrome itself. */
.contact-form .form-control:focus{

    box-shadow:0 0 0 4px rgba(0,51,141,.08);
}

/* Service strip icons (Residential / Commercial / Security / Melbourne
   Wide) had a hover background but the icon itself stayed static. */
.service-strip-item i{
    transition:.35s ease;
}

.service-strip-item:hover i{
    transform:translateY(-4px) scale(1.08);
}

/* =====================================================================
   SECTION LAYOUT REFRESH
   A second additive pass across the remaining sections that hadn't been
   touched yet (about, why-choose, process, contact sidebar) -- same
   design language as the blocks above: subtle depth, icon micro-motion
   and a branded glow on hover, nothing that changes layout or spacing.
===================================================================== */

/* About: icon bullets stayed static on hover; give the row a lift and
   the icon dot a soft glow to match the rest of the site's hover language. */
.feature-item{
    transition:.3s ease;
}

.feature-item:hover{
    transform:translateX(4px);
}

.feature-item i{
    transition:.3s ease;
}

.feature-item:hover i{
    background:var(--accent);
    color:#fff;
    box-shadow:0 8px 18px rgba(242,183,5,.35);
}

.about-image::after{
    content:'';
    position:absolute;
    inset:0;
    border-radius:20px;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
    pointer-events:none;
}

/* Why Choose: icon tiles had no hover reaction of their own (only the
   whole card lifted) -- add a matching accent glow. */
.why-item i{
    transition:.35s ease;
}

.why-item:hover i{
    background:linear-gradient(135deg,var(--accent),#f5b301);
    box-shadow:0 12px 28px rgba(242,183,5,.3);
    transform:scale(1.06);
}

/* Process: connecting line had a flat gradient with no motion cue. */
.process-step.active:not(:last-child)::after{
    animation:ppfLineGrow 1s ease forwards;
}

@keyframes ppfLineGrow{
    from{ height:0; }
    to{ height:70px; }
}

/* Contact sidebar: icon badges were static circles -- respond on hover
   of the row like every other icon element on the site now does. */
.contact-sidebar ul li{
    transition:.3s ease;
}

.contact-sidebar ul li i{
    transition:.3s ease;
}

.contact-sidebar ul li:hover{
    transform:translateX(4px);
}

.contact-sidebar ul li:hover i{
    background:var(--primary);
    color:#fff;
    box-shadow:0 10px 22px rgba(0,51,141,.25);
}

/* FAQ: active question had no accent cue beyond the rotated icon. */
.faq-question h3{
    transition:.3s ease;
}

.faq-item.active .faq-question h3{
    color:var(--primary);
}

/* =====================================================================
   PAGE / LEGAL CONTENT TYPOGRAPHY
   Used by page.php (any generic Page, e.g. Privacy Policy, Terms &
   Conditions) so long-form editor content reads well -- global ul/ol
   are list-style:none with no padding for the rest of the site's custom
   component markup, so plain prose needs its own list treatment here.
===================================================================== */

.page-content{
    padding:100px 0;
}

.page-content h2{
    font-size:32px;
    margin-top:45px;
    margin-bottom:18px;
}

.page-content h2:first-child{
    margin-top:0;
}

.page-content h3{
    font-size:23px;
    margin-top:32px;
    margin-bottom:14px;
}

.page-content p{
    color:var(--text);
}

.page-content ul,
.page-content ol{
    margin:0 0 22px;
    padding-left:22px;
    list-style:disc;
}

.page-content ol{
    list-style:decimal;
}

.page-content li{
    color:var(--text);
    line-height:1.8;
    margin-bottom:10px;
}

.page-content li::marker{
    color:var(--accent);
}

.page-content a{
    color:var(--primary);
    font-weight:600;
    text-decoration:underline;
    text-underline-offset:3px;
}

.page-content a:hover{
    color:var(--accent);
}

.page-content strong{
    color:var(--dark);
}

.page-content .page-updated{
    display:inline-block;
    margin-bottom:35px;
    padding:8px 18px;
    border-radius:40px;
    background:rgba(0,51,141,.06);
    color:var(--primary);
    font-size:14px;
    font-weight:600;
}

/* =====================================================================
   THANK YOU PAGE
   Reached after a successful contact-form submission (see
   inc/contact-handler.php). Same visual language as the rest of the
   site -- gradient badge icon, primary/outline buttons -- kept simple
   since it's a one-message landing page, not a full section.
===================================================================== */

.thank-you-section{
    text-align:center;
}

.thank-you-icon{
    width:90px;
    height:90px;
    margin:0 auto 30px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg,var(--accent),#f5b301);
    color:#fff;
    font-size:34px;
    box-shadow:0 20px 45px rgba(242,183,5,.3);
}

.thank-you-section h2{
    margin-bottom:20px;
}

.thank-you-section p{
    color:#666;
    font-size:17px;
    line-height:1.8;
}

.thank-you-buttons{
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:15px;
    margin-top:30px;
}