/* Safe single-column fallback; enhanced against the containing Kadence column. */
.revibe-scheduler {
  --revibe-primary: var(--global-palette1, #176b78);
  --revibe-ink: var(--global-palette3, #1f2933);
  --revibe-muted: #52616b;
  --revibe-surface: #fff;
  --revibe-panel: #fff;
  --revibe-field-ink: #253746;
  --revibe-soft: #f5f7f8;
  --revibe-border: #ccd6dc;
  --revibe-panel-border: var(--revibe-border);
  --revibe-focus: var(--revibe-primary);
  container: revibe-scheduler / inline-size;
  color: var(--revibe-ink); font-family: inherit; font-size: 16px; line-height: 1.45; letter-spacing: normal;
  width: 100%; max-width: 760px; min-width: 0; margin: 0 auto; text-align: left;
}
.revibe-scheduler--compact { max-width: 480px; }
.revibe-scheduler--wide { max-width: 1040px; }
.revibe-scheduler--original.revibe-scheduler--card { --revibe-primary: #007fa9; --revibe-panel: #1b4354; --revibe-ink: #fff; --revibe-muted: #d6e2e8; --revibe-panel-border: #1b4354; --revibe-focus: #b9e8ff; }
.revibe-scheduler, .revibe-scheduler * { box-sizing: border-box; }
.revibe-scheduler [hidden] { display: none !important; }
.revibe-scheduler .revibe-scheduler__panel { padding: 24px; border: 1px solid var(--revibe-panel-border); border-radius: 8px; background: var(--revibe-panel); }
.revibe-scheduler--compact .revibe-scheduler__panel { padding: 16px; }
.revibe-scheduler--none .revibe-scheduler__panel { padding: 0; border: 0; border-radius: 0; background: transparent; }
.revibe-scheduler .revibe-scheduler__title { font-family: inherit; font-size: 26px; font-weight: 600; line-height: 1.25; color: var(--revibe-ink); margin: 0 0 20px; padding: 0; letter-spacing: normal; text-align: center; }
.revibe-scheduler .revibe-scheduler__subtitle { font-family: inherit; font-size: 20px; font-weight: 600; line-height: 1.3; color: var(--revibe-ink); margin: 0 0 12px; }
.revibe-scheduler .revibe-scheduler__form { margin: 0; padding: 0; }
.revibe-scheduler .revibe-scheduler__field { min-width: 0; margin: 0 0 16px; }
.revibe-scheduler .revibe-scheduler__field > label, .revibe-scheduler .revibe-scheduler__field-label { display: block; color: var(--revibe-ink); font-size: 14px; font-weight: 600; line-height: 1.4; margin: 0 0 7px; }
.revibe-scheduler input[type="text"], .revibe-scheduler input[type="email"], .revibe-scheduler input[type="tel"], .revibe-scheduler select { display: block; width: 100%; max-width: 100%; min-width: 0; height: auto; min-height: 44px; border: 1px solid var(--revibe-border); border-radius: 5px; background-color: var(--revibe-surface); color: var(--revibe-field-ink); font: inherit; font-size: 16px; line-height: 1.35; margin: 0; padding: 10px 12px; box-shadow: none; text-transform: none; letter-spacing: normal; }
.revibe-scheduler select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, #52616b 50%),linear-gradient(135deg, #52616b 50%, transparent 50%); background-position: calc(100% - 17px) 50%,calc(100% - 12px) 50%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 30px; }
.revibe-scheduler select:disabled { color: #52616b; background-color: var(--revibe-soft); opacity: 1; }
.revibe-scheduler :is(input, select, button, a):focus-visible { outline: 3px solid var(--revibe-focus); outline-offset: 3px; }
.revibe-scheduler input[aria-invalid="true"] { border-color: #a72828; }
.revibe-scheduler .revibe-scheduler__fields, .revibe-scheduler .revibe-scheduler__schedule { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.revibe-scheduler .revibe-scheduler__calendar-wrap, .revibe-scheduler .revibe-scheduler__times-wrap { min-width: 0; }
.revibe-scheduler .revibe-scheduler__times-wrap { margin-top: 16px; }
.revibe-scheduler .revibe-scheduler__calendar { border: 1px solid var(--revibe-border); border-radius: 5px; overflow: hidden; background: #fff; color: var(--revibe-field-ink); }
.revibe-scheduler .revibe-scheduler__calendar-head { display: grid; grid-template-columns: 44px minmax(0,1fr) 44px; align-items: center; min-height: 44px; background: #fff; text-align: center; }
.revibe-scheduler .revibe-scheduler__calendar-head strong { font-size: 16px; font-weight: 600; line-height: 1.3; white-space: nowrap; }
.revibe-scheduler .revibe-scheduler__calendar-head button { border: 0; border-radius: 0; background: transparent; color: var(--revibe-field-ink); cursor: pointer; font: inherit; font-size: 26px; font-weight: 400; line-height: 1; min-height: 44px; padding: 0; margin: 0; }
.revibe-scheduler .revibe-scheduler__weekdays, .revibe-scheduler .revibe-scheduler__days { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); text-align: center; }
.revibe-scheduler .revibe-scheduler__weekdays { padding: 7px 6px; color: #52616b; font-size: 12px; line-height: 1.4; border-bottom: 1px solid var(--revibe-border); }
.revibe-scheduler .revibe-scheduler__days { gap: 2px; padding: 6px; }
.revibe-scheduler .revibe-scheduler__days button, .revibe-scheduler .revibe-scheduler__day-spacer { min-width: 0; min-height: 40px; }
.revibe-scheduler .revibe-scheduler__days button { display: flex; align-items: center; justify-content: center; font: inherit; font-size: 15px; font-weight: 400; line-height: 1; border: 1px solid transparent; border-radius: 5px; margin: 0; padding: 4px 0; color: var(--revibe-muted); background: transparent; }
.revibe-scheduler .revibe-scheduler__days button.is-available { color: var(--revibe-field-ink); background: #fff; cursor: pointer; font-weight: 400; }
.revibe-scheduler .revibe-scheduler__days button.is-today { color: #382500; background: #ffe0a0; }
.revibe-scheduler .revibe-scheduler__days button.is-selected { color: #fff; background: var(--revibe-primary); border-color: var(--revibe-primary); }
.revibe-scheduler .revibe-scheduler__calendar button:disabled { color: #88949b; cursor: default; opacity: 0.7; }
.revibe-scheduler .revibe-scheduler__times { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-content: start; gap: 6px; padding: 8px; background: #fff; border: 1px solid var(--revibe-border); border-radius: 5px; }
.revibe-scheduler .revibe-scheduler__times:empty { display: none; }
.revibe-scheduler .revibe-scheduler__times p { grid-column: 1 / -1; color: #52616b; font-size: 14px; line-height: 1.4; margin: 0; }
.revibe-scheduler .revibe-scheduler__times button { border: 1px solid transparent; border-radius: 5px; background: #fff; color: var(--revibe-field-ink); font: inherit; font-size: 16px; font-weight: 400; text-align: left; min-width: 0; min-height: 44px; padding: 9px; margin: 0; cursor: pointer; }
.revibe-scheduler .revibe-scheduler__times button.is-selected { color: #fff; background: var(--revibe-primary); border-color: var(--revibe-primary); font-weight: 600; }
.revibe-scheduler .revibe-scheduler__status { color: var(--revibe-muted); font-size: 12px; line-height: 1.4; margin: 5px 0 0; }
.revibe-scheduler .revibe-scheduler__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 10px; margin: 20px 0 0; }
.revibe-scheduler .revibe-scheduler__actions--end { justify-content: flex-end; }
.revibe-scheduler .revibe-scheduler__actions--end .revibe-scheduler__button { width: 100%; }
.revibe-scheduler .revibe-scheduler__button { border: 1px solid var(--revibe-primary); border-radius: 5px; background: var(--revibe-primary); color: #fff; font-family: inherit; font-size: 16px; font-weight: 600; line-height: 1.3; min-height: 46px; padding: 11px 18px; margin: 0; cursor: pointer; text-decoration: none; text-transform: none; letter-spacing: normal; box-shadow: none; }
.revibe-scheduler .revibe-scheduler__button--secondary { background: transparent; border-color: var(--revibe-muted); color: var(--revibe-ink); }
.revibe-scheduler .revibe-scheduler__button:disabled { opacity: 0.6; cursor: wait; }
.revibe-scheduler .revibe-scheduler__summary { padding: 0 0 20px; border-bottom: 1px solid var(--revibe-muted); margin: 0 0 20px; color: var(--revibe-ink); }
.revibe-scheduler .revibe-scheduler__summary dl { display: grid; grid-template-columns: minmax(0,0.8fr) minmax(0,1.6fr); gap: 16px; margin: 0; }
.revibe-scheduler .revibe-scheduler__summary dt, .revibe-scheduler .revibe-scheduler__summary dd { font-size: 14px; line-height: 1.4; margin: 0; padding: 0; overflow-wrap: anywhere; }
.revibe-scheduler .revibe-scheduler__summary dt { font-weight: 600; color: var(--revibe-ink); }
.revibe-scheduler .revibe-scheduler__summary-date { display: block; font-size: 16px; font-weight: 500; line-height: 1.4; }
.revibe-scheduler .revibe-scheduler__summary-time { display: block; font-size: 20px; font-weight: 600; line-height: 1.35; margin-top: 3px; }
.revibe-scheduler .revibe-scheduler__summary-time time { display: inline-block; white-space: nowrap; }
.revibe-scheduler .revibe-scheduler__summary-end { display: block; color: var(--revibe-muted); font-size: 12px; line-height: 1.4; margin-top: 4px; }
.revibe-scheduler .revibe-scheduler__retry { background: transparent; border: 0; padding: 8px 0; min-height: 44px; font: inherit; font-size: 14px; color: var(--revibe-ink); text-decoration: underline; cursor: pointer; }
.revibe-scheduler .revibe-scheduler__privacy { color: var(--revibe-muted); font-size: 12px; line-height: 1.4; margin: 8px 0 0; }
.revibe-scheduler .revibe-scheduler__support { color: var(--revibe-muted); font-size: 13px; line-height: 1.4; text-align: center; margin: 12px 0 0; }
.revibe-scheduler .revibe-scheduler__support a, .revibe-scheduler .revibe-scheduler__privacy a { color: var(--revibe-ink); text-decoration: underline; }
.revibe-scheduler .revibe-scheduler__trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.revibe-scheduler .revibe-scheduler__error { color: #8a2222; background: #fff1f1; border: 1px solid #e5b8b8; border-radius: 5px; font-size: 14px; line-height: 1.4; padding: 10px; margin: 10px 0 0; }
.revibe-scheduler .revibe-scheduler__notice { color: #704c00; background: #fff8df; border: 1px solid #ead48b; border-radius: 5px; font-size: 12px; line-height: 1.4; padding: 8px; margin: 0 0 12px; }
@container revibe-scheduler (min-width: 660px) {
  .revibe-scheduler .revibe-scheduler__panel { padding: 32px; }
  .revibe-scheduler--none .revibe-scheduler__panel { padding: 0; }
  .revibe-scheduler .revibe-scheduler__title { margin-bottom: 24px; }
  .revibe-scheduler .revibe-scheduler__fields, .revibe-scheduler .revibe-scheduler__schedule { grid-template-columns: minmax(0,1fr) minmax(0,1fr); column-gap: 20px; }
  .revibe-scheduler .revibe-scheduler__times-wrap { margin-top: 0; }
  .revibe-scheduler [data-step="2"] > .revibe-scheduler__field { display: grid; grid-template-columns: minmax(0,0.8fr) minmax(0,2.2fr); gap: 20px; align-items: center; }
  .revibe-scheduler [data-step="2"] > .revibe-scheduler__field > label { text-align: right; margin: 0; }
  .revibe-scheduler .revibe-scheduler__summary dl { grid-template-columns: minmax(0,0.8fr) minmax(0,2.2fr); column-gap: 20px; }
  .revibe-scheduler .revibe-scheduler__summary dt { text-align: right; }
}
@container revibe-scheduler (max-width: 419px) {
  .revibe-scheduler .revibe-scheduler__summary dl { grid-template-columns: minmax(0,1fr); gap: 4px; }
  .revibe-scheduler .revibe-scheduler__summary dd { margin-bottom: 12px; }
  .revibe-scheduler .revibe-scheduler__summary dd:last-child { margin-bottom: 0; }
}
@container revibe-scheduler (max-width: 359px) {
  .revibe-scheduler .revibe-scheduler__panel { padding: 12px; }
  .revibe-scheduler--none .revibe-scheduler__panel { padding: 0; }
  .revibe-scheduler .revibe-scheduler__title { font-size: 22px; }
  .revibe-scheduler .revibe-scheduler__actions--end .revibe-scheduler__button { width: 100%; }
}
@media (pointer: coarse) {
  .revibe-scheduler .revibe-scheduler__days button, .revibe-scheduler .revibe-scheduler__day-spacer, .revibe-scheduler .revibe-scheduler__times button { min-height: 44px; }
}

/* Keep interactions distinct without introducing layout motion. */
.revibe-scheduler .revibe-scheduler__calendar-head button, .revibe-scheduler .revibe-scheduler__days button, .revibe-scheduler .revibe-scheduler__times button { text-transform: none; letter-spacing: normal; box-shadow: none; }
.revibe-scheduler input::placeholder { color: #657681; opacity: 1; }
@media (hover: hover) {
  .revibe-scheduler .revibe-scheduler__times button:not(.is-selected):hover, .revibe-scheduler .revibe-scheduler__days button.is-available:not(.is-selected):hover { background: #e8f2f6; color: var(--revibe-field-ink); border-color: var(--revibe-primary); }
  .revibe-scheduler .revibe-scheduler__button:not(:disabled):hover { filter: brightness(0.94); }
}

/* Dashboard profile controls. */
.revibe-scheduler--custom { --revibe-primary:var(--rv-accent,#007fa9); }
.revibe-scheduler--custom.revibe-scheduler--card { --revibe-panel:var(--rv-bg,#1b4354);--revibe-panel-border:var(--rv-bg,#1b4354);--revibe-ink:var(--rv-text,#fff);--revibe-muted:var(--rv-text,#fff);--revibe-focus:var(--rv-text,#fff); }
.revibe-scheduler .revibe-scheduler__status[data-role="locked-label"] { min-height:44px;padding:10px 12px;margin:0;border:1px solid var(--revibe-border);border-radius:5px;background:#f5f7f8;color:var(--revibe-field-ink);font-size:16px;line-height:1.35; }
.revibe-scheduler--spacing-compact .revibe-scheduler__field {margin-bottom:12px}
.revibe-scheduler--spacing-compact .revibe-scheduler__title {font-size:22px;margin-bottom:16px}
.revibe-scheduler--spacing-compact .revibe-scheduler__actions {margin-top:12px}
.revibe-scheduler--spacing-compact .revibe-scheduler__summary {margin-bottom:14px;padding-bottom:14px}
.revibe-scheduler--spacing-compact .revibe-scheduler__panel {padding:16px}
.revibe-scheduler--spacing-compact.revibe-scheduler--none .revibe-scheduler__panel {padding:0}
.revibe-scheduler .revibe-scheduler__callback {margin-top:20px;padding-top:20px;border-top:1px solid var(--revibe-muted)}
.revibe-scheduler .revibe-scheduler__callback h3 {font-family:inherit;font-weight:600;font-size:20px;line-height:1.3;color:var(--revibe-ink);margin:0 0 10px}
.revibe-scheduler .revibe-scheduler__callback p {font-size:14px;line-height:1.5;margin:0 0 14px;color:var(--revibe-ink)}

/* Cache-safe, browser-only thank-you receipt. Independent of booking form layout. */
.rv-confirmation { box-sizing: border-box; width: 100%; max-width: 760px; margin: 20px auto; padding: clamp(20px, 4vw, 36px); border: 1px solid #d4e1e6; border-radius: 12px; background: #fff; color: #243e49; overflow-wrap: anywhere; }
.rv-confirmation h2 { margin: 0 0 12px; color: inherit; font-size: clamp(24px, 4vw, 32px); line-height: 1.2; }
.rv-confirmation p { margin: 0 0 20px; }
.rv-confirmation dl { display: grid; grid-template-columns: minmax(100px, 1fr) minmax(0, 2fr); gap: 12px 20px; margin: 0; }
.rv-confirmation dt { font-weight: 600; }
.rv-confirmation dd { margin: 0; }
@media (max-width: 480px) { .rv-confirmation dl { grid-template-columns: 1fr; gap: 4px; } .rv-confirmation dd { margin-bottom: 12px; } }
.revibe-scheduler__intake { margin-top:20px; }
.revibe-scheduler__intake:empty { display:none; }
.revibe-scheduler__intake textarea { width:100%; min-height:90px; padding:12px; border:1px solid #cad7df; border-radius:6px; background:#fff; color:#243e49; font:inherit; }
.revibe-scheduler__intake-check input[type=checkbox] { width:22px; height:22px; min-height:22px; }

/* Visual builder controls; server-sanitized values are scoped to this instance. */
.revibe-scheduler {max-width:var(--rv-max-width,760px);font-size:var(--rv-font-size,16px)}
.revibe-scheduler .revibe-scheduler__panel {padding:var(--rv-padding,24px);border-radius:var(--rv-radius,5px)}
.revibe-scheduler .revibe-scheduler__field input,.revibe-scheduler .revibe-scheduler__field select,.revibe-scheduler .revibe-scheduler__field textarea,.revibe-scheduler .revibe-scheduler__times select {background:var(--rv-field-bg,#fff);color:var(--rv-field-text,#263a45);border-color:var(--rv-border,#d5e0e6);border-radius:var(--rv-radius,5px);font-size:var(--rv-font-size,16px)}
.revibe-scheduler .revibe-scheduler__button {border-radius:var(--rv-radius,5px);font-size:var(--rv-font-size,16px)}
.revibe-scheduler .revibe-scheduler__button:not(.revibe-scheduler__button--secondary){color:var(--rv-button-text,#fff)}
.revibe-scheduler .revibe-scheduler__times select{grid-column:1/-1;width:100%;padding:12px;min-height:44px}
.revibe-scheduler .revibe-scheduler__time-group{font-weight:700;padding-top:8px}
.revibe-scheduler[data-calendar-style=list] .revibe-scheduler__weekdays,.revibe-scheduler[data-calendar-style=strip] .revibe-scheduler__weekdays{display:none}
.revibe-scheduler[data-calendar-style=list] .revibe-scheduler__days{grid-template-columns:1fr;max-height:360px;overflow:auto}
.revibe-scheduler[data-calendar-style=strip] .revibe-scheduler__days{display:flex;overflow-x:auto;gap:8px;padding:8px}
.revibe-scheduler[data-calendar-style=strip] .revibe-scheduler__days button{min-width:105px;min-height:54px}
.revibe-scheduler[data-columns=one] .revibe-scheduler__fields,.revibe-scheduler[data-columns=one] .revibe-scheduler__schedule{grid-template-columns:1fr}
.revibe-scheduler__contact-fields{display:grid;grid-template-columns:1fr;gap:0 16px}.revibe-scheduler__review-details{overflow-wrap:anywhere}
@container revibe-scheduler (min-width:660px){.revibe-scheduler[data-columns=auto] .revibe-scheduler__contact-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container revibe-scheduler (max-width:659px){.revibe-scheduler .revibe-scheduler__panel{padding:var(--rv-mobile-padding,16px)}.revibe-scheduler[data-mobile-columns=two] .revibe-scheduler__contact-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
.revibe-scheduler .revibe-scheduler__description{color:var(--revibe-ink);margin:0 0 20px;line-height:1.5}

.revibe-scheduler .revibe-scheduler__title{font-size:var(--rv-heading-size,26px)}
.revibe-scheduler .revibe-scheduler__field>label,.revibe-scheduler .revibe-scheduler__field-label{font-size:var(--rv-label-size,14px)}
