    :root {
        --appliance-blue: #2446c0;
        --appliance-ink: #1f2530;
        --appliance-muted: #596273;
        --appliance-soft: #f2f5ff;
        --appliance-line: #dfe6ff;
        --appliance-star: #f2b600;
    }

    .appliance-page {
        background: #fff;
        color: var(--appliance-ink);
    }

    .appliance-section {
        padding: 64px 0;
    }

    .appliance-band {
        background: var(--appliance-soft);
    }

    .appliance-help-section {
        position: relative;
        overflow: hidden;
        background:
            radial-gradient(circle at 12% 18%, rgba(36,70,192,.08) 0 0.9px, transparent 1px) 0 0 / 18px 18px,
            linear-gradient(135deg, rgba(36,70,192,.06), transparent 32%),
            #fff;
        padding-top: 72px;
        padding-bottom: 76px;
    }

    .appliance-help-section::before,
    .appliance-help-section::after {
        content: "";
        position: absolute;
        pointer-events: none;
        border: 1px solid rgba(36,70,192,.16);
        transform: rotate(45deg);
    }

    .appliance-help-section::before {
        width: 190px;
        height: 190px;
        top: 42px;
        left: -72px;
        border-radius: 28px;
        background: rgba(36,70,192,.035);
    }

    .appliance-help-section::after {
        width: 260px;
        height: 260px;
        right: -104px;
        bottom: 34px;
        border-radius: 34px;
        background: rgba(36,70,192,.045);
    }

    .appliance-help-section .container {
        position: relative;
        z-index: 1;
    }

    .appliance-hero {
        position: relative;
        overflow: hidden;
        background:
            radial-gradient(circle at 12% 22%, rgba(36,70,192,.12) 0 0.9px, transparent 1px) 0 0 / 18px 18px,
            linear-gradient(135deg, #f7f9ff 0%, #edf3ff 56%, #ffffff 100%);
        border-bottom: 1px solid #dfe6ff;
    }

    .appliance-hero::before,
    .appliance-hero::after {
        content: "";
        position: absolute;
        pointer-events: none;
        border-radius: 34px;
        border: 1px solid rgba(36,70,192,.14);
        transform: rotate(45deg);
    }

    .appliance-hero::before {
        width: 240px;
        height: 240px;
        top: -120px;
        right: 13%;
        background: rgba(36,70,192,.05);
    }

    .appliance-hero::after {
        width: 170px;
        height: 170px;
        left: -88px;
        bottom: -74px;
        background: rgba(242,182,0,.08);
    }

    .appliance-hero .container {
        position: relative;
        z-index: 1;
    }

    .appliance-hero-grid {
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 44px 0 52px;
        text-align: center;
    }

    .appliance-hero-copy {
        max-width: 820px;
        color: var(--appliance-ink);
    }

    .appliance-hero-copy h1 {
        max-width: 820px;
        font-size: 54px;
        line-height: 1.06;
        font-weight: 800;
        margin-bottom: 18px;
        letter-spacing: 0;
        color: #172033;
    }

    .appliance-hero-copy p {
        font-size: 20px;
        line-height: 1.5;
        margin-bottom: 24px;
        color: #4b5568;
        max-width: 820px;
    }

    .appliance-hero-actions {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 12px;
        flex-wrap: wrap;
        margin-top: 4px;
    }

    .appliance-primary-btn,
    .appliance-outline-btn {
        min-height: 48px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 6px;
        padding: 12px 20px;
        font-weight: 700;
        text-decoration: none;
        transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
    }

    .appliance-primary-btn {
        background: var(--appliance-blue);
        color: #fff;
        border: 1px solid var(--appliance-blue);
        box-shadow: 0 12px 22px rgba(49, 71, 212, .20);
    }

    .appliance-primary-btn:hover,
    .appliance-outline-btn:hover {
        transform: translateY(-1px);
        text-decoration: none;
    }

    .appliance-primary-btn:hover {
        color: #fff;
    }

    .appliance-outline-btn {
        border: 1px solid #c7d2fe;
        color: var(--appliance-blue);
        background: #fff;
    }

    .appliance-outline-btn:hover {
        color: var(--appliance-blue);
        background: #f8faff;
    }

    .appliance-kicker {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 8px 12px;
        margin-bottom: 18px;
        border-radius: 6px;
        background: #e8eeff;
        color: var(--appliance-blue);
        font-weight: 700;
        font-size: 14px;
    }

    .appliance-section-head {
        text-align: center;
        max-width: 780px;
        margin: 0 auto 28px;
    }

    .appliance-section-head h2 {
        font-size: 30px;
        line-height: 1.2;
        font-weight: 800;
        margin-bottom: 8px;
        color: var(--appliance-ink);
    }

    .appliance-section-head p {
        font-size: 19px;
        line-height: 1.45;
        font-weight: 700;
        color: var(--appliance-ink);
        margin: 0;
    }

    .appliance-help-title {
        text-align: center;
        color: var(--appliance-ink);
        font-size: 32px;
        line-height: 1.2;
        font-weight: 800;
        margin: 0 0 10px;
    }

    .appliance-help-subtitle {
        max-width: 650px;
        margin: 0 auto 36px;
        color: var(--appliance-muted);
        font-size: 16px;
        line-height: 1.55;
        text-align: center;
    }

    .appliance-help-grid {
        position: relative;
        display: flex;
        flex-direction: column;
        gap: 18px;
        max-width: 1080px;
        margin: 0 auto;
    }

    .appliance-help-row {
        display: flex;
        justify-content: center;
        align-items: stretch;
        gap: 18px;
    }

    .appliance-help-card {
        flex: 0 1 220px;
        min-height: 154px;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 12px;
        padding: 22px 14px 18px;
        border-radius: 8px;
        border: 1px solid #e3e9ff;
        background: #fff;
        color: #111827;
        text-decoration: none;
        box-shadow: 0 14px 30px rgba(36, 70, 192, .09);
        transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease, background .15s ease;
    }

    .appliance-help-card:hover {
        color: #111827;
        border-color: #2446c0;
        background: #f8faff;
        box-shadow: 0 18px 34px rgba(36, 70, 192, .16);
        text-decoration: none;
        transform: translateY(-2px);
    }

    .appliance-help-icon {
        width: 78px;
        height: 78px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 16px;
        background: #eef3ff;
        padding: 10px;
        transition: background .15s ease, transform .15s ease;
    }

    .appliance-help-card:hover .appliance-help-icon {
        background: #e1e9ff;
        transform: scale(1.04);
    }

    .appliance-help-icon svg {
        width: 56px;
        height: 56px;
        display: block;
        stroke: #1f2937;
        fill: none;
        stroke-width: 2;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    .appliance-help-icon img {
        width: 56px;
        height: 56px;
        display: block;
        object-fit: contain;
    }

    .appliance-help-card span {
        display: block;
        color: #000;
        font-size: 15px;
        line-height: 1.2;
        font-weight: 800;
        text-align: center;
    }

    .appliance-help-cta {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 26px;
        margin-top: 2px;
        padding: 4px 10px;
        border-radius: 5px;
        background: rgba(36, 70, 192, .08);
        color: #2446c0;
        font-size: 12px;
        line-height: 1;
        font-weight: 800;
    }

    .appliance-provider-card,
    .appliance-review-card {
        background: #fff;
        border-radius: 8px;
        border: 1px solid #eef1fb;
        box-shadow: 0 12px 28px rgba(22, 37, 84, .05);
    }

    .appliance-provider-card {
        padding: 20px;
        min-height: 214px;
        display: flex;
        flex-direction: column;
        border-radius: 14px;
        transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
    }

    .appliance-provider-card:hover {
        transform: translateY(-3px);
        border-color: #d9e1ff;
        box-shadow: 0 18px 36px rgba(22, 37, 84, .12);
    }

    .appliance-provider-slider {
        padding: 0 4px 44px;
    }

    .appliance-provider-slider .swiper-slide {
        height: auto;
    }

    .appliance-provider-slider .appliance-provider-card {
        height: 100%;
    }

    .appliance-provider-head {
        display: grid;
        grid-template-columns: 68px minmax(0, 1fr);
        gap: 14px;
        align-items: center;
    }

    .appliance-provider-head img,
    .appliance-review-avatar img,
    .appliance-review-avatar-fallback {
        width: 68px;
        height: 68px;
        border-radius: 12px;
        object-fit: cover;
        background: #e9edf5;
    }

    /* Ring keeps the photo feeling deliberate even when it is a fallback. */
    .appliance-provider-head img {
        width: 66px;
        height: 66px;
        border-radius: 14px;
        box-shadow: 0 0 0 3px #f2f5ff;
    }

    .appliance-provider-name {
        margin: 0 0 5px;
        font-size: 17.5px;
        font-weight: 800;
        color: var(--appliance-ink);
    }

    /* Tinted chip rather than a solid blue block: the badge is context, not the
       loudest thing on the card. */
    .appliance-skill {
        display: inline-block;
        max-width: 100%;
        padding: 3px 10px;
        border-radius: 999px;
        background: #eaf0ff;
        border: 1px solid #dbe4ff;
        color: var(--appliance-blue);
        font-size: 11px;
        font-weight: 800;
        letter-spacing: .01em;
        line-height: 17px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .appliance-rating {
        margin-top: 7px;
        color: var(--appliance-muted);
        font-size: 13.5px;
        font-weight: 600;
    }

    .appliance-rating strong {
        color: var(--appliance-ink);
        font-weight: 800;
    }

    .appliance-rating span {
        color: var(--appliance-star);
        font-weight: 800;
    }

    .appliance-rating .appliance-rating-count {
        color: var(--appliance-muted);
        font-weight: 600;
    }

    /* Job count from the profile modal's summary. Rating and review count stay on
       the star line above rather than being repeated here. Hairline above it
       separates the identity block from the numbers. */
    .appliance-provider-stats {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        margin: 16px 0 18px;
        padding-top: 16px;
        border-top: 1px solid #eef1fb;
    }

    .appliance-provider-stat {
        display: inline-flex;
        align-items: center;
        gap: 9px;
        padding: 9px 14px 9px 11px;
        border-radius: 10px;
        background: var(--appliance-soft);
    }

    .appliance-provider-stat-icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 26px;
        height: 26px;
        border-radius: 8px;
        background: #fff;
        color: var(--appliance-blue);
        box-shadow: 0 1px 2px rgba(22, 37, 84, .08);
    }

    .appliance-provider-stat-icon svg {
        width: 15px;
        height: 15px;
        fill: none;
        stroke: currentColor;
        stroke-width: 1.9;
        stroke-linecap: round;
        stroke-linejoin: round;
    }

    .appliance-provider-stat strong {
        font-size: 17px;
        line-height: 1.15;
        font-weight: 800;
        color: var(--appliance-ink);
    }

    .appliance-provider-stat-label {
        font-size: 12px;
        line-height: 1.25;
        font-weight: 700;
        color: var(--appliance-muted);
    }

    /* Filled button: the card's one clear action. */
    .appliance-card-btn {
        width: 100%;
        min-height: 42px;
        margin-top: auto;
        border: 1px solid var(--appliance-blue);
        background: var(--appliance-blue);
        color: #fff;
        border-radius: 8px;
        font-size: 14.5px;
        font-weight: 800;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        text-decoration: none;
        box-shadow: 0 8px 18px rgba(36, 70, 192, .18);
        transition: background .15s ease, box-shadow .15s ease;
    }

    .appliance-card-btn:hover,
    .appliance-card-btn:focus-visible {
        background: #1c37a0;
        border-color: #1c37a0;
        color: #fff;
        box-shadow: 0 10px 22px rgba(36, 70, 192, .26);
        text-decoration: none;
    }

    .appliance-review-card {
        min-height: 148px;
        padding: 0 16px 20px;
        margin-top: 34px;
    }

    .appliance-review-slider {
        padding: 0 4px 42px;
    }

    .appliance-review-slider .swiper-slide {
        height: auto;
    }

    .appliance-review-slider .appliance-review-card {
        height: calc(100% - 34px);
    }

    .appliance-provider-controls,
    .appliance-review-controls {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 14px;
        margin-top: 4px;
    }

    .appliance-provider-button-prev,
    .appliance-provider-button-next,
    .appliance-review-button-prev,
    .appliance-review-button-next {
        width: 38px;
        height: 38px;
        border-radius: 50%;
        border: 1px solid #dfe6ff;
        background: #fff;
        color: var(--appliance-blue);
        display: inline-flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        font-size: 20px;
        line-height: 1;
        box-shadow: 0 8px 18px rgba(22, 37, 84, .08);
    }

    .appliance-provider-pagination,
    .appliance-review-pagination {
        position: static;
        width: auto !important;
        display: flex;
        align-items: center;
        gap: 6px;
    }

    .appliance-provider-pagination .swiper-pagination-bullet,
    .appliance-review-pagination .swiper-pagination-bullet {
        background: #b5bfd4;
        opacity: 1;
    }

    .appliance-provider-pagination .swiper-pagination-bullet-active,
    .appliance-review-pagination .swiper-pagination-bullet-active {
        background: var(--appliance-blue);
    }

    .appliance-review-head {
        display: grid;
        grid-template-columns: 78px minmax(0, 1fr);
        gap: 10px;
        align-items: end;
        margin-top: -25px;
        margin-bottom: 18px;
    }

    .appliance-review-avatar img,
    .appliance-review-avatar-fallback {
        width: 76px;
        height: 76px;
        border-radius: 50%;
        border: 8px solid #c7c9cd;
    }

    .appliance-review-avatar-fallback {
        display: flex;
        align-items: center;
        justify-content: center;
        background: #9aa2b3;
        color: #fff;
        font-size: 26px;
        font-weight: 800;
    }

    .appliance-review-stars {
        color: #ffd000;
        font-size: 15px;
        line-height: 1;
        letter-spacing: 1px;
    }

    .appliance-review-name {
        margin: 4px 0 0;
        font-size: 12px;
        font-weight: 700;
    }

    .appliance-review-service {
        margin: 0;
        color: var(--appliance-blue);
        font-size: 12px;
        font-weight: 800;
    }

    .appliance-review-card p.appliance-review-copy {
        color: var(--appliance-ink);
        line-height: 1.55;
        margin: 0;
    }

    .appliance-empty {
        grid-column: 1 / -1;
        padding: 22px;
        border-radius: 8px;
        background: #fff;
        border: 1px dashed var(--appliance-line);
        color: var(--appliance-muted);
        text-align: center;
    }

    @media (max-width: 991px) {
        .appliance-hero-grid {
            padding: 40px 0 48px;
        }

        .appliance-hero-copy h1 {
            font-size: 42px;
        }

        .appliance-help-grid {
            max-width: 720px;
        }

        .appliance-help-row {
            flex-wrap: wrap;
        }
    }

    @media (max-width: 575px) {
        .appliance-section {
            padding: 52px 0;
        }

        .appliance-help-section {
            padding-top: 44px;
            padding-bottom: 44px;
        }

        .appliance-help-section::before {
            width: 130px;
            height: 130px;
            left: -74px;
            top: 26px;
        }

        .appliance-help-section::after {
            width: 150px;
            height: 150px;
            right: -84px;
            bottom: 24px;
        }

        .appliance-help-title {
            font-size: 26px;
            margin-bottom: 8px;
        }

        .appliance-help-subtitle {
            margin-bottom: 24px;
            font-size: 14px;
        }

        .appliance-hero-copy h1 {
            font-size: 34px;
        }

        .appliance-hero-copy p {
            font-size: 17px;
        }

        .appliance-hero-grid {
            padding: 32px 0 38px;
        }

        .appliance-hero-actions,
        .appliance-primary-btn,
        .appliance-outline-btn {
            width: 100%;
        }

        .appliance-help-grid {
            gap: 12px;
        }

        .appliance-help-row {
            gap: 12px;
        }

        .appliance-help-card {
            min-height: 132px;
            padding: 16px 10px;
        }

        .appliance-help-card span {
            font-size: 13px;
        }

        .appliance-help-icon,
        .appliance-help-icon svg,
        .appliance-help-icon img {
            width: 54px;
            height: 54px;
        }

        .appliance-help-icon {
            padding: 6px;
        }

        .appliance-help-icon svg,
        .appliance-help-icon img {
            width: 42px;
            height: 42px;
        }
    }

/* ------------------------------------------------------------------ */
/* Hero booking widget, trust bar and sticky CTA                       */
/* ------------------------------------------------------------------ */

.appliance-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.appliance-quote-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr) auto;
    gap: 12px;
    align-items: end;
    max-width: 900px;
    margin: 26px 0 18px;
    padding: 16px;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(16, 24, 40, .16);
}

