@charset "UTF-8";

/* ============================================================
   PNT SENIORENEINRICHTUNGEN – MAIN STYLESHEET
   Refactored | Bootstrap 5 lokal | Keine externen Quellen
   ============================================================ */


/* 01. LOKALE FONTS ------------------------------------------*/

@import url(../icons/font-awesome/css/font-awesome.min.css);
@import url(../icons/simple-line-icons/css/simple-line-icons.css);
@import url(../icons/simple-line-icons/css/line-awesome.min.css);

@font-face {
  font-family: 'Poppins';
  src: url('../fonts/poppins/poppins-regular.woff2') format('woff2'), url('../fonts/poppins/poppins-regular.woff') format('woff');
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('../fonts/poppins/poppins-medium.woff2') format('woff2'), url('../fonts/poppins/poppins-medium.woff') format('woff');
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('../fonts/poppins/poppins-semibold.woff2') format('woff2'), url('../fonts/poppins/poppins-semibold.woff') format('woff');
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('../fonts/poppins/poppins-bold.woff2') format('woff2'), url('../fonts/poppins/poppins-bold.woff') format('woff');
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('../fonts/poppins/poppins-extrabold.woff2') format('woff2'), url('../fonts/poppins/poppins-extrabold.woff') format('woff');
  font-weight: 800;
  font-display: swap;
}

@font-face {
  font-family: 'Montserrat';
  src: url('../fonts/montserrat/montserrat-v31-latin-700.woff2') format('woff2'), url('../fonts/montserrat/montserrat-bold.ttf') format('ttf');
  font-weight: 700;
  font-display: swap;
}


/* 02. CSS CUSTOM PROPERTIES ---------------------------------*/

:root {
  --pnt-primary: #205db2;
  --pnt-secondary: #802b96;
  --pnt-dark: #102e59;
  --pnt-nav-text: #244897;
  --pnt-purple-light: #a64dbd;
  --pnt-white: #ffffff;
  --pnt-bg-light: #f2f2f2;
  --pnt-bg-grey-background: #f0f1f3;
  --pnt-border: #e1e8ed;
  --pnt-ambulante: #35a936;
  --pnt-kinder: #61bbeb;
  --pnt-pflegewg: #fdc300;
  --pnt-sapv: #db6570;
  --pnt-heimbeatmung: #bd6094;
  --pnt-ausbildung: #f99d36;
  --pnt-betrwohn: #96c11f;
  --pnt-wund: #e30613;
}


/* 03. RESET & BASE ------------------------------------------*/

*,
*::before,
*::after {
  box-sizing: border-box
}

html,
body,
div,
span,
h1,
h2,
h3,
h4,
h5,
h6,
p,
a,
abbr,
em,
img,
strong,
sub,
sup,
b,
u,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
details,
figcaption,
figure,
footer,
header,
menu,
nav,
section,
summary {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  vertical-align: baseline
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
menu,
nav,
section {
  display: block
}

html {
  max-width: 100vw;
  overflow-x: hidden;
}

body {
  font-family: 'Poppins', sans-serif;
  color: #aeb4b6;
  font-size: 14px;
  font-weight: 400;
  overflow-x: hidden;
  max-width: 100%;
}

body.white-nav.nav-top-p {
  padding-top: 130px
}

ul {
  padding: 0;
  margin: 0;
  list-style: none
}

a:focus,
a:hover {
  text-decoration: none
}

select:focus {
  outline: none;
  box-shadow: none
}

button:focus {
  outline: 0
}

::placeholder {
  color: #7e7f82
}

p {
  font-family: 'Poppins', sans-serif;
  font-size: 13px;
  line-height: 24px
}

a,
.dropdown-item,
.drop-menu,
.drop-menu .select i,
.wrapper:before,
.popup,
.price,
.price>h4,
.agent_info>h3,
.slick-prev,
.slick-next,
.categories-info,
.catg-icon>i,
.categories-info>h3,
.overlay-stick,
.map-city-links ul li a,
.header .navbar-nav .nav-item .nav-link,
.drop-menu .select .currency,
.drop-menu .dropeddown li,
.card .img-block:before,
.card .img-block:after,
.popular-cities .card:before,
.popular-cities .card:after,
.banner-search .btn:before,
.banner-search .btn:after,
.intro-content a:before,
.intro-content a:after,
.sbmt-btn:before,
.sbmt-btn:after,
.btn2:before,
.btn2:after,
.btn-default:before,
.btn-default:after,
.card .img-block .overlay,
.srch-btn .overlay,
.card .card-body h3,
.explore-feature .card .card-body i,
.popular-cities .card .overlay,
.popular-cities .card .card-body i,
.map-box h4 a,
.infoBox-close,
.map-box-icon,
.marker-card,
#geoLocation,
#mapnav-buttons a,
#scrollEnabling,
#streetView,
.bottom-list ul li a,
.footer-social a,
.alert-success,
.post-nfo li,
.post-nfo li a,
.post_info>h3 a,
.blog-img:before,
.agent_img:before,
.widget-catgs ul li a,
.widget-catgs ul li a span,
.ps-info>h3 a,
.widget-tags>ul li a,
.btn1,
.blog-single-post:hover .view-post,
.agent:hover .view-post,
.socio-links li a,
.social_links li a,
.btn-default,
.card .card-footer a .la-heart-o,
.partner-logo>a img,
.anfrage-btn b:before,
.model-item .title,
.h-page-card .title a,
.btn,
.language-selector .drop-menu .dropeddown li {
  -webkit-transition: all 0.4s linear;
  -moz-transition: all 0.4s linear;
  -ms-transition: all 0.4s linear;
  -o-transition: all 0.4s linear;
  transition: all 0.4s linear;
}

/* 04. LAYOUT UTILITIES --------------------------------------*/

@media(min-width:1200px) {
  .container {
    max-width: 1440px;
    padding: 0
  }
}

section {
  float: left;
  width: 100%;
  position: relative
}

footer,
header {
  float: left;
  width: 100%
}

.section-padding {
  padding: 120px 0
}

.pnt-container {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 30px;
  width: 100%
}

.padding-top-60 {
  padding-top: 60px
}

.bg-grey {
  background-color: var(--pnt-bg-grey-background)
}

.overlay-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #070f43;
  opacity: .81
}

.vis-hid {
  display: none
}

.card {
  border-radius: 0;
  position: relative
}

.card-body {
  padding: 20px
}

.card-footer {
  padding: 20px
}

.ext-link {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%
}

.position-relative {
  position: relative
}


/* 05. TYPOGRAFIE --------------------------------------------*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: 'Poppins', sans-serif;
  font-weight: 600;
  color: inherit;
  line-height: 1.1;
  letter-spacing: -.02em;
  margin-bottom: .75rem
}

.section-heading {
  text-align: left;
  float: left;
  width: 100%;
  margin-bottom: 10px
}

.section-heading span {
  font-family: 'Poppins', sans-serif;
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--pnt-primary);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  display: block;
  line-height: 1.1em;
  width: 100%;
  margin-bottom: 0.5em;
}

.section-heading h2 {
  font-family: 'Poppins', sans-serif;
  font-size: 39px;
  font-weight: 600;
  color: var(--pnt-dark);
  line-height: 1.2;
  letter-spacing: -1.5px;
  float: left;
  width: 100%
}


/* 06. NAVIGATION / HEADER -----------------------------------*/

