/* lite-public-booking-ui-shared.css */html.is-booking-modal-open{
    overflow:hidden;
    overscroll-behavior:none;
}
body.is-booking-modal-open{
    position:fixed;
    left:0;
    right:0;
    width:100%;
    overflow:hidden;
    overscroll-behavior:none;
}.booking-picker__trigger{
    width:100%;
    display:grid;
    gap:6px;
    border:1px solid var(--booking-line);
    border-radius:20px;
    background:linear-gradient(180deg,#ffffff 0%, var(--booking-surface-3) 100%);
    text-align:left;
    cursor:pointer;
    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        transform .18s ease,
        background .18s ease;
}.booking-picker__trigger:hover{
    border-color:var(--booking-line-theme);
    box-shadow:var(--booking-shadow-interactive);
    transform:translateY(-1px);
}.booking-picker__trigger.is-selected{
    border-color:var(--booking-line-theme);
    background:linear-gradient(180deg,var(--booking-surface-3) 0%, var(--booking-accent) 100%);
    box-shadow:0 14px 30px color-mix(in srgb, var(--booking-accent-deep) 10%, transparent);
}.booking-picker__trigger-label{
    font-size:.82rem;
    font-weight:700;
    color:var(--booking-muted);
    text-transform:uppercase;
    letter-spacing:.03em;
}.booking-picker__trigger strong{
    
    line-height:1.45;
    color:var(--booking-text);
}.booking-picker__trigger-meta{
    font-size:.92rem;
    color:var(--booking-muted);
    line-height:1.5;
}.booking-specialist-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}.booking-specialist-grid.is-disabled{
    opacity:.92;
}.booking-specialist-card,
.booking-service-card{
    width:100%;
    display:grid;
    gap:6px;
    padding:16px 18px;
    border:1px solid var(--booking-line);
    border-radius:20px;
    background:linear-gradient(180deg,#ffffff 0%, var(--booking-surface-3) 100%);
    text-align:left;
    cursor:pointer;
    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        transform .18s ease,
        background .18s ease;
}.booking-specialist-card:hover,
.booking-service-card:hover{
    border-color:var(--booking-line-theme);
    box-shadow:var(--booking-shadow-interactive);
    transform:translateY(-1px);
}.booking-specialist-card.is-active,
.booking-service-card.is-active{
    border-color:var(--booking-line-theme);
    background:linear-gradient(180deg,var(--booking-surface-3) 0%, var(--booking-accent) 100%);
    box-shadow:0 14px 30px color-mix(in srgb, var(--booking-accent-deep) 10%, transparent);
}.booking-specialist-card__name,
.booking-service-card__name{
    font-size:1rem;
    font-weight:800;
    color:var(--booking-text);
    line-height:1.4;
}.booking-specialist-card__role,
.booking-service-card__meta{
    font-size:.92rem;
    color:var(--booking-muted);
    line-height:1.5;
}.booking-service-grid{
    display:grid;
    gap:12px;
}.booking-day-chip{
    
    flex-direction:column;
    
    border:1px solid var(--booking-line);
    
    
    
    
    transition:
        transform .16s ease,
        border-color .16s ease,
        background .16s ease,
        box-shadow .16s ease;
    box-sizing:border-box;
}.booking-day-chip::after{
    position:absolute;
    inset:auto 16px 0 16px;
    height:3px;
    border-radius:999px;
    background:linear-gradient(90deg, rgba(217,111,134,.18), rgba(217,111,134,0));
    opacity:0;
    transition:opacity .16s ease;
}.booking-day-chip:hover{
    border-color:var(--booking-line-theme);
    
}.booking-day-chip:hover::after{
    opacity:1;
}.booking-day-chip.is-active{
    border-color:var(--booking-line-theme);
}.booking-day-chip.is-active::after{
    opacity:1;
    background:linear-gradient(90deg, rgba(217,111,134,.90), rgba(244,169,185,.42));
}.booking-day-chip__meta{
    
    font-size:.88rem;
}.booking-modal{
    position:fixed;
    inset:0;
    z-index:80;
    
    max-width:100%;
    overflow:hidden;
    overscroll-behavior:none;
}.booking-modal.is-open{
    display:block;
}.booking-modal__backdrop{
    position:absolute;
    inset:0;
    background:rgba(15,23,42,.52);
    backdrop-filter:blur(3px);
    touch-action:none;
}.booking-modal__sheet{
    position:absolute;
    inset:0;
    box-sizing:border-box;
    width:100%;
    height:100dvh;
    max-height:100dvh;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior-y:contain;
    background:#fff;
    border:0;
    border-radius:0;
    box-shadow:none;
    padding:calc(14px + env(safe-area-inset-top,0px)) 16px calc(14px + env(safe-area-inset-bottom,0px));
}
@media (min-width:768px){
    .booking-modal__sheet{
        top:auto;
        bottom:0;
        height:auto;
        max-height:min(78dvh,720px);
        border-radius:24px 24px 0 0;
        box-shadow:0 -24px 60px rgba(15,23,42,.18);
        padding:18px 16px 22px;
    }
    .booking-modal__sheet--service{
        max-height:min(84dvh,820px);
    }
    .booking-modal__sheet--slots,
    .booking-modal__sheet--hours{
        max-height:min(78dvh,720px);
    }
    .booking-modal__sheet--success{
        max-height:min(88dvh,760px);
        padding:22px 18px 20px;
    }
    .booking-modal__sheet--no-show-payment{
        max-height:min(84dvh,820px);
    }
}.booking-modal__header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    margin-bottom:14px;
}.booking-modal__eyebrow{
    align-items:center;
    padding:7px 12px;
    border-radius:999px;
    background:var(--booking-accent);
    color:var(--booking-accent-deep);
    font-weight:800;
    font-size:.82rem;
}.booking-modal__header h3{
    margin:10px 0 4px;
    font-size:1.15rem;
}.booking-modal__lead{
    margin:0;
    color:var(--booking-muted);
    line-height:1.55;
}.booking-modal__close{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    flex:0 0 44px;
    border:1px solid color-mix(in srgb,var(--booking-line-theme) 28%,var(--booking-line));
    border-radius:999px;
    background:linear-gradient(180deg,#fff 0%,#fff5f8 100%);
    color:color-mix(in srgb,var(--booking-text) 84%,var(--booking-accent-deep));
    box-shadow:0 8px 20px rgba(122,81,72,.07);
    font-size:0;
    line-height:1;
    cursor:pointer;
    transition:transform .18s ease,background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease;
}.booking-modal__close>span,
.booking-modal__close>svg{
    display:none;
}.booking-modal__close::before,
.booking-modal__close::after{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    width:18px;
    height:1.8px;
    border-radius:999px;
    background:currentColor;
    transform-origin:center;
}.booking-modal__close::before{
    transform:translate(-50%,-50%) rotate(45deg);
}.booking-modal__close::after{
    transform:translate(-50%,-50%) rotate(-45deg);
}.booking-modal__close:hover{
    transform:translateY(-1px);
    border-color:color-mix(in srgb,var(--booking-accent-deep) 34%,var(--booking-line));
    background:linear-gradient(180deg,#fff 0%,#ffedf3 100%);
    color:var(--booking-accent-deep);
    box-shadow:0 11px 24px rgba(168,15,73,.10);
}.booking-modal__close:active{
    transform:translateY(0);
}.booking-modal__close:focus-visible{
    outline:none;
    box-shadow:0 0 0 4px color-mix(in srgb,var(--booking-accent-strong) 48%,transparent),0 11px 24px rgba(168,15,73,.10);
}.booking-modal,
.booking-modal *,
.booking-workspace-modal,
.booking-workspace-modal *{
    scrollbar-width:thin;
    scrollbar-color:color-mix(in srgb,var(--booking-accent-deep) 38%,#d8c9ce) transparent;
}.booking-modal::-webkit-scrollbar,
.booking-modal *::-webkit-scrollbar,
.booking-workspace-modal::-webkit-scrollbar,
.booking-workspace-modal *::-webkit-scrollbar{
    width:8px;
    height:8px;
}.booking-modal::-webkit-scrollbar-track,
.booking-modal *::-webkit-scrollbar-track,
.booking-workspace-modal::-webkit-scrollbar-track,
.booking-workspace-modal *::-webkit-scrollbar-track{
    background:transparent;
}.booking-modal::-webkit-scrollbar-thumb,
.booking-modal *::-webkit-scrollbar-thumb,
.booking-workspace-modal::-webkit-scrollbar-thumb,
.booking-workspace-modal *::-webkit-scrollbar-thumb{
    border:2px solid transparent;
    border-radius:999px;
    background:linear-gradient(180deg,color-mix(in srgb,var(--booking-accent-deep) 54%,#f1ced9),color-mix(in srgb,var(--booking-primary-2) 38%,#e8dce0));
    background-clip:padding-box;
}.booking-modal::-webkit-scrollbar-thumb:hover,
.booking-modal *::-webkit-scrollbar-thumb:hover,
.booking-workspace-modal::-webkit-scrollbar-thumb:hover,
.booking-workspace-modal *::-webkit-scrollbar-thumb:hover{
    background:linear-gradient(180deg,var(--booking-accent-deep),color-mix(in srgb,var(--booking-primary-2) 58%,var(--booking-accent-deep)));
    background-clip:padding-box;
}.booking-slots-container{
    display:grid;
    gap:12px;
    min-height:70px;
}.booking-slot-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
}.booking-slot-chip{
    position:relative;
    border:1px solid var(--booking-line);
    border-radius:16px;
    background:#fff;
    color:var(--booking-text);
    font-family:inherit;
    font-style:inherit;
    font-variant:inherit;
    font-stretch:inherit;
    line-height:inherit;
    font-optical-sizing:inherit;
    font-size-adjust:inherit;
    font-kerning:inherit;
    font-feature-settings:inherit;
    font-variation-settings:inherit;
    font-weight:800;
    cursor:pointer;
    transition:
        transform .16s ease,
        border-color .16s ease,
        background .16s ease,
        box-shadow .16s ease;
    box-sizing:border-box;
}.booking-slot-chip:hover{
    border-color:var(--booking-line-theme);
    background:var(--booking-surface-3);
}.booking-slot-chip.is-active{
    border-color:var(--booking-line-theme);
    background:linear-gradient(180deg,var(--booking-accent) 0%, var(--booking-accent-strong) 100%);
}@media (min-width: 900px){.booking-modal__sheet--service,
    .booking-modal__sheet--slots,
    .booking-modal__sheet--hours{
        left:50%;
        right:auto;
        bottom:24px;
        transform:translateX(-50%);
        width:min(720px, calc(100vw - 32px));
        border-radius:28px;
    }.booking-modal__sheet--success{
        top:50%;
        bottom:auto;
        left:50%;
        right:auto;
        transform:translate(-50%, -50%);
        width:min(560px, calc(100vw - 32px));
        border-radius:30px;
        box-shadow:0 28px 80px rgba(15,23,42,.20);
        padding:26px 24px 22px;
    }}@media (min-width: 760px){.booking-specialist-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }.booking-day-chip{
        flex-direction:row;
        align-items:center;
        justify-content:space-between;
        min-height:78px;
        gap:14px;
    }.booking-day-chip__label{
        max-width:62%;
    }.booking-day-chip__meta{
        text-align:right;
        max-width:38%;
    }}@media (max-width: 720px){.booking-picker__trigger{
        padding:14px 16px;
    }#booking-service-picker .booking-picker__trigger-label{
        display:none;
    }#booking-service-picker:not(.is-selected) .booking-picker__trigger-meta{
        display:none;
    }.booking-specialist-grid,
    .booking-day-grid,
    .booking-slot-grid{
        grid-template-columns:1fr;
    }.booking-slot-chip{
        min-height:52px;
    }.booking-service-card,
    .booking-specialist-card{
        padding:14px 16px;
    }.booking-modal__sheet--success{
        top:0;
        left:0;
        right:0;
        bottom:0;
        width:100%;
        height:auto;
        max-height:none;
        overflow:hidden;
        border:0;
        border-radius:0;
        box-shadow:none;
        padding:calc(14px + env(safe-area-inset-top)) 14px calc(14px + env(safe-area-inset-bottom));
        display:grid;
        grid-template-rows:auto minmax(0,1fr);
    }}@media (min-width:768px){
.booking-modal__sheet--specialist,
.booking-modal__sheet--summary,
.booking-modal__sheet--form,
.booking-modal__sheet--hours{
    max-height:min(84dvh, 820px);
}
}.booking-modal__section{
    display:grid;
    gap:12px;
}.booking-modal__section + .booking-modal__section{
    margin-top:18px;
}.booking-modal__section-head{
    display:grid;
    gap:4px;
}.booking-modal__section-head h4{
    margin:0;
    font-size:1rem;
}.booking-modal__section-head p{
    margin:0;
    color:var(--booking-muted);
    line-height:1.5;
}.booking-modal__actions{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:18px;
}.booking-modal__actions--form{
    margin-top:20px;
}.booking-button-secondary{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    font:inherit;
    font-weight:800;
    cursor:pointer;
    transition:border-color .16s ease, background .16s ease, transform .16s ease, box-shadow .16s ease;
}.booking-button-secondary:hover{
    transform:translateY(-1px);
    
}@media (max-width: 767px){.booking-modal__actions{
        flex-direction:column;
    }.booking-modal__actions > *{
        flex:1 1 auto;
        width:100%;
    }}@media (min-width: 900px){.booking-modal__sheet--specialist,
    .booking-modal__sheet--summary,
    .booking-modal__sheet--form,
    .booking-modal__sheet--hours,
    .booking-modal__sheet--no-show-payment{
        left:50%;
        right:auto;
        bottom:24px;
        transform:translateX(-50%);
        width:min(760px, calc(100vw - 32px));
        border-radius:28px;
    }}.booking-button-danger{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:52px;
    padding:14px 18px;
    border:1px solid #fecaca;
    border-radius:16px;
    background:linear-gradient(180deg,#fff5f5 0%, #fef2f2 100%);
    color:#b91c1c;
    font:inherit;
    font-weight:800;
    cursor:pointer;
    transition:border-color .16s ease, background .16s ease, transform .16s ease, box-shadow .16s ease;
}.booking-button-danger:hover{
    transform:translateY(-1px);
    border-color:#fca5a5;
    background:linear-gradient(180deg,#fff1f2 0%, #fee2e2 100%);
    box-shadow:0 12px 24px rgba(185,28,28,.10);
}.booking-button-danger:active{
    transform:translateY(0);
}.booking-modal{
    display:block;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .22s ease, visibility .22s ease;
}.booking-modal.is-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
}.booking-modal__backdrop{
    opacity:0;
    transition:opacity .24s ease;
}.booking-modal.is-open .booking-modal__backdrop{
    opacity:1;
}.booking-modal__sheet:not(.booking-step-modal){
    --booking-modal-sheet-transform-hidden: translateY(26px) scale(.985);
    --booking-modal-sheet-transform-visible: translateY(0) scale(1);
    transform:var(--booking-modal-sheet-transform-hidden);
    opacity:0;
    transition:transform .24s ease, opacity .24s ease;
}.booking-modal.is-open .booking-modal__sheet:not(.booking-step-modal){
    transform:var(--booking-modal-sheet-transform-visible);
    opacity:1;
}.booking-modal__header{
    position:relative;
}.booking-picker__trigger,
.booking-package-card,
.booking-service-card,
.booking-specialist-card,
.booking-day-chip,
.booking-slot-chip,
.booking-button-secondary,
.booking-button-danger{
    will-change:transform;
}@media (min-width: 900px){.booking-modal__sheet.booking-modal__sheet--service,
    .booking-modal__sheet.booking-modal__sheet--slots,
    .booking-modal__sheet.booking-modal__sheet--hours,
    .booking-modal__sheet.booking-modal__sheet--specialist,
    .booking-modal__sheet.booking-modal__sheet--summary,
    .booking-modal__sheet.booking-modal__sheet--form,
    .booking-modal__sheet.booking-modal__sheet--no-show-payment{
        --booking-modal-sheet-transform-hidden: translateX(-50%) translateY(18px) scale(.985);
        --booking-modal-sheet-transform-visible: translateX(-50%) translateY(0) scale(1);
    }.booking-modal__sheet.booking-modal__sheet--success{
        --booking-modal-sheet-transform-hidden: translate(-50%, calc(-50% + 18px)) scale(.985);
        --booking-modal-sheet-transform-visible: translate(-50%, -50%) scale(1);
    }}.booking-picker__trigger{padding:18px 18px;}.booking-picker__trigger strong{font-size:1.08rem;}.booking-flow-actions .booking-button-danger{width:100%;}.booking-modal__eyebrow{display:none;}.booking-success__hero .booking-modal__eyebrow{display:inline-flex;}@media (max-width: 767px){.booking-picker__trigger{padding:16px;}}.booking-modal__actions{
    align-items:center;
}.booking-modal__actions > *{
    flex:0 0 auto;
}.booking-modal__actions .booking-button-secondary,
.booking-modal__actions .booking-button-danger{
    width:auto;
    min-width:fit-content;
}.booking-button-secondary{
    position:relative;
    min-height:44px;
    padding:11px 16px;
    border:1px solid var(--booking-line-theme);
    border-radius:14px;
    background:linear-gradient(180deg,#ffffff 0%, var(--booking-surface-3) 100%);
    color:#0f172a;
    box-shadow:0 10px 22px rgba(15,23,42,.06);
}.booking-button-secondary:hover{
    border-color:var(--booking-line-theme);
    background:linear-gradient(180deg,#ffffff 0%, var(--booking-accent) 100%);
    box-shadow:0 14px 26px color-mix(in srgb, var(--booking-accent-deep) 12%, transparent);
}.booking-button-secondary--edit,
.booking-button-secondary--back{
    padding-left:14px;
    padding-right:14px;
}.booking-button-secondary--edit::before,
.booking-button-secondary--back::before{
    display:inline-block;
    margin-right:8px;
    font-size:.95rem;
    line-height:1;
}.booking-button-secondary--edit::before{
    content:"✦";
    color:var(--booking-accent-deep);
}.booking-button-secondary--back::before{
    content:"←";
    color:var(--booking-accent-deep);
    font-size:1rem;
}.booking-modal__actions--compact{
    justify-content:flex-start;
}.booking-modal__actions--compact > *{
    flex:0 0 auto;
}.booking-modal__actions .booking-button-secondary--edit{
    border-color:var(--booking-line-theme);
    background:linear-gradient(180deg,var(--booking-surface-3) 0%, var(--booking-accent) 100%);
}.booking-modal__actions .booking-button-secondary--edit:hover{
    background:linear-gradient(180deg,#ffffff 0%, var(--booking-accent) 100%);
}@media (min-width: 768px){.booking-modal__actions{
        justify-content:flex-start;
    }.booking-modal__actions--form{
        justify-content:space-between;
    }.booking-modal__actions--form .booking-submit__button{
        max-width:320px;
    }}@media (max-width: 767px){.booking-modal__actions{
        align-items:stretch;
    }.booking-modal__actions .booking-button-secondary,
    .booking-modal__actions .booking-button-danger,
    .booking-modal__actions .booking-submit__button{
        width:100%;
    }}.booking-modal__actions .booking-button-secondary{
    padding:10px 14px;
    border:1px solid color-mix(in srgb, var(--booking-line-theme) 46%, #ffffff);
    border-radius:13px;
    background:linear-gradient(180deg, rgba(250,252,255,.98) 0%, rgba(244,247,252,.98) 100%);
    color:#334155;
    font-size:.9rem;
    font-weight:700;
    box-shadow:0 6px 14px rgba(15,23,42,.04);
}.booking-modal__actions .booking-button-secondary:hover{
    border-color:var(--booking-line-theme);
    background:linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(240,245,252,1) 100%);
    color:#1e293b;
    box-shadow:0 10px 18px rgba(15,23,42,.07);
}.booking-modal__actions .booking-button-secondary--edit,
.booking-modal__actions .booking-button-secondary--back{
    padding-left:12px;
    padding-right:14px;
}.booking-modal__actions .booking-button-secondary--edit::before,
.booking-modal__actions .booking-button-secondary--back::before{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:22px;
    height:22px;
    margin-right:8px;
    border-radius:999px;
    background:color-mix(in srgb, var(--booking-accent-deep) 8%, transparent);
    color:var(--booking-accent-deep);
    font-size:.82rem;
    font-weight:800;
    line-height:1;
}.booking-modal__actions .booking-button-secondary--edit::before{
    content:"✦";
}.booking-modal__actions .booking-button-secondary--back::before{
    content:"←";
}.booking-modal__actions .booking-button-secondary--edit{
    border-style:solid;
}.booking-modal__actions .booking-button-secondary--back{
    border-style:dashed;
    color:#475569;
}.booking-modal__actions .booking-button-secondary--back::before{
    background:rgba(71,85,105,.08);
    color:#475569;
}.booking-modal__actions .booking-button-secondary--back:hover{
    border-color:#cbd5e1;
    color:#334155;
}@media (min-width: 768px){.booking-modal__actions .booking-button-secondary{
        min-width:168px;
    }}@media (min-width: 768px){.booking-modal__actions #booking-open-contact-modal.booking-submit__button--summary{
        width:auto;
        min-width:240px;
        max-width:280px;
        margin-left:auto;
        flex:0 0 auto;
    }}.booking-modal__actions--summary{
    align-items:center;
}@media (min-width: 768px){.booking-modal__actions--summary #booking-open-contact-modal.booking-submit__button--summary{
        
        margin-left:0;
        flex:0 0 auto;
    }}.booking-modal__actions .booking-submit__button{
    flex:0 0 auto;
}.booking-modal__actions--summary > *{
    flex:0 0 auto;
}.booking-modal__actions--summary .booking-button-secondary--back{
    min-height:44px;
}.booking-modal__actions--summary #booking-open-contact-modal.booking-submit__button--summary{
    padding:0 18px;
    font-size:.98rem;
    line-height:1.2;
    width:100%;
    max-width:none;
    flex:0 0 auto;
}.booking-modal__actions--summary .booking-button-danger{
    min-height:44px;
    padding:12px 16px;
    font-size:.94rem;
    box-shadow:none;
}@media (max-width: 767px){.booking-modal__actions--summary{
        flex-direction:column;
        align-items:stretch;
    }.booking-modal__actions--summary > *{
        width:100%;
        flex:0 0 auto;
    }.booking-modal__actions--summary [data-booking-clear-selection]{
        order:3;
    }}@media (min-width: 768px){.booking-modal__actions--summary{
        justify-content:flex-start;
    }.booking-modal__actions--summary #booking-open-contact-modal.booking-submit__button--summary{
        width:auto;
        min-width:210px;
        max-width:240px;
    }.booking-modal__actions--summary .booking-button-danger{
        width:auto;
        min-width:160px;
        margin-left:auto;
    }}.booking-modal__sheet--summary .booking-modal__header{
    margin-bottom:10px;
}.booking-modal__sheet--summary .booking-summary__edit{
    
    
    font-size:.74rem;
}.booking-modal__actions--summary #booking-open-contact-modal.booking-submit__button--summary{
    min-height:50px;
}@media (max-width: 767px){.booking-modal__sheet--summary{
        padding:14px 14px 16px;
    }.booking-modal__actions--summary{
        gap:8px;
    }.booking-modal__actions--summary #booking-open-contact-modal{
        order:1;
    }.booking-modal__actions--summary [data-booking-back-to-hours]{
        order:2;
    }}.booking-modal__sheet--form{
    padding-bottom:18px;
}.booking-modal__sheet--form .booking-modal__header{
    margin-bottom:8px;
}.booking-modal__sheet--form .booking-form-grid{
    gap:12px;
}.booking-modal__sheet--form .booking-field{
    gap:6px;
}.booking-modal__sheet--form .booking-field label{
    font-size:.88rem;
}.booking-modal__sheet--form .booking-field:not(.booking-field--contact) input,
.booking-modal__sheet--form .booking-field textarea{
    border-radius:14px;
}.booking-modal__sheet--form .booking-field:not(.booking-field--contact) input{
    min-height:48px;
    padding:0 14px;
}.booking-modal__sheet--form .booking-field textarea{
    min-height:108px;
    padding:12px 14px;
}.booking-modal__sheet--form .booking-consent{
    margin-top:14px;
    padding:12px 14px;
    border-radius:16px;
    font-size:.94rem;
    line-height:1.55;
}.booking-modal__sheet--form .booking-modal__actions--form{
    margin-top:16px;
    gap:10px;
}@media (min-width: 900px){.booking-modal__sheet--form{
        width:min(760px, calc(100vw - 32px));
    }}@media (max-width: 767px){.booking-modal__sheet--form{
        padding:14px 14px 16px;
    }.booking-modal__sheet--form .booking-form-grid{
        gap:10px;
    }.booking-modal__sheet--form .booking-field label{
        font-size:.86rem;
    }.booking-modal__sheet--form .booking-field:not(.booking-field--contact) input{
        min-height:46px;
        padding:0 13px;
    }.booking-modal__sheet--form .booking-field textarea{
        min-height:96px;
        padding:11px 13px;
    }.booking-modal__sheet--form .booking-consent{
        gap:10px;
        margin-top:12px;
        padding:11px 12px;
        font-size:.9rem;
    }}.booking-service-card,
