html,
body {
    overflow-x: hidden;
}

body {
    text-rendering: optimizeLegibility;
}

img {
    max-width: 100%;
}

main.page {
    overflow-x: clip;
}

.clean-block {
    padding: 4rem 0;
}

.landing-page .about-us {
    padding-top: 0.9rem;
}

.clean-block .block-heading {
    width: 100% !important;
    max-width: 900px;
    margin: 0 auto 3rem !important;
    padding: 0 1rem !important;
}

.clean-block .block-heading p,
.clean-block .block-heading h2,
.clean-block .block-heading h3,
.clean-block .faq-item p,
.clean-block .faq-item h2 {
    max-width: 100% !important;
    overflow-wrap: anywhere;
}

.clean-block [style*="width: 420"],
.clean-block [style*="width: 492"],
.clean-block [style*="width: 600"],
.clean-block [style*="width: 730"],
.clean-block [style*="width: 800"],
.clean-block [style*="width: 350px"],
.clean-block [style*="width: 550px"],
.clean-block [style*="width: 650px"],
.clean-block [style*="width: 300;"],
.clean-block [style*="margin: 58px"] {
    max-width: 100% !important;
}

.clean-block [style*="height: 765px"],
.clean-block [style*="height: 550px"],
.clean-block [style*="height: 530px"],
.clean-block [style*="height: 490"],
.clean-block [style*="height: 370px"],
.clean-block [style*="height: 310px"],
.clean-block [style*="height: 300px"],
.clean-block [style*="height: 261px"],
.clean-block [style*="height: 260px"],
.clean-block [style*="height: 180px"],
.clean-block [style*="height: 143px"] {
    max-height: none !important;
}

.navbar.clean-navbar .container {
    align-items: center;
    gap: 0.75rem;
}

.navbar.clean-navbar .navbar-brand.logo {
    white-space: nowrap;
    font-size: 2rem;
}

.navbar.clean-navbar .navbar-nav .nav-link {
    white-space: nowrap;
}

#navcol-1 > img {
    flex: 0 0 auto;
}

footer.clean-block.clean-hero {
    min-height: clamp(380px, 68vh, 680px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 7rem 1rem 3rem;
}

footer.clean-block.clean-hero .text {
    width: min(100%, 760px);
    margin: 0 auto;
    text-align: center;
}

footer.clean-block.clean-hero .text > img {
    width: min(60%, 360px) !important;
    height: auto;
}

footer.clean-block.clean-hero .text p {
    padding: 1.5rem 0 0 !important;
    margin-bottom: 0;
}

@media (min-width: 1200px) {
    footer.clean-block.clean-hero {
        min-height: 418px;
        padding: 4.5rem 1rem 2rem;
        background-position: center 24% !important;
    }

    footer.clean-block.clean-hero .text {
        width: min(100%, 680px);
    }

    footer.clean-block.clean-hero .text > img {
        width: min(42%, 250px) !important;
    }

    footer.clean-block.clean-hero .text p {
        padding-top: 0.9rem !important;
    }

    .faq-page .clean-faq .col-lg-9.col-xl-7 {
        flex: 0 0 82%;
        max-width: 82%;
    }

    .faq-page .clean-faq .umgebung-map-wrap {
        width: 800px !important;
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
    }

    .faq-page .clean-faq .umgebung-map {
        width: 800px !important;
        max-width: 100%;
        height: auto !important;
    }

    .faq-page .clean-faq .soft-panel--wide {
        max-width: 800px;
    }

    .faq-page .clean-faq .umgebung-text-card {
        max-width: 800px;
    }
}

.clean-card,
.clean-services .card {
    width: 100%;
    height: 100%;
}

.clean-card,
.clean-services .card,
.price-card {
    border: 0;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 18px 40px rgba(120, 120, 120, 0.12);
    background: rgba(255, 255, 255, 0.96);
}

.clean-card .card-img-top,
.clean-services .card-img-top {
    width: 100% !important;
    height: 260px !important;
    object-fit: cover;
}

.clean-card .card-body,
.clean-card .info,
.clean-services .card-body {
    width: auto !important;
    height: auto !important;
}

.clean-info .img-thumbnail,
.clean-faq img,
.clean-form img {
    width: 100% !important;
    height: auto !important;
}

.slider .container,
.clean-faq .block-heading {
    height: auto !important;
}

.faq-page .clean-faq .block-content {
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
}

.faq-page .clean-faq .block-heading {
    margin-bottom: 2.5rem !important;
}

#carousel-1 {
    width: 100%;
    max-width: 800px;
    margin: 0 auto;
}

#carousel-1 .carousel-inner {
    max-height: none !important;
}

