/* -------------- General -------------- */

* {
    font-family: 'Poppins', sans-serif;
    scroll-behavior: smooth;
    margin: 0;
    padding: 0;
    text-decoration: none;
}

:root{
    --bg-color: #F8F7F7;
    --text-color: #221314;
    --second-color: #5a7184;
    --main-color: #60A1CE;
    --big-font: 4rem;
    --h2-font: 3rem;
    --p-font: 1.1rem;
}

body{
    background: var(--bg-color);
    color: var(--text-color);
    margin: 0;
}


/* -------------- Cookie -------------- */

#cookiePopup {
    background-color: #fff;
    position: fixed;
    font-size: 14px;
    width: 70vw;
    max-width: 42.85em;
    box-shadow: 0 0 2em rgba(5, 0, 31, 0.15);
    font-family: "Poppins", sans-serif;
    text-align: justify;
    line-height: 1.8em;
    padding: 2em 1.4em;
    border-radius: 6px;
    transition: all 0.5s ease-in;
    box-sizing: border-box;
    z-index: 100;
}

#cookiePopup img {
    display: block;
    width: 3.75em;
    transform: translateZ(0);
    position: relative;
    margin: auto;
}

#cookiePopup p {
    text-align: center;
    margin: 1.4em 0;
}

#cookiePopup button {
    background-color: var(--main-color);
    border: none;
    color: #fff;
    font-size: 1.2em;
    padding: 1em 1.4em;
    display: block;
    position: relative;
    margin: auto;
    cursor: pointer;
    border-radius: 5px;
}

#cookiePopup a {
    color: var(--main-color);
}

.hidePopup {
    visibility: hidden;
    bottom: 0;
    right: 2em;
}

.showPopup {
    visibility: visible;
    bottom: 2em;
    right: 2em;
}


/* -------------- Footer -------------- */

#contact{
    background: #56585D;
}

.main{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.footer{
    padding: 20px 0;
    margin: 0;

}

.list ul {
  list-style: none;
}

.social a {
  text-decoration: none;
}
.list ul a {
  text-decoration: none;
}

.list{
    width: 25%;
}

.list h4{
    font-size: 21px;
    color: var(--bg-color);
    margin-bottom: 30px;
    position: relative;
}

.list h4::before{
    content: "";
    position: absolute;
    height: 2px;
    width: 60px;
    left: 0;
    bottom: -10px;
    background: var(--bg-color);
}

.list ul li:not(last-child){
    margin-bottom: 16px;
}

.list ul li a{
    color: #ffffffbf;
    font-size: var(--p-font);
    display: block;
    transition: .3s;
}

.list ul li a:hover{
    color: var(--bg-color);
    transform: translateX(14px);
}

.list .social a{
    transition: .3s;
    margin-right: 10px;
}


.list .social img{
    width: 40px;
    height: 40px;
    object-fit: cover;
}

.list .social img:hover{
    transform: scale(1.06);
}

.end-text{
    text-align: center;
    padding-top: 50px;
}

.end-text p{
    color: var(--bg-color);
    font-size: 14px;
    letter-spacing: 2px;
}


/* -------------- Homepage -------------- */

#homepage_header {
  height: 800px;
}

header {
  width: 80%;
  margin: auto;
}

header nav {
    width: 100%;
    height: 8%;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

header nav h4 {
  color: #000;
  font-size: 25px;
}

header nav ul{
    list-style: none;
    display: flex;
}
header nav a {
  text-decoration: none;
}

header nav ul li {
    padding: 3px 25px;
}

header nav ul li:nth-last-child(1) {
    background: #000;
    border-radius: 20px;
    box-sizing: border-box;
    padding: 5px 20px;
}

header nav ul li:nth-last-child(1) a {
    color: #fff;
}

header nav ul li a {
    text-decoration: none;
    color: #121213;
    font-size: 16px;
    font-weight: 500;
    transition: .3s linear;
}

header nav ul li a:hover {
    color: grey;
}

header nav .dots {
    display: none;
    cursor: pointer;
    width: 27px;
    height: 27px;
}

.small-details {
  display: flex;
  justify-content: space-between;
}

header .content {
    position: relative;
    width: 100%;
    height: 110%;
}

header .content::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 80%;
    background: url('../images/b1.jpg') no-repeat center/cover;
    border-radius: 10px;
    z-index: -1;
}

header .content .cont_bx {
    width: 500px;
    height: auto;
    color: #fff;
    padding: 30px;
}

header .content .cont_bx h1 {
    line-height: 40px;
    font-weight: 800;
    color: #444343;
}

header .content .cont_bx p {
    font-size: 14px;
    font-weight: 400;
    color: rgb(241, 241, 241);
}

header .content .cont_bx button {
    margin-top: 20px;
    padding: 10px 20px;
    border-radius: 20px;
    border: 2px solid #000;
    background: #000;
    color: #fff;
    outline: none;
    cursor: pointer;
    transition: .3s linear;
}

