/*
 * D'ASCOLA TECK — SISTEMA TIPOGRÁFICO PREMIUM · 2026-11-02
 * Aplicado DEPOIS de todos os CSS do site institucional e do portal do cliente.
 * Fonte única para interface: Inter, pesos 400–800. Preserva estilos visuais,
 * cores, gradientes, temas, efeitos, navegação, gráficos e funcionalidades.
 * Exceção semântica: conteúdo que representa código usa monospace.
 */
:root {
  --dt-type-family: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --dt-type-mono: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
  --dt-type-hero: clamp(2.7rem, 4.25vw, 3.625rem); /* 43.2–58 px */
  --dt-type-section: clamp(1.875rem, 3vw, 2.625rem); /* 30–42 px */
  --dt-type-subheading: clamp(1.25rem, 2vw, 1.625rem);
  --dt-type-body: 1rem;
  --dt-type-secondary: .875rem;
  --dt-type-caption: .75rem;
}
html { text-size-adjust: 100%; -webkit-text-size-adjust: 100%; }
body.dt-experience {
  font-family: var(--dt-type-family) !important;
  font-size: var(--dt-type-body);
  line-height: 1.58;
  font-optical-sizing: auto;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
/* A fonte vale também para elementos com `font-family` definido nos CSS legados. */
body.dt-experience :is(
  h1,h2,h3,h4,h5,h6,p,small,a,span,strong,b,label,legend,summary,
  button,input,select,textarea,option,th,td,blockquote,figcaption,dt,dd,
  .brand,.brand-wordmark,.ticker-title,.eyebrow,.nx-kicker,
  .dt-refresh,.dt-contact-r4,.dt-about-premium,.pf-focus,.pf10,.pf17,
  .dt-v17-client-layout,.dt-workspace-app,.dt-radar,.dt-footer-compact
) { font-family: var(--dt-type-family) !important; }
/* Não substituir a fonte dos códigos exibidos no editor ou em documentos técnicos. */
body.dt-experience :is(pre,code,kbd,samp,.dt-refresh-editor-code,.dt-refresh-editor-gutter,
  .dt-refresh-editor-tabs,.dt-refresh-editor-top,.dt-refresh-editor-bottom),
body.dt-experience :is(pre,code,kbd,samp,.dt-refresh-editor-code,.dt-refresh-editor-gutter,
  .dt-refresh-editor-tabs,.dt-refresh-editor-top,.dt-refresh-editor-bottom) :is(span,b,strong,small) {
  font-family: var(--dt-type-mono) !important;
}
/* Hierarquia editorial: peso consistente, tracking natural, sem tipografia inflada. */
body.dt-experience :is(h1,h2,h3,h4,h5,h6) {
  font-weight: 700 !important;
  letter-spacing: -.032em !important;
  text-wrap: balance;
}
body.dt-experience h1 { line-height: 1.12 !important; }
body.dt-experience h2 { line-height: 1.19 !important; }
body.dt-experience :is(h3,h4,h5,h6) { line-height: 1.28 !important; }
body.dt-experience :is(p,li,dd,blockquote) { overflow-wrap: break-word; }
body.dt-experience :is(p,li) { letter-spacing: -.005em; }
body.dt-experience :is(small,figcaption,.caption) { letter-spacing: 0 !important; }
body.dt-experience :is(button,.btn,input,select,textarea) { letter-spacing: -.005em; }
body.dt-experience :is(button,.btn) { font-weight: 600; }
body.dt-experience :is(strong,b) { font-weight: 700; }
body.dt-experience :is(.brand-wordmark,.brand-wordmark b,.brand b) { font-weight: 800 !important; letter-spacing: -.035em !important; }
/* Manter a navegação compacta, porém com leitura natural. */
body.dt-experience .site-nav > a:not(.btn) {
  font-size: .875rem !important;
  font-weight: 600 !important;
  letter-spacing: -.01em !important;
}
body.dt-experience .site-nav :is(.btn,.nav-account) {
  font-size: .875rem !important;
  font-weight: 600 !important;
}
/* Títulos de abertura institucionais: uma escala, preservando cor/gradientes e posição. */
body.dt-public :is(
  .dt-refresh-hero,.dt-v11-sol-hero,.dt-v11-contact-hero,.dt-contact-r4,
  .dt-about-v8-hero,.pf-focus-hero,.pf10-intro,.inner-hero,.hero
) h1,
body.dt-public .dt-about-v8-intro h1 {
  font-size: var(--dt-type-hero) !important;
  font-weight: 700 !important;
  letter-spacing: -.043em !important;
  line-height: 1.115 !important;
}
body.dt-public .dt-refresh-title :is(.dt-refresh-title-main,.dt-refresh-title-highlight) {
  font-weight: 700 !important;
  letter-spacing: inherit !important;
}
/* Não interferir na animação, no gradiente ou na linha luminosa do título. */
body.dt-public :is(
  .dt-refresh-heading,.dt-refresh-lab-copy,.dt-refresh-social-copy,
  .dt-refresh-radar-copy,.section-intro,.solutions-compact-heading,
  .dt-v12-sol-overview-head,.dt-v12-sol-process-head,
  .dt-about-premium .dt-about-v8-section-heading,
  .pf-focus .pf-focus-section-head,
  .pf10 .pf10-section-head,.dt-contact-r4 .dt-contact-section-head
) h2 {
  font-size: var(--dt-type-section) !important;
  letter-spacing: -.035em !important;
  line-height: 1.18 !important;
}
body.dt-public :is(
  .dt-refresh-service-card,.pf17-card,.pf10-card,.service-card,
  .portfolio-card,.dt-v11-sol-card,.dt-v12-sol-card,.pf-focus .pf-focus-card
) h3 {
  font-size: clamp(1.075rem,1.45vw,1.3rem) !important;
  letter-spacing: -.022em !important;
  line-height: 1.3 !important;
  font-weight: 700 !important;
}
/* Textos de leitura: elevar microtextos históricos de 12–13px em cards. */
body.dt-public :is(
  .dt-refresh-service-card,.pf17-card,.pf10-card,.service-card,
  .portfolio-card,.dt-v11-sol-card,.dt-v12-sol-card
) p {
  font-size: clamp(.875rem,1.05vw,.9375rem) !important;
  line-height: 1.55 !important;
}
body.dt-public :is(
  .dt-refresh-hero .dt-refresh-hero-description,
  .dt-refresh-hero .nx-hero-copy > p,
  .pf-focus-hero > p,.pf-focus-hero .pf-focus-lead,
  .dt-about-premium .dt-about-v8-lead
) {
  font-size: clamp(.9375rem,1.27vw,1.0625rem) !important;
  line-height: 1.66 !important;
  letter-spacing: -.008em;
}
body.dt-public :is(.dt-refresh-heading,.dt-refresh-social-copy,.dt-refresh-lab-copy) > p {
  font-size: clamp(.9375rem,1.17vw,1rem) !important;
  line-height: 1.65 !important;
}
body.dt-public :is(.eyebrow,.dt-refresh-kicker,.dt-refresh-lab-kicker,.dt-refresh-radar-kicker) {
  font-size: .6875rem !important;
  font-weight: 700 !important;
  letter-spacing: .11em !important;
  line-height: 1.5;
}
body.dt-public :is(.btn,.dt-refresh-instagram-button,.dt-footer-beam-button) {
  font-size: .875rem !important;
  font-weight: 600 !important;
}
body.dt-public :is(.site-footer,.dt-footer-compact) :is(h2,h3,strong) {
  font-weight: 700 !important;
  letter-spacing: -.02em !important;
}
/* Workspace cliente/admin: diferenças menores entre hierarquias reduzem ruído. */
body.dt-workspace-mode :is(.portal-heading h1,.dt-ws-content > h1) {
  font-size: clamp(1.625rem,2.2vw,2.125rem) !important;
  font-weight: 700 !important;
  letter-spacing: -.035em !important;
}
body.dt-workspace-mode :is(.dt-v17-welcome h1,.dt-v18-profile-banner h1) {
  font-size: clamp(1.75rem,2.6vw,2.25rem) !important;
  font-weight: 700 !important;
  letter-spacing: -.035em !important;
}
body.dt-workspace-mode :is(.panel h2,.dt-v17-section-head h2,.dt-v17-card-head h2) {
  font-size: clamp(1.125rem,1.45vw,1.375rem) !important;
  line-height: 1.25 !important;
  letter-spacing: -.025em !important;
}
body.dt-workspace-mode :is(.panel h3,.dt-v18-profile-card h3,.dt-v18-profile-photo h3) {
  font-size: clamp(1rem,1.25vw,1.125rem) !important;
}
body.dt-workspace-mode :is(.panel p,.portal-heading p,.dt-v17-welcome p) {
  font-size: .875rem !important;
  line-height: 1.6 !important;
}
body.dt-workspace-mode .dt-workspace-app .dt-ws-nav a.dt-ws-nav-link {
  font-size: .8125rem !important;
  font-weight: 600 !important;
  letter-spacing: -.008em !important;
}
body.dt-workspace-mode :is(.dt-ws-topbar,.dt-ws-user,.dt-ws-content,.panel) :is(label,legend) {
  font-weight: 600;
}
body.dt-workspace-mode :is(.data-table th,.data-table td) {
  font-size: .8125rem !important;
  line-height: 1.48 !important;
  letter-spacing: 0 !important;
}
body.dt-workspace-mode .data-table th { font-weight: 700 !important; }
body.dt-workspace-mode :is(.dt-exec-kpi strong,.dt-v17-stat strong,.metric-row b) {
  font-weight: 700 !important;
  letter-spacing: -.03em !important;
}
body.dt-workspace-mode :is(.btn,.panel button,.dt-ws-content button) {
  font-size: .8125rem !important;
  font-weight: 600 !important;
}
body.dt-workspace-mode :is(input,select,textarea) {
  font-size: .875rem !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
}
/* Autenticação e políticas: hierarquia limpa com campos legíveis. */
body.dt-auth-next :is(h1,.auth-card h2) {
  font-size: clamp(1.625rem,2.5vw,2.25rem) !important;
  font-weight: 700 !important;
  letter-spacing: -.035em !important;
}
body.dt-auth-next :is(p,label,.auth-help) { line-height: 1.58 !important; }
/* Variações de tema usam os mesmos pesos/tamanhos; cores vêm dos CSS existentes. */
@media (min-width: 1440px) {
  body.dt-public .dt-refresh-hero .nx-hero-grid { min-height: 0; }
}
@media (max-width: 900px) {
  :root {
    --dt-type-hero: clamp(2.125rem,5vw,2.875rem);
    --dt-type-section: clamp(1.625rem,3.5vw,2.125rem);
  }
}
@media (max-width: 767px) {
  :root {
    --dt-type-hero: clamp(2rem,8.3vw,2.5rem); /* 32–40px */
    --dt-type-section: clamp(1.5rem,6.4vw,1.875rem); /* 24–30px */
    --dt-type-subheading: 1.125rem;
    --dt-type-body: .9375rem;
  }
  body.dt-experience { line-height: 1.52; }
  body.dt-public :is(
    .dt-refresh-hero,.dt-v11-sol-hero,.dt-v11-contact-hero,
    .dt-contact-r4,.dt-about-v8-hero,.pf-focus-hero,.pf10-intro,.inner-hero,.hero
  ) h1,
  body.dt-public .dt-about-v8-intro h1 {
    font-size: var(--dt-type-hero) !important;
    letter-spacing: -.037em !important;
    line-height: 1.16 !important;
  }
  body.dt-public .dt-refresh-hero .nx-hero-grid {
    min-height: 0 !important;
    padding-block: 38px 44px !important;
    gap: 24px !important;
  }
  body.dt-public .dt-refresh-hero h1 { margin-block: 13px 17px !important; }
  body.dt-public .dt-refresh-hero .nx-hero-index { margin-top: 22px !important; gap: 8px 13px !important; }
  body.dt-public .dt-refresh-hero .nx-hero-copy > p,
  body.dt-public .dt-refresh-hero .dt-refresh-hero-description {
    font-size: .9375rem !important; line-height: 1.56 !important;
  }
  body.dt-public :is(
    .dt-refresh-solutions,.dt-refresh-trajectory,.dt-refresh-lab,
    .dt-refresh-social,.dt-refresh-radar,.dt-refresh-single-cta-section
  ) { padding-block: 48px !important; }
  body.dt-public .dt-refresh-heading { margin-bottom: 23px !important; }
  body.dt-public .dt-refresh-heading h2 { margin-block: 8px 11px !important; }
  body.dt-public .dt-refresh-service-card { padding: 19px !important; }
  body.dt-public .dt-refresh-service-card .dt-refresh-service-icon { margin-bottom: 14px !important; }
  body.dt-public .dt-refresh-services-grid { gap: 12px !important; }
  body.dt-public :is(.dt-refresh-service-card,.pf17-card,.pf10-card,.service-card,.portfolio-card) p {
    font-size: .875rem !important; line-height: 1.48 !important;
  }
  body.dt-public :is(.dt-refresh-service-card,.pf17-card,.pf10-card,.service-card,.portfolio-card) h3 {
    font-size: 1.0625rem !important; line-height: 1.25 !important;
  }
  body.dt-public :is(.dt-refresh-lab-copy,.dt-refresh-social-copy) h2 { margin-block: 12px 15px !important; }
  body.dt-public :is(.dt-refresh-lab-copy,.dt-refresh-social-copy) p { line-height: 1.55 !important; }
  /* Densidade confortável nas demais páginas, sem remover conteúdo ou mídia. */
  body.dt-public :is(.pf-focus-hero,.pf-focus-stage,.pf-focus-end,
    .dt-about-v8-story,.dt-about-v8-values,.dt-about-premium-next,
    .dt-contact-r4-main) { padding-block: 45px !important; }
  body.dt-public .dt-contact-r4-hero-grid { padding-block: 42px !important; }
  body.dt-public :is(.dt-v11-sol-hero-grid,.dt-v11-contact-hero-grid) {
    min-height: 0 !important;
    padding-block: 42px !important;
  }
  body.dt-public :is(.pf-focus-section-heading,.dt-about-v8-values-head,.dt-contact-r4-heading) h2 {
    font-size: var(--dt-type-section) !important;
    line-height: 1.18 !important;
  }
  body.dt-public :is(.pf-focus-end,.pf-focus-stage) h2 {
    font-size: var(--dt-type-section) !important;
  }
  body.dt-public :is(.dt-contact-r4-card,.dt-about-v8-values-grid > article) h3 {
    font-size: 1.0625rem !important;
  }
  body.dt-public :is(.dt-contact-r4-card,.dt-about-v8-values-grid > article) p {
    font-size: .875rem !important;
    line-height: 1.52 !important;
  }
  body.dt-public :is(.dt-contact-r4 input,.dt-contact-r4 textarea,.dt-contact-r4 select,
    .pf-focus-search input,.pf-focus-toolbar input) {
    font-size: 1rem !important; /* Controles legíveis, sem zoom no iOS. */
  }
  body.dt-public .dt-refresh-title-main::after { height: 4px !important; }
  body.dt-public :is(.eyebrow,.dt-refresh-kicker,.dt-refresh-lab-kicker,.dt-refresh-radar-kicker) {
    font-size: .625rem !important; letter-spacing: .08em !important;
  }
  body.dt-workspace-mode :is(.portal-heading h1,.dt-ws-content > h1) {
    font-size: clamp(1.5rem,6.2vw,1.75rem) !important;
  }
  body.dt-workspace-mode :is(.dt-v17-welcome h1,.dt-v18-profile-banner h1) {
    font-size: clamp(1.625rem,6.3vw,1.875rem) !important;
  }
  body.dt-workspace-mode .portal-heading { margin-bottom: 15px !important; }
  body.dt-workspace-mode .panel { margin-bottom: 13px !important; }
  body.dt-workspace-mode :is(.dt-ws-content,.dt-ws-main,.panel) :is(input,select,textarea),
  body.dt-auth-next :is(input,select,textarea) {
    font-size: 1rem !important; /* Evita zoom automático no Safari iOS. */
  }
  body.dt-workspace-mode :is(.data-table th,.data-table td) { font-size: .78125rem !important; }
  body.dt-workspace-mode :is(.panel p,.portal-heading p,.dt-v17-welcome p) { font-size: .875rem !important; }
  body.dt-workspace-mode :is(.dt-ws-content button,.dt-ws-content .btn) { font-size: .8125rem !important; }
  body.dt-auth-next :is(h1,.auth-card h2) { font-size: 1.625rem !important; }
}
@media (max-width: 390px) {
  :root { --dt-type-hero: clamp(1.875rem,8.1vw,2.0625rem); --dt-type-section: 1.5rem; }
  body.dt-public .dt-refresh-hero .nx-hero-grid { padding-block: 32px 38px !important; gap: 20px !important; }
  body.dt-public .dt-refresh-hero .nx-hero-index { gap: 7px 11px !important; }
  body.dt-public .dt-refresh-hero .dt-refresh-hero-description { font-size: .875rem !important; }
  body.dt-public :is(.dt-refresh-solutions,.dt-refresh-trajectory,.dt-refresh-lab,.dt-refresh-social,.dt-refresh-radar) {
    padding-block: 42px !important;
  }
}
