:root {
  --blue:        #23388B;
  --cta:         #2742AB;
  --grey:        #F2F2F7;
  --coral:       #F15D6F;
  --coral-light: #d94458;
  --coral-soft:  rgba(241, 93, 111, .12);
  --success:     #159969;
  --success-soft:rgba(21, 153, 105, .12);
  --inverse-text:#fff;
  --line:        rgba(35, 56, 139, .1);
  --line-strong: rgba(35, 56, 139, .18);
  --muted:       rgba(35, 56, 139, .5);
  --font-sans:   'Onest', ui-sans-serif, system-ui, sans-serif;
  --ease-out:    cubic-bezier(0.165, 0.84, 0.44, 1);
  --t-base:      240ms;
}

*, *::before, *::after { box-sizing: border-box; }
html, body {
  margin: 0;
  min-height: 100%;
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  /* `clip` keeps horizontal overflow trimmed but, unlike `hidden`, does NOT
     create a scroll container — that's important because a scroll container
     on <body> silently breaks GSAP ScrollTrigger pins (pin spacer is added
     but the pinned element never engages, causing section content to overlap). */
  overflow-x: clip;
  background: #23388B;
  color: var(--blue);
}
a { color: inherit; text-decoration: none; }

/* ── A11y: skip link + focus rings ────────────────────────── */
.skip-link {
  position: absolute; top: -100px; left: 16px;
  background: #fff; color: var(--blue);
  padding: 10px 16px; border-radius: 12px;
  font-weight: 700; z-index: 9999;
  transition: top var(--t-base) var(--ease-out);
}
.skip-link:focus { top: 16px; }

:focus { outline: none; }
:focus-visible {
  outline: 2px solid var(--coral);
  outline-offset: 3px;
  border-radius: 4px;
}
.ssh__cta:focus-visible,
.home-primary:focus-visible,
.home-secondary:focus-visible,
.cta-btn:focus-visible,
.pcard__cta:focus-visible {
  outline-offset: 4px;
}

/* ── Header pill ─────────────────────────────────── */

.ssh {
  position: fixed;
  top: 40px;
  left: 50%;
  transform: translateX(-50%);
  width: 860px;
  max-width: calc(100vw - 32px);
  height: 76px;
  z-index: 100;
  background: #fff;
  border: 1px solid var(--line-strong);
  border-radius: 24px;
  box-shadow: 0 4px 40px rgba(35, 56, 139, .12);
  overflow: hidden;
  will-change: width, height;
}
.ssh__bar {
  height: 76px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 0 14px;
}

