/* =========================================================================
   mm-apex-type.css — tipografia da pele Apex (app Mcorpo Life) nas
   PÁGINAS LOGADAS do site. Incluído SÓ nas páginas que funcionam como app
   (today, dieta, stack, treino, metabolismo, cardio, score...). Nunca na
   home nem nas páginas de marketing.

   Três papéis:
     Clash Grotesk  → títulos (h1–h3 e classes de título das páginas)
     DM Mono        → números de destaque, métricas, valores, horários
     Barlow         → texto corrido, botões, rótulos

   Só muda FAMÍLIA, peso, caixa e entrelinha dos títulos. Cores, layout e
   as animações IX2 do Webflow ficam como estão. O cromo do site (navbar,
   menu mobile, CTA e rodapé) é o mesmo das páginas de marketing e fica
   intocado.

   Por que tanto !important: estas páginas declaram a fonte em estilo inline
   (centenas de style="font-family:'Satoshi Variable'..."), e regra inline só
   perde para !important. A regra universal usa :where() e tem especificidade
   ZERO, então qualquer outro !important da casa (ícones do Webflow, Caveat
   da assinatura) continua vencendo.
   ========================================================================= */

:root{
  --mm-f-display:'Clash Grotesk','Barlow',system-ui,sans-serif;
  --mm-f-mono:'DM Mono',ui-monospace,'SF Mono',monospace;
  --mm-f-text:'Barlow',system-ui,-apple-system,'Segoe UI',sans-serif;
}

/* ---------- cromo do site: restaura a fonte original (herança) ---------- */
:is(.navbar,.w-nav,.w-nav-overlay,.mm-mobile-subpanel,.cta-sc,.footer-sc){
  font-family:'Satoshi Variable',sans-serif;
}

/* ---------- texto corrido, botões e rótulos → Barlow ---------- */
html body{ font-family:var(--mm-f-text); }

:where(body) :where(*:not(:is(.navbar,.w-nav,.w-nav-overlay,.mm-mobile-subpanel,.cta-sc,.footer-sc),
  :is(.navbar,.w-nav,.w-nav-overlay,.mm-mobile-subpanel,.cta-sc,.footer-sc) *)){
  font-family:var(--mm-f-text) !important;
}

/* ---------- títulos → Clash Grotesk ---------- */
body :is(
  h1,h2,h3,
  .heading,.heading-2,.heading-3,.heading-4,.heading-5,.heading-6,.loja-h1,
  .mm-hero-headline,
  [style*="Wixmadefordisplay"],[style*="Special Gothic"],
  /* títulos de página das telas enxutas */
  .ag-title,.ar-title,.bf-title,.cf-title,.cgm-title,.di-title,.ex-title,
  .gr-title,.hl-title,.mz-title,.rc-title,.sc-title,
  /* nomes e rótulos em display */
  .mz-hero-name,.treino-foco-nome,.treino-finisher-eyebrow,
  .treino-day-letter,.stack-mark,.pf-avatar,
  .rc-gauge-band,.today-gauge-band
):not(:is(.navbar,.w-nav,.w-nav-overlay,.mm-mobile-subpanel,.cta-sc,.footer-sc) *){
  font-family:var(--mm-f-display) !important;
  font-weight:600 !important;
  letter-spacing:-.01em !important;
  font-feature-settings:normal;
}

/* Títulos de página: caixa alta, entrelinha curta da pele Apex.
   O padding em em dá respiro para Ç, Ã, É não serem cortados quando o
   título usa texto com degradê (background-clip:text pinta só a caixa). */
body :is(h1,.loja-h1,.mm-hero-headline,
  .ag-title,.ar-title,.bf-title,.cf-title,.cgm-title,.di-title,.ex-title,
  .gr-title,.hl-title,.mz-title,.rc-title,.sc-title
):not(:is(.navbar,.w-nav,.w-nav-overlay,.mm-mobile-subpanel,.cta-sc,.footer-sc) *){
  text-transform:uppercase !important;
  line-height:.96 !important;
  padding-top:.08em;
  padding-bottom:.04em;
}

/* Títulos de seção: caixa original, entrelinha 1. */
body :is(h2,h3):not(:is(.navbar,.w-nav,.w-nav-overlay,.mm-mobile-subpanel,.cta-sc,.footer-sc) *){
  line-height:1 !important;
  padding-top:.06em;
}

