/* Juanje The Barber 1.6.1 | El selector de tres pasos sigue los estilos del tema.
   Todas las reglas se limitan a #reservar; no afectan al resto de Elementor ni a Bookly. */

/* Paleta base: CLÁSICO. Los cuatro esquemas usan las mismas variables. */
.jtb-site .jtb-reservation-section {
  --jtb-res-bg: var(--jtb-cream, #FBF7EB);
  --jtb-res-surface: #f5f0e6;
  --jtb-res-option: #FBF7EB;
  --jtb-res-hover: #eee5d5;
  --jtb-res-text: var(--jtb-dark, #242424);
  --jtb-res-muted: #665e51;
  --jtb-res-border: var(--jtb-line, #d8d1c0);
  --jtb-res-accent: #9b7840;
  --jtb-res-accent-contrast: #fff;
  --jtb-res-avatar: #e4d8c2;
  --jtb-res-radius: 3px;
  padding: 60px 0 76px;
  background: var(--jtb-res-bg);
  color: var(--jtb-res-text);
}
/* OSCURO: sin el rectángulo blanco sobre el fondo negro. */
.jtb-site.jtb-style-dark .jtb-reservation-section {
  --jtb-res-bg: #111210;
  --jtb-res-surface: #1a1b17;
  --jtb-res-option: #22231d;
  --jtb-res-hover: #2a2b24;
  --jtb-res-text: #eee9de;
  --jtb-res-muted: #b8b1a1;
  --jtb-res-border: #454337;
  --jtb-res-accent: var(--jtb-gold, #c8ab78);
  --jtb-res-accent-contrast: #111210;
  --jtb-res-avatar: #3a362d;
}
/* CHICANO OSCURO. Se declara después de oscuro para no heredar su piel. */
.jtb-site.jtb-style-street:not(.jtb-style-street-light) .jtb-reservation-section {
  --jtb-res-bg: #101010;
  --jtb-res-surface: #191919;
  --jtb-res-option: #22211e;
  --jtb-res-hover: #2b2924;
  --jtb-res-text: #f5efdf;
  --jtb-res-muted: #bdb5a5;
  --jtb-res-border: #4b463c;
  --jtb-res-accent: #c8ab78;
  --jtb-res-accent-contrast: #101010;
  --jtb-res-avatar: #3a3328;
  --jtb-res-radius: 0px;
}
/* CHICANO CLARO: gana frente a las clases dark y street presentes en body. */
.jtb-site.jtb-style-street-light .jtb-reservation-section {
  --jtb-res-bg: #FBF7EB;
  --jtb-res-surface: #f5efe2;
  --jtb-res-option: #fffcf5;
  --jtb-res-hover: #ede2ce;
  --jtb-res-text: #3e3027;
  --jtb-res-muted: #655649;
  --jtb-res-border: #c3b298;
  --jtb-res-accent: #68452f;
  --jtb-res-accent-contrast: #FBF7EB;
  --jtb-res-avatar: #e8dbc7;
  --jtb-res-radius: 0px;
}

.jtb-site .jtb-reservation-section > .jtb-wrap { width:calc(100% - 48px); max-width:1020px; }
.jtb-site .jtb-reservation-heading { margin:0 0 22px; }
.jtb-site .jtb-reservation-heading p { color:var(--jtb-res-muted); font-size:10px; font-weight:700; letter-spacing:.14em; margin:0 0 5px; }
/* .jtb-title pertenece al tema original: Anton, Georgia, Pirata o fuente configurada. */
.jtb-site .jtb-reservation-heading .jtb-title { font-size:clamp(29px,3.4vw,40px); line-height:1.15; margin:0; color:var(--jtb-res-text); }
.jtb-site .jtb-booking {
  --jtb-ui-text:var(--jtb-res-text);
  --jtb-ui-muted:var(--jtb-res-muted);
  --jtb-ui-border:var(--jtb-res-border);
  position:relative;
  max-width:none;
  padding:27px 30px 32px;
  background:var(--jtb-res-surface);
  border:1px solid var(--jtb-res-border);
  border-radius:var(--jtb-res-radius);
  color:var(--jtb-res-text);
  box-shadow:none;
  overflow-anchor:none;
  font-size:14px;
  line-height:1.55;
}
.jtb-site .jtb-booking[aria-busy="true"] { opacity:.75; }

/* Progreso horizontal; una única selección visible por pantalla. */
.jtb-site .jtb-booking .jtb-steps {
  list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px; border-bottom:1px solid var(--jtb-res-border);
  margin:0 0 27px; padding:0 0 20px; color:var(--jtb-res-muted);
}
.jtb-site .jtb-booking .jtb-steps li {
  display:flex; align-items:center; gap:9px; min-width:0; margin:0;
  padding:0; font-size:12px; font-weight:600; line-height:1.4;
  color:var(--jtb-res-muted); letter-spacing:0; border:0;
}
.jtb-site .jtb-booking .jtb-steps li::after { display:none; }
.jtb-site .jtb-booking .jtb-steps .is-current { color:var(--jtb-res-text); }
.jtb-site .jtb-booking .jtb-steps .is-done { color:var(--jtb-res-text); }
.jtb-site .jtb-booking .jtb-step-dot {
  display:grid; place-items:center; flex:0 0 25px; width:25px; height:25px;
  border:1px solid var(--jtb-res-border); background:var(--jtb-res-surface);
  color:var(--jtb-res-muted); border-radius:50%; font-size:11px; font-weight:600;
  font-family:inherit; line-height:1;
}
.jtb-site .jtb-booking .is-current .jtb-step-dot {
  background:var(--jtb-res-accent); border-color:var(--jtb-res-accent); color:var(--jtb-res-accent-contrast);
}
.jtb-site .jtb-booking .is-done .jtb-step-dot { color:var(--jtb-res-accent); border-color:var(--jtb-res-accent); }
.jtb-site.jtb-style-street .jtb-booking .jtb-step-dot { border-radius:var(--jtb-res-radius); }

.jtb-site .jtb-booking .jtb-booking-stage { scroll-margin-top:24px; }
/* Conserva la fuente elegida por las reglas jtb-booking h3 del tema. */
.jtb-site .jtb-booking .jtb-booking-stage h3 { font-size:clamp(21px,2.4vw,27px); line-height:1.3; margin:0 0 20px; color:var(--jtb-res-text); }
.jtb-site .jtb-booking .jtb-booking-stage h3:focus { outline:none; }

/* Tres barberos por fila en PC, sin desplazar el tercer elemento a la siguiente línea. */
.jtb-site .jtb-booking .jtb-choices,
.jtb-site .jtb-booking .jtb-barber-choices {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px;
  margin:0; border:0;
}
.jtb-site .jtb-booking a.jtb-local-choice,
.jtb-site .jtb-booking a.jtb-barber-choice {
  display:flex; flex-direction:row; align-items:center; gap:14px;
  min-width:0; min-height:82px; margin:0; padding:11px 13px;
  border:1px solid var(--jtb-res-border); border-radius:var(--jtb-res-radius);
  background:var(--jtb-res-option); color:var(--jtb-res-text);
  box-shadow:none; text-decoration:none; text-align:left;
  transition:background-color .15s,border-color .15s;
  outline-offset:3px;
}
.jtb-site .jtb-booking a.jtb-local-choice:hover,
.jtb-site .jtb-booking a.jtb-barber-choice:hover {
  background:var(--jtb-res-hover); border-color:var(--jtb-res-accent);
}
.jtb-site .jtb-booking a.jtb-local-choice:focus-visible,
.jtb-site .jtb-booking a.jtb-barber-choice:focus-visible,
.jtb-site .jtb-booking .jtb-booking-summary a:focus-visible,
.jtb-site .jtb-booking .jtb-booking-more summary:focus-visible {
  outline:2px solid var(--jtb-res-accent); outline-offset:3px;
}
.jtb-site .jtb-booking .jtb-local-photo {
  display:block; flex:0 0 65px; width:65px; height:61px;
  position:relative; overflow:hidden; border-radius:var(--jtb-res-radius);
  background:var(--jtb-res-avatar);
}
.jtb-site .jtb-booking .jtb-local-photo::after { display:none; }
.jtb-site .jtb-booking .jtb-local-photo img {
  display:block; width:100%; height:100%; object-fit:cover; object-position:center;
  filter:none; transition:none;
}
.jtb-site .jtb-booking a.jtb-local-choice:hover .jtb-local-photo img { transform:none; filter:none; }
.jtb-site .jtb-booking .jtb-local-photo-placeholder {
  display:grid; place-items:center; position:absolute; inset:0;
  background:var(--jtb-res-avatar); color:var(--jtb-res-accent);
  font-size:24px; font-weight:600;
}
.jtb-site .jtb-booking .jtb-local-info { display:flex; flex:1; min-width:0; flex-direction:column; }
.jtb-site .jtb-booking .jtb-local-name,
.jtb-site .jtb-booking .jtb-barber-name {
  display:block; color:var(--jtb-res-text);
  font-size:15px; line-height:1.35; overflow-wrap:anywhere;
}
/* Los nombres de local conservan Anton/Georgia/Pirata o la fuente personalizada.
   El nombre del barbero usa la tipografía de texto que ya emplea el tema. */
.jtb-site .jtb-booking .jtb-local-name { font-size:17px; }
.jtb-site .jtb-booking .jtb-barber-name { font-weight:700; }
.jtb-site .jtb-booking .jtb-option-arrow {
  display:grid; place-items:center; flex:none; margin-left:auto;
  width:19px; height:24px; color:var(--jtb-res-accent);
  font-family:inherit; font-size:20px; line-height:1; font-weight:400;
}
.jtb-site .jtb-booking .jtb-barber-photo {
  display:grid; place-items:center; flex:0 0 48px;
  width:48px; height:48px; overflow:hidden; border-radius:50%;
  background:var(--jtb-res-avatar); color:var(--jtb-res-text);
}
.jtb-site .jtb-booking .jtb-barber-photo:has(.jtb-barber-monogram)::before { display:none; }
.jtb-site .jtb-booking .jtb-barber-photo img { width:100%; height:100%; display:block; object-fit:cover; filter:none; }
.jtb-site .jtb-booking .jtb-barber-monogram { color:var(--jtb-res-text); font-size:19px; font-weight:600; line-height:1; font-family:inherit; }

/* Selecciones previas breves: solo ubicación/profesional y enlace de cambio. */
.jtb-site .jtb-booking .jtb-booking-summary {
  display:flex; align-items:center; flex-wrap:wrap; gap:9px 23px;
  padding:0 0 18px; margin:0 0 23px;
  border-bottom:1px solid var(--jtb-res-border);
}
.jtb-site .jtb-booking .jtb-summary-line { display:inline-flex; flex-wrap:wrap; align-items:baseline; gap:8px; min-width:0; max-width:100%; font-size:12px; }
.jtb-site .jtb-booking .jtb-summary-line > span { color:var(--jtb-res-muted); }
.jtb-site .jtb-booking .jtb-summary-line strong { color:var(--jtb-res-text); font-size:13px; font-weight:700; overflow-wrap:anywhere; }
.jtb-site .jtb-booking .jtb-summary-line a { color:var(--jtb-res-accent); font-size:12px; text-decoration:underline; text-underline-offset:3px; }
.jtb-site .jtb-booking .jtb-empty { font-size:13px; color:var(--jtb-res-muted); margin:0; }

/* Paso 3 y sus avisos siguen la misma paleta que el selector, incluido el iframe. */
.jtb-site .jtb-booking .jtb-form-panel {
  background:transparent; border:0; border-radius:0;
  box-shadow:none; color:var(--jtb-res-text);
  padding:0; margin:0; outline:0;
}
.jtb-site .jtb-booking .jtb-bookly-output { background:transparent; padding:0; width:100%; min-width:0; }
.jtb-site .jtb-booking .jtb-bookly-frame { display:block; width:100%; height:640px; border:0; background:transparent; }
.jtb-site .jtb-booking .jtb-booking-notice {
  background:var(--jtb-res-option); color:var(--jtb-res-text);
  border:1px solid var(--jtb-res-border); border-radius:var(--jtb-res-radius);
  box-shadow:none; padding:18px 20px; font-size:13px;
}
.jtb-site .jtb-booking .jtb-booking-notice strong { font-size:14px; }
.jtb-site .jtb-booking .jtb-booking-notice p { margin:7px 0 12px; }
.jtb-site .jtb-booking .jtb-booking-notice small { display:block; margin-top:10px; font-size:11px; }
.jtb-site .jtb-booking .jtb-booking-notice .jtb-btn {
  min-height:42px; padding:11px 15px; gap:14px;
  background:var(--jtb-res-accent); color:var(--jtb-res-accent-contrast);
  border-color:var(--jtb-res-accent); font-size:12px;
}
.jtb-site .jtb-booking-status { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); }
.jtb-site .jtb-booking-status:not(:empty) {
  position:fixed; z-index:1000; right:18px; bottom:18px; width:auto; height:auto;
  max-width:calc(100vw - 36px); padding:10px 16px; margin:0;
  background:var(--jtb-res-surface); color:var(--jtb-res-text);
  border:1px solid var(--jtb-res-border); border-radius:var(--jtb-res-radius);
  clip-path:none; font-size:12px; pointer-events:none;
}
@media (max-width:900px) {
  .jtb-site .jtb-booking .jtb-choices,
  .jtb-site .jtb-booking .jtb-barber-choices { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px) {
  .jtb-site .jtb-reservation-section { padding:44px 0 58px; }
  .jtb-site .jtb-reservation-section > .jtb-wrap { width:calc(100% - 32px); }
  .jtb-site .jtb-booking { padding:20px 17px 25px; }
  .jtb-site .jtb-booking .jtb-choices,
  .jtb-site .jtb-booking .jtb-barber-choices { grid-template-columns:1fr; gap:9px; }
  .jtb-site .jtb-booking .jtb-steps { gap:4px; margin-bottom:23px; padding-bottom:16px; }
  .jtb-site .jtb-booking .jtb-steps li { font-size:11px; gap:6px; }
  .jtb-site .jtb-booking .jtb-step-dot { width:22px; height:22px; flex-basis:22px; }
  .jtb-site .jtb-booking .jtb-booking-stage h3 { font-size:22px; margin-bottom:17px; }
}
@media (max-width:360px) {
  .jtb-site .jtb-booking { padding:19px 13px 22px; }
  .jtb-site .jtb-booking .jtb-steps li { font-size:10px; gap:4px; }
  .jtb-site .jtb-booking .jtb-steps .jtb-step-dot { width:20px; height:20px; flex-basis:20px; }
}
@media (prefers-reduced-motion:reduce) {
  .jtb-site .jtb-booking a.jtb-local-choice,
  .jtb-site .jtb-booking a.jtb-barber-choice { transition:none; }
}

/* 1.6.5 — Vista editorial del paso final, inspirada en la maqueta aprobada:
   cabecera del profesional + bloque inferior visual para extras y horario. */
.jtb-site .jtb-booking .jtb-cita-hero {
  margin:0 0 22px;
}
.jtb-site .jtb-booking .jtb-cita-kicker {
  margin:0 0 10px;
  font-size:11px;
  line-height:1.2;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-weight:700;
  color:var(--jtb-res-accent);
}
.jtb-site .jtb-booking .jtb-cita-hero h3 {
  margin:0 0 8px;
}
.jtb-site .jtb-booking .jtb-visit-band {
  margin:28px 0 0;
  padding-top:28px;
  border-top:1px solid var(--jtb-res-border);
}
.jtb-site .jtb-booking .jtb-visit-band-grid {
  display:grid;
  grid-template-columns:minmax(250px,.95fr) minmax(420px,1.35fr);
  gap:28px 34px;
  align-items:start;
}
.jtb-site .jtb-booking .jtb-visit-card {
  min-width:0;
}
.jtb-site .jtb-booking .jtb-visit-card h4 {
  margin:0 0 18px;
  font-size:14px;
  line-height:1.4;
  color:var(--jtb-res-text);
  font-weight:700;
  font-family:inherit;
}
.jtb-site .jtb-booking .jtb-visit-extras-list {
  list-style:disc;
  padding-left:18px;
  margin:0;
}
.jtb-site .jtb-booking .jtb-visit-extras-list li {
  margin:0 0 10px;
  color:var(--jtb-res-text);
  font-size:13px;
  line-height:1.7;
}
.jtb-site .jtb-booking .jtb-visit-extras-list li::marker {
  color:var(--jtb-res-accent);
}
.jtb-site .jtb-booking .jtb-visit-extras-list li strong {
  font-weight:700;
  color:var(--jtb-res-text);
}
.jtb-site .jtb-booking .jtb-visit-days {
  display:grid;
  grid-template-columns:repeat(7,minmax(58px,1fr));
  gap:14px;
}
.jtb-site .jtb-booking .jtb-visit-badge {
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  min-width:0;
}
.jtb-site .jtb-booking .jtb-visit-badge-circle {
  width:40px;
  height:40px;
  border-radius:999px;
  display:grid;
  place-items:center;
  margin:0 0 10px;
  font-size:15px;
  line-height:1;
  font-weight:700;
  border:1px dashed var(--jtb-res-border);
  color:var(--jtb-res-text);
  background:transparent;
}
.jtb-site .jtb-booking .jtb-visit-badge.is-open .jtb-visit-badge-circle {
  background:var(--jtb-res-accent);
  border-style:solid;
  border-color:var(--jtb-res-accent);
  color:var(--jtb-res-accent-contrast);
}
.jtb-site .jtb-booking .jtb-visit-badge-state {
  display:block;
  font-size:11px;
  line-height:1.35;
  color:var(--jtb-res-text);
}
.jtb-site .jtb-booking .jtb-visit-badge-hours {
  display:block;
  margin-top:4px;
  font-size:11px;
  line-height:1.45;
  color:var(--jtb-res-text);
  font-weight:700;
  min-height:16px;
}
.jtb-site .jtb-booking .jtb-visit-badge.is-closed .jtb-visit-badge-state,
.jtb-site .jtb-booking .jtb-visit-badge.is-closed .jtb-visit-badge-hours {
  color:var(--jtb-res-muted);
  font-weight:400;
}
.jtb-site .jtb-booking .jtb-visit-footnote {
  margin:28px 0 0;
  font-size:12px;
  line-height:1.65;
  color:var(--jtb-res-muted);
}
@media (max-width:1100px) {
  .jtb-site .jtb-booking .jtb-visit-band-grid {
    grid-template-columns:1fr;
  }
  .jtb-site .jtb-booking .jtb-visit-days {
    grid-template-columns:repeat(4,minmax(58px,1fr));
  }
}
@media (max-width:640px) {
  .jtb-site .jtb-booking .jtb-cita-hero { margin-bottom:18px; }
  .jtb-site .jtb-booking .jtb-visit-band { margin-top:22px; padding-top:22px; }
  .jtb-site .jtb-booking .jtb-visit-band-grid { gap:22px; }
  .jtb-site .jtb-booking .jtb-visit-days {
    grid-template-columns:repeat(3,minmax(56px,1fr));
    gap:12px;
  }
}
@media (max-width:420px) {
  .jtb-site .jtb-booking .jtb-visit-days {
    grid-template-columns:repeat(2,minmax(56px,1fr));
  }
}
/* 1.7: an absent block must not reserve a phantom column. */
.jtb-site .jtb-booking .jtb-visit-band-grid.jtb-visit-single { grid-template-columns:minmax(0,1fr); }
.jtb-site .jtb-booking .jtb-visit-days { grid-template-columns:repeat(auto-fit,minmax(100px,1fr)); gap:16px 12px; }
.jtb-site .jtb-booking .jtb-visit-badge-hours { white-space:normal; overflow-wrap:normal; word-break:normal; max-width:130px; text-wrap:balance; }
.jtb-site .jtb-booking .jtb-demand-badge { display:block; width:fit-content; margin:8px auto 0; padding:6px 9px; border:1px solid var(--jtb-res-border); border-radius:20px; font:600 11px/1.4 sans-serif; color:var(--jtb-res-text); background:var(--jtb-res-panel); }
@media(max-width:380px){.jtb-site .jtb-booking .jtb-visit-days{grid-template-columns:repeat(2,minmax(0,1fr));}}
.jtb-site .jtb-booking .jtb-barber-info { min-width:0; flex:1; }
.jtb-site .jtb-booking .jtb-barber-info .jtb-demand-badge { margin-left:0; margin-right:0; }
/* Seven days always remain in one row, with horizontal scroll on small screens. */
.jtb-site .jtb-booking .jtb-visit-band-grid { grid-template-columns:minmax(0,1fr); gap:24px; }
.jtb-site .jtb-booking .jtb-visit-days { grid-template-columns:repeat(7,minmax(100px,1fr)); overflow-x:auto; padding-bottom:14px; scrollbar-width:thin; scrollbar-color:var(--jtb-res-accent) transparent; }
.jtb-site .jtb-booking .jtb-visit-extras-list li strong { margin-left:6px; }
.jtb-site .jtb-booking .jtb-badge-preview { margin:0 0 20px; padding:14px 16px; border:1px dashed var(--jtb-res-border); border-radius:8px; color:var(--jtb-res-text); font:13px/1.6 sans-serif; }
.jtb-site .jtb-booking .jtb-badge-preview summary { cursor:pointer; font-weight:700; }
.jtb-site .jtb-booking .jtb-badge-examples { display:flex; flex-wrap:wrap; gap:10px; margin:12px 0; }
.jtb-site .jtb-booking .jtb-badge-examples .jtb-demand-badge { margin:0; }
