.kp-schedule-animal-picker, .kp-schedule-slots {
    border: 0;
    padding: 0;
    margin: 0;
    min-width: 0;
}
.kp-schedule-animal-picker .kp-booking-slot-card,
.kp-schedule-slots .kp-booking-slot-card,
.kp-booking-slot-list button.kp-booking-slot-card {
    width: 100%;
    text-align: left;
    font: inherit;
    color: var(--kp-color-text-main);
}
.kp-schedule-animal-picker .kp-booking-slot-card { margin-block: 0.5rem; }
.kp-schedule-choice-indicator {
    grid-column: 3;
    justify-self: end;
    pointer-events: none;
}
.kp-booking-slot-card[aria-pressed="true"] { border-color: var(--kp-color-brand-primary); background: var(--kp-color-surface-blue); }
.kp-booking-slot-card:disabled { opacity: 0.55; cursor: not-allowed; }
.kp-schedule-slots { grid-column: 1 / -1; }

.kp-schedule-time-buttons { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-block: 1rem; }

.kp-schedule-confirmation-time { display: block; }
.kp-booking-price-panel--recap .kp-schedule-recap-slot > strong {
    font-size: 20px;
    line-height: 1.25;
}

.kp-booking-payment--multi .kp-booking-payment__layout {
    grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr);
    gap: 20px;
}
.kp-booking-payment__summary.kp-booking-price-panel {
    position: sticky;
    top: 90px;
}
.kp-booking-payment__schedule {
    margin: 16px 0;
    border-block: 1px solid var(--kp-color-border-soft);
    padding-block: 14px;
}
.kp-booking-payment__schedule-label {
    margin-bottom: 9px;
    color: var(--kp-color-text-soft);
    font-family: var(--kp-font-body);
    font-size: 13px;
    font-weight: 400;
    text-transform: none;
}
.kp-booking-payment__schedule-row {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    gap: 9px;
    align-items: center;
    padding-block: 5px;
}
.kp-booking-payment__summary.kp-booking-price-panel .kp-booking-payment__schedule-row > span {
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    border-radius: 50%;
    background: var(--kp-color-surface-blue);
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-body);
    font-size: 12px;
    font-weight: 800;
    text-transform: none;
}
.kp-booking-payment__schedule-row > strong {
    margin: 0;
    color: var(--kp-color-text-main);
    font-family: var(--kp-font-body);
    font-size: 14px;
    font-weight: 800;
}
.kp-booking-payment__guarantee-note {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
    margin-top: 16px;
    border-radius: 10px;
    padding: 12px;
    background: var(--kp-color-surface-blue);
    color: var(--kp-color-text-main);
}
.kp-booking-payment__summary.kp-booking-price-panel .kp-booking-payment__guarantee-note > span {
    display: grid;
    width: 24px;
    height: 24px;
    place-items: center;
    border-radius: 50%;
    background: #fff;
    color: var(--kp-color-brand-primary);
    font-family: var(--kp-font-body);
    font-size: 12px;
    text-transform: none;
}
.kp-booking-payment__summary.kp-booking-price-panel .kp-booking-payment__guarantee-note p,
.kp-booking-payment__summary.kp-booking-price-panel .kp-booking-payment__guarantee-note p strong,
.kp-booking-payment__summary.kp-booking-price-panel .kp-booking-payment__guarantee-note p > span {
    display: block;
    margin: 0;
    color: inherit;
    font-family: var(--kp-font-body);
    font-size: 12px;
    line-height: 1.45;
    text-transform: none;
}
.kp-booking-payment__summary.kp-booking-price-panel .kp-booking-payment__guarantee-note p strong { margin-bottom: 2px; font-weight: 800; }
.kp-booking-payment__summary.kp-booking-price-panel .kp-booking-payment__guarantee-note p > span { font-weight: 400; }

@media (max-width: 900px) {
    .kp-booking-payment--multi .kp-booking-payment__layout { grid-template-columns: minmax(0, 1fr); }
    .kp-booking-payment__summary.kp-booking-price-panel { position: static; }
}

