* {

    margin:0;
    padding:0;
    box-sizing:border-box;
    
    }
    
    section {
    margin: 0;
    padding: 0;
}
    
    body {
    
    font-family: Arial, sans-serif;
    
    color:var(--dark);
    background:#c7dfef;
    }
    
    
    
    .container {
    
    width:100%;
    max-width:var(--container);
    
    margin:auto;
    
    padding:0 40px;
    
    }
    
 
    
    /* NAVIGATION */
.services-menu {
    position:relative;
}


.services-button {

    background:none;
    border:none;

    font-size:16px;
    font-weight:500;

    color:var(--dark);

    cursor:pointer;
}


.services-dropdown {

    position:absolute;

    top:35px;
    left:0;

    width:200px;

    background:white;

    border-radius:12px;

    box-shadow:0 10px 30px rgba(0,0,0,.15);

    padding:10px;

    display:none;

}


.services-dropdown a {

    display:block;

    padding:12px;

    color:var(--dark);

    text-decoration:none;

    border-radius:8px;

}


.services-dropdown a:hover {

    background:#c7dfef;

}


/* show menu */

.services-dropdown.show {
    display:block;
}
    
.navbar {
    position: fixed;
    top: 0;
    left: 0;

    width: 100%;
    height: 90px;

    display:flex;
    align-items:center;

    background:#c7dfef;

    z-index:9999;

    box-shadow:0 2px 10px rgba(0,0,0,.05);
}
    
    
    .nav-container {
    
    display:flex;
    
    align-items:center;
    
    justify-content:space-between;
    width:100%;
    
    }

    
    
    .logo {
    
    font-size:26px;
    
    font-weight:700;
    
    color:var(--primary);
    
    }
    
    
    
    nav {
    
    display:flex;
    
    gap:35px;
    
    }
    
    
    nav a {
    
    text-decoration:none;
    
    color:var(--dark);
    
    font-weight:500;
    
    }
    
    
    
    .nav-buttons {
    
    display:flex;
    
    gap:15px;
    
    }
    
    
    
    .quote-button,
    .phone-button {
    
    
    padding:15px 25px;
    
    border-radius:var(--radius);
    
    text-decoration:none;
    
    font-weight:600;
    
    cursor:pointer;
    
    }
    
    
    
.quote-button {

    background:var(--primary);
    color:white;
    transition:0.3s;

}


.quote-button:hover {

    background:var(--secondary);

}
    
    
.phone-button {

    border:2px solid var(--accent);
    color:var(--primary);
    transition:0.3s;

}


.phone-button:hover {

    background:var(--accent);
    color:white;

}
    
    .logo {

    display:flex;
    flex-direction:column;
    line-height:1;

}


.logo span {

    font-size:28px;
    font-weight:800;
    color:var(--primary);

}


.logo small {

    font-size:12px;
    color:var(--gray);
    letter-spacing:2px;

}/* =========================
   HERO SCROLL AREA
========================= */

.hero-section {
    height: 100vh;
    position: relative;
}

.hero {
    position: sticky;
    top: 0;
    padding-top:90px;
    height:200vh !important;
    width: 100%;
    background:#c7dfef;
    overflow: hidden;
}



/* =========================
   CONTENT
========================= */

.hero-container {

    position: relative;
    display:flex;
    height:100%;
    width:100%;

    max-width:1200px;

    margin:auto;

    padding:0 40px;

}


.hero-content {

    position:relative;

    z-index:10;

    max-width:650px;

    color:white;

    padding-top:20vh;

}


.small-title {

    color:var(--primary);

    font-weight:600;

    margin-bottom:20px;

}


h1 {

    font-size:60px;

    line-height:1.1;

    margin-bottom:25px;

}


.hero-text {

    font-size:20px;

    line-height:1.6;

    color:#f2f2f2;

    margin-bottom:35px;

}


.hero-buttons {

    display:flex;

    gap:20px;

    margin-bottom:40px;

}


.trust-list {

    position:absolute;

    right:-450px;
    top:90%;

    transform:translateY(-50%);

    display:flex;
    flex-direction:column;

    gap:10px;

    color:white;
    font-size:16px;
    font-weight:600;

}
.trust-list span {

    background:rgba(0,0,0,.35);

    padding:12px 20px;

    border-radius:30px;

    backdrop-filter:blur(5px);

}


/* =========================
   IMAGES
========================= */


.hero-image {

    position:absolute;

    inset:0;

    z-index:1;

}


.before-after-container {

    position:absolute;

    inset:0;

    overflow:hidden;

}


.after-image,
.before-image {

    width:100%;

    height:100%;
    display:block;
    object-fit:cover;

}


.before-image-wrapper {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    overflow:hidden;
    z-index:3;
}

.before-image {
    position:absolute;
    top:0;
    left:0;

    width:100%;
    height:100%;

    max-width:none;

    object-fit:cover;
}
.before-after-container::after {

    content:"";

    position:absolute;

    inset:0;

    background:rgba(0,0,0,.45);

    z-index:2;

    pointer-events:none;

}



.slider-line {

    position:absolute;

    top:0;

    bottom:0;

    width:3px;
  background:black;

    z-index:5;

}



#comparisonSlider {

    display:none;

}/* =========================
   SERVICES
========================= */

.services-container {
    width:100%;
    max-width:1200px;
    margin:auto;
    padding:60px 40px;

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


.service-box {

    position:relative;

    height:420px;
    width:100%;

    border-radius:20px;
    overflow:hidden;

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

    text-align:center;

    background-size:cover;
    background-position:center;

    color:white;
}


/* dark overlay */
.service-box::before {

    content:"";

    position:absolute;
    inset:0;

    background:rgba(0,0,0,.45);

}


/* keep text above overlay */

.service-box h2,
.service-box p {

    position:relative;
    z-index:2;

    color:white;

}


.service-box h2 {

    font-size:42px;
    margin-bottom:15px;

}


.service-box p {

    max-width:650px;

    font-size:20px;
    line-height:1.6;

}


/* Service images are injected from client.json by the generator. */
.service-box {
    background-size: cover;
    background-position: center;
}

/* Text */


.service-box h2 {

    font-size:42px;

    margin-bottom:20px;

}



.service-box p {

    max-width:650px;

    font-size:20px;

    line-height:1.6;

}



/* Mobile */


@media(max-width:700px){

    .services-container {

        padding:50px 20px;

    }


    .service-box {

        min-height:350px;

        padding:30px;

    }


    .service-box h2 {

        font-size:32px;

    }


    .service-box p {

        font-size:17px;

    }

}

/* WHY US */
.why-video {
    position:relative;
    height:600px;
    overflow:hidden;
    display:flex;
    align-items:center;
    margin-top: 80px;
}


.why-video-bg {

    position:absolute;

    inset:0;

    width:100%;
    height:100%;

    object-fit:cover;

    z-index:1;
}


.why-video-overlay {

    position:absolute;

    inset:0;

    background:rgba(0,0,0,.55);

    z-index:2;
}


.why-video-content {

    position:relative;

    z-index:3;

    max-width:1100px;

    margin:auto;

    padding:40px;

    color:white;

    text-align:center;
}


.why-video-content h2 {

    font-size:48px;

    margin-bottom:20px;

}


.why-video-content p {

    font-size:20px;

    line-height:1.6;

}


.why-video-points {

    display:flex;

    justify-content:center;

    gap:40px;

    margin-top:40px;

}
.why-video::after {

    content:"";

    position:absolute;

    bottom:0;
    left:0;

    width:100%;
    height:120px;

    background:linear-gradient(
        transparent,
        #c7dfef
    );

    z-index:3;
}

.why-video-points div {

    max-width:280px;

}

.why-us {

    padding:100px 0;
    background:var(--light);

}



.why-container {

    display:flex;
    align-items:center;
    gap:70px;

}



.why-image {

    width:45%;

}



.why-image img {

    width:100%;
    height:500px;
    object-fit:cover;
    border-radius:20px;

}



.why-content {

    width:55%;

}



.why-content h2 {

    font-size:42px;
    color:var(--primary);
    margin-bottom:25px;

}



.why-content > p {

    color:var(--gray);
    font-size:18px;
    line-height:1.7;
    margin-bottom:35px;

}



.features {

    display:flex;
    flex-direction:column;
    gap:20px;

}



.feature h3 {

    color:var(--primary);
    margin-bottom:8px;

}



.feature p {

    color:var(--gray);

}

.contact {

    padding:100px 0;
    background:var(--light);

}


.contact-header {

    text-align:center;
    margin-bottom:50px;

}


.contact-header h2 {

    font-size:42px;
    color:var(--primary);

}



#contact-form {

    max-width:700px;
    margin:auto;

}



