/*Import font css*/
@import url(Geologica.css);
@import url(Figtree.css);

:root {
    /*--wcc-primary-background: hsl(29,79%,97%);*/
    --wcc-primary-background: hsl(0, 0%, 100%);
    --wcc-secondary-background: hsl(0, 0%, 98%);
    --wcc-primary-color: hsl(0,0%,15%);
    --wcc-grand-ff-extralight: Figtree-ExtraLight;
    --wcc-grand-ff-light: Figtree-Light;
    --wcc-grand-ff-regular: Figtree-Regular;
    --wcc-grand-ff-medium: Figtree-Medium;
    --wcc-grand-ff-semibold: Figtree-SemiBold;
    --wcc-grand-ff-bold: Figtree-Bold;
    --wcc-grand-ff-extrabold: Figtree-ExtraBold;
    --wcc-grand-ff-black: Figtree-Black;
    --wcc-spotlight-ff-black: Geologica-Black;
    --btn-opt1-color: hsl(212,100%,50%);
    --btn_opt1-hover: hsl(212,100%,44%);
    --color-opt1-dark: hsl(270,67%,15%);
    --color-opt-2: hsl(0, 74%, 50%);
    --color-opt-green: hsl(122, 46%, 45%);
    --color-opt-sky: hsl(195, 69%, 82%);
    --color-opt-green-hover: hsl(122, 66%, 45%);
    --color-hero-dark: hsl(216, 21%, 18%);
    --color-dark-blue: hsl(216, 45%, 45%);
    --color-light-blue: hsl(216, 15%, 76%);
    --color-gold: hsl(37, 89%, 72%);
    --color-orange: hsl(0, 82%, 68%);
    --color-tooltip: hsl(207, 71%, 93%);
    --hs: 0, 0%,;
    --hsl-100: hsl(var(--hs) 100%);
    --hsl-95: hsl(var(--hs) 95%);
    --hsl-90: hsl(var(--hs) 90%);
    --hsl-85: hsl(var(--hs) 85%);
    --hsl-80: hsl(var(--hs) 80%);
    --hsl-75: hsl(var(--hs) 75%);
    --hsl-70: hsl(var(--hs) 70%);
    --hsl-65: hsl(var(--hs) 65%);
    --hsl-60: hsl(var(--hs) 60%);
    --hsl-55: hsl(var(--hs) 55%);
    --hsl-50: hsl(var(--hs) 50%);
    --hsl-45: hsl(var(--hs) 45%);
    --hsl-40: hsl(var(--hs) 40%);
    --hsl-35: hsl(var(--hs) 35%);
    --hsl-30: hsl(var(--hs) 30%);
    --hsl-25: hsl(var(--hs) 25%);
    --hsl-20: hsl(var(--hs) 20%);
    --hsl-15: hsl(var(--hs) 15%);
    --hsl-10: hsl( var(--hs) 10%);
    --hsl-05: hsl(var(--hs) 5%);
    --hsl-00: hsl(var(--hs) 0%);
    /*
    --shadow-color: var(--hsl-25);

    */

    --shadow-color: hsla(0, 0%, 0%, 25%);
    /* Borders that stay visible on the page background in both themes */
    --border-subtle: var(--hsl-90);
    --border-hover: var(--hsl-75);
}

@media (prefers-color-scheme: dark) {
    :root {
        --wcc-primary-background: hsl(0,0%,20%);
        --wcc-secondary-background: hsl(0, 0%, 15%);
        --wcc-primary-color: hsl(0,0%,100%);
        --color-orange: hsl(0, 82%, 72%);
        --color-tooltip: hsl(207, 12%, 23%);
        --hsl-100: hsl(var(--hs) 0%);
        --hsl-95: hsl(var(--hs) 5%);
        --hsl-90: hsl(var(--hs) 10%);
        --hsl-85: hsl(var(--hs) 15%);
        --hsl-80: hsl(var(--hs) 20%);
        --hsl-75: hsl(var(--hs) 25%);
        --hsl-70: hsl(var(--hs) 30%);
        --hsl-65: hsl(var(--hs) 35%);
        --hsl-60: hsl(var(--hs) 40%);
        --hsl-55: hsl(var(--hs) 45%);
        --hsl-50: hsl(var(--hs) 50%);
        --hsl-45: hsl(var(--hs) 55%);
        --hsl-40: hsl(var(--hs) 60%);
        --hsl-35: hsl(var(--hs) 65%);
        --hsl-30: hsl(var(--hs) 70%);
        --hsl-25: hsl(var(--hs) 75%);
        --hsl-20: hsl(var(--hs) 80%);
        --hsl-15: hsl(var(--hs) 85%);
        --hsl-10: hsl( var(--hs) 90%);
        --hsl-05: hsl(var(--hs) 95%);
        --hsl-00: hsl(var(--hs) 100%);
        /* Inverted HSL scale makes --hsl-90 darker than the bg; use lighter borders */
        --border-subtle: hsl(0, 0%, 32%);
        --border-hover: hsl(0, 0%, 45%);
    }
}