.appliance-quote-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

/* Anchors the Places suggestion list to the address field. */
.appliance-quote-field--address {
    position: relative;
}

.appliance-quote-suggestions {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 30;
    margin-top: 4px;
    max-height: 240px;
    overflow-y: auto;
    border: 1px solid #d8dee8;
    border-radius: 7px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(16, 24, 40, .16);
}

.appliance-quote-suggestions.is-active {
    display: block;
}

.appliance-quote-suggestion {
    display: block;
    width: 100%;
    padding: 10px 12px;
    border: 0;
    background: none;
    color: #344054;
    font-size: 14px;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
}

.appliance-quote-suggestion:hover,
.appliance-quote-suggestion:focus-visible {
    background: #f6f8fc;
    color: var(--appliance-blue);
}

.appliance-quote-field label {
    margin: 0;
    color: #475467;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.appliance-quote-field select,
.appliance-quote-field input {
    width: 100%;
    height: 46px;
    padding: 0 12px;
    border: 1px solid #d8dee8;
    border-radius: 7px;
    background: #fff;
    color: #101828;
    font-size: 15px;
    font-weight: 600;
    /* The hero is a centred layout, so the field text lines up with the
       centred labels above it. text-align-last covers the select, whose
       closed-state text ignores text-align in some browsers. */
    text-align: center;
    text-align-last: center;
}

.appliance-quote-field input::placeholder {
    text-align: center;
}

.appliance-quote-field select:focus,
.appliance-quote-field input:focus {
    outline: 2px solid var(--appliance-blue);
    outline-offset: 1px;
    border-color: var(--appliance-blue);
}

.appliance-quote-submit {
    height: 46px;
    white-space: nowrap;
}

/* Sits on the light hero, not the dark one this was first written for. */
.appliance-hero-or {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    max-width: 320px;
    color: var(--appliance-muted);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.appliance-hero-or::before,
.appliance-hero-or::after {
    content: "";
    flex: 1 1 auto;
    height: 1px;
    background: #c5d0e8;
}

.appliance-sticky-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9990;
    display: none;
    gap: 10px;
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
    background: #fff;
    box-shadow: 0 -6px 20px rgba(16, 24, 40, .16);
}

.appliance-sticky-bar.is-visible {
    display: flex;
}

.appliance-sticky-call,
.appliance-sticky-book {
    flex: 1 1 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    border-radius: 7px;
    font-size: 15px;
    font-weight: 800;
    text-decoration: none;
}

.appliance-sticky-call {
    border: 1px solid var(--appliance-blue);
    background: #fff;
    color: var(--appliance-blue);
}

.appliance-sticky-book {
    background: var(--appliance-blue);
    color: #fff;
}

.appliance-sticky-call:hover,
.appliance-sticky-book:hover {
    text-decoration: none;
}

.appliance-sticky-call:hover {
    color: var(--appliance-blue);
}

.appliance-sticky-book:hover {
    color: #fff;
}

/* ------------------------------------------------------------------ */
/* Service card: separate "view details" and "book" targets            */
/* ------------------------------------------------------------------ */

/* Width is derived from the widest row (5 cards) rather than set as a flex
   basis, so the 4-card row and the 5-card row render identically sized cards —
   each row is the same width, so the percentage resolves the same in both. */
.appliance-help-cell {
    flex: 0 0 auto;
    width: min(210px, calc((100% - 72px) / 5));
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.appliance-help-cell .appliance-help-card {
    flex: 1 1 auto;
}

.appliance-help-book {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 8px 10px;
    border-radius: 6px;
    background: var(--appliance-blue);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
}

.appliance-help-book:hover,
.appliance-help-book:focus {
    background: #1b37a0;
    color: #fff;
    text-decoration: none;
}

/* ------------------------------------------------------------------ */
/* Provider rating states                                              */
/* ------------------------------------------------------------------ */

.appliance-rating-count {
    color: var(--appliance-muted);
    font-size: 13px;
    font-weight: 600;
}

.appliance-rating--new {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.appliance-new-badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 8px;
    border-radius: 999px;
    background: #eef3ff;
    color: var(--appliance-blue);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.3;
}

.appliance-rating-summary {
    margin-top: 8px;
}

.appliance-rating-summary strong {
    color: var(--appliance-ink);
}

.appliance-rating-summary strong span {
    color: var(--appliance-star);
}

.appliance-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    width: 100%;
    padding: 32px 20px;
    text-align: center;
    color: var(--appliance-muted);
}

.appliance-empty p {
    margin: 0;
}

/* ------------------------------------------------------------------ */
/* Reviews: verification and dates                                     */
/* ------------------------------------------------------------------ */

.appliance-review-verified {
    display: inline-flex;
    align-items: center;
    margin-left: 6px;
    padding: 2px 7px;
    border-radius: 999px;
    background: #e9f7ef;
    color: #17663a;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .01em;
    vertical-align: middle;
}

.appliance-review-date {
    color: var(--appliance-muted);
    font-weight: 600;
}

/* ------------------------------------------------------------------ */
/* Partners                                                            */
/* ------------------------------------------------------------------ */

/* Plain logo wall: no cards or borders, the logos themselves carry the
   section. Partner artwork comes in every shape, so each one is contained
   inside an equal-sized cell rather than cropped. */
.appliance-partners-head {
    margin-bottom: 44px;
}

.appliance-partners-head h2 {
    margin-bottom: 14px;
}

/* Short accent rule under the heading. */
.appliance-partners-head h2::after {
    content: "";
    display: block;
    width: 56px;
    height: 3px;
    margin: 14px auto 0;
    border-radius: 2px;
    background: var(--appliance-blue);
}

.appliance-partners-head p {
    font-size: 17px;
    font-weight: 600;
    color: var(--appliance-muted);
}

/* Fixed-width columns + centred tracks: with 1 or 2 partners the row centres
   instead of leaving the logo stranded in the first column. Three fit per row
   inside the 900px cap, so the fourth wraps. */
.appliance-partner-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, 220px);
    justify-content: center;
    gap: 52px 40px;
    max-width: 900px;
    margin: 0 auto;
    align-items: center;
}

