/*
Author: Lieps GmbH (Felix Voss) asdasdasdsssssssssssssssssssssssss
Author URI: https://www.lieps.de/
Version: 1.3
Tags: Bootstrap 5 - CSS
*/

:root {
  --orange: #e8720b;
  --brown: #584538;
  --white: #fff;
  --gray: #eeeeee;
  --primary: #e8720b;
  --secondary: #80a796;
  --success: #5ebd77;
  --warning: #e7bb41;
  --danger: #bf211e;
  --primary-font: 'Roboto Slab', serif;
  --text-font: 'Roboto', sans-serif;
  --body-font-family: var(--text-font);
  --body-font-weight: 400;
  --body-line-height: 3rem;
  --body-color: #55595c;
  --body-bg: #f7f7f7;
}

/* ### 01. CSS Reset/universelle CSS-Regeln ### */
html {
  font-size: 10px;
  margin-left: calc(100vw - 100%);
}
body {
  font-family: var(--text-font);
  line-height: var(--body-line-height);
  background: var(--body-bg);
  position: relative;
  height: 100%;
  color: var(--body-color);
}
nav {
  border-radius: 0 !important;
}
p {
  font-size: 1.8rem;
  margin-bottom: 3rem;
  line-height: var(--body-line-height);
  overflow: hidden;
}
p:empty {
  display: none;
}
li {
  font-size: 1.8rem;
}
h1 {
  font-size: 3.4em;
  margin-bottom: 3.2rem;
  margin-top: 3.2rem;
  font-family: var(--primary-font);
  color: var(--body-color);
  font-weight: 500;
  overflow: hidden;
}
h2 {
  font-size: 2.8em;
  margin-bottom: 2.5rem;
  margin-top: 2.5rem;
  font-family: var(--primary-font);
  font-weight: 500;
  overflow: hidden;
}
h2.ce-headline-center {
  color: var(--orange);
}
h3.ce-headline-center {
  font-size: 2.4em;
}
h3 {
  font-size: 2.8em;
  margin-bottom: 2.5rem;
  font-family: var(--primary-font);
  color: var(--body-color);
  font-weight: 300;
  overflow: hidden;
}
h4 {
  font-size: 2.2em;
  margin-bottom: 1rem;
  font-family: var(--primary-font);
  color: var(--body-color);
  font-weight: 300;
}
h5 {
  font-size: 1.8em;
  padding-bottom: 3rem;
  font-family: var(--body-font);
  color: var(--orange);
}
a {
  color: var(--orange);
}
a,
a:hover,
a:focus {
  outline: none !important;
  text-decoration: none;
}
b,
strong {
  color: var(--orange);
}
textarea {
  resize: vertical;
}
iframe {
  display: block;
  width: 100%;
  height: 500px;
  border: 1px solid var(--orange);
}
button:focus {
  outline: none;
}

svg,
img {
  width: 100%;
  height: auto;
}

.ce-gallery img {
  border: 1px solid var(--gray);
}

dl,
ol,
ul {
  margin-bottom: 3rem;
}

.fixed {
  overflow: hidden;
}

.frame-type-text a,
.frame-type-textpic a,
.frame-type-textmedia a {
  color: var(--orange);
  text-decoration: underline;
}

.frame-type-text a:hover,
.frame-type-textpic a:hover,
.frame-type-textmedia a:hover {
  text-decoration: none;
  background: none;
  color: var(--orange);
}

/* ### 01.02. Buttons ### */

.btn {
  border: 0;
  border-radius: 0;
  font-family: var(--primary-font);
}

.btn.btn-primary {
  color: var(--white);
  padding: 1rem 3rem;
  font-size: 2rem;
  background: var(--orange);
  transition: all 200ms ease;
}

.btn.btn-primary:hover {
  color: var(--body-color);
  background: var(--gray);
  transition: all 300ms ease;
}

.btn.btn-link {
  color: var(--orange);
  font-size: 1.8rem;
  padding: 0;
  margin-right: 3rem;
  text-decoration: none;
  font-family: var(--text-font) !important;
}

.btn.btn-link::after {
  content: '\f0a9';
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  font-size: 1.6rem;
  margin-left: 0.5rem;
}

.video.btn {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: var(--orange);
  height: 80px;
  width: 80px;
}

.video.btn i {
  font-size: 2.5rem;
  color: var(--white);
}