.booking-specialist-card,
.booking-day-chip,
.booking-slot-chip{
    position:relative;
    overflow:hidden;
}.booking-service-card::before,
.booking-specialist-card::before,
.booking-day-chip::before,
.booking-slot-chip::before{
    content:"✓";
    position:absolute;
    top:12px;
    right:12px;
    display:flex;
    align-items:center;
    justify-content:center;
    width:24px;
    height:24px;
    border-radius:999px;
    border:1px solid color-mix(in srgb, var(--booking-line-theme) 30%, var(--booking-line));
    background:rgba(255,255,255,.94);
    color:transparent;
    font-size:.82rem;
    font-weight:900;
    box-shadow:0 6px 14px rgba(15,23,42,.06);
    transform:scale(.88);
    opacity:.72;
    transition:transform .18s ease, opacity .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
    pointer-events:none;
}.booking-service-card::after,
.booking-specialist-card::after,
.booking-slot-chip::after{
    content:"";
    position:absolute;
    inset:0;
    border-radius:inherit;
    padding:1px;
    background:linear-gradient(135deg, color-mix(in srgb, var(--booking-accent-strong) 36%, transparent) 0%, rgba(255,255,255,0) 45%, color-mix(in srgb, var(--booking-accent-strong) 22%, transparent) 100%);
    -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite:xor;
            mask-composite:exclude;
    opacity:0;
    transition:opacity .18s ease;
    pointer-events:none;
}.booking-service-card:hover,
.booking-specialist-card:hover{
    transform:translateY(-2px);
    border-color:color-mix(in srgb, var(--booking-line-theme) 85%, var(--booking-line));
    box-shadow:0 14px 28px color-mix(in srgb, var(--booking-accent-deep) 10%, transparent);
}.booking-service-card:hover::before,
.booking-specialist-card:hover::before,
.booking-day-chip:hover::before,
.booking-slot-chip:hover::before{
    opacity:1;
    border-color:color-mix(in srgb, var(--booking-line-theme) 55%, var(--booking-line));
    transform:scale(1);
}.booking-service-card:hover::after,
.booking-specialist-card:hover::after,
.booking-slot-chip:hover::after{
    opacity:.7;
}.booking-service-card.is-active,
.booking-specialist-card.is-active{
    border-color:color-mix(in srgb, var(--booking-line-theme) 95%, var(--booking-line));
    background:linear-gradient(180deg, color-mix(in srgb, #ffffff 78%, var(--booking-accent)) 0%, color-mix(in srgb, var(--booking-accent) 58%, #ffffff) 100%);
    box-shadow:0 18px 34px color-mix(in srgb, var(--booking-accent-deep) 14%, transparent);
}.booking-service-card.is-active::before,
.booking-specialist-card.is-active::before,
.booking-day-chip.is-active::before,
.booking-slot-chip.is-active::before{
    color:#ffffff;
    background:linear-gradient(180deg, var(--booking-accent-strong) 0%, var(--booking-accent-deep) 100%);
    border-color:transparent;
    opacity:1;
    transform:scale(1);
}.booking-service-card.is-active::after,
.booking-specialist-card.is-active::after,
.booking-slot-chip.is-active::after{
    opacity:1;
}.booking-service-card__name,
.booking-specialist-card__name{
    padding-right:34px;
}.booking-service-card__meta,
.booking-specialist-card__role{
    transition:color .18s ease;
}.booking-service-card.is-active .booking-service-card__meta,
.booking-specialist-card.is-active .booking-specialist-card__role{
    color:color-mix(in srgb, var(--booking-text) 72%, var(--booking-muted));
}.booking-day-chip{
    position:relative;
    display:grid;
    grid-template-columns:72px minmax(0,1fr) minmax(150px,190px);
    align-items:center;
    gap:16px;
    width:100%;
    min-height:96px;
    padding:12px 18px;
    border:1px solid color-mix(in srgb, var(--booking-line-theme) 28%, var(--booking-line));
    border-radius:22px;
    background:rgba(255,255,255,.90);
    color:var(--booking-text);
    font:inherit;
    text-align:left;
    cursor:pointer;
    box-shadow:0 10px 28px rgba(45,32,37,.035);
    transform:none;
}.booking-day-chip::after{
    content:none;
    display:none;
}.booking-day-chip::before{
    content:"";
    top:50%;
    right:18px;
    width:26px;
    height:26px;
    border:2px solid color-mix(in srgb, var(--booking-line-theme) 58%, var(--booking-line));
    background:#fff;
    color:transparent;
    box-shadow:inset 0 0 0 7px #fff,0 6px 16px rgba(45,32,37,.05);
    transform:translateY(-50%);
    opacity:1;
}.booking-day-chip:hover{
    transform:none;
    border-color:color-mix(in srgb, var(--booking-line-theme) 72%, var(--booking-line));
    background:#fff;
    box-shadow:0 14px 32px rgba(45,32,37,.07);
}.booking-day-chip:hover::before{
    transform:translateY(-50%);
    border-color:var(--booking-line-theme);
}.booking-day-chip.is-active{
    transform:none;
    border-color:color-mix(in srgb, var(--booking-accent-deep) 72%, var(--booking-line-theme));
    background:linear-gradient(135deg,rgba(255,255,255,.98) 0%,rgba(255,242,247,.88) 100%);
    box-shadow:0 16px 34px rgba(214,43,120,.10);
}.booking-day-chip.is-active::before{
    border-color:var(--booking-accent-deep);
    background:var(--booking-accent-deep);
    box-shadow:inset 0 0 0 6px #fff,0 8px 18px rgba(214,43,120,.16);
    transform:translateY(-50%);
}.booking-day-chip__calendar{
    display:grid;
    place-items:center;
    align-content:center;
    width:68px;
    height:68px;
    border:1px solid color-mix(in srgb, var(--booking-line-theme) 32%, var(--booking-line));
    border-radius:17px;
    background:linear-gradient(180deg,#fff7fa 0%,#fff1f5 100%);
    color:var(--booking-accent-deep);
    line-height:1;
}.booking-day-chip__calendar span{
    margin-bottom:4px;
    font-size:.66rem;
    font-weight:900;
    letter-spacing:.04em;
}.booking-day-chip__calendar strong{
    font-size:1.55rem;
    font-weight:800;
}.booking-day-chip__body{
    display:grid;
    gap:7px;
    min-width:0;
}.booking-day-chip__label{
    padding:0;
    font-size:1rem;
    font-weight:800;
    line-height:1.35;
    color:var(--booking-text);
}.booking-day-chip__status{
    display:inline-flex;
    align-items:center;
    gap:7px;
    width:max-content;
    max-width:100%;
    color:#159447;
    font-size:.84rem;
    font-weight:700;
}.booking-day-chip__status i{
    width:9px;
    height:9px;
    flex:0 0 9px;
    border-radius:999px;
    background:#22c55e;
    box-shadow:0 0 0 4px rgba(34,197,94,.10);
}.booking-day-chip__meta{
    display:grid;
    justify-items:end;
    gap:2px;
    min-width:0;
    padding:0 44px 0 0;
    color:var(--booking-muted);
    text-align:right;
    line-height:1.28;
}.booking-day-chip__meta strong{
    color:color-mix(in srgb,var(--booking-text) 72%,var(--booking-muted));
    font-size:.88rem;
    font-weight:700;
    white-space:nowrap;
}.booking-day-chip__meta span{
    font-size:.84rem;
    white-space:nowrap;
}.booking-modal__sheet--date-picker{
    width:100%;
    height:100dvh;
    max-height:100dvh;
    padding:14px 14px 0;
    overflow:hidden;
    grid-template-rows:auto auto minmax(0,1fr) auto;
    border-radius:0;
}
@media (min-width:768px){
    .booking-modal__sheet--date-picker{
        width:min(860px,calc(100vw - 32px));
        height:auto;
        max-height:min(88dvh,860px);
        padding:24px 24px 0;
        border-radius:30px;
    }
}
.booking-modal__sheet--date-picker.booking-modal__sheet{
    display:grid;
}.booking-date-modal__header{
    margin-bottom:16px;
    align-items:center;
}.booking-date-modal__heading{
    display:flex;
    align-items:center;
    gap:14px;
    min-width:0;
}.booking-date-modal__icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 56px;
    width:56px;
    height:56px;
    border-radius:18px;
    color:var(--booking-accent-deep);
    background:linear-gradient(180deg,#fff2f7 0%,#ffe8f1 100%);
    box-shadow:0 10px 24px rgba(214,43,120,.08);
}.booking-date-modal__icon svg{
    width:27px;
    height:27px;
}.booking-date-modal__header h3{
    margin:0 0 5px;
    font-family:"Cormorant Garamond",Georgia,serif;
    font-size:2rem;
    line-height:1;
    letter-spacing:-.025em;
}.booking-date-modal__hint{
    display:flex;
    align-items:center;
    gap:10px;
    margin:0 0 14px;
    padding:12px 14px;
    border:1px solid color-mix(in srgb,var(--booking-line-theme) 32%,var(--booking-line));
    border-radius:17px;
    background:linear-gradient(135deg,rgba(255,244,248,.92),rgba(255,255,255,.94));
    color:color-mix(in srgb,var(--booking-muted) 86%,#4f3440);
    font-size:.9rem;
}.booking-date-modal__hint-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:26px;
    height:26px;
    flex:0 0 26px;
    border-radius:999px;
    background:linear-gradient(180deg,#ee5d9b,#d62b78);
    color:#fff;
    font-size:.78rem;
    font-weight:900;
    font-style:normal;
}.booking-date-modal__section{
    min-height:0;
    overflow-x:hidden;
    overflow-y:auto;
    padding:2px 8px 14px 0;
    scrollbar-gutter:auto;
}.booking-date-modal__section .booking-day-grid{
    grid-template-columns:1fr;
    gap:10px;
}.booking-date-modal__actions{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin:0 -24px;
    padding:16px 24px max(18px,env(safe-area-inset-bottom));
    border-top:1px solid color-mix(in srgb,var(--booking-line-theme) 24%,var(--booking-line));
    background:rgba(255,250,252,.96);
    backdrop-filter:blur(12px);
}.booking-date-modal__actions .booking-button-secondary--back{
    min-width:160px;
}.booking-date-modal__continue{
    width:min(100%,360px);
    min-height:54px;
    background:linear-gradient(135deg,#a80f49 0%,#c71862 52%,#d62b78 100%);
    box-shadow:0 16px 34px rgba(168,15,73,.20);
}.booking-date-modal__continue::after{
    content:"→";
    margin-left:10px;
    font-size:1.16em;
}.booking-date-modal__continue:disabled,
.booking-date-modal__continue[aria-disabled="true"]{
    cursor:not-allowed;
    opacity:.48;
    box-shadow:none;
    filter:grayscale(.15);
}
@media (max-width:720px){
    .booking-modal__sheet--date-picker{
        padding:18px 14px 0;
    }
    .booking-date-modal__heading{
        gap:10px;
    }
    .booking-date-modal__icon{
        flex-basis:44px;
        width:44px;
        height:44px;
        border-radius:14px;
    }
    .booking-date-modal__icon svg{
        width:22px;
        height:22px;
    }
    .booking-date-modal__header h3{
        font-size:1.55rem;
    }
    .booking-date-modal__header .booking-modal__lead{
        font-size:.84rem;
        line-height:1.4;
    }
    .booking-date-modal__hint{
        margin-bottom:10px;
        padding:10px 11px;
        font-size:.82rem;
    }
    .booking-day-chip{
        grid-template-columns:58px minmax(0,1fr) auto;
        gap:11px;
        min-height:90px;
        padding:10px 48px 10px 12px;
        border-radius:19px;
    }
    .booking-day-chip__calendar{
        width:56px;
        height:62px;
        border-radius:15px;
    }
    .booking-day-chip__calendar strong{
        font-size:1.35rem;
    }
    .booking-day-chip__label{
        font-size:.9rem;
    }
    .booking-day-chip__status{
        font-size:.76rem;
    }
    .booking-day-chip__meta{
        grid-column:auto;
        justify-self:end;
        justify-items:end;
        align-self:center;
        min-width:134px;
        margin:0;
        padding:0;
        text-align:right;
    }
    .booking-day-chip__meta strong,
    .booking-day-chip__meta span{
        font-size:.75rem;
        white-space:nowrap;
    }
    .booking-day-chip::before{
        top:14px;
        right:12px;
        width:22px;
        height:22px;
        transform:none;
    }
    .booking-day-chip:hover::before,
    .booking-day-chip.is-active::before{
        transform:none;
    }
    
    
    @media (max-width:520px){
        .booking-day-chip{
            grid-template-columns:54px minmax(0,1fr);
            padding-right:46px;
        }
        .booking-day-chip__calendar{
            width:52px;
            height:58px;
        }
        .booking-day-chip__meta{
            grid-column:2 / 3;
            justify-self:start;
            display:flex;
            align-items:baseline;
            gap:6px;
            min-width:0;
            margin-top:-3px;
            text-align:left;
        }
    }
    .booking-date-modal__actions{
        display:grid;
        grid-template-columns:1fr;
        gap:9px;
        margin:0 -14px;
        padding:13px 14px max(14px,env(safe-area-inset-bottom));
    }
    .booking-date-modal__actions .booking-button-secondary--back,
    .booking-date-modal__continue{
        width:100%;
        min-width:0;
        max-width:none;
    }
    .booking-date-modal__continue{
        order:1;
    }
    .booking-date-modal__actions .booking-button-secondary--back{
        order:2;
    }
}
.booking-slot-chip{
    min-height:52px;
    padding:12px 40px 12px 16px;
    font-size:.98rem;
    letter-spacing:.01em;
}.booking-slot-chip::before{
    top:50%;
    right:12px;
    width:20px;
    height:20px;
    transform:translateY(-50%) scale(.88);
    font-size:.72rem;
}.booking-slot-chip:hover::before,
.booking-slot-chip.is-active::before{
    transform:translateY(-50%) scale(1);
}.booking-slot-chip:hover{
    transform:translateY(-1px);
    border-color:color-mix(in srgb, var(--booking-line-theme) 85%, var(--booking-line));
    background:linear-gradient(180deg, #ffffff 0%, color-mix(in srgb, var(--booking-surface-3) 80%, #ffffff) 100%);
    box-shadow:0 12px 22px color-mix(in srgb, var(--booking-accent-deep) 7%, transparent);
}.booking-slot-chip.is-active{
    border-color:color-mix(in srgb, var(--booking-line-theme) 95%, var(--booking-line));
    background:linear-gradient(180deg, color-mix(in srgb, #ffffff 74%, var(--booking-accent)) 0%, color-mix(in srgb, var(--booking-accent) 64%, #ffffff) 100%);
    color:var(--booking-text);
    box-shadow:0 14px 24px color-mix(in srgb, var(--booking-accent-deep) 14%, transparent);
}@media (max-width: 767px){.booking-service-card,
    .booking-specialist-card{
        padding:15px 16px;
    }.booking-service-card::before,
    .booking-specialist-card::before{
        width:22px;
        height:22px;
        top:10px;
        right:10px;
    }.booking-slot-chip{
        min-height:50px;
        font-size:.94rem;
    }}.booking-modal__sheet--summary{
    background:
        radial-gradient(circle at top right, rgba(191,219,254,.14), transparent 30%),
        linear-gradient(180deg, #ffffff 0%, #fffaf8 100%);
}.booking-modal__sheet--summary .booking-modal__header,
.booking-modal__sheet--form .booking-modal__header{
    margin-bottom:10px;
}.booking-modal__sheet--summary .booking-modal__lead{
    font-size:.93rem;
    line-height:1.52;
}.booking-modal__sheet--summary .booking-summary__edit{
    min-height:28px;
    padding:0 9px;
}.booking-modal__actions--summary{
    margin-top:14px;
    gap:10px;
}.booking-modal__sheet--form{
    background:
        radial-gradient(circle at top right, rgba(191,219,254,.12), transparent 28%),
        linear-gradient(180deg, #ffffff 0%, #fffaf8 100%);
}.booking-modal__sheet--form .booking-form-grid{
    margin-top:2px;
}@media (min-width: 560px){}@media (min-width: 900px){.booking-modal__sheet--summary{
        width:min(700px, calc(100vw - 32px));
    }}@media (max-width: 767px){}.booking-modal__sheet--service,
.booking-modal__sheet--packages,
.booking-modal__sheet--slots,
.booking-modal__sheet--hours,
.booking-modal__sheet--specialist,
.booking-modal__sheet--summary,
.booking-modal__sheet--form,
.booking-modal__sheet--no-show-payment{
    border:1px solid color-mix(in srgb,var(--booking-line-theme) 30%,rgba(255,255,255,.72));
    background:
        radial-gradient(circle at 88% 4%,rgba(255,225,234,.48),transparent 28%),
        linear-gradient(180deg,#fff 0%,#fffafb 100%);
    box-shadow:0 34px 90px rgba(45,32,37,.18);
}.booking-picker__trigger,
.booking-service-card,
.booking-specialist-card,
.booking-day-chip,
.booking-slot-chip,
.booking-submit__button,
.booking-button-secondary,
.booking-button-danger,
.booking-company__social-link{
    transition:
        transform .18s ease,
        box-shadow .22s ease,
        border-color .18s ease,
        background .22s ease,
        opacity .18s ease,
        color .18s ease;
}.booking-picker__trigger:active,
.booking-package-card:active,
.booking-service-card:active,
.booking-specialist-card:active,
.booking-day-chip:active,
.booking-slot-chip:active,
.booking-submit__button:active,
.booking-button-secondary:active,
.booking-button-danger:active,
.booking-company__social-link:active{
    transform:translateY(1px) scale(.992);
}.booking-modal__sheet{
    will-change:transform, opacity;
}.booking-modal.is-open .booking-modal__backdrop{
    backdrop-filter:blur(3px);
}.booking-specialist-grid.is-loading,
.booking-dates-container.is-loading,
.booking-mobile-slots-container.is-loading{
    pointer-events:none;
}.booking-package-card:hover,
.booking-service-card:hover,
.booking-specialist-card:hover,
.booking-day-chip:hover,
.booking-slot-chip:hover{
    z-index:1;
}.booking-package-card.is-active,
.booking-service-card.is-active,
.booking-specialist-card.is-active,
.booking-slot-chip.is-active{
    animation:bookingCardSelected .26s ease;
}.booking-card,.booking-hero__panel{
    box-shadow:0 20px 48px rgba(15,23,42,.06);
}.booking-modal__header{
    gap:8px;
}.booking-modal__lead,.booking-company__description{
    text-wrap:balance;
}.booking-flow-overview__item{
    box-shadow:0 8px 18px rgba(15,23,42,.035);
}.booking-picker__trigger strong,.booking-flow-overview__item strong{
    letter-spacing:-.01em;
}.booking-modal__actions{
    padding-top:2px;
}.booking-submit__button,.booking-button-secondary,.booking-button-danger,.booking-summary__edit,.booking-flow-edit,.booking-company__social-link,.booking-service-card,.booking-specialist-card,.booking-day-chip,.booking-slot-chip,.booking-picker__trigger,.booking-field input,.booking-field textarea{
    outline:none;
}.booking-submit__button:focus-visible,.booking-button-secondary:focus-visible,.booking-button-danger:focus-visible,.booking-summary__edit:focus-visible,.booking-flow-edit:focus-visible,.booking-company__social-link:focus-visible,.booking-package-card:focus-visible,.booking-service-card:focus-visible,.booking-specialist-card:focus-visible,.booking-day-chip:focus-visible,.booking-slot-chip:focus-visible,.booking-picker__trigger:focus-visible,.booking-field input:focus-visible,.booking-field textarea:focus-visible{
    box-shadow:0 0 0 4px color-mix(in srgb, var(--booking-accent-strong) 55%, transparent), 0 12px 22px rgba(15,23,42,.08);
    border-color:color-mix(in srgb, var(--booking-line-theme) 90%, var(--booking-line));
}.booking-modal__sheet--success .booking-success__actions{
    margin-top:4px;
}@media (min-width: 768px){.booking-modal__header{
        margin-bottom:12px;
    }}.booking-modal.is-open.is-switching-in,
.booking-modal.is-open.is-switching-out{
    visibility:visible;
    pointer-events:none;
}
.booking-modal.is-open.is-switching-in{
    z-index:42;
}
.booking-modal.is-open.is-switching-out{
    z-index:41;
}
.booking-modal.is-open.is-switching-out .booking-modal__backdrop{
    opacity:.35;
    transition:opacity .22s ease;
}
.booking-modal.is-open.is-switching-in .booking-modal__backdrop{
    opacity:1;
    transition:opacity .22s ease;
}
.booking-modal.is-open.is-switching-in .booking-modal__sheet,
.booking-modal.is-open.is-switching-out .booking-modal__sheet{
    transition:transform .22s cubic-bezier(.22,1,.36,1), opacity .22s cubic-bezier(.22,1,.36,1);
    filter:none;
}
.booking-modal.is-open.is-switching-in .booking-modal__sheet{
    animation:none;
    transform:var(--booking-modal-sheet-transform-visible);
    opacity:1;
}
.booking-modal.is-open.is-switching-out .booking-modal__sheet{
    animation:none;
    transform:translateY(10px) scale(.992);
    opacity:0;
}
@media (min-width:768px){
    .booking-modal[data-modal-motion="forward"].is-open.is-switching-in .booking-modal__sheet{
        animation:bookingModalSwitchInForwardStrong .30s cubic-bezier(.22,1,.36,1);
    }
    .booking-modal[data-modal-motion="backward"].is-open.is-switching-in .booking-modal__sheet{
        animation:bookingModalSwitchInBackwardStrong .30s cubic-bezier(.22,1,.36,1);
    }
    .booking-modal[data-modal-motion="forward"].is-open.is-switching-out .booking-modal__sheet{
        transform:translateX(-34px) scale(.978);
        opacity:0;
        filter:blur(1px);
    }
    .booking-modal[data-modal-motion="backward"].is-open.is-switching-out .booking-modal__sheet{
        transform:translateX(34px) scale(.978);
        opacity:0;
        filter:blur(1px);
    }
}