/* Existing single-animal mobile panels had fixed prototype heights. A variable
   number of animals and outings must determine the actual form height. */
[data-admin-schedule-form] .kp-admin-reservation-create__panel .kp-admin-reservation-create__section .kp-admin-reservation-create__grid {
    height: auto;
    min-height: 0;
}
[data-admin-schedule-form] .kp-schedule-animal-picker { align-self: start; }
[data-admin-schedule-form] .kp-schedule-time-buttons { max-height: 16rem; overflow-y: auto; padding: 0.25rem; }
.kp-booking-panel--schedule .kp-schedule-copy { display: block; }

[data-admin-schedule-form] > .kp-card.kp-admin-reservation-create__panel { height: auto; overflow: visible; }
.kp-booking-panel--schedule .kp-schedule-copy { display: block !important; }
.kp-schedule-summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0.5rem; }
.kp-schedule-summary p { margin: 0.25rem 0 0; }
.kp-schedule-footer-summary { margin-top: 1.75rem; }
.kp-schedule-footer-summary .kp-schedule-copy { margin: 0; }
.kp-schedule-footer-summary .kp-schedule-copy + .kp-schedule-copy { margin-top: 1rem; }
.kp-schedule-total { color: var(--kp-color-text-main); }
.kp-schedule-mobile-selection { display: none; }

@media (max-width: 900px) {
    .kp-client-booking-flow:has(.kp-booking-panel--schedule) { padding-bottom: 200px; }
    .kp-booking-panel--schedule .kp-booking-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
        gap: 8px;
        align-items: stretch;
    }
    .kp-schedule-mobile-selection {
        display: flex;
        grid-column: 1 / -1;
        align-items: center;
        justify-content: space-between;
        border: 1px solid var(--kp-color-border-soft);
        border-radius: 10px;
        padding: 8px 11px;
        background: var(--kp-color-surface-soft);
        color: var(--kp-color-text-soft);
        font-size: 12px;
        font-weight: 700;
    }
    .kp-schedule-mobile-selection strong {
        color: var(--kp-color-brand-primary);
        font-family: var(--kp-font-heading);
        font-size: 13px;
        font-weight: 900;
    }
}

@media (min-width: 901px) {
    .kp-booking-panel--schedule .kp-booking-slot-list { max-height: 24rem; overflow-y: auto; }
    .kp-booking-panel--schedule .kp-booking-actions { position: static; margin-top: 1.5rem; }
    .kp-booking-panel--schedule .kp-booking-day-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
    .kp-booking-panel--schedule .kp-booking-day-card { min-width: 0; }
}

/* Keep the current schedule visible while the updated server state arrives. */
.kp-booking-panel--schedule.is-schedule-updating .kp-booking-slot-list-wrap,
.kp-booking-panel--schedule.is-schedule-updating .kp-schedule-summary {
    opacity: 0.62;
    pointer-events: none;
    transition: opacity 120ms ease;
}
.kp-booking-panel--schedule.is-schedule-updating [data-schedule-loading] {
    margin-block: 0.75rem;
    color: var(--kp-color-text-muted);
}