.form-group {

    margin-bottom:20px;

}



.form-group input,
.form-group select,
.form-group textarea {

    width:100%;
    padding:16px;

    border:1px solid #d5dde5;

    border-radius:12px;

    font-size:16px;

} 
/* SERVICE AREA BANNER SECTION */
.service-area-banner {
    text-align: center;
    padding: 80px 20px;
    background: linear-gradient(135deg, #0F2438 0%, #1a3a56 100%); /* Clean matching corporate gradient */
    color: #c7dfef;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    position: relative;
    overflow: hidden;
}

/* Enhancing the headline text appearance */
.service-area-banner h2 {
    font-size: 2.5rem;
    font-weight: 800;
    line-height: 1.3;
    max-width: 800px;
    margin: 0 auto 15px auto;
    letter-spacing: -0.5px;
}

/* Subtext element styling if you want a descriptive line underneath */
.service-area-banner p {
    color: #cbd5e1;
    font-size: 1.2rem;
    max-width: 600px;
    line-height: 1.6;
    margin: 0 auto;
}

/* Subtle graphic accent line below the text */
.service-area-banner::after {
    content: '';
    display: block;
    width: 60px;
    height: 4px;
    background: var(--accent, #ff9900); /* Uses your custom accent configuration variable */
    margin-top: 25px;
    border-radius: 2px;
}
.faq {

    padding:100px 0;
    background:#c7dfef;

}


.faq-list {

    max-width:800px;
    margin:auto;

}


.faq-item {

    padding:50px;

    margin-bottom:20px;

    background:#a6c9e0;

    border-radius:var(--radius);

}


.faq-item h3 {

    margin-bottom:10px;

    color:var(--primary);

}


.faq-item p {

    color:var(--gray);

    line-height:1.6;

}

html {
    scroll-behavior: smooth;
}

.form-group textarea {

    height:150px;
    resize:none;

}



#form-message {

    margin-top:20px;
    color:var(--primary);
    font-weight:600;

}
.footer {

    background:#0F2438;
    color:white;

    padding-top:70px;

}



.footer-container {

    display:grid;

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

    gap:40px;

}



.footer-logo {

    color:white;

    margin-bottom:20px;

}



.footer-logo small {

    display:block;

    font-size:13px;

    font-weight:400;

}



.footer-column h3 {

    margin-bottom:20px;

    font-size:20px;

}



.footer-column p {

    color:#cbd5e1;

    line-height:1.7;

}



.footer-column a {

    display:block;

    color:#cbd5e1;

    text-decoration:none;

    margin-bottom:12px;

}



.footer-column a:hover {

    color:white;

}



.footer-bottom {

    margin-top:50px;

    padding:20px 0;

    text-align:center;

    border-top:1px solid rgba(255,255,255,0.15);

}



.footer-bottom p {

    color:#cbd5e1;

}
.menu-toggle {

    display:none;

    font-size:30px;

    cursor:pointer;

    color:var(--primary);

}
html,
body {

    overflow-x:hidden;

}
.floating-buttons {

    display:none;

}
/* =========================
   REVIEWS
========================= */

.reviews {

    padding:90px 0;

    background:#c7dfef;

}


.reviews .container {

    text-align:center;

}


.reviews h2 {

    font-size:42px;

    color:var(--primary);

    margin-bottom:20px;

}



.reviews-box {

    max-width:600px;

    margin:40px auto 0;

    padding:45px;

    background:rgb(114, 186, 225);

    border-radius:20px;

    box-shadow:0 15px 40px rgba(0,0,0,.12);

}



.stars {

    font-size:42px;

    letter-spacing:6px;

    color:#0800fb;

    margin-bottom:20px;

}



.reviews-box h3 {

    font-size:28px;

    color:#0F2438;

    margin-bottom:15px;

}



.reviews-box p {

    color:#555;

    font-size:18px;

    line-height:1.7;

    margin-bottom:30px;

}



/* Google style button */

.reviews-box a {

    display:inline-block;

    padding:14px 30px;

    background:#0F2438;

    color:white;

    border-radius:30px;

    text-decoration:none;

    font-weight:600;

    transition:.3s;

}


.reviews-box a:hover {

    transform:translateY(-3px);

}
/* FAQ ACCORDION */

.faq-list {
    max-width:900px;
    margin:auto;
}


.faq-item {

    border-bottom:1px solid #ddd;
    padding:20px 0;

}


.faq-question {

    width:100%;
    display:flex;
    justify-content:space-between;
    align-items:center;

    background:none;
    border:none;

    font-size:18px;
    font-weight:600;

    cursor:pointer;

    color:var(--dark);

}


.faq-question span {

    font-size:25px;

}


.faq-answer {

    display:none;

    padding-top:15px;

    color:var(--gray);

    line-height:1.6;

}


.faq-item.active .faq-answer {

    display:block;

}


.faq-hidden {

    display:none;

    margin-top:20px;

}


#show-faq {

    display:block;

    margin:40px auto 0;

}


@keyframes popupIn{
    from{
        opacity:0;
        transform:translateY(20px) scale(.95);
    }
    to{
        opacity:1;
        transform:translateY(0) scale(1);
    }
}

.lead-popup-close{
    position:absolute;
    right:15px;
    top:12px;
    border:none;
    background:none;
    font-size:30px;
    cursor:pointer;
}

.lead-popup-form{
    display:flex;
    flex-direction:column;
    gap:15px;
    margin-top:20px;
}

.lead-popup-form input,
.lead-popup-form textarea{
    width:100%;
    padding:14px;
    border:1px solid #ddd;
    border-radius:8px;
    font-size:16px;
    box-sizing:border-box;
}

.lead-popup-form textarea{
    min-height:120px;
    resize:vertical;
}

.before-after-container{
    position:relative;
    width:100%;
    height:100%;
    overflow:hidden;
    border-radius:20px;
    box-shadow:var(--shadow);
}

.before-after-container img{
    width:100%;
    height:100%;
    object-fit:cover;
    user-select:none;
    pointer-events:none;
}

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

.before-image-wrapper{
    position:absolute;
    inset:0;
    width:50%;
    overflow:hidden;
}

.before-image,
.after-image{

    position:absolute;
    inset:0;

    width:100%;
    height:100%;

    object-fit:cover;
    display: block;
}

.before-image-wrapper{
    z-index:2;
}

.slider-line{
    z-index:3;
}

#comparisonSlider{
    z-index:4;
}
.slider-line{
    position:absolute;
    left:50%;
    top:0;
    width:4px;
    height:100%;
    background:white;
    transform:translateX(-50%);
    pointer-events:none;
}

.slider-handle{
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
    width:54px;
    height:54px;
    border-radius:50%;
    background:white;
    color:#0F2438;
    font-size:22px;
    font-weight:bold;
    display:flex;
    justify-content:center;
    align-items:center;
    box-shadow:0 8px 25px rgba(0,0,0,.25);
}

#comparisonSlider{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    opacity:0;
    cursor:ew-resize;
}

.label-before,
.label-after{
    position:absolute;
    top:20px;
    padding:8px 14px;
    background:rgba(0,0,0,.65);
    color:white;
    border-radius:20px;
    font-weight:600;
    font-size:14px;
}

.label-before{
    left:20px;
}

.label-after{
    right:20px;
}
.lead-popup-overlay{
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,.65);
    display: none;
    justify-content: center;
    align-items: center;
    z-index: 99999;
    padding: 20px;
}

.lead-popup-overlay.show{
    display: flex;
}