.header {
  height: auto
}

.header.fixed-top {
  border: none;
  background-color: transparent;
  transition: background-color .2s ease-in-out, padding .2s ease-in-out, box-shadow .2s ease;
  z-index: 1030
}

.white-nav .header.fixed-top {
  border-bottom: 4px solid var(--pnt-nav-text);
  background-color: var(--pnt-white);
  box-shadow: 0 4px 12px rgba(0, 0, 0, .1)
}

.header .navbar {
  padding: 15px 0
}

.header .navbar-brand img {
  max-width: 180px;
  filter: brightness(0) invert(1)
}

.white-nav .header .navbar-brand img {
  filter: unset
}

.header .navbar-nav {
  align-items: center
}

.header .navbar-nav .nav-item {
  margin-right: 27px
}

.header .navbar-nav .nav-item:last-child {
  margin-right: 0
}

.header .navbar-nav .nav-item .nav-link {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 16px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--pnt-white) !important;
  position: relative;
}

.header .navbar-nav .nav-item .nav-link:hover {
  color: var(--pnt-secondary) !important;
}

.white-nav .header .navbar-nav .nav-item .nav-link {
  color: var(--pnt-nav-text) !important;
}

.header .navbar-collapse.show .navbar-nav .nav-item .nav-link {
  color: var(--pnt-nav-text)
}

.header .navbar-collapse.show .navbar-nav {
  display: block;
  align-items: start
}

.header .navbar-nav .nav-item.anfrage-btn a.nav-link {
  border-radius: 0;
  text-transform: uppercase;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  padding: 10px 20px !important;
  color: var(--pnt-white) !important;
  background: rgba(255, 255, 255, 0);
  backdrop-filter: blur(5px);
  border: 1px solid rgba(255, 255, 255, .5);
}

.header .navbar-nav .nav-item.anfrage-btn a.nav-link:hover {
  background: rgba(255, 255, 255, .15);
  border-color: rgba(255, 255, 255, 1);
  color: var(--pnt-white) !important
}

.white-nav .header .navbar-nav .nav-item.anfrage-btn a.nav-link {
  background-color: var(--pnt-secondary);
  color: var(--pnt-white) !important;
  border: 1px solid var(--pnt-secondary)
}

.white-nav .header .navbar-nav .nav-item.anfrage-btn a.nav-link:hover {
  background-color: var(--pnt-nav-text) !important
}

.menu-button {
  width: 30px;
  height: 32px;
  background-color: inherit;
  border: 0;
  cursor: pointer;
  margin-top: 6px;
  display: none;
  padding: 0;
}

.menu-button span {
  width: 100%;
  height: 3px;
  border-radius: 2px;
  background-color: #fff;
  margin-bottom: 6px;
  display: block;
  transition: all 0.3s;
}

.white-nav .menu-button span {
  background-color: #000
}

/* Desktop: Bootstrap handelt das selbst */
@media (min-width: 992px) {
  .navbar-collapse {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    position: static;
    background: transparent;
    height: auto;
    padding: 0;
    width: auto;
  }
}

/* Mobile: Slide-in Panel */
@media (max-width: 991px) {
  .navbar-collapse {
    overflow: auto;
    position: fixed;
    top: 0;
    right: 0;
    width: 360px;
    height: 100%;
    background-color: var(--pnt-white);
    z-index: 99999;
    padding: 70px 30px;
    transition: all .4s ease-in-out;
    opacity: 0;
    visibility: hidden;
  }

  .navbar-collapse.show {
    opacity: 1;
    visibility: visible;
  }
}

.close-menu {
  color: #000;
  font-size: 36px;
  position: absolute;
  top: 10px;
  right: 20px;
  display: none
}

header.sticky {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  background-color: var(--pnt-white);
  box-shadow: 0 4px 10px rgba(0, 0, 0, .1);
  animation: fadeInDown .5s ease
}

body.sticky-active {
  padding-top: 105px
}

@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translateY(-20px)
  }

  to {
    opacity: 1;
    transform: translateY(0)
  }
}


/* 07. HERO BANNER -------------------------------------------*/

.main-banner-sec {
  position: relative;
  background-image: url('../images/header-karte1.jpg');
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  padding: 250px 0 200px 0
}

.main-banner-sec .overlay-bg {
  opacity: .50
}

.main-banner-sec .container {
  position: relative;
  z-index: 1;
}

.main-banner-sec h1,
.pnt-main-title {
  font-family: 'Poppins', sans-serif;
  font-size: 36px;
  font-weight: 700;
  color: var(--pnt-white);
  margin-top: 5px;
  text-shadow: 0 2px 4px rgba(0, 0, 0, .3)
}

.pnt-main-description {
  font-size: 17px;
  line-height: 1.7;
  margin-bottom: 40px;
  color: rgba(255, 255, 255, .9)
}

.pnt-header-text-version {
  color: var(--pnt-white);
  padding-right: 30px
}


/* 08. SVG KARTE ---------------------------------------------*/

.pnt-map-svg-wrapper {
  position: relative;
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
  transform: scale(1.2);
  transform-origin: center
}

.pnt-map-svg-wrapper.banner-map {
  background: transparent;
  transform: scale(1.3)
}

.pnt-map-svg-wrapper svg {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 auto;
  max-height: 450px
}

.pnt-map-svg-wrapper svg path {
  fill: var(--pnt-bg-light);
  stroke: #000000;
  stroke-width: .8;
  transition: fill .3s ease, stroke .3s ease;
  cursor: pointer
}

.pnt-map-svg-wrapper svg path:hover {
  fill: var(--pnt-secondary);
  stroke: var(--pnt-secondary)
}

.main-banner-sec .pnt-map-svg-wrapper.banner-map svg path {
  fill: rgba(255, 255, 255, .9);
  stroke: rgba(0, 0, 0, .5);
  stroke-width: .5
}

.main-banner-sec .pnt-map-svg-wrapper.banner-map svg path:hover,
.main-banner-sec .pnt-map-svg-wrapper.banner-map svg path.active {
  fill: var(--pnt-secondary);
  opacity: 1
}

#pnt-location-display {
  color: var(--pnt-dark);
  font-weight: 600;
  font-size: 14px;
  transition: color .3s ease
}


/* 09. MAP MARKER & TOOLTIP ----------------------------------*/

.pnt-marker {
  position: absolute !important;
  width: 12px;
  height: 12px;
  background-color: var(--pnt-nav-text);
  border: 1.5px solid var(--pnt-white);
  border-radius: 50%;
  z-index: 99;
  cursor: pointer;
  transform: translate(-50%, -50%);
  transition: transform .2s ease, background-color .2s ease;
  box-shadow: 0 2px 5px rgba(0, 0, 0, .3)
}

.pnt-marker.klein {
  width: 10px;
  height: 10px
}

.pnt-marker.klein::after {
  width: 12px;
  height: 12px
}

