.reservar-root{min-height:100dvh;font-family:var(--font-body), "DM Sans", system-ui, sans-serif;color:#1c1917;background:#fafaf9;justify-content:center;display:flex;position:relative}.reservar-bg{z-index:0;pointer-events:none;background:radial-gradient(ellipse 80% 40% at 50% -10%, var(--brand-light,#eff6ff) 0%, transparent 70%), radial-gradient(ellipse 60% 50% at 100% 100%, var(--brand-light,#eff6ff) 0%, transparent 60%);position:fixed;inset:0}.reservar-container{z-index:1;flex-direction:column;width:100%;max-width:540px;min-height:100dvh;padding:2rem 1.25rem;display:flex;position:relative}.reservar-header{text-align:center;margin-bottom:2rem}.reservar-logo{object-fit:cover;border-radius:16px;width:64px;height:64px;margin:0 auto 1rem;box-shadow:0 2px 8px #00000014}.reservar-logo-placeholder{width:64px;height:64px;font-family:var(--font-heading), "Syne", system-ui, sans-serif;color:#fff;border-radius:16px;justify-content:center;align-items:center;margin:0 auto 1rem;font-size:1.75rem;font-weight:700;display:flex;box-shadow:0 2px 8px #0000001a}.reservar-title{font-family:var(--font-heading), "Syne", system-ui, sans-serif;letter-spacing:-.02em;margin:0 0 .25rem;font-size:1.5rem;font-weight:700}.reservar-subtitle{color:#78716c;margin:0;font-size:.9rem}.reservar-stepper{justify-content:center;align-items:flex-start;gap:.25rem;margin-bottom:2rem;display:flex}.reservar-step{flex-direction:column;flex:1;align-items:center;gap:.35rem;max-width:120px;display:flex;position:relative}.reservar-step:after{content:"";z-index:0;background:#e7e5e4;width:calc(100% - 28px);height:2px;position:absolute;top:12px;left:calc(50% + 14px)}.reservar-step:last-child:after{display:none}.reservar-step.done:after{background:var(--brand,#2563eb)}.reservar-step-dot{z-index:1;color:#a8a29e;background:#e7e5e4;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:.7rem;font-weight:600;transition:all .2s;display:flex}.reservar-step.active .reservar-step-dot{background:var(--brand,#2563eb);color:#fff;box-shadow:0 0 0 4px var(--brand-ring,#2563eb33)}.reservar-step.done .reservar-step-dot{background:var(--brand,#2563eb);color:#fff}.reservar-step-label{color:#a8a29e;text-align:center;font-size:.65rem;font-weight:500;line-height:1.2}.reservar-step.active .reservar-step-label{color:var(--brand,#2563eb);font-weight:600}.reservar-step.done .reservar-step-label{color:#57534e}.reservar-main{flex:1}.reservar-footer{text-align:center;color:#a8a29e;margin-top:auto;padding:2rem 0 .5rem;font-size:.75rem}.reservar-footer a{color:var(--brand,#2563eb);font-weight:600;text-decoration:none}.paso-back{color:#78716c;cursor:pointer;background:0 0;border:none;align-items:center;gap:.25rem;margin-bottom:1rem;padding:0;font-size:.85rem;font-weight:500;transition:color .15s;display:inline-flex}.paso-back:hover{color:var(--brand,#2563eb)}.paso-titulo{font-family:var(--font-heading), "Syne", system-ui, sans-serif;letter-spacing:-.01em;margin:0 0 .5rem;font-size:1.25rem;font-weight:700}.paso-subtitulo{color:#78716c;margin:0 0 1.5rem;font-size:.875rem}.reservar-btn{background:var(--brand,#2563eb);color:#fff;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:.5rem;width:100%;margin-top:1.5rem;padding:.875rem 1.5rem;font-size:.95rem;font-weight:600;transition:background .15s,transform .1s,box-shadow .15s;display:inline-flex;box-shadow:0 1px 3px #0000001a}.reservar-btn:hover:not(:disabled){background:var(--brand-dark,#1d4ed8);box-shadow:0 4px 12px var(--brand-ring,#2563eb4d);transform:translateY(-1px)}.reservar-btn:active:not(:disabled){transform:translateY(0)}.reservar-btn:disabled{opacity:.6;cursor:not-allowed}.reservar-btn.confirmar{padding:1rem 1.5rem;font-size:1.05rem}.reservar-empty{text-align:center;color:#78716c;padding:3rem 1rem}.reservar-empty-icon{color:#d6d3d1;margin:0 auto 1rem}.paso-categoria{margin-bottom:1.5rem}.paso-categoria-titulo{text-transform:uppercase;letter-spacing:.06em;color:#a8a29e;border-bottom:1px solid #e7e5e4;margin:0 0 .75rem;padding-bottom:.5rem;font-size:.75rem;font-weight:600}.paso-servicios-grid{flex-direction:column;gap:.5rem;display:flex}.servicio-card{cursor:pointer;text-align:left;background:#fff;border:1px solid #e7e5e4;border-radius:12px;width:100%;padding:1rem 1.15rem;transition:border-color .15s,box-shadow .15s,transform .1s;display:block}.servicio-card:hover{border-color:var(--brand,#2563eb);box-shadow:0 2px 8px var(--brand-ring,#2563eb1f);transform:translateY(-1px)}.servicio-card-body{justify-content:space-between;align-items:center;gap:1rem;display:flex}.servicio-card-info{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:flex}.servicio-nombre{color:#1c1917;font-size:.95rem;font-weight:600}.servicio-desc{color:#78716c;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.8rem;display:-webkit-box;overflow:hidden}.servicio-meta{flex-wrap:wrap;gap:.75rem;margin-top:.3rem;display:flex}.servicio-duracion,.servicio-especialistas{color:#a8a29e;align-items:center;gap:.3rem;font-size:.75rem;display:inline-flex}.servicio-card-precio{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.servicio-precio{color:var(--brand,#2563eb);white-space:nowrap;font-size:.95rem;font-weight:700}.servicio-arrow{color:#d6d3d1;transition:color .15s,transform .15s}.servicio-card:hover .servicio-arrow{color:var(--brand,#2563eb);transform:translate(2px)}.paso-servicio-badge{background:var(--brand-light,#eff6ff);color:var(--brand,#2563eb);border-radius:100px;margin-bottom:1.5rem;padding:.35rem .85rem;font-size:.8rem;font-weight:600;display:inline-block}.calendario{background:#fff;border:1px solid #e7e5e4;border-radius:16px;margin-bottom:1.5rem;padding:1.25rem}.calendario-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.calendario-mes{font-family:var(--font-heading), "Syne", system-ui, sans-serif;font-size:1rem;font-weight:700}.calendario-nav{color:#57534e;cursor:pointer;background:#fff;border:1px solid #e7e5e4;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:border-color .15s,color .15s;display:flex}.calendario-nav:hover:not(:disabled){border-color:var(--brand,#2563eb);color:var(--brand,#2563eb)}.calendario-nav:disabled{opacity:.3;cursor:not-allowed}.calendario-dias-header{text-align:center;color:#a8a29e;text-transform:uppercase;letter-spacing:.05em;grid-template-columns:repeat(7,1fr);margin-bottom:.5rem;font-size:.7rem;font-weight:600;display:grid}.calendario-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calendario-dia{aspect-ratio:1;color:#1c1917;cursor:pointer;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;font-size:.85rem;font-weight:500;transition:background .12s,color .12s,box-shadow .12s;display:flex}.calendario-dia:hover:not(.disabled):not(.selected){background:#f5f5f4}.calendario-dia.hoy{color:var(--brand,#2563eb);font-weight:700}.calendario-dia.selected{background:var(--brand,#2563eb);color:#fff;box-shadow:0 2px 8px var(--brand-ring,#2563eb4d);font-weight:700}.calendario-dia.disabled{color:#d6d3d1;cursor:not-allowed}.horarios-section{margin-top:.5rem}.horarios-titulo{color:#57534e;margin:0 0 .75rem;font-size:.85rem;font-weight:600}.horarios-grid{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.horario-slot{color:#1c1917;cursor:pointer;text-align:center;background:#fff;border:1px solid #e7e5e4;border-radius:10px;padding:.6rem .5rem;font-size:.85rem;font-weight:500;transition:border-color .12s,background .12s,color .12s,box-shadow .12s}.horario-slot:hover{border-color:var(--brand,#2563eb);color:var(--brand,#2563eb)}.horario-slot.selected{background:var(--brand,#2563eb);border-color:var(--brand,#2563eb);color:#fff;box-shadow:0 2px 6px var(--brand-ring,#2563eb40);font-weight:600}.horarios-loading{color:#78716c;justify-content:center;align-items:center;gap:.75rem;padding:1.5rem;font-size:.85rem;display:flex}.horarios-vacio{text-align:center;color:#a8a29e;padding:1.5rem 0;font-size:.875rem}.spinner{border:3px solid #e7e5e4;border-top-color:var(--brand,#2563eb);border-radius:50%;width:24px;height:24px;animation:.6s linear infinite spin}.spinner.small{border-width:2px;border-color:#fff #ffffff4d #ffffff4d;width:18px;height:18px}@keyframes spin{to{transform:rotate(360deg)}}.datos-form{flex-direction:column;gap:1rem;display:flex}.datos-field{flex-direction:column;gap:.35rem;display:flex}.datos-field label{color:#57534e;font-size:.8rem;font-weight:600}.datos-field input{color:#1c1917;background:#fff;border:1px solid #d6d3d1;border-radius:10px;width:100%;padding:.75rem .9rem;font-size:.9rem;transition:border-color .15s,box-shadow .15s}.datos-field input:focus{border-color:var(--brand,#2563eb);box-shadow:0 0 0 3px var(--brand-ring,#2563eb26);outline:none}.datos-field input::placeholder{color:#a8a29e}.datos-field input.has-error{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441f}.field-error{color:#ef4444;font-size:.75rem;font-weight:500}.confirmacion-card{background:#fff;border:1px solid #e7e5e4;border-radius:16px;overflow:hidden}.confirmacion-negocio{background:var(--brand,#2563eb);color:#fff;font-family:var(--font-heading), "Syne", system-ui, sans-serif;letter-spacing:.01em;padding:.75rem 1.25rem;font-size:.85rem;font-weight:700}.confirmacion-rows{padding:.75rem 1.25rem}.confirmacion-row{justify-content:space-between;align-items:center;padding:.5rem 0;display:flex}.confirmacion-row:not(:last-child){border-bottom:1px solid #f5f5f4}.confirmacion-label{color:#a8a29e;font-size:.8rem;font-weight:500}.confirmacion-value{color:#1c1917;text-align:right;font-size:.875rem;font-weight:600}.confirmacion-row.highlight .confirmacion-value{color:var(--brand,#2563eb);font-size:1rem}.confirmacion-divider{background:#e7e5e4;height:1px;margin:0 1.25rem}.reservar-resultado{text-align:center;padding:3rem 1rem 2rem}.reservar-resultado-icon{color:#22c55e;margin-bottom:1.25rem}.reservar-resultado-icon.error{color:#ef4444}.reservar-resultado h2{font-family:var(--font-heading), "Syne", system-ui, sans-serif;margin:0 0 .75rem;font-size:1.35rem;font-weight:700}.reservar-resultado p{color:#57534e;margin:0 0 .5rem;font-size:.9rem;line-height:1.5}.reservar-resultado-sub{color:#a8a29e!important;margin-top:1rem!important;font-size:.8rem!important}@media (max-width:480px){.reservar-container{padding:1.25rem 1rem}.reservar-step-label{font-size:.55rem}.horarios-grid{grid-template-columns:repeat(3,1fr)}}
