*, *::before, *::after {
 box-sizing: border-box;
 margin: 0;
 padding: 0;
}

body {
 margin: 0;
 font-family: 'Roboto', sans-serif;
 font-size: 16px;
 line-height: 1.4rem;
} header {
 padding: 1em 0 0 0;
 text-align: center;
 background: #f93327;
} ul, li {
 list-style-type: none;
 margin: 0;
 padding: 0;
} img {
 max-width: 100%;
} h1, h2, h3 {
 margin-top: 0;
} section {
 padding: 1.75rem 0;
} a {
 color: #f93327;
 text-decoration: none;
} a:hover {
  text-decoration: underline;
} 

h1 a, h2 a, h3 a {
  color: black;
}

.container {
 width: 85%;
 max-width: 1359px;
 margin: 0 auto;
 position: relative;
}

.header__area {
  margin-bottom: 1rem;
}

/* hamburger anfang */
.nav {
 width: 100%;
}

.nav a {
 color: #fff;
 position: relative;
 z-index: 999;
 text-transform: uppercase;
 padding: 10px;
}

.nav-toggle {
 cursor: pointer;
 border: 0;
 width: 3em;
 height: 3em;
 padding: 0em;
 border-radius: 50%;
 background: #072a2d;
 color: #fff;
 transition: opacity 250ms ease;

 position: absolute;
 top: -1px;
 left: 0;
}

.nav-toggle:focus,
.nav-toggle:hover {
 opacity: .75;
}

.hamburger {
 width: 50%;
 position: relative;
}

.hamburger,
.hamburger::before,
.hamburger::after {
 display: block;
 margin: 0 auto;
 height: 3px;
 background: white;
}

.hamburger::before,
.hamburger::after {
 content: '';
 width: 100%;
}

.hamburger::before {
 transform: translateY(-6px);
}

.hamburger::after {
 transform: translateY(3px);
}

.nav {
 visibility: hidden;
 height: 0;
}

.menu li {
  padding-bottom: 1rem;
}

.nav--visible {
 visibility: visible;
 height: auto;
 position: relative;
} 

/* Sub-menu styling moved below */
/* hamburger ende */
.logo img {
  min-height: 40px;
  width: 15%;
}

.hero__title {
 font-size: 1.5rem;
 margin-bottom: .25%;
}

.hero__title a {
  color: black !important;
  font-weight: bold;
}

.hero__title a:hover {
  text-decoration: none;
} 

.hero__text {
 text-transform: uppercase;
 text-align: center;
 font-size: .75rem;
 letter-spacing: 2px;
 margin: 0;
 padding: 0.35em 0;
}

/* ACF Texte */

section.intro h2,
section.sektion2 h2,
section.overview h2 {
 font-size: 1.5rem;
 margin: 0.5em 0;
 text-transform: uppercase;
}

section.intro h3,
section.sektion2 h3,
section.overview h3 {
  margin: 20px 0 8px;
}

section.intro p+p,
section.sektion2 p+p,
section.overview p+p {
  margin-top: 0.75em;
}

/* ACF Texte Ende */

.image {
 position: relative;
 width: 100%;
 height: auto;
 background: rgb(54, 62, 74);
 border-radius: 8px;
 box-shadow: 0 4px 8px 0 rgb(46 43 56 / 16%), 0 8px 16px 0 rgb(46 43 56 / 8%), 0 16px 32px 0 rgb(46 43 56 / 4%);
 display: flex;
 justify-content: center;
 overflow: hidden;
 margin-bottom: 24px;
}

.intro .cat {
 font-size: 14px;
 text-transform: uppercase;
 text-align: left;
 padding: 16px;
 width: 100%;
 position: absolute;
 left: 0;
 bottom: 0;
 background: linear-gradient(to right, rgba(54,62,74,1) 0%,rgba(54,62,74,0.5) 50%,rgba(54,62,74,0) 100%);
 z-index: 9;
}

.intro .news-side .cat {
  padding: 16px;
}

