:root{
  --psp-btn-h: 56px; 
}

*{ box-sizing: border-box; }

.swiper-container{
  width:100%;
  max-width:100%;
  position:relative;
  overflow:hidden;
  opacity:0;
  transition:opacity .3s ease;
  height:auto !important;           
}

.swiper-container.loaded { opacity: 1; }

.swiper-container:not(.loaded){
  background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);
  background-size:200% 100%;
  animation:loading 1.5s infinite;
}
@keyframes loading{ 
    0%{background-position:200% 0} 100%{background-position:-200% 0} 
}

.swiper-wrapper{ 
    display:flex; 
    align-items:stretch; 
}
.swiper-slide{
  flex-shrink:0;
  display:flex; flex-direction:column;
  height:auto;
  padding-bottom:0 !important;
  box-shadow:0 0 0 rgb(0 0 0 / 0.1) !important;
}


.swiper-button-prev,.swiper-button-next{
  color:#fff; 
  background-color:#00000080;
  padding:37px; 
  position:absolute; 
  top:50%; 
  z-index:10;
  transform:translateY(-50%); 
  box-shadow:0 2px 8px rgba(0,0,0,.1);
  transition:all .3s ease; 
  width:40px; 
  height:40px; 
  display:flex; 
  align-items:center; 
  justify-content:center;
}
.swiper-button-prev:hover,.swiper-button-next:hover{ 
    transform:translateY(-50%) scale(1.05); 
}
.swiper-button-prev{ 
    left:0px; 
} .swiper-button-next{ 
    right:0px;
}
.swiper-button-prev::after,.swiper-button-next::after{ 
    font-size:35px; 
    font-weight:bold; 
}


.psp-slide-card{
  border-radius:10px; 
  background:#fff; 
  box-shadow:0 4px 12px rgba(0,0,0,.1);
  display:flex; 
  flex-direction:column; 
  width:100%;
  height:100%;
  overflow:hidden; 
  transition:transform .2s ease, box-shadow .2s ease;
}
.psp-slide-card:hover{ 
    transform:translateY(-2px); 
    box-shadow:0 8px 24px rgba(0,0,0,.15); 
}

.psp-inner-container{
  padding:20px; 
  display:flex; 
  flex-direction:column;
  width:100%; 
  height:auto !important;   
  min-height:0; 
  background:none;
}


.psp-logo-section{
    margin-bottom: 16px;
  background:none; 
  text-align:center; 
  flex-shrink:0; 
  overflow:hidden;
  width:100%; 
  height:149px; 
  box-sizing:border-box;
  background:white;
}

.psp-logo-section:empty,
.psp-logo-section:not(:has(img)){ 
    display:none !important; 
}

.psp-logo-image{
  height:100%; 
  width:100%; 
  margin:0 auto; 
  display:block; 
  object-fit:contain;
}

.psp-image-section{
  width:100%; 
  height:437px; 
  background:none; 
  text-align:center; 
  flex-shrink:0; 
  overflow:hidden;
}

.psp-image-section:empty,
.psp-image-section:not(:has(img)){ 
    display:none !important; 
}

.psp-featured{
  width:100%; 
  height:100%; 
  margin:0 auto; 
  display:block;
  object-fit:cover; 
  object-position:center;
  image-rendering:-webkit-optimize-contrast; 
  image-rendering:crisp-edges; 
  image-rendering:pixelated;
  -webkit-backface-visibility:hidden; 
  backface-visibility:hidden;
  transform:translateZ(0); 
  -webkit-transform:translateZ(0);
  -webkit-font-smoothing:antialiased; 
  -moz-osx-font-smoothing:grayscale;
  filter:none; 
  -webkit-filter:none;
}
.psp-large-logo{ 
    width:100%; 
    height:200px; 
    object-fit:contain; 
    display:block; 
    padding:20px; 
    background:#f8f9fa; 
}

.psp-content-section{
  box-sizing:border-box;
  flex:1 1 auto !important;
  min-height:0 !important;
  display:grid !important;
  grid-template-rows:auto auto 1fr auto; 
  gap:12px;
  justify-content:initial;
}

