/* Klaro
*********************************/
.klaro {
  --green1: var(--red);
}
.klaro a {
  font-weight: 700;
}
.consent-needed {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding:var(--bs-gutter-x);
  color: #000;
}

/* Jiggy, Footer, Kontakt
*********************************/
.site-footer-contact .row > * > *:last-child {
  margin-bottom: 0;
}
.site-footer-contact form {
  margin-bottom: 0;
}
.site-footer-contact .form-control {
  border-color: rgba(255,255,255,.4);
  background-color: transparent;
  color:#fff;
  transition: border-color .2s ease;
}
.site-footer-contact .form-control:focus {
  border-color:#fff;
}
.site-footer-contact textarea {
  height: calc((3 * (2.6rem + 2px)) + (2 * (1.3rem)));
}
.site-footer-contact ::placeholder {
  color:#fff;
}
.site-footer-contact input[type=submit] {
  border-color: #fff;
  color:#fff;
  background-color: transparent;
  transition: background-color .2s ease, color .2s ease;
}
.site-footer-contact input[type=submit]:hover {
  border-color: #fff;
  color:var(--red);
  background-color: #fff;
}

/* Jiggy, Bild
*********************************/
.jiggy-image {
  position: relative;
}
.jiggy-image .editlink {
  position: absolute;
  left: 0;
  top: 0;
}
.jiggy-image__image img {
  display: block;
  width: 100%;
  height: auto;
}

/* Seite, Standard
*********************************/
.page {
  padding-top: var(--section-padding);
  padding-bottom: var(--section-padding);
}
.page__main {
  max-width:58rem;
  margin-left: auto;
  margin-right: auto;
}
.page__articles:not(:empty) {
  padding-top: var(--section-padding);
}
.page__cta .container {
  display: flex;
  justify-content: center;
}
.page__ctas {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 1rem;
}
.page--beige {
  background: var(--beige);
}
.page--red {
  background-color: var(--red);
  color:#fff;
}
.page--red a {
  color:#fff;
  /*text-decoration: underline;*/
}
.page--red .form-control {
  color:#fff;
  background-color: var(--red);
  border-color: rgba(255,255,255,.5);
  transition: border-color .2s ease;
}
.page--red .form-control:focus {
  border-color: #fff;
  background-color: transparent;
}
.page--red ::placeholder {
  color: rgba(255,255,255,.5);
}
/* Seite, Text/Bild, klein
*********************************/
.page-textimage__content {
  background-color: var(--red);
  color:#fff;
  padding:2rem;
}
.page-textimage:last-child {
  margin-bottom: var(--section-padding);
}
@media only screen and (min-width : 992px) {
  .page-textimage__content {
    padding:4rem;
  }
  .page-textimage__contentinner {
    width:70%;
  }
  .page-textimage__image {
    padding-top:4rem;
  }
  .page-textimage__image img {
    margin-left:-60%;
    width: 160%;
    max-width: 160%;
  }
}

/* Seite, Text/Carousel, klein
*********************************/
.page-textimage__controls {
  margin-top:var(--bs-gutter-x);
  display: flex;
  gap:var(--bs-gutter-x);
}
.page-textimage__controls .carousel-control {
  position: static;
  color: #fff;
  transform: none;
  display: block;
}
.page-textimage__controls .carousel-control:hover {
  color: #fff;
}
.page-textimage__controls .carousel-control:focus {
  color: #fff;
}
.page-textimage__carousel .carousel-inner {
  margin:0;
}
.page-textimage__carousel .carousel-item img {
  display: block;
  width: 100%;
  height:auto;
}
@media only screen and (min-width : 992px) {
  .page-textimage__carousel {
    padding-top:4rem;
    margin-left:-60%;
    width: 160%;
    max-width: 27rem;
  }
}

