/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  Default GeneratePress child theme
 Author:       Filip Markovic
 Author URI:   https://banovi.ch
 Template:     generatepress
 Version:      0.1
*/

/* 
Theme Name: generatepress 
Child Description: Child-Theme generatepress 
Author: Banovi AG 
Author URI: https://banovi.ch 
Template: generatepress 
Version: 1.0 
Text Domain: generatepress-child 
*/

html {
	overflow-x: hidden;
	scroll-behavior: unset !important;
}

body {
    background-color: #fff;
    margin-top: 80px;
}

body,
body h1,
body h2,
body h6,
body p,
body a,
.slider-title div {
    font-family: 'neulis-sans' !important;
}

body p,
body a {
    font-weight: 200;
}

.site-header {
    text-align: center;
	width: 100%;
	position: fixed;
	top: 0;
	z-index: 9999;
    box-shadow: 0px 0px 50px 0px rgba(55,111,182,0.75);
    -webkit-box-shadow: 0px 0px 50px 0px rgba(55,111,182,0.75);
    -moz-box-shadow: 0px 0px 50px 0px rgba(55,111,182,0.75);
}

div#content {
    min-height: calc(100vh - 111px);
}

.inside-site-info {
    padding: 10px 40px;
}

.site-footer .site-info {
    border-top: 1px solid;
}

.inside-header {
    padding: 10px 15px;
}

.inside-header.grid-container {
    max-width: 1400px;
}

.one-container .site-content {
    padding: 0px 0px !important;
}

img.prefooter-img {
    max-height: 300px;
    object-fit: cover;
	transition: transform 0.3s ease-in-out;
}

.container-prefooter-img figure {
    overflow: hidden;
}

img.prefooter-img:hover {
    transform: scale(1.1);
}

.container-prefooter-img a {
    text-decoration: none;
    font-weight: 400;
}

img.gallerie-img {
	max-height: 400px;
	width: 100%;
	height: 100%;
    object-fit: cover;
}

.interactive-svg-container {
    max-width: 1400px;
    padding: 0;
}

.apartment-svg-wrapper {
    text-align: center;
}

svg#amAspach {
    max-height: 350px;
}

p.caption--google-notice, p.caption--google-notice a {
    color: #707070;
    font-size: 12px;
    opacity: .75;
}

input.wpcf7-form-control {
    width: 100%;
    background: transparent;
    border: none;
    border-bottom: 1px solid #707070;
    outline: none !important;
}

.contact-form--label p {
    margin: 0px;
    padding-top: 10px;
}

.contact-form--input p {
    margin: 0;
}

input[type="text"]:focus, 
input[type="email"]:focus, 
input[type="url"]:focus, 
input[type="password"]:focus, 
input[type="search"]:focus, 
input[type="tel"]:focus, 
input[type="number"]:focus, 
textarea:focus, 
select:focus {
    color: #707070;
    background-color: transparent;
    border-color: none;
}

input.wpcf7-form-control.wpcf7-submit.has-spinner {
    max-width: 200px;
    background: transparent;
    border: 1px solid #707070;
    color: #707070;
    text-transform: uppercase;
}

textarea.wpcf7-form-control.wpcf7-textarea {
    background: transparent;
    border: 1px solid #707070;
    margin-top: 15px;
}


.table-amaspach table {
	border: none;
	color: #707070;
}

.table-amaspach th, .table-amaspach td {
    border: none;
    padding: 5px 0px;
	font-weight: 200;
}

.table-amaspach thead {
    border-bottom: 2px solid;
}

.table-amaspach th:first-child, .table-amaspach td:first-child {
    width: 33.33%;
}

p.modal-value,
p.modal-value a {
    color: #376fb6;
    font-weight: 400;
    font-size: 28px;
    margin-bottom: 15px;
    text-transform: uppercase;
}

p.modal-label {
    margin: 0;
}

.anfrage-title {
    margin-top: 50px;
    text-transform: uppercase;
    margin-bottom: 35px;
    color: #376fb6;
}

input.wpcf7-form-control.wpcf7-text.hide {
    display: none;
}

.grecaptcha-badge { visibility: hidden; }


/* APT */

