:root {
    --cl-ink: #072f2d;
    --cl-ink-soft: #4f6966;
    --cl-green: #079768;
    --cl-green-dark: #045844;
    --cl-green-deep: #023d36;
    --cl-mint: #eaf8f2;
    --cl-mint-strong: #d6f2e6;
    --cl-gold: #ffb800;
    --cl-gold-hover: #ffc83d;
    --cl-paper: #ffffff;
    --cl-soft: #f5f9f7;
    --cl-line: rgba(7, 47, 45, .12);
    --cl-danger: #c33d4b;
    --cl-radius-sm: 14px;
    --cl-radius: 22px;
    --cl-radius-lg: 32px;
    --cl-shadow-sm: 0 12px 28px rgba(4, 60, 52, .08);
    --cl-shadow: 0 24px 70px rgba(3, 49, 43, .16);
    --cl-hero-image: url('/images/laundry/hero/hero_1.jpg');
}

.cl-page,
.cl-page * {
    box-sizing: border-box;
}

.cl-page {
    min-height: 100%;
    overflow: clip;
    color: var(--cl-ink);
    background: var(--cl-paper);
}

    .cl-page a {
        text-underline-offset: .18em;
    }

.cl-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    color: var(--cl-green-dark);
    font-size: .73rem;
    font-weight: 950;
    line-height: 1.3;
    letter-spacing: .13em;
    text-transform: uppercase;
}

    .cl-eyebrow::before {
        width: 9px;
        height: 9px;
        border-radius: 999px;
        background: var(--cl-gold);
        box-shadow: 0 0 0 5px rgba(255, 184, 0, .13);
        content: "";
    }


/* =========================================================
   LAUNDRY SUB-NAVIGATION
   ========================================================= */

.cl-subnav {
    position: relative;
    z-index: 40;
    width: 100%;
    border-top: 1px solid rgba(7, 47, 45, .05);
    border-bottom: 1px solid var(--cl-line);
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 8px 28px rgba(3, 49, 43, .045);
    backdrop-filter: blur(16px);
}

.cl-subnav__inner {
    min-height: 74px;
    display: flex;
    align-items: center;
    gap: 24px;
}

.cl-subnav__brand {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 11px;
    color: var(--cl-ink);
    text-decoration: none;
}

    .cl-subnav__brand:hover {
        color: var(--cl-ink);
    }

