/*!
Theme Name: wvg-theme
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: wvg-theme
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

wvg-theme is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
    box-sizing: content-box;
    height: 0;
    overflow: visible;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
    font-family: monospace, monospace;
    font-size: 1em;
}

/* Text-level semantics
	 ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */
a {
    background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
    border-bottom: none;
    text-decoration: underline;
    text-decoration: underline dotted;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
    font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
    font-family: monospace, monospace;
    font-size: 1em;
}

/**
 * Add the correct font size in all browsers.
 */
small {
    font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sub {
    bottom: -0.25em;
}

sup {
    top: -0.5em;
}

/* Embedded content
	 ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */
img {
    border-style: none;
}

dfn,
cite,
em,
i {
    font-style: italic;
}

address {
    margin: 0 0 1.5em;
}

pre {
    background: #eee;
    font-family: "Courier 10 Pitch", courier, monospace;
    line-height: 1.6;
    margin-bottom: 1.6em;
    max-width: 100%;
    overflow: auto;
    padding: 1.6em;
}

code,
kbd,
tt,
var {
    font-family: monaco, consolas, "Andale Mono", "DejaVu Sans Mono", monospace;
}

abbr,
acronym {
    border-bottom: 1px dotted #666;
    cursor: help;
}

mark,
ins {
    background: #fff9c0;
    text-decoration: none;
}

big {
    font-size: 125%;
}

/* Elements
--------------------------------------------- */

hr {
    background-color: #ccc;
    border: 0;
    height: 1px;
    margin-bottom: 1.5em;
}

dt {
    font-weight: 700;
}

dd {
    margin: 0 1.5em 1.5em;
}

/* Make sure embeds and iframes fit their containers. */
embed,
iframe,
object {
    max-width: 100%;
}

img {
    height: auto;
    max-width: 100%;
}


/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/

/* Comments
--------------------------------------------- */
.comment-content a {
    word-wrap: break-word;
}

.bypostauthor {
    display: block;
}

/* Widgets
--------------------------------------------- */
.widget {
    margin: 0 0 1.5em;
}

.widget select {
    max-width: 100%;
}

/* Media
--------------------------------------------- */
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
    border: none;
    margin-bottom: 0;
    margin-top: 0;
    padding: 0;
}

/* Make sure logo link wraps around logo image. */
.custom-logo-link {
    display: block;
}

/* Captions
--------------------------------------------- */
.wp-caption {
    margin-bottom: 1.5em;
    max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

.wp-caption .wp-caption-text {
    margin: 0.8075em 0;
}

.wp-caption-text {
    text-align: center;
}

/* Galleries
--------------------------------------------- */
.gallery {
    margin-bottom: 1.5em;
    display: grid;
    grid-gap: 1.5em;
}

.gallery-item {
    display: inline-block;
    text-align: center;
    width: 100%;
}

.gallery-columns-2 {
    grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3 {
    grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
    grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
    grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
    grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
    grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
    grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
    grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
    display: block;
}

/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/

/* Jetpack infinite scroll
--------------------------------------------- */

/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
    display: none;
}

/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
    display: block;
}

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/

/* Accessibility
--------------------------------------------- */

/* Text meant only for screen readers. */
.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important;
}

.screen-reader-text:focus {
    background-color: #f1f1f1;
    border-radius: 3px;
    box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
    clip: auto !important;
    clip-path: none;
    color: #21759b;
    display: block;
    font-size: 0.875rem;
    font-weight: 700;
    height: auto;
    left: 5px;
    line-height: normal;
    padding: 15px 23px 14px;
    text-decoration: none;
    top: 5px;
    width: auto;
    z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
    outline: 0;
}

/* Alignments
--------------------------------------------- */
.alignleft {

    /*rtl:ignore*/
    float: left;

    /*rtl:ignore*/
    margin-right: 1.5em;
    margin-bottom: 1.5em;
}

.alignright {

    /*rtl:ignore*/
    float: right;

    /*rtl:ignore*/
    margin-left: 1.5em;
    margin-bottom: 1.5em;
}

.aligncenter {
    clear: both;
    display: block;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 1.5em;
}

