/* ==========================================================================
   solutions-operations.css — the Operations gallery (/solutions-operations)
   --------------------------------------------------------------------------
   Renders the prototype's Gallery + TemplateCard in the MARKETING design
   system, not the prototype's Inter/violet chrome (brief §2.2):
     - DM Sans only, no serif
     - indigo #6366f1 primary, ink #1E1E24; green is never a primary
     - buttons outlined/transparent, 1.5px border — no filled dark buttons
     - subtle hover + precise transitions only; no floating/bobbing
     - generous whitespace
   The prototype's per-industry tone accents (violet/teal/blue/green/amber/pink)
   are kept for card icon tiles only — decorative, as the brief allows.

   RTL: logical properties throughout, so AR/HE mirror without overrides.
   ========================================================================== */

/* Tokens + font must cover EVERY root in this section. The drawer is a SIBLING
   of <main id="uc-app"> (it has to be, to sit above the page in the stacking
   context), so anything scoped to #uc-app alone never reaches it — which
   silently left the drawer in Times New Roman and collapsed
   `border: … var(--uc-line)` to `0px none`, breaking the "DM Sans only" and
   outlined-button rules (§2.2).
   The same trap applies to the two roots added with the per-industry split:
   #si-app (the /solutions index) and #uc-page (a use-case detail page). Adding a
   root here is not optional — miss one and it renders in the browser's default
   serif with every outlined border gone. */

/* The global header/footer are siblings of every root below, so the roots never
   reach them. This is the only page-level CSS these pages load, and the shared
   bundle only scopes --font-sans to `#header, .mobile-menu, .footer` without
   ever applying it — so with no base font here the chrome fell back to Times
   New Roman while the page body stayed DM Sans. Every other page CSS
   (integrations.css, automotive.css, …) carries this rule; keep it in sync.
   The stack is spelled out because this file defines no :root — var(--font-sans)
   is not in scope on <body> here. */
body {
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

#uc-app,
#si-app,
#uc-page,
.uc-drawer {
  --uc-ink: #1E1E24;
  --uc-mute: #6E6E78;
  --uc-line: #ECECEF;
  --uc-indigo: #6366f1;
  --uc-indigo-ink: #4338ca;
  --uc-bg-soft: #FBFBFC;
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--uc-ink);
}

/* The section has three page types now: the industry gallery (#uc-app), the
   index (#si-app) and a use-case detail page (#uc-page). Same shell for all. */
#uc-app .container,
#si-app .container,
#uc-page .container { max-width: 1200px; margin: 0 auto; padding-inline: 24px; }

/* ---------- hero ---------- */
.uc-hero { padding: 72px 0 32px; }
.uc-hero__eyebrow {
  display: block;
  margin-bottom: 14px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--uc-indigo-ink);
}
.uc-hero__h1 {
  margin: 0 0 16px;
  max-width: 16ch;
  font-size: clamp(32px, 4.4vw, 52px);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -.03em;
}
.uc-hero__lede {
  margin: 0 0 32px;
  max-width: 64ch;
  font-size: 17px;
  line-height: 1.65;
  color: var(--uc-mute);
}

/* ---------- search ---------- */
.uc-search { position: relative; max-width: 460px; }
.uc-search__ic {
  position: absolute;
  inset-inline-start: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 17px;
  height: 17px;
  color: #9A9AA2;
  pointer-events: none;
}
#uc-q {
  width: 100%;
  padding: 13px 16px;
  padding-inline-start: 42px;
  border: 1.5px solid var(--uc-line);
  border-radius: 12px;
  background: #fff;
  font-family: inherit;
  font-size: 14.5px;
  color: var(--uc-ink);
  transition: border-color .15s ease, box-shadow .15s ease;
}
#uc-q::placeholder { color: #9A9AA2; }
#uc-q:focus {
  outline: none;
  border-color: var(--uc-indigo);
  box-shadow: 0 0 0 3px rgba(99, 102, 241, .12);
}
#uc-q::-webkit-search-cancel-button { cursor: pointer; }