#carousel-1 .carousel-item img {
    width: 100% !important;
    height: clamp(240px, 48vw, 530px) !important;
    object-fit: cover;
}

.clean-form form {
    max-width: 720px;
    margin: 0 auto;
}

.clean-form .btn {
    min-height: 48px;
}

.soft-panel {
    max-width: 780px;
    margin: 1.25rem auto 0;
    padding: 1.5rem 1.75rem;
    background: rgba(255, 255, 255, 0.84);
    border-radius: 24px;
    box-shadow: 0 18px 40px rgba(120, 120, 120, 0.12);
}

.soft-panel p:last-child {
    margin-bottom: 0;
}

.soft-panel--compact {
    max-width: 680px;
}

.landing-page .about-us .soft-panel + h2 {
    margin-top: 1.25rem;
}

.soft-panel--wide {
    max-width: 900px;
}

.soft-panel--left {
    text-align: left;
}

.soft-panel--dark {
    background: rgba(255, 255, 255, 0.9);
}

.seo-faq {
    background: #f6f6f6;
}

.seo-faq-panel {
    text-align: left;
}

.seo-faq-panel h3 {
    color: #35424d;
    font-family: Cinzel, serif;
    font-size: 1rem;
    font-weight: 700;
    margin: 1.25rem 0 0.35rem;
}

.seo-faq-panel h3:first-child {
    margin-top: 0;
}

.soft-copy {
    color: #5f646f;
    line-height: 1.75;
    font-size: 1.04rem;
}

.soft-copy p {
    margin-bottom: 1rem;
}

.soft-copy p:last-child {
    margin-bottom: 0;
}

.soft-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 0.9rem;
}

.soft-list li {
    position: relative;
    padding-left: 1.7rem;
    color: #5f646f;
    line-height: 1.65;
    font-size: 1.04rem;
}

.soft-list li::before {
    content: "•";
    position: absolute;
    left: 0;
    top: 0;
    color: rgb(191, 217, 215);
    font-size: 1.4rem;
    line-height: 1.2;
}

.soft-note {
    margin-top: 1.35rem;
    text-align: center;
    color: #6e7480;
    font-size: 1.05rem;
}

.soft-phone {
    margin-top: 0.55rem;
    text-align: center;
    color: #6e7480;
    font-size: 1.15rem;
    letter-spacing: 0.02em;
}

.wohnung-intro {
    max-width: 760px;
    margin: 1.25rem auto 0;
    padding: 1.5rem 1.75rem;
    background: rgba(255, 255, 255, 0.82);
    border-radius: 24px;
    box-shadow: 0 18px 40px rgba(120, 120, 120, 0.12);
}

.wohnung-intro-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 0.9rem;
    text-align: left;
}

.wohnung-intro-list li {
    position: relative;
    padding-left: 1.7rem;
    line-height: 1.65;
    color: #5f646f;
    font-size: 1.06rem;
}

.wohnung-intro-list li::before {
    content: "•";
    position: absolute;
    left: 0;
    top: 0;
    color: rgb(191, 217, 215);
    font-size: 1.4rem;
    line-height: 1.2;
}

.wohnung-intro-note,
.wohnung-intro-phone {
    margin-bottom: 0;
    text-align: center;
    color: #6e7480;
}

.wohnung-intro-note {
    margin-top: 2.8rem;
    font-size: 1.08rem;
}

.wohnung-intro-phone {
    margin-top: 0.65rem;
    font-size: 1.15rem;
    letter-spacing: 0.02em;
}

.clean-services .row {
    row-gap: 1.75rem;
}

.clean-services .card {
    transition: transform 180ms ease, box-shadow 180ms ease;
}

.clean-services .card-body {
    padding: 1.35rem 1.35rem 1.5rem;
}

.clean-card .card-body,
.clean-card .info {
    padding: 1.35rem 1.35rem 1.5rem;
}

.clean-services .card-text {
    line-height: 1.6;
}

.clean-card .card-text {
    line-height: 1.65;
}

.clean-services .card:hover,
.clean-card:hover,
.price-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 50px rgba(120, 120, 120, 0.16);
}

.clean-info.dark .img-thumbnail {
    border: 0;
    border-radius: 24px;
    box-shadow: 0 18px 40px rgba(120, 120, 120, 0.12);
}

.price-card .card-body {
    padding: 1.5rem 1.35rem 1.6rem;
}

.umgebung-text-card {
    max-width: 800px;
    margin: 1.25rem auto 0;
    text-align: left;
}

.umgebung-text-card .card-body {
    padding: 1.7rem 1.85rem 1.8rem;
}

.clean-block.clean-services .card.price-card h4.card-title,
.price-card .card-title {
    margin-bottom: 1rem;
    font-family: inherit;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.5;
    color: #343a40;
}

