/* fraunces-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: "Fraunces";
  font-style: normal;
  font-weight: 400;
  src: url("../fonts/Fraunces_72pt-Light.ttf") format("truetype"); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/*!
 * Font Awesome Free 5.9.0 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 */
@font-face {
  font-family: "Font Awesome 5 Brands";
  font-style: normal;
  font-weight: normal;
  font-display: $fa-font-display;
  src: url("../fonts/fa-brands-400.eot");
  src:
    url("../fonts/fa-brands-400.eot?#iefix") format("embedded-opentype"),
    url("../fonts/fa-brands-400.woff2") format("woff2"),
    url("../fonts/fa-brands-400.woff") format("woff"),
    url("../fonts/fa-brands-400.ttf") format("truetype"),
    url("../fonts/fa-brands-400.svg#fontawesome") format("svg");
}

/* inconsolata-regular - latin */
@font-face {
  font-family: 'Inconsolata';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/inconsolata-v17-latin-regular.eot'); /* IE9 Compat Modes */
  src: local('Inconsolata Regular'), local('Inconsolata-Regular'),
       url('../fonts/inconsolata-v17-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('../fonts/inconsolata-v17-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
       url('../fonts/inconsolata-v17-latin-regular.woff') format('woff'), /* Modern Browsers */
       url('../fonts/inconsolata-v17-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
       url('../fonts/inconsolata-v17-latin-regular.svg#Inconsolata') format('svg'); /* Legacy iOS */
}

.fab {
  font-family: "Font Awesome 5 Brands";
}

:root {
  --is-circle: 50%;
  --is-rounded: 1.5rem;
  --padding-large: 4rem;
  --padding-small: 1rem;
  --padding-xsmall: 0.5rem;
  --padding-medium: 2rem;
  --padding-none: 0;
  --footer-height: 10rem;

  /* COLORS */
  --bg-color-primary: #f6f3ec;
  --bg-color-secondary: #edeeec;
  --bg-color-tertiary: #1b2f48;
  --font-color-red: #c12e22;
  --font-color-blue: #215091;
  --font-color-green: #267934;
  --text-color: var(--bg-color-tertiary);
  --text-color-light: #666867;

  /* TYPOGRAPHY */
  --font-size: clamp(
      0.85rem,
      0.5rem + 1vw,
      1.15rem
  );
  --font-family: "Inconsolata", courier, mono-space;

  /* FLEX */
  --flex-row: row;

  /* COLUMNS */
  --columns: 1;

  /* QUERIES */
  --tablet-up: 640px;
}

@media (max-width: 840px) {
  :root {
    --flex-row: column;
  }
}

@media (min-width: 1332px) {
  :root {
    --columns: 2;
  }
}

/* RESETS */

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

nav a,
#logo a {
  text-decoration: none;
  color: var(--text-color-light);
  transition: color 0.3s ease;
}

li {
  line-height: 100%;
  list-style: none;
  padding-bottom: 0.5rem;
}

/* LAYOUT */

html,
body,
#container {
  height: 100%;
  padding: 0;
  margin: 0;
}

body {
  font-family: var(--font-family);
  font-size: var(--font-size);
}

.main-content {
  padding-bottom: var(--footer-height);
}

#wrapper {
  min-height: 100%;
  height: auto !important;
  height: 100%;
}

header {
  padding: var(--padding-small);
}

footer {
  position: relative;
  margin-top: calc(var(--footer-height) * -1);
  height: var(--footer-height);
  padding: 1rem;
}

footer .flex__wrapper {
  flex-direction: column;
  @media ( min-width: 640px) {
    flex-direction: row;
  }
}

footer .social {
  text-align: center;
  @media (min-width: 641px) {
    text-align: left;
    margin-left: 2rem;
  }
}

footer .imp-columns {
  width: 44ch;
  column-gap: 4ch;
  column-width: 20ch;
  column-fill: balance;
  @media (min-width: 840px) {
    width: 60ch;
    column-gap: 4ch;
    column-width: 28ch;
  }
}

header #logo {
  font-family: "Fraunces", serif;
  font-weight: 500;
  line-height: 125%;
  color: var(--text-color);
  font-size: 1.5rem;
}

