
:root {

  --desktop-width: 1600px;
  --layout-width: 1460px;
  --menu-width: 1300px;
  --mobile-menu-height: 50px;
  --submenu-retract-height: 46px;
  --side-nav-width: 300px;
  --text-width: 800px;
  --form-width: 400px;
  --footer-col-width: 240px;
  --margin: 40px;
  --space-xs: 10px;
  --space-s: 20px;
  --space-m: 40px;
  --space-l: 80px;
  --space-xl: 100px;
  --shrink-brand: 82px;
  --shrink-logo: 130px;
  --size: 1rem;
  --size-1: 1rem;
  --size-2: 2rem;
  --size-3: 3rem;
  --size-4: 4rem;
  --size-5: 5rem;
  --size-half: calc(var(--size) / 2);
  --size-double: calc(var(--size) * 2);

  --font-title: 'Open Sans', sans-serif;
  --font-body: 'Open Sans', sans-serif;

  --theme-color: #F73;
  --body-bg-color: #FFF;

  --black: #222222;
  --black-rgb: rgb(34, 34, 34);

  --white: #FFF;
  --white-rgb: rgb(255, 255, 255);

  --gray: #D9D9D9;
  --gray-rgb: rgb(217, 217, 217);
  --light-gray: #EEE;
  --dark-gray: #777;

  --shadow: rgba(0, 0, 0, .5);

  --border-r-s: .5rem;
  --border-r-m: 1rem;
  --border-r-l: 2rem;

  --primary: var(--orange);
  --secondary: var(--orange);

  --card-cols: 2;
  --card-width: calc((100% - (var(--size) * (var(--card-cols) - 1))) / var(--card-cols));

  --f-100: 0 0 100%;
  --row-2: 0 0 calc((100% / 2 - var(--size)) + (var(--size) / 2));
  --row-3: 0 0 calc((100% / 3 - var(--size)) + (var(--size) / 3));
  --row-4: 0 0 calc((100% / 4 - var(--size)) + (var(--size) / 4));
  --row-2-gap-1: 0 0 calc((100% / 2 - var(--size-1)) + (var(--size-1) / 2));
  --row-4-gap-1: 0 0 calc((100% / 4 - var(--size-1)) + (var(--size-1) / 4));

}



* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 100;
  background-color: var(--body-bg-color);
}

h1, h1, h3 {
  font-family: var(--font-title);
  color: var(--black);
  font-weight: lighter;
}

h1 {
  text-align: center;
  font-size: 2rem;
  line-height: 4rem;
  margin-bottom: 2rem;
}

h2 {
  font-size: 1.5rem;
  line-height: 2.5rem;
  margin-bottom: 1.5rem;
}

h3 {
  font-size: 1.4rem;
  line-height: 2rem;
  margin-bottom: 1rem;
}

h4 {
  margin-bottom: 1rem;
  font-size: 1.3rem;
}

img {
  max-width: 100%;
}

ul {
  list-style: none;
}

a {
  color: inherit;
  font-size: inherit;
  text-decoration: none;
}

p a {
  color: var(--theme-color);
}

p {
  max-width: var(--text-width);
}

p:not(:last-child) {
  margin-bottom: 1rem;
}

p a {
  color: var(--theme-color);
}

span {
  font-size: inherit;
  color: inherit;
}

hr {
  height: 4px;
  background-color: var(--primary);
  border: 0;
  border-radius: 2px;
}

figure {
  text-align: center;
}

img {
  vertical-align: middle;
}

i, svg, path {
  color: inherit;
  font-size: inherit;
}

table {
  table-layout: fixed;
}

time {
  color: var(--dark-gray);
  font-size: .9rem;
  line-height: 1.5rem;
}

address {
  font-style: normal;
}

input,
textarea {
  padding: 0 8px;
  max-width: 100%;
  font-size: 16px;
  border: 0;
  border-radius: 0;
}

input {
  line-height: 32px;
}

textarea {
  padding: 8px;
}