.pnt-marker:hover,
.pnt-marker.marker-active {
  transform: translate(-50%, -50%) scale(1.7);
  background-color: var(--pnt-nav-text)
}

.pnt-marker::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  border: 1.5px solid var(--pnt-nav-text);
  transform: translate(-50%, -50%) scale(1);
  opacity: 0;
  pointer-events: none;
  transition: opacity .5s ease
}

.pnt-marker:hover::after,
.pnt-marker.marker-active::after {
  opacity: 1;
  animation: pnt-pulse 2s infinite
}

@keyframes pnt-pulse {
  0% {
    transform: translate(-50%, -50%) scale(1);
    opacity: 1
  }

  100% {
    transform: translate(-50%, -50%) scale(3);
    opacity: 0
  }
}

.pnt-marker.sec-color,
.pnt-marker.sec-color:hover,
.pnt-marker.sec-color.marker-active {
  background-color: var(--pnt-secondary)
}

.pnt-marker.sec-color::after {
  border: 1px solid var(--pnt-secondary) !important
}

.pnt-tooltip {
  visibility: hidden;
  position: absolute;
  bottom: 150%;
  background-color: var(--pnt-nav-text);
  color: var(--pnt-white);
  padding: 2px 6px;
  font-size: 8px;
  white-space: nowrap;
  opacity: 0;
  transition: all .3s ease;
  box-shadow: 0 4px 10px rgba(0, 0, 0, .2);
  z-index: 100
}

.pnt-tooltip::after {
  content: "";
  position: absolute;
  top: 100%;
  border-width: 6px;
  border-style: solid;
  border-color: var(--pnt-nav-text) transparent transparent transparent
}

.marker-active .pnt-tooltip {
  visibility: visible;
  opacity: 1;
  bottom: 180%
}

.pnt-marker.sec-color .pnt-tooltip {
  background-color: var(--pnt-secondary)
}

.pnt-marker.sec-color .pnt-tooltip::after {
  border-color: var(--pnt-secondary) transparent transparent transparent
}

.tip-right .pnt-tooltip {
  left: -1px;
  transform: translateX(0)
}

.tip-right .pnt-tooltip::after {
  left: 0
}

.tip-left .pnt-tooltip {
  right: -1px;
  transform: translateX(0)
}

.tip-left .pnt-tooltip::after {
  right: 0
}

.tip-bottom-left .pnt-tooltip,
.tip-bottom-right .pnt-tooltip {
  bottom: auto !important;
  top: 150%
}

.tip-bottom-left .pnt-tooltip::after,
.tip-bottom-right .pnt-tooltip::after {
  bottom: 100% !important;
  top: auto !important;
  border-color: transparent transparent var(--pnt-nav-text) transparent !important
}

.tip-bottom-left .pnt-tooltip::after,
.tip-bottom-right.sec-color .pnt-tooltip::after {
  border-color: transparent transparent var(--pnt-secondary) transparent !important
}

.tip-bottom-right .pnt-tooltip {
  left: -1px
}

.tip-bottom-right .pnt-tooltip::after {
  left: 0
}

.tip-bottom-left .pnt-tooltip {
  right: -1px
}

.tip-bottom-left .pnt-tooltip::after {
  right: 0
}

.pnt-marker.tip-bottom-left:hover .pnt-tooltip,
.pnt-marker.tip-bottom-right:hover .pnt-tooltip,
.pnt-marker.marker-active.tip-bottom-left .pnt-tooltip,
.pnt-marker.marker-active.tip-bottom-right .pnt-tooltip {
  top: 180%;
  visibility: visible;
  opacity: 1
}


/* 10. STANDORT SELECTOR (Hero) ------------------------------*/

.pnt-location-selector {
  background: rgba(255, 255, 255, .05);
  padding: 25px;
  border-left: 4px solid var(--pnt-secondary)
}

.pnt-selector-title {
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 20px;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--pnt-white)
}

.pnt-selection-list {
  list-style: none;
  padding: 0;
  margin: 0
}

.pnt-select-item {
  padding: 12px 0;
  font-size: 18px;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  transition: all .3s ease;
  border-bottom: 1px solid rgba(255, 255, 255, .1);
  color: var(--pnt-white)
}

.pnt-select-item:last-child {
  border-bottom: none;
  padding-bottom: 0
}

.pnt-select-item small {
  margin-left: 10px;
  font-weight: 400;
  opacity: .7;
  font-size: 1.1rem;
}

.pnt-select-item .pnt-dot {
  width: 12px;
  height: 12px;
  background: var(--pnt-white);
  border-radius: 50%;
  margin-right: 15px;
  flex-shrink: 0;
  transition: all .3s ease
}

.pnt-select-item:hover {
  padding-left: 10px;
  color: #f8f9fa
}

.pnt-select-item:hover .pnt-dot {
  background: var(--pnt-secondary);
  box-shadow: 0 0 10px var(--pnt-secondary);
  transform: scale(1.3)
}

.pnt-select-item.active-selection {
  color: var(--pnt-white);
  padding-left: 10px
}

.pnt-select-item.active-selection .pnt-dot {
  background: var(--pnt-secondary)
}

.pnt-select-item a {
  color: var(--pnt-white);
  text-decoration: none
}


/* 11. HEADER INFO CARD --------------------------------------*/

.pnt-header-info-card {
  border: 2px solid rgba(255, 255, 255, .3);
  padding: 25px;
  max-width: 500px;
  backdrop-filter: blur(1px);
  position: relative
}

.pnt-header-image-container {
  margin-bottom: 20px
}

#pnt-header-image {
  width: 100%;
  object-fit: cover;
  display: block
}

#pnt-header-title {
  font-size: 32px;
  color: var(--pnt-white);
  font-weight: 700;
  margin-bottom: 15px;
  font-family: 'Montserrat', sans-serif;
  letter-spacing: -.5px
}

.pnt-header-details {
  margin-bottom: 20px
}

.pnt-detail-row {
  display: flex;
  align-items: center;
  margin-bottom: 10px;
  color: var(--pnt-white);
  font-size: 15px;
  font-weight: 400
}

.pnt-detail-row i {
  width: 28px;
  font-size: 16px;
  margin-right: 10px;
  text-align: center;
  color: var(--pnt-white);
  opacity: .9
}

.pnt-header-badges {
  display: flex;
  gap: 8px;
  margin-top: 15px
}

.pnt-header-badges .service-box {
  width: 22px;
  height: 22px;
  border: 1px solid rgba(255, 255, 255, .5)
}

.pnt-header-footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 10px
}

.btn-pnt-pdf-download {
  background-color: var(--pnt-nav-text);
  color: var(--pnt-white) !important;
  font-size: 14px;
  font-weight: 700;
  padding: 12px 20px;
  border-radius: 0;
  display: inline-flex;
  align-items: center;
  transition: all .3s ease;
  border: none;
  text-transform: uppercase;
  text-decoration: none !important
}

.btn-pnt-pdf-download i {
  font-size: 18px;
  margin-right: 10px
}