html {
    font-size: 14px;
}




.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

header {
    background-color: var(--wcc-primary-background);
}

html {
    position: relative;
    min-height: 100%;
}

body {
    margin-bottom: 60px;
    font-family: Figtree-Regular;
    background-color: var(--wcc-primary-background);
    color: var(--wcc-primary-color);
}

.pointer {
    cursor: pointer;
}

.spacer {
    padding-top: 3rem;
}

.no-display {
    display: none;
}

/*disable selecting or hilighting text*/
.noselect {
    -webkit-touch-callout: none; /* iOS Safari */
    -webkit-user-select: none; /* Safari */
    -khtml-user-select: none; /* Konqueror HTML */
    -moz-user-select: none; /* Old versions of Firefox */
    -ms-user-select: none; /* Internet Explorer/Edge */
    user-select: none; /* Non-prefixed version, currently
                                  supported by Chrome, Edge, Opera and Firefox */
}

.wt1 {
    font-size: 2.875rem;
}

.wt2 {
    font-size: 1.25rem;
}

.text-center {
    width: 100%;
    text-align: center;
}

.text-right {
    width: 100%;
    text-align: right;
}

.text-mask {
    transition: opacity 1000ms linear;
}

.mask-on {
    opacity: 10%;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

.site-construction {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 78px;
    background-color: #FFE074;
    /*background: url(/img/track-section.svg) repeat;*/
    margin: 2rem 0 4rem 0;
}

.const-banner {
    display: flex;
    align-items: center;
    justify-content: center;
}

.ff-extralight {
    font-family: var(--wcc-grand-ff-extralight);
}

.ff-light {
    font-family: var(--wcc-grand-ff-light);
}

.ff-regular {
    font-family: var(--wcc-grand-ff-regular);
}

.ff-medium {
    font-family: var(--wcc-grand-ff-medium);
}

.ff-semibold {
    font-family: var(--wcc-grand-ff-semibold);
}

.ff-bold {
    font-family: var(--wcc-grand-ff-bold);
}

.ff-extrabold {
    font-family: var(--wcc-grand-ff-extrabold);
}

.ff-black {
    font-family: var(--wcc-grand-ff-black);
}

.ff-color-50 {
    color: var(--hsl-50);
}

.ff-color-25 {
    color: var(--hsl-25);
}

.ff-color-orange {
    color: var(--color-orange);
}

.sl-ff-black {
    font-family: var(--wcc-spotlight-ff-black);
}



.ff-med {
    font-size: 1.25rem;
}

.corner-round {
    border-radius: 8px;
}

.hero-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-grow: 2;
    padding-bottom: 4rem;
    padding-top: 1rem;
    /*

    min-height: calc(100vh * .70);
    */
}

.hero-banner {
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
}

/* Has setting above 768*/
.scene-container {
    display: flex;
    align-items: center;
    justify-content: start;
    max-width: calc(100vw * .2);
    /*min-height: 34rem;
    overflow: hidden;*/
}

.scene-img {
    position: absolute;
    overflow: hidden;
    top: 60px;
    right: 0px;
    margin-left: auto;
    display: flex;
    justify-content: start;
    max-width: calc(100vw *.2);
    /*min-height: calc(100vh * .7);*/
}

.hero-line {
    line-height: 90%;
}

.main-point {
    max-width: 400px;
    padding-top: 1rem;
    padding-bottom: 3rem;
}

.hero-scene {
    position: relative;
    /*
    box-shadow: 0px 10px 10px -6px hsla(0, 0%, 0%, 25%);
    background-color: var(--color-gold);
    */

    z-index: 10;
    background-color: var(--wcc-primary-background);
}

.sub-hero {
    line-height: 90%;
}

.hero-btn-group {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    flex-direction: row;
    gap: 1rem;
}


.option-box {
    display: flex;
    flex-direction: column;
    justify-content: center;
    /*align-items: center;*/
    background-color: var(--wcc-secondary-background);
    padding-top: 4rem;
    padding-bottom: 4rem;
}

.radius-min {
    border-radius: .875rem;
}

.radius-full {
    border-radius: 5rem;
}

.br-org {
    font-size: 4rem;
    position: relative;
    top: -20px;
}

.option-point {
    max-width: 500px;
}

.scene-dimensions {
    width: 32rem;
    position: relative;
    top: -140px;
}

.brand-dimensions {
    height: 1.75rem;
    width: auto;
    max-width: 13rem;
}

.footer-brand-logo {
    height: 2.75rem;
    width: auto;
    max-width: 16rem;
}



.thumb-container {
    background-color: black;
    border-radius: 14rem;
}

.thumb-dimensions {
    position: relative;
    width: 6rem;
    fill: var(--color-opt-green-hover);
    /*
    animation: rotate-thumb 1s infinite ease-in-out;
    */
    transform: rotate(-16deg);
}

