/*-------------------------------- 
ANIMATIONS AND MORE
-------------------------------- */

.black { border: var(--black)} 
.ora   { border: var(--ora)}
.red   { border:4px solid red; }
.green { border:var(--green); }

::selection       { color:white; background:rgb(0 0 0 / .35);}
::-moz-selection  { color:white; background:rgb(0 0 0 / .35);}

a:link, .button, [class*="shadow"], input[type=submit], header {
    -webkit-transition: all 0.3s ease-out;
    -moz-transition: all 0.3s ease-out;
    -ms-transition: all 0.3s ease-out;
    -o-transition: all 0.3s ease-out;
    transition: all 0.3s ease-out;
}

 

/* -------------------------------- 
SCROLLBAR
-------------------------------- */

::-webkit-scrollbar {
    --scroll: 10px;
    width:  var(--scroll);
    height: var(--scroll);
    position: relative;
    z-index: 0;
    opacity: 0;
}
::-webkit-scrollbar-track {
    background: white;
    opacity: 0
}
::-webkit-scrollbar-track:hover {
    opacity: 1;
}
::-webkit-scrollbar-thumb {
    background: rgb(21 21 21 / 1);
    border-radius: 4px;
    border:2px solid white;
}
::-webkit-scrollbar-thumb:hover {
    background: rgb(21 21 21 / .5);
}


/*-------------------------------- 
GRID UTILITIES
-------------------------------- */

.flex, .d-flex            { display: flex; }
.flex-end                 { justify-content: flex-end; }
.flex-start               { justify-content: flex-start; }
.flex-center              { justify-content: flex-center; }
.row-between              { justify-content: space-between; }
.row-full                 { max-width:100%!important; width: 100%!important;}
.row-center               { align-items: center; justify-content: center;}
.row-top                  { align-items: flex-start; }
.align-end                { align-items: flex-end; }
.row-right                { align-items: center; justify-content: flex-end!important; }
.row-reverse              { flex-direction: row-reverse; }
.nowrap                   { flex-wrap: nowrap; }
.wrap                     { flex-wrap: wrap; }
 
.justify-content-center   { justify-content: center; }

.align-items-center       { align-items: center; }
.h-100p                   { height: 100%  } 

.hidden-col               { visibility: hidden;}
.section-vh               { padding:0!important; height: 100vh; width: 100%; }

.d-block                  { display: block; }
.d-inline-block           { display: inline-block; }
.d-inline-flex            { display: inline-flex; }
.d-none                   { display: none; }

.flow > * + * {
  margin-top: var(--flow-space, 1em);
} 

.flow > h1:not(:last-child), 
.flow > h2:not(:last-child), 
.flow > h3:not(:last-child), 
.flow > h4:not(:last-child), 
.flow > h5:not(:last-child), 
.flow > h6:not(:last-child) { margin-bottom:0; }

.flow-xs { --flow-space:var(--wp--preset--spacing--xs); }
.flow-s  { --flow-space:var(--wp--preset--spacing--s); }
.flow-m  { --flow-space:var(--wp--preset--spacing--m); }
.flow-l  { --flow-space:var(--wp--preset--spacing--l); }
.flow-xl { --flow-space:var(--wp--preset--spacing--xl); }


.ml-auto { margin-left: auto; }
.mr-auto { margin-right: auto; }
.mt-auto { margin-top: auto; }
.mb-auto { margin-bottom: auto; }
.mx-auto { margin-inline:auto!important; } 

.border-top { 
  width: 100%;
  height: 1px;
  background-image: linear-gradient(45deg, hsla(var(--dark), 0.65) 0%, hsla(var(--dark), 0.25) 60%, transparent 100%);
  background-color: hsl(var(--light));
  transform-origin: left center;
  transform: scaleX(0);
}

.sticky-desktop {
  --top:var(--header);
  position: sticky;
  top: var(--top);
}
 

@media only screen and (max-width:820px) {

.sticky-desktop {
  --top:0;
  position: relative;
}

}
 


hr {
  border:none;
  border-bottom:1px solid var(--dark-4);
  padding-bottom: var(--wp--preset--spacing--xs);
  margin-bottom:  var(--wp--preset--spacing--xs);
}
 
/* -------------------------------- 
TEXT UTILITIES
-------------------------------- */

.ch-24 { width:24ch; }

.icon-12 > svg { min-width: var(--icon-12); width: var(--icon-12); display: block; margin:auto; }
.icon-16 > svg { min-width: var(--icon-16); width: var(--icon-16); display: block; margin:auto; }
.icon-20 > svg { min-width: var(--icon-20); width: var(--icon-20); display: block; margin:auto; }
.icon-24 > svg { min-width: var(--icon-24); width: var(--icon-24); display: block; margin:auto; }
.icon-36 > svg { min-width: var(--icon-36); width: var(--icon-36); display: block; margin:auto; }
.icon-48 > svg { min-width: var(--icon-48); width: var(--icon-48); display: block; margin:auto; }
.icon-64 > svg { min-width: var(--icon-64); width: var(--icon-64); display: block; margin:auto; }

