/*!
 * IMO Health | Schedule a Demo form (Marketo form 2546) for WordPress
 * Every rule is scoped to #imo-demo, so nothing leaks into the theme and the theme can't leak in.
 * Sections: settings, reset, card, path cards, fields, problem pills, calendar, buttons, errors, mobile.
 */

/* ---------- settings: brand colors and font ---------- */
#imo-demo {
  --plum: #46027e;
  --purple: #57039e;
  --violet: #6d09c4;
  --green-d: #12a35a;
  --green-tint: #e9fdf2;
  --band: #f4edfb;
  --ink: #1a0b2e;
  --ink2: #3d2a57;
  --muted: #6f6480;
  --line: #ddd0ea;
  --mist: #f7f2fc;
  --green: #41f096;
  --green-ink: #150826;
  --error: #c4314b;
  --font: "Raleway","Segoe UI",system-ui,-apple-system,sans-serif;
}

/* ---------- reset (inside the form only; :where() keeps these easy to override) ---------- */
#imo-demo {
  font-family: var(--font);
  color: var(--ink);
  line-height: 1.5;
  text-align: start;
  -webkit-font-smoothing: antialiased;
}
#imo-demo *, #imo-demo *::before, #imo-demo *::after {
  box-sizing: border-box;
}
#imo-demo :where(h2, h3, p, ul, ol, form, fieldset) {
  margin: 0;
  padding: 0;
}
#imo-demo :where(input, select, textarea, button, label) {
  font: inherit;
  color: inherit;
  letter-spacing: normal;
  text-transform: none;
  text-shadow: none;
  margin: 0;
}
#imo-demo :where(input, select, textarea) {
  box-shadow: none;
  max-inline-size: 100%;
}
#imo-demo :where(button) {
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  min-block-size: 0;
  line-height: inherit;
}
#imo-demo [hidden] {
  display: none !important;
}


/* ---------- card ---------- */
#imo-demo .imo-card {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: none;
}

/* ---------- progress: back arrow left, "Step N of 3" + 3 short bars right ---------- */

/* ---------- progress (Option B): lilac band, "‹ Step 2 of 3 · How we can help", green bar fills across the bottom ---------- */
#imo-demo .imo-prog {
  background: var(--plum);
  border-block-end: 0;
}
#imo-demo .imo-prog-row {
  display: flex;
  align-items: center;
  gap: 8px;
  block-size: 48px;
  padding: 0 clamp(18px,3.4vw,40px);
  font-size: 14px;
  color: #fff;
  line-height: 1.2;
}
#imo-demo .imo-back {
  all: unset;
  box-sizing: border-box;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  block-size: 30px;
  padding: 0 12px 0 8px;
  margin-inline-start: -8px;
  border-radius: 999px;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
}
#imo-demo .imo-back span {
  font-size: 20px;
  line-height: 1;
  margin-block-start: -2px;
}
#imo-demo .imo-card:not([data-step="0"]) .imo-prog-t {
  padding-inline-start: 12px;
  border-inline-start: 1px solid rgba(255,255,255,.3);
}
#imo-demo .imo-back:hover {
  background: rgba(255,255,255,.14);
}
#imo-demo .imo-back:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 2px;
}
#imo-demo .imo-card[data-step="0"] .imo-back {
  display: none;
}
#imo-demo .imo-prog-t {
  font-weight: 700;
  color: var(--green);
}
#imo-demo .imo-prog-sep {
  color: rgba(255,255,255,.55);
}
#imo-demo .imo-prog-name {
  font-weight: 600;
  color: #fff;
}
#imo-demo .imo-track {
  block-size: 4px;
  background: rgba(255,255,255,.18);
}
#imo-demo .imo-fill {
  block-size: 100%;
  inline-size: 33.34%;
  background: var(--green);
  transition: inline-size .35s ease;
}
#imo-demo .imo-card[data-step="1"] .imo-fill {
  inline-size: 66.67%;
}
#imo-demo .imo-card[data-step="2"] .imo-fill {
  inline-size: 100%;
}
@media (prefers-reduced-motion: reduce) {
  #imo-demo .imo-fill {
    transition: none;
  }
}
#imo-demo .imo-body {
  padding: clamp(20px,3vw,30px) clamp(18px,3.4vw,40px) clamp(22px,3vw,32px);
}
#imo-demo .imo-hint {
  margin: 4px 0 0;
  font-size: 13px;
  color: var(--muted);
  text-align: center;
}
#imo-demo .imo-head h2 {
  font-size: 22px;
  font-weight: 600;
  margin: 0 0 16px;
  outline: none;
}
#imo-demo .imo-chip {
  display: inline-flex;
  inline-size: auto;
  max-inline-size: 100%;
  gap: 6px;
  align-items: center;
  background: var(--green-tint);
  border: 1px solid var(--green-d);
  border-radius: 999px;
  padding: 6px 14px;
  font-size: 13px;
  font-weight: 600;
  color: var(--plum);
  margin: 0 0 14px;
}

