.latts-cleaning {
    --latts-blue: #1769aa;
    --latts-blue-dark: #124f83;
    --latts-green: #16835d;
    --latts-ink: #172b3d;
    --latts-muted: #5c6f7f;
    --latts-line: #dce7ee;
    --latts-soft: #f2f7fa;
    --latts-radius: 18px;
    color: var(--latts-ink);
    background: #f5f8fa;
}

.latts-cleaning :focus-visible {
    outline: 3px solid rgba(23, 105, 170, .45);
    outline-offset: 2px;
}

.latts-cleaning a {
    color: var(--latts-blue-dark);
}

.latts-cleaning .btn,
.latts-cleaning button,
.latts-cleaning .form-control,
.latts-cleaning .form-select {
    min-height: 44px;
}

.latts-cleaning .btn-primary,
.latts-cleaning .btn-brand {
    background: var(--latts-blue);
    border-color: var(--latts-blue);
    color: #fff;
}

.latts-cleaning .btn-primary:hover,
.latts-cleaning .btn-brand:hover {
    background: var(--latts-blue-dark);
    border-color: var(--latts-blue-dark);
    color: #fff;
}

.latts-cleaning-home {
    background: #f5f8fa;
}

.latts-cleaning-home .supporting-shell,
.latts-cleaning-home .supporting-card,
.latts-cleaning-home .supporting-service-card,
.latts-cleaning-home .supporting-trust-card,
.latts-cleaning-services .supporting-services-intro,
.latts-cleaning-services .supporting-services-quote,
.latts-cleaning-services .supporting-service-category,
.latts-cleaning-services .supporting-service-card,
.latts-cleaning-services .supporting-services-cta {
    border: 1px solid var(--latts-line);
    border-radius: var(--latts-radius);
    box-shadow: 0 12px 32px rgba(23, 54, 75, .08);
    background-color: #fff;
}

.latts-cleaning-home .supporting-section,
.latts-cleaning-services .supporting-services-section {
    padding-top: clamp(2rem, 5vw, 4rem);
    padding-bottom: clamp(2rem, 5vw, 4rem);
}

.latts-cleaning-home .supporting-primary,
.latts-cleaning-services .supporting-services-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: .75rem 1.25rem;
    border: 0;
    border-radius: 12px;
    background: var(--latts-blue);
    color: #fff;
    font-weight: 750;
    text-decoration: none;
}

.latts-cleaning-home .supporting-primary:hover,
.latts-cleaning-services .supporting-services-action:hover {
    background: var(--latts-blue-dark);
    color: #fff;
}

.latts-cleaning-home .supporting-secondary {
    color: var(--latts-blue-dark);
}

.latts-cleaning-home .supporting-trust-card,
.latts-cleaning-home .supporting-list-item,
.latts-cleaning-services .supporting-support-card {
    border-radius: 14px;
}

.latts-cleaning-services {
    background: #f5f8fa;
}

.latts-cleaning-services .supporting-services-hero {
    padding-top: clamp(2.5rem, 6vw, 5rem);
}

.latts-cleaning-services .supporting-services-kicker,
.latts-cleaning-services .supporting-service-badge {
    background: #e8f3fa;
    color: var(--latts-blue-dark);
}

.latts-cleaning-services .supporting-services-intro h1 {
    color: var(--latts-ink);
    line-height: 1.08;
}

.latts-cleaning-services .supporting-services-quote {
    background: #eaf5f0;
}

.latts-cleaning-services .supporting-services-band {
    border-radius: var(--latts-radius);
    background: var(--latts-blue-dark);
}

.latts-cleaning-services .supporting-services-band p {
    color: #e3edf4;
}

.latts-cleaning-booking {
    min-height: 100vh;
    padding-bottom: 3rem;
}

