/* Reset opt-in: só dentro dos componentes (.tn-scope) e do container. */
:where(.tn-scope, .tn-scope *, .tn-scope *::before, .tn-scope *::after, .tn-container) { box-sizing: border-box; }
:where(.tn-scope) :where(img, video, svg) { max-inline-size: 100%; block-size: auto; }
:where(.tn-scope) :where(button, input, select, textarea) { font: inherit; }
:where(.tn-scope) :where(h1, h2, h3, h4, h5, h6, p) { margin-block: 0; }

/* Sem margem inferior padrão do Elementor ao redor dos widgets do projeto. */
:where([class*="elementor-widget-trinomo-"]) { margin-bottom: 0 !important; }

/* Guard 1: altura fixa de desktop (Fit-to-screen / min-height) NÃO pode vazar para o mobile. */
@media (max-width: 1023px) {
  .elementor-section:has(.tn-scope),
  .e-con:has(.tn-scope),
  .elementor-widget-wrap:has(.tn-scope) {
    min-height: 0 !important;
    height: auto !important;
  }
}

/* Guard 2: faixa/sobreposição entre seções.
   Container cujo único filho é um componente do projeto vira bloco: wrapper = altura exata da seção.
   NUNCA corrigir isso com background, overflow:hidden, z-index ou margem negativa. */
.e-con:has(> .elementor-widget:only-child > .elementor-widget-container > .tn-scope) {
  display: block;
}