.lead-popup-card{
    width: 100%;
    max-width: 480px;
    background: #fff;
    border-radius: 18px;
    padding: 35px;
    box-shadow: 0 25px 60px rgba(0,0,0,.25);
    position: relative;
    animation: popupIn .3s ease;
}



.footer-logo span {

    color:rgb(90, 156, 255);

    font-size:28px;
    font-weight:800;

}


.footer-logo small {

    color:#cbd5e1;

    font-size:12px;

    letter-spacing:2px;

}

.call-popup {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.55);
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    transition: .25s;
    z-index: 9999;
}

.call-popup.show {
    opacity: 1;
    visibility: visible;
}

.call-popup-content {
    position: relative;
    background: #fff;
    padding: 35px;
    border-radius: 16px;
    width: min(90%, 400px);
    text-align: center;
    box-shadow: 0 20px 60px rgba(0,0,0,.25);
}

.call-popup h2 {
    margin-bottom: 10px;
}

.popup-phone {
    margin-top: 20px;
    font-size: 30px;
    font-weight: 700;
    color: #d97706; /* your accent color */
    letter-spacing: 1px;
}

.popup-close {
    position: absolute;
    top: 12px;
    right: 14px;
    border: none;
    background: none;
    font-size: 28px;
    cursor: pointer;
}

.why-image .section-media {
    width: 100%;
    height: 500px;
    display: block;
    object-fit: cover;
    border-radius: 20px;
}

.why-image video.section-media {
    background: #000;
}


/* =========================================================
   LAYOUT RESCUE — GENERIC SERVICE BUSINESS TEMPLATE
   Creates visual rhythm between sections and image cards.
   Keep this block at the END of main.css.
========================================================= */

body {
    background: var(--light);
}

/* Give every major content section a deliberate vertical rhythm. */
.services,
.why-us,
.reviews,
.faq,
.contact {
    position: relative;
}

/* SERVICES */
.services {
    padding: 120px 0 130px;
    background: #c7dfef;
}

.services > .container {
    max-width: 1180px;
}

.section-header {
    max-width: 760px;
    margin: 0 auto 68px;
    padding: 0 20px;
    text-align: center;
}

.section-header .small-title {
    margin-bottom: 14px;
}

.section-header h2 {
    margin: 0 0 20px;
    font-size: clamp(38px, 4vw, 54px);
    line-height: 1.08;
    color: var(--primary);
    letter-spacing: -0.025em;
}

.section-header > p:not(.small-title) {
    max-width: 660px;
    margin: 0 auto;
    color: var(--gray);
    font-size: 18px;
    line-height: 1.75;
}

.service-grid {
    width: 100%;
}

.services-container {
    width: 100%;
    max-width: 1080px;
    margin: 0 auto;
    padding: 0 24px;
    display: flex;
    flex-direction: column;
    gap: 64px;
}

.service-box {
    min-height: 390px;
    height: auto;
    padding: 70px 72px;
    border-radius: 24px;
    box-shadow: 0 18px 42px rgba(11, 31, 51, 0.12);
    isolation: isolate;
}

.service-box::before {
    background: linear-gradient(
        180deg,
        rgba(8, 22, 36, 0.28) 0%,
        rgba(8, 22, 36, 0.62) 100%
    );
}

.service-box h2 {
    max-width: 760px;
    margin: 0 auto 18px;
    font-size: clamp(32px, 4vw, 46px);
    line-height: 1.12;
    letter-spacing: -0.02em;
}

.service-box p {
    max-width: 690px;
    margin-left: auto;
    margin-right: auto;
    font-size: 18px;
    line-height: 1.65;
}

/* The Learn More paragraph is separate from the descriptive paragraph.
   Give it room so the CTA never feels glued to the copy. */
.service-box p + p {
    margin-top: 30px;
}

.service-box .quote-button {
    display: inline-flex;
    min-width: 138px;
    justify-content: center;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.16);
}

/* WHY US */
.why-us {
    padding: 130px 0;
    background: var(--light);
}

.why-container {
    gap: 88px;
    align-items: center;
}

.why-image {
    width: 48%;
}

.why-content {
    width: 52%;
}

.why-image .section-media,
.why-image img {
    height: 520px;
    border-radius: 24px;
    box-shadow: 0 18px 44px rgba(11, 31, 51, 0.13);
}

.why-content .small-title {
    margin-bottom: 14px;
}

.why-content h2 {
    margin-bottom: 24px;
    font-size: clamp(36px, 4vw, 48px);
    line-height: 1.12;
}

.why-content > p {
    margin-bottom: 38px;
    font-size: 18px;
    line-height: 1.75;
}

.features {
    gap: 24px;
}

.feature {
    padding-top: 2px;
}

/* FAQ / REVIEWS / CONTACT */
.reviews,
.faq,
.contact {
    padding: 120px 0;
}

.faq .section-header,
.reviews .section-header {
    margin-bottom: 56px;
}

.faq-list {
    max-width: 860px;
}

.faq-item {
    margin-bottom: 18px;
    border-radius: 18px;
}

.service-area-banner {
    padding: 100px 24px;
}

.contact-header {
    max-width: 720px;
    margin: 0 auto 58px;
}

.contact-header .small-title {
    margin-bottom: 14px;
}

.contact-header h2 {
    margin-bottom: 18px;
    font-size: clamp(38px, 4vw, 50px);
    line-height: 1.12;
}

.contact-header > p {
    color: var(--gray);
    font-size: 18px;
    line-height: 1.7;
}

#contact-form {
    max-width: 760px;
    padding: 38px;
    background: var(--white);
    border-radius: 24px;
    box-shadow: 0 18px 44px rgba(11, 31, 51, 0.10);
}

.form-group {
    margin-bottom: 18px;
}

/* Keep footer visually separated from the form rather than attached to it. */
.footer {
    margin-top: 0;
}



/* =========================================================
   SOURCE-AWARE OPTIONAL SECTIONS
========================================================= */

.process-section,
.project-gallery,
.coverage-section {
    padding: 120px 0;
}

.process-section {
    background: #eef6fb;
}

.process-grid {
    max-width: 1080px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
}

.process-card {
    min-height: 260px;
    padding: 42px 36px 38px;
    background: #fff;
    border-radius: 22px;
    box-shadow: 0 16px 38px rgba(11, 31, 51, 0.08);
}

.process-number {
    display: block;
    margin-bottom: 34px;
    font-size: 42px;
    line-height: 1;
    font-weight: 800;
    color: rgba(15, 36, 56, 0.16);
}

.process-card h3 {
    margin-bottom: 14px;
    font-size: 24px;
    color: var(--primary);
}

.process-card p {
    color: var(--gray);
    line-height: 1.7;
}

.project-gallery {
    background: #fff;
}

.project-grid {
    max-width: 1120px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.project-card {
    height: 330px;
    margin: 0;
    overflow: hidden;
    border-radius: 22px;
    background: #10263a;
    box-shadow: 0 16px 36px rgba(11, 31, 51, 0.11);
}

.project-card img,
.project-card video {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.coverage-section {
    background: #0f2438;
    color: #fff;
}

.coverage-layout {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr);
    align-items: center;
    gap: 72px;
}

.coverage-copy .small-title {
    color: #9ec9e5;
}

.coverage-copy h2 {
    margin: 0 0 22px;
    max-width: 620px;
    font-size: clamp(38px, 4vw, 52px);
    line-height: 1.1;
    color: #fff;
}

.coverage-description {
    max-width: 620px;
    margin-bottom: 30px;
    color: #d3e2ec;
    font-size: 18px;
    line-height: 1.75;
}

.area-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 32px;
}

.area-chips span {
    padding: 9px 14px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 999px;
    background: rgba(255,255,255,.07);
    color: #fff;
    font-size: 14px;
}

.map-card {
    min-height: 510px;
    overflow: hidden;
    border-radius: 24px;
    background: #dce7ee;
    box-shadow: 0 24px 55px rgba(0,0,0,.28);
}

.map-card iframe {
    width: 100%;
    height: 510px;
    display: block;
    border: 0;
}

.footer-rich {
    grid-template-columns: 1.35fr repeat(3, 1fr);
    align-items: start;
}

