:root {
  --hm-page-pad: clamp(10px, 1.8vw, 24px);
}

html, body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

/* Core wrappers: full-width with consistent side spacing */
.page-top-logo,
.logo-quote,
.tab-brand,
.app,
.report-shell,
.report-wrap,
.shell,
.msg-panel,
.tv-news-panel,
.tv-heatmap-panel,
.card,
.section {
  width: calc(100vw - (var(--hm-page-pad) * 2)) !important;
  max-width: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Keep key sections readable while still full-width */
.hero-grid {
  width: 100% !important;
  max-width: none !important;
}

/* Unify company logo size across all tabs/pages */
.tab-brand {
  min-height: 520px !important;
  padding: 16px 16px 8px !important;
  align-items: flex-end !important;
}

.tab-brand img {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: 480px !important;
  object-fit: contain !important;
  object-position: center bottom !important;
}

/* Prevent accidental clipping in embedded widgets/tables */
.tbl-wrap,
.table-wrap,
.table-scroll,
.scrollable,
.tv-news-wrap,
.tv-heatmap-wrap {
  width: 100% !important;
  max-width: 100% !important;
}

@media (max-width: 760px) {
  :root {
    --hm-page-pad: 8px;
  }

  .tab-brand {
    min-height: 280px !important;
    padding: 12px 10px 4px !important;
  }

  .tab-brand img {
    max-height: 260px !important;
  }
}

@media (max-width: 1120px) and (min-width: 761px) {
  .tab-brand {
    min-height: 400px !important;
    padding: 14px 14px 6px !important;
  }

  .tab-brand img {
    max-height: 380px !important;
  }
}
