/**
Theme Name: Astra Child
Theme URI: https://wpastra.com/
Author: Brainstorm Force
Author URI: https://wpastra.com/about/?utm_source=theme_preview&utm_medium=author_link&utm_campaign=astra_theme
Template: astra
*/

/* =============================================
   Custom Hero (replaces Elementor hero sections)
   ============================================= */

.sd-hero {
    position: relative;
    width: 100%;
    min-height: 95vh;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: flex-end;
}

.sd-hero__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
}

.sd-hero__content {
    position: relative;
    z-index: 1;
    padding: 0 10% 60px 5%;
    max-width: 1100px;
    width: 100%;
    color: #ffffff;
}

.sd-hero__heading {
    color: #ffffff;
    font-size: 48px;
    line-height: 1.2;
    margin-bottom: 16px;
}

.sd-hero__subtext {
    color: #ffffff;
    font-size: 1rem;
    line-height: 1.6;
    margin-bottom: 1rem;
}

/* Slideshow: swiper is a normal block with explicit height; text overlays via absolute */
.sd-hero--slideshow {
    display: block;
    min-height: 0; /* let swiper define the height */
}

.sd-hero__swiper {
    width: 100%;
    height: 95vh;
}

.sd-hero--slideshow .swiper-slide {
    height: 95vh;
    background-size: cover;
    background-position: center;
}

/* Overlay and content positioned over the swiper */
.sd-hero--slideshow .sd-hero__overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
}

.sd-hero--slideshow .sd-hero__content {
    position: absolute;
    bottom: 0;
    top: auto;
    transform: none;
    z-index: 3;
}

.sd-hero--slideshow .swiper-pagination {
    z-index: 3;
}

.sd-hero--slideshow .swiper-pagination-bullet-active {
    background: #ffffff;
}

/* Responsive */
@media (max-width: 1280px) {
    .sd-hero { min-height: 90vh; }
    .sd-hero__swiper,
    .sd-hero--slideshow .swiper-slide { height: 90vh; }
}
@media (max-width: 1025px) {
    .sd-hero { min-height: 75vh; }
    .sd-hero__swiper,
    .sd-hero--slideshow .swiper-slide { height: 75vh; }
}
@media (max-width: 821px) {
    .sd-hero { min-height: 70vh; }
    .sd-hero__swiper,
    .sd-hero--slideshow .swiper-slide { height: 70vh; }
}
@media (max-width: 480px) {
    .sd-hero { min-height: 85vh; }
    .sd-hero__swiper,
    .sd-hero--slideshow .swiper-slide { height: 100vh; }
    .sd-hero__heading { font-size: 26px; line-height: 36px; }
    .sd-hero__subtext { font-size: 14px; line-height: 22px; }
    .sd-hero__content { padding: 0 5% 40px 5%; }
}

@media (max-width: 390px) {
    .sd-hero { min-height: 100vh; }
    .sd-hero__swiper,
    .sd-hero--slideshow .swiper-slide { height: 100vh; }
}

@media (max-width: 375px) {
    .sd-hero { min-height: 110vh; }
    .sd-hero__swiper,
    .sd-hero--slideshow .swiper-slide { height: 110vh; }
}

@media (max-width: 390px) {

    /* Home page */
    .elementor-5 .elementor-element.elementor-element-5b4716d {
        margin-top: -450px !important;
    }

    /* Services page: shrink d4101f2 and pull bd5ec32 up */
    .elementor-479 .elementor-element.elementor-element-d4101f2 > .elementor-container {
        min-height: 650px !important;
    }
    .elementor-479 .elementor-element.elementor-element-bd5ec32 {
        margin-top: -600px !important;
    }
}

/* =============================================
   Section overlap fixes — Home page
   ============================================= */

/* 2560px+: remove decorative background image that looks off at this width */
@media (min-width: 2560px) {
    .elementor-5 .elementor-element.elementor-element-7eda815:not(.elementor-motion-effects-element-type-background),
    .elementor-5 .elementor-element.elementor-element-7eda815 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
        background-image: none !important;
    }
}

