/* ==========================================================================
   FactoryHajri UI - 05. UTILITIES
   Small helpers. Look here before inventing a new one.
   ========================================================================== */

/* text */
.fh-t-xs{font-size:var(--fh-text-xs)} .fh-t-sm{font-size:var(--fh-text-sm)}
.fh-t-md{font-size:var(--fh-text-md)} .fh-t-lg{font-size:var(--fh-text-lg)}
.fh-t-muted{color:var(--fh-text-muted)} .fh-t-2{color:var(--fh-text-2)}
.fh-t-go{color:var(--fh-present)} .fh-t-bad{color:var(--fh-absent)} .fh-t-warn{color:var(--fh-half)}
.fh-t-semi{font-weight:var(--fh-fw-semi)} .fh-t-bold{font-weight:var(--fh-fw-bold)}
.fh-t-right{text-align:right} .fh-t-center{text-align:center}
.fh-t-num{font-family:var(--fh-font-data);font-variant-numeric:tabular-nums}
.fh-t-upper{text-transform:uppercase;letter-spacing:var(--fh-track-label);font-size:var(--fh-text-xs);font-weight:var(--fh-fw-semi)}
.fh-t-nowrap{white-space:nowrap}
.fh-t-clip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* spacing - only the ones needed daily */
.fh-mt0{margin-top:0} .fh-mt2{margin-top:var(--fh-s2)} .fh-mt3{margin-top:var(--fh-s3)}
.fh-mt4{margin-top:var(--fh-s4)} .fh-mt5{margin-top:var(--fh-s5)} .fh-mt6{margin-top:var(--fh-s6)}
.fh-mb0{margin-bottom:0} .fh-mb2{margin-bottom:var(--fh-s2)} .fh-mb3{margin-bottom:var(--fh-s3)}
.fh-mb4{margin-bottom:var(--fh-s4)} .fh-mb5{margin-bottom:var(--fh-s5)} .fh-mb6{margin-bottom:var(--fh-s6)}
.fh-p0{padding:0} .fh-p3{padding:var(--fh-s3)} .fh-p4{padding:var(--fh-s4)}

/* flex / grid */
.fh-row{display:flex;gap:var(--fh-s3);align-items:center}
.fh-row--top{align-items:flex-start} .fh-row--wrap{flex-wrap:wrap}
.fh-row--between{justify-content:space-between}
.fh-col{display:flex;flex-direction:column;gap:var(--fh-s3)}
.fh-spacer{flex:1 1 auto}
.fh-cols{display:grid;gap:var(--fh-s4);grid-template-columns:1fr}
@media(min-width:992px){
  .fh-cols--2{grid-template-columns:1fr 1fr}
  .fh-cols--3{grid-template-columns:repeat(3,1fr)}
  .fh-cols--main{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}
  .fh-cols--side{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr)}
}

/* show / hide */
.fh-hide{display:none !important}
@media(max-width:767px){ .fh-hide-sm{display:none !important} }
@media(min-width:768px){ .fh-only-sm{display:none !important} }
@media(max-width:991px){ .fh-hide-md{display:none !important} }
@media(min-width:992px){ .fh-only-md{display:none !important} }

/* screen readers only */
.fh-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* Print / screen split. .fh-print-only is hidden on screen and revealed by the
   print block; .fh-screen-only is the other way round. */
.fh-print-only { display: none; }