.cl-subnav__mark {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    color: #fff;
    background: linear-gradient(145deg, #0aa574, #057c5b);
    box-shadow: 0 10px 24px rgba(7, 151, 104, .22);
    font-size: 1.08rem;
}

.cl-subnav__brand-copy {
    display: grid;
    gap: 1px;
    line-height: 1;
}

    .cl-subnav__brand-copy strong {
        color: var(--cl-ink);
        font-size: .92rem;
        font-weight: 950;
        letter-spacing: .14em;
    }

    .cl-subnav__brand-copy small {
        color: var(--cl-green);
        font-size: .62rem;
        font-weight: 950;
        letter-spacing: .18em;
    }

.cl-subnav__toggle {
    width: 43px;
    height: 43px;
    display: none;
    place-items: center;
    margin-left: auto;
    border: 1px solid var(--cl-line);
    border-radius: 12px;
    color: var(--cl-ink);
    background: var(--cl-soft);
    cursor: pointer;
    font-size: 1.35rem;
    transition: color .18s ease, background-color .18s ease, border-color .18s ease, transform .18s ease;
}

    .cl-subnav__toggle:hover,
    .cl-subnav__toggle[aria-expanded="true"] {
        color: #fff;
        border-color: var(--cl-green-dark);
        background: var(--cl-green-dark);
    }

    .cl-subnav__toggle:active {
        transform: scale(.97);
    }

.cl-subnav__collapse {
    min-width: 0;
    flex: 1;
}

.cl-subnav__links {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
}

    .cl-subnav__links a {
        min-height: 42px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        padding: 0 11px;
        border-radius: 11px;
        color: #385b57;
        text-decoration: none;
        white-space: nowrap;
        font-size: .78rem;
        font-weight: 850;
        transition: color .18s ease, background-color .18s ease, box-shadow .18s ease, transform .18s ease;
    }

        .cl-subnav__links a i {
            color: #68827f;
            font-size: .86rem;
            transition: color .18s ease;
        }

        .cl-subnav__links a:hover,
        .cl-subnav__links a.is-active {
            color: var(--cl-green-dark);
            background: var(--cl-mint);
        }

            .cl-subnav__links a:hover i,
            .cl-subnav__links a.is-active i {
                color: var(--cl-green);
            }

        .cl-subnav__links a.is-active {
            box-shadow: inset 0 0 0 1px rgba(7, 151, 104, .12);
        }

    .cl-subnav__links .cl-subnav__cta {
        margin-left: 6px;
        padding-right: 16px;
        padding-left: 16px;
        color: #fff;
        background: var(--cl-green);
        box-shadow: 0 10px 25px rgba(7, 151, 104, .18);
    }

        .cl-subnav__links .cl-subnav__cta i {
            color: #fff;
        }

        .cl-subnav__links .cl-subnav__cta:hover,
        .cl-subnav__links .cl-subnav__cta.is-active {
            color: #fff;
            background: var(--cl-green-dark);
            box-shadow: 0 13px 30px rgba(4, 88, 68, .23);
            transform: translateY(-1px);
        }

            .cl-subnav__links .cl-subnav__cta:hover i,
            .cl-subnav__links .cl-subnav__cta.is-active i {
                color: #fff;
            }

@media (max-width: 1199px) {
    .cl-subnav__inner {
        gap: 14px;
    }

    .cl-subnav__links a {
        gap: 5px;
        padding-right: 8px;
        padding-left: 8px;
        font-size: .73rem;
    }

    .cl-subnav__links .cl-subnav__cta {
        padding-right: 12px;
        padding-left: 12px;
    }
}

@media (max-width: 991px) {
    .cl-subnav__inner {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 0 14px;
        padding-top: 11px;
        padding-bottom: 11px;
    }

    .cl-subnav__toggle {
        display: grid;
    }

    .cl-subnav__collapse {
        grid-column: 1 / -1;
        display: grid;
        grid-template-rows: 0fr;
        opacity: 0;
        visibility: hidden;
        transition: grid-template-rows .28s ease, opacity .2s ease, visibility .2s ease;
    }

        .cl-subnav__collapse > .cl-subnav__links {
            min-height: 0;
            overflow: hidden;
        }

    .cl-subnav.is-open .cl-subnav__collapse {
        grid-template-rows: 1fr;
        opacity: 1;
        visibility: visible;
    }

    .cl-subnav__links {
        align-items: stretch;
        justify-content: flex-start;
        flex-direction: column;
        gap: 5px;
        padding-top: 12px;
    }

        .cl-subnav__links a {
            width: 100%;
            min-height: 46px;
            justify-content: flex-start;
            padding: 0 14px;
            border: 1px solid transparent;
            font-size: .82rem;
        }

            .cl-subnav__links a:hover,
            .cl-subnav__links a.is-active {
                border-color: rgba(7, 151, 104, .12);
            }

        .cl-subnav__links .cl-subnav__cta {
            justify-content: center;
            margin: 5px 0 1px;
        }
}

@media (max-width: 480px) {
    .cl-subnav__inner {
        min-height: 64px;
    }

    .cl-subnav__mark {
        width: 38px;
        height: 38px;
        flex-basis: 38px;
        border-radius: 11px;
    }

    .cl-subnav__brand-copy strong {
        font-size: .82rem;
    }

    .cl-subnav__brand-copy small {
        font-size: .57rem;
    }
}

/* =========================================================
   HERO
   ========================================================= */

.cl-hero {
    position: relative;
    min-height: 750px;
    display: flex;
    align-items: center;
    padding: 78px 0 70px;
    overflow: hidden;
    isolation: isolate;
    background: #eef8f3;
}

    .cl-hero::before {
        position: absolute;
        z-index: -2;
        inset: 0;
        background-image: var(--cl-hero-image);
        background-position: 58% center;
        background-repeat: no-repeat;
        background-size: cover;
        content: "";
        transform: scale(1.015);
        transition: transform 1.2s cubic-bezier(.2, .8, .2, 1), filter .7s ease;
    }

    .cl-hero::after {
        position: absolute;
        z-index: -1;
        inset: 0;
        content: "";
        pointer-events: none;
        background: linear-gradient( 90deg, rgba(248, 252, 249, .995) 0%, rgba(248, 252, 249, .98) 25%, rgba(248, 252, 249, .91) 38%, rgba(248, 252, 249, .72) 48%, rgba(248, 252, 249, .42) 57%, rgba(248, 252, 249, .16) 66%, rgba(2, 44, 39, .05) 77%, rgba(2, 44, 39, .18) 100% ), linear-gradient( 180deg, rgba(255, 255, 255, .03) 0%, rgba(2, 44, 39, .04) 70%, rgba(2, 44, 39, .16) 100% );
    }

.cl-page.cl-ready .cl-hero::before {
    transform: scale(1);
}

.cl-hero__grid {
    position: relative;
    z-index: 1;
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1.18fr) minmax(340px, .62fr);
    gap: clamp(36px, 5vw, 76px);
    align-items: center;
}

    .cl-hero__grid > div:first-child {
        max-width: 860px;
    }

.cl-hero h1 {
    max-width: 850px;
    margin: 17px 0 18px;
    color: var(--cl-ink);
    font-size: clamp(3.6rem, 6.2vw, 6.7rem);
    font-weight: 950;
    line-height: .91;
    letter-spacing: -.064em;
    text-wrap: balance;
    text-shadow: 0 3px 24px rgba(255, 255, 255, .72);
}

    .cl-hero h1 span {
        color: var(--cl-green);
        text-shadow: 0 2px 18px rgba(255, 255, 255, .8);
    }

.cl-hero__lead {
    max-width: 760px;
    margin: 0;
    color: #355957;
    font-size: clamp(1rem, 1.28vw, 1.16rem);
    line-height: 1.7;
    text-shadow: 0 1px 14px rgba(255, 255, 255, .9);
}

/* Search */
.cl-search {
    position: relative;
    z-index: 3;
    max-width: 920px;
    display: grid;
    grid-template-columns: minmax(220px, .9fr) minmax(280px, 1.2fr) auto;
    gap: 10px;
    align-items: start;
    margin-top: 28px;
    padding: 12px;
    border: 1px solid rgba(255, 255, 255, .8);
    border-radius: 23px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 25px 70px rgba(2, 55, 47, .18);
    backdrop-filter: blur(18px);
}

    .cl-search::before {
        position: absolute;
        z-index: -1;
        inset: 0;
        border-radius: inherit;
        background: linear-gradient(135deg, rgba(255, 255, 255, .78), rgba(255, 255, 255, .22));
        content: "";
    }