/* ---------- step visibility ---------- */
#imo-demo .imo-card[data-step="0"] .imo-s1,
#imo-demo .imo-card[data-step="0"] .imo-s2,
#imo-demo .imo-card[data-step="0"] .imo-chiprow,
#imo-demo .imo-card[data-step="0"] form,
#imo-demo .imo-card[data-step="1"] .imo-s0,
#imo-demo .imo-card[data-step="2"] .imo-s0,
#imo-demo .imo-card[data-step="1"] .imo-s2,
#imo-demo .imo-card[data-step="2"] .imo-s1,
#imo-demo .imo-card[data-step="1"] .mktoForm .imo-s2,
#imo-demo .imo-card[data-step="2"] .mktoForm .imo-s1,
#imo-demo .imo-card[data-step="1"] .mktoForm .mktoButtonRow {
  display: none !important;
}
#imo-demo .imo-card:not([data-step="0"]):not([data-step="1"]):not([data-step="2"]) .imo-head,
#imo-demo .imo-card:not([data-step="0"]):not([data-step="1"]):not([data-step="2"]) .imo-foot,
#imo-demo .imo-card:not([data-step="0"]):not([data-step="1"]):not([data-step="2"]) .imo-chiprow,
#imo-demo .imo-card:not([data-step="0"]):not([data-step="1"]):not([data-step="2"]) .imo-prog {
  display: none;
}
#imo-demo .imo-card[data-step="kv"] .imo-prog {
  display: none;
}
#imo-demo .imo-loading {
  display: none;
  padding: 40px 0;
  text-align: center;
  color: var(--muted);
  font-weight: 600;
}
#imo-demo .imo-card[data-step="loading"] .imo-loading,
#imo-demo .imo-card[data-step="error"] .imo-loading {
  display: block;
}
#imo-demo .imo-card[data-step="loading"] form,
#imo-demo .imo-card[data-step="done"] form,
#imo-demo .imo-card[data-step="error"] form {
  display: none !important;
}
#imo-demo .imo-hide,
#imo-demo .imo-card .mktoForm .imo-hide {
  display: none !important;
}

/* ---------- path tiles ---------- */
#imo-demo .imo-tiles {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 12px;
  margin-block-end: 14px;
}
#imo-demo .imo-tile {
  all: unset;
  box-sizing: border-box;
  position: relative;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 5px;
  border: 1.5px solid var(--line);
  border-radius: 14px;
  padding: 16px 14px;
  background: #fff;
  color: var(--plum);
  transition: border-color .15s,background-color .15s,box-shadow .15s;
}
#imo-demo .imo-tile svg {
  inline-size: 30px;
  block-size: 30px;
  margin-block-end: 4px;
}
#imo-demo .imo-tile b {
  font-size: 16px;
  color: var(--ink);
}
#imo-demo .imo-tile small {
  font-size: 13px;
  line-height: 1.4;
  color: var(--muted);
}
#imo-demo .imo-tile:hover {
  border-color: var(--green-d);
}
#imo-demo .imo-tile:focus-visible {
  outline: 3px solid rgba(65,240,150,.7);
  outline-offset: 2px;
}
#imo-demo .imo-tile[aria-pressed="true"] {
  border-color: var(--green-d);
  background: var(--green-tint);
  box-shadow: inset 0 0 0 1.5px var(--green-d);
}
#imo-demo .imo-tile[aria-pressed="true"]::after {
  content: "✓";
  position: absolute;
  inset-block-start: 10px;
  inset-inline-end: 10px;
  display: grid;
  place-items: center;
  inline-size: 22px;
  block-size: 22px;
  border-radius: 50%;
  background: var(--green);
  color: var(--green-ink);
  font-size: 13px;
  font-weight: 800;
}
#imo-demo .imo-tiles {
  position: relative;
}
#imo-demo .imo-tile-error {
  color: var(--error);
  font-size: 12px;
  font-weight: 600;
  margin: -4px 0 12px;
}
#imo-demo .imo-card.imo-no-tiles .imo-tiles,
#imo-demo .imo-card.imo-no-tiles .imo-chip {
  display: none;
}

