.booking{max-width:720px}.booking .steps{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;padding:0;margin:1.5rem 0}.booking .steps li{flex:1;min-width:84px;text-align:center;font-size:.78rem;font-weight:700;color:var(--muted);padding:.5rem .25rem;border-bottom:3px solid var(--line)}.booking .steps li.is-current{color:var(--ink);border-color:var(--accent)}.booking .steps li.is-done{color:var(--primary-dark);border-color:var(--primary)}.booking .panel{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:1.5rem;box-shadow:var(--shadow)}.booking .panel legend{font-weight:800;font-size:1.15rem;padding:0 .4rem}.booking .panel__nav{display:flex;justify-content:space-between;gap:1rem;margin-top:1.5rem}.booking .row{display:grid;gap:1rem}@media(min-width:560px){.booking .row{grid-template-columns:1fr 1fr}}.booking .opt{font-weight:400;color:var(--muted)}.booking .field-error{margin:.35rem 0 0;color:var(--danger);font-size:.85rem;font-weight:600}.booking input.is-invalid,.booking select.is-invalid{border-color:var(--danger);outline-color:var(--danger)}.booking .panel-msg{margin:1rem 0 0;color:var(--danger);font-weight:600;font-size:.9rem}.booking .phone-row{display:flex;gap:.5rem}.booking .phone-row select{flex:0 0 auto;width:auto;max-width:44%}.booking .phone-row input{flex:1}.booking .lookup{margin:.4rem 0 0;font-size:.88rem;font-weight:600;padding:.5rem .7rem;border-radius:var(--radius-sm);background:#f4f4f2;color:var(--muted)}.booking .lookup--ok{background:#e5f3ea;color:var(--ok)}.booking .lookup--warn{background:#fff4e2;color:var(--warn)}.booking .lookup--busy{background:#f4f4f2;color:var(--muted)}.booking .size-auto{margin:.5rem 0 0;font-size:.9rem;background:#f2f6ef;border:1px solid #cfe0c6;border-radius:var(--radius-sm);padding:.5rem .75rem}.booking .size-auto__note{color:var(--muted);margin-left:.35rem}.booking .combo{position:relative}.booking .combo__list{position:absolute;z-index:20;top:calc(100% + 4px);left:0;right:0;margin:0;padding:.3rem;list-style:none;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow);max-height:260px;overflow-y:auto}.booking .combo__item{padding:.55rem .65rem;border-radius:8px;cursor:pointer;font-size:.95rem}.booking .combo__item:hover,.booking .combo__item.is-active{background:#f2f6ef}.booking .choice-grid{display:grid;gap:.75rem}@media(min-width:560px){.booking .choice-grid{grid-template-columns:1fr 1fr}}.booking .choice,.booking .service{display:block;border:1px solid var(--line);border-radius:var(--radius-sm);padding:1rem;cursor:pointer;transition:border-color .12s,background .12s}.booking .choice:has(input:checked),.booking .service:has(input:checked){border-color:var(--primary);background:#f2f6ef;box-shadow:inset 0 0 0 1px var(--primary)}.booking .choice:has(input:disabled){opacity:.55;cursor:not-allowed}.booking .choice input,.booking .service input{position:absolute;opacity:0;pointer-events:none}.booking .choice__body strong{display:block;margin-bottom:.2rem}.booking .choice__body span{color:var(--muted);font-size:.9rem}.booking .service-list{display:grid;gap:.6rem}.booking .service__body{display:block}.booking .service__name{display:block;font-weight:700}.booking .service__meta{display:block;color:var(--primary-dark);font-weight:600;font-size:.9rem;margin-top:.15rem}.booking .service__desc{display:block;color:var(--muted);font-size:.88rem;margin-top:.3rem}.booking #service-intro{margin-top:0}.booking .cal{border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem 1.1rem;background:#fff;max-width:420px}.booking .cal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.booking .cal__head strong{font-size:1.05rem;text-transform:capitalize}.booking .cal__nav{width:40px;height:40px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:1.2rem;line-height:1;cursor:pointer;color:var(--ink)}.booking .cal__nav:hover:not(:disabled){border-color:var(--primary);background:#f2f6ef}.booking .cal__nav:disabled{opacity:.3;cursor:not-allowed}.booking .cal__weekdays,.booking .cal__grid{display:grid;grid-template-columns:repeat(7,1fr)}.booking .cal__weekdays span{text-align:center;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding-bottom:.5rem}.booking .cal__grid{gap:4px;min-height:240px}.booking .cal__loading{grid-column:1 / -1;text-align:center;color:var(--muted);align-self:center}.booking .cal__cell{position:relative;aspect-ratio:1 / 1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;font-size:.95rem}.booking .cal__cell--empty{visibility:hidden}.booking .cal__cell--off{color:#bdb9ae}.booking .cal__cell--free{color:var(--ink);font-weight:700;cursor:pointer;background:#f2f6ef;border:1px solid #d8e6cf}.booking .cal__cell--free:hover{background:#e3efda;border-color:var(--primary)}.booking .cal__cell--free:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.booking .cal__cell--sel{background:var(--primary);border-color:var(--primary);color:#fff}.booking .cal__num{line-height:1}.booking .cal__dot{width:6px;height:6px;border-radius:999px;background:var(--accent);margin-top:4px}.booking .cal__cell--sel .cal__dot{background:#fff}.booking .cal__foot{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-top:.9rem;padding-top:.7rem;border-top:1px solid var(--line)}.booking .cal__legend{display:inline-flex;align-items:center;gap:.45rem;font-size:.82rem;color:var(--muted);font-weight:600}.booking .cal__legend .cal__dot{margin:0}.booking .cal__next-free{background:none;border:0;color:var(--primary-dark);font:inherit;font-weight:700;font-size:.88rem;cursor:pointer;padding:0}.booking .cal__next-free:hover{text-decoration:underline}.booking .cal__next-free:disabled{opacity:.5;cursor:default;text-decoration:none}.booking .slots{margin-top:1.5rem}.booking .slots__head{background:#f6f4ee;border-radius:var(--radius-sm);padding:.8rem 1rem;margin-bottom:1rem}.booking .slots__title{font-weight:700;margin:0;text-transform:capitalize}.booking .slots__dur{margin:.25rem 0 0;font-size:.9rem;color:var(--muted)}.booking .slots__group{font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:1.1rem 0 .5rem}.booking .slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:.55rem}.booking .slot{display:flex;flex-direction:column;align-items:center;gap:1px;padding:.6rem .4rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;font:inherit;cursor:pointer;transition:border-color .12s,background .12s,transform .04s}.booking .slot:hover{border-color:var(--primary);background:#f2f6ef}.booking .slot:active{transform:translateY(1px)}.booking .slot__t{font-weight:800;font-size:1.05rem}.booking .slot__e{font-size:.72rem;color:var(--muted)}.booking .slot.is-selected{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 2px 8px #5b755359}.booking .slot.is-selected .slot__e{color:#e9efe4}.booking .summary{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:.4rem 1rem}.booking .sumrow{display:flex;justify-content:space-between;align-items:baseline;gap:1.5rem;padding:.6rem 0;border-bottom:1px solid var(--line)}.booking .sumrow:last-child{border-bottom:0}.booking .sumrow__k{color:var(--muted);flex:0 0 auto}.booking .sumrow__v{font-weight:700;text-align:right}.booking .success h2{margin-top:0}