.video.btn:before {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  height: 95px;
  width: 95px;
  border: 2px solid #fff;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  -moz-transform: translateX(-50%) translateY(-50%);
  -webkit-transform: translateX(-50%) translateY(-50%);
  -ms-transform: translateX(-50%) translateY(-50%);
  -o-transform: translateX(-50%) translateY(-50%);
  transform: translateX(-50%) translateY(-50%);
  opacity: 0.3;
  animation: pulse-border 1.5s ease-out infinite;
}

.video.btn:after {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  height: 80px;
  width: 80px;
  border: 2px solid #fff;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  -moz-transform: translateX(-50%) translateY(-50%);
  -webkit-transform: translateX(-50%) translateY(-50%);
  -ms-transform: translateX(-50%) translateY(-50%);
  -o-transform: translateX(-50%) translateY(-50%);
  transform: translateX(-50%) translateY(-50%);
  opacity: 0.3;
  animation: pulse-border 1.5s ease-out infinite;
}

@keyframes pulse-border {
  0% {
    transform: translateX(-50%) translateY(-50%) translateZ(0) scale(1);
    opacity: 1;
  }

  100% {
    transform: translateX(-50%) translateY(-50%) translateZ(0) scale(1.5);
    opacity: 0;
  }
}

/* ### 02. Farben ### */

.orange-c {
  color: var(--orange) !important;
}

.orange-bg {
  background: var(--orange);
}

.gray-c {
  color: var(--gray);
}

.gray-bg,
.bg-secondary {
  background: var(--gray) !important;
  height: 100%;
}

.frame-type-liepstypo3defaults_100-section-100 {
  height: 100%;
}

.pt-10 {
  padding-top: 10rem !important;
}

.pb-10 {
  padding-bottom: 10rem !important;
}

section {
  padding: 10rem;
}

header,
footer {
  padding: 0 10rem;
}

section,
header,
footer {
  background: #fff;
  border-left: 1px solid #eee;
  border-right: 1px solid #eee;
  -webkit-box-shadow: 0 5px 5px 0 rgba(228, 228, 228, 1);
  -moz-box-shadow: 0 5px 5px 0 rgba(228, 228, 228, 1);
  box-shadow: 0 5px 5px 0 rgba(228, 228, 228, 1);
}

/* ### 03. Header ### */

.navbar {
  padding: 4rem 0 8rem;
  align-items: end;
}

.navbar-brand {
  height: auto;
  max-width: 150px;
  padding: 0;
  margin: 0;
}

.nav-item {
  margin: 0 2rem;
}

.nav-item a {
  color: var(--body-color);
  font-weight: 600;
  letter-spacing: 0.1rem;
}

.nav-item:first-child {
  margin-left: 0;
}

.nav-item:last-child {
  margin-right: 0;
}

.navbar .navbar-collapse {
  margin-bottom: 3rem;
}

.navbar-toggler {
  border: none;
  padding: 0;
  border-radius: 0;
  position: relative;
  z-index: 999;
}

.navbar-toggler:focus {
  box-shadow: none;
}

.navbar-toggler .icon-bar {
  background: var(--orange);
  border-radius: 0;
  width: 30px;
  height: 2px;
  transition: all linear 0.2s;
  display: block;
  margin-top: 4px;
}

.navbar-toggler .icon-bar:nth-child(1) {
  margin: 0;
}

.navbar-toggler[aria-expanded='true'] .icon-bar:nth-child(1) {
  transform: rotate(45deg);
}
.navbar-toggler[aria-expanded='true'] .icon-bar:nth-child(2) {
  transform: rotate(-45deg);
  margin-top: -2px;
}

.navbar-toggler[aria-expanded='true'] .icon-bar:last-child {
  display: none;
}

.breadcrumb-container {
  padding: 1.5rem 10rem;
  border-top: 1px solid var(--gray);
  border-bottom: 1px solid var(--gray);
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
  background-color: var(--body-color);
  padding: 1rem;
}

.header h5 {
  padding: 0.5rem;
  color: var(--body-color);
  font-size: 1rem;
}

/* ### 04. Wohnungliste ### */
.around {
  justify-content: space-around !important;
}

.estate {
  padding: 2rem;
  border: 1px solid var(--gray);
  width: 100%;
  justify-content: space-between;
  transition: all 200ms ease;
  position: relative;
  top: 0;
}

.estate:hover {
  position: relative;
  top: -3px;
  transition: all 300ms ease;
  box-shadow: 0 1px 1px rgba(228, 228, 228.15), 0 2px 2px rgba(228, 228, 228.15),
    0 3px 3px rgba(228, 228, 228.15), 0 6px 6px rgba(228, 228, 228.15);
}

