.professionals-booking-hero{max-width:1120px;margin:28px auto 22px;padding:0 4px}.professionals-booking-hero h1{margin:7px 0 8px;font-size:clamp(1.8rem,4vw,2.8rem);line-height:1.08}.professionals-booking-hero p{max-width:760px;color:#64748b;font-size:1.03rem}.all-team-link{display:inline-flex;margin:0 0 14px;color:#475569;font-weight:700;text-decoration:none}.professional-directory{max-width:1120px;margin:0 auto;display:grid;gap:24px}.professional-booking-card{background:#fff;border:1px solid #e2e8f0;border-radius:24px;padding:24px;box-shadow:0 16px 42px rgba(15,23,42,.07)}.professional-booking-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;padding-bottom:20px;border-bottom:1px solid #e2e8f0}.professional-avatar-large{width:78px;height:78px;border-radius:24px;background:#eef2ff;display:grid;place-items:center;font-size:2rem;font-weight:800;color:#4338ca;overflow:hidden}.professional-avatar-large img{width:100%;height:100%;object-fit:cover}.professional-booking-copy h2{margin:0;font-size:1.45rem}.professional-specialty{margin:4px 0;color:#475569;font-weight:700}.professional-bio{margin:8px 0 0;color:#64748b;line-height:1.45}.professional-public-link,.service-panel-heading a{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:12px;background:#f1f5f9;color:#334155;font-weight:800;text-decoration:none;white-space:nowrap}.professional-services-grid{display:grid;gap:15px;margin-top:20px}.professional-service-panel{border:1px solid #e2e8f0;border-radius:18px;padding:18px;background:#fbfdff}.service-panel-heading{display:flex;justify-content:space-between;gap:16px;align-items:start}.service-panel-heading h3{margin:0 0 5px;font-size:1.05rem}.service-panel-heading p{margin:0;color:#64748b}.quick-slots{display:flex;gap:9px;overflow-x:auto;padding:15px 1px 3px}.quick-slots a{min-width:92px;padding:10px 12px;border:1px solid #cbd5e1;border-radius:13px;background:#fff;text-decoration:none;text-align:center;color:#0f172a;transition:.16s ease}.quick-slots a:hover{transform:translateY(-2px);border-color:#6366f1;box-shadow:0 8px 18px rgba(79,70,229,.12)}.quick-slots small,.quick-slots strong{display:block}.quick-slots small{font-size:.75rem;color:#64748b}.quick-slots strong{margin-top:3px;font-size:1rem}.no-quick-slots{margin:15px 0 0;color:#64748b;background:#f8fafc;padding:12px;border-radius:12px}.booking-not-found{background:#fff;border-radius:20px;padding:32px;text-align:center}.booking-not-found a{font-weight:800}.booking-page{padding-left:18px;padding-right:18px}@media(max-width:760px){.professional-booking-card{padding:17px;border-radius:18px}.professional-booking-header{grid-template-columns:auto minmax(0,1fr)}.professional-public-link{grid-column:1/-1;width:100%}.professional-avatar-large{width:60px;height:60px;border-radius:18px}.service-panel-heading{display:block}.service-panel-heading a{margin-top:12px;width:100%}.professional-bio{display:none}}


/* V1.1: calendarios completos por profesional */
.full-calendar-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start}
.service-calendar-panel{padding:20px}
.inline-calendar-navigation{display:flex;align-items:center;justify-content:space-between;margin:18px 0 12px}
.inline-calendar-navigation a{display:grid;place-items:center;width:36px;height:36px;border:1px solid #dfe6ea;border-radius:10px;text-decoration:none;font-size:24px;color:inherit;background:#fff}
.inline-calendar-weekdays,.inline-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;text-align:center}
.inline-calendar-weekdays{margin-bottom:7px;color:#68767d;font-size:.78rem;font-weight:700}
.inline-calendar-days a,.inline-calendar-days span{display:grid;place-items:center;min-height:38px;border-radius:9px;font-size:.9rem}
.inline-calendar-days a{background:#e7f6f0;text-decoration:none;color:#145c49;font-weight:800;border:1px solid #b9e4d5}
.inline-calendar-days a:hover{transform:translateY(-1px);box-shadow:0 4px 10px rgba(20,92,73,.12)}
.inline-calendar-days .is-disabled{color:#a9b0b4;background:#f6f7f8}
.inline-calendar-days .is-empty{background:transparent}
.calendar-help{margin:14px 0 0;color:#68767d;font-size:.84rem}
.professional-avatar-large img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
@media(max-width:680px){.full-calendar-grid{grid-template-columns:1fr}.service-calendar-panel{padding:15px}.inline-calendar-days a,.inline-calendar-days span{min-height:34px}}


/* V1.2: selección por etapas, sin calendario en la portada */
.service-selection-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:stretch}
.professional-service-choice{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px;border:1px solid #dce6e1;border-radius:18px;background:#fbfdfc;color:#173f43;text-decoration:none;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}
.professional-service-choice:hover{transform:translateY(-2px);border-color:#83bfae;background:#fff;box-shadow:0 12px 28px rgba(18,92,87,.10)}
.service-choice-copy{min-width:0}.service-choice-copy h3{margin:0 0 10px;font-size:1.08rem;line-height:1.3;color:#17211f}.service-choice-meta{display:flex;flex-wrap:wrap;gap:8px}.service-choice-meta span{display:inline-flex;align-items:center;min-height:30px;padding:5px 10px;border-radius:999px;background:#eef4f1;color:#5d706b;font-size:.88rem}.service-choice-meta strong{color:#174f4e}.service-choice-action{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;padding:11px 14px;border-radius:12px;background:#0f7778;color:#fff;font-weight:800;white-space:nowrap}
@media(max-width:760px){.service-selection-grid{grid-template-columns:1fr}.professional-service-choice{align-items:flex-start;flex-direction:column}.service-choice-action{width:100%;justify-content:center}}

/* V1.3: directorio simple y servicios como botones horizontales */
.service-selection-grid{grid-template-columns:1fr}
.professional-service-choice{width:100%;min-height:96px;padding:20px 22px;border-radius:16px;background:#fff;border:1px solid #d9e5df;box-shadow:0 4px 12px rgba(18,92,87,.04)}
.professional-service-choice:hover{background:#fbfefc;border-color:#68ad9b;box-shadow:0 10px 24px rgba(18,92,87,.11)}
.service-choice-copy h3{font-size:1.12rem;margin-bottom:12px}
.service-choice-meta span{background:#edf5f1}
.service-choice-action{min-width:190px;padding:13px 18px;border-radius:13px}
@media(max-width:760px){.professional-service-choice{min-height:auto;padding:17px}.service-choice-action{min-width:0}}

/* V1.4: tarjeta completa clickeable, acción compacta y ayuda por WhatsApp */
.professional-service-choice{display:grid;grid-template-columns:76px minmax(0,1fr) 52px;align-items:center;gap:18px;min-height:128px;padding:20px 22px;cursor:pointer}
.service-choice-icon{width:68px;height:68px;border-radius:18px;display:grid;place-items:center;background:#f4faf7;color:#0f7778;border:1px solid #e1eee8}
.service-choice-icon svg{width:46px;height:46px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.service-choice-copy h3{margin:0 0 10px;font-size:1.2rem;line-height:1.28;color:#124b4d}
.service-choice-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.service-choice-meta span{padding:0;background:transparent;border-radius:0;color:#61706c;min-height:auto;font-size:.95rem}
.service-choice-meta .service-price strong{font-size:1.03rem;color:#53605d}
.service-choice-meta .service-modality{font-size:.86rem;color:#71807b}
.service-choice-action{min-width:0;width:48px;height:48px;padding:0;border-radius:15px;background:#e7f4de;color:#3d8727;font-size:2rem;font-weight:500;display:grid;place-items:center;line-height:1}
.professional-service-choice:hover .service-choice-action{background:#dff0d2;transform:translateX(2px)}
.whatsapp-help-cta{text-align:center;max-width:760px;margin:30px auto 0;padding:28px;border:1px solid #dfe7e2;border-radius:24px;background:#fff;box-shadow:0 12px 32px rgba(15,23,42,.05)}
.whatsapp-help-cta strong{display:block;font-size:1.2rem;line-height:1.35;color:#17211f}
.whatsapp-help-cta p{margin:10px auto 20px;max-width:560px;color:#66736f;line-height:1.5}
.whatsapp-action{display:inline-flex!important;align-items:center;justify-content:center;gap:10px;padding:14px 22px!important;border-radius:14px!important;background:#1fd466!important;color:#fff!important;font-weight:800!important;text-decoration:none!important;box-shadow:0 10px 22px rgba(31,212,102,.24)}
.whatsapp-action:hover{filter:brightness(.96);transform:translateY(-1px)}
@media(max-width:760px){.professional-service-choice{grid-template-columns:64px minmax(0,1fr) 46px;gap:14px;min-height:118px;padding:16px}.service-choice-icon{width:58px;height:58px;border-radius:16px}.service-choice-icon svg{width:40px;height:40px}.service-choice-copy h3{font-size:1.08rem;margin-bottom:8px}.service-choice-meta{display:grid;gap:4px}.service-choice-meta .service-modality{display:none}.service-choice-action{width:44px;height:44px;border-radius:14px}.whatsapp-help-cta{padding:22px 18px;border-radius:20px}.whatsapp-action{width:100%}}


/* V2.3: la cabecera usa exclusivamente los estilos estándar del portal. */
/* V1.6: indicador de etapas visible desde el inicio */
.booking-page > .booking-progress{max-width:1120px;margin:28px auto 24px}
@media(max-width:760px){
  .booking-page > .booking-progress{margin:18px auto 22px}
}

/* V1.7: avatar visual por modalidad de servicio */
.service-choice-icon{
  position:relative;
  width:82px;
  height:88px;
  padding:8px 6px 7px;
  border-radius:20px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  border:1px solid #d8e9e1;
  box-shadow:0 7px 18px rgba(19,86,82,.08);
}
.service-choice-icon.is-online{background:linear-gradient(145deg,#f2fbfb,#e6f5f4);color:#087f86}
.service-choice-icon.is-presential{background:linear-gradient(145deg,#f5faef,#e6f2da);color:#4f8f28}
.service-choice-icon svg{width:52px;height:52px;flex:0 0 auto}
.service-choice-icon small{font-size:.68rem;font-weight:800;line-height:1;letter-spacing:.02em;color:currentColor}
.professional-service-choice:has(.service-choice-icon.is-online):hover{border-color:#73bbb8}
.professional-service-choice:has(.service-choice-icon.is-presential):hover{border-color:#8ebd69}
@media(max-width:760px){
  .professional-service-choice{grid-template-columns:78px minmax(0,1fr) 46px}
  .service-choice-icon{width:72px;height:78px;border-radius:18px;padding:7px 5px 6px}
  .service-choice-icon svg{width:44px;height:44px}
  .service-choice-icon small{font-size:.62rem}
}

/* V1.8: iconos oficiales suministrados para distinguir modalidad */
.service-choice-icon{
  overflow:hidden;
  padding:5px;
  background:#fff !important;
}
.service-choice-icon img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  border-radius:14px;
}
.service-choice-icon.is-online,
.service-choice-icon.is-presential{
  color:inherit;
}
@media(max-width:760px){
  .service-choice-icon{padding:3px}
  .service-choice-icon img{border-radius:12px}
}

/* V1.9: servicios en lista vertical con iconos compactos */
.service-selection-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  max-width:900px;
}
.professional-service-choice{
  display:grid;
  grid-template-columns:72px minmax(0,1fr) 48px;
  align-items:center;
  gap:18px;
  width:100%;
  min-height:112px;
  padding:18px 20px;
  overflow:hidden;
  border:1px solid #d8e5df;
  border-radius:18px;
  background:#fff;
  box-shadow:0 4px 14px rgba(18,92,87,.045);
}
.professional-service-choice:hover{
  transform:translateY(-1px);
  border-color:#76b5a5;
  box-shadow:0 10px 24px rgba(18,92,87,.10);
}
.service-choice-icon{
  width:64px;
  height:64px;
  min-width:64px;
  padding:4px;
  border:0;
  border-radius:16px;
  box-shadow:none;
  background:#fff !important;
  overflow:hidden;
}
.service-choice-icon img{
  width:100%;
  height:100%;
  object-fit:contain;
  border-radius:12px;
}
.service-choice-copy{
  min-width:0;
}
.service-choice-copy h3{
  margin:0 0 8px;
  color:#123f42;
  font-size:1.12rem;
  line-height:1.28;
  overflow-wrap:anywhere;
}
.service-choice-meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 14px;
}
.service-choice-meta span{
  display:inline-flex;
  align-items:center;
  min-height:auto;
  padding:0;
  background:transparent;
  color:#65736f;
  font-size:.94rem;
  white-space:nowrap;
}
.service-choice-meta .service-price strong{
  color:#4d5c58;
  font-size:1rem;
}
.service-choice-action{
  width:44px;
  height:44px;
  min-width:44px;
  padding:0;
  border-radius:14px;
  background:#e8f4df;
  color:#4b922f;
  font-size:2rem;
  display:grid;
  place-items:center;
  line-height:1;
}
.professional-service-choice:hover .service-choice-action{
  background:#dff0d3;
  transform:translateX(2px);
}
@media(max-width:760px){
  .service-selection-grid{gap:12px}
  .professional-service-choice{
    grid-template-columns:58px minmax(0,1fr) 42px;
    gap:13px;
    min-height:102px;
    padding:15px 14px;
    border-radius:17px;
  }
  .service-choice-icon{
    width:54px;
    height:54px;
    min-width:54px;
    padding:2px;
    border-radius:14px;
  }
  .service-choice-icon img{border-radius:10px}
  .service-choice-copy h3{
    margin-bottom:7px;
    font-size:1rem;
    line-height:1.25;
  }
  .service-choice-meta{
    display:flex;
    gap:5px 10px;
  }
  .service-choice-meta span{
    font-size:.86rem;
  }
  .service-choice-meta .service-modality{
    display:none;
  }
  .service-choice-action{
    width:40px;
    height:40px;
    min-width:40px;
    border-radius:13px;
    font-size:1.75rem;
  }
}
@media(max-width:420px){
  .professional-service-choice{
    grid-template-columns:52px minmax(0,1fr) 38px;
    gap:11px;
    padding:14px 12px;
  }
  .service-choice-icon{
    width:48px;
    height:48px;
    min-width:48px;
  }
  .service-choice-copy h3{font-size:.96rem}
  .service-choice-meta span{font-size:.82rem}
  .service-choice-action{
    width:36px;
    height:36px;
    min-width:36px;
  }
}

/* V2.0: corrección definitiva de tamaño y caché de iconos de servicio */
.professional-booking-card .service-selection-grid{
  display:flex !important;
  flex-direction:column !important;
  grid-template-columns:none !important;
  gap:14px !important;
  width:100% !important;
  max-width:900px !important;
}
.professional-booking-card a.professional-service-choice{
  display:grid !important;
  grid-template-columns:68px minmax(0,1fr) 44px !important;
  align-items:center !important;
  width:100% !important;
  min-width:0 !important;
  min-height:104px !important;
  padding:16px 18px !important;
  gap:16px !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
}
.professional-booking-card .service-choice-icon{
  display:block !important;
  width:60px !important;
  height:60px !important;
  min-width:60px !important;
  max-width:60px !important;
  min-height:60px !important;
  max-height:60px !important;
  padding:0 !important;
  margin:0 !important;
  overflow:hidden !important;
  border:0 !important;
  border-radius:14px !important;
  background:#fff !important;
  box-shadow:none !important;
  line-height:0 !important;
}
.professional-booking-card .service-choice-icon > img{
  display:block !important;
  width:60px !important;
  height:60px !important;
  min-width:60px !important;
  max-width:60px !important;
  min-height:60px !important;
  max-height:60px !important;
  object-fit:contain !important;
  object-position:center !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
}
.professional-booking-card .service-choice-copy{
  min-width:0 !important;
  width:auto !important;
  overflow:hidden !important;
}
.professional-booking-card .service-choice-copy h3{
  margin:0 0 7px !important;
  font-size:1.08rem !important;
  line-height:1.25 !important;
  overflow-wrap:anywhere !important;
}
.professional-booking-card .service-choice-action{
  width:40px !important;
  height:40px !important;
  min-width:40px !important;
  max-width:40px !important;
  padding:0 !important;
}
@media(max-width:760px){
  .professional-booking-card a.professional-service-choice{
    grid-template-columns:54px minmax(0,1fr) 38px !important;
    min-height:92px !important;
    padding:14px 12px !important;
    gap:12px !important;
  }
  .professional-booking-card .service-choice-icon,
  .professional-booking-card .service-choice-icon > img{
    width:50px !important;
    height:50px !important;
    min-width:50px !important;
    max-width:50px !important;
    min-height:50px !important;
    max-height:50px !important;
  }
  .professional-booking-card .service-choice-copy h3{
    font-size:.98rem !important;
  }
  .professional-booking-card .service-choice-action{
    width:36px !important;
    height:36px !important;
    min-width:36px !important;
    max-width:36px !important;
  }
}

/* V2.1: maquetación definitiva idéntica a la referencia móvil.
   El icono se usa como background para impedir que su tamaño intrínseco rompa la tarjeta. */
.professional-booking-card .service-selection-grid{
  display:flex !important;
  flex-direction:column !important;
  width:100% !important;
  max-width:none !important;
  gap:14px !important;
  margin-top:20px !important;
}
.professional-booking-card a.professional-service-choice{
  display:grid !important;
  grid-template-columns:82px minmax(0,1fr) 54px !important;
  align-items:center !important;
  gap:18px !important;
  width:100% !important;
  min-width:0 !important;
  min-height:132px !important;
  padding:20px 22px !important;
  margin:0 !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
  border:1px solid #dbe4df !important;
  border-radius:22px !important;
  background:#fff !important;
  text-decoration:none !important;
}
.professional-booking-card .service-choice-icon{
  display:block !important;
  width:76px !important;
  height:76px !important;
  min-width:76px !important;
  max-width:76px !important;
  min-height:76px !important;
  max-height:76px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  border-radius:16px !important;
  overflow:hidden !important;
  background-color:#fff !important;
  background-repeat:no-repeat !important;
  background-position:center !important;
  background-size:contain !important;
  box-shadow:none !important;
}
.professional-booking-card .service-choice-icon img{display:none !important}
.professional-booking-card .service-choice-copy{
  display:block !important;
  min-width:0 !important;
  overflow:visible !important;
}
.professional-booking-card .service-choice-copy h3{
  margin:0 0 10px !important;
  color:#12494b !important;
  font-size:1.23rem !important;
  line-height:1.28 !important;
  font-weight:800 !important;
  overflow-wrap:break-word !important;
}
.professional-booking-card .service-choice-meta{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  gap:6px 12px !important;
}
.professional-booking-card .service-choice-meta span{
  display:inline-flex !important;
  align-items:center !important;
  padding:0 !important;
  margin:0 !important;
  background:transparent !important;
  color:#68736f !important;
  font-size:1rem !important;
  line-height:1.25 !important;
  white-space:nowrap !important;
}
.professional-booking-card .service-choice-meta .service-price strong{
  color:#5b6561 !important;
  font-size:1rem !important;
}
.professional-booking-card .service-choice-meta .service-modality{display:none !important}
.professional-booking-card .service-choice-action{
  display:grid !important;
  place-items:center !important;
  width:50px !important;
  height:50px !important;
  min-width:50px !important;
  max-width:50px !important;
  padding:0 !important;
  border-radius:15px !important;
  background:#e8f3df !important;
  color:#428729 !important;
  font-size:2.1rem !important;
  line-height:1 !important;
}
@media(max-width:760px){
  .professional-booking-card{padding:16px !important}
  .professional-booking-card a.professional-service-choice{
    grid-template-columns:78px minmax(0,1fr) 48px !important;
    gap:14px !important;
    min-height:138px !important;
    padding:18px 16px !important;
    border-radius:21px !important;
  }
  .professional-booking-card .service-choice-icon{
    width:72px !important;
    height:72px !important;
    min-width:72px !important;
    max-width:72px !important;
    min-height:72px !important;
    max-height:72px !important;
  }
  .professional-booking-card .service-choice-copy h3{
    margin-bottom:9px !important;
    font-size:1.13rem !important;
    line-height:1.3 !important;
  }
  .professional-booking-card .service-choice-meta{
    display:grid !important;
    gap:5px !important;
  }
  .professional-booking-card .service-choice-meta span,
  .professional-booking-card .service-choice-meta .service-price strong{
    font-size:.98rem !important;
  }
  .professional-booking-card .service-choice-action{
    width:46px !important;
    height:46px !important;
    min-width:46px !important;
    max-width:46px !important;
    border-radius:14px !important;
  }
}
@media(max-width:430px){
  .professional-booking-card a.professional-service-choice{
    grid-template-columns:66px minmax(0,1fr) 44px !important;
    gap:12px !important;
    min-height:126px !important;
    padding:16px 13px !important;
  }
  .professional-booking-card .service-choice-icon{
    width:62px !important;
    height:62px !important;
    min-width:62px !important;
    max-width:62px !important;
    min-height:62px !important;
    max-height:62px !important;
  }
  .professional-booking-card .service-choice-copy h3{font-size:1.03rem !important}
  .professional-booking-card .service-choice-meta span,
  .professional-booking-card .service-choice-meta .service-price strong{font-size:.91rem !important}
  .professional-booking-card .service-choice-action{
    width:42px !important;
    height:42px !important;
    min-width:42px !important;
    max-width:42px !important;
  }
}

/* V2.2: iconos visibles mediante IMG real, sin estilos inline ni dependencia de CSP. */
.professional-booking-card .service-choice-icon{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background-image:none !important;
  background:#fff !important;
}
.professional-booking-card .service-choice-icon > img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-width:0 !important;
  min-height:0 !important;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:contain !important;
  object-position:center !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  opacity:1 !important;
  visibility:visible !important;
}

/* V2.5: ficha profesional en modal */
.professional-profile-trigger{
  display:flex;
  align-items:center;
  flex:1 1 auto;
  min-width:0;
  gap:18px;
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  text-align:left;
  font:inherit;
  cursor:pointer;
}
.professional-profile-trigger:hover .professional-name-heading,
.professional-profile-trigger:focus-visible .professional-name-heading{color:#2f7f65}
.professional-profile-trigger:focus-visible{outline:3px solid rgba(82,157,111,.28);outline-offset:6px;border-radius:16px}
.professional-booking-copy{display:flex;flex-direction:column;min-width:0}
.professional-name-heading{display:block;color:#173e3f;font-size:1.45rem;font-weight:800;line-height:1.2;transition:color .18s ease}
.professional-profile-hint{display:inline-flex;margin-top:8px;color:#44866d;font-size:.88rem;font-weight:750;text-decoration:underline;text-underline-offset:3px}
.professional-modal-open{overflow:hidden}
.professional-profile-modal[hidden]{display:none!important}
.professional-profile-modal{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:20px}
.professional-profile-backdrop{position:absolute;inset:0;background:rgba(13,41,43,.58);backdrop-filter:blur(3px)}
.professional-profile-dialog{position:relative;z-index:1;width:min(680px,100%);max-height:min(88vh,820px);overflow:auto;padding:30px;border-radius:24px;background:#fff;box-shadow:0 28px 80px rgba(14,46,44,.28);outline:none}
.professional-profile-close{position:absolute;top:14px;right:16px;width:42px;height:42px;border:0;border-radius:50%;background:#edf5ef;color:#234c45;font-size:1.8rem;line-height:1;cursor:pointer}
.professional-profile-modal-header{display:flex;align-items:center;gap:18px;padding-right:40px;margin-bottom:24px}
.professional-profile-modal-avatar{display:grid;place-items:center;flex:0 0 92px;width:92px;height:92px;overflow:hidden;border-radius:50%;background:#e7f3e9;color:#387a62;font-size:2rem;font-weight:800}
.professional-profile-modal-avatar img{display:block;width:100%;height:100%;object-fit:cover}
.professional-profile-modal-header h2{margin:4px 0 5px;color:#173e3f;font-size:1.65rem;line-height:1.2}
.professional-profile-modal-header p{margin:0;color:#62716e}
.professional-profile-section{padding:20px 0;border-top:1px solid #e4ece8}
.professional-profile-section h3{margin:0 0 10px;color:#173e3f;font-size:1.03rem}
.professional-profile-section p{margin:0;color:#556763;line-height:1.65;white-space:normal}
.professional-profile-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:5px 0 20px}
.professional-profile-summary div{padding:14px;border-radius:14px;background:#f3f8f4}
.professional-profile-summary strong,.professional-profile-summary span{display:block}
.professional-profile-summary strong{margin-bottom:5px;color:#31544d;font-size:.79rem;text-transform:uppercase;letter-spacing:.04em}
.professional-profile-summary span{color:#4f625e;font-size:.93rem;line-height:1.35}
.professional-profile-services{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.professional-profile-services li{display:flex;justify-content:space-between;gap:16px;padding:11px 13px;border-radius:12px;background:#f7faf8;color:#2d514b}
.professional-profile-services small{flex:0 0 auto;color:#71807d}
.professional-profile-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:20px;border-top:1px solid #e4ece8}
.professional-profile-actions a,.professional-profile-actions button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border-radius:12px;font-weight:800;text-decoration:none;cursor:pointer}
.professional-profile-secondary{border:1px solid #cad8d1;background:#fff;color:#3e5e57}
.professional-profile-primary{border:1px solid #4e956b;background:#4e956b;color:#fff}
@media(max-width:760px){
  .professional-booking-header{align-items:flex-start}
  .professional-profile-trigger{gap:13px}
  .professional-name-heading{font-size:1.2rem}
  .professional-profile-dialog{padding:24px 18px 18px;border-radius:20px}
  .professional-profile-modal-header{align-items:flex-start;gap:13px}
  .professional-profile-modal-avatar{flex-basis:72px;width:72px;height:72px}
  .professional-profile-modal-header h2{font-size:1.35rem}
  .professional-profile-summary{grid-template-columns:1fr}
  .professional-profile-services li{display:block}
  .professional-profile-services small{display:block;margin-top:4px}
  .professional-profile-actions{position:sticky;bottom:-18px;margin:0 -18px -18px;padding:14px 18px;background:#fff}
}

/* V2.6: ficha compacta; la biografía completa y la formación se muestran en el modal. */
.professional-profile-trigger .professional-bio{display:none!important}
.professional-profile-education p{white-space:pre-line}

/* V2.7: distintivo visual mejorado para Consulta Particular / Fonasa */
.professional-booking-card .service-type-badge{
  display:inline-flex !important;
  align-items:center !important;
  width:max-content !important;
  max-width:100% !important;
  min-height:30px !important;
  margin:0 0 9px !important;
  padding:5px 12px 5px 9px !important;
  gap:7px !important;
  border:1px solid transparent !important;
  border-radius:999px !important;
  font-size:.84rem !important;
  line-height:1 !important;
  font-weight:800 !important;
  letter-spacing:.01em !important;
  white-space:nowrap !important;
  box-shadow:0 3px 9px rgba(31,97,69,.06) !important;
}
.professional-booking-card .service-type-badge .service-type-dot{
  display:block !important;
  width:8px !important;
  height:8px !important;
  min-width:8px !important;
  border-radius:50% !important;
  box-shadow:0 0 0 4px rgba(255,255,255,.65) !important;
}
.professional-booking-card .service-type-badge.is-particular{
  color:#2f6f42 !important;
  background:linear-gradient(180deg,#f4fff7 0%,#eaf9ef 100%) !important;
  border-color:#99dfad !important;
}
.professional-booking-card .service-type-badge.is-particular .service-type-dot{
  background:#48a765 !important;
}
.professional-booking-card .service-type-badge.is-fonasa{
  color:#155f91 !important;
  background:linear-gradient(180deg,#f2f9ff 0%,#e6f3ff 100%) !important;
  border-color:#91c9ee !important;
}
.professional-booking-card .service-type-badge.is-fonasa .service-type-dot{
  background:#2381bd !important;
}
.professional-booking-card .service-choice-meta{
  row-gap:5px !important;
}
.professional-booking-card .service-choice-meta .service-duration{
  color:#63716d !important;
}
.professional-booking-card .service-choice-meta .service-price{
  display:block !important;
  flex-basis:100% !important;
  margin-top:1px !important;
}
.professional-booking-card .service-choice-meta .service-price strong{
  color:#4d5956 !important;
  font-size:1.16rem !important;
  font-weight:850 !important;
}
@media(max-width:760px){
  .professional-booking-card .service-type-badge{
    min-height:27px !important;
    margin-bottom:7px !important;
    padding:4px 10px 4px 8px !important;
    font-size:.76rem !important;
  }
  .professional-booking-card .service-type-badge .service-type-dot{
    width:7px !important;
    height:7px !important;
    min-width:7px !important;
  }
  .professional-booking-card .service-choice-meta .service-price strong{
    font-size:1.02rem !important;
  }
}

/* V2.8: etiqueta más compacta y duración/precio en una sola línea */
.professional-booking-card .service-type-badge{
  min-height:24px !important;
  margin:0 0 7px !important;
  padding:3px 9px 3px 7px !important;
  gap:5px !important;
  font-size:.73rem !important;
  line-height:1 !important;
  font-weight:800 !important;
  box-shadow:none !important;
}
.professional-booking-card .service-type-badge .service-type-dot{
  width:6px !important;
  height:6px !important;
  min-width:6px !important;
  box-shadow:none !important;
}
.professional-booking-card .service-choice-meta{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  gap:0 !important;
  width:max-content !important;
  max-width:100% !important;
  white-space:nowrap !important;
}
.professional-booking-card .service-choice-meta .service-duration,
.professional-booking-card .service-choice-meta .service-price{
  display:inline-flex !important;
  align-items:center !important;
  flex:0 0 auto !important;
  flex-basis:auto !important;
  min-height:auto !important;
  margin:0 !important;
  padding:0 !important;
}
.professional-booking-card .service-choice-meta .service-duration{
  padding-right:12px !important;
  color:#687570 !important;
}
.professional-booking-card .service-choice-meta .service-price{
  position:relative !important;
  padding-left:12px !important;
}
.professional-booking-card .service-choice-meta .service-price::before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:1px;
  height:18px;
  background:#ccd7d2;
  transform:translateY(-50%);
}
.professional-booking-card .service-choice-meta .service-price strong{
  color:#414d49 !important;
  font-size:1rem !important;
  font-weight:850 !important;
}
@media(max-width:760px){
  .professional-booking-card .service-type-badge{
    min-height:22px !important;
    margin-bottom:6px !important;
    padding:3px 8px 3px 6px !important;
    font-size:.68rem !important;
  }
  .professional-booking-card .service-choice-meta{
    display:flex !important;
    gap:0 !important;
  }
  .professional-booking-card .service-choice-meta .service-duration{
    padding-right:9px !important;
    font-size:.84rem !important;
  }
  .professional-booking-card .service-choice-meta .service-price{
    padding-left:9px !important;
  }
  .professional-booking-card .service-choice-meta .service-price::before{
    height:15px;
  }
  .professional-booking-card .service-choice-meta .service-price strong{
    font-size:.91rem !important;
  }
}

/* V2.9: metadatos homogéneos con iconos SVG consistentes */
.professional-booking-card .service-choice-meta{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  column-gap:14px !important;
  width:auto !important;
  max-width:100% !important;
  white-space:nowrap !important;
}
.professional-booking-card .service-choice-meta .service-duration,
.professional-booking-card .service-choice-meta .service-price{
  display:inline-flex !important;
  align-items:center !important;
  gap:6px !important;
  flex:0 0 auto !important;
  min-height:22px !important;
  margin:0 !important;
  padding:0 !important;
  color:#5f6d68 !important;
  font-size:.94rem !important;
  line-height:1.2 !important;
}
.professional-booking-card .service-choice-meta .service-price{
  position:relative !important;
  padding-left:14px !important;
}
.professional-booking-card .service-choice-meta .service-price::before{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  top:50% !important;
  width:1px !important;
  height:18px !important;
  background:#d4ddd9 !important;
  transform:translateY(-50%) !important;
}
.professional-booking-card .service-meta-icon{
  width:18px !important;
  height:18px !important;
  min-width:18px !important;
  display:block !important;
  fill:none !important;
  stroke:#4b9650 !important;
  stroke-width:1.8 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}
.professional-booking-card .service-choice-meta .service-price strong{
  color:#3f4a46 !important;
  font-size:.98rem !important;
  font-weight:850 !important;
  line-height:1.2 !important;
}
@media(max-width:760px){
  .professional-booking-card .service-choice-meta{
    column-gap:10px !important;
  }
  .professional-booking-card .service-choice-meta .service-duration,
  .professional-booking-card .service-choice-meta .service-price{
    gap:5px !important;
    min-height:20px !important;
    font-size:.84rem !important;
  }
  .professional-booking-card .service-choice-meta .service-price{
    padding-left:10px !important;
  }
  .professional-booking-card .service-choice-meta .service-price::before{
    height:15px !important;
  }
  .professional-booking-card .service-meta-icon{
    width:16px !important;
    height:16px !important;
    min-width:16px !important;
  }
  .professional-booking-card .service-choice-meta .service-price strong{
    font-size:.88rem !important;
  }
}
@media(max-width:390px){
  .professional-booking-card .service-choice-meta{
    column-gap:8px !important;
  }
  .professional-booking-card .service-choice-meta .service-duration,
  .professional-booking-card .service-choice-meta .service-price{
    gap:4px !important;
    font-size:.79rem !important;
  }
  .professional-booking-card .service-choice-meta .service-price{
    padding-left:8px !important;
  }
  .professional-booking-card .service-meta-icon{
    width:15px !important;
    height:15px !important;
    min-width:15px !important;
  }
  .professional-booking-card .service-choice-meta .service-price strong{
    font-size:.83rem !important;
  }
}
