@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap');

* {
  margin: 0;
  padding: 0;
  font-family: "Noto Sans", sans-serif;
}

html {
  scroll-padding-top: 200px;
}

main p {
  margin-bottom: 0.2rem;
}

main a,
.frame a[class=""],
.frame a:not([class]) {
  color: #303030;
  text-decoration: none;
}

h1 {
  font-size: clamp(2.2rem, 3.2vw, 3.2rem);
  font-weight: 600;
  color: #222;
  position: relative;
}

h2 {
  font-size: clamp(1.8rem, 2.2vw, 2.2rem);
  font-weight: 400;
  color: #222;
  position: relative;
}

.mobilehead,
.timeline-item-date,
#pageid1 .logomenu,
#pageid1 .back-button,
slider h2 {
  display: none;
}

.hellgrau {
  background: #e5e5e5;
}

.breadcrumps p,
.rootline p {
  text-transform: uppercase;
}

.rootline p {
  margin-bottom: 0;
  padding: 8px 0;
  font-size: 1rem;
}

.skip-link {
  position: absolute;
  top: -40px;
  left: 0;
  z-index: 1000;
  padding: 8px 16px;
  background: #000;
  color: #fff;
  text-decoration: none;
  font-weight: bold;
}

.skip-link:focus {
  top: 10px;
}



.slick-slide img {
  display: block;
  width: 100%;
  margin: 0 auto;
}

.slick-slide figure .caption {
  position: absolute;
  top: 35%;
  z-index: 10000;
  width: 100%;
  margin: 0 auto;
  padding-top: 0.25rem;
  color: #fff;
  font-size: 5rem;
  font-weight: bold;
  text-align: center;
  word-wrap: break-word;
  opacity: 0.8;
}

.slick-prev,
.slick-next {
  z-index: 100000;
}

.slick-prev {
  left: 25px !important;
}

.slick-next {
  right: 25px !important;
}

.slick-next::before,
.slick-prev::before {
  color: var(--stwv-blue, #0089cc) !important;
  font-size: 2.5rem;
}

ul.slick-dots {
  bottom: 3% !important;
}

.slider {
  display: table !important;
  position: relative;
  width: 100% !important;
  table-layout: fixed !important;
  background: #888;
}

.slider .container {
  max-width: inherit !important;
  width: 100% !important;
}

.slider .container,
.slider .container .row,
.slider .container .col {
  padding: 0;
  margin: 0;
}

.t3s-slickslider .slick-slide {
  padding: 0.1%;
}

.frame-custom-22 .gallery-item img {
  width: 80%;
}

.frame-custom-23 .gallery-item img {
  width: 60%;
}

.frame-custom-24 .gallery-item img {
  width: 40%;
}

.frame-custom-25 .gallery-item img {
  width: 20%;
}

.frame-custom-26 .gallery-item img {
  width: 10%;
}

.frame-custom-27 .gallery-item img {
  float: left;
  width: 80%;
}

.frame-custom-28 .gallery-item img {
  float: left;
  width: 60%;
}

.frame-custom-29 .gallery-item img {
  float: left;
  width: 40%;
}

.frame-custom-30 .gallery-item img {
  float: left;
  width: 20%;
}

.frame-custom-31 .gallery-item img {
  float: left;
  width: 10%;
}

.frame-custom-10 .image {
  max-width: 50%;
}

.frame-custom-11 .image {
  max-width: 65%;
}

.frame-custom-12 .image {
  max-width: 80%;
}

main .frame-custom-50 .gallery-item img {
  border-radius: 46px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
}

.frame-background-primary h2 {
  color: #fff !important;
}

.frame-space-before-extra-small {
  display: block;
  margin-top: 0.5%;
}

.frame-space-before-small {
  display: block;
  margin-top: 3% !important;
}

.frame-space-before-medium {
  display: block;
  margin-top: 6% !important;
}

.frame-space-before-large {
  display: block;
  margin-top: 9%;
}

.frame-space-after-extra-small {
  display: block;
  margin-bottom: 0.5%;
}

.frame-space-after-small {
  display: block;
  margin-bottom: 3%;
}

.frame-space-after-medium {
  display: block;
  margin-bottom: 6%;
}

.frame-space-after-large {
  display: block;
  margin-bottom: 9%;
}

.container .row .col .row .container,
.container .row .col .row .container .row,
.container .row .col .row .container .row .col {
  padding: 0;
  margin: 0;
}

.kopfbereich .textmedia,
.footertext .textmedia,
.hunderter .textmedia {
  gap: 0;
}

.logoimage .gallery-item figure {
  max-width: 65%;
  margin: 0 auto;
}

.hunderter {
  max-width: 100% !important;
  padding: 0 !important;
  z-index: 0;
}

.hunderter .megazeil,
.hunderter .ce-outer,
.hunderter .ce-row,
.hunderter .ce-gallery,
.hunderter .ce-textpic,
.hunderter .image {
  width: 100% !important;
}

.hunderter .container,
.hunderter .frame-container-default {
  max-width: 100%;
  padding: 0 !important;
  margin: 0;
}

.hunderter .frame {
  width: 100%;
  height: auto;
  margin: 0;
  padding: 0;
}

.hunderter .ce-gallery[data-ce-columns="3"] .ce-column {
  width: 33.33333% !important;
}

.hunderter .ce-gallery img {
  width: 100%;
  padding: 0;
}

.hunderter .ce-column {
  padding: 0 !important;
}

.hunderter hr {
  height: 0;
  padding: 2% 0;
  background: none !important;
}

.textmedia,
.textpic {
  gap: 0 2rem;
}

.tx-powermail .col-sm-2,
.powermail_fieldset .col-md-6 {
  width: 100%;
}

.powermail_tab_navigation .pull-right {
  float: right;
}

.powermail_tab_navigation .pull-left {
  float: left;
}

.btn-group {
  width: 100%;
}

legend {
  margin-top: 40px;
  font-size: 1.5rem;
}

.carousel-item-bodytext a {
  padding: 6px 14px;
  background-color: #216096;
  color: #fff !important;
  border-radius: 4px;
}

.carousel-item-bodytext a:hover {
  background-color: #009770 !important;
}

.kopfbereich .submitbutt {
  float: left;
}

span.resetbutt a {
  max-width: 180px !important;
}

span.submitbutt input {
  box-sizing: border-box !important;
  display: inline-block !important;
  min-width: 100px !important;
  max-width: 120px !important;
  margin: 0 0 0 10px !important;
  padding: 0.85em 0.2rem !important;
  border: 2px solid #262626 !important;
  border-radius: 1.5em !important;
  background-color: #fff !important;
  color: #262626 !important;
  font-size: 0.888em !important;
  line-height: 1em !important;
  font-weight: 400 !important;
  text-align: center !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: all 0.15s !important;
}

.button-wrapper {
  text-align: right;
}

.back-button,
.btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 20px;
  padding: 5px 18px;
  border: none;
  border-radius: 12px;
  background: #4a4a4a;
  color: #fff;
  font-size: 0.8rem;
  font-weight: 500;
  transition: all 0.25s ease;
}