.appliance-partner-card {
    display: flex;
    align-items: center;
    justify-content: center;
    /* Equal cell height keeps a tall logo from pushing its row out of line. */
    height: 78px;
    padding: 0 8px;
    text-decoration: none;
    transition: transform .18s ease, opacity .18s ease;
}

.appliance-partner-card:hover,
.appliance-partner-card:focus-visible {
    transform: translateY(-2px);
    opacity: .82;
    text-decoration: none;
}

.appliance-partner-card:focus-visible {
    outline: 2px solid var(--appliance-blue);
    outline-offset: 6px;
    border-radius: 4px;
}

.appliance-partner-card img {
    /* Absolute caps, not percentages: a percentage max-height is dropped when
       the ancestor chain has no definite height, and tall artwork then renders
       at natural size and spills out of the row. */
    max-width: 100%;
    max-height: 78px;
    width: auto;
    height: auto;
    object-fit: contain;
}

.appliance-partner-cta {
    margin-top: 48px;
    text-align: center;
}

@media (max-width: 767px) {
    .appliance-partners-head {
        margin-bottom: 32px;
    }

    .appliance-partner-grid {
        grid-template-columns: repeat(auto-fit, 132px);
        gap: 30px 20px;
    }

    .appliance-partner-card {
        height: 62px;
    }

    .appliance-partner-card img {
        max-height: 62px;
    }

    .appliance-partner-cta {
        margin-top: 34px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .appliance-provider-card,
    .appliance-partner-card {
        transition: none;
    }

    .appliance-provider-card:hover {
        transform: none;
    }

    .appliance-partner-card:hover,
    .appliance-partner-card:focus-visible {
        transform: none;
    }
}

/* ------------------------------------------------------------------ */
/* Brands                                                              */
/* ------------------------------------------------------------------ */

.appliance-brand-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.appliance-brand-list li {
    padding: 9px 16px;
    border: 1px solid var(--appliance-line);
    border-radius: 999px;
    background: #fff;
    color: var(--appliance-ink);
    font-size: 14px;
    font-weight: 700;
}

/* ------------------------------------------------------------------ */
/* Service areas                                                       */
/* ------------------------------------------------------------------ */

.appliance-area-map {
    /* Matches the area cards below so the whole section reads as one block. */
    max-width: 1180px;
    margin: 0 auto 26px;
    padding: 14px;
    border: 1px solid var(--appliance-line);
    border-radius: 12px;
    background: #fff;
}

.appliance-map-canvas {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 420px;
    border-radius: 10px;
    background: var(--appliance-soft);
    overflow: hidden;
}

.appliance-map-loading {
    color: var(--appliance-muted);
    font-size: 14px;
    text-align: center;
    padding: 0 16px;
}

/* Google's info window: keep its type in the page's voice. */
.appliance-map-info {
    display: block;
    padding: 2px 4px;
    min-width: 170px;
}

.appliance-map-info strong {
    display: block;
    color: var(--appliance-ink);
    font-size: 14px;
    font-weight: 800;
}

.appliance-map-info span {
    display: block;
    margin-top: 2px;
    color: var(--appliance-muted);
    font-size: 12px;
}

.appliance-map-hint {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 14px 0 2px;
    color: var(--appliance-muted);
    font-size: 13px;
    font-weight: 600;
    text-align: center;
}

/* Same dark blue as PIN_COLOR in the coverage-map script. */
.appliance-map-swatch {
    flex: none;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: #101f6e;
}

/* Area names double as map controls once the map is live (class added by JS). */
.appliance-area-link {
    cursor: pointer;
    color: var(--appliance-blue) !important;
    text-decoration: underline;
    text-decoration-color: rgba(36, 70, 192, 0.3);
    text-underline-offset: 3px;
}

.appliance-area-link:hover,
.appliance-area-link:focus-visible {
    text-decoration-color: var(--appliance-blue);
    outline: none;
}

@media (max-width: 640px) {
    .appliance-map-canvas {
        height: 320px;
    }
}

.appliance-area-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 18px;
    max-width: 1180px;
    margin: 0 auto;
}