button,
input[type=submit] {
  border: 0;
}

main input:not([type=submit]):not([type=radio]):not([type=search]),
main textarea {
  margin-bottom: var(--size-1);
  width: var(--form-width);
  max-width: 100%;
  background-color: var(--light-gray);
}

.Home-Mailing input:not([type=submit]) {
  width: unset !important;
}

main button:not(.Search-Button),
main input[type=submit] {
  margin: 0 auto;
  padding: 0 20px;
  line-height: 32px;
  color: var(--white);
  font-size: .9rem;
  font-weight: bold;
  text-transform: uppercase;
  background-color: var(--theme-color);
/*  border-radius: var(--border-r-s);*/
}

.BG-B button:not(.Search-Button),
.BG-B input[type=submit] {
  color: var(--black);
}

button.Search-Button {
  background-color: transparent;
}

input[type=search] {
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
}
input[type="search"]::-webkit-search-decoration {
  display: none !important;
}

.Success {
  text-align: center;
}

.Success h3 {
  color: var(--white);
}

.Search-Form input[type=search] {
  margin: 0;
  width: calc(100% - 40px);
  background-color: var(--white);
}

.Sort-Options input[type=radio] {
  -webkit-appearance: none;
  appearance: none;
}

.Sort-Options input[type=radio] ~ label {
  cursor: pointer;
  white-space: pre;
}

.Sort-Options input:checked ~ label {
  color: var(--primary);
}

.Sort-Label {
  margin-left: 4px;
}



/* || DEFAULTS */