/* Multi-day selection keeps the existing booking shell and calendar primitives. */
.kp-booking-panel--multi-days > .kp-alert + .kp-booking-week-nav { margin-top:24px; }
.kp-booking-panel--multi-days .kp-booking-week-nav small { display:block; font-size:11px; color:var(--kp-color-text-soft); }
.kp-booking-panel--multi-days .kp-booking-day-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; margin-block:18px 22px; }
.kp-booking-panel--multi-days .kp-booking-day-card { min-width:0; }
.kp-booking-panel--multi-days .kp-booking-day-card.is-disabled { background:#f8fafc; color:var(--kp-color-text-muted); cursor:not-allowed; }
.kp-multi-day-calendar-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.kp-multi-day-picker { display:flex; flex-wrap:wrap; gap:8px; border:1px solid var(--kp-color-border-soft); border-radius:12px; padding:16px; margin-block:18px; }
.kp-multi-day-picker label { flex-basis:100%; }
.kp-multi-day-picker input { min-height:44px; max-width:100%; font:inherit; }
.kp-multi-day-choice { display:inline-grid; place-items:center; justify-self:end; width:18px; height:18px; box-sizing:border-box; border:1px solid #767676; border-radius:50%; background:#fff; }
.kp-booking-slot-card[aria-pressed="true"] .kp-multi-day-choice { border-color:var(--kp-color-brand-primary); }
.kp-booking-slot-card[aria-pressed="true"] .kp-multi-day-choice::after { content:""; width:10px; height:10px; border-radius:50%; background:var(--kp-color-brand-primary); }
.kp-multi-day-list { border-top:1px solid var(--kp-color-border-soft); padding-top:18px; margin-top:22px; }
.kp-multi-day-list__mobile-title { display:none; }
.kp-multi-day-row { padding-block:12px; border-bottom:1px solid var(--kp-color-border-soft); }
.kp-multi-day-row summary { display:flex; gap:12px; align-items:center; min-height:52px; cursor:pointer; list-style:none; }
.kp-multi-day-row summary::-webkit-details-marker { display:none; }
.kp-multi-day-row summary > span:nth-child(2) { flex:1; min-width:0; }
.kp-multi-day-row summary strong,.kp-multi-day-row summary small { display:block; }
.kp-multi-day-row summary small { margin-top:3px; font-size:12px; color:var(--kp-color-text-soft); }
.kp-multi-day-date { display:grid; flex:0 0 48px; text-align:center; border-radius:10px; padding:7px 0; background:var(--kp-color-surface-blue); color:var(--kp-color-brand-primary); }
.kp-multi-day-date strong { font-family:var(--kp-font-heading); font-size:20px; line-height:1.2; }
.kp-multi-day-date small { font-size:11px !important; }
.kp-multi-day-row__times { padding:12px 0 0 60px; }
.kp-multi-day-row__times p { margin:0 0 8px; font-size:13px; }
.kp-multi-day-row__actions,.kp-multi-day-row__actions form { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.kp-multi-day-row__actions { margin-top:8px; }
.kp-multi-day-row__actions .kp-button { min-height:44px; }
.kp-multi-day-sidebar-days { max-height:320px; overflow:auto; margin-block:12px; }
.kp-multi-day-sidebar-days > div { padding-block:10px; border-top:1px solid var(--kp-color-border-soft); font-size:13px; }
.kp-multi-day-sidebar-days p { margin:4px 0; font-size:12px; }
.kp-booking-recap .kp-multi-day-sidebar-totals { border-top:1px solid var(--kp-color-border-soft); margin-top:12px; padding-top:12px; }
.kp-multi-day-sticky { display:flex; align-items:center; gap:12px; border-top:1px solid var(--kp-color-border-soft); margin-top:24px; padding-top:16px; }
.kp-multi-day-sticky > div { flex:1; min-width:0; }
.kp-multi-day-sticky span,.kp-multi-day-sticky strong { display:block; }
.kp-multi-day-sticky strong { font-size:20px; font-family:var(--kp-font-heading); }
.kp-booking-panel--multi-days [aria-busy=true] { opacity:.65; }
@media(min-width:1100px) {
 .kp-booking-panel--multi-days .kp-booking-slot-list { max-height:24rem; overflow-y:auto; }
 .kp-multi-day-row summary { cursor:default; }
 .js .kp-multi-day-chevron { display:none; }
 .kp-multi-day-row > .kp-multi-day-row__times,.kp-multi-day-row > .kp-multi-day-row__actions { display:block; }
 .kp-multi-day-row > .kp-multi-day-row__actions { display:flex; }
}
@media(max-width:1099px) {
 .kp-client-booking-flow:has(.kp-booking-panel--multi-days) { padding-bottom:200px; }
 .kp-client-booking-flow:has(.kp-booking-panel--multi-days) .kp-booking-recap { display:none; }
 .kp-booking-panel--multi-days .kp-booking-day-grid { display:flex; overflow-x:auto; padding-bottom:8px; }
 .kp-booking-panel--multi-days .kp-booking-day-card { flex:0 0 50px; }
 .kp-multi-day-list { border:1px solid var(--kp-color-border-soft); border-radius:16px; padding:16px; margin:20px 0 12px; }
 .kp-multi-day-list__mobile-title { display:block; }
 .kp-multi-day-list__desktop-title { display:none; }
 .kp-multi-day-sticky { position:fixed; left:12px; right:12px; bottom:calc(76px + env(safe-area-inset-bottom,0px)); z-index:18; margin:0; border:1px solid var(--kp-color-border-soft); border-radius:16px; padding:12px 16px; background:var(--kp-color-surface-white,#fff); box-shadow:0 -4px 20px rgba(43,53,112,.08); }
 .kp-multi-day-sticky .kp-button { flex-shrink:0; padding-inline:12px; }
 .kp-multi-day-sticky strong { font-size:15px; overflow-wrap:anywhere; }
 .kp-multi-day-row__actions > a { flex:1; }
}

.kp-multi-day-summary-desktop { display:none; }
@media(min-width:1100px) {
 .kp-multi-day-row .kp-multi-day-date { display:none; }
 .kp-multi-day-row[open] { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:12px; align-items:center; }
 .kp-multi-day-row > summary { grid-column:1; }
 .kp-multi-day-row > .kp-multi-day-row__actions { grid-column:2; grid-row:1; margin-top:0; }
 .kp-multi-day-row > .kp-multi-day-row__times { display:none; }
 .kp-multi-day-summary-mobile { display:none; }
 .kp-multi-day-summary-desktop { display:inline; }
}

/* The recap has no sidebar: keep a single content column at every width. */
.kp-client-booking-flow--multi-day-recap .kp-client-booking-flow__grid { grid-template-columns:minmax(0,1fr); }
.kp-multi-day-recap__day { padding-block:12px; border-bottom:1px solid var(--kp-color-border-soft); overflow-wrap:anywhere; }
.kp-multi-day-recap__day > strong { display:block; }
.kp-multi-day-recap__day p { margin-block:5px; }
.kp-multi-day-recap__day small { font-size:13px; }
.kp-multi-day-recap .kp-booking-price-total { margin-block:20px; gap:12px; flex-wrap:wrap; }
.kp-multi-day-recap .kp-booking-price-total strong { font-size:24px; overflow-wrap:anywhere; }
.kp-multi-day-recap > .kp-alert { margin-block:18px; }
.kp-multi-day-recap .kp-legal-consent { --kp-booking-consent-check-size:20px; align-items:start; }
.kp-multi-day-recap .kp-booking-actions { flex-direction:row; flex-wrap:wrap; gap:12px; justify-content:space-between; }
.kp-group-acquisition .kp-booking-actions { flex-wrap:wrap; gap:12px; }
.kp-group-acquisition .kp-booking-actions > * { min-width:0; max-width:100%; }
.kp-multi-day-recap .kp-booking-actions > * { min-width:0; max-width:100%; flex:none; width:auto; }
@media(max-width:760px) {
 .kp-group-acquisition .kp-booking-actions { flex-direction:column; align-items:stretch; }
 .kp-card.kp-booking-panel.kp-multi-day-recap { background:transparent; border:0; padding:0; box-shadow:none; }
 .kp-multi-day-recap__context { display:grid; grid-template-columns:minmax(0,1fr); gap:8px; margin-block:16px; }
 .kp-multi-day-recap__days,
 .kp-multi-day-recap__price-details { display:block; }
 .kp-multi-day-recap__price-panel { background:var(--kp-color-surface-card); border:1px solid var(--kp-color-border-soft); border-radius:12px; padding:16px; margin-block:12px; }
 .kp-multi-day-recap__day { border:0; border-radius:10px; padding:10px 12px; margin-bottom:8px; background:var(--kp-color-surface-blue); }
 .kp-multi-day-recap__day > strong,
 .kp-multi-day-recap__day p,
 .kp-multi-day-recap__day small { font-size:13px; }
 .kp-multi-day-recap__days small.is-homogeneous { display:none; }
 .kp-multi-day-recap__price-details h3 { font-size:13px; margin-block:18px 12px; }
 .kp-multi-day-recap .kp-booking-price-total { border-top:1px solid var(--kp-color-border-soft); padding-top:14px; margin-block:14px 0; }
 .kp-multi-day-recap .kp-booking-price-total > span { font-size:14px; }
 .kp-multi-day-recap .kp-booking-actions { flex-direction:column; align-items:flex-start; justify-content:space-between; border:0; padding:0; }
}

/* Common payment keeps the prototype's full-width primary action. */
.kp-group-payment fieldset { border:0; padding:16px 0; margin-inline:0; min-width:0; }
.kp-group-payment .kp-booking-actions--recap { display:block; }
.kp-group-payment .kp-booking-actions--recap > .kp-button { width:100%; }

.kp-client-group-payment-note { color:var(--kp-color-text-muted); font-size:14px; margin:12px 0; }

/* One recap surface: sidebar on wide screens, sticky action bar otherwise. */
.kp-client-booking-flow--multi-day-selection .kp-multi-day-sidebar-continue { margin-top:16px; }
.kp-client-booking-flow--multi-day-selection .kp-multi-day-sidebar-continue .kp-button { width:100%; }
@media(min-width:1100px) {
 .kp-client-booking-flow--multi-day-selection .kp-multi-day-list--inline,
 .kp-client-booking-flow--multi-day-selection .kp-multi-day-sticky { display:none; }
 .kp-client-booking-flow--multi-day-selection .kp-booking-recap { position:sticky; top:100px; align-self:start; max-height:calc(100dvh - 116px); overflow-y:auto; }
 .kp-client-booking-flow--multi-day-selection .kp-multi-day-sidebar-days { max-height:min(320px,30dvh); }
}
@media(max-width:1099px) {
 .kp-client-booking-flow--multi-day-selection .kp-client-booking-flow__grid { grid-template-columns:minmax(0,1fr); }
 .kp-client-booking-flow--multi-day-selection .kp-multi-day-sticky { bottom:calc(16px + env(safe-area-inset-bottom,0px)); }
}
@media(max-width:859px) {
 .kp-client-booking-flow--multi-day-selection .kp-multi-day-sticky { bottom:calc(76px + env(safe-area-inset-bottom,0px)); }
}
/* Avoid a non-scrolling body overflow container swallowing sticky positioning. */
body:has(.kp-client-booking-flow--multi-day-selection) { overflow-x:clip; overflow-y:visible; }

.kp-multi-day-sidebar-days > [data-sidebar-date] { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; }
.kp-multi-day-sidebar-day__info { min-width:0; overflow-wrap:anywhere; }
.kp-multi-day-sidebar-days .kp-multi-day-row__actions { margin-top:0; justify-content:flex-end; gap:6px; }
.kp-multi-day-sidebar-days .kp-multi-day-row__actions .kp-button { padding-inline:4px; font-size:12px; }

.kp-multi-day-row__actions button[value="remove"] { color:var(--kp-color-error-fg); }

/* Compact selected days and a direct route from the narrow sticky bar. */
#multi-day-chosen { scroll-margin-top:100px; }
.kp-multi-day-row--compact { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:center; padding-block:8px; }
.kp-multi-day-row__info { min-width:0; overflow-wrap:anywhere; }
.kp-multi-day-row__info > strong { display:block; font-size:13px; line-height:1.4; }
.kp-multi-day-row__info > p { margin:3px 0 0; font-size:12px; line-height:1.5; }
.kp-multi-day-row__info > small { display:block; font-size:12px; color:var(--kp-color-error-fg); }
.kp-multi-day-row--compact .kp-multi-day-row__actions { margin:0; gap:4px; justify-content:flex-end; }
.kp-multi-day-row--compact .kp-multi-day-row__actions > a { flex:none; }
.kp-multi-day-row--compact .kp-multi-day-row__actions .kp-button { font-size:12px; padding-inline:6px; }
.kp-multi-day-sticky [data-selected-days-link] { display:inline-flex; align-items:center; min-height:28px; font-size:13px; font-weight:700; color:var(--kp-color-brand-primary); text-decoration:underline; text-underline-offset:3px; }
@media(max-width:1099px) {
 .kp-multi-day-list { padding:12px 14px; border-radius:12px; }
 .kp-multi-day-list h3 { margin:0 0 4px; font-size:17px; }
 .kp-multi-day-list > p { margin:0 0 8px; font-size:12px; }
}
@media(max-width:480px) {
 .kp-multi-day-row--compact .kp-multi-day-row__actions { flex-direction:column; gap:0; align-items:flex-end; }
 .kp-multi-day-row--compact .kp-multi-day-row__actions form { flex-direction:column; gap:0; }
}

.kp-multi-day-sticky .kp-multi-day-sticky__count { display:flex; align-items:baseline; flex-wrap:wrap; column-gap:12px; font-weight:400; }
.kp-multi-day-sticky [data-selected-days-link] { font-weight:400; }

/* Confirmation reuses the established booking cards at every width. */
.kp-client-booking-flow--multi-day-recap { max-width:900px; }
.kp-multi-day-recap__context { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-block:20px; }
.kp-multi-day-recap__context > :last-child { grid-column:1 / -1; }
.kp-multi-day-recap__context .kp-booking-recap-block { padding:16px; border-radius:12px; background:var(--kp-color-surface-soft); }
.kp-multi-day-recap__price-panel { border:1px solid var(--kp-color-border-soft); border-radius:12px; padding:20px; margin-block:20px; background:var(--kp-color-surface-card); }
.kp-multi-day-recap__section-title, .kp-multi-day-recap__price-details h3 { margin:0 0 12px; font-size:16px; }
.kp-multi-day-recap__price-details { margin-top:20px; }
.kp-multi-day-recap__day { border:0; border-radius:10px; padding:12px 14px; margin-bottom:8px; background:var(--kp-color-surface-blue); }
.kp-multi-day-recap__day > strong, .kp-multi-day-recap__day p, .kp-multi-day-recap__day small { font-size:14px; }
.kp-multi-day-recap__days small.is-homogeneous { display:none; }
.kp-multi-day-recap .kp-booking-price-total { border-top:1px solid var(--kp-color-border-soft); padding-top:16px; margin-block:16px 0; }
.kp-multi-day-recap .kp-booking-price-total strong { font-size:28px; color:var(--kp-color-brand-primary); }
@media(max-width:760px) {
 .kp-multi-day-recap__context { grid-template-columns:minmax(0,1fr); gap:8px; margin-block:16px; }
 .kp-multi-day-recap__context .kp-booking-recap-block { padding:12px; background:var(--kp-color-surface-card); border:1px solid var(--kp-color-border-soft); }
 .kp-multi-day-recap__price-panel { padding:16px; }
 .kp-multi-day-recap__day > strong, .kp-multi-day-recap__day p, .kp-multi-day-recap__day small { font-size:13px; }
}

.kp-multi-day-recap .kp-booking-actions > .kp-button { padding:12px 20px; min-height:44px; box-sizing:border-box; }

.kp-group-acquisition .kp-booking-actions .kp-button { padding:12px 20px; min-height:44px; }

/* Confirmation keeps its existing cards with the desktop booking recap. */
.kp-client-booking-flow--multi-day-confirmation { max-width:none; }
.kp-group-confirmation-sidebar-days { max-height:320px; overflow:auto; margin-block:16px; }
.kp-group-confirmation-sidebar-days > div { padding-block:10px; border-top:1px solid var(--kp-color-border-soft); }
.kp-group-confirmation-sidebar-days strong { font-size:14px; }
.kp-group-confirmation-sidebar-days p { margin:4px 0 0; font-size:14px; }
@media (min-width:1100px) {
 .kp-client-booking-flow--multi-day-confirmation .kp-client-booking-flow__grid { grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr); }
}
@media (max-width:1099px) {
 .kp-client-booking-flow--multi-day-confirmation .kp-booking-recap { display:none; }
}

/* Multi-day payment retains the existing method panel and separate price card. */
.kp-group-payment { display:grid; gap:24px; min-width:0; }
.kp-group-payment .kp-booking-payment__summary.kp-booking-price-panel { position:static; }
.kp-group-payment .kp-booking-actions .kp-button { padding:12px 20px; min-height:44px; }
.kp-group-payment .kp-booking-actions { justify-content:flex-end; }
.kp-group-payment .kp-booking-price-total { display:flex; justify-content:space-between; gap:16px; align-items:center; border-top:1px solid var(--kp-color-border-soft); margin-top:16px; padding-top:16px; }
.kp-group-payment .kp-booking-price-total > strong { font-family:var(--kp-font-heading); font-size:30px; white-space:nowrap; }
.kp-group-payment .kp-booking-payment__summary > p { margin:0 0 16px; color:var(--kp-color-text-soft); }
.kp-group-payment-sidebar-days { margin:16px 0; border-block:1px solid var(--kp-color-border-soft); padding-block:8px; }
.kp-group-payment-sidebar-days > div { padding:8px 0; }
.kp-group-payment-sidebar-days strong, .kp-group-payment-sidebar-days span { display:block; font-size:14px; line-height:1.5; }
.kp-group-payment-sidebar-days span { color:var(--kp-color-text-soft); }
.kp-group-payment-dates { margin-top:16px; }
.kp-group-payment-dates summary { cursor:pointer; }
@media (min-width:1100px) {
 .kp-client-booking-flow--multi-day-payment .kp-client-booking-flow__grid { grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr); }
 .kp-client-booking-flow--multi-day-payment .kp-booking-recap { align-self:start; }
 .kp-client-booking-flow--multi-day-payment .kp-booking-recap .kp-group-payment-sidebar-days { max-height:320px; overflow-y:auto; }
}
@media (max-width:1099px) {
 .kp-client-booking-flow--multi-day-payment .kp-client-booking-flow__grid { grid-template-columns:minmax(0,1fr); }
 .kp-client-booking-flow--multi-day-payment .kp-booking-recap { display:none; }
}
@media (max-width:480px) {
 .kp-group-payment .kp-booking-payment__method-panel { padding:20px; }
 .kp-group-payment .kp-booking-actions .kp-button { width:100%; }
}

@media (min-width:860px) {
 .kp-group-payment .kp-booking-actions { justify-content:flex-end; }
 .kp-group-payment .kp-booking-actions > .kp-button { flex:none; width:auto; }
}

.kp-group-payment .kp-booking-payment__method-panel > .kp-button {
 margin-top:20px;
 padding:12px 20px;
 min-height:44px;
 box-sizing:border-box;
}

.kp-multi-day-row.is-needs-correction,
.kp-multi-day-sidebar-days > .is-needs-correction,
.kp-booking-slot-card.is-needs-correction {
 background:var(--kp-color-warning-bg, #fff3cd);
 border:1px solid var(--kp-color-warning-fg, #946200);
 border-radius:10px;
 padding:12px;
}
.kp-multi-day-correction { color:var(--kp-color-warning-fg, #946200); font-weight:700; }

/* Payment: one countdown, one visible summary and one submit action. */
.kp-group-payment .kp-booking-payment__guarantee-note { margin:0 0 20px; }
.kp-group-payment .kp-booking-payment__guarantee-note > span { display:grid; place-items:center; background:#fff; border-radius:50%; width:24px; height:24px; }
.kp-group-payment .kp-booking-payment__guarantee-note p { margin:0; font-size:13px; }
.kp-group-payment .kp-booking-payment__guarantee-note p > strong { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; }
.kp-group-payment .kp-booking-payment__guarantee-note [role="timer"] { font-size:20px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.kp-group-payment .kp-booking-payment__guarantee-note p > span { display:block; margin-top:4px; }
.kp-group-payment-sticky-info { display:none; }
#group-payment-days { scroll-margin-top:100px; }
.kp-client-booking-flow--multi-day-payment .kp-booking-recap .kp-booking-price-total { display:flex; justify-content:space-between; align-items:center; gap:12px; border-top:1px solid var(--kp-color-border-soft); padding-top:16px; margin-top:16px; }
.kp-client-booking-flow--multi-day-payment .kp-booking-recap .kp-booking-price-total strong { font-family:var(--kp-font-heading); font-size:26px; white-space:nowrap; }
@media (min-width:1100px) {
 .kp-group-payment .kp-booking-payment__summary { display:none; }
}
@media (max-width:1099px) {
 .kp-client-booking-flow--multi-day-payment:has(.kp-group-payment-actions) { padding-bottom:120px; }
 .kp-group-payment .kp-booking-payment__summary { padding:18px; }
 .kp-group-payment .kp-booking-payment__summary h3 { margin:0 0 8px; }
 .kp-group-payment .kp-booking-payment__summary > p { font-size:13px; margin-bottom:12px; }
 .kp-group-payment .kp-group-payment-sidebar-days { margin:12px 0; padding:0; }
 .kp-group-payment .kp-group-payment-sidebar-days > div { padding:10px 0; border-bottom:1px solid var(--kp-color-border-soft); }
 .kp-group-payment .kp-group-payment-sidebar-days > div:last-child { border-bottom:0; }
 .kp-group-payment .kp-group-payment-sidebar-days strong, .kp-group-payment .kp-group-payment-sidebar-days span { font-family:var(--kp-font-body); font-size:13px; }
 .kp-group-payment .kp-group-payment-actions { position:fixed; bottom:calc(16px + env(safe-area-inset-bottom,0px)); left:12px; right:12px; z-index:18; display:flex; flex-wrap:nowrap; align-items:center; justify-content:space-between; gap:12px; margin:0; padding:12px 16px; border:1px solid var(--kp-color-border-soft); border-radius:16px; background:var(--kp-color-surface-card); box-shadow:0 -4px 20px rgba(43,53,112,.08); }
 .kp-group-payment-sticky-info { display:block; min-width:0; flex:1; }
 .kp-group-payment-sticky-info > span { display:flex; align-items:baseline; flex-wrap:wrap; column-gap:12px; font-size:13px; }
 .kp-group-payment-sticky-info a { text-decoration:underline; text-underline-offset:3px; min-height:28px; display:inline-flex; align-items:center; }
 .kp-group-payment-sticky-info > strong { display:block; font-family:var(--kp-font-heading); font-size:20px; }
 .kp-group-payment .kp-group-payment-actions > .kp-button { flex:0 1 auto; width:auto; max-width:62%; white-space:normal; padding:12px; font-size:14px; line-height:1.3; }
}
@media (max-width:859px) {
 .kp-group-payment .kp-group-payment-actions { bottom:calc(76px + env(safe-area-inset-bottom,0px)); }
}

[data-testid="group-checkout-status"] > .kp-button { margin-top:20px; padding:12px 20px; min-height:44px; }

[data-group-quote-form] .is-acquisition-loading::before,
[data-group-checkout-form] .is-checkout-loading::before {
    content: "";
    display: inline-block;
    width: 1em;
    height: 1em;
    margin-right: .5em;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: kp-acquisition-spin .8s linear infinite;
}
@keyframes kp-acquisition-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
    [data-group-quote-form] .is-acquisition-loading::before,
    [data-group-checkout-form] .is-checkout-loading::before { animation: none; }
}