/* ---------- Marketo form reset + layout ---------- */
#imo-demo .imo-card .mktoForm {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  gap: 10px;
  width: auto !important;
  max-width: none !important;
  inline-size: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  font-family: var(--font) !important;
  font-size: 15px !important;
  color: var(--ink) !important;
}
#imo-demo .imo-card .mktoForm * {
  font-family: var(--font) !important;
}
#imo-demo .imo-card .mktoForm .mktoFormRow {
  display: contents !important;
}
#imo-demo .imo-card .mktoForm .mktoClear,
#imo-demo .imo-card .mktoForm .mktoOffset,
#imo-demo .imo-card .mktoForm .mktoGutter,
#imo-demo .imo-card .mktoForm .mktoPlaceholder,
#imo-demo .imo-card .mktoForm .mktoInstruction,
#imo-demo .imo-card .mktoForm .mktoAsterix {
  display: none !important;
}
#imo-demo .imo-card .mktoForm .mktoFormCol {
  grid-column: 1 / -1;
  float: none !important;
  position: static !important;
  margin: 0 !important;
  padding: 0 !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  inline-size: auto !important;
  min-inline-size: 0;
}
#imo-demo .imo-card .mktoForm .mktoFormCol.imo-left {
  grid-column: 1;
}
#imo-demo .imo-card .mktoForm .mktoFormCol.imo-right {
  grid-column: 2;
}
#imo-demo .imo-card .mktoForm .imo-notice {
  grid-column: 1 / -1;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 11px !important;
  line-height: 1.5 !important;
  color: var(--muted) !important;
  letter-spacing: .02em;
}
#imo-demo .imo-card .mktoForm .imo-notice * {
  font-size: inherit !important;
  color: inherit !important;
  margin: 0 !important;
  padding: 0 !important;
  inline-size: auto !important;
}
#imo-demo .imo-submit-error {
  grid-column: 1 / -1;
  order: 11;
  color: var(--error);
  font-size: 13px;
  font-weight: 600;
  margin: 0;
}
#imo-demo .imo-o0 {
  order: 0;
}
#imo-demo .imo-o1 {
  order: 1;
}
#imo-demo .imo-o2 {
  order: 2;
}
#imo-demo .imo-o3 {
  order: 3;
}
#imo-demo .imo-o4 {
  order: 4;
}
#imo-demo .imo-o5 {
  order: 5;
}
#imo-demo .imo-o6 {
  order: 6;
}
#imo-demo .imo-o7 {
  order: 7;
}
#imo-demo .imo-o8 {
  order: 8;
}
#imo-demo .imo-o9 {
  order: 9;
}
#imo-demo .imo-o10 {
  order: 10;
}

/* ---------- field box with label inside ---------- */
#imo-demo .imo-card .mktoForm .mktoFieldWrap {
  position: relative;
  display: block;
  float: none !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  height: auto !important;
  inline-size: auto !important;
  margin: 0 !important;
  border: 1.5px solid var(--line);
  border-radius: 10px;
  background: #fff;
  padding: 8px 13px 6px !important;
  min-block-size: 58px;
  transition: border-color .15s,box-shadow .15s;
}
#imo-demo .imo-card .mktoForm .mktoFieldWrap:focus-within {
  border-color: var(--green-d);
  box-shadow: 0 0 0 3px rgba(65,240,150,.35);
}
#imo-demo .imo-card .mktoForm .mktoFieldWrap:has(.mktoInvalid) {
  border-color: var(--error);
}

/* ---------- Completed fields: light purple fill, purple border and label, small check ---------- */
#imo-demo .imo-card .mktoForm .mktoFormCol.imo-filled .mktoFieldWrap {
  border-color: #b48fd8;
  background: var(--mist);
}
#imo-demo .imo-card .mktoForm .mktoFormCol.imo-filled label.mktoLabel {
  color: var(--plum) !important;
}
#imo-demo .imo-card .mktoForm .mktoFormCol.imo-filled .mktoFieldWrap:focus-within {
  border-color: var(--green-d);
}
#imo-demo .imo-card .mktoForm .mktoFormCol.imo-filled .mktoFieldWrap:has(.mktoInvalid) {
  border-color: var(--error);
  background: #fff;
}

/* ---------- EHR follows the path card, so it stays green when filled ---------- */
#imo-demo .imo-card .mktoForm .mktoFormCol.imo-role-ehr.imo-filled .mktoFieldWrap {
  border-color: var(--green-d);
  background: var(--green-tint);
}
#imo-demo .imo-card .mktoForm .mktoFormCol.imo-role-ehr.imo-filled label.mktoLabel {
  color: var(--muted) !important;
}
#imo-demo .imo-card .mktoForm label.mktoLabel {
  display: block !important;
  float: none !important;
  position: static !important;
  width: auto !important;
  height: auto !important;
  inline-size: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--muted) !important;
  line-height: 1.3 !important;
  min-block-size: 0 !important;
}
#imo-demo .imo-card .mktoForm .mktoRequiredField label.mktoLabel::after {
  content: " *";
  color: var(--violet);
}
#imo-demo .imo-card .mktoForm input.mktoField:not([type=checkbox]):not([type=radio]),
#imo-demo .imo-card .mktoForm select.mktoField,
#imo-demo .imo-card .mktoForm textarea.mktoField {
  display: block;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 30px !important;
  min-height: 0 !important;
  max-height: none !important;
  inline-size: 100% !important;
  border: 0 !important;
  border-radius: 0 !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  outline: none;
  padding: 2px 0 0 !important;
  margin: 0 !important;
  float: none !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
  color: var(--ink) !important;
  -webkit-appearance: none;
  appearance: none;
}
#imo-demo .imo-card .mktoForm textarea.mktoField {
  height: auto !important;
  min-height: 70px !important;
  resize: vertical;
}
#imo-demo .imo-card .mktoForm select.mktoField {
  appearance: none;
  -webkit-appearance: none;
  padding: 2px 26px 0 0 !important;
  cursor: pointer;
}