.Text-Width { max-width: var(--text-width); }
.O-H { overflow: hidden; }
.P-Abs { position: absolute; }
.P-Rel { position: relative; }
.P-T { top: 0; }
.P-S { left: 0; right: 0; }
.P-L { left: 0; }
.P-R { right: 0; }
.P-B { bottom: 0; }
.P-B-1 { bottom: 1rem; }
.W-100 { width: 100%; }
.M { margin: var(--size); }
.M-0 { margin: 0; }
.MT { margin-top: var(--size); }
.MT-0 { margin-top: 0 !important; }
.MT-1 { margin-top: 1rem; }
.MT-2 { margin-top: 2rem; }
.MT-3 { margin-top: 3rem; }
.MB { margin-bottom: var(--size); }
.MB-0 { margin-bottom: 0; }
.MB-1 { margin-bottom: 1rem; }
.MB-2 { margin-bottom: 2rem; }
.MB-3 { margin-bottom: 3rem; }
.MS-A { margin-left: auto !important; margin-right: auto !important; }
.Pad { padding: var(--size); }
.Pad-H { padding: .5rem; }
.Pad-0 { padding: 0; }
.Pad-05 { padding: calc(var(--size-1) / 2); }
.Pad-1 { padding: var(--size-1); }
.Pad-2 { padding: var(--size-2); }
.Pad-L-1 { padding-left: 1rem; }
.PT-3 { padding-top: 3rem; }
.PB-0 { padding-bottom: 0; }
.F-L { float: left; }
.F-R { float: right; }
.C { text-align: center; }
.C-W { color: var(--white); }
.C-B { color: var(--black); }
.C-P { color: var(--primary); }
.C-S { color: var(--secondary); }
.FS-3 { font-size: 3rem; }
.FS-25 { font-size: 2rem; }
.FS-2 { font-size: 2rem; }
.FS-15 { font-size: 1.5rem; }
.FS-125 { font-size: 1.25rem; }
.FS-1 { font-size: 1rem; }
.FS-09 { font-size: .9rem; }
.FS-08 { font-size: .8rem; }
.FS-07 { font-size: .7rem; }
.LH-2 { line-height: 2rem; }
.LH-3 { line-height: 3rem; }
.FW-N { font-weight: normal; }
.FW-B { font-weight: bold; }
.FW-L { font-weight: lighter; }
.TT-U { text-transform: uppercase; }
.BG-T { background-color: var(--theme-color); }
.BG-P { background-color: var(--primary); }
.BG-S { background-color: var(--secondary); }
.BG-G { background-color: var(--gray); }
.BG-LG { background-color: var(--light-gray); }
.BG-W { background-color: var(--white); }
.BG-B { background-color: var(--black); }
.D-B { display: block; }
.D-F { display: flex; }
.D-N { display: none; }
.O-1 { order: 1; }
.O-2 { order: 2; }
.O-3 { order: 3; }
.FW-W { flex-wrap: wrap; }
.FW-NW { flex-wrap: nowrap; }
.F-100 { flex: var(--f-100); }
.JC-SB { justify-content: space-between; }
.JC-SA { justify-content: space-around; }
.JC-SE { justify-content: space-evenly; }
.JC-FS { justify-content: flex-start; }
.JC-FE { justify-content: flex-end; }
.JC-C { justify-content: center; }
.AI-FS { align-items: flex-start; }
.AI-C { align-items: center; }
.AI-FE { align-items: flex-end; }
.AI-S { align-items: stretch; }
.Gap { gap: var(--size); }
.Gap-1 { gap: var(--size-1); }
.Gap-2 { gap: var(--size-2); }
.Gap-3 { gap: var(--size-3); }
.Gap-025 { gap: .25rem; }
.Gap-1px { gap: 1px; }
.Gap-2px { gap: 2px; }
.FF-R { flex-flow: row-reverse wrap-reverse; }
.B-0 { border: 0; }
.BR-50 { border-radius: 50%; overflow: hidden; }
.BR-S { border-radius: var(--border-r-s); overflow: hidden; }
.BR-M { border-radius: var(--border-r-m); overflow: hidden; }
.BR-L { border-radius: var(--border-r-l); overflow: hidden; }
.BS-S { box-shadow: 0 0 10px var(--shadow); }
.Col-Text { flex: 0 1 var(--text-width); }
.Avatar { overflow: hidden; margin: 0 auto; width: 9rem; height: 9rem; border-radius: 50%; }
.Avatar.Small { width: 60px; height: 60px; }
.Avatar.Active { border: 3px solid var(--primary); }
.Avatar img { object-fit: cover; aspect-ratio: 1 / 1; }
.List-Thumb { object-fit: cover; }
.AR-16-9 { aspect-ratio: 16 / 9; }
.AR-6-7 { aspect-ratio: 6 / 7; }
.Transition { transition: all .2s ease-in-out; }
.Tag { color: var(--dark-gray); font-size: .7rem; font-weight: bold; text-transform: uppercase; }
.Unavailable { opacity: 25%; }



/* || LAYOUT */
.Container,
.Menu.Container {
  padding-left: 1rem;
  padding-right: 1rem;
}



/* || HEADER */

body {
  margin-top: var(--main-top-margin);
}

.Header {
  z-index: 9000;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}

.Header .Logo {
  max-height: 2rem;
}

.Nav {
  box-shadow: 0 0 10px var(--shadow);
}

.Header header {
  color: var(--white);
}

.Header .Social a {
  margin: 0 8px;
  font-size: 1.5rem;
}

.Header-Search button {
  cursor: pointer;
  font-size: 20px;
  background-color: transparent;
}

.Menu {
  width: 100%;
  transition: .5s;
}

.Menu a {
  display: block;
  color: var(--theme-color);
}

.Menu .Highlight {
  text-align: center;
  color: var(--white);
  line-height: 32px;
  background-color: var(--orange);
  border-radius: 4px;
}

.Menu > li > a {
  text-transform: uppercase;
}

.Menu > li {
  position: relative;
}

.Submenu {
  display: none;
}

.Submenu a {
  display: block;
  padding: 0 10px;
  line-height: 2rem;
}

.Menu > li:hover .Submenu {
  display: block;
}


.Nav a,
.Footer a {
  transition: all .2s ease-in-out;
}

.Nav a:hover,
.Footer a:hover {
  color: var(--white);
}

