/* 2 - coloring */
.has-bg-alpha {
    --color-bg: var(--color-alpha);
}
.has-bg-bravo {
    --color-bg: var(--color-bravo);
}
.has-text-alpha {
    --color-text: var(--color-alpha);
}
.has-text-bravo {
    --color-text: var(--color-bravo);
}


/* 2 - basic setup */
html {
    -webkit-text-size-adjust: 100%;
}

*,
:after,
:before {
    box-sizing: border-box;
}

a,
body,
p,
span {
    background-color: var(--color-bg);
    color: var(--color-text);
    font-family: var(--font-family);
    font-size: var(--font-size);
    font-style: var(--font-style);
    font-variant: var(--font-variant);
    font-weight: var(--font-weight);
    line-height: var(--line-height);
    margin: 0 0 var(--spacing-text) 0;
}
.text-alt {
    color: var(--white);
    font-family: var(--font-family-alt);
    font-weight: var(--weight-normal);
    text-decoration: uppercase;
}
h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
    background-color: var(--color-bg);
    color: var(--color-text);
    font-family: var(--font-family-h);
    font-size: var(--font-size);
    font-weight: var(--font-weight-h);
    line-height: var(--line-height-h);
    margin: 0 0 var(--spacing-text) 0;
    text-transform: uppercase;
}
h1 em, .h1 em,
h2 em, .h2 em,
h3 em, .h3 em,
h4 em, .h4 em,
h5 em, .h5 em,
h6 em, .h6 em {
    color: var(--color-text);
    display: inline-block;
    font-family: var(--font-family-em);
    font-size: 1.1;
    font-style: normal;
    margin-right: 0.5rem;
    text-transform: lowercase;
}
h1, .h1 {
    --font-size: var(--font-size-h1);
}
h2, .h2 {
    --font-size: var(--font-size-h2);
    margin-bottom: var(--spacing-h);    
}
h3, .h3 {
    --font-size: var(--font-size-h3);
}
h4, .h4 {
    --font-size: var(--font-size-h4);
}
h5, .h5 {
    --font-size: var(--font-size-h5);
}
h6, .h6 {
    --font-size: var(--font-size-h6);
}
.wp-block-group h2:nth-of-type(n+2) {
    margin-top: 3rem;
}
.wp-block-group__inner-container > h3,
.wp-block-column > h3 {
    margin-top: 2rem;
}
@media all and (max-width: 781px) {
    .wp-block-group__inner-container > h3,
    .wp-block-column > h3 {
        margin-top: 1rem;
    }    
}
a,
.btn,
button,
.wp-block-button__link,
.wp-block-button__link:visited,
input[type="submit"],
body,
header,
main,
footer,
section,
article,
div,
ul {
    background-color: var(--color-bg);
    color: var(--color-text);
    margin: 0;
    padding: 0;
}
.has-bg-main a {
    --color-text: var(--color-text-onbg);
}

.content-hero {
    min-height: 100px;
    padding: var(--padding);
}
.content-block {
    --color-bg: transparent;
    background-color: var(--white);
    padding: var(--padding);
}
.content-page {
    padding-bottom: var(--padding);
    padding-top: var(--padding);
}
.content-main {
    padding-bottom: 70px;
}
.max-page {
    margin: 0 auto;
    max-width: var(--page-max-width);
    width: 100%;
}
.sticky {
    position: sticky;
    top: 0;
    z-index: 1999;
}


/* 2 - tabs */
[data-tab] {
    display: none;
}
[data-tab].active {
    display: block;
}


/* 2 - text alignments */
.text-center {
    text-align: center !important;
}
.text-left {
    text-align: left !important;
}
.text-right {
    text-align: right !important;
}


/* 2 - grid layout */
.grid {
    align-items: stretch;
    display: grid;
    gap: var(--padding) var(--padding);
    grid-template-columns: repeat(var(--grid-columns), 1fr);
    justify-items: stretch;
}
.grid.col-2 {
    --grid-columns: 2;
}
.grid.col-3 {
    --grid-columns: 3;
}
.grid.col-4 {
    --grid-columns: 4;
}
.grid.left {
    justify-items: start;
}
.grid .left {
    justify-self: start;
}
.grid.right {
    justify-items: end;
}
.grid .right {
    justify-self: end;
}
.grid.center {
    justify-items: center;
}
.grid .center {
    justify-self: center;
}
.grid.top {
    align-items: start;
}
.grid .top {
    align-self: start;
}
.grid.bottom {
    align-items: end;
}
.grid .bottom {
    align-self: end;
}
.grid.middle {
    align-items: center;
}
.grid .middle {
    align-self: center;
}

