
.rm-booking-widget,.rm-booking-widget *{box-sizing:border-box}
.rm-booking-widget{
  /* Accent inherits the theme “primary” when available */
  --rm-accent: var(--e-global-color-primary, var(--wp--preset--color--primary, var(--ast-global-color-0, #2f7cff)));
  max-width:100%;
  margin:16px auto;
  padding:0 14px;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
.rm-shell{overflow:visible;background:#fff;border:1px solid #e7e7e7;border-radius:22px;padding:16px;box-shadow:0 10px 26px rgba(17,24,39,.07)}

/* TheFork-ish step bar */
.rm-steps{display:flex;align-items:center;gap:10px;background:#eef1f3;border-radius:999px;padding:10px 12px;max-width:100%;overflow:hidden}
.rm-step-sep{flex:0 0 auto;color:#9aa0a6;font-weight:900;font-size:18px;line-height:1;opacity:.75;margin:0 -2px}
.rm-step{flex:1 1 0;border:0;background:transparent;padding:10px 10px;border-radius:999px;font-weight:700;font-size:13px;color:#7a7f86;display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;max-width:100%}
.rm-step-text{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:none;max-width:100%}
.rm-step.is-active .rm-step-text{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:none;max-width:100%}

.rm-step.is-value{background:transparent;color:#111827;box-shadow:none}
.rm-step.is-value .rm-step-text{display:block}
.rm-step.is-value .rm-step-ico{display:none}
.rm-step.is-icononly .rm-step-text{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:none;max-width:100%}
.rm-step.is-active{background:var(--rm-accent);color:#fff;box-shadow:0 6px 16px rgba(17,24,39,.12)}
.rm-step:disabled{opacity:1;color:#9aa0a6}
.rm-step:disabled.is-active{color:#fff}

.rm-step-ico{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center}
.rm-step-ico svg{width:18px;height:18px;fill:currentColor;opacity:.95}
.rm-step:disabled{opacity:1}

.rm-cal{overflow:visible;margin-top:14px;border:1px solid #eef0f2;border-radius:18px;padding:14px 12px;background:#fff;max-width:100%}
.rm-cal-head{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:10px}
.rm-cal-title{font-weight:800;font-size:20px;color:#111827;text-align:center;}
.rm-cal-nav{width:40px;height:40px;border-radius:14px;border:1px solid rgba(17,24,39,0.08);background:#fff;font-size:20px;line-height:1;color:#111827;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 2px rgba(0,0,0,0.04)}
.rm-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:8px;color:#8b8f94;font-weight:700;font-size:12px;text-align:center}
.rm-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-top:12px;max-width:100%}
.rm-day{height:44px;border:1px solid #e5e7eb;border-radius:14px;background:#fff;font-weight:700;color:#111827;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 0 rgba(0,0,0,.03);min-width:0;width:100%}
.rm-day.rm-empty{background:transparent;border-color:transparent}
.rm-day.is-blocked{opacity:.55;text-decoration:line-through}
.rm-day.is-disabled{background:#f3f4f6;color:#9ca3af !important;border-color:#f3f4f6;opacity:1;box-shadow:none;-webkit-text-fill-color:#9ca3af !important}
.rm-day.is-selected{border-color:var(--rm-accent);box-shadow:0 0 0 2px var(--rm-accent) inset;background:#fff}

.rm-h2{font-size:32px;line-height:1.12;margin:16px 0 14px;font-weight:800;color:#111827}
.rm-note{margin:12px 0 0;color:#8b8f94;font-size:13px;line-height:1.35}

.rm-time-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
@media(max-width:520px){.rm-time-grid{grid-template-columns:repeat(4,1fr)}}
.rm-slot{border:1px solid #e5e7eb;border-radius:12px;height:44px;background:#fff;font-weight:700;color:#111827;box-shadow:none}
.rm-slot.is-disabled{background:#f3f4f6;color:#a3a3a3;border-color:#f0f0f0;opacity:.7}
.rm-slot.is-selected{border-color:var(--rm-accent);box-shadow:0 0 0 2px var(--rm-accent) inset;background:#fff}

.rm-guests-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.rm-guest{border:1px solid #e5e7eb;border-radius:12px;height:52px;background:#fff;font-weight:800;font-size:18px;color:#111827;box-shadow:none}
.rm-guest.is-selected{border-color:var(--rm-accent);box-shadow:0 0 0 2px var(--rm-accent) inset;background:rgba(0,0,0,0.02)}
.rm-more{width:100%;margin-top:12px;border:1px solid #e5e7eb;border-radius:14px;background:#f3f4f6;padding:16px;font-weight:900;text-transform:none;letter-spacing:.02em;color:#111827}

.rm-label{display:block;margin:14px 0 6px;font-weight:800;color:#111827}
.rm-input{width:100% !important;border:1px solid #e5e7eb !important;border-radius:14px !important;padding:14px 14px !important;font-size:16px !important;background:#fff !important;box-shadow:none !important;outline:none !important}
.rm-textarea{min-height:86px;resize:vertical;width:100% !important}
.rm-help{margin-top:8px;color:#8b8f94;font-size:13px}

.rm-book-btn{margin-top:18px;padding:16px 18px;border-radius:18px;border:0;background:var(--rm-accent,#2f7cff);color:#fff;font-weight:900;letter-spacing:.02em;text-transform:uppercase;box-shadow:0 10px 22px rgba(0,0,0,.14)}
.rm-success{margin-top:14px;color:#166534;font-weight:800}
.rm-error{margin-top:14px;color:#991b1b;font-weight:800}

.rm-times-error-state{padding:16px 4px 10px;display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.rm-times-error-message{color:#6b7280;font-size:15px;line-height:1.45;max-width:240px}
.rm-times-retry{display:inline-flex;align-items:center;justify-content:center;min-width:148px;min-height:48px;padding:0 22px;border:0;border-radius:16px;background:var(--rm-accent,#2f7cff);color:#fff;font-weight:800;font-size:15px;letter-spacing:.01em;white-space:nowrap;box-shadow:0 10px 22px rgba(0,0,0,.12);cursor:pointer;-webkit-appearance:none;appearance:none}
.rm-times-retry:disabled{opacity:.7;cursor:default}
.rm-times-retry:active{transform:translateY(1px)}


.rm-modal{position:fixed;inset:0;display:none;z-index:99999}
.rm-modal[style*="display:block"]{display:block}
.rm-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.35)}
.rm-modal-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(92vw,420px);background:#fff;border-radius:18px;padding:16px}
.rm-modal-title{font-weight:900;font-size:18px;margin-bottom:10px}
.rm-modal-sub{font-weight:800;color:#6b7280;margin-bottom:8px}
.rm-modal-actions{display:flex;justify-content:space-between;margin-top:14px}
.rm-link{border:0;background:transparent;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.rm-link.is-primary{color:var(--rm-accent)}


@media (max-width: 420px){
  .rm-booking-widget{padding:0 10px;margin:12px auto}
  .rm-shell{padding:12px;border-radius:20px}
  .rm-steps{display:flex;align-items:center;gap:10px;background:#eef1f3;border-radius:999px;padding:10px 12px;max-width:100%;overflow:hidden}
  .rm-step{flex:1 1 0;border:0;background:transparent;padding:10px 10px;border-radius:999px;font-weight:700;font-size:13px;color:#7a7f86;display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;max-width:100%}
  .rm-step-ico{width:16px;height:16px}
  .rm-step-ico svg{width:16px;height:16px}
  .rm-cal{padding:10px;border-radius:16px}
  .rm-cal-title{font-size:18px}
  .rm-dow{gap:4px;font-size:11px}
  .rm-cal-grid{gap:4px}
  .rm-day{height:38px;border-radius:10px;font-size:14px;min-width:0;padding:0}
  .rm-time-grid{gap:8px}
  .rm-slot{height:40px;border-radius:10px;font-size:14px}
  .rm-h2{font-size:26px}
  .rm-guests-grid{gap:8px}
  .rm-guest{height:48px;border-radius:10px;font-size:16px}
  .rm-more{padding:14px 10px;font-size:13px}
  .rm-input,.rm-textarea{font-size:16px} /* prevent iOS zoom */
  .rm-cta{width:100%;border-radius:14px}
}

.rm-booking-widget button{font-family:inherit}


/* --- v17.8 TheFork-like step bar behavior --- */
.rm-steps{display:flex;align-items:center;gap:10px;background:#eef1f3;border-radius:999px;padding:10px 12px;max-width:100%;overflow:hidden}
.rm-step{flex:1 1 0;border:0;background:transparent;padding:10px 10px;border-radius:999px;font-weight:700;font-size:13px;color:#7a7f86;display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;max-width:100%}
.rm-step.is-active{background:var(--rm-accent);color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.08)}
.rm-step .rm-step-text{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:none;max-width:100%}
.rm-step .rm-step-ico{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.rm-step .rm-step-ico svg{width:22px;height:22px;fill:currentColor}

/* icon-only steps */
.rm-step.is-icononly{justify-content:center;gap:0}
.rm-step.is-icononly .rm-step-text{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:none;max-width:100%}

/* value steps (show chosen value, no icon) */

/* separators */
.rm-step-sep{flex:0 0 auto;color:#9aa0a6;font-weight:900;font-size:18px;line-height:1;opacity:.75;margin:0 -2px}

/* --- Calendar grid hard fit --- */
.rm-cal{max-width:100%}
.rm-cal-grid{display:grid !important;grid-template-columns:repeat(7,minmax(0,1fr)) !important;gap:10px !important;width:100% !important;max-width:100% !important;overflow:visible !important}
.rm-day{min-width:0 !important;width:100% !important}
.rm-dow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}

/* --- Time grid hard fit --- */
.rm-time-grid{display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr)) !important;gap:12px !important;width:100% !important;max-width:100% !important}
.rm-slot{min-width:0 !important;width:100% !important;white-space:nowrap}
/* blocked slots: show but strike-through */
.rm-slot.is-blocked{opacity:.45;text-decoration:line-through}
.rm-slot.is-blocked:disabled{cursor:not-allowed}

/* small screens tighten */
@media (max-width: 380px){
  .rm-cal-grid{gap:8px !important}
  .rm-dow{gap:8px}
  .rm-time-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
}


/* TheFork-like step sizing */
.rm-step.is-icononly{width:44px;padding-left:0;padding-right:0}
.rm-step.is-active{min-width:112px}
.rm-step.is-active .rm-step-text{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:none;max-width:100%}
.rm-step.is-active .rm-step-ico{filter:none}
.rm-step.is-icononly .rm-step-ico{opacity:.75}
.rm-step-sep{flex:0 0 auto;color:#9aa0a6;font-weight:900;font-size:18px;line-height:1;opacity:.75;margin:0 -2px}
@media (max-width:420px){
  .rm-steps{display:flex;align-items:center;gap:10px;background:#eef1f3;border-radius:999px;padding:10px 12px;max-width:100%;overflow:hidden}
  .rm-step.is-active{min-width:104px}
    .rm-step-text{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:none;max-width:100%}
}



/* --- v17-10 Progress bar TheFork-like --- */
.rm-booking-widget .rm-steps{display:flex;align-items:center;gap:10px;background:#eef1f3;border-radius:999px;padding:10px 12px;max-width:100%;overflow:hidden}
.rm-booking-widget .rm-step{flex:1 1 0;border:0;background:transparent;padding:10px 10px;border-radius:999px;font-weight:700;font-size:13px;color:#7a7f86;display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;max-width:100%}
.rm-booking-widget .rm-step:not(:last-child){
  padding-right:26px !important; /* space for chevron */
}
.rm-booking-widget .rm-step:not(:last-child)::after{
  content:'›' !important;
  position:absolute !important;
  right:10px !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  color:#9aa3ad !important;
  font-size:22px !important;
  line-height:1 !important;
  pointer-events:none !important;
  opacity:.9 !important;
}
.rm-booking-widget .rm-step.is-active{
  background:var(--rm-accent) !important;
  color:#fff !important;
}

/* Step content states */
.rm-booking-widget .rm-step{position:relative}
.rm-booking-widget .rm-step-label{display:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.rm-booking-widget .rm-step-value{display:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}

/* Active step (when no value picked yet): show icon + label */
.rm-booking-widget .rm-step.is-active:not(.has-value) .rm-step-label{display:inline}

/* Non-active steps with no value: icons only */
.rm-booking-widget .rm-step:not(.is-active):not(.has-value) .rm-step-label{display:none}

/* Steps with value: show the value text, hide the icon */
.rm-booking-widget .rm-step.has-value .rm-step-ico{display:none}
.rm-booking-widget .rm-step.has-value .rm-step-value{display:inline;font-weight:800;color:#111827}
.rm-booking-widget .rm-step.has-value.is-active .rm-step-value{color:#fff}
.rm-booking-widget .rm-step.is-active::after{
  color:rgba(255,255,255,.7) !important;
}
.rm-booking-widget .rm-step-ico{
  width:20px !important;
  height:20px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  opacity:1 !important;
}
.rm-booking-widget .rm-step svg{
  width:20px !important;
  height:20px !important;
  stroke:currentColor !important;
  fill:none !important;
  stroke-width:2 !important;
}
.rm-booking-widget .rm-step .rm-step-label{
  display:inline-block !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  min-width:0 !important;
  font-size:14px !important;
}
.rm-booking-widget .rm-step.is-done{
  color:#111827 !important;
  background:transparent !important;
}
.rm-booking-widget .rm-step.is-done .rm-step-ico{
  display:none !important;
}
.rm-booking-widget .rm-step.is-done .rm-step-label{
  font-weight:700 !important;
}
@media (max-width:420px){
  .rm-booking-widget .rm-steps{display:flex;align-items:center;gap:10px;background:#eef1f3;border-radius:999px;padding:10px 12px;max-width:100%;overflow:hidden}
  .rm-booking-widget .rm-step{flex:1 1 0;border:0;background:transparent;padding:10px 10px;border-radius:999px;font-weight:700;font-size:13px;color:#7a7f86;display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;max-width:100%}
  .rm-booking-widget .rm-step:not(:last-child){ padding-right:22px !important; }
  .rm-booking-widget .rm-step:not(:last-child)::after{ right:8px !important; font-size:20px !important; }
  .rm-booking-widget .rm-step .rm-step-label{ font-size:13px !important; }
}
/* Ensure calendar never clips last columns */
.rm-booking-widget .rm-cal-grid{
  grid-template-columns:repeat(7, minmax(0, 1fr)) !important;
  overflow:visible !important;
}
.rm-booking-widget .rm-cal-day{ min-width:0 !important; width:100% !important; }


.rm-booking-widget .rm-step .rm-step-text{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:none;max-width:100%}
.rm-booking-widget .rm-step.is-done .rm-step-text{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:none;max-width:100%}


.rm-booking-widget .rm-step.is-icononly .rm-step-text{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:none;max-width:100%}

/* === v17.14 stepper + value rendering (override theme CSS) === */
.rm-booking .rm-steps{ display:flex; align-items:center; justify-content:space-between; gap:0; }
.rm-booking .rm-step{ position:relative; flex:1; display:flex; align-items:center; justify-content:center; padding:0 6px; }
.rm-booking .rm-step:not(:last-child)::after{ content:'›'; position:absolute; right:-6px; top:50%; transform:translateY(-50%); color:#A9B1BA; font-size:22px; line-height:1; }

.rm-booking .rm-step-ico,
.rm-booking .rm-step-label,
.rm-booking .rm-step-value{ display:inline-flex; align-items:center; }

/* default: icons only (labels hidden) */
.rm-booking .rm-step-label{ display:none !important; }
.rm-booking .rm-step-value{ display:none !important; font-weight:800; }

/* date step can show its label while active */
.rm-booking .rm-step.show-label .rm-step-label{ display:inline-flex !important; }

/* completed steps: show value text, hide icon + label */
.rm-booking .rm-step.has-value .rm-step-ico{ display:none !important; }
.rm-booking .rm-step.has-value .rm-step-label{ display:none !important; }
.rm-booking .rm-step.has-value .rm-step-value{ display:inline-flex !important; max-width:82px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* active step: always show icon */
.rm-booking .rm-step.is-active .rm-step-ico{ display:inline-flex !important; }
.rm-booking .rm-step.is-active .rm-step-value{ display:none !important; }

/* blocked slots: strike-through */
.rm-booking .rm-slot.is-blocked,
.rm-booking .rm-slot.is-disabled{ text-decoration:line-through; }

/* === Stepper + value rendering overrides === */
.rm-booking .rm-steps{display:flex;align-items:center;justify-content:space-between;}
.rm-booking .rm-step{position:relative;flex:1;display:flex;align-items:center;justify-content:center;padding:0 6px;min-width:0;}
.rm-booking .rm-step:not(:last-child)::after{content:'›';position:absolute;right:-6px;top:50%;transform:translateY(-50%);color:#A9B1BA;font-size:22px;line-height:1;}

.rm-booking .rm-step-label{display:none!important;}
.rm-booking .rm-step.show-label .rm-step-label{display:inline-flex!important;}

.rm-booking .rm-step-value{display:none!important;font-weight:700;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rm-booking .rm-step.has-value .rm-step-value{display:inline-flex!important;}
.rm-booking .rm-step.has-value .rm-step-ico{display:none!important;}

/* Keep active step icon visible even if it already has a value (editing) */
.rm-booking .rm-step.is-active.has-value .rm-step-ico{display:inline-flex!important;}
.rm-booking .rm-step.is-active.has-value .rm-step-value{display:none!important;}


/* --- RM overrides to match TheFork stepper behaviour --- */
.rm-step-label{display:none !important;} /* icons only */
.rm-step-value{display:none; font-weight:700;}
.rm-step.has-value .rm-step-ico{display:none !important;}
.rm-step.has-value .rm-step-value{display:inline !important;}
/* single chevron separator */
.rm-step::after{content:none !important;}
.rm-step-sep{display:flex !important; align-items:center; justify-content:center; color:#9aa3ad; font-size:18px; line-height:1; padding:0 6px;}
/* keep stepper contained on mobile */
.rm-steps{max-width:100%; overflow:hidden;}
.rm-step{min-width:0;}
.rm-step-value{max-width:64px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
/* make time grid 3 columns on small screens */
@media (max-width:420px){
  .rm-grid{grid-template-columns:repeat(3, minmax(0,1fr)) !important;}
  .rm-cell{min-width:0;}
}



/* Force icon-only stepper */
.rm-steps .rm-step{width:44px;padding-left:0;padding-right:0;justify-content:center}
.rm-steps .rm-step-label,
.rm-steps .rm-step-value{display:none !important}


/* v0.3.2 tweaks */
.rm-step-label, .rm-step-value{display:none !important}
.rm-step{min-width:44px !important}
.rm-step.is-active{min-width:44px !important}

/* prevent any label/value injected layout */
.rm-steps .rm-step{width:44px !important;padding-left:0 !important;padding-right:0 !important;justify-content:center !important}

/* Calendar month/year: smaller and single-line */
.rm-cal-title{font-size:22px !important; white-space:nowrap !important}

/* Smaller headings for steps */
.rm-h2.rm-h2-sm{font-size:24px !important; line-height:1.15 !important; margin:14px 0 12px !important}


/* v0.3.3 icon-only stepper fix */
.rm-steps .rm-step{
  width:44px !important;
  min-width:44px !important;
  max-width:44px !important;
  padding-left:0 !important;
  padding-right:0 !important;
  justify-content:center !important;
}
.rm-steps .rm-step.is-active{
  min-width:44px !important;
  max-width:44px !important;
}
.rm-step-label, .rm-step-value{display:none !important;}
/* completed steps slightly darker grey */
.rm-step.is-complete .rm-step-ico{opacity:.92; filter: none;}


/* v0.3.4 stepper alignment + calendar title */
.rm-steps{justify-content:center !important}
.rm-steps .rm-step{
  flex:0 0 44px !important;
  width:44px !important;
  min-width:44px !important;
  max-width:44px !important;
  height:44px !important;
  padding:0 !important;
}
.rm-steps .rm-step-ico{width:20px !important;height:20px !important}
.rm-steps .rm-step-ico svg{width:20px !important;height:20px !important}
.rm-step-sep{align-self:center !important; line-height:1 !important; display:flex !important; align-items:center !important; justify-content:center !important}
.rm-step-sep::before{content:'›';} /* normalize glyph */

/* Calendar title smaller + perfectly centered */
.rm-cal-title{
  font-size:18px !important;
  line-height:1 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  white-space:nowrap !important;
}


/* v0.3.5 polish */

/* Slightly larger active step for focus */
.rm-step.is-active{
  width:48px !important;
  min-width:48px !important;
  max-width:48px !important;
  height:48px !important;
}

/* Optical balance: add ghost spacing before first step */
.rm-steps::before{
  content:'';
  display:block;
  width:18px;
}

/* Perfect vertical centering for calendar title */
.rm-cal-head{align-items:center !important;}
.rm-cal-title{
  transform:translateY(-1px);
}

/* Slightly tighter calendar padding */
.rm-cal{
  padding-top:10px !important;
}


/* v0.3.6 fixes: stepper + calendar title */

/* Stepper: keep buttons fixed-size; enlarge active background via pseudo-element (no layout shift) */
.rm-steps{justify-content:center !important;}
.rm-steps::before{content:none !important; display:none !important;}

.rm-steps .rm-step{
  flex:0 0 44px !important;
  width:44px !important;
  min-width:44px !important;
  max-width:44px !important;
  height:44px !important;
  position:relative !important;
  overflow:visible !important;
}
.rm-steps .rm-step.is-active{
  width:44px !important;
  min-width:44px !important;
  max-width:44px !important;
  height:44px !important;
  background:transparent !important;
  box-shadow:none !important;
}
.rm-steps .rm-step.is-active::after{
  content:'';
  position:absolute;
  inset:50% auto auto 50%;
  width:48px;
  height:48px;
  transform:translate(-50%,-50%);
  border-radius:999px;
  background:var(--rm-accent);
  box-shadow:0 6px 16px rgba(17,24,39,.12);
  z-index:0;
}
.rm-steps .rm-step.is-active .rm-step-ico{color:#fff !important; z-index:1; position:relative;}
.rm-steps .rm-step.is-active .rm-step-ico svg{fill:currentColor !important; opacity:1 !important;}

.rm-step.is-complete .rm-step-ico{opacity:.92; filter:none;}

/* Keep separators centered */
.rm-step-sep{display:flex !important; align-items:center !important; justify-content:center !important; margin:0 2px !important;}
.rm-step-sep::before{content:'›';}

/* Calendar title: absolute center, smaller, perfectly aligned */
.rm-cal-head{position:relative !important; justify-content:space-between !important;}
.rm-cal-title{
  position:absolute !important;
  left:50% !important;
  transform:translateX(-50%) !important;
  font-size:16px !important;
  line-height:1 !important;
  font-weight:800 !important;
  text-align:center !important;
  white-space:nowrap !important;
  top:50% !important;
  margin:0 !important;
}
.rm-cal-nav{position:relative !important; z-index:2 !important;}


/* v0.3.7 stepper geometry fix */

/* Remove previous active bubble rule if present by overriding stronger selectors */
.rm-steps{justify-content:center !important; gap:8px !important;}

/* Separators: keep subtle (A) */
.rm-step-sep{
  margin:0 0 !important;
  opacity:.75 !important;
  position:relative !important;
  z-index:3 !important;
}

/* Step buttons fixed */
.rm-steps .rm-step{
  flex:0 0 44px !important;
  width:44px !important;
  height:44px !important;
  padding:0 !important;
  border-radius:999px !important;
  background:transparent !important;
  box-shadow:none !important;
}

/* Icon box as anchor */
.rm-steps .rm-step .rm-step-ico{
  width:44px !important;
  height:44px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  position:relative !important;
  z-index:2 !important;
}

/* Active bubble behind icon, anchored to icon box */
.rm-steps .rm-step.is-active::after{
  content:'' !important;
  position:absolute !important;
  width:48px !important;
  height:48px !important;
  left:50% !important;
  top:50% !important;
  transform:translate(-50%,-50%) !important;
  border-radius:999px !important;
  background:var(--rm-accent) !important;
  box-shadow:0 6px 16px rgba(17,24,39,.12) !important;
  z-index:1 !important;
}

/* Ensure button itself provides positioning context */
.rm-steps .rm-step{position:relative !important;}

/* Active icon white */
.rm-steps .rm-step.is-active .rm-step-ico{color:#fff !important;}
.rm-steps .rm-step.is-active .rm-step-ico svg{fill:currentColor !important; opacity:1 !important;}

/* Completed subtle darker grey */
.rm-steps .rm-step.is-complete .rm-step-ico{opacity:.92 !important;}

/* Prevent any overflow overlap with separators */
.rm-steps{overflow:visible !important;}


/* v0.3.8: make active blue fill the whole step reliably (iOS-safe) */
/* Disable the previous button ::after bubble and use the icon box as the anchor instead. */
.rm-steps .rm-step.is-active::after{content:none !important; display:none !important;}

.rm-steps .rm-step .rm-step-ico{position:relative !important;}
.rm-steps .rm-step.is-active .rm-step-ico::before{
  content:'' !important;
  position:absolute !important;
  inset:0 !important;              /* fill the 44x44 icon box */
  transform:scale(1.06) !important; /* slight emphasis without layout shift */
  border-radius:999px !important;
  background:var(--rm-accent) !important;
  box-shadow:0 6px 16px rgba(17,24,39,.12) !important;
  z-index:-1 !important;
}

/* Ensure the white icon is crisp */
.rm-steps .rm-step.is-active .rm-step-ico{color:#fff !important;}
.rm-steps .rm-step.is-active .rm-step-ico svg{opacity:1 !important; fill:currentColor !important;}


/* v0.3.9 UI tweaks requested */
/* Remove separators completely */
.rm-step-sep{display:none !important;}

/* Active step: icon blue (no filled circle) */
.rm-steps .rm-step.is-active::after{content:none !important; display:none !important;}
.rm-steps .rm-step.is-active .rm-step-ico::before{content:none !important; display:none !important;}
.rm-steps .rm-step.is-active{background:transparent !important; box-shadow:none !important;}
.rm-steps .rm-step.is-active .rm-step-ico{color:var(--rm-accent) !important;}
.rm-steps .rm-step.is-active .rm-step-ico svg{fill:currentColor !important;}

/* Center the whole stepper block */
.rm-steps{justify-content:center !important; margin-left:auto !important; margin-right:auto !important;}

/* Reduce vertical gap between rows on time grid */
.rm-time-grid{row-gap:4px !important; column-gap:10px !important;}


/* v0.4.0 tweaks */
/* Remove step chevrons (they were generated via ::after) */
.rm-booking-widget .rm-step:not(:last-child)::after{content:none !important; display:none !important;}
.rm-booking-widget .rm-step{padding-right:0 !important;}

/* Calendar header: center arrows vertically with title; keep title centered */
.rm-cal-head{align-items:center !important;}
.rm-cal-nav{display:flex !important; align-items:center !important; justify-content:center !important;}

/* 4 time slots per row */
.rm-time-grid{
  grid-template-columns:repeat(4, 1fr) !important;
  column-gap:8px !important;
  row-gap:4px !important;
}
.rm-slot{
  padding:10px 6px !important;
  font-size:16px !important;
}


/* v0.4.1 alignment polish */

/* Stepper pill: distribute icons evenly and center group */
.rm-steps{
  width:100% !important;
  box-sizing:border-box !important;
  justify-content:space-between !important;
  padding:10px 18px !important;
  gap:0 !important;
}
.rm-steps .rm-step{
  flex:0 0 44px !important;
}

/* Calendar header: true vertical centering between arrows */
.rm-cal-head{
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
}
.rm-cal-title{
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  transform:translate(-50%,-50%) !important;
  font-size:16px !important;
  line-height:1 !important;
  margin:0 !important;
  flex:0 0 auto !important;
}
.rm-cal-nav{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

/* Time slots: center text vertically */
.rm-slot{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 !important;
  line-height:1 !important;
}


/* v0.4.2 stepper + calendar header centering */

/* Stepper: centered group with controlled spacing */
.rm-steps{
  justify-content:center !important;
  padding:10px 22px !important;
  gap:22px !important;
}
.rm-steps .rm-step{
  margin:0 !important;
}

/* Calendar header: title truly centered and vertically centered */
.rm-cal-head{
  position:relative !important;
  padding:0 6px !important;
}
.rm-cal-title{
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  text-align:center !important;
  pointer-events:none !important;
}
.rm-cal-nav{z-index:2 !important;}


/* v0.4.3: optical alignment fixes */

/* Stepper: tiny optical nudge for last (pen) icon so perceived spacing is equal */
.rm-steps .rm-step[data-step="details"] .rm-step-ico{
  transform:translateX(-2px) !important;
}

/* v0.4.8 loader */
.ensure-rm-relative{}

/* Ensure widget can host overlay */
.rm-booking-widget{position:relative !important;}
.rm-booking-widget .rm-loader{
  position:absolute;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  background:rgba(255,255,255,.65);
  z-index:50;
}
.rm-booking-widget.is-loading .rm-loader{display:flex;}
.rm-booking-widget .rm-spinner{
  width:36px;
  height:36px;
  border-radius:999px;
  border:3px solid rgba(17,24,39,.15);
  border-top-color:var(--rm-accent);
  animation:rmspin .8s linear infinite;
}
@keyframes rmspin{to{transform:rotate(360deg);}}


/* Skeleton shimmer */
@keyframes rmShimmer{0%{background-position:-200px 0}100%{background-position:calc(200px + 100%) 0}}
.rm-skel{
  background:linear-gradient(90deg, rgba(17,24,39,.06) 0%, rgba(17,24,39,.10) 35%, rgba(17,24,39,.06) 70%);
  background-size:200px 100%;
  animation:rmShimmer 1.2s infinite;
}

/* Calendar skeleton */
.rm-cal.is-skeleton .rm-cal-grid{
  display:grid;
}
.rm-skel-day{
  height:46px;
  border-radius:16px;
  margin:4px 0;
}

/* Time skeleton */
.rm-time-grid.is-skeleton{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  column-gap:8px;
  row-gap:6px;
}
.rm-skel-slot{
  height:44px;
  border-radius:14px;
}



/* =========================================================
   Apple-style segmented step tabs (production locked)
   Uses new class names to avoid legacy stepper collisions.
   ========================================================= */

.rm-apple-tabs{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  align-items:center;
  gap:0;
  padding:4px;
  height:52px;
  border-radius:999px;
  background: linear-gradient(#F1F4F7, #E9EDF2);
  box-shadow: 0 4px 14px rgba(0,0,0,0.05);
  margin: 0 0 18px 0;
}

.rm-apple-tab{
  appearance:none;
  border:0;
  background:transparent;
  margin:0;
  padding:0 10px;
  height:44px;
  width:100%;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-weight:500;
  font-size:16px;
  line-height:1;
  color:#6B7280;
  position:relative;
  cursor:pointer;
}

.rm-apple-tab:disabled{
  cursor:default;
  opacity:1; /* keep readable, we visually indicate via color only */
}

.rm-apple-tab .rm-apple-tab-ico{
  display:inline-flex;
  width:20px;
  height:20px;
}

.rm-apple-tab .rm-apple-tab-ico svg{
  width:20px;
  height:20px;
  display:block;
}

.rm-apple-tab .rm-apple-tab-value{
  display:none !important;
}

/* Dividers between columns (subtle) */
.rm-apple-tab + .rm-apple-tab::before{
  content:"";
  position:absolute;
  left:0;
  top:25%;
  width:1px;
  height:50%;
  background: rgba(0,0,0,0.05);
}

/* Active pill */
.rm-apple-tab.is-active{
  background:#fff;
  color:#111827;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

/* Icons visible on all tabs */
.rm-apple-tab .rm-apple-tab-ico{
  opacity:1;
  transform:none;
}

/* No underline (explicitly) */
.rm-apple-tab.is-active::after{
  content:none !important;
}

/* Hide internal Details button completely */
.rm-apple-tab--details{
  display:none !important;
}

/* Ensure no uppercase forced by theme */
.rm-apple-tab-label{
  text-transform:none !important;
}

/* Make sure the old stepper never shows if present in cached markup */
.rm-steps{ display:none !important; }


/* === Calendar spacing polish (tighter rows) === */
.rm-cal-grid{
  /* tighter to reduce scrolling on mobile */
  row-gap: 4px !important;
  column-gap: 10px !important;
}
/* slightly tighter on very small screens */
@media (max-width: 380px){
  .rm-cal-grid{
    row-gap: 3px !important;
    column-gap: 8px !important;
  }
}

/* Tighten day tile height a touch (helps fit full month without scroll) */
.rm-day{ height:40px !important; }
@media (max-width: 420px){
  .rm-day{ height:36px !important; }
}

/* Slightly reduce weekday header spacing */
.rm-cal-weekdays{ margin-bottom:6px !important; }

/* Stepper: make label smaller + lighter (less visual weight) */
.rm-apple-tab{
  font-size:14px !important;
  font-weight:500 !important;
}
.rm-apple-tab.is-active{ font-weight:500 !important; }

/* === Calendar header: force true symmetric grid (Prev | Month | Next) === */
.rm-cal-head{
  display:grid !important;
  grid-template-columns:44px 1fr 44px !important;
  align-items:center !important;
  gap:10px !important;
  /* ensure symmetric container space */
  padding-left:0 !important;
  padding-right:0 !important;
  margin-left:0 !important;
  margin-right:0 !important;
  position:static !important;
  justify-content:initial !important;
}

/* remove any legacy absolute centering / offsets */
.rm-cal-title{
  position:static !important;
  left:auto !important;
  right:auto !important;
  transform:none !important;
  justify-self:center !important;
  text-align:center !important;
}

.rm-cal-nav{
  position:static !important;
  left:auto !important;
  right:auto !important;
  margin:0 !important;
}

.rm-cal-nav[data-nav="prev"]{ justify-self:start !important; }
.rm-cal-nav[data-nav="next"]{ justify-self:end !important; }

/* ===== v0.4.2 UI Optimized FINAL OVERRIDES (booking widget) ===== */

/* Step navigation: lighter typography */
.rm-apple-tabs .rm-apple-tab{
  font-size:14px !important;
  font-weight:500 !important;
  letter-spacing:0 !important;
}
.rm-apple-tabs .rm-apple-tab:not(.is-active){
  opacity:.7 !important;
}
.rm-apple-tabs .rm-apple-tab svg{
  width:16px !important;
  height:16px !important;
}

/* Calendar header: true symmetric grid, no absolute positioning */
.rm-cal-head{
  display:grid !important;
  grid-template-columns:44px 1fr 44px !important;
  align-items:center !important;
  gap:10px !important;
  padding:0 12px !important;
  height:auto !important;
  position:static !important;
}
.rm-cal-title{
  position:static !important;
  left:auto !important;
  right:auto !important;
  top:auto !important;
  transform:none !important;
  text-align:center !important;
  pointer-events:none !important;
}
.rm-cal-nav{
  position:static !important;
  inset:auto !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  transform:none !important;
  margin:0 !important;
  width:44px !important;
  height:44px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
.rm-cal-nav[data-nav="prev"]{justify-self:start !important;}
.rm-cal-nav[data-nav="next"]{justify-self:end !important;}

/* Calendar grid: slightly tighter rows to reduce scrolling */
.rm-cal-grid{
  row-gap:4px !important;
}

/* Date tiles: slightly smaller to help fit full month on screen */
.rm-day{
  height:36px !important;
  font-size:14px !important;
}

/* Time step: hide redundant header */
.rm-time-step .rm-h2.rm-h2-sm{display:none !important;}