.Nav a {
  display: block;
  font-size: .8rem;
}

.Nav .Logo img {
  max-height: 2.5rem;
}

.Nav-Avatar {
  cursor: pointer;
  overflow: hidden;
  padding-top: .4rem;
  width: 2rem;
  height: 2rem;
  text-align: center;
  color: var(--white);
  border: 1px solid var(--white);
  border-radius: 50%;
}

.Nav i {
  font-size: 1.5rem;
}

.Nav {
  background-color: rgba(0, 0, 0, .8);
}

.Nav,
.Footer {
  -webkit-backdrop-filter: saturate(2) blur(10px);
  backdrop-filter: saturate(2) blur(10px);
}



/* || FOOTER */
.Footer {
  padding: 1rem;
  text-align: center;
  font-size: .8rem;
  color: #CCC;
  background-color: var(--black);
}

.Footer a {
  color: var(--theme-color);
}

.Social {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 1rem;
}
.Social li {
  padding: .25rem;
}
.Social a {
  font-size: 1.2rem;
}



/* || MAIN */
main {
  padding-top: var(--size);
  padding-bottom: var(--size);
}



/* || PAGES */
.News article {
  margin-bottom: var(--size);
}
.News article figure {
  flex: 0 0 25%;
  background-color: var(--light-gray);
}
.News-E {
  margin: 0 auto;
  max-width: var(--text-width);
}
.N-Img {
  object-fit: cover;
  aspect-ratio: 4 / 2;
}

.Card .Tag {
  text-align: center;
  line-height: 2rem;
}

.Article {
  border: 1px solid var(--gray);
}
.Article svg {
  font-size: 2rem;
}
.File-Size {
  font-size: .7rem;
}



/* DETAILS */

.Home-News,
.Home-Courses {
  gap: 1rem;
  flex-wrap: wrap;
}

.Cards {
  display: flex;
  justify-content: flex-start;
  align-items: stretch;
  flex-wrap: wrap;
  gap: var(--size);
}

.Card {
  flex: 0 0 var(--card-width);
}
@media (min-width: 768px) {
  :root { --card-cols: 3; }
}
@media (min-width: 992px) {
  :root { --card-cols: 4; }
}

.Card-Alert {
  font-size: .8rem;
  font-weight: bold;
  text-transform: uppercase;
}

.Card-Title {
  padding-top: 0.5rem;
}

.Card .Tag {
  margin-bottom: -1rem;
}

.Card img {
  object-fit: cover;
  aspect-ratio: 4 / 3;
  width: 100%;
}

.Home-About {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  color: var(--white);
}

.Home-About.Container {
  padding: 0;
}

.H-A-Text {
  padding: 2rem 1rem;
}

.Avatars {
  overflow: hidden;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  gap: 1rem;
}

.H-P-Entry {
  flex: 1 0 45%;
  text-align: center;
}

.H-P-Img {
  object-fit: cover;
  aspect-ratio: 1;
  width: 8rem;
  height: 8rem;
}

.Home-Mailing form {
  flex-wrap: wrap;
  margin: 0 auto;
  max-width: 20rem;
}



