.creavibc-catalog {
    box-sizing: border-box;
    --creavibc-catalog-accent: #5652f5;
    --creavibc-catalog-line: rgba(128, 128, 128, .28);
    width: 100%;
    max-width: 1040px;
    margin: 0 auto;
    color: inherit;
    font-family: inherit;
    line-height: 1.5;
}

.creavibc-catalog *,
.creavibc-catalog *::before,
.creavibc-catalog *::after { box-sizing: border-box; }
.creavibc-catalog [hidden] { display: none !important; }

.creavibc-catalog__navigation {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin: 0 0 20px;
    padding: 0 0 12px;
    border-bottom: 1px solid var(--creavibc-catalog-line);
}

.creavibc-catalog__back {
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 34px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: inherit;
    font: inherit;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.3;
    text-transform: none;
    cursor: pointer;
}
.creavibc-catalog__back:hover { color: var(--creavibc-catalog-accent); }
.creavibc-catalog__back span { font-size: 19px; line-height: 1; }
.creavibc-catalog__trail {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    min-width: 0;
    color: inherit;
    font-size: 12px;
    opacity: .65;
}
.creavibc-catalog__crumb { max-width: 240px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.creavibc-catalog__trail-divider { opacity: .5; }

.creavibc-catalog__step-title {
    margin: 0 0 16px;
    color: inherit;
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: 0;
}
.creavibc-catalog__step-title:focus { outline: none; }
.creavibc-catalog__cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr));
    gap: clamp(18px, 2.5vw, 28px);
}

.creavibc-catalog__card {
    appearance: none;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    min-width: 0;
    padding: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: inherit;
    font: inherit;
    line-height: 1.4;
    text-align: left;
    text-transform: none;
    cursor: pointer;
}
.creavibc-catalog__card:hover,
.creavibc-catalog__card:focus {
    border: 0;
    background: transparent;
    box-shadow: none;
    color: inherit;
}
.creavibc-catalog__card-media {
    display: block;
    width: 100%;
    aspect-ratio: 8 / 5;
    overflow: hidden;
    border-radius: 6px;
    background: rgba(127, 127, 127, .12);
}
.creavibc-catalog__card-media img,
.creavibc-catalog__card-graphic { display: block; width: 100%; height: 100%; }
.creavibc-catalog__card-media img {
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    object-fit: cover;
    object-position: center;
    transition: transform .25s ease;
}
.creavibc-catalog__card:hover img { transform: scale(1.015); }
.creavibc-catalog__card-graphic {
    display: grid;
    place-items: center;
    color: #9a9b92;
    font-family: var(--creavibc-catalog-title-font, inherit);
    font-size: 54px;
    font-weight: 400;
}
.creavibc-catalog__card-body {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
    padding: 12px 1px 0;
}
.creavibc-catalog__card-body strong {
    display: block;
    color: inherit;
    font-family: var(--creavibc-catalog-title-font, inherit);
    font-size: clamp(16px, 1.8vw, 19px);
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -.01em;
    overflow-wrap: break-word;
}
.creavibc-catalog__card:hover .creavibc-catalog__card-body strong { text-decoration: underline; text-underline-offset: 3px; }
.creavibc-catalog__card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: auto;
}
.creavibc-catalog__card-footer small {
    display: block;
    color: inherit;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.45;
    opacity: .68;
}
.creavibc-catalog__card-arrow {
    display: inline-block;
    margin-left: auto;
    color: inherit;
    font-size: 17px;
    font-weight: 400;
    line-height: 1;
    opacity: .6;
    transition: transform .2s ease, opacity .2s ease;
}
.creavibc-catalog__card:hover .creavibc-catalog__card-arrow { transform: translateX(3px); opacity: 1; }

.creavibc-catalog__selection {
    display: block;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}