/* ---------- dropdown list: padding where the browser allows it, full styling in browsers with customizable selects (Chrome/Edge 135+) ---------- */
#imo-demo .imo-card .mktoForm select.mktoField option {
  padding: 10px 14px;
  font-size: 15px;
  color: var(--ink);
  background: #fff;
}
@supports (appearance: base-select) {
  #imo-demo .imo-card .mktoForm select.mktoField,
#imo-demo .imo-card .mktoForm select.mktoField::picker(select) {
    appearance: base-select;
  }
  #imo-demo .imo-card .mktoForm select.mktoField::picker-icon {
    display: none;
  }
  #imo-demo .imo-card .mktoForm select.mktoField::picker(select) {
    border: 1.5px solid var(--line);
    border-radius: 12px;
    background: #fff;
    padding: 6px;
    margin-block-start: 6px;
    box-shadow: 0 14px 34px rgba(70,2,126,.18);
    max-block-size: min(320px,60vh);
    overflow-y: auto;
    font-family: var(--font);
  }
  #imo-demo .imo-card .mktoForm select.mktoField option {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border-radius: 8px;
    font-size: 15px;
    line-height: 1.35;
    color: var(--ink);
    background: transparent;
    cursor: pointer;
  }
  #imo-demo .imo-card .mktoForm select.mktoField option:hover,
#imo-demo .imo-card .mktoForm select.mktoField option:focus-visible {
    background: var(--green-tint);
    color: var(--ink);
    outline: none;
  }
  #imo-demo .imo-card .mktoForm select.mktoField option:checked {
    background: var(--green-tint);
    color: var(--ink);
    font-weight: 700;
  }
  #imo-demo .imo-card .mktoForm select.mktoField option::checkmark {
    color: var(--green-d);
    order: 1;
    margin-inline-start: auto;
  }
  #imo-demo .imo-card .mktoForm select.mktoField option[value=""] {
    color: var(--muted);
  }
}
#imo-demo .imo-card .mktoForm .imo-select .mktoFieldWrap::after {
  content: "";
  position: absolute;
  inset-inline-end: 16px;
  inset-block-start: 50%;
  inline-size: 8px;
  block-size: 8px;
  border-inline-end: 2px solid var(--plum);
  border-block-end: 2px solid var(--plum);
  transform: translateY(-10%) rotate(45deg);
  pointer-events: none;
}
#imo-demo .imo-card .mktoForm .imo-role-ehr .mktoFieldWrap {
  background: var(--green-tint);
  border-color: var(--green-d);
  animation: imo-pop .25s ease-out;
}
@keyframes imo-pop {from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce) {
  #imo-demo .imo-card .mktoForm .imo-role-ehr .mktoFieldWrap {
    animation: none;
  }
}

/* ---------- checkbox (consent) + rich text: no box ---------- */
#imo-demo .imo-card .mktoForm .imo-check .mktoFieldWrap,
#imo-demo .imo-card .mktoForm .imo-html .mktoFieldWrap {
  border: 0;
  background: none;
  padding: 0 !important;
  min-block-size: 0;
  box-shadow: none;
}
#imo-demo .imo-card .mktoForm .imo-check {
  margin-block-start: 6px !important;
}
#imo-demo .imo-card .mktoForm .imo-check label.mktoLabel {
  font-size: 12.5px !important;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  margin-block-end: 4px !important;
}
#imo-demo .imo-card .mktoForm .imo-check.imo-empty-label label.mktoLabel {
  display: none !important;
}
#imo-demo .imo-card .mktoForm .imo-check .mktoRequiredField label.mktoLabel::after {
  content: none;
}
#imo-demo .imo-card .mktoForm .imo-check .mktoFieldWrap {
  display: grid !important;
  grid-template-columns: 18px 1fr;
  column-gap: 10px;
  align-items: start;
}
#imo-demo .imo-card .mktoForm .imo-check .mktoFieldWrap > label.mktoLabel {
  grid-column: 2;
  grid-row: 1;
  margin: 0 !important;
}
#imo-demo .imo-card .mktoForm .imo-check .mktoFieldWrap > .mktoLogicalField {
  grid-column: 1;
  grid-row: 1;
  display: block !important;
}
#imo-demo .imo-card .mktoForm .imo-check .mktoFieldWrap > .mktoLogicalField label:empty {
  display: none !important;
}
#imo-demo .imo-card .mktoForm .imo-check .mktoFieldWrap > .mktoError {
  grid-column: 1 / -1;
}
#imo-demo .imo-card .mktoForm .mktoCheckboxList,
#imo-demo .imo-card .mktoForm .mktoRadioList {
  display: grid;
  grid-template-columns: 18px 1fr;
  gap: 8px 10px;
  align-items: start;
  inline-size: auto !important;
  float: none !important;
  padding: 0 !important;
}
#imo-demo .imo-card .mktoForm .mktoCheckboxList input,
#imo-demo .imo-card .mktoForm .mktoRadioList input {
  inline-size: 16px;
  block-size: 16px;
  margin: 2px 0 0 !important;
  padding: 0 !important;
  float: none !important;
  accent-color: var(--green-d);
}
#imo-demo .imo-card .mktoForm .mktoCheckboxList label,
#imo-demo .imo-card .mktoForm .mktoRadioList label {
  float: none !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 12.5px !important;
  line-height: 1.5 !important;
  color: var(--muted) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-weight: 500 !important;
}