.back-button:hover,
.btn-primary:hover {
  background: #2f2f2f;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.back-button:focus,
.btn-primary:focus {
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.15);
}

.btn-primary::after {
  content: "→";
  margin-left: 8px;
  font-size: 1.3rem;
  transition: transform 0.25s ease;
}

.btn-primary:hover::after {
  transform: translateX(6px);
}


/* =========================================================
   HOLZ BACKGROUND (GLOBAL CLASS)
   ========================================================= */

.holzbg{
  position: relative;
  color:#fff;

  background:
    linear-gradient(rgba(20,12,6,.75), rgba(20,12,6,.9)),
    repeating-linear-gradient(
      0deg,
      rgba(255,255,255,.03) 0 1px,
      transparent 1px 8px
    ),
    linear-gradient(135deg, #5a331a 0%, #3a2314 50%, #1f140c 100%);

  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    inset 0 -12px 25px rgba(0,0,0,.35);
}

/* Holzmaserung */
.holzbg::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;

  background:
    repeating-linear-gradient(
      92deg,
      rgba(255,255,255,.04) 0 2px,
      rgba(0,0,0,.04) 2px 6px,
      transparent 6px 16px
    );

  opacity:.35;
  mix-blend-mode:overlay;
}

/* =========================================================
   WEISSE TYPOGRAFIE
   ========================================================= */

.holzbg,
.holzbg p,
.holzbg span,
.holzbg li,
.holzbg strong{
  color:#fff;
}

/* Links */
.holzbg a{
  color:#fff;
  text-decoration:none;
  transition:opacity .2s ease;
}

.holzbg a:hover{
  opacity:.75;
  text-decoration:underline;
}

/* Überschriften */
.holzbg h1,
.holzbg h2,
.holzbg h3,
.holzbg h4{
  color:#fff;
  font-weight:700;
}

/* Bilder optional weiß */
.holzbg img.icon-white{
  filter: brightness(0) invert(1);
  opacity:.9;
}