/*watermark*/
.wtm {
  display: block;
}

.wtm::after {
  content: "";
  background:url(../../images/watermark-sm.png);
  opacity: 0.2;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  position: absolute;
  z-index: 1;   
}
/*watermark ende */

.image img {
 min-height: 100%;
 width: 100%;
 height: auto;
 position: relative;
 z-index: 2;
 object-fit: cover;
}

.intro p {
  padding-bottom: 1em;
}

.index-content {
  padding-bottom: 2rem;
}

.cat a {
  color: rgb(238, 205, 86);
  font-weight: 700;
  line-height: 16px;
}

section.intro .news h3 {
  margin: 0;
}

.more {
  text-align: right;
  margin-top: -8px;
}

.news__div {
  border: 1px solid black;
  opacity: 65%;
  margin-bottom: 24px;
}

/** Cat Overview */
.cats {
  display: flex;
  flex-wrap: wrap;
  gap: 2%;
}

.cats .box {
  padding: 0;
  border-radius: 0.5rem;
  box-shadow: 0 4px 8px 0 rgb(46 43 56 / 16%), 0 8px 16px 0 rgb(46 43 56 / 8%), 0 16px 32px 0 rgb(46 43 56 / 4%);
  overflow: hidden;
}

.cats .cat a.title {
  color: rgb(238, 205, 86);
  background: rgb(54, 62, 74);
  min-height: 100px;
  position: relative;
  display: inline-block;
  overflow: hidden;
}

.cats .cat a.title img {
  position: relative;
  opacity: 0.6;
  float: left;
}

.cats span {
  font-weight: 700;
  font-size: 22px;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 9;
  display: flex;
  justify-content: center;
  align-content: center;
  align-items: center;
  text-align: center;
  text-shadow: 0 0 10px rgb(0 0 0 / 30%);
}

.cats .cat ul li {
  padding: 10px 24px;
  font-size: 14px;
  position: relative;
} 

.cats .cat ul li+li {
  border-top: 1px solid rgba(54, 62, 74, 0.1);
}

.cats .cat ul li a {
  color: rgba(54,62,74,0.6);
  width: 100%;
  height: 32px;
  overflow: hidden;
  font-weight: 300;
}

/** Sidebar */
.sidebar-area {
  padding: 20px 0;
}

.sidebar-area a {
  color: black;
}

.sidebar-area a:hover {
  color: rgb(238, 205, 86);
}

.sidebar-area li {
  padding: 0.3em 0;
}

.ez-toc-list li ul {
  padding-bottom: 0;
}

/** Footer */

footer {
  width: 100%;
  background-color: #3f3f3f;
}
 
 footer p {
  font-size: .75rem;
  color: #f0f0f0;
  padding-top: 30px;
}

footer p a {
  color: rgb(238, 205, 86);
}

/*******************
** Beitrag Design **
*******************/
 
/* Breadcrumb - Anfang */
section.post {
  padding: 1.5rem 0 3rem 0;
}

.crumbs {
  padding: 1.5rem 0 1.5rem 1.5rem;
}

.crumbs a {
  color: black;
}
/* Breadcrumb - Ende */

.post h1 {
  font-size: 1.5em;
}

.post h1,
.post h2,
.post h3,
.post h4 {
  padding-bottom: 8px;
}

.post h2.liste,
.post h3.liste {
  padding-top: 24px;
}

.post ul,
.post li {
  list-style: initial;
}

.post ol {
  padding-bottom: 24px;
}

.post ol li {
  list-style: decimal;
  list-style-position: inside;
}

.post ul {
  padding-bottom: 24px;
  padding-left: 16px !important;
}

.post li > iframe {
  margin-top: 16px;
}

.post p {
  padding-bottom: 16px;
}

.post h3 > img {
  vertical-align: bottom;
}

.post article {
  width: 100%;
}

.article__box .article__image {
  max-width: 100%;
  width: 100%;
  height: auto;
  margin-bottom: 16px;
}

.post .embed-privacy-container {
  margin: -24px 0 0;
}

