* { 
    margin: 0; 
    padding: 0;  
} 

body {
    background-color: rgb(240, 240, 240);
    overscroll-behavior-y: none;
}

html {
    background-color: white;
    overflow-x: clip;
    scroll-behavior: smooth;
}

:root { 
    /* Primary - Muted Sage Green */
    --primary: #5c7a65;
    --primary-light: #7a9483;
    --primary-dark: #4a6052;
    --primary-dim: rgba(92, 122, 101, 0.08);
    
    /* Accent - Warm Gold */
    --accent: #e09900;
    --accent-light: #f0b733;
    --accent-dark: #c78800;
    
    /* Dark - Deep Forest Green */
    --dark: #1a3326;
    --dark-light: #234231;
    --dark-lighter: #2d503c;
    
    /* Neutrals */
    --white: #ffffff;
    --off-white: #f8f9f8;
    --gray-100: #f0f4f0;
    --gray-200: #e8ece8;
    --gray-300: #d0d4d0;
    --gray-400: #a0a4a0;
    --gray-500: #777777;
    --gray-600: #555555;
    --gray-700: #333333;
    
    /* Legacy variable */
    --uline-color: rgb(48, 47, 148); 
} 

.navBar { 
    height: 10vh;  
    width: 100%; 

    position: sticky; 
    top: 0; 

    margin: auto auto; 

    /* background-color: rgb(89, 3, 83);  */ 

    /* border-bottom: 2px solid rgb(128, 153, 5);  */
    box-shadow: 0 0 10px 1px rgba(0, 0, 0, .2); 


    display: flex; 
    flex-direction: row; 

    align-items: center; 

    justify-content: space-between; 
    padding-left: 0;

    background-color: white; 

    z-index: 1000; 

    transition: .6s ease-in-out; 

    /* margin-bottom: 2%;  */
} 

.navBar:not(.sticking) {
    overflow: visible;
} 

.sticking {
    height: 8vh;
    width: 98%;

    overflow: visible;

    margin: auto auto;

    border-radius: 20px;

    top: .8vh;

    /* box-shadow: 0 0 20px 1px rgba(15, 62, 10, 0.445); */

}

.sticking .navLogo {
    height: 80%;
    width: 15%;
    top: 0;
    background-color: transparent;
    background-size: contain;
    border-radius: 0;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 100% 100%, 0 100%);
}



/* .navLogo { 
    height: 80%; 
    width: 15%; 

    background-color: white; 
    background-image: url(content/uploads/2022/04/LOGOV3tb-500X500crop.png); 

    background-size: contain; 
    background-repeat: no-repeat; 
    background-position: center; 

}  */ 

.navLogo {
    height: 160%;
    width: 19%;

    position: relative;
    top: 20%;
    margin-left: 0;

    background-color: white;
    background-image: url(content/uploads/2022/04/LOGOV3tb-500X500crop.png);

    background-size: 72%;
    background-repeat: no-repeat;
    background-position: center;

    border-radius: 0;
    box-shadow: none;
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - 70px), calc(100% - 70px) 100%, 0 100%);

    z-index: 2;

    transition: all 0.6s ease;
}

/* Small mound — right, no effects */
.navLogo::before {
    content: ""; 

    position: absolute;
    bottom: -28px;
    left: -40%;
    width: 130%;
    height: 80px;
    background: url("assets/soil-mound3.svg") center / contain no-repeat;
    filter: brightness(0.75) blur(.5px);
    z-index: 4;
    opacity: 1;
    transition: all 0.6s ease;
}

/* Large mound SVG */
.navLogo::after {
    content: "";
    position: absolute;
    bottom: -25px;
    left: -112%;
    width: 230%;
    height: 140px;
    background: url("assets/soil-mound3.svg") center / contain no-repeat;
    filter: brightness(0.55) blur(1px);
    z-index: 3;
    opacity: 1;
    transition: all 0.6s ease;
}

.sticking .navLogo::after,
.sticking .navLogo::before {
    opacity: 0;
    height: 0;
    transition: all 0.6s ease;
}


.navContact {
    display: flex;
    align-items: center;
    gap: 1.5em;
    font-family: 'Noto Sans', sans-serif;
    font-size: 0.8rem;
    color: #777;
    white-space: nowrap;
    transition: opacity 0.5s ease, width 0.5s ease;
}

@media (min-width: 1080px) {
    .navContact {
        font-size: 0.95rem;
        gap: 1.8em;
    }

    .navContactItem svg {
        width: 16px;
        height: 16px;
    }
}

.navContactItem {
    display: inline-flex;
    align-items: center;
    gap: 0.35em;
    text-decoration: none;
    color: #777;
    transition: color 0.2s ease;
}

.navContactItem:visited,
.navContactItem:link {
    color: #777;
    text-decoration: none;
}

.navContactItem:hover {
    color: #e09900;
}

.navContactItem svg {
    flex-shrink: 0;
}

.navCont { 
    height: 80%; 
    width: auto; 

    padding-right: 5%; 

    display: flex; 
    flex-direction: row; 

    justify-content: right;
    font-family: 'Noto sans', sans-serif;
    font-size: clamp(0.95rem, 1.1vw + 0.3rem, 1.3rem);
    font-weight: 400;

    color: rgb(68, 68, 68); 
} 