.creavibc-catalog__selection-main { max-width: 520px; }
.creavibc-catalog .creavibc-service-selector__label {
    display: block;
    margin: 0 0 9px;
    color: inherit;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.4;
}
.creavibc-catalog .creavibc-service-selector__select {
    min-height: 46px;
    padding: 10px 14px;
    border: 1px solid var(--creavibc-catalog-line);
    border-radius: 5px;
    background-color: transparent;
    box-shadow: none;
    color: inherit;
    font: inherit;
    font-size: 14px;
    line-height: 1.4;
}
.creavibc-catalog .creavibc-service-selector__select:hover { border-color: var(--creavibc-catalog-accent); }
.creavibc-catalog .creavibc-service-selector__duration {
    margin: 8px 0 0;
    color: inherit;
    font-size: 12px;
    opacity: .65;
}
.creavibc-catalog .creavibc-service-selector__status {
    margin: 13px 0 0;
    color: inherit;
    font-size: 13px;
    opacity: .7;
}
.creavibc-catalog .creavibc-service-selector__status:empty { display: none; }
.creavibc-catalog .creavibc-service-selector__retry {
    min-height: 38px;
    margin-top: 12px;
    padding: 7px 13px;
    border: 1px solid var(--creavibc-catalog-line);
    border-radius: 5px;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: 13px;
    cursor: pointer;
}
.creavibc-catalog .creavibc-service-selector__retry:hover { border-color: var(--creavibc-catalog-accent); }
.creavibc-catalog .creavibc-service-selector__booking:not(:empty) { margin-top: 25px; }
.creavibc-catalog__back:focus-visible,
.creavibc-catalog__card:focus-visible,
.creavibc-catalog .creavibc-service-selector__select:focus-visible,
.creavibc-catalog .creavibc-service-selector__retry:focus-visible {
    outline: 2px solid var(--creavibc-catalog-accent);
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
    .creavibc-catalog__card-media img,
    .creavibc-catalog__card-arrow { transition: none; }
    .creavibc-catalog__card:hover img { transform: none; }
    .creavibc-catalog__card:hover .creavibc-catalog__card-arrow { transform: none; }
}