header .content .cont_bx button:hover {
    background: rgb(113, 113, 113);
    border: 2px solid rgb(113, 113, 113);
}

header .trip_bx {
    position: relative;
    width: 95%;
    height: auto;
    margin: auto;
}

header .trip_bx .search_bx {
    position: absolute;
    top: 0;
    left: 0;
    width: 60%;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: space-around;
    background: #fff;
    border-radius: 5px;
    box-shadow: 0px 10px 25px rgb(114, 114, 114);
    z-index: 1;
    padding: 10px 20px;
}

header .trip_bx .search_bx .card {
    height: 100%;
    width: 100%;
}

header .trip_bx .search_bx .card select {
    margin-top: 7px;
    border: none;
    outline: none;
}

header .trip_bx .search_bx .card h4 {
    font-size: 15px;
    margin: 0;
    font-weight: 700;
}

header .trip_bx .search_bx .card input {
    margin-top: 3px;
    padding: 5px 0px;
    border: none;
    outline: none;
    font-size: 13px;
}

.active {
  display: none;
}

header .trip_bx .search_bx button {
  background: #000;
  color: #fff;
  border: none;
  outline: none;
  padding: 10px 20px;
  border-radius: 20px;
  transition: .3s linear;
  cursor: pointer;
}

header .trip_bx .search_bx button:hover {
    background: gray;
}

header .trip_bx .travel_bx {
    position: relative;
    width: 100%;
    height: auto;
    margin: auto;
    top: 30px;
    border-radius: 10px;
    padding-bottom: 20px;
    box-shadow: 0px 20px 25px -10px rgb(165, 165, 165);
}

header .trip_bx .travel_bx::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    border-radius: 10px;
    background: rgb(241, 241, 241, .7);
    backdrop-filter: blur(5px);
    z-index: -1;
}

header .trip_bx .travel_bx h4 {
    margin: 0;
}

header .trip_bx .travel_bx .cards {
    width: 96%;
    height: auto;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    overflow: auto;
}

header .trip_bx .travel_bx .cards .card {
    min-width: 220px;
    height: 180px;
    margin-right: 20px;
}

header .trip_bx .travel_bx .cards .card h3 {
    margin: 0px 0px 10px 0px;
    display: flex;
    align-items: center;
    font-size: 16px;
    font-weight: 600;
}

header .trip_bx .travel_bx .cards .card h3 img {
    width: 20px;
    height: 20px;
    margin-left: 5px;
}

header .trip_bx .travel_bx .cards .card img {
    width: 100%;
    height: 50%;
    object-fit: cover;
}

header .trip_bx .travel_bx .cards .card .btn_city {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

header .trip_bx .travel_bx .cards .card .btn_city a {
    text-decoration: none;
    background: #000;
    color: #fff;
    border-radius: 20px;
    padding: 6px 20px;
    font-size: 11px;
    border: none;
    outline: none;
    transition: .3s linear;
}

header .trip_bx .travel_bx .cards .card .btn_city a:hover {
    background: rgb(113, 113, 113);
}


header .trip_bx .travel_bx .cards .card .btn_city h5 {
    font-size: 11px;
    font-weight: 500;
    margin: 0;
    margin-top: 5px;
    line-height: 15px;
}

header .trip_bx .travel_bx .cards .card .btn_city h5 span {
    font-size: 13px;
    font-weight: 700;
}

.offers {
    width: 60%;
    height: auto;
    border: 1px solid #000;
    margin: auto;
    margin-top: 100px;
}

section{
    padding: 0px 10% 50px 10%;
    margin: 0;
}

.title{
    text-align: center;
}

.title h2{
    font-size: var(--h2-font);
    line-height: 1.2;
}

.package-content{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, auto));
    grid-gap: 2rem;
    align-items: center;
    margin-top: 3rem;
}

.box {
  height: 100%;
  padding: 10px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border-radius: 10px;
  box-shadow: 10px 10px 10px 10px rgba(178, 178, 178, 0.189);
}

.thum{
    position: relative;
    transition: all .3s cubic-bezier(.445,.05,.55,.95);
    will-change: filter;
    cursor: pointer;
}

.thum img:first-child{
    width: 100%;
    height: auto;
    border-radius: 1rem;
}

.person_icon {
  position: absolute;
  width: 24px;
  color: #fff;
  top: 15px;
  right: 13px;
}

.thum h3{
    position: absolute;
    font-size: 18px;
    font-weight: 600;
    padding: 5px 15px;
    background: rgba(128, 128, 128, 0.705);
    border-radius: 0.8rem;
    text-align: right;
    color: var(--bg-color);
    top: 10px;
    right: 10px;
}

.thum h3 span{
  font-size: 15px;
  font-weight: 400;
}

.dest-content{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
}
.stars {
    margin-top: 6px;
}
.stars i{
    color: var(--main-color);
    font-size: 20px;
}

.stars img{
    width: 20px;
    height: 20px;
    object-fit: cover;
}