/* ---------- "What can we help you with?" as multi-select chips ---------- */
#imo-demo .imo-card .mktoForm .imo-chips .mktoFieldWrap {
  border: 0 !important;
  background: none !important;
  padding: 0 !important;
  min-block-size: 0 !important;
  box-shadow: none !important;
}
#imo-demo .imo-card .mktoForm .imo-chips label.mktoLabel {
  font-size: 12px !important;
  margin: 6px 0 10px !important;
}
#imo-demo .imo-card .mktoForm .imo-chips .mktoCheckboxList {
  position: relative;
  display: grid !important;
  grid-template-columns: repeat(auto-fill,minmax(200px,1fr));
  gap: 8px;
  width: auto !important;
  float: none !important;
}
#imo-demo .imo-card .mktoForm .imo-chips .mktoCheckboxList input {
  position: absolute !important;
  opacity: 0;
  inline-size: 1px !important;
  block-size: 1px !important;
  margin: 0 !important;
  pointer-events: none;
}
#imo-demo .imo-card .mktoForm .imo-chips .mktoCheckboxList label {
  display: flex !important;
  align-items: center;
  gap: 8px;
  min-block-size: 44px;
  border: 1.5px solid var(--line);
  border-radius: 14px;
  padding: 8px 12px 8px 10px !important;
  background: #fff;
  cursor: pointer;
  width: auto !important;
  min-width: 0 !important;
  justify-self: stretch;
  box-sizing: border-box;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--ink) !important;
  line-height: 1.3 !important;
  transition: border-color .15s,background-color .15s;
}
#imo-demo .imo-card .mktoForm .imo-chips .mktoCheckboxList label::before {
  content: "";
  flex: none;
  display: grid;
  place-items: center;
  inline-size: 16px;
  block-size: 16px;
  border: 1.5px solid #b9a7cc;
  border-radius: 4px;
  background: #fff;
  font-size: 11px;
  font-weight: 800;
  color: var(--green-ink);
}
#imo-demo .imo-card .mktoForm .imo-chips .mktoCheckboxList label:hover {
  border-color: #b48fd8;
}
#imo-demo .imo-card .mktoForm .imo-chips .mktoCheckboxList input:checked + label {
  border-color: var(--plum);
  background: var(--mist);
  color: var(--plum) !important;
  box-shadow: inset 0 0 0 1px var(--plum);
}
#imo-demo .imo-card .mktoForm .imo-chips .mktoCheckboxList input:checked + label::before {
  content: "✓";
  background: var(--plum);
  border-color: var(--plum);
  color: #fff;
}
#imo-demo .imo-card .mktoForm .imo-chips .mktoCheckboxList input:focus-visible + label {
  outline: 3px solid rgba(109,9,196,.35);
  outline-offset: 2px;
}
#imo-demo .imo-all {
  all: unset;
  cursor: pointer;
  display: inline-block;
  margin: 10px 0 0;
  font-size: 13px;
  font-weight: 700;
  color: var(--violet);
  text-decoration: underline;
  text-underline-offset: 3px;
}
#imo-demo .imo-card .mktoForm .imo-chips .mktoCheckboxList label.imo-opt-hide,
#imo-demo .imo-card .mktoForm .imo-chips .mktoCheckboxList input.imo-opt-hide {
  display: none !important;
}
#imo-demo .imo-card .mktoForm .imo-chips .mktoCheckboxList label .imo-opt-txt {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
  min-width: 0;
}
#imo-demo .imo-card .mktoForm .imo-chips .mktoCheckboxList label {
  font-size: 14px !important;
  line-height: 1.25 !important;
  white-space: normal;
  text-wrap: balance;
}
#imo-demo .imo-card .mktoForm .imo-chips .mktoCheckboxList label * {
  font-size: inherit !important;
  line-height: inherit !important;
}
#imo-demo .imo-card .mktoForm .imo-chips .mktoCheckboxList label .imo-opt-sub {
  font-size: 11px !important;
  line-height: 1.3 !important;
  font-weight: 600;
  color: var(--muted);
  letter-spacing: .02em;
}
#imo-demo .imo-card .mktoForm .imo-chips .mktoCheckboxList input:checked + label .imo-opt-sub {
  color: var(--plum);
  opacity: .8;
}
@media (max-width:400px) {
  #imo-demo .imo-card .mktoForm .imo-chips .mktoCheckboxList {
    grid-template-columns: 1fr;
  }
}
#imo-demo .imo-card .mktoForm .imo-chips .mktoCheckboxList .mktoError,
#imo-demo .imo-card .mktoForm .imo-chips .mktoFieldWrap > .mktoError {
  display: none !important;
}
#imo-demo .imo-card .mktoForm .imo-chips .mktoCheckboxList label.imo-on {
  border-color: var(--plum);
  background: var(--mist);
  color: var(--plum) !important;
  box-shadow: inset 0 0 0 1px var(--plum);
}
#imo-demo .imo-card .mktoForm .imo-chips .mktoCheckboxList label.imo-on::before {
  content: "✓";
  background: var(--plum);
  border-color: var(--plum);
  color: #fff;
}
#imo-demo .imo-chip-err {
  margin: 8px 0 0;
  color: var(--error);
  font-size: 12px;
  font-weight: 600;
}
#imo-demo .imo-chip-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  margin: 10px 0 0;
}
#imo-demo .imo-chip-actions .imo-all {
  margin: 0;
}
#imo-demo .imo-all[hidden] {
  display: none !important;
}
#imo-demo .imo-all:focus-visible {
  outline: 2px solid var(--violet);
  outline-offset: 2px;
  border-radius: 4px;
}

