/*!
 * PMG Utilities — slim replacement for Bootstrap 4.3.1
 * ----------------------------------------------------------------------------
 * Replaces /css/bootstrap.css (188 KiB) with the 16 utility classes actually
 * used in the pmgrecordings2025 theme. Audit (2026-04-25) confirmed zero
 * Bootstrap components in use, so no component CSS is needed.
 *
 * REBOOT BASELINE — mostly handled by style.css (normalize.css v8 + underscores),
 *   but three gaps surfaced during Step 2 visual testing on 7 page templates:
 *     • body color drifted from #212529 to #404040 (style.css default)
 *     • h1–h6 margins reverted to browser defaults (~0.83em h2 top/bottom)
 *     • p margin-top reverted to ~1em browser default
 *   See "REBOOT PATCHES" section at the bottom of this file.
 *
 * Output for matched classes is byte-for-byte identical to Bootstrap 4.3.1.
 * Bootstrap line references throughout for traceability.
 *
 * Last edit: 2026-04-25
 */


/* ============================================================================
   GRID  —  .container, .row, .col-md-8, .col-sm-12
   Mirrors bootstrap.css lines 548–595 and the breakpoint media queries.

   NOTE on .col-xs-12 (used in 404.php):
     Bootstrap 4 dropped the "xs" infix — `col-xs-*` is undefined in BS4 and
     was already a no-op in bootstrap.css. We preserve that no-op status by
     not defining it here.

   NOTE on .container-xxl (used in 1 template):
     Bootstrap 4 has no .container-xxl either (introduced in BS5). It is
     currently a no-op class and we keep it that way — defining it would
     CHANGE behavior, not preserve it.
   ============================================================================ */

.container {
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}

@media (min-width: 576px)  { .container { max-width: 540px;  } }
@media (min-width: 768px)  { .container { max-width: 720px;  } }
@media (min-width: 992px)  { .container { max-width: 960px;  } }
@media (min-width: 1200px) { .container { max-width: 1140px; } }

.row {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  margin-right: -15px;
  margin-left: -15px;
}

/* Base column rules — required by every .col-* to position correctly */
.col-md-8,
.col-sm-12 {
  position: relative;
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
}

@media (min-width: 576px) {
  .col-sm-12 {
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }
}

@media (min-width: 768px) {
  .col-md-8 {
    -ms-flex: 0 0 66.666667%;
    flex: 0 0 66.666667%;
    max-width: 66.666667%;
  }
}


/* ============================================================================
   SPACING  —  pt-2/3/4/5, pb-2/3/4/5, p-3, py-5, mb-2
   Mirrors bootstrap.css lines 7979–8203.
   Bootstrap 4 spacer scale: 0=0, 1=.25rem, 2=.5rem, 3=1rem, 4=1.5rem, 5=3rem.
   ============================================================================ */

.mb-2 { margin-bottom: 0.5rem !important; }

.p-3  { padding: 1rem !important; }

.pt-2 { padding-top: 0.5rem !important; }
.pt-3 { padding-top: 1rem    !important; }
.pt-4 { padding-top: 1.5rem  !important; }
.pt-5 { padding-top: 3rem    !important; }

.pb-2 { padding-bottom: 0.5rem !important; }
.pb-3 { padding-bottom: 1rem    !important; }
.pb-4 { padding-bottom: 1.5rem  !important; }
.pb-5 { padding-bottom: 3rem    !important; }

.py-5 {
  padding-top:    3rem !important;
  padding-bottom: 3rem !important;
}


/* ============================================================================
   TEXT & FLEX  —  text-center, text-justify, justify-content-center
   Mirrors bootstrap.css lines 7035, 9733, 9759.
   ============================================================================ */

.text-center  { text-align: center  !important; }
.text-justify { text-align: justify !important; }

.justify-content-center {
  -ms-flex-pack: center !important;
  justify-content: center !important;
}


/* ============================================================================
   ACCESSIBILITY  —  sr-only
   Mirrors bootstrap.css lines 7805–7814.
   Visually hides content while keeping it available to screen readers.
   ============================================================================ */

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ============================================================================
   REBOOT PATCHES — minimal Bootstrap baseline carry-overs
   ----------------------------------------------------------------------------
   style.css (normalize.css v8 + underscores baseline) does NOT reset:
     • body color (uses #404040 vs Bootstrap Reboot's #212529)
     • h1–h6 margins (only sets `clear: both`)
     • h1–h6 font-weight (browser default 700 vs Bootstrap's 500)
     • h1–h6 line-height (inherits body's 1.5 vs Bootstrap's 1.2 — most
       visible on multi-line headings like the release page title)
     • p margin-top (only sets margin-bottom: 1.5em)
   These rules restore the visual baseline Bootstrap was silently providing.
   Confirmed via side-by-side comparison on 7 page templates (2026-04-25).
   Without them, content shifts down ~5–10px per heading, multi-line headings
   gain ~25% extra vertical air, headings render bolder than intended, and
   body copy lightens ~3% in luminance.
   ============================================================================ */

body { color: #212529; }

h1, h2, h3, h4, h5, h6 {
  margin-top: 0;
  margin-bottom: 0.5rem;
  font-weight: 500;
  line-height: 1.2;
}

p { margin-top: 0; }

/* End of pmg-utilities.css */