/* =========================================================
   DUNKLE HOLZ-BUTTONS
   ========================================================= */

#s5-1, #s5-2, #s5-3, #s5-4{
  padding:20px;
}

#s5-1 .frame,
#s5-2 .frame,
#s5-3 .frame,
#s5-4 .frame{
  height:100%;
  min-height:300px;
  border-radius:28px;
  padding:34px 22px 30px;

  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;

  background:
    linear-gradient(rgba(25,13,5,.16), rgba(25,13,5,.28)),
    repeating-linear-gradient(
      0deg,
      rgba(255,255,255,.035) 0px,
      rgba(255,255,255,.035) 1px,
      transparent 1px,
      transparent 9px
    ),
    linear-gradient(135deg, #7a3b12 0%, #4a2814 45%, #2b180d 100%);

  box-shadow:
    0 24px 45px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.18),
    inset 0 -18px 28px rgba(0,0,0,.28);

  overflow:hidden;
  position:relative;
  transition:transform .25s ease, box-shadow .25s ease, filter .25s ease;
}

/* Holz-Maserung */
#s5-1 .frame::before,
#s5-2 .frame::before,
#s5-3 .frame::before,
#s5-4 .frame::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;

  background:
    radial-gradient(circle at 18% 78%, rgba(0,0,0,.25) 0 8px, transparent 9px),
    radial-gradient(circle at 78% 22%, rgba(255,255,255,.08) 0 7px, transparent 8px),
    repeating-linear-gradient(
      92deg,
      rgba(255,255,255,.055) 0 2px,
      rgba(0,0,0,.05) 2px 5px,
      transparent 5px 18px
    );

  opacity:.55;
  mix-blend-mode:overlay;
}

/* Hover */
#s5-1 .frame:hover,
#s5-2 .frame:hover,
#s5-3 .frame:hover,
#s5-4 .frame:hover{
  transform:translateY(-8px);
  box-shadow:
    0 32px 60px rgba(0,0,0,.35),
    inset 0 1px 0 rgba(255,255,255,.22),
    inset 0 -18px 30px rgba(0,0,0,.32);
  filter:saturate(1.08);
}

/* TYPO3 Innenabstände entfernen */
#s5-1 .frame-group-container,
#s5-2 .frame-group-container,
#s5-3 .frame-group-container,
#s5-4 .frame-group-container,
#s5-1 .frame-container,
#s5-2 .frame-container,
#s5-3 .frame-container,
#s5-4 .frame-container,
#s5-1 .frame-inner,
#s5-2 .frame-inner,
#s5-3 .frame-inner,
#s5-4 .frame-inner{
  padding:0 !important;
  width:100%;
}

/* Icon sichtbar + weiß */
#s5-1 .image,
#s5-2 .image,
#s5-3 .image,
#s5-4 .image{
  margin:0 0 20px !important;
}

#s5-1 img,
#s5-2 img,
#s5-3 img,
#s5-4 img{
  display:block;
  width:150px !important;
  max-width:60%;
  height:auto !important;
  margin:0 auto 20px;

  filter:brightness(0) invert(1);
  opacity:.96;
}

/* Text */
#s5-1 p,
#s5-2 p,
#s5-3 p,
#s5-4 p{
  margin:0 0 10px;
  color:#fff;
  font-size:22px;
  font-weight:800;
  line-height:1.22;
  text-shadow:0 2px 8px rgba(0,0,0,.35);
}

#s5-1 p:last-child,
#s5-2 p:last-child,
#s5-3 p:last-child,
#s5-4 p:last-child{
  margin-bottom:0;
}

#s5-1 a,
#s5-2 a,
#s5-3 a,
#s5-4 a{
  color:#fff;
  text-decoration:none;
  font-size:18px;
  font-weight:800;
}

#s5-1 a:hover,
#s5-2 a:hover,
#s5-3 a:hover,
#s5-4 a:hover{
  text-decoration:underline;
}

/* leichte Farbvariation je Karte */
#s5-2 .frame{
  background:
    linear-gradient(rgba(20,12,6,.18), rgba(20,12,6,.30)),
    repeating-linear-gradient(0deg, rgba(255,255,255,.03) 0 1px, transparent 1px 9px),
    linear-gradient(135deg, #5f3c24 0%, #3c2819 50%, #22160d 100%);
}

#s5-3 .frame{
  background:
    linear-gradient(rgba(20,12,6,.18), rgba(20,12,6,.30)),
    repeating-linear-gradient(0deg, rgba(255,255,255,.03) 0 1px, transparent 1px 9px),
    linear-gradient(135deg, #6a4528 0%, #432b18 50%, #24170d 100%);
}

