/* BoleteraDigital font policy — build 77
   Only two families are allowed in rendered pages:
   1. SF Pro / native system display stack for principal titles.
   2. SF Pro / native system stack for every other interface element.

   The deliberately high specificity below repairs older page styles that used
   Grift Regular/Bold, JetBrains Mono, Verifier Mono or generic monospace faces.
   It also applies the display face to every descendant inside a title, which
   prevents mixed-font headings when a title contains spans or highlighted text.
*/
:root{
  --bd-font-system:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Helvetica Neue","Segoe UI",Arial,sans-serif;
  --bd-font-display:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue","Segoe UI",Arial,sans-serif;
  --bd-title-tracking:-.006em;
  --bd-title-leading:1.02;
  --bd-type-body:var(--bd-font-system);
  --bd-type-control:var(--bd-font-system);
  --bd-type-numeric:var(--bd-font-system);
  --bd-type-display:var(--bd-font-display);
}

/* Four impossible body IDs give this policy enough specificity to beat legacy
   !important declarations without changing the visual structure of each page. */
html body:not(#bd-font-lock-a):not(#bd-font-lock-b):not(#bd-font-lock-c):not(#bd-font-lock-d),
html body:not(#bd-font-lock-a):not(#bd-font-lock-b):not(#bd-font-lock-c):not(#bd-font-lock-d) *,
html body:not(#bd-font-lock-a):not(#bd-font-lock-b):not(#bd-font-lock-c):not(#bd-font-lock-d) *::before,
html body:not(#bd-font-lock-a):not(#bd-font-lock-b):not(#bd-font-lock-c):not(#bd-font-lock-d) *::after{
  font-family:var(--bd-font-system)!important;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}

/* Principal editorial/page titles. Subtitle classes are intentionally excluded. */
html body:not(#bd-font-lock-a):not(#bd-font-lock-b):not(#bd-font-lock-c):not(#bd-font-lock-d) :is(
  h1,h2,
  .title,.page-title,.hero-title,.section-title,.screen-title,.modal-title,.dialog-title,
  .panel-title,.form-title,.header-title,.legal-title,.dashboard-title,.sorteo-title,
  .verifier-title,.bd-pricing-hero__title,.bd-section-intro__title,
  .titulo,.titulo-sorteo,.main-title,
  #titulo,#titulo-principal,#verified-title,
  [class$="__title" i]:not([class*="subtitle" i]),
  [class$="-title" i]:not([class*="subtitle" i])
),
html body:not(#bd-font-lock-a):not(#bd-font-lock-b):not(#bd-font-lock-c):not(#bd-font-lock-d) :is(
  h1,h2,
  .title,.page-title,.hero-title,.section-title,.screen-title,.modal-title,.dialog-title,
  .panel-title,.form-title,.header-title,.legal-title,.dashboard-title,.sorteo-title,
  .verifier-title,.bd-pricing-hero__title,.bd-section-intro__title,
  .titulo,.titulo-sorteo,.main-title,
  #titulo,#titulo-principal,#verified-title,
  [class$="__title" i]:not([class*="subtitle" i]),
  [class$="-title" i]:not([class*="subtitle" i])
 ) *,
html body:not(#bd-font-lock-a):not(#bd-font-lock-b):not(#bd-font-lock-c):not(#bd-font-lock-d) :is(
  h1,h2,
  .title,.page-title,.hero-title,.section-title,.screen-title,.modal-title,.dialog-title,
  .panel-title,.form-title,.header-title,.legal-title,.dashboard-title,.sorteo-title,
  .verifier-title,.bd-pricing-hero__title,.bd-section-intro__title,
  .titulo,.titulo-sorteo,.main-title,
  #titulo,#titulo-principal,#verified-title,
  [class$="__title" i]:not([class*="subtitle" i]),
  [class$="-title" i]:not([class*="subtitle" i])
) *::before,
html body:not(#bd-font-lock-a):not(#bd-font-lock-b):not(#bd-font-lock-c):not(#bd-font-lock-d) :is(
  h1,h2,
  .title,.page-title,.hero-title,.section-title,.screen-title,.modal-title,.dialog-title,
  .panel-title,.form-title,.header-title,.legal-title,.dashboard-title,.sorteo-title,
  .verifier-title,.bd-pricing-hero__title,.bd-section-intro__title,
  .titulo,.titulo-sorteo,.main-title,
  #titulo,#titulo-principal,#verified-title,
  [class$="__title" i]:not([class*="subtitle" i]),
  [class$="-title" i]:not([class*="subtitle" i])
) *::after{
  font-family:var(--bd-font-display)!important;
  font-weight:900!important;
  font-style:normal!important;
  font-stretch:normal!important;
  font-synthesis:none!important;
  font-variation-settings:normal!important;
  font-kerning:normal!important;
  font-feature-settings:"kern" 1!important;
  letter-spacing:var(--bd-title-tracking)!important;
  line-height:var(--bd-title-leading);
}

/* Controls, numbers, code-like values and rich text remain in the native stack. */
html body:not(#bd-font-lock-a):not(#bd-font-lock-b):not(#bd-font-lock-c):not(#bd-font-lock-d) :is(
  button,input,select,textarea,optgroup,option,[role="button"],
  code,pre,kbd,samp,time,data,output,
  .numero,.numeros,.ticket-number,.ticket-code,.ticket-folio,.verifier-ticket,
  .selected-inline-chip,.winner-ticket,.winner-number-input
),
html body:not(#bd-font-lock-a):not(#bd-font-lock-b):not(#bd-font-lock-c):not(#bd-font-lock-d) :is(
  button,input,select,textarea,optgroup,option,[role="button"],
  code,pre,kbd,samp,time,data,output,
  .numero,.numeros,.ticket-number,.ticket-code,.ticket-folio,.verifier-ticket,
  .selected-inline-chip,.winner-ticket,.winner-number-input
) *{
  font-family:var(--bd-font-system)!important;
}

html body:not(#bd-font-lock-a):not(#bd-font-lock-b):not(#bd-font-lock-c):not(#bd-font-lock-d) :is(
  time,data,output,input[type="number"],input[type="tel"],input[inputmode="numeric"],
  .numero,.numeros,.ticket-number,.ticket-code,.ticket-folio,.verifier-ticket,
  .selected-inline-chip,.winner-ticket,.winner-number-input,
  [data-numeric],[data-price],[data-count],[data-total],[data-amount]
){
  font-variant-numeric:tabular-nums lining-nums!important;
  font-feature-settings:"tnum" 1,"lnum" 1!important;
}

/* User-authored raffle description/details always use the reading face while
   preserving their colors, sizes, emphasis, links and alignment. */
html body.sorteo-page:not(#bd-font-lock-a):not(#bd-font-lock-b):not(#bd-font-lock-c):not(#bd-font-lock-d) :is(
  #descripcion,#descripcion *,#detalles-content,#detalles-content *
){
  font-family:var(--bd-font-system)!important;
}

@media (max-width:720px){
  :root{
    --bd-title-tracking:-.002em;
    --bd-title-leading:1.04;
  }
}

/* build227: auditoría tipográfica global — cajas seguras y ritmo consistente */
:root{
  --bd-title-tracking:-.003em;
  --bd-title-leading:1.075;
}
html body:not(#bd-font-lock-a):not(#bd-font-lock-b):not(#bd-font-lock-c):not(#bd-font-lock-d) :is(
  h1,h2,
  .title,.page-title,.hero-title,.section-title,.screen-title,.modal-title,.dialog-title,
  .panel-title,.form-title,.header-title,.legal-title,.dashboard-title,.sorteo-title,
  .verifier-title,.bd-pricing-hero__title,.bd-section-intro__title,
  .titulo,.titulo-sorteo,.main-title,
  #titulo,#titulo-principal,#verified-title,
  [class$="__title" i]:not([class*="subtitle" i]),
  [class$="-title" i]:not([class*="subtitle" i])
){
  overflow:visible!important;
  line-height:var(--bd-title-leading)!important;
  letter-spacing:var(--bd-title-tracking)!important;
  max-inline-size:100%;
  padding-block:.045em .075em;
  padding-inline:.018em;
  margin-inline:-.018em;
  text-wrap:balance;
  -webkit-box-decoration-break:clone;
  box-decoration-break:clone;
}
html body:not(#bd-font-lock-a):not(#bd-font-lock-b):not(#bd-font-lock-c):not(#bd-font-lock-d) :is(
  p,li,dd,dt,label,small,.subtitle,[class*="description" i],[class*="helper" i],[class*="message" i]
){
  text-wrap:pretty;
}
html body:not(#bd-font-lock-a):not(#bd-font-lock-b):not(#bd-font-lock-c):not(#bd-font-lock-d) :is(button,input,select,textarea,[role="button"]){
  line-height:1.2;
}
@media(max-width:720px){
  :root{--bd-title-tracking:-.001em;--bd-title-leading:1.09}
}