.navRight {
    height: 100%;
    width: auto;

    display: flex;
    flex-direction: row;
    gap: 1.8em;

    align-items: center;
    padding-right: 1em;

}

.navBut {
    height: 35%;
    /* min-width: 25%;  */
    width: fit-content;
    white-space: nowrap;
    padding-left: 2%;
    padding-right: 2%;
    /* padding-bottom: 1%;  */

    /* background-color: rgb(89, 3, 83);  */
    text-align: center;

    display: flex;
    flex-direction: column;

    justify-content: flex-end;

    cursor: pointer;
    text-decoration: none;
    color: inherit;
}

a.navBut:visited,
a.navBut:link,
a.navBut:active {
    color: inherit;
    text-decoration: none;
}

a.navBut:hover {
    color: #e09900;
    text-decoration: none;
} 

.navBut:hover { 
    color: #e09900; 
    /* text-decoration: underline;  */ 

    scale: 1.1; 
    transition: ease-in .05s; 

    /* animation: slideButAnim .5s ease-in;  */

    /* border-bottom: 4px solid #e09900;  */
} 

.navBut:hover::before {
    content: '';
    height: 3px;
    width: 0;

    position: absolute;
    bottom: -10%;

    animation: slideButAnim .5s cubic-bezier(1, 0, 0, 1) forwards;

    background-color: #e09900;
}

.sticking .navBut:hover::before {
    height: 1px;
}

@keyframes slideButAnim { 
    0% { 
        width: 0%; 
    } 
    100% { 
        width: 80%; 
    }
} 

.homeBack { 
    width: 100%; 
    height: 85vh; 
    margin-top: 0;

    display: flex; 
    justify-content: center; 
    align-items: center;
}


.landHome { 
    width: 100%; 
    height: 85vh; 

    background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.175), rgba(0, 0, 0, 0.325)), url(./content/Images/IMG_20230628_182136.jpg);
    background-size: cover; 
    background-position: center;

    overflow: hidden; 
    
    position: relative;
    z-index: 1; 
} 

#coverLand {
    position: relative;
    display: flex;
    flex-direction: row;

    width: 100%;
    height: 100%;

    background-color: rgba(0, 0, 0, .4);
    margin: 0;
}

.heroText { 
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 0 0 5% 2%; 
    width: 60%; 
    height: 90%; 
}

.heroPhone {
    color: white;
    font-size: clamp(1rem, 1.8vw, 1.6rem);
    margin-left: auto; 
    margin-right: auto; 
    font-family: 'Noto Serif', serif;
    font-weight: 350; 
    position: relative; 
    bottom: 11%; 
}

.heroPhone a {
    color: inherit;
    text-decoration: none;
}

.heroIFrame {
    position: relative;
    width: 40%;
    height: 90%;
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    gap: 1em;
    justify-content: flex-end;
    padding-right: 3%;
    box-sizing: border-box;
} 


.coverContactButton {
    width: 8.5em;
    height: 1.8em;
    padding: 0.3em 1em; 
    color: white;
    font-family: inherit;
    font-size: clamp(1.1rem, 1.6vw, 1.5rem);
    border: 2px solid white;
    border-radius: 4px;
    cursor: pointer;
    overflow: hidden;
    background: transparent;
    position: relative; 
    bottom: 10%;
    flex-shrink: 0;
    transition: width 1.4s cubic-bezier(0.25, 1, 0.4, 1),
                height 1.4s cubic-bezier(0.25, 1, 0.4, 1),
                padding 1.4s ease,
                border-color 1.4s ease,
                background 1.4s ease,
                border-radius 1.4s ease;
}

.coverContactButton:not(.expanded):hover {
    scale: 1.08;
}

.coverContactButton.expanded {
    width: 30vw;
    height: 60vh;
    padding: 0;
    border-color: rgba(255, 255, 255, 0.3);
    background: rgba(0, 0, 0, 0.85);
    cursor: default;
    border-radius: 8px;
    z-index: 10;
}

.estimateBtnLabel {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    white-space: nowrap; 
    font-size: 1.3em; 
}

.coverContactButton.expanded .estimateBtnLabel {
    display: none;
}

.estimateBtnIframe {
    width: 100%;
    height: 100%;
    border: none;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.8s ease;
}

.coverContactButton.expanded .estimateBtnIframe {
    opacity: 1;
    pointer-events: auto;
    transition: opacity 1s ease 0.6s;
}

.coverContactButton.closing {
    transition: width 0.8s ease,
                height 0.8s ease,
                padding 0.8s ease,
                border-color 0.8s ease,
                background 0.8s ease,
                border-radius 0.8s ease;
}

.coverContactButton.closing .estimateBtnIframe {
    opacity: 0;
    transition: opacity 0.6s ease;
}