.btn-pnt-pdf-download:hover {
  background-color: var(--pnt-white);
  color: var(--pnt-nav-text) !important;
  transform: translateY(-2px);
  box-shadow: 0 5px 15px rgba(0, 0, 0, .3)
}

.compact-info .pnt-header-image-container {
  margin: 0;
  border: 1px solid rgba(255, 255, 255, .3);
  height: 300px
}

.compact-info .pnt-header-content-box {
  border: 1px solid rgba(255, 255, 255, .3);
  border-top: none;
  padding: 25px
}

.compact-info.pnt-header-info-card {
  border: none
}

.compact-info.pnt-header-info-card:hover .pnt-header-content-box {
  background-color: var(--pnt-secondary)
}


/* 12. GOOGLE MAPS -------------------------------------------*/

#map-container.fullwidth-home-map {
  width: 100%;
  height: 500px
}

#map-container #map {
  width: 100%;
  height: 100%
}


/* 13. PNT LISTING (Standort-Cards) --------------------------*/

.pnt-listing {
  padding: 120px 0 100px 0
}

.pnt-location-card {
  background-color: var(--pnt-bg-grey-background);
  border: none;
  margin-bottom: 30px;
  transition: all .1s ease-in-out
}

.pnt-location-card .pnt-card-content {
  position: relative;
  z-index: 0;
  background-color: var(--pnt-bg-grey-background);
  padding: 25px 25px 30px 25px;
  border: none;
  transition: background-color .1s ease-in-out
}

.pnt-location-card:hover {
  background-color: var(--pnt-white);
  box-shadow: 0 0 20px 5px rgba(0, 0, 0, .07);
  z-index: 10
}

.pnt-location-card:hover .pnt-card-content {
  background-color: var(--pnt-white)
}

.pnt-location-card:hover .pnt-title,
.pnt-location-card:hover .pnt-address {
  color: var(--pnt-dark) !important
}

.pnt-location-card .img-block img {
  transition: filter .1s ease
}

.pnt-location-card:hover .img-block img {
  filter: brightness(1.05);
  opacity: 1;
  transform: none
}

.pnt-location-card .img-block .overlay {
  display: none;
  opacity: 0
}

.pnt-location-card .pnt-title {
  font-family: 'Poppins', sans-serif;
  font-size: 2rem;
  font-weight: 600;
  color: #242526;
  margin-bottom: 5px;
  letter-spacing: -.5px;
  line-height: 1.2
}

.pnt-listing .pnt-location-card .pnt-address {
  font-family: 'Poppins', sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: var(--pnt-dark);
  margin-bottom: 20px;
  opacity: .8
}

.rate-info {
  bottom: 10px !important;
  padding: 0 15px !important
}

.rate-info:before {
  display: none !important
}

.card .img-block .rate-info span {
  background-color: transparent !important;
  border: 1px solid var(--pnt-white) !important;
  color: var(--pnt-white) !important;
  padding: 4px 12px !important;
  border-radius: 0 !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: .5px !important;
  backdrop-filter: blur(2px)
}

.pnt-service-indicators {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0;
  list-style: none;
  clear: both
}

.pnt-service-indicators .service-box {
  display: block;
  width: 23px;
  height: 23px;
  min-width: 23px;
  min-height: 23px;
  border-radius: 3px;
  border: none;
  visibility: visible;
  opacity: 1
}


/* 14. CTA SECTION -------------------------------------------*/

.pnt-cta-section {
  padding: 120px 0
}

.pnt-cta-section.blue-cta {
  background-color: var(--pnt-nav-text)
}

.pnt-cta-section h2 {
  font-family: 'Poppins', sans-serif;
  font-size: 36px;
  font-weight: 700;
  color: var(--pnt-white);
  margin-bottom: 15px;
  line-height: 1.2
}

.pnt-cta-section p {
  color: rgba(255, 255, 255, .85);
  font-size: 16px;
  line-height: 1.6
}

.pnt-cta-buttons {
  display: flex;
  gap: 15px;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center
}

.btn-pnt-cta-main {
  background-color: var(--pnt-white);
  color: var(--pnt-primary) !important;
  font-size: 18px;
  font-weight: 700;
  padding: 16px 35px;
  border-radius: 0;
  display: inline-flex;
  align-items: center;
  transition: all .3s ease-in-out;
  border: 2px solid var(--pnt-white);
  text-transform: uppercase;
  letter-spacing: .5px;
  text-decoration: none
}

.btn-pnt-cta-main:hover {
  background-color: transparent;
  color: var(--pnt-white) !important
}

.btn-pnt-cta-outline {
  background-color: transparent;
  color: var(--pnt-white) !important;
  font-size: 18px;
  font-weight: 700;
  padding: 16px 35px;
  border-radius: 0;
  display: inline-flex;
  align-items: center;
  transition: all .3s ease-in-out;
  border: 2px solid var(--pnt-white);
  text-transform: uppercase;
  letter-spacing: .5px;
  text-decoration: none
}

.btn-pnt-cta-outline:hover {
  background-color: var(--pnt-white);
  color: var(--pnt-nav-text) !important
}


/* 15. TABS SECTION ------------------------------------------*/

.pnt-tabs-section {
  background-color: var(--pnt-white)
}

.pnt-tabs-section ul.nav-tabs {
  width: fit-content;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08);
}

.pnt-real-tabs .nav-item {
  margin-bottom: 0
}

.pnt-real-tabs .nav-link {
  border: none !important;
  border-radius: 0 !important;
  padding: 20px 40px;
  font-weight: 700;
  font-size: 18px;
  color: var(--pnt-nav-text);
  background-color: #f4f6f9;
  transition: all .3s ease;
  text-decoration: none
}

.pnt-real-tabs .nav-link:hover {
  background-color: var(--pnt-white);
  color: var(--pnt-secondary);
}

.pnt-real-tabs .nav-link.active {
  background-color: var(--pnt-secondary) !important;
  color: var(--pnt-white) !important;
}

.pnt-tab-main-container {
  background-color: #f4f6f9;
  border: none;
  background: #ffffff;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08);
}

.pnt-tab-title {
  font-family: 'Poppins', sans-serif;
  font-size: 28px;
  font-weight: 700;
  color: var(--pnt-dark);
  margin-bottom: 20px;
  line-height: 1.2
}

.pnt-tab-text {
  font-size: 16px;
  line-height: 1.7;
  color: #555;
  margin-bottom: 15px
}

.pnt-tab-list {
  list-style: none;
  padding: 0;
  margin: 20px 0 0 0;
  color: var(--pnt-nav-text);
}

.pnt-tab-list li {
  font-size: 15px;
  font-weight: 600;
  padding: 8px 0;
  display: flex;
  align-items: center;
  gap: 10px
}

.pnt-tab-list li i {
  font-size: 14px;
  flex-shrink: 0
}

.pnt-tab-main-container img {
  width: 100%;
  height: auto;
  display: block
}


/* 16. LEISTUNGEN SECTION ------------------------------------*/

.pnt-leistungen-section {
  position: relative;
  background-color: var(--pnt-primary);
  background-image: url('https://pnt-pflegedienste.de/wp-content/uploads/pnt-img-02.jpg');
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  background-blend-mode: multiply
}