.psp-title-row{
  display:flex; 
  justify-content:space-between; 
  align-items:flex-start;
  margin:20px 0 8px 0; gap:12px;
}
.psp-subtitle{ 
    font-size:18px !important; 
    font-weight:400; 
    letter-spacing:5%; 
}

.psp-title,.psp-excerpt,.psp-date{ 
    overflow-wrap:anywhere; 
    word-wrap:break-word; 
    line-height:1.3; 
}
.psp-title{ 
    font-weight:bold; 
    font-size:20px; 
    color:#fff; 
    margin:0; 
    flex:1; 
}
.psp-date{ 
    font-size:18px; 
    color:#fff; 
    margin:0; 
    white-space:nowrap; 
    margin-left:12px; 
}

.psp-separator{ 
    width:100%; 
    height:1px; 
    background:#fff; 
    margin:8px 0 12px 0; 
    border-radius:1px; 
}

.psp-content-text{
  min-height:0; 
  display:flex; 
  flex-direction:column; 
  gap:8px;
}
.psp-subtitle{
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden; text-overflow:ellipsis;
  font-size:18px; color:#fff; margin:18px 0;
}
.psp-excerpt{
  font-size:16px; color:#fff; margin:0; line-height:1.4; opacity:.9;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; text-overflow:ellipsis;
}


.psp-content-section > p:has(> a.psp-button){
  display:contents !important;   
  margin:0 !important; padding:0 !important;
}
.psp-content-section > p > a.psp-button{ display:block !important; }


