.agendar-main { padding: 30px 0 80px; }

/* STEPPER */
.stepper {
  list-style:none; padding:0; margin:0 0 28px;
  display:flex; gap:6px; flex-wrap:wrap;
  background:#fff; border-radius:99px; padding:8px;
  box-shadow: var(--shadow-sm); border:1px solid var(--border);
  position:sticky; top:78px; z-index:30;
}
.step {
  flex:1; min-width:0;
  display:flex; align-items:center; gap:8px;
  padding:8px 12px; border-radius:99px; font-size:13px; font-weight:600;
  color:var(--ink-500); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
  transition:all var(--t);
}
.step span {
  width:24px; height:24px; border-radius:50%; background:var(--border); color:var(--ink-500);
  display:inline-flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; flex-shrink:0;
}
.step.active { background:var(--blue-50); color:var(--blue-700);}
.step.active span { background:var(--blue-700); color:#fff;}
.step.done { color:var(--green);}
.step.done span { background:var(--green); color:#fff;}

@media(max-width:780px){
  .stepper { top:64px; padding:6px; gap:0;}
  .step { font-size:0; padding:8px 6px;}
  .step span { font-size:13px;}
  .step.active { font-size:12px; padding:8px 12px;}
  .step.active span { margin-right:4px;}
}

/* PANELS */
.step-panel { display:none; animation: fadeUp .35s ease;}
.step-panel.active { display:block;}
@keyframes fadeUp{ from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:translateY(0);} }

.step-title { font-size:26px; margin-bottom:6px;}
.step-sub { color:var(--ink-500); margin-bottom:24px;}

/* SERVICE PICKER */
.service-pick { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:24px;}
.svc-pill {
  background:#fff; border:2px solid var(--border); border-radius:var(--radius-lg);
  padding:24px 16px; cursor:pointer; text-align:center;
  display:flex; flex-direction:column; gap:8px; align-items:center;
  font-family:inherit; transition:all var(--t);
}
.svc-pill:hover { border-color:var(--blue-500); transform:translateY(-3px);}
.svc-pill.active { border-color:var(--blue-700); background:var(--blue-50); box-shadow:var(--shadow-md);}
.svc-pill i { font-size:34px; color:var(--blue-700);}
.svc-pill strong { font-size:16px;}
.svc-pill small { color:var(--ink-500); font-size:12px;}

.servicios-detail { margin-bottom:24px; }
.servicios-detail h3 { margin-bottom:14px; font-size:18px;}
.servicios-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:10px;}
.servicio-row {
  background:#fff; border:1px solid var(--border); border-radius:var(--radius);
  padding:14px; cursor:pointer; transition:all var(--t);
  display:flex; justify-content:space-between; align-items:center; gap:8px;
}
.servicio-row:hover { border-color:var(--blue-500);}
.servicio-row.active { border-color:var(--blue-700); background:var(--blue-50);}
.servicio-row > div h5 { margin:0 0 2px; font-size:14px;}
.servicio-row > div p { margin:0; font-size:12px; color:var(--ink-500);}
.servicio-row .pp { font-family:'Montserrat',sans-serif; font-weight:900; color:var(--blue-700); font-size:18px;}

