.cp-booking-page {
    --booking-ink: var(--ink);
    --booking-muted: var(--ink-soft);
    --booking-line: rgba(46, 156, 152, .18);
    --booking-surface: var(--white);
    --booking-soft: var(--teal-mist);
    --booking-accent: var(--teal);
    --booking-accent-dark: var(--teal-deep);
    --booking-green: var(--teal-deep);
    min-height: 100vh;
    color: var(--ink);
    background: var(--porcelain);
    font: 17px/1.65 var(--font-body);
}

.cp-booking-page .cp-main {
    overflow: visible;
}

.cp-booking-intro {
    padding: 70px 0 42px;
    background:
        radial-gradient(circle at 87% 10%, rgba(199, 154, 91, .18), transparent 25rem),
        var(--teal-mist);
    text-align: center;
}

.cp-booking-intro h1 {
    max-width: 820px;
    margin-inline: auto;
    font-size: clamp(2.45rem, 5vw, 4rem);
}

.cp-booking-intro > .cp-wrap > p:last-child {
    max-width: 690px;
    margin: 18px auto 0;
    color: var(--ink-soft);
    font-size: 1.05rem;
}

.cp-booking-embed {
    padding: 24px 0 86px;
    background:
        radial-gradient(circle at 15% 0%, rgba(46, 156, 152, .10), transparent 34rem),
        var(--porcelain);
}

.cp-booking-page .booking-portal-shell {
    width: 100%;
    padding: 0;
}

.cp-booking-page .booking-portal .portal-header {
    display: none !important;
}

.cp-booking-page .portal-progress button,
.cp-booking-page .portal-card,
.cp-booking-page .service-card,
.cp-booking-page .calendar-panel,
.cp-booking-page .times-panel,
.cp-booking-page .booking-portal-auth {
    font-family: var(--font-body);
}

.cp-booking-page .portal-card,
.cp-booking-page .booking-portal-auth {
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}

.cp-booking-page .section-heading h2,
.cp-booking-page .service-copy > strong,
.cp-booking-page .times-panel h3,
.cp-booking-page .portal-result h2,
.cp-booking-page .booking-portal-auth__intro h2 {
    font-family: var(--font-display);
}

.cp-booking-page .button-primary {
    background: var(--teal);
    box-shadow: 0 14px 34px -12px rgba(46, 156, 152, .55);
}

.cp-booking-page .button-primary:hover:not(:disabled) {
    background: var(--teal-deep);
}

.cp-booking-page .booking-portal-auth {
    margin-top: 28px;
}

.cp-booking-page .booking-portal-auth .md_orange_btn {
    background: var(--teal);
}

.cp-booking-page .booking-portal-auth .md_orange_btn:hover {
    background: var(--teal-deep);
}

@media (max-width: 600px) {
    .cp-booking-intro {
        padding: 50px 0 34px;
    }

    .cp-booking-embed {
        padding: 16px 0 64px;
    }

    .cp-booking-embed > .cp-wrap {
        width: min(calc(100% - 20px), var(--maxw));
    }
}