/* Seite, Text/Bild, gross
*********************************/
.page-textimagelarge {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-areas: 'image'
                       'content'
                       'articles';
}
.page-textimagelarge__image {
  grid-area: image;
}
.page-textimagelarge__image img {
  width:auto;
  height:auto;
  max-width:100%;  
  max-height:33rem;
  display: block;
}
.page-textimagelarge__content {
  grid-area: content;
  padding-left:var(--bs-gutter-x);
  padding-right:var(--bs-gutter-x);
  padding-top:calc(var(--section-padding) / 2);
  padding-bottom: var(--section-padding);
}
.page-textimagelarge__articles {
  padding-bottom: var(--section-padding);
}

@media only screen and (min-width : 768px) {
  .page-textimagelarge {
    grid-template-columns: 50% calc(var(--container-width) / 2) auto;
    grid-template-areas: 'image content .'
                         'articles articles articles';
  }
  .page-textimagelarge:nth-child(odd) {
    grid-template-columns: auto calc(var(--container-width) / 2) 50%;
    grid-template-areas: '. content image'
                         'articles articles articles';
  }
  .page-textimagelarge:nth-child(even) .page-textimagelarge__image {
    justify-self: end;
  }
  .page-textimagelarge:nth-child(even) .page-textimagelarge__content {
    /*padding-left:15%;*/
  }
  .page-textimagelarge:nth-child(odd) .page-textimagelarge__content {
    /*padding-right:15%;*/
  }
  .page-textimagelarge__articles {
    grid-area: articles;
  }
}

/* Seite, Text/Text/Bild
*********************************/
.page-texttextimage .page__image {
  margin: calc(var(--section-padding) / 2) 0;
}

/* Seite, Zitat
*********************************/
.page-cite .row {
  align-items: center;
}

/* Seite, Zitat
*********************************/
.page-contact textarea {
  height: calc((3 * (2.6rem + 2px)) + (2 * (1.3rem)));
}
.page-contact .alert {
  min-height: 100%;
  border: solid #fff 1px;
  background-color: var(--red);
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  margin-bottom: var(--bs-gutter-y);
}
.page-contact .alert__icon {
  font-size:2.5rem;
  display: block;
  margin-bottom:1rem;
}

/* Artikel, Rechtsgebiete
*********************************/
.articles-services .row {
  --bs-gutter-y: var(--bs-gutter-x);
}
.article-service {
  text-align: center;
}
.article-service__image {
  margin-bottom:1rem;
  display:grid;
}
.article-service__image img {
  margin-left:auto;
  margin-right: auto;
  display: block;
  width: 5.5556rem;
  height:auto;
  grid-area: 1/-1;
  transition: opacity .2s ease;
}
.article-service__image img:nth-child(2) {
  opacity: 0;
}
.article-service:hover .article-service__image img:nth-child(1) {
  opacity: 0;
}
.article-service:hover .article-service__image img:nth-child(2) {
  opacity: 1;
}
.article-service__headline {
  margin:0;
}
.article-service__headline a {
  color: #000;
}
.article-service__headline a:hover {
  text-decoration: none;
}

/* Artikel, Downloads
*********************************/
.articles-downloads {
  list-style: none;
  padding:0;
  margin-bottom: 0;
  --bs-gutter-y: var(--bs-gutter-x);
}
.article-download {
  /*margin:0 0 1.5rem 0;*/
}
.article-download__link {
  background:var(--beige-light);
  /*aspect-ratio: 1/1;*/
  height: 0;
  padding-bottom: 50%;
  position: relative;
  color:#000;
  display:grid;
  transition: color .2s ease, background-color .2s ease;
}
.article-download__inner {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  padding:1.5rem;
  color:#000;
  display:grid;
  transition: color .2s ease, background-color .2s ease;
}
.article-download__inner:hover {
  text-decoration: none;
  color:#fff;
  background-color: var(--red);
}
.article-download__title {
  font-weight: 700;
  grid-area: 1/-1;
  justify-self: start;
  align-self: start;
}
.article-download__icon {
  grid-area: 1/-1;
  justify-self: start;
  align-self: end;
  font-size: 2rem;
}
@media only screen and (min-width : 580px) {
  .article-download__link {
    padding-bottom: 100%;
  }
}