.buchen {
  text-align: center;
}

.buchen button {
  padding: 10px 20px;
  background: black;
  border-radius: 20px;
  color: white;
  transition: .3s linear;
  cursor: pointer;
  border: none;
  outline: none;
}

.buchen button:hover {
  background: rgb(113, 113, 113);
}

.box h4{
    font-size: 24px;
    font-weight: 600;
}

.location p{
    font-size: 15px;
    color: var(--second-color);
}

.thum:hover{
    transform: scale(1.04);
}

.destination-content{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, auto));
    grid-gap: 2rem;
    align-items: center;
    margin-top: 3rem;
}

.col-content{
    position: relative;
    cursor: pointer;
    width: 100%;
    overflow: hidden;
    transition: all 0.5s ease-in-out;
}

.thumb_image {
    width: 100%;
    min-height: 200px;
    max-height: 500px;
    object-fit: cover;
    border-radius: 15px;
    filter: brightness(80%);
    opacity: 1;
    transition: all .5s cubic-bezier(.495,.05,.55,.95);
}

.col-content:hover .thumb_image {
  filter: brightness(50%);
}

.col-content h6 {
    position: absolute;
    top: 15px;
    font-weight: 700;
    right: 15px;
    font-size: 15px;
    letter-spacing: 1px;
    color: var(--bg-color);
}

.item {
   position: absolute;
   bottom: 105px;
   left: 15px;
   z-index: 2;
   transform: translateY(100%);
   transition: all 0.3s ease-in-out;
}

.col-content:hover .item {
    bottom: 20px;
    transform: translateY(0);
}

.col-content .item h3 {
    font-size: 25px;
    font-weight: 600;
    color: var(--bg-color);
}

.col-content .item h5 {
    font-size: 15px;
    font-weight: 400;
    color: var(--bg-color);
    letter-spacing: 2px;
    margin-bottom: 32px;
}

.col-content .item img {
    width: 15px;
    height: 15px;
    object-fit: cover;
    margin-left: 5px;
    margin-top: 3px;
}

.col-content .item p {
    font-size: 15px;
    color: var(--bg-color);
    margin-bottom: 5px;
}

.newsletter {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    grid-gap: 3rem;
}

.news-text {
    margin-right: 20%;
}

.news-text h2 {
    font-size: var(--h2-font);
    margin-bottom: 5px;
}

.news-text p {
    font-size: var(--p-font);
    color: var(--second-color);
    line-height: 30px;
}

.np2 {
    width: 100%;
    max-width: 450px;
    position: relative;
}

.np2 input:first-child {
    display: inline-block;
    width: 60%;
    padding: 20px 150px 20px 30px;
    box-shadow: 0px 20px 40px rgb(85 85 85);
    border: none;
    outline: none;
    border-radius: 15px;
}

.np2 input:last-child {
    position: absolute;
    outline: none;
    border: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    padding: 14px 30px;
    border-radius: 15px;
    background: var(--main-color);
    color: var(--bg-color);
    top: 6px;
    right: 6px;
    cursor: pointer;
}

.np1 {
  display: flex;
  margin-bottom: 10px;
}

.np1 input {
  font-size: 16px;
  padding-left: 9px;
  background: transparent;
  cursor: pointer;
  border: none;
  outline: none;
}

.np1 p {
  font-size: 0.8rem;
}

