
/*
 * Primitive Tech Repairs
 * Phase 12: Appointment Scheduling
 *
 * Desktop and mobile.
 * Booking functionality remains unchanged.
 */

/* OUTER APPOINTMENT AREA */

html body.homepage-premium-page
#primitive-wizard-container
> #pr-main
> #pr-steps-area.animated-area:has(> .appointment-panel) {

    box-sizing: border-box !important;

    width: 100% !important;
    min-width: 0 !important;

    margin-top: 0 !important;

    padding: clamp(24px, 3vw, 44px) !important;

    border: 1px solid #e0e6ef !important;
    border-radius: 18px !important;

    background: #f9fbfe !important;
    background-image: none !important;

    box-shadow: none !important;
}

/* REMOVE LEGACY INNER PANEL */

html body.homepage-premium-page
#primitive-wizard-container
#pr-steps-area.animated-area
> .appointment-panel {

    box-sizing: border-box !important;

    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
    border-radius: 0 !important;

    background: transparent !important;
    background-image: none !important;

    box-shadow: none !important;
}

/* APPOINTMENT HEADING */

html body.homepage-premium-page
#primitive-wizard-container
#pr-steps-area.animated-area
> .appointment-panel
> .appointment-option-header {

    display: block !important;

    width: 100% !important;
    max-width: none !important;

    margin: 0 0 30px !important;
    padding: 0 !important;

    border: 0 !important;
    border-radius: 0 !important;

    background: transparent !important;
    background-image: none !important;

    box-shadow: none !important;

    text-align: left !important;
    justify-items: start !important;
}

html body.homepage-premium-page
#primitive-wizard-container
#pr-steps-area.animated-area
> .appointment-panel
> .appointment-option-header
> span {

    display: block !important;

    width: fit-content !important;
    min-height: 0 !important;

    margin: 0 0 12px !important;
    padding: 0 !important;

    border: 0 !important;

    background: transparent !important;

    color: #0c9fa5 !important;

    font: 800 .75rem/1.4 "Manrope", sans-serif !important;

    letter-spacing: .09em !important;

    text-align: left !important;
}

html body.homepage-premium-page
#primitive-wizard-container
#pr-steps-area.animated-area
> .appointment-panel
> .appointment-option-header
> h3 {

    display: block !important;

    width: 100% !important;
    max-width: none !important;

    margin: 0 !important;

    color: #1b2430 !important;

    font-family: "Space Grotesk", sans-serif !important;

    font-size: clamp(2rem, 3.2vw, 3rem) !important;
    font-weight: 700 !important;

    line-height: 1.12 !important;
    letter-spacing: -.045em !important;

    text-align: left !important;
    text-transform: none !important;

    text-shadow: none !important;
}

html body.homepage-premium-page
#primitive-wizard-container
#pr-steps-area.animated-area
> .appointment-panel
> .appointment-option-header
> p {

    width: 100% !important;
    max-width: none !important;

    margin: 10px 0 0 !important;

    color: #596578 !important;

    font: 400 1rem/1.5 "Manrope", sans-serif !important;

    text-align: left !important;
}

/* APPOINTMENT SECTIONS */

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-section {

    margin: 0 !important;

    padding: 28px 0 !important;

    border: 0 !important;
    border-top: 1px solid #e3e9f1 !important;

    border-radius: 0 !important;

    background: transparent !important;
    background-image: none !important;

    box-shadow: none !important;
}

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-section > h4 {

    display: inline-flex !important;

    width: fit-content !important;
    min-height: 0 !important;

    margin: 0 0 20px !important;

    padding: 0 0 0 12px !important;

    border: 0 !important;
    border-left: 2px solid #25c6c1 !important;

    border-radius: 0 !important;

    background: transparent !important;

    color: #536578 !important;

    font: 800 .72rem/1.5 "Manrope", sans-serif !important;

    letter-spacing: .09em !important;
}

/* SERVICE TYPE GRID */

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-service-grid {

    display: grid !important;

    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;

    gap: 12px !important;
}

/* SERVICE CARDS */

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-service-card {

    min-width: 0 !important;

    min-height: 116px !important;

    padding: 20px !important;

    border: 1px solid #dce3ed !important;
    border-radius: 12px !important;

    background: #fff !important;
    background-image: none !important;

    color: #1b2430 !important;

    box-shadow: none !important;

    text-align: left !important;
}

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-service-card::before {

    content: none !important;
    display: none !important;
}

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-service-card strong {

    color: #1b2430 !important;

    font-family: "Space Grotesk", sans-serif !important;

    font-size: 1.05rem !important;
    font-weight: 700 !important;
}

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-service-card span {

    color: #657386 !important;

    font-size: .82rem !important;
    line-height: 1.5 !important;
}

/* SELECTED SERVICE */

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-service-card.is-selected {

    border-color: #20bcb7 !important;

    background: #f0fdfc !important;
    background-image: none !important;

    color: #1b2430 !important;

    box-shadow: 0 0 0 1px #20bcb7 !important;
}