@keyframes rotate-thumb {
    from {
        transform: rotate(0deg);
        top: 0px;
    }

    to {
        top: -30px;
        transform: rotate(-16deg);
    }
}

.primary-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px 24px;
    background-color: var(--btn-opt1-color);
    border-radius: 50px;
    border: none;
    transition: background-color 300ms ease;
}

    .primary-btn:hover {
        background-color: var(--btn_opt1-hover);
    }

.go-green svg path {
    fill: var(--color-opt-green) !important;
}


.alt-btn {
    display: inline-flex;
    flex-direction: row;
    width: auto;
    align-items: center;
    justify-content: center;
    padding: 1.2rem 2.4rem;
    border: none;
    transition: background-color 180ms ease;
}

    .alt-btn.btn-sh {
        box-shadow: 0 4px 12px 0 hsla(0, 0%, 0%, 25%);
    }

.alt-btn-on {
    background-color: var(--color-opt-green);
    color: white;
}


    .alt-btn-on:hover {
        background-color: var(--color-opt-green-hover);
    }

.alt-btn-off {
    background-color: var(--hsl-85);
    color: var(--hsl-50);
}

.alt-btn2-on {
    background-color: var(--wcc-primary-color);
    color: var(--wcc-primary-background);
}

.alt-btn3-on {
    background-color: var(--wcc-primary-background);
    color: var(--wcc-primary-color);
}


.color-opt-2 {
    color: var(--color-opt-2);
}

.color-opt-green {
    color: var(--color-opt-green);
}

/**************GOOGLE MATERIAL SYMBOLS************/
.material-symbols-rounded {
    font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24
}
/************END GOOGLE MATERIAL SYMBOLS***********/

.slider-opt-1 {
    -webkit-appearance: none;
    width: 100%;
    height: 4px;
    background: var(--wcc-primary-color);
    border-radius: 2px;
    /*   outline: none;
    opacity: 0.7;

    -webkit-transition: .2s;
    transition: opacity .2s;
    */
}
    /*
    .slider-opt-1:hover {
        opacity: 1;
    }

*/

    .slider-opt-1::-webkit-slider-thumb {
        -webkit-appearance: none;
        appearance: none;
        width: 22px;
        height: 22px;
        border-radius: 50px;
        border: 4px solid var(--wcc-primary-color);
        transition: border 120ms linear;
        /*

        border: 4px solid var(--wcc-primary-background);
        */
        background: var(--wcc-secondary-background);
        cursor: pointer;
    }

        .slider-opt-1::-webkit-slider-thumb:hover {
            border: 3px solid var(--wcc-primary-color);
        }
/*
    .slider-opt-1::-moz-range-thumb {
        width: 22px;
        height: 22px;
        border: 4px solid var(--hsl-95);
        background: var(--wcc-primary-color);
        border-radius: 50px;
        cursor: pointer;
    }
    */


.slidecontainer {
    position: relative;
    width: 100%;
    margin-top: 30px;
}

.schedule-container {
    display: flex;
    flex-direction: column;
    justify-content: left;
    align-items: center;
    gap: 4rem;
}

.schedule-price {
    font-size: 4.8rem;
    line-height: 110%;
    color: var(--hsl-10);
}

.schedule-window {
    display: block;
    border-radius: 8px;
    width: 100%;
    max-width: 480px;
    display: flex;
    flex-direction: column;
    flex-grow: 2;
    padding: 2rem .5rem;
    /*
    height: 600px;
    box-shadow: 3px 3px 10px 2px var(--shadow-color);
    */
}

#ScollIndicator {
    background-color: red;
}

.scroll-indicator {
    position: fixed;
    bottom: 40px;
    left: calc(((100vw)*.5) - 2rem);
    opacity: .75;
    animation: scroll-pulse 4s infinite ease-in-out;
}

@keyframes scroll-pulse {
    0% {
        bottom: 40px;
    }

    10% {
        bottom: 54px;
    }

    15% {
        bottom: 40px;
    }

    100% {
        bottom: 40px;
    }
}

.schedule-container .selection {
    /*background-color: var(--hsl-95);
    border: 1px solid var(--hsl-80);*/
    border: 1px solid var(--hsl-80);
}

.sqft-label {
    display: flex;
    flex-direction: row;
}

    .sqft-label .box-2 {
        flex-grow: 2;
        text-align: right;
    }

#SquareFootage {
    width: 100%;
}

#SquareFootageDisplay {
    position: absolute;
    top: -36px;
    left: 12px;
    transform: translateX(-50%);
    padding: 5px 16px;
    /*    
    
        background-color: var(--hsl-90);
    border-radius: 6px;
    border: 1px solid var(--hsl-80);

    */
}



.service-days-container {
    display: flex;
    flex-direction: row;
    width: 100%;
}