.price-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 0.8rem;
}

.price-list li {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: baseline;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid rgba(191, 217, 215, 0.45);
    color: #5f646f;
}

.price-list li:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.price-list strong {
    color: #343a40;
}

.price-action-table th:nth-child(6),
.price-action-table td:nth-child(6) {
    min-width: 210px;
}

.price-admin-image-select {
    min-width: 190px;
}

.price-admin-file {
    display: block;
    max-width: 190px;
    margin-top: 0.35rem;
    font-size: 0.78rem;
    color: #5f646f;
}

.price-period {
    display: inline-block;
    margin-bottom: 1rem;
    padding: 0.35rem 0.75rem;
    border-radius: 999px;
    background: rgba(191, 217, 215, 0.22);
    color: #4f5864;
    font-size: 0.95rem;
}

.price-action-period-row {
    display: flex;
    justify-content: center;
    gap: 0.45rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.price-action-period-row .price-period {
    margin-bottom: 0;
}

.price-period-days {
    font-weight: 700;
}

.price-note {
    margin-top: 1rem;
    color: #6e7480;
    line-height: 1.65;
}

.booking-shell {
    background: rgba(255, 255, 255, 0.95);
    border-radius: 26px;
    box-shadow: 0 18px 40px rgba(120, 120, 120, 0.14);
    padding: 1.6rem;
}

.booking-bot-field {
    position: absolute;
    left: -10000px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.booking-price-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.9rem;
}

.booking-price-box {
    margin: 0.35rem 0 1.15rem;
    padding: 1.1rem 1.25rem;
    border: 1px solid rgba(191, 217, 215, 0.85);
    border-radius: 22px;
    background: linear-gradient(135deg, rgba(248, 251, 251, 0.98), rgba(255, 255, 255, 0.92));
    box-shadow: 0 14px 34px rgba(120, 120, 120, 0.1);
    color: #34424e;
}

.booking-price-title {
    color: #6d7a86;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.booking-price-value {
    margin-top: 0.35rem;
    color: #4f5d68;
    font-size: 0.98rem;
    font-weight: 700;
}

.booking-price-details {
    margin: 0.65rem 0 0;
    padding: 0;
    list-style: none;
    color: #55616d;
    font-size: 0.96rem;
    line-height: 1.45;
}

.booking-price-details li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.36rem 0;
    border-bottom: 1px solid rgba(191, 217, 215, 0.55);
}

.booking-price-details li span {
    color: #4d5965;
}

.booking-price-details li:last-child {
    border-bottom: 0;
}

.booking-price-details strong {
    color: #34424e;
    min-width: 8.5rem;
    text-align: right;
    white-space: nowrap;
}

.booking-price-total {
    margin-top: 0.45rem;
    padding-top: 0.75rem !important;
    border-top: 2px solid rgba(191, 217, 215, 0.95);
    color: #26343f;
    font-size: 1.08rem;
    font-weight: 900;
}

.booking-price-total strong {
    font-size: 1.18rem;
}

.booking-price-note {
    margin-top: 0.55rem;
    color: #8a98a6;
    font-size: 0.82rem;
    line-height: 1.45;
}

.booking-human-check {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(191, 217, 215, 0.75);
    border-radius: 16px;
    background: rgba(191, 217, 215, 0.14);
}

.booking-human-check input {
    width: 18px;
    height: 18px;
    margin-top: 0.18rem;
    flex: 0 0 auto;
}

.booking-human-check label {
    margin: 0;
    line-height: 1.45;
}

.clean-form label {
    font-weight: 600;
    color: #4e5662;
    margin-bottom: 0.45rem;
}

.clean-form .form-control {
    min-height: 48px;
    border-radius: 14px;
    border: 1px solid rgba(191, 217, 215, 0.75);
    box-shadow: none;
}

.clean-form .form-control:focus {
    border-color: rgba(191, 217, 215, 1);
    box-shadow: 0 0 0 0.2rem rgba(191, 217, 215, 0.22);
}

.clean-form .btn-primary,
.clean-form input[type="submit"] {
    border-radius: 999px;
    padding: 0.8rem 1.2rem;
    border: 0;
    background: linear-gradient(135deg, rgb(191, 217, 215), rgb(164, 199, 197));
    color: #2f3b42;
    font-weight: 700;
}

.page-footer .row {
    row-gap: 1.75rem;
}

.page-footer img {
    width: 100% !important;
    max-width: 260px;
    height: auto;
}

.page-footer .footer-hotline {
    margin: 0.15rem 0 0;
    color: rgb(210, 209, 209) !important;
    line-height: 1.45;
}

.page-footer.dark .footer-hotline {
    color: rgb(210, 209, 209) !important;
}

