:root{
    --primary:#146F99;
    --primary-dark:#0e5879;
    --accent:#28a745;
    --dark:#111827;
    --muted:#5f6b76;
    --light:#f7fbfd;
    --card-shadow:0 10px 30px rgba(0,0,0,.08);
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:Arial, Helvetica, sans-serif;
    color:var(--dark);
}

section{
    scroll-margin-top:92px;
}

img{
    max-width:100%;
}

.navbar{
    background:rgba(20,111,153,.97);
    box-shadow:0 4px 18px rgba(0,0,0,.08);
}

.nav-logo{
    width:52px;
    height:52px;
    object-fit:contain;
    border-radius:50%;
    background:white;
    padding:3px;
}

.navbar-brand,
.nav-link{
    color:white !important;
    font-weight:700;
}

.navbar-brand span{
    letter-spacing:.01em;
}

.nav-link:hover,
.nav-link:focus{
    text-decoration:underline;
    text-underline-offset:5px;
}

.navbar-toggler{
    border-color:rgba(255,255,255,.7);
}

.nav-quote{
    font-weight:800;
    color:var(--primary) !important;
}

.hero{
    min-height:92vh;
    background:
        linear-gradient(rgba(0,0,0,.60),rgba(0,0,0,.48)),
        url('images/squeegee-arm.jpg');
    background-size:cover;
    background-position:center;
    display:flex;
    align-items:center;
    color:white;
    padding-top:98px;
}

.hero h1{
    font-size:clamp(2.75rem, 7vw, 5rem);
    font-weight:900;
    letter-spacing:.04em;
    text-shadow:0 3px 16px rgba(0,0,0,.28);
}

.hero .lead{
    font-size:clamp(1.15rem, 2vw, 1.45rem);
    max-width:760px;
    margin-left:auto;
    margin-right:auto;
    text-shadow:0 2px 12px rgba(0,0,0,.34);
}

.btn-primary-custom,
.btn-primary{
    background:var(--primary);
    border:1px solid var(--primary);
    color:white;
    padding:14px 28px;
    border-radius:8px;
    text-decoration:none;
    font-weight:700;
    display:inline-block;
}

.btn-primary-custom:hover,
.btn-primary:hover,
.btn-primary:focus{
    background:var(--primary-dark);
    border-color:var(--primary-dark);
    color:white;
}

.btn-outline-custom{
    color:var(--primary);
    border:1px solid var(--primary);
    border-radius:8px;
    padding:14px 28px;
    text-decoration:none;
    font-weight:700;
    display:inline-block;
}

.btn-outline-custom:hover,
.btn-outline-custom:focus{
    background:var(--primary);
    color:white;
}

.section-title{
    font-weight:800;
    color:var(--primary);
    margin-bottom:20px;
}

.section-kicker{
    color:var(--muted);
    max-width:760px;
    margin:0 auto 36px;
}

.trust-bar{
    background:var(--primary);
    color:white;
    padding:22px 0;
    font-weight:700;
}

.trust-bar .col-md-3{
    padding-top:8px;
    padding-bottom:8px;
}

.service-card{
    border:none;
    border-radius:14px;
    overflow:hidden;
    box-shadow:var(--card-shadow);
    transition:transform .25s ease, box-shadow .25s ease;
    height:100%;
}

.service-card:hover{
    transform:translateY(-5px);
    box-shadow:0 16px 38px rgba(0,0,0,.12);
}

.text-card{
    background:white;
    padding:30px;
    text-align:center;
}

.service-icon{
    width:52px;
    height:52px;
    border-radius:50%;
    background:rgba(20,111,153,.10);
    color:var(--primary);
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 auto 18px;
    font-size:1.7rem;
    font-weight:800;
}

.gallery-carousel{
    max-width:980px;
    margin:0 auto;
}

.gallery-carousel .carousel-inner{
    background:#0b1720;
}

.gallery-carousel .carousel-item img{
    height:620px;
    object-fit:contain;
    background:#0b1720;
}

.carousel-control-prev,
.carousel-control-next{
    width:10%;
}

.carousel-indicators [data-bs-target]{
    width:12px;
    height:12px;
    border-radius:50%;
}

.process-step{
    text-align:center;
}

.step-circle{
    width:82px;
    height:82px;
    border-radius:50%;
    background:var(--primary);
    color:white;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:2rem;
    font-weight:800;
    margin:auto;
}

.review-card,
.info-card,
.quote-card{
    border-radius:14px;
    padding:26px;
    box-shadow:var(--card-shadow);
    height:100%;
    background:white;
}

.review-stars{
    color:#f5a623;
    letter-spacing:.08em;
    font-weight:800;
}

.google-review-widget-placeholder{
    border:2px dashed rgba(20,111,153,.35);
    background:#fff;
    border-radius:14px;
    padding:32px;
}

.cta-section{
    background:linear-gradient(135deg,var(--primary),var(--primary-dark));
    color:white;
}

footer{
    background:#111;
    color:white;
    padding:46px 0;
}

footer a{
    color:white;
}

.floating-call{
    position:fixed;
    bottom:24px;
    right:24px;
    background:var(--accent);
    color:white;
    text-decoration:none;
    padding:15px 22px;
    border-radius:50px;
    font-weight:800;
    z-index:999;
    box-shadow:0 8px 20px rgba(0,0,0,.2);
}

.floating-call:hover,
.floating-call:focus{
    color:white;
    filter:brightness(.95);
}

@media (max-width: 991px){
    .nav-logo{
        width:46px;
        height:46px;
    }

    .nav-quote{
        margin-top:10px;
    }
}

@media (max-width: 767px){
    .hero{
        min-height:84vh;
        text-align:center;
    }

    .gallery-carousel .carousel-item img{
        height:440px;
    }

    .floating-call{
        left:16px;
        right:16px;
        text-align:center;
    }
}
