@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 300;
  src: url('../fonts/source-sans-pro-v21-latin-300.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/source-sans-pro-v21-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 200;
  src: url('../fonts/source-sans-pro-v21-latin-200.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Source Sans Pro';
  font-style: normal;
  font-weight: 600;
  src: url('../fonts/source-sans-pro-v21-latin-600.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* Core Stuff */
* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

:root {
	--header-size: 8em;
}

html {
	width: 100%;
	scroll-behavior: smooth;
	font-size: 16px;
}

body {
	width: 100%;
	margin: 0;
	color: #663568;

	font-family:'Source Sans Pro',-apple-system,system-ui,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',sans-serif;
	font-weight: 300;

	font-size: clamp(1rem, 3vw, 1.7rem);
	line-height: 1.4em;
}

main {
	font-size: clamp(1rem, 1.6vw, 1.7rem);
	line-height: 1.4em;

	overflow-x: hidden;

	background: linear-gradient(90deg, #663568 0%, #603A66 17%, #524863 38%, #3A615E 61%, #198356 85%, #009D51 100%) 0% 0% no-repeat padding-box;
	background: linear-gradient(90deg, #663568 0%, #4C4E62 12%, #0B9053 39%, #009D51 51%, #35AB43 56%, #A5CA27 86%, #D2D71C 100%) 0% 0% no-repeat padding-box;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    /*color: #663568;*/
}

h1 {
  font-size: clamp(1.8rem, 4.2vw, 3.9rem);
  line-height: 1.45em;
  font-weight: 600;
}

h2 {
  font-size: clamp(1.6rem, 4vw, 3.75rem);
  line-height: 1.34em;
  font-weight: 600;
}

h3 {
  font-size: clamp(1.2rem, 2vw, 2rem);
  line-height: 1.2em;
  font-weight: 600;
}


a {
    text-decoration: none;
    color: #663568;
}

/*
a:hover {
    color: #175E91;
}
*/

pre {
    background: #F0F0F0;
    margin: 1rem 0;
    border-radius: 2px;
}

blockquote {
    border-left: 10px solid #eee;
    margin: 0;
    padding: 0 2rem;
}

/* Utility Classes */
.wrapper {
    margin: 0 1em;
}

.padding {
    padding: 0 2rem;
}

.left {
    float: left;
}

.right {
    float: right
}

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

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

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

/* Content Styling */
.header .padding {
    padding: 0.5em 0;
    height: 100%;
}

.header {
    background-color: white;
    color: #663568;
    height: var(--header-size);
    height: fit-content;
    height: var(--header-size);
    max-height: 40vh;

    box-shadow: 0 0 5px #663568;

    position: sticky;
    width: 100%;
    top: 0;
    z-index: 5;

    transition: height 0.2s ease-in;
}

.header a {
    /*color: #fff;*/
}

.header .logo {
    font-size: 1.7rem;
    text-transform: uppercase;
    height: 100%;
    height: 2em;
    height: 65%;
}

.header .logo picture {
  height: 100%;
  display: block;
}

.header .logo img {
  height: 100%;
  /*width: 100%;*/
  object-fit: contain;
}

.logo.small {
  opacity: 0;
  visibility: hidden;
}

.logo.big {
  position: absolute;
  margin: 1em auto;
  height: 40%;
  left: 0;
  right: 0;
  width: fit-content;
  max-width: 60%;
}

.header.small {
  --header-size: 3em;
}

.header.small .logo.big {
  opacity: 0;
  visibility: hidden;
  transform: translateY(-100%);
}

.header.small .logo.small {
  opacity: 1;
  visibility: visible;
  transform: translateX(0%);
}

.logo.small {
  position: absolute;
  transition: all 0.2s ease-in;
  transform: translateX(-100%);
}

.header.small .main-nav {
  /*transform: translateX(10em);*/
  bottom: 0.5em;
}

.logo.big {
  transition: all 0.2s ease-in;
}


.anchor {
  scroll-margin-top: 3em;
}

.footer {
	position: relative;
	background-color: #eee;
}

.main-nav {
	width: fit-content;
	height: fit-content;
	margin-top: auto;
	position: absolute;
	/*bottom: 1em;*/
	left: 0;
	right: 0;
	bottom: 0.5em;
	margin: auto;
	transition: all 0.5s ease-in;
}

/* Menu Settings */
.main-nav ul {
    text-align: center;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 1em;
}

.main-nav ul li {
    display: inline-block;
    letter-spacing: normal;

    font-weight: 600;
    font-size: clamp(1.2rem, 1.6vw, 1.7rem);
    line-height: 1.45em;
}

.main-nav ul li a {
    position: relative;
    display: block;
    white-space: nowrap;
}


/*Active dropdown nav item */
.main-nav ul li:hover > a {
    /*background-color: #175E91;*/
	color: #1AA24D;
}

/* Selected Dropdown nav item */
/*
.main-nav ul li.selected > a {
  background: linear-gradient(90deg, #D2D71C 0%, #A5CA27 12%, #35AB43 39%, #009D51 51%, #0B9053 56%, #4C4E62 86%, #663568 100%);
  background-position-x: 0%, 0%;
  background-position-y: 0%, 0%;
  background-repeat: repeat, repeat;
  background-size: auto, auto;
  background-size: 100% 0.1em;
  background-position: 100% 100%, 0 100%;
  background-repeat: no-repeat;
}
*/

/* Dropdown CSS */
.main-nav ul li {position: relative;}

.main-nav ul li ul {
    position: absolute;
    background-color: white;
    min-width: 100%;
    text-align: left;
    z-index: 999;

    display: none;
    padding: 0.5em 0.5em;
    left: -0.5em;
}
.main-nav ul li ul li {
    display: block;
}

/* Dropdown CSS */
.main-nav ul li ul ul {
    left: 100%;
    top: 0;
}

/* Active on Hover */
.main-nav li:hover > ul {
    display: block;
}

/* Child Indicator */
.main-nav .has-children > a {
    /*padding-right: 30px;*/
}
.main-nav .has-children > a:after {
    font-family: FontAwesome;
    content: '>';
    position: absolute;
    display: inline-block;
    right: 8px;
    top: 0;

    display: none;
}

.main-nav .has-children .has-children > a:after {
    content: '\f105';
}

.burger-menu {
	display: none;
	position: absolute;
	right: 2em;
	z-index: 50;
	align-items: center;
	justify-content: flex-end;
	width: 25px;
	height: 25px;
	margin: auto 0;
	top: 0;
	bottom: 0;
	cursor: pointer;
}

.burger-menu span {
	height: 2px;
	width: 100%;
	background-color: #707070;
	transition: background-color 175ms, transform 175ms;
	transition-delay: 0s, 0s;
	transition-delay: 175ms;
}

.burger-menu::after,
.burger-menu::before {
	content: '';
	position: absolute;
	height: 2px;
	width: 100%;
	background-color: #707070;
	transition: all 0.1s ease 0.1s;
}
.burger-menu:before {
	top: 0;
}
.burger-menu:after {
	bottom: 0;
}

.burger-menu.active span {
	background-color: #707070;
	transform: scale(0);
	transition-delay: 0.15s;
}
.burger-menu.active::before {
	top: 50%;
	transform: rotate(-45deg) translate(0, -50%);
}
.burger-menu.active::after {
	bottom: 50%;
	transform: rotate(45deg) translate(0, 50%);
}
.burger-menu.active::after,
.burger-menu.active::before {
	background-color: #707070;
}


.container {
  max-width: 1400px;
  margin: 0 auto;
  position: relative;
}

.bg-scroll-layer {
  position: absolute;
  z-index: 0;
  width: 100%;
  overflow-x: hidden;
}

.bg-scroll-layer img {
  width: 100%;
  height: auto;
}

.section.hero {
  width: 100%;
  height: calc(100vh - var(--header-size));
  overflow: hidden;
  padding: 0;
}

.hero .bg {
  position: relative;
  width: 100%;
  height: 100%;
}

.hero .content {
  position: absolute;
  width: 10em;
  aspect-ratio: 1;
  bottom: 2em;
  color: #009d51;
  background-color: #ffffffd9;
  left: 2em;
  border-radius: 50%;

  font-weight: 600;
  text-align: center;
  display: flex;
  transform: rotate(-10deg);
}

.hero .bg picture img {
  /* position: absolute; */
  min-height: 100%;
  min-width: 100%;
  object-fit: cover;
}

.hero .bg picture {
  width: 100%;
  height: 100%;
  display: block;

  display: flex;
  align-items: center;
}

.hero-text {
  margin: auto auto;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  position: relative;
  height: fit-content;
  width: 100%;
  padding: 0.5em;
  font-size: clamp(1.2rem, 2vw, 2rem);
}


.section {
  position: relative;
  width: 100%;
  padding-bottom: 3em;
}

.section.hero {
  /* width: 100%; */
}

.link-button {
  display: block;
  width: fit-content;
  margin: 3em auto 1em;
  padding: 0.5rem 1rem;
  color: white;
  background: linear-gradient(90deg, #663568 0%, #603A66 17%, #524863 38%, #3A615E 61%, #198356 85%, #009D51 100%) 0% 0% no-repeat padding-box;
  border-radius: 10px;

  transition: all 0.2s ease-in;
}

.link-button:hover {
	scale: 1.1;
}

.link-buttons-col {
  display: flex;
  flex-direction: row;
  justify-content: space-evenly;
  margin: 3em 0 1em;
  gap: 2em;
}

.link-buttons-col .link-button {
  margin: 0;
}


.section.fg-layer {
	background-color: white;
}

.section.bg-layer {
	color: white;
	font-weight: 600;
}
.section.bg-layer a {
	color: white;
}

.section.fg-layer::before {
  content: '';
  height: 1em;
  width: 100%;
  display: block;
  background: linear-gradient(90deg, #D2D71C 0%, #A5CA27 12%, #35AB43 39%, #009D51 51%, #0B9053 56%, #4C4E62 86%, #663568 100%) 0% 0% no-repeat padding-box;
}


.section.bg-layer .intro-block h2 {
	position: relative;
}

.section.bg-layer .intro-block h2::before {
  content: '';
  position: absolute;
  /*left: -3em;
  top: -1.5em;
  width: 3em;*/
  left: -1.5em;
  top: -1em;
  width: 2em;
  aspect-ratio: 1;
  display: block;
  object-fit: contain;
  background-image: url('../images/corner_white.svg');
  background-repeat: no-repeat;
  background-size: contain;
}




.section .intro-block {
	text-align: center;
	position: relative;
}
.section .intro-block.text-left {
	text-align: left;
}
.section .intro-block.text-right {
	text-align: right;
}



.footer-content {
  background: linear-gradient(90deg, #D2D71C 0%, #A5CA27 12%, #35AB43 39%, #009D51 51%, #0B9053 56%, #4C4E62 86%, #663568 100%) 0% 0% no-repeat padding-box;
  width: 100%;
  padding: 2em 0;
  color: white;
}

.footer-content .footer-grid {
  width: 100%;
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2em;
}

.footer-content .notice {
  text-align: right;
  font-size: 1rem;
}

.footer-content .nav-column ul {
  list-style: none;
  padding-left: 0;

  font-weight: 600;

  display: flex;
  flex-direction: column;
  gap: 2em;
}

.footer-content a {
  color: white;
}
.footer-content .info-column .info-title {
	font-weight: 600;
	margin: 1em 0;
}



.footer-extra {
  background-color: white;
  padding: 2em 0;
  height: fit-content;
}

.footer-extra .container {
  /*display: flex;
  justify-content: space-between;*/
  gap: 2em;
  position: relative;
  /*height: fit-content;
  flex-wrap: wrap;*/

  display: grid;
  grid-template-columns: repeat(3, 33%);
}

.footer-extra .main-logo {
  height: 3em;
  width: fit-content;
  position: relative;
  display: block;
  margin: auto;
}

.footer-extra .main-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  scale: 0.6;
}

.footer-extra .logos {
  display: flex;
  height: 3em;
  gap: 0.5em;
  position: relative;
  margin: auto;
}

.footer-extra .social-media {
  height: 2em;
}

.footer-extra .social-media > * {
  height: 100%;
  margin: auto 0;
}

.footer-extra .social-media {
  width: fit-content;
  display: flex;
  justify-content: center;
  position: relative;
  gap: 0.2em;
  margin: auto;
}

.footer-extra .social-media img {
  height: 100%;
  transition: all 0.2s ease-in;
}

.footer-extra .social-media img:hover {
  scale: 1.2;
}

.footer-extra .social-media .socials-text {
  margin: auto 0;
  height: fit-content;
  font-size: 1rem;
}






.info-elements.grid2 {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	width: 100%;
	position: relative;
	gap: 4em;
}

.info-elements.grid3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  width: 100%;
  position: relative;
  gap: 2em;
}

.info.simple .info-elements.grid2,
.info.simple .info-elements.grid3 {
	gap: 3em;
}

.info-element {
  display: block;
  width: 100%;
}

.info-element picture {
  width: 100%;
  overflow: hidden;
  display: block;
}

.info-element img {
  width: 100%;
  display: block;
}

.info-element.round picture {
  aspect-ratio: 1;
  border-radius: 50%;
}
.info-element.round picture img {
  aspect-ratio: 1;
  object-fit: cover;
}

.info-element.rounded picture {
	border-radius: 20px;
	height: fit-content;
}


.info-elements.default {
	display: flex;
	flex-direction: column;
	gap: 3em;
}

.info-elements.default .info-element {
	display: flex;
	flex-direction: row;
	gap: 3em;
}

.info-elements.default .info-element .info-content {
	flex: 1;
}

.info-elements.default .info-element picture {
	width: 40%;
	margin-top: 1em;
}


.section.media {
  padding: 0;
  width: 100%;
}

.media-element {
  width: 100%;
  height: 100%;
}

.media-element picture,
.media-element figure,
.media-element video {
  width: 100%;
  height: 100%;
  margin: 0;
  display: block;
}

.media-element img {
  width: 100%;
  height: 100%;
  display: block;
}

.media-element.container {
  padding: 3em 1em;
}

.media-element.container picture,
.media-element.container figure,
.media-element.container video {
  border-radius: 20px;
  overflow: hidden;
}



.app-info .app-logo {
  width: 100%;
  height: 5em;
  position: relative;
  display: block;
  margin: 4em auto;
}

.app-info .app-logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.app-info .app-elements {
  display: flex;
  flex-direction: row;
  gap: 1em;
  justify-content: space-evenly;
  flex-wrap: wrap;
  margin-top: auto;
}

.app-info .content-extra {
  /*display: grid;
  grid-template-columns: 50% 50%;*/
  padding-top: 2em;
  gap: 1rem;
}

.app-info .app-element {
  position: relative;
  display: flex;
  gap: 0.3em;
  border: 2px solid green;
  border-radius: 15px;
  padding: 0.2em 1em;
  height: 2em;
}

.app-info .app-type {
  margin: auto;
  font-weight: 600;
}

.app-info .app-element picture {
  aspect-ratio: 1;
  margin: auto;
  height: 100%;
}

.app-info .app-element img {
  width: 100%;
  object-fit: contain;
  margin: auto;
}





.event-element {
  display: grid;
  grid-template-columns: 20% auto;
  gap: 2.5em;
  border-top: 2px solid green;
}

.event-date p {
    margin-top: 0;
}

.event-date p:last-child {
    margin-bottom: 0;
}

.event-content {
    overflow: hidden;
}

.event-date, .event-content h3 {
  margin-top: 1em;
  font-weight: 600;
  font-size: 1.17em;
}

.event-element:last-child {
  border-bottom: 2px solid green;
}







.progress .intro-block,
.locations .intro-block {
  width: 60%;
  margin-left: 4em;
}

.progress-elements {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3em;
}

.progress-element {
  text-align: center;
}

.progress-category {
  font-size: 1.17em;
  font-size: clamp(1rem, 4vw, 3.75rem);
  line-height: 1.34em;
}

.progress-element {
  font-weight: bold;
}

.progress-value {
  font-size: clamp(1rem, 20vw, 20rem);
  line-height: 1em;
}

.progress .notice {
  text-align: center;
  font-size: 1rem;
  margin-top: 3em;
}


/*
@property --num {
  syntax: '<integer>';
  initial-value: 0;
  inherits: false;
}
.progress-value {
  transition: --num 1s;
  counter-set: num var(--num);
}
.progress-value::after {
  content: counter(num);
}
.progress-value.active {
  --num: var(--num-end);
}
*/



.swiper-slide {
	height: 80%;
	margin: auto;
}

.location-element {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3em;

  padding: 2em 5em;
}

.location-element picture {
  width: 100%;
}

.location-element img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.location-content h3::before {
  content: '';
  position: absolute;
  /*left: -3em;
  top: -1.5em;
  width: 3em;*/
  left: -1.5em;
  top: -1em;
  width: 2em;
  aspect-ratio: 1;
  display: block;
  object-fit: contain;
  background-image: url('../images/corner_white.svg');
  background-repeat: no-repeat;
  background-size: contain;
}

.location-content h3 {
  position: relative;
}


.location-element.type-1 picture {
  grid-column: 2;
  grid-row: 1;
}

.location-element.type-1 .location-content {
  grid-column: 1;
  grid-row: 1;
}


.location-element.type-2 picture {
  grid-column: 1 / -1;
  grid-row: 2;
}

.location-element.type-2 .location-content {
  grid-column: 1 / -1;
  grid-row: 1;
  display: flex;
  gap: 2em;
  display: flex;
  gap: 2em;
}




.contact-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1em;
}

.contact-box {
  background-color: rgba(211,217,70,0.5);
  padding: 0.5em 2em 2em;
  position: relative;
  border-radius: 10px;
  display: block;
  margin: 3em 1em;
}

.contact-info p {
	margin-top: 0;
}

.contact-grid {
  color: #009d51;
}

.contact-box h2 {
  color: #009d51;
}

.contact-box .inline {
}

.forms-main-container .form-input-wrapper label {
  font-size: 16px;
  line-height: 21px;
}

.forms-main-container .form-input-wrapper {
  display: flex;
  flex-direction: row;
  gap: 1rem;
  align-items: baseline;
}

#ajax-contact-form {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 0.5em;
}

.forms-main-container .form-label,
.forms-main-container .form-input-wrapper label .required {
  display: none;
}

.forms-main-container .form-input {
  width: 100%;
  height: 100%;
  padding: 1rem;
  border: none;
  border-radius: 5px;
  color: #000;
  outline: 0;
  transition: border 0.3s ease;
}

.forms-main-container .button.submit-button {
  background-color: transparent;
  color: #663568;
  padding: 0.5em 1em;
  border: 2px solid green;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.3s ease;
  margin-left: auto;
  position: relative;
  font-size: clamp(1rem, 3vw, 1.4rem);
}

.forms-main-container .buttons {
  width: fit-content;
  margin-left: auto;
}



.section.info .content.right-a {
	display: flex;
	flex-direction: row-reverse;
	gap: 4em;
}

.section.info .content.left-a {
	display: flex;
	flex-direction: row;
	gap: 4em;
}

/*
.section.info.bg-layer .content {
  display: grid;
  grid-template-columns: 30% 1fr 50%;
  gap: 0em;
}
*/

.section.info .content.left-a .intro-block,
.section.info .content.right-a .intro-block {
  flex: 1;
}
.section.info .content.left-a .content-extra,
.section.info .content.right-a .content-extra {
  width: 40%;
  margin: auto;
}

.section.bg-layer {
  padding: 3em 0;
}

.team-category {
  width: 100%;
  margin: 4em 0;
}

.team-category:nth-child(2n+1) {
  border-top: 2px solid green;
}

.team-category.alternate .team-member:nth-child(2n) {
  margin: 0 0 0 auto;
}

.team-members {
	display: flex;
	flex-direction: column;
	gap: 3em;
}

.team-member {
  display: flex;
  flex-direction: row;
  gap: 2em;
  width: 80%;
}

.team-member picture {
  aspect-ratio: 1;
  border-radius: 50%;
  overflow: hidden;
  display: block;
  width: 30%;
  margin: auto 0;
}

.team-member img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}


.team-member .member-content {
  flex: 1;
  margin: auto 0;
}

.team-member .member-name {
	font-weight: 600;
}




.header .langswitcher {
  position: absolute;
  bottom: 0.5em;
  right: 2em;
  margin: auto;
  height: fit-content;
  top: unset;
  transform: unset;
}



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

	.footer-extra .container {
		grid-template-columns: repeat(1, 1fr);
	}

}


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

	.burger-menu {
		display: flex;
	}

	.main-nav {
		display: none;
	}

	.header .langswitcher {
		right: 6em;
	}

	.mobile-menu-open .header .main-nav {
		display: block;
		height: calc(100vh - var(--header-size));
		width: 100vw;
		position: sticky;
		background-color: white;
		top: 0;
		margin: calc(var(--header-size) - 0.5em) -1em 0 -1em;
		bottom: 0 !important;
	}

	.mobile-menu-open .header .main-nav ul {
		flex-direction: column;
		margin: auto auto;
		position: absolute;
		top: 0;
		bottom: 0;
		left: 0;
		right: 0;
		height: fit-content;
	}

	main.mobile-menu-open {
		overflow-y: hidden;
	}

	.hero .content {
		left: unset;
		right: 2em;
		transform: rotate(10deg);
	}

	.contact-grid {
		grid-template-columns: repeat(1, 1fr);
	}

	.section.info .content.left-a,
	.section.info .content.right-a {
		flex-direction: column;
		gap: 1em;
	}

	.section.info.bg-layer .content .content-extra {
		width: 80%;
		margin: 0 auto;
	}

	.section.info.bg-layer .content .intro-block {
		/* grid-column: 3; */
		width: 90%;
		margin-left: auto;
		grid-row: 1;
		grid-column: 1;
	}
	.info-elements.default .info-element {
		flex-direction: column;
		gap: 0;
	}
	.section.info .content.left-a .content-extra,
	.section.info .content.right-a .content-extra,
	.info-elements.column .info-element picture,
	.info-elements.default .info-element picture {
		width: 100%;
	}
	.info-elements.grid2,
       	.info-elements.grid3 {
		grid-template-columns: 100%;
	}

	.progress .intro-block, .locations .intro-block {
		width: 90%;
		margin-left: auto;
	}

	.location-element {
		grid-template-columns: repeat(1, 1fr);
		padding: 2em 0em 2em 2em;
	}

	.location-element.type-2 picture {
		grid-column: 1;
	}

	.location-element.type-2 .location-content {
		grid-column: 1;
		display: block;
	}

	.location-element.type-1 picture {
		grid-column: 1;
		grid-row: 2;
	}

	.location-element .location-content {
		width: 90%;
		margin-left: auto;
	}

	.contact-box {
		margin: 3em 0em;
	}

	.team-member {
		flex-direction: column;
		width: 100%;
		gap: 0;
	}

	.team-member picture {
		width: 50%;
	}


	.footer-content .footer-grid {
		grid-template-columns: repeat(1, 1fr);
	}

    .event-date p:last-child span:first-child {
        display: block;
    }
}

@media screen and (max-width: 450px) {
    .event-element {
        grid-template-columns: 30% auto;
        gap: 1em;
    }
}