.cl-search__field {
    min-width: 0;
    margin: 0;
}

    .cl-search__field > span {
        display: block;
        margin: 0 0 7px 10px;
        color: #56716e;
        font-size: .67rem;
        font-weight: 950;
        letter-spacing: .09em;
        line-height: 1.2;
        text-transform: uppercase;
    }

    .cl-search__field > div,
    .laundry-location-shell {
        min-height: 57px;
        display: flex;
        align-items: center;
        overflow: hidden;
        border: 1px solid var(--cl-line);
        border-radius: 14px;
        background: #f6faf8;
        transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease, transform .18s ease;
    }

    .cl-search__field.is-focused > div,
    .cl-search__field.is-focused .laundry-location-shell,
    .cl-search__field:focus-within > div,
    .cl-search__field:focus-within .laundry-location-shell {
        border-color: rgba(7, 151, 104, .55);
        background: #fff;
        box-shadow: 0 0 0 4px rgba(7, 151, 104, .11);
    }

    .cl-search__field i {
        flex: 0 0 auto;
        margin-left: 16px;
        color: var(--cl-green);
        font-size: 1rem;
    }

.cl-search select,
.cl-search input {
    width: 100%;
    min-width: 0;
    min-height: 55px;
    padding: 0 14px 0 11px;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--cl-ink);
    font: inherit;
    font-size: .92rem;
    font-weight: 760;
}

/* The shell owns the focus treatment, preventing clipped lines between its controls. */
.cl-search select:focus,
.cl-search select:focus-visible,
.cl-search input:focus,
.cl-search input:focus-visible,
.cl-search .laundry-location-button:focus,
.cl-search .laundry-location-button:focus-visible {
    outline: 0 !important;
    box-shadow: none !important;
}

.cl-search input {
    position: relative;
    z-index: 1;
    pointer-events: auto;
    user-select: text;
    caret-color: var(--cl-green-dark);
}

    .cl-search input::placeholder {
        color: #82918f;
        opacity: 1;
    }

.laundry-location-shell {
    width: 100%;
}

    .laundry-location-shell > i {
        margin-left: 15px;
    }

.laundry-location-button {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    display: inline-grid;
    place-items: center;
    margin-right: 5px;
    border: 0;
    border-radius: 12px;
    background: var(--cl-mint);
    color: var(--cl-green-dark);
    cursor: pointer;
    transition: transform .18s ease, background-color .18s ease, color .18s ease;
}

    .laundry-location-button i {
        margin: 0;
    }

    .laundry-location-button:hover {
        color: #fff;
        background: var(--cl-green);
        transform: translateY(-1px);
    }

    .laundry-location-button.is-loading i {
        animation: cl-spin .9s linear infinite;
    }

    .laundry-location-button.is-success {
        color: #fff;
        background: var(--cl-green);
    }

@keyframes cl-spin {
    to {
        transform: rotate(360deg);
    }
}

.carry-location-status {
    min-height: 16px;
    display: block;
    margin: 5px 8px 0;
    color: #5e7471;
    font-size: .72rem;
    line-height: 1.25;
}

    .carry-location-status.is-success {
        color: var(--cl-green-dark);
        font-weight: 800;
    }

    .carry-location-status.is-error {
        color: var(--cl-danger);
        font-weight: 800;
    }

.cl-btn {
    min-height: 53px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 0 20px;
    border: 0;
    border-radius: 14px;
    text-decoration: none;
    font-weight: 950;
    line-height: 1;
    transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease;
}

    .cl-btn:hover {
        transform: translateY(-2px);
    }

.cl-btn--gold {
    color: #172f2b;
    background: var(--cl-gold);
    box-shadow: 0 12px 28px rgba(255, 184, 0, .25);
}

    .cl-btn--gold:hover {
        color: #172f2b;
        background: var(--cl-gold-hover);
        box-shadow: 0 16px 35px rgba(255, 184, 0, .32);
    }

.cl-btn--primary {
    color: #fff;
    background: var(--cl-green);
    box-shadow: 0 12px 28px rgba(7, 151, 104, .22);
}

    .cl-btn--primary:hover {
        color: #fff;
        background: var(--cl-green-dark);
    }

.cl-search > .cl-btn {
    min-width: 145px;
    min-height: 57px;
    align-self: start;
    margin-top: 20px;
    white-space: nowrap;
}

.cl-service-shortcuts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.cl-service-shortcuts a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 12px;
    color: var(--cl-green-dark);
    background: rgba(255, 255, 255, .9);
    border: 1px solid var(--cl-line);
    border-radius: 999px;
    font-size: .76rem;
    font-weight: 850;
    text-decoration: none;
    box-shadow: 0 8px 22px rgba(2, 55, 47, .08);
}

.cl-service-shortcuts a:hover {
    color: #fff;
    background: var(--cl-green);
    border-color: var(--cl-green);
}

    .cl-search > .cl-btn.is-loading {
        pointer-events: none;
        opacity: .78;
    }

        .cl-search > .cl-btn.is-loading i {
            animation: cl-spin .9s linear infinite;
        }

.cl-location-chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 15px;
    color: #5b706d;
    font-size: .8rem;
}

    .cl-location-chips > span {
        font-weight: 750;
    }

    .cl-location-chips a {
        padding: 7px 12px;
        border: 1px solid rgba(7, 47, 45, .13);
        border-radius: 999px;
        color: var(--cl-ink);
        background: rgba(255, 255, 255, .86);
        box-shadow: 0 7px 20px rgba(3, 53, 46, .06);
        text-decoration: none;
        font-weight: 850;
        backdrop-filter: blur(10px);
        transition: transform .18s ease, color .18s ease, background-color .18s ease, border-color .18s ease;
    }

        .cl-location-chips a:hover {
            color: #fff;
            border-color: var(--cl-green-dark);
            background: var(--cl-green-dark);
            transform: translateY(-1px);
        }