.pnt-leistungen-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #102e59;
  opacity: .65;
  z-index: 1;
  pointer-events: none
}

.pnt-leistungen-section .container {
  position: relative;
  z-index: 2
}

.pnt-leistungen-section .section-heading {
  text-align: left;
  margin-bottom: 40px
}

.pnt-leistungen-section .section-heading span {
  color: var(--pnt-white) !important;
  opacity: .5
}

.pnt-leistungen-section .section-heading h2 {
  color: var(--pnt-white) !important;
  font-size: 32px;
  font-weight: 700;
  text-shadow: 0 2px 10px rgba(0, 0, 0, .2);
  margin: 0
}

.pnt-leistungen-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 15px
}

.leistung-item {
  background-color: var(--pnt-white);
  aspect-ratio: 1.2/1;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  padding: 35px;
  background-origin: content-box;
  border-bottom: 5px solid transparent;
  transition: all .3s ease;
  cursor: pointer
}

.pnt-leistungen-grid .leistung-item:not(.empty-box):hover {
  background-color: var(--pnt-bg-grey-background);
  box-shadow: 0 10px 20px rgba(0, 0, 0, .1)
}

.leistung-item.empty-box {
  background-color: rgba(255, 255, 255, .15) !important;
  background-image: none !important;
  border-bottom: none !important
}

.leistung-1 {
  background-image: url('https://pnt-pflegedienste.de/wp-content/uploads/app-erw-int.png');
  border-bottom-color: #244897
}

.leistung-2 {
  background-image: url('https://pnt-pflegedienste.de/wp-content/uploads/app-kind-int.png');
  border-bottom-color: #61bbeb
}

.leistung-3 {
  background-image: url('https://pnt-pflegedienste.de/wp-content/uploads/app-wg-768x646.png');
  border-bottom-color: #fdc300
}

.leistung-4 {
  background-image: url('https://pnt-pflegedienste.de/wp-content/uploads/app-erw-amb-1024x862.png');
  border-bottom-color: #35a936
}

.leistung-5 {
  background-image: url('https://pnt-pflegedienste.de/wp-content/uploads/app-ass-768x646.png');
  border-bottom-color: #802899
}

.leistung-6 {
  background-image: url('https://pnt-pflegedienste.de/wp-content/uploads/app-bewo-768x646.png');
  border-bottom-color: #8cc63f
}

.leistung-7 {
  background-image: url('https://pnt-pflegedienste.de/wp-content/uploads/apps-wund-1024x862.png');
  border-bottom-color: #e30613
}

.leistung-8 {
  background-image: url('https://pnt-pflegedienste.de/wp-content/uploads/app-fa-768x646.png');
  border-bottom-color: #db6570
}

.leistung-9 {
  background-image: url('https://pnt-pflegedienste.de/wp-content/uploads/app-ber-768x646.png');
  border-bottom-color: #f9ed36
}

.leistung-10 {
  background-image: url('https://pnt-pflegedienste.de/wp-content/uploads/app-sapv-768x646.png');
  border-bottom-color: #db6570
}

.leistung-11 {
  background-image: url('https://pnt-pflegedienste.de/wp-content/uploads/app-ausb-1024x862.png');
  border-bottom-color: #f99d36
}


/* 17. FAQ ACCORDION -----------------------------------------*/

.pnt-accordion-wrapper {
  width: 100%;
  display: block
}

.faq-item {
  background: var(--pnt-white);
  margin-bottom: 20px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, .06);
  border: none;
  border-radius: 0;
  overflow: hidden;
  display: block
}

.faq-header {
  padding: 25px 30px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  font-size: 19px;
  font-weight: 700;
  color: var(--pnt-dark);
  background: var(--pnt-white);
  transition: all .3s ease
}

.faq-title {
  font-size: inherit;
  font-weight: inherit;
  margin: 0;
  color: inherit;
}

.faq-header i {
  color: var(--pnt-nav-text);
  transition: transform .3s ease;
  flex-shrink: 0
}

.faq-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height .4s cubic-bezier(0, 1, 0, 1)
}

.faq-item.active .faq-content {
  max-height: 1000px;
  transition: max-height .4s ease-in-out
}

.faq-item.active .faq-header {
  color: var(--pnt-nav-text)
}

.faq-item.active .faq-header i {
  transform: rotate(180deg)
}

.faq-text {
  padding: 0 30px 30px 30px;
  color: #444;
  line-height: 1.7
}


/* 18. LOCATIONS GRID ----------------------------------------*/

.pnt-locations-section {
  background-color: var(--pnt-dark);
  padding: 60px 0;
  color: var(--pnt-white);
  border-bottom: 2px solid rgba(255, 255, 255, .1)
}

.pnt-locations-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px
}

.location-card h3 {
  font-family: 'Poppins', sans-serif;
  font-size: 21px;
  font-weight: 700;
  line-height: 1.2;
  color: var(--pnt-white);
  margin-bottom: 20px;
  text-transform: none
}

.location-card .address {
  font-family: 'Poppins', sans-serif;
  font-size: 14px;
  line-height: 1.5;
  margin-bottom: 20px;
  color: var(--pnt-white)
}

.location-card .address small {
  font-size: 12px;
  opacity: .8
}

.contact-details a {
  display: block;
  color: var(--pnt-white);
  font-size: 13px;
  text-decoration: none;
  margin-bottom: 8px;
  transition: opacity .2s
}

.contact-details a:hover {
  opacity: .7
}

.contact-details i {
  width: 20px;
  margin-right: 5px;
  font-size: 14px
}


/* 19. FOOTER ------------------------------------------------*/

.pnt-footer {
  background-color: var(--pnt-dark);
  padding: 35px 0;
  color: var(--pnt-white);
  font-family: 'Poppins', sans-serif
}

.footer-flex-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px
}

.pnt-f-logo,
.footer-logo img {
  max-width: 150px;
  height: auto;
  filter: brightness(0) invert(1)
}

.slogan-wrap {
  flex: 0 1 450px
}

.pnt-footer p,
.pnt-copyright-text,
.pnt-meta-links a {
  font-family: 'Poppins', sans-serif;
  font-size: 14px;
  line-height: 1.4;
  font-weight: 400;
  color: var(--pnt-white);
  margin: 0
}

.social-wrap {
  display: flex;
  gap: 10px
}

.pnt-social-sq {
  width: 44px;
  height: 44px;
  border: 2px solid var(--pnt-white);
  background-color: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--pnt-white) !important;
  font-size: 18px;
  transition: all .3s ease-in-out;
  text-decoration: none
}

.pnt-social-sq:hover {
  background-color: var(--pnt-white) !important;
  color: var(--pnt-dark) !important
}

.pnt-social-sq svg {
  fill: var(--pnt-white);
  transition: fill .3s ease-in-out
}

.pnt-social-sq:hover svg {
  fill: var(--pnt-dark) !important
}

.info-wrap {
  text-align: right
}

.pnt-copyright-text {
  font-weight: 500;
  margin-bottom: 5px
}

.pnt-meta-links a {
  text-decoration: none;
  font-weight: 500;
  color: rgba(255, 255, 255, .6)
}

