/*
███████████████████████████████████████████████████████████████████████████████████████████████
  FontAwesome
███████████████████████████████████████████████████████████████████████████████████████████████
*/
@import 'fontawesome/fontawesome.min.css';
@import 'fontawesome/brands.min.css';
@import 'fontawesome/solid.min.css';
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Pico Base Variables
███████████████████████████████████████████████████████████████████████████████████████████████
*/
@media (min-width: 1536px) {
  .container {
    max-width: 1300px;
  }
}
:root,
:host {
  --pico-font-weight: 350;
}
h1, h2, h3, h4, h5, h6 {
  --pico-font-weight: 600;
  color: var(--ci_color);
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Defaults
███████████████████████████████████████████████████████████████████████████████████████████████
*/
:root {
  --fontawesome: 'Font Awesome 6 Free';
  --fontawesome_brands: 'Font Awesome 6 Brands';
  /* --ci_color: #e31e25; */
  --ci_color: #2b2b2b;
  --ci_color: #393939;
  --ci_color_2: #e31e25;
  --scroll_offset: 7rem;
  --header_init_height: 3rem;
}
[data-theme=light],
:root:not([data-theme=dark]),
:host(:not([data-theme=dark])) {
  --pico-color: #111;
}
html {
  scroll-padding-top: var(--scroll_offset);
  scroll-behavior: smooth;
}
body {
  background-color: #fff;
}
ul[class],
ul[id] {
  list-style: none;
  margin: 0;
  padding: 0;
}
a:hover {
  text-decoration-color: inherit;
}
:where(a:not([role=button])):focus-visible,
[role=link]:focus-visible {
  box-shadow: none;
  outline: min(2px, .2em) dashed #3557ac;
  outline-offset: min(3px, .3em);
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Header
███████████████████████████████████████████████████████████████████████████████████████████████
*/
header.site_header {
  --animation_duration: 400ms;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 2;
  background-color: #fff;
  transition: all var(--animation_duration) ease-in-out;
  padding-block: 0;
}
header.site_header.shrink {
  background-color: rgba(255, 255, 255, .9);
  backdrop-filter: blur(5px);
  box-shadow:
    0px 0px 1.7px rgba(0, 0, 0, 0.031),
    0px 0px 4px rgba(0, 0, 0, 0.044),
    0px 0px 7.5px rgba(0, 0, 0, 0.055),
    0px 0px 13.4px rgba(0, 0, 0, 0.066),
    0px 0px 25.1px rgba(0, 0, 0, 0.079),
    0px 0px 60px rgba(0, 0, 0, 0.11)
  ;
}
header.site_header .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
/*
Top-Line
-----------------------------------------------------------------------------------------------
*/
header.site_header .top_line {
  background-color: var(--ci_color);
  color: #fff;
  padding-block: 0.5rem;
  font-size: .9em;
}
header.site_header .top_line * {
  color: inherit;
}
header.site_header .top_line .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
header.site_header .top_line a {
  text-decoration: none;
}
header.site_header .top_line a:hover {
  text-decoration: underline;
}
header.site_header .top_line address {
  margin: 0;
  display: flex;
  justify-content: space-between;
  gap: 1.5em;
}
header.site_header .top_line address a::before {
  font-family: var(--fontawesome);
  font-size: .9em;
  display: inline-block;
  width: auto;
  text-align: center;
  margin-right: .4em;
  text-decoration: none;
}
header.site_header .top_line address a.telephone::before {
  content: '\f095';
}
header.site_header .top_line address a.email::before {
  content: '\f0e0';
}
header.site_header .top_line ul {
  display: flex;
  justify-content: space-between;
  margin: 0;
  padding: 0;
  gap: 1.5em;
}
header.site_header .top_line ul li {
  list-style: none;
  margin: 0;
}
header.site_header .top_line ul li * {
  display: inline-block;
}
/*
Main-Line
-----------------------------------------------------------------------------------------------
*/
header.site_header .main_line {
  padding-block: 1rem;
  transition: padding-block var(--animation_duration);
}
header.site_header.shrink .main_line {
  padding-block: .25rem;
}
header.site_header .main_line .logo {
  line-height: 0;
}
header.site_header .main_line .logo a {
  display: inline-block;
}
header.site_header .main_line .logo img {
  display: block;
  height: 92px;
  transition: height var(--animation_duration);
}
header.site_header.shrink .main_line .logo img {
  height: 50px;
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Header-Bild
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#header_pic {
  margin-top: var(--header_init_height);
  aspect-ratio: 4/1;
  background-color: rgba(0, 0, 0, .4);
  background-image: url('../bilder/header.jpg');
  background-size: cover;
  background-position: 50% 50%;
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Main
███████████████████████████████████████████████████████████████████████████████████████████████
*/
body > main {
  padding-block: 0;
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Sections
███████████████████████████████████████████████████████████████████████████████████████████████
*/
main > section {
  padding-block: 5rem;
  margin-bottom: 0;
}
main > section figure:has(+ p) {
  margin-bottom: var(--pico-typography-spacing-vertical);
}
main > section h1,
main > section h2 {
  text-align: center;
  margin-bottom: 2em;
}
main > section .imp_con h1,
main > section .imp_con h2 {
  text-align: left;
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Bild-Text-Layout
███████████████████████████████████████████████████████████████████████████████████████████████
*/
.pic_text_layout {
  overflow: visible;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: stretch;
  align-content: stretch;
  --pic_width: 550px;
  --gap: 4rem;
  margin-bottom: var(--text_block_spacer);
}
.pic_text_layout + .pic_text_layout {
  margin-top: 3em;
}
.pic_text_layout .col {
  flex-grow: 0;
  flex-shrink: 1;
}
.pic_text_layout .col.pic {
  width: var(--pic_width);
  padding-top: .5em;
}
.pic_text_layout .col.pic figure + figure {
  margin-top: .5rem;
}
.pic_text_layout .col.pic img {
  display: block;
  width: auto;
  max-width: 100%;
}
.pic_text_layout .col.text {
  width: calc( 100% - var(--pic_width) - var(--gap));
}
.pic_text_layout .col > h2,
.pic_text_layout .col > h3 {
  margin-top: 0;
}
@media (max-width: 70rem) {
  .pic_text_layout {
    display: block;
  }
  .pic_text_layout .col {
    width: 100% !important;
  }
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Buttons
███████████████████████████████████████████████████████████████████████████████████████████████
*/
.button_con {
  text-align: center;
}
.button {
  display: inline-block;
  padding: .7em 2em;
  margin: 0;
  font-size: 1.1em;
  font-weight: 600;
  text-align: center;
  text-decoration: none;
  color: #fff;
  background-color: var(--ci_color);
  border-radius: .4rem;
}
.button:hover {
  background-color: var(--ci_color_2);
}

/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Accordion
███████████████████████████████████████████████████████████████████████████████████████████████
*/
.accordion {
  overflow: hidden;
  margin: 1em auto 2em auto;
  width: 100%;
  text-align: left;
}
.accordion * {
  text-align: inherit;
}
.accordion input {
  position: absolute;
  opacity: 0;
  z-index: -1;
}
.accordion .tab {
  width: 100%;
  overflow: hidden;
  margin: 1em 0;
}
.accordion .tab:last-of-type {
  border-bottom: none;
}
.accordion .tab_label {
  display: flex;
  position: relative;
  padding: 1em 2.9em .9em .9em;
  background-color: var(--ci_color);
  color: #fff;
  font-weight: 600;
  font-size: 1.2em;
  cursor: pointer;
}
.accordion .tab:last-of-type .tab_label {
  border-bottom: none;
}
.accordion .tab_label h3 {
  padding: 0;
  margin: 0;
  line-height: 1.3em;
  color: inherit;
  font-weight: inherit;
  font-size: inherit;
}
.accordion .tab_label:hover {
  background: unset;
  background-color: var(--ci_color_2);
  text-shadow: 0 0 1px rgba(0, 0, 0, .3);
}
.accordion .tab_label::after {
  font-family: var(--fontawesome);
  content: "\f0fe";
  position: absolute;
  right: 0;
  margin-right: 1em;
  width: 1em;
  height: 1em;
  line-height: 1.3em;
  text-align: center;
  transition: transform 0.35s;
}
.accordion .tab_content {
  max-height: 0;
  overflow: hidden;
  padding: 1.5em;
  padding-block: 0;
  background-color: #fff;
  transition: all 2s;
  border: 1px solid transparent;
  border-top: none;
}
.accordion .tab_content p,
.accordion .tab_content ul {
  margin-bottom: 1.5em;
}
.accordion input:checked + .tab_label {
  background: unset;
  background-color: #333;
  color: #fff;
  text-shadow: 0 0 1px rgba(0, 0, 0, .3);
}
.accordion input:checked + .tab_label::after {
  transform: rotate(360deg);
  transform-origin: 50%;
  content: "\f146";
}
.accordion input:checked ~ .tab_content {
  max-height: 300vh;
  margin-bottom: 1em;
  padding-block: 1.5em;
  border-color: rgba(0, 0, 0, .2);
  border-bottom-right-radius: .5em;
  border-bottom-left-radius: .5em;
}
@media (max-width: 1000px) {
  .accordion .tab_label {
    font-size: 1.1em;
  }
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Über Uns
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#ueber-uns {
  background-color: var(--ci_color);
  color: #fff;
}
#ueber-uns * {
  color: inherit;
}
#ueber-uns figure img {
  border-radius: .4rem;
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Leistungen
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#leistungen {
  background-color: rgba(0, 0, 0, .03);
}
.accomplishments_list {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 2.5rem 1.5rem;
  padding-block: 1rem;
}
.accomplishments_list .accomplishment {
  background-color: transparent;
  border-radius: .3rem;
  overflow: hidden;
  width: 280px;
  text-align: center;
}
.accomplishments_list .accomplishment figure {
  display: inline-block;
  aspect-ratio: 1;
  padding: .5rem;
  border: 6px solid rgba(0, 0, 0, .15);
  border-radius: 50%;
  background-color: #fff;
}
.accomplishments_list .accomplishment:nth-child(1) figure,
.accomplishments_list .accomplishment:nth-child(5) figure {
  border-color: #e96656;
}
.accomplishments_list .accomplishment:nth-child(2) figure,
.accomplishments_list .accomplishment:nth-child(6) figure {
  border-color: #34d293;
}
.accomplishments_list .accomplishment:nth-child(3) figure,
.accomplishments_list .accomplishment:nth-child(7) figure {
  border-color: #3ab0e2;
}
.accomplishments_list .accomplishment:nth-child(4) figure {
  border-color: #f7d861;
}
.accomplishments_list .accomplishment figure img {
  display: block;
  width: 125px;
  height: auto;
  max-width: 100%;
  margin-inline: auto;
}
.accomplishments_list .accomplishment .text {
  padding: 1rem;
  font-size: 1.15em;
  text-align: center;
  font-weight: 600;
  line-height: 1.15em;
}
.accomplishments_list .accomplishment .text h3 {
  font-size: 1.2em;
  min-height: 2.35em;
}
.accomplishments_list .accomplishment .text ul {
  list-style: none;
  padding-left: 0;
}
.accomplishments_list .accomplishment .text ul li {
  list-style: inherit;
  padding-block: .6rem;
  margin-bottom: 0;
  border-bottom: 1px solid rgba(0,0,0,.2);
  line-height: 1.3em;
}
.accomplishments_list .accomplishment .text ul li:last-child {
  padding-bottom: 0;
  border-bottom: none;
}
.accomplishments_list .accomplishment .text > *:last-child {
  margin-bottom: 0;
}
@media (max-width: 40rem) {
  .accomplishments_list {
    display: grid;
    grid-template-columns: auto;
  }
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  News
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#news {
  background-color: rgba(0, 0, 0, .8);
}
#news h2 {
  color: #fff;
}
#news .news_list {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 1.5rem;
}
#news .news_list article {
  margin-bottom: 0;
  background-color: #fff;
}
#news .news_list article figure {
  position: relative;
  margin-bottom: 1rem;
  border-radius: .5rem;
  overflow: hidden;
}
#news .news_list article a:hover figure {
  filter: saturate(1.1) contrast(1.1) brightness(.98);
}
#news .news_list article figure::before {
  content: '';
  position: absolute;
  z-index: 1;
  display: block;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  box-shadow:
    inset 0px 0px 1px rgba(3, 7, 18, 0.01),
    inset 0px 0px 3px rgba(3, 7, 18, 0.01),
    inset 0px 0px 7px rgba(3, 7, 18, 0.02),
    inset 0px 0px 13px rgba(3, 7, 18, 0.02),
    inset 0px 0px 20px rgba(3, 7, 18, 0.03);
}
#news .news_list article figure img {
  display: block;
  width: 100%;
  height: auto;
  background-color: #999;
}
#news .news_list article h3 {
  font-size: 1.3em;
  margin-top: 0;
}
@media (max-width: 65rem) {
  #news .news_list {
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
  }
}
@media (max-width: 50rem) {
  #news .news_list {
    gap: 1.5rem;
  }
}
@media (max-width: 40rem) {
  #news .news_list {
    grid-template-columns: 1fr;
    width: 300px;
    max-width: 100%;
    margin-inline: auto;
  }
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Referenzen
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#referenzen {
  background-color: rgba(0, 0, 0, .5);
  background-color: #fff;
}
#referenzen .container > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
.gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: .7rem;
}
.gallery figure {
  margin: 0;
}
.gallery figure figcaption {
  padding-block: 0;
}
figure[role="button"] {
  cursor: zoom-in;
  transition: transform 0.3s ease;
  padding: 0;
  background-color: transparent;
  border: none;
  border-radius: 0;
}
figure[role="button"]:hover {
  transform: scale(1.05);
}
.gallery img {
  width: 100%;
  max-width: 100%;
  height: auto;
  border-radius: .2rem;
  display: block;
}
/* Einzelbilder außerhalb von Galerien */
figure:not(.gallery figure) img {
  display: block;
  max-width: 100%;
  height: auto;
}
figcaption {
  font-size: .9rem;
  line-height: 1.25em;
}
@media (max-width: 50rem) {
  .gallery {
    width: 314px;
    max-width: 100%;
    margin-inline: auto;
  }
}