.days-container {
    display: flex;
    flex-direction: row;
    flex-grow: 1;
}

.days-check-container {
    display: none;
}

.days-label-container {
    display: flex;
    flex-grow: 2;
    align-items: center;
    justify-content: center;
}

.day-select {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 50px;
    font-size: 14px;
}

.week-select {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 110px;
    height: 46px;
    border-radius: 8px;
}

.ds-off {
    background-color: var(--hsl-80);
    color: var(--hsl-50);
}

.ds-on {
    color: var(--hsl-100);
    background-color: var(--hsl-20);
}

.ms-on {
    color: var(--hsl-100);
    background-color: var(--hsl-20);
}

.ms-off {
    color: var(--hsl-20);
    background-color: var(--wcc-secondary-background); 
    /*
    border: 1px solid red;
    */

    
}

.ds-unavailable {
    color: var(--hsl-80);
    border: 2px dashed var(--hsl-80);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 50px;
}

.price-tooltip {
    position: relative;
    left: 0px;
    display: inline-flex;
    align-items: center;
    border-radius: 8px;
    padding: .5rem 0;
    width: 280px;
    /*background-color: white;*/
    transition: background-color 300ms linear;
}

.ptt-on .price-tooltip {
    left: 10px;
    background-color: var(--color-tooltip);
}

.ptt-label {
    position: relative;
    left: -48px;
    z-index: 4;
    transition: left 300ms linear;
}

.ptt-on .ptt-label {
    left: -24px;
}


.ptt-marker {
    opacity: 0;
    position: relative;
    top: 20px;
    z-index: 2;
    transition: opacity 300ms linear;
}

.ptt-on .ptt-marker {
    opacity: 100;
}

.ptt-hint {
    opacity: 0;
    transition: opacity 300ms linear;
}

.ptt-on .ptt-hint {
    opacity: 100;
}

.tooltip-fill {
    fill: var(--color-tooltip);
}


.alt-input {
    background-color: var(--hsl-95);
    border: none;
    width: 100%;
    padding: 1rem;
    border-radius: 6px;
    transition: border 100ms linear !important;
}

    .alt-input:focus {
        outline: none;
        background-color: var(--hsl-95);
        border-bottom: 3px solid var(--btn-opt1-color);
    }

.alt-input-2 {
    transition: border 100ms linear !important;
    background-color: var(--wcc-primary-background);
    color: var(--wcc-primary-color);
    border: none;
}

    .alt-input-2:focus {
        border: none;
        background-color: var(--wcc-primary-background);
        border-bottom: 3px solid var(--color-orange);
        color: var(--wcc-primary-color);
    }

.float-label {
    color: var(--hsl-50);
}

.form-floating > label::after {
    background-color: transparent !important;
}


.days-select-mini {
    display: flex;
    flex-direction: row;
    gap: .25rem;
    /*justify-content: right;
    flex-grow: 2;
    */
    align-items: center;
    color: var(--hsl-50);
}

    .days-select-mini .day {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 32px;
        height: 32px;
        border-radius: 50px;
    }
/*
    .days-select-mini .day.ds-on {
        background-color: #CBC3E4;
        color: var(--color-hero-dark);
    }
    */




.request-form-container {
}

.rf-summary {
    background-color: var(--wcc-primary-background);
    padding: 1.2rem;
    border-radius: .875rem;
    box-shadow: 0px 4px 8px 1px hsla(0, 0%, 0%, .25);
}
/*Has setting above 768*/
.canvas-medium {
    padding: 0;
}

.logo-container {
    display: flex;
    flex-direction: row;
    gap: .75rem;
    font-size: 1.3rem;
}

.def-color {
    color: var(--wcc-primary-color)
}

.nav-link-alt {
    color: var(--wcc-primary-color);
}

.nav-link-alt:hover {
    color: var(--wcc-primary-color);
}

.site-header .navbar-nav .nav-link.active:not(.nav-cta),
.site-header .nav-link-alt.active {
    color: var(--color-orange);
}

.site-header .navbar-nav .nav-link.active:not(.nav-cta):hover,
.site-header .nav-link-alt.active:hover {
    color: var(--color-orange);
}



.logo-img {
    width: 1.8rem;
}

.logo-box {
    display: flex;
    justify-content: center;
    align-items: center;
}



.ch-img svg {
    width: 8rem !important;
    height: auto;
}

    .ch-img svg path {
        fill: var(--color-opt-green) !important;
    }

.p-hglt {
    border-radius: 8px;
    width: 90px;
    text-align: center;
}

.mycanvas.offcanvas, .offcanvas-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm {
    --bs-offcanvas-width: 700px;
    background-color: var(--wcc-secondary-background);
    color: var(--wcc-primary-color);
}

.intro-box {
    position: relative;
    z-index: 8;
}

.intro-border {
    border-bottom: .5rem dotted var(--color-hero-dark);
    padding-bottom: 4rem;
}