#s5-4 .frame{
  background:
    linear-gradient(rgba(20,12,6,.18), rgba(20,12,6,.30)),
    repeating-linear-gradient(0deg, rgba(255,255,255,.03) 0 1px, transparent 1px 9px),
    linear-gradient(135deg, #735034 0%, #49311f 50%, #27190f 100%);
}

/* Responsive */
@media (max-width:768px){
  #s5-1, #s5-2, #s5-3, #s5-4{
    padding:12px;
  }

  #s5-1 .frame,
  #s5-2 .frame,
  #s5-3 .frame,
  #s5-4 .frame{
    min-height:260px;
    padding:28px 18px;
  }

  #s5-1 img,
  #s5-2 img,
  #s5-3 img,
  #s5-4 img{
    width:120px !important;
  }

  #s5-1 p,
  #s5-2 p,
  #s5-3 p,
  #s5-4 p{
    font-size:19px;
  }

  #s5-1 a,
  #s5-2 a,
  #s5-3 a,
  #s5-4 a{
    font-size:16px;
  }
}

.card-title {
    display: none;
}

/* =========================================
   BLOCKQUOTE / ZITAT
   modern, sauber, Holz-Zirkus
   ========================================= */

blockquote {
  position: relative;
  overflow: hidden;

  max-width: 1080px;
  margin: clamp(2.5rem, 5vw, 4rem) auto;
  padding: clamp(2rem, 4vw, 3rem) clamp(2rem, 5vw, 4rem);

  border: 0;
  border-radius: 0 28px 28px 0;

  background:
    linear-gradient(90deg, #7a5134 0 8px, transparent 8px),
    linear-gradient(135deg, rgba(122, 81, 52, 0.10), rgba(122, 81, 52, 0.025) 42%, rgba(255, 255, 255, 0) 100%),
    #fbfaf7;

  box-shadow:
    0 22px 60px rgba(38, 26, 17, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);

  color: #2d2d2d;
  font-size: clamp(1.2rem, 1.45vw, 1.48rem);
  font-weight: 400;
  line-height: 1.65;
}

/* dezentes Quote-Zeichen */
blockquote::before {
  content: "“";
  position: absolute;
  top: clamp(1rem, 2vw, 1.5rem);
  right: clamp(1.25rem, 3vw, 2.5rem);

  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(4rem, 7vw, 6.5rem);
  line-height: 1;

  color: rgba(122, 81, 52, 0.13);
  pointer-events: none;
}

/* kleine moderne Akzentlinie unten */
blockquote::after {
  content: "";
  position: absolute;
  left: clamp(2rem, 5vw, 4rem);
  bottom: clamp(1.3rem, 2.5vw, 2rem);

  width: 90px;
  height: 2px;

  background: linear-gradient(90deg, #7a5134, rgba(122, 81, 52, 0));
  opacity: 0.65;
}

blockquote p {
  position: relative;
  z-index: 1;

  max-width: 900px;
  margin: 0;

  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: -0.01em;
}

blockquote p + p {
  margin-top: 1.15rem;
}

blockquote em,
blockquote cite,
blockquote footer {
  position: relative;
  z-index: 1;

  display: inline-block;
  margin-top: 0.35rem;

  color: #6b5547;
  font-size: clamp(1rem, 1.05vw, 1.1rem);
  font-style: italic;
  font-weight: 400;
  line-height: 1.4;
}

/* Links im Zitat */
blockquote a {
  color: inherit;
  text-decoration-color: rgba(122, 81, 52, 0.5);
  text-underline-offset: 0.22em;
}

blockquote a:hover,
blockquote a:focus-visible {
  color: #7a5134;
  text-decoration-color: currentColor;
}

/* Mobile */
@media (max-width: 767.98px) {
  blockquote {
    margin: 2rem auto;
    padding: 1.6rem 1.35rem 2rem 1.55rem;
    border-radius: 0 18px 18px 0;

    background:
      linear-gradient(90deg, #7a5134 0 6px, transparent 6px),
      linear-gradient(135deg, rgba(122, 81, 52, 0.10), rgba(122, 81, 52, 0.025)),
      #fbfaf7;

    font-size: 1.08rem;
    line-height: 1.6;
  }

  blockquote::before {
    top: 0.8rem;
    right: 1rem;
    font-size: 4rem;
  }

  blockquote::after {
    left: 1.55rem;
    bottom: 1.25rem;
    width: 64px;
  }

  blockquote em,
  blockquote cite,
  blockquote footer {
    font-size: 0.98rem;
  }
}