/* ═══════════════════════════════════════════════════════════════════════
   LETLOU ENERGY — RESET & NORMALIZATION
   Minimal reset. No design tokens used here — only bare minimum.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Andy Bell's Modern CSS Reset ── */
html, body, h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd {
  margin: 0;
  padding: 0;
}

ul, ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

/* ── Box Sizing ── */
*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  max-width: 100%;
}

/* ── Exceptions to max-width:100% ──
   These elements legitimately break out of their container by design.
   Position:fixed/absolute elements, SVG internals, pseudo-elements
   used as decorative overlays, and the html/body shell. ── */
html,
body,
header,
dialog,
.skip-link,
.cookie-banner,
.cookie-floating-trigger,
.gsearch-overlay,
.hero-video-wrap,
.hero-video-wrap::after,
.hero-section,
.section-header::before,
svg,
svg * {
  max-width: none;
}

/* ── Flex children shrink properly ──
   Without this, flex children refuse to shrink below their
   intrinsic content size, which is the #1 cause of overflow. ── */
.navlinks > *,
.hero-ctas > *,
.hero-stats > *,
.footer-body > *,
.footer-social > *,
.footer-bottom > *,
.footer-legal-links > *,
.section-header-ctas > *,
.cookie-banner__panel-actions > * {
  min-width: 0;
}

footer {
  min-width: 0;
}

/* ── Fluid Media ── */
video,
iframe,
embed,
object {
  max-width: 100%;
  height: auto;
}