/* Clínica Medical Booking 0.5: encapsulated layout for Elementor / Divi / Gutenberg. */
.cmb-public-booking{--cmb-blue:#2999c5;--cmb-navy:#07537d;--cmb-pale:#e1f5fd;--cmb-slot:#b4e1f5;box-sizing:border-box;width:100%;margin:0 auto;background:#fff;color:#183d53;font-family:inherit;font-size:14px}
.cmb-public-booking *,.cmb-public-booking *::before,.cmb-public-booking *::after{box-sizing:border-box}
.cmb-public-booking [hidden]{display:none!important}
.cmb-public-booking button,.cmb-public-booking input,.cmb-public-booking select{font:inherit}
.cmb-public-booking .cmb-directory-header{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-end;justify-content:space-between;padding:18px 24px;background:#3298c0;color:#fff}
.cmb-public-booking .cmb-public-title{color:#fff!important;font-size:clamp(20px,2.3vw,27px);line-height:1.2;font-weight:700;margin:0 auto 5px 0;padding:0}
.cmb-public-booking .cmb-directory-primary{display:flex;gap:14px;align-items:flex-end;flex:1 1 480px;justify-content:flex-end}
.cmb-public-booking .cmb-directory-primary label{color:#fff;font-size:12px;font-weight:600;flex:1;max-width:260px}
.cmb-public-booking .cmb-directory-primary select{margin-top:6px;min-height:42px;width:100%;border:0;border-radius:6px;color:#1d4b65;background:#fff;padding:0 12px}
.cmb-public-booking .cmb-directory-search{background:transparent;border:1px solid #fff;color:#fff;border-radius:24px;min-height:42px;padding:0 24px;cursor:pointer;white-space:nowrap}
.cmb-public-booking .cmb-directory-search:hover{background:#fff;color:#07537d}
.cmb-public-booking .cmb-directory-secondary{display:flex;flex-wrap:wrap;gap:16px;background:#e5f5fc;padding:12px 24px}
.cmb-public-booking .cmb-directory-secondary label{flex:0 1 270px;min-width:190px}
.cmb-public-booking .cmb-directory-secondary label:nth-child(2){flex:1 1 300px;max-width:520px}
.cmb-public-booking .cmb-directory-secondary input{display:block;min-height:40px;width:100%;background:#fff;border:1px solid #2f9fcd;border-radius:6px;padding:7px 10px;color:#153e54;box-shadow:none}
.cmb-public-booking .cmb-doctor-directory{padding:24px clamp(12px,3vw,44px)}
.cmb-public-booking .cmb-doctor-card{display:grid;grid-template-columns:minmax(235px,0.91fr) minmax(300px,1.3fr);gap:clamp(20px,4vw,52px);padding:18px 0 30px;border-bottom:1px solid #e8edf1;margin-bottom:16px;background:#fff}
.cmb-public-booking .cmb-doctor-card:last-child{border-bottom:0}
.cmb-public-booking .cmb-doctor-head{display:flex;gap:16px;align-items:center}
.cmb-public-booking .cmb-doctor-avatar{width:85px;height:90px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:9px;overflow:hidden;background:#eff6fa;color:#99b9ca}
.cmb-public-booking .cmb-doctor-avatar img{display:block;width:100%;height:100%;object-fit:cover}
.cmb-public-booking .cmb-avatar-placeholder{font-size:52px;color:#a2bac9}
.cmb-public-booking .cmb-doctor-info{min-width:0}.cmb-public-booking .cmb-doctor-specialty{font-size:11px;color:#1985c3}
.cmb-public-booking .cmb-doctor-info h3{font-size:17px;color:#00507b;margin:6px 0 7px;line-height:1.3;font-weight:700}
.cmb-public-booking .cmb-doctor-cmp{font-size:12px;color:#566b7c;margin:0}.cmb-public-booking .cmb-profile-link{border:0;background:none;color:#1681b9;padding:0;cursor:pointer}
.cmb-public-booking .cmb-doctor-meta{border-top:1px solid #d8e1e8;margin-top:19px;padding-top:10px;display:flex;flex-direction:column;gap:8px;font-size:12px;color:#31536a}
.cmb-public-booking .cmb-doctor-meta strong{font-size:13px;color:#0c86b8;max-width:max-content;border-bottom:2px solid #37a6d0;padding:0 8px 7px}
.cmb-public-booking .cmb-doctor-booking{min-width:0}.cmb-public-booking .cmb-service-selector{display:flex;align-items:center;gap:12px;font-size:12px;color:#205775;margin-bottom:9px}
.cmb-public-booking .cmb-service-selector select{width:100%;max-width:360px;min-width:0;background:#fff;border:1px solid #a0cbdf;padding:6px 9px;border-radius:6px;height:36px;color:#24465b}
.cmb-public-booking .cmb-doctor-schedule{background:#b1e0f5;border-radius:7px;padding:10px;min-height:100px}
.cmb-public-booking .cmb-schedule-heading{display:flex;align-items:center;gap:8px;color:#07537d;font-weight:600;font-size:12px;margin-bottom:9px}
.cmb-public-booking .cmb-schedule-heading span{flex:1}
.cmb-public-booking .cmb-date-nav{background:#fff;border:1px solid #7fc4e7;border-radius:5px;color:#07537d;cursor:pointer;font-size:20px;line-height:1;width:30px;height:27px;padding:0}
.cmb-public-booking .cmb-date-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin-bottom:8px}
.cmb-public-booking .cmb-date-chip{background:#e3f3fc;border:1px solid #57b8e4;border-radius:5px;min-width:0;min-height:44px;padding:3px;color:#15547d;font-size:11px;cursor:pointer;text-transform:capitalize;line-height:1.5}
.cmb-public-booking .cmb-date-chip.is-active{background:#fff;outline:2px solid #53b6e5;outline-offset:0}.cmb-public-booking .cmb-date-chip.is-empty{opacity:.62}
.cmb-public-booking .cmb-times{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.cmb-public-booking .cmb-hour{display:block;background:#fff;border:1px solid #88cdea;border-radius:5px;min-width:0;min-height:34px;cursor:pointer;color:#225675;font-size:12px;padding:6px 2px}
.cmb-public-booking .cmb-hour:hover,.cmb-public-booking .cmb-hour:focus-visible{background:#e8f6fe;outline:2px solid #0877ae}
.cmb-public-booking .cmb-loading,.cmb-public-booking .cmb-no-times,.cmb-public-booking .cmb-directory-error{grid-column:1/-1;margin:10px 4px;font-size:13px}
.cmb-public-booking .cmb-directory-error{color:#b32d2e}.cmb-public-booking .cmb-directory-empty{padding:24px;text-align:center;background:#f4f9fc;border-radius:7px}
.cmb-public-booking .cmb-slot-confirm{position:relative;padding:22px;background:#eff8fc;display:flex;align-items:center;justify-content:center}
.cmb-public-booking .cmb-slot-confirm-card{max-width:480px;width:100%;background:#fff;border-radius:12px;box-shadow:0 12px 36px #16475c24;text-align:center;padding:26px}
.cmb-public-booking .cmb-confirm-symbol{background:#5cb4df;border-radius:50%;width:44px;height:44px;color:#fff;font-size:30px;font-weight:700;line-height:44px;margin:0 auto 12px}
.cmb-public-booking .cmb-slot-confirm h3{color:#005480;margin:0 0 12px;font-size:18px}.cmb-public-booking .cmb-confirm-summary{line-height:1.7}
.cmb-public-booking .cmb-confirm-buttons{display:flex;justify-content:center;gap:10px;margin-top:20px}
.cmb-public-booking .cmb-confirm-buttons button,.cmb-public-booking .cmb-pay-button{min-height:42px;padding:9px 20px;border:1px solid #07537d;border-radius:24px;background:#fff;color:#07537d;cursor:pointer}
.cmb-public-booking .cmb-confirm-buttons .cmb-confirm-continue,.cmb-public-booking .cmb-pay-button{background:#07537d;color:#fff}
.cmb-public-booking .cmb-patient-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:900px;margin:25px auto;padding:24px;background:#f7fbfd;border:1px solid #d5e9f3;border-radius:9px}
.cmb-public-booking .cmb-patient-head{grid-column:1/-1}.cmb-public-booking .cmb-patient-head h3{margin:0 0 8px;font-size:20px;color:#07537d}
.cmb-public-booking .cmb-patient-back{color:#087eae;background:none;border:0;text-decoration:underline;cursor:pointer;padding:5px 0}
.cmb-public-booking .cmb-patient-form>label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}
.cmb-public-booking .cmb-patient-form input:not([type=checkbox]),.cmb-public-booking .cmb-patient-form select{width:100%;min-width:0;min-height:43px;border-radius:5px;border:1px solid #9bbcd0;padding:10px;background:#fff;color:#25475b}
.cmb-public-booking .cmb-public-privacy{grid-column:1/-1;font-size:13px;margin:0}.cmb-public-booking .cmb-public-privacy label{display:flex;align-items:flex-start;gap:9px}
.cmb-public-booking .cmb-public-privacy input{margin-top:4px}
.cmb-public-booking .cmb-pay-button{grid-column:1/2;border-radius:6px}.cmb-public-booking .cmb-pay-button:disabled{opacity:.6;cursor:wait}
.cmb-public-booking .cmb-public-message{align-self:center;grid-column:2/3;margin:0;color:#9a381f}
.cmb-public-booking button:focus-visible,.cmb-public-booking select:focus-visible,.cmb-public-booking input:focus-visible{outline:2px solid #008ac4;outline-offset:2px}
@media(max-width:820px){.cmb-public-booking .cmb-doctor-card{grid-template-columns:1fr;gap:20px}.cmb-public-booking .cmb-directory-header{align-items:stretch}.cmb-public-booking .cmb-public-title{width:100%}.cmb-public-booking .cmb-directory-primary{justify-content:flex-start}}
@media(max-width:520px){.cmb-public-booking .cmb-directory-header,.cmb-public-booking .cmb-directory-secondary{padding:14px}.cmb-public-booking .cmb-directory-primary{flex-wrap:wrap;gap:9px}.cmb-public-booking .cmb-directory-primary label{max-width:none;flex:1 1 100%}.cmb-public-booking .cmb-directory-search{width:100%}.cmb-public-booking .cmb-directory-secondary label{flex:1 1 100%!important}.cmb-public-booking .cmb-doctor-directory{padding:12px}.cmb-public-booking .cmb-doctor-avatar{width:72px;height:78px}.cmb-public-booking .cmb-doctor-info h3{font-size:15px}.cmb-public-booking .cmb-date-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.cmb-public-booking .cmb-times{grid-template-columns:repeat(3,minmax(0,1fr))}.cmb-public-booking .cmb-patient-form{grid-template-columns:1fr;padding:14px}.cmb-public-booking .cmb-pay-button,.cmb-public-booking .cmb-public-message{grid-column:1}}
.cmb-public-booking .screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* v0.5.1 — correct, independently navigable day/week/month views. */
.cmb-public-booking .cmb-view-selector{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:12px 24px 0;background:#fff;color:#295a73;font-size:12px}
.cmb-public-booking .cmb-view-selector span{font-weight:600;margin-right:6px}
.cmb-public-booking .cmb-view-selector button{background:#f2f8fc;border:1px solid #aed4e8;border-radius:5px;color:#07537d;padding:7px 13px;min-height:35px;cursor:pointer}
.cmb-public-booking .cmb-view-selector button.is-active{background:#09618f;border-color:#09618f;color:#fff;font-weight:600}
.cmb-public-booking .cmb-schedule-heading{justify-content:space-between;gap:7px}
.cmb-public-booking .cmb-schedule-heading .cmb-period-title{font-size:13px;line-height:1.4;text-transform:capitalize;text-align:center;flex:1}
.cmb-public-booking .cmb-period-stats{font-size:11px;color:#174e6e;margin:4px 0 10px}
.cmb-public-booking .cmb-date-tabs.cmb-date-month{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cmb-public-booking .cmb-date-tabs.cmb-date-week{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.cmb-public-booking .cmb-date-tabs.cmb-date-day{grid-template-columns:minmax(0,1fr);max-width:155px}
.cmb-public-booking .cmb-date-chip{min-height:38px}
.cmb-public-booking .cmb-date-month .cmb-date-chip{min-height:37px;font-size:12px;padding:4px 2px}
.cmb-public-booking .cmb-date-tabs .cmb-weekday{font-size:10px;font-weight:700;color:#16628a;text-align:center;padding:4px 0}
.cmb-public-booking .cmb-date-chip.has-availability{background:#fff;color:#005b89;border-color:#137cbb;font-weight:700}
.cmb-public-booking .cmb-date-chip.is-occupied{background:#e6eff5;color:#35546a;border-color:#9ac5dc}
.cmb-public-booking .cmb-date-chip.is-empty{background:#cde8f4;opacity:.67;border-color:transparent}
.cmb-public-booking .cmb-date-chip.is-past{opacity:.35;cursor:not-allowed}
.cmb-public-booking .cmb-date-chip.is-active{background:#075b84!important;color:#fff!important;opacity:1!important;outline:2px solid #fff;box-shadow:0 0 0 2px #075b84}
.cmb-public-booking .cmb-period-legend{display:flex;flex-wrap:wrap;gap:10px;font-size:10px;color:#365a70;margin:5px 0}
.cmb-public-booking .cmb-legend-available{color:#006ba4}.cmb-public-booking .cmb-legend-occupied{color:#59778a}.cmb-public-booking .cmb-legend-empty{color:#678799}
.cmb-public-booking .cmb-period-hint{font-size:11px;margin:8px 0;color:#315a74}
.cmb-public-booking .cmb-day-title{border-top:1px solid #d0edf9;padding-top:9px;margin:12px 0 8px;color:#07537d;font-size:12px;font-weight:700;text-transform:capitalize}
.cmb-public-booking .cmb-doctor-schedule .cmb-no-times{padding:8px 0;margin:0;font-size:12px;line-height:1.5;color:#244f69}
@media(max-width:520px){.cmb-public-booking .cmb-view-selector{padding:12px 14px 0}.cmb-public-booking .cmb-date-tabs.cmb-date-week,.cmb-public-booking .cmb-date-tabs.cmb-date-month{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.cmb-public-booking .cmb-date-week .cmb-date-chip{font-size:9px;overflow-wrap:anywhere}.cmb-public-booking .cmb-date-month .cmb-date-chip{min-height:33px}.cmb-public-booking .cmb-schedule-heading .cmb-period-title{font-size:11px}}

.cmb-public-booking .cmb-hour-disabled{opacity:.65;cursor:not-allowed;text-align:center;display:flex;align-items:center;justify-content:center;border-style:dashed;color:#537086}
.cmb-public-booking .cmb-times>.cmb-no-times{grid-column:1/-1}

/* v0.5.5: volver al calendario completo desde la ficha, sin fijar un solo día. */
.cmb-public-booking .cmb-show-calendar{margin-left:auto;background:#fff!important;border:1px solid #99cbe2!important;color:#07537d!important;font-weight:600;white-space:normal}
.cmb-public-booking .cmb-show-calendar:hover,.cmb-public-booking .cmb-show-calendar:focus-visible{background:#e6f6fd!important}
.cmb-public-booking .cmb-hour{white-space:nowrap;font-variant-numeric:tabular-nums}
@media(max-width:520px){.cmb-public-booking .cmb-show-calendar{flex:1 1 100%;margin-left:0}}

/* 0.5.8 — per-instance, administrator-configurable calendar palette. */
.cmb-public-booking .cmb-doctor-schedule{background:var(--cmb-cal-bg,#B1E0F5);border:2px solid var(--cmb-cal-border,#89CBE7)}
.cmb-public-booking .cmb-date-nav{background:var(--cmb-cal-nav-bg,#FFFFFF);border-color:var(--cmb-cal-nav-border,#7FC4E7);color:var(--cmb-cal-nav-icon,#07537D)}
.cmb-public-booking .cmb-date-tabs .cmb-weekday{color:var(--cmb-cal-weekday,#16628A)}
.cmb-public-booking .cmb-date-chip{background:var(--cmb-cal-date-bg,#E3F3FC);border-color:var(--cmb-cal-date-border,#57B8E4);color:var(--cmb-cal-date-text,#15547D)}
.cmb-public-booking .cmb-date-chip.is-empty,.cmb-public-booking .cmb-date-chip.is-occupied{background:var(--cmb-cal-date-bg,#E3F3FC);border-color:var(--cmb-cal-date-border,#57B8E4);color:var(--cmb-cal-date-text,#15547D)}
.cmb-public-booking .cmb-date-chip.has-availability{background:var(--cmb-cal-date-bg,#E3F3FC);border-color:var(--cmb-cal-date-border,#57B8E4);color:var(--cmb-cal-date-text,#15547D);font-weight:700}
.cmb-public-booking .cmb-date-chip.is-active{background:var(--cmb-cal-selected-bg,#075B84)!important;box-shadow:0 0 0 2px var(--cmb-cal-selected-bg,#075B84)!important}
.cmb-public-booking .cmb-hour{background:var(--cmb-cal-slot-bg,#FFFFFF);border-color:var(--cmb-cal-slot-border,#88CDEA);color:var(--cmb-cal-slot-text,#225675)}
.cmb-public-booking .cmb-hour:hover,.cmb-public-booking .cmb-hour:focus-visible{background:var(--cmb-cal-slot-bg,#FFFFFF);filter:brightness(.95);border-color:var(--cmb-cal-slot-border,#88CDEA)}
.cmb-public-booking .cmb-profile-details{margin:14px 0 0;padding:15px;background:#f3f9fc;border:1px solid #d9e9f1;border-radius:7px;line-height:1.55;overflow-wrap:anywhere;font-size:13px}
.cmb-public-booking .cmb-profile-details[hidden]{display:none!important}
.cmb-public-booking .cmb-profile-details p{margin:0 0 10px}
.cmb-public-booking .cmb-profile-details p:last-child{margin-bottom:0}
.cmb-public-booking .cmb-profile-details img{max-width:100%;height:auto}

/* 0.5.9 — identidad del paciente, bajo el mismo aislamiento de estilos. */
.cmb-public-booking .cmb-patient-identity{grid-column:1/-1;border:1px solid #bedcea;background:#edf7fb;border-radius:8px;padding:14px;display:grid;gap:10px}
.cmb-public-booking .cmb-identity-status{margin:0;color:#155777;font-size:13px;line-height:1.5}
.cmb-public-booking .cmb-patient-identity .cmb-existing-login,
.cmb-public-booking .cmb-patient-identity .cmb-legacy-activation,
.cmb-public-booking .cmb-patient-identity .cmb-new-account{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end}
.cmb-public-booking .cmb-patient-identity .cmb-existing-login[hidden],
.cmb-public-booking .cmb-patient-identity .cmb-legacy-activation[hidden],
.cmb-public-booking .cmb-patient-identity .cmb-new-account[hidden]{display:none!important}
.cmb-public-booking .cmb-patient-identity p{grid-column:1/-1;margin:0;font-size:13px}
.cmb-public-booking .cmb-patient-identity label{display:grid;gap:5px;font-size:13px;font-weight:600}
.cmb-public-booking .cmb-patient-identity button{background:#07537d;color:#fff;border:1px solid #07537d;border-radius:5px;padding:9px 14px;cursor:pointer;min-height:43px}
.cmb-public-booking .cmb-patient-identity button:disabled{opacity:.65;cursor:wait}
.cmb-public-booking .cmb-patient-identity a{font-size:12px;text-decoration:underline}
@media(max-width:620px){.cmb-public-booking .cmb-patient-identity .cmb-existing-login,.cmb-public-booking .cmb-patient-identity .cmb-legacy-activation,.cmb-public-booking .cmb-patient-identity .cmb-new-account{grid-template-columns:1fr}}