.appliance-area-card {
    padding: 22px;
    border: 1px solid var(--appliance-line);
    border-radius: 10px;
    background: #fff;
}

.appliance-area-card h3 {
    margin: 0 0 12px;
    color: var(--appliance-ink);
    font-size: 17px;
    font-weight: 800;
}

.appliance-area-card ul {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.appliance-area-card li {
    color: var(--appliance-muted);
    font-size: 14px;
}

.appliance-area-card li:not(:last-child)::after {
    content: '·';
    margin-left: 8px;
    color: #c6cede;
}

.appliance-area-note {
    max-width: 1180px;
    margin: 18px auto 0;
    color: var(--appliance-muted);
    font-size: 14px;
    text-align: center;
}

/* ------------------------------------------------------------------ */
/* FAQ                                                                 */
/* ------------------------------------------------------------------ */

.appliance-faq-list {
    max-width: 820px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.appliance-faq-item {
    border: 1px solid var(--appliance-line);
    border-radius: 10px;
    background: #fff;
    overflow: hidden;
}

.appliance-faq-item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px;
    color: var(--appliance-ink);
    font-size: 16px;
    font-weight: 800;
    line-height: 1.4;
    cursor: pointer;
    list-style: none;
}

.appliance-faq-item summary::-webkit-details-marker {
    display: none;
}

.appliance-faq-item summary::after {
    content: '+';
    flex: 0 0 auto;
    color: var(--appliance-blue);
    font-size: 22px;
    font-weight: 700;
    line-height: 1;
}

.appliance-faq-item[open] summary::after {
    content: '−';
}

.appliance-faq-item summary:focus-visible {
    outline: 2px solid var(--appliance-blue);
    outline-offset: -2px;
}

.appliance-faq-answer {
    padding: 0 20px 18px;
}

.appliance-faq-answer p {
    margin: 0;
    color: var(--appliance-muted);
    font-size: 15px;
    line-height: 1.65;
}

/* ------------------------------------------------------------------ */
/* Closing CTA                                                         */
/* ------------------------------------------------------------------ */

.appliance-final-cta {
    padding: 56px 0;
    background: var(--appliance-blue);
    color: #fff;
    text-align: center;
}

.appliance-final-cta h2 {
    margin: 0 0 10px;
    color: #fff;
    font-size: 30px;
    font-weight: 800;
}

.appliance-final-cta p {
    max-width: 620px;
    margin: 0 auto 22px;
    color: rgba(255, 255, 255, .88);
    font-size: 16px;
    line-height: 1.6;
}

.appliance-final-cta-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
}