.box {
  padding: 1.5rem 1.5rem 0 1.5rem;
  border-radius: 0.5rem;
  box-shadow: 0 4px 8px 0 rgb(46 43 56 / 16%), 0 8px 16px 0 rgb(46 43 56 / 8%), 0 16px 32px 0 rgb(46 43 56 / 4%);
  overflow: hidden;
}

.post article.article__box {
  margin-bottom: 16px;
}

/*Quote - Anfang*/
blockquote {
  border-left: 10px solid rgba(249, 50, 39, 0.7);
  border-top: 2px solid rgba(249, 50, 39, 0.7);
  border-bottom: 2px solid rgba(249, 50, 39, 0.7);
  border-right: 2px solid rgba(249, 50, 39, 0.7);
  margin: 0 24px 24px 24px;
  padding: 24px 90px 0 90px;
  border-radius: 8px;
  position: relative;
  font-style: italic;
  background: rgba(0, 0, 0, 0.04);
}



.normal {
  border-left: 10px solid rgba(249, 50, 39, 0.7);
  border-top: 2px solid rgba(249, 50, 39, 0.7);
  border-bottom: 2px solid rgba(249, 50, 39, 0.7);
  border-right: 2px solid rgba(249, 50, 39, 0.7);
  margin: 0 24px 24px 24px;
  padding: 24px 90px 0 90px;
  border-radius: 8px;
  position: relative;
  font-style: normal;
  background: rgba(0, 0, 0, 0.04);
}

.post .quote {
  border-left: 10px solid rgba(249, 50, 39, 0.7);
  border-top: 2px solid rgba(249, 50, 39, 0.7);
  border-bottom: 2px solid rgba(249, 50, 39, 0.7);
  border-right: 2px solid rgba(249, 50, 39, 0.7);
  margin: 0 24px 24px 24px;
  padding: 24px 90px 0 90px;
  border-radius: 8px;
  position: relative;
  font-style: italic;
  background: rgba(0, 0, 0, 0.04);
}

.post .quote i {
  position: absolute; 
}

.post .quote .quote-left {
  left: 24px;
  top: 40px;
}

.post .quote .quote-left::before {
  content: "\201d";
  font-size: 80px;
}

.post .quote .quote-right {
  right: 24px;
  bottom: -28px;
}

.post .quote .quote-right::before {
  content: "\201c";
  font-size: 80px;
}

.test::before {
  content: "\201d";
  font-size: 80px;
}
/*Quote - Ende*/

/*like posts*/
.like-posts {
  margin-top: 16px;
}

.like-posts-flex {
  display: flex;
  justify-content: space-between;
}

.like-posts h4 b {
  font-size: 1.1rem;
  border-bottom: 1px solid #f93327;
  width: 100%;
  display: block;
  margin-bottom: 1rem;
}

.related-post {
  margin-bottom: 0.75rem;
  width: 31%;
  margin-right: 3.5%;
}

.related-post:last-child {
  margin-right: 0;
}

.related-post img,
.related-post picture,
.related-post picture img {
  width: 100%;
  max-height: 160px;
  object-fit: cover;
  display: block;
}