/* ---------- Preferred date and time picker (SM_Meeting Date) ---------- */
#imo-demo .imo-card .mktoForm .imo-dt-native {
  width: 1px !important;
  height: 1px !important;
  min-height: 0 !important;
}
#imo-demo .imo-dt-native {
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none !important;
  inline-size: 1px !important;
  block-size: 1px !important;
  overflow: hidden;
}
#imo-demo .imo-card .mktoForm .imo-dtcol .mktoFieldWrap {
  border: 0 !important;
  background: none !important;
  padding: 0 !important;
  min-block-size: 0 !important;
  box-shadow: none !important;
}
#imo-demo .imo-card .mktoForm .imo-dtcol label.mktoLabel {
  margin: 6px 0 10px !important;
}
#imo-demo .imo-dt {
  display: grid;
  grid-template-columns: minmax(0,1.15fr) minmax(0,1fr);
  gap: 12px;
}
#imo-demo .imo-cal,
#imo-demo .imo-times {
  border: 1.5px solid var(--line);
  border-radius: 12px;
  padding: 12px;
  background: #fff;
  min-inline-size: 0;
}
#imo-demo .imo-cal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-block-end: 8px;
  font-weight: 700;
  font-size: 14px;
  color: var(--ink);
}
#imo-demo .imo-cal-head button {
  all: unset;
  cursor: pointer;
  inline-size: 30px;
  block-size: 30px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  color: var(--plum);
  font-size: 18px;
  font-weight: 700;
}
#imo-demo .imo-cal-head button:hover:not(:disabled) {
  background: var(--mist);
}
#imo-demo .imo-cal-head button:disabled {
  opacity: .25;
  cursor: default;
}
#imo-demo .imo-cal-grid {
  display: grid;
  grid-template-columns: repeat(7,minmax(0,1fr));
  gap: 3px;
  text-align: center;
}
#imo-demo .imo-cal-grid > span {
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  padding: 4px 0;
}
#imo-demo .imo-day {
  all: unset;
  box-sizing: border-box;
  cursor: pointer;
  block-size: 34px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
  display: grid;
  place-items: center;
}
#imo-demo .imo-day:hover:not(:disabled) {
  background: var(--mist);
}
#imo-demo .imo-day:disabled {
  color: #cfc6d9;
  cursor: default;
  font-weight: 400;
}
#imo-demo .imo-day.imo-today {
  box-shadow: inset 0 0 0 1.5px var(--line);
}
#imo-demo .imo-day[aria-pressed="true"] {
  background: var(--plum);
  color: #fff;
  box-shadow: none;
}
#imo-demo .imo-times-h {
  margin: 0 0 10px;
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.4;
}
#imo-demo .imo-times-h small {
  display: block;
  font-weight: 500;
  color: var(--muted);
  font-size: 12px;
}
#imo-demo .imo-slots {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 6px;
  max-block-size: 250px;
  overflow-y: auto;
  padding: 2px;
}
#imo-demo .imo-slot {
  all: unset;
  box-sizing: border-box;
  cursor: pointer;
  text-align: center;
  border: 1.5px solid var(--line);
  border-radius: 8px;
  padding: 8px 4px;
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
}
#imo-demo .imo-slot:hover {
  border-color: #b48fd8;
}
#imo-demo .imo-slot[aria-pressed="true"] {
  background: var(--plum);
  border-color: var(--plum);
  color: #fff;
}
#imo-demo .imo-day:focus-visible,
#imo-demo .imo-slot:focus-visible,
#imo-demo .imo-cal-head button:focus-visible {
  outline: 3px solid rgba(109,9,196,.35);
  outline-offset: 1px;
}
#imo-demo .imo-times-empty {
  margin: 0;
  font-size: 13px;
  color: var(--muted);
}
#imo-demo .imo-dt-sum {
  grid-column: 1 / -1;
  margin: 2px 0 0;
  font-size: 13px;
  font-weight: 700;
  color: var(--plum);
}
#imo-demo .imo-dt-sum:empty {
  display: none;
}
#imo-demo .imo-cal-grid.imo-capped .imo-day:not([aria-pressed="true"]):not(:disabled) {
  opacity: .4;
}
#imo-demo .imo-dt-sum.imo-warn {
  color: var(--error);
}
#imo-demo .imo-dt-note {
  grid-column: 1 / -1;
  margin: 0;
  font-size: 13px;
  color: var(--muted);
}
#imo-demo .imo-dt-note:empty {
  display: none;
}
#imo-demo .imo-card .mktoForm .imo-dtcol {
  grid-column: 1 / -1 !important;
}
#imo-demo .imo-card .mktoForm .imo-dtcol .mktoFieldWrap {
  display: block !important;
  inline-size: 100% !important;
}
#imo-demo .imo-card .mktoForm .imo-dtcol label.mktoLabel {
  text-align: center;
}
@media (min-width:761px) {
  #imo-demo .imo-card[data-step="2"] .mktoForm {
    grid-template-columns: minmax(0,1fr) minmax(0,1fr) minmax(310px,350px);
    grid-template-rows: auto auto auto auto 1fr;
    gap: 10px;
  }
  #imo-demo .imo-card[data-step="2"] .mktoForm .mktoFormCol.imo-role-email {
    grid-column: 1 / 3;
  }
  #imo-demo .imo-card[data-step="2"] .mktoForm .mktoFormCol.imo-role-country:not(.imo-left) {
    grid-column: 1 / 3;
  }
  #imo-demo .imo-card[data-step="2"] .mktoForm .imo-dtcol {
    grid-column: 3 !important;
    grid-row: 1 / 6;
    align-self: start;
    margin-inline-start: 14px !important;
    margin-block-start: -44px !important;
  }

  /* ---------- consent on the left, button beside it under State, both next to the bottom of the calendar ---------- */
  #imo-demo .imo-card[data-step="2"] .mktoForm .imo-check {
    grid-column: 1 !important;
    grid-row: 5;
    align-self: start;
    margin-block-start: 6px !important;
  }
  #imo-demo .imo-card[data-step="2"] .mktoForm .mktoButtonRow {
    grid-column: 2 !important;
    grid-row: 5;
    align-self: start;
    margin-block-start: 22px !important;
    gap: 10px;
  }
  #imo-demo .imo-card[data-step="2"] .mktoForm .mktoButtonRow .mktoButtonWrap {
    align-self: stretch;
  }
  #imo-demo .imo-card[data-step="2"] .mktoForm .mktoButtonRow .mktoButton {
    inline-size: 100% !important;
  }
  #imo-demo .imo-card[data-step="2"] .imo-dt.imo-dt-day .imo-cal {
    max-inline-size: none;
    padding: 16px;
  }
  #imo-demo .imo-card[data-step="2"] .imo-cal-grid {
    gap: 5px;
  }
  #imo-demo .imo-card[data-step="2"] .imo-cal-head {
    font-size: 15px;
    margin-block-end: 10px;
  }
  #imo-demo .imo-card[data-step="2"] .imo-day {
    block-size: 38px;
    font-size: 15px;
  }
  #imo-demo .imo-card[data-step="2"] .imo-dt-sum,