/* On the blue band both buttons invert. The base rules set a white background
   and a white hover colour, which would render white-on-white text here. */
.appliance-final-cta .appliance-primary-btn,
.appliance-final-cta .appliance-primary-btn:hover,
.appliance-final-cta .appliance-primary-btn:focus {
    background: #fff;
    border-color: #fff;
    color: var(--appliance-blue);
    box-shadow: 0 12px 24px rgba(5, 12, 38, .22);
}

.appliance-final-cta .appliance-outline-btn,
.appliance-final-cta .appliance-outline-btn:hover,
.appliance-final-cta .appliance-outline-btn:focus {
    background: transparent;
    border-color: rgba(255, 255, 255, .7);
    color: #fff;
}

.appliance-final-cta .appliance-outline-btn:hover {
    background: rgba(255, 255, 255, .14);
    border-color: #fff;
}

/* ------------------------------------------------------------------ */
/* Responsive                                                          */
/* ------------------------------------------------------------------ */

@media (max-width: 991px) {
    .appliance-quote-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .appliance-quote-submit {
        grid-column: 1 / -1;
    }

    /* Three per row once 5-across gets too cramped. Declared here rather than
       in the earlier 991 block, which the base .appliance-help-cell rule
       (later in the file) would otherwise override. */
    .appliance-help-cell {
        width: calc((100% - 36px) / 3);
    }
}