/* ---------- filters ---------- */
.uc-filters { padding: 8px 0 4px; }
.uc-filters__grp + .uc-filters__grp { margin-top: 22px; }
.uc-filters__lbl {
  margin-bottom: 10px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #9A9AA2;
}

/* Primary axis: operation (§4) */
.uc-ops { display: flex; flex-wrap: wrap; gap: 8px; }
.uc-op {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  border: 1.5px solid var(--uc-line);
  border-radius: 999px;
  background: transparent;          /* outlined, never filled dark */
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--uc-ink);
  cursor: pointer;
  transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}
.uc-op:hover { border-color: #C9CBF5; background: #F7F8FF; }
.uc-op:focus-visible { outline: 2px solid var(--uc-indigo); outline-offset: 2px; }
.uc-op.is-active {
  border-color: var(--uc-indigo);
  background: #F4F5FF;
  color: var(--uc-indigo-ink);
}
.uc-op__ic { display: flex; color: var(--uc-indigo); }
.uc-op__ic svg { width: 15px; height: 15px; }
.uc-op__c {
  min-width: 20px;
  padding: 1px 6px;
  border-radius: 999px;
  background: #F1F1F4;
  font-size: 11px;
  font-weight: 700;
  color: var(--uc-mute);
}
.uc-op.is-active .uc-op__c { background: #E4E6FD; color: var(--uc-indigo-ink); }

/* Secondary filter: industry */
.uc-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.uc-chip {
  padding: 7px 13px;
  border: 1.5px solid var(--uc-line);
  border-radius: 999px;
  background: transparent;
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  color: var(--uc-mute);
  cursor: pointer;
  transition: border-color .15s ease, color .15s ease, background-color .15s ease;
}
.uc-chip:hover { border-color: #C9CBF5; color: var(--uc-ink); }
.uc-chip:focus-visible { outline: 2px solid var(--uc-indigo); outline-offset: 2px; }
.uc-chip.is-active {
  border-color: var(--uc-indigo);
  background: #F4F5FF;
  color: var(--uc-indigo-ink);
  font-weight: 600;
}

/* ---------- results ---------- */
/* Was 88px bottom — that whitespace is now the proof strip's job, and the big
   gap read as a layout bug once the unstyled list sat in it. */
.uc-results { padding: 28px 0 40px; }
.uc-count {
  margin: 0 0 16px;
  font-size: 13px;
  color: var(--uc-mute);
}
.uc-count #uc-count-n { font-weight: 700; color: var(--uc-ink); }

.uc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 16px;
}

/* ---------- card (prototype TemplateCard anatomy, §2.1) ---------- */
/* The card is an <article>, not an <a>: it has two targets. The title's link is
   stretched over the whole body (opens the detail) and the "Set up outcome"
   button sits above it (opens the register popup). A <button> cannot legally
   nest inside an <a>, hence this shape. */
.uc-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 20px;
  border: 1.5px solid var(--uc-line);
  border-radius: 16px;
  background: #fff;
  color: inherit;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.uc-card:hover {
  border-color: #C9CBF5;
  box-shadow: 0 6px 24px rgba(30, 30, 36, .06);
}
/* focus ring follows the real link, so keyboard users see what they'll open */
.uc-card:focus-within { border-color: #C9CBF5; }
.uc-card__link { color: inherit; text-decoration: none; outline: none; }
.uc-card__link::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 16px;
  z-index: 0;
}
.uc-card__link:focus-visible::after { outline: 2px solid var(--uc-indigo); outline-offset: 2px; }
.uc-card[hidden] { display: none; }

.uc-card__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.uc-card__ic {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  border-radius: 11px;
}
.uc-card__ic svg { width: 19px; height: 19px; }

/* Per-industry tone accents — decorative only (§2.2) */
.uc-card__ic--violet { background: #F1F0FE; color: #6D5BD0; }
.uc-card__ic--teal   { background: #E9F7F5; color: #2A9D8F; }
.uc-card__ic--blue   { background: #EAF1FE; color: #3B76D9; }
.uc-card__ic--green  { background: #EAF6EF; color: #2E8B57; }
.uc-card__ic--amber  { background: #FDF3E6; color: #B77419; }
.uc-card__ic--pink   { background: #FCEDF3; color: #C2508A; }

.uc-card__tag {
  padding: 3px 9px;
  border-radius: 999px;
  background: #F4F4F6;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .02em;
  color: var(--uc-mute);
  white-space: nowrap;
}
.uc-card__tag--pop {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: #FDF3E6;
  color: #B77419;
}
.uc-card__tag--pop svg { width: 11px; height: 11px; }

.uc-card__title {
  margin: 2px 0 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -.01em;
  color: var(--uc-ink);
}
.uc-card__desc {
  margin: 0;
  flex: 1;
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--uc-mute);
}

.uc-card__chs { display: flex; flex-wrap: wrap; gap: 5px; }
.uc-card__ch {
  padding: 2px 8px;
  border: 1px solid var(--uc-line);
  border-radius: 6px;
  font-size: 10.5px;
  font-weight: 500;
  color: var(--uc-mute);
  white-space: nowrap;
}

.uc-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 4px;
  padding-top: 14px;
  border-top: 1px solid var(--uc-line);
}
/* the impact stat — the revenue signal the brief wants front-and-centre */
.uc-card__impact {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12.5px;
  color: var(--uc-mute);
  min-width: 0;
}
/* <bdi dir="ltr"> in the markup: "<" is a Bidi_Mirrored char, so "< 60s" would
   render as "> 60s" inside an RTL run. Isolating keeps the claim accurate. */
.uc-card__val { font-size: 13.5px; font-weight: 700; color: var(--uc-ink); }
/* Green is used ONLY here, as a semantic up-trend accent — never as a primary
   action colour (§2.2). Rendered only for `positive` stats; `is-flat` stats
   ("24/7", "30+ languages") carry no arrow at all. */
.uc-card__trend { width: 14px; height: 14px; flex: 0 0 14px; color: #2E8B57; }
/* RTL: the arrow is directional — mirror it so it still climbs left-to-right. */
[dir="rtl"] .uc-card__trend { transform: scaleX(-1); }

.uc-card__cta {
  position: relative;
  z-index: 1;                 /* above .uc-card__link::after */
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0;
  border: 0;
  background: transparent;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--uc-indigo-ink);
  white-space: nowrap;
  cursor: pointer;
}
.uc-card__cta:hover { text-decoration: underline; }
.uc-card__cta:focus-visible { outline: 2px solid var(--uc-indigo); outline-offset: 3px; border-radius: 4px; }
.uc-card__cta::after {
  content: "→";
  transition: transform .15s ease;
}
[dir="rtl"] .uc-card__cta::after { content: "←"; }
.uc-card:hover .uc-card__cta::after { transform: translateX(2px); }
[dir="rtl"] .uc-card:hover .uc-card__cta::after { transform: translateX(-2px); }

/* ---------- empty state ---------- */
.uc-empty { padding: 64px 0; text-align: center; }
.uc-empty p { margin: 0 0 16px; font-size: 15px; color: var(--uc-mute); }
.uc-btn {
  padding: 10px 18px;
  border: 1.5px solid var(--uc-indigo);
  border-radius: 10px;
  background: transparent;
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--uc-indigo-ink);
  cursor: pointer;
  transition: background-color .15s ease;
}
.uc-btn:hover { background: #F4F5FF; }
.uc-btn:focus-visible { outline: 2px solid var(--uc-indigo); outline-offset: 2px; }

/* ---------- responsive ---------- */
@media (max-width: 640px) {
  .uc-hero { padding: 48px 0 24px; }
  .uc-grid { grid-template-columns: 1fr; }
  .uc-op__c { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .uc-card, .uc-op, .uc-chip, .uc-card__cta::after, #uc-q { transition: none; }
}

/* ==========================================================================
   DETAIL DRAWER — prototype TemplateDrawer in marketing tokens (§2.1/§5)
   Right-hand drawer + scrim on desktop; full-height sheet on small screens.
   Logical properties throughout, so AR/HE mirror to the left edge with no
   direction-specific overrides.
   ========================================================================== */
body.uc-locked { overflow: hidden; }

.uc-drawer { position: fixed; inset: 0; z-index: 7000; }
.uc-drawer[hidden] { display: none; }

.uc-drawer__scrim {
  position: absolute;
  inset: 0;
  background: rgba(19, 21, 26, .42);
  opacity: 0;
  transition: opacity .18s ease;
}
.uc-drawer.is-open .uc-drawer__scrim { opacity: 1; }

.uc-drawer__panel {
  position: absolute;
  inset-block: 0;
  inset-inline-end: 0;               /* right in LTR, left in RTL */
  display: flex;
  flex-direction: column;
  width: min(560px, 100vw);
  background: #fff;
  box-shadow: -12px 0 40px rgba(19, 21, 26, .12);
  transform: translateX(100%);
  transition: transform .2s ease;
  outline: none;
}
[dir="rtl"] .uc-drawer__panel { transform: translateX(-100%); box-shadow: 12px 0 40px rgba(19, 21, 26, .12); }
.uc-drawer.is-open .uc-drawer__panel { transform: translateX(0); }

.uc-drawer__x {
  position: absolute;
  inset-block-start: 16px;
  inset-inline-end: 16px;
  display: flex;
  padding: 7px;
  border: 1.5px solid var(--uc-line, #ECECEF);
  border-radius: 9px;
  background: transparent;
  color: #6E6E78;
  cursor: pointer;
  z-index: 2;
  transition: border-color .15s ease, color .15s ease;
}
.uc-drawer__x:hover { border-color: #C9CBF5; color: #1E1E24; }
.uc-drawer__x:focus-visible { outline: 2px solid #6366f1; outline-offset: 2px; }
.uc-drawer__x svg { width: 16px; height: 16px; }

.uc-drawer__head { padding: 28px 28px 20px; border-bottom: 1px solid #ECECEF; }
.uc-drawer__meta { margin-bottom: 10px; padding-inline-end: 44px; }
.uc-drawer__chip {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 999px;
  background: #F4F4F6;
  font-size: 11px;
  font-weight: 600;
  color: #6E6E78;
}
.uc-drawer__title {
  margin: 0 0 16px;
  padding-inline-end: 44px;
  font-size: 23px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -.02em;
  color: #1E1E24;
}
.uc-drawer__goal { margin: 16px 0 0; font-size: 14.5px; line-height: 1.6; color: #4A4A54; }

/* ---- the revenue estimate ---- */

/* ---- body ---- */
.uc-drawer__body { flex: 1; overflow-y: auto; padding: 24px 28px; }
.uc-sec + .uc-sec { margin-top: 26px; }
.uc-sec__h {
  margin: 0 0 12px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #9A9AA2;
}

/* Apps this needs */
.uc-apps { display: flex; flex-direction: column; gap: 8px; }
.uc-app {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 11px;
  border: 1px solid #ECECEF;
  border-radius: 11px;
}
.uc-app__ic {
  display: flex; align-items: center; justify-content: center;
  flex: 0 0 32px; width: 32px; height: 32px;
  border-radius: 9px; background: #F3F4F6; color: #6366f1;
}
.uc-app__ic svg { width: 16px; height: 16px; }
.uc-app--green .uc-app__ic  { background: #EAF6EF; color: #2E8B57; }
.uc-app--amber .uc-app__ic  { background: #FDF3E6; color: #B77419; }
.uc-app--teal .uc-app__ic   { background: #E9F7F5; color: #2A9D8F; }
.uc-app--pink .uc-app__ic   { background: #FCEDF3; color: #C2508A; }
.uc-app--violet .uc-app__ic { background: #F1F0FE; color: #6D5BD0; }
.uc-app--blue .uc-app__ic   { background: #EAF1FE; color: #3B76D9; }
.uc-app__txt { flex: 1; min-width: 0; }
.uc-app__n { display: block; font-size: 13.5px; font-weight: 600; color: #1E1E24; }
.uc-app__d { display: block; margin-top: 1px; font-size: 11.5px; line-height: 1.45; color: #6E6E78; }
.uc-app__s {
  flex: 0 0 auto;
  padding: 3px 8px;
  border-radius: 999px;
  background: #F4F4F6;
  font-size: 10px;
  font-weight: 600;
  color: #6E6E78;
  white-space: nowrap;
}

/* How it works */
.uc-flow { margin: 0; padding: 0; list-style: none; counter-reset: ucstep; }
.uc-flow li {
  position: relative;
  counter-increment: ucstep;
  padding-inline-start: 34px;
  padding-block: 7px;
  font-size: 13.5px;
  line-height: 1.6;
  color: #4A4A54;
}
.uc-flow li::before {
  content: counter(ucstep);
  position: absolute;
  inset-inline-start: 0;
  top: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #F1F0FE;
  font-size: 11px;
  font-weight: 700;
  color: #4338ca;
}
.uc-flow li b { font-weight: 600; color: #1E1E24; }

/* Data sources */
.uc-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.uc-pill {
  padding: 5px 11px;
  border: 1px solid #ECECEF;
  border-radius: 999px;
  font-size: 12px;
  color: #4A4A54;
}

/* KPIs & revenue per customer */
.uc-kpis { margin: 0; padding: 0; list-style: none; }
.uc-kpi {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid #F4F4F6;
  font-size: 13px;
}
.uc-kpi:last-child { border-bottom: 0; }
.uc-kpi.is-off { opacity: .5; }
.uc-kpi__name { flex: 1; min-width: 0; color: #1E1E24; }
.uc-kpi__t { flex: 0 0 auto; color: #6E6E78; font-size: 12px; }
.uc-kpi__lbl { color: #9A9AA2; }
.uc-kpi__v { font-weight: 700; color: #1E1E24; }

/* ---- footer ---- */
.uc-drawer__foot {
  display: flex;
  gap: 10px;
  padding: 16px 28px;
  border-top: 1px solid #ECECEF;
  background: #fff;
}
.uc-btn--primary { flex: 1; border-color: #6366f1; background: transparent; color: #4338ca; }
.uc-btn--primary:hover { background: #F4F5FF; }

@media (max-width: 640px) {
  .uc-drawer__panel { width: 100vw; }
  .uc-drawer__head { padding: 24px 20px 18px; }
  .uc-drawer__body { padding: 20px; }
  .uc-drawer__foot { padding: 14px 20px; }
  .uc-app__s { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .uc-drawer__scrim, .uc-drawer__panel { transition: none; }
}

/* ==========================================================================
   /solutions — the industry index
   --------------------------------------------------------------------------
   Seven doors, nothing else. The tone tints are the same per-industry accents
   the mega-menu rail uses, so the two read as one system; every action stays
   indigo.
   ========================================================================== */
.si-grid-wrap { padding: 8px 0 72px; }
.si-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
}
.si-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 22px 20px;
  border: 1.5px solid #ECECEF;
  border-radius: 16px;
  background: #fff;
  text-decoration: none;
  transition: border-color .15s ease, background-color .15s ease;
}
.si-card:hover { border-color: var(--uc-indigo); background: #FAFAFF; }
.si-card:focus-visible { outline: 2px solid var(--uc-indigo); outline-offset: 2px; }
.si-card__ic {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin-bottom: 4px;
  border-radius: 11px;
  background: #F3F4F6;
  color: var(--uc-indigo);
}
.si-card__ic svg { width: 20px; height: 20px; }
.si-card__n { font-size: 17px; font-weight: 700; letter-spacing: -.015em; color: #1E1E24; }
.si-card__d { font-size: 13.5px; line-height: 1.5; color: #6E6E78; }
.si-card__c { margin-top: 4px; font-size: 12px; color: #9A9AA2; }
.si-card__c b { color: var(--uc-indigo-ink); }

.si-card--violet .si-card__ic { background: #EEF0FE; color: #4f46e5; }
.si-card--teal   .si-card__ic { background: #E4F4F1; color: #0d9488; }
.si-card--blue   .si-card__ic { background: #E8EFFD; color: #2563eb; }
.si-card--green  .si-card__ic { background: #E6F4EE; color: #059669; }
.si-card--amber  .si-card__ic { background: #FBF0E1; color: #b45309; }
.si-card--pink   .si-card__ic { background: #FBE9F1; color: #db2777; }

/* ==========================================================================
   /solutions/<industry>/<id> — the use-case detail page
   --------------------------------------------------------------------------
   The shareable, indexable twin of the drawer: same sections in the same
   order (§2.1), rendered statically so crawlers and build_locales.py both see
   them. It reuses the drawer's own .uc-sec / .uc-apps / .uc-flow / .uc-pills /
   .uc-kpis rules — those were already written standalone, with no .uc-drawer
   ancestor required. (The estimate card that used to sit in this hero is gone
   along with the rest of the revenue framing.)
   ========================================================================== */
.ucp-hero { padding: 56px 0 28px; }
.ucp-crumb {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 18px;
  font-size: 12.5px;
  color: #9A9AA2;
}
.ucp-crumb a { color: #6E6E78; text-decoration: none; }
.ucp-crumb a:hover { color: var(--uc-indigo-ink); text-decoration: underline; }
.ucp-crumb__s { color: #C9C9D1; }

.ucp-h1 {
  margin: 12px 0 12px;
  max-width: 20ch;
  font-size: clamp(28px, 3.6vw, 42px);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -.03em;
  color: #1E1E24;
}
.ucp-goal {
  margin: 0 0 24px;
  max-width: 62ch;
  font-size: 16px;
  line-height: 1.6;
  color: #4A4A54;
}
/* margin-top was clearing the estimate card that sat between the goal and the
   CTA; with that gone the button should follow the goal directly. */
.ucp-cta { margin-top: 4px; }

.ucp-body { padding: 8px 0 72px; }
.ucp-body .container { max-width: 820px; }
.ucp-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-top: 36px;
  padding-top: 24px;
  border-top: 1px solid #ECECEF;
}
/* .uc-btn--primary carries flex:1 for the drawer's two-button footer; here the
   buttons should size to their text instead of stretching across the page. */
.ucp-foot .uc-btn--primary,
.ucp-cta { flex: 0 0 auto; }
.ucp-foot .uc-btn { text-decoration: none; }

@media (max-width: 720px) {
  .ucp-hero { padding: 36px 0 20px; }
  .ucp-foot .uc-btn { width: 100%; text-align: center; }
}

/* ==========================================================================
   Benefit calculator — "what could this be worth to you?"
   --------------------------------------------------------------------------
   Replaces the old "≈ €X/mo est." badge. That badge asserted a euro figure from
   assumptions we made; this asks the visitor for the two numbers and multiplies
   them by the target already printed on the card. Every amount on screen is one
   they typed, so it is styled as a quiet result, not a headline claim.

   RTL: logical properties only. The amount itself is isolated in <bdi dir="ltr">
   in the markup — a currency string is LTR even inside an Arabic run.
   ========================================================================== */
.uc-calc__lede {
  margin: -4px 0 16px;
  font-size: 13px;
  color: var(--uc-mute);
}
.uc-calc__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
}
.uc-calc__f { display: flex; flex-direction: column; gap: 7px; }
.uc-calc__q {
  font-size: 12.5px;
  font-weight: 600;
  color: var(--uc-ink);
}
/* The volume nouns ("abandoned carts") were authored lowercase for a sentence —
   "assumes ~500 abandoned carts / month". As a standalone label they need a
   capital. ::first-letter rather than capitalize, which would upper-case every
   word, and rather than editing 78 nouns that read correctly mid-sentence. */
.uc-calc__q::first-letter { text-transform: uppercase; }
.uc-calc__in {
  width: 100%;
  padding: 11px 13px;
  border: 1.5px solid var(--uc-line);
  border-radius: 10px;
  background: #fff;
  font-family: inherit;
  font-size: 15px;
  color: var(--uc-ink);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.uc-calc__in:focus {
  outline: none;
  border-color: var(--uc-indigo);
  box-shadow: 0 0 0 3px rgba(99, 102, 241, .12);
}
/* currency + amount read as one control */
.uc-calc__money { display: flex; }
.uc-calc__cur {
  flex: 0 0 auto;
  padding: 11px 8px;
  border: 1.5px solid var(--uc-line);
  border-inline-end: 0;
  border-start-start-radius: 10px;
  border-end-start-radius: 10px;
  background: var(--uc-bg-soft);
  font-family: inherit;
  font-size: 15px;
  color: var(--uc-ink);
  cursor: pointer;
}
.uc-calc__cur:focus-visible { outline: 2px solid var(--uc-indigo); outline-offset: -2px; }
.uc-calc__money .uc-calc__in {
  border-start-start-radius: 0;
  border-end-start-radius: 0;
}

.uc-calc__empty {
  margin: 16px 0 0;
  font-size: 13px;
  color: #9A9AA2;
}
/* `display:flex` beats the UA's `[hidden] { display:none }`, so the result row
   rendered before the visitor had typed anything. Restore the attribute's
   meaning explicitly — it is what hides the (empty) figure until there is one. */
.uc-calc__out[hidden] { display: none; }
.uc-calc__out {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 10px;
  margin: 16px 0 0;
}
.uc-calc__figure {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -.02em;
  color: var(--uc-indigo-ink);
}
.uc-calc__figure > span[data-i18n] { font-size: 14px; font-weight: 600; color: var(--uc-mute); }
.uc-calc__approx { font-weight: 600; opacity: .6; }
.uc-calc__basis { font-size: 12.5px; color: var(--uc-mute); }
.uc-calc__note {
  margin: 10px 0 0;
  font-size: 11.5px;
  line-height: 1.5;
  color: #9A9AA2;
}

/* ==========================================================================
   Proof strip — the benefit bullets moved off the menu (§3 -> §4), shown as a
   value row above the footer.
   --------------------------------------------------------------------------
   Was rendering as a raw default <ul> (disc bullets, browser margins) because
   this block shipped without any CSS — the "unstyled list in a big gap" bug.
   Restyled to the section's own system: DM Sans (inherited from #uc-app), a
   hairline top rule to separate it from the card grid, and an indigo check in
   place of the disc. Logical properties, so ar/he mirror with no override.
   ========================================================================== */
.uc-proof {
  padding: 40px 0 64px;
  border-top: 1px solid var(--uc-line);
}
.uc-proof__eyebrow {
  margin: 0 0 20px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #9A9AA2;
}
.uc-proof__l {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px 28px;
}
.uc-proof__i {
  position: relative;
  padding-inline-start: 32px;
  font-size: 15px;
  line-height: 1.5;
  color: var(--uc-ink);
}
/* Indigo tick in a soft disc — the section's accent, matching the card icons.
   Inline SVG data URI keeps it a pure-CSS list marker: no per-item markup, so
   it survives translation and mirroring untouched. */
.uc-proof__i::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  top: 0;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: #EEF0FE
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236366f1' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E")
    center / 13px 13px no-repeat;
}