.np1 p a {
  color: #bbb;
  transition: 0.3s;
  color: var(--main-color);
}

 /* -------------- Seiten Einstellungen -------------- */

 .container{
     padding: 30px 10% 50px 10%;
 }

 @media (max-width: 1400px){
     .container{
         padding: 30px 3% 40px 3%;
         transition: .2s;
     }
 }

 @media (max-width: 575px){
     .container{
         padding: 22px 3% 20px 3%;
         transition: .2s;
     }
 }


 /* -------------- Liste -------------- */

 .list-container{
     display: flex;
     flex-wrap: wrap;
     justify-content: space-between;
 }

 .left-col{
     flex-basis: 70%;
 }


 .right-col{
     flex-basis: 26%;
 }

 .left-col h1{
     color: #333;
     font-weight: 600;
     margin-bottom: 30px;
 }

 .house{
     display: flex;
     justify-content: space-between;
     flex-wrap: wrap;
     padding: 30px 0;
     border-top: 1px solid #ccc;
 }

 .house-img{
     flex-basis: 40%;
 }

 .house-info{
     flex-basis: 58%;

     color: #555;
 }

 .house-img img{
     width: 100%;
     object-fit: cover;
     border-radius: 12px;
 }

 .house-info h3{
     font-weight: 600;
     color: #333;
     font-size: 22px;
     margin: 4px 0;
 }

 .house-info i{
     color: var(--main-color);
     font-size: 18px;
     margin: 10px 1px;
 }

 .search_star {
   margin: 10px 2px 0 1px;
   width: 16px;
   height: 16px;
   object-fit: cover;
 }

 .info_icons {
   margin: 8px 6px 0 6px;
   width: 20px;
   height: 20px;
   object-fit: cover;
 }

 .house-price{
     text-align: right;
 }

 .house-price h4{
     font-size: 20px;
 }

 .house-price h4 span{
     font-size: 16px;
     font-weight: 500;
 }

 .sidebar{
     border: 1px solid #999;
     padding: 20px 30px;
     margin-top: 30px;
 }

 .sidebar h2{
     font-weight: 500;
 }

 .sidebar h3{
     font-weight: 500;
     margin: 20px 0 10px;
 }

 .filter{
     display: flex;
     align-items: center;
     color: #555;
     margin-bottom: 10px;
 }

 .filter p{
     flex: 1;
 }

 .filter input{
     font-size: 16px;
     padding-left: 9px;
     background: transparent;
     cursor: pointer;
     border: none;
     outline: none;
 }

 .number_filter {
     width: 120px;
 }

 .cb1 {
     margin-right: 15px;
 }

 .filter select{
     margin-right: 15px;
     background: transparent;
     cursor: pointer;
     border: none;
     outline: none;
     font-size: 16px;
 }

 .filter button {
   padding: 8px 15px;
   border-radius: 20px;
   border: 2px solid #000;
   background: #000;
   color: #fff;
   outline: none;
   cursor: pointer;
   transition: .3s linear;
 }

 .sidebar-link{
     text-align: right;
     margin: 20px 0;
 }

 .sidebar-link a{
     text-decoration: none;
 }

 .pagination{
     display: flex;
     align-items: center;
     justify-content: center;
     margin-top: 40px;
 }

 .pagination a {
   text-decoration: none;
   color: black;
 }

 .pagination a:hover{
   color: black;
   background: rgb(220, 220, 220);
 }

 .pagination a img{
     margin-top: 8px;
     width: 15px;
 }

 .right-arrow{
     transform: rotate(180deg);
 }

 .pagination a {
     margin: 10px 8px;
     width: 40px;
     height: 40px;
     line-height: 40px;
     text-align: center;
     border-radius: 50%;
     cursor: pointer;
 }

 .pagination .current{
     background: #333;
     color: #fff;
 }


/* -------------- House -------------- */

.house-title h1{
    font-weight: 600;
}

.house-title .row{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin: 10px 0;
}

.house-title span{
    margin: 0 20px;
}

.house-title i{
    color: var(--main-color);
    font-size: 14px;
}

.house-title img {
  width: 16px;
  height: 16px;
  object-fit: cover;
}

.gallery{
    display: grid;
    grid-gap: 10px;
    grid-template-areas: 'first first . .' 'first first . .';
    margin: 20px 0;
}

.gallery div:hover {
    cursor: pointer;
}

.gallery div img {
    width: 100%;
    display: block;
    border-radius: 10px;
    cursor: zoom-in;
}

.gallery-img-1 {
    grid-area: first;
}

.small-details h2 {
    font-weight: 500;
}

.small-details h4 {
    text-align: right;
    font-size: 22px;
}

.small-details h4 a {
  text-decoration: none;
  color: #000;
}

.small-details h4 a span {
  text-decoration: underline;
}

.line {
    border: 0;
    height: 1px;
    background: #ccc;
    width: 100%;
    max-width: 800px;
    margin: 20px 0 30px;
}

.check-form {
    margin: 30px 0;
    background: #fff;
    box-shadow: 0 0 30px rgba(0, 0, 0, 0.3);
    border-radius: 15px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: 10px 50px;
    z-index: 1;
}

.contact-form {
    margin: 30px 0;
    background: #fff;
    box-shadow: 0 0 30px rgba(0, 0, 0, 0.3);
    border-radius: 15px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    padding: 10px 50px;
    z-index: 1;
}

.check-form label {
    display: block;
    font-size: 17px;
    font-weight: 700;
}

.contact-form .con {
  position: relative;
  margin-right: 40px;
}

.contact-form label {
    position: absolute;
    left: 0;
    top: 10px;
    pointer-events: none;
    color: #999;
    transition: all .5s ease;
}

.contact-form input:focus~label,
.contact-form input:valid~label {
  top: -12px;
  left: 0;
  color: var(--main-color);;
  font-size: 13px;
  font-weight: bold;
}

.check-form .con {
    padding: 20px;
}

.check-form input {
    background: transparent;
    border: none;
    outline: none;
    font-size: 15px;
    padding-left: 10px;
    text-align: center;
}

.check-form button {
    background: var(--main-color);
    width: 330px;
    border: 0;
    outline: none;
    color: #fff;
    padding: 18px;
    max-width: 100%;
    border-radius: 8px;
    font-size: 16px;
    cursor: pointer;
}

.contact-form input{
    padding-top: 10px;
    padding-bottom: 5px;
    width: 100%;
    color: #000000;
    font-size: 18px;
    box-shadow: none;
    border: none;
    border-bottom: 2px solid #999;
    background: transparent;
    outline: none;
}

