:root{--rhavi-layout-gap:8px}

/* O conteúdo público ocupa somente a altura necessária. */
main.page-main{
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  gap:var(--rhavi-layout-gap)!important;
}

/* A distância vertical entre todas as seções públicas é sempre de 8 px. */
main.page-main>section{
  margin-block:0!important;
}

main.page-main+.footer{
  margin-top:var(--rhavi-layout-gap)!important;
}

/* Remove os afastamentos antigos que produziam grandes áreas vazias. */
.future-category-shell,
.future-products,
.future-combos,
.future-builder,
.future-trust,
.page-hero,
.page-content,
.offers-hero,
.offers-content,
.contact-hero,
.contact-content,
.builder-layout,
.order-form-card{
  margin-block:0!important;
}

/* Mantém a mesma distância entre cards em todas as janelas. */
:where(
  .future-categories,
  .future-product-grid,
  .future-combo-grid,
  .future-trust,
  .catalog-grid,
  .offers-grid,
  .service-grid,
  .occasion-grid,
  .contact-grid,
  .contact-channel-grid,
  .contact-workspace,
  .flavor-list,
  .commercial-grid,
  .builder-layout,
  .checkout-layout,
  .payment-layout,
  .order-detail-grid,
  .form-pair
){
  gap:var(--rhavi-layout-gap)!important;
}

@media(max-width:800px){
  main.page-main{
    gap:var(--rhavi-layout-gap)!important;
  }

  .future-category-shell,
  .future-products,
  .future-combos,
  .future-builder,
  .future-trust{
    margin-block:0!important;
  }
}
