/* Header */

header {
	background: var(--color-bg-secondary);
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 500;
	border-bottom: 1px solid var(--color-border);
}

nav {
	display: flex;
	flex-direction: row;
	padding: 0 20px;
	align-items: center;
	gap: 20px;
	height: 64px;
}

nav .title {
  display: flex;
  flex-direction: row;
  gap: 10px;
  align-items: center;
	font-weight: bold;
	flex-grow: 1;
	justify-content: left;
}

nav .title img {
  width: 24px;
}

nav ul {
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: row;
	list-style: none;
	align-items: center;
	gap: 20px;
}

nav a {
	color: inherit;
	text-decoration: none;
	position: relative;
}

nav a::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: -4px;
	height: 1.5px;
	background: var(--color-fg-primary);
	width: 0%;
	transform: translate(-50%, 0);
	transition: width 0.1s;
}

nav a:hover::after,
nav a.active::after {
	width: 70%;
}

/** Hamburger Menu */

#menu-toggle {
  display: none;
}

.menu-button {
  display: none;
  cursor: pointer;
  align-self: stretch;
  position: relative;
  justify-content: center;
  align-items: center;
}

.menu-icon {
  height: 1.5px;
  width: 24px;
  border-radius: 2px;
  background-color: var(--color-fg-primary);
  position: relative;
  display: block;
  transition: all .2s ease-in-out;
  -webkit-font-smoothing: initial;
}

.menu-icon::before {
  top: -8px;
  visibility: visible;
}

.menu-icon::after {
  top: 8px;
}

.menu-icon::before,
.menu-icon::after {
  height: 1.5px;
  width: 24px;
  border-radius: 2px;
  background-color: var(--color-fg-primary);
  position: absolute;
  content: "";
  transition: all .2s ease-in-out;
}

#menu-toggle:checked ~ .menu-button .menu-icon {
  background: transparent;
}

#menu-toggle:checked ~ .menu-button .menu-icon::before {
  transform: translate(0, 8.19px) rotate(45deg);
  opacity: 1;
}

#menu-toggle:checked ~ .menu-button .menu-icon::after {
  transform: translate(0, -8.19px) rotate(-45deg);
}

@media (max-width: 650px) {
  .menu-button {
    display: flex;
  }

  nav ul {
    display: none;
  }

  #menu-toggle:checked ~ ul {
    display: flex;
    position: fixed;
    top: 64px;
    bottom: 0;
    flex-direction: column;
    background: var(--color-bg-secondary);
    left: 0;
    right: 0;
    align-items: stretch;
    border-top: 1px solid var(--color-border);
    padding: 10px 0;
  }

  nav a {
    display: block;
    padding: 10px 20px;
    text-align: center;
  }

  nav a::after {
    left: 10px;
    top: 50%;
    bottom: initial;
    width: 1.5px;
  	height: 0%;
  	transform: translate(0, -50%);
  	transition: height 0.1s;
  }

  nav a:hover::after,
  nav a.active::after {
    width: 1.5px;
    height: 70%;
  }
}

/** Footer */

footer {
	background: var(--color-bg-secondary);
	border-top: 1px solid var(--color-border);
}

footer .content {
	display: flex;
	flex-direction: row;
	padding: 40px 20px;
	align-items: center;
	gap: 20px;
	color: var(--color-fg-secondary);
}

footer .text {
  flex-grow: 1;
}

footer .text p {
  margin: 0;
}

footer ul.links {
  margin: 0;
	padding: 0;
  display: flex;
	flex-direction: row;
	list-style: none;
	align-items: center;
	gap: 20px;
}

footer a {
  color: var(--color-fg-secondary);
  transition: color 0.1s;
}

footer a:hover {
  color: var(--color-fg-primary);
}

footer ul.links a {
  text-decoration: none;
}

@media (max-width: 850px) {
  footer .content {
    flex-direction: column;
    text-align: center;
  }

  footer ul.links {
    flex-direction: column;
  }
}

/** Home Page */

img.hero {
  width: 100%;
  object-fit: cover;
  max-height: 320px;
  border-radius: 4px;
  display: block;
  margin-bottom: 32px;
}

/* Gemeinschaftsraum Galery */
main figure[data-crop][data-ratio] > ul {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
  list-style: none;
  padding: 0;
  margin: 0;
}

main figure[data-crop][data-ratio] > ul > li {
  margin: 0;
  padding: 0;
}

main figure[data-crop][data-ratio] img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 4px;
}