/* Seite, Anwaelte
*********************************/
.page-lawyers {
  padding-top: 0;
  padding-bottom: 0;
}
.page-lawyers .page__main {
  background:var(--beige);
  padding-top: var(--section-padding);
  padding-bottom: var(--section-padding);
}

/* Artikel, Anwaelte
*********************************/
.articles-lawyers {
  background:#fff;
  /*padding-bottom: var(--section-padding);*/
}
.articles-lawyers__inner {
  /*margin-top: calc(var(--section-padding) * -1);*/
  position: relative;
  top: calc(var(--section-padding) * -1);
}
.article-lawyer {
  margin-bottom: calc(var(--section-padding) / 2);
}
.article-lawyer .row {
  align-items: center;
}
.article-lawyer .modal .row {
  align-items: start;
}
.article-lawyer__contentinner {
  max-width:40rem;
  margin-left:auto;
  margin-right:auto;
}
.article-lawyer__heading {
  font: var(--font-h1);
}
@media only screen and (min-width : 768px) {
  .article-lawyer:nth-child(even) .article-lawyer__content {
    order: -1;
  }  
}

/* Artikel, Team
*********************************/
.articles-team .row {
  --bs-gutter-y: 1.5rem;
}
.article-team__inner {
  background:#fff;
  height: 100%;
}
.article-team__image img {
  display:block;
  width:100%;
  height:auto;
}
.article-team__content {
  padding:1rem;
  padding-top: 1.5rem;
  line-height: 1.4;
}
.article-team__content h2,
.article-team__content h3 {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4;
  margin:0;
}
.article-team__content > :last-child {
  margin-bottom: 0;
}

/* Artikel, Bewertungen
*********************************/
.article-review {
  break-inside: avoid;
  margin-bottom: var(--bs-gutter-x);
  border-bottom: solid var(--beige-light) 1px;
}
.article-review__inner {
  padding-bottom:var(--bs-gutter-x);
}
.article-review__stars {
  font-size:1.5rem;
  color:var(--red);
}
.article-review__stars > * {
  color:var(--beige-medium);
}
.article-review__stars[data-stars="1"] > *:nth-child(-n+1) {
  color:var(--beige-dark);
}
.article-review__stars[data-stars="2"] > *:nth-child(-n+2) {
  color:var(--beige-dark);
}
.article-review__stars[data-stars="3"] > *:nth-child(-n+3) {
  color:var(--beige-dark);
}
.article-review__stars[data-stars="4"] > *:nth-child(-n+4) {
  color:var(--beige-dark);
}
.article-review__stars[data-stars="5"] > *:nth-child(-n+5) {
  color:var(--beige-dark);
}
@media only screen and (min-width : 768px) {
  .articles-reviews .container {
    columns: 2;
    column-gap: calc(var(--bs-gutter-x) * 2);
    column-rule: solid var(--beige-light) 1px;
  }  
  .article-review {
    margin-left:calc(var(--bs-gutter-x) * -1);
    margin-right:calc(var(--bs-gutter-x) * -1);
  }
  .article-review__inner {
    padding-left:var(--bs-gutter-x);
    padding-right:var(--bs-gutter-x);
  }
}
@media only screen and (min-width : 992px) {
  .articles-reviews .container {
    columns: 3;
  }
}

/* Artikel, Tabs
*********************************/
.articles-tabs {
  max-width: calc(58rem + var(--bs-gutter-x) * 2);
  margin-left: auto;
  margin-right: auto;
}
.article-tab__tab {
  background: transparent;
  border: 0;
  padding: 0;
  margin-bottom: var(--bs-gutter-x);
  text-align: left;
  font-weight: 700;
  color:var(--gray-medium);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: var(--bs-gutter-x);
  transition: color .2s ease;
}
.article-tab__tab::before {
  content: '';
  display: block;
  width: 1.8333rem;
  height: 1.8333rem;
  flex: 0 0 1.8333rem;
  border-radius: 50%;
  background: var(--gray-light);
  transition: background-color .2s ease;
}
.article-tab__tab.active {
  color: var(--red);
}
.article-tab__tab.active::before {
  background-color: var(--red);
}
.article-tab__ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}

