/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Variablen
███████████████████████████████████████████████████████████████████████████████████████████████
*/
:root {
  /* Fonts */
  --font_serif: Charter, 'Bitstream Charter', 'Sitka Text', Cambria, serif;
  --font_sans_serif: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;

  --fontawesome: 'Font Awesome 6 Free';
  --fontawesome_brands: 'Font Awesome 6 Brands';

  /* Font-Sizes */
  --font_size_html: 18px;

  --font_size_h1: 2.8em;
  --font_size_h2: 1.9em;
  --font_size_h3: 1.5em;
  --font_size_h4: 1.2em;

  --heading_size_multiplier: 1;

  /* Font-Weights */
  --font_weight_light: 300;
  --font_weight_normal: 400;
  --font_weight_medium: 500;
  --font_weight_bold: 700;
  --font_weight_black: 800;
  --font_weight_extra_bold: 900;

  /* Layout */
  --scroll_offset: 7rem;
  --text_line_height: 1.7em;
  --text_block_spacer: 1.5rem;
  --header_init_height: 220px;
  --section_block_padding: 5rem;

  /* Colors */
  --color_document_bg: white;

  --color_primary: hsl(208, 99%, 34%);
  --color_primary_bright: hsl(208, 99%, 59%);
  --color_primary_dark: hsl(208, 99%, 19%);

  --color_secondary: hsl(358, 86%, 52%);
  --color_secondary_bright: hsl(358, 86%, 67%);
  --color_secondary_dark: hsl(358, 86%, 37%);

  --color_emphasis: hsl(114, 97%, 34%);

  --color_text: hsl(0, 0%, 5%);
  --color_heading: var(--color_primary);

  --color_text_link: hsl(206, 81%, 29%);
}
@media (max-width: 50rem) {
  :root {
    --heading_size_multiplier: 0.9;
  }
}
@media (max-width: 40rem) {
  :root {
    --heading_size_multiplier: 0.8;
  }
}
@media (max-width: 30rem) {
  :root {
    --heading_size_multiplier: 0.7;
    --section_block_padding: 3.5rem;
  }
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Defaults / Normalize
███████████████████████████████████████████████████████████████████████████████████████████████
*/
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
* {
  background-repeat: no-repeat;
}
html, body {
  min-height: 100%;
}
html {
  font-size: var(--font_size_html);
  scroll-padding-top: var(--scroll_offset);
  scroll-behavior: smooth;
  min-height: 100vh;
  position: relative;
  background-color: var(--color_document_bg);
}
body {
  --font_size_default: clamp(.87rem, 1.125vw, 1.05rem);
  font-size: var(--font_size_default);
}
body,
body * {
  font-family: var(--font_sans_serif);
  color: var(--color_text);
  line-height: var(--text_line_height);
  font-weight: var(--font_weight_normal);
}
::selection {
  background-color: var(--color_emphasis);
  color: #fff;
  text-shadow: 0 0 .2ch rgba(0, 0, 0, .2);
}
header, footer, main, section, article {
  container-type: inline-size;
}
p,
li {
  text-wrap: pretty;
  /* max-width: 90ch; */
}
p {
  margin-bottom: var(--text_block_spacer);
}
strong {
  font-weight: var(--font_weight_bold);
}
a {
  text-underline-offset: .15em;
}
i,
em {
  font-style: italic;
}
ol li {
  list-style: decimal;
}
ul[class],
ul[id] {
  list-style: none;
  margin: 0;
  padding: 0;
}
ul:not([class]) li {
  line-height: max(1.2em, calc(var(--text_line_height) * .85));
  margin-bottom: 1ch;
}
nav > ul:not([class]) li {
  margin: unset;
  line-height: inherit;
}
ul li * {
  line-height: inherit;
}
img, picture, svg, video {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  font-style: italic;
}
figure:focus-visible {
  outline: 2px dashed var(--color_primary_dark);
  outline-offset: 4px;
}
main a:not([class]),
main a.telephone,
main a.email {
  color: var(--color_text_link);
  text-decoration: underline;
}
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 var(--color_emphasis);
  outline-offset: min(3px, .3em);
}
.center {
  text-align: center !important;
  max-width: unset;
}
.center > * {
  text-align: inherit;
}
.clear {
  clear: both;
  float: none;
  display: block;
}
mark {
  background-image: linear-gradient(45deg, #ffff17 25%, #fff824 25%, #fff824 50%, #ffff17 50%, #ffff17 75%, #fff824 75%, #fff824 100%);
  background-size: 36.77px 36.77px;
  background-repeat: repeat;
  color: #333 !important;
  border-radius: 2px;
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Überschriften
███████████████████████████████████████████████████████████████████████████████████████████████
*/
h1, h2, h3, h4, h5, h6 {
  display: block;
  text-align: left;
  text-box-trim: both;
  line-height: calc( var(--text_line_height) * .7 );
  color: var(--color_heading);
  font-weight: var(--font_weight_bold);
  margin-top: 0;
  margin-bottom: 2ch;
  text-wrap: balance;
}
* > h2:not(:first-child),
* > h3:not(:first-child),
* > h4:not(:first-child),
* > h5:not(:first-child),
* > h6:not(:first-child) {
  margin-top: calc( var(--font_size_default) * .8);
}
h1 *, h2 *, h3 *, h4 *, h5 *, h6 * {
  line-height: inherit;
  font-weight: inherit;
}
h1 {
  font-size: max(var(--font_size_default), calc( var(--font_size_default) * 2.5 * var(--heading_size_multiplier)));
}
h2 {
  font-size: max(var(--font_size_default), calc( var(--font_size_default) * 2.2 * var(--heading_size_multiplier)));
}
h3 {
  font-size: max(var(--font_size_default), calc( var(--font_size_default) * 1.9 * var(--heading_size_multiplier)));
}
h3 {
  font-size: max(var(--font_size_default), calc( var(--font_size_default) * 1.6 * var(--heading_size_multiplier)));
}
h4 {
  font-size: max(var(--font_size_default), calc( var(--font_size_default) * 1.3 * var(--heading_size_multiplier)));
}
h5 {
  font-size: var(--font_size_default);
  font-weight: var(--font_weight_medium);
}
h6 {
  font-size: var(--font_size_default);
  font-weight: var(--font_weight_normal);
}
body.home h1,
body.home h2 {
  font-size: calc( var(--font_size_default) * 1.7);
  text-align: center;
}
@container (max-inline-size: 47rem) {
  body.home h1,
  body.home h2 {
    font-size: calc( var(--font_size_default) * 1.5);
    text-align: left;
  }
}
h1 > strong,
h2 > strong {
  display: block;
  font-size: max(1rem, 60%);
  font-weight: var(--font_weight_normal);
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Header
███████████████████████████████████████████████████████████████████████████████████████████████
*/
header.site_header {
  --animation_duration: 400ms;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 2;
  transition: all var(--animation_duration) ease-in-out;
  padding-block: 0;
  background-color: #fff;
  border-bottom: 2px solid var(--color_primary_bright);
}
header.site_header.shrink {
  border-bottom-width: 1px;
  box-shadow:
    0 0 1.7px rgba(0, 0, 0, 0.031),
    0 0 4px rgba(0, 0, 0, 0.044),
    0 0 7.5px rgba(0, 0, 0, 0.055),
    0 0 13.4px rgba(0, 0, 0, 0.066),
    0 0 25.1px rgba(0, 0, 0, 0.079),
    0 0 60px rgba(0, 0, 0, 0.11)
  ;
}
/*
Header-Layout
-----------------------------------------------------------------------------------------------
*/
header.site_header > .content_grid > .grid {
  display: grid;
  grid-template-columns: 3fr 5fr;
  gap: 1rem 2rem;
}
header.site_header > .content_grid > .grid > .logo {
  grid-row: 1 / span 2;
}
@container (max-inline-size: 50rem) {
  header.site_header > .content_grid > .grid {
    grid-template-columns: 2fr 1fr;
    gap: .6rem;
  }
  header.site_header > .content_grid > .grid > .top_line_con {
    grid-column: 1 / -1;
    order: 0;
  }
  header.site_header > .content_grid > .grid > .logo {
    grid-row: unset;
    order: 1;
  }
  header.site_header .nav_con {
    order: 2;
  }
}
/*
Logo
-----------------------------------------------------------------------------------------------
*/
header.site_header > .content_grid > .grid > .logo {
  margin-block: .5rem;
  line-height: 0;
}
header.site_header .logo a {
  line-height: 0;
  display: inline-block;
  border-radius: .5rem;
}
header.site_header .logo img {
  display: block;
  width: 460px;
  max-width: 100%;
  height: 100%;
  line-height: 1.3em;
  transition: all var(--animation_duration);
}
@container (max-inline-size: 50rem) {
  header.site_header > .content_grid > .grid > .logo img {
    width: 330px;
  }
}
header.site_header.shrink .logo img {
  width: 250px;
}
/*
Top-Line
-----------------------------------------------------------------------------------------------
*/
header.site_header .top_line_con {
  font-size: .9em;
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  align-items: flex-start;
  justify-content: flex-end;
}
header.site_header .top_line_con a {
  text-decoration: none;
  border-bottom-left-radius: .4rem;
  border-bottom-right-radius: .4rem;
}
header.site_header .top_line_con a:focus-visible {
  outline-color: var(--color_emphasis);
}
header.site_header .top_line_con ul {
  display: flex;
  justify-content: space-between;
  margin: 0;
  padding: 0;
}
@container (max-inline-size: 25rem) {
  header.site_header .top_line_con {
    gap: 0;
  }
  header.site_header .top_line_con ul {
    display: none;
  }
}
header.site_header .top_line_con ul li {
  list-style: none;
  margin: 0;
  padding-inline: 2ch;
  border-left: 1px solid rgba(0, 0, 0, .1);
}
header.site_header .top_line_con ul li:first-child {
  border-left: none;
}
header.site_header .top_line_con ul li a {
  display: inline-block;
  padding: .2ch;
}
header.site_header .top_line_con ul li a:hover {
  text-decoration: underline;
}
header.site_header .top_line_con address {
  font-style: normal;
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 1ch;
}
header.site_header .top_line_con address a {
  color: #fff;
  background-color: #222;
  line-height: 1em;
  padding: .5rem .8rem;
  font-weight: var(--font_weight_medium);
  text-decoration: none;
  white-space: nowrap;
}
header.site_header .top_line_con address a:hover {
  text-decoration: none;
}
header.site_header .top_line_con address a.telephone {
  background-color: var(--color_primary);
}
header.site_header .top_line_con address a:hover {
  background-color: var(--color_secondary_dark);
}
header.site_header .top_line_con address a * {
  color: inherit;
  line-height: inherit;
}
header.site_header .top_line_con address a::before {
  font-family: var(--fontawesome);
  font-size: .9em;
  display: inline-block;
  width: auto;
  text-align: center;
  margin-right: .6em;
  text-decoration: none;
}
header.site_header .top_line_con address a.telephone::before {
  content: '\f095';
}
/*
Navi-Container
-----------------------------------------------------------------------------------------------
*/
header.site_header .nav_con {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
}
header.site_header.shrink .main_line {
  padding-block: .4rem;
}
header.site_header .nav_con > * {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 2rem;
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Hero / Header-Banner
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#hero {
  margin-top: var(--header_init_height);
  aspect-ratio: 6/1;
  background-color: #b9a99a;
  background-image: url('../img/hero-wide.webp');
  background-size: cover;
  background-position: 0% 70%;
}
body.home #hero {
  aspect-ratio: 3/1;
  background-image: url('../img/home/hero.webp');
}
#hero .content_grid {
  height: 100%;
  align-items: center;
}
#hero .claim {
  position: relative;
  text-wrap: pretty;
  width: 35vw;
  max-width: 100%;
  text-align: center;
  border-radius: 40%;
}
#hero .claim::after {
  content: '';
  display: block;
  position: absolute;
  z-index: 0;
  inset: 0;
  background-color: rgba(0, 0, 0, .2);
  border-radius: 45%;
  filter: blur(3rem);
  transform: scale(1.3);
}
#hero .claim .con {
  position: relative;
  z-index: 1;
}
#hero .claim h1 {
  display: block;
  font-size: clamp(1.3em, 2.5vw, 2.1em);
  font-weight: var(--font_weight_bold);
  line-height: 1.3em;
  margin-bottom: 1em;
  color: #fff;
}
@media (max-width: 45rem) {
  #hero {
    aspect-ratio: 7/1;
  }
  body.home #hero {
    aspect-ratio: unset;
    grid-column: 1 / -1;
    background-image: url('../img/home/hero-720.webp');
    background-position: 70% 50%;
  }
  body.home #hero .content_grid {
    display: block;
  }
  #hero .claim {
    width: 100%;
    background-color: rgba(0, 0, 0, .85);
    border: none;
    padding: 0;
    border-radius: 0;
    backdrop-filter: blur(5px);
  }
  #hero .claim::after {
    display: none;
  }
  #hero .claim::before {
    content: '';
    display: block;
    position: relative;
    inset: 0;
    width: 100%;
    aspect-ratio: 5/2;
    background-image: url('../img/home/hero-720.webp');
    background-size: cover;
    background-position: 50% 50%;
  }
  #hero .claim .con {
    padding: 1.5rem 1rem;
  }
  #hero .claim h1 {
    font-weight: var(--font_weight_normal);
  }
}
@media (max-width: 25rem) {
  #hero {
    aspect-ratio: 5/1;
  }
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Main
███████████████████████████████████████████████████████████████████████████████████████████████
*/
body > main {
  padding-block: 5rem;
}
body.home > main {
  padding-block: 0;
}
body > main ul {
  margin-bottom: var(--text_block_spacer);
  margin-left: 1.7em;
}
body > main :focus-visible {
  outline-color: rgba(58, 176, 226, .9);
  outline-width: 3px;
  outline-offset: 4px;
  border-radius: .3rem;
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Sections
███████████████████████████████████████████████████████████████████████████████████████████████
*/
 main > section {
  padding-block: 0;
  margin-bottom: var(--text_block_spacer);
}
body.home main > section {
  padding-block: var(--section_block_padding);
  margin-bottom: 0;
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Blockquote
███████████████████████████████████████████████████████████████████████████████████████████████
*/
main blockquote {
  display: block;
  position: relative;
  width: 38ch;
  max-width: 99%;
  padding: 1em 1.3em .9em;
  margin-top: .3rem;
  margin-left: 1%;
  border-radius: .4rem;
  border: 1px solid rgba(255, 255, 255, .25);
  color: #111;
  text-wrap: pretty;
  box-shadow:
    0px 0px 1px rgba(0, 0, 0, 0.01),
    1px 1px 4px rgba(0, 0, 0, 0.02),
    1px 2px 10px rgba(0, 0, 0, 0.02),
    3px 4px 17px rgba(0, 0, 0, 0.03),
    4px 6px 27px rgba(0, 0, 0, 0.04);
}
main blockquote:has(+ *) {
  margin-bottom: var(--text_block_spacer);
}
main blockquote::before {
  content: '';
  display: block;
  position: absolute;
  z-index: 1;
  top: -.7rem;
  left: -.6rem;
  width: 2rem;
  aspect-ratio: 1;
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNOS45ODMgM3Y3LjM5MWMwIDUuNzA0LTMuNzMxIDkuNTctOC45ODMgMTAuNjA5bC0uOTk1LTIuMTUxYzIuNDMyLS45MTcgMy45OTUtMy42MzggMy45OTUtNS44NDloLTR2LTEwaDkuOTgzem0xNC4wMTcgMHY3LjM5MWMwIDUuNzA0LTMuNzQ4IDkuNTcxLTkgMTAuNjA5bC0uOTk2LTIuMTUxYzIuNDMzLS45MTcgMy45OTYtMy42MzggMy45OTYtNS44NDloLTMuOTgzdi0xMGg5Ljk4M3oiLz48L3N2Zz4=");
  background-size: contain;
  background-repeat: no-repeat;
  opacity: .5;
  filter: contrast(.3);
}
main blockquote::after {
  content: '';
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  background: radial-gradient(circle at 50% 250%, rgba(255, 255, 255, .4) 0%, rgba(255, 255, 255, .15) 100%);
  backdrop-filter: blur(10px);
}
main blockquote * {
  position: relative;
  z-index: 1;
  color: inherit;
  text-wrap: inherit;
}
main blockquote p {
  margin-bottom: 0;
  line-height: 1.5em;
}
main blockquote cite {
  display: block;
  margin-top: .1em;
  text-align: right;
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Figure (klickbar)
███████████████████████████████████████████████████████████████████████████████████████████████
*/
figure[role="button"] {
  cursor: zoom-in;
  transition: transform 0.3s ease;
  padding: 0;
  background-color: transparent;
  border: none;
}
figure[role="button"]:hover {
  transform: scale(1.04);
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Features-Banner
███████████████████████████████████████████████████████████████████████████████████████████████
*/
section.features {
  background: linear-gradient(to bottom, var(--color_primary), var(--color_primary_dark));
  color: #fff;
}
section.features * {
  color: inherit;
}
section.features *:focus-visible {
  outline-color: var(--color_emphasis);
}
section.features .wide {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
}
section.features .wide > div {
  text-align: center;
}
section.features .wide > div .fa-solid {
  font-size: 2.5rem;
  margin-bottom: 1.3rem;
}
section.features .wide > div strong {
  display: block;
  font-size: 1.1em;
  margin-bottom: .4rem;
}
section.features .wide > div p {
  margin-inline: auto;
  max-width: 38ch;
}
section.features .wide > div table {
  border-spacing: 1ch 0;
  margin: 0 auto 1rem auto;
}
section.features .wide > div table td {
  text-align: left;
}
@media (max-width: 45rem) {
  section.features .wide {
    grid-template-columns: 1fr;
  }
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Homepage - Leistungen
███████████████████████████████████████████████████████████████████████████████████████████████
*/
section.leistungen {
  background-color: rgba(0, 0, 0, .05);
}
section.leistungen .accomplishments {
  display: grid;
  max-width: 80rem;
  margin: 4rem auto 0 auto;
  text-align: center;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 4rem;
  justify-content: space-around;
}
section.leistungen .accomplishments * {
  text-align: inherit;
}
section.leistungen .accomplishments > div figure {
  max-width: 400px;
  margin-inline: auto;
}
section.leistungen .accomplishments > div img {
  border-radius: 4px;
}
section.leistungen .accomplishments > div h3 {
  color: inherit;
  font-size: 1.1em;
  font-weight: var(--font_weight_bold);
  margin-bottom: 1ch;
}
section.leistungen .accomplishments > div p {
  max-width: 38ch;
  margin-inline: auto;
}
@container (max-inline-size: 60rem) {
  section.leistungen .accomplishments {
    gap: 2.5rem;
  }
}
@container (max-inline-size: 47rem) {
  section.leistungen .accomplishments {
    grid-template-columns: 1fr 1fr;
    row-gap: 4rem;
  }
  section.leistungen .accomplishments > div:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }
}
@container (max-inline-size: 40rem) {
  section.leistungen .accomplishments {
    grid-template-columns: 1fr;
  }
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Aktuelles / News
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#news {
  --teaser_pic_width: 400px;
}
#news #no_news {
  display: block;
  margin-bottom: 8rem;
}
#news article {
  container-name: news_article;
  container-type: inline-size;
}
#news article + article {
  margin-top: calc(var(--section_padding_block, 3rem) * 2);
}
#news article .teaser {
  float: inline-end;
  margin-inline-start: 2rem;
  margin-block-end: 1rem;
}
@container news_article (width < 40rem) {
  #news article .teaser {
    float: none;
    margin-inline: auto;
    margin-block-end: var(--text_block_spacer, 1.5rem);
  }
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
    Bild-Text-Layout