/* Menu button */
.ssh__menu {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  height: 48px;
  padding: 0 20px 0 16px;
  background: var(--grey);
  border: 1px solid rgba(35, 56, 139, .08);
  border-radius: 16px;
  color: var(--blue);
  font: 500 16px/1 var(--font-sans);
  letter-spacing: -.005em;
  transition:
    background var(--t-base) var(--ease-out),
    border-color var(--t-base) var(--ease-out),
    transform var(--t-base) var(--ease-out);
  cursor: pointer;
}
.ssh__menu:hover  { background: #e8e8ef; border-color: rgba(35, 56, 139, .15); }
.ssh__menu:active { transform: scale(.98); }

/* Burger */
.burger { width: 18px; height: 14px; position: relative; display: inline-block; }
.burger span {
  position: absolute;
  left: 0; right: 0;
  height: 2px;
  background: currentColor;
  border-radius: 2px;
  transform-origin: 50% 50%;
  will-change: transform, top;
}
.burger span:nth-child(1) { top: 3px; }
.burger span:nth-child(2) { top: 9px; }

/* Brand */
.ssh__brand {
  justify-self: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  width: 120px;
}
.ssh__brand-img { height: 46px; width: auto; display: block; }

/* CTA */
.ssh__cta {
  justify-self: end;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 26px;
  background: var(--cta);
  border-radius: 16px;
  font: 700 16px/1 var(--font-sans);
  color: #fff;
  position: relative;
  overflow: hidden;
  transition: transform var(--t-base) var(--ease-out);
  will-change: transform;
}
.ssh__cta:hover { transform: scale(1.035); }

/* btn-label slide */
.btn-label {
  position: relative;
  display: inline-block;
  overflow: hidden;
  line-height: 1.15;
  z-index: 1;
}
.btn-label > span {
  display: block;
  transition: transform 520ms var(--ease-out);
  will-change: transform;
}
.btn-label::after {
  content: attr(data-label);
  position: absolute;
  top: 128%; left: 0;
  white-space: nowrap;
  transition: transform 520ms var(--ease-out);
  will-change: transform;
}
:is(.home-primary, .ssh__cta):hover .btn-label > span { transform: translateY(-128%); }
:is(.home-primary, .ssh__cta):hover .btn-label::after  { transform: translateY(-128%); }

/* Circle-reveal hover */
.home-primary::before,
.ssh__cta::before {
  content: '';
  position: absolute;
  left: 50%; top: -155%;
  width: 150px; height: 150px;
  border-radius: 999px;
  transform: translateX(-50%) scale(0);
  pointer-events: none;
  z-index: 0;
}
.home-primary::before { background: #dce5f5; }
.ssh__cta::before     { background: #1c2f8a; }

.home-primary.animating::before,
.ssh__cta.animating::before     { animation: circleIn  .8s cubic-bezier(.22,1,.36,1) forwards; }
.home-primary.animating-out::before,
.ssh__cta.animating-out::before { animation: circleOut .8s cubic-bezier(.22,1,.36,1) forwards; }

@keyframes circleIn  {
  from { transform: translateX(-50%) scale(0); }
  to   { transform: translateX(-50%) scale(6); }
}
@keyframes circleOut {
  from { transform: translateX(-50%) scale(6); }
  to   { transform: translateX(-50%) scale(0); }
}

/* ── Open panel ──────────────────────────────────── */

.ssh__panel {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 32px;
  padding: 16px 32px 20px;
  opacity: 0;
  pointer-events: none;
}
.ssh.is-open .ssh__panel { pointer-events: auto; }

.ssh__nav { display: flex; flex-direction: column; gap: 6px; padding-top: 8px; }

.nav-item { position: relative; display: block; height: 64px; overflow: hidden; }
.nav-item__inner { display: inline-flex; align-items: center; gap: 14px; height: 100%; }
.nav-item__diamond {
  width: 13px; height: 13px; flex: 0 0 13px;
  color: var(--coral);
  opacity: 0; transform: scale(0);
  transition: opacity var(--t-base) var(--ease-out), transform var(--t-base) var(--ease-out);
}
.nav-item__diamond svg { width: 100%; height: 100%; display: block; }
.nav-item__label {
  font-weight: 600; font-size: 44px; line-height: 1;
  color: var(--blue);
  transition: transform var(--t-base) var(--ease-out);
  will-change: transform;
}
.nav-item__index {
  position: absolute; right: 0; top: 50%; transform: translateY(-50%);
  color: var(--muted); font-size: 11px; letter-spacing: .2em;
}
.nav-item:hover .nav-item__diamond,
.nav-item.is-active .nav-item__diamond { opacity: 1; transform: scale(1); }
.nav-item:hover .nav-item__label,
.nav-item.is-active .nav-item__label   { transform: translateX(20px); }

.ssh__aside { padding: 18px 0 0 32px; border-left: 1px solid var(--line); min-height: 280px; }
.aside-eyebrow { font-size: 11px; text-transform: uppercase; letter-spacing: .22em; color: var(--muted); margin-bottom: 16px; }
.aside-stage { position: relative; min-height: 200px; }
.aside-card {
  position: absolute; inset: 0;
  opacity: 0; transform: translateY(8px); pointer-events: none;
  transition: opacity 360ms var(--ease-out), transform 360ms var(--ease-out);
}
.aside-card.is-active { opacity: 1; transform: translateY(0); }
.aside-card h3 { margin: 0 0 12px; font-size: 22px; line-height: 1.2; color: var(--blue); }
.aside-card p  { margin: 0 0 20px; color: var(--muted); line-height: 1.55; }

.meta { display: flex; flex-wrap: wrap; gap: 8px; }
.chip {
  display: inline-flex; align-items: center;
  height: 28px; padding: 0 12px;
  border: 1px solid var(--line); border-radius: 999px;
  color: var(--muted); font-size: 12px;
}
.chip.coral { color: var(--coral-light); border-color: rgba(241,93,111,.36); }

.ssh__foot {
  grid-column: 1 / -1;
  display: flex; justify-content: space-between; align-items: center;
  margin-top: 22px; padding-top: 35px;
  border-top: 1px solid var(--line);
  color: var(--muted); font-size: 12px;
}
.ssh__foot-links { display: flex; gap: 22px; }
.ssh__foot a { transition: color var(--t-base) var(--ease-out); }
.ssh__foot a:hover { color: var(--cta); }

/* ── Home hero layout ────────────────────────────── */

.home-hero {
  --mx: -999px;
  --my: -999px;
  position: relative;
  z-index: 1;
  min-height: calc(100vh - 88px);
  display: flex;
  flex-direction: column;
  background-color: var(--bg, #23388B);
  background-image:
    radial-gradient(ellipse 90% 80% at 62% 42%, transparent 15%, var(--bg, #23388B) 68%),
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 100% 100%, 72px 72px, 72px 72px;
}
/* Brighter grid revealed by a spotlight that follows the cursor (--mx/--my
   are set by JS). Active in both light and dark mode. */
.home-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  display: block;
  background-image:
    linear-gradient(rgba(255,255,255,.11) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.11) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(circle 340px at var(--mx) var(--my), black 0%, transparent 100%);
  mask-image: radial-gradient(circle 340px at var(--mx) var(--my), black 0%, transparent 100%);
}
.home-hero__inner {
  position: relative;
  z-index: 2;
  flex: 1;
  width: min(100%, 1380px);
  margin: 0 auto;
  padding: 200px 20px 80px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(520px, 620px);
  align-items: center;
  justify-content: center;
}
.home-copy { grid-column: 1; display: flex; flex-direction: column; gap: 40px; }

.home-kickers { display: flex; align-items: center; flex-wrap: wrap; }
.kicker-pill {
  display: inline-flex; align-items: center;
  background: #2742AB; color: #fff;
  font-size: 13px; font-weight: 600;
  padding: 6px 16px; border-radius: 999px;
}

.home-title {
  max-width: 700px; margin: 0;
  font-weight: 800;
  font-size: clamp(48px, 5vw, 66px);
  line-height: 1.1; letter-spacing: -.02em;
  color: #fff;
}
.hl {
  display: inline-block;
  line-height: 1.1;
  padding: 2px 14px 6px;
  border-radius: 12px;
  color: #23388B;
  font-weight: 800;
}
.hl--lime {
  background: #DDFCB6;
  rotate: -2.5deg;
}
.hl--pink {
  background: #F8D6EF;
  rotate: -2deg;
}
.hl--coral {
  background: var(--coral);
  color: #fff;
  rotate: -2deg;
}

.home-lead { width: 70%; margin: 0; color: rgba(255,255,255,.7); font-size: 18px; line-height: 1.55; font-weight: 500; }

.home-actions { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.home-primary,
.home-secondary {
  min-height: 56px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 16px;
  font: 600 16px/1 var(--font-sans);
  position: relative; overflow: hidden;
  transition: transform 520ms var(--ease-out);
  will-change: transform;
}
.home-primary  { padding: 16px 32px; background: #fff; color: var(--blue); }
.home-secondary { padding: 16px 32px; gap: 12px; color: #fff; border: 1px solid rgba(255,255,255,.28); }
.home-secondary__icon {
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 13px; transform: translateY(1px);
}
.home-secondary__icon svg { display: block; }
:is(.home-primary, .home-secondary, .ssh__cta):hover { transform: scale(1.035); }

/* ── Hero stage ──────────────────────────────────── */

.hero-stage {
  position: relative;
  width: min(100%, 620px);
  height: 540px;
  justify-self: start;
}

/* Base card */
.ui-c {
  position: absolute;
  border-radius: 20px;
}

/* Floating notification cards — same blue as calendar */
.hero-stage .ui-c:not(.c-cal) {
  background: #2742AB;
  border: 1px solid rgba(255, 255, 255, .14);
  will-change: translate;
  animation: card-float 6.5s ease-in-out infinite alternate;
  box-shadow: 0 1px 0 rgba(255,255,255,.18) inset, 0 8px 28px rgba(20,38,110,.35);
  --text:          #fff;
  --text-rgb:      255, 255, 255;
  --muted:         rgba(255, 255, 255, .6);
  --line:          rgba(255, 255, 255, .15);
  --overlay:       rgba(255, 255, 255, .1);
  --overlay-strong:rgba(255, 255, 255, .2);
  --coral:         #F15D6F;
  --inverse-text:  #fff;
}

.hero-stage .c-patient       { animation-duration: 6.2s; animation-delay:  -.8s; }
.hero-stage .c-notif-arrived { animation-duration: 7.1s; animation-delay: -1.7s; }
.hero-stage .c-payment       { animation-duration: 6.8s; animation-delay: -2.4s; }
.hero-stage .c-stats         { animation-duration: 7.4s; animation-delay: -3.1s; }

@keyframes card-float {
  from { translate: 0 -5px; }
  to   { translate: 0  5px; }
}

/* Main calendar — white */
.c-cal {
  width: 340px;
  padding: 22px 20px 18px;
  left: 50%; top: 50%;
  z-index: 3;
  transform-style: preserve-3d;
  background: #fff;
  border: 1px solid rgba(35, 56, 139, .1);
  box-shadow: 0 28px 80px rgba(20, 38, 110, .22);
  /* scoped variables for blue-on-white children */
  --text:          #23388B;
  --text-rgb:      35, 56, 139;
  --muted:         rgba(35, 56, 139, .5);
  --line:          rgba(35, 56, 139, .1);
  --overlay:       rgba(35, 56, 139, .06);
  --overlay-strong:rgba(35, 56, 139, .12);
  --coral:         #F15D6F;
  --inverse-text:  #fff;
}
.c-cal-inner { width: 100%; }

/* Calendar internals */
.cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.cal-month-label { font-size: 13.5px; font-weight: 700; color: var(--text); letter-spacing: -.01em; }
.cal-nav-btns { display: flex; gap: 4px; }
.cal-nav-btn {
  width: 26px; height: 26px;
  border: 1px solid var(--line); border-radius: 8px;
  background: var(--overlay); color: var(--muted);
  display: flex; align-items: center; justify-content: center; line-height: 1;
}
.cal-wk,
.cal-days { display: grid; grid-template-columns: repeat(7, 1fr); }
.cal-wk { margin-bottom: 6px; }
.cal-wk span {
  text-align: center; font-size: 9.5px; font-weight: 800;
  color: var(--text); letter-spacing: .08em; text-transform: uppercase; padding: 3px 0 6px;
}
.cal-days { gap: 1px; }
.cal-d {
  aspect-ratio: 1; display: flex; align-items: center; justify-content: center;
  font-size: 11.5px; color: var(--text);
  border-radius: 7px; position: relative;
  background: transparent; border: 0; font-family: var(--font-sans);
}
.cal-d.muted { color: rgba(var(--text-rgb), .26); }
.cal-d.has-dot::after {
  content: ""; position: absolute; bottom: 3px; left: 50%; transform: translateX(-50%);
  width: 3.5px; height: 3.5px; border-radius: 50%; background: var(--coral);
}
.cal-d.today { background: var(--coral); color: #fff; font-weight: 700; }
.cal-d.today::after { display: none; }
.cal-days .cal-d:nth-child(7n+6):not(.today),
.cal-days .cal-d:nth-child(7n):not(.today) { color: var(--muted); }

.cal-divider { height: 1px; background: var(--line); margin: 10px 0 8px; }
.cal-appts { display: flex; flex-direction: column; }
.cal-appt {
  display: flex; align-items: center; gap: 9px; padding: 11px 0;
  border-bottom: 1px solid var(--line);
}
.cal-appt:last-child { border-bottom: none; padding-bottom: 0; }
.appt-t { font-size: 10px; font-weight: 700; color: var(--muted); letter-spacing: .05em; min-width: 32px; }
.appt-info { flex: 1; }
.appt-name { display: block; font-size: 11.5px; font-weight: 600; color: var(--text); line-height: 1.2; }
.appt-proc { display: block; font-size: 10.5px; color: var(--muted); margin-top: 1px; }
.appt-av {
  width: 22px; height: 22px; border-radius: 50%;
  background: #F8D6EF;
  display: flex; align-items: center; justify-content: center;
  font-size: 8px; font-weight: 800; color: #7A1F50; flex-shrink: 0;
}
.appt-av.av2 { background: #C4EDE9; color: #0D4A45; }
.appt-av.av3 { background: #DDFCB6; color: #2A4810; }

/* Patient card */
.c-patient { top: 18px; left: 6px; padding: 14px 16px; display: flex; align-items: center; gap: 11px; min-width: 218px; z-index: 4; }
.pt-av {
  width: 38px; height: 38px; border-radius: 11px;
  background: #F8D6EF;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 800; color: #7A1F50; flex-shrink: 0;
}
.pt-name { display: block; font-size: 13px; font-weight: 700; color: var(--text); margin-bottom: 2px; }
.pt-sub  { display: block; font-size: 11px; color: var(--muted); }
.pt-chip {
  margin-left: auto; padding: 3px 9px; border-radius: 999px;
  font-size: 10px; font-weight: 700;
  background: rgba(221,252,182,.15); border: 1px solid rgba(221,252,182,.35); color: #DDFCB6;
  white-space: nowrap;
}

/* Notification arrived */
.c-notif-arrived { top: 52px; right: 4px; padding: 13px 15px; display: flex; align-items: center; gap: 11px; min-width: 210px; z-index: 4; }
.notif-ico { width: 34px; height: 34px; border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.notif-ico.green { background: #C4EDE9; color: #0D4A45; }
.notif-ico.lime  { background: #DDFCB6; color: #2A4810; }
.notif-title { display: block; font-size: 12.5px; font-weight: 700; color: var(--text); line-height: 1.2; }
.notif-sub   { display: block; font-size: 11px; color: var(--muted); margin-top: 2px; }
.notif-ts    { font-size: 10px; color: var(--muted); white-space: nowrap; margin-left: auto; }

/* Reminder */
.c-reminder {
  top: 50%; right: 4px; translate: 0 -30%;
  padding: 11px 14px; display: flex; align-items: center; gap: 10px; min-width: 196px; z-index: 4;
  animation: reminder-float 7s ease-in-out -1.2s infinite alternate;
}
@keyframes reminder-float {
  from { translate: 0 calc(-30% - 5px); }
  to   { translate: 0 calc(-30% + 5px); }
}
.reminder-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #DDFCB6; box-shadow: 0 0 0 3px rgba(221,252,182,.2); flex-shrink: 0;
}
.reminder-text { display: block; font-size: 12px; font-weight: 600; color: var(--text); }
.reminder-sub  { display: block; font-size: 10.5px; color: var(--muted); }

/* Payment */
.c-payment { bottom: 68px; left: -6px; padding: 13px 15px; display: flex; align-items: center; gap: 11px; min-width: 210px; z-index: 4; }

/* Stats */
.c-stats { bottom: 38px; right: 8px; padding: 16px 20px; min-width: 164px; z-index: 4; }
.stats-lbl { display: block; font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); margin-bottom: 8px; }
.stats-val { display: block; font-size: 34px; font-weight: 800; color: var(--text); line-height: 1; letter-spacing: -.03em; margin-bottom: 10px; }
.stats-row { display: flex; align-items: center; gap: 6px; }
.stats-bar-track { flex: 1; height: 3px; border-radius: 999px; background: var(--overlay-strong); overflow: hidden; }
.stats-bar-fill  { height: 100%; width: 68%; border-radius: 999px; background: var(--coral); }
.stats-pct { font-size: 11px; font-weight: 600; color: var(--coral); }

/* ── Feature marquee ─────────────────────────────── */

.feature-marquee {
  position: relative;
  z-index: 2;
  width: 100%;
  background: #2742AB;
  overflow: hidden;
}
.feature-marquee__track {
  display: flex;
  align-items: center;
  padding: 28px 0;
  width: max-content;
  will-change: transform;
}
@keyframes marquee-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
.feature-marquee__track span {
  font-size: 24px;
  font-weight: 500;
  color: rgba(255,255,255,.9);
  white-space: nowrap;
  padding: 0 40px;
  letter-spacing: -.01em;
}
.feature-marquee__track i {
  display: inline-block;
  width: 10px; height: 10px;
  background: var(--coral);
  transform: rotate(45deg);
  flex-shrink: 0;
}

/* ── Pills physics section ───────────────────────── */

.pills-section {
  position: relative;
  z-index: 2;
  height: 70vh;
  background: #fff;
  overflow: hidden;
}

.pills-section__head {
  position: absolute;
  top: clamp(44px, 7vh, 80px);
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  pointer-events: none;
  z-index: 3;
  width: 100%;
  perspective: 1000px;
}

.pills-section__title {
  font-size: clamp(40px, 5.5vw, 80px);
  font-weight: 600;
  letter-spacing: -.04em;
  line-height: 1;
  color: var(--blue);
  margin: 8px 0 0;
}

.pills-canvas {
  position: absolute;
  inset: 0;
  cursor: grab;
  z-index: 2;
}

.pills-canvas:active { cursor: grabbing; }

.pill-item {
  position: absolute;
  left: 0; top: 0;
  padding: 22px 52px;
  border-radius: 999px;
  font-size: 28px;
  font-weight: 500;
  white-space: nowrap;
  pointer-events: none;
  will-change: transform;
  user-select: none;
}


.pill--blue    { background: #dce6ff; color: #23388B; }
.pill--coral   { background: #fde8ea; color: #c0334a; }
.pill--lime    { background: #d0f5e6; color: #0c7a50; }
.pill--yellow  { background: #fff3c4; color: #92690a; }
.pill--lavender{ background: #ede9ff; color: #5b3fb5; }
.pill--peach   { background: #fce4d6; color: #b84d20; }
.pill--sky     { background: #d6f0ff; color: #0a6a9c; }
.pill--mint    { background: #c8f5e2; color: #0a6a4a; }
.pill--rose    { background: #ffd6e0; color: #a02040; }

/* ── Modules — editorial product storytelling (5 module groups) ───── */

.modules {
  /* — section tokens (solid colours, no transparency) — */
  --mg-bg:        #fafafb;
  --mg-fg:        #23388B;
  --mg-mute:      #7c87b5;     /* solid muted blue (was rgba 55%) */
  --mg-line:      #e2e6f1;     /* solid hairline border */
  --mg-line-2:    #c8cee0;     /* slightly stronger border */
  --mg-card:      #fff;
  --mg-card-soft: #f4f6fb;     /* very pale blue card fill (solid) */

  /* — Hero accent palette (matches the existing .pill--* family) — */
  --mg-coral:     #F15D6F;     /* coral signal red */
  --mg-coral-bg:  #fde8ea;
  --mg-coral-bd:  #E8B7BD;
  --mg-coral-fg:  #c0334a;

  --mg-pink-bg:   #F8D6EF;
  --mg-pink-bd:   #E0B7D2;
  --mg-pink-fg:   #7A1F50;

  --mg-blue-bg:   #dce6ff;
  --mg-blue-bd:   #B6C5E8;
  --mg-blue-fg:   #1c2c75;

  --mg-sky-bg:    #d6f0ff;
  --mg-sky-bd:    #A8D3EE;
  --mg-sky-fg:    #0a6a9c;

  --mg-lime-bg:   #d0f5e6;
  --mg-lime-bd:   #A8DBC4;
  --mg-lime-fg:   #0c7a50;

  --mg-mint-bg:   #c8f5e2;
  --mg-mint-bd:   #A4DDC4;
  --mg-mint-fg:   #0a6a4a;

  --mg-yellow-bg: #fff3c4;
  --mg-yellow-bd: #E5D188;
  --mg-yellow-fg: #92690a;

  --mg-lavender-bg:#ede9ff;
  --mg-lavender-bd:#CAC1F0;
  --mg-lavender-fg:#5b3fb5;

  --mg-peach-bg:  #fce4d6;
  --mg-peach-bd:  #E5C6B1;
  --mg-peach-fg:  #b84d20;

  --mg-rose-bg:   #ffd6e0;
  --mg-rose-bd:   #E5B5C2;
  --mg-rose-fg:   #a02040;

  /* — Neutral, subtle shadows (no colour glow) — */
  --mg-shadow-sm: 0 4px 14px rgba(35,56,139,.06);
  --mg-shadow-md: 0 14px 38px rgba(35,56,139,.10);

  position: relative;
  z-index: 2;
  background: var(--mg-bg);
  color: var(--mg-fg);
  padding: clamp(96px, 12vw, 160px) 0 clamp(96px, 12vw, 160px);
  overflow: clip;
}

/* ── Section heading ─────────────────────────────────────────────── */
.modules__head {
  width: min(100%, 1180px);
  margin: 0 auto clamp(72px, 9vw, 128px);
  padding: 0 clamp(24px, 4vw, 64px);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
.modules__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--mg-mute);
  padding: 8px 16px 8px 12px;
  background: #fff;
  border: 1px solid var(--mg-line);
  border-radius: 999px;
  box-shadow: var(--mg-shadow-sm);
}
.modules__eyebrow::before {
  content: '';
  width: 7px; height: 7px;
  background: var(--mg-coral);
  transform: rotate(45deg);
  border-radius: 1px;
}
.modules__title {
  margin: 6px 0 0;
  font-size: clamp(34px, 4vw, 56px);
  font-weight: 800;
  letter-spacing: -.03em;
  line-height: 1.04;
  color: var(--mg-fg);
}
.modules__sub {
  margin: 6px 0 0;
  font-size: 16px;
  line-height: 1.55;
  color: var(--mg-mute);
  max-width: 560px;
  font-weight: 500;
}

/* ── Module group block (shared) ─────────────────────────────────── */
.mg {
  width: min(100%, 1180px);
  margin: 0 auto;
  padding: clamp(56px, 7vw, 112px) clamp(24px, 4vw, 64px);
  display: grid;
  gap: clamp(40px, 6vw, 96px);
  align-items: center;
}

/* Layout variants */
.mg--right { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); }
.mg--left  { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
.mg--wide  { grid-template-columns: 1fr; gap: clamp(40px, 5vw, 72px); }
.mg--split { grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.2fr); }
.mg--float { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); }

.mg__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 18px;
  max-width: 520px;
}
.mg__copy--centred {
  margin: 0 auto;
  text-align: center;
  align-items: center;
  max-width: 680px;
}
.mg__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--mg-coral);
}
.mg__eyebrow::before {
  content: '';
  width: 6px; height: 6px;
  background: var(--mg-coral);
  transform: rotate(45deg);
  border-radius: 1px;
}
.mg__title {
  margin: 0;
  font-size: clamp(26px, 2.4vw, 36px);
  font-weight: 700;
  letter-spacing: -.02em;
  line-height: 1.15;
  color: var(--mg-fg);
  text-wrap: balance;
}
.mg__lead {
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
  color: var(--mg-mute);
  font-weight: 500;
  max-width: 460px;
}
.mg__bullets {
  list-style: none;
  margin: 4px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 11px;
}
.mg__bullets li {
  position: relative;
  padding-left: 24px;
  font-size: 14.5px;
  line-height: 1.45;
  font-weight: 600;
  color: var(--mg-fg);
}
.mg__bullets li::before {
  content: '';
  position: absolute;
  left: 0; top: 7px;
  width: 8px; height: 8px;
  background: var(--mg-coral);
  transform: rotate(45deg);
  border-radius: 1px;
}
.mg__bullets--inline {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 10px 18px;
  margin-top: 18px;
}
.mg__bullets--inline li {
  padding-left: 22px;
  font-weight: 600;
  font-size: 14px;
}

.mg__illu { position: relative; }
.mg__illu--wide { width: 100%; }

/* ─────────────────────────────────────────────────────────────────
   ILLUSTRATIONS — solid fills, solid borders, no colour glows
   ───────────────────────────────────────────────────────────────── */

/* ── 01 Calendar / appointments ──────────────────────────────────── */
.illu-cal {
  width: 100%;
  max-width: 520px;
  margin-left: auto;
  background: var(--mg-card);
  border: 1px solid var(--mg-line);
  border-radius: 22px;
  padding: 22px 22px 18px;
  box-shadow: var(--mg-shadow-md);
  position: relative;
}
.illu-cal::after {
  content: '';
  position: absolute;
  top: -1px; left: 28px;
  width: 56px; height: 4px;
  background: var(--mg-coral);
  border-radius: 0 0 4px 4px;
}
.illu-cal__head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 16px;
}
.illu-cal__date {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--mg-mute);
}
.illu-cal__rate {
  font-size: 13px;
  font-weight: 700;
  color: var(--mg-lime-fg);
  background: var(--mg-lime-bg);
  border: 1px solid var(--mg-lime-bd);
  padding: 4px 12px 4px 10px;
  border-radius: 999px;
}
.illu-cal__rate b { font-size: 14px; letter-spacing: -.02em; }
.illu-cal__rows {
  list-style: none;
  margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 7px;
}
/* Row colour rotation — same hero palette as the pills section */
.illu-row {
  display: grid;
  grid-template-columns: 56px 1fr;
  align-items: center;
  gap: 14px;
  padding: 9px 13px;
  border-radius: 12px;
  border: 1px solid var(--mg-line);
  background: var(--mg-card-soft);
}
.illu-row[data-row="0"] { background: var(--mg-blue-bg);     border-color: var(--mg-blue-bd); }
.illu-row[data-row="0"] .illu-row__card { color: var(--mg-blue-fg); }
.illu-row[data-row="1"] { background: var(--mg-sky-bg);      border-color: var(--mg-sky-bd); }
.illu-row[data-row="1"] .illu-row__card { color: var(--mg-sky-fg); }
.illu-row[data-row="2"] { background: var(--mg-lavender-bg); border-color: var(--mg-lavender-bd); }
.illu-row[data-row="2"] .illu-row__card { color: var(--mg-lavender-fg); }
.illu-row[data-row="3"] { background: var(--mg-peach-bg);    border-color: var(--mg-peach-bd); }
.illu-row[data-row="3"] .illu-row__card { color: var(--mg-peach-fg); }
.illu-row[data-row="4"] { background: var(--mg-mint-bg);     border-color: var(--mg-mint-bd); }
.illu-row[data-row="4"] .illu-row__card { color: var(--mg-mint-fg); }
.illu-row[data-row="5"] { background: var(--mg-yellow-bg);   border-color: var(--mg-yellow-bd); }
.illu-row[data-row="5"] .illu-row__card { color: var(--mg-yellow-fg); }
.illu-row__t {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--mg-mute);
  font-variant-numeric: tabular-nums;
}
.illu-row__card {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -.005em;
}
.illu-cal__foot {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 12px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--mg-line);
}
.illu-cal__lbl {
  font-size: 11.5px;
  font-weight: 600;
  color: var(--mg-mute);
}
.illu-cal__bar {
  height: 6px;
  border-radius: 999px;
  background: #eef1f8;
  overflow: hidden;
}
.illu-cal__bar-fill {
  height: 100%;
  width: 0;
  background: var(--mg-coral);
  border-radius: 999px;
  transition: width 1.1s cubic-bezier(.34,1.1,.64,1);
}
.illu-cal__bar-val {
  font-size: 12.5px;
  font-weight: 800;
  color: var(--mg-fg);
  font-variant-numeric: tabular-nums;
}

/* ── 01 · Programari online — two-panel appointment view ──────────── */
.illu-appt {
  width: 100%;
  max-width: 580px;
  margin-left: auto;
  background: var(--mg-card);
  border: 1px solid var(--mg-line);
  border-radius: 22px;
  padding: 22px;
  box-shadow: var(--mg-shadow-md);
  position: relative;
  display: block;
}
.illu-appt::after {
  content: '';
  position: absolute;
  top: -1px; left: 28px;
  width: 56px; height: 4px;
  background: var(--mg-coral);
  border-radius: 0 0 4px 4px;
}

/* Left: date + timeline */
.illu-appt__left {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.illu-appt__date {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--mg-mute);
}
.illu-appt__tl {
  position: relative;
  display: flex;
  flex-direction: column;
}
.illu-appt__tl::before {
  content: '';
  position: absolute;
  left: 43px;
  top: 0; bottom: 0;
  width: 1px;
  background: var(--mg-line);
}

.ia-row {
  display: grid;
  grid-template-columns: 32px 28px 1fr auto;
  align-items: center;
  gap: 8px;
  padding: 9px 0;
  border-bottom: 1px solid var(--mg-line);
  position: relative;
}
.ia-row:last-child { border-bottom: none; }

.ia-time {
  font-size: 10.5px;
  font-weight: 700;
  color: var(--mg-mute);
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.ia-av {
  width: 28px; height: 28px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 9px; font-weight: 700;
  color: #fff;
  flex-shrink: 0;
  position: relative; z-index: 1;
}
.ia-av--mi { background: #4f6ef7; }
.ia-av--ap { background: #159969; }
.ia-av--ed { background: #9333ea; }
.ia-av--cb { background: #d97706; }

.ia-info {
  display: flex; flex-direction: column; gap: 1px;
  min-width: 0;
}
.ia-name {
  font-size: 12px; font-weight: 600;
  color: var(--mg-fg);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ia-proc { font-size: 10px; color: var(--mg-mute); }

.ia-badge {
  font-size: 9.5px; font-weight: 600;
  padding: 3px 7px; border-radius: 100px;
  white-space: nowrap; flex-shrink: 0;
}
.ia-badge--done    { background: var(--mg-lime-bg);  color: var(--mg-lime-fg); }
.ia-badge--new     { background: var(--mg-coral-bg); color: var(--mg-coral-fg); }
.ia-badge--confirm { background: var(--mg-sky-bg);   color: var(--mg-sky-fg); }

/* Right: stat card (vertically centred) */
.illu-appt__right {
  display: flex;
  flex-direction: column;
  justify-content: center;
  border-left: 1px solid var(--mg-line);
  padding-left: 20px;
}

/* Stat card */
.illu-appt__stat {
  background: var(--mg-card-soft);
  border: 1px solid var(--mg-line);
  border-radius: 12px;
  padding: 11px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.ia-stat-lbl {
  font-size: 9px; font-weight: 600;
  letter-spacing: .09em; text-transform: uppercase;
  color: var(--mg-mute); margin-bottom: 3px;
}
.ia-stat-val {
  font-size: 26px; font-weight: 700;
  color: var(--mg-fg); line-height: 1;
}
.ia-stat-aside {
  display: flex; flex-direction: column; align-items: flex-end; gap: 5px;
}
.ia-stat-delta { font-size: 9.5px; font-weight: 600; color: var(--mg-coral); }
.ia-stat-bar {
  width: 44px; height: 4px;
  background: var(--mg-line); border-radius: 100px; overflow: hidden;
}
.ia-stat-fill {
  height: 100%; width: 0;
  background: var(--mg-coral); border-radius: 100px;
  transition: width .9s cubic-bezier(.34,1.1,.64,1);
}

/* ── 02 Form / questionnaire ─────────────────────────────────────── */
.illu-form {
  width: 100%;
  max-width: 480px;
  background: var(--mg-card);
  border: 1px solid var(--mg-line);
  border-radius: 22px;
  padding: 22px;
  box-shadow: var(--mg-shadow-md);
}
.illu-form__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 18px;
}
.illu-form__title {
  font-size: 13px;
  font-weight: 700;
  color: var(--mg-fg);
  letter-spacing: -.005em;
}
.illu-form__pct {
  font-size: 12px;
  font-weight: 700;
  color: var(--mg-lime-fg);
  background: var(--mg-lime-bg);
  border: 1px solid var(--mg-lime-bd);
  padding: 4px 11px;
  border-radius: 999px;
}
.illu-form__pct b {
  font-size: 13.5px;
  letter-spacing: -.02em;
  font-variant-numeric: tabular-nums;
}
.illu-form__list {
  list-style: none;
  margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 8px;
  margin-bottom: 18px;
}
.illu-form__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 11px;
  background: var(--mg-card-soft);
  border: 1px solid var(--mg-line);
  font-size: 13px;
  font-weight: 600;
  color: var(--mg-fg);
  transition: background .35s ease, border-color .35s ease;
}
.illu-form__item.is-checked {
  background: var(--mg-lime-bg);
  border-color: var(--mg-lime-bd);
  color: var(--mg-lime-fg);
}
.illu-form__mark {
  width: 18px; height: 18px;
  border-radius: 50%;
  background: #d6dae8;     /* solid grey, no opacity */
  position: relative;
  transition: background .35s ease;
  flex-shrink: 0;
}
.illu-form__item.is-checked .illu-form__mark {
  background: var(--mg-lime-fg);
}
.illu-form__item.is-checked .illu-form__mark::after {
  content: '';
  position: absolute;
  left: 5px; top: 8px;
  width: 4px; height: 7px;
  border: 2px solid #fff;
  border-top: 0; border-left: 0;
  transform: rotate(45deg);
}
.illu-form__profile {
  display: grid;
  grid-template-columns: 42px 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 14px;
  background: var(--mg-pink-bg);      /* solid hero pink */
  border: 1px solid var(--mg-pink-bd);
}
.illu-form__avatar {
  width: 42px; height: 42px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid var(--mg-pink-bd);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 800;
  color: var(--mg-pink-fg);
}
.illu-form__profile-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.illu-form__profile-info b { font-size: 13px; color: var(--mg-pink-fg); }
.illu-form__profile-info span { font-size: 11.5px; color: var(--mg-pink-fg); opacity: .75; }
.illu-form__chip {
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--mg-coral-fg);
  background: var(--mg-coral-bg);
  border: 1px solid var(--mg-coral-bd);
  padding: 4px 10px;
  border-radius: 999px;
}

/* ── 03 Flow diagram (wide) — each stage gets a hero pill colour ── */
.illu-flow {
  display: grid;
  grid-template-columns: repeat(9, auto);
  align-items: center;
  justify-content: center;
  gap: 10px 0;
  padding: 36px clamp(20px, 4vw, 56px);
  background: var(--mg-card);
  border: 1px solid var(--mg-line);
  border-radius: 24px;
  box-shadow: var(--mg-shadow-md);
  width: 100%;
  margin: 0 auto;
  max-width: 980px;
}
.illu-stage {
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: flex-start;
  padding: 16px 18px;
  border-radius: 14px;
  min-width: 138px;
  position: relative;
  transition: transform .4s ease;
}
.illu-stage[data-stage="0"] { background: var(--mg-sky-bg);      border: 1px solid var(--mg-sky-bd); }
.illu-stage[data-stage="0"] .illu-stage__t   { color: var(--mg-sky-fg); }
.illu-stage[data-stage="0"] .illu-stage__num { color: var(--mg-sky-fg); }
.illu-stage[data-stage="1"] { background: var(--mg-lavender-bg); border: 1px solid var(--mg-lavender-bd); }
.illu-stage[data-stage="1"] .illu-stage__t   { color: var(--mg-lavender-fg); }
.illu-stage[data-stage="1"] .illu-stage__num { color: var(--mg-lavender-fg); }
.illu-stage[data-stage="2"] { background: var(--mg-coral-bg);    border: 1px solid var(--mg-coral-bd); }
.illu-stage[data-stage="2"] .illu-stage__t   { color: var(--mg-coral-fg); }
.illu-stage[data-stage="2"] .illu-stage__num { color: var(--mg-coral-fg); }
.illu-stage[data-stage="3"] { background: var(--mg-peach-bg);    border: 1px solid var(--mg-peach-bd); }
.illu-stage[data-stage="3"] .illu-stage__t   { color: var(--mg-peach-fg); }
.illu-stage[data-stage="3"] .illu-stage__num { color: var(--mg-peach-fg); }
.illu-stage[data-stage="4"] { background: var(--mg-lime-bg);     border: 1px solid var(--mg-lime-bd); }
.illu-stage[data-stage="4"] .illu-stage__t   { color: var(--mg-lime-fg); }
.illu-stage[data-stage="4"] .illu-stage__num { color: var(--mg-lime-fg); }

.illu-stage__num {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .14em;
  font-variant-numeric: tabular-nums;
  opacity: .65;
}
.illu-stage__t {
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: -.005em;
}
.illu-stage__sub {
  font-size: 11.5px;
  color: var(--mg-mute);
}
.illu-stage--current {
  transform: translateY(-3px);
}

.illu-flow__conn {
  width: 36px;
  height: 2px;
  background: var(--mg-line-2);
  border-radius: 999px;
  position: relative;
}
.illu-flow__conn::after {
  content: '';
  position: absolute;
  top: 50%; right: -4px;
  width: 6px; height: 6px;
  background: var(--mg-coral);
  transform: translateY(-50%) rotate(45deg);
  border-radius: 1px;
}

/* ── 04 Portal split — clinic + patient ─────────────────────────── */
.illu-portal {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 60px minmax(0, 1fr);
  gap: 14px;
  align-items: stretch;
}
.illu-portal__col {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 18px;
  background: var(--mg-card);
  border: 1px solid var(--mg-line);
  border-radius: 18px;
  box-shadow: var(--mg-shadow-sm);
}
.illu-portal__col--patient {
  background: var(--mg-mint-bg);
  border-color: var(--mg-mint-bd);
}
.illu-portal__lbl {
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--mg-mute);
  margin-bottom: 4px;
}
.illu-portal__col--patient .illu-portal__lbl { color: var(--mg-mint-fg); }
.illu-portal__card {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 11px 14px;
  background: var(--mg-card-soft);
  border: 1px solid var(--mg-line);
  border-radius: 12px;
}
.illu-portal__col--patient .illu-portal__card {
  background: #fff;
  border-color: var(--mg-mint-bd);
}
.illu-portal__card b { font-size: 13px; font-weight: 700; color: var(--mg-fg); }
.illu-portal__card span { font-size: 11.5px; color: var(--mg-mute); }
.illu-portal__col--patient .illu-portal__card b    { color: var(--mg-mint-fg); }
.illu-portal__col--patient .illu-portal__card span { color: var(--mg-mint-fg); opacity: .75; }

.illu-portal__sync {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 14px;
}
.illu-portal__arrow {
  width: 24px;
  height: 14px;
  position: relative;
}
.illu-portal__arrow::before,
.illu-portal__arrow::after {
  content: '';
  position: absolute;
  left: 0; right: 0;
  height: 2px;
  border-radius: 999px;
  will-change: transform;
}
.illu-portal__arrow::before { top: 3px; background: var(--mg-line-2); }
.illu-portal__arrow::after  { top: 9px; background: var(--mg-coral); }

/* ── 05 Notifications — solid bubbles in hero pill colours ──────── */
.illu-notify {
  position: relative;
  height: clamp(320px, 32vw, 420px);
  background: var(--mg-card);
  border: 1px solid var(--mg-line);
  border-radius: 24px;
  box-shadow: var(--mg-shadow-md);
  overflow: hidden;
}
.illu-notify::before,
.illu-notify::after {
  content: '';
  position: absolute;
  left: 50%; top: 50%;
  border: 1px dashed var(--mg-line-2);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.illu-notify::before { width: 56%; height: 70%; }
.illu-notify::after  { width: 84%; height: 96%; border-color: var(--mg-line); }

.illu-notify__core {
  position: absolute;
  left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  width: 116px; height: 116px;
  border-radius: 50%;
  background: var(--mg-fg);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  box-shadow: var(--mg-shadow-md);
  z-index: 2;
}
.illu-notify__core-pulse {
  position: absolute;
  inset: -8px;
  border-radius: 50%;
  border: 1px solid var(--mg-coral-bd);
  animation: notify-pulse 3.4s ease-out infinite;
}
@keyframes notify-pulse {
  0%   { transform: scale(.95); opacity: 1; }
  100% { transform: scale(1.35); opacity: 0; }
}

.illu-notify__bubble {
  position: absolute;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px 8px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: -.005em;
  white-space: nowrap;
  box-shadow: var(--mg-shadow-sm);
  will-change: transform;
  background: var(--mg-card);
  border: 1px solid var(--mg-line);
  color: var(--mg-fg);
}
.illu-notify__dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* per-bubble theming using the hero accent family */
.illu-notify__bubble--a { top: 14%; left: 12%;   background: var(--mg-sky-bg);      border-color: var(--mg-sky-bd);      color: var(--mg-sky-fg); }
.illu-notify__bubble--a .illu-notify__dot { background: var(--mg-sky-fg); }

.illu-notify__bubble--b { top: 22%; right: 12%;  background: var(--mg-lime-bg);     border-color: var(--mg-lime-bd);     color: var(--mg-lime-fg); }
.illu-notify__bubble--b .illu-notify__dot { background: var(--mg-lime-fg); }

.illu-notify__bubble--c { bottom: 18%; left: 18%; background: var(--mg-coral-bg);   border-color: var(--mg-coral-bd);    color: var(--mg-coral-fg); }
.illu-notify__bubble--c .illu-notify__dot { background: var(--mg-coral-fg); }

.illu-notify__bubble--d { bottom: 14%; right: 14%; background: var(--mg-lavender-bg); border-color: var(--mg-lavender-bd); color: var(--mg-lavender-fg); }
.illu-notify__bubble--d .illu-notify__dot { background: var(--mg-lavender-fg); }

.illu-notify__bubble--e { top: 50%; right: 6%; transform: translateY(-50%);
  background: var(--mg-pink-bg);     border-color: var(--mg-pink-bd);     color: var(--mg-pink-fg); }
.illu-notify__bubble--e .illu-notify__dot { background: var(--mg-pink-fg); }

/* ── Entrance reveal — fade + lift ──────────────────────────────── */
.mg[data-mg] .mg__copy,
.mg[data-mg] .mg__illu {
  opacity: 0;
  transform: translateY(28px);
}
.mg.is-in .mg__copy,
.mg.is-in .mg__illu {
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity .9s cubic-bezier(.2,.7,.2,1),
    transform .9s cubic-bezier(.2,.7,.2,1);
}
.mg.is-in .mg__illu { transition-delay: .12s; }

/* ── Responsive ──────────────────────────────────────────────────── */
@media (max-width: 980px) {
  .mg--right,
  .mg--left,
  .mg--split,
  .mg--float {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .mg--left .mg__copy { order: 1; }
  .mg--left .mg__illu { order: 2; }
  .mg__copy { max-width: none; }
  .mg__title { font-size: clamp(24px, 5.6vw, 32px); }
  .illu-flow {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
    padding: 24px;
  }
  .illu-flow__conn {
    width: 2px;
    height: 24px;
    margin: 0 auto;
  }
  .illu-flow__conn::after {
    top: auto; bottom: -4px; right: 50%;
    transform: translateX(50%) rotate(45deg);
  }
  .illu-portal {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .illu-portal__sync { flex-direction: row; gap: 8px; }
  .illu-portal__arrow { transform: rotate(90deg); }
  .illu-notify { height: clamp(280px, 60vw, 360px); }
  .illu-notify__bubble--a { left: 6%; top: 10%; }
  .illu-notify__bubble--b { right: 6%; top: 14%; }
  .illu-notify__bubble--c { left: 6%; bottom: 16%; }
  .illu-notify__bubble--d { right: 6%; bottom: 10%; }
  .illu-notify__bubble--e { display: none; }
}

/* ── Pricing section ─────────────────────────────── */

.pricing {
  position: relative;
  z-index: 2;
  background: #fff;
  padding: 120px 0 100px;
}
.pricing__inner {
  width: min(100%, 1160px);
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 56px;
}

.section-eyebrow {
  display: block;
  font-size: 11px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: var(--muted); margin-bottom: 16px;
}

.pricing__head {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
}
.pricing__title {
  font-size: clamp(36px, 4vw, 52px);
  font-weight: 800; letter-spacing: -.025em;
  color: var(--blue); margin: 0 0 12px; line-height: 1.08;
}
.pricing__sub {
  font-size: 16px; color: var(--muted); margin: 0 0 32px; line-height: 1.5;
}

/* Billing toggle */
.bill-toggle {
  position: relative;
  display: inline-grid;
  grid-template-columns: 1fr 1fr;
  background: var(--grey);
  border-radius: 999px;
  padding: 4px;
}
.bill-toggle__btn {
  position: relative; z-index: 1;
  display: flex; align-items: center; justify-content: center; gap: 6px;
  padding: 8px 24px;
  border: none; background: none; cursor: pointer;
  font-family: var(--font-sans); font-size: 14px; font-weight: 600;
  color: var(--muted); border-radius: 999px;
  transition: color .25s ease;
}
.bill-toggle__btn.is-active { color: var(--blue); }
.bill-toggle__save {
  font-size: 11px; font-weight: 700; letter-spacing: .02em;
  background: var(--coral); color: #fff;
  padding: 2px 7px; border-radius: 999px;
}
.bill-toggle__slider {
  position: absolute;
  top: 4px; bottom: 4px; left: 4px;
  width: calc(50% - 4px);
  background: #fff;
  border-radius: 999px;
  box-shadow: 0 1px 4px rgba(35,56,139,.12);
  transition: left .3s cubic-bezier(.4,0,.2,1);
  pointer-events: none;
}
.bill-toggle[data-active="monthly"] .bill-toggle__slider { left: 4px; }
.bill-toggle[data-active="yearly"]  .bill-toggle__slider { left: 50%; }

/* Units multiplier slider.
   Theme-aware via CSS variables — set defaults here (light/white pricing bg),
   and override under html[data-theme="dark"] further down. */
.units-slider {
  --us-label:    rgba(35, 56, 139, .65);
  --us-value:    var(--blue);
  --us-track:    rgba(35, 56, 139, .12);
  --us-fill:     var(--coral);
  --us-thumb:    var(--coral);
  --us-thumb-ring: #fff;
  --us-shadow:   rgba(20, 38, 110, .25);
  --us-tick:     rgba(35, 56, 139, .55);
  width: min(100%, 540px);
  margin: 32px auto 8px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
html[data-theme="dark"] .units-slider {
  --us-label:    rgba(255, 255, 255, .65);
  --us-value:    #fff;
  --us-track:    rgba(255, 255, 255, .14);
  --us-thumb-ring: rgba(255, 255, 255, .95);
  --us-shadow:   rgba(0, 0, 0, .45);
  --us-tick:     rgba(255, 255, 255, .55);
}
.units-slider__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
}
.units-slider__label {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -.01em;
  color: var(--us-label);
}
.units-slider__value {
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: 700;
  color: var(--us-value);
  letter-spacing: -.01em;
}
.units-slider__rail { position: relative; }
.units-slider__input {
  display: block;
  width: 100%;
  height: 28px;
  background: transparent;
  -webkit-appearance: none;
  appearance: none;
  margin: 0;
  padding: 0;
  cursor: grab;
}
.units-slider__input:active { cursor: grabbing; }
.units-slider__input::-webkit-slider-runnable-track {
  height: 6px;
  border-radius: 999px;
  background:
    linear-gradient(to right,
      var(--us-fill) 0,
      var(--us-fill) var(--pct, 0%),
      var(--us-track) var(--pct, 0%),
      var(--us-track) 100%
    );
}
.units-slider__input::-moz-range-track {
  height: 6px;
  border-radius: 999px;
  background: var(--us-track);
}
.units-slider__input::-moz-range-progress {
  height: 6px;
  border-radius: 999px;
  background: var(--us-fill);
}
.units-slider__input::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--us-thumb);
  border: 4px solid var(--us-thumb-ring);
  box-shadow: 0 2px 10px var(--us-shadow);
  margin-top: -8px;
}
.units-slider__input::-moz-range-thumb {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--us-thumb);
  border: 4px solid var(--us-thumb-ring);
  box-shadow: 0 2px 10px var(--us-shadow);
}
.units-slider__input:focus-visible {
  outline: none;
}
.units-slider__input:focus-visible::-webkit-slider-thumb {
  box-shadow: 0 0 0 4px rgba(241, 93, 111, .25), 0 2px 10px var(--us-shadow);
}
.units-slider__input:focus-visible::-moz-range-thumb {
  box-shadow: 0 0 0 4px rgba(241, 93, 111, .25), 0 2px 10px var(--us-shadow);
}
.units-slider__ticks {
  display: flex;
  justify-content: space-between;
  margin-top: 10px;
  padding: 0 2px;
  font-size: 11px;
  font-weight: 600;
  color: var(--us-tick);
  font-variant-numeric: tabular-nums;
}

/* Cards grid */
.pricing__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  width: 100%;
  align-items: stretch;
}

.pcard {
  position: relative;
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  gap: 24px;
  padding: clamp(24px, 2.4vw, 36px);
  background: #fff;
  border: 1px solid var(--line-strong);
  border-radius: 24px;
  transition: transform .4s var(--ease-out);
}
.pcard:hover { transform: translateY(-4px); }

.pcard--featured {
  background: var(--cta);
  border-color: transparent;
  box-shadow: 0 16px 56px rgba(0,0,0,.12);
  margin-top: -16px;
  margin-bottom: -16px;
}
.pcard--featured .pcard__price { border-bottom-color: rgba(255,255,255,.2); }

.pcard__badge {
  position: absolute;
  top: -14px; left: 50%;
  transform: translateX(-50%);
  background: var(--coral);
  color: #fff;
  font-size: 11px; font-weight: 700; letter-spacing: .04em;
  padding: 5px 14px; border-radius: 999px;
  white-space: nowrap;
}

.pcard__tag {
  display: block;
  font-size: 11px; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted); margin-bottom: 6px;
}
.pcard--featured .pcard__tag { color: rgba(255,255,255,.6); }

.pcard__name {
  font-size: 18px; font-weight: 700;
  color: var(--blue); margin: 0; line-height: 1.25;
}
.pcard--featured .pcard__name { color: #fff; }

.pcard__price {
  display: flex;
  align-items: baseline;
  gap: 5px;
  padding-bottom: 20px;
  border-bottom: 1px dashed var(--line-strong);
  align-self: start;
}
.pcard__val {
  font-size: 64px; font-weight: 800; letter-spacing: -.03em;
  color: var(--blue); line-height: 1;
}
.pcard--featured .pcard__val { color: #fff; }
.pcard__cur { font-size: 18px; font-weight: 700; color: var(--blue); }
.pcard__per { font-size: 13px; color: var(--muted); }
.pcard--featured .pcard__cur { color: rgba(255,255,255,.85); }
.pcard--featured .pcard__per { color: rgba(255,255,255,.5); }

.pcard__list {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column;
  justify-content: space-evenly; gap: 11px;
  font-size: 14px; line-height: 1.4; color: var(--blue);
}
.pcard--featured .pcard__list { color: rgba(255,255,255,.9); }

.pcard__list li {
  position: relative;
  padding-left: 22px;
}
.pcard__list li::before {
  content: "";
  position: absolute; left: 0; top: 5px;
  width: 7px; height: 7px;
  background: var(--coral);
  transform: rotate(45deg);
  border-radius: 1px;
}
.pcard--featured .pcard__list li::before {
  background: #DDFCB6;
}

.pcard__cta {
  display: flex; align-items: center; justify-content: center;
  height: 48px; border-radius: 14px;
  font-size: 14px; font-weight: 700;
  background: var(--grey); color: var(--blue);
  transition: background .2s ease, color .2s ease;
  overflow: hidden;
}
.pcard__cta:hover { background: rgba(35,56,139,.12); }

.pcard__cta--primary {
  background: #fff; color: var(--cta);
}
.pcard__cta--primary:hover { background: rgba(255,255,255,.88); }

.pcard__cta--outline {
  background: transparent;
  border: 1.5px solid var(--line-strong);
  color: var(--blue);
}
.pcard__cta--outline:hover { background: var(--grey); }

/* Enterprise card */
.pcard-enterprise {
  width: 100%;
  background: #fff;
  border: 1px solid var(--line-strong);
  border-radius: 24px;
  padding: 32px 36px;
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 32px;
  align-items: center;
}
.pcard-enterprise__copy h3 {
  font-size: 20px; font-weight: 700;
  color: var(--blue); margin: 6px 0 8px; line-height: 1.2;
}
.pcard-enterprise__copy p {
  font-size: 14px; color: var(--muted); margin: 0; line-height: 1.55;
}
.pcard-enterprise__perks {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 8px;
}
.pcard-enterprise__perks li {
  font-size: 13px; color: var(--blue); font-weight: 500;
  padding-left: 18px; position: relative;
}
.pcard-enterprise__perks li::before {
  content: "";
  position: absolute; left: 0; top: 50%;
  transform: translateY(-50%);
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--blue); opacity: .3;
}
.pcard-enterprise .pcard__cta--outline {
  white-space: nowrap; padding: 0 28px;
}

.pricing__note {
  font-size: 13px; color: var(--muted); text-align: center;
  margin: 0; max-width: 560px;
}

/* ── CTA section ─────────────────────────────────── */

/* Card grows beyond its 420px min-height because of the 50/50 grid + image.
   Measured ~604px at desktop. Lift / clearance below derive from this. */
:root { --cta-card-h: 604px; }

/* Lives inside <footer>. The card straddles the footer top edge:
   negative margin-top pulls it up by half its actual height, so half of
   the card sits over the page bg and half over the footer bg.
   The doubled-class selector (.cta-section.cta-section, specificity 0,0,2,0
   chained with .site-footer = 0,0,3,0) beats legacy html[data-theme=*]
   .cta-section rules that set background/padding. */
.site-footer .cta-section.cta-section {
  position: relative;
  z-index: 3;
  background: transparent;
  padding: 0;
  margin-top: calc(var(--cta-card-h, 576px) / -2);
}

/* Reserve room above the footer so the half of the card that protrudes
   upward doesn't sit on top of the previous section's content. We add it
   as padding-bottom on the LAST section (.pricing) rather than on `main`
   so the gap inherits that section's background instead of the body's bg.
   In light mode .pricing is white -> the gap is white (no blue strip);
   in dark mode .pricing is transparent -> the gap shows the dark body bg.
   Specificity (0,0,3,1) beats dark.css `html[data-theme="light"] .pricing`
   (0,0,2,1) which sets padding via shorthand. */
main .pricing.pricing.pricing {
  padding-bottom: calc(var(--cta-card-h, 576px) / 2 + 140px);
}
.cta-section__inner {
  width: min(100%, 1340px);
  margin: 0 auto;
  padding: 0 clamp(20px, 4vw, 56px);
}

/* Card ─────────────────────────────────────────── */
.cta-section__card {
  background: var(--coral);
  border-radius: 36px;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 420px;
  position: relative;
}

.cta-section__content {
  padding: clamp(72px, 7vw, 110px) clamp(40px, 5vw, 72px) clamp(56px, 6vw, 88px);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}
.cta-section__content > * + * { margin-top: 16px; }
.cta-section__content > .cta-section__title { margin-top: 12px; }
.cta-section__content > .cta-section__sub { margin-top: 22px; }
.cta-section__content > .cta-section__btns { margin-top: 32px; }
.cta-section__content > .cta-section__perks { margin-top: 24px; }

.cta-section__img-col {
  position: relative;
}
.cta-section__img {
  position: absolute;
  right: 0;
  bottom: 0;
  height: 100%;
  width: auto;
  max-width: none;
  object-fit: contain;
  object-position: bottom right;
}

/* Typography ───────────────────────────────────── */
.cta-section__eyebrow { color: rgba(255,255,255,.7); }

.cta-section__title {
  font-size: clamp(36px, 4vw, 56px);
  font-weight: 800;
  letter-spacing: -.025em;
  color: #fff;
  margin: 0;
  line-height: 1.08;
}

.cta-section__sub {
  font-size: 16px;
  color: rgba(255,255,255,.78);
  margin: 0;
  line-height: 1.6;
  max-width: 440px;
}

/* Buttons ──────────────────────────────────────── */
.cta-section__btns { display: flex; gap: 12px; flex-wrap: wrap; }

.cta-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 52px; padding: 0 28px; border-radius: 14px;
  font-family: var(--font-sans); font-size: 15px; font-weight: 700;
  border: 1.5px solid transparent;
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
  white-space: nowrap;
}
.cta-btn:hover { transform: translateY(-1px); }
/* Scoped 3-class selectors so theme overrides (html[data-theme=*] .cta-btn--*)
   can't change the button look — the card is always coral in both modes. */
.cta-section .cta-section__card .cta-btn--primary {
  background: #fff;
  color: var(--coral);
  border-color: #fff;
}
.cta-section .cta-section__card .cta-btn--primary:hover {
  background: rgba(255,255,255,.92);
  border-color: rgba(255,255,255,.92);
}
.cta-section .cta-section__card .cta-btn--ghost {
  background: rgba(255,255,255,.1);
  border-color: rgba(255,255,255,.38);
  color: #fff;
}
.cta-section .cta-section__card .cta-btn--ghost:hover {
  background: rgba(255,255,255,.18);
  border-color: rgba(255,255,255,.6);
}

/* Perks ────────────────────────────────────────── */
.cta-section__perks {
  list-style: none; margin: 0; padding: 0;
  display: flex; gap: 8px 20px; flex-wrap: wrap;
}
.cta-section__perks li {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 13px; color: rgba(255,255,255,.62);
}
.cta-section__perks li::before {
  content: "";
  width: 8px; height: 8px;
  background: rgba(255,255,255,.75);
  transform: rotate(45deg);
  border-radius: 2px;
  flex-shrink: 0;
}

/* Responsive ───────────────────────────────────── */
@media (max-width: 820px) {
  .cta-section__card {
    grid-template-columns: 1fr;
  }
  .cta-section__img-col {
    height: 260px;
  }
  .cta-section__img {
    height: 100%;
  }
}
@media (max-width: 540px) {
  .cta-section__img-col { display: none; }
  .cta-section__content { padding: 44px 28px; }
}

/* ── Footer ──────────────────────────────────────── */

.site-footer {
  position: relative;
  z-index: 2;
  background: #0e1e5a;
  color: rgba(255,255,255,.6);
  border-top: 1px solid rgba(255,255,255,.07);
}
/* The CTA card lives at the top of the footer. Its negative margin-top
   lifts it up so half straddles the footer's top edge. The footer__inner
   below gets its own top padding to clear the bottom half of the card. */
.site-footer__inner {
  width: min(100%, 1160px);
  margin: 0 auto;
  padding: clamp(56px, 7vw, 88px) clamp(20px, 4vw, 56px) clamp(40px, 6vw, 72px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(40px, 6vw, 96px);
}
.site-footer__lead {
  display: flex;
  flex-direction: column;
  gap: 0;
  max-width: 420px;
}
.site-footer__title {
  font-size: clamp(26px, 3vw, 36px); font-weight: 800; letter-spacing: -.02em;
  color: #fff; margin: 0 0 28px; line-height: 1.2;
}
.site-footer__form {
  display: flex; align-items: stretch; gap: 8px;
  margin-bottom: 32px; max-width: 420px;
}
.site-footer__field { flex: 1; display: flex; }
.site-footer__field input {
  width: 100%; height: 52px; padding: 0 18px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 14px; color: #fff;
  font-family: var(--font-sans); font-size: 14px;
  outline: none;
  transition: border-color .3s ease, background .3s ease;
}
.site-footer__field input::placeholder { color: rgba(255,255,255,.32); }
.site-footer__field input:focus { border-color: rgba(255,255,255,.3); background: rgba(255,255,255,.08); }
.site-footer__submit {
  height: 52px; padding: 0 22px;
  background: var(--coral); color: #fff;
  border: none; border-radius: 14px;
  font-family: var(--font-sans); font-size: 14px; font-weight: 700;
  cursor: pointer; white-space: nowrap;
  transition: background .2s ease;
}
.site-footer__submit:hover { background: var(--coral-light); }

.site-footer__socials {
  list-style: none; margin: auto 0 0; padding: 0;
  display: flex; gap: 10px;
}
.site-footer__socials a {
  width: 42px; height: 42px; border-radius: 12px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,.55);
  transition: background .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}
.site-footer__socials a:hover { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.22); color: #fff; transform: translateY(-2px); }

.site-footer__cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(28px, 3vw, 44px) clamp(28px, 3vw, 48px);
  align-content: start;
}
.site-footer__col { display: flex; flex-direction: column; gap: 10px; }
.site-footer__col h6 {
  font-size: 11px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; color: #fff; margin: 0 0 8px;
}
.site-footer__col a,
.site-footer__col span {
  font-size: 14px; color: rgba(255,255,255,.5);
  transition: color .2s ease, transform .2s ease;
  width: fit-content;
}
.site-footer__col a:hover { color: #fff; transform: translateX(2px); }

.site-footer__bottom { border-top: 1px solid rgba(255,255,255,.07); }
.site-footer__bottom-inner {
  width: min(100%, 1160px);
  margin: 0 auto;
  padding: clamp(20px, 3vw, 32px) clamp(20px, 4vw, 56px);
  display: flex; align-items: center; gap: 32px;
}
.site-footer__logo { display: inline-flex; align-items: center; height: 48px; flex-shrink: 0; }
.site-footer__logo img { height: 100%; width: auto; filter: brightness(0) invert(1); opacity: .6; }
.site-footer__disclaimer {
  font-size: 12.5px; color: rgba(255,255,255,.32);
  margin: 0; line-height: 1.6;
}
.visually-hidden {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* ── Custom cursor ───────────────────────────────── */

.cb-cursor {
  position: fixed; top: 0; left: 0;
  z-index: 9000; pointer-events: none;
  contain: layout style size; will-change: transform;
}
.cb-cursor::before {
  content: ""; position: absolute;
  top: -2em; left: -2em; width: 4em; height: 4em;
  transform: scale(0);
  background: #23388B; border-radius: 50%;
  transition: transform .35s cubic-bezier(.19,1,.22,1), background-color .2s ease;
}
.cb-cursor.-visible::before           { transform: scale(.22); }
.cb-cursor.-visible.-on-dark::before  { background: #fff; }
.cb-cursor.-pointer::before           { transform: scale(.15); background: var(--coral); }
.cb-cursor.-active::before            { transform: scale(.9); }
@media (hover: none) { .cb-cursor { display: none; } }

/* ── Responsive ──────────────────────────────────── */

@media (max-width: 1120px) {
  .ssh__panel     { grid-template-columns: 1fr; }
  .ssh__aside     { display: none; }
  .home-hero__inner { grid-template-columns: 1fr; gap: 28px; padding-top: 130px; align-items: start; }
  .hero-stage     { justify-self: center; margin: 42px auto 0; }
  .home-copy      { align-items: center; }
  .home-title     { max-width: 760px; margin: 0 auto; font-size: clamp(48px, 13vw, 72px); text-align: center; }
  .home-lead      { width: min(100%, 620px); text-align: center; }
  .home-kickers,
  .home-actions   { justify-content: center; }
}
@media (max-width: 760px) {
  .hero-stage         { height: 760px; }
  .c-cal              { width: min(100%, 340px); }
  .c-patient          { left: 0; }
  .c-notif-arrived    { right: 0; top: 98px; }
  .c-reminder         { right: 0; top: 58%; }
  .c-payment          { left: 0; }
  .c-stats            { right: 0; }
}
@media (max-width: 620px) {
  .ssh     { top: 16px; height: 66px; border-radius: 20px; }
  .ssh__bar{ height: 66px; }
  .ssh__cta{ display: none; }
  .home-hero__inner { padding-inline: 20px; }
}

/* ── Reduced motion ──────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .feature-marquee__track { animation: none !important; }
  .home-hero::before { display: none; }
  .cb-cursor { display: none; }
}