/* grid */
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(480px, 1fr));
  gap: 2rem;
}

.block-cards .grid, footer .grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 2rem;
}

/* typography */

h1,
h2,
h3,
h4,
h5,
.h1 {
  font-family: "Fraunces", serif;
  margin: 0.75rem 0 1rem;
  font-weight: 400;
  line-height: 115%;
  color: var(--text-color);
}

h1.text-block__headline {
  @media screen and (min-width: 841px) {
    margin-bottom: 0;
  }
}

section.h1 {
  line-height: 215%;
  margin: 0;
}

p,
li {
  font-size: var(--font-size);
  line-height: 150%;
  color: var(--text-color-light);
}
.card__text-content p {
  line-height: 135%;
}

li {
  font-size: 1.25rem;
  line-height: 150%;
  color: var(--text-color-light);
}

/* LINKS */

a:link, a:visited {
  color: var(--font-color-blue);
}

nav a:link, nav a:visited {
  color: var(--text-color-light);
}

a:hover, a:active {
  color: var(--font-color-red);
}

nav a:hover, nav a:active {
  color: var(--font-color-blue);
}


/* ========================================================================== */
/* !---------  ---------------------------------------
/* ========================================================================== */

/* sections*/

section {
  margin: 0 auto;
}

section.section--width-full > div {
  width: 100%;
  max-width: 96rem;
  margin: 0 auto;
}

section.section--width-wide > div {
  max-width: 75rem;
  margin: 0 auto;
}

section.section--width-narrow > div {
  max-width: 50rem;
  margin: 0 auto;
}

section.block {
  position: relative;
}

section.section--padding-large, section.section--padding-small, section.section--padding-medium {
  padding: 1rem;
}

section.section--padding-none {
  padding: 0;
}

@media (min-width: 841px) {
    section.section--padding-large {
      padding: 8rem 1rem;
      margin: 0 auto;
    }

    section.section--padding-small {
      padding: 2rem 1rem;
      margin: 0 auto;
    }

    section.section--padding-medium {
      padding: 5rem 1rem;
      margin: 0 auto;
    }
}

.static-page {
  padding: 5rem 0;
}

.hero-images {
  position: absolute;
}

.text-left {
  text-align: left;
}

.text-right {
  text-align: right;
}

/* #######################################
   ############## BLOCKS #################
   ####################################### */

.block-hero__wrapper {
  background-color: rgba(255, 255, 255, 0.8);
  border-radius: 10px;
  @media (min-width: 841px) {
    background-color: transparent;
    border-radius: 0;
  }
}

/* TEXTBLOCK */

.text-block__content {
  margin: .5rem 2rem;
  max-width: 72ch;
}

@media (min-width: 841px) {
  .text-block__content.text-columns {
    max-width: 120ch;
    width: 120ch;
    column-gap: 4ch;
    column-width: 42ch;
    column-fill: balance;
  }
  header + .text-block__content.text-columns {
    max-width: 120ch;
    width: 120ch;
    column-gap: 4ch;
    column-width: 36ch;
    column-fill: balance;
  }
}

.block-textblock, .page__text {
  & h2 {
    margin-bottom: 2rem;
  }
  & p {
    margin-bottom: 1rem;
  }
}


.text-block__content li {
  list-style: disc;
  line-height: 100%;
}

.text-block__content ul {
  margin: 1rem 0 1rem 1rem;
}

.block-textblock header {
  max-width: 78ch;
}

.block-textblock header:has(.text-block__content) {
  max-width: 34ch;
}

.block-blockquote blockquote {
  padding: calc(.5rem + 1vw);
  border: none;
  & p {
    font-style: italic;
  }
  @media (min-width: 841px) {
    border-top: 1px solid var(--text-color-light);
    border-bottom: 1px solid var(--text-color-light);
  }
}

/* ========================================================================== */
/* !---------------------- Navigation ---------------------------------------
/* ========================================================================== */

main nav.responsive-menu {
  max-height: 0;
  overflow: hidden;
  transition: max-height .2s ease-out;
}

main nav.responsive-menu.showMenu {
  max-height: unset;
  transition: max-height .2s ease-out;
}