.intro-item-alt {
    padding-top: 4rem;
}

.intro-item-box {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding-top: 4rem;
}



    .intro-item-box .b1 {
    }

    .intro-item-box .b2 {
        max-width: 30rem;
    }



    .intro-item-box.reverse .b1 {
        padding-right: 0rem;
    }


    .intro-item-box .viz-limit {
        display: none;
    }




.intro-icon-dimensions {
    width: 10rem;
}

.scr-ind-dimensions {
    width: 4rem;
}



.intro-icon {
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var(--color-light-blue);
    width: 4rem;
    height: 4rem;
    border-radius: 1.7rem;
}

    .intro-icon svg {
        height: 2rem;
        fill: var(--color-hero-dark) !important;
    }

.intro-container {
    display: flex;
    flex-direction: row;
    align-items: start;
    flex-wrap: wrap;
    width: 100%;
}

    .intro-container .box {
        display: flex;
        flex-direction: column;
        justify-content: center;
        width: 50%;
        gap: 1rem;
        text-align: center;
    }

    .intro-container .b1 {
        display: flex;
        justify-content: center;
    }

    .intro-container .b2 {
        /*font-size: 1.5rem;*/
    }

    .intro-container .b3 {
        display: flex;
        justify-content: center;
    }


.intro-details {
    max-width: 12rem;
}

.intro-sub {
    padding-top: 2rem;
    max-width: 600px;
}

.th-con {
    display: flex;
    flex-direction: column;
    height: calc(100vh - 200px);
    justify-content: center;
    align-items: center;
}
/******************************************************************************************************/
/****************************    SIZING REFERENCE         *********************************************/
/******************************************************************************************************/
@media (min-width: 576px) {
    .scene-container {
        min-height: 34rem;
    }

    .hero-container {
        min-height: calc(100vh * .70);
        padding-bottom: revert;
        flex-direction: row;
    }

    .sub-hero {
        /*font-size: 2rem;*/
    }

    .scene-dimensions {
        top: revert;
    }



    .scene-img {
        min-height: calc(100vh * .7);
    }

    .intro-container .box {
        width: 50%;
        flex-direction: column;
        text-align: center;
        gap: 0;
    }

    .intro-container .b1 {
        /*        display: flex;
        justify-content: center;*/
    }

    .hero-banner {
        justify-content: left;
        text-align: left;
    }

    .schedule-window {
        padding: 2.5rem;
    }

    .intro-item-box {
        display: flex;
        flex-direction: row;
        justify-content: left;
        align-items: center;
        text-align: left;
    }

        .intro-item-box .b1 {
            padding-right: 1rem;
        }

        .intro-item-box.reverse {
            flex-direction: row-reverse;
        }

            .intro-item-box.reverse .b1 {
                padding-left: 1rem;
            }

    .wt1 {
        font-size: 4rem;
    }
}

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }

    .canvas-medium {
        padding: 1rem 2rem;
    }

    .hero-line {
        /*font-size: 4rem;*/
    }

    .sub-hero {
        /*font-size: 3rem;*/
    }

    .scene-container {
        max-width: revert;
        /*overflow: revert;*/
        flex-grow: 1;
        justify-content: end;
    }

    .main-point {
        max-width: 500px;
    }

    .intro-container .box {
        width: 25%;
    }

    .intro-icon-dimensions {
        width: 14rem;
    }

    .thumb-dimensions {
        width: 10rem;
    }

    .intro-item-box .b1 {
        padding-right: 2rem;
    }

    .intro-item-box.reverse .b1 {
        padding-left: 2rem;
    }

    .intro-item-box .viz-limit {
        display: revert;
    }

    .intro-icon {
        width: 6rem;
        height: 6rem;
        border-radius: 2.6rem;
    }

        .intro-icon svg {
            height: 3.5rem;
        }
}


@media (min-width: 992px) {

    .scene-img {
        max-width: calc(100vw *.4);
    }

    .intro-icon-dimensions {
        width: 16rem;
    }

    .schedule-container {
        flex-direction: row;
        justify-content: left;
    }

    .scroll-indicator {
        display: none;
    }
}

@media (min-height: 1200px) {
    .scroll-indicator {
        display: none;
    }
}


@media (min-width: 1200px) {
    .scene-img {
        position: revert;
        right: revert;
        min-height: revert;
    }

    .sub-hero {
        /*font-size: 3.5rem;*/
    }

    .wt1 {
        font-size: 4rem;
    }

    .intro-item-box {
        padding-top: 14rem;
    }

    .intro-item-alt {
        padding-top: 14rem;
    }

    .intro-border {
        border-bottom: 1rem dotted var(--color-hero-dark);
        padding-bottom: 14rem;
    }

    .intro-item-box .b1 {
        padding-right: 12rem;
    }

    .intro-item-box.reverse .b1 {
        padding-left: 12rem;
    }

    .intro-item-box .b2 {
        max-width: 44rem;
    }


    .intro-icon-dimensions {
        width: 20rem;
    }
}