/* Grouped catalog flow. Every rule is scoped; direct service widgets stay unchanged. */
.creavibc-catalog--flow {
    --cbf-soft: color-mix(in srgb, currentColor 4%, transparent);
    --cbf-selected: color-mix(in srgb, var(--creavibc-catalog-accent) 7%, transparent);
    --creavibc-primary: var(--creavibc-catalog-accent);
    container-type: inline-size;
    border: 1px solid var(--creavibc-catalog-border-color, var(--creavibc-catalog-line));
    border-radius: var(--creavibc-catalog-radius, 12px);
    background: var(--creavibc-catalog-surface, transparent);
    overflow: hidden;
    font-size: 14px;
    scroll-margin-top: 20px;
}
.creavibc-catalog--flow button {
    appearance: none; margin: 0; padding: 0; border: 1px solid transparent; border-radius: 6px;
    background: transparent; color: inherit; box-shadow: none; font: inherit; line-height: 1.4;
    letter-spacing: normal; text-transform: none; cursor: pointer; min-width: 0;
}
.creavibc-catalog--flow button:disabled { opacity: .45; cursor: default; }
.creavibc-catalog--flow button:focus-visible,
.creavibc-catalog--flow input:focus-visible { outline: 2px solid var(--creavibc-catalog-accent); outline-offset: 3px; }
.creavibc-catalog--flow h3, .creavibc-catalog--flow h4 { color: inherit; font-family: inherit; letter-spacing: normal; }
.creavibc-catalog--flow h3 { margin: 0 0 14px; font-size: 20px; font-weight: 500; line-height: 1.3; }
.creavibc-catalog--flow h4 { margin: 0 0 9px; font-size: 13px; font-weight: 500; line-height: 1.4; }
.creavibc-catalog--flow p { margin: 0 0 14px; font-size: 13px; }
.creavibc-catalog--flow strong { font-weight: 500; }
.creavibc-catalog--flow .cbf-muted { opacity: .68; }
.creavibc-catalog--flow .cbf-progress { display: flex; gap: 12px; padding: 15px 26px; border-bottom: 1px solid var(--creavibc-catalog-line); }
.creavibc-catalog--flow .cbf-progress button { display: flex; align-items: center; flex: 1; gap: 7px; text-align: start; font-size: 12px; }
.creavibc-catalog--flow .cbf-progress button[aria-current="step"] { color: var(--creavibc-catalog-accent); opacity: 1; }
.creavibc-catalog--flow .cbf-number { display: grid; place-items: center; flex: 0 0 22px; height: 22px; border-radius: 50%; background: var(--cbf-soft); font-size: 11px; }
.creavibc-catalog--flow [aria-current="step"] .cbf-number { background: var(--creavibc-catalog-accent); color: #fff; }
.creavibc-catalog--flow .cbf-body { padding: 24px 28px; }
.creavibc-catalog--flow .cbf-body[data-phase="booking"] { height: 612px; }
.creavibc-catalog--flow .cbf-browse { min-height: 0; }
.creavibc-catalog--flow .cbf-title:focus { outline: none; }
.creavibc-catalog--flow .creavibc-catalog__cards { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 20px; }
.creavibc-catalog--flow .creavibc-catalog__card { max-width: 460px; border: 1px solid var(--creavibc-catalog-line); border-radius: 8px; overflow: hidden; }
.creavibc-catalog--flow .creavibc-catalog__card:hover,
.creavibc-catalog--flow .creavibc-catalog__card[aria-pressed="true"] { border-color: var(--creavibc-catalog-accent); }
.creavibc-catalog--flow .creavibc-catalog__card-media { border-radius: 0; }
.creavibc-catalog--flow .creavibc-catalog__card-body { padding: 16px; min-height: 96px; }
.creavibc-catalog--flow .creavibc-catalog__card-body strong { font-size: 16px; }
.creavibc-catalog--flow .cbf-initial { display: grid; place-items: center; background: var(--cbf-soft); font-size: 24px; }
.creavibc-catalog--flow .cbf-layout { display: grid; grid-template-columns: minmax(0, 42fr) minmax(0, 58fr); gap: 32px; height: 100%; }
.creavibc-catalog--flow .cbf-context, .creavibc-catalog--flow .cbf-main { min-width: 0; min-height: 0; overflow-y: auto; scrollbar-width: thin; }
.creavibc-catalog--flow .cbf-main { padding: 2px 4px; }
.creavibc-catalog--flow .cbf-context-image { display: block; width: 100%; height: 183px; object-fit: cover; border-radius: 8px; margin: 0 0 16px; }
.creavibc-catalog--flow .cbf-context > small { display: block; margin-bottom: 5px; font-size: 12px; }
.creavibc-catalog--flow .cbf-context > h3 { margin: 0 0 12px; font-size: 22px; }
.creavibc-catalog--flow .cbf-profile { height: 220px; overflow-y: auto; scrollbar-width: thin; margin-top: 22px; padding-top: 17px; border-top: 1px solid var(--creavibc-catalog-line); }
.creavibc-catalog--flow .cbf-profile-row { display: flex; gap: 12px; align-items: center; margin-bottom: 12px; }
.creavibc-catalog--flow .cbf-profile-row small { display: block; font-size: 12px; margin-top: 3px; }
.creavibc-catalog--flow .cbf-description { font-size: 12px; opacity: .75; }
.creavibc-catalog--flow .cbf-avatar { flex: 0 0 46px; display: block; width: 46px; height: 46px; margin: 0; object-fit: cover; border-radius: 50%; }
.creavibc-catalog--flow .cbf-avatars { display: flex; margin-bottom: 12px; padding-inline-start: 5px; }
.creavibc-catalog--flow .cbf-avatars .cbf-avatar { width: 34px; height: 34px; flex-basis: 34px; margin-inline-start: -5px; }
.creavibc-catalog--flow .cbf-providers { padding-top: 16px; }
.creavibc-catalog--flow .cbf-provider-list { display: grid; gap: 10px; }
.creavibc-catalog--flow .cbf-all { display: block; width: 100%; padding: 15px; margin-bottom: 10px; border-color: var(--creavibc-catalog-line); text-align: start; }
.creavibc-catalog--flow .cbf-provider { display: flex; align-items: center; width: 100%; min-height: 83px; gap: 12px; margin: 0; padding: 13px; border: 1px solid var(--creavibc-catalog-line); border-radius: 8px; cursor: pointer; }
.creavibc-catalog--flow .cbf-provider:hover, .creavibc-catalog--flow .cbf-all:hover { border-color: var(--creavibc-catalog-accent); }
.creavibc-catalog--flow .cbf-provider.is-selected,
.creavibc-catalog--flow .cbf-provider[aria-pressed="true"],
.creavibc-catalog--flow .cbf-all[aria-pressed="true"] { border-color: var(--creavibc-catalog-accent); background: var(--cbf-selected); }
.creavibc-catalog--flow .cbf-provider-copy { flex: 1; min-width: 0; text-align: start; }
.creavibc-catalog--flow .cbf-provider-copy strong, .creavibc-catalog--flow .cbf-provider-copy small { display: block; overflow-wrap: anywhere; }
.creavibc-catalog--flow .cbf-provider-copy small { margin-top: 3px; font-size: 12px; }
.creavibc-catalog--flow .cbf-provider input { appearance: auto; flex: 0 0 17px; width: 17px; height: 17px; margin: 0; accent-color: var(--creavibc-catalog-accent); }
.creavibc-catalog--flow .cbf-calendar-selection { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 25px; margin-bottom: 8px; font-size: 13px; }
.creavibc-catalog--flow .cbf-calendar-selection strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.creavibc-catalog--flow .cbf-link { padding: 4px; color: var(--creavibc-catalog-accent); font-size: 12px; }
.creavibc-catalog--flow .cbf-month-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 5px; }
.creavibc-catalog--flow .cbf-month-head h3 { font-size: 15px; margin: 0; }
.creavibc-catalog--flow .cbf-month-nav { display: flex; gap: 4px; }
.creavibc-catalog--flow .cbf-month-nav button { width: 34px; height: 34px; font-size: 23px; }
.creavibc-catalog--flow .cbf-month-nav button:hover:not(:disabled) { background: var(--cbf-soft); }
.creavibc-catalog--flow .cbf-weekdays, .creavibc-catalog--flow .cbf-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); justify-items: center; }
.creavibc-catalog--flow .cbf-weekdays span { height: 20px; opacity: .6; font-size: 11px; }
.creavibc-catalog--flow .cbf-days { grid-auto-rows: 34px; gap: 1px 0; }
.creavibc-catalog--flow .cbf-days button { width: 34px; height: 34px; border-radius: 50%; font-size: 12px; }
.creavibc-catalog--flow .cbf-days button.cbf-outside { visibility: hidden; }
.creavibc-catalog--flow .cbf-days button[aria-current="date"] { border-color: var(--creavibc-catalog-accent); }
.creavibc-catalog--flow .cbf-days button:hover:not(:disabled) { background: var(--cbf-soft); }
.creavibc-catalog--flow .cbf-days button[aria-pressed="true"] { background: var(--creavibc-catalog-accent); color: #fff; }
.creavibc-catalog--flow .cbf-calendar-status { display: flex; align-items: center; flex-wrap: wrap; min-height: 18px; font-size: 11px; line-height: 1.3; }
.creavibc-catalog--flow .cbf-time-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin: 8px 0; }
.creavibc-catalog--flow .cbf-time-head h4 { margin: 0; }
.creavibc-catalog--flow .cbf-time-head small { font-size: 11px; text-align: end; }
.creavibc-catalog--flow .cbf-times { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 46px; gap: 6px; height: 102px; overflow-y: auto; align-content: start; scrollbar-width: thin; padding: 2px; }
.creavibc-catalog--flow .cbf-times .cbf-message { grid-column: 1 / -1; margin: 4px 0; font-size: 12px; }
.creavibc-catalog--flow .cbf-slot { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; padding: 4px 6px; border-color: var(--creavibc-catalog-line); text-align: center; }
.creavibc-catalog--flow .cbf-slot strong, .creavibc-catalog--flow .cbf-slot small { display: block; width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; line-height: 1.2; }
.creavibc-catalog--flow .cbf-slot strong { flex: none; font-variant-numeric: tabular-nums; }
.creavibc-catalog--flow .cbf-slot small { font-size: 11px; opacity: .7; }
.creavibc-catalog--flow .cbf-slot:hover { border-color: var(--creavibc-catalog-accent); }
.creavibc-catalog--flow .cbf-slot[aria-pressed="true"] { background: var(--creavibc-catalog-accent); color: #fff; border-color: var(--creavibc-catalog-accent); }
.creavibc-catalog--flow .cbf-assignment { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--creavibc-catalog-line); min-height: 86px; }
.creavibc-catalog--flow .cbf-assignment > p { font-size: 12px; }
.creavibc-catalog--flow .cbf-assignment h4 { margin-bottom: 7px; font-size: 12px; }
.creavibc-catalog--flow .cbf-slot-providers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; max-height: 116px; overflow-y: auto; scrollbar-width: thin; padding: 2px; }
.creavibc-catalog--flow .cbf-provider--small { min-height: 53px; padding: 7px; gap: 7px; }
.creavibc-catalog--flow .cbf-provider--small .cbf-avatar { width: 29px; height: 29px; flex-basis: 29px; }
.creavibc-catalog--flow .cbf-provider--small strong { font-size: 12px; }
.creavibc-catalog--flow .cbf-provider--small small { font-size: 10px; }
.creavibc-catalog--flow .cbf-footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 73px; padding: 13px 26px; border-top: 1px solid var(--creavibc-catalog-line); }
.creavibc-catalog--flow .cbf-summary { min-width: 0; font-size: 12px; }
.creavibc-catalog--flow .cbf-summary strong, .creavibc-catalog--flow .cbf-summary span { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.creavibc-catalog--flow .cbf-summary span { opacity: .68; margin-top: 3px; }
.creavibc-catalog--flow .cbf-actions { display: flex; gap: 8px; flex-shrink: 0; }
.creavibc-catalog--flow .cbf-actions button { min-height: 40px; padding: 8px 17px; border: 1px solid var(--creavibc-catalog-line); border-radius: 24px; font-size: 13px; }
.creavibc-catalog--flow .cbf-actions .cbf-next { background: var(--creavibc-catalog-accent); border-color: var(--creavibc-catalog-accent); color: #fff; }
.creavibc-catalog--flow .cbf-detail-summary { padding-bottom: 16px; margin-bottom: 16px; border-bottom: 1px solid var(--creavibc-catalog-line); }
.creavibc-catalog--flow .cbf-detail-summary strong, .creavibc-catalog--flow .cbf-detail-summary span { display: block; font-size: 13px; }
.creavibc-catalog--flow .cbf-detail-summary span { opacity: .68; margin-top: 5px; font-size: 12px; }
.creavibc-catalog--flow .cbf-details > .cbf-message:empty { display: none; }
/* The catalog owns the frame and navigation; this is the unchanged service form inside it. */
.creavibc-catalog--flow .cbf-service-form { width: 100%; margin: 0; padding: 0; color: inherit; }
.creavibc-catalog--flow .cbf-service-form .creavibc-popup {
    --creavibc-theme-bg: transparent; --creavibc-primary: var(--creavibc-catalog-accent);
    display: block; width: 100%; height: auto; min-height: 0; max-height: none; padding: 0;
    background: transparent; color: inherit; border: 0; border-radius: 0; box-shadow: none;
}
.creavibc-catalog--flow .cbf-service-form .creavibc-popup-content { display: block; padding: 0; margin: 0; overflow: visible; color: inherit; }
.creavibc-catalog--flow .cbf-service-form .creavibc-left,
.creavibc-catalog--flow .cbf-service-form .creavibc-popup-footer { display: none; }
.creavibc-catalog--flow .cbf-service-form .creavibc-right { display: block; width: 100%; margin: 0; padding: 0; color: inherit; }
.creavibc-catalog--flow .cbf-service-form .creavibc-step-2 { padding: 0; color: inherit; }
.creavibc-catalog--flow .cbf-service-form label { color: inherit; font: inherit; font-size: 13px; }
.creavibc-catalog--flow .cbf-service-form input:not([type="checkbox"]),
.creavibc-catalog--flow .cbf-service-form textarea,
.creavibc-catalog--flow .cbf-service-form select { width: 100%; min-height: 42px; background: transparent; color: inherit; border: 1px solid var(--creavibc-catalog-line); border-radius: 6px; box-shadow: none; font: inherit; font-size: 16px; }
.creavibc-catalog--flow .cbf-service-form .creavibc-thankyou-illus { display: none; }
.creavibc-catalog--flow .cbf-next.is-loading::before { content: ''; display: inline-block; width: 12px; height: 12px; margin-inline-end: 7px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: cbf-spin .8s linear infinite; }
@keyframes cbf-spin { to { transform: rotate(360deg); } }
@container (max-width: 680px) {
    .creavibc-catalog--flow .cbf-progress { gap: 5px; padding: 12px; }
    .creavibc-catalog--flow .cbf-progress button { flex-direction: column; gap: 5px; text-align: center; font-size: 11px; }
    .creavibc-catalog--flow .cbf-number { width: 22px; }
    .creavibc-catalog--flow .cbf-body { padding: 20px; }
    .creavibc-catalog--flow .cbf-body[data-phase="booking"] { height: auto; }
    .creavibc-catalog--flow .cbf-layout { display: block; height: auto; }
    .creavibc-catalog--flow .cbf-context { height: auto; overflow: visible; }
    .creavibc-catalog--flow .cbf-context-image { display: none; }
    .creavibc-catalog--flow .cbf-context > h3 { font-size: 19px; }
    .creavibc-catalog--flow .cbf-profile { height: auto; overflow: visible; margin-top: 14px; padding-top: 12px; }
    .creavibc-catalog--flow[data-step="2"] .cbf-profile,
    .creavibc-catalog--flow[data-step="3"] .cbf-profile--multiple { display: none; }
    .creavibc-catalog--flow .cbf-main { margin-top: 18px; overflow: visible; padding: 2px; }
    .creavibc-catalog--flow .cbf-provider-list { grid-auto-rows: max-content; align-content: start; height: auto; max-height: none; overflow: visible; padding: 2px; }
    .creavibc-catalog--flow .cbf-provider-list .cbf-provider { height: auto; min-height: 76px; align-self: start; }
    .creavibc-catalog--flow .creavibc-catalog__cards { grid-template-columns: 1fr; gap: 10px; }
    .creavibc-catalog--flow .creavibc-catalog__card { display: grid; grid-template-columns: minmax(88px, 38%) minmax(0, 1fr); align-items: stretch; min-height: 126px; max-width: none; }
    .creavibc-catalog--flow .creavibc-catalog__card-media { position: relative; align-self: stretch; height: auto; min-height: 0; aspect-ratio: auto; }
    .creavibc-catalog--flow .creavibc-catalog__card-media img,
    .creavibc-catalog--flow .creavibc-catalog__card-graphic { position: absolute; inset: 0; width: 100%; height: 100%; }
    .creavibc-catalog--flow .creavibc-catalog__card-body { justify-content: center; gap: 6px; min-height: 0; padding: 12px 14px; }
    .creavibc-catalog--flow .creavibc-catalog__card-body strong { font-size: 15px; line-height: 1.3; }
    .creavibc-catalog--flow .creavibc-catalog__card-footer { margin-top: 0; gap: 8px; }
    .creavibc-catalog--flow .creavibc-catalog__card-footer small { font-size: 11px; line-height: 1.3; }
    .creavibc-catalog--flow .cbf-assignment { min-height: 0; }
    .creavibc-catalog--flow .cbf-slot-providers { grid-auto-rows: max-content; align-content: start; height: auto; max-height: none; overflow: visible; padding: 2px; }
    .creavibc-catalog--flow .cbf-provider--small { flex-direction: row; justify-content: flex-start; align-self: start; height: auto; min-height: 64px; padding: 10px; gap: 10px; }
    .creavibc-catalog--flow .cbf-provider--small .cbf-avatar { width: 38px; height: 38px; flex-basis: 38px; }
    .creavibc-catalog--flow .cbf-footer { padding: 12px 16px; gap: 10px; }
    .creavibc-catalog--flow .cbf-actions { gap: 6px; }
    .creavibc-catalog--flow .cbf-actions button { padding-inline: 12px; font-size: 12px; }
}
@container (max-width: 480px) {
    .creavibc-catalog--flow .cbf-times { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 52px; height: 174px; }
    .creavibc-catalog--flow .cbf-footer { flex-wrap: wrap; align-items: stretch; }
    .creavibc-catalog--flow .cbf-summary { flex-basis: 100%; }
    .creavibc-catalog--flow .cbf-actions { width: 100%; justify-content: flex-end; }
    .creavibc-catalog--flow .cbf-actions button { min-height: 44px; white-space: nowrap; }
}
@media (prefers-reduced-motion: reduce) {
    .creavibc-catalog--flow .cbf-next.is-loading::before { animation: none; }
}

/* Catalog-level appearance never changes a standalone service widget. */
.creavibc-catalog { border-radius: var(--creavibc-catalog-radius, 12px); }
.creavibc-catalog[data-shadow="none"] { box-shadow: none; }
.creavibc-catalog[data-shadow="soft"] { box-shadow: 0 5px 24px rgba(24, 32, 44, .07); }
.creavibc-catalog[data-shadow="medium"] { box-shadow: 0 12px 36px rgba(24, 32, 44, .13); }
.creavibc-catalog--simple-cards { padding: clamp(16px, 3vw, 28px); border: 1px solid var(--creavibc-catalog-border-color, var(--creavibc-catalog-line)); }
.creavibc-catalog[data-border-width]:not([data-border-width="default"]) { border: var(--creavibc-catalog-border-width, 1px) solid var(--creavibc-catalog-border-color, var(--creavibc-catalog-line)); }
.creavibc-catalog .cbs-service-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 20px; }
.creavibc-catalog .cbs-service-card { appearance: none; display: flex; flex-direction: column; align-items: stretch; min-width: 0; margin: 0; padding: 0; border: 1px solid var(--creavibc-catalog-line); border-radius: min(var(--creavibc-catalog-radius, 12px), 16px); background: transparent; color: inherit; box-shadow: none; font: inherit; text-align: start; text-transform: none; letter-spacing: normal; overflow: hidden; cursor: pointer; transition: border-color .15s, background-color .15s; }
.creavibc-catalog .cbs-service-card:hover { border-color: var(--creavibc-catalog-accent); background: color-mix(in srgb, var(--creavibc-catalog-accent) 3%, transparent); }
.creavibc-catalog .cbs-service-card:focus-visible, .creavibc-catalog .cbs-selected-service__change:focus-visible { outline: 2px solid var(--creavibc-catalog-accent); outline-offset: 3px; }
.creavibc-catalog .cbs-service-card__image { display: block; width: 100%; aspect-ratio: 4 / 3; height: auto; object-fit: cover; background: rgba(128,128,128,.07); }
.creavibc-catalog .cbs-service-card__image.cbf-initial { display: grid; place-items: center; font-size: 36px; font-weight: 400; }
.creavibc-catalog .cbs-service-card__copy { display: flex; flex: 1; flex-direction: column; gap: 9px; padding: 18px; min-width: 0; }
.creavibc-catalog .cbs-service-card strong { font: inherit; font-size: 16px; font-weight: 500; line-height: 1.4; overflow-wrap: anywhere; }
.creavibc-catalog .cbs-service-card__description { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 13px; line-height: 1.6; opacity: .65; }
.creavibc-catalog .cbs-service-card__detail { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 5px; font-size: 12px; opacity: .7; }
.creavibc-catalog .cbs-service-card__detail > :last-child { font-size: 18px; }
.creavibc-catalog[data-simple-style="minimal"] .cbs-service-cards { grid-template-columns: repeat(auto-fit, minmax(min(100%, 310px), 1fr)); gap: 12px; }
.creavibc-catalog[data-simple-style="minimal"] .cbs-service-card { flex-direction: row; align-items: center; padding: 18px; gap: 16px; }
.creavibc-catalog[data-simple-style="minimal"] .cbs-service-card__image { flex: 0 0 62px; width: 62px; height: 62px; border-radius: 50%; aspect-ratio: 1; }
.creavibc-catalog[data-simple-style="minimal"] .cbs-service-card__image.cbf-initial { font-size: 24px; }
.creavibc-catalog[data-simple-style="minimal"] .cbs-service-card__copy { padding: 0; gap: 4px; }
.creavibc-catalog[data-simple-style="minimal"] .cbs-service-card__description { -webkit-line-clamp: 1; }
.creavibc-catalog .cbs-selected-service { display: flex; align-items: center; gap: 14px; padding-bottom: 18px; border-bottom: 1px solid var(--creavibc-catalog-line); }
.creavibc-catalog .cbs-selected-service__image { display: grid; place-items: center; width: 48px; height: 48px; flex: 0 0 48px; border-radius: 50%; object-fit: cover; background: rgba(128,128,128,.07); }
.creavibc-catalog .cbs-selected-service__copy { display: flex; flex: 1; flex-direction: column; min-width: 0; }
.creavibc-catalog .cbs-selected-service__copy strong { font-size: 15px; font-weight: 500; overflow-wrap: anywhere; }
.creavibc-catalog .cbs-selected-service__copy small { font-size: 12px; opacity: .65; }
.creavibc-catalog .cbs-selected-service__change { appearance: none; padding: 6px 0; border: 0; background: transparent; box-shadow: none; color: inherit; font: inherit; font-size: 13px; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
/* Keep the selected simple booking centered, without nested frame shadows. */
.creavibc-catalog.creavibc-catalog--service-selected { box-shadow: none; }
.creavibc-catalog--service-selected .creavibc-service-selector { max-width: 900px; margin-inline: auto; }
.creavibc-catalog--service-selected .creavibc-inline-wrapper.creavibc-booking-wrapper { max-width: 900px; margin-inline: auto; box-shadow: none; }
.creavibc-catalog--service-selected .creavibc-inline-wrapper .creavibc-popup { box-shadow: none; }
@media (prefers-reduced-motion: reduce) { .creavibc-catalog .cbs-service-card { transition: none; } }

/* Explicit desktop columns retain the automatic layout for existing catalogs. */
.creavibc-catalog { container-type: inline-size; }
.creavibc-catalog[data-card-columns="1"] { --creavibc-card-columns: 1; }
.creavibc-catalog[data-card-columns="2"] { --creavibc-card-columns: 2; }
.creavibc-catalog[data-card-columns="3"] { --creavibc-card-columns: 3; }
.creavibc-catalog[data-card-columns="4"] { --creavibc-card-columns: 4; }
.creavibc-catalog[data-card-columns]:not([data-card-columns="auto"]) :is(.creavibc-catalog__cards, .cbs-service-cards) { grid-template-columns: repeat(var(--creavibc-card-columns), minmax(0, 1fr)); }
.creavibc-catalog[data-card-columns]:not([data-card-columns="auto"]) .creavibc-catalog__card { max-width: none; }
.creavibc-catalog[data-provider-columns="1"] :is(.cbf-provider-list, .cbf-slot-providers) { grid-template-columns: minmax(0, 1fr); }
.creavibc-catalog[data-provider-columns="2"] :is(.cbf-provider-list, .cbf-slot-providers) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.creavibc-catalog[data-provider-columns="2"] .cbf-provider-list .cbf-provider { flex-wrap: wrap; }
@container (max-width: 760px) {
    .creavibc-catalog:is([data-card-columns="3"], [data-card-columns="4"]):not([data-card-columns="auto"]) :is(.creavibc-catalog__cards, .cbs-service-cards) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@container (max-width: 480px) {
    .creavibc-catalog[data-card-columns]:not([data-card-columns="auto"]) :is(.creavibc-catalog__cards, .cbs-service-cards),
    .creavibc-catalog[data-provider-columns] :is(.cbf-provider-list, .cbf-slot-providers) { grid-template-columns: minmax(0, 1fr); }
}

/* Text-only cards share the same aligned content, with no empty image area. */
.creavibc-catalog[data-simple-style="text"] .cbs-service-card__copy { padding: 22px; gap: 10px; }
.creavibc-catalog[data-simple-style="text"] .cbs-service-card__detail { padding-top: 12px; }