███████████████████████████████████████████████████████████████████████████████████████████████
*/
.pic_text_layout {
  overflow: visible;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  align-content: stretch;
  --pic_width: 550px;
  --gap: 4rem;
  margin-bottom: var(--text_block_spacer);
}
.pic_text_layout.top {
  align-items: flex-start;
}
.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: .8em 2em;
  margin: 0;
  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
  font-size: 1.1em;
  font-weight: 600;
  text-align: center;
  text-decoration: none;
  color: #fff !important;
  background-color: var(--color_secondary);
  border-radius: 9rem;
}
.button.secondary {
  background-color: var(--color_primary);
}
.button.hollow {
  background-color: transparent;
  border: 1px solid #fff;
  color: #fff;
  backdrop-filter: blur(5px);
}
.button:hover,
.button:focus-visible {
  background-color: var(--color_secondary_dark);
}
.button.secondary:hover,
.button.secondary:focus-visible {
  background-color: var(--color_primary_dark);
}
.button.hollow:hover,
.button.hollow:focus-visible {
  background-color: #000;
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Homepage: Kontakt
███████████████████████████████████████████████████████████████████████████████████████████████
*/
section.kontakt {
  padding-bottom: 2rem;
}
section.kontakt > div {
  display: grid;
  grid-template-columns: auto auto auto;
  gap: 2.5rem;
  justify-items: center;
}
section.kontakt h2 {
  text-align: left;
  margin-bottom: .7em;
}
section.kontakt .about_us .button {
  margin-top: 1.8rem;
}
section.kontakt .opening_hours table {
  margin: 0 auto 1rem auto;
}
section.kontakt .opening_hours table td {
  padding-right: 1ch;
  text-align: left;
}
section.kontakt address {
  font-style: normal;
}
section.kontakt address .block a {
  color: inherit;
  text-decoration-color: inherit;
}
section.kontakt address .block .brand {
  margin-left: .5rem;
  font-weight: var(--font_weight_medium);
  margin-bottom: .5rem;
}
section.kontakt address .block .location {
  margin-left: 1.8rem;
  margin-bottom: .5rem;
  position: relative;
}
section.kontakt address .block span {
  display: inline-block;
}
section.kontakt address .iconized::before {
  font-family: var(--fontawesome);
  font-size: 1em;
  display: inline-block;
  width: 1.4rem;
  text-align: center;
  margin-right: .4em;
  text-decoration: none;
  line-height: inherit;
}
section.kontakt address .iconized.location::before {
  content: '\f3c5';
  position: absolute;
  left: -1.7rem;
  top: 0;
}
section.kontakt address .iconized.telephone::before {
  content: '\f095';
}
section.kontakt address .iconized.mobile::before {
  content: '\f3cd';
}
section.kontakt address .iconized.fax::before {
  content: '\f1ac';
}
section.kontakt address .iconized.email::before {
  content: '\f0e0';
}
section.kontakt address .iconized.whatsapp::before {
  font-family: var(--fontawesome_brands);
  content: '\f232';
}
section.kontakt address .iconized.telegram::before {
  font-family: var(--fontawesome_brands);
  content: '\f2c6';
}
@container (width < 65rem) {
  section.kontakt > div {
    grid-template-columns: auto auto;
    justify-items: flex-start;
    row-gap: 3rem;
  }
  section.kontakt address {
    order: 1;
  }
  section.kontakt .about_us {
    order: 3;
    width: 100%;
    grid-column: 1 / -1;
    text-align: center;
  }
  section.kontakt .about_us * {
    text-align: inherit;
  }
  section.kontakt .opening_hours {
    order: 2;
  }
}
@container (width < 40rem) {
  section.kontakt > div {
    grid-template-columns: 1fr;
  }
  section.kontakt .about_us {
    order: 3;
    width: unset;
    grid-column: unset;
    text-align: left;
  }
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Karte
███████████████████████████████████████████████████████████████████████████████████████████████
*/
#karte {
  padding-top: 2rem;
  padding-block-end: 0;
}
#karte .gmod {
  margin-bottom: 0;
  height: 45dvh;
  grid-column: full_width;
}
@container (max-inline-size: 42rem) {
  #karte .gmod {
    height: 36dvh;
  }
}
/*
███████████████████████████████████████████████████████████████████████████████████████████████
  Footer
███████████████████████████████████████████████████████████████████████████████████████████████
*/
body > footer {
  background-color: var(--color_primary);
  color: #fff;
  padding-block: 1rem;
}
body > footer * {
  color: inherit;
}
body > footer .wide {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: baseline;
  gap: 1.5rem;
}
body > footer nav ul {
  display: flex;
  flex-wrap: wrap;
  gap: .5ch 2ch;
}
body > footer ul li {
  list-style: none;
}