.row_form{
  margin: 15px 0;
}

.contact-form button {
    width: 100%;
    background: var(--main-color);
    border: 0;
    outline: none;
    color: #fff;
    padding: 18px;
    max-width: 330px;
    border-radius: 8px;
    font-size: 16px;
    cursor: pointer;
}

.details-list {
    list-style: none;
    margin: 20px 0 10px 0;
    z-index: 0;
}

.details-list li {
    margin-left: 50px;
    font-size: 20px;
    font-weight: 500;
    margin-bottom: 20px;
    color: #555;
    position: relative;
}

.details-list li span {
    display: block;
    font-weight: 400;
    font-size: 16px;
}

.details-list li i {
    position: absolute;
    top: 5px;
    left: -40px;
}

.details-list li img {
  position: absolute;
  top: 5px;
  left: -40px;
  width: 20px;
  height: 20px;
  object-fit: cover;
}

.home-desc {
    max-width: 850px;
    margin-bottom: 30px;
    text-align: justify;
    -webkit-hyphens: auto;
    -moz-hyphens: auto;
    hyphens: auto;
}

.map {
    margin: 20px 0;
}

.map iframe {
    width: 100%;
    margin-bottom: 30px;
    border-radius: 20px;
}

.map h3 {
    font-size: 26px;
    font-weight: 500;
    margin-bottom: 10px;
}

.map b {
    display: block;
    margin-bottom: 16px;
}

.host {
    display: flex;
    align-items: center;
}

.host .pb_img {
    width: 80px;
    border-radius: 50%;
    margin-right: 30px;
}

.host h2 {
    margin-bottom: 10px;
    font-weight: 500;
}

.host div p span img {
  width: 16px;
  height: 16px;
  object-fit: cover;
}

.contact-host {
    display: inline-block;
    margin: 40px 0 40px 120px;
    text-decoration: none;
    color: #555;
    padding: 15px 50px;
    border: 2px solid var(--main-color);
    border-radius: 15px;
}

.second_field {
    display: flex;
    justify-content: center;
    padding: 20px 20px;
    flex: 1;
}

.last_field {
  width: 100%;
    display: flex;
    justify-content: right;
    flex: 1;
}

.bad_icon {
  margin-right: 10px;
  padding-top: 7px;
}

.bad_icon img {
  width: 22px;
  height: 22px;
  object-fit: cover;
  margin-left: 5px;
}