@media (min-width: 1400px) {
    .wt1 {
        font-size: 5rem;
    }

    .wt2 {
        font-size: 3rem;
    }
}

/* ==========================================================================
   Production design system additions
   ========================================================================== */

.skip-link {
    position: absolute;
    left: -9999px;
    top: 0;
    z-index: 10000;
    padding: 0.75rem 1rem;
    background: var(--wcc-primary-color);
    color: var(--wcc-primary-background);
    font-family: var(--wcc-grand-ff-bold);
    border-radius: 0 0 0.5rem 0;
}

.skip-link:focus {
    left: 0;
}

:focus-visible {
    outline: 3px solid var(--color-orange);
    outline-offset: 2px;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    background-color: color-mix(in srgb, var(--wcc-primary-background) 92%, transparent);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--border-subtle);
}

.site-nav {
    padding-top: 0.65rem;
    padding-bottom: 0.65rem;
}

.site-main {
    min-height: 50vh;
}

.nav-cta {
    margin-left: 0.35rem;
}

.site-header .navbar-nav .nav-link {
    padding: 0.55rem 0.75rem;
}

body {
    margin-bottom: 0;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.site-main {
    flex: 1 0 auto;
}

/* Page hero */
.page-hero {
    padding: 3rem 0 2.5rem;
    background: linear-gradient(180deg, var(--wcc-secondary-background) 0%, var(--wcc-primary-background) 100%);
    border-bottom: 1px solid var(--hsl-90);
}

.page-hero-eyebrow {
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 0.85rem;
    color: var(--color-orange);
    margin-bottom: 0.75rem;
}

.page-hero-title {
    font-size: clamp(2.25rem, 5vw, 3.5rem);
    line-height: 1.05;
    margin-bottom: 1rem;
    max-width: 18ch;
}

.page-hero-subtitle {
    max-width: 40rem;
    font-size: 1.15rem;
    color: var(--hsl-30);
    margin-bottom: 0;
}

.page-hero-actions {
    margin-top: 1.75rem;
    justify-content: flex-start;
}

/* Sections */
.section {
    padding: 4rem 0;
}

.section-tight {
    padding: 2.5rem 0;
}

.section-alt {
    background-color: var(--wcc-secondary-background);
}

.section-title {
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    line-height: 1.15;
    margin-bottom: 0.75rem;
}

.section-lead {
    max-width: 40rem;
    color: var(--hsl-30);
    font-size: 1.1rem;
    margin-bottom: 2rem;
}

.section-header {
    margin-bottom: 2rem;
}

/* Cards & grids */
.card-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}

.feature-card {
    background: var(--wcc-primary-background);
    border: 1px solid var(--border-subtle);
    border-radius: 1rem;
    padding: 1.5rem;
    height: 100%;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.feature-card:hover {
    border-color: var(--border-hover);
    box-shadow: 0 8px 24px hsla(0, 0%, 0%, 0.06);
}

/* Themeable Material Symbols via CSS mask (works with monochrome SVGs) */
.feature-card-icon {
    width: 3.5rem;
    height: 3.5rem;
    margin-bottom: 1rem;
    display: block;
    background-color: var(--wcc-primary-color);
    -webkit-mask: var(--icon-url) center / contain no-repeat;
    mask: var(--icon-url) center / contain no-repeat;
}

.feature-card-icon.icon-desk { --icon-url: url("../img/icons/desk.svg"); }
.feature-card-icon.icon-kitchen { --icon-url: url("../img/icons/kitchen.svg"); }
.feature-card-icon.icon-restroom { --icon-url: url("../img/icons/water_closet.svg"); }
.feature-card-icon.icon-common { --icon-url: url("../img/icons/window.svg"); }
.feature-card-icon.icon-vacuum { --icon-url: url("../img/icons/vacuum.svg"); }
.feature-card-icon.icon-routine { --icon-url: url("../img/icons/routine.svg"); }

.feature-card h3 {
    font-size: 1.15rem;
    margin-bottom: 0.5rem;
}

.feature-card p {
    margin-bottom: 0;
    color: var(--hsl-30);
}

.steps-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
    counter-reset: step;
}

.step-card {
    position: relative;
    background: var(--wcc-primary-background);
    border-radius: 1rem;
    padding: 1.5rem 1.5rem 1.5rem 4.5rem;
    border: 1px solid var(--border-subtle);
}

.step-card::before {
    counter-increment: step;
    content: counter(step);
    position: absolute;
    left: 1.25rem;
    top: 1.4rem;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--hsl-20);
    color: var(--hsl-100);
    font-family: var(--wcc-grand-ff-extrabold);
    font-size: 0.95rem;
}

/* Trust bar */
.trust-bar {
    padding: 1.75rem 0;
    border-bottom: 1px solid var(--hsl-90);
    background: var(--wcc-secondary-background);
}