.cl-trust-row {
    display: flex;
    flex-wrap: wrap;
    gap: 11px 19px;
    margin-top: 21px;
    color: #183f3a;
    font-size: .8rem;
    font-weight: 850;
}

    .cl-trust-row span {
        display: inline-flex;
        align-items: center;
        gap: 7px;
    }

    .cl-trust-row i {
        color: var(--cl-green);
    }

/* Hero audience panel */
.cl-hero__panel {
    position: relative;
    overflow: hidden;
    padding: 22px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 26px;
    color: #fff;
    background: linear-gradient(145deg, rgba(2, 55, 48, .96), rgba(2, 43, 39, .92));
    box-shadow: 0 28px 70px rgba(0, 35, 31, .27);
    backdrop-filter: blur(18px);
}

    .cl-hero__panel::before {
        position: absolute;
        top: -110px;
        right: -90px;
        width: 240px;
        height: 240px;
        border-radius: 50%;
        background: rgba(7, 151, 104, .24);
        filter: blur(2px);
        content: "";
    }

.cl-hero__panel-header {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 6px;
    margin: 0 8px 17px;
}

    .cl-hero__panel-header span {
        color: #b8ed75;
        font-size: .67rem;
        font-weight: 950;
        letter-spacing: .12em;
    }

    .cl-hero__panel-header strong {
        font-size: 1.14rem;
    }

.cl-audience-card {
    position: relative;
    z-index: 1;
    min-height: 70px;
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    margin-top: 10px;
    padding: 10px 13px;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 15px;
    color: #fff;
    background: rgba(255, 255, 255, .055);
    text-decoration: none;
    transition: transform .18s ease, background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
}

    .cl-audience-card:hover {
        color: #fff;
        border-color: rgba(255, 255, 255, .25);
        background: rgba(255, 255, 255, .1);
        box-shadow: 0 12px 25px rgba(0, 0, 0, .13);
        transform: translateX(4px);
    }

.cl-audience-card--accent {
    border-color: rgba(34, 210, 147, .42);
    background: linear-gradient(135deg, #079768, #0bab79);
}

.cl-audience-card__icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    font-size: 1.05rem;
}

.cl-audience-card > span:nth-child(2) {
    min-width: 0;
    display: grid;
    gap: 3px;
}

.cl-audience-card strong {
    font-size: .88rem;
}

.cl-audience-card small {
    color: rgba(255, 255, 255, .7);
    font-size: .68rem;
    line-height: 1.35;
}

.cl-hero__availability {
    position: relative;
    z-index: 1;
    display: flex;
    gap: 12px;
    align-items: flex-start;
    margin-top: 16px;
    padding: 15px 7px 2px;
    border-top: 1px solid rgba(255, 255, 255, .12);
}

    .cl-hero__availability > i {
        margin-top: 1px;
        color: var(--cl-gold);
        font-size: 1.2rem;
    }

    .cl-hero__availability div {
        display: grid;
        gap: 4px;
    }

    .cl-hero__availability strong {
        font-size: .86rem;
    }

    .cl-hero__availability small {
        color: rgba(255, 255, 255, .65);
        font-size: .68rem;
        line-height: 1.45;
    }

/* =========================================================
   IMPACT STRIP
   ========================================================= */

.cl-impact-strip {
    position: relative;
    overflow: hidden;
    color: #fff;
    background: var(--cl-green-deep);
}

    .cl-impact-strip::after {
        position: absolute;
        inset: 0;
        background: radial-gradient(circle at 50% -70%, rgba(31, 189, 135, .25), transparent 48%);
        content: "";
        pointer-events: none;
    }

.cl-impact-strip__grid {
    position: relative;
    z-index: 1;
    min-height: 96px;
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr;
    gap: 22px;
    align-items: center;
}

    .cl-impact-strip__grid > div {
        display: grid;
        gap: 3px;
    }

    .cl-impact-strip__grid strong {
        font-size: .93rem;
    }

    .cl-impact-strip__grid span {
        color: rgba(255, 255, 255, .64);
        font-size: .76rem;
    }

    .cl-impact-strip__grid > i {
        color: var(--cl-gold);
    }

/* =========================================================
   CONTENT SECTIONS
   ========================================================= */

.cl-section {
    padding: 84px 0;
}

    .cl-section:nth-of-type(even) {
        background: #fff;
    }

.cl-section-heading {
    max-width: 780px;
    margin-bottom: 30px;
}

.cl-section-heading--row {
    max-width: none;
    display: flex;
    justify-content: space-between;
    gap: 28px;
    align-items: end;
}

.cl-section-heading h2,
.cl-story-card h2 {
    margin: 10px 0 8px;
    color: var(--cl-ink);
    font-size: clamp(2.25rem, 4.4vw, 4rem);
    font-weight: 950;
    line-height: .98;
    letter-spacing: -.052em;
    text-wrap: balance;
}

.cl-section-heading p,
.cl-story-card p {
    margin: 0;
    color: var(--cl-ink-soft);
    font-size: 1rem;
    line-height: 1.7;
}

.cl-text-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 17px;
    border: 1px solid var(--cl-line);
    border-radius: 999px;
    color: var(--cl-ink);
    background: #fff;
    text-decoration: none;
    white-space: nowrap;
    font-weight: 900;
    transition: transform .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease;
}

    .cl-text-link:hover {
        color: var(--cl-green-dark);
        border-color: rgba(7, 151, 104, .34);
        box-shadow: var(--cl-shadow-sm);
        transform: translateY(-2px);
    }