/* Artikel, Blog
*********************************/
.articles-blog {
  max-width: calc(58rem + var(--bs-gutter-x) * 2);
  margin-left: auto;
  margin-right: auto;
}
.article-blog {
  margin-bottom:3rem;
}
.article-blog h2 {
  font-family:'Mulish',arial,sans-serif;;
}

/* Artikel, Blog, Teaser
*********************************/
.article-blogteaser__image {
  margin-bottom: var(--bs-gutter-x);
}
.article-blogteaser__image img {
  display:block;
  width:100%;
  height:auto;
}
.article-blogteaser__content h2 {
  font-family:'Mulish',arial,sans-serif;
}
.article-blogteaser__content a {
  color:#000;
}
.article-blogteaser.no-image h2 {
  border:solid var(--gray-medium) 2px;
  border-radius: .3rem;
  padding: 0.5rem;
}
@media only screen and (min-width : 768px) {
  .article-blogteaser__image {
    height: 0;
    padding-bottom: 100%;
  }
}

/* Artikel, Modal
*********************************/
.articles-modal {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: var(--bs-gutter-y);
}
.article-modal__button {
  /*
  display: block;
  background-color: transparent;
  color: #fff;
  border: 0;
  padding:0;
  */
  width: 100%;
  text-align: left;
}

/* Artikel, Sponsoring
*********************************/
.article-sponsoring {
  border-bottom: 1px solid var(--gray-light);
  padding-bottom: var(--bs-gutter-y);
}
.article-sponsoring:last-child {
  border: 0;
}
.article-sponsoring__image {
  aspect-ratio: 410 / 180;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 1rem;
}
.article-sponsoring__image img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
}
.article-sponsoring__content {
  text-align: center;
}
.article-sponsoring__content a {
  color: #000;
}
@media only screen and (min-width : 992px) {
  .article-sponsoring {
    border-bottom: 0;
    border-right: 1px solid var(--gray-light);
    padding-bottom: 0;
  }
  .article-sponsoring:nth-child(3n+3) {
    border-right: 0;
  }
}

/* Carousel
*********************************/
.carousel-inner {
  width: auto;
  overflow: hidden;
}
.carousel-control {
  opacity: 1;
  top:50%;
  bottom:auto;
  transform: translate(0,-50%);
  width:auto;
  font-size:2.5rem;
  color:var(--red);
  display: none;
}
.carousel-control:hover {
  color:var(--red);
  opacity: 1;
  background-color: transparent;
}
.carousel-control:focus {
  color:var(--red);
}
.carousel-control-prev:hover > span::before {
  content: '\e911';
}
.carousel-control-next:hover > span::before {
  content: '\e913';
}

.carousel-indicators {
  position: static;
  gap: 1rem;
  margin-top:1.5rem;
}
.carousel-indicators [data-bs-target] {
  width: 1rem;
  height:1rem;
  border-radius: 50%;
  border: solid var(--red) 2px;
  margin: 0;
  padding: 0;
  background:#fff;
  opacity: 1;
  transition: background-color .2s ease;
}
.carousel-indicators .active {
  background: var(--red);
}

@media only screen and (min-width : 992px) {
  .carousel-inner {
    margin-left:4rem;
    margin-right:4rem;
  }
  .carousel-control {
    display: block;
  }
  .carousel-indicators {
    display: none;
  }
}

/* Zitat
*********************************/
figure.cite {
  margin:0 auto;
  padding:0;
  max-width: 45rem;
}
figure.cite figcaption {
  margin:0;
  padding:0;
  color:var(--gray-dark);
  display: flex;
  gap: 3rem;
}
figure.cite figcaption a {
  color:#000;
}
figure.cite blockquote {
  font: var(--font-h1);
  color:var(--gray-dark);
}
figure.cite blockquote p::before {
  content:'\201E';
}
figure.cite blockquote p::after {
  content:'\201C';
}

/* Carousel, Kundenmeinugen
*********************************/
.carousel-customers {
  text-align: center;
}
.carousel-customers figure.cite blockquote {
  font: var(--font-h2);
}
.carousel-customers figure.cite figcaption {
  justify-content: center;
}