.wpcf7-list-item {
    margin: 0;
}

.wpcf7-form-control-wrap {
    display: block;
}

.wpcf7-spinner {
    display: none !important;
}

.wpcf7-not-valid-tip {
    font-size: 14px;
    margin-top: 5px;
}

.wpcf7 form .wpcf7-response-output {
    margin: 10px 0 0;
    padding: 0;
    border: 0;
    font-size: 14px;
}

blockquote {
    margin: 0;
}

.object-pos-right img {
    object-position: right;
}

.b-content-media .content-media .content p>img {
    border-radius: 16px;
}

.b-cards-grid .cards-about .card-el.style-2 .gradient.bg-soft-yellow {
    background: linear-gradient(180deg, rgba(247, 240, 201, 0) 24.33%, rgba(247, 240, 201, .64) 43.18%, #f7f0c9 60.36%);
}

.b-cards-grid .cards-about .card-el.style-2 .gradient.bg-mint-green {
    background: linear-gradient(180deg, rgba(123, 204, 149, 0) 24.33%, rgba(123, 204, 149, .64) 43.18%, #7bcc95 60.36%);
}

.b-cards-grid .cards-about .card-el.style-2 .gradient.bg-deep-forest {
    background: linear-gradient(180deg, rgba(4, 63, 52, 0) 24.33%, rgba(4, 63, 52, .64) 43.18%, #043f34 60.36%);
}

.content p>img {
    margin-top: 48px;
}

@media (max-width: 991px) {
    .content p>img {
        margin-top: 24px;
    }
}

.b-various-topics .form-wrapper {
    opacity: 0;
    visibility: hidden;
    position: absolute;
    overflow: hidden;
    z-index: -1;
    bottom: 0;
    left: 0;
    right: 0;
}

.b-various-topics .form-wrapper.active {
    overflow: visible;
    position: relative;
    z-index: 1;
}

.b-various-topics .form-wrapper.fade {
    opacity: 1;
    visibility: visible;
    transition: .3s;
}

.gfield_required {
    display: none !important;
}

/* ---- Apartments listing map ---- */
#apartments-listing-map {
    height: 600px;
}

.listing-cluster-icon {
    width: 56px;
    height: 56px;
    background: #273638;
    border-radius: 50%;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    line-height: 56px;
    text-align: center;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(39, 54, 56, 0.35);
}

/* Map popup overlay (sibling of map div, absolute inside map-result-wrap) */
.map-popup-overlay {
    position: absolute;
    top: 16px;
    right: 16px;
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.18);
    z-index: 1000;
    max-width: 880px;
    width: calc(100% - 32px);
    overflow: hidden;
    pointer-events: auto;
}

.map-popup-overlay.hidden {
    display: none;
}

.map-popup__inner {
    display: flex;
    min-height: 180px;
    padding: 16px;
}

.map-popup__media {
    width: 280px;
    aspect-ratio: 1;
    flex-shrink: 0;
    border-radius: 16px;
    overflow: hidden;
    position: relative;
}


.map-popup__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0;
}

.map-popup__content {
    width: calc(100% - 280px);
    padding: 20px 52px 20px 20px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 16px;
}

.map-popup__close {
    position: absolute;
    top: 0;
    right: 0;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: 1px solid var(--color-deep-forest);
    background: #fff;
    cursor: pointer;
    font-size: 28px;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex-shrink: 0;
    padding-bottom: 4px;
}

.map-popup__close:hover {
    border-color: #273638;
}

.map-popup__title {
    font-size: 24px;
    font-weight: 700;
    margin: 0;
    line-height: 1.3;
    padding-right: 8px;
    color: #273638;
}

.map-popup__title:not(:last-child) {
    margin-bottom: 16px;
}

.map-popup__address {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 20px;
    color: #555;
}

