/* Helpers */
/*
 * helpers.css
 * Version: 2.0 (2019)
 * by Stephan Schlegel
 * provides useful classes for common purposes
 */

 .nowrap{
  white-space: nowrap;
}
.noscroll{
  overflow: hidden;
}
.no-opacity, .invisible {
  opacity: 0;
}
.hidden{
	display: none;
}

main,
.hyp,
.hyphens{
  /* hyphens only in main body section */
  -moz-hyphens: auto;
  -o-hyphens: auto;
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
  hyphens: auto;
}
.full-width{
  width: 100%;
  min-width: 100%;
  height: auto;
}
.safe-space,
.box-space{
	/* useful for colored boxes to maintain space without changing textmargin */
	max-width: calc(100% - 30px);
	margin-left: auto;
	margin-right: auto;
}

.table{display: table;}
.table-row{display: table-row;}
.table-cell{display: table-cell;}
.box-shadow-remove{
  box-shadow: none !important;
  -webkit-box-shadow: none !important;
  -moz-box-shadow: none !important;
}
/*** spaces ***/
.np, .no-padding{padding:0 !important;}
.npb, .no-padding-bottom{padding-bottom: 0 !important;}
.npr, .no-padding-right{padding-right: 0 !important;}
.npt, .no-padding-top{padding-top: 0 !important;}
.npl, .no-padding-left{padding-left: 0 !important;}
.nm, .no-margin{margin: 0 !important;}
.nmt, .no-margin-top{margin-top: 0 !important;}
.nmr, .no-margin-right{margin-right: 0 !important}
.nmb, .no-margin-bottom{margin-bottom: 0 !important;}
.nml, .no-margin-left{margin-left: 0 !important;}

/* no gutter grid for bootstrap and some others */
.container.no-gutter,
.no-gutter{
  padding-right: 0;
  padding-left: 0;
}
.container.no-gutter row{
  margin: 0;
}
.container.no-gutter row > div,
.container.no-gutter .col{
  padding-left: 0;
  padding-right: 0;
  margin: 0;
}
/* display & visibility */
.no-opacity {
  opacity: 0;
}
.invisible {
  visibility: hidden;
}
.hidden, .hide {
  display: none !important;
}
.text-hide {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}
.show, .display-block, .db {
  display: block !important;
}
.show-flex, .display-flex, .df{
  display:flex !important;
}
.affix, .fix {
  position: fixed;
}
/* stretch to the limite (vertical - horicontal *
 * parent needs pos relative or absolute to work
 * in some cases you need to add bottom: 0
 */
.stretch{
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}
/* content-display */
a:active, a:focus {outline: none;}
.nowrap, .no-wrap{
  white-space: nowrap;
}
.text-left, .align-left, .tl {
  text-align: left;
}
.text-right, .align-right, .tr{
  text-align: right;
}
.text-center, .align-center, .tc {
  text-align: center;
}
.text-justify, .align-justify, .tj {
  text-align: justify;
}
.text-nowrap {
  white-space: nowrap;
}
.text-lowercase, .lowercase {
  text-transform: lowercase;
}
.text-uppercase, .uppercase {
  text-transform: uppercase;
}
.text-capitalize, .text-capitals {
  text-transform: capitalize;
}
.text-small, .ts, .small {
  font-size: 75%;
}
.scroller, .scroll{
  overflow-y: auto;
}
.cover-container{
    position: absolute;
    overflow: hidden;
    width: 400px;
    height: 200px;
    left: 50%;
    top: 50%;
    transform: translate3d(-50%,-50%,0);
    transition: all .5s;
}
.fill-height-or-more {
  display: flex;
  flex-direction: column;
}
.fill-height-or-more > div {
  /*
  flex-grow: 1;
  flex-shrink: 1;
  flex-basis: auto;
 */
  flex: 1;
}

/* careful ie not supporting object-fit */
.object-fit_fill { object-fit: fill }
.object-fit_contain { object-fit: contain }
.object-fit_cover { object-fit: cover }
.object-fit_none { object-fit: none }
.object-fit_scale-down { object-fit: scale-down }

/* Navigation Helpers */
.nav ul, ul.nav{
  list-style-type: none;
  list-style-position: inside;
  padding-left: 0;
  margin: 0;
}
.nav-v ul ul, ul.nav-v ul{
  padding-left: 1.5em;
}
.nav li{
  line-height: inherit;
}
.nav-v li{
  padding-right: 0.25em;
}
.nav-h li{
  display: inline-block;
  padding: 0 0.25em;
}
.nav-h li:nth-child(1){padding-left: 0;}

/* Text Flow Helpers */
.autocol {
  column-width: 300px;
}
.autocol p:nth-child(1){
	margin-top: 0;
}