#imo-demo .imo-card[data-step="2"] .imo-dt-note {
    font-size: 13px;
  }
}

/* ---------- "Which days work best?" label: a bit more presence than the small field labels ---------- */
#imo-demo .imo-card .mktoForm .imo-dtcol label.mktoLabel {
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: .04em !important;
  color: var(--plum) !important;
  margin: 0 0 10px !important;
}
@media (min-width:761px) {
  #imo-demo .imo-card[data-step="2"] .mktoForm .imo-dtcol label.mktoLabel {
    text-align: start;
  }
}
#imo-demo .imo-dt.imo-dt-day {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  inline-size: 100%;
}
#imo-demo .imo-dt.imo-dt-day .imo-cal {
  inline-size: 100%;
  max-inline-size: 380px;
  margin-inline: auto;
}
#imo-demo .imo-dt.imo-dt-day .imo-dt-sum,
#imo-demo .imo-dt.imo-dt-day .imo-dt-note {
  text-align: center;
  inline-size: 100%;
}
#imo-demo .imo-times[hidden] {
  display: none !important;
}
@media (max-width:560px) {
  #imo-demo .imo-dt {
    grid-template-columns: 1fr;
  }
}
#imo-demo .imo-card .mktoForm a {
  color: var(--violet) !important;
  font-weight: 700;
  text-decoration: none;
}
#imo-demo .imo-card .mktoForm a:hover {
  text-decoration: underline;
}
#imo-demo .imo-card .mktoForm .mktoHtmlText {
  inline-size: auto !important;
  padding: 0 !important;
  font-size: 11px;
  line-height: 1.5;
  color: var(--muted);
}

/* ---------- errors (inline, under the field) ---------- */
#imo-demo .imo-card .mktoForm .mktoError {
  position: static !important;
  inset: auto !important;
  display: block;
  margin-block-start: 3px;
  z-index: auto !important;
}
#imo-demo .imo-card .mktoForm .mktoErrorArrowWrap {
  display: none !important;
}
#imo-demo .imo-card .mktoForm .mktoErrorMsg {
  display: block;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
  text-shadow: none !important;
  max-inline-size: none !important;
  padding: 0 !important;
  margin: 0 !important;
  color: var(--error) !important;
  font-size: 12px !important;
  font-weight: 600;
  line-height: 1.4;
}
#imo-demo .imo-card .mktoForm .mktoErrorMsg .mktoErrorDetail {
  display: inline;
  font-weight: 500;
}

