/* Sección integrada; conserva el formulario y los estilos originales de la agenda. */
.availability-section{position:relative;z-index:9;margin:0 auto 18px;padding:24px 28px;border:1px solid var(--gold);border-radius:20px;background:#fff;box-shadow:var(--shadow-soft);scroll-margin-top:12px}
.availability-section[hidden],.availability-section [hidden]{display:none!important}
.availability-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}
.availability-heading h2{margin:0;color:var(--navy);font-size:clamp(22px,2.7vw,30px);line-height:1.18;letter-spacing:-.025em}
.availability-heading p{margin:5px 0 0;color:var(--muted);font-size:15px}
.availability-dates{display:flex;flex-wrap:wrap;gap:6px}
.availability-date{min-height:38px;padding:6px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--navy);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.availability-date.selected{background:var(--primary);color:#fff;border-color:var(--primary)}
.availability-professionals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:stretch}
.availability-professional{min-width:0;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fcfefe}
.availability-professional h3{min-height:2.45em;margin:0;color:var(--navy);font-size:17px;font-weight:800;line-height:1.2;letter-spacing:-.02em;overflow-wrap:anywhere}
.availability-count{min-height:1.4em;margin:3px 0 9px;color:var(--muted);font-size:13px;line-height:1.35}
.availability-times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;align-content:start;min-height:78px}
.availability-time{min-height:36px;padding:5px 3px;border:1px solid var(--primary);border-radius:7px;background:#fff;color:var(--primary-dark);font:inherit;font-size:14px;font-weight:800;cursor:pointer;font-variant-numeric:tabular-nums}
.availability-time:hover{background:var(--primary-soft)}
.availability-time.selected{background:var(--primary-deep);border-color:var(--primary-deep);color:#fff}
.availability-section button:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.availability-show-all,.availability-retry{grid-column:1/-1;min-height:32px;padding:4px;border:0;border-radius:6px;background:transparent;color:var(--primary-deep);font:inherit;font-size:13px;font-weight:700;text-decoration:underline;cursor:pointer}
.availability-empty{grid-column:1/-1;margin:0;align-self:center;color:var(--muted);font-size:13px}
.availability-error{color:#8a4f0b}
.availability-status{margin:10px 0 8px;color:var(--muted);font-size:13px;line-height:1.4;min-height:1.4em}
.availability-actions{display:flex;gap:12px;align-items:center;justify-content:center}
.availability-continue{flex:1;max-width:520px;min-height:44px;margin:0}
.availability-continue:disabled{background:#e4e9eb;border-color:#e4e9eb;color:#40545c;cursor:default;box-shadow:none}
.availability-more{min-height:42px;min-width:150px;padding:6px 16px;border:1px solid var(--primary);border-radius:9px;background:#fff;color:var(--primary-deep);font:inherit;font-size:14px;font-weight:700;cursor:pointer}
@media(max-width:760px){
  .availability-section{padding:14px 12px;margin-bottom:14px;border-radius:16px}
  .availability-heading{display:block;margin-bottom:10px}
  .availability-heading h2{font-size:21px}
  .availability-heading p{font-size:13px;margin-top:3px}
  .availability-dates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:10px}
  .availability-date{min-height:36px;padding:5px 3px;font-size:12px}
  .availability-professionals{grid-template-columns:1fr;gap:8px}
  .availability-professional{padding:8px 10px}
  .availability-professional h3{min-height:0;font-size:15px;line-height:1.25}
  .availability-count{margin:2px 0 6px;font-size:12px}
  .availability-times{gap:5px;min-height:77px}
  .availability-time{min-height:36px;font-size:14px}
  .availability-status{margin:8px 0;font-size:12px}
  .availability-actions{gap:6px;flex-wrap:wrap}
  .availability-continue{flex:1 1 100%;min-height:42px;font-size:13px}
  .availability-more{min-height:34px;padding:4px 14px;font-size:12px}
}