.estate-img {
  width: 10%;
}

.estate-info {
  width: 50%;
}

.estate-info span {
  font-size: 1.8rem;
}

.estate-space,
.estate-floor,
.estate-head {
  margin-right: 4rem;
}

.estate-head i,
.estate-space i,
.estate-floor i {
  font-size: 2.5rem;
  margin-right: 1rem;
  position: relative;
  margin-top: 2rem;
  top: 0.8rem;
}

.estate .buttonwrap a:nth-child(1) {
  margin-right: 1.5rem;
}

/* ### 05. Kosten ### */

.posten {
  justify-content: space-between;
}

.posten p {
  margin-bottom: 0.5rem;
}

/* ### 06. Ansprechpartner ### */

.authorBox {
  background: var(--white);
  padding: 2rem;
}

.authorName {
  margin-bottom: 1.5rem;
}

.authorBody p {
  margin: 0;
}

.authorBody i {
  margin-right: 2rem;
  margin-left: 0.5rem;
  color: var(--orange);
}

/* ### 05. Form ### */

.control-label {
  display: none;
}

.form-control,
.powermail_fieldwrap_type_typoscript div {
  border: none;
  font-size: 1.8rem;
  color: var(--body-color);
  font-family: var(--primary-font);
  background: var(--white);
  border-radius: 0;
  margin: 0.8rem 0;
  padding: 1rem 1.5rem;
}

.form-control:focus {
  box-shadow: 0 1px 1px rgba(228, 228, 228.15), 0 2px 2px rgba(228, 228, 228.15),
    0 3px 3px rgba(228, 228, 228.15), 0 6px 6px rgba(228, 228, 228.15);
}

.custom-checkbox {
  font-size: 1.8rem;
}

.checkbox input {
  display: none;
}

.checkbox-box {
  display: block;
  width: 25px;
  flex-basis: 25;
  height: 25px;
  border: 1px solid var(--body-color);
  transition: 300ms;
  margin-right: 3rem;
}

input:checked ~ .checkbox-box {
  rotate: 45deg;
  translate: 10px 0px;
  width: 15px;
  flex-basis: 15px;
  border-color: var(--success);
  border-width: 3px;
  border-top-color: transparent;
  border-left-color: transparent;
  border-radius: 4px;
  margin-right: 3rem;
}

.tx-powermail .powermail_fieldset div.error,
.tx-powermail .powermail_fieldset .powermail-errors-list > li,
.tx-powermail
  .powermail_fieldset
  .powermail_field_error_container
  .powermail-errors-list
  > li,
.tx-powermail
  .powermail_fieldset
  .powermail_field_error_container
  .powermail-errors-list,
.tx-powermail .powermail_fieldset .powermail-errors-list {
  color: var(--danger);
  background: none;
  padding: 0;
  border: none;
}

.tx-powermail .powermail_fieldset .powermail_field_error {
  color: var(--danger);
  border: 1px solid var(--danger);
  background: var(--white);
}

.checkbox.powermail_field_error {
  background: none !important;
  border: none !important;
}

.powermail_fieldwrap_type_check .powermail_field_error {
  border: none !important;
}

/* ### 06. Footer ### */

.footer-nav-bar {
  padding: 2rem 10rem;
}

.footer-logo-bar {
  padding: 2rem 0;
}

/* ### 07. Img-Zoom ### */

.zoom-container {
  width: max-content;
  position: relative;
}

.imgzoom {
  position: absolute;
  left: 0;
  top: 0;
  --zoom-x: 50%;
  --zoom-y: 50%;
  transform: scale(1.5);
  pointer-events: none;
  clip-path: circle(100px at var(--zoom-x) var(--zoom-y));
  opacity: 0;
}

.mfp-with-zoom .mfp-container,
.mfp-with-zoom.mfp-bg {
  opacity: 0;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-transition: all 0.3s ease-out;
  -moz-transition: all 0.3s ease-out;
  -o-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}

.mfp-with-zoom.mfp-ready .mfp-container {
  opacity: 1;
}
.mfp-with-zoom.mfp-ready.mfp-bg {
  opacity: 0.8;
}

.mfp-with-zoom.mfp-removing .mfp-container,
.mfp-with-zoom.mfp-removing.mfp-bg {
  opacity: 0;
}

@media (min-width: 1280px) {
  a[href^='tel:'] {
    pointer-events: none;
  }
}

@media (max-width: 1599.98px) {
  header,
  footer {
    padding: 0 5rem;
  }

  section {
    padding: 5rem;
  }

  .breadcrumb-container {
    padding: 1.5rem 5rem;
  }
}