@media (min-width: 768px) and (max-width: 1199.98px) {
    .landing-page .about-us {
        padding-top: 0.7rem;
    }

    .navbar.clean-navbar .navbar-brand.logo {
        font-size: 1.75rem;
    }

    #navcol-1 > img {
        width: 48px !important;
    }

    footer.clean-block.clean-hero {
        min-height: 520px;
        padding-top: 6.5rem;
    }

    .clean-card .card-img-top,
    .clean-services .card-img-top {
        height: 240px !important;
    }

    .wohnung-intro {
        max-width: 700px;
        padding: 1.4rem 1.5rem;
    }

    .soft-panel {
        max-width: 720px;
        padding: 1.4rem 1.5rem;
    }

    #carousel-1 .carousel-item img {
        height: 420px !important;
    }

    .page-footer .col-sm-3 {
        flex: 0 0 50%;
        max-width: 50%;
    }
}

@media (max-width: 767.98px) {
    body {
        font-size: 15px;
    }

    .clean-block {
        padding: 3rem 0;
    }

    .landing-page .about-us {
        padding-top: 0.35rem;
    }

    .navbar.clean-navbar {
        padding-top: 0.65rem;
        padding-bottom: 0.65rem;
    }

    .navbar.clean-navbar .container {
        align-items: flex-start;
    }

    .navbar.clean-navbar .navbar-brand.logo {
        font-size: 1.3rem;
        max-width: calc(100% - 56px);
    }

    #navcol-1 {
        width: 100%;
        padding-top: 0.75rem;
    }

    #navcol-1 > img {
        display: none;
    }

    .navbar.clean-navbar .navbar-nav .nav-link {
        padding: 0.5rem 0;
    }

    footer.clean-block.clean-hero {
        min-height: 360px;
        padding: 6rem 1rem 2.5rem;
    }

    footer.clean-block.clean-hero .text > img {
        width: min(72%, 240px) !important;
    }

    footer.clean-block.clean-hero .text p {
        font-size: 14px !important;
        padding-top: 1rem !important;
    }

    .clean-block .block-heading {
        margin-bottom: 2rem !important;
    }

    .clean-block h2 {
        font-size: 2rem;
    }

    .clean-block h3 {
        font-size: 1.2rem;
    }

    .row > [class*="col-"] {
        margin-bottom: 1.5rem;
    }

    .clean-card .card-img-top,
    .clean-services .card-img-top,
    #carousel-1 .carousel-item img {
        height: 220px !important;
    }

    .wohnung-intro {
        margin-top: 1rem;
        padding: 1.2rem 1rem;
        border-radius: 18px;
    }

    .soft-panel {
        margin-top: 1rem;
        padding: 1.2rem 1rem;
        border-radius: 18px;
    }

    .umgebung-text-card .card-body {
        padding: 1.25rem 1rem 1.35rem;
    }

    .landing-page .about-us .soft-panel + h2 {
        margin-top: 1rem;
    }

    .soft-copy {
        font-size: 1rem;
        line-height: 1.65;
    }

    .soft-list li {
        padding-left: 1.4rem;
        font-size: 1rem;
        line-height: 1.55;
    }

    .soft-note {
        margin-top: 1.2rem;
        font-size: 1rem;
    }

    .soft-phone {
        font-size: 1.02rem;
    }

    .wohnung-intro-list {
        gap: 0.8rem;
    }

    .wohnung-intro-list li {
        padding-left: 1.4rem;
        font-size: 1rem;
        line-height: 1.55;
    }

    .wohnung-intro-note {
        margin-top: 2.2rem;
        font-size: 1rem;
    }

    .wohnung-intro-phone {
        font-size: 1.02rem;
    }

    .page-footer {
        text-align: center;
    }

    .page-footer .col-sm-3,
    .page-footer .col-xl-3 {
        flex: 0 0 100%;
        max-width: 100%;
        margin-bottom: 0.5rem;
    }

    .page-footer img {
        max-width: 190px;
        margin: 0 auto;
        display: block;
    }

    .page-footer ul {
        margin-bottom: 0.35rem;
        padding-left: 0;
        list-style-position: inside;
    }

    .page-footer h5 {
        margin-bottom: 0.55rem;
    }

    .page-footer p {
        margin-bottom: 0.4rem;
        line-height: 1.55;
    }

    .page-footer li {
        margin-bottom: 0.2rem;
    }

    .page-footer .row {
        row-gap: 0.9rem;
    }

    .clean-form form {
        padding: 1.25rem;
    }

    .booking-shell {
        padding: 1.1rem;
        border-radius: 18px;
    }

    .booking-price-grid {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .price-list li {
        grid-template-columns: 1fr;
        display: grid;
        gap: 0.2rem;
    }
}