/* Akkordeon
*********************************/
.accordion {
  max-width: calc(58rem + 3rem);
  margin-left: auto;
  margin-right: auto;
}
.accordion-item {
  border: 0;
  background: transparent;
  margin-bottom: 2rem;
}
.accordion-button,
.accordion-button:not(.collapsed) {
  background: transparent;
  border: 0;
  border-bottom: solid var(--gray) 1px;
  padding-left:0;
  padding-right: 0;;
  font-size: 1rem;
  font-weight: 800;
  color: #000;
}
.accordion-button:hover,
.accordion-button:not(.collapsed):hover {
  background: transparent;
  color: #000;
}
.accordion-button:not(.collapsed):hover {
  color: var(--red);
}
.accordion-button:focus {
  box-shadow: none;
  border-color: var(--gray);
}
.accordion-body {
  padding-left: 0;
  padding-right: 0;
}
@media only screen and (min-width : 580px) {
  .accordion-button,
  .accordion-button:not(.collapsed) {
    font-size:1.3889rem;
  }
}

/* Modal
*********************************/
.modal {
  /*transition: backdrop-filter .2s ease;*/
  backdrop-filter: blur(2rem);
}
.modal-backdrop.show {
  opacity: .98;
}
@supports ((-webkit-backdrop-filter: none) or (backdrop-filter: none)) {
  .modal {
    backdrop-filter: blur(2rem);
  }
  .modal-backdrop.show {
    opacity: .85;
  }
}
.modal-footer {
  justify-content: center;
}

/* Modal, Rot
*********************************/
.modal--red  {
  background-color: var(--red);
}

/* Google Maps
*********************************/
.gmap {
  height: 23rem;
  background: var(--beige-medium)
}

/* Formulare
*********************************/
/*
fieldset {
  padding:0;
  border:0;
}

.required label:after,
.required-span span.label:after,
.required-span span.label-indent:after,
.required-span span.label-block:after {
  content:'*';
}
input[type=text],
input[type=password],
input[type=date],
input[type=datetime],
input[type=datetime-local],
input[type=email],
input[type=month],
input[type=number],
input[type=search],
input[type=tel],
input[type=time],
input[type=url],
input[type=week],
textarea { 
  width:100%;
  margin:0;
  padding:.5rem;
  border:solid var(--gray) 1px;
  border-radius: 5px;
}
input[type=text]:focus,
input[type=password]:focus,
input[type=date]:focus,
input[type=datetime]:focus,
input[type=datetime-local]:focus,
input[type=email]:focus,
input[type=month]:focus,
input[type=number]:focus,
input[type=search]:focus,
input[type=tel]:focus,
input[type=time]:focus,
input[type=url]:focus,
input[type=week]:focus,
textarea:focus {
  margin:0;
  border:solid var(--gray) 1px;
  border-radius: 5px;
}
textarea {
  height:12rem;
}
a.btn,
button,
input[type=submit] {
  display:inline-block;
  margin:0;
  padding:.5rem 1rem;
  border:solid var(--red) 2px;
  border-radius: calc(1.6rem + 1rem - 4px); /-* line-height + padding - border *-/
  min-width: 13rem;
  max-width: 100%;
  cursor:pointer;
  background:#fff;
  color: var(--red);
  text-decoration:none;
  font-weight: 700;
  transition:background-color .2s ease, color .2s ease;
}
input[type=submit]::-moz-focus-inner {
  border: 0;
}
a.btn:hover,
button:hover,
input[type=submit]:hover {
  background-color:var(--red);
  color:#fff;
}
.sendmail_emptyfield1 label,
label.sendmail_emptyfield1 {
  color:#f00;
}
.sendmail_emptyfield1 input.text,
input.sendmail_emptyfield1,
.sendmail_emptyfield1 textarea {
  border-color:#f00;
}
.message {
  border:solid #f6e468 1px;
  background:#ffffdb;
  padding:5px;
  margin:0 0 .8em 0;
}
*/