/*** 
BODY.CSS 
- VERSION: 240601
- COLLECTION: GLOBAL
- LOAD ORDER: CSS/B/02
- DESCRIPTION: Main Body CSS.
© M. Yıldız 2024. All rights reserved.
##########################
***/

/* #region # CONTAINER: GLOBAL BODY */
/* ########################## */

/*** 
# STANDARD BUILDING BLOCKS 
- GB is a generic Ccontainer containing page body, in the middle between header and footer.
***/

/* CONTAINER: GLOBAL BODY */
#gb {
  /* Disposition */
  position: relative;
  /* Box Model */
  /* Reserve viewport minus chrome so empty/sparse pages fit exactly.
     350px is 3px under the literal sum (header 62 + footer 227 + #gb
     2×2rem margins 64 = 353) — those 3px close a white sliver visible
     below the footer at certain zoom levels. Pages with real content
     still expand past the min-height. */
  min-height: calc(100vh - 350px);
  margin-top: var(--space-md);
  margin-bottom: var(--space-md);
}

/* ## Modifiers */

/* > Override standard body to remove the margins. */
#gb .zeromargin {
  margin-top: 0rem;
  margin-bottom: 0rem;
}

/* > Override standard stack to remove the top margin. */
#gb .zeromargin--top {
  margin-top: 0rem;
}

/* > Override standard stack to remove the bottom margin. */
#gb .zeromargin--bottom {
  margin-bottom: 0rem;
}

/* #endregion */

/* Reapply the pointer cursor for anchor tags.
   `cursor: revert` (the new-css-reset original) is unreliable here:
   `all: unset` above wipes the UA cursor, and reverting it back is
   resolved differently across engines — Chrome/Safari often end up with
   cursor: auto on <a>, only flashing pointer on :active. Set pointer
   explicitly on the link AND on every descendant of a link, since
   `all: unset` also zeroes the cursor on inner spans/imgs/etc and the
   inheritance chain back to the parent <a> isn't always honoured after
   the universal reset. !important guards against any later author rule
   accidentally re-setting cursor on something inside a link. */
a,
button,
a *,
button * {
  cursor: pointer !important;
}

