/* =========================================================
   MILO COMPONENT CONTRACT
   File: milo-base.css
   Layer: Base System
   Version: 1.x

   PURPOSE
   ----------------------------------------------------------------
   Defines Milo’s global base layer:
   - box-sizing contract
   - page-level defaults
   - media defaults
   - neutral anchor baseline
   - Elementor safety rules

   OWNERSHIP
   ----------------------------------------------------------------
   Owns:
   - Global box-sizing behavior
   - Base html/body defaults
   - Global media element defaults
   - Neutral anchor baseline
   - Elementor safety/reset rules that are broadly global

   Does NOT own:
   - Layout primitives
   - Typography hierarchy and scale
   - Link effects and underline systems
   - Button geometry and variants
   - Background/environment styling
   - Module/component-specific resets

   ARCHITECTURE
   ----------------------------------------------------------------
   - This file should stay thin and broadly safe
   - It establishes defaults other layers build upon
   - More opinionated behavior belongs in dedicated system files

========================================================= */

/* #region 0) BOX SIZING */
html {
  box-sizing: border-box;
}

*,
*::before,
*::after {
  box-sizing: inherit;
}
/* #endregion 0) BOX SIZING */

/* #region 1) PAGE BASE */
html {
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  color: var(--milo-text);

  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* #endregion 1) PAGE BASE */

/* #region 2) MEDIA DEFAULTS */
img,
svg,
video {
  display: block;
  max-width: 100%;
  height: auto;
}

iframe {
  max-width: 100%;
}
/* #endregion 2) MEDIA DEFAULTS */

/* #region 3) LINKS: BASE */
a {
  color: inherit;
  text-decoration: none;
}
/* #endregion 3) LINKS: BASE */

/* #region 4) ELEMENTOR SAFETY */
/* Never allow pseudo-elements on Elementor button anchors */
a.elementor-button::before,
a.elementor-button::after {
  content: none !important;
}

/* Prevent theme/widget heading margins from leaking in */
.elementor-widget-heading h1,
.elementor-widget-heading h2,
.elementor-widget-heading h3,
.elementor-widget-heading h4,
.elementor-widget-heading h5,
.elementor-widget-heading h6 {
  margin: 0;
}

/* Avoid default inline image gaps in Elementor */
.elementor img {
  display: block;
}
/* #endregion 4) ELEMENTOR SAFETY */