.footer-brand-column {
    max-width: 330px;
}

.footer-phone {
    margin-top: 20px;
    font-size: 20px;
    font-weight: 700;
    color: #fff !important;
}

.footer-lower {
    margin-top: 54px;
    padding-top: 28px;
    padding-bottom: 28px;
    border-top: 1px solid rgba(255,255,255,.12);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
}

.footer-lower p {
    margin: 0;
    color: #aebfcb;
}

.footer-legal-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 18px;
}

.footer-legal-links a {
    color: #aebfcb;
    font-size: 14px;
    text-decoration: none;
}

/* =========================================================
   CONVERSION HERO — GENERIC SERVICE BUSINESS TEMPLATE
   Two-column lead-first homepage hero.
   Uses existing brand variables and generated client media.
========================================================= */

.conversion-hero {
    position: relative;
    min-height: 760px;
    height: auto;
    padding-top: 90px;
    overflow: hidden;
    background: var(--primary);
    isolation: isolate;
}

.conversion-hero-bg,
.conversion-hero-overlay {
    position: absolute;
    inset: 0;
}

.conversion-hero-bg {
    z-index: -3;
    background-size: cover;
    background-position: center;
    transform: scale(1.02);
}

.conversion-hero-overlay {
    z-index: -2;
    background:
        linear-gradient(
            90deg,
            rgba(7, 25, 39, .94) 0%,
            rgba(9, 34, 50, .87) 42%,
            rgba(11, 31, 51, .63) 67%,
            rgba(11, 31, 51, .43) 100%
        ),
        linear-gradient(
            180deg,
            rgba(11, 31, 51, .08),
            rgba(11, 31, 51, .35)
        );
}

.conversion-hero-container {
    position: relative;
    z-index: 2;
    min-height: 670px;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(390px, .78fr);
    align-items: center;
    gap: 76px;
    padding-top: 58px;
    padding-bottom: 72px;
}

.conversion-hero-copy {
    max-width: 720px;
    color: var(--white);
}

.conversion-eyebrow {
    display: inline-flex;
    width: fit-content;
    margin: 0 0 24px;
    padding: 9px 16px;
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 999px;
    background: rgba(74, 144, 164, .18);
    backdrop-filter: blur(8px);
    color: #e7f5fa;
    font-size: 14px;
    line-height: 1.2;
    font-weight: 700;
}

.conversion-hero-copy h1 {
    max-width: 700px;
    margin: 0 0 24px;
    color: var(--white);
    font-size: clamp(48px, 5.25vw, 72px);
    line-height: 1.03;
    letter-spacing: -.035em;
}

.conversion-hero-text {
    max-width: 660px;
    margin: 0 0 30px;
    color: rgba(255,255,255,.88);
    font-size: 19px;
    line-height: 1.7;
}

.conversion-trust-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 26px;
    max-width: 650px;
    margin-bottom: 34px;
}

.conversion-trust-item {
    display: flex;
    align-items: center;
    gap: 10px;
    color: rgba(255,255,255,.94);
    font-size: 15px;
    line-height: 1.35;
    font-weight: 650;
}

.conversion-check {
    flex: 0 0 auto;
    width: 25px;
    height: 25px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--accent);
    color: var(--white);
    font-size: 14px;
    font-weight: 900;
}

.conversion-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