.trust-bar-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

.trust-item {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
}

.trust-icon {
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 999px;
    background: var(--color-opt-green);
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    font-weight: 700;
    flex-shrink: 0;
}

.trust-copy {
    color: var(--hsl-35);
    font-size: 0.95rem;
}

/* CTA band */
.cta-band {
    padding: 3.5rem 0;
    background: var(--hsl-10);
    color: var(--hsl-100);
}

.cta-band-inner {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    align-items: flex-start;
}

.cta-band-title {
    font-size: clamp(1.75rem, 3vw, 2.35rem);
    margin-bottom: 0.5rem;
}

.cta-band-subtitle {
    margin: 0;
    max-width: 36rem;
    opacity: 0.88;
}

.cta-band .alt-btn3-on {
    border: 1px solid var(--hsl-100);
}

/* Checklist */
.check-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.check-list li {
    position: relative;
    padding: 0.45rem 0 0.45rem 1.75rem;
}

.check-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.7rem;
    width: 0.7rem;
    height: 0.7rem;
    border-radius: 999px;
    background: var(--color-opt-green);
}

/* Area chips */
.area-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.area-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.55rem 1rem;
    border-radius: 999px;
    background: var(--wcc-secondary-background);
    border: 1px solid var(--hsl-85);
    font-family: var(--wcc-grand-ff-semibold);
}

/* FAQ */
.faq-item {
    border: 1px solid var(--hsl-90);
    border-radius: 0.875rem;
    background: var(--wcc-primary-background);
    margin-bottom: 0.75rem;
    overflow: hidden;
}

.faq-item .accordion-button {
    font-family: var(--wcc-grand-ff-semibold);
    background: var(--wcc-primary-background);
    color: var(--wcc-primary-color);
    box-shadow: none;
}

.faq-item .accordion-button:not(.collapsed) {
    background: var(--wcc-secondary-background);
    color: var(--wcc-primary-color);
    box-shadow: none;
}

.faq-item .accordion-button:focus {
    box-shadow: none;
    border-color: transparent;
}

.faq-item .accordion-body {
    color: var(--hsl-30);
}

/* Contact */
.contact-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}

.contact-card {
    background: var(--wcc-secondary-background);
    border-radius: 1rem;
    padding: 1.5rem;
    border: 1px solid var(--hsl-90);
}

.contact-card a {
    color: var(--wcc-primary-color);
    text-decoration: none;
}

.contact-card a:hover {
    color: var(--color-orange);
}

.contact-form {
    background: var(--wcc-primary-background);
    border: 1px solid var(--hsl-90);
    border-radius: 1rem;
    padding: 1.5rem;
}

/* Footer */
.site-footer {
    background: var(--wcc-secondary-background);
    border-top: 1px solid var(--hsl-90);
    padding: 3.5rem 0 1.5rem;
    color: var(--wcc-primary-color);
}

.footer-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    margin-bottom: 2.5rem;
}