/* 2 - responsive variables */
.grid { /* to alter the width of a column, set the width with vw OR use 2fr 1fr to get 2/3 1/3 */
    --grid-columns: 1;
}
@media all and (min-width: 576px) {
    .grid.col-xs-2 {
        --grid-columns: 2;
    }
    .grid.col-xs-3 {
        --grid-columns: 3;
    }
    .grid.col-xs-4 {
        --grid-columns: 4;
    }
}
@media all and (min-width: 768px) {
    .grid.col-sm-1 {
        --grid-columns: 1;
    }
    .grid.col-sm-2 {
        --grid-columns: 2;
    }
    .grid.col-sm-3 {
        --grid-columns: 3;
    }
    .grid.col-sm-4 {
        --grid-columns: 4;
    }
}
@media all and (min-width: 993px) {
    .grid.col-md-1 {
        --grid-columns: 1;
    }
    .grid.col-md-2 {
        --grid-columns: 2;
    }
    .grid.col-md-3 {
        --grid-columns: 3;
    }
    .grid.col-md-4 {
        --grid-columns: 4;
    }
}
@media all and (min-width: 1200px) {
    .grid.col-lg-1 {
        --grid-columns: 1;
    }
    .grid.col-lg-2 {
        --grid-columns: 2;
    }
    .grid.col-lg-3 {
        --grid-columns: 3;
    }
    .grid.col-lg-4 {
        --grid-columns: 4;
    }
}
@media all and (min-width: 1440px) {
    .grid.col-xl-1 {
        --grid-columns: 1;
    }
    .grid.col-xl-2 {
        --grid-columns: 2;
    }
    .grid.col-xl-3 {
        --grid-columns: 3;
    }
    .grid.col-xl-4 {
        --grid-columns: 4;
    }
}


/* 2 - flex layout */
.flex {
    display: flex;
    flex-wrap: wrap;
    gap: var(--padding) var(--padding);
    justify-content: center;
    width: 100%;
}
.flex.nowrap {
    flex-wrap: nowrap;
}
.flex.cols {
    flex-direction: column;
}
.flex > .grow {
    flex-grow: 1;
}
.flex > * {
    max-width: 100%;
}

.flex.left {
    justify-content: start;
}
.flex .left {
    justify-self: start;
}
.flex.right {
    justify-content: end;
}
.flex .right {
    justify-self: end;
}
.flex.center {
    justify-content: center;
}
.flex .center {
    justify-self: center;
}
.flex.evenly {
    justify-content: space-evenly;
}
.flex.top {
    align-items: start;
}
.flex .top {
    align-self: start;
}
.flex.bottom {
    align-items: end;
}
.flex .bottom {
    align-self: end;
}
.flex.middle {
    align-items: center;
}
.flex .middle {
    align-self: center;
}


/* 2 - hidden and visible */
/* it works up in view width, always starting visible */
.hidden,
[class*=hidden-],
.visible,
[class*=visible-] {
    display: var(--has-display);
}
.hidden,
[class*=visible-] {
    --has-display: none;
}
.visible,
[class*=hidden-] {
    --has-display: block;
}
@media all and (min-width: 576px) {
    .hidden-xs {
        --has-display: none;
    }
    .visible-xs {
        --has-display: block;
    }
}
@media all and (min-width: 768px) {
    .hidden-sm {
        --has-display: none;
    }
    .visible-sm {
        --has-display: block;
    }
}
@media all and (min-width: 993px) {
    .hidden-md {
        --has-display: none;
    }
    .visible-md {
        --has-display: block;
    }
}
@media all and (min-width: 1200px) {
    .hidden-lg {
        --has-display: none;
    }
    .visible-lg {
        --has-display: block;
    }
}
@media all and (min-width: 1440px) {
    .hidden-xl {
        --has-display: none;
    }
    .visible-xl {
        --has-display: block;
    }
}
[data-show] {
    display: none;
}
.show {
    display: inline-block;
}
