/***************************************************************************************************
*** General Styles
***************************************************************************************************/

/*** Fonts ***/
@font-face { font-family: 'Marcellus'; src: url('../fonts/Marcellus.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
/*** System-Änderungen ***/
::selection { background: var(--bs-primary); color: rgb(255, 255, 255); text-shadow: none; }
:active, :focus, :focus-within { outline: none !important; }
input::placeholder { font-size: 1rem; }
a[type=button] { appearance: none; } /* Link mit button-Attribut nicht als System-Element rendern */
a { transition: all 0.2s ease; }
hr { height: 1px !important; color: var(--bs-primary); opacity: 1; margin: 3rem auto 0; }
* p:last-child { margin-bottom: 0; } /* Letzten Absatz OHNE margin-bottom */

/*** Bootstrap-Ergänzungen ***/
.bg-primary * { color: rgb(255, 255, 255) !important; }
.bg-primary-1 { background-color: rgba(var(--bs-primary-rgb), 0.25); }
.bg-primary-2 { background-color: rgba(var(--bs-primary-rgb), 0.5); }
.bg-secondary-1 { background-color: rgba(var(--bs-secondary-rgb), 0.25); }
.bg-secondary-2 { background-color: rgba(var(--bs-secondary-rgb), 0.5); }
.bg-lighter { background-color: rgba(255, 255, 255, 0.5); }
.bg-darker { background-color: rgba(0, 0, 0, 0.1); }
.dropdown-toggle::after { vertical-align: top; content: "\25BE"; border: none; font-family: 'Oswald'; margin: 0 0 0 0.25rem; line-height: 0; vertical-align: unset; } /* Dropdown-Caret ändern */
/*** Container-Verengungen => nur für Desktop ***/
@media(min-width: 992px){
  .narrow-50 { max-width: 50%; margin: 0 auto; }
  .narrow-66 { max-width: 66%; margin: 0 auto; }
  .narrow-75 { max-width: 75%; margin: 0 auto; }
  .narrow-90 { max-width: 90%; margin: 0 auto; }
}
/***************************************************************************************************
*** Template Custom Styles
***************************************************************************************************/
html, body { margin: 0; padding: 0; width: 100%; }
html { overflow-y: scroll; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; -webkit-tap-highlight-color: var(--bs-primary); }
body { position: relative; height: 100%; line-height: 1.5; -ms-word-wrap: break-word; word-wrap: break-word; }
main .main-bg, header .mobile-bg { background-color: rgba(255, 255, 255, 0.75); }
/*@media(min-width: 992px){ header .mobile-bg { background-color: unset; }}*/
@media screen and (prefers-reduced-motion: reduce) { a { transition: none; }}
/*** Hintergrundbild ***/
#background { background: url('/theme/public/assets/images/weinert-immobilien-background.jpg'); background-size: cover; background-position: center; z-index: -1; height: 100vh; }
#background.bg-small { height: 200px; } /* optionale Nutzung z.B. in anderen Templates */
/*** Logo + Claim ***/
header .navbar-brand { width: 250px; padding: 2rem 0; }
header .navbar-brand:hover { background-color: rgba(255, 255, 255, 0.2);}
/*** Mobile Menu Toggler ***/
.main-menu-toggler { width: 50px; height: 50px; top: 0; right: 0; border: 0; border-radius: 0; font-size: 1.25rem; background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI3LjIuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkViZW5lXzEiIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iCgkgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIgoJIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDUxMiA1MTIiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cmVjdCBmaWxsPSIjMDdBNTRGIiB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIvPgo8cGF0aCBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMjkuNzk4NCIgc3Ryb2tlLWxpbmVjYXA9InNxdWFyZSIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwMi40IiBkPSJNMTA4LjUsMTc0LjFoMjk1IE0xMDguNSwyNTYKCWgyOTUgTTEwOC41LDMzNy45aDI5NSIvPgo8L3N2Zz4K"); background-repeat: no-repeat; margin-right: 0.75rem; }
header h1.claim { background-color: var(--bs-primary); color: rgb(255, 255, 255); text-align: center; font-size: 1rem; text-shadow: 2px 2px 0px rgb(0 0 0 / 100%); margin: 0; }
@media(min-width: 576px){ header h1.claim { font-size: 1.5rem; }}
@media(min-width: 768px){ header h1.claim { font-size: 2rem; }}
@media(min-width: 992px){ header h1.claim { background-color: unset; color: rgb(0, 0, 0); padding-left: 2.5rem; text-shadow: 2px 2px 0px rgb(255 255 255 / 50%); text-align: left; line-height: 1; margin: 2px 0 0; }}
@media(min-width: 1400px){ header h1.claim { padding-left: 5rem; }}
/*** Rectangles (Index-Boxen) ***/
.rectangles { z-index: 100; padding: 0; margin: 0; list-style-type: none; }
.rectangles .col-4 { background-color: rgba(255, 255, 255, 0.4); text-align: center; justify-content: center; flex-direction: column; z-index: 99; cursor: pointer; transition: 0.3s; -webkit-transition: 0.3s; -moz-transition: 0.3s; -o-transition: 0.3s; -ms-transition: 0.3s; }
.rectangles .col-4:hover { background-color: rgba(var(--bs-secondary-rgb), 0.4); transition: 0.3s; -webkit-transition: 0.3s; -moz-transition: 0.3s; -o-transition: 0.3s; -ms-transition: 0.3s; transform: perspective(200px) rotateX(10deg); z-index: 100; }
.rectangles .col-4 a.active { display: block; background-color: rgba(255, 255, 255, 0.75); }
/*** Bilder-Style + mBlock-Spalten-Style ***/
.frame { border: 3px solid rgba(var(--bs-secondary-rgb), 1); }
.pswp-gallery picture { border-bottom-right-radius: 0; }
/* Lupen-Symbol am Thumbnail bei Lightbox-Nutzung */
.pswp-gallery .imagebadge { position: absolute; bottom: 0px; right: 0px; padding: 2px 0 0 2px; border-top-left-radius: 50%; background: rgb(255, 255, 255); line-height: 1; transition: opacity 100ms linear; content: url('data:image/svg+xml; utf8, <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20"><path fill="black" stroke="black" stroke-opacity="1" stroke-width="0.25" d="M16.32 14.9l5.39 5.4a1 1 0 0 1-1.42 1.4l-5.38-5.38a8 8 0 1 1 1.41-1.41zM10 16a6 6 0 1 0 0-12 6 6 0 0 0 0 12zm1-7h2a1 1 0 0 1 0 2h-2v2a1 1 0 0 1-2 0v-2H7a1 1 0 0 1 0-2h2V7a1 1 0 1 1 2 0v2z"/></svg>');}
.pswp-gallery .imagebadge--hidden { opacity: 0; }

/***************************************************************************************************
/*** Footer ***/
/**************************************************************************************************/
footer.container { max-width: calc(100% - var(--bs-gutter-x)); margin: 0 auto; padding: 1rem 2rem; }
footer a { color: rgba(255, 255, 255, 0.7); text-decoration: none; }
footer a:hover { color: rgb(255, 255, 255); text-decoration: none; }
@media (min-width: 576px){ footer.container { max-width: calc(540px - var(--bs-gutter-x)); }}
@media (min-width: 768px){ footer.container { max-width: calc(720px - var(--bs-gutter-x)); }}
@media (min-width: 992px){ footer.container { max-width: calc(960px - var(--bs-gutter-x)); }}
@media (min-width: 1200px){ footer.container { max-width: calc(1140px - var(--bs-gutter-x)); }}
@media (min-width: 1400px){ footer.container { max-width: calc(1320px - var(--bs-gutter-x)); }}
footer #footer_menu li::after { content: '▪︎'; color: rgb(255, 255, 255); text-decoration: none; padding: 0 0.5rem; }
footer #footer_menu li:last-child::after { content: ''; }
#footer_menu { margin: 0; padding: 0; }
#footer_menu li { list-style-type: none; display: inline-block; }

/***************************************************************************************************
*** Navigation (mobil)
***************************************************************************************************/
/*** Aufflackern der Mobile-Navigation beim Pageload vermeiden... ***/
#mobile_menu:not(.mm-menu) { display: none; }
.mm-menu { --mm-color-background: var(--bs-primary); --mm-color-text: rgb(255, 255, 255); --mm-color-button: rgb(255, 255, 255); --mm-color-text-dimmed: rgb(255, 255, 255); --mm-color-border: rgba(255, 255, 255, 0.5); }
.mm-navbars .mm-navbar:first-child { background: rgb(255, 255, 255); padding: 1.5rem 0; }
.mm-navbar { font-weight: bold; justify-content: end; min-height: 35px; }
.mm-btn--close { font-size: 150%; }
.mm-panel { background: rgba(255, 255, 255, 0.2); }
.mm-wrapper__blocker { background: rgba(0, 0, 0, 0.8); }
.mm-wrapper--opened .mm-wrapper__blocker { opacity: 1; --mm-blocker-opacity-delay: 0.1s; }

/***************************************************************************************************
*** Fragment: section.php
***************************************************************************************************/
section, .section { padding-left: 2rem; padding-right: 2rem; }
.ptzero { padding-top: 0 !important; }
.ptsm { padding-top: 2rem !important; }
.pt { padding-top: 4rem !important; }
.ptxl { padding-top: 6rem !important; }
.pbzero { padding-bottom: 0 !important; }
.pbsm { padding-bottom: 2rem !important; }
.pb { padding-bottom: 4rem !important; }
.pbxl { padding-bottom: 6rem !important; }
.mtzero { margin-top: 0 !important; }
.mtsm { margin-top: 2rem !important; }
.mt { margin-top: 4rem !important; }
.mtxl { margin-top: 6rem !important; }
.mbzero { margin-bottom: 0 !important; }
.mbsm { margin-bottom: 2rem !important; }
.mb { margin-bottom: 4rem !important; }
.mbxl { margin-bottom: 6rem !important; }
/*** Section-Hintergrundbild ***/
.parallaxe { position: relative; background-attachment: fixed; z-index: 0; }
.parallaxe::before { position: absolute; top: 0; left: 0; content: ''; width: 100%; height: 100%; mix-blend-mode: multiply; background-color: rgb(var(--bs-primary-rgb)); z-index: -1; }
.parallaxe[class*=bg-primary]::before { background-color: rgb(var(--bs-primary-rgb)); }
.parallaxe[class*=bg-secondary]::before { background-color: rgb(var(--bs-secondary-rgb)); }
.parallaxe * { color: rgb(255, 255, 255) !important; }

/***************************************************************************************************
*** Fragment: headline.php
***************************************************************************************************/
.heading h1, .heading h2, .heading h3, .heading h4 { text-align: center; }
.heading .topline, .heading .subline { text-align: center; }

/***************************************************************************************************
*** Fragment: bildergalerie.php
***************************************************************************************************/
[class*="col-galerie"] { flex: 0 0 auto; width: 100%; }
[class*="col-galerie"]:nth-child(1n) { margin-bottom: 1.5rem; }
[class*="col-galerie"]:last-child { margin-bottom: 0 !important; }
@media (min-width: 576px){
  [class*="col-galerie"]:nth-child(n){ margin-bottom: 0; }
  [class*="col-galerie"]:nth-child(2n){ margin-bottom: 1.5rem; }
  .col-galerie-2, .col-galerie-3, .col-galerie-4, .col-galerie-5, .col-galerie-6 { flex: 0 0 auto; width: 50%; }
}
@media (min-width: 992px){
  [class*="col-galerie"]:nth-child(n){ margin-bottom: 0; }
  .col-galerie-3, .col-galerie-4, .col-galerie-5, .col-galerie-6 { flex: 0 0 auto; width: 33.333%; }
  .col-galerie-2:nth-child(2n), .col-galerie-3:nth-child(3n), .col-galerie-4:nth-child(3n), .col-galerie-5:nth-child(3n), .col-galerie-6:nth-child(3n){ margin-bottom: 1.5rem; }
}
@media (min-width: 1200px){
  [class*="col-galerie"]:nth-child(n){ margin-bottom: 0; }
  .col-galerie-3 { flex: 0 0 auto; width: 33.333%; }
  .col-galerie-4 { flex: 0 0 auto; width: 25%; }
  .col-galerie-5 { flex: 0 0 auto; width: 20%; }
  .col-galerie-6 { flex: 0 0 auto; width: 16.666%; }
  .col-galerie-2:nth-child(2n), .col-galerie-3:nth-child(3n), .col-galerie-4:nth-child(4n), .col-galerie-5:nth-child(5n), .col-galerie-6:nth-child(6n){ margin-bottom: 1.5rem; }
}
.row.g-0 [class*="col-galerie"]:nth-child(1n) { margin-bottom: 0; }
.bildergalerie .row.g-0 { margin-left: -2.75rem; margin-right: -2.75rem; }

/***************************************************************************************************
*** Fragment: formular.php
***************************************************************************************************/
#rex-yform label, #rex-yform button { margin-top: 1rem; }
.alert ul { list-style-type: none; margin: 0; padding: 0; text-align: center; }
.alert.alert-success { background-color: rgb(var(--bs-secondary-rgb)); color: rgb(255, 255, 255); }

/***************************************************************************************************
*** ImmoWelt-Overrides
***************************************************************************************************/
#iwModule, #iwModule #iwWidget { background: none !important; margin: 0 auto !important; }
#iwModule #iwWidget .hm_listbox a:hover { margin: 0 !important; padding: 0 !important; border: 0 !important; }
/***************************************************************************************************
*** Immoscout24
***************************************************************************************************/
.iframe { background:url('/theme/public/assets/images/loading.gif') top center no-repeat; }


/*** Modul-Pretext mit Folgeabstand ausstatten (margin korrespondierend zur <hr>-Trennlinie) */
/*** NOCH ZU PRÜFEN .pretext { margin-bottom: 3rem; } */
/*** Abstände Überschriften im Fließtext ***/
p + h1, p + h2, p + h3, p + h4, p + h5, p + h6,
ul + h1, ul + h2, ul + h3, ul + h4, ul + h5, ul + h6,
ol + h1, ol + h2, ol + h3, ol + h4, ol + h5, ol + h6 { margin-top: 3rem; }


.nav-item:not(:last-child) { margin-right: 0.25rem;}
.nav-item .nav-link { background-color: rgba(0, 0, 0, 0.25); text-shadow: 1px 1px 0px rgb(0 0 0 / 50%) }




.intro img { height: auto; object-fit: cover; object-position: bottom; }
.intro .intro-text { width: 100%; padding: 2rem; background-color: rgb(255, 255, 255); }
/*
@media(min-width: 576px){ .intro .intro-text {   padding: 3rem; }
}
@media(min-width: 768px){ .intro { box-shadow: 0px 60px 80px rgb(0 0 0 / 20%) !important; }
  .intro .intro-text { width: 85%; bottom: -125%; padding: 4rem; box-shadow: 0px 60px 80px rgb(0 0 0 / 20%) !important; }
}
@media(min-width: 992px){ .intro img { height: 400px; object-position: top; }
  .intro .intro-text { bottom: -75%; }
}
@media(min-width: 1200px){ .intro img { object-position: 0 50%; }
  .intro .intro-text { bottom: -55%; }
}
*/

@media(min-width: 768px){ .intro img { box-shadow: 0px 60px 80px rgb(0 0 0 / 20%) !important; }
  .intro .intro-text { width: 85%; margin: -20% auto 0; padding: 4rem; box-shadow: 0px 60px 80px rgb(0 0 0 / 20%) !important; }
}
/*
@media(min-width: 992px){ .intro img { height: 400px; object-position: top; }
  .intro .intro-text { margin: -20% auto 0; padding: 4rem; }

}
*/
