/*Exaktes Nachbilden des originalen Contao / RockSolid Stylesheets*/

/* Open Sans Regular (400) */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/open-sans-v44-latin-regular.woff2') format('woff2');
}

/* Open Sans Semi-Bold (600) */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/open-sans-v44-latin-600.woff2') format('woff2');
}

/* Open Sans Bold (700) */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/open-sans-v44-latin-700.woff2') format('woff2');
}

/* PT Serif Regular (400) */
@font-face {
  font-family: 'PT Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/pt-serif-v19-latin-regular.woff2') format('woff2');
}

/* PT Serif Italic (400) */
@font-face {
  font-family: 'PT Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/pt-serif-v19-latin-italic.woff2') format('woff2');
}

/* PT Serif Bold (700) */
@font-face {
  font-family: 'PT Serif';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/pt-serif-v19-latin-700.woff2') format('woff2');
}

    /* Global & Reset Styles */
    body {
      font-family: "Open Sans", sans-serif;
      font-size: 15px;
      line-height: 1.5;
      color: #343434;
      background: #ffffff url("img/layout/body_002_bg.webp") 50% 0 no-repeat fixed;
      background-size: cover;
      margin: 0;
    }

    a {
      color: #0788ca;
      text-decoration: none;
    }
    a:hover, a:focus {
      color: #056799;
      text-decoration: underline;
    }

    /* Page Container (Boxed Layout, max 1024px) */
    .page {
      position: relative;
      max-width: 1024px;
      margin: 0 auto;
      background: rgba(255, 255, 255, 0.9);
      border: solid #dedede;
      border-width: 0 1px;
      box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
    }
    @media (max-width: 1024px) {
      .page {
        border: 0;
        box-shadow: none;
      }
    }

    /* Page Header */
    .page-header {
      position: relative;
      padding: 0 3.57143%;
      background: #ffffff;
      box-shadow: 0 0 8px rgba(0, 0, 0, 0.4);
    }
    @media (max-width: 1024px) {
      .page-header {
        padding-right: 5.55556%;
        padding-left: 5.55556%;
      }
    }

    /* Logo & Header Info */
    .logo {
      margin: 0 auto;
      width: 230px;
      padding: 0;
    }
    .logo img {
      display: block;
      width: 230px;
      height: auto;
      margin: 0 auto;
    }
    .adresse {
      margin-bottom: 20px;
      text-align: center;
      color: #802537;
      font-weight: bold;
    }

    /* Hauptnavigation (Desktop) */
    .main-navigation-wrapper {
      position: relative;
      padding-bottom: 5px;
      clear: both;
    }
    .main-navigation {
      width: 88%;
      margin: 0 auto;
      font-family: "PT Serif", serif;
      font-size: 1em;
      text-transform: uppercase;
      color: #802537;
    }
    .main-navigation .nav {
      justify-content: center;
    }
    .main-navigation .nav-item {
      margin: 0;
    }
    .main-navigation .nav-link {
      padding: 0.75em 1.25em;
      border-left: 1px solid #fdc300;
      color: #802537;
      text-decoration: none;
      box-shadow: inset 1px 0 rgba(255, 255, 255, 0.5);
      border-radius: 0;
    }
    .main-navigation .nav-item:first-child .nav-link {
      border-left: 0;
    }
    .main-navigation .nav-link:hover, 
    .main-navigation .nav-link:focus {
      color: #3d566e;
      background: #eeeeee;
    }
    .main-navigation .nav-link.active {
      color: #636363;
      background: #fefefe;
    }

    /* Mobile Navbar Styling */
    .custom-navbar-toggler {
      border: 1px solid #802537;
      color: #802537;
    }

    /* Content Area Layout */
    .content-wrapper {
      padding: 2rem 3.57143% 0 3.57143%;
    }
    @media (max-width: 1024px) {
      .content-wrapper {
        padding-left: 5.55556%;
        padding-right: 5.55556%;
      }
    }

    /* Main Content Styling */
    .main-content h1, .main-content h2, .main-content h3 {
      font-family: "PT Serif", serif;
      font-weight: normal;
      line-height: 1.3;
      color: #802537 !important;
    }
    .main-content h1 {
      font-size: 1.5em;
      color: #802537;
      margin-top: 0.75em;
      margin-bottom: 0.3em;
    }

    .main-content h2 {
      font-size: 1.3em !important;
      color: #802537;
      margin-top: 0.75em;
      margin-bottom: 0.3em;
    }
    .main-content h3 {
      font-size: 1.2em !important;
      color: #802537;
      margin-top: 0.75em;
      margin-bottom: 0.3em;
    }
    .main-content h4 {
      font-size: 1.1em !important;
      color: #802537;
      margin-top: 0.75em;
      margin-bottom: 0.3em;
    }
    .main-content p {
      margin-top: 1.33333em;
      margin-bottom: 1.33333em;
    }

    /* Sidebar Styling */
    .sidebar {
      background: #ffffff;
      border: 1px solid #802537;
      border-radius: 5px;
      padding: 1.5rem 10px;
      margin-top: 2rem;
    }
    @media (min-width: 992px) {
      .sidebar {
        margin-top: 4em;
      }
    }
    .sidebar h2 {
      font-family: "PT Serif", serif;
      font-size: 0.88889em;
      color: #802537;
      text-align: center;
      margin-top: 0;
    }
    .sidebar h3.ce_headline {
      font-size: 0.77778em;
      font-weight: 600;
      letter-spacing: 0.07143em;
      color: #8a8a8a;
      text-transform: uppercase;
      border-bottom: 1px solid #e8e8e8;
      padding-bottom: 0.42857em;
      margin-top: 2em;
    }
    .sidebar p {
      font-size: 0.77778em;
      margin: 0.88889em 0;
    }
    .sidebar .block {
      margin-bottom: 2rem;
    }

    /* Footer Styling */
    .page-footer {
      clear: both;
      margin: 0 3.57143%;
    }
    @media (max-width: 1024px) {
      .page-footer {
        margin-left: 5.55556%;
        margin-right: 5.55556%;
      }
    }
    .footer-navigation-wrapper {
      margin: 3.33333em 0 0;
      padding: 1.83333em 0;
      border-top: 1px solid #dedede;
      font-size: 0.66667em;
      font-weight: 600;
      color: #8a8a8a;
    }
    @media (max-width: 870px) {
      .footer-navigation-wrapper {
        font-size: 0.8em;
      }
    }
    .footer-navigation ul {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-wrap: wrap;
      gap: 1.5em;
    }
    .footer-navigation a {
      color: inherit;
      text-decoration: none;
    }
    .footer-navigation a:hover {
      text-decoration: underline;
    }
    .footer-info {
      font-weight: normal;
    }
    .footer-info p {
      margin: 0;
    }