.psp-button{
  display:flex; align-items:center; justify-content:center;
  min-height:var(--psp-btn-h);
  margin-top:12px; padding:20px 16px;
  background:none; border:1px solid #FFFFFF; color:#fff !important;
  border-radius:6px; text-decoration:none; width:auto !important;
  transition:.3s; text-align:center; font-size:16px; font-weight:500; box-shadow:0 2px 4px rgba(0,0,0,.1);
}
img.psp-button-icon{ margin-left:9px; }
a.psp-button{ padding:16px; box-sizing:border-box; border-radius:10px; }
.psp-button:hover{ background-color: rgba(0,0,0,0.1) !important; color:#fff; text-decoration:none; box-shadow:0 4px 8px rgba(0,0,0,.15); }
.psp-button::after{ margin-left:4px; font-size:16px; }


p:empty{ display:none; }


.psp-card-vorschule-grundschule{ background-color:#E98202 !important; }
.psp-card-vorschule-grundschule .psp-button{ color:#E98202; }
.psp-card-vorschule-grundschule .psp-button:hover{ background:#f8f9fa; color:#E98202; }

.psp-card-weiterfuehrende-schule{ background-color:#A60090 !important; }
.psp-card-weiterfuehrende-schule .psp-button{ color:#A60090; }
.psp-card-weiterfuehrende-schule .psp-button:hover{ background:#f8f9fa; color:#A60090; }

.psp-card-berufliche-bildung{ background-color:#0288A6 !important; }
.psp-card-berufliche-bildung .psp-button{ color:#0288A6; }
.psp-card-berufliche-bildung .psp-button:hover{ background:#f8f9fa; color:#0288A6; }

.psp-card-hochschule{ background-color:#8BA500 !important; }
.psp-card-hochschule .psp-button{ color:#8BA500; }
.psp-card-hochschule .psp-button:hover{ background:#f8f9fa; color:#8BA500; }

.psp-card-weiterbildung{ background-color:#AF1F20 !important; }
.psp-card-weiterbildung .psp-button{ color:#dc2626; }
.psp-card-weiterbildung .psp-button:hover{ background:#f8f9fa; color:#dc2626; }


@media (max-width:1600px){
  .psp-image-section{ height:427px; }
  .psp-featured{ height:100%; }
  .psp-inner-container{ padding:15px; }
  .psp-content-section{ gap:0; padding:0; margin-top:10px; }
  .psp-content-text{ gap:0; }
  .psp-logo-section{ margin-bottom:15px; height:140px; }
  .swiper-button-prev{ left:1px; }
  .swiper-button-next{ right:0px; }
  .swiper-button-prev,.swiper-button-next{ width:20px !important; height:20px !important; padding:30px; }
  .swiper-button-prev::after,.swiper-button-next::after{ font-size:16px !important; }
}

@media (max-width:768px){
  .psp-image-section{ height:427px; }
  .psp-featured{ height:100%; }
  .psp-inner-container{ padding:15px; }
  .psp-content-section{
    gap:0; padding:0; margin-top:10px;
    grid-template-rows:auto auto auto auto !important;
  }
  .psp-content-text{ gap:0; }
  .psp-logo-section{ margin-bottom:15px; }
  .swiper-container{ padding:0 0px; }
  .psp-title{ font-size:16px; }
  .psp-subtitle{ font-size:18px; }
  .psp-excerpt{ font-size:16px; }
  .swiper-button-prev,.swiper-button-next{ padding:25px; width:40px; height:40px; margin:0px; }
  .swiper-button-prev::after,.swiper-button-next::after{ font-size:16px; }
}

@media (max-width:480px){
  .psp-inner-container{ padding:10px; }
  .psp-logo-section{ width:100%; height:88px; margin-bottom:10px; }
  .psp-image-section{ width:100%; height:200px; }
  .psp-featured{ width:100%; height:100%; }
  .psp-content-section{
    gap:0; padding:0; margin-top:10px;
    grid-template-rows:auto auto auto auto !important;
  }
  .psp-content-text{ gap:0; }
  .swiper-container{ padding:0px 0px; }
  .psp-button{ left:12px; right:12px; }
  .psp-title{ font-size:15px; }
  .psp-subtitle{ font-size:12px; }
  .swiper-button-prev,.swiper-button-next{ padding:20px; width:40px; height:40px; margin:0px; }
  .psp-excerpt{ font-size:15px; }
  .psp-slide-card{ justify-content:center; }
}

@media (max-width:320px){
  .psp-inner-container{ padding:10px; }
  .psp-logo-section{ width:100%; height:88px; margin-bottom:10px; }
  .psp-image-section{ width:100%; height:200px; }
  .psp-featured{ width:100%; height:100%; }
  .psp-content-section{
    gap:0; padding:0; margin-top:10px;
    grid-template-rows:auto auto auto auto !important;
  }
  .psp-content-text{ gap:0; }
  .swiper-container{ padding:0 12px; }
  .psp-button{ left:12px; right:12px; }
  .psp-title{ font-size:15px; }
  .psp-subtitle{ font-size:12px; }
  .swiper-button-prev,.swiper-button-next{ padding:15px; width:40px; height:40px; margin:10px; }
  .psp-excerpt{ font-size:15px; }
  .psp-slide-card{ justify-content:center; }
}

@media (max-width:1500px) and (min-width:1200px){
  .psp-image-section{ width:100%; height:337px; }
  .psp-featured{ width:100%; height:100%; }
}


:root { --psp-lh: 1.4; }

.psp-content-section{
  
  grid-template-rows: auto auto 1fr auto !important; 
}


.psp-subtitle{
  margin: 0 !important;
  line-height: var(--psp-lh) !important;
  min-height: calc(2 * 1em * var(--psp-lh)) !important;
  display: flex !important;
  align-items: center !important; 
  color: #fff;
}

.psp-subtitle > span{
  display: -webkit-box !important;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.psp-excerpt{
  margin: 0 !important;
  line-height: var(--psp-lh) !important;
  min-height: calc(2 * 1em * var(--psp-lh)) !important; 
  display: -webkit-box !important;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}


.psp-content-text{
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 18px !important;
}


.psp-content-section > p:has(> a.psp-button){
  display: contents !important;
  margin: 0 !important; padding: 0 !important;
}
.psp-content-section > p > a.psp-button{ display:block !important; }


@media (max-width: 768px){
  .psp-content-section{
    grid-template-rows: auto auto auto auto !important; 
  }
  
  :root{ --psp-lh: 1.35; }
}


.psp-inner-container > p:empty{ 
  display: none !important; 
}


.psp-inner-container > p:not(:has(*)){
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
  line-height: 0 !important;
  display: block !important;
}

.psp-inner-container > p{
  margin: 0 !important;
  padding: 0 !important;
}


.psp-content-section > p:has(> a.psp-button){
  display: contents !important;
  margin: 0 !important; 
  padding: 0 !important;
}
.psp-content-section > p > a.psp-button{ display:block !important; }