@media (max-width: 1399.98px) {
  .estate .buttonwrap a:nth-child(1) {
    margin-bottom: 1rem;
    margin-right: 0;
  }
  .estate .buttonwrap {
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
  .estate-space,
  .estate-floor,
  .estate-head {
    margin-right: 3rem;
  }
  .estate-info {
    width: 70%;
  }
}

@media (max-width: 1199.98px) {
  .navbar-brand {
    max-width: 100px;
  }
  .navbar {
    padding: 3rem 0 4rem;
  }
  .nav-item {
    margin: 0 1rem;
  }
  li {
    font-size: 1.6rem;
  }
  .footer-nav .nav-item {
    margin: 0;
  }

  .estate-info {
    width: 30%;
  }

  .estate-img {
    width: 20%;
  }
  .estate-space,
  .estate-floor {
    margin-top: 1rem;
  }
}

@media (max-width: 991.98px) {
  .navbar {
    align-items: start;
    position: inherit;
    transform: none !important;
  }
  .navbar-collapse.show {
    left: 0;
    top: 0;
    z-index: 20;
    transition: left 300ms ease-in;
    width: 50vw;
    height: 100vh;
    background: var(--white);
    z-index: 100;
    padding: 10rem 10rem 0rem 5rem;
    border-left: 1px solid #eee;
    border-right: 1px solid #eee;
    -webkit-box-shadow: 0 5px 5px 0 rgba(228, 228, 228, 1);
    -moz-box-shadow: 0 5px 5px 0 rgba(228, 228, 228, 1);
    box-shadow: 0 5px 5px 0 rgba(228, 228, 228, 1);
  }
  .navbar-collapse {
    position: absolute;
    left: -500px;
    top: 0;
    transition: left 300ms ease-out;
    width: 50vw;
    height: 100vh;
    background: var(--white);
    z-index: 100;
    padding: 10rem 10rem 0rem 5rem;
    border-left: 1px solid #eee;
    border-right: 1px solid #eee;
    -webkit-box-shadow: 0 5px 5px 0 rgba(228, 228, 228, 1);
    -moz-box-shadow: 0 5px 5px 0 rgba(228, 228, 228, 1);
    box-shadow: 0 5px 5px 0 rgba(228, 228, 228, 1);
  }

  .navbar-nav .nav-item {
    margin: 0;
    padding: 0.5rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  }
  .section {
    padding: 5rem;
  }

  .estate-info {
    width: 70%;
  }

  .estate-info,
  .estate-img {
    margin-bottom: 2rem;
  }

  .estate .buttonwrap {
    flex-direction: row;
  }

  .estate .buttonwrap a:nth-child(1) {
    margin-bottom: 0;
    margin-right: 1rem;
  }

  .estate-space,
  .estate-floor,
  .estate-head {
    margin-right: 0;
  }
  .estate-img {
    width: 30%;
  }
  .split-child {
    text-align: center !important;
  }
}

@media (max-width: 767.98px) {
  .section {
    padding: 2rem;
  }
  header,
  footer {
    padding: 0 2rem;
  }

  section {
    padding: 2rem;
  }
  .estate .buttonwrap {
    flex-direction: column;
  }
  .estate .buttonwrap a:nth-child(1) {
    margin-bottom: 1rem;
    margin-right: 0;
  }
  .estate-img {
    width: 50%;
  }
  .estate-info {
    width: 100%;
  }
  .breadcrumb-container {
    padding: 1.5rem 2rem;
  }
}

@media (max-width: 575.98px) {
  .navbar-collapse.show {
    width: 100vw;
    padding: 10rem 3rem 0rem 3rem;
  }
  .navbar-collapse {
    width: 75vw;
  }
}

/* ### Animation ### */

.animation-start-carousel {
  z-index: 10;
}

.wohnungen-liste-container {
  opacity: 1;
}

.frame-type-text {
  overflow: hidden;
}

.ce-headline-center {
  position: relative;
  overflow: hidden;
}

.split-parent {
  overflow: hidden;
}

h3.headline,
img.img-reserviert {
  display: inline-block;
}
h3.headline {
  padding-top: 35px !important;
}
img.img-reserviert {
  width: 100px;
  margin-left: 15px;
  position: relative;
  top: -10px;
  transform: rotate(15deg);
}

@media (max-width: 991px) {
  .estate-head {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
  img.img-reserviert {
    padding-top: 25px;
  }
}