@media (max-width: 767px) {
    .appliance-quote-form {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .appliance-help-cell {
        width: calc(50% - 9px);
    }

    .appliance-final-cta h2 {
        font-size: 24px;
    }

    /* Keep the sticky bar from covering the page footer content. */
    body:has(.appliance-sticky-bar.is-visible) {
        padding-bottom: 74px;
    }
}

@media (min-width: 992px) {
    .appliance-sticky-bar.is-visible {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .appliance-help-card,
    .appliance-help-icon {
        transition: none;
    }
}

/* ------------------------------------------------------------------ */
/* Easy booking process — steps                                        */
/* ------------------------------------------------------------------ */

.appliance-steps-section {
    position: relative;
    overflow: hidden;
    padding: 52px 0 56px;
    background: linear-gradient(180deg, #f8faff 0%, #eef3ff 100%);
    border-top: 1px solid #e6ecff;
    border-bottom: 1px solid #e6ecff;
}

.appliance-steps-section .container {
    position: relative;
    z-index: 1;
}

.appliance-steps-track {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    max-width: 980px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
}

/* Connector line running behind the number badges. */
.appliance-steps-track::before {
    content: "";
    position: absolute;
    top: 23px;
    left: 12.5%;
    right: 12.5%;
    height: 2px;
    background: linear-gradient(90deg,
        rgba(36, 70, 192, .10),
        rgba(36, 70, 192, .30) 16%,
        rgba(36, 70, 192, .30) 84%,
        rgba(36, 70, 192, .10));
    pointer-events: none;
}

.appliance-step {
    position: relative;
    display: flex;
}

.appliance-step-inner {
    position: relative;
    z-index: 1;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 0 10px;
    text-align: center;
}

.appliance-step-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    margin-bottom: 8px;
    border-radius: 50%;
    background: var(--appliance-blue);
    color: #fff;
    font-size: 15px;
    font-weight: 800;
    box-shadow: 0 0 0 6px #e8eeff;
    transition: transform .18s ease;
}

.appliance-step-glyph {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    margin-bottom: 4px;
    border-radius: 10px;
    background: #e8eeff;
    color: var(--appliance-blue);
    transition: background .18s ease;
}

.appliance-step-glyph svg {
    width: 18px;
    height: 18px;
    stroke: currentColor;
    fill: none;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.appliance-step h3 {
    margin: 0;
    color: var(--appliance-ink);
    font-size: 16px;
    line-height: 1.3;
    font-weight: 800;
}

.appliance-step p {
    margin: 0;
    max-width: 215px;
    color: var(--appliance-muted);
    font-size: 13.5px;
    line-height: 1.5;
}

.appliance-step:hover .appliance-step-badge {
    transform: translateY(-3px);
}

.appliance-step:hover .appliance-step-glyph {
    background: #dce5ff;
}

.appliance-steps-cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 32px;
}

.appliance-steps-btn,
.appliance-steps-call {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 42px;
    padding: 10px 20px;
    border-radius: 7px;
    font-size: 14.5px;
    font-weight: 800;
    text-decoration: none;
    transition: transform .15s ease, background .15s ease;
}

.appliance-steps-btn {
    background: var(--appliance-blue);
    color: #fff;
    box-shadow: 0 10px 22px rgba(36, 70, 192, .18);
}

.appliance-steps-btn:hover {
    transform: translateY(-2px);
    color: #fff;
    text-decoration: none;
}

.appliance-steps-call {
    border: 1px solid #c7d2fe;
    background: #fff;
    color: var(--appliance-blue);
}

.appliance-steps-call:hover {
    transform: translateY(-2px);
    background: #f8faff;
    color: var(--appliance-blue);
    text-decoration: none;
}

@media (max-width: 991px) {
    .appliance-steps-section {
        padding: 44px 0 48px;
    }

    .appliance-steps-track {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 26px 14px;
    }

    /* Two-up rows make a single horizontal rule misleading. */
    .appliance-steps-track::before {
        display: none;
    }
}

@media (max-width: 575px) {
    /* Row gap drops to 12px at this width, so the halves shrink to match. */
    .appliance-help-cell {
        width: calc(50% - 6px);
    }

    .appliance-steps-track {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    /* Badge on the left spanning both text rows; title and body stacked beside
       it. A flex row here would sit the body text next to the title. */
    .appliance-step-inner {
        display: grid;
        grid-template-columns: 40px minmax(0, 1fr);
        column-gap: 12px;
        row-gap: 2px;
        align-items: start;
        padding: 13px 14px;
        border-radius: 10px;
        border: 1px solid #e3e9ff;
        background: #fff;
        text-align: left;
    }

    .appliance-step-badge {
        grid-column: 1;
        grid-row: 1 / span 2;
        width: 40px;
        height: 40px;
        margin: 0;
        font-size: 14px;
        box-shadow: none;
    }

    /* Icon is decorative; the number carries the sequence on narrow screens. */
    .appliance-step-glyph {
        display: none;
    }

    .appliance-step h3,
    .appliance-step p {
        grid-column: 2;
    }

    .appliance-step p {
        max-width: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .appliance-step-badge,
    .appliance-step-glyph,
    .appliance-steps-btn,
    .appliance-steps-call {
        transition: none;
    }

    .appliance-step:hover .appliance-step-badge,
    .appliance-steps-btn:hover,
    .appliance-steps-call:hover {
        transform: none;
    }
}