/* SUCURSALES */
.suc-filters { display:flex; gap:10px; margin-bottom:14px; flex-wrap:wrap;}
.suc-filters select { flex:0 1 220px; padding:12px 14px; border-radius:99px; border:1px solid var(--border); background:#fff;}
.suc-list { display:grid; gap:10px; max-height:480px; overflow:auto;}
.suc-card {
  background:#fff; border:1px solid var(--border); border-radius:var(--radius);
  padding:14px; cursor:pointer; transition:all var(--t);
}
.suc-card:hover { border-color:var(--blue-500);}
.suc-card.active { border-color:var(--blue-700); background:var(--blue-50);}
.suc-card h5 { margin:0 0 4px; font-family:'Montserrat',sans-serif; font-size:15px;}
.suc-card p { margin:0; font-size:13px; color:var(--ink-500);}
.suc-card p i { color:var(--blue-700); margin-right:4px;}

/* CALENDAR + HOURS */
.datetime-grid { display:grid; grid-template-columns:1.1fr 1fr; gap:14px; margin-bottom:24px;}
.calendar-card .cal-head {
  display:flex; justify-content:space-between; align-items:center; margin-bottom:10px;
}
.cal-head strong { font-family:'Montserrat',sans-serif; font-size:16px; text-transform:capitalize;}
.cal-nav {
  width:36px; height:36px; border-radius:50%; border:1px solid var(--border); background:#fff;
  cursor:pointer; color:var(--ink-700);
}
.cal-grid {
  display:grid; grid-template-columns: repeat(7,1fr); gap:4px;
}
.cal-grid .cal-day-label { font-size:11px; color:var(--ink-500); text-align:center; padding:4px;}
.cal-day {
  border:1px solid transparent; background:#f5f8fd; border-radius:10px;
  padding:10px 0; text-align:center; cursor:pointer; font-weight:600;
  font-size:14px; transition:all var(--t);
}
.cal-day:hover { background:var(--blue-50);}
.cal-day.disabled { opacity:.35; cursor:not-allowed; background:transparent;}
.cal-day.today { border-color:var(--blue-500);}
.cal-day.active { background:var(--blue-700); color:#fff;}

.hours-title { display:block; margin-bottom:10px; font-size:14px;}
.hours-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px;}
.hour {
  padding:10px 4px; border:1px solid var(--border); border-radius:10px; background:#fff;
  cursor:pointer; font-weight:600; font-size:13px; text-align:center; transition:all var(--t);
}
.hour:hover { border-color:var(--blue-500);}
.hour.active { background:var(--blue-700); color:#fff; border-color:var(--blue-700);}
.hours-grid .empty { grid-column: 1/-1; text-align:center; color:var(--ink-300); padding:20px;}

@media(max-width:780px){
  .datetime-grid { grid-template-columns:1fr;}
  .hours-grid { grid-template-columns:repeat(4,1fr);}
}

/* DATA */
.form-card { padding:24px; }
.check { display:flex; gap:10px; align-items:flex-start; font-size:13px; color:var(--ink-700); margin-top:8px;}

/* RESUMEN */
.resumen { padding:0; overflow:hidden;}
.resumen .row { display:flex; justify-content:space-between; padding:14px 18px; border-bottom:1px solid var(--border); font-size:14px; gap:12px;}
.resumen .row:last-child{ border:none; }
.resumen .row strong { color:var(--ink-900);}
.resumen .row.total { background:var(--blue-50); }
.resumen .row.total strong, .resumen .row.total .v { color:var(--blue-700); font-size:20px; font-family:'Montserrat',sans-serif;}

/* ACTIONS */
.step-actions { display:flex; gap:10px; margin-top:24px; }
.step-actions .btn { flex:1; }
.step-actions .btn-outline { flex:0 0 auto; }
.btn-block { width:100%;}

/* SUCCESS */
.success-screen { text-align:center; padding:30px 20px;}
.success-icon { position:relative; width:200px; margin:0 auto 24px; }
.success-icon img { width:100%; filter:drop-shadow(0 20px 40px rgba(15,58,122,.25));
  animation: heroFloat 3s ease-in-out infinite alternate;}
.check-pulse {
  position:absolute; bottom:0; right:-10px; background:var(--green); color:#fff; width:60px; height:60px;
  border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:32px;
  box-shadow: 0 10px 30px rgba(31,191,106,.45);
  animation: bounceIn .6s ease;
}
@keyframes bounceIn { 0%{transform:scale(0);} 60%{transform:scale(1.2);} 100%{transform:scale(1);} }
.success-screen h2 { font-size:30px; color:var(--blue-700); margin-bottom:10px;}
.success-msg { color:var(--ink-500); margin-bottom:24px; font-size:16px;}
.folio-box {
  background:var(--blue-50); border-radius:var(--radius); padding:18px; margin-bottom:24px; max-width:300px; margin-left:auto; margin-right:auto;
}
.folio-box span { display:block; font-size:12px; color:var(--blue-700); text-transform:uppercase; letter-spacing:.08em; font-weight:600;}
.folio-box strong { font-family:'Montserrat',sans-serif; font-size:24px; color:var(--blue-800); letter-spacing:.05em;}
.success-actions { display:flex; flex-direction:column; gap:10px; max-width:400px; margin: 0 auto;}
.success-foot { color:var(--ink-500); font-style:italic; margin-top:30px; font-size:13px;}

.hidden { display:none !important; }
