/* Spacing helpers */
.pt-1{ padding-top:1.5rem; } .pb-1{ padding-bottom:1.5rem; }
.mt-1{ margin-top:1.5rem; } .mb-1{ margin-bottom:1.5rem; }
.pt-2{ padding-top:3rem; } .pb-2{ padding-bottom:3rem; }
.mt-2{ margin-top:3rem; } .mb-2{ margin-bottom:3rem; }

/* Visibility & shape */
.hidden{ display: none !important; }
.inline{ display: inline; margin: 0; }
.round{ border-radius: 50%; vertical-align: middle; }
.float_left{ float: left; margin-right: 1rem; } .float_left + p{ padding-top: 0; }
.float_right{ float: right; margin-left: 1rem; }

/* Layout helpers */
.landing-content{
  margin: 15px auto; padding: 2rem; gap: 10px; max-width: 100%;
  display: grid; align-content: center; justify-content: center; text-align: center;
}
.info{ max-width: 65rem; margin: 15px auto; }

/* Grid helpers (optional) */
@media (min-width:42rem){
  [class*='grid-']{ display:grid; grid-gap:2rem; }
  .grid-2{ grid-template-columns:1fr 1fr; }
  .grid-3{ grid-template-columns:repeat(auto-fit, minmax(19rem, 1fr)); }
  .grid-4{ grid-template-columns:repeat(auto-fit, minmax(16rem, 1fr)); }
  .grid-inverse{ grid-template-columns:70% 1fr; grid-column-gap:4rem; }
}


/* Generic icon theming: inherit text color in all modes */
svg.icon { fill: currentColor; stroke: currentColor; }
svg.icon [fill]:not([fill="none"]) { fill: currentColor !important; }
svg.icon [stroke]:not([stroke="none"]) { stroke: currentColor !important; }