.textcon {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.stack {
  position: relative;
  border-radius: 10px;
  cursor: zoom-in;
  border: 3px solid rgb(232, 232, 232);
}

.stack:hover img{
    transition: 0.5s ease;
    scale: 1.02;
}

.stack i {
  position: absolute;
  top: 40%;
  left: 45%;
  transform: translate(-45% , -40%);
  font-size: 70px;
}

.stack h2, .stack h3 {
  position: absolute;
  font-weight: 600;
  color: #fff;
  font-size: 55px;
}

.stack h2 {
  top: 50%;
  left: 39%;
  transform: translate(-39% , -50%);
}

.stack h3 {
  top: 50%;
  left: 62%;
  transform: translate(-62% , -50%);
}

.stack img {
  filter: blur(4px) grayscale(0.5);
}


 /* -------------- Modal -------------- */

 .modal{
     display: none;
     position: fixed;
     left: 0;
     top: 0;
     width: 100%;
     height: 100%;
     overflow: auto;
     background-color: rgba(0, 0, 0, 0.9);
     z-index: 1;
 }

 .modal-content{
     margin-top: 10px;
     position: relative;
     display: flex;
     flex-direction: column;
     width: 100%;
     pointer-events: auto;
     outline: 0;
 }

 .modal-header{
     display: flex;
     align-items: flex-start;
     justify-content: space-between;
 }

 .close{
     color: #FFF;
     position: absolute;
     top: 30px;
     right: 40px;
     font-size: 65px;
     font-weight: 350;
     cursor: pointer;
     opacity: 0.5;
     transition: 0.3s ease;
 }

 .close:hover, .close:focus{
     color: #fff;
     text-decoration: none;
     font-weight: 500;
     opacity: 0.75;
     transition: 0.3s ease;
 }

 .prev, .next{
     cursor: pointer;
     position: absolute;
     opacity: 0.5;
     top: 50%;
     padding: 3rem 1rem;
     color: #fff;
     margin-top: -50px;
     font-size: 3rem;
     user-select: none;
     transition: 0.3s ease;
 }

 .next{
     right: 0;
 }

 .prev:hover, .next:hover{
     opacity: 1;
     transition: 0.3s ease;
     background-color: rgba(0, 0, 0, 0.8);
 }

 .modal-header .numbertext {
     color: gray;
     font-size: 1.5rem;
     padding: 8px 50px;
     position: absolute;
     left: 40px;
     top: 40px;
 }

 .modal-body {
     position: relative;
     margin: auto;
 }

 .modal-footer{
     color: #fff;
     display: flex;
     align-items: flex-end;
     justify-content: center;
     padding: 1rem;
 }

 .portrait-image{
     height: 89vh;
 }

 .landscape-image{
     max-height: 85vh;
     max-width: 69vw;
 }


 /* -------------- Datenschutz, Impressum, AGB -------------- */

 .container1 {
     padding: 50px 15% 100px 15%;
 }

 .container2 {
     padding: 50px 30% 40px 15%;
 }

 .block1 {
   margin-top: 20px;
   width: 97%;
   margin-left: 3%;
   text-align: justify;
   line-height: 2;
 }

 .container1 h1 {
   font-size: 35px;
   margin-bottom: 17px;
 }

 .block1 h2 {
   font-size: 23px;
   font-weight: 700;
   margin-top: 35px;
   margin-bottom: 10px;
   -webkit-hyphens: auto;
   -moz-hyphens: auto;
   hyphens: auto;
 }

 .container1 p {
   -webkit-hyphens: auto;
   -moz-hyphens: auto;
   hyphens: auto;
 }

 .daten_text li {
   -webkit-hyphens: auto;
   -moz-hyphens: auto;
   hyphens: auto;
 }

 .daten_text h3{
   font-size: 20px;
   margin-top: 25px;
 }

 .daten_text h4{
   font-size: 20px;
   margin-top: 25px;
 }

 .daten_text {
   width: 97%;
   margin-left: 3%;
   text-align: justify;
 }

 .ch4 {
   font-size: 20px;
 }

 .ip1 {
   font-size: 17px;
   line-height: 2.4;
 }

 .ih1 {
   font-size: 35px;
   margin-bottom: 25px;
 }

 .daten_text ul {
   margin: 10px 0 10px 30px;
   list-style-position: outside;
 }



  .hint {
    color: #bbb;
    font-size: 0.7rem;
  }

  .hint a {
    color: #bbb;
    transition: 0.3s;
    color: var(--main-color);
  }

 /* -------------- Other sizes -------------- */
 @media (max-width: 768px){
     .booking_table thead {
         display: none;
     }

     .booking_table, .booking_table tbody, .booking_table tr, .booking_table td {
         display: block;
     }

     .booking_table tr {
         margin-bottom: 15px;
     }

     .booking_table tbody tr td{
         text-align: right;
         padding-left: 50%;
         position: relative;
     }

     .booking_table td::before {
         content: attr(data-label);
         position: absolute;
         left: 0;
         width: 50%;
         padding-left: 15px;
         font-weight: 600;
         font-size: 14px;
         text-align: left;
     }
 }


 @media (max-width: 1600px){
   #object_table thead {
       display: none;
   }

   #object_table, #object_table tbody, #object_table tr, #object_table td {
       display: block;
   }

   #object_table tr {
       margin-bottom: 15px;
   }

   #object_table tbody tr td{
       text-align: right;
       padding-left: 50%;
       position: relative;
   }

   #object_table td::before {
       content: attr(data-label);
       position: absolute;
       left: 0;
       width: 50%;
       padding-left: 15px;
       font-weight: 600;
       font-size: 14px;
       text-align: left;
   }
 }


 @media (max-width: 640px) {
   .small-details {
     flex-direction: column;
   }
   .small-details h2{
       font-size: 20px;
   }
   .small-details p {
     margin-bottom: 8px;
   }

   .small-details h4{
       text-align: left;
       font-size: 18px;
   }
   .gallery {
     margin-bottom: 10px;
   }

   .line{
     margin-top: 10px;
     margin-bottom: 15px;
   }

   .map {
     margin: 25px 0;
   }

   .map h3 {
     margin-bottom: 15px;
   }

   header nav h4 {
     font-size: 23px;
   }

   .house-title h1 {
     font-size: 23px;
   }
 }


 @media (max-width: 600px) {
   .booking_table tbody tr td .btn {
     width: 50px;
   }
   .booking_table tbody tr td .btn:last-child {
     margin-left: 5px;
   }

   #first_btn {
     margin-right: 5px;
   }
 }


 @media (max-width: 850px) {

   .generellbtn_absolut {
     position: relative;
     left: 45%;
     bottom: auto;
     transform: translate(-45%, auto);

   }
 }

 @media (max-width: 500px) {
   .bh2 {
     font-size: 1.4em;
   }
 }


 @media (max-width: 850px) {

     .flex_survey div {
         width: 100%;
     }

     .flex_survey {
         display: block;
     }

   .flex_box {
     display: block;

   }

   .tab {
     width: -moz-fit-content;
     width: fit-content;
     margin-top: 20px;
   }

   #accordion1, #accordion3 {
     position: absolute;
     right: 3%;
     margin-top: 20px;
   }

   .insertform {
     margin-top: 10px;
   }

   .panel {
     margin-top: 90px;
   }

   .accordion_div {
     margin-top: 20px;
     position: absolute;
     right: 3%;
   }

   #flex_margin {
     margin-bottom: 100px;
   }

   .price_box {
     grid-template-columns: repeat(auto-fit, minmax(100%, auto));
   }
 }


 @media (max-width: 850px) {
   .ubo1 {
     height: auto;
     max-width: 550px;
     padding: 0;
     overflow: hidden;
   }

   .inner-box {
     position: static;
     transform: none;
     width: revert;
     height: revert;
     padding: 2rem;
   }

   .forms-wrap {
     position: revert;
     width: 100%;
     height: auto;
   }

   .forms-wrap form {
     max-width: revert;
     padding: 1.5rem 2.5rem 2rem;
     transition: transform 0.8s ease-in-out, opacity 0.45s linear;
   }

   .ud2 {
     margin: 2rem 0;
   }

   form.sign-up-form {
     transform: translateX(100%);
   }

   .udc1.sign-up-mode form.sign-in-form {
     transform: translateX(-100%);
   }

   .udc1.sign-up-mode form.sign-up-form {
     transform: translateX(0%);
   }

   .carousel {
     position: revert;
     height: auto;
     width: 100%;
     padding: 3rem 2rem;
     display: flex;
   }

   .images-wrapper {
     display: none;
   }

   .text-slider {
     width: 100%;
   }
 }

 @media (max-width: 530px) {
   .udc1 {
     padding: 1rem;
   }

   .ubo1 {
     border-radius: 2rem;
   }

   .inner-box {
     padding: 1rem;
   }

   .carousel {
     padding: 1.5rem 1rem;
     border-radius: 1.6rem;
   }

   .text-wrap {
     margin-bottom: 1rem;
   }

   .text-group h2 {
     font-size: 1.2rem;
   }

   .forms-wrap form {
     padding: 1rem 2rem 1.5rem;
   }
 }

 @media (max-width: 1400px){
     .container1{
         padding: 50px 5% 35px 5%;
         transition: .2s;
     }
 }

 @media (max-width: 575px){
     .container1{
         padding: 25px 6% 40px 3%;
         transition: .2s;
     }
     .container2{
         padding: 20px 3% 40px 3%;
         transition: .2s;
     }

     .container1 h1 {
       font-size: 30px;
     }

     .block1 h2 {
       font-size: 18px;
     }
 }

 @media only screen and (max-width: 1700px){
     .stack h2 {
       left: 37%;
       transform: translate(-37% , -50%);
     }
     .stack h3 {
       left: 68%;
       transform: translate(-68% , -50%);
     }
 }

 @media only screen and (max-width: 1200px){
     .stack h2, .stack h3 {
       font-size: 45px;
     }
 }

 @media only screen and (max-width: 950px){
   .stack h2, .stack h3 {
     font-size: 35px;
   }

 }

 @media only screen and (max-width: 700px){
   .stack h2, .stack h3 {
     font-size: 50px;
   }

 }

 @media only screen and (max-width: 575px){
   .stack h2, .stack h3 {
     font-size: 40px;
   }

 }

 @media only screen and (max-width: 1270px){
     .second_field {
         padding: 0px 20px;
     }
 }

 @media only screen and (max-width: 1200px){
     .second_field {
       flex: 1;
     }
 }


 @media only screen and (max-width: 700px){

     .row p{
         margin-top: 10px;
     }

     .gallery{
         grid-template-areas: 'first first' '. .' '. .';
     }

     .check-form{
         padding: 10px 30px;
     }

     .contact-form{
         padding: 10px 30px;
     }

     .con {
         padding: 20px 0;
         width: 100%;
     }

     .row_form .con {
        padding-bottom: 0px;
    }



     .row_form {
         padding: 20px 0;
         width: 100%;
         margin: 0;
     }

     .contact-form input:focus~label,
     .contact-form textarea:focus~label,
     .contact-form input:valid~label,
     .contact-form textarea:valid~label {
       top: -5px;
     }

     .contact-form input {
         padding-top: 0px;
     }

     .second_field {
       width: 100%;
       padding: 5px 40px;
     }

     .check-form input{
         border-bottom: 1px solid #ccc;
         width: 100%;
         padding-bottom: 5px;
     }

     .check-form button{
         font-size: 14px;
         margin-top: 10px;
         margin-bottom: 15px;
         border-radius: 4px;
     }

     .contact-form input{
         border-bottom: 1px solid #ccc;
         width: 100%;
         padding-bottom: 5px;
     }

     .contact-form button{
         font-size: 14px;
         margin-top: 10px;
         margin-bottom: 15px;
         border-radius: 4px;
     }

     .host{
         display: block;
         line-height: 28px;
     }

     .contact-host{
         margin: 40px 0;
     }
 }

 @media only screen and (max-width: 1750px){

   .left-col {
     flex-basis: 67%;
   }

   .right-col {
     width: 30%;
   }

   .left-col, .right-col, .house-img, .house-info{
   }

 }


 @media only screen and (max-width: 1000px){

     .left-col, .right-col, .house-img, .house-info{
         flex-basis: 100%;
     }

     .left-col h1{
         font-size: 22px;
     }

     .house-info h3{
         font-size: 18px;
     }

     .house-info i{
         font-size: 16px;
     }

     .pagination span{
         margin: 10px 2px;
         width: 30px;
         height: 30px;
         line-height: 30px;
         font-size: 12px;
     }
 }


