.abcb-booking{
    --abcb-ink:#171717;
    --abcb-muted:#77736d;
    --abcb-line:#e7e2db;
    --abcb-soft:#f7f5f1;
    --abcb-accent:#b68a58;
    width:100%;
    margin:24px 0;
    color:var(--abcb-ink);
    font-family:inherit;
}
.abcb-booking *{box-sizing:border-box}
.abcb-steps{
    display:grid;
    grid-template-columns:1fr auto 1fr auto 1fr;
    align-items:center;
    gap:18px;
    padding:18px 24px;
    margin-bottom:18px;
    border:1px solid var(--abcb-line);
    background:#fff;
}
.abcb-step{display:flex;align-items:center;gap:12px;min-width:0}
.abcb-step__icon{
    width:34px;height:34px;border:1px solid #d9c9b6;border-radius:50%;
    display:flex;align-items:center;justify-content:center;flex:0 0 auto;font-weight:700
}
.abcb-step strong{display:block;font-size:11px;letter-spacing:.03em}
.abcb-step small{display:block;margin-top:3px;font-size:10px;color:var(--abcb-muted)}
.abcb-step__arrow{font-size:22px;color:var(--abcb-muted)}
.abcb-grid{
    display:grid;
    grid-template-columns:minmax(280px,.95fr) minmax(300px,1.05fr) minmax(300px,.92fr);
    gap:18px;
    align-items:stretch;
}
.abcb-card{
    min-width:0;
    padding:24px;
    border:1px solid var(--abcb-line);
    background:#fff;
}
.abcb-card h3{
    margin:0 0 22px;
    padding:0 0 14px;
    border-bottom:1px solid var(--abcb-line);
    font-size:14px;
    line-height:1.2;
    font-weight:700;
}
.abcb-calendar-head{
    display:grid;
    grid-template-columns:36px 1fr 36px;
    align-items:center;
    margin-bottom:16px;
}
.abcb-calendar-head strong{text-align:center;font-size:12px;letter-spacing:.05em}
.abcb-month-prev,.abcb-month-next{
    appearance:none;border:0;background:transparent;font-size:26px;cursor:pointer;color:var(--abcb-ink)
}
.abcb-weekdays,.abcb-calendar{
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:4px;
}
.abcb-weekdays{margin-bottom:6px}
.abcb-weekdays span{
    text-align:center;font-size:9px;font-weight:700;color:var(--abcb-muted)
}
.abcb-day{
    position:relative;
    appearance:none;
    aspect-ratio:1/1;
    border:0;
    border-radius:50%;
    background:transparent;
    color:#aaa59e;
    cursor:default;
    font-size:12px;
}
.abcb-day.is-other-month{opacity:.4}
.abcb-day.is-available{
    color:var(--abcb-ink);
    cursor:pointer;
    font-weight:600;
}
.abcb-day.is-available::after{
    content:'';
    position:absolute;
    left:50%;bottom:5px;
    width:4px;height:4px;border-radius:50%;
    transform:translateX(-50%);
    background:var(--abcb-accent);
}
.abcb-day.is-available:hover{
    background:var(--abcb-soft);
}
.abcb-day.is-active{
    background:var(--abcb-accent);
    color:#fff;
}
.abcb-day.is-active::after{background:#fff}
.abcb-calendar-legend{
    display:flex;flex-wrap:wrap;gap:18px;margin-top:18px;padding-top:14px;border-top:1px solid var(--abcb-line);
    font-size:10px;color:var(--abcb-muted)
}
.abcb-calendar-legend span{display:flex;align-items:center;gap:7px}
.abcb-calendar-legend i{width:9px;height:9px;border-radius:50%;background:#ece9e4;border:1px solid #ddd}
.abcb-calendar-legend i.is-available{background:var(--abcb-accent);border-color:var(--abcb-accent)}
.abcb-selected-date{
    min-height:42px;
    display:flex;align-items:center;
    padding:0 0 14px;
    margin-bottom:16px;
    border-bottom:1px solid var(--abcb-line);
    font-size:12px;font-weight:600;
}
.abcb-slots{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
}
.abcb-slot{
    appearance:none;
    min-height:54px;
    padding:10px 8px;
    border:1px solid var(--abcb-line);
    background:#fff;
    color:var(--abcb-ink);
    cursor:pointer;
    font-size:13px;
    font-weight:600;
}
.abcb-slot:hover{border-color:#aaa59e}
.abcb-slot.is-active{
    border-color:var(--abcb-accent);
    box-shadow:inset 0 0 0 1px var(--abcb-accent);
}
.abcb-placeholder{
    grid-column:1/-1;
    display:block;
    padding:14px;
    background:var(--abcb-soft);
    color:var(--abcb-muted);
    font-size:11px;
}
.abcb-duration-note{
    margin-top:22px;
    padding:13px 14px;
    border:1px solid var(--abcb-line);
    background:var(--abcb-soft);
    font-size:10px;
}
.abcb-consultant{
    display:flex;align-items:center;gap:12px;
    padding-bottom:18px;margin-bottom:8px;
}
.abcb-consultant__mark{
    width:48px;height:48px;border:1px solid #ddcfbf;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    font-family:serif;font-size:22px;flex:0 0 auto
}
.abcb-consultant small{display:block;color:var(--abcb-muted);font-size:10px}
.abcb-consultant strong{display:block;margin-top:2px;font-size:13px}
.abcb-summary-row{
    display:grid;
    grid-template-columns:88px minmax(0,1fr);
    gap:14px;
    align-items:center;
    padding:12px 0;
}
.abcb-summary-row span{font-size:10px;letter-spacing:.05em;color:var(--abcb-muted)}
.abcb-summary-row strong{font-size:11px;line-height:1.4}
.abcb-summary-price{
    margin-top:6px;padding-top:16px;border-top:1px solid var(--abcb-line)
}
.abcb-summary-price strong{font-size:18px}
.abcb-purchase-slot{margin-top:16px}
.abcb-purchase-slot .single_add_to_cart_button,
.woocommerce .abcb-purchase-slot .single_add_to_cart_button,
.woocommerce-page .abcb-purchase-slot .single_add_to_cart_button{
    float:none!important;
    width:100%!important;
    min-height:50px!important;
    margin:0!important;
    border:1px solid #2ea3f2!important;
    border-radius:0!important;
    background:var(--abcb-ink)!important;
    color:#fff!important;
    font-size:11px!important;
    font-weight:700!important;
    letter-spacing:.06em!important;
    text-transform:uppercase!important;
}
.abcb-purchase-slot .single_add_to_cart_button:hover{opacity:.86}
.abcb-purchase-slot .single_add_to_cart_button::after{display:none!important}
.abcb-disabled{opacity:.4!important;cursor:not-allowed!important}
.abcb-secure{
    margin-top:14px;text-align:center;font-size:10px;color:var(--abcb-muted)
}
.abcb-empty{padding:22px;border:1px solid var(--abcb-line);background:#fff}

@media(max-width:1100px){
    .abcb-steps{grid-template-columns:1fr 1fr 1fr}
    .abcb-step:nth-child(2),.abcb-step:nth-child(4){display:none}
    .abcb-grid{grid-template-columns:1fr 1fr}
    .abcb-summary{grid-column:1/-1}
}
@media(max-width:720px){
    .abcb-steps{grid-template-columns:1fr;gap:12px}
    .abcb-grid{grid-template-columns:1fr}
    .abcb-summary{grid-column:auto}
    .abcb-card{padding:18px}
    .abcb-slots{grid-template-columns:repeat(2,minmax(0,1fr))}
}
