:root { color-scheme: light; --public-ink: #17312d; --public-muted: #5f716d; --public-line: #d7e3df; --public-paper: #fff; --public-ground: #f4f7f5; --public-accent: #166b60; --public-accent-soft: #e3f0ed; --public-focus: #efb344; --public-danger: #9c3d38; --public-layout-gutter: clamp(16px, 3vw, 48px); --public-layout-max: 1760px; }
@media (min-width: 1050px) and (max-height: 599px) {
  html, body { height: 100% !important; overflow: hidden !important; }
  .public-booking-shell { display: grid !important; grid-template-rows: auto minmax(0, 1fr) !important; height: 100dvh !important; padding: 10px 0 8px !important; overflow: hidden !important; }
  .public-booking-workspace { position: static !important; height: 100% !important; max-height: none !important; min-height: 0 !important; align-items: stretch !important; overflow: hidden !important; }
  .public-booking-workspace > .public-booking-card { height: 100% !important; min-height: 0 !important; }
  .public-booking-types-card, .public-booking-schedule-card, .public-booking-slots-section { display: flex !important; flex-direction: column !important; overflow: hidden !important; }
  .public-booking-types, .public-booking-slots { min-height: 0 !important; overflow-y: auto !important; }
  .public-booking-schedule-layout { flex: 1 1 auto !important; min-height: 0 !important; height: auto !important; align-items: stretch !important; }
  .public-booking-calendar-panel { overflow: hidden !important; }
  .public-booking-slots-section { min-height: 96px !important; height: 100% !important; padding-bottom: 0 !important; }
  .public-booking-calendar-panel { display: flex !important; flex-direction: column !important; min-height: 0 !important; }
  .public-calendar-toolbar, .public-calendar-weekdays { flex: 0 0 auto !important; }
  .public-calendar-toolbar { margin-bottom: 8px !important; }
  .public-calendar-weekdays { margin-bottom: 4px !important; }
  .public-booking-calendar.is-month { display: grid !important; flex: 0 1 440px !important; min-height: 0 !important; grid-template-rows: repeat(6, minmax(0, 1fr)) !important; }
  .public-booking-calendar.is-month.is-five-weeks { grid-template-rows: repeat(5, minmax(0, 1fr)) !important; }
  .public-booking-calendar.is-month .public-calendar-day { min-height: 0 !important; padding: 3px 2px !important; }
  .public-booking-calendar.is-month .public-calendar-day strong { margin-bottom: 0 !important; font-size: .78rem !important; }
  .public-booking-calendar.is-month .public-calendar-day span { font-size: .62rem !important; line-height: 1.05 !important; white-space: nowrap !important; }
}
@media (min-width: 1050px) {
  .public-booking-calendar-panel { display: flex !important; flex-direction: column !important; min-height: 0 !important; overflow: hidden !important; }
  .public-calendar-toolbar, .public-calendar-weekdays { flex: 0 0 auto !important; }
  .public-booking-calendar.is-month { display: grid !important; flex: 0 1 440px !important; min-height: 0 !important; grid-template-rows: repeat(6, minmax(0, 1fr)) !important; }
  .public-booking-calendar.is-month.is-five-weeks { grid-template-rows: repeat(5, minmax(0, 1fr)) !important; }
  .public-booking-calendar.is-month .public-calendar-day { min-height: 0 !important; padding: clamp(2px, .2vw, 5px) !important; }
  .public-booking-calendar.is-month .public-calendar-day strong { margin-bottom: 0 !important; font-size: clamp(.78rem, 1vw, 1rem) !important; }
  .public-booking-calendar.is-month .public-calendar-day span { font-size: clamp(.6rem, .72vw, .82rem) !important; line-height: 1.05 !important; white-space: nowrap !important; }
}
* { box-sizing: border-box; } body { margin: 0; min-width: 320px; background: var(--public-ground); color: var(--public-ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.5; } button, input { font: inherit; }
button { border: 0; border-radius: 9px; background: var(--public-accent); color: #fff; padding: .72rem 1rem; font-weight: 750; cursor: pointer; transition: transform 160ms cubic-bezier(.23,1,.32,1), background 160ms ease, border-color 160ms ease; } button:active { transform: scale(.97); } button:disabled { cursor: not-allowed; opacity: .5; } button:focus-visible, input:focus-visible { outline: 3px solid var(--public-focus); outline-offset: 3px; }
.public-booking-shell { width: min(920px, calc(100% - 32px)); margin: 0 auto; padding: 34px 0 64px; }.public-booking-header { max-width: 700px; margin: 0 auto 26px; text-align: center; }.public-booking-logo { width: min(168px, 46vw); height: auto; margin-bottom: 22px; }.public-booking-kicker, .public-booking-eyebrow { margin: 0 0 7px; color: var(--public-accent); font-size: .75rem; font-weight: 850; letter-spacing: .11em; } h1, h2, h3, p { margin-top: 0; } h1 { margin-bottom: .85rem; font-size: clamp(2rem, 6vw, 3.1rem); line-height: 1.05; letter-spacing: -.035em; } h2 { font-size: clamp(1.35rem, 3vw, 1.75rem); }.public-booking-header-intro, .public-booking-heading > p:last-child { color: var(--public-muted); }
.public-booking-steps { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; margin: 0 auto 22px; color: var(--public-muted); font-size: .86rem; }.public-booking-steps span { display: inline-flex; align-items: center; gap: 7px; padding: .42rem .64rem; border-radius: 999px; }.public-booking-steps b { display: grid; place-items: center; width: 20px; height: 20px; border: 1px solid #b8c8c3; border-radius: 50%; font-size: .75rem; }.public-booking-steps .is-current { background: var(--public-accent-soft); color: var(--public-ink); font-weight: 700; }.public-booking-steps .is-current b { border-color: var(--public-accent); background: var(--public-accent); color: #fff; }
.public-booking-card { margin-top: 18px; padding: clamp(20px, 4vw, 32px); border: 1px solid var(--public-line); border-radius: 16px; background: var(--public-paper); }.public-booking-heading > p:last-child { margin-bottom: 22px; }.public-booking-message { min-height: 1.5em; margin: 0; color: var(--public-muted); }.public-booking-message.error { color: var(--public-danger); }.public-booking-calendar-status { display: flex; align-items: start; justify-content: space-between; gap: 12px; min-height: 40px; margin: 0 0 16px; }.public-booking-availability-legend { margin: -2px 0 12px; color: var(--public-muted); font-size: .78rem; line-height: 1.35; }.public-retry-button { flex: 0 0 auto; padding: .46rem .72rem; background: #e7efed; color: var(--public-ink); }.public-booking-empty { margin: 0; padding: 15px; border-radius: 9px; background: #f4f6f5; color: var(--public-muted); }
.public-booking-types { display: grid; gap: 12px; }.public-booking-type { width: 100%; padding: 18px; border: 1px solid var(--public-line); background: #fbfdfc; color: var(--public-ink); text-align: left; }.public-booking-type strong, .public-booking-type span { display: block; }.public-booking-type strong { margin-bottom: 4px; font-size: 1.04rem; }.public-booking-type span { color: var(--public-muted); font-size: .92rem; font-weight: 500; }.public-booking-type small { display: inline-block; margin-top: 10px; color: #2e665d; font-weight: 750; }
.public-calendar-toolbar { display: grid; grid-template-columns: 1fr auto auto; gap: 12px; align-items: center; margin-bottom: 16px; }.public-calendar-navigation { display: flex; align-items: center; gap: 8px; min-width: 0; }.public-calendar-navigation h3 { min-width: 0; margin: 0; font-size: 1rem; }.public-icon-button { display: grid; flex: 0 0 38px; place-items: center; width: 38px; height: 38px; padding: 0; border: 1px solid var(--public-line); background: #fff; color: var(--public-ink); font-size: 1.45rem; }.public-calendar-view { display: inline-flex; padding: 3px; border: 1px solid var(--public-line); border-radius: 9px; background: #f6f9f8; }.public-calendar-view button { padding: .43rem .67rem; border-radius: 6px; background: transparent; color: var(--public-muted); font-size: .82rem; }.public-calendar-view button[aria-pressed="true"] { background: #fff; color: var(--public-ink); box-shadow: 0 1px 3px rgba(23,49,45,.12); }.public-jump-date { display: grid; gap: 4px; color: var(--public-muted); font-size: .75rem; font-weight: 750; }.public-jump-date input { min-width: 148px; border: 1px solid #bfcfca; border-radius: 7px; padding: .48rem .6rem; color: var(--public-ink); }
.public-calendar-weekdays, .public-booking-calendar { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 7px; }.public-calendar-weekdays { margin: 0 0 7px; color: var(--public-muted); font-size: .74rem; font-weight: 800; text-align: center; }.public-booking-calendar { min-height: 100px; }.public-calendar-day { min-height: 88px; padding: 10px 7px; border: 1px solid var(--public-line); border-radius: 8px; background: #fbfdfc; color: var(--public-ink); text-align: left; }.public-calendar-day strong, .public-calendar-day span { display: block; }.public-calendar-day strong { margin-bottom: 8px; font-size: 1rem; }.public-calendar-day span { color: var(--public-muted); font-size: .72rem; font-weight: 650; line-height: 1.25; }.public-calendar-day.has-slots { border-color: #9bc7bc; background: #f4faf8; }.public-calendar-day.has-slots span { color: #176b60; }.public-calendar-day.is-selected { border: 2px solid var(--public-accent); background: var(--public-accent-soft); }.public-calendar-day.is-outside { background: #f7f8f8; color: #94a19e; }.public-calendar-day.is-outside strong { opacity: .55; }.public-booking-calendar.is-month .public-calendar-day { min-height: 76px; }.public-booking-slots-section { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--public-line); }.public-booking-slots-section h3 { margin-bottom: 3px; font-size: 1.05rem; }.public-booking-selected-date { margin-bottom: 14px; color: var(--public-muted); }.public-booking-slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(108px, 1fr)); gap: 9px; }.public-booking-slot { border: 1px solid #b7d8d0; background: var(--public-accent-soft); color: #155b51; text-align: center; }.public-booking-preview { border-color: #bdd5ce; background: #f7fbf9; }.public-booking-preview h2 { margin-bottom: 7px; }
.public-booking-shell { width: min(var(--public-layout-max), calc(100% - (var(--public-layout-gutter) * 2))); }.public-booking-workspace { display: grid; gap: 18px; }.public-booking-workspace > .public-booking-card { margin-top: 0; }.public-booking-type[aria-pressed="true"] { border: 2px solid var(--public-accent); background: var(--public-accent-soft); }.public-booking-type[aria-pressed="true"] strong, .public-booking-type[aria-pressed="true"] small { color: #104e45; }.public-calendar-day:not(.has-slots):not(.is-selected):not(.is-outside) { border-color: #dbe4e1; background: #f5f7f6; }.public-calendar-day:not(.has-slots):not(.is-selected):not(.is-outside) span { color: var(--public-muted); }.public-calendar-day.has-slots { border: 2px solid #278171; background: #dff1ec; }.public-calendar-day.has-slots strong { color: #104e45; }.public-calendar-day.has-slots span { color: #0d5c50; font-weight: 850; }.public-calendar-day.is-selected { border-color: var(--public-accent); background: var(--public-accent); color: #fff; }.public-calendar-day.is-selected strong, .public-calendar-day.is-selected span { color: #fff; }.public-booking-schedule-layout { display: grid; gap: 22px; }.public-booking-calendar-panel { min-width: 0; }
@media (min-width: 760px) { .public-booking-schedule-layout { grid-template-columns: minmax(0, 1fr) minmax(230px, .62fr); align-items: start; }.public-booking-slots-section { position: sticky; top:16px; margin-top: 0; padding: 0 0 0 22px; border-top: 0; border-left: 1px solid var(--public-line); }.public-booking-slots { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.public-booking-preview { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--public-line); color: var(--public-muted); }.public-booking-preview h3 { margin-bottom: 6px; color: var(--public-ink); }.public-booking-preview p:last-child { margin-bottom: 0; }.public-booking-schedule-card.is-awaiting-selection .public-booking-schedule-layout { opacity: .58; }.public-booking-schedule-card.is-awaiting-selection .public-booking-slots-section { color: var(--public-muted); }
@media (min-width: 1050px) { .public-booking-shell { padding-top: 18px; padding-bottom: 24px; }.public-booking-header { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 18px; max-width: none; margin-bottom: 10px; text-align: left; }.public-booking-logo { grid-row: 1 / span 4; width: 112px; margin: 4px 0 0; }.public-booking-header h1 { margin-bottom: .35rem; font-size: clamp(2rem, 3.5vw, 2.65rem); }.public-booking-header-intro { margin-bottom: 0; }.public-booking-kicker, .public-booking-header h1, .public-booking-header-intro { grid-column: 2; }.public-booking-steps { justify-content: flex-start; margin: 0 0 12px 130px; }.public-booking-workspace { position: sticky; top: 12px; display: grid; grid-template-columns: minmax(255px, .58fr) minmax(0, 1.42fr); align-items: stretch; max-height: calc(100dvh - 154px); }.public-booking-workspace > .public-booking-card { min-height: 0; padding: 22px; }.public-booking-types-card { overflow-y: auto; }.public-booking-schedule-card { overflow: hidden; }.public-booking-type { padding: 14px; }.public-booking-type span { font-size: .86rem; }.public-booking-type small { margin-top: 7px; }.public-booking-heading > p:last-child { margin-bottom: 14px; }.public-booking-schedule-layout { height: 100%; }.public-booking-calendar.is-month .public-calendar-day { min-height: 54px; }.public-booking-calendar.is-month .public-calendar-day strong { margin-bottom: 4px; }.public-booking-slots-section { overflow-y: auto; }.public-booking-preview { font-size: .9rem; } }
@media (min-width: 1050px) { .public-booking-shell { padding-top: 10px; }.public-booking-header { margin-bottom: 4px; }.public-booking-logo { width: 88px; margin-top: 0; }.public-booking-kicker { display: none; }.public-booking-header h1 { margin: 0 0 .2rem; font-size: 2.15rem; }.public-booking-header-intro { font-size: .93rem; line-height: 1.35; }.public-booking-steps { gap: 4px; margin: 0 0 7px 106px; font-size: .76rem; }.public-booking-steps span { gap: 5px; padding: .25rem .45rem; }.public-booking-steps b { width: 17px; height: 17px; font-size: .66rem; }.public-booking-workspace { top: 8px; align-items: start; max-height: calc(100dvh - 128px); }.public-booking-workspace > .public-booking-card { padding: 18px 22px; }.public-booking-types-card .public-booking-heading h2 { margin-bottom: .35rem; font-size: 1.45rem; }.public-booking-types-card .public-booking-heading > p:last-child { margin-bottom: 12px; font-size: .9rem; }.public-booking-schedule-card { overflow-y: visible; }.public-booking-schedule-card .public-booking-eyebrow { display: none; }.public-booking-schedule-card .public-booking-heading { display: flex; align-items: baseline; gap: 12px; margin-bottom: 10px; }.public-booking-schedule-card .public-booking-heading h2 { flex: 0 0 auto; margin: 0; font-size: 1.38rem; }.public-booking-schedule-card .public-booking-heading > p:last-child { margin: 0; font-size: .91rem; }.public-booking-type { padding: 11px 13px; }.public-booking-type strong { margin-bottom: 2px; font-size: .96rem; }.public-booking-type span { font-size: .8rem; line-height: 1.35; }.public-booking-type small { margin-top: 5px; font-size: .78rem; }.public-booking-schedule-card .public-calendar-toolbar { margin-bottom: 8px; }.public-booking-schedule-card .public-booking-calendar-status { min-height: 0; margin-bottom: 8px; }.public-booking-schedule-card .public-calendar-weekdays { margin-bottom: 4px; }.public-booking-schedule-layout { height: auto; }.public-booking-calendar.is-month .public-calendar-day { min-height: 44px; padding: 5px; }.public-booking-calendar.is-month .public-calendar-day strong { margin-bottom: 1px; font-size: .88rem; }.public-booking-calendar.is-month .public-calendar-day span { font-size: .62rem; line-height: 1.1; }.public-booking-slots-section { padding-left: 18px; } }
@media (min-width: 1050px) and (min-height: 600px) { html, body { height: 100%; overflow: hidden; }.public-booking-shell { display: grid; grid-template-rows: auto minmax(0, 1fr); height: 100dvh; padding: 10px 0 8px; overflow: hidden; }.public-booking-header { margin-bottom: 6px; }.public-booking-logo { width: 76px; }.public-booking-header h1 { font-size: 1.9rem; }.public-booking-header-intro { font-size: .86rem; }.public-booking-steps { display: none; }.public-booking-workspace { position: static; height: 100%; max-height: none; min-height: 0; align-items: stretch; overflow: hidden; }.public-booking-workspace > .public-booking-card { height: 100%; min-height: 0; }.public-booking-types-card, .public-booking-schedule-card { scrollbar-width: none; }.public-booking-types-card::-webkit-scrollbar, .public-booking-schedule-card::-webkit-scrollbar { display: none; }.public-booking-types-card { overflow-y: auto; }.public-booking-schedule-card { overflow: hidden; }.public-booking-schedule-layout { height: 100%; grid-template-columns: minmax(0, 1fr) minmax(270px, .58fr); }.public-booking-calendar-panel { min-height: 0; }.public-booking-slots-section { min-height: 0; overflow-y: auto; scrollbar-width: none; }.public-booking-slots-section::-webkit-scrollbar { display: none; }.public-booking-slots { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }.public-booking-slot { padding: .5rem .25rem; font-size: .87rem; }.public-booking-preview { margin-top: 10px; padding-top: 10px; }.public-booking-calendar.is-month .public-calendar-day { min-height: 42px; padding: 4px; }.public-booking-calendar.is-month .public-calendar-day strong { font-size: .82rem; }.public-booking-calendar.is-month .public-calendar-day span { font-size: .58rem; } }
@media (min-width: 1050px) and (min-height: 600px) { .public-booking-types-card, .public-booking-schedule-card, .public-booking-slots-section { display: flex; flex-direction: column; overflow: hidden; }.public-booking-types, .public-booking-slots { min-height: 0; overflow-y: auto; scrollbar-width: thin; scrollbar-color: #9cb5ae transparent; }.public-booking-types { padding-right: 7px; }.public-booking-slots { flex: 1 1 auto; padding-right: 7px; }.public-booking-types::-webkit-scrollbar, .public-booking-slots::-webkit-scrollbar { display: block; width: 8px; }.public-booking-types::-webkit-scrollbar-thumb, .public-booking-slots::-webkit-scrollbar-thumb { border: 2px solid var(--public-paper); border-radius: 999px; background: #9cb5ae; }.public-booking-schedule-layout { flex: 1 1 auto; min-height: 0; height: auto; align-items: stretch; }.public-booking-calendar-panel { overflow: hidden; }.public-booking-slots-section { min-height: 96px; height: 100%; padding-bottom: 0; }.public-booking-slots-section > :first-child { flex: 0 0 auto; }.public-booking-preview { flex: 0 0 auto; }.public-booking-calendar.is-month .public-calendar-day { min-height: 44px; }.public-booking-calendar.is-month .public-calendar-day span { font-size: .68rem; } }
/* En escritorio, los horarios son decisiones rápidas: tres opciones legibles por fila
   preservan altura útil sin competir con el calendario. */
@media (min-width: 1050px) {
  .public-booking-schedule-layout { grid-template-columns: minmax(0, 1fr) minmax(210px, .5fr); gap: 18px; }
  .public-booking-slots-section { padding-left: 14px; }
  .public-booking-slots-section h3 { font-size: 1rem; }
  .public-booking-selected-date { margin-bottom: 7px; font-size: .86rem; }
  .public-booking-slots { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
  .public-booking-slot { min-height: 32px; padding: .34rem .12rem; font-size: .84rem; line-height: 1.1; }
}
.public-calendar-day.has-slots.availability-low:not(.is-selected) { border-width: 1px; border-color: #a8cfc4; background: #edf7f3; }
.public-calendar-day.has-slots.availability-medium:not(.is-selected) { border-width: 2px; border-color: #559985; background: #cfe8df; }
.public-calendar-day.has-slots.availability-high:not(.is-selected) { border-width: 3px; border-color: #176b60; background: #9ecbbd; }
.public-booking-availability-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin: 10px 0 0; color: var(--public-muted); font-size: .72rem; line-height: 1.35; }.public-booking-availability-item { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }.public-booking-availability-item > span { display: inline-block; flex: 0 0 11px; width: 11px; height: 11px; border-radius: 3px; }.public-booking-availability-legend .availability-low { border: 1px solid #a8cfc4; background: #edf7f3; }.public-booking-availability-legend .availability-medium { border: 2px solid #559985; background: #cfe8df; }.public-booking-availability-legend .availability-high { border: 3px solid #176b60; background: #9ecbbd; }
.public-booking-dialog:not([open]) { display: none; }.public-booking-dialog { position: fixed; z-index: 30; inset: 0; width: 100dvw; max-width: none; height: 100dvh; max-height: none; margin: 0; display: grid; place-items: center; padding: 20px; border: 0; background: transparent; overscroll-behavior: none; }.public-booking-dialog::backdrop { background: rgba(18, 40, 36, .48); }.public-booking-dialog-panel { position: relative; width: min(100%, 480px); max-height: calc(100dvh - 40px); overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; padding: clamp(24px, 5vw, 34px); border: 1px solid var(--public-line); border-radius: 16px; background: var(--public-paper); box-shadow: 0 18px 48px rgba(13, 35, 31, .24); }.public-booking-dialog-panel h2 { margin-bottom: 10px; }.public-dialog-close { position: absolute; top: 12px; right: 12px; display: grid; place-items: center; width: 36px; height: 36px; padding: 0; border: 1px solid var(--public-line); background: #fff; color: var(--public-ink); font-size: 1.4rem; line-height: 1; }.public-booking-dialog-summary { margin-bottom: 18px; color: var(--public-ink); font-size: 1.05rem; font-weight: 700; line-height: 1.45; }.public-booking-dialog-note { margin-bottom: 22px; color: var(--public-muted); }.public-booking-dialog-actions { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }.public-dialog-secondary { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .72rem 1rem; border: 1px solid var(--public-line); border-radius: 9px; background: #fff; color: var(--public-ink); font: inherit; font-weight: 750; line-height: 1.2; text-align: center; text-decoration: none; }.public-dialog-secondary:focus-visible { outline: 3px solid var(--public-focus); outline-offset: 3px; }

html:has(.public-booking-dialog[open]),
body:has(.public-booking-dialog[open]) {
  overflow: hidden;
  overflow: clip;
  overscroll-behavior: none;
}

body.dialog-scroll-locked {
  position: fixed;
  top: calc(-1 * var(--dialog-scroll-y, 0px));
  right: 0;
  left: 0;
  width: 100%;
  overflow: clip;
}
.public-booking-request-form { display: grid; gap: 16px; }.public-booking-form-grid { display: grid; gap: 14px; }.public-booking-form-field { display: grid; gap: 6px; }.public-booking-form-field label { color: var(--public-ink); font-size: .88rem; font-weight: 800; }.public-booking-form-field label span { color: var(--public-muted); font-weight: 500; }.public-booking-form-field input, .public-booking-form-field textarea { width: 100%; border: 1px solid #bfcfca; border-radius: 8px; background: #fff; color: var(--public-ink); padding: .7rem .78rem; }.public-booking-form-field textarea { resize: vertical; min-height: 88px; }.public-booking-check { display: flex; align-items: flex-start; gap: 9px; color: var(--public-ink); font-size: .9rem; line-height: 1.4; }.public-booking-check input { flex: 0 0 auto; width: 18px; height: 18px; margin: .1rem 0 0; accent-color: var(--public-accent); }.public-booking-check-required { padding-top: 2px; border-top: 1px solid var(--public-line); }.public-booking-field-error, .public-booking-form-message { min-height: 1.2em; margin: 0; color: var(--public-danger); font-size: .82rem; }.public-booking-form-message:not(:empty) { padding: 10px 12px; border-radius: 8px; background: #fff5f4; }.public-booking-request-form [aria-invalid="true"] { border-color: var(--public-danger); }.public-booking-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }.public-booking-dialog-panel.is-success .public-booking-dialog-note { margin-bottom: 0; }.public-booking-dialog-panel.is-success .public-booking-dialog-actions { margin-top: 22px; }
.public-booking-notification-status { margin-top: 14px; padding: 12px 14px; border: 1px solid #b9ccd8; border-radius: 9px; background: #f1f6f9; color: #34586d; font-size: .9rem; }.public-booking-notification-status[data-state="follow-up"] { border-color: #e1c68a; background: #fff8e8; color: #71521d; }
@media (min-width: 520px) { .public-booking-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (hover: hover) and (pointer: fine) { button:hover { background: #11574d; }.public-retry-button:hover { background: #d9e7e3; }.public-booking-type:hover { border-color: #9ebfb7; background: #f4faf8; }.public-icon-button:hover { border-color: #9ebfb7; background: #f4faf8; }.public-calendar-view button:hover { background: #eaf2ef; }.public-calendar-day:not(:disabled):not(.is-selected):hover { border-color: #278171; background: #eef8f5; }.public-calendar-day.has-slots:hover { background: #cfe9e2; }.public-calendar-day.is-selected:hover { border-color: var(--public-accent); background: var(--public-accent); }.public-booking-slot:hover { background: #d5e9e4; }.public-dialog-secondary[href]:hover { border-color: #9cb5ae; background: var(--public-accent-soft); } }
@media (max-width: 700px) { .public-booking-shell { width: min(100% - 24px, 700px); padding-top: 24px; }.public-calendar-toolbar { grid-template-columns: 1fr auto; }.public-jump-date { grid-column: 1 / -1; }.public-jump-date input { width: 100%; }.public-calendar-weekdays { display: none; }.public-booking-calendar, .public-booking-calendar.is-month { grid-template-columns: 1fr; gap: 8px; }.public-booking-calendar.is-mobile .public-calendar-day, .public-booking-calendar.is-month.is-mobile .public-calendar-day { display: flex; align-items: center; justify-content: space-between; min-height: 0; padding: 13px 14px; text-align: left; }.public-booking-calendar.is-mobile .public-calendar-day strong { margin: 0; font-size: .95rem; font-weight: 750; }.public-booking-calendar.is-mobile .public-calendar-day span { font-size: .78rem; text-align: right; }.public-booking-slots { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 440px) { .public-booking-steps { justify-content: flex-start; }.public-calendar-navigation h3 { font-size: .9rem; }.public-calendar-view button { padding-inline: .5rem; }.public-calendar-day strong { font-size: .9rem; }.public-calendar-day span { overflow: hidden; text-overflow: ellipsis; } }
/* Las alternativas deben leerse como decisiones breves; el contexto aparece tras elegir una. */
.public-booking-types { gap: 8px; }
.public-booking-slots { align-content: start; }
.public-booking-type { min-height: 54px; padding: 12px 14px; }
.public-booking-type strong { margin: 0; font-size: 1rem; line-height: 1.25; }
.public-booking-type span, .public-booking-type small { display: none; }
@media (min-width: 1050px) and (min-height: 600px) {
  .public-booking-types-card .public-booking-heading > p:last-child { margin-bottom: 10px; font-size: .84rem; line-height: 1.35; }
  .public-booking-type { min-height: 48px; padding: 10px 12px; }
  .public-booking-type strong { font-size: .94rem; }
  .public-booking-slots { gap: 5px; }
  .public-booking-slot { min-height: 34px; padding: .38rem .2rem; font-size: .82rem; line-height: 1.15; }
  .public-booking-selected-date { margin-bottom: 8px; font-size: .88rem; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; } }
.public-booking-management { max-width: none; min-height: 0; margin: 0; }
.public-booking-management[hidden],
.public-booking-management-actions[hidden],
.public-booking-management-actions form[hidden],
.public-booking-request-form[hidden],
.public-booking-dialog-actions[hidden],
.public-booking-workspace[hidden] { display: none !important; }

.public-booking-management-actions {
  display: grid;
  gap: 18px;
  margin-top: 18px;
}

.public-booking-management-actions form {
  display: grid;
  align-content: start;
  gap: 12px;
  padding: 18px;
  border: 1px solid #d9e1e5;
  border-radius: 14px;
  background: #fff;
}

.public-booking-management-actions h3,
.public-booking-management-actions p { margin: 0; }

.public-booking-management-actions label { display: grid; gap: 6px; font-weight: 700; }
.public-booking-field-hint { color: var(--public-muted); font-size: .82rem; font-weight: 600; }
.public-booking-management-actions textarea,
.public-booking-management-actions input { width: 100%; box-sizing: border-box; }

.public-booking-management-cancel { order: 2; }
.public-booking-management-reschedule { order: 1; min-width: 0; }
.public-booking-management-reschedule > .public-booking-heading { margin-bottom: 10px; }
.public-booking-management-reschedule > .public-booking-heading h3 { margin-bottom: 4px; }
.public-booking-management-reschedule > .public-booking-heading p { color: var(--public-muted); font-size: .9rem; }
.public-booking-management-schedule { min-height: 0; }
.public-booking-management-schedule .public-booking-calendar-status,
.public-booking-management-schedule > .public-booking-calendar-panel > .public-booking-message { min-height: 1.35em; margin-bottom: 8px; font-size: .82rem; }
.public-booking-management-actions .public-booking-slot[aria-pressed="true"] { border-color: var(--public-accent); background: var(--public-accent); color: #fff; }
.public-booking-reschedule-selection { min-height: 1.5em; margin: 0; color: var(--public-accent); font-weight: 750; }

html.public-booking-management-mode,
body.public-booking-management-mode { height: auto !important; min-height: 100% !important; overflow: auto !important; }
body.public-booking-management-mode .public-booking-shell { display: block !important; height: auto !important; min-height: 100dvh !important; overflow: visible !important; padding-bottom: 28px !important; }
body.public-booking-management-mode .public-booking-header { margin-bottom: 10px; }

@media (min-width: 900px) {
  .public-booking-management-actions { grid-template-columns: minmax(230px, .42fr) minmax(0, 1.58fr); align-items: stretch; }
  .public-booking-management-actions[data-layout="cancel"],
  .public-booking-management-actions[data-layout="reschedule"] { grid-template-columns: minmax(0, 1fr); }
  .public-booking-management-actions form { min-height: 0; }
  .public-booking-management-cancel { order: 1; }
  .public-booking-management-reschedule { order: 2; }
}

@media (min-width: 1050px) and (min-height: 600px) {
  html.public-booking-management-mode,
  body.public-booking-management-mode { height: 100% !important; min-height: 100% !important; overflow: hidden !important; }
  body.public-booking-management-mode .public-booking-shell { display: grid !important; grid-template-rows: auto minmax(0, 1fr) !important; height: 100dvh !important; min-height: 0 !important; overflow: hidden !important; padding: 10px 0 8px !important; }
  body.public-booking-management-mode .public-booking-management { display: flex; flex-direction: column; height: 100%; padding: 16px 18px; overflow: hidden; }
  body.public-booking-management-mode .public-booking-management > .public-booking-heading { display: flex; align-items: baseline; gap: 12px; margin-bottom: 4px; }
  body.public-booking-management-mode .public-booking-management > .public-booking-heading h2 { flex: 0 0 auto; margin: 0; font-size: 1.35rem; }
  body.public-booking-management-mode .public-booking-management > .public-booking-heading p { margin: 0; font-size: .88rem; }
  body.public-booking-management-mode .public-booking-management-actions { flex: 1 1 auto; min-height: 0; margin-top: 8px; overflow: hidden; }
  body.public-booking-management-mode .public-booking-management-actions form { height: 100%; overflow: hidden; }
  body.public-booking-management-mode .public-booking-management-cancel { overflow-y: auto; }
  body.public-booking-management-mode .public-booking-management-reschedule { display: flex; flex-direction: column; }
  body.public-booking-management-mode .public-booking-management-schedule { flex: 1 1 auto; height: auto; overflow: hidden; }
  body.public-booking-management-mode .public-booking-management-schedule .public-booking-calendar-panel { display: flex; flex-direction: column; overflow: hidden; }
  body.public-booking-management-mode .public-booking-management-schedule .public-booking-calendar { min-height: 0; }
  body.public-booking-management-mode .public-booking-management-schedule .public-booking-slots-section { display: flex; flex-direction: column; min-height: 0; height: 100%; overflow-y: auto; }
  body.public-booking-management-mode .public-booking-management-schedule .public-booking-slots { flex: 1 1 auto; min-height: 64px; overflow-y: auto; }
}

@media (max-width: 700px) {
  body.public-booking-management-mode .public-booking-shell { padding-top: 12px !important; }
  body.public-booking-management-mode .public-booking-header { margin-bottom: 12px; }
  body.public-booking-management-mode .public-booking-logo { width: 92px; margin-bottom: 6px; }
  body.public-booking-management-mode .public-booking-kicker,
  body.public-booking-management-mode .public-booking-header-intro,
  body.public-booking-management-mode .public-booking-header-actions { display: none; }
  body.public-booking-management-mode .public-booking-header h1 { margin-bottom: 0; font-size: 1.55rem; }
  body.public-booking-management-mode .public-booking-management { padding: 18px; }
  body.public-booking-management-mode .public-booking-management-actions { margin-top: 12px; }
}

.public-booking-header-actions {
  display: flex;
  justify-content: center;
  margin-top: 12px;
}

.public-booking-header-actions .public-dialog-secondary {
  min-height: 40px;
  padding: .55rem .85rem;
}

.public-booking-form-message.success:not(:empty) {
  background: #edf8f4;
  color: #175c50;
}

.public-booking-dialog-panel.is-success #publicBookingCopyManageLink {
  border-color: #8eb7ad;
  background: #edf8f4;
}

@media (min-width: 1050px) {
  .public-booking-header-actions {
    grid-column: 2;
    justify-content: flex-start;
    margin-top: 5px;
  }
}

@media (hover: hover) and (pointer: fine) {
  .public-dialog-secondary:hover {
    border-color: #9cb5ae;
    background: var(--public-accent-soft);
    color: var(--public-ink);
  }
}

@media (max-width: 700px) {
  .public-booking-management-actions { grid-template-columns: 1fr; }
  .public-booking-reschedule-calendar .public-calendar-weekdays { display: grid; }
  .public-booking-reschedule-calendar .public-booking-calendar { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
  .public-booking-reschedule-calendar .public-calendar-day { display: block; min-height: 44px; padding: 5px 2px; }
}

/* Identidad pública: la agenda conserva el flujo, pero comparte la presencia sobria del sitio Vidalinda. */
:root {
  --public-ink: #303638;
  --public-muted: #667074;
  --public-line: #d8d7d2;
  --public-paper: #ffffff;
  --public-ground: #efefed;
  --public-accent: #34776e;
  --public-accent-soft: #e7f0ed;
  --public-focus: #b18b52;
  --public-warm: #f6f3ee;
  --public-charcoal: #5d5d5d;
  --public-gold: #b18b52;
}

body {
  background: var(--public-ground);
  color: var(--public-ink);
  font-family: Arial, Helvetica, sans-serif;
}

.public-booking-shell {
  width: min(var(--public-layout-max), 100%);
  padding: 0 0 32px;
}

.public-booking-header {
  position: relative;
  display: block;
  max-width: none;
  margin: 0 0 24px;
  text-align: left;
}

.public-site-utility {
  display: flex;
  justify-content: flex-end;
  gap: clamp(14px, 2vw, 30px);
  min-height: 30px;
  padding: 7px max(var(--public-layout-gutter), calc((100vw - var(--public-layout-max)) / 2));
  background: #ededed;
  color: #7c7c7c;
  font-size: .72rem;
}

.public-site-utility a { color: inherit; text-decoration: none; }
.public-site-utility a:hover { text-decoration: underline; }

.public-site-masthead {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(20px, 3vw, 48px);
  min-height: 74px;
  padding: 0 max(var(--public-layout-gutter), calc((100vw - var(--public-layout-max)) / 2));
  background: var(--public-charcoal);
}

.public-site-brand { display: inline-flex; align-items: center; }
.public-site-brand img { display: block; width: 164px; max-width: 30vw; height: auto; }

.public-site-navigation {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(14px, 2vw, 34px);
  padding-right: 0;
}

.public-site-navigation a {
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: .92rem;
  text-decoration: none;
  white-space: nowrap;
}

.public-site-navigation a:hover,
.public-site-navigation a:focus-visible { color: #e6d5b7; }

.public-booking-header-actions {
  position: static;
  margin: 0;
}

.public-booking-header-actions .public-dialog-secondary {
  min-height: 36px;
  padding: .5rem .78rem;
  border-color: rgba(255,255,255,.56);
  border-radius: 2px;
  background: transparent;
  color: #fff;
  font-size: .8rem;
  white-space: nowrap;
}
.public-booking-header-actions .public-dialog-secondary:hover { border-color: #fff; background: rgba(255,255,255,.12); color: #fff; }

.public-booking-logo { display: none; }
.public-booking-kicker { margin: 0 0 8px; color: var(--public-accent); font-size: .69rem; letter-spacing: .16em; }

.public-booking-header h1,
.public-booking-card h2,
.public-booking-card h3,
.public-booking-dialog-panel h2 {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 600;
}

.public-booking-header h1 {
  margin: 0 0 8px;
  color: #42484a;
  font-size: clamp(2rem, 4vw, 3.1rem);
  letter-spacing: -.025em;
}

.public-booking-kicker,
.public-booking-header h1,
.public-booking-header-intro {
  display: block;
  width: min(100% - (var(--public-layout-gutter) * 2), 980px);
  margin-inline: auto;
  text-align: center;
}

.public-booking-kicker { padding-top: clamp(24px, 4vw, 42px); }
.public-booking-header-intro {
  padding-bottom: clamp(22px, 3vw, 34px);
  color: #687276;
  font-size: clamp(.94rem, 1.5vw, 1.08rem);
}

.public-booking-header::after {
  display: block;
  height: 1px;
  background: #d9d4cc;
  content: "";
}

.public-booking-workspace,
.public-booking-management {
  width: min(var(--public-layout-max), calc(100% - (var(--public-layout-gutter) * 2)));
  margin-inline: auto;
}

.public-booking-card {
  border-color: #d9d5ce;
  border-radius: 2px;
  background: var(--public-paper);
  box-shadow: 0 10px 28px rgba(44, 50, 50, .06);
}

.public-booking-types-card { border-top: 4px solid var(--public-gold); }
.public-booking-schedule-card { border-top: 4px solid var(--public-accent); }
.public-booking-heading h2 { color: #3e4647; }
.public-booking-heading > p:last-child { color: var(--public-muted); }

.public-booking-types-card .public-booking-heading h2::before,
.public-booking-schedule-card .public-booking-heading h2::before {
  display: inline-grid;
  place-items: center;
  width: 25px;
  height: 25px;
  margin-right: 9px;
  border: 1px solid currentColor;
  border-radius: 50%;
  color: var(--public-accent);
  font-family: Arial, Helvetica, sans-serif;
  font-size: .74rem;
  font-weight: 700;
  vertical-align: 2px;
  content: "1";
}
.public-booking-schedule-card .public-booking-heading h2::before { content: "2"; }

.public-booking-type {
  position: relative;
  min-height: 58px;
  border-color: #dedbd4;
  border-radius: 2px;
  background: #fff;
  box-shadow: none;
}
.public-booking-type::after {
  position: absolute;
  top: 50%;
  right: 16px;
  color: var(--public-gold);
  content: "›";
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.65rem;
  line-height: 1;
  transform: translateY(-50%);
}
.public-booking-type strong { padding-right: 28px; color: #41494a; font-family: Georgia, "Times New Roman", serif; }
.public-booking-type[aria-pressed="true"] { border-color: var(--public-accent); background: var(--public-accent-soft); box-shadow: inset 4px 0 0 var(--public-accent); }

.public-calendar-toolbar { padding-bottom: 12px; border-bottom: 1px solid #e2ded7; }
.public-calendar-navigation h3 { color: #3e4647; font-family: Georgia, "Times New Roman", serif; }
.public-icon-button { border-color: #d7d2ca; border-radius: 2px; color: var(--public-accent); }
.public-calendar-view { border-color: #d7d2ca; border-radius: 2px; background: #f6f4f0; }
.public-calendar-view button { border-radius: 1px; }
.public-calendar-view button[aria-pressed="true"] { color: #fff; background: var(--public-accent); box-shadow: none; }
.public-jump-date input { border-color: #d7d2ca; border-radius: 2px; }
.public-calendar-weekdays { color: #637073; font-family: Georgia, "Times New Roman", serif; }
.public-calendar-day { border-color: #e0ddd6; border-radius: 2px; background: #fcfbf9; }
.public-calendar-day.has-slots { border-color: #94bbae; background: #edf5f1; }
.public-calendar-day.has-slots.availability-high:not(.is-selected) { border-color: var(--public-accent); background: #cfe5dc; }
.public-calendar-day.is-selected { border-color: var(--public-accent); background: var(--public-accent); }
.public-booking-slot { border-color: #a5c9bd; border-radius: 2px; background: #e5f1ec; color: #275f56; }
.public-booking-slot:hover { background: #d1e7dd; }
.public-booking-dialog-panel,
.public-booking-management-actions form { border-radius: 2px; }

@media (min-width: 1050px) {
  .public-booking-shell { padding-top: 0; }
  .public-booking-header { display: block; margin-bottom: 14px; }
  .public-booking-header h1 { font-size: clamp(1.65rem, 2.35vw, 2.25rem); }
  .public-booking-header-intro { font-size: .9rem; }
  .public-booking-workspace { position: static; max-height: none; }
}

@media (min-width: 1050px) and (min-height: 600px) {
  .public-booking-shell { grid-template-rows: auto minmax(0, 1fr); padding: 0 0 10px; }
  .public-booking-header { margin-bottom: 8px; }
  .public-site-utility { min-height: 24px; padding-top: 5px; padding-bottom: 5px; font-size: .65rem; }
  .public-site-masthead { min-height: 54px; }
  .public-site-brand img { width: 132px; }
  .public-site-navigation { gap: clamp(12px, 1.6vw, 28px); }
  .public-site-navigation a { font-size: .82rem; }
  .public-booking-kicker { margin-bottom: 3px; padding-top: 14px; font-size: .61rem; }
  .public-booking-header h1 { font-size: 1.72rem; }
  .public-booking-header-intro { padding-bottom: 14px; font-size: .78rem; }
  .public-booking-workspace { width: min(var(--public-layout-max), calc(100% - (var(--public-layout-gutter) * 2))); }
}

@media (max-width: 900px) {
  .public-site-navigation { display: none; }
  .public-site-masthead { grid-template-columns: 1fr auto; }
}

@media (max-width: 560px) {
  .public-site-utility { display: none; }
  .public-site-masthead { min-height: 58px; padding-inline: 16px; }
  .public-site-brand img { width: 122px; max-width: 42vw; }
  .public-booking-header-actions .public-dialog-secondary { min-height: 32px; padding: .42rem .55rem; font-size: .7rem; }
  .public-booking-kicker { padding-top: 24px; }
  .public-booking-header h1 { font-size: 2rem; }
  .public-booking-header-intro { font-size: .9rem; }
  .public-booking-workspace,
  .public-booking-management { width: min(100% - 24px, var(--public-layout-max)); }
  .public-booking-types-card .public-booking-heading h2::before,
  .public-booking-schedule-card .public-booking-heading h2::before { width: 22px; height: 22px; margin-right: 6px; }
}

/* La recuperación es la tercera acción explícita del masthead; nunca debe crear una segunda fila. */
.public-site-masthead > .public-booking-header-actions {
  grid-column: auto;
  grid-row: 1;
  align-self: center;
  justify-self: end;
}

/* Correccion operativa: la cabecera acompana a la agenda sin quitarle el area de trabajo. */
@media (min-width: 1050px) {
  html,
  body {
    height: auto !important;
    min-height: 100% !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }

  .public-booking-shell {
    display: block !important;
    height: auto !important;
    min-height: 100dvh;
    padding: 0 0 24px !important;
    overflow: visible !important;
  }

  .public-booking-header {
    display: grid !important;
    grid-template-columns: auto auto minmax(260px, 1fr);
    grid-template-rows: auto auto auto;
    align-items: center;
    column-gap: 16px;
    margin-bottom: 12px;
  }

  .public-site-utility,
  .public-site-masthead,
  .public-booking-header::after {
    grid-column: 1 / -1;
  }

  .public-site-utility { grid-row: 1; }
  .public-site-masthead { grid-row: 2; min-height: 54px; }

  .public-booking-kicker {
    display: block;
    grid-column: 1;
    grid-row: 3;
    width: auto;
    margin: 0;
    padding: 13px 0 13px max(var(--public-layout-gutter), calc((100vw - var(--public-layout-max)) / 2));
    text-align: left;
    white-space: nowrap;
  }

  .public-booking-header h1 {
    grid-column: 2;
    grid-row: 3;
    width: auto;
    margin: 0;
    font-size: 1.55rem;
    line-height: 1.1;
    text-align: left;
    white-space: nowrap;
  }

  .public-booking-header-intro {
    grid-column: 3;
    grid-row: 3;
    width: auto;
    margin: 0;
    padding: 0 max(var(--public-layout-gutter), calc((100vw - var(--public-layout-max)) / 2)) 0 0;
    font-size: .8rem;
    line-height: 1.3;
    text-align: left;
  }

  .public-booking-header::after { grid-row: 4; }

  .public-booking-workspace {
    position: static !important;
    grid-template-columns: minmax(248px, 300px) minmax(0, 1fr);
    gap: 14px;
    height: auto !important;
    max-height: none !important;
    min-height: 0;
    align-items: start !important;
    overflow: visible !important;
  }

  .public-booking-workspace > .public-booking-card {
    height: auto !important;
    min-height: 0;
    padding: 16px 18px;
  }

  .public-booking-types-card,
  .public-booking-schedule-card {
    display: block !important;
    overflow: visible !important;
  }

  .public-booking-types {
    padding-right: 0;
    overflow: visible !important;
  }

  .public-booking-types-card .public-booking-heading h2,
  .public-booking-schedule-card .public-booking-heading h2 {
    margin-bottom: 4px;
    font-size: 1.2rem;
    line-height: 1.2;
  }

  .public-booking-types-card .public-booking-heading > p:last-child {
    margin-bottom: 12px;
    font-size: .82rem;
    line-height: 1.35;
  }

  .public-booking-schedule-card .public-booking-heading {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: baseline;
    gap: 4px 12px;
    margin-bottom: 10px;
  }

  .public-booking-schedule-card .public-booking-heading > p:last-child {
    margin: 0;
    font-size: .82rem;
    line-height: 1.3;
  }

  .public-booking-type {
    min-height: 46px;
    padding: 9px 12px;
  }

  .public-booking-type strong {
    font-size: .92rem;
    line-height: 1.2;
  }

  .public-booking-schedule-layout {
    height: auto !important;
    min-height: 0;
    align-items: start !important;
  }

  .public-booking-calendar-panel,
  .public-booking-slots-section {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  .public-booking-calendar.is-month {
    flex: none !important;
    grid-template-rows: repeat(6, minmax(48px, auto)) !important;
  }

  .public-booking-calendar.is-month.is-five-weeks {
    grid-template-rows: repeat(5, minmax(48px, auto)) !important;
  }

  html.public-booking-management-mode,
  body.public-booking-management-mode {
    height: auto !important;
    min-height: 100% !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
  }

  body.public-booking-management-mode .public-booking-shell {
    display: block !important;
    height: auto !important;
    min-height: 100dvh !important;
    overflow: visible !important;
  }

  body.public-booking-management-mode .public-booking-management {
    padding: 16px 18px;
  }

  body.public-booking-management-mode .public-booking-management > .public-booking-heading {
    display: flex;
    align-items: baseline;
    gap: 6px 12px;
    margin-bottom: 4px;
  }

  body.public-booking-management-mode .public-booking-management > .public-booking-heading h2 {
    flex: 0 0 auto;
    margin: 0;
    font-size: 1.35rem;
  }

  body.public-booking-management-mode .public-booking-management > .public-booking-heading p {
    margin: 0;
    font-size: .84rem;
    line-height: 1.3;
  }

  body.public-booking-management-mode .public-booking-management-actions {
    margin-top: 8px;
  }

  body.public-booking-management-mode .public-booking-management-actions form {
    padding: 14px;
  }

  body.public-booking-management-mode .public-booking-management,
  body.public-booking-management-mode .public-booking-management-actions,
  body.public-booking-management-mode .public-booking-management-actions form,
  body.public-booking-management-mode .public-booking-management-schedule,
  body.public-booking-management-mode .public-booking-management-schedule .public-booking-calendar-panel,
  body.public-booking-management-mode .public-booking-management-schedule .public-booking-slots-section,
  body.public-booking-management-mode .public-booking-management-schedule .public-booking-slots {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
}

@media (min-width: 1050px) and (max-height: 700px) {
  .public-site-utility {
    min-height: 22px;
    padding-top: 3px;
    padding-bottom: 3px;
    font-size: .62rem;
  }

  .public-site-masthead { min-height: 50px; }
  .public-site-brand img { width: 120px; }
  .public-site-navigation a { font-size: .78rem; }

  .public-booking-header {
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: 16px;
    margin-bottom: 10px;
  }

  .public-booking-kicker { display: none; }

  .public-booking-header h1 {
    grid-column: 1;
    padding: 10px 0 10px max(var(--public-layout-gutter), calc((100vw - var(--public-layout-max)) / 2));
    font-size: 1.4rem;
  }

  .public-booking-header-intro {
    grid-column: 2;
    padding-right: max(var(--public-layout-gutter), calc((100vw - var(--public-layout-max)) / 2));
    font-size: .76rem;
    line-height: 1.25;
  }
}