/* ==================================================================
   SVG-Wohnungen – exakt wie beim alten SVG
   ================================================================== */

svg polygon.st0,
svg polyline.st0,
svg path.st0,
svg .st1,
svg .st2 {
    stroke-width: 2px;
}

/* Alle Formen innerhalb einer Wohnung */
svg g[id^="apt-"] polygon,
svg g[id^="apt-"] polyline,
svg g[id^="apt-"] path {
    transition: stroke 0.3s ease-in-out, stroke-width 0.3s ease-in-out;
    vector-effect: non-scaling-stroke; /* damit stroke-width beim Zoomen gleich bleibt */
}

/* ------------------ Status: verfügbar ------------------ */
svg g[id^="apt-"].available polygon,
svg g[id^="apt-"].available polyline {
    fill: #8dd9b6 !important;
    stroke: #198754 !important;
    stroke-width: 2px !important;
}

/* Hover verfügbar → voll dunkelgrün wie früher */
svg g[id^="apt-"].available:hover,
svg g[id^="apt-"].available.hover-active {
    cursor: pointer;
}
svg g[id^="apt-"].available:hover polygon,
svg g[id^="apt-"].available.hover-active polygon,
svg g[id^="apt-"].available:hover polyline,
svg g[id^="apt-"].available.hover-active polyline {
    fill: #198754 !important;
    stroke: #000000 !important;
    stroke-width: 4px !important;
}

/* ------------------ Status: reserviert ------------------ */
svg g[id^="apt-"].reserved polygon,
svg g[id^="apt-"].reserved polyline {
    fill: #fff3cd !important;
    stroke: #ffc107 !important;
    stroke-width: 2px !important;
}

/* Hover reserviert → kräftiges Gelb */
svg g[id^="apt-"].reserved:hover polygon,
svg g[id^="apt-"].reserved.hover-active polygon,
svg g[id^="apt-"].reserved:hover polyline,
svg g[id^="apt-"].reserved.hover-active polyline {
    fill: #ffc107 !important;
    stroke: #b38600 !important;
    stroke-width: 4px !important;
}

/* ------------------ Status: verkauft ------------------ */
svg g[id^="apt-"].sold polygon,
svg g[id^="apt-"].sold polyline {
    fill: #f5f5f5 !important;
    stroke: #cccccc !important;
    stroke-width: 2px !important;
}

/* Hover verkauft → etwas dunkler grau */
svg g[id^="apt-"].sold:hover polygon,
svg g[id^="apt-"].sold.hover-active polygon {
    fill: #e0e0e0 !important;
    stroke: #999999 !important;
    stroke-width: 4px !important;
}

/* Klickbarer Cursor für die ganze Gruppe */
svg g[id^="apt-"] {
    cursor: pointer;
}

/* Rest deines CSS (Karten, Modal etc.) bleibt unverändert */
.apartment-card {
    display: grid;
    grid-template-columns: 1fr 1fr 1.3fr 1.4fr 1.2fr;
    align-items: center;
    transition: background 0.3s ease, border-color 0.3s ease, transform 0.3s ease, box-shadow 0.3s ease;
    cursor: pointer;
    padding: 5px 5px;
    color: #707070;
}
.apartment-card:hover,
.apartment-card.highlight {
    background: #376fb624 !important;
    border-color: #376FB6 !important;
    transform: translateY(-4px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}
.modal.show .modal-dialog { margin-top: 115px; }
svg { max-width: 100%; height: auto; }

.badge {
    border-radius: 0;
}

.apartment-table-header {
    display: grid !important;
    border-bottom: 2px solid #707070;
    padding: 0px 5px 5px 5px;
    color: #707070;
}

.apartment-table-body {
    margin-top: 10px;
}


/* ==================================================================
   Modal
   ================================================================== */


.modal-content {
    border-radius: 0;
}

h5.modal-title {
    text-transform: uppercase;
    color: #376FB6;
}

.modal button.btn.btn-secondary {
    background: transparent;
    border: 1px solid #707070;
    color: #707070;
    border-radius: 0;
}

a.btn.btn-primary.btn-sm {
    background: transparent;
    border: 1px solid #707070;
    color: #707070;
    border-radius: 0;
}