/* Wide screens 1920px+: Elementor pulls 5b4716d inside the hero — shift it down */
@media (min-width: 1920px) {
    .elementor-5 .elementor-element.elementor-element-5b4716d {
        margin-top: -50px !important;
    }
}

/* 1026–1280px: hide decorative images that break layout at this width */
@media (max-width: 1280px) and (min-width: 1026px) {
    .elementor-element-9b19347,
    .elementor-element-d62d7d7,
    .elementor-element-7d40422,
    .elementor-element-3a15b98,
    .elementor-element-5cbbc90,
    .elementor-element-e68ab35,
    .elementor-element-67256ef {
        display: none !important;
    }
}

/* 822–1025px: hide decorative images on 1024px screens */
@media (max-width: 1025px) and (min-width: 822px) {
    .elementor-element-d62d7d7,
    .elementor-element-7d40422,
    .elementor-element-3a15b98,
    .elementor-element-5cbbc90,
    .elementor-element-e68ab35,
    .elementor-element-67256ef {
        display: none !important;
    }
}

/* 1026–1280px (e.g. 1152px) */
@media (max-width: 1280px) and (min-width: 1026px) {
    .elementor-5 .elementor-element.elementor-element-5b4716d {
        margin-top: -200px !important;
    }
}

/* 822–1025px (e.g. 1024px) */
@media (max-width: 1025px) and (min-width: 822px) {
    .elementor-5 .elementor-element.elementor-element-5b4716d {
        margin-top: -300px !important;
        padding-top: 100px !important;
    }
}

/* Tablet: match 14ff668 and 4df125c container width to 5b4716d (800px) */
@media (max-width: 821px) and (min-width: 481px) {
    .elementor-5 .elementor-element.elementor-element-14ff668 > .elementor-container,
    .elementor-5 .elementor-element.elementor-element-4df125c > .elementor-container,
    .elementor-5 .elementor-element.elementor-element-eb1dc4d > .elementor-container {
        max-width: 80% !important;
    }
}

/* Tablet: extra padding-left on column c896038 */
@media (max-width: 821px) {
    .elementor-5 .elementor-element.elementor-element-c896038 > .elementor-element-populated {
        padding: 30px 10px 10px 20px !important;
    }
}

/* Mobile ≤480px: reduce gap between hero and next section */
@media (max-width: 480px) {
    .elementor-5 .elementor-element.elementor-element-5b4716d {
        margin-top: -120px !important;
    }
}

/* Tablets 481–821px: Elementor pulls 5b4716d ~80px inside the hero — shift it down */
@media (max-width: 821px) and (min-width: 481px) {
    .elementor-5 .elementor-element.elementor-element-5b4716d {
        margin-top: 10px !important;
    }
}

/* =============================================
   Navigation
   ============================================= */

/* Desktop padding */
.elementor-element-5fc802d {
    padding-left: 5% !important;
    padding-right: 10% !important;
}

/* 768–821px: push hamburger toward right edge */
@media (max-width: 821px) and (min-width: 481px) {
    .elementor-9800 .elementor-element.elementor-element-5fc802d {
        padding-right: 0 !important;
    }
    .elementor-9800 .elementor-element.elementor-element-1bc6815 > .elementor-widget-container {
        margin-right: -20px !important;
    }
}

/* =============================================
   Section spacing fixes — Whole House Remodel page
   ============================================= */

@media (min-width: 1920px) {
    .elementor-497 .elementor-element.elementor-element-c189b55 {
        margin-top: -50px !important;
    }
}

