/* Shared styles for the Premier SEO landing pages (builders-in-*, construction-*, etc.) */

        /* =========================================================
           PREMIER HOMEPAGE STANDARD
           Visual redesign only — page content/PHP unchanged.
           ========================================================= */

        :root {
            --premier-orange: #ff5a1f;
            --premier-navy: #0b1020;
            --premier-navy-2: #171d2d;
            --premier-text: #435066;
            --premier-border: #e8e9ec;
            --premier-smoke: #f7f7f7;
        }
        /* ---------- Overall spacing ---------- */

        .space-top,
        .space {
            padding-top: 62px !important;
            padding-bottom: 62px !important;
        }

        .space-extra2-bottom,
        .space-extra-bottom {
            padding-bottom: 62px !important;
        }

        .title-area {
            margin-bottom: 25px !important;
        }

        .title-area .sub-title {
            margin-bottom: 8px;
        }

        .sec-title {
            line-height: 1.16;
        }

        .title-area > p,
        .title-area p.mt-15 {
            max-width: 720px;
            margin-left: auto;
            margin-right: auto;
            line-height: 1.7;
        }

        /* ---------- Hero ---------- */
        .space-top > .container > .row {
            align-items: center;
        }

        .space-top .img-box1 .img1 {
            overflow: hidden;
            box-shadow: 0 14px 38px rgba(11, 16, 32, .12);
        }

        .space-top .img-box1 .img1 img {
            width: 100%;
            height: 420px;
            object-fit: cover;
            transition: transform .65s cubic-bezier(.2,.65,.2,1);
        }

        .space-top .img-box1:hover .img1 img {
            transform: scale(1.025);
        }

        .space-top .title-area {
            margin-bottom: 18px !important;
        }

        .seo-page-intro {
            font-size: 16px;
            line-height: 1.8;
        }

        .space-top .mb-30 {
            margin-bottom: 24px !important;
        }

        /* ---------- Buttons ----------
           The theme's own .th-btn (orange, dark fill-in on hover via :before/:after)
           is used unchanged, including the header GET QUOTE (.style3).
           Only the outline button needs help on light backgrounds. */
        .btn-group { gap: 10px; }

        main .btn-group .th-btn.style2,
        .space-top .th-btn.style2 {
            background-color: var(--title-color);
            border-color: var(--title-color);
            color: #fff;
        }
        main .btn-group .th-btn.style2:hover,
        .space-top .th-btn.style2:hover { color: var(--title-color); }

        /* ---------- Smoke sections ---------- */
        section.bg-smoke {
            background: #f7f7f7 !important;
        }

        /* ---------- Service cards ---------- */
        .seo-feature-card {
            position: relative;
            height: 100%;
            padding: 27px 24px 25px;
            background: #fff;
            border: 1px solid #ececef;
            border-radius: 0;
            box-shadow: 0 5px 18px rgba(11, 16, 32, .055);
            overflow: hidden;
            transition:
                transform .28s ease,
                box-shadow .28s ease,
                border-color .28s ease;
        }

        .seo-feature-card::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 3px;
            background: var(--premier-orange);
            transform: scaleX(0);
            transform-origin: left;
            transition: transform .3s ease;
        }

        .seo-feature-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 15px 32px rgba(11, 16, 32, .10);
        }

        .seo-feature-card:hover::before {
            transform: scaleX(1);
        }

        .seo-feature-icon {
            width: 50px;
            height: 50px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            margin-bottom: 15px;
            border-radius: 50%;
            background: rgba(255, 90, 31, .08);
            color: var(--premier-orange);
            font-size: 20px;
            transition: transform .25s ease, background-color .25s ease;
        }

        .seo-feature-card:hover .seo-feature-icon {
            transform: translateY(-2px);
            background: rgba(255, 90, 31, .14);
        }

        .seo-feature-card h3 {
            margin-bottom: 9px;
        }

        .seo-feature-card p {
            line-height: 1.7;
        }

        /* ---------- Image/content section ---------- */
        .space .img-box1 .img1 {
            overflow: hidden;
            box-shadow: 0 14px 35px rgba(11, 16, 32, .10);
        }

        .space .img-box1 .img1 img {
            width: 100%;
            max-height: 500px;
            object-fit: cover;
            transition: transform .65s cubic-bezier(.2,.65,.2,1);
        }

        .space .img-box1:hover .img1 img {
            transform: scale(1.025);
        }

        .seo-checklist li {
            margin-bottom: 11px;
            transition: transform .22s ease;
        }

        .seo-checklist li:hover {
            transform: translateX(4px);
        }

        .seo-checklist i {
            color: var(--premier-orange);
        }

        /* ---------- Project cards ---------- */
        .seo-project-card {
            height: 100%;
            overflow: hidden;
            background: #fff;
            border: 1px solid #ececef;
            border-radius: 0;
            box-shadow: 0 5px 18px rgba(11, 16, 32, .055);
            transition: transform .3s ease, box-shadow .3s ease;
        }

        .seo-project-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 16px 34px rgba(11, 16, 32, .11);
        }

        .seo-project-card .project-img {
            height: 215px;
            overflow: hidden;
            background: #eceff3;
        }

        .seo-project-card .project-img img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform .6s cubic-bezier(.2,.65,.2,1);
        }

        .seo-project-card:hover .project-img img {
            transform: scale(1.045);
        }

        .seo-project-card .project-content {
            padding: 20px 20px 21px;
        }

        .seo-project-card .project-content h3 {
            margin-bottom: 5px !important;
        }

        .seo-project-card .project-content p {
            margin-bottom: 15px !important;
        }

        /* ---------- Location ---------- */
        .seo-area-list {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            margin-top: 20px !important;
        }

        .seo-area-list span {
            display: inline-block;
            padding: 8px 14px;
            border: 1px solid #e2e3e6;
            background: #fff;
            border-radius: 0;
            font-size: 14px;
            transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
        }

        .seo-area-list span:hover {
            transform: translateY(-2px);
            border-color: rgba(255, 90, 31, .45);
            box-shadow: 0 5px 14px rgba(11, 16, 32, .06);
        }

        .contact-feature-card {
            padding: 28px !important;
            border-radius: 0;
            box-shadow: 0 8px 24px rgba(11, 16, 32, .07);
            transition: transform .28s ease, box-shadow .28s ease;
        }

        .contact-feature-card:hover {
            transform: translateY(-4px);
            box-shadow: 0 14px 30px rgba(11, 16, 32, .10);
        }

        /* ---------- Orange CTA ---------- */
        .seo-cta {
            position: relative;
            overflow: hidden;
            padding-top: 48px !important;
            padding-bottom: 48px !important;
            background: linear-gradient(120deg, #ff5a1f 0%, #ff6a2a 55%, #f4511e 100%) !important;
        }

        .seo-cta::before {
            content: "";
            position: absolute;
            width: 380px;
            height: 380px;
            right: -150px;
            top: -220px;
            border: 1px solid rgba(255,255,255,.18);
            border-radius: 50%;
        }

        .seo-cta .sub-title,
        .seo-cta .sec-title,
        .seo-cta p {
            color: #fff !important;
        }

        /* ---------- FAQ ---------- */
        .seo-faq .accordion-card {
            margin-bottom: 9px;
            border: 0;
            border-radius: 0;
            overflow: hidden;
            transition: box-shadow .25s ease, transform .25s ease;
        }

        .seo-faq .accordion-card:hover {
            transform: translateY(-1px);
            box-shadow: 0 7px 18px rgba(11, 16, 32, .09);
        }

        .seo-faq .accordion-button {
            padding: 17px 20px;
            background: var(--premier-navy-2);
            color: #fff;
            font-weight: 600;
        }

        .seo-faq .accordion-button::after {
            filter: brightness(0) invert(1);
        }

        .seo-faq .accordion-button:not(.collapsed) {
            background: var(--premier-navy);
            color: #fff;
        }

        .seo-faq .accordion-body {
            padding: 15px 20px 17px;
            background: #f7f7f7;
        }

        .seo-faq .faq-text {
            margin-bottom: 0;
            line-height: 1.7;
        }

        /* ---------- Subtle motion ---------- */
        @keyframes premierFadeUp {
            from {
                opacity: 0;
                transform: translateY(10px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .seo-feature-card,
        .seo-project-card,
        .contact-feature-card {
            animation: premierFadeUp .55s ease both;
        }

        .seo-feature-card:nth-child(2),
        .seo-project-card:nth-child(2) {
            animation-delay: .06s;
        }

        .seo-feature-card:nth-child(3),
        .seo-project-card:nth-child(3) {
            animation-delay: .12s;
        }

        @media (prefers-reduced-motion: reduce) {
            *,
            *::before,
            *::after {
                animation-duration: .01ms !important;
                animation-iteration-count: 1 !important;
                transition-duration: .01ms !important;
            }
        }

        /* ---------- Responsive ---------- */
        @media (max-width: 991px) {

            .space-top,
            .space {
                padding-top: 48px !important;
                padding-bottom: 48px !important;
            }

            .space-extra2-bottom,
            .space-extra-bottom {
                padding-bottom: 48px !important;
            }

            .space-top .img-box1 .img1 img {
                height: 360px;
            }
        }

        @media (max-width: 575px) {

            .space-top,
            .space {
                padding-top: 36px !important;
                padding-bottom: 36px !important;
            }

            .space-extra2-bottom,
            .space-extra-bottom {
                padding-bottom: 36px !important;
            }

            .space-top .img-box1 .img1 img {
                height: 290px;
            }

            .seo-feature-card {
                padding: 22px 18px;
            }

            .seo-project-card .project-img {
                height: 195px;
            }

            .contact-feature-card {
                padding: 22px !important;
            }

            section.seo-cta {
                padding-top: 38px !important;
                padding-bottom: 38px !important;
            }

            .seo-faq .accordion-button {
                padding: 15px 16px;
            }

            .seo-faq .accordion-body {
                padding-left: 16px;
                padding-right: 16px;
            }
        }
    
       /* =========================================================
   FIX: Why / Location / CTA layout
   ========================================================= */

/* Left-aligned title areas must not be centered by the global p rule */
.title-area:not(.text-center) > p { margin-left: 0; margin-right: 0; }

/* ---------- WHY SECTION ---------- */
section.space:has(.seo-checklist) {
    padding-top: 70px !important;
    padding-bottom: 70px !important;
}
section.space:has(.seo-checklist) .row { --bs-gutter-x: 3.5rem; align-items: center; }
section.space:has(.seo-checklist) .row > div { display: block; }

@media (min-width: 992px) {
    section.space:has(.seo-checklist) .row > div:first-child { flex: 0 0 54%; max-width: 54%; }
    section.space:has(.seo-checklist) .row > div:last-child  { flex: 0 0 46%; max-width: 46%; }
}

section.space:has(.seo-checklist) .title-area { margin-bottom: 18px !important; }
section.space:has(.seo-checklist) .sub-title { font-size: 15px; margin-bottom: 8px; }
section.space:has(.seo-checklist) .sec-title {
    font-size: 46px;
    line-height: 1.12;
    max-width: 560px;
    margin-bottom: 0;
}
section.space:has(.seo-checklist) p.mb-25 {
    font-size: 16px;
    line-height: 1.7;
    max-width: 620px;
    margin-bottom: 22px !important;
}

/* Checklist: one clean column, single icon */
.seo-checklist ul { margin: 0; padding: 0; list-style: none; }
.seo-checklist li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding-left: 0 !important;
    margin-bottom: 12px;
    font-size: 16px;
    line-height: 1.5;
    width: 100%;
}
.seo-checklist li::before { display: none !important; } /* theme adds a 2nd icon */
.seo-checklist li i {
    flex: 0 0 auto;
    margin: 3px 0 0;
    color: var(--premier-orange);
    font-size: 16px;
}

/* Image block */
section.space:has(.seo-checklist) .img-box1 {
    position: relative;
    display: block;
    width: 100%;
    max-width: none;
    margin: 0 !important;
    padding: 0 !important; /* theme adds padding-right/bottom that detaches the accent */
}
/* Image accent: small L-shaped corner behind bottom-right */
section.space:has(.seo-checklist) .img-box1::before {
    content: "";
    position: absolute;
    right: -30px;
    bottom: -30px;
    width: 90px;
    height: 90px;
    border: 0;
    border-right: 3px solid #ff5a1f;
    border-bottom: 3px solid #ff5a1f;
    z-index: 0;
    pointer-events: none;
}
section.space:has(.seo-checklist) .img-box1 .img1 {
    position: relative;
    z-index: 1;
    overflow: hidden;
    background: #fff;
    border: 1px solid #ececef;
    box-shadow: 0 14px 34px rgba(11, 16, 32, .12);
}
section.space:has(.seo-checklist) .img-box1 .img1 img {
    display: block;
    width: 100%;
    height: 420px;
    max-height: 420px;
    object-fit: cover;
    object-position: center;
    transition: transform .5s ease;
}
section.space:has(.seo-checklist) .img-box1:hover .img1 img { transform: scale(1.025); }

/* ---------- LOCATION SECTION ---------- */
section.space:has(.seo-area-list) {
    padding-top: 65px !important;
    padding-bottom: 65px !important;
}
section.space:has(.seo-area-list) .row { --bs-gutter-x: 3.5rem; align-items: center; }
section.space:has(.seo-area-list) .row > div { display: block; }

@media (min-width: 992px) {
    section.space:has(.seo-area-list) .row > div:first-child { flex: 0 0 60%; max-width: 60%; }
    section.space:has(.seo-area-list) .row > div:last-child  { flex: 0 0 40%; max-width: 40%; }
}

section.space:has(.seo-area-list) .sub-title { font-size: 15px; margin-bottom: 8px; }
section.space:has(.seo-area-list) .sec-title { font-size: 42px; line-height: 1.15; margin-bottom: 0; }
section.space:has(.seo-area-list) .title-area { margin-bottom: 18px !important; }
section.space:has(.seo-area-list) .row > div:first-child > p { line-height: 1.7; max-width: 640px; }

.seo-area-list { align-items: center; margin-top: 22px !important; }
.seo-area-list span {
    white-space: nowrap;
    line-height: 1.2;
    padding: 9px 16px;
}

.contact-feature-card {
    background: #fff;
    border: 1px solid #ececef;
    border-top: 3px solid var(--premier-orange);
    padding: 34px 32px !important;
    box-shadow: 0 10px 28px rgba(11, 16, 32, .08);
}
.contact-feature-card .contact-feature-icon {
    width: 54px; height: 54px;
    display: inline-flex; align-items: center; justify-content: center;
    margin-bottom: 16px;
    border-radius: 50%;
    background: rgba(255, 90, 31, .1);
    color: var(--premier-orange);
    font-size: 20px;
}
.contact-feature-card h3 { font-size: 30px; line-height: 1.2; margin-bottom: 10px; }
.contact-feature-card p { line-height: 1.7; margin-bottom: 20px; }

/* ---------- CTA ---------- */
section.seo-cta {
    display: flex;
    align-items: center;
    min-height: 195px;
    padding-top: 40px !important;
    padding-bottom: 40px !important;
    background: linear-gradient(120deg, #ff5a1f 0%, #ff6a2a 55%, #f4511e 100%) !important;
}
section.seo-cta > .container { width: 100%; position: relative; z-index: 2; }
section.seo-cta .title-area { margin-bottom: 0 !important; }
section.seo-cta .sub-title,
section.seo-cta .sub-title i,
section.seo-cta .sec-title,
section.seo-cta p {
    color: #fff !important;
    opacity: 1 !important;
}
section.seo-cta .sec-title { font-size: 38px; line-height: 1.15; margin-bottom: 0; }
section.seo-cta p { max-width: 640px; margin-left: 0 !important; }

/* Orange-on-orange has no contrast: white button, navy on hover */
section.seo-cta .th-btn {
    background-color: #fff;
    color: var(--premier-navy);
}
section.seo-cta .th-btn:hover { color: #fff; }

/* ---------- FAQ spacing after CTA ---------- */
section.seo-cta + section.space-extra-bottom { padding-top: 62px !important; }

/* ---------- Tablet ---------- */
@media (max-width: 991px) {
    section.space:has(.seo-checklist),
    section.space:has(.seo-area-list) {
        padding-top: 52px !important;
        padding-bottom: 52px !important;
    }
    section.space:has(.seo-checklist) .row,
    section.space:has(.seo-area-list) .row { --bs-gutter-x: 1.5rem; }

    section.space:has(.seo-checklist) .sec-title { font-size: 38px; max-width: none; }
    section.space:has(.seo-area-list) .sec-title { font-size: 36px; }

    section.space:has(.seo-checklist) .img-box1::before { display: none; }
    section.space:has(.seo-checklist) .img-box1 .img1 img { height: 360px; max-height: 360px; }

    section.seo-cta { min-height: 0; }
}

/* ---------- Mobile ---------- */
@media (max-width: 575px) {
    section.space:has(.seo-checklist),
    section.space:has(.seo-area-list) {
        padding-top: 40px !important;
        padding-bottom: 40px !important;
    }
    section.space:has(.seo-checklist) .sec-title,
    section.space:has(.seo-area-list) .sec-title { font-size: 30px; }
    section.space:has(.seo-checklist) .img-box1 .img1 img { height: 300px; max-height: 300px; }

    .seo-checklist li { font-size: 15px; }
    .contact-feature-card { padding: 24px 20px !important; }
    .contact-feature-card h3 { font-size: 26px; }

    section.seo-cta { padding-top: 38px !important; padding-bottom: 38px !important; }
    section.seo-cta .sec-title { font-size: 28px; }
    section.seo-cta .th-btn { width: 100%; justify-content: center; }
    section.seo-cta + section.space-extra-bottom { padding-top: 44px !important; }
}
    

/* =========================================================
   Steps + related links (shared SEO template)
   ========================================================= */
.seo-step-card {
    position: relative;
    height: 100%;
    padding: 26px 24px 24px;
    background: #fff;
    border: 1px solid #ececef;
    border-top: 3px solid var(--premier-orange);
    box-shadow: 0 5px 18px rgba(11, 16, 32, .055);
    transition: transform .28s ease, box-shadow .28s ease;
}
.seo-step-card:hover { transform: translateY(-4px); box-shadow: 0 15px 32px rgba(11, 16, 32, .10); }
.seo-step-num {
    display: block;
    margin-bottom: 8px;
    font-family: var(--title-font);
    font-size: 30px;
    font-weight: 800;
    line-height: 1;
    color: var(--premier-orange);
}
.seo-step-card h3 { margin-bottom: 9px; }
.seo-step-card p { margin-bottom: 0; line-height: 1.7; }

.seo-link-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    height: 100%;
    padding: 16px 20px;
    background: #fff;
    border: 1px solid #ececef;
    border-left: 3px solid var(--premier-orange);
    color: var(--premier-navy);
    font-weight: 600;
    line-height: 1.4;
    box-shadow: 0 4px 14px rgba(11, 16, 32, .05);
    transition: transform .25s ease, box-shadow .25s ease, color .25s ease;
}
.seo-link-card i { color: var(--premier-orange); flex: 0 0 auto; }
.seo-link-card:hover {
    transform: translateY(-3px);
    color: var(--premier-orange);
    box-shadow: 0 10px 22px rgba(11, 16, 32, .09);
}
.seo-inline-link { color: var(--premier-orange); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.seo-inline-link:hover { color: var(--premier-navy); }

@media (max-width: 575px) {
    .seo-step-card { padding: 22px 18px; }
    .seo-step-num { font-size: 26px; }
}

/* Hero image: theme .img-box1 adds large padding-right/bottom on tablet/mobile, leaving a narrow image and a gap */
@media (max-width: 1199px) {
    .space-top .img-box1 {
        display: block;
        width: 100%;
        margin: 0 !important;
        padding: 0 !important;
    }
}