.accordion .gallery {
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: .8rem;
}
@media (max-width: 80rem) {
  .accordion .gallery {
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  }
}
@media (max-width: 50rem) {
  .accordion .gallery {
    grid-template-columns: 1fr 1fr;
    width: unset;
  }
}

/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Kontakt
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#kontakt {
  background-color: rgba(0, 0, 0, .15);
}
#kontakt .contact_con {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 2rem;
  font-weight: 600;
}
#kontakt .contact_con .block {
  width: auto;
  line-height: 1.8em;
}
#kontakt .contact_con .block * {
  line-height: 1.2em;
}
#kontakt .contact_con .block a {
  color: inherit;
  text-decoration-color: inherit;
}
#kontakt .contact_con .block .iconized::before {
  font-family: var(--fontawesome);
  font-size: 1em;
  display: inline-block;
  width: 1.4rem;
  text-align: center;
  margin-right: .4em;
  text-decoration: none;
}
#kontakt .contact_con .block .iconized.telephone::before {
  content: '\f095';
}
#kontakt .contact_con .block .iconized.mobile::before {
  content: '\f3cd';
}
#kontakt .contact_con .block .iconized.fax::before {
  content: '\f1ac';
}
#kontakt .contact_con .block .iconized.email::before {
  content: '\f0e0';
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Cabinet (Lightbox)
███████████████████████████████████████████████████████████████████████████████████████████████
*/
/* Cabinet-Overlay */
.cabinet {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, .85);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  backdrop-filter: blur(4px);
}
.cabinet.active {
  opacity: 1;
  visibility: visible;
}
.cabinet_content {
  --button_margin: 1.5rem;
  --button_diameter: 2.2rem;
  --button_padding: calc( var(--button_diameter) * .25 );
  position: relative;
  max-width: 90%;
  max-height: 85%;
  text-align: center;
}
.cabinet_img {
  max-width: 100%;
  max-height: 80vh;
  display: block;
  margin: 0 auto;
  box-shadow: 0 5px 25px rgba(0, 0, 0, .25);
  border-radius: .4rem;
  transition: opacity .4s ease, transform .3s ease;
}
/* Bildwechsel-Animation */
.cabinet_img.fade_out {
  opacity: 0;
  transform: scale(.95);
}
.cabinet_img.fade_in {
  opacity: 1;
  transform: scale(1);
}
.cabinet_caption {
  color: #fff;
  padding: .2rem;
  margin-top: .2rem;
}
/* Navigation */
.cabinet_nav {
  position: fixed;
  top: 50%;
  width: 100%;
  left: 0;
  display: flex;
  justify-content: space-between;
  transform: translateY(-50%);
  pointer-events: none;
  padding-inline: var(--button_margin);
  box-sizing: border-box;
}
/* Basis-Stil für alle Lightbox-Buttons */
.cabinet_btn {
  background: rgba(255, 255, 255, .2);
  color: white;
  border: none;
  width: var(--button_diameter);
  height: var(--button_diameter);
  border-radius: 50%;
  cursor: pointer;
  font-size: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s;
  pointer-events: auto;
  backdrop-filter: blur(3px);
  padding: var(--button_padding);
  box-shadow:
    0px 0px 0px rgba(255, 255, 255, 0.05),
    0px 0px 1px rgba(255, 255, 255, 0.11),
    0px 0px 3px rgba(255, 255, 255, 0.16),
    0px 0px 4px rgba(255, 255, 255, 0.22),
    0px 0px 7px rgba(255, 255, 255, 0.27);
}
.cabinet_nav .cabinet_btn {
  --svg_shift: 1px;
}
.cabinet_btn:hover {
  background: rgba(255, 255, 255, .3);
  transform: scale(1.2);
  box-shadow: none;
}
.cabinet_btn:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, .5);
}
.cabinet_btn.prev_btn svg {
  transform: rotate(180deg);
}
.cabinet_btn.prev_btn svg {
  margin-left: calc( -1 * var(--svg_shift) );
  margin-right: var(--svg_shift);
}
.cabinet_btn.next_btn svg {
  margin-left: var(--svg_shift);
  margin-right: calc( -1 * var(--svg_shift) );
}
/* Schließen-Button */
.cabinet_close {
  position: fixed;
  top: var(--button_margin);
  right: var(--button_margin);
  font-size: 1.8rem;
}
/* Anpassungen für kleinere Bildschirme */
@media (max-width: 70rem) {
  .cabinet_content {
    --button_margin: .5rem;
  }
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Footer
███████████████████████████████████████████████████████████████████████████████████████████████
*/
body > footer {
  padding-block: calc( var(--pico-block-spacing-vertical) * 2 );
  background-color: var(--ci_color);
  color: #fff;
  font-size: .9em;
}
body > footer * {
  color: inherit;
}
body > footer .grid {
  display: grid;
  align-content: space-between;
  justify-content: space-between;
  align-items: center;
  justify-items: center;
  grid-template-columns: auto auto auto;
  gap: 4rem;
}
body > footer .block .heading {
  display: block;
  font-weight: bold;
  margin-bottom: 1em;
}
body > footer .block a {
  color: inherit;
  text-decoration-color: #fff;
}
body > footer .block.logo {
  align-self: center;
}
body > footer .block.logo img {
  display: block;
  width: 262px;
  max-width: 100%;
  margin-inline: auto;
  filter: grayscale(1) brightness(7);
}
body > footer .block.contact .box + .box {
  margin-top: 1rem;
}
body > footer .block.contact .box.channels {
  line-height: 2em;;
}
body > footer .iconized::before {
  font-family: var(--fontawesome);
  font-size: 1em;
  display: inline-block;
  width: 1.4rem;
  text-align: center;
  margin-right: .4em;
  text-decoration: none;
}
body > footer .iconized.telephone::before {
  content: '\f095';
}
body > footer .iconized.mobile::before {
  content: '\f3cd';
}
body > footer .iconized.fax::before {
  content: '\f1ac';
}
body > footer .iconized.email::before {
  content: '\f0e0';
}
body > footer ul {
  padding-left: 0;
  margin-bottom: 0;
}
body > footer ul li {
  list-style: none;
}
@media (max-width: 70rem) {
  body > footer .grid {
    grid-template-columns: auto auto;
  }
  body > footer .block.logo {
    display: none;
  }
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Picture Source
███████████████████████████████████████████████████████████████████████████████████████████████
*/
.psc {
  position: relative;
}
.pic_source {
  font-family: Arial, Verdana, Helvetica, sans-serif !important;
  position: absolute;
  z-index: 1;
  right: 3px;
  bottom: 3px;
  display: inline-block;
  background-color: #777;
  color: #fff;
  vertical-align: top;
  line-height: 1em;
  padding: 1px 0 0 0;
  font-size: 13px;
  cursor: pointer;
  border-radius: 10px;
  font-weight: 300;
  margin-bottom: 0;
}
.pic_source.top {
  bottom: unset !important;
  top: 3px;
}
.pic_source * {
  color: inherit !important;
  vertical-align: inherit !important;
  line-height: inherit !important;
  font-weight: inherit !important;
  margin: 0 !important;
  font-size: inherit !important;
  text-transform: none !important;
}
.pic_source::before {
  content: '\00A9';
  display: block;
  float: left;
  overflow: hidden;
  width: 1em;
  height: 1em;
  text-align: center;
  font-weight: 100;
  font-size: 1.2em;
  line-height: 1.05em;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.3);
}
.pic_source input[type=checkbox] {
  display: none;
}
.pic_source span {
  display: none;
  padding-top: 1px;
  padding-right: .5em;
  line-height: 1em;
}
.pic_source input[type=checkbox]:checked ~ span {
  display: inline-block;
}
.pic_source input[type=checkbox]:checked ~ span:first-of-type {
  padding-left: .1em;
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Back-to-Top-Button
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#b2t_btn {
  background: #000;
  position: fixed;
  z-index: 2;
  bottom: 1.5%;
  right: 1.5%;
  height: 2em;
  width: 2em;
  border: none;
  border-radius: 99em;
  opacity: .6;
  transition: all .3s ease;
  box-shadow:
    0px 0px 3.1px rgba(255, 255, 255, 0.062),
    0px 0px 7.4px rgba(255, 255, 255, 0.089),
    0px 0px 14px rgba(255, 255, 255, 0.11),
    0px 0px 25px rgba(255, 255, 255, 0.131),
    0px 0px 46.8px rgba(255, 255, 255, 0.158),
    0px 0px 112px rgba(255, 255, 255, 0.22)
  ;
}
#b2t_btn::before {
  content: '';
  display: inline-block;
  position: absolute;
  height: .76rem;
  width: .76rem;
  border: solid #FFF;
  border-width: .2rem 0 0 .2rem;
  transform: rotate(45deg);
  top: 40%;
  left: 50%;
  margin-left: -.38rem;
  transition: all .1s ease;
}
#b2t_btn:hover {
  opacity: 1;
}
#b2t_btn:hover::before {
  margin-top: -.15rem;
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Google Maps On Demand
███████████████████████████████████████████████████████████████████████████████████████████████
*/
.gmod {
  width: 100%;
  height: 400px;
  border: 1px solid rgba(0,0,0,.2);
  margin-top: 4rem;
  margin-bottom: 1em;
  position: relative;
  overflow: hidden;
}
.gmod.map_ribbon {
  height: 300px;
  border: none;
  margin-bottom: 0;
  filter: grayscale(.5);
}
.gmod.map_ribbon:hover {
  filter: grayscale(0);
}
.gmod > iframe {
  grid-column: inherit !important;
}
.gmod .bg_map {
  position: absolute;
  top: -1%;
  left: -1%;
  height: 102%;
  width: 102%;
  background-image: url('../bilder/gmod-bg.png');
  background-repeat: repeat;
  background-position: 0 0;
  filter: blur(.05rem);
}
.gmod .opt_in_banner {
  background-color: rgba(120,120,120,.8);
  color: #fff;
  padding: 1em;
  position: relative;
  top: 50%;
  transform: translateY(-50%);
  text-align: center;
  font-size: .85em;
}
.gmod .opt_in_banner .desc {
  color: #fff;
  text-align: center;
  margin-bottom: 1em;
  line-height: 1.3em;
}
.gmod .opt_in_banner .desc a {
  color: inherit !important;
}
.gmod .opt_in_banner .show_map_btn {
  display: inline-block;
  padding: .6em 1.2em;
  margin-bottom: .9em;
  background-color: #2AA549;
  color: #fff;
  border: none;
  font-size: 1em;
  line-height: 1.2em;
  cursor: pointer;
  border: 1px solid rgba(0,0,0,.3);
}
.gmod .opt_in_banner .show_map_btn:hover {
  background-color: #208039;
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
    CWD im Footer
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#cwd {
  padding: .5em 1em;
  color: #fff;
  background-color: #222;
  text-align: center;
  font-size: .75em;
  line-height: 1.4em;
}
#cwd * {
  color: inherit !important;
  line-height: inherit !important;
  opacity: .8;
}
#cwd a {
  text-decoration: none !important;
}
#cwd a:hover {
  text-decoration: underline !important;
  opacity: 1;
}