.related-post h2 {
  font-size: 1rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sidebar-area {
  padding: 1.5rem;
  border-radius: 0.5rem;
  box-shadow: 0 4px 8px 0 rgb(46 43 56 / 16%), 0 8px 16px 0 rgb(46 43 56 / 8%), 0 16px 32px 0 rgb(46 43 56 / 4%);
  overflow: hidden;
  margin-bottom: 20px;
}

.sidebar-area p {
  font-size: 1.25rem;
  font-weight: bold;
  padding-bottom: 16px;
}

/*.sidebar-area h2.widgettitle {
  padding: 24px 0 8px;
}*/

.ez-toc-title {
  font-size: 1.25rem;
  font-weight: bold;
}

.post p {
  text-align: justify;
}

.alignleft {
  padding: 0;
  margin: 0 24px 0 0;
  display: inline;
  float: left;
}

.alignright {
  padding: 0;
  margin: 0 0 0 24px;
  display: inline;
  float: right;
}

.aligncenter,
.aligncenter img {
  padding: 0;
  display: block;
  margin: 0 auto;
}

/*Table Design*/
table, th, td {
  border: 1px solid #dedede;
}

table {
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 16px;
}

th, td {
  text-align: left;
  padding: 4px 16px;
}

tr:nth-child(even) {
  background: rgba(190, 190, 190, 0.1);
}

/*********************
** Kategorie Design **
*********************/

.categories {
  padding: 8px 16px;
}

.categories ul {
  padding: 8px 0 16px 0;
}

.artic__post img {
  height: 100%;
  width: auto;
}

.artic__post__info {
  border-radius: 8px;
  box-shadow: 0 4px 8px 0 rgb(46 43 56 / 16%), 0 8px 16px 0 rgb(46 43 56 / 8%), 0 16px 32px 0 rgb(46 43 56 / 4%);
  overflow: hidden;
  padding-bottom: 8px;
}

.artic__intro {
  text-align: initial;
}

.artic__post {
  border-radius: 8px;
  box-shadow: 0 4px 8px 0 rgb(46 43 56 / 16%), 0 8px 16px 0 rgb(46 43 56 / 8%), 0 16px 32px 0 rgb(46 43 56 / 4%);
  margin: 0 0 24px;
  overflow: hidden;
  background: #fff;
}

.artic__post p,
.artic__post__info p {
  padding: 0 16px;
}

.artic__post__info h2,
.artic__post__info h3 {
  padding: 16px 16px 8px;
}

section.intro .artic__post__info h2,
section.intro .artic__post__info h3 {
  margin: 0;
}

.artic__post__info h1 {
  padding: 16px 16px 8px;
}

.intro .artic__post h3 {
  padding: 16px;
  color: rgb(54, 62, 74);
  margin: 0;
}

.button {
  margin: 16px;
  float: right;
  background: rgb(238, 205, 86);
  color: rgb(54, 62, 74);
  padding: 8px 16px;
  border-radius: 8px;
  font-weight: bold;
  font-size: 14px;
  text-transform: uppercase;
}

.button::before {
  content: 'Weiter';
}

a.page-numbers {
  color: rgb(54, 62, 74);
}

.col_thumb img {
  width: 100%;
  transition: all 0.3s linear;
  object-fit: cover;
  max-height: 240px;
}

/****************** 
** Search Design **
******************/

.info__div {
  margin-bottom: 2em;
}

.spacing {
  margin-top: 3em;
}

.spacer {
  margin-bottom: 1.5em;
  height: fit-content;
}

.output {
  margin-bottom: 64px;
}

.marg__zero {
  margin: 0;
}

.thumb img {
  border-radius: 8px;
  height: 100%;
  max-height: 200px;
  object-fit: cover;
  transition: all 0.3s linear;
}

/********************** 
** Pagination Design **
**********************/
.pagination {
  display: inline-block;
  margin-bottom: 8px;
}

.pagination a,
.pagination span {
  border-radius: 5px;
  border: 1px solid #ddd;
  padding: 8px 16px;
  text-decoration: none;
}

.pagination span.current {
  background-color: rgb(54, 62, 74);
  color: rgb(238, 205, 86);
}

.pagination a:hover:not(.active) {
  background-color: #ddd;
}

/**************************** 
** Impressum + Datenschutz **
****************************/
.container .data {
  margin-top: 50px;
}
.container .data h1 {
  text-align: center;
  margin-bottom: 48px;
  text-decoration: underline;
}
.container .data h2 {
  margin: 15px 0;
}
.container .data h3,
.container .data h4 {
  margin: 10px 0;
}
.container .data p {
  text-align: justify;
  padding-bottom: 20px;
}
.container .data ul {
  padding-inline-start: 20px;
}
.container .data ul,
.container .data li {
  list-style-type:disc;
  list-style-position:inside;
}

/******************* 
** Desktop Design **
*******************/

@media (min-width: 864px) {
  header {
    background: none;
  }
  
  .header__area {
    margin-bottom: 0;
    width: 100%;
    display: inline-block;
  }

  .header__area::before {
    display: table;
    content: '';
  }

  .nav-left {
    float: left;
    max-width: 55px;
  }

  .logo img {
    width: 100%;
  }

  .nav-right {
    margin: 20px 0 0 16px;
    position: relative;
    float: left;
  }

  .hero__title {
    font-size: 2.5rem;
  }

  .hero__text {
    font-size: 0.9rem;
    letter-spacing: 5px;
    text-align: left;
  }

 .nav-toggle {
    display: none;
 }

 .nav {
    visibility: visible;
    width: 100%;
    height: auto;
    background: #f93327;
    padding: .5em 0;
    border-top: 2px solid #CC1D22;
    border-bottom: 2px solid #CC1D22;
 }

 .menu,
 .main-navigation {
    display: flex;
    justify-content: left;
    align-items: center;
    margin: 0;
    padding: 0;
 }

 .menu li,
 .main-navigation li {
    margin-bottom: 0;
    flex-basis: content;
    padding-bottom: 0;
    min-height: 30px;
    line-height: 30px;
    position: relative;
 }
 
 .menu > *,
 .main-navigation > * {
    width: 100%;
    overflow: visible;
 }

 .menu li + li,
 .main-navigation li + li {
  border-left: 1px solid #772318;
 }

 .menu li,
 .menu li:after,
 .menu li:before,
 .main-navigation li,
 .main-navigation li:after,
 .main-navigation li:before {
  transition: all .5s;
 }

 .menu li:hover,
 .main-navigation li:hover {
  background-color: #cc2f22;
 }

 .sub-menu li + li {
  border: none;
  border-top: 1px solid #772318;
 }

 .menu li:hover .sub-menu,
 .main-navigation li:hover .sub-menu {
  display: block;
  position: absolute;
  z-index: 999;
  top: 100%;
  left: 0;
  width: 250px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
 }
 
 .sub-menu {
  background-color: #f93327;
  display: none;
 }

 .row {
    display: flex;
 }

 .col {
    width: 100%;
 }

 header {
    text-align: left;
 }

 .news-wrapper {
    justify-content: space-between;
    align-items: flex-start;
    gap: 2rem;
    align-content: stretch;
    align-items: stretch;
 }

 .news-box {
    width: 50%;
    max-width: 50%;
 }

 .news-box2 {
    width: 25%;
    max-width: 25%;
 }

 .news-box + .news-box {
    margin: 0 0 0 40px;
 }

 .news {
    gap: 5%;
 }

 .image {
    height: 110px;
    justify-content: center;
    align-content: center;
    transition: 0.5s ease-in-out;
 }

 .image:hover {
  transform: scale(1.05, 1.05);
 }

 .main-image {
  height: 70%;
 }

 .news-col {
    width: 32%;
 }

 .news-col-2 {
  width: 68%;
}

 .cats .cat {
    width: auto;
    max-width: 23%;
 }

 .menu li {
    font-size: .6rem;
  }

  body {
    font-size: .9rem;
    line-height: 1.4rem;
  }

  .intro .news-side .cat {
    padding: 8px 16px;
  }

  .news-text {
    max-height: 160px;
    overflow: hidden;
  }

  /*****************
  ** Cat Overview **
  ******************/
  .overview .cats .box {
    transition: all 0.5s;
  }

  .overview .cats .box:hover {
    transform: scale(1.03);
  }

  a.title img {
    transition: all 0.3s linear;
  }

  a.title:hover img {
    transform: scale(1.1);
  }
  

 /*********************
  ** Kategorie Design **
  *********************/

  .col_thumb {
    width: 30%;
    overflow: hidden;
    max-height: 240px;
  }

  .col_thumb img:hover {
    transform: scale(1.2);
  }

  .button:hover {
    background: rgb(54, 62, 74);
    color: rgb(238, 205, 86);
  }

  /********************
  ** Beitrags Design **
  ********************/

  /* like-posts - inherits base flexbox rules */
  .related-post {
    width: 31%;
  }


  /* Breadcrumb */
  .crumbs a:hover {
    color: rgb(238, 205, 86);
  }

  .post .article__box {
    margin-bottom: 0;
    width: 75%;
  }

  /* Sidebar */
  aside {
    width: 25%;
    min-width: 250px;
    max-width: 300px;
  }

  .post .content, 
  .content.cats-content {
    display: flex;
    gap: 24px;
  }

 .row.search {
  gap: 24px;
 }

  .content.cats-content aside {
    padding: 1.75rem 0;
  }

  /****************** 
  ** Search Design **
  ******************/

  .col-text {
    width: 70%;
  }

  .thumb {
    margin-right: 16px;
    width: 30%;
  }

}


@media (min-width: 940px) {
  .menu li {
    font-size: .6rem;
  }

  .news-text h3 {
    font-size: 16px;
  }
  
}

@media (min-width: 1225px) {
  .menu li {
    font-size: .8rem;
  }

  
}

@media (min-width: 1335px) {
  .menu li {
    font-size: .9rem;
  }

  .news-text {
  max-height: 115px;
  overflow: hidden;
}
  
}

/* ==========================================================================
   ACCESSIBILITY & MODERN FEATURES
   ========================================================================== */

/* Skip Link für Screen Reader */
.skip-link {
    position: absolute !important;
    top: -9999px;
    left: -9999px;
    z-index: 999999;
    padding: 8px 16px;
    background: #000;
    color: #fff;
    text-decoration: none;
    border-radius: 3px;
}

.skip-link:focus {
    top: 6px;
    left: 6px;
}

/* Screen Reader Text */
.screen-reader-text,
.visually-hidden {
    position: absolute !important;
    clip: rect(1px, 1px, 1px, 1px);
    padding: 0 !important;
    border: 0 !important;
    height: 1px !important;
    width: 1px !important;
    overflow: hidden;
}

/* Focus Management - ausgenommen Elemente mit bestehenden Focus-Styles */
*:focus:not(.nav-toggle):not(.menu a) {
    outline: 2px solid #f93327;
    outline-offset: 2px;
}

/* Spezifische Focus-Styles für Navigation */
.menu a:focus {
    outline: 2px solid #fff;
    outline-offset: 2px;
}

/* Modern Button Styles für Accessibility */
.read-more-button {
    font-size: 0.8rem;
    padding: 6px 12px;
    background: transparent;
    color: #f93327;
    text-decoration: none;
    display: inline-block;
    border: 1px solid #f93327;
    border-radius: 3px;
    float: right;
    margin-top: 10px;
    transition: all 0.3s ease;
}

.read-more-button:hover,
.read-more-button:focus {
    background: #f93327;
    color: white;
    text-decoration: none;
}

/* Navigation Toggle - Preserve original styling */
.nav-toggle:focus {
    outline: 2px solid #f93327;
    outline-offset: 2px;
}

/* Navigation Active State - Erweitert bestehende Styles */
.nav-toggle--active {
    opacity: 0.75;
}

/* Footer keeps original styling */

/* Lazy Loading Image Enhancement - Disabled for related posts */
/* img[loading="lazy"] {
    opacity: 0;
    transition: opacity 0.3s ease;
}

img.loaded {
    opacity: 1;
} */

/* All related post images always visible */
.related-post img,
.related-post picture,
.related-post picture img {
    opacity: 1 !important;
    display: block !important;
    visibility: visible !important;
}

/* Removed problematic CSS Grid that interfered with existing layouts */

/* Typography keeps original theme styling */

/* Container Queries removed to preserve original layout */

/* Reduced Motion Support */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* High Contrast Mode Support */
@media (prefers-contrast: high) {
    * {
        border-color: currentColor;
    }
    
    a {
        text-decoration: underline;
    }
}