@media screen and (max-width: 1100px){

    header .trip_bx .search_bx {
        width: 70%;
    }

    header .trip_bx .travel_bx .cards {
        overflow: auto;
    }

    header .trip_bx .travel_bx .cards .card {
        min-width: 220px;
        margin-right: 10px;
    }
}

@media screen and (max-width: 950px){
    header .trip_bx .search_bx {
        width: 85%;
    }

    header .trip_bx .search_bx .card {
        margin-right: 8px;
    }
}


@media screen and (max-width: 714px){
    header nav ul {
        position: absolute;
        width: 100px;
        height: auto;
        flex-direction: column;
        background: #fff;
        border-radius: 5px;
        box-shadow: 0px 0px 10px gray;
        justify-content: center;
        top: -100%;
        right: 30%;
        z-index: 999999;
        padding: 10px 20px;
        transition: .8s linear;
    }

    header nav .ul_active{
        top: 0;
        margin-top: 20px;
    }

    header nav ul li {
        padding: 8px 0px;
        text-align: center;
    }

    header nav .dots {
        display: unset;
    }

    header .trip_bx .search_bx {
        width: 93%;
    }
}


@media screen and (max-width: 650px){
    header .trip_bx .search_bx .card {
        max-width: 140px;
    }

    header .trip_bx .search_bx input[type="button"] {
        position: absolute;
        right: 10px;
        bottom: -43px;
        font-size: 13px;
    }
}