/* ---------- números de destaque → DM Mono, algarismos tabulares ---------- */
html body :is(
  [style*="Geist Mono"],[style*="DM Mono"],[style*="tabular-nums"],
  svg text,svg tspan,
  /* hoje */
  .today-kpi-num,.today-gauge-num,.today-gauge-out,.today-contest-num,
  .today-tl-time,.today-cchip-val,.mm-ag-time,.mm-ag-count,
  .pg-pct,.pg-stat-val,.pg-empty-preview-pct,
  /* dieta, receitas, leitura da dieta, refeição por foto */
  .dieta-balance-now,.dieta-balance-sep,.dieta-balance-target,
  .dieta-meal-kcal,.dieta-meal-time,.dieta-meal-macros,.dieta-mrul-val,
  .dieta-stat-num,.dieta-tpl-kcal,.dieta-tpl-macros,.dieta-meals-counter,
  .dieta-fm-input.is-kcal,.dieta-ref-esc button,
  .mm-ref-item .q,.mm-ref-m .v,
  .rc-item .q,.rc-macro .v,.rc-r-macros,
  .di-hero-n,.di-macro-v,.di-dia-a,.di-dia-d,.di-dia-k,
  /* stack */
  .stack-dose,.stack-doses-now,.stack-doses-sep,.stack-doses-target,
  .stack-stat-num,.stack-tier-val,.stack-list-counter,
  /* treino e meus treinos */
  .treino-ex-num,.treino-ex-sets,.treino-stat-num,.treino-ex-counter,
  .treino-ex-presc-val,.treino-biset-codes,.treino-biset-combo-tag,
  .treino-exec-inp,.treino-exec-stat b,.treino-fim-cell b,
  .treino-fim-rpe button,.treino-foco-anel-n,.treino-foco-campos input,
  .treino-rest-n,
  .mt-active-week-num,.mt-active-week-sep,.mt-active-week-tot,
  .mt-prs-value,.mt-stat-num,.mt-ex-linha input.num,.mt-lib-date,
  .mt-prs-date,.mt-prs-delta,.mt-prs-rep,
  /* metabolismo, cafeína, água, arena, cardio */
  .cgm-now,.cgm-tile-v,.cgm-tir-pct,.cgm-meal-pk,
  .cf-now,
  .ag-total,.ag-pct,.ag-log .amt,.ag-q .ml,
  .ar-crono,.ar-met .v,.ar-sess-d,.ar-sess-k,.ar-campo input,
  .cardio-side-km,.cardio-side-sub,
  /* score, saúde, força, prontidão, modos, benefícios */
  .sc-hero-num,
  .hl-ring-n,.hl-tile-v,.hl-stress-v,
  .fv-donut-n,.fv-leg-s,.fv-prog-d,.fv-prog-e,
  .mr-pct,.mr-pill b,
  .mz-meta .v,.mz-lemb .h,
  .bf-saldo-n,.bf-b-pts,
  /* recuperação */
  .rc-gauge-num,.rc-gauge-out,.rc-habit-now,.rc-habit-sep,.rc-habit-target,
  .rc-hist-avg,.rc-stat-num,.rc-var-val,.rc-hist-min-max,.rc-hist-x-lbl,
  .rc-rec-when,
  /* progresso, medidas, fotos, hábitos, histórico */
  .st-badge-num,.st-chart-delta-val,.st-meas-bf,.st-meas-weight,
  .st-metric-val,.st-stat-num,.st-chart-grid-lbl,.st-chart-grid-lbl-bf,
  .st-chart-x-lbl,.st-meas-date,.st-meas-delta,.st-metric-delta,
  .md-master-metric-num,.md-metric-num,.md-stat-num,.md-tl-date,
  .md-tl-pill strong,.md-form-field input,
  .ft-stat-num,.ft-compare-pill strong,.ft-session-stat strong,.ft-session-date,
  .hb-stat-num,.hb-master-title strong,
  .hs-stat-num,.hs-event-time,.hs-today-event-time,.hs-filter-count,
  /* perfil, conta, pedidos, notificações, meus dados, anamnese, objetivo */
  .pf-ring-num,.pf-stat-num,.pf-plan-bill-val,
  .ct-bill-amount,.ct-plan-bill-val,.ct-plan-price,.ct-plan-price-cents,
  .ct-stat-num,.ct-bill-date,.ct-bill-desc-meta,.ct-pay-num,
  .mp-order-total,.mp-stat-num,.mp-filter-count,.mp-order-date,
  .mp-order-item-total,.mp-order-track-code,
  .nf-stat-num,.nf-time-value,
  .pv-stat-num,
  .an-stat-num,.an-chip-label.is-scale,
  .obj-hero-microrow .obj-step strong
):not(:is(.navbar,.w-nav,.w-nav-overlay,.mm-mobile-subpanel,.cta-sc,.footer-sc) *){
  font-family:var(--mm-f-mono) !important;
  font-weight:500 !important;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.03em !important;
  /* espaço de milhar ("1 200") ocupa uma célula inteira na mono: encurta */
  word-spacing:-.3em;
}
