﻿.mb-3 > .invalid-feedback {
    min-height: 1.25rem;
}

/* Fixiert die Höhe des Wrappers auf Input-Höhe, damit top:50% stabil ist */
.field-wrap {
    min-height: calc(2.5rem + var(--bs-border-width,1px)*2);
}

/* Icon-Label zentriert im Input (nicht vom Feedback beeinflusst) */
.icon-label {
    position: absolute;
    left: .75rem;
    top: 50%;
    transform: translateY(-50%);
    padding: 0;
    margin: 0;
    pointer-events: none;
}

/* Für Textarea: Icon oben ausrichten */
.icon-label-textarea {
    top: .9rem;
    transform: none;
}
.footer-hover a {
    color: inherit; /* oder deine normale Textfarbe */
    text-decoration: none; /* falls du kein Unterstreichen willst */
}

.footer-hover a:hover {
    color: #fff !important; /* Weiß beim Hover */
}
.cookie-banner {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999;
    background: #222;
    color: #fff;
    padding: 16px;
    box-shadow: 0 -4px 16px rgba(0,0,0,.2);
}

.cookie-content {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    gap: 16px;
    align-items: flex-start;
    flex-wrap: wrap;
}

.cookie-text {
    flex: 1 1 420px;
}

.cookie-actions {
    display: flex;
    gap: 8px;
    align-items: center;
}

.cookie-settings {
    width: 100%;
    margin-top: 12px;
    padding: 12px;
    background: #111;
    border-radius: 8px;
}

    .cookie-settings .form-check {
        margin-bottom: 6px;
    }

.cookie-banner a {
    color: #9bd;
}
.cookie-banner a {
    color: #00bfff; /* kräftiges Blau */
    text-decoration: underline; /* erkennbar, auch ohne Farbe */
}

.cookie-banner a:hover {
    color: #fff; /* beim Hover hell */
}
.card-img-top img {
    width: 100%;
    height: 200px; /* oder per Klasse variabel */
    object-fit: cover;
    aspect-ratio: 3/2;
}
#calendarId .range.begin::before,
#calendarId .range.end::before,
#calendarId .item.begin::before,
#calendarId .item.end::before {
    content: none !important;
}

/* keine eigenen Hintergründe/Rundungen vom Plugin */
#calendarId .range,
#calendarId .item {
    background: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    clip-path: none !important;
    box-shadow: none !important;
}

/* falls die Fork Background-Images auf day-content nutzt */
#calendarId .day .day-content {
    background-image: none !important;
}

/* sicherstellen, dass day-content die ganze Zelle füllt */
#calendarId .day,
#calendarId .day .day-content {
    position: relative;
}

#calendarId .day .day-content {
    height: 100%;
    min-height: 100%;
    border-radius: 0 !important;
}
#calendarId .day .day-content {
    z-index: 2;
}

#calendarId .range, #calendarId .item {
    z-index: 1 !important;
}
#calendarId .range,
#calendarId .item {
    display: none !important;
}

/* Zellen vorbereiten für unseren Overlay */
#calendarId .day,
#calendarId .day .day-content {
    position: relative;
}

/* Unser Vollflächen-Overlay */
#calendarId .day .day-content .ga-block {
    position: absolute;
    inset: 0;
    border-radius: 0 !important;
    clip-path: none !important;
    pointer-events: none;
    z-index: 1;
}

/* Tageszahl & Inhalt über dem Overlay zeigen */
#calendarId .day .day-content > *:not(.ga-block) {
    position: relative;
    z-index: 2;
}
.gm-style-iw {
    overflow: visible !important;
    max-height: none !important;
}

.gm-style-iw-d {
    overflow: visible !important;
    max-height: none !important;
}
#listing-detail-hero-1Map {
    min-height: 260px; /* oder was passt */
    height: 100%;
    /* optional statt height: aspect-ratio für responsive */
    aspect-ratio: 16 / 9;
}
.twic-blur {
    filter: blur(20px);
    transition: filter .3s ease;
}

.twic-blur.is-loaded {
    filter: blur(0);
}
.twic-bg {
    position: relative;
    overflow: hidden; /* damit das Overlay nicht „ausläuft“ */
    background-repeat: no-repeat;
    /* background-size/background-position setzen wir inline per style, aber hier nochmal als Fallback: */
    background-size: cover;
    background-position: center;
}
.twic-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: var(--twic-preview);
    background-size: inherit;
    background-position: inherit;
    background-repeat: no-repeat;
    filter: blur(20px);
    transform: scale(1.05); /* verhindert Rand-Artefakte beim Blur */
    transition: opacity .35s ease;
    opacity: 1;
    pointer-events: none;
}

.twic-bg.is-loaded::before {
    opacity: 0; /* Preview-Overlay ausblenden, wenn Hi-Res da ist */
}
h1 {
    font-size: 2rem; /* oder px, em, was du nutzt */
}
/* Verhindert Umbrüche der Nav-Links */
.navbar .nav-link {
    white-space: nowrap;
}

/* Badge sauber oben rechts am Link „Meine Traumdomizile“ platzieren */
#bookmark-count {
    top: -0.25rem; /* leicht oberhalb */
    right: -0.5rem; /* leicht nach rechts raus */
}

/* Auf kleineren Screens darf die Liste wieder untereinander gehen (Bootstrap default).
   Ab lg erzwingen wir Zeile, Abstand, mittige Ausrichtung. */
@media (min-width: 992px) {
    .navbar-nav {
        flex-direction: row;
    }

        .navbar-nav .nav-item + .nav-item {
            margin-left: 1rem;
        }
    /* falls gap-* nicht greift */
}