/* BoleteraDigital typography policy — Build410.
   Grift Black is loaded as a real same-origin webfont through the runtime font
   endpoint, backed by a persistent private asset on the server. This makes the
   display face identical on iOS, Android and desktop without relying on fonts
   installed on the visitor device. The fallback remains deterministic when the
   private asset has not been installed yet. */
:root{
  --bd-font-system:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Helvetica Neue","Segoe UI",Roboto,Arial,sans-serif;
  --bd-font-display:"Arial Black","SF Pro Display","Helvetica Neue","Segoe UI",Roboto,Arial,sans-serif;
  --bd-title-tracking:-.04em;
  --bd-title-leading:.98;
  --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:-.04em;
    --bd-title-leading:.98;
  }
}

/* build227: auditoría tipográfica global — cajas seguras y ritmo consistente */
:root{
  --bd-title-tracking:-.04em;
  --bd-title-leading:.98;
}
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:-.04em;--bd-title-leading:.98}
}
