
/* ==================== style/normalize.css ==================== */


/* ----------------------- Normalize.css (Auszüge) ------------------------- */
/* https://github.com/necolas/normalize.css/blob/master/normalize.css */

html {
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  font-variant-ligatures: no-common-ligatures; /* neuerdings funktioniert nur noch die prefixlose Variante */
}

body,
figure {
  margin: 0;
}

article,
aside,
details,
figcaption,
figure, /* Safari iPhone 3, MSIE 8 */
footer,
header,
main, /* wichtig für MSIE bis 11, Android bis 4.3, Opera 12 */
nav,
section {
  display: block;
}

summary {
  display: list-item;
}

a {
  background: transparent; /* Remove the gray background color from active links in MSIE 10 */
}

a:active {
  outline: 0;
}

b, strong { font-weight: bold; }

small {
  font-size: 82%;
}
small small {
  font-size: 1em;
}

sub,
sup {
  font-size: 82%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sup {
  top: -0.34em;
}
sub {
  bottom: -0.25em;
}

img {
  border: 0;
}

button,
input,
optgroup,
select,
textarea {
  font-size: inherit;
  margin: 0; /* Firefox 4+, Safari, and Chrome */
}

button {
  overflow: visible; /* `overflow` set to `hidden` in MSIE 8-11 */
}

button::-moz-focus-inner, /* Remove inner padding and border in Firefox 4+ */
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

textarea {
  overflow: auto; /* Remove default vertical scrollbar in MSIE 8-11. */
}

[hidden] { /* angeblich für MSIE 10 */
  display: none;
}


/* ==================== style/fonts.css ==================== */


/* roboto-300 - latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: local('Roboto Light'), local('Roboto-Light'),
       url('../System/Fonts/roboto-v18-latin-300.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../System/Fonts/roboto-v18-latin-300.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-regular - latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: local('Roboto'), local('Roboto-Regular'),
       url('../System/Fonts/roboto-v18-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../System/Fonts/roboto-v18-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-700 - latin */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: local('Roboto Bold'), local('Roboto-Bold'),
       url('../System/Fonts/roboto-v18-latin-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../System/Fonts/roboto-v18-latin-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}

/* roboto-condensed-300 - latin */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: local('Roboto Condensed Light'), local('RobotoCondensed-Light'),
       url('../System/Fonts/roboto-condensed-v16-latin-300.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../System/Fonts/roboto-condensed-v16-latin-300.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
/* roboto-condensed-regular - latin */
@font-face {
  font-family: 'Roboto Condensed';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: local('Roboto Condensed'), local('RobotoCondensed-Regular'),
       url('../System/Fonts/roboto-condensed-v16-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
       url('../System/Fonts/roboto-condensed-v16-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}


/* ==================== style/responsive-box.css ==================== */


.responsive-box {
  display: block;
  position: relative;
  height: 0; 
}
.responsive-box[hidden] {
  display: none;
}

.responsive-box img,
.responsive-box iframe {
  position: absolute;
  width: 100%;
  height: 100%;
}


/* ==================== style/html-body.css ==================== */


@media screen {
  html {
    overflow-y: scroll;
  }
  body {
    color: #999;
  }
}

body {
  font-family: 'Roboto', sans-serif;
  background-color: white;
}

@media screen {
  .wrapper {
    max-width: 934px;
    padding: 0 2.5%;
    margin: 0 auto;
  }
}

/* ----------------------- Helper ------------------------- */

p { margin: 0 0 0.8em 0; } /* MSIE nimmt sonst einen erheblich größeren Abstand */

hr {
  height: 0;
  border: 0;
  border-top: 1px solid #72b61a;
  margin: 1.5em 0;
}

.nowrap {
  white-space: nowrap;
}

.ellipse { 
  display: block;
  white-space: nowrap;
  overflow: hidden; /* muss */ 
  text-overflow: ellipsis;  
}


main:after,
.clearfix:after {
  visibility: hidden;
  display: block;
  font-size: 0;
  content: " ";
  clear: both;
  height: 0;
}


@media screen {
  .printonly { /* identisch mit .noview */
    height: 1px !important;
    width: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    line-height: 2 !important;
    position: absolute !important;
  }
}

@media print {
  .noprint { display: none !important; }
}

a[rel="external"]:after {
  content: " »";
}



/* ==================== style/header.css ==================== */


header {
  max-width: 86.5%;
  margin-left: 13.5%;
  padding: 5% 0;
}


.logo, .claim {
  display: inline-block;
  width: 42%;
  vertical-align: middle;
}


.logo {
  max-width: 338px; /* 338px */
  margin-right: 17px;
}

.logo .responsive-box {
  padding-bottom: 36.09467456%;
}


.claim {
  font-family: 'Roboto Condensed', sans-serif;
  font-size: 1.3em;
  line-height: 1.2;
  letter-spacing: 1px;
  max-width: 378px; /* 338px + 40px */
  margin-top: -6px;
}

.claim .responsive-text {
  display: inline-block;
  white-space: nowrap;
  width: 100%;
}

@media only screen and (max-width: 767px) {
  .logo, .claim {
    display: block;
  }
  .logo {
    width: 55%;
    min-width: 265px;
    margin-right: 0;
  }
  .claim {
    line-height: 1.3;
    width: 62%;
    min-width: 290px;
    margin-top: 5%;
  }
}

@media only screen and (max-width: 399px) {
  header {
    max-width: 100%;
    margin-left: 0;
  }
}

@media only screen and (max-width: 360px) {
  .claim .responsive-text {
    white-space: normal;
  }
}

@media print {
  header {
    max-width: 100%;
    margin-left: 0;
    padding: 0 0 36px 0;
  }
  .claim {
    font-size: 1.1em;
    margin-top: -8px;
  }
}


/* ==================== style/nav.css ==================== */


/* ----------------------- Allgemein ----------------------- */

nav {
  width: 11.2%;
  position: absolute;
  z-index: 2;
}

@media print {
  nav {
    display: none;
  }
}

nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

nav a { 
  color: white;
  font-size: 1.1em;
  text-transform: uppercase;
  letter-spacing: 2px;
  text-decoration: none;
  white-space: nowrap;
}


@media (max-width: 399px) {
  nav {
    position: static;
    width: auto;
  }
}


/* ---------------------- Hauptlinks (Icons) ------------------------ */

nav ul.sitemap_1 > li {
  color: white;
  width: 100%;
  height: 1px; /* damit von Screenreder lesbar */
  background-color: #b1b3b4;
  padding-bottom: 95.2%;
  border-radius: 15%;
  margin-top: 19%;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}

@media (min-width: 400px) {
  nav ul.sitemap_1 > li:first-child           { background-image: url('../System/Layout/Button-Menu.svg'); }
  nav ul.sitemap_1 > li:first-child+li        { background-image: url('../System/Layout/Button-Einkaufen.svg'); }
  nav ul.sitemap_1 > li:first-child+li+li     { background-image: url('../System/Layout/Button-Kontakt.svg'); }
  nav ul.sitemap_1 > li:first-child+li+li+li  { background-image: url('../System/Layout/Button-Anfahrt.svg'); }
}

nav ul.sitemap_1 > li:first-child {
  background-color: #b5007b;
  margin-top: 0;
}

nav ul.sitemap_1 > li > a {
  display: block;
  height: 1px;
  padding-bottom: 96%;
  text-indent: -999em;
}

@media (hover: hover) {
  nav ul.sitemap_1 > li > a:hover  {
    background-color: rgba(255,255,255,0.2);
  }
  nav ul.sitemap_1 > li > a:active {
    background-color: rgba(255,255,255,0.4);
  }
}

@media (max-width: 399px) {
  nav ul.sitemap_1 > li {
    height: auto;
    background-color: #72b61a;
    padding-bottom: 0;
    border-radius: 0;
    margin-top: 0;
    margin-bottom: 6px;
  }

  nav ul.sitemap_1 > li > a {
    height: auto;
    padding: 10px 7px;
    text-indent: 0;
  }

  nav ul.sitemap_1 > li:first-child ~ li.open > a { background-color: rgba(255,255,255,0.4); }
}


/* ---------------------- Untermenü ----------------------- */

nav ul.sitemap_2 {
  position: absolute;
  top: 0;
  width: 324%;
  height: 100%;
  min-width: 14em;
  background-color: white;
  border-right: 10px solid white;
  visibility: hidden;
  left: 0;
  opacity: 0;
  -webkit-transition: left 200ms, opacity 200ms 50ms;
  transition: left 200ms, opacity 200ms 50ms;
}

nav li.open ul.sitemap_2 {
  visibility: visible;
  opacity: 1;
  left: 116.5%;
}

nav ul.sitemap_2 > li {
  background-color: #72b61a;
  height: 21.5%;
  width: 100%;
  position: absolute;
  overflow: hidden; /* siehe nav ul.sitemap_2 > li > a */
}
nav ul.sitemap_2 > li:first-child { top: 0; }
nav ul.sitemap_2 > li:first-child+li { top: 26.1%; }
nav ul.sitemap_2 > li:first-child+li+li { top: 52.2%; }
nav ul.sitemap_2 > li:first-child+li+li+li { bottom: 0; }


nav ul.sitemap_2 > li > a {
  position: absolute;
  bottom: 0;
  box-sizing: border-box;
  width: 100%;
  padding: 20% 0 4.2% 4.2%; /* 20% padding-top, um die Klickfläche auf den gesamten Button auszudehnen */
}

@media (hover: hover) {
  nav ul.sitemap_2 > li > a:hover  {
    background-color: rgba(255,255,255,0.2);
  }
}

nav ul.sitemap_2 > li.open > a {
  background-color: rgba(255,255,255,0.4);
}

@media (max-width: 479px) {
  nav ul.sitemap_2 > li > a {
    font-size: 1em;
    top: 0;
    padding: 4.2% 0 0 4.2%;
  }
}


@media (max-width: 399px) {
  nav ul.sitemap_2 {
    position: static;
    width: auto;
    height: 1px;
    min-width: 0;
    border-right: none;
    visibility: hidden;
    padding-top: 1px; /* sonst wirkt der Margin der LI-Tags nicht */
  }
  
  nav li.open ul.sitemap_2 {
    visibility: visible;
    height: auto;
  }
  
  nav ul.sitemap_2 > li {
    background-color: #b1b3b4;
    height: auto;
    width: auto;
    position: static;
    overflow: visible;
    margin-top: 6px;
  }
  
  nav ul.sitemap_2 > li > a {
    position: static;
    display: block;
    font-size: 1.1em;
    width: auto;
    padding: 10px 7px;
  }
}



/* ==================== style/hero.css ==================== */


.nav-hero {
  padding-bottom: 4.5%;
  overflow: hidden; /* für verschiebbaren .hero beim Menü öffnen */
  position: relative;
}

/* ----------------------- Seitenränder und Breite ------------------------- */

.hero {
  position: relative;
  z-index: 1;
  max-width: 86.5%;
  margin-left: 13.5%;
  overflow: hidden; /* zum Clippen der zoomenden Frames */
}

@media (max-width: 399px) {
  .hero {
    max-width: 100%;
    margin-left: 0;
  }
}

@media print {
  .nav-hero {
    padding-bottom: 32px;
  }
  .hero {
    max-width: none;
    margin-left: 0;
  }
}

/* ---------------------------- Slideshow-Box ------------------------------ */

.hero .responsive-box {
  padding-bottom: 57.31707%;
}



/* ==================== style/fadeshow.css ==================== */


.fadeshow,
.fadeshow img {
  position: absolute;
  width: 100%;
  height: 100%;
}


#js .fadeshow img { /* transform 7.5s 0.5s <- die ersten 0.5s der Überblendung erfolgen ohne Skalierung */
  -webkit-transition: opacity 1.5s linear, -webkit-transform 8s;
  transition: opacity 1.5s linear, transform 8s;
}


#js .fadeshow img.fadeout:nth-child(odd) {
  opacity: 0;
  -webkit-transform: scale(1.1);
  transform: scale(1.1);
}

#js .fadeshow img.fadein:nth-child(odd) {
  opacity: 1;
  -webkit-transform: scale(1.0);
  transform: scale(1.0);
}


#js .fadeshow img.fadeout:nth-child(even) {
  opacity: 0;
  -webkit-transform: scale(1.0);
  transform: scale(1.0);
}

#js .fadeshow img.fadein:nth-child(even) {
  opacity: 1;
  -webkit-transform: scale(1.1);
  transform: scale(1.1);
}


#nojs .fadeshow img + img {
  display: none;
}


