/* Contratos de largura compartilhados. A unidade de adaptação é o conteúdo. */
.container { container: page-layout / inline-size; padding-inline: var(--container-gutter); }
.page-head__grid, .section-head, .institutional-voices__head { align-items: start; }
.page-head__grid :is(h1,.lead), .section-head :is(.h-section,.lead,.head-right),
.institutional-voices__head :is(h3,p) { margin-top: 0; padding-top: 0; }

/* Um mínimo legível de coluna, sem comprimir tipografia ou esconder conteúdo. */
.services__grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,300px),1fr)); }
.services-section--b2b .services__grid, .services-section--b2g .services__grid {
  grid-template-columns: repeat(auto-fit,minmax(min(100%,300px),1fr));
}
.cases__grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,320px),1fr)); }
.service-page-related__grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,250px),1fr)); }
.svc-card, .service-page-related article, .pillar, .institutional-voice {
  min-width: 0; max-width: 100%; padding: clamp(20px,2vw,24px);
}
.institutional-voice__identity > div { min-width: 0; }
.timeline__card { min-width: 0; max-width: 100%; }
.institutional-voice__identity p { font-size: 14px; }
.institutional-voice__area { font-size: 14px; }
.case-card h3 { font-size: var(--ui-card-title); }
.service-page__content { container: service-content / inline-size; }
.service-page__deliverables { grid-template-columns: repeat(auto-fit,minmax(min(100%,260px),1fr)); }
.service-page__pair > .service-page__section { min-width: 0; }
.commitment > .container { container-name: commitments; }

/* O grupo de ações mede o próprio espaço; dois botões continuam iguais. */
:is(.prefooter-cta__actions,.final-cta__actions,.service-page-cta__actions,.contact-submit-actions) {
  container: cta-actions / inline-size;
  min-width: 0;
}
:is(.prefooter-cta__actions,.final-cta__actions,.service-page-cta__actions,.contact-submit-actions):not(:has(> form)) {
  grid-auto-rows: 1fr;
  grid-template-columns: repeat(auto-fit,minmax(min(100%,210px),1fr));
}
:is(.prefooter-cta__actions,.final-cta__actions,.service-page-cta__actions,.contact-submit-actions) > .btn {
  min-width: 0; white-space: normal; overflow-wrap: break-word; line-height: 1.4;
}
:is(.prefooter-cta__actions,.final-cta__actions,.service-page-cta__actions,.contact-submit-actions):not(:has(> form)) > .btn {
  height: 100%;
}
@container cta-actions (max-width: 440px) {
  .btn { padding-inline: 16px; }
}
.form-grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,260px),1fr)); }
.field--full { grid-column: 1 / -1; }
.pf-toolbar, .pf-search, .b2b-search-row, .b2g-search-row { min-width: 0; }
.b2b-filters button, .b2g-filters button { max-width: 100%; white-space: normal; }
.pdf-toolbar, .pdf-modal__toolbar { flex-wrap: wrap; }
.case-nav.is-multiline { position: static; }
@media (max-height: 480px) { .case-nav { position: static; } }
.pdf-toolbar :is(input,select), .pdf-modal__toolbar :is(input,select) { min-width: 0; max-width: 100%; }
.pdf-modal__inner { min-width: 0; }
.pdf-modal__toolbar { container: pdf-controls / inline-size; }
.pdf-modal__title { min-width: 0; flex-basis: 180px; }
.pdf-modal__nav { min-width: 0; max-width: 100%; flex-wrap: wrap; gap: 12px; }
.pdf-modal__controls { display: flex; align-items: center; gap: 8px; min-width: 0; }
.pdf-modal-btn, .pdf-nav-btn { width: 44px; height: 44px; flex-shrink: 0; }
.pdf-modal__canvas-wrap { display: block; overflow: auto; }
#pdf-modal-canvas { max-width: none; margin-inline: auto; }
@container pdf-controls (max-width: 480px) {
  .pdf-modal__nav { flex-basis: 100%; }
  .pdf-modal__controls { flex: 1 1 180px; }
  .pdf-modal__page-info { min-width: 0; }
}

/* Cabeçalhos mudam de composição antes de produzir colunas curtas. */
@container page-layout (max-width: 900px) {
  .page-head__grid, .section-head { grid-template-columns: minmax(0,1fr); row-gap: 24px; }
  .page-head__grid:has(> div:first-child > .eyebrow) .lead { grid-column: 1; grid-row: 3; }
  .hero__content { grid-template-columns: minmax(0,1fr); }
}
@container page-layout (max-width: 660px) {
  .prefooter-cta__inner, .service-page-cta__inner, .final-cta__box { grid-template-columns: minmax(0,1fr); }
  .page-head__grid, .section-head { row-gap: 16px; }
}
@container service-content (max-width: 600px) {
  .service-page__pair { grid-template-columns: minmax(0,1fr); }
  .service-page__pair > .service-page__section + .service-page__section {
    margin-top: var(--service-divider-space); border-top: 1px solid var(--border-soft); padding-top: var(--service-divider-space);
  }
}
@container commitments (max-width: 1080px) { .commitment__grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@container commitments (max-width: 540px) { .commitment__grid { grid-template-columns: minmax(0,1fr); } }

/* As tabelas preservam seus cabeçalhos e passam a linhas rotuladas. */
.article-body, .legal-doc { container: document-content / inline-size; }
@container document-content (max-width: 620px) {
  table[data-responsive-table] { display: block; table-layout: auto; }
  table[data-responsive-table] thead {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    clip-path: inset(50%); overflow: hidden; white-space: nowrap;
  }
  table[data-responsive-table] :is(tbody,tr) { display: block; width: 100%; }
  table[data-responsive-table] tr { border-bottom: 1px solid var(--border-soft); padding-block: 16px; }
  table[data-responsive-table] td {
    display: block; min-width: 0; width: 100%; padding: 8px 12px;
    border: 0; font-size: 15px; line-height: 1.6; overflow-wrap: break-word;
  }
  table[data-responsive-table] td[data-label]:not([data-label=""])::before {
    content: attr(data-label); display: block; font-size: 14px; font-weight: 600;
    color: var(--color-primary); margin-bottom: 8px;
  }
}

/* O menu completo precisa caber com folga, incluindo idiomas e o CTA. */
@media (min-width: 1025px) and (max-width: 1152px) {
  .site-header .nav { display: none; }
  .site-header .hamburger { display: inline-flex; }
  .site-header .header-cta { margin-left: auto; }
}
@media (max-width: 700px) {
  .ft-main { width: 100%; }
  .ft-nav { width: 100%; }
  :is(.prefooter-cta__actions,.final-cta__actions,.service-page-cta__actions,.contact-submit-actions) {
    grid-template-columns: minmax(0,1fr);
  }
}
@media (prefers-reduced-motion: reduce) {
  :is(.svc-card,.case-card,.institutional-voice,.btn):hover { transform: none; }
}