/* [] SCREEN SIZES | Extra Small Devices (Smartphones) */
@media (max-width: 600px) {

  :root {
    --main-top-margin: 50px;
    --size: var(--size-1);
    --text-width: 100%;
    --form-width: 100%;
  }

  .Header {
    position: fixed;
  }

  .Header header {
    width: 100%;
    height: var(--main-top-margin);
    box-shadow: 0 0 .5rem rgba(0, 0, 0, .5);
  }
  
  .Header-Brand img {
    max-height: var(--main-top-margin);
  }

  .Btn-Menu {
    cursor: pointer;
    display: flex;
    color: var(--white);
    background: none;
    border: none;
  }

  .Menu {
    overflow-y: hidden;
    visibility: hidden;
    display: block;
    top: var(--mobile-menu-height);
    left: 0;
    width: 100%;
    height: 0;
/*    background-color: rgba(0, 0, 0, .85);*/
  }

  .Submenu li {
    padding-left: 10px;
  }
  
  .Hamburger {
    border-top: 2px solid;
    width: 20px;
  }
  
  .Hamburger::after,
  .Hamburger::before {
    content: " ";
    position: relative;
    display: block;
    margin-top: 6px;
    width: 20px;
    height: 2px;
    background: currentColor;
    transition: .3s;
  }
  
  .Nav.active .Menu {
    overflow-y: auto;
    visibility: visible;
    padding-top: 1rem;
    height: calc(100vh - var(--mobile-menu-height));
    color: var(--white);
  }
  
  .Nav.active .Hamburger {
    border-top-color: transparent;
  }
  
  .Nav.active .Hamburger::before {
    transform: rotate(135deg);
  }
  
  .Nav.active .Hamburger::after {
    transform: rotate(-135deg);
    top: -7px;
  }

  .Menu > li > a {
    padding-left: 1rem;
    line-height: 2rem;
  }

  .Menu > li > a:hover {
    border-left: 4px solid var(--theme-color);
  }

}



/* [] SCREEN SIZES | Small Devices (Portrait Tablets and Large Smartphones) */
@media (min-width: 600px) {

  :root {
    --main-top-margin: 50px;
    --size: var(--size-2);
  }

  .Btn-Menu {
    display: none;
  }

  .Header header {
    flex: 1 0 100%;
    padding-top: .5rem;
    padding-bottom: .5rem;
  }

  .Menu {
    margin: -3rem auto 0;
    width: calc(100% - 12rem);
    max-width: 50rem;
  }

  .Nav {
    position: fixed;
    top: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
  }

  .Nav ul {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  .Nav li {
    text-align: center;
  }

  .Nav li a {
    padding: .25rem;
    font-size: .7rem;
  }

  main {
    margin-top: var(--main-top-margin);
    min-height: calc(100vh - var(--main-top-margin) - 131px);
  }

  .H-P-Entry {
    flex: 0 0 21%;
  }

  .Home-Mailing {
    flex-wrap: nowrap;
  }

}



/* [] SCREEN SIZES | Medium Devices (Landscape Tablets) */
@media (min-width: 768px) {

  .Nav li a {
    padding: .5rem;
    font-size: .8rem;
  }

  .H-A-Image {
    width: 50%;
  }

  .H-A-Text {
    font-size: .8rem;
  }

  .Home-Mailing {
    padding-top: 6rem;
    padding-bottom: 6rem;
  }
  
  .Home-About {
    flex-wrap: nowrap;
  }

  .Home-Mailing form {
    flex-wrap: nowrap;
  }

  .Home-Mailing input,
  .Home-Mailing button {
    flex: 1 0 30%;
  }

  .Home-Mailing button {
    flex: unset;
    border-radius: 0 .5rem .5rem 0;
  }

}



/* [] SCREEN SIZES | Large Devices (Laptops/Desktops) */
@media (min-width: 992px) {

  .Nav li a {
    padding: 1rem;
    font-size: .9rem;
  }

  .H-A-Text {
    font-size: .9rem;
    padding: 2rem;
  }

  .Home-Mailing form {
    justify-content: center;
  }

  .Home-Mailing input {
    flex: 1 0 3rem;
  }

}



/* [] SCREEN SIZES | Extra Large Devices (large Laptops and Desktops) */
@media (min-width: 1200px) {

  .H-A-Text {
    font-size: 1rem;
    padding: 3rem;
  }

  .Avatars {
    flex-wrap: nowrap;
  }

  .H-P-Entry {
    flex: 1 0 11%;
    text-align: center;
  }

}



/* [] SCREEN SIZES | Extra Large Displays */
@media (min-width: 1460px) {

  .Container,
  .Nav.Shrink {
    padding-left: calc((100% - var(--layout-width)) / 2);
    padding-right: calc((100% - var(--layout-width)) / 2);
  }

}