footer .pnt-meta-links a:hover {
  color: var(--pnt-white)
}

.pnt-meta-links .divider {
  margin: 0 6px;
  opacity: .5;
  color: var(--pnt-white)
}

.footer-elephant-icon {
  display: block;
  width: 24px;
  height: auto;
}


/* 20. BUTTONS -----------------------------------------------*/

.btn-default {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  border-radius: 0;
  border: none;
  height: auto;
  line-height: normal;
  padding: 10px 20px;
  display: inline-block;
  transition: background-color .3s ease
}

.btn-default::before,
.btn-default::after {
  display: none !important
}

.button-purple {
  background-color: var(--pnt-secondary) !important;
  color: var(--pnt-white) !important
}

.button-purple:hover {
  background-color: var(--pnt-primary) !important;
  color: var(--pnt-white) !important
}

.button-blue {
  background-color: var(--pnt-primary) !important;
  color: var(--pnt-white) !important
}

.button-blue:hover {
  background-color: var(--pnt-secondary) !important;
  color: var(--pnt-white) !important
}

.button-light-blue {
  background-color: var(--pnt-primary) !important;
  color: var(--pnt-white) !important
}

.button-light-blue:hover {
  background-color: var(--pnt-secondary) !important
}

.button-dark-blue {
  background-color: var(--pnt-dark) !important;
  color: var(--pnt-white) !important
}

.button-dark-blue:hover {
  background-color: var(--pnt-secondary) !important
}

.hover-purple-light:hover {
  background-color: var(--pnt-purple-light) !important
}


/* 21. SERVICE BADGES ----------------------------------------*/

.service-box {
  display: inline-block;
  width: 23px;
  height: 23px;
  border-radius: 3px
}

.service-box.bg-erwachsenen {
  background-color: #244897
}

.service-box.bg-kinder {
  background-color: #61bbeb
}

.service-box.bg-pflegewg {
  background-color: #fdc300
}

.service-box.bg-sapv {
  background-color: #db6570
}

.service-box.bg-ambulante {
  background-color: #35a936
}

.service-box.bg-ausbildung {
  background-color: #f99d36
}

.service-box.bg-betrwohn {
  background-color: #96c11f
}

.service-box.bg-wund {
  background-color: #e30613
}


/* 22. RESPONSIVE --------------------------------------------*/

@media(max-width:1024px) {
  .footer-flex-container {
    flex-direction: column;
    text-align: center
  }

  .info-wrap {
    text-align: center
  }

  .slogan-wrap {
    flex: auto
  }
}

@media(max-width:991px) {
  .menu-button {
    display: block
  }

  .close-menu {
    display: block
  }

  .header .navbar-nav .nav-item {
    width: 100%;
    margin-right: 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  }

  .header .navbar-nav .nav-item:last-child {
    border-bottom: none;
  }

  .header .navbar-nav .nav-item .nav-link {
    padding: 15px 0 14px 0;
    color: var(--pnt-dark) !important;
  }

  #navbarSupportedContent .navbar-nav {
    margin-bottom: 35px;
    width: 100%;
  }

  .header .navbar-nav .nav-item.anfrage-btn a.nav-link {
    background-color: var(--pnt-secondary);
    color: var(--pnt-white) !important;
    border: 1px solid var(--pnt-secondary);
    text-align: center;
    margin-top: 15px;
  }

  .main-banner-sec {
    padding: 150px 0 100px 0
  }

  .main-banner-sec.hp6 {
    padding-top: 150px !important
  }

  .pnt-header-text-version {
    padding-right: 0
  }

  .pnt-main-title {
    font-size: 30px
  }

  .pnt-map-svg-wrapper {
    transform: scale(.6)
  }

  .main-banner-sec .pnt-map-svg-wrapper {
    transform: scale(.6)
  }

  .pnt-map-svg-wrapper.banner-map {
    margin-left: 0;
    margin-right: auto;
    width: 100%;
    max-width: 100%;
    display: block
  }

  .pnt-map-svg-wrapper.banner-map svg {
    width: 100%;
    height: auto
  }

  #map-container.fullwidth-home-map {
    height: 450px
  }

  .pnt-cta-buttons {
    justify-content: flex-start;
    margin-top: 30px
  }

  .pnt-cta-section {
    padding: 60px 0
  }

  .pnt-cta-section h2,
  .section-heading h2 {
    font-size: 28px
  }

  .pnt-cta-section h2 {
    line-height: 1.2
  }

  .pnt-real-tabs .nav-item {
    width: 100%
  }

  .pnt-leistungen-grid {
    display: flex;
    flex-direction: column
  }

  .empty-box {
    display: none
  }

  .pnt-locations-grid {
    grid-template-columns: repeat(2, 1fr)
  }

  .pnt-header-info-card {
    max-width: 100%;
    padding: 15px
  }

  #pnt-header-title {
    font-size: 26px
  }

  .pnt-header-footer {
    justify-content: center
  }
}

@media(max-width:767px) {

  .main-banner-sec h1,
  .pnt-main-title {
    font-size: 26px
  }

  .section-heading h2 {
    font-size: 26px
  }

  #map-container.fullwidth-home-map {
    height: 350px
  }

  .pnt-tab-title {
    font-size: 22px
  }
}

@media(max-width:576px) {
  .main-banner-sec.hp6 {
    padding-top: 150px !important
  }

  .pnt-select-item {
    font-size: 14px
  }

  .pnt-select-item small {
    font-size: 14px
  }

  .pnt-locations-grid {
    grid-template-columns: 1fr
  }

  .navbar-collapse {
    width: 100%
  }
}

/* IMG-BLOCK: Basis für absolute Positionierung der Rate-Info */
.pnt-location-card .img-block {
  position: relative;
  overflow: hidden;
}

.pnt-location-card .img-block img {
  width: 100%;
  display: block;
  object-fit: cover;
  aspect-ratio: 16 / 10;
}

/* Rate-Info absolut auf dem Bild unten links */
.pnt-location-card .img-block .rate-info {
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding: 10px 15px !important;
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.45));
  z-index: 2;
}

.pnt-location-card .img-block .rate-info h5 {
  color: var(--pnt-white) !important;
  font-size: 16px;
  font-weight: 700;
  margin: 0;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}

/* Titel & Adresse: Links-Styling neutralisieren */
.pnt-location-card .pnt-card-content a {
  text-decoration: none !important;
  color: inherit !important;
}

.pnt-location-card .pnt-title {
  color: #242526 !important;
}

.pnt-location-card .pnt-address {
  color: var(--pnt-dark) !important;
  opacity: 0.8;
}

/* --- MAP STYLES --- */
.infoBox {
  border-radius: 4px;
}

.map-box {
  background-color: #fff;
  margin-bottom: 5px;
  border-radius: 4px;
  -webkit-box-shadow: 0 0 40px 0 rgba(3, 3, 3, 0.15);
  box-shadow: 0 0 40px 0 rgba(3, 3, 3, 0.15);
  position: relative;
}

.map-box .listing-img-container img {
  width: 100%;
  border-radius: 4px 4px 0 0;
  position: relative;
}