/* ---------- buttons ---------- */
#imo-demo .imo-btn,
#imo-demo .imo-card .mktoForm .mktoButton {
  all: unset;
  box-sizing: border-box;
  cursor: pointer;
  display: inline-block;
  text-align: center;
  background: var(--green) !important;
  color: var(--green-ink) !important;
  font-family: var(--font) !important;
  font-weight: 700 !important;
  letter-spacing: .06em;
  font-size: 16px !important;
  text-transform: uppercase;
  border-radius: 999px !important;
  padding: 16px 32px !important;
  border: 0 !important;
  box-shadow: none !important;
  transition: background-color .12s;
}
#imo-demo .imo-btn:hover,
#imo-demo .imo-card .mktoForm .mktoButton:hover {
  background: #A0F7CA !important;
  box-shadow: none !important;
}
#imo-demo .imo-btn:focus-visible,
#imo-demo .imo-card .mktoForm .mktoButton:focus-visible {
  outline: 3px solid var(--plum);
  outline-offset: 3px;
}
#imo-demo .imo-card .mktoForm .mktoButton[disabled] {
  opacity: .7;
  cursor: default;
  transform: none;
}
#imo-demo .imo-card .mktoForm .mktoButtonRow {
  grid-column: 1 / -1;
  display: flex !important;
  flex-direction: column;
  align-items: stretch;
  gap: 14px;
  margin-block-start: 14px !important;
  padding: 0 !important;
}
#imo-demo .imo-card .mktoForm .mktoButtonRow .mktoButtonWrap {
  order: 1;
  display: block;
  align-self: center;
  inline-size: auto;
}
#imo-demo .imo-card .mktoForm .mktoButtonRow .mktoButton {
  display: block !important;
  inline-size: auto !important;
  min-inline-size: 0;
}
#imo-demo .imo-card .mktoForm .mktoButtonRow [data-imo-back] {
  display: none !important;
}
#imo-demo .imo-card .mktoForm .mktoButtonWrap {
  margin: 0 !important;
  padding: 0 !important;
}
#imo-demo .imo-link {
  all: unset;
  cursor: pointer;
  color: var(--violet);
  font-weight: 700;
  font-size: 14px;
}
#imo-demo .imo-link:focus-visible {
  outline: 2px solid var(--violet);
  outline-offset: 2px;
  border-radius: 4px;
}
#imo-demo .imo-foot {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  margin-block-start: 20px;
}
#imo-demo .imo-foot .imo-btn {
  display: block;
  align-self: center;
  inline-size: auto;
  min-inline-size: 0;
}
#imo-demo .imo-foot small {
  color: var(--muted);
  font-size: 13px;
  text-align: center;
}

/* ---------- thank you ---------- */
#imo-demo .imo-thanks {
  text-align: center;
  padding: 24px 8px 12px;
}
#imo-demo .imo-thanks .ico {
  display: inline-grid;
  place-items: center;
  inline-size: 64px;
  block-size: 64px;
  border-radius: 50%;
  background: var(--green);
  margin-block-end: 16px;
}
#imo-demo .imo-thanks h2 {
  font-size: 28px;
  font-weight: 600;
  margin: 0 0 10px;
}
#imo-demo .imo-thanks p {
  font-size: 17px;
  line-height: 1.55;
  color: var(--ink2);
  margin: 0 auto;
  max-inline-size: 440px;
}
#imo-demo #imoDebug {
  margin: 16px 0 0;
  padding: 14px 16px;
  background: #150826;
  color: #d8ffe9;
  border-radius: 10px;
  font: 12px/1.5 ui-monospace,Consolas,monospace;
  white-space: pre-wrap;
  word-break: break-word;
  max-block-size: 420px;
  overflow: auto;
}
@media (max-width:560px) {
  #imo-demo .imo-tiles {
    grid-template-columns: 1fr;
  }
  #imo-demo .imo-tile {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 12px;
    padding: 12px 14px;
  }
  #imo-demo .imo-tile svg {
    margin: 0;
    inline-size: 26px;
    block-size: 26px;
  }
  #imo-demo .imo-tile small {
    flex-basis: 100%;
  }
  #imo-demo .imo-card .mktoForm .mktoFormCol.imo-left,
#imo-demo .imo-card .mktoForm .mktoFormCol.imo-right {
    grid-column: 1 / -1;
  }
  #imo-demo .imo-foot .imo-btn,
#imo-demo .imo-card .mktoForm .mktoButtonRow .mktoButtonWrap {
    align-self: stretch;
  }
  #imo-demo .imo-foot .imo-btn,
#imo-demo .imo-card .mktoForm .mktoButtonRow .mktoButton {
    inline-size: 100% !important;
    min-inline-size: 0;
  }
}