@media (max-width: 1280px) and (min-width: 1026px) {
    .elementor-497 .elementor-element.elementor-element-c189b55 {
        margin-top: -270px !important;
    }
    .elementor-497 .elementor-element.elementor-element-1f28cee {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
}

@media (max-width: 1025px) and (min-width: 822px) {
    .elementor-497 .elementor-element.elementor-element-c189b55 {
        margin-top: -250px !important;
    }
    .elementor-497 .elementor-element.elementor-element-f834810 {
        padding-left: 40px !important;
        padding-right: 40px !important;
    }
    .elementor-497 .elementor-element.elementor-element-1f28cee {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
}

/* Tablet (481–1025px): show 512004c, hide f1494a9 */
@media (max-width: 1025px) and (min-width: 481px) {
    .elementor-497 .elementor-element.elementor-element-f1494a9 {
        display: none !important;
    }
    .elementor-497 .elementor-element.elementor-element-512004c {
        display: flex !important;
    }
    .elementor-497 .elementor-element.elementor-element-537a48e {
        display: flex !important;
    }
}

@media (max-width: 821px) and (min-width: 481px) {
    .elementor-497 .elementor-element.elementor-element-c189b55 {
        margin-top: -310px !important;
    }
    .elementor-497 .elementor-element.elementor-element-512004c > .elementor-container {
        flex-wrap: wrap !important;
        max-width: 100% !important;
    }
    .elementor-497 .elementor-element.elementor-element-50be7f2,
    .elementor-497 .elementor-element.elementor-element-537a48e {
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
    }
    .elementor-497 .elementor-element.elementor-element-512004c {
        padding-left: 5% !important;
        box-sizing: border-box !important;
    }
}

@media (max-width: 480px) {
    .elementor-497 .elementor-element.elementor-element-c189b55 {
        margin-top: -430px !important;
    }
    .elementor-497 .elementor-element.elementor-element-1f28cee > .elementor-container {
        max-width: 100% !important;
    }
    /* Override Slick's JS-set inline widths — force single-column layout */
    .elementor-497 .elementor-element.elementor-element-dcb4ede .jet-listing-grid__items .slick-list {
        overflow: visible !important;
        height: auto !important;
    }
    .elementor-497 .elementor-element.elementor-element-dcb4ede .jet-listing-grid__items .slick-track {
        transform: none !important;
        width: 100% !important;
        display: block !important;
    }
    .elementor-497 .elementor-element.elementor-element-dcb4ede .jet-listing-grid__items .slick-slide {
        float: none !important;
        width: 100% !important;
        display: block !important;
        height: auto !important;
        opacity: 1 !important;
        visibility: visible !important;
    }
    /* Hide Slick-generated clones */
    .elementor-497 .elementor-element.elementor-element-dcb4ede .jet-listing-grid__items .slick-cloned {
        display: none !important;
    }
}


/* =============================================
   Section spacing fixes — Home Additions page
   ============================================= */

@media (min-width: 1920px) {
    .elementor-9927 .elementor-element.elementor-element-0cca995 {
        margin-top: 100px !important;
    }
}

@media (max-width: 1280px) and (min-width: 1026px) {
    .elementor-9927 .elementor-element.elementor-element-0cca995 {
        margin-top: -330px !important;
    }
}

@media (max-width: 1025px) and (min-width: 822px) {
    .elementor-9927 .elementor-element.elementor-element-0cca995 {
        margin-top: -270px !important;
    }
    .elementor-9927 .elementor-element.elementor-element-0cca995 > .elementor-container,
    .elementor-9927 .elementor-element.elementor-element-fffc0a2 > .elementor-container {
        max-width: 80% !important;
    }
    .elementor-9927 .elementor-element.elementor-element-5c34efc {
        padding-left: 40px !important;
        padding-right: 40px !important;
    }
}

@media (max-width: 821px) and (min-width: 481px) {
    .elementor-9927 .elementor-element.elementor-element-0cca995 {
        margin-top: -330px !important;
    }
    .elementor-9927 .elementor-element.elementor-element-0cca995 > .elementor-container,
    .elementor-9927 .elementor-element.elementor-element-fffc0a2 > .elementor-container {
        max-width: 80% !important;
    }
}

@media (max-width: 480px) {
    .elementor-9927 .elementor-element.elementor-element-0cca995 {
        margin-top: -450px !important;
    }
}

/* =============================================
   Section spacing fixes — Basements page
   ============================================= */

@media (min-width: 1920px) {
    .elementor-501 .elementor-element.elementor-element-62db505 {
        margin-top: -170px !important;
    }
}

@media (max-width: 1280px) and (min-width: 1026px) {
    .elementor-501 .elementor-element.elementor-element-62db505 {
        margin-top: -270px !important;
    }
}

@media (max-width: 1025px) and (min-width: 822px) {
    .elementor-501 .elementor-element.elementor-element-62db505 {
        margin-top: -230px !important;
    }
}

@media (max-width: 821px) and (min-width: 481px) {
    .elementor-501 .elementor-element.elementor-element-62db505 {
        margin-top: -250px !important;
    }
}

@media (max-width: 480px) {
    .elementor-501 .elementor-element.elementor-element-62db505 {
        margin-top: -470px !important;
    }
}

/* =============================================
   Section spacing fixes — Bathrooms page
   ============================================= */

@media (min-width: 1920px) {
    .elementor-495 .elementor-element.elementor-element-ef56844 {
        margin-top: -150px !important;
    }
}

@media (max-width: 1280px) and (min-width: 1026px) {
    .elementor-495 .elementor-element.elementor-element-ef56844 {
        margin-top: -170px !important;
    }
}

@media (max-width: 1025px) and (min-width: 822px) {
    .elementor-495 .elementor-element.elementor-element-ef56844 {
        margin-top: -270px !important;
    }
}

@media (max-width: 821px) and (min-width: 481px) {
    .elementor-495 .elementor-element.elementor-element-ef56844 {
        margin-top: -270px !important;
    }
}

@media (max-width: 480px) {
    .elementor-495 .elementor-element.elementor-element-ef56844 {
        margin-top: -324px !important;
    }
}

/* =============================================
   Section spacing fixes — Kitchens page
   ============================================= */

@media (min-width: 1920px) {
    .elementor-493 .elementor-element.elementor-element-f9c5437 {
        margin-top: -210px !important;
    }
}

@media (max-width: 1280px) and (min-width: 1026px) {
    .elementor-493 .elementor-element.elementor-element-f9c5437 {
        margin-top: -364px !important;
    }
}

@media (max-width: 1025px) and (min-width: 822px) {
    .elementor-493 .elementor-element.elementor-element-f9c5437 {
        margin-top: -390px !important;
    }
}

@media (max-width: 821px) and (min-width: 481px) {
    .elementor-493 .elementor-element.elementor-element-f9c5437 {
        margin-top: -410px !important;
    }
}

@media (max-width: 480px) {
    .elementor-493 .elementor-element.elementor-element-f9c5437 {
        margin-top: -531px !important;
    }
}

/* =============================================
   Section spacing fixes — Services page
   ============================================= */

@media (max-width: 1919px) and (min-width: 1281px) {
    .elementor-479 .elementor-element.elementor-element-d4101f2 > .elementor-container {
        min-height: 500px !important;
    }
}

@media (min-width: 1920px) {
    .elementor-479 .elementor-element.elementor-element-bd5ec32 {
        margin-top: -130px !important;
    }
}

@media (max-width: 1280px) and (min-width: 1026px) {
    .elementor-479 .elementor-element.elementor-element-bd5ec32 {
        margin-top: -500px !important;
        padding-top: 40px !important;
    }
}

@media (max-width: 1025px) and (min-width: 822px) {
    .elementor-479 .elementor-element.elementor-element-bd5ec32 {
        margin-top: -540px !important;
        padding-top: 40px !important;
    }
}

@media (max-width: 821px) and (min-width: 481px) {
    .elementor-479 .elementor-element.elementor-element-bd5ec32 {
        margin-top: -330px !important;
    }
}

@media (max-width: 480px) {
    .elementor-479 .elementor-element.elementor-element-bd5ec32 {
        margin-top: -550px !important;
    }
}

/* Mobile: keep hamburger from edge, logo stays left */
@media (max-width: 480px) {
    .elementor-9800 .elementor-element.elementor-element-5fc802d {
        padding-left: 0px !important;
        padding-right: 20px !important;
    }
}

/* =============================================
   Section spacing fixes — Design-Build Process page
   ============================================= */

/* 1026–1280px (e.g. 1152px): hide decorative image, reduce hero gap */
@media (max-width: 1280px) and (min-width: 1026px) {
    .page-id-9931 .sd-hero--single {
        min-height: 95vh !important;
    }
    .elementor-9931 .elementor-element.elementor-element-01c5cf6 {
        display: none !important;
    }
    .elementor-9931 .elementor-element.elementor-element-da154c9 {
        margin-top: -460px !important;
    }
    .elementor-9931 .elementor-element.elementor-element-da154c9 > .elementor-container {
        min-height: 440px !important;
    }
}

/* 822–1025px (e.g. 1024px): shorter hero, hide decorative image, smaller gap section */
@media (max-width: 1025px) and (min-width: 822px) {
    .page-id-9931 .sd-hero--single {
        min-height: 65vh !important;
    }
    .elementor-9931 .elementor-element.elementor-element-01c5cf6 {
        display: none !important;
    }
    .elementor-9931 .elementor-element.elementor-element-da154c9 {
        margin-top: -390px !important;
    }
    .elementor-9931 .elementor-element.elementor-element-da154c9 > .elementor-container {
        min-height: 350px !important;
    }
}

/* 481–821px (712–820px): less space between hero and next section */
@media (max-width: 821px) and (min-width: 481px) {
    .elementor-9931 .elementor-element.elementor-element-da154c9 {
        margin-top: -280px !important;
    }
    .elementor-9931 .elementor-element.elementor-element-da154c9 > .elementor-container {
        min-height: 420px !important;
    }
}

/* ≤430px (phones): hero height, move text up, less space between hero and next section */
@media (max-width: 430px) {
    .page-id-9931 .sd-hero--single {
        min-height: 82vh !important;
    }
    .page-id-9931 .sd-hero--single .sd-hero__content {
        padding-bottom: 80px !important;
    }
    .elementor-9931 .elementor-element.elementor-element-da154c9 {
        margin-top: -200px !important;
    }
    .elementor-9931 .elementor-element.elementor-element-da154c9 > .elementor-container {
        min-height: 320px !important;
    }
}

/* 390–430px: move text lower */
@media (max-width: 430px) and (min-width: 390px) {
    .page-id-9931 .sd-hero--single .sd-hero__content {
        padding-bottom: 20px !important;
    }
}

/* ≤375px: taller hero for small phones, text lower */
@media (max-width: 375px) {
    .page-id-9931 .sd-hero--single {
        min-height: 110vh !important;
    }
    .page-id-9931 .sd-hero--single .sd-hero__content {
        padding-bottom: 10px !important;
    }
}

/* =============================================
   Hero height — Portfolio page
   ============================================= */

@media (max-width: 1025px) and (min-width: 822px) {
    .page-id-9805 .sd-hero--single {
        min-height: 55vh !important;
    }
}

/* =============================================
   Section spacing fixes — About page
   ============================================= */

/* 1281–1919px (e.g. 1512px): pull 33cca60 up */
@media (max-width: 1919px) and (min-width: 1281px) {
    .elementor-483 .elementor-element.elementor-element-33cca60 {
        margin-top: -340px !important;
        margin-bottom: 0px !important;
        padding: 20px 0px 0px 0px !important;
    }
}

/* 1026–1280px (e.g. 1152px): hide decorative, shrink gap section, adjust padding */
@media (max-width: 1280px) and (min-width: 1026px) {
    .elementor-483 .elementor-element.elementor-element-9d88e3d > .elementor-container {
        min-height: 420px !important;
    }
    .elementor-483 .elementor-element.elementor-element-2e24176 {
        display: none !important;
    }
    .elementor-483 .elementor-element.elementor-element-33cca60 {
        padding: 60px 0px 0px 0px !important;
    }
}

/* 822–1025px (e.g. 1024px): hide decorative, shrink gap section, more top padding */
@media (max-width: 1025px) and (min-width: 822px) {
    .elementor-483 .elementor-element.elementor-element-9d88e3d > .elementor-container {
        min-height: 400px !important;
    }
    .elementor-483 .elementor-element.elementor-element-2e24176 {
        display: none !important;
    }
    .elementor-483 .elementor-element.elementor-element-33cca60 {
        padding: 120px 0px 0px 0px !important;
    }
}

/* 768–820px: adjust 33cca60 padding */
@media (max-width: 820px) and (min-width: 768px) {
    .elementor-483 .elementor-element.elementor-element-33cca60 {
        padding: 31px 0px 0px 0px !important;
    }
}

/* 712px only */
@media (max-width: 712px) and (min-width: 708px) {
    .elementor-483 .elementor-element.elementor-element-33cca60 {
        padding: 31px 0px 0px 0px !important;
    }
}

@media (max-width: 821px) and (min-width: 481px) {
    .elementor-483 .elementor-element.elementor-element-9d88e3d > .elementor-container {
        min-height: 380px !important;
    }
}

@media (max-width: 480px) {
    .elementor-483 .elementor-element.elementor-element-9d88e3d > .elementor-container {
        min-height: 300px !important;
    }
}

@media (max-width: 430px) {
    .elementor-483 .elementor-element.elementor-element-9d88e3d > .elementor-container {
        min-height: 160px !important;
    }
    .elementor-483 .elementor-element.elementor-element-33cca60 {
        padding-right: 0px !important;
    }
}

/* =============================================
   Section spacing fixes — Helpful Tips page
   ============================================= */

@media (min-width: 2560px) {
    .elementor-9871 .elementor-element.elementor-element-d3a3021 {
        margin-top: 140px !important;
    }
}

@media (max-width: 2559px) and (min-width: 1920px) {
    .elementor-9871 .elementor-element.elementor-element-d3a3021 {
        margin-top: 140px !important;
    }
}

@media (max-width: 1280px) and (min-width: 1026px) {
    .elementor-9871 .elementor-element.elementor-element-d3a3021 {
        margin-top: -60px !important;
    }
    .elementor-9871 .elementor-element.elementor-element-305aaba {
        display: none !important;
    }
}

@media (max-width: 1025px) and (min-width: 822px) {
    .elementor-9871 .elementor-element.elementor-element-d3a3021 {
        margin-top: -140px !important;
    }
    .elementor-9871 .elementor-element.elementor-element-305aaba {
        display: none !important;
    }
}

@media (max-width: 821px) and (min-width: 481px) {
    .elementor-9871 .elementor-element.elementor-element-d3a3021 {
        margin-top: -40px !important;
    }
}

/* =============================================
   Section spacing fixes — Blog page
   ============================================= */

@media (min-width: 2560px) {
    .elementor-10025 .elementor-element.elementor-element-4cb87fe {
        margin-top: -140px !important;
    }
}

@media (max-width: 2559px) and (min-width: 1920px) {
    .elementor-10025 .elementor-element.elementor-element-4cb87fe {
        margin-top: -140px !important;
    }
}

@media (max-width: 1280px) and (min-width: 1026px) {
    .elementor-10025 .elementor-element.elementor-element-4cb87fe {
        margin-top: -320px !important;
    }
    .elementor-10025 .elementor-element.elementor-element-f679ec7 {
        display: none !important;
    }
}

@media (max-width: 1025px) and (min-width: 822px) {
    .elementor-10025 .elementor-element.elementor-element-4cb87fe {
        margin-top: -361px !important;
    }
    .elementor-10025 .elementor-element.elementor-element-f679ec7 {
        display: none !important;
    }
}

@media (max-width: 821px) {
    .elementor-10025 .elementor-element.elementor-element-4cb87fe {
        margin-top: -320px !important;
        margin-bottom: 0px !important;
        padding: 0px 0px 0px 0px !important;
    }
}

@media (max-width: 480px) {
    .elementor-10025 .elementor-element.elementor-element-4cb87fe {
        margin-top: -330px !important;
        margin-bottom: 0px !important;
        padding: 0px 0px 0px 0px !important;
    }
}