/* ==================== style/main.css ==================== */


main {
  line-height: 1.6;
  max-width: 700px;
  padding-bottom: 40px;
  margin-left: 13.5%;
}

main a           { color: #b5007b; }
main a:visited   { color: gray; }
@media (hover: hover) {
  main a:hover   { color: #72b61a; }
  main a:active  { color: #555; }
}

@media (max-width: 399px) {
  main {
    margin-left: 0;
  }
}

@media print {
  main {
    max-width: none;
    padding: 0;
    margin-left: 0;
  }
  main a,
  main a:visited,
  main a:hover,
  main a:active { color: black; text-decoration: underline; }
  main a[href^="http"]:after { content: " <"attr(href)">"; }
  main .notprinturl a[href^="http"]:after,
  main a[href^="http"].notprinturl:after { content: ""; }
}

/* ==================== style/grid.css ==================== */


.grid ul {
  list-style: none;
  padding-left: 0;
}

@media (min-width: 480px) {
  .grid {
    overflow: hidden; /* waagerechten Scrollbalken unterdrücken */
  }

  .grid:after {
    content: '';
    display: block;
    clear: both;
    font-size: 0;
    visibility: hidden;
    height: 0;
  }

  .grid > * {
    margin: 0 -1.4%; 
  }

  .grid > * > * {
    box-sizing: border-box;
    padding: 0 1.4%;
  }

  .grid-2 > * > * {
    float: left;
    width: 50%;
  }

  .grid-2 > * > *:nth-child(odd) {
    clear: left;
  }
}


/* ==================== style/h1-h6.css ==================== */


h1, h2, h3, h4, h5, h6 {
  font-weight: normal;
  margin-top: 0;
}

h1 { 
  font-family: 'Roboto Condensed', sans-serif;
  font-size: 2.5em;
  font-weight: 300;
  line-height: 1.4;
  letter-spacing: 1px;
  color: #72b61a;
  margin-bottom: 0.7em;
}

@media (max-width: 768px) {
  h1 { 
    font-size: 2em;
  }
}
@media (max-width: 374px) {
  h1 { 
    font-size: 1.7em;
  }
}


h2, h3, h4, h5, h6 {
  color: #b5007b;
  font-size: 1em;
}


h2 { 
  font-size: 1.1em;
  margin-bottom: 0.5em;
}

h3, h4, h5, h6 {
  margin-bottom: 0;
}


/* ==================== style/ul-li.css ==================== */


main > ul:not([class]),
main > ol:not([class]) {
  padding-top: 0; 
  margin-top: 0; 
  padding-bottom: 0; 
  margin-bottom: 1em;
}

main > ul:not([class]) {
  list-style: none;
  margin-left: 0;
  padding-left: 0;
}

main > ul:not([class]) li {
  padding-left: 1.05em;
  position: relative;
}

main > ul:not([class]) li:before {
  content: '•';
  position: absolute;
  left: 0;
  color: #ddd;
  font-weight: bold;
  font-family: Arial, sans-serif; /* sonst werden die Bullits unter Mac und Win unterschiedlich groß */
  font-size: 1.25em;
  line-height: 1.3;
}



.blindlist {
  list-style: none;
  padding-left: 0;
}


/* ==================== style/thumblinks.css ==================== */


main .dir li:before {
  display: none;
}

.dir li {
  margin-bottom: 24px;
}

.dir a {
  text-decoration: none;
  color: inherit;
}

.dir .linktext {
  display: block;
  padding-top: 8px;
}


/* ==================== style/figure-img.css ==================== */


.image { /* Die alles umschließende Box */
  margin-top: 2rem;     /* oberer Abstand zum darüberliegenden Element, Einheiten: px, em, rem */
  margin-bottom: 2rem;  /* unterer Abstand zum darunterliegenden Element */
  margin-left: auto;
  margin-right: auto;   /* beide auto: zentriert; margin-right: 0: rechtsbündig */
}

.image figcaption { /* Video-/Bildbeschriftung */
  color: gray;
  text-align: left;   /* left, center, right */
  margin-top: 0.4rem; /* Abstand zwischen Vorschaubild/Video und Bildbeschriftung */
}


/* ---------------------- ab hier nichts ändern ----------------------- */


.image > img {
  display: block;
  max-width: 100%;
  height: auto;
  vertical-align: top;
}

.image figcaption:empty {
  display: none;
}


/* ==================== style/footer.css ==================== */


footer {
  line-height: 1.6;
  color: white;
  background-color: #b1b3b4;
  background-image: url('../counter/count.php');
  background-repeat: no-repeat;
  box-shadow: 0 180px 0 #b1b3b4, 0 360px 0 #b1b3b4; /* verlängert die Box nach unten, falls die Seite kürzer ist als das Browserfenster hoch */
}

footer .centerbox {
  max-width: 934px;
  padding: 0 2.5%;
  margin: 0 auto;
}

.footer-content {
  max-width: 720px;
  padding-top: 40px;
  padding-bottom: 40px;
  margin-left: 13.5%;
}

@media (max-width: 399px) {
  .footer-content {
    max-width: none;
    padding-top: 40px;
    padding-bottom: 40px;
    margin-left: 0;
  }
}

footer .header {
  font-weight: bold;
  color: white;
}

footer a {
  color: white;
}

@media (hover: hover) {
  footer a {
    text-decoration: none;
  }
  footer a:hover {
    text-decoration: underline;
  }
  footer a:active {
    color: gray;
  }
}

@media (max-width: 375px) {
  footer .shrink {
    display: none;
  }
}

@media print {
  footer {
    font-size: 0.9em;
    color: gray;
    background-color: transparent;
    padding: 0;
  }
  footer .centerbox {
    max-width: none;
    margin: 0;
  }
  footer-content {
    max-width: none;
    padding-top: 0;
    padding-bottom: 0;
    margin-left: 0;
  }
  footer a {
    color: black;
    text-decoration: underline;
  }
  footer .shrink {
    display: none;
  }
}

/* --------------------- Adresse ------------------------ */

footer .adresse {
  padding-bottom: 18px;
  border-bottom: 2px solid white;
  margin-bottom: 14px;
}

footer .adresse .header {
  font-size: 0.85em;
  text-transform: uppercase;
  letter-spacing: 2px;
  margin-bottom: 0.9em;
}

footer .adresse .dot:after {
  content: '';
  display: inline-block;
  font-size: 0;
  vertical-align: middle;
  width: 0;
  height: 0;
  border: 2px solid white;
  border-radius: 2px;
  margin: -2px 1px 0 6px;
  -webkit-transform: scale(0.8);
  -moz-transform: scale(0.8);
  -ms-transform: scale(0.8);
  transform: scale(0.8);
}

footer .adresse .oeffnungszeiten {
  display: block;
  margin-top: 0.7em;
}

@media (max-width: 960px) {
  footer .adresse .dot {
    display: block;
  }
  footer .adresse .dot:after {
    display: none;
  }
  footer .adresse br + span,
  footer .adresse .oeffnungszeiten {
    margin-top: 1em;
  }
}

@media print {
  footer .adresse {
    padding-bottom: 0;
    border-bottom: none;
    margin-bottom: 0;
  }
  footer .adresse .header {
    display: none;
  }
  footer .adresse .dot:after {
    border: 2px solid black;
  }
}

/* --------------------- Links ------------------------ */

footer .links {
  margin: 0;
}

@media print {
  footer .links {
    display: none;
  }
}

footer .links li {
  display: inline-block;
}

footer .links li:before {
  content: '';
  display: inline-block;
  font-size: 0.85em;
  vertical-align: middle;
  width: 0;
  height: 1em;
  border-left: 1px solid white;
  margin: -0.1em 0.5em 0 0.2em;
}

footer .links li:first-child:before {
  display: none;
}

@media (max-width: 480px) {
  footer .links li {
    display: block;
  }
  footer .links li:before {
    display: none;
  }
}

footer .links a {
  display: inline-block;
  font-weight: bold;
  font-size: 0.85em;
  text-transform: uppercase;
  letter-spacing: 2px;
  padding: 0.7em 0; /* bessere Trefferquote auf Touchscreens */
}


/* ==================== style/mitarbeiter.css ==================== */

.mitarbeiter {
  max-width: 700px;
}

.mitarbeiter li {
  line-height: 1.5;
  font-size: 1.4em;
  font-family: 'Roboto Condensed', sans-serif;
  font-weight: 300;
  letter-spacing: 1px;
  color: #666;
  margin-bottom: 3%;
}


.mitarbeiter strong {
  display: block;
  font-size: 1em;
  font-weight: normal;
}

.mitarbeiter b {
  display: block;
  color: #b5007b;
  font-size: 1.25em;
  font-weight: normal;
}

.mitarbeiter a {
  display: block;
  color: inherit;
}


/* ==================== style/impressum.css ==================== */


.impressum table {
  border-collapse: collapse;
  margin: 1em 0;
}

.impressum th,
.impressum td {
  vertical-align: top;
  padding: 0;
}

.impressum th {
  font-weight: normal;
  text-align: left;
  padding-right: 0.3em;
}



.impressum main .links {
  font-size: 0.82em;
  color: #aaa;
}

.impressum main .links li {
  white-space: nowrap;
  display: inline-block;
  margin-top: 1em;
}

.impressum main .links li:not(:last-child):after {
  content: '·';
  display: inline-block;
  margin: 0 2px 0 5px;
}

.impressum main .links a {
  color: #aaa;
}

@media (hover: hover) {
  .impressum main .links a {
    text-decoration: none;
  }
  .impressum main .links a:hover {
    text-decoration: underline;
  }
}




/* ==================== style/datenschutz.css ==================== */


.datenschutz h2 {
  margin: 1.5em 0 0.5em 0;
}

.datenschutz main li {
  margin-bottom: 0.5em;
}