.latts-cleaning-booking .booking-header {
    padding: clamp(2rem, 5vw, 3.5rem) 0 1.75rem;
    background: linear-gradient(135deg, #eaf4fa, #f5f8fa 68%);
    border-bottom: 1px solid var(--latts-line);
}

.latts-cleaning-booking .booking-header h1 {
    color: var(--latts-ink);
    font-size: clamp(1.65rem, 3vw, 2.3rem);
    font-weight: 800;
}

.latts-cleaning-booking .booking-header p {
    color: var(--latts-muted) !important;
}

.latts-cleaning-booking .booking-section {
    padding: 1.5rem 0 3rem;
}

.latts-cleaning-booking .booking-section > .container {
    max-width: 1040px;
}

.latts-cleaning-booking .booking-form > .card,
.latts-cleaning-booking .booking-form > .card > .card-body {
    border: 0;
    border-radius: var(--latts-radius);
    background: transparent;
    box-shadow: none;
}

.latts-cleaning-booking .booking-form > .card > .card-body {
    padding: 0;
}

.latts-cleaning-booking .booking-section .row.g-4 > [class*="col-"] {
    padding: 1.15rem;
    border: 1px solid var(--latts-line);
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 6px 18px rgba(23, 54, 75, .045);
}

.latts-cleaning-booking .booking-section .row.g-4 > .col-12:has(.cleaning-step-heading),
.latts-cleaning-booking .booking-section .row.g-4 > .col-12:has(.cleaning-progress),
.latts-cleaning-booking .booking-section .row.g-4 > .col-12:has(.cleaning-dispatch) {
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.latts-cleaning-booking label,
.latts-cleaning-booking .form-label {
    color: var(--latts-ink);
    font-size: .94rem;
    font-weight: 700;
    margin-bottom: .45rem;
}

.latts-cleaning-booking .form-control,
.latts-cleaning-booking .form-select {
    border-color: #c8d7e1;
    border-radius: 10px;
    color: var(--latts-ink);
    padding: .65rem .8rem;
}

.latts-cleaning-booking .form-control:focus,
.latts-cleaning-booking .form-select:focus {
    border-color: var(--latts-blue);
    box-shadow: 0 0 0 .2rem rgba(23, 105, 170, .15);
}

.latts-cleaning-booking .cleaning-progress {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .65rem;
    margin-bottom: .5rem;
}

.latts-cleaning-booking .cleaning-progress-step {
    position: relative;
    display: flex;
    align-items: center;
    gap: .65rem;
    min-height: 54px;
    padding: .65rem .75rem;
    border: 1px solid var(--latts-line);
    border-radius: 12px;
    background: #fff;
    color: var(--latts-muted);
    font-size: .84rem;
    font-weight: 700;
}

.latts-cleaning-booking .cleaning-progress-step.is-active {
    border-color: var(--latts-blue);
    background: #edf6fb;
    color: var(--latts-blue-dark);
}

.latts-cleaning-booking .cleaning-progress-step.is-complete {
    border-color: #b8dfcf;
    color: #126c4b;
}

.latts-cleaning-booking .cleaning-progress-number {
    display: grid;
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 50%;
    background: #eaf0f4;
    color: inherit;
}

.latts-cleaning-booking .is-complete .cleaning-progress-number {
    background: #d9f1e6;
}

.latts-cleaning-booking .cleaning-step-heading {
    margin: 1.25rem 0 .15rem;
    color: var(--latts-blue-dark);
    font-size: 1.12rem;
    font-weight: 800;
}

.latts-cleaning-booking .cleaning-step-heading span {
    display: block;
    margin-top: .2rem;
    color: var(--latts-muted);
    font-size: .86rem;
    font-weight: 500;
}

.latts-cleaning-booking .cleaning-time-slots {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin: .65rem 0;
}

.latts-cleaning-booking .cleaning-time-slot {
    min-width: 82px;
    min-height: 44px;
    padding: .55rem .7rem;
    border: 1px solid #c8d7e1;
    border-radius: 10px;
    background: #fff;
    color: var(--latts-ink);
    font-weight: 700;
}

.latts-cleaning-booking .cleaning-time-slot[aria-pressed="true"] {
    border-color: var(--latts-blue);
    background: var(--latts-blue);
    color: #fff;
}

.latts-cleaning-booking .cleaning-time-slot:disabled {
    cursor: not-allowed;
    opacity: .45;
}

.latts-cleaning-booking .cleaning-sizing-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.latts-cleaning-booking .cleaning-sizing-tab {
    min-height: 44px;
    padding: .55rem .9rem;
    border: 1px solid #c8d7e1;
    border-radius: 10px;
    background: #fff;
    color: var(--latts-blue-dark);
    font-weight: 750;
}

.latts-cleaning-booking .cleaning-sizing-tab.is-selected {
    border-color: var(--latts-blue);
    background: #eaf4fa;
    color: var(--latts-blue-dark);
}

.latts-cleaning-booking .cleaning-sizing-help {
    padding-top: .5rem;
    color: var(--latts-muted);
    font-size: .85rem;
}

.latts-cleaning-booking .addon-option {
    height: 100%;
    border-color: var(--latts-line);
    border-radius: 12px;
    transition: border-color .15s ease, background-color .15s ease;
}

.latts-cleaning-booking .addon-option:has(input:checked) {
    border-color: var(--latts-green);
    background: #f0faf5;
}

.latts-cleaning-booking .cleaning-addon-heading {
    color: var(--latts-blue-dark);
}

.latts-cleaning-booking .cleaning-dispatch {
    padding: 1rem 1.1rem;
    border: 1px solid #b8dfcf;
    border-radius: 14px;
    background: #eff9f4;
    color: #164c3a;
}

.latts-cleaning-booking .cleaning-promo-quick {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: .6rem;
}

.latts-cleaning-booking .cleaning-promo-quick button {
    min-height: 44px;
    padding: .45rem .8rem;
    border: 1px solid #c8d7e1;
    border-radius: 999px;
    background: #f2f7fa;
    color: var(--latts-blue-dark);
    font-weight: 700;
}

.latts-cleaning-booking .cleaning-promo-message {
    min-height: 1.4rem;
    margin-top: .45rem;
    color: var(--latts-green);
    font-weight: 700;
}

.latts-cleaning-booking .booking-summary-box {
    position: sticky;
    top: 1rem;
    border: 1px solid #b9d7e7;
    border-radius: 15px;
    background: #f1f8fc;
    color: var(--latts-ink);
    padding: 1.1rem;
}

.latts-cleaning-booking .cleaning-trust-badges {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
}

.latts-cleaning-booking .cleaning-trust-badge {
    padding: .75rem;
    border: 1px solid var(--latts-line);
    border-radius: 12px;
    background: #fff;
    color: var(--latts-ink);
    font-size: .84rem;
    font-weight: 700;
}

.latts-cleaning-booking .cleaning-trust-badge i {
    margin-right: .4rem;
    color: var(--latts-green);
}

.latts-cleaning-booking .booking-form [type="submit"] {
    min-height: 52px;
    border-radius: 12px;
    font-weight: 800;
}

.latts-cleaning-shop {
    background: #f5f8fa;
}

.latts-cleaning-shop .shop-header {
    padding: clamp(2rem, 5vw, 4rem) 0 2rem;
    background: linear-gradient(135deg, #eaf4fa, #f5f8fa);
    border-bottom: 1px solid var(--latts-line);
}

.latts-cleaning-shop .shop-header h1 {
    color: var(--latts-ink) !important;
}

.latts-cleaning-shop .cleaning-shop-filters a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: .55rem 1rem;
    border-color: #c8d7e1;
    background: #fff;
    color: var(--latts-blue-dark);
    font-weight: 700;
}

.latts-cleaning-shop .cleaning-shop-filters a[aria-current="page"] {
    border-color: var(--latts-blue);
    background: var(--latts-blue);
    color: #fff;
}

.latts-cleaning-shop .cleaning-shop-search .btn {
    background: var(--latts-blue);
    border-color: var(--latts-blue);
    color: #fff;
}

.latts-cleaning-shop .product-card,
.latts-cleaning-shop .catalog-toolbar,
.latts-cleaning-shop .product-table-card {
    border-color: var(--latts-line);
    border-radius: var(--latts-radius);
    box-shadow: 0 8px 24px rgba(23, 54, 75, .07);
}

.latts-cleaning-shop .product-price {
    color: var(--latts-blue-dark);
}

.latts-cleaning-shop [role="status"] {
    padding: clamp(2rem, 6vw, 4rem);
    border: 1px solid var(--latts-line);
    border-radius: var(--latts-radius);
    background: #fff;
}

@media (max-width: 767.98px) {
    .latts-cleaning-booking .cleaning-progress {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .latts-cleaning-booking .cleaning-progress-step {
        min-height: 48px;
        padding: .5rem;
        font-size: .78rem;
    }

    .latts-cleaning-booking .cleaning-progress-number {
        flex-basis: 27px;
        width: 27px;
        height: 27px;
    }

    .latts-cleaning-booking .booking-summary-box {
        position: static;
    }
}

@media (max-width: 420px) {
    .latts-cleaning-booking .cleaning-progress {
        gap: .4rem;
    }

    .latts-cleaning-booking .cleaning-progress-step {
        gap: .4rem;
        font-size: .72rem;
    }

    .latts-cleaning-booking .cleaning-time-slot {
        flex: 1 1 calc(33.333% - .5rem);
        min-width: 0;
    }

    .latts-cleaning-booking .cleaning-trust-badges {
        grid-template-columns: 1fr;
    }
}