.cl-service-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.cl-service-card {
    position: relative;
    min-height: 225px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 24px;
    overflow: hidden;
    border: 1px solid var(--cl-line);
    border-radius: var(--cl-radius);
    color: var(--cl-ink);
    background: linear-gradient(145deg, #fff, #f7fbf9);
    box-shadow: 0 10px 28px rgba(2, 52, 45, .065);
    text-decoration: none;
    transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}

    .cl-service-card::before {
        position: absolute;
        right: -44px;
        bottom: -44px;
        width: 120px;
        height: 120px;
        border-radius: 50%;
        background: var(--cl-mint);
        content: "";
        transition: transform .25s ease;
    }

    .cl-service-card > i {
        position: relative;
        z-index: 1;
        width: 54px;
        height: 54px;
        display: grid;
        place-items: center;
        margin-bottom: 20px;
        border-radius: 16px;
        color: #fff;
        background: linear-gradient(135deg, var(--cl-green), var(--cl-green-dark));
        box-shadow: 0 10px 24px rgba(7, 151, 104, .23);
        font-size: 1.35rem;
    }

    .cl-service-card strong,
    .cl-service-card span,
    .cl-service-card small {
        position: relative;
        z-index: 1;
    }

    .cl-service-card strong {
        margin-bottom: 8px;
        font-size: 1.08rem;
    }

    .cl-service-card > span {
        color: var(--cl-ink-soft);
        font-size: .87rem;
        line-height: 1.55;
    }

    .cl-service-card small {
        display: inline-flex;
        align-items: center;
        gap: 7px;
        margin-top: auto;
        padding-top: 18px;
        color: var(--cl-green-dark);
        font-weight: 900;
    }

    .cl-service-card:hover {
        color: var(--cl-ink);
        border-color: rgba(7, 151, 104, .36);
        box-shadow: var(--cl-shadow);
        transform: translateY(-6px);
    }

        .cl-service-card:hover::before {
            transform: scale(1.35);
        }

.cl-featured {
    background: radial-gradient(circle at 8% 8%, rgba(7, 151, 104, .08), transparent 31rem), var(--cl-soft);
}

.cl-provider-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

/* Supports common partial naming without forcing a specific markup. */
.cl-provider-card,
.laundry-provider-card {
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--cl-line);
    border-radius: var(--cl-radius);
    background: #fff;
    box-shadow: var(--cl-shadow-sm);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

    .cl-provider-card:hover,
    .laundry-provider-card:hover {
        border-color: rgba(7, 151, 104, .3);
        box-shadow: var(--cl-shadow);
        transform: translateY(-5px);
    }

.cl-story-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.cl-story-card {
    position: relative;
    min-height: 390px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    overflow: hidden;
    padding: clamp(30px, 5vw, 58px);
    border: 1px solid var(--cl-line);
    border-radius: var(--cl-radius-lg);
    background: radial-gradient(circle at 100% 0, rgba(7, 151, 104, .12), transparent 17rem), #fff;
    box-shadow: var(--cl-shadow-sm);
}

    .cl-story-card::after {
        position: absolute;
        right: -80px;
        bottom: -110px;
        width: 270px;
        height: 270px;
        border: 50px solid rgba(7, 151, 104, .06);
        border-radius: 50%;
        content: "";
    }

    .cl-story-card > * {
        position: relative;
        z-index: 1;
    }

    .cl-story-card .cl-btn {
        margin-top: 24px;
    }

.cl-story-card--dark {
    border-color: transparent;
    color: #fff;
    background: radial-gradient(circle at 94% 0, rgba(24, 183, 130, .25), transparent 23rem), linear-gradient(145deg, #063d37, #022e2a);
    box-shadow: 0 28px 70px rgba(2, 48, 43, .2);
}

    .cl-story-card--dark h2,
    .cl-story-card--dark .cl-eyebrow {
        color: #fff;
    }

    .cl-story-card--dark p {
        color: rgba(255, 255, 255, .7);
    }

    .cl-story-card--dark::after {
        border-color: rgba(255, 255, 255, .055);
    }

/* =========================================================
   MOTION, FOCUS AND JS ENHANCEMENTS
   ========================================================= */

.cl-reveal {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity .65s ease, transform .65s cubic-bezier(.2, .8, .2, 1);
}

    .cl-reveal.is-visible {
        opacity: 1;
        transform: none;
    }

.cl-page :focus-visible:not(input):not(select):not(.laundry-location-button) {
    outline: 3px solid rgba(255, 184, 0, .75);
    outline-offset: 3px;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (min-width: 1500px) {
    .cl-hero {
        min-height: 790px;
    }

        .cl-hero::before {
            background-position: 62% center;
        }
}

@media (max-width: 1199px) {
    .cl-hero {
        min-height: 720px;
    }

        .cl-hero::before {
            background-position: 61% center;
        }

    .cl-hero__grid {
        grid-template-columns: minmax(0, 1fr) minmax(310px, .58fr);
        gap: 35px;
    }

    .cl-search {
        grid-template-columns: 1fr 1.15fr;
    }

        .cl-search > .cl-btn {
            grid-column: 1 / -1;
            width: 100%;
            margin-top: 0;
        }

    .cl-service-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991px) {
    .cl-hero {
        min-height: auto;
        padding: 64px 0 58px;
    }

        .cl-hero::before {
            background-position: 67% center;
        }

        .cl-hero::after {
            background: linear-gradient(90deg, rgba(248, 252, 249, .995) 0%, rgba(248, 252, 249, .97) 42%, rgba(248, 252, 249, .83) 64%, rgba(2, 44, 39, .34) 100%), linear-gradient(180deg, rgba(255, 255, 255, .06), rgba(2, 44, 39, .18));
        }

    .cl-hero__grid {
        grid-template-columns: 1fr;
    }

        .cl-hero__grid > div:first-child {
            max-width: 780px;
        }

    .cl-hero h1 {
        max-width: 760px;
    }

    .cl-hero__panel {
        max-width: 620px;
    }

    .cl-impact-strip__grid {
        grid-template-columns: 1fr;
        gap: 18px;
        padding-top: 25px;
        padding-bottom: 25px;
    }

        .cl-impact-strip__grid > i {
            display: none;
        }

        .cl-impact-strip__grid > div {
            padding-left: 18px;
            border-left: 3px solid var(--cl-gold);
        }

    .cl-service-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .cl-provider-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    .cl-hero {
        padding: 52px 0 46px;
    }

        .cl-hero::before {
            background-position: 70% center;
        }

        .cl-hero::after {
            background: linear-gradient(180deg, rgba(248, 252, 249, .98) 0%, rgba(248, 252, 249, .97) 46%, rgba(248, 252, 249, .88) 72%, rgba(2, 44, 39, .5) 100%);
        }

        .cl-hero h1 {
            font-size: clamp(3rem, 14vw, 4.65rem);
            line-height: .92;
        }

    .cl-hero__lead {
        font-size: .98rem;
        line-height: 1.6;
    }

    .cl-search {
        grid-template-columns: 1fr;
        padding: 10px;
        border-radius: 19px;
    }

        .cl-search > .cl-btn {
            grid-column: auto;
            margin-top: 0;
        }

    .cl-trust-row {
        gap: 10px 14px;
    }

    .cl-hero__panel {
        padding: 17px;
        border-radius: 21px;
    }

    .cl-section {
        padding: 58px 0;
    }

    .cl-section-heading--row {
        align-items: flex-start;
        flex-direction: column;
    }

    .cl-section-heading h2,
    .cl-story-card h2 {
        font-size: clamp(2.25rem, 10vw, 3.4rem);
    }

    .cl-service-grid,
    .cl-provider-grid,
    .cl-story-grid {
        grid-template-columns: 1fr;
    }

    .cl-service-card {
        min-height: 205px;
    }

    .cl-story-card {
        min-height: 340px;
    }
}

@media (max-width: 480px) {
    .cl-hero {
        padding-top: 43px;
    }

        .cl-hero h1 {
            font-size: clamp(2.65rem, 13.5vw, 3.65rem);
        }

    .cl-eyebrow {
        font-size: .66rem;
        letter-spacing: .105em;
    }

    .cl-location-chips {
        gap: 7px;
    }

        .cl-location-chips a {
            padding: 6px 10px;
            font-size: .75rem;
        }

    .cl-trust-row {
        display: grid;
        grid-template-columns: 1fr 1fr;
        font-size: .74rem;
    }

    .cl-audience-card {
        grid-template-columns: 42px minmax(0, 1fr) auto;
        padding: 9px 10px;
    }

    .cl-story-card {
        padding: 28px 24px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .cl-page *,
    .cl-page *::before,
    .cl-page *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }

    .cl-reveal {
        opacity: 1;
        transform: none;
    }
}
/* =========================================================
   LAUNDRY PORTAL, ONBOARDING AND MARKETPLACE V2
   Shared treatment for provider, business and customer screens.
   ========================================================= */
.cl-form-page,.cfo-page,.cl-search-results-hero+.cl-section{color:var(--cl-ink);background:linear-gradient(180deg,#f4faf7 0,#f7f9fa 420px)}
.cl-form-page,.cfo-page{min-height:72vh;padding:clamp(35px,5vw,70px) 0}
.cl-form-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px;align-items:start}
.cl-form-shell,.cfo-card,.cl-business-welcome,.cl-empty-state{border:1px solid var(--cl-line);border-radius:22px;background:#fff;box-shadow:0 18px 55px rgba(2,55,47,.08)}
.cl-form-shell{overflow:hidden}.cl-form-header{padding:30px;background:linear-gradient(135deg,#eaf8f2,#fff9e4)}.cl-form-header h1{margin:7px 0 8px;font-size:clamp(2.1rem,4vw,3.7rem);line-height:.98;letter-spacing:-.05em;font-weight:950}.cl-form-header p{max-width:800px;margin:0;color:var(--cl-muted)}
.cl-form-shell>form{padding:0 30px 30px}.cl-form-section{padding:30px 0;border-bottom:1px solid var(--cl-line)}.cl-form-section__heading{display:flex;gap:14px;align-items:flex-start;margin-bottom:20px}.cl-form-section__heading>span{width:36px;height:36px;display:grid;place-items:center;flex:0 0 auto;border-radius:11px;color:#fff;background:var(--cl-green);font-weight:950}.cl-form-section__heading h2{margin:0;color:var(--cl-ink);font-size:1.35rem;font-weight:950}.cl-form-section__heading p{margin:4px 0 0;color:var(--cl-muted);font-size:.8rem}.cl-form-section .form-label{color:var(--cl-ink);font-size:.75rem;font-weight:850}.cl-form-section .form-control,.cl-form-section .form-select,.cl-partner-form-shell .form-control,.cl-partner-form-shell .form-select{min-height:49px;border-color:#d6e3df;border-radius:12px;background:#fbfdfc}.cl-form-section textarea.form-control{min-height:105px}.cl-form-section .form-control:focus,.cl-form-section .form-select:focus,.cl-partner-form-shell .form-control:focus,.cl-partner-form-shell .form-select:focus{border-color:var(--cl-green);box-shadow:0 0 0 4px rgba(7,151,104,.1);background:#fff}
.cl-form-aside{position:sticky;top:105px;padding:25px;border-radius:22px;color:#fff;background:linear-gradient(160deg,#063f38,#052e2a);box-shadow:0 20px 55px rgba(2,55,47,.2)}.cl-form-aside h2{margin:8px 0 20px;font-weight:950}.cl-step-list{display:grid;gap:4px;margin:0;padding:0;list-style:none}.cl-step-list li{display:grid;grid-template-columns:34px 1fr;gap:11px;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.1)}.cl-step-list li>span{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;color:var(--cl-green-dark);background:var(--cl-gold);font-weight:950}.cl-step-list strong{display:block}.cl-step-list p{margin:3px 0 0;color:rgba(255,255,255,.65);font-size:.72rem}
.cl-toggle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cl-toggle-grid>label,.cl-consent{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid var(--cl-line);border-radius:14px;background:#f8fbfa;cursor:pointer}.cl-toggle-grid input,.cl-chip-checks input,.cl-partner-type input{margin-top:3px;accent-color:var(--cl-green)}.cl-toggle-grid strong,.cl-toggle-grid small{display:block}.cl-toggle-grid small{margin-top:3px;color:var(--cl-muted);font-size:.7rem}.cl-toggle-grid label:has(input:checked),.cl-chip-checks label:has(input:checked),.cl-partner-type label:has(input:checked){border-color:rgba(7,151,104,.5);background:#eaf8f2}.cl-chip-checks{display:flex;flex-wrap:wrap;gap:9px}.cl-chip-checks label{display:flex;gap:8px;align-items:center;padding:10px 13px;border:1px solid var(--cl-line);border-radius:999px;background:#f8fbfa;font-size:.76rem;font-weight:850;cursor:pointer}
.cl-provider-service-editor{display:grid;gap:12px}.cl-provider-service-editor article{padding:18px;border:1px solid var(--cl-line);border-radius:16px;background:#fbfdfc}.cl-provider-service-editor__top{margin-bottom:14px}.cl-provider-service-editor__top label{display:flex;gap:10px;align-items:flex-start}.cl-provider-service-editor__top strong,.cl-provider-service-editor__top small{display:block}.cl-provider-service-editor__top small{color:var(--cl-muted)}.cl-inline-checks{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;font-size:.75rem}.cl-form-actions{position:sticky;z-index:4;bottom:10px;padding-top:18px}.cl-btn--wide{width:100%}
.cfo-heading{margin-bottom:24px;padding:28px;border-radius:22px;color:#fff;background:linear-gradient(135deg,#063f38,#087a65);box-shadow:0 18px 55px rgba(2,55,47,.15)}.cfo-heading--split{display:flex;justify-content:space-between;gap:20px;align-items:center}.cfo-heading span{color:var(--cl-gold);font-size:.7rem;font-weight:950;letter-spacing:.1em;text-transform:uppercase}.cfo-heading h1{margin:5px 0;font-size:clamp(2rem,4vw,3.5rem);font-weight:950;letter-spacing:-.045em}.cfo-heading p{max-width:760px;margin:0;color:rgba(255,255,255,.72)}.cfo-heading .cl-btn--secondary{color:#fff;border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.08)}
.cfo-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:20px}.cfo-kpis article{position:relative;overflow:hidden;padding:19px;border:1px solid var(--cl-line);border-radius:17px;background:#fff;box-shadow:0 10px 30px rgba(2,55,47,.06)}.cfo-kpis article::before{position:absolute;inset:0 auto 0 0;width:4px;background:var(--cl-green);content:""}.cfo-kpis small,.cfo-kpis strong{display:block}.cfo-kpis small{color:var(--cl-muted);font-size:.7rem;font-weight:800}.cfo-kpis strong{margin-top:6px;color:var(--cl-ink);font-size:1.7rem}.cl-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr);gap:18px;align-items:start}.cfo-card{padding:22px}.cfo-card h2{font-size:1.1rem;font-weight:950}.cl-card-heading,.cl-results-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:17px}.cl-card-heading h2{margin:3px 0 0}.cl-empty-inline{display:grid;place-items:center;min-height:190px;padding:20px;border:1px dashed #cbdcd6;border-radius:15px;color:var(--cl-muted);background:#f8fbfa;text-align:center}.cl-empty-inline i{color:var(--cl-green);font-size:2rem}.cfo-summary{margin:0}.cfo-summary>div{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--cl-line)}.cfo-summary dt{color:var(--cl-muted);font-weight:600}.cfo-summary dd{margin:0;font-weight:900}.cl-badge-list{display:flex;flex-wrap:wrap;gap:8px}.cl-badge-list span{padding:8px 10px;border-radius:9px;color:#71817d;background:#edf2f0;font-size:.7rem;font-weight:850}.cl-badge-list span.is-positive{color:#076447;background:#def5eb}
.cl-business-welcome{position:relative;overflow:hidden;padding:clamp(30px,5vw,60px);background:linear-gradient(90deg,rgba(255,255,255,.98),rgba(255,255,255,.88)),url('/img/laundry/hero/hero_1.jpg') center/cover}.cl-business-welcome h1{max-width:900px;margin:10px 0;font-size:clamp(2.5rem,5vw,5rem);line-height:.95;letter-spacing:-.06em;font-weight:950}.cl-business-welcome>p{max-width:820px;color:var(--cl-muted);font-size:1rem}.cl-business-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin:25px 0}.cl-business-feature-grid>div{display:grid;grid-template-columns:42px 1fr;gap:4px 12px;padding:16px;border:1px solid var(--cl-line);border-radius:15px;background:rgba(255,255,255,.86)}.cl-business-feature-grid i{grid-row:span 2;width:42px;height:42px;display:grid;place-items:center;color:#fff;background:var(--cl-green);border-radius:11px}.cl-business-feature-grid strong,.cl-business-feature-grid span{display:block}.cl-business-feature-grid span{color:var(--cl-muted);font-size:.7rem}
.cl-partner-page{min-height:80vh;display:grid;grid-template-columns:minmax(0,.9fr) minmax(520px,1.1fr);background:#f5f8f7}.cl-partner-page__pitch{padding:clamp(35px,5vw,70px);color:#fff;background:radial-gradient(circle at 10% 10%,rgba(255,195,49,.16),transparent 25rem),linear-gradient(150deg,#063f38,#052e2a)}.cl-partner-page__pitch-inner{max-width:650px;margin-left:auto}.cl-partner-logo{display:flex;align-items:center;gap:10px;margin-bottom:40px;color:#fff;text-decoration:none}.cl-partner-logo strong,.cl-partner-logo small{display:block}.cl-partner-page__pitch h1{margin:10px 0 15px;font-size:clamp(2.8rem,5vw,5.5rem);line-height:.93;letter-spacing:-.06em;font-weight:950}.cl-partner-page__pitch>p,.cl-partner-page__pitch-inner>p{color:rgba(255,255,255,.72)}.cl-partner-benefits{display:grid;gap:8px;margin:25px 0}.cl-partner-benefits>div{display:flex;gap:11px;padding:13px;border:1px solid rgba(255,255,255,.1);border-radius:13px;background:rgba(255,255,255,.06)}.cl-partner-benefits i{color:var(--cl-gold)}.cl-partner-benefits strong,.cl-partner-benefits small{display:block}.cl-partner-benefits small{color:rgba(255,255,255,.62);font-size:.7rem}.cl-partner-how h2{font-weight:950}.cl-partner-how ol{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:0;list-style:none}.cl-partner-how li{display:flex;gap:8px;padding:11px;border-radius:12px;background:rgba(255,255,255,.06)}.cl-partner-how li span{color:var(--cl-gold);font-weight:950}.cl-partner-how p{margin:0;color:rgba(255,255,255,.72);font-size:.72rem}.cl-aside-note{display:flex;gap:10px;margin-top:15px;padding:13px;border-radius:12px;color:#173d37;background:var(--cl-gold)}.cl-aside-note p{margin:0;font-size:.7rem}.cl-partner-page__form{display:grid;align-items:start;padding:clamp(35px,5vw,70px)}.cl-partner-form-shell{max-width:720px;width:100%;padding:30px;border:1px solid var(--cl-line);border-radius:22px;background:#fff;box-shadow:0 18px 55px rgba(2,55,47,.08)}.cl-partner-form-shell .cl-form-header{margin:-30px -30px 25px;border-radius:22px 22px 0 0}.cl-partner-type{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:18px}.cl-partner-type label{padding:13px;border:1px solid var(--cl-line);border-radius:12px;background:#f8fbfa;font-weight:850;cursor:pointer}
.cl-search-results-hero{padding:48px 0 80px;color:#fff;background:linear-gradient(135deg,#063f38,#087a65)}.cl-search-results-hero h1{margin:8px 0 24px;font-size:clamp(2.4rem,5vw,4.7rem);letter-spacing:-.055em;font-weight:950}.cl-search--results{max-width:100%;margin-top:0}.cl-search__options{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding-top:3px}.cl-search__options>label{display:flex;align-items:center;gap:7px;padding:8px 11px;border-radius:10px;color:var(--cl-ink);background:#eef5f2;font-size:.74rem;font-weight:800}.cl-search__options input{width:auto;min-height:auto}.cl-search__options select{min-height:auto;padding:0;background:transparent}.cl-search-results-hero+.cl-section{margin-top:-40px;padding-top:0}.cl-results-toolbar{padding:22px;border-radius:20px;background:#fff;box-shadow:0 15px 45px rgba(2,55,47,.08)}.cl-results-toolbar h2{margin:4px 0;font-weight:950}.cl-empty-state{display:grid;place-items:center;min-height:360px;padding:45px;text-align:center}.cl-empty-state__icon{width:70px;height:70px;display:grid;place-items:center;border-radius:20px;color:#fff;background:var(--cl-green);font-size:1.8rem}.cl-empty-state h3{margin:15px 0 5px;font-size:1.5rem;font-weight:950}.cl-empty-state p{max-width:560px;color:var(--cl-muted)}
@media(max-width:991px){.cl-form-layout,.cl-dashboard-grid{grid-template-columns:1fr}.cl-form-aside{position:static}.cfo-kpis{grid-template-columns:repeat(3,1fr)}.cl-business-feature-grid{grid-template-columns:repeat(2,1fr)}.cl-partner-page{grid-template-columns:1fr}.cl-partner-page__pitch-inner{max-width:none;margin:0}}
@media(max-width:767px){.cl-form-page,.cfo-page{padding:25px 0}.cl-form-shell>form{padding:0 18px 20px}.cl-form-header{padding:24px 18px}.cl-form-section__heading{align-items:center}.cl-toggle-grid,.cl-business-feature-grid,.cl-partner-type{grid-template-columns:1fr}.cfo-heading--split,.cl-results-toolbar{align-items:flex-start;flex-direction:column}.cfo-kpis{grid-template-columns:1fr 1fr}.cl-partner-page__pitch,.cl-partner-page__form{padding:30px 18px}.cl-partner-how ol{grid-template-columns:1fr}.cl-partner-form-shell{padding:22px}.cl-partner-form-shell .cl-form-header{margin:-22px -22px 22px}.cl-search-results-hero{padding:35px 0 65px}}