/* PREFERRED DATE */

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-date-control {

    width: min(430px, 100%) !important;

    border-color: #dce3ed !important;

    background: #fff !important;
}

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-date-input {

    border: 1px solid #dce3ed !important;

    border-radius: 10px !important;

    background: #fff !important;
    background-image: none !important;

    color: #1b2430 !important;

    color-scheme: light !important;

    box-shadow: none !important;
}

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-date-help {

    color: #657386 !important;
}

/* TIME GROUP */

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-time-group {

    padding: 20px !important;

    border: 1px solid #dce3ed !important;
    border-radius: 12px !important;

    background: #fff !important;
    background-image: none !important;
}

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-time-group-header {

    border-bottom-color: #e3e9f1 !important;
}

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-time-group-header strong {

    color: #1b2430 !important;
}

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-time-group-header span {

    color: #0c9fa5 !important;
}

/* TIME SLOT GRID */

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-time-grid {

    display: grid !important;

    grid-template-columns: repeat(
        auto-fit,
        minmax(95px, 1fr)
    ) !important;

    gap: 9px !important;
}

/* INDIVIDUAL TIMES */

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-time-slot {

    min-width: 0 !important;

    min-height: 46px !important;

    border: 1px solid #dce3ed !important;
    border-radius: 9px !important;

    background: #f9fbff !important;
    background-image: none !important;

    color: #283343 !important;

    font-weight: 700 !important;

    box-shadow: none !important;
}

/* SELECTED TIME */

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-time-slot.is-selected {

    border-color: #20bcb7 !important;

    background: #f0fdfc !important;

    color: #087f83 !important;

    box-shadow: 0 0 0 1px #20bcb7 !important;
}

/* AFTER-HOURS OPTIONS */

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-after-hours-disclosure {

    border: 1px solid #dce3ed !important;
    border-radius: 12px !important;

    background: #fff !important;
    background-image: none !important;
}

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-after-hours-disclosure > summary {

    color: #1b2430 !important;

    background: #fff !important;
}

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-after-hours-disclosure > summary strong {

    color: #1b2430 !important;
}

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-after-hours-disclosure > summary small {

    color: #657386 !important;
}

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-after-hours-fee {

    color: #0c9fa5 !important;
}

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-after-hours-note {

    color: #657386 !important;
}

/* CONTINUE BUTTON */

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-actions {

    border-top-color: #e3e9f1 !important;
}

html body.homepage-premium-page
#primitive-wizard-container
.appointment-panel
.appointment-continue {

    min-height: 52px !important;

    border: 0 !important;
    border-radius: 10px !important;

    background: #19252d !important;
    background-image: none !important;

    color: #fff !important;

    box-shadow: none !important;
}

/* MOBILE */

@media (max-width: 960px) {

    html body.homepage-premium-page
    #primitive-wizard-container
    > #pr-main
    > #pr-steps-area.animated-area:has(> .appointment-panel) {

        padding: 22px 16px !important;

        border-radius: 17px !important;
    }

    html body.homepage-premium-page
    #primitive-wizard-container
    #pr-steps-area.animated-area
    > .appointment-panel
    > .appointment-option-header
    > h3 {

        font-size: clamp(1.75rem, 7vw, 2.1rem) !important;
    }

    html body.homepage-premium-page
    #primitive-wizard-container
    .appointment-panel
    .appointment-date-control {

        width: 100% !important;

        background: #fff !important;
    }

    /*
     * Preserve the existing transparent native date-input
     * overlay used to open the mobile date picker.
     */

    html body.homepage-premium-page
    #primitive-wizard-container
    .appointment-panel
    .appointment-date-placeholder,

    html body.homepage-premium-page
    #primitive-wizard-container
    .appointment-panel
    .appointment-date-value {

        color: #1b2430 !important;
    }

    html body.homepage-premium-page
    #primitive-wizard-container
    .appointment-panel
    .appointment-date-control::after {

        filter: brightness(.35) !important;
    }

    html body.homepage-premium-page
    #primitive-wizard-container
    .appointment-panel
    .appointment-time-grid {

        grid-template-columns: repeat(
            3,
            minmax(0, 1fr)
        ) !important;
    }

    html body.homepage-premium-page
    #primitive-wizard-container
    .appointment-panel
    .appointment-continue {

        width: 100% !important;
    }

}

/* SMALL PHONES */

@media (max-width: 520px) {

    html body.homepage-premium-page
    #primitive-wizard-container
    .appointment-panel
    .appointment-service-grid {

        grid-template-columns: minmax(0, 1fr) !important;
    }

    html body.homepage-premium-page
    #primitive-wizard-container
    .appointment-panel
    .appointment-time-group {

        padding: 14px !important;
    }

}

@media (max-width: 360px) {

    html body.homepage-premium-page
    #primitive-wizard-container
    .appointment-panel
    .appointment-time-grid {

        grid-template-columns: repeat(
            2,
            minmax(0, 1fr)
        ) !important;
    }

}