.conversion-hero-actions .quote-button,
.conversion-hero-actions .phone-button {
    min-height: 54px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.conversion-hero-actions .quote-button {
    background: var(--accent);
}

.conversion-hero-actions .quote-button:hover {
    background: var(--secondary);
}

.conversion-book-button {
    border-color: rgba(255,255,255,.55);
    color: var(--white);
    background: rgba(255,255,255,.08);
}

.conversion-book-button:hover {
    border-color: var(--accent);
}

.hero-lead-card {
    width: 100%;
    max-width: 500px;
    justify-self: end;
    overflow: hidden;
    border-radius: 24px;
    background: var(--white);
    box-shadow: 0 28px 70px rgba(0,0,0,.28);
}

.hero-lead-card-header {
    padding: 28px 30px 24px;
    background: linear-gradient(135deg, var(--secondary), var(--accent));
    color: var(--white);
}

.hero-form-kicker {
    margin: 0 0 7px;
    color: rgba(255,255,255,.76);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .11em;
}

.hero-lead-card-header h2 {
    margin: 0 0 7px;
    color: var(--white);
    font-size: 30px;
    line-height: 1.12;
}

.hero-lead-card-header p:last-child {
    margin: 0;
    color: rgba(255,255,255,.88);
    font-size: 14px;
    line-height: 1.55;
}

.hero-lead-form {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    padding: 24px 26px 16px;
}

.hero-form-field {
    min-width: 0;
}

.hero-form-field:nth-of-type(4),
.hero-message-field,
.hero-submit-button,
.lead-form-message {
    grid-column: 1 / -1;
}

.hero-form-field label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.hero-form-field input,
.hero-form-field select,
.hero-form-field textarea {
    width: 100%;
    min-height: 52px;
    padding: 14px 15px;
    border: 1px solid #d5e2e9;
    border-radius: 12px;
    outline: none;
    background: #f7fbfd;
    color: var(--dark);
    font-family: inherit;
    font-size: 15px;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.hero-form-field textarea {
    min-height: 92px;
    resize: vertical;
}

.hero-form-field input:focus,
.hero-form-field select:focus,
.hero-form-field textarea:focus {
    border-color: var(--accent);
    background: var(--white);
    box-shadow: 0 0 0 3px rgba(74,144,164,.13);
}

.hero-submit-button {
    width: 100%;
    min-height: 54px;
    border: 0;
    font-family: inherit;
    font-size: 16px;
}

.lead-form-message {
    min-height: 18px;
    margin: -2px 0 0;
    color: var(--secondary);
    font-size: 13px;
    font-weight: 600;
    text-align: center;
}

.hero-form-callout {
    padding: 0 26px 22px;
    color: var(--gray);
    font-size: 13px;
    text-align: center;
}

.hero-form-callout a {
    margin-left: 5px;
    color: var(--secondary);
    font-weight: 800;
    text-decoration: none;
}

.conversion-proof-bar {
    position: relative;
    z-index: 3;
    border-top: 1px solid rgba(255,255,255,.10);
    background: rgba(199,223,239,.96);
}

.conversion-proof-inner {
    min-height: 66px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 18px 46px;
    color: var(--primary);
    font-size: 14px;
    font-weight: 700;
}

.conversion-proof-inner span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.conversion-proof-inner strong {
    color: var(--accent);
    font-size: 16px;
}

/* Neutralize the old sticky/200vh hero rules on the new homepage hero only. */
.conversion-hero .hero,
.conversion-hero .hero-container,
.conversion-hero .hero-content,
.conversion-hero .hero-image,
.conversion-hero .trust-list {
    position: static;
    height: auto !important;
    inset: auto;
    transform: none;
}


/* =========================================================
   DISTINCT HERO ART DIRECTION
   Keeps the existing brand palette while moving the homepage
   away from the reference site's headline/form treatment.
========================================================= */

.conversion-eyebrow {
    display: inline-block;
    margin: 0 0 22px;
    padding: 0 0 0 14px;
    border: 0;
    border-left: 3px solid var(--accent);
    border-radius: 0;
    background: transparent;
    backdrop-filter: none;
    color: rgba(255,255,255,.76);
    font-size: 13px;
    line-height: 1.3;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.conversion-hero-copy h1 {
    position: relative;
    max-width: 690px;
    margin: 0 0 34px;
    padding-bottom: 26px;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(46px, 4.75vw, 66px);
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -.018em;
    text-wrap: balance;
}

.conversion-hero-copy h1::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 76px;
    height: 4px;
    border-radius: 999px;
    background: var(--accent);
}

.conversion-hero-text {
    max-width: 620px;
    color: rgba(255,255,255,.82);
}

.conversion-check {
    border: 1px solid rgba(255,255,255,.28);
    background: rgba(255,255,255,.10);
    color: #fff;
}

.hero-lead-card {
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 18px;
}

.hero-lead-card-header {
    position: relative;
    padding: 30px 30px 25px;
    background: var(--primary);
}

.hero-lead-card-header::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 5px;
    background: var(--accent);
}

.hero-form-kicker {
    color: var(--accent);
    letter-spacing: .14em;
}

.hero-lead-card-header h2 {
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 700;
    letter-spacing: -.01em;
}

.hero-lead-form {
    grid-template-columns: 1fr 1fr;
}

/* With the service selector removed, the message and submit action
   intentionally span the full card width. */
.hero-message-field,
.hero-submit-button,
.lead-form-message {
    grid-column: 1 / -1;
}

/* =========================================================
   REVIEW CARDS — VERIFIED / CLIENT-PROVIDED REVIEWS
========================================================= */

.reviews {
    background: #eef6fb;
}

.reviews-grid {
    max-width: 1120px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.review-card {
    padding: 30px;
    text-align: left;
    background: var(--white);
    border-radius: 22px;
    box-shadow: 0 14px 34px rgba(11,31,51,.08);
    border: 1px solid rgba(11,31,51,.06);
}

.review-card-top {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
}

.review-avatar {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--primary);
    color: #fff;
    font-weight: 800;
}

.review-card h3 {
    margin: 0 0 4px;
    font-size: 18px;
    color: var(--primary);
}

.review-source {
    color: var(--gray);
    font-size: 13px;
}

.review-stars,
.reviews-summary-stars {
    color: #d99a16;
    letter-spacing: 3px;
}

.review-stars {
    margin-bottom: 16px;
    font-size: 18px;
}

.review-text {
    margin: 0;
    color: var(--gray);
    font-size: 16px;
    line-height: 1.72;
}

.reviews-summary {
    margin: 42px auto 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 16px;
}

.reviews-summary strong {
    font-size: 26px;
    color: var(--primary);
}

.reviews-summary .quote-button {
    margin-left: 10px;
}


/* =========================================================
   REFERENCE-INSPIRED BENEFITS SECTION
   Structure may be inspired by a reference site; content stays client-owned.
========================================================= */

.benefits-section {
    padding: 120px 0;
    background: #ffffff;
}

.benefits-grid {
    max-width: 1080px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 26px;
}

.benefit-card {
    position: relative;
    min-height: 250px;
    padding: 38px 32px;
    border: 1px solid rgba(15, 36, 56, .08);
    border-radius: 22px;
    background: #f7fbfe;
    box-shadow: 0 14px 34px rgba(11,31,51,.07);
}

.benefit-icon {
    width: 46px;
    height: 46px;
    margin-bottom: 26px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: var(--primary);
    color: #fff;
    font-size: 20px;
    font-weight: 800;
}

.benefit-card h3 {
    margin: 0 0 13px;
    color: var(--primary);
    font-size: 23px;
}

.benefit-card p {
    margin: 0;
    color: var(--gray);
    line-height: 1.7;
}


/* =========================================================
   REVIEW CARDS / GOOGLE REVIEW CTA
========================================================= */

.reviews-grid {
    max-width: 1120px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.review-card {
    padding: 30px;
    text-align: left;
    background: var(--white);
    border-radius: 22px;
    box-shadow: 0 14px 34px rgba(11,31,51,.08);
    border: 1px solid rgba(11,31,51,.06);
}

.review-card-top {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
}

.review-avatar {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--primary);
    color: #fff;
    font-weight: 800;
}

.review-card h3 {
    margin: 0 0 4px;
    font-size: 18px;
    color: var(--primary);
}

.review-source {
    color: var(--gray);
    font-size: 13px;
}

.review-stars,
.reviews-summary-stars {
    color: #d99a16;
    letter-spacing: 3px;
}

.review-stars {
    margin-bottom: 16px;
    font-size: 18px;
}

.review-text {
    margin: 0;
    color: var(--gray);
    font-size: 16px;
    line-height: 1.72;
}

.reviews-summary {
    margin: 42px auto 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 16px;
}


/* REVIEWS V2 — centered testimonial carousel */
.reviews-showcase {
    padding: 112px 0 104px;
    background: linear-gradient(180deg, #eef9fd 0%, #e7f6fb 100%);
}
.reviews-showcase-container { text-align: center; }
.reviews-showcase-header { margin-bottom: 34px; }
.reviews-rating-line {
    display:flex; justify-content:center; align-items:center; gap:9px;
    margin-top:16px; color:var(--primary); font-size:15px;
}
.review-carousel {
    position:relative; width:min(820px, calc(100% - 80px));
    margin:0 auto; padding:0 58px 38px;
}
.review-carousel-window {
    position:relative; min-height:340px; overflow:hidden;
    border-radius:26px; background:#fff;
    box-shadow:0 20px 55px rgba(11,31,51,.10);
}
.review-slide {
    display:none; min-height:340px; padding:54px 62px 42px; text-align:center;
}
.review-slide.active {
    display:flex; flex-direction:column; align-items:center; justify-content:center;
}
.review-quote-mark {
    position:absolute; top:2px; left:26px; color:#e4f5fa;
    font-family:Georgia,serif; font-size:92px; line-height:1;
}
.review-stars {
    margin:0 0 24px; color:#f5aa00; font-size:20px; letter-spacing:5px;
}
.review-text {
    max-width:590px; margin:0 auto 28px; color:#41566b;
    font-size:18px; line-height:1.75;
}
.review-person { display:flex; align-items:center; gap:13px; text-align:left; }
.review-person .review-avatar {
    width:48px; height:48px; display:grid; place-items:center;
    border-radius:50%; background:#22c7c7; color:#fff; font-weight:800;
}
.review-person h3 { margin:0 0 3px; font-size:16px; color:var(--primary); }
.review-source { color:#6c7f91; font-size:13px; }
.google-g { margin-right:4px; font-weight:900; }
.review-arrow {
    position:absolute; top:148px; z-index:5; width:46px; height:46px;
    border:1px solid #d5e8ef; border-radius:50%; background:#fff;
    color:#149bb7; box-shadow:0 8px 24px rgba(11,31,51,.08);
    cursor:pointer; font-size:32px; line-height:1;
}
.review-arrow-prev { left:0; }
.review-arrow-next { right:0; }
.review-dots {
    position:absolute; left:50%; bottom:6px; display:flex; gap:8px;
    transform:translateX(-50%);
}
.review-dot {
    width:9px; height:9px; padding:0; border:0; border-radius:99px;
    background:#c9eaf2; cursor:pointer;
}
.review-dot.active { width:22px; background:#18a8c5; }
.reviews-actions {
    display:flex; justify-content:center; gap:14px; margin-top:22px;
}
.review-empty-card .review-slide { display:flex; }

/* Extra breathing room between sections with similar card geometry. */
.benefits-section { margin-bottom: 34px; }
.process-section { margin-top: 34px; margin-bottom: 34px; }
.project-gallery { margin-top: 34px; margin-bottom: 34px; }


/* Reviews are intentionally the first content section after the hero. */
.conversion-hero + .reviews-showcase,
.hero-section + .reviews-showcase {
    margin-top: 0;
}

.reviews-showcase {
    position: relative;
    z-index: 2;
    border-top: 1px solid rgba(15, 36, 56, .06);
    border-bottom: 1px solid rgba(15, 36, 56, .06);
}

/* =========================================================
   SERVICE PAGE FIXED NAV OFFSET
========================================================= */

.service-page-intro {
    padding-top: 150px;
    padding-bottom: 80px;
}

.service-page-intro + section {
    scroll-margin-top: 110px;
}

body.service-page main {
    scroll-margin-top: 110px;
}

body.service-page section[id] {
    scroll-margin-top: 110px;
}


/* ===== SHARED QUOTE CARD + RICH SERVICE PAGES ===== */
.quote-card{max-width:620px;margin:0 auto;overflow:hidden;border:1px solid rgba(15,36,56,.10);border-radius:20px;background:#fff;box-shadow:0 24px 60px rgba(15,36,56,.16)}
.quote-card-header{position:relative;padding:28px 30px 24px;background:var(--primary);color:#fff}
.quote-card-header:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:var(--accent)}
.quote-card-header h2{margin:4px 0 8px;color:#fff;font-family:Georgia,"Times New Roman",serif;font-size:30px;line-height:1.12}
.quote-card-header p:last-child{margin:0;color:rgba(255,255,255,.84);line-height:1.55}
.quote-card-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:26px}
.quote-card-form .form-group{margin:0}
.quote-card-form .form-group:nth-of-type(5),.quote-card-form button,.quote-card-form .lead-form-message{grid-column:1/-1}
.quote-card-form input,.quote-card-form textarea,.lead-popup-form input,.lead-popup-form textarea{width:100%;min-height:52px;padding:14px 15px;border:1px solid #d5e2e9;border-radius:12px;outline:0;background:#f7fbfd;color:var(--dark);font:inherit}
.quote-card-form textarea,.lead-popup-form textarea{min-height:100px;resize:vertical}
.quote-card-form input:focus,.quote-card-form textarea:focus,.lead-popup-form input:focus,.lead-popup-form textarea:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 3px rgba(74,144,164,.13)}
.quote-card-form .quote-button,.lead-popup-form .quote-button{grid-column:1/-1;width:100%;border:0;min-height:54px;font:inherit;font-weight:700}
.contact-quote-card,.service-quote-card{margin-top:36px}
.lead-popup-card.quote-card{padding:0;max-width:560px}
.lead-popup-card.quote-card>.lead-popup-close{z-index:3;color:#fff}
.lead-popup-card .quote-card-header{text-align:left}
.lead-popup-card .quote-card-form{padding:24px 26px 26px}
.service-detail-section{padding:90px 0;background:#fff}
.service-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.service-detail-media{overflow:hidden;border-radius:22px;box-shadow:0 20px 50px rgba(15,36,56,.16)}
.service-detail-media .section-media{display:block;width:100%;height:500px;object-fit:cover}
.service-detail-copy h2{margin-bottom:20px;font-size:clamp(34px,4vw,50px);color:var(--primary)}
.service-detail-copy>p:last-of-type{font-size:18px;line-height:1.75;color:var(--gray)}
.service-check-list{display:grid;gap:12px;margin-top:28px}
.service-check-list div{display:flex;gap:12px;align-items:flex-start;padding:15px 17px;border-radius:12px;background:#eef6fb;font-weight:700;color:var(--primary)}
.service-check-list span{color:var(--accent)}
.service-education{padding:90px 0;background:#eef6fb}
.service-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.service-info-card{padding:30px;border-radius:18px;background:#fff;box-shadow:0 12px 35px rgba(15,36,56,.08)}
.service-info-card h3{margin-bottom:12px;color:var(--primary);font-size:23px}
.service-info-card p{color:var(--gray);line-height:1.7}
.service-info-card ul{margin:18px 0 0 20px;color:var(--dark);line-height:1.75}
.service-reference-media{padding:90px 0;background:#fff}
.reference-media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.reference-media-card{position:relative;overflow:hidden;border-radius:18px;background:#fff;box-shadow:0 12px 36px rgba(15,36,56,.13)}
.reference-media-card img{display:block;width:100%;height:280px;object-fit:cover;background:#dce7ee}
.reference-badge{position:absolute;top:14px;left:14px;z-index:2;padding:7px 10px;border-radius:999px;background:#fff;color:#9a3f2d;font-size:11px;font-weight:900;letter-spacing:.06em}
.reference-media-card figcaption{display:flex;flex-direction:column;gap:7px;padding:20px}
.reference-media-card figcaption strong{color:var(--primary);font-size:18px}
.reference-media-card figcaption span{color:var(--gray);font-size:14px;line-height:1.5}
.reference-media-card figcaption a{width:max-content;color:var(--secondary);font-weight:800;text-decoration:none}


/* Rich client-owned sections inspired by reference-site content depth. */
.reference-insights{padding:88px 0;background:#f8fbfd}.reference-insights-stack{display:grid;gap:56px}.reference-insight{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:56px}.reference-insight-reverse .reference-insight-media{order:2}.reference-insight-reverse .reference-insight-copy{order:1}.reference-insight-media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:18px;box-shadow:0 18px 45px rgba(7,31,49,.12)}.reference-insight-copy h2{margin:8px 0 14px;font-size:clamp(30px,3vw,46px);line-height:1.05}.reference-insight-copy>p:not(.small-title){line-height:1.75}.reference-insight-copy ul{margin:20px 0 0;padding:0;display:grid;gap:10px;list-style:none}.reference-insight-copy li{font-weight:600}


/* ===== Forge upgrade: nested services, locations, sourced work, reveal motion ===== */
.service-nav-group { position: relative; }
.service-nav-parent { font-weight: 700; }
.service-nav-children { padding: 4px 0 9px 16px; display: grid; gap: 2px; border-left: 1px solid rgba(255,255,255,.12); margin-left: 12px; }
.service-nav-children a { font-size: .84rem; opacity: .82; padding: 6px 10px !important; }
.service-topic-grid, .location-card-grid, .google-posts-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.service-topics, .google-posts-section { padding:80px 0; }
.service-topic-card, .location-card, .google-post-card { border:1px solid rgba(15,36,56,.12); border-radius:18px; background:#fff; padding:22px; box-shadow:0 14px 35px rgba(15,36,56,.07); }
.service-topic-card { display:flex; align-items:center; gap:12px; }
.service-topic-card h3 { margin:0; font-size:1rem; }
.service-topic-card span { font-weight:800; }
.location-card { display:flex; flex-direction:column; gap:5px; text-decoration:none; color:inherit; }
.location-card span { opacity:.68; font-size:.82rem; }
.google-post-card { overflow:hidden; padding:0; }
.google-post-card img { width:100%; aspect-ratio:16/10; object-fit:cover; display:block; }
.google-post-card p { padding:18px 20px 22px; margin:0; line-height:1.65; }
.google-project-card figcaption { padding:8px 12px; font-size:.78rem; opacity:.68; }
.editorial-placeholder { min-height:260px; border:2px dashed rgba(15,36,56,.25); display:grid; place-items:center; text-align:center; padding:24px; background:repeating-linear-gradient(135deg,rgba(15,36,56,.025),rgba(15,36,56,.025) 12px,transparent 12px,transparent 24px); }
.editorial-placeholder div { display:grid; gap:7px; }
.editorial-placeholder span { font-size:.85rem; opacity:.65; }
.editorial-placeholder.compact { min-height:180px; }
.reveal-on-scroll { opacity:0; transform:translateY(22px); transition:opacity .65s ease, transform .65s ease; }
.reveal-on-scroll.is-visible { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce) { .reveal-on-scroll { opacity:1; transform:none; transition:none; } }
@media (max-width: 900px) { .service-topic-grid,.location-card-grid,.google-posts-grid { grid-template-columns:1fr; } }

/* ===== Forge competitor-motion profile ===== */
.forge-reveal {
    opacity: 0;
    transform: translateY(28px);
    transition:
        opacity var(--inspired-motion-duration, 650ms) cubic-bezier(.2,.7,.2,1),
        transform var(--inspired-motion-duration, 650ms) cubic-bezier(.2,.7,.2,1);
    transition-delay: var(--forge-delay, 0ms);
    will-change: opacity, transform;
}
body[data-motion="slide"] .forge-reveal { transform: translateX(-34px); }
body[data-motion="slide"] .forge-reveal:nth-child(even) { transform: translateX(34px); }
body[data-motion="zoom"] .forge-reveal { transform: scale(.94); }
body[data-motion="fade-up"] .forge-reveal { transform: translateY(28px); }
.forge-reveal.is-visible { opacity:1; transform:none !important; }

.service-card,
.project-card,
.location-card,
.advantage-card,
.process-step,
.faq-item,
.service-topic-card {
    transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.service-card:hover,
.project-card:hover,
.location-card:hover,
.advantage-card:hover,
.process-step:hover,
.service-topic-card:hover {
    transform: translateY(-5px);
}

@media (prefers-reduced-motion: reduce) {
    .forge-reveal { opacity:1; transform:none; transition:none; }
    .service-card:hover, .project-card:hover, .location-card:hover,
    .advantage-card:hover, .process-step:hover, .service-topic-card:hover { transform:none; }
}

/* =========================================================
   FORGE V3 — THEME ENGINE / LAYOUT RESET
   This block intentionally comes last. It neutralizes legacy fixed-height
   sections that created huge blank bands and lets the three generated themes
   share one stable responsive layout system.
========================================================= */

:root {
    --theme-primary:#143d59;
    --theme-secondary:#0c293d;
    --theme-accent:#00a98f;
    --theme-background:#f4f8fb;
    --theme-surface:#fff;
    --theme-text:#13212c;
    --theme-muted:#65727c;
    --theme-radius:16px;
}

html { scroll-behavior:smooth; }
body.forge-theme {
    background:var(--theme-background) !important;
    color:var(--theme-text) !important;
    overflow-x:hidden;
    line-height:1.55;
}
body.forge-theme .container { max-width:1180px; padding-inline:28px; }
body.forge-theme main > section:not(.conversion-hero) {
    height:auto !important;
    min-height:0 !important;
    padding:88px 0 !important;
    position:relative;
    overflow:clip;
}
body.forge-theme main > section:nth-child(even):not(.conversion-hero) { background:var(--theme-surface); }
body.forge-theme h1,
body.forge-theme h2,
body.forge-theme h3 { color:var(--theme-text); letter-spacing:-.035em; }
body.forge-theme h2 { font-size:clamp(32px,4.2vw,54px); line-height:1.02; }
body.forge-theme .small-title,
body.forge-theme .conversion-eyebrow { color:var(--theme-accent) !important; text-transform:uppercase; letter-spacing:.13em; font-size:12px; font-weight:800; }
body.forge-theme .section-header { max-width:760px; margin:0 auto 42px; text-align:center; }

/* Navigation */
body.forge-theme .navbar {
    min-height:74px;
    height:auto !important;
    background:rgba(255,255,255,.94) !important;
    border-bottom:1px solid rgba(15,40,60,.09);
    backdrop-filter:blur(14px);
    box-shadow:0 8px 30px rgba(11,35,53,.06);
}
body.forge-theme .nav-container { min-height:74px; }
body.forge-theme .logo span { color:var(--theme-primary); }
body.forge-theme .logo small { color:var(--theme-muted); }
body.forge-theme nav > a,
body.forge-theme .services-button { color:var(--theme-text); font-size:14px; font-weight:700; }
body.forge-theme .services-dropdown { width:min(540px,90vw); border:1px solid rgba(16,40,60,.09); border-radius:var(--theme-radius); padding:14px; box-shadow:0 25px 65px rgba(10,31,47,.17); }
body.forge-theme .service-nav-group { padding:6px; border-radius:12px; }
body.forge-theme .service-nav-parent { font-weight:800; }
body.forge-theme .service-nav-children { display:flex; flex-wrap:wrap; gap:4px 10px; padding:0 10px 9px; }
body.forge-theme .service-nav-children a { padding:3px 0; color:var(--theme-muted); font-size:12px; }
body.forge-theme .quote-button { background:var(--theme-accent) !important; color:#fff !important; border:none !important; box-shadow:none; }
body.forge-theme .quote-button:hover { filter:brightness(.92); transform:translateY(-2px); }
body.forge-theme .phone-button { color:var(--theme-primary) !important; border-color:color-mix(in srgb,var(--theme-primary) 30%,transparent) !important; background:transparent; }

/* Hero — no 100/200vh legacy spacer. */
body.forge-theme .hero-section,
body.forge-theme .conversion-hero {
    height:auto !important;
    min-height:690px !important;
    padding:112px 0 0 !important;
    background:var(--theme-secondary) !important;
    position:relative;
    isolation:isolate;
    overflow:hidden;
}
body.forge-theme .conversion-hero-bg { position:absolute; inset:0; background-size:cover; background-position:center; z-index:-3; transform:scale(1.02); }
body.forge-theme .conversion-hero-overlay { position:absolute; inset:0; z-index:-2; background:linear-gradient(90deg,rgba(6,24,38,.94) 0%,rgba(6,24,38,.83) 48%,rgba(6,24,38,.48) 100%); }
body.forge-theme .conversion-hero-container { display:grid; grid-template-columns:minmax(0,1.18fr) minmax(330px,.72fr); align-items:center; gap:58px; padding-bottom:78px; }
body.forge-theme .conversion-hero-copy { max-width:700px; }
body.forge-theme .conversion-hero h1 { color:#fff !important; font-size:clamp(48px,6.2vw,82px); line-height:.94; letter-spacing:-.055em; margin:12px 0 24px; }
body.forge-theme .conversion-hero-text { color:rgba(255,255,255,.79); font-size:18px; max-width:650px; margin-bottom:28px; }
body.forge-theme .conversion-trust-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 20px; margin:24px 0 30px; color:#fff; }
body.forge-theme .conversion-trust-item { display:flex; gap:9px; align-items:flex-start; font-size:14px; }
body.forge-theme .conversion-check { color:var(--theme-accent); font-weight:900; }
body.forge-theme .conversion-hero-actions { display:flex; gap:12px; flex-wrap:wrap; }
body.forge-theme .hero-lead-card {
    background:rgba(255,255,255,.97);
    border-radius:calc(var(--theme-radius) + 4px);
    padding:28px;
    box-shadow:0 30px 90px rgba(0,0,0,.28);
    border:1px solid rgba(255,255,255,.35);
}
body.forge-theme .hero-lead-card h2 { font-size:30px; margin:2px 0 8px; }
body.forge-theme .hero-lead-card p { color:var(--theme-muted); }
body.forge-theme .hero-form-field { margin-top:11px; }
body.forge-theme .hero-form-field label { display:none; }
body.forge-theme .hero-form-field input,
body.forge-theme .hero-form-field textarea,
body.forge-theme .contact input,
body.forge-theme .contact textarea {
    width:100%; border:1px solid #dbe3e8; background:#f8fafb; color:var(--theme-text);
    border-radius:10px; padding:13px 14px; min-height:48px; outline:none;
}
body.forge-theme .hero-form-field textarea { min-height:90px; resize:vertical; }
body.forge-theme .hero-submit-button { width:100%; margin-top:12px; }
body.forge-theme .conversion-proof-bar { position:relative; background:rgba(255,255,255,.96); border-top:1px solid rgba(255,255,255,.2); }
body.forge-theme .conversion-proof-inner { min-height:52px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:12px; color:var(--theme-text); }
body.forge-theme .conversion-proof-inner strong { color:var(--theme-accent); }

/* Content cards */
body.forge-theme .service-grid,
body.forge-theme .benefits-grid,
body.forge-theme .process-grid,
body.forge-theme .project-grid,
body.forge-theme .google-posts-grid,
body.forge-theme .location-card-grid {
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:22px;
}
body.forge-theme .service-box,
body.forge-theme .benefit-card,
body.forge-theme .process-card,
body.forge-theme .project-card,
body.forge-theme .google-post-card,
body.forge-theme .location-card,
body.forge-theme .reference-insight,
body.forge-theme .review-slide,
body.forge-theme .faq-item {
    background:var(--theme-surface) !important;
    border:1px solid color-mix(in srgb,var(--theme-primary) 11%,transparent) !important;
    border-radius:var(--theme-radius) !important;
    box-shadow:0 15px 45px rgba(20,48,68,.07);
}
body.forge-theme .service-box { overflow:hidden; padding:0 !important; }
body.forge-theme .service-box img,
body.forge-theme .project-card img,
body.forge-theme .section-media img { width:100%; aspect-ratio:16/10; object-fit:cover; display:block; }
body.forge-theme .service-box > :not(img) { margin-inline:24px; }
body.forge-theme .service-box h3 { margin-top:24px; font-size:24px; }
body.forge-theme .service-box p { color:var(--theme-muted); }
body.forge-theme .service-box a { display:inline-flex; margin:18px 24px 24px; color:var(--theme-primary); font-weight:800; text-decoration:none; }
body.forge-theme .benefit-card,
body.forge-theme .process-card,
body.forge-theme .location-card,
body.forge-theme .google-post-card { padding:28px; }
body.forge-theme .benefit-icon,
body.forge-theme .process-number { color:var(--theme-accent); }

/* About/reference sections */
body.forge-theme .why-container,
body.forge-theme .reference-insight,
body.forge-theme .coverage-layout { display:grid !important; grid-template-columns:1fr 1fr; gap:58px; align-items:center; }
body.forge-theme .why-image img,
body.forge-theme .why-image video,
body.forge-theme .reference-insight-media img { width:100%; border-radius:var(--theme-radius); aspect-ratio:4/3; object-fit:cover; box-shadow:0 24px 70px rgba(15,39,56,.14); }
body.forge-theme .feature { margin-top:18px; }
body.forge-theme .feature p,
body.forge-theme .coverage-description { color:var(--theme-muted); }
body.forge-theme .reference-insights-stack { display:grid; gap:28px; }
body.forge-theme .reference-insight { padding:30px; }
body.forge-theme .reference-insight-reverse .reference-insight-media { order:2; }

/* Reviews */
body.forge-theme .reviews-showcase { background:var(--theme-secondary) !important; color:#fff; }
body.forge-theme .reviews-showcase h2 { color:#fff; }
body.forge-theme .reviews-rating-line { display:flex; justify-content:center; gap:10px; align-items:center; color:rgba(255,255,255,.78); }
body.forge-theme .reviews-summary-stars,
body.forge-theme .review-stars { color:#f6bc43; letter-spacing:.12em; }
body.forge-theme .review-carousel-window { overflow:hidden; max-width:860px; margin:0 auto; }
body.forge-theme .review-slide { display:none; padding:40px; color:var(--theme-text); min-height:250px; }
body.forge-theme .review-slide.active { display:block; }
body.forge-theme .review-text { font-size:clamp(18px,2.2vw,25px); line-height:1.55; }
body.forge-theme .review-arrow { background:#fff; border:0; width:46px; height:46px; border-radius:50%; cursor:pointer; }
body.forge-theme .reviews-actions { display:flex; justify-content:center; margin-top:28px; }

/* FAQ/contact/footer */
body.forge-theme .faq-list { max-width:850px; margin:0 auto; display:grid; gap:12px; }
body.forge-theme .faq-item { overflow:hidden; }
body.forge-theme .faq-question { width:100%; padding:20px 22px; border:0; background:transparent; display:flex; justify-content:space-between; text-align:left; font:inherit; font-weight:800; color:var(--theme-text); cursor:pointer; }
body.forge-theme .faq-answer { padding:0 22px 22px; color:var(--theme-muted); }
body.forge-theme .contact { background:var(--theme-primary) !important; color:#fff; }
body.forge-theme .contact h2,
body.forge-theme .contact h3 { color:#fff; }
body.forge-theme .contact-header { max-width:720px; margin:0 auto 28px; text-align:center; }
body.forge-theme .contact-quote-card { max-width:800px; margin:auto; background:#fff; color:var(--theme-text); border-radius:var(--theme-radius); padding:28px; }
body.forge-theme .footer { background:var(--theme-secondary) !important; color:#fff; padding:60px 0 25px !important; }

/* Card-style variants */
body.forge-theme.cards-bordered .service-box,
body.forge-theme.cards-bordered .benefit-card,
body.forge-theme.cards-outlined .service-box { box-shadow:none; border-width:2px !important; }
body.forge-theme.cards-elevated .service-box,
body.forge-theme.cards-elevated .project-card { box-shadow:0 24px 70px rgba(11,31,46,.14); }
body.forge-theme.theme-dark-premium .services,
body.forge-theme.theme-dark-premium .benefits-section { background:#0c2132 !important; color:#fff; }
body.forge-theme.theme-dark-premium .services h2,
body.forge-theme.theme-dark-premium .benefits-section h2 { color:#fff; }
body.forge-theme.theme-dark-premium .service-box,
body.forge-theme.theme-dark-premium .benefit-card { background:#132d40 !important; color:#fff; border-color:rgba(255,255,255,.08) !important; }
body.forge-theme.theme-dark-premium .service-box h3,
body.forge-theme.theme-dark-premium .benefit-card h3 { color:#fff; }
body.forge-theme.theme-dark-premium .service-box p,
body.forge-theme.theme-dark-premium .benefit-card p { color:#b8c6cf; }
body.forge-theme.hero-split .conversion-hero-overlay { background:linear-gradient(90deg,rgba(5,26,40,.96) 0 58%,rgba(5,26,40,.18) 58% 100%); }
body.forge-theme.hero-bold .conversion-hero h1 { text-transform:uppercase; font-size:clamp(44px,6.6vw,88px); letter-spacing:-.035em; }
body.forge-theme.hero-immersive .conversion-hero { min-height:780px !important; }
body.forge-theme.hero-editorial .hero-lead-card { border-radius:2px; }
body.forge-theme.hero-editorial .conversion-hero h1 { font-weight:700; }

/* Competitor-derived motion characters, implemented locally. */
.forge-reveal { opacity:0; will-change:transform,opacity; transition:opacity var(--inspired-motion-duration) ease var(--forge-delay,0ms),transform var(--inspired-motion-duration) cubic-bezier(.23,1,.32,1) var(--forge-delay,0ms); }
body[data-motion="fade-up"] .forge-reveal { transform:translateY(34px); }
body[data-motion="slide"] .forge-reveal { transform:translateX(-44px); }
body[data-motion="zoom"] .forge-reveal { transform:scale(.92); }
body[data-motion="soft-pop"] .forge-reveal { transform:translateY(20px) scale(.96); }
.forge-reveal.is-visible { opacity:1 !important; transform:none !important; }
body.forge-theme .service-box,
body.forge-theme .project-card,
body.forge-theme .benefit-card { transition:transform .32s cubic-bezier(.23,1,.32,1),box-shadow .32s ease,border-color .32s ease; }
body.forge-theme .service-box:hover,
body.forge-theme .project-card:hover,
body.forge-theme .benefit-card:hover { transform:translateY(-7px); box-shadow:0 25px 60px rgba(12,37,55,.14); border-color:color-mix(in srgb,var(--theme-accent) 45%,transparent) !important; }

@media (max-width:900px) {
    body.forge-theme main > section:not(.conversion-hero) { padding:68px 0 !important; }
    body.forge-theme .conversion-hero-container,
    body.forge-theme .why-container,
    body.forge-theme .reference-insight,
    body.forge-theme .coverage-layout { grid-template-columns:1fr !important; }
    body.forge-theme .conversion-hero { min-height:0 !important; padding-top:96px !important; }
    body.forge-theme .conversion-hero-container { gap:32px; padding-bottom:42px; }
    body.forge-theme .conversion-hero h1 { font-size:clamp(42px,12vw,67px); }
    body.forge-theme .service-grid,
    body.forge-theme .benefits-grid,
    body.forge-theme .process-grid,
    body.forge-theme .project-grid,
    body.forge-theme .google-posts-grid,
    body.forge-theme .location-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    body.forge-theme .reference-insight-reverse .reference-insight-media { order:initial; }
}

@media (max-width:620px) {
    body.forge-theme .container { padding-inline:18px; }
    body.forge-theme main > section:not(.conversion-hero) { padding:54px 0 !important; }
    body.forge-theme .conversion-hero h1 { font-size:43px; }
    body.forge-theme .conversion-hero-text { font-size:16px; }
    body.forge-theme .conversion-trust-grid,
    body.forge-theme .service-grid,
    body.forge-theme .benefits-grid,
    body.forge-theme .process-grid,
    body.forge-theme .project-grid,
    body.forge-theme .google-posts-grid,
    body.forge-theme .location-card-grid { grid-template-columns:1fr; }
    body.forge-theme .conversion-hero-actions > * { width:100%; text-align:center; }
    body.forge-theme .hero-lead-card { padding:20px; }
    body.forge-theme .conversion-proof-inner { display:grid; grid-template-columns:1fr 1fr; padding-block:14px; }
    body.forge-theme .review-slide { padding:26px 22px; }
}

@media (prefers-reduced-motion: reduce) {
    .forge-reveal { opacity:1 !important; transform:none !important; transition:none !important; }
}