.map-box .rate-info {
  position: absolute;
  bottom: 84px;
  left: 0;
  padding-bottom: 20px;
}

.map-box .rate-info>h5 {
  top: 4px;
}

.map-box h4 {
  margin: 0;
  padding: 0;
}

.map-box h4 a {
  padding: 0 0 2px;
  font-size: 17px;
  line-height: 25px;
  display: inline-block;
}

.listing-img-container {
  position: relative;
  height: 100%;
  display: block;
}

.map-box h4 a:hover {
  color: #66676b;
}

.map-box p {
  padding: 0;
  line-height: 25px;
  margin: 2px 0 0;
  font-size: 14px;
}

.map-box ul.listing-details {
  padding: 0;
  font-size: 14px;
  display: none;
}

.map-box .listing-title {
  padding: 16px 22px;
}

.map-box .listing-img-content {
  padding: 18px 22px;
}

.map-box .listing-img-content span {
  font-size: 21px;
}

.map-box .listing-img-content .listing-price i {
  font-size: 15px;
  margin: -7px 0 0;
}

.infoBox>img {
  position: absolute !important;
  right: 0;
  top: 0;
}

.map-box .listing-img-container::before {
  content: "";
  display: none;
  position: absolute;
  height: 100%;
  width: 100%;
  background: -webkit-gradient(linear, left bottom, left top, from(rgba(35, 35, 37, 0.85)), color-stop(35%, rgba(35, 35, 37, 0.4)), color-stop(60%, rgba(22, 22, 23, 0)), to(transparent));
  background: -webkit-linear-gradient(bottom, rgba(35, 35, 37, 0.85) 0%, rgba(35, 35, 37, 0.4) 35%, rgba(22, 22, 23, 0) 60%, transparent 100%);
  background: -o-linear-gradient(bottom, rgba(35, 35, 37, 0.85) 0%, rgba(35, 35, 37, 0.4) 35%, rgba(22, 22, 23, 0) 60%, transparent 100%);
  background: linear-gradient(to top, rgba(35, 35, 37, 0.85) 0%, rgba(35, 35, 37, 0.4) 35%, rgba(22, 22, 23, 0) 60%, transparent 100%);
  background-color: rgba(35, 35, 37, 0.2);
}

.map-box .listing-item-content {
  position: static;
  width: 100%;
  margin-top: -3px;
  background-color: #fff;
  padding: 15px 23px 20px 23px;
  border-left: 1px solid #e0e1e5;
  border-right: 1px solid #e0e1e5;
  border-bottom: 1px solid #e0e1e5;
}

.map-box .listing-item-content h3 {
  color: #242526;
  font-size: 16px;
  padding: 0 0 2px;
  font-weight: 500;
  margin: 0;
  line-height: 27px;
  margin-bottom: 5px;
}

.map-box .listing-item-content span {
  font-size: 12px;
  font-weight: 400;
  display: inline-block;
  color: #aeb4b6;
}

.map-box .listing-item-content span i {
  padding-right: 5px;
}

.infoBox-close {
  position: absolute;
  top: 10px;
  right: 10px;
  display: inline-block;
  z-index: 999;
  text-align: center;
  line-height: 29px;
  cursor: pointer;
  font-size: 15px;
  font-weight: 500;
  height: 29px;
  width: 29px;
  background-color: #fff;
  color: #333;
  font-family: "FontAwesome";
  border-radius: 50%;
  -webkit-text-stroke: 1px #fff;
}

.infoBox-close:hover {
  color: #fff;
  background-color: #66676b;
  -webkit-text-stroke: 1px #66676b;
}

.map-box-icon {
  height: 38px;
  width: 38px;
  position: absolute;
  bottom: 0;
  right: 0;
  background-color: var(--pnt-primary);
  display: block;
  color: #fff;
  font-size: 12px;
  z-index: 101;
  text-align: center;
  -webkit-transform: translateX(50%);
  -ms-transform: translateX(50%);
  transform: translateX(50%);
  opacity: 0;
  visibility: hidden;
}

.map-box-icon:before {
  content: "\f064";
  font-family: "FontAwesome";
  position: relative;
  top: 7px;
  display: block;
}

.map-box-image:hover .map-box-icon {
  opacity: 1;
  visibility: visible;
  -webkit-transform: translateY(0);
  -ms-transform: translateX(0);
  transform: translateX(0);
}

.map-box-image {
  position: relative;
  overflow: hidden;
  display: block;
}

/*.infoBox {
  -webkit-animation: fadeIn 0.9s;
  animation: fadeIn 0.9s; }
*/
@-webkit-keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.infoBox .star-rating {
  font-size: 16px;
  margin-top: 1px;
}

.infoBox .star-rating span {
  margin-right: 3px;
}

.infoBox .rating-counter {
  position: relative;
  top: -1px;
}

.infoBox:after {
  content: "";
  position: absolute;
  bottom: -5px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 12px solid transparent;
  border-right: 12px solid transparent;
  border-top: 12px solid #fff;
}

#map {
  height: 100%;
  width: 100%;
  margin: 0;
  z-index: 990;
}

#map-container {
  position: relative;
  top: 0;
  left: 0;
  height: 520px;
  width: 100%;
  z-index: 0;
  margin-bottom: 60px;
}

.gmnoprint {
  margin: 10px;
}

#map-container.fullwidth-home-map {
  height: 600px;
  margin-bottom: 0;
}

#map-container.fullwidth-home-map.hp3 {
  height: 490px;
}

#map-container.fullwidth-home-map .main-search-inner {
  position: absolute;
  display: block;
  bottom: 60px;
  top: auto;
  -webkit-transform: none;
  -ms-transform: none;
  transform: none;
  padding-bottom: 0;
  z-index: 9999;
  margin-top: 0;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}

#map-container.fullwidth-home-map .main-search-input {
  margin-top: 0;
}

.cluster img {
  display: none;
}

.cluster-visible {
  text-align: center;
  font-size: 15px !important;
  color: #fff !important;
  font-weight: 500;
  border-radius: 50%;
  width: 50px !important;
  height: 50px !important;
  line-height: 50px !important;
  background-color: var(--pnt-secondary);
}

.cluster-visible:before {
  border: 7px solid;
  opacity: 0.2;
  -webkit-box-shadow: inset 0 0 0 4px var(--pnt-secondary);
  box-shadow: inset 0 0 0 4px var(--pnt-secondary);
  content: '';
  position: absolute;
  border-radius: 50%;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-animation: cluster-animation 2.5s infinite;
  animation: cluster-animation 2.5s infinite;
}

@-webkit-keyframes cluster-animation {

  0%,
  100% {
    -webkit-transform: scale(1.3) rotate(0deg);
    transform: scale(1.3) rotate(0deg);
  }

  50% {
    -webkit-transform: scale(1.5) rotate(90deg);
    transform: scale(1.5) rotate(90deg);
  }
}

@keyframes cluster-animation {

  0%,
  100% {
    -webkit-transform: scale(1.3) rotate(0deg);
    transform: scale(1.3) rotate(0deg);
  }

  50% {
    -webkit-transform: scale(1.5) rotate(90deg);
    transform: scale(1.5) rotate(90deg);
  }
}