.footer-heading {
    font-size: 0.95rem;
    font-family: var(--wcc-grand-ff-bold);
    margin-bottom: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.footer-blurb {
    color: var(--hsl-35);
    max-width: 28rem;
}

.footer-links {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-links li {
    margin-bottom: 0.5rem;
}

.footer-links a,
.footer-link {
    color: var(--wcc-primary-color);
    text-decoration: none;
}

.footer-links a:hover,
.footer-link:hover {
    color: var(--color-orange);
}

.footer-cta {
    display: inline-flex;
    padding: 0.9rem 1.4rem;
    font-size: 1rem;
}

.footer-bottom {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--hsl-90);
    color: var(--hsl-40);
    font-size: 0.95rem;
}

/* Home refinements */
.home-hero-copy {
    max-width: 28rem;
    margin: 0 auto 1.5rem;
    color: var(--hsl-30);
}

.hero-banner .home-hero-copy {
    margin-left: 0;
    margin-right: 0;
}

.pricing-disclaimer {
    color: var(--hsl-40);
    font-size: 0.95rem;
    max-width: 36rem;
    margin-top: 0.75rem;
}

.alert-inline {
    border-radius: 0.75rem;
    padding: 0.85rem 1rem;
}

.values-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

.value-card {
    padding: 1.25rem;
    border-radius: 1rem;
    background: var(--wcc-secondary-background);
    border: 1px solid var(--hsl-90);
}

.value-card h3 {
    font-size: 1.1rem;
    margin-bottom: 0.4rem;
}

.value-card p {
    margin: 0;
    color: var(--hsl-30);
}

@media (min-width: 576px) {
    .card-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .trust-bar-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .steps-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .values-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (min-width: 768px) {
    .footer-grid {
        grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
    }

    .footer-bottom {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }

    .contact-grid {
        grid-template-columns: 0.9fr 1.1fr;
        align-items: start;
    }

    .cta-band-inner {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }
}

@media (min-width: 992px) {
    .card-grid.cols-3 {
        grid-template-columns: repeat(3, 1fr);
    }

    .card-grid.cols-4 {
        grid-template-columns: repeat(4, 1fr);
    }

    .trust-bar-grid {
        grid-template-columns: repeat(4, 1fr);
    }

    .steps-grid {
        grid-template-columns: repeat(4, 1fr);
    }

    .hero-container {
        gap: 2rem;
    }

    /* Soften oversized intro spacing from legacy styles */
    .intro-item-box {
        padding-top: 5rem !important;
    }

    .intro-item-box .b1,
    .intro-item-box.reverse .b1 {
        padding-right: 3rem !important;
        padding-left: 0 !important;
    }

    .intro-item-box.reverse .b1 {
        padding-left: 3rem !important;
        padding-right: 0 !important;
    }
}

@media (min-width: 1200px) {
    .intro-item-box {
        padding-top: 6rem !important;
    }

    .intro-item-box .b1 {
        padding-right: 4rem !important;
    }

    .intro-item-box.reverse .b1 {
        padding-left: 4rem !important;
    }

    .intro-icon-dimensions {
        width: 12rem;
    }
}

/* Mobile hero: hide absolute scene overflow issues */
@media (max-width: 575.98px) {
    .scene-img {
        position: relative;
        top: 0;
        right: 0;
        max-width: 100%;
        margin: 1rem auto 0;
        justify-content: center;
    }

    .scene-dimensions {
        width: min(18rem, 80vw);
        top: 0;
    }

    .scene-container {
        max-width: 100%;
        min-height: auto;
    }

    .hero-container {
        padding-bottom: 2rem;
    }
}

/* ==========================================================================
   Enhanced pricing calculator
   ========================================================================== */

.pricing-inputs {
    gap: 0;
}

.spacer-sm {
    height: 1.25rem;
}

.factor-block {
    margin-top: 1.5rem;
}

.factor-label {
    margin-bottom: 0.5rem;
}

.factor-hint {
    margin: 0.4rem 0 0;
    font-size: 0.9rem;
    color: var(--hsl-40);
}

.factor-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.factor-pill {
    border: 1px solid var(--hsl-80);
    background: var(--wcc-primary-background);
    color: var(--wcc-primary-color);
    border-radius: 999px;
    padding: 0.55rem 0.95rem;
    font-family: var(--wcc-grand-ff-semibold);
    font-size: 0.92rem;
    line-height: 1.2;
    cursor: pointer;
    transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease;
}

.factor-pill:hover {
    border-color: var(--hsl-50);
}

.factor-pill.is-active {
    background: var(--hsl-20);
    border-color: var(--hsl-20);
    color: var(--hsl-100);
}

.pricing-section-rule {
    border: 0;
    border-top: 1px solid var(--border-subtle);
    margin: 1.75rem 0 0;
    opacity: 1;
}

.pricing-section-rule + .factor-block {
    margin-top: 1.5rem;
}

.deep-clean-block {
    margin-top: 1.75rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--border-subtle);
}

.deep-clean-toggle {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
    cursor: pointer;
}

.deep-clean-toggle input {
    margin-top: 0.3rem;
    width: 1.1rem;
    height: 1.1rem;
    flex-shrink: 0;
}

.pricing-results {
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
}

.price-drivers {
    margin-top: 1rem;
    text-align: center;
    font-size: 0.9rem;
    color: var(--hsl-35);
    line-height: 1.35;
}

.estimate-block {
    margin-bottom: 0.25rem;
}

.estimate-label {
    color: var(--hsl-35);
    font-size: 0.95rem;
    margin-bottom: 0.25rem;
}

.estimate-range {
    font-size: clamp(1.75rem, 4vw, 2.4rem);
    line-height: 1.15;
    color: var(--hsl-10);
}

.estimate-range.monthly {
    font-size: clamp(1.5rem, 3.5vw, 2rem);
}

.estimate-range.deep {
    font-size: clamp(1.25rem, 3vw, 1.6rem);
}

.estimate-mid {
    font-size: 0.95rem;
    color: var(--hsl-40);
    margin-top: 0.2rem;
}

.estimate-divider {
    margin: 0.25rem 0;
}

.estimate-footnote {
    text-align: center;
    font-size: 0.85rem;
    color: var(--hsl-40);
    margin: 1rem 0 1.25rem;
    max-width: 22rem;
    margin-left: auto;
    margin-right: auto;
}

.deep-clean-estimate {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px dashed var(--hsl-80);
    text-align: center;
}

.factor-summary-mini {
    font-size: 0.9rem;
    color: var(--hsl-35);
    line-height: 1.35;
}

@media (min-width: 992px) {
    .schedule-container {
        align-items: flex-start;
    }

    .pricing-results {
        position: sticky;
        top: 5.5rem;
    }
}