@keyframes iframeFadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.estimateBtnClose {
    display: none;
    position: absolute;
    top: 0.6rem;
    right: 0.6rem;
    width: 30px;
    height: 30px;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.45);
    border: none;
    padding: 0;
    margin: 0;
    font-size: 1.2rem;
    line-height: 30px;
    text-align: center;
    box-sizing: border-box;
    color: white;
    cursor: pointer;
    z-index: 11;
    border-radius: 50%;
    transition: background 0.2s ease;
}

.coverContactButton.expanded .estimateBtnClose {
    display: flex;
}

.estimateBtnClose:hover {
    background: rgba(0, 0, 0, 0.7);
}

.heroHeadline {
    color: white;
    white-space: nowrap;
    width: 50%;
    height: min-content;
    font-size: clamp(2rem, 5vw + 0.5rem, 4.8rem);
    font-family: 'Noto Serif', serif;
    font-weight: 350;
    text-shadow: 0 2px 16px rgba(0, 0, 0, 0.5);
    margin: 0;
    margin-left: 9%;

    opacity: 0;
    animation: heroFadeUp 1.9s cubic-bezier(0.2, 0.8, 0.4, 1) 0.2s forwards;
}

.heroHeadline:first-of-type {
    margin-top: 8%;
}

.heroHeadlineIndent {
    margin-left: 13%;
    animation-delay: 0.65s;
}

.heroAccent {
    font-weight: 500;
    font-size: 1.2em;
    color: #e09900;
    animation: heroAccentColor 0.7s cubic-bezier(0.4, 0, 0.2, 1) 0.5s both;
}