.map-marker-container {
  position: absolute;
  margin-top: 10px;
  -webkit-transform: translate3d(-50%, -100%, 0);
  transform: translate3d(-50%, -100%, 0);
}

.marker-container {
  position: relative;
  margin: 10px auto;
  width: 40px;
  height: 40px;
  z-index: 1;
  border-radius: 50%;
  cursor: pointer;
  top: -5px;
}

#singleListingMap .marker-container {
  cursor: default;
}

.marker-container {
  -webkit-perspective: 1000;
  perspective: 1000;
}

.marker-card {
  width: 100%;
  height: 100%;
  -webkit-transform-style: preserve-3d;
  transform-style: preserve-3d;
  position: absolute;
  z-index: 1;
}

.map-marker-container.clicked .marker-card,
.marker-container:hover .marker-card {
  -webkit-transform: rotateY(-180deg) translateY(0px);
  transform: rotateY(-180deg) translateY(0px);
}

.marker-arrow {
  width: 0;
  content: "";
  height: 0;
  border-style: solid;
  border-width: 20px 13px 0;
  border-color: var(--pnt-secondary) transparent transparent;
  top: 35px;
  left: 50%;
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  transform: translateX(-50%);
  position: absolute;
  border-radius: 0;
  z-index: 1;
}

.face {
  position: absolute;
  width: 100%;
  height: 100%;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  text-align: center;
  border-radius: 10%;
  color: #fff;
  z-index: 100;
  border-radius: 50px;
}

.face i {
  line-height: 30px;
  font-size: 16px;
}

.face.front {
  background-color: #fff;
  border: 6px solid var(--pnt-secondary);
  color: var(--pnt-dark);
  z-index: 100;
}

.face.back {
  -webkit-transform: rotateY(180deg);
  transform: rotateY(180deg);
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  color: #fff;
  background-color: var(--pnt-secondary);
}

.face.back i {
  transform: scaleX(-1);
  line-height: 38px;
  font-size: 18px;
}

.face.back:after {
  content: "";
  display: block;
  width: 36px;
  height: 36px;
  top: 2px;
  left: 2px;
  border-radius: 10%;
  position: absolute;
}

.custom-zoom-in,
.custom-zoom-out {
  background-color: #fff;
  color: #333;
  cursor: pointer;
  border-radius: 50%;
  margin: 5px 15px;
  -webkit-transition: color 0.3s, background-color 0.3s;
  -o-transition: color 0.3s, background-color 0.3s;
  transition: color 0.3s, background-color 0.3s;
  -webkit-box-shadow: 0 1px 4px -1px rgba(0, 0, 0, 0.2);
  box-shadow: 0 1px 4px -1px rgba(0, 0, 0, 0.2);
  text-align: center;
  font-size: 15px;
  height: 34px;
  width: 34px;
}

.custom-zoom-in:hover,
.custom-zoom-out:hover {
  background-color: #66676b;
  color: #fff;
}

.custom-zoom-in:before,
.custom-zoom-out:before {
  font-family: "FontAwesome";
  width: 100%;
  line-height: 35px;
  transition: -webkit-text-stroke 0.3s;
  -webkit-text-stroke: 1px #fff;
}

.zoomControlWrapper {
  position: absolute;
  left: 0;
  right: auto;
  width: 70px;
}

.custom-zoom-in:before {
  content: "\f067";
}

.custom-zoom-out:before {
  content: "\f068";
}

.custom-zoom-in:hover:before,
.custom-zoom-out:hover:before {
  -webkit-text-stroke: 1px #66676b;
}

#mapnav-buttons {
  position: absolute;
  -webkit-transform: translate(0, 0);
  -ms-transform: translate(0, 0);
  transform: translate(0, 0);
  z-index: 999;
  font-size: 14px;
  display: inline-block;
  bottom: 20px;
  right: 20px;
}

/* --- COOKIE CONSENT MODAL --- */
.pnt-cookie-modal .modal-content {
  border-radius: 8px;
  border: none;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.pnt-cookie-modal .modal-header .modal-title {
  font-family: \'Montserrat\', sans-serif;
  font-weight: 700;
  font-size: 22px;
  color: var(--pnt-dark);
}

.pnt-cookie-modal .modal-body p {
  font-size: 14px;
  color: #555;
  margin-bottom: 20px;
}

.pnt-cookie-modal .modal-body a {
  color: var(--pnt-primary);
  text-decoration: underline;
}

.cookie-option-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.cookie-option-item {
  border: 1px solid #e1e8ed;
  border-radius: 6px;
  padding: 15px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.cookie-option-item .cookie-desc h6 {
  font-family: \'Poppins\', sans-serif;
  font-weight: 600;
  font-size: 15px;
  color: var(--pnt-dark);
  margin-bottom: 5px;
}

.cookie-option-item .cookie-desc p {
  font-size: 12px;
  color: #777;
  margin: 0;
}

.cookie-option-item .form-switch {
  padding-left: 3.5rem;
}

.cookie-option-item .form-check-input {
  width: 3rem;
  height: 1.5rem;
  cursor: pointer;
}

.cookie-option-item .form-check-input:checked {
  background-color: var(--pnt-primary);
  border-color: var(--pnt-primary);
}

.cookie-option-item .form-check-input:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.pnt-cookie-modal .modal-footer {
  padding: 15px 15px 25px;
}

.cookie-btn-link {
  color: #6c757d;
  font-weight: 600;
  text-decoration: none;
  font-size: 14px;
}

.cookie-btn-link:hover {
  color: var(--pnt-dark);
}

.cookie-btn {
  font-family: \'Montserrat\', sans-serif;
  font-weight: 700;
  border-radius: 4px;
  padding: 10px 20px;
  font-size: 14px;
  transition: all 0.3s ease;
}

.cookie-btn-save {
  background-color: var(--pnt-secondary);
  color: #fff;
  border: none;
  margin-right: 10px;
}

.cookie-btn-save:hover {
  background-color: var(--pnt-purple-light);
  color: #fff;
}

.cookie-btn-accept {
  background-color: var(--pnt-primary);
  color: #fff;
  border: none;
}

.cookie-btn-accept:hover {
  background-color: var(--pnt-nav-text);
  color: #fff;
}

.mapplaceholder {
  width: 100%;
  height: 100%;
  background: var(--pnt-nav-text);
  color: var(--pnt-white);
  text-align: center;
  padding: 20px;
}

.mapplaceholder i {
  font-size: 48px;
  margin-bottom: 20px;
}

.mapplaceholder h4 {
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 22px;
  color: var(--pnt-white);
}

.mapplaceholder p {
  font-size: 14px;
  color: var(--pnt-white);
  margin-bottom: 20px;
}

.mapplaceholder p a {
  color: var(--pnt-white);
  text-decoration: underline;
}

.mapplaceholder p a:hover {
  color: var(--pnt-nav-text);
}

.mapplaceholder .btn {
  background-color: var(--pnt-secondary);
  border-color: var(--pnt-secondary);
  color: var(--pnt-white);
}