main nav.responsive-menu ul {
  display: flex;
  flex-direction: column;
  background-color: rgba(255, 255, 255, 0.8);
  @media (min-width: 841px) {
    display: none;
  }
}

nav li {
  list-style: none;
  display: inline-block;
}

main nav.responsive-menu li {
  display: block;
  border-bottom: var(--text-color-light) 1px dashed;
  padding: 0.5rem 1rem;
  &:last-child {
    border: none;
  }
}

header nav li {
  padding-bottom: 0;
  padding: 0 .5rem;
}

nav.breadcrumb ol li {
  font-size: .9rem;
}

nav.breadcrumb ol li:after {
  content: "/";
}

nav.breadcrumb ol li:last-child:after {
  content: "";
}

nav.breadcrumb ol li:last-child a {
  &:hover, &:visited {
    color: var(--font-color-green);
  }
}

a#navicon {
  width: 1rem;
  height: 1rem;
  padding-top: 8px;
}

span.navicon {
  background: #333;
  display: block;
  position: relative;
  height: 2px;
  transition: background .2s ease-out;
  width: 18px;
}

span.navicon.showMenu {
  height: 0;
}

span.navicon:before,
span.navicon:after {
  background: #333;
  content: '';
  display: block;
  height: 2px;
  position: absolute;
  transition: all .2s ease-out;
  width: 100%;
}

span.navicon:before {
  top: 5px;
}

span.navicon:after {
  top: -5px;
}

/* menu btn */

.menu-btn {
  display: none;
}



span.navicon.showMenu:before {
  transform: rotate(-45deg);
}

span.navicon.showMenu:after {
  transform: rotate(45deg);
}

span.navicon.showMenu:before,
span.navicon.showMenu:after {
  top: 0;
}



/* HELPER CLASSES */


.clearfix::after {
  clear: both;
  content: "";
  display: block;
}

.flex {
  display: flex;
  flex-direction: column;
  align-items: center;
  @media (min-width: 841px) {
    flex-direction: row;
  }
}

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


.flex-start {
  align-items: flex-start;
}

.flex-end {
  align-items: flex-start;
  @media (min-width: 841px) {
    align-items: flex-end;
  }
}

.is-circle {
  border-radius: var(--is-circle);
}

.is-rounded {
  border-radius: var(--is-rounded);
}

.padding-large {
  padding: var(--padding-large);
}

.padding-small {
  padding: var(--padding-small);
}

.padding-medium {
  padding: var(--padding-medium);
}

.padding-none {
  padding: var(--padding-none);
}

.h-small, .p-small {
  font-size: calc(0.75rem + 1vw);
}

.h-medium, .p-medium {
  font-size: calc(1rem + 1vw);
}

.h-big, .p-big {
  font-size: calc(1.75rem + 1vw);
}

.h-large, .p-large {
  font-size: calc(1rem + 4vw);
}

.highlight-red,
.highlight-blue,
.highlight-green {
  font-style: italic;
}

.highlight-red {
  color: var(--font-color-red);
}

.highlight-blue {
  color: var(--font-color-blue);
}

.highlight-green {
  color: var(--font-color-green);
}

.button {
  display: inline-block;
  padding: 0.3rem 1rem;
  color: var(--text-color);
  text-decoration: none;
  transition: background-color 0.3s ease;
  border: 1px solid lightgrey;
  border-radius: 999px;
  background-color: rgba(0,0,0,.1);
}

.button:hover {
  background-color: var(--bg-color-tertiary);
}

.button a:hover {
  color: white;
}

.button a {
  text-decoration: none;
  color: var(--text-color);
}



/* ========================================================================== */
/* !-------------------------- OTHER MEDIA QUERIES --------------------------
/* ========================================================================== */

.mobile-up {
  display: none;
  @media (min-width: 480px) {
    display: flex;
  }
}

.phablet-only {
  display: flex;
  @media (min-width: 641px) {
    display: none;
  }
}

.phablet-up {
  display: none;
  @media (min-width: 641px) {
    display: flex;
  }
}

.tablet-up {
  display: none;
  @media (min-width: 841px) {
    display: flex;
  }
}

.mobile-only {
  @media (min-width: 480px) {
    display: none;
  }
}

.tablet-only {
  @media (min-width: 840px) {
    display: none;
  }
}