.map-popup__address img {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

.map-popup__stats {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.map-popup__stats span {
    display: flex;
    align-items: center;
    gap: 0 8px;
    font-size: 20px;
    color: #273638;
}

.map-popup__stats img {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

.map-popup__btn:not(:first-child) {
    margin-top: 16px;
}

.map-popup__btn {
    align-self: flex-start;
}

@media (max-width: 1199px) {
    .map-popup__close{
        width: 32px;
        height: 32px;
        font-size: 20px;
        padding-bottom: 2px;
    }
    
    .map-popup__media {
        width: 180px;
    }

    .map-popup__content {
        width: calc(100% - 180px);
    }

    .map-popup__title:not(:last-child) {
        font-size: 18px;
        margin-bottom: 0;
    }

    .map-popup__address,
    .map-popup__stats span {
        font-size: 16px;
    }

    .map-popup__btn:not(:first-child){
        margin-top: 0;
    }
}

@media (max-width: 700px) {
    .map-popup__inner{
        flex-wrap: wrap;
    }
    .map-popup__media{
        width: 100%;
        aspect-ratio: 16 / 6;
    }

    .map-popup__content{
        width: 100%;
        position: static;
        padding: 16px 0 0;
    }

    .map-popup__close {
        top: 16px;
        right: 16px;
    }
}


@media print {
    @page {
        size: A4;
        margin: 15mm;
    }

    /* Hide everything outside the two apartment sections */
    body.single-apartment .b-header,
    body.single-apartment .b-footer,
    body.single-apartment #wpadminbar,
    body.single-apartment .skip-link,
    body.single-apartment #primary>*:not(.b-hero-slider):not(.b-guest-apartment-detail) {
        display: none !important;
    }

    /* Hide UI elements that make no sense in print */
    body.single-apartment .sidebar-part,
    body.single-apartment .slider-navigation,
    body.single-apartment .thumbnail-part-wrap,
    body.single-apartment .back-wrap,
    body.single-apartment .map-wrap,
    body.single-apartment .overlay {
        display: none !important;
    }

    /* Fix Swiper — undo JS transform so all slides are visible */
    body.single-apartment .hero-part-wrap {
        overflow: visible !important;
        height: auto !important;
    }

    body.single-apartment .hero-part {
        height: auto !important;
    }

    body.single-apartment .swiper-wrapper {
        transform: none !important;
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 6px;
    }

    body.single-apartment .swiper-slide {
        width: 48% !important;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    body.single-apartment .swiper-slide:first-child {
        width: 100% !important;
    }

    /* Full-width layout — no sidebar */
    body.single-apartment .guest-apartment-detail {
        flex-direction: column !important;
    }

    body.single-apartment .detail-part {
        width: 100% !important;
        max-width: 100% !important;
        flex: none !important;
    }

    body.single-apartment .columns__inner {
        flex-wrap: wrap !important;
    }

    body.single-apartment .column {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    /* Reduce overall section spacing */
    body.single-apartment .b-guest-apartment-detail .nlc-mb-56-28 {
        margin-bottom: 20px !important;
    }

    body.single-apartment .b-guest-apartment-detail .nlc-mb-32 {
        margin-bottom: 10px !important;
    }

    /* Keep key-facts block (Fläche / Zimmer / Miete) on one page */
    body.single-apartment .details-icon {
        break-inside: avoid;
        page-break-inside: avoid;
        gap: 12px !important;
    }

    body.single-apartment .details-icon .detail-row {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    /* Reduce icon size and label spacing */
    body.single-apartment .details-icon .el-wrap {
        margin-bottom: 4px !important;
        gap: 6px !important;
    }

    body.single-apartment .details-icon .icon-32 {
        width: 18px !important;
        height: 18px !important;
        min-width: 18px !important;
    }

    body.single-apartment .details-icon .icon-32 img {
        width: 14px !important;
        height: 14px !important;
        max-width: 14px !important;
    }

    body.single-apartment .details-icon .text.uppercase {
        font-size: 7.5pt !important;
        letter-spacing: 0.06em !important;
    }

    body.single-apartment .details-icon .description p {
        margin: 0 !important;
        font-size: 11pt !important;
    }

    /* Section subtitle pills (OBJEKT INFO, DETAILS, LAGEPLAN, etc.) */
    body.single-apartment .subtitle {
        font-size: 7.5pt !important;
        padding: 3px 10px !important;
        letter-spacing: 0.1em !important;
    }

    /* Keep each info table row together */
    body.single-apartment .list-info__row {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    /* Address row at top of detail */
    body.single-apartment .detail-part>.apartment-detail>.nlc-mb-56-28:first-of-type .el-wrap {
        margin-bottom: 0 !important;
    }
}
input[type="date"]::-webkit-inner-spin-button,
input[type="date"]::-webkit-calendar-picker-indicator {
    display: none;
    -webkit-appearance: none;
}
.jsApartmentBookmark .img-active{
    opacity: 0;
}
.jsApartmentBookmark.active .img-active {
    opacity: 1;
}
a.result-row__link{
    color: inherit;
}
#reservation-section{
    display: none;
}
p a{
    color: inherit;
}
.apartments-filter-wrapper .form__row{
    width: calc((100% - (24px * 2)) / 3);
}
@media (max-width: 767px){
    .apartments-filter-wrapper .form__row{
        width: 100%;
    }
}
.custom-title{
    font-size: 24px;
    line-height: 36px;
    letter-spacing: .48px
}
.wp-block-heading:not(:first-child){
    margin-top: 48px;
}
.wp-block-heading:not(:last-child){
    margin-bottom: 32px;
}
@media (max-width: 767px){
    .apartments-filter-form{
        margin-bottom: 24px;
    }
}
.download-files .file-row{
    color: var(--text-color-main);
}
.download-files .file-row:hover .icon-file svg path {
    fill: var(--color-mint-green-2);
}
.gfield_description{
    font-size: 16px !important;
}
.consultants-form-wrapper{
    padding-top: 60px;
}
.consultants-form-wrapper .separator{
    height: 1px;
    width: 100%;
    background: var(--color-midnight-teal-70);
    margin-bottom: 60px;
}
.image-copyright-wrap {
    display: inline-block;
    position: relative;
    max-width: 100%;
}
/* Kill the inline descender gap and keep the image fluid. */
.image-copyright-wrap img,
.image-copyright-wrap picture {
    display: block;
    max-width: 100%;
    height: auto;
}
.image-copyright-wrap.aligncenter {
    display: block;
    width: -webkit-fit-content;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
}

.image-copyright {
    bottom: 10px;
    right: 10px;
    font-size: 13px;
    line-height: 1.3;
    z-index: 1;
    margin-left: 10px;
    text-align: right;
    margin-top: 10px;
    /* Long credits must wrap instead of spilling out of the image. */
    max-width: calc(100% - 20px);
    overflow-wrap: break-word;
    word-wrap: break-word;
    hyphens: auto;
}
.image-copyright__text {
    text-shadow: 0 1px 2px rgba(0, 0, 0, .35);
}

.overlay-copyright {
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, .2) 100%);
    /* Never swallow clicks on a linked image. */
    pointer-events: none;
}
@media (min-width: 992px){
    .b-hero-banner .image-copyright, .b-banner-content .image-copyright{
        bottom: 100px;
    }
}
/* Consultants section — street autocomplete */
.consultant-suggestions {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 10;
    margin: 0;
    padding: 8px 0;
    list-style: none;
    max-height: 320px;
    overflow-y: auto;
    background-color: var(--color-white);
    border: 1px solid var(--color-midnight-teal-70);
    border-radius: 16px;
    box-shadow: 0 8px 24px rgba(39, 54, 56, .12);
}
.consultant-suggestions[hidden] {
    display: none;
}
.consultant-suggestions__item {
    padding: 10px 24px;
    font-size: 18px;
    line-height: 1.35;
    color: var(--color-midnight-teal);
    cursor: pointer;
    transition: background-color .15s ease;
}
.consultant-suggestions__item.is-active,
.consultant-suggestions__item:hover {
    background-color: var(--color-pure-cloud);
}
.consultant-empty {
    font-size: 18px;
    line-height: 1.44;
    color: var(--color-midnight-teal-70);
}
.consultant-empty[hidden] {
    display: none;
}
.advisor-card .characteristics .break-word {
    overflow-wrap: break-word;
    word-wrap: break-word;
}
@media (max-width: 1500px) {
    .consultant-suggestions__item,
    .consultant-empty {
        font-size: 16px;
    }
}
.consultants-form-wrapper[hidden] {
    display: none;
}