@media screen and (max-width: 541px){
    header .content .cont_bx {
        width: 85%;
    }

    header .content .cont_bx h1 {
        width: 300px;
        font-size: 25px;
    }

    header .content .cont_bx p {
        width: 300px;
        font-size: 12px;
    }

    header .trip_bx .search_bx {
        width: 89%;
    }

    header .trip_bx .search_bx .card {
        max-width: 110px;
    }

    header .trip_bx .search_bx .card input {
        width: 100%;
    }
}


@media (max-width: 1400px){
    header {
        width: 94%;
    }

    #homepage_header {
      height: 750px;
    }

    .thum h3{
        top: 7px;
        right: 7px;
    }

    .person_icon {
      width: 22px;
      top: 14px;
      right: 13px;
    }

    section {
        padding: 0 3% 45px 3%;
        transition: .2s;
    }

    :root{
        --big-font: 3rem;
        --h2-font: 2.3rem;
        --p-font: 1rem;
        transition: .2s;
    }
}


@media (max-width: 1040px){
  .thum h3{
    font-size: 14px;
  }

  .person_icon {
    width: 19px;
    top: 12px;
  }

  .buchen {
    text-align: left;
  }

  .list{
        width: 50%;
        margin-bottom: 12px;
    }
}


@media (max-width: 690px){

  .house-title .row{
      margin: 4px 0 7px 0;
  }

}


@media (max-width: 575px){
  .thum h3{
      top: 5px;
      right: 5px;
  }



  .person_icon {
    top: 10px;
    right: 11px;
  }

  .list{
      width: 100%;
  }

    .newsletter form{
        width: 350px;
    }

    .np2 input:first-child{
        width: 50%;
    }

    :root{
        --big-font: 2rem;
        --h2-font: 1.8rem;
        transition: .2s;
    }

    .text{
        text-align: center;
    }

    header nav ul li:nth-last-child(1){
        padding: 5px 8px;
    }

    .active {
      display: inline;
      background: #000;
      color: #fff;
      border: none;
      outline: none;
      padding: 8px 15px;
      border-radius: 20px;
      transition: .3s linear;
      cursor: pointer;
      margin-left: 30px;
    }

    header .trip_bx .search_bx button {
      display: none;
    }

    header .trip_bx .travel_bx h4 {
      margin-top: 5px;
    }
}


@media only screen and (max-width: 37.5em) {
    #cookiePopup {
        width: 94%;
        margin: 10px 3% 3px 3%;
        padding: 1.6em 1em;
    }

    #cookiePopup button {
      font-size: 1em;
    }

    .hidePopup {
        bottom: 0;
        right: 0;
    }

    .showPopup {
        right: 0;
        bottom: 0;
    }
}


@media screen and (max-width: 768px) {
    .close{
        font-size: 35px;
    }

    .numbertext{
        font-size: 20px !important;
    }

    .prev, .next{
        font-size: 36px;
    }
}


@media screen and (max-width: 1400px) {
  .box h4 {
    font-size: 19px;
  }
}


@media screen and (max-width: 541px) {
  .box h4 {
    font-size: 22px;
  }
}