.font-900 { font-weight: 900; }
.font-700 { font-weight: 700; }
.font-600 { font-weight: 600; }
.font-500 { font-weight: 500; }
.font-400 { font-weight: 400; }
.font-300 { font-weight: 300; }

.line-body    { line-height: var(--wp--custom--line-height--body); }
.line-header  { line-height: var(--wp--custom--line-height--header); }
.line-meta    { line-height: var(--wp--custom--line-height--meta); }
.line-small   { line-height: var(--wp--custom--line-height--small); }

.has-light-color > p { color:var(--wp--preset--color--light) !important }

.back-contrast   { background-color: var(--wp--preset--color--contrast); }
.back-accent     { background-color: var(--wp--preset--color--accent); }
.back-base       { background-color: var(--wp--preset--color--base); }
.back-grey       { background-color: var(--wp--preset--color--lightgrey); }
.back-black      { background-color: #010101; }

.text-light      { color:white; }
.text-med        { color:rgb(255 255 255 / .7); }
.text-accent     { color:var(--wp--preset--color--accent); }
.text-contrast   { color:var(--wp--preset--color--contrast); }
.text-body       { color:var(--wp--preset--color--body); }


.font-data             { font-family: var(--font-data); }
.font-body             { font-family: var(--font-body); }
.font-normal           { font-style: normal; }
.font-italic           { font-style: italic; }

.text-uppercase        { text-transform: uppercase;  }
.text-center           { text-align: center; }
.text-left             { text-align: left; }
.text-right            { text-align: right; }
.left-center           { text-align: left; } 
.right-center,
.right-left            { text-align: right; } 

.text-truncate         { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.text-ellipses {
  overflow-wrap: break-word;
  word-wrap: break-word;
  -ms-word-break: break-all;
  word-break: break-all;
  word-break: break-word;
  -ms-hyphens: auto;
  -moz-hyphens: auto;
  -webkit-hyphens: auto;
  hyphens: auto;
}

.text-columns {
  columns:2;
  column-gap: var(--wp--preset--spacing--m)
} 

@media only screen and (max-width:820px) {

.right-left                   { text-align:left; } 
.left-center, .right-center   { text-align: center; } 

}


@media only screen and (max-width:540px) {

.text-columns {
  columns:1;
  column-gap: var(--wp--preset--spacing--m)
} 

}

 

/* -------------------------------- 
UI UTILITIES
-------------------------------- */
 
.shadow-s        { box-shadow: var(--shadow-s); }
.shadow-m        { box-shadow: var(--shadow-m); }
.shadow-l        { box-shadow: var(--shadow-l); }
.shadow-xl       { box-shadow: var(--shadow-xl); }
.shadow-xxl      { box-shadow: var(--shadow-xxl); }
.shadow-card     { box-shadow: var(--shadow-card); }

.radius-4        { border-radius: var(--radius-4); }
.radius-8        { border-radius: var(--radius-8); }
.radius-12       { border-radius: var(--radius-12); }
.radius-16       { border-radius: var(--radius-16); }
.radius-24       { border-radius: var(--radius-24); }

/* -------------------------------- 
SPACE UTILITIES
-------------------------------- */
 
 
.py-xxs   { padding-block:var(--wp--preset--spacing--xxs)!important;}
.py-xs    { padding-block:var(--wp--preset--spacing--xs)!important;}
.py-s     { padding-block:var(--wp--preset--spacing--s)!important;}
.py-m     { padding-block:var(--wp--preset--spacing--m)!important;}
.py-l     { padding-block:var(--wp--preset--spacing--l)!important;}
.py-xl    { padding-block:var(--wp--preset--spacing--xl)!important;}
.py-xxl   { padding-block:var(--wp--preset--spacing--xxl)!important;}
.py-large { padding-block:var(--wp--preset--spacing--large)!important;}

.py-fluid { padding-block:var(--fluid-large)!important; }

 
.px-xxs   { padding-inline:var(--wp--preset--spacing--xxs)!important;}
.px-xs    { padding-inline:var(--wp--preset--spacing--xs)!important;}
.px-s     { padding-inline:var(--wp--preset--spacing--s)!important;}
.px-m     { padding-inline:var(--wp--preset--spacing--m)!important;}
.px-l     { padding-inline:var(--wp--preset--spacing--l)!important;}
.px-xl    { padding-inline:var(--wp--preset--spacing--xl)!important;}
.px-xxl   { padding-inline:var(--wp--preset--spacing--xxl)!important;}
.px-large { padding-inline:var(--wp--preset--spacing--large)!important;}

.pt-none  { padding-top:0!important; }
 
.pt-xxs   { padding-top:var(--wp--preset--spacing--xxs)!important;}
.pt-xs    { padding-top:var(--wp--preset--spacing--xs)!important;}
.pt-s     { padding-top:var(--wp--preset--spacing--s)!important;}
.pt-m     { padding-top:var(--wp--preset--spacing--m)!important;}
.pt-l     { padding-top:var(--wp--preset--spacing--l)!important;}
.pt-xl    { padding-top:var(--wp--preset--spacing--xl)!important;}
.pt-xxl   { padding-top:var(--wp--preset--spacing--xxl)!important;}
.pt-large { padding-top:var(--wp--preset--spacing--large)!important;}
.pt-fluid { padding-top:var(--fluid-large)!important; }

.pb-none  { padding-bottom:0; }
.pb-xxxs  { padding-bottom:var(--wp--preset--spacing--xxxs);}
.pb-xxs   { padding-bottom:var(--wp--preset--spacing--xxs);}
.pb-xs    { padding-bottom:var(--wp--preset--spacing--xs);}
.pb-s     { padding-bottom:var(--wp--preset--spacing--s);}
.pb-m     { padding-bottom:var(--wp--preset--spacing--m);}
.pb-l     { padding-bottom:var(--wp--preset--spacing--l);}
.pb-xl    { padding-bottom:var(--wp--preset--spacing--xl);}
.pb-xxl   { padding-bottom:var(--wp--preset--spacing--xxl);}
.pb-large { padding-bottom:var(--wp--preset--spacing--large);}
.pb-fluid { padding-bottom:var(--fluid-large)!important; }


.my-none  { margin-block:0;}
 
.my-xxs   { margin-block:var(--wp--preset--spacing--xxs)!important;}
.my-xs    { margin-block:var(--wp--preset--spacing--xs)!important;}
.my-s     { margin-block:var(--wp--preset--spacing--s)!important;}
.my-m     { margin-block:var(--wp--preset--spacing--m)!important;}
.my-l     { margin-block:var(--wp--preset--spacing--l)!important;}
.my-xl    { margin-block:var(--wp--preset--spacing--xl)!important;}
.my-xxl   { margin-block:var(--wp--preset--spacing--xxl)!important;}
.my-large { margin-block:var(--wp--preset--spacing--large)!important;}

 
.mx-xxs   { margin-inline:var(--wp--preset--spacing--xxs)!important;}
.mx-xs    { margin-inline:var(--wp--preset--spacing--xs)!important;}
.mx-s     { margin-inline:var(--wp--preset--spacing--s)!important;}
.mx-m     { margin-inline:var(--wp--preset--spacing--m)!important;}
.mx-l     { margin-inline:var(--wp--preset--spacing--l)!important;}
.mx-xl    { margin-inline:var(--wp--preset--spacing--xl)!important;}
.mx-xxl   { margin-inline:var(--wp--preset--spacing--xxl)!important;}
.mx-large { margin-inline:var(--wp--preset--spacing--large)!important;}

.mt-none  { margin-top:0!important; }
 
.mt-xxs   { margin-top:var(--wp--preset--spacing--xxs)!important;}
.mt-xs    { margin-top:var(--wp--preset--spacing--xs)!important;}
.mt-s     { margin-top:var(--wp--preset--spacing--s)!important;}
.mt-m     { margin-top:var(--wp--preset--spacing--m)!important;}
.mt-l     { margin-top:var(--wp--preset--spacing--l)!important;}
.mt-xl    { margin-top:var(--wp--preset--spacing--xl)!important;}
.mt-xxl   { margin-top:var(--wp--preset--spacing--xxl)!important;}
.mt-large  { margin-top:var(--wp--preset--spacing--large)!important;}

.mb-none  { margin-bottom:0!important; }
 
.mb-xxs   { margin-bottom:var(--wp--preset--spacing--xxs)!important;}
.mb-xs    { margin-bottom:var(--wp--preset--spacing--xs)!important;}
.mb-s     { margin-bottom:var(--wp--preset--spacing--s)!important;}
.mb-m     { margin-bottom:var(--wp--preset--spacing--m)!important;}
.mb-l     { margin-bottom:var(--wp--preset--spacing--l)!important;}
.mb-xl    { margin-bottom:var(--wp--preset--spacing--xl)!important;}
.mb-xxl   { margin-bottom:var(--wp--preset--spacing--xxl)!important;}
.mb-xxxl  { margin-bottom:var(--wp--preset--spacing--xxxl)!important;}
.mb-large { margin-bottom:var(--wp--preset--spacing--large)!important;}