@keyframes heroFadeUp {
    from { opacity: 0; transform: translateY(22px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes heroAccentColor {
    from { color: rgba(255, 255, 255, 0.9); }
    to   { color: #e09900; }
}

.aboutSum { 
    display: flex; 
    flex-direction: row; 

    margin: auto auto; 

    justify-content: space-around; 

    /* background-color: black;  */

    width: 80vw; 

    margin-top: 15vh; 
    margin-bottom: 15vh; 


} 

.sum { 
    height: 40vh; 
    width: 18vw; 

    background: linear-gradient(180deg, var(--primary, #5c7a65) 0%, var(--primary-dark, #4a6052) 100%);
    color: var(--white, #ffffff);
    
    display: flex; 
    flex-direction: column; 
    align-items: center;
    justify-content: center;
    
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
} 

.hoursSum,
.residSum,
.specialtySum {
    overflow: hidden;
    border-radius: 4px;
    position: relative;
    background: none;
    justify-content: space-between;
    padding: 3vh 0 3vh 0;
    cursor: default;
}

.hoursBack {
    position: absolute;
    inset: -10px;
    background-image: url(./content/Images/IMG_20230620_192427_1.jpg);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    filter: brightness(70%);
    transition: filter 0.6s ease, transform 0.6s ease;
    z-index: 0;
}

.hoursSum:hover .hoursBack {
    filter: brightness(70%) blur(3px);
    transform: scale(1.06);
}

/* SVG wrapper — top of card */
.hoursSvgWrap {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6em;
    width: 100%;
}

.hoursSvg {
    width: 40%;
    height: auto;
    color: rgba(255, 255, 255, 0.18);
    transition: color 0.5s ease;
}

.hoursSum:hover .hoursSvg {
    color: var(--accent, #e09900);
}

/* Clock circle draws on hover */
.svgRing {
    stroke-dasharray: 63;
    stroke-dashoffset: 63;
    transition: stroke-dashoffset 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.05s;
}

.svgHands {
    stroke-dasharray: 11;
    stroke-dashoffset: 11;
    transition: stroke-dashoffset 0.5s cubic-bezier(0.16, 1, 0.3, 1) 0.7s;
}

.hoursSum:hover .svgRing {
    stroke-dashoffset: 0;
}

.hoursSum:hover .svgHands {
    stroke-dashoffset: 0;
}

.hoursLabel {
    font-family: 'Noto Sans', sans-serif;
    font-size: clamp(1rem, 1.2vw + 0.3rem, 1.4em);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: rgba(255, 255, 255, 0.85);
    margin: 0;
    transition: opacity 0.3s ease;
}

.hoursSum:hover .hoursLabel {
    opacity: 0;
}

/* Hours list — bottom of card */
.hoursList {
    position: relative;
    z-index: 2;
    width: 76%;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.5s ease 0.5s, transform 0.5s ease 0.5s;
}

.hoursSum:hover .hoursList {
    opacity: 1;
    transform: translateY(0);
}

.hoursDay {
    font-family: 'Noto Sans', sans-serif;
    font-size: 1em;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.88);
    display: flex;
    justify-content: space-between;
    padding: 0.45em 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    margin: 0;
}

.hoursDay:last-child {
    border-bottom: none;
    color: rgba(255, 255, 255, 0.65);
}


.residBack {
    position: absolute;
    inset: -10px;
    background-image: url(./content/Images/IMG_20230628_182113.jpg);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    filter: brightness(70%);
    transition: filter 0.6s ease, transform 0.6s ease;
    z-index: 0;
}

.residSum:hover .residBack {
    filter: brightness(70%) blur(3px);
    transform: scale(1.06);
}

.specialtyBack {
    position: absolute;
    inset: -10px;
    background-image: url(./content/Images/IMG_20240824_104218.jpg);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    filter: brightness(70%);
    transition: filter 0.6s ease, transform 0.6s ease;
    z-index: 0;
}

.specialtySum:hover .specialtyBack {
    filter: brightness(70%) blur(3px);
    transform: scale(1.06);
}

/* Shared SVG wrapper */
.serviceCardSvgWrap {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6em;
    width: 100%;
}

.serviceCardSvg {
    width: 40%;
    height: auto;
    color: rgba(255, 255, 255, 0.18);
    transition: color 0.5s ease;
}

.residSum:hover .serviceCardSvg,
.specialtySum:hover .serviceCardSvg {
    color: var(--accent, #e09900);
}

.serviceCardLabel {
    font-family: 'Noto Sans', sans-serif;
    font-size: clamp(1rem, 1.2vw + 0.3rem, 1.4em);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: rgba(255, 255, 255, 0.88);
    margin: 0;
    transition: opacity 0.3s ease;
}

.residSum:hover .serviceCardLabel,
.specialtySum:hover .serviceCardLabel {
    opacity: 0;
}

/* Service list — bottom of card */
.serviceCardList {
    position: relative;
    z-index: 2;
    width: 76%;
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.5s ease 0.5s, transform 0.5s ease 0.5s;
}

.residSum:hover .serviceCardList,
.specialtySum:hover .serviceCardList {
    opacity: 1;
    transform: translateY(0);
}

.serviceCardItem {
    font-family: 'Noto Sans', sans-serif;
    font-size: 1em;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.88);
    padding: 0.4em 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    margin: 0;
}

.serviceCardItem:last-child {
    border-bottom: none;
}

/* House SVG path animations — roof → wall → door */
.svgRoof {
    stroke-dasharray: 24;
    stroke-dashoffset: 24;
    transition: stroke-dashoffset 0.55s cubic-bezier(0.16, 1, 0.3, 1) 0.05s;
}

.svgWall {
    stroke-dasharray: 35;
    stroke-dashoffset: 35;
    transition: stroke-dashoffset 0.55s cubic-bezier(0.16, 1, 0.3, 1) 0.4s;
}

.svgDoor {
    stroke-dasharray: 19;
    stroke-dashoffset: 19;
    transition: stroke-dashoffset 0.4s cubic-bezier(0.16, 1, 0.3, 1) 0.8s;
}

.residSum:hover .svgRoof { stroke-dashoffset: 0; }
.residSum:hover .svgWall { stroke-dashoffset: 0; }
.residSum:hover .svgDoor { stroke-dashoffset: 0; }

/* Sprout SVG path animations — leaves → stem */
.svgLeafL {
    stroke-dasharray: 18;
    stroke-dashoffset: 18;
    transition: stroke-dashoffset 0.55s cubic-bezier(0.16, 1, 0.3, 1) 0.05s;
}

.svgLeafR {
    stroke-dasharray: 18;
    stroke-dashoffset: 18;
    transition: stroke-dashoffset 0.55s cubic-bezier(0.16, 1, 0.3, 1) 0.35s;
}

.svgStem {
    stroke-dasharray: 10;
    stroke-dashoffset: 10;
    transition: stroke-dashoffset 0.35s cubic-bezier(0.16, 1, 0.3, 1) 0.75s;
}

.specialtySum:hover .svgLeafL { stroke-dashoffset: 0; }
.specialtySum:hover .svgLeafR { stroke-dashoffset: 0; }
.specialtySum:hover .svgStem  { stroke-dashoffset: 0; }

.sumLog { 
    height: 20%; 
    aspect-ratio: 1/1; 
    padding: 3%; 
    width: fit-content; 
    align-items: center; 

    /* background-color: green;  */ 

    background-color: #e09900; 

    border-radius: 50%; 
} 

.sumContent { 
    height: 78%; 
    width: 100%; 


} 



.sumContent::before { 
    content: ''; 
    position: absolute; 
    background-color: rgb(128, 153, 5); 
    width: 14%; 
    height: 4px; 

    border-radius: 4px; 

} 

.reviewHomeOut { 
    height: 45vh; 
    width: 100%; 
    position: relative;
    overflow: hidden;

    margin: auto auto; 

    background-image: url(./content/uploads/2021/04/IMG_20200703_130354e1-scaled.jpg); 

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

    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.reviewHomeOut::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(60, 75, 65, 0.4) 0%, rgba(40, 50, 45, 0.5) 100%); 
    /* backg */
    z-index: 0;
}

.reviewScroller {
    position: relative;
    z-index: 1;
    display: flex;
    white-space: nowrap;
    align-items: center;
    will-change: transform;
    gap: 3vw;
    padding: 0 2vw;
}

.reviewItemHome { 
    width: 420px;
    min-width: 420px;
    max-width: 420px;
    height: 260px;
    padding: 2.5vh 2.5vw;
    flex-shrink: 0;
    box-sizing: border-box;
    overflow: hidden;

    border-radius: 4px; 
    background-color: white;

    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
    
    display: flex;
    flex-direction: column;
    justify-content: space-between;

    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.reviewItemHome:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.3);
}

.reviewStars {
    color: #e09900;
    font-size: 1.2em;
    letter-spacing: 2px;
    margin-bottom: 0.8vh;
    font-family: 'Noto Sans', sans-serif;
}

.reviewText {
    font-family: 'Noto Serif', serif;
    font-size: 1em;
    line-height: 1.5;
    color: rgb(68, 68, 68);
    margin: 0;
    flex-grow: 1;
    display: flex;
    align-items: center;
    word-wrap: break-word;
    white-space: normal;
    overflow: hidden;
}

.reviewAuthor {
    font-family: 'Noto Sans', sans-serif;
    font-size: 0.9em;
    color: rgb(128, 128, 128);
    font-weight: 500;
    margin-top: 0.8vh;
    margin-bottom: 0;
    font-style: italic;
}


@media (max-width: 780px) {
    .reviewHomeOut {
        height: 52vh;
    }

    .reviewItemHome {
        width: 290px;
        min-width: 290px;
        max-width: 290px;
        height: 260px;
        padding: 1.8vh 4vw;
    }

    .reviewText {
        font-size: 0.8em;
    }

    .reviewAuthor {
        font-size: 0.72em;
    }

    .reviewStars {
        font-size: 0.95em;
    }

    .reviewScroller {
        gap: 4vw;
    }
} 

.landHooks { 
    width: 80vw; 
    height: 60vh; 

    margin: auto auto; 

    margin-top: 15vh; 
    margin-bottom: 10%; 

    display: flex; 
    flex-direction: row; 
    justify-content: space-evenly; 
    align-items: center; 
/* 
    background-color: rgb(89, 3, 83);  */
} 

.hook { 
    background: linear-gradient(145deg, var(--primary, #5c7a65) 0%, var(--primary-dark, #4a6052) 100%);

    height: 80%; 
    width: 20vw; 

    border-radius: 4px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
} 

.clientHook,
.qualityHook,
.careHook { 
    position: relative; 

    border-radius: 4px; 

    box-shadow: 0 4px 25px rgba(44, 63, 19, 0.3); 

    overflow: hidden; 
    background: transparent;
}

.hookBackClient { 
    height: 100%; 
    width: 100%; 

    background-image: url(./content/Images/IMG_20250515_161657287_1.jpg); 
    background-repeat: no-repeat; 

    background-size: cover; 
    background-position: 50% 45%; 

    filter: brightness(60%); 
}

.hookBackQuality {
    height: 100%;
    width: 100%;

    background-image: url(./content/Images/IMG_20230628_182237.jpg);
    background-repeat: no-repeat;

    background-size: cover;
    background-position: 50% 45%;

    filter: brightness(60%);
}

.hookBackCare {
    height: 100%;
    width: 100%;

    background-image: url(./content/Images/IMG_20240810_163937.jpg);
    background-repeat: no-repeat;

    background-size: cover;
    background-position: 50% 40%;

    filter: brightness(60%);
}



.hookContClient {
    height: 100%;
    width: 100%;

    position: absolute;
    top: 0;
    left: 0;

    z-index: 10;

    background: linear-gradient(180deg, rgba(26, 51, 38, 0.1) 0%, rgba(26, 51, 38, 0.2) 900%);

    border-radius: 4px;

    color: white;

    font-family: 'Noto Serif', serif;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);

    display: grid;
    grid-template-rows: auto 1fr auto;
    padding: 8%;
    box-sizing: border-box;
}

.hookContClient > p {
    font-size: 1.2em;
    line-height: 1.5;
    margin: 0;
    padding: 0;
}

.hookContClient > .catchline {
    font-weight: 500;
    font-size: clamp(1.5rem, 2.2vw + 0.5rem, 2.4rem);
    margin-bottom: 0.6em;
    line-height: 1.2;
    align-self: start;
}

.hookContClient > .catchText {
    font-size: clamp(1.1rem, 1vw + 0.3rem, 1.15rem);
    line-height: 1.6;
    text-align: left;
    align-self: start;
}

.hookClientButton {
    width: 100%;
    padding-top: 1.2em;
    display: flex;
    justify-content: flex-end;
    align-self: end; 
    text-decoration: none; 
} 

.hookClientButton > p { 
    display: inline-flex; 
    align-items: center; 
    justify-content: center; 
    
    padding: 0.6em 1.5em;
    margin-left: auto;

    border: 2px solid #e09900; 
    border-radius: 4px;

    color: #e09900; 
    font-size: 1em; 

    opacity: 0;
    transform: translateY(12px);
    transition: opacity 0.5s ease, transform 0.5s ease,
                color 0.2s ease, background-color 0.2s ease;
}

.hook.is-visible .hookClientButton > p {
    opacity: 1;
    transform: translateY(0);
} 

.hookClientButton > p:hover { 
    color: white; 

    background-color: #e09900; 

    cursor: pointer; 
}


.footer {
    width: 100%;
    background: linear-gradient(180deg, var(--dark, #1a3326) 0%, var(--dark-light, #234231) 100%);
    color: var(--gray-300, #d0d4d0);
    font-family: 'Noto Sans', sans-serif;
}

.footer a {
    color: var(--gray-300, #d0d4d0);
    text-decoration: none;
    transition: color 0.2s ease;
}

.footer a:hover {
    color: var(--accent, #e09900);
}

.footerInner {
    width: 78vw;
    margin: 0 auto;
    padding: 6vh 0 4vh;
    display: flex;
    flex-direction: row;
    gap: 4vw;
    justify-content: space-between;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.footerLogo {
    height: 60px;
    width: 120px;
    background-image: url(content/uploads/2022/04/LOGOV3tb-500X500crop.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
    margin-bottom: 1.2em;
}

.footerTagline {
    font-size: 0.9em;
    color: rgba(255, 255, 255, 0.55);
    line-height: 1.6;
    max-width: 220px;
}

.footerCol {
    display: flex;
    flex-direction: column;
}

.footerColTitle {
    font-size: 0.75em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--accent, #e09900);
    margin-bottom: 1.2em;
}

.footerLinks {
    gap: 0.6em;
}

.footerLinks a {
    font-size: 0.95em;
    color: rgba(255, 255, 255, 0.75);
}

.footerLinks a:hover {
    color: white;
}

.footerContactItem {
    font-size: 0.9em;
    color: rgba(255, 255, 255, 0.7);
    line-height: 1.8;
    margin: 0;
}

.footerContactItem strong {
    color: rgba(255, 255, 255, 0.9);
    font-weight: 500;
}

.footerBottom {
    width: 78vw;
    margin: 0 auto;
    padding: 2vh 0 3vh;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    font-size: 0.8em;
    color: rgba(255, 255, 255, 0.35);
}

.footerBottom a {
    color: rgba(255, 255, 255, 0.35);
}

.footerBottom a:hover {
    color: var(--accent, #e09900);
}

@media (max-width: 768px) {
    .footerInner {
        flex-direction: column;
        gap: 4vh;
        width: 88vw;
    }

    .footerBottom {
        width: 88vw;
        flex-direction: column;
        gap: 0.5em;
        text-align: center;
    }
}

/* ============================================
   HAMBURGER BUTTON
   ============================================ */

.navHamburger {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    margin-right: 4%;
    flex-shrink: 0;
    z-index: 1001;
}

.navHamburger span {
    display: block;
    width: 100%;
    height: 2px;
    background: var(--gray-700, #333333);
    border-radius: 2px;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

/* Animates to X when open */
.navBar.navOpen .navHamburger span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}
.navBar.navOpen .navHamburger span:nth-child(2) {
    opacity: 0;
    transform: scaleX(0);
}
.navBar.navOpen .navHamburger span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}



@media (max-width: 900px) {
    /* Sum cards — 2 columns */
    .aboutSum {
        flex-wrap: wrap;
        gap: 3vw;
        width: 90vw;
        margin-top: 10vh;
        margin-bottom: 10vh;
    }

    .sum {
        width: 42vw;
        height: 38vh;
    }

    /* Hook cards — 2 columns */
    .landHooks {
        flex-wrap: wrap;
        width: 90vw;
        height: auto;
        gap: 3vw;
        margin-bottom: 8vh;
    }

    .hook {
        width: 42vw;
        height: 44vh;
    }
}

@media (max-width: 1400px) {
    .navBar {
        justify-content: space-between;
    }

    .navHamburger {
        display: flex;
        margin-right: 3%;
    }

    .navLogo {
        height: 120%;
        width: 240px;
        top: 12%;
        margin-left: 0;
        flex-shrink: 0;
        background-size: 78%;
        clip-path: polygon(0 0, 100% 0, 100% calc(100% - 50px), calc(100% - 50px) 100%, 0 100%);
    }

    .navLogo::after,
    .navLogo::before {
        transform: scale(0.5);
        transform-origin: bottom left;
    }

    .navContact {
        flex: 1;
        justify-content: center;
    }

    .navCont {
        display: none;
    }

    .navBut:hover::before {
        display: none;
    }

    .navBar.navOpen,
    .navBar.navClosing {
        overflow: visible;
    }

    .navBar.navOpen .navCont,
    .navBar.navClosing .navCont {
        display: flex;
        flex-direction: row;
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        height: auto;
        background: white;
        border-top: 1px solid var(--gray-200, #e8ece8);
        border-radius: 0 0 16px 16px;
        box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
        padding: 0;
        padding-right: 0;
        padding-bottom: 0;
        z-index: 999;
    }

    .navBar.navOpen .navCont {
        animation: navFadeIn 0.25s ease-out;
    }

    .navBar.navClosing .navCont {
        animation: navFadeOut 0.25s ease-in forwards;
    }

    @keyframes navFadeIn {
        from { opacity: 0; transform: translateY(-10px); }
        to   { opacity: 1; transform: translateY(0); }
    } 

    @keyframes navFadeOut {
        from { opacity: 1; transform: translateY(0); }
        to   { opacity: 0; transform: translateY(-10px); }
    }

    .navBar.sticking.navOpen {
        border-radius: 0;
    }

    .navBar.sticking.navOpen .navCont {
        animation: dropdownUnround 0.4s ease-in-out forwards;
    }

    @keyframes dropdownUnround {
        from { border-radius: 20px; }
        to   { border-radius: 0 0 20px 20px; }
    }

    .navBar.navOpen .navRight,
    .navBar.navClosing .navRight {
        width: 100%;
        height: auto;
        flex-direction: row;
        align-items: center;
        justify-content: space-evenly;
        gap: 0;
    }

    .navBar.navOpen .navBut,
    .navBar.navClosing .navBut {
        height: auto;
        width: auto;
        padding: 0.85em 1.2em;
        justify-content: center;
        align-items: center;
        text-align: center;
        border-right: none;
        border-bottom: none;
        flex: unset;
        box-sizing: border-box;
        font-size: 1.05em;
        position: relative;
    }

    .navBar.navOpen .navBut:not(:last-child)::after,
    .navBar.navClosing .navBut:not(:last-child)::after {
        display: none;
    } 

    .aboutSum { 
        width: 90vw; 
    } 

    .sum { 
        width: 25%; 
    } 

    .landHooks { 
        width: 90vw; 
    } 

    .hook { 
        width: 25%; 
    } 
}

@media (max-width: 768px) {
    /* Fixed navbar: always out of document flow, never pushes content */
    .navBar {
        position: fixed;
        width: 100%;
        left: 0;
    }

    /* Hero needs clearance below the fixed navbar */
    .homeBack {
        margin-top: 10vh;
    }

    .navBar.sticking {
        width: 98%;
        left: 1%;
    }

    .navBar.sticking.navOpen {
        border-radius: 20px 20px 0 0;
        overflow: visible;
    }

    .navBar.sticking.navClosing {
        overflow: visible;
    }

    .navLogo {
        height: 80%;
        width: 140px;
        top: 0;
        background-color: transparent;
        background-size: contain;
        clip-path: none;
        border-radius: 0;
        margin-left: 3%;
    }

    .navLogo::after,
    .navLogo::before {
        display: none;
    }

    .sticking .navLogo {
        width: 155px;
        height: 85%;
    }

    .sticking .navContact {
        display: flex;
        opacity: 1;
    }

    .navContactItem span {
        display: none;
    }

    .navContactItem svg {
        width: 20px;
        height: 20px;
    }

    .navBar.navOpen .navCont,
    .navBar.navClosing .navCont {
        flex-direction: column;
        padding-bottom: 6px;
    }

    .navBar.navOpen .navRight,
    .navBar.navClosing .navRight {
        flex-direction: column;
        align-items: stretch;
        justify-content: center;
    }

    .navBar.navOpen .navBut,
    .navBar.navClosing .navBut {
        width: 100%;
        padding: 0.85em 8%;
        font-size: 1.15em;
    }

    .navBar.navOpen .navBut:not(:last-child)::after,
    .navBar.navClosing .navBut:not(:last-child)::after {
        display: block;
    }

    /* Hero */
    .homeBack,
    .landHome {
        height: 70vh;
    }

    .landHome {
        background-size: cover;
        background-position: center 65%;
    }

    /* Stack content top-to-bottom */
    #coverLand {
        flex-direction: column;
        justify-content: space-between;
        padding: 6% 6% 5% 6%;
        box-sizing: border-box;
        background-color: rgba(0, 0, 0, 0.55);
    }

    .heroText {
        width: 100%;
        height: 90%;
        padding: 0;
        gap: 1.2vh;
    }

    .heroPhone {
        position: static;
        bottom: 10vh;
        margin: auto 0 0 0;
        font-size: clamp(1.15rem, 5vw, 1.5rem);
        white-space: normal;
        overflow-wrap: break-word;
        margin-top: auto;
        opacity: 0;
        animation: heroFadeUp 1.4s ease-out 1.2s forwards;
    }

    .heroIFrame {
        width: 100%;
        height: auto;
        padding: 0;
        margin-top: 1.5vh;
        display: flex;
        justify-content: center;
        gap: 0.75em;
        flex-wrap: wrap;
    }

    .heroHeadline {
        white-space: normal;
        width: 100%;
        margin-left: 0;
        font-size: clamp(1.9rem, 8.5vw, 3rem);
    }

    .heroHeadlineIndent {
        margin-left: 5%;
    }

    .heroHeadline:first-of-type {
        margin-top: 0;
    }

    .coverContactButton {
        font-size: 0.95rem;
        width: auto;
        height: auto;
        padding: 0.5em 1.2em;
        bottom: 0; 
        margin-left: auto; 
        margin-right: auto
    }

    .estimateBtnLabel {
        justify-content: center;
    }

    .coverContactButton.expanded {
        width: 82vw;
        height: 60vh;
        max-width: 440px;
        max-height: 680px;
    }

    /* Sum cards — stack single column */
    .aboutSum {
        flex-direction: column;
        align-items: center;
        width: 88vw;
        gap: 3vh;
        margin-top: 8vh;
        margin-bottom: 8vh;
    }

    .sum {
        width: 88vw;
        height: 44vh;
        padding-bottom: 0;
    }

    .hoursDay,
    .serviceCardItem {
        font-size: 0.85em;
        padding: 0.35em 0;
    }

    .hoursLabel,
    .serviceCardLabel {
        font-size: clamp(0.85rem, 3vw, 1.1rem);
    }

    /* Hook cards — stack single column */
    .landHooks {
        flex-direction: column;
        width: 88vw;
        height: auto;
        gap: 3vh;
        margin-top: 8vh;
        margin-bottom: 8vh;
        align-items: center;
    }

    .hook {
        width: 88vw;
        height: 46vh;
    }

    .clientHook {
        order: 3;
    }

    .hookClientButton > p { 
        padding: .3em .75em; 
        font-size: 1.3em;
    }

}

@media (max-width: 600px) {
    .coverContactButton {
        font-size: 1vw;
    }
}

@media (max-width: 480px) {
    /* Hero */
    .homeBack,
    .landHome {
        height: 70vh;
    }

    .landHome {
        background-size: cover;
        background-position: center 65%;
    }

    #coverLand {
        padding: 6% 6% 5% 6%;
    }

    .heroIFrame {
        flex-direction: column;
        align-items: center;
        gap: 0.5em; 
        min-width: fit content; 
        padding: 1%; 
    }

    .heroHeadline {
        width: 100%;
        margin-left: 0;
        font-size: clamp(1.6rem, 9vw, 2.6rem);
    }

    .heroHeadlineIndent {
        margin-left: 5%;
    }

    .heroAccent {
        font-size: 1.15em;
    }

    .heroIFrame {
        width: auto;
        height: auto;
        padding: 0;
        margin-top: 1.5vh;
        display: flex;
        justify-content: center;
    }

    .heroPhone {
        position: relative;
        bottom: 10vh;
        margin: auto 0 0 0;
        font-size: clamp(1.15rem, 5vw, 1.5rem);
        white-space: normal;
        overflow-wrap: break-word;
    }

    .coverContactButton {
        font-size: 0.95rem; 
        height: 4vh;
        padding: 0.5em 1.2em;
        bottom: 0;
        margin-left: auto;
        margin-right: auto;
    }

    .coverContactButton.expanded {
        width: 60vw;
        height: 65vh; 
    }

    /* Sum cards */
    .aboutSum {
        width: 92vw;
    }

    .sum {
        width: 92vw;
        height: 50vh;
    }

    .hoursDay,
    .serviceCardItem {
        font-size: 0.8em;
        padding: 0.3em 0;
    }

    .hoursLabel,
    .serviceCardLabel {
        font-size: clamp(0.8rem, 2.8vw, 1rem);
    }

    /* Hook cards */
    .landHooks {
        width: 92vw;
    }

    .hook {
        width: 92vw;
        height: 50vh;
    }

    .hookContClient {
        padding: 7%;
    }

    .hookContClient > .catchline {
        font-size: clamp(1.1rem, 5vw, 2rem);
    }

    .hookContClient > .catchText {
        font-size: clamp(0.9rem, 3.5vw, 1.15rem);
    }

    .hookContClient > p {
        font-size: 1em;
    }

    .hookClientButton > p {
        padding: 0.3em 0.7em;
        font-size: 1.1em;
    }
} 

@media (hover: none) {
    .hoursSum.is-visible .hoursBack {
        filter: brightness(70%) blur(3px);
        transform: scale(1.06);
    }
    .hoursSum.is-visible .hoursSvg         { color: var(--accent, #e09900); }
    .hoursSum.is-visible .svgRing           { stroke-dashoffset: 0; }
    .hoursSum.is-visible .svgHands          { stroke-dashoffset: 0; }
    .hoursSum.is-visible .hoursLabel        { opacity: 0; }
    .hoursSum.is-visible .hoursList         { opacity: 1; transform: translateY(0); }

    .residSum.is-visible .residBack {
        filter: brightness(70%) blur(3px);
        transform: scale(1.06);
    }
    .residSum.is-visible .serviceCardSvg    { color: var(--accent, #e09900); }
    .residSum.is-visible .svgRoof           { stroke-dashoffset: 0; }
    .residSum.is-visible .svgWall           { stroke-dashoffset: 0; }
    .residSum.is-visible .svgDoor           { stroke-dashoffset: 0; }
    .residSum.is-visible .serviceCardLabel  { opacity: 0; }
    .residSum.is-visible .serviceCardList   { opacity: 1; transform: translateY(0); }

    .specialtySum.is-visible .specialtyBack {
        filter: brightness(70%) blur(3px);
        transform: scale(1.06);
    }
    .specialtySum.is-visible .serviceCardSvg   { color: var(--accent, #e09900); }
    .specialtySum.is-visible .svgLeafL          { stroke-dashoffset: 0; }
    .specialtySum.is-visible .svgLeafR          { stroke-dashoffset: 0; }
    .specialtySum.is-visible .svgStem           { stroke-dashoffset: 0; }
    .specialtySum.is-visible .serviceCardLabel  { opacity: 0; }
    .specialtySum.is-visible .serviceCardList   { opacity: 1; transform: translateY(0); }
}