/* vacances · konsolidierte app.css | Foundation bleibt separat eingebunden */
@import url("slider-modul.css");

@import url("job-modul.css");
@import url("telefon-modul.css");

/* Designsystem */
:root{
  --color-primary:#085a7d;
  --color-primary-alt:#00587c;
  --color-accent:#8abd0d;
  --color-accent-hover:#679d1a;
  --color-accent-light:rgba(137,189,13,.28);
  --color-text-light:#fff;
  --color-text-dark:#17301f;
  --color-text-body:#4d5b53;
  --color-text-soft:#425248;
  --color-text-muted:gray;
  --color-danger:#c80303;
  --color-bg-light:#fff;
  --color-bg-soft:#d2d9e0;
  --color-bg-soft-2:#d2dee5;
  --color-bg-form:#c1d0d9;
  --gradient-page:linear-gradient(to top,rgba(138,189,13,.2),rgba(175,209,85,0) 78.1%);
  --gradient-light:linear-gradient(160deg,#d2d9e0,#fff 51.9%);
  --gradient-light-green:linear-gradient(160deg,#cbdfa2,#fff 51.9%);
  --space-xs:5px;
  --space-sm:10px;
  --space-md:20px;
  --space-lg:30px;
  --space-xl:40px;
  --space-xxl:50px;
  --font-size-s:.8rem;
  --font-size-base:1rem;
  --font-size-m:1.2rem;
  --font-size-l:1.4rem;
  --font-size-xl:1.6rem;
  --font-size-xxl:2.2rem;
  --radius-sm:5px;
  --radius-md:1rem;
  --radius-pill:999px;
  --transition-default:.3s ease;
  --shadow-card:0 14px 36px rgba(18,38,24,.08);
  --shadow-hero:0 24px 60px rgba(0,0,0,.12);
  --shadow-contact:0 24px 70px rgba(31,42,36,.1)
}

@font-face{
  font-family:"Calibri-Regular";
  src:url("/font/Calibri-Regular.woff") format("woff");
  font-weight:400;
  font-style:normal;
  font-display:swap
}

@font-face{
  font-family:"Calibri-Bold";
  src:url("/font/Calibri-Bold.woff") format("woff");
  font-weight:700;
  font-style:normal;
  font-display:swap
}

@font-face{
  font-family:"vacances";
  src:url("/font/vacances.woff") format("woff");
  font-weight:400;
  font-style:normal;
  font-display:block
}

/* Basis und Barrierefreiheit */
body{
  background:var(--gradient-page) fixed;
  font-family:"Calibri-Regular",Arial,sans-serif;
  font-size:var(--font-size-base);
  color:var(--color-text-body)
}

h1,h2,h3,h4{
  font-family:"Calibri-Regular",Arial,sans-serif
}

h1{
  font-size:var(--font-size-xxl);
  line-height:1.1;
  font-weight:700;
  color:var(--color-primary)
}

p{
  margin:0 0 var(--space-md);
  padding:0;
  hyphens:auto
}

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

a{
  transition:color var(--transition-default)
}

label{
  font-size:var(--font-size-base);
  line-height:1.2
}

label b,.rot{
  color:var(--color-danger)
}

label.button{
  margin-top:var(--space-sm);
  background:var(--color-text-muted)
}

form a{
  text-decoration:underline
}

.callout{
  margin-bottom:0
}

.hide,.aus{
  display:none
}

.vCenter{
  display:flex;
  align-items:center
}

:where(a,button,input,select,textarea):focus-visible{
  outline:3px solid var(--color-accent);
  outline-offset:3px
}

.skip-link{
  position:fixed;
  top:0;
  left:1rem;
  z-index:99999;
  padding:.8rem 1.2rem;
  border-radius:0 0 6px 6px;
  background:var(--color-primary);
  color:#fff;
  transform:translateY(-150%)
}

.skip-link:focus{
  transform:translateY(0);
  color:#fff
}

[data-icon]::before,[class^="icon-"]::before,[class*=" icon-"]::before{
  font-family:"vacances"!important;
  font-style:normal!important;
  font-weight:normal!important;
  font-variant:normal!important;
  text-transform:none!important;
  line-height:1;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale
}

[data-icon]::before{
  content:attr(data-icon)
}

/* Kopf und Navigation */
.kopf{
  z-index:55;
  padding:var(--space-md) 0 var(--space-sm);
  background:var(--color-primary-alt)
}

.kopf a{
  font-size:var(--font-size-m);
  color:#fff;
  white-space:nowrap
}

.kopf a:hover{
  color:rgba(255,255,255,.4)
}

.orbit.kopf{
  z-index:-1;
  height:auto;
  padding:0;
  visibility:visible
}

.kopf-mobil a img{
  width:50%
}

.menuMobil{
  display:inline-flex;
  min-width:44px;
  min-height:44px;
  align-items:center;
  justify-content:center;
  cursor:pointer
}

.icon.hamburger{
  padding-top:var(--space-sm);
  font-size:1.5rem;
  color:#fff
}

.naviMobil{
  margin-top:var(--space-xxl)
}

.naviSocial{
  position:absolute;
  bottom:var(--space-xs);
  left:var(--space-xs)
}

.naviSocial .icon-navi,.fussK .icon-navi{
  float:left;
  width:43px;
  height:42px;
  margin:15px;
  color:#fff
}

.naviSocial .icon-navi{
  font-size:2rem
}

.is-drilldown,.is-drilldown a,li.nav-mobil.is-submenu-item.is-drilldown-submenu-item a{
  color:#fff
}

.is-drilldown a,li.nav-mobil.is-submenu-item.is-drilldown-submenu-item a{
  margin:0;
  padding:1px
}

li.nav-mobil{
  margin:var(--space-sm);
  padding:var(--space-sm)
}

.off-canvas-content{
  background:transparent
}

/* Klassische Inhaltsbereiche */
.content{
  padding:var(--space-md) 0 var(--space-xxl)
}

.content a,.projekt a{
  color:var(--color-primary)
}

.content h1{
  font-size:var(--font-size-xl);
  font-weight:400;
  color:var(--color-primary)
}

.content h1{
  margin:var(--space-lg) 0 var(--space-md)
}

.content h2{
  margin:var(--space-md) 0;
  font-size:var(--font-size-m);
  color:var(--color-accent)
}

.content h3{
  font-size:var(--font-size-m);
  color:var(--color-primary)
}

.content hr{
  margin-top:0;
  border-color:var(--color-primary)
}

.content ul li{
  margin:0 0 var(--space-md);
  padding:0;
  list-style:none
}

.content ul li::before{
  position:relative;
  margin:0 .1rem 0 -1.2rem;
  font:1.2rem "Calibri-Regular",Arial,sans-serif;
  content:"→";
  color:var(--color-accent)
}

/* Gemeinsame Seitenbausteine */
.service-page,.standort-detail-page,.onboarding-page,.tagespflege-page{
  color:var(--color-text-dark)
}

.service-hero,.standort-detail-hero,.tagespflege-hero,.onboarding-hero{
  padding:var(--space-xl) 0 var(--space-lg)
}

.service-eyebrow,.standort-detail-eyebrow,.standort-more__eyebrow,.standort-detail-contact__eyebrow,.standort-detail-media__eyebrow,.standort-detail-content__eyebrow,.tagespflege-eyebrow,.tagespflege-contact__eyebrow{
  margin:0 0 var(--space-sm);
  font-size:var(--font-size-s);
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--color-accent)
}

.service-headline,.service-hero h1,.standort-detail-headline,.tagespflege-hero__headline{
  margin:0 0 var(--space-md);
  font-size:var(--font-size-xxl);
  line-height:1.1;
  font-weight:700;
  color:var(--color-primary)
}

.service-lead,.tagespflege-hero__lead,.standort-detail-description__text{
  max-width:42rem;
  font-size:var(--font-size-m);
  line-height:1.6;
  color:var(--color-text-soft)
}

.service-lead p:last-child,.tagespflege-hero__lead p:last-child,.service-section__header p:last-child,.tagespflege-section-header p:last-child,.service-card p:last-child,.standort-detail-description__text p:last-child,.standort-detail-text p:last-child,.standort-more__header p:last-child,.tagespflege-benefit__text p:last-child,.tagespflege-intro__text p:last-child,.tagespflege-film__text p:last-child,.tagespflege-contact__box p:last-child,.onboarding-video-card__text p:last-child{
  margin-bottom:0
}

.service-hero__actions,.tagespflege-hero__actions,.service-cta__actions{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-sm)
}

.service-hero__actions,.tagespflege-hero__actions{
  margin-top:var(--space-lg)
}

.service-section,.landing-services,.service-cta,.onboarding-videos,.tagespflege-intro,.tagespflege-film,.tagespflege-day,.tagespflege-standorte,.tagespflege-contact{
  padding:var(--space-xl) 0
}

.service-section__header,.tagespflege-section-header,.standort-more__header,.landing-services__header{
  max-width:760px;
  margin-bottom:var(--space-lg)
}

.service-section__header,.tagespflege-section-header{
  margin-right:auto;
  margin-left:auto
}

.service-section__header--center,.tagespflege-film .tagespflege-section-header{
  text-align:center
}

.service-section__header h2,.tagespflege-section-header h2,.tagespflege-intro h2,.content-card h2,.info-card h2,.standort-detail-contact h2,.standort-detail-text h2,.standort-more__header h2,.standort-detail-description__text h2,.standort-detail-media__headline,.tagespflege-contact__box h2,.landing-services__header h2,.service-cta__box h2{
  margin:0 0 var(--space-sm);
  font-size:var(--font-size-xl);
  line-height:1.2;
  color:var(--color-primary)
}

.service-section__header h2,.tagespflege-section-header h2,.tagespflege-intro h2{
  font-weight:700
}

.service-card,.content-card,.info-card,.standort-detail-contact,.standort-detail-text,.standort-more-card,.onboarding-video-card,.tagespflege-location-card,.tagespflege-film__card,.tagespflege-benefit,.tagespflege-day-card,.tagespflege-contact__box,.landing-service-item,.service-teaser,.filmwettbewerb-card,.filmwettbewerb-results,.team_list{
  border-radius:var(--radius-md);
  background:var(--color-bg-light);
  box-shadow:var(--shadow-card)
}

.service-card,.content-card,.info-card,.standort-detail-contact,.standort-detail-text,.standort-more-card,.tagespflege-benefit,.tagespflege-contact__box,.service-teaser{
  padding:var(--space-lg)
}

.service-card{
  height:100%
}

.service-card h3,.standort-more-card h3,.landing-service-item h3,.service-teaser h3,.onboarding-video-card__content h3{
  margin:0 0 var(--space-sm);
  font-size:var(--font-size-l);
  line-height:1.2;
  color:var(--color-primary)
}

.service-image img,.service-hero__image img,.tagespflege-hero__image img{
  display:block;
  width:100%;
  aspect-ratio:5/4;
  border-radius:var(--radius-md);
  box-shadow:var(--shadow-hero);
  object-fit:cover
}

.service-hero__image figure,figure.service-hero__image,.tagespflege-hero__image figure{
  margin:0
}

.service-hero__image + .content-card{
  margin-top:var(--space-md)
}

.service-hero__image figcaption,.tagespflege-hero__image figcaption{
  padding-top:var(--space-xs);
  font-size:var(--font-size-s);
  line-height:1.4;
  color:var(--color-text-muted)
}

/* Buttons und Kontaktkarten */
.button.primary,.button.hollow,.tagespflege-contact__button{
  display:inline-block;
  margin:0;
  padding:1.05rem 1.5rem;
  border:2px solid;
  border-radius:var(--radius-pill);
  font-size:var(--font-size-base);
  font-weight:700;
  text-align:center;
  text-decoration:none;
  transition:background-color var(--transition-default),border-color var(--transition-default),color var(--transition-default)
}

.button.primary{
  border-color:var(--color-accent);
  background:var(--color-accent);
  color:#fff
}

.button.primary:hover,.button.primary:focus{
  border-color:var(--color-accent-hover);
  background:var(--color-accent-hover);
  color:#fff
}

.button.hollow{
  border-color:var(--color-accent);
  background:transparent;
  color:var(--color-accent)
}

.button.hollow:hover,.button.hollow:focus{
  border-color:var(--color-accent-hover);
  background:var(--color-accent-light);
  color:var(--color-accent-hover)
}

.content-card{
  margin-bottom:var(--space-md)
}

.content-card h2,.standort-detail-contact h2,.standort-detail-text h2{
  margin-bottom:var(--space-md)
}

.content-card p,.info-card p,.standort-detail-text p,.tagespflege-benefit__text p,.onboarding-video-card__text p{
  line-height:1.8;
  color:var(--color-text-body)
}

.info-card{
  position:sticky;
  top:7rem
}

.info-card h2{
  font-weight:700
}

.contact-list{
  margin:var(--space-md) 0 0;
  padding:0;
  list-style:none
}

.contact-list li{
  margin-bottom:var(--space-md);
  line-height:1.6;
  color:var(--color-text-body)
}

.contact-list a{
  font-weight:600;
  color:var(--color-text-dark);
  text-decoration:none
}

/* Standortdetails und weitere Standorte */
.standort-card-compact .tagespflege-location-card__content{
  padding:1.25rem
}

.standort-card-compact h3{
  margin-bottom:1rem;
  font-size:1.2rem
}

.standort-card-compact .tagespflege-location-card__image{
  aspect-ratio:16/9
}

.standort-card-compact .tagespflege-location-card__link{
  padding-top:.75rem;
  font-size:.9rem
}

.standort-card-compact .standort-more-card__district{
  margin-bottom:.35rem
}

.standort-detail-headline span{
  margin:0 .25rem;
  font-weight:400;
  color:var(--color-accent)
}

.standort-detail-main{
  padding-bottom:var(--space-xl)
}

.standort-detail-image{
  width:100%;
  aspect-ratio:5/4;
  overflow:hidden;
  border-radius:var(--radius-md);
  background:var(--color-bg-soft);
  box-shadow:var(--shadow-hero)
}

.standort-detail-image img,.tagespflege-location-card__image img,.landing-service-item__image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover
}

.standort-detail-description{
  padding:var(--space-xl) 0 var(--space-lg)
}

.standort-detail-description__text p{
  margin-bottom:var(--space-md)
}

.standort-detail-description__text h2{
  margin:var(--space-lg) 0 var(--space-md)
}

.standort-detail-description__text h3{
  margin:var(--space-md) 0 var(--space-sm);
  font-size:var(--font-size-l);
  color:var(--color-primary)
}

.standort-detail-description__text ul{
  margin-bottom:var(--space-md)
}

.standort-detail-address{
  margin:0 0 var(--space-lg);
  font-style:normal;
  font-size:var(--font-size-m);
  line-height:1.5;
  color:var(--color-text-body)
}

.standort-detail-contact-data{
  margin-bottom:var(--space-lg);
  border-top:1px solid var(--color-bg-soft)
}

.standort-detail-contact-row{
  display:grid;
  grid-template-columns:100px minmax(0,1fr);
  gap:var(--space-md);
  padding:.85rem 0;
  align-items:start;
  border-bottom:1px solid var(--color-bg-soft)
}

.standort-detail-label{
  font-size:var(--font-size-s);
  font-weight:700;
  color:var(--color-text-soft)
}

.standort-detail-value{
  min-width:0;
  font-size:var(--font-size-base);
  color:var(--color-text-body)
}

.standort-detail-value a{
  font-weight:700;
  color:var(--color-primary);
  text-decoration:none;
  overflow-wrap:anywhere
}

.standort-detail-value a:hover,.standort-detail-value a:focus{
  color:var(--color-accent-hover);
  text-decoration:underline
}

.standort-detail-actions,.tagespflege-contact__actions{
  display:flex;
  flex-direction:column;
  gap:var(--space-sm)
}

.standort-detail-actions .button,.tagespflege-contact__actions .button{
  width:100%
}

.standort-detail-content{
  padding:var(--space-lg) 0
}

.standort-detail-text h2,.standort-detail-text h3{
  margin:0 0 var(--space-md);
  color:var(--color-primary)
}

.standort-more{
  margin-top:var(--space-md);
  padding:var(--space-xl) 0;
  border-top:1px solid var(--color-bg-soft)
}

.standort-more__cell,.tagespflege-location-cell,.landing-service-cell,.filmwettbewerb-cell{
  display:flex;
  margin-bottom:var(--space-lg)
}

.standort-more-card{
  display:flex;
  width:100%;
  min-height:230px;
  flex-direction:column;
  transition:transform var(--transition-default),box-shadow var(--transition-default)
}

.standort-more-card:hover,.tagespflege-location-card:hover,.landing-service-item:hover,.service-teaser:hover,.service-teaser:focus{
  transform:translateY(-3px);
  box-shadow:var(--shadow-contact)
}

.standort-more-card__district{
  margin:0 0 var(--space-sm);
  font-size:var(--font-size-s);
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--color-accent)
}

.standort-more-card h3{
  margin-bottom:var(--space-md)
}

.standort-more-card__address{
  margin-bottom:var(--space-md);
  font-style:normal;
  line-height:1.6;
  color:var(--color-text-body)
}

.standort-more-card__action{
  margin-top:auto;
  padding-top:var(--space-md);
  border-top:1px solid var(--color-bg-soft)
}

.standort-more-card__action a{
  display:inline-flex;
  align-items:center;
  gap:var(--space-sm);
  font-weight:700;
  color:var(--color-primary);
  text-decoration:none
}

.standort-more-card__action a::after{
  content:"→";
  font-size:var(--font-size-l);
  color:var(--color-accent);
  transition:transform var(--transition-default)
}

.standort-more-card__action a:hover::after{
  transform:translateX(4px)
}

.standort-more__all{
  display:flex;
  justify-content:center;
  margin-top:var(--space-md)
}

/* Landing-Leistungsübersicht */
.landing-service-cell{
  margin-bottom:var(--space-md)
}

.landing-service-item{
  display:flex;
  width:100%;
  min-height:180px;
  overflow:hidden;
  transition:transform var(--transition-default),box-shadow var(--transition-default)
}

.landing-service-item__link-area{
  display:flex;
  width:100%;
  color:inherit;
  text-decoration:none
}

.landing-service-item__link-area:hover,.landing-service-item__link-area:focus-visible{
  color:inherit;
  text-decoration:none
}

.landing-service-item:focus-within{
  outline:3px solid var(--color-accent);
  outline-offset:3px
}

.landing-service-item__image{
  width:35%;
  min-width:35%;
  overflow:hidden;
  background:var(--color-bg-soft)
}

.landing-service-item__image img{
  transition:transform var(--transition-default)
}

.landing-service-item:hover .landing-service-item__image img{
  transform:scale(1.04)
}

.landing-service-item__content{
  display:flex;
  min-width:0;
  padding:var(--space-md);
  flex:1;
  flex-direction:column
}

.landing-service-item__text{
  margin:0 0 var(--space-md);
  font-size:var(--font-size-base);
  line-height:1.5;
  color:var(--color-text-body)
}

.landing-service-item__more{
  display:inline-flex;
  margin-top:auto;
  align-items:center;
  gap:var(--space-sm);
  font-size:.9rem;
  font-weight:700;
  color:var(--color-primary)
}

.landing-service-item__more span{
  font-size:var(--font-size-l);
  color:var(--color-accent);
  transition:transform var(--transition-default)
}

.landing-service-item:hover .landing-service-item__more span{
  transform:translateX(5px)
}

/* Video und Onboarding */
.standort-detail-media{
  padding:var(--space-md) 0 var(--space-lg)
}

.standort-detail-media__headline{
  margin-bottom:var(--space-md)
}

.standort-video-card{
  overflow:hidden;
  margin-bottom:0;
  border-radius:var(--radius-md);
  background:#fff;
  box-shadow:var(--shadow-card)
}

.standort-video,.onboarding-video,.tagespflege-film__player{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  background:#000
}

.standort-video video,.onboarding-video video,.tagespflege-film__player video,.filmwettbewerb-player video{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain
}

.onboarding-hero__content{
  max-width:52rem
}

.onboarding-video-card{
  display:flex;
  height:calc(100% - var(--space-lg));
  margin-bottom:var(--space-lg);
  flex-direction:column;
  overflow:hidden
}

.onboarding-video-card__content{
  padding:var(--space-md) var(--space-lg) var(--space-lg)
}

.onboarding-video-card__edit,.tagespflege-film__edit{
  padding:var(--space-md);
  background:var(--color-bg-soft-2)
}

.onboarding-video-card__edit .rot{
  margin:0 0 var(--space-sm);
  font-size:var(--font-size-s);
  font-weight:700
}

.onboarding-video-card__edit select{
  width:100%;
  margin:0;
  background:#fff
}

.onboarding-edit-label{
  margin:var(--space-md) 0 var(--space-xs);
  font-size:var(--font-size-s);
  font-weight:700;
  color:var(--color-danger)
}

/* Tagespflege */
.tagespflege-hero__content{
  max-width:650px
}

.tagespflege-benefits{
  padding:var(--space-md) 0 var(--space-xl)
}

.tagespflege-benefit{
  position:relative;
  isolation:isolate;
  display:block;
  height:100%;
  min-height:260px;
  overflow:hidden
}

.tagespflege-benefit__icon{
  position:relative;
  z-index:-1;
  width:100px;
  height:80px;
  margin:0 auto;
  pointer-events:none
}

.tagespflege-benefit__icon img{
  display:block;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:contain;
  opacity:.15
}

.tagespflege-benefit__content{
  position:relative;
  z-index:1;
  width:100%
}

.tagespflege-benefit__headline{
  display:block;
  margin:0 0 var(--space-md);
  font-size:var(--font-size-l);
  line-height:1.2;
  font-weight:700;
  color:var(--color-primary)
}

.tagespflege-benefit__text{
  width:100%;
  font-size:var(--font-size-base);
  line-height:1.8;
  color:var(--color-text-body)
}

.tagespflege-intro__text,.tagespflege-intro__text p{
  line-height:1.8
}

.tagespflege-film__card,.tagespflege-film__edit{
  width:100%;
  max-width:960px;
  margin-right:auto;
  margin-left:auto
}

.tagespflege-film__card{
  overflow:hidden
}

.tagespflege-film__content{
  padding:var(--space-md)
}

.tagespflege-film__content h3{
  margin:0 0 var(--space-sm);
  font-size:var(--font-size-m);
  color:var(--color-primary)
}

.tagespflege-film__text{
  line-height:1.7;
  color:var(--color-text-body)
}

.tagespflege-film__edit{
  margin-bottom:var(--space-md);
  border-radius:var(--radius-md)
}

.tagespflege-day__grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:var(--space-md)
}

.tagespflege-day-card{
  min-width:0;
  padding:var(--space-md);
  text-align:center
}

.tagespflege-day-card__clock{
  display:block;
  width:72px;
  height:72px;
  margin:0 auto var(--space-sm);
  object-fit:contain
}

.tagespflege-day-card h3{
  margin:0 0 var(--space-sm);
  font-size:var(--font-size-l);
  line-height:1.2;
  font-weight:400;
  color:var(--color-primary)
}

.tagespflege-day-card p{
  margin:0;
  line-height:1.5;
  color:var(--color-text-body)
}

.tagespflege-location-card{
  display:flex;
  width:100%;
  flex-direction:column;
  overflow:hidden;
  transition:transform var(--transition-default),box-shadow var(--transition-default)
}

.tagespflege-location-card__image{
  display:block;
  aspect-ratio:16/9;
  overflow:hidden;
  background:var(--color-bg-soft)
}

.tagespflege-location-card__content{
  display:flex;
  padding:var(--space-lg);
  flex:1;
  flex-direction:column
}

.tagespflege-location-card h3{
  margin:0 0 var(--space-md);
  font-size:var(--font-size-xl);
  line-height:1.15;
  font-weight:400;
  color:var(--color-primary)
}

.tagespflege-location-card__address{
  margin-bottom:var(--space-md);
  line-height:1.6;
  color:var(--color-text-body)
}

.tagespflege-location-card__phone{
  display:inline-block;
  margin-bottom:var(--space-md);
  font-weight:700;
  color:var(--color-primary);
  text-decoration:none
}

.tagespflege-location-card__phone:hover,.tagespflege-location-card__phone:focus{
  color:var(--color-accent-hover);
  text-decoration:underline
}

.tagespflege-location-card__link{
  display:flex;
  margin-top:auto;
  padding-top:var(--space-md);
  align-items:center;
  justify-content:space-between;
  border-top:1px solid var(--color-bg-soft);
  font-weight:700;
  color:var(--color-primary);
  text-decoration:none
}

.tagespflege-location-card__link:hover,.tagespflege-location-card__link:focus{
  color:var(--color-accent-hover)
}

.tagespflege-location-card__arrow{
  margin-left:var(--space-sm);
  font-size:var(--font-size-xl);
  line-height:1;
  color:var(--color-accent);
  transition:transform var(--transition-default)
}

.tagespflege-location-card__link:hover .tagespflege-location-card__arrow,.tagespflege-location-card__link:focus .tagespflege-location-card__arrow{
  transform:translateX(4px)
}

.tagespflege-contact__box{
  box-shadow:var(--shadow-contact)
}

.tagespflege-contact__box h2{
  margin-bottom:var(--space-md)
}

.tagespflege-contact__button{
  border-color:var(--color-primary);
  background:transparent;
  color:var(--color-primary)
}

.tagespflege-contact__button:hover,.tagespflege-contact__button:focus{
  background:var(--color-primary);
  color:#fff
}

.tagespflege-benefits__editor{
  padding:var(--space-md);
  border:1px solid var(--color-bg-soft);
  border-radius:var(--radius-md);
  background:var(--color-bg-soft-2)
}

.tagespflege-benefits__editor>h2{
  margin:0 0 var(--space-xs);
  font-size:var(--font-size-l);
  color:var(--color-primary)
}

.tagespflege-benefits__editor>p{
  margin-bottom:var(--space-md)
}

.tagespflege-benefit-edit{
  height:100%;
  padding:var(--space-md);
  border-radius:var(--radius-sm);
  background:#fff
}

.tagespflege-benefit-edit h3{
  margin:0 0 var(--space-md);
  padding-bottom:var(--space-sm);
  border-bottom:2px solid var(--color-accent);
  font-size:var(--font-size-m);
  color:var(--color-primary)
}

.tagespflege-benefit-edit label{
  display:block;
  margin:var(--space-md) 0 var(--space-xs);
  font-size:var(--font-size-s);
  font-weight:700;
  color:var(--color-primary)
}

.tagespflege-benefit-edit__image{
  min-height:180px;
  padding:var(--space-md);
  border:1px dashed var(--color-bg-soft);
  border-radius:var(--radius-sm);
  background:#fff;
  text-align:center
}

.tagespflege-benefit-edit__image img{
  width:auto!important;
  max-width:180px!important;
  max-height:150px!important;
  object-fit:contain
}

.tagespflege-benefit-edit input[type="text"]{
  width:100%;
  margin:0
}

/* Landingpage CTA und Teaser */
.landing-services__edit{
  margin-bottom:var(--space-md);
  padding:var(--space-md);
  background:#fff
}

.service-teaser{
  position:relative;
  display:flex;
  height:calc(100% - var(--space-lg));
  margin-bottom:var(--space-lg);
  overflow:hidden;
  color:inherit;
  text-decoration:none;
  transition:transform var(--transition-default),box-shadow var(--transition-default)
}

.service-teaser::before{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:5px;
  background:var(--color-accent);
  content:""
}

.service-teaser:hover,.service-teaser:focus{
  color:inherit;
  text-decoration:none
}

.service-teaser__content{
  display:flex;
  width:100%;
  flex-direction:column
}

.service-teaser h3{
  margin-bottom:var(--space-md)
}

.service-teaser__text{
  margin-bottom:var(--space-md);
  line-height:1.6
}

.service-teaser__link{
  margin-top:auto;
  font-weight:700;
  color:var(--color-primary)
}

.service-teaser__link span{
  margin-left:var(--space-xs);
  color:var(--color-accent)
}

.service-cta__box{
  padding:var(--space-xl);
  border-radius:var(--radius-md);
  background:var(--color-primary);
  color:#fff;
  text-align:center
}

.service-cta__box h2{
  margin-bottom:var(--space-md);
  color:#fff
}

.service-cta__box p{
  max-width:700px;
  margin:0 auto var(--space-lg)
}

.service-cta__actions{
  justify-content:center
}

/* Ältere Module: Klassen aus bestehenden Templates bleiben erhalten */
.callout.job{
  border:0;
  text-align:center;
  background:transparent
}

.callout.job h2{
  margin-bottom:0;
  text-align:center
}

.callout h2{
  margin-top:var(--space-sm);
  font-size:var(--font-size-l);
  color:var(--color-primary)
}

.callout h3{
  margin-bottom:0;
  font-weight:700;
  color:var(--color-primary)
}

.callout a{
  font-size:var(--font-size-l);
  font-weight:700;
  color:var(--color-primary)
}

.callout a.weiter{
  font-size:var(--font-size-base)
}

.callout.start{
  margin-top:var(--space-lg)
}

.callout.wa{
  border:20px solid #fff;
  background:var(--color-accent-light)
}

.callout.an{
  margin-bottom:var(--space-lg);
  border:20px solid var(--color-bg-soft-2);
  background:var(--color-bg-soft-2)
}

.callout .icon-navi{
  float:left;
  width:7.5rem;
  height:7.5rem;
  margin-right:var(--space-xl);
  font-size:7.5rem
}

.row.mitarbeiter{
  padding-top:var(--space-lg)
}

.row.mitarbeiter h1{
  margin-top:-10px;
  margin-bottom:0
}

.row.mitarbeiter b{
  color:var(--color-primary)
}

.mitar_list{
  margin:0 0 var(--space-sm)
}

.mitar_list a{
  display:block;
  border-radius:var(--radius-sm)
}

.mitar_list img{
  display:block;
  width:100%;
  height:auto;
  border-radius:var(--radius-sm);
  background:var(--gradient-light-green);
}

.mitar_list a:hover img,.mitar_list a:focus-visible img{
  box-shadow:var(--shadow-card)
}

.mitar_list h2{
  margin-top:var(--space-sm);
  font-size:var(--font-size-xl);
  line-height:1.4rem
}

.mitar_list p{
  font-size:var(--font-size-s);
  line-height:1.2rem
}

.team_list{
  position:relative;
  display:block;
  aspect-ratio:4/3;
  overflow:hidden;
  margin-bottom:var(--space-md)
}

.team_list .Gruppenfoto{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover
}

.team_list .text-overlay{
  padding:var(--space-md)
}

.team_list .text-overlay h2{
  margin:0;
  font-size:var(--font-size-l);
  line-height:1.2
}

.team_list .text-overlay p{
  margin:0
}

.frab-overlay,.text-overlay{
  position:absolute;
  top:0;
  left:0;
  display:flex;
  width:100%;
  height:100%;
  align-items:center;
  justify-content:center;
  background:transparent;
  transition:background-color var(--transition-default),color var(--transition-default)
}

.team_list .frab-overlay{
  background:#fff;
  opacity:.75
}

.team_list:hover .frab-overlay,.team_list:focus-visible .frab-overlay{
  background:var(--color-primary)
}

.text-overlay p,.text-overlay a,.team_list .text-overlay h2{
  text-align:center;
  color:var(--color-primary)
}

.team_list:hover .text-overlay p,.team_list:hover .text-overlay a,.team_list:hover .text-overlay h2,.team_list:focus-visible .text-overlay p,.team_list:focus-visible .text-overlay h2{
  color:#fff
}

img.mit-bild{
  background:var(--gradient-light)
}

.job h3{
  padding-top:12px;
  padding-left:var(--space-lg);
  font-size:var(--font-size-xxl);
  color:var(--color-primary)
}

.job h4{
  margin-top:-10px;
  padding-left:var(--space-lg);
  font-size:var(--font-size-m);
  color:var(--color-accent)
}

.job hr{
  margin:var(--space-sm) 0
}

.job img{
  float:left;
  width:1.4rem
}

.icon-blau{
  font-size:6rem;
  line-height:2rem;
  color:var(--color-primary)
}

.angebotIcon{
  width:60%
}

p.bewerben{
  padding:var(--space-sm);
  color:#fff;
  background:var(--color-primary)
}

p.bewerben a{
  font-weight:700;
  color:#fff
}

p.adresse{
  margin:var(--space-md) 0
}

input.honeypot2{
  display:none
}

input[type="checkbox"]{
  width:30px;
  height:30px;
  margin-bottom:0;
  border:2px solid silver;
  border-radius:var(--radius-sm);
  background:#fff;
  background-position:center;
  box-shadow:none;
  appearance:none
}

input[type="checkbox"]:checked{
  background:gray url("/img/haekchen.svg") center/contain no-repeat
}

#wrapper{
  position:relative;
  width:100%;
  height:240px;
  background:#fff
}

#carousel div{
  position:relative;
  float:left;
  width:300px;
  height:240px;
  text-align:center
}

#carousel div span a{
  display:block;
  margin-top:var(--space-xs);
  text-align:center;
  color:#000
}

/* Footer und Formulare */
.form{
  padding:var(--space-md) 0 var(--space-xxl);
  background:var(--color-bg-form)
}

.fuss{
  margin-top:var(--space-md);
  padding:var(--space-lg) 0;
  background:var(--color-primary)
}

.fussK,.fussK a{
  color:#fff
}

.fussK .icon-navi{
  font-size:2.5rem
}

.footer-address{
  font-style:normal;
  line-height:1.7
}

.footer-social{
  display:flex;
  align-items:center;
  gap:1rem
}

.footer-social a{
  display:inline-flex;
  min-width:44px;
  min-height:44px;
  align-items:center;
  justify-content:center
}

.unten{
  margin:var(--space-md) 0;
  font-size:var(--font-size-s);
  text-align:center
}

.unten p{
  margin-bottom:.5rem
}

.unten nav{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:.5rem
}

.unten a{
  color:var(--color-text-muted)
}

.pfad{
  display:block;
  padding-top:var(--space-md);
  font-size:var(--font-size-s);
  color:var(--color-primary)
}

.gruppenfoto{
  margin:0
}

.service-hero__image img.gruppenfoto,.service-hero__image img.mit-bild,.service-hero__image img.bild_ver{
  height:auto;
  aspect-ratio:auto
}

/* Filmwettbewerb: vorherige doppelte Definitionen konsolidiert */
.filmwettbewerb-cell{
  margin-bottom:1.5rem
}

.filmwettbewerb-card{
  display:flex;
  flex-direction:column;
  width:100%;
  overflow:hidden
}

.filmwettbewerb-player{
  aspect-ratio:9/16;
  overflow:hidden;
  background:#14232b
}

.filmwettbewerb-content{
  display:flex;
  flex:1;
  flex-direction:column;
  padding:1.25rem
}

.filmwettbewerb-content h3{
  margin-bottom:.75rem;
  font-size:1.25rem;
  line-height:1.3
}

.filmwettbewerb-description{
  flex:1;
  font-size:.95rem;
  line-height:1.5
}

.filmwettbewerb-voting{
  margin-top:1.25rem
}

.filmwettbewerb-vote{
  width:100%;
  padding:.85rem .5rem;
  font-size:.9rem
}

.filmwettbewerb-result[hidden],.filmwettbewerb-results[hidden],.filmvote-consent[hidden]{
  display:none
}

.filmwettbewerb-result{
  margin-top:1rem
}

.filmwettbewerb-count{
  margin-bottom:.5rem;
  font-weight:600;
  text-align:center;
  color:var(--color-primary)
}

.filmwettbewerb-progress{
  height:.75rem;
  overflow:hidden;
  border-radius:1rem;
  background:#e8eee8
}

.filmwettbewerb-progress-bar{
  width:0;
  height:100%;
  border-radius:1rem;
  background:var(--color-accent);
  transition:width .4s ease
}

.filmwettbewerb-results{
  margin:3rem 0;
  padding:2rem
}

.filmwettbewerb-total{
  font-weight:600;
  color:var(--color-primary)
}

.filmwettbewerb-ranking{
  margin:1.5rem 0 0;
  padding-left:1.5rem
}

.filmwettbewerb-ranking li{
  padding:.75rem 0;
  border-bottom:1px solid #e8eee8
}

.filmwettbewerb-ranking li span{
  display:inline-block;
  margin-right:1rem
}

.filmwettbewerb-ranking li strong{
  float:right;
  color:var(--color-primary)
}

.filmwettbewerb-status:empty{
  display:none
}

.filmwettbewerb-status:not(:empty){
  margin-bottom:1.5rem;
  padding:1rem;
  border-radius:var(--radius-md);
  background:var(--color-bg-soft)
}

.filmwettbewerb-status[data-type="success"]{
  background:#edf6df
}

.filmwettbewerb-status[data-type="error"]{
  background:#fff0ef
}

body.filmvote-dialog-open{
  overflow:hidden
}

.filmvote-consent{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:1rem;
  background:rgba(0,35,50,.75)
}

.filmvote-consent__box{
  width:100%;
  max-width:650px;
  max-height:calc(100dvh - 2rem);
  overflow-y:auto;
  padding:2rem;
  border-radius:var(--radius-md);
  background:#fff;
  box-shadow:var(--shadow-card)
}

.filmvote-consent__actions{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  margin-top:1.5rem
}

.filmvote-consent__actions .button{
  margin:0
}

/* Responsive */
@media screen and (min-width:64em){
  .banner{
    height:680px
  }

}

@media screen and (min-width:40em) and (max-width:74.9375em){
  .standort-detail-contact-row{
    grid-template-columns:1fr;
    gap:var(--space-xs)
  }

}

@media screen and (max-width:63.9375em){
  .info-card{
    position:static;
    margin-top:var(--space-md)
  }
  .tagespflege-day__grid{
    grid-template-columns:repeat(3,minmax(0,1fr))
  }

}

@media screen and (max-width:39.9375em){

  h1,.service-headline,.service-hero h1,.standort-detail-headline,.tagespflege-hero__headline{
    font-size:var(--font-size-xl)
  }

  .content h1{
    margin-top:var(--space-md);
    margin-bottom:0
  }

  .projekt .Foto_Maske{
    margin-bottom:var(--space-md)
  }

  .service-hero,.standort-detail-hero,.tagespflege-hero,.onboarding-hero{
    padding:var(--space-lg) 0 var(--space-md)
  }

  .service-hero__actions,.tagespflege-hero__actions,.service-cta__actions{
    display:block
  }

  .service-hero__actions .button,.tagespflege-hero__actions .button,.service-cta__actions .button{
    display:block;
    width:100%;
    margin-bottom:var(--space-sm)
  }

  .service-hero__image{
    margin-top:var(--space-lg)
  }

  .service-hero__image img,.tagespflege-hero__image img,.standort-detail-image{
    aspect-ratio:4/3
  }

  .content-card,.info-card,.standort-detail-contact,.standort-detail-text,.service-card{
    padding:var(--space-md)
  }

  .standort-detail-headline{
    line-height:1.25
  }

  .standort-detail-image{
    margin-bottom:0
  }

  .standort-detail-description{
    padding:var(--space-lg) 0
  }

  .standort-detail-description__text{
    font-size:var(--font-size-base);
    line-height:1.7
  }

  .standort-detail-contact{
    margin-top:var(--space-lg)
  }

  .standort-detail-address{
    font-size:var(--font-size-base)
  }

  .standort-detail-contact-row{
    grid-template-columns:1fr;
    gap:var(--space-xs)
  }

  .standort-detail-media{
    padding:var(--space-md) 0
  }

  .standort-detail-media__headline{
    font-size:var(--font-size-l)
  }

  .standort-more{
    padding:var(--space-lg) 0
  }

  .standort-more-card{
    min-height:0;
    padding:var(--space-md)
  }

  .standort-more__all .button{
    width:100%
  }

  .tagespflege-benefit{
    height:auto;
    min-height:220px;
    margin-bottom:var(--space-md);
    padding:1rem
  }

  .tagespflege-benefit__icon{
    right:-10px;
    bottom:-15px;
    width:150px;
    height:150px
  }

  .tagespflege-benefit__headline{
    font-size:1.3rem
  }

  .tagespflege-benefit__text{
    font-size:var(--font-size-base)
  }

  .tagespflege-film .tagespflege-section-header{
    text-align:left
  }

  .tagespflege-day__grid{
    grid-template-columns:1fr
  }

  .tagespflege-day-card{
    display:grid;
    grid-template-columns:62px minmax(0,1fr);
    gap:var(--space-sm) var(--space-md);
    text-align:left
  }

  .tagespflege-day-card__clock{
    grid-row:1/span 2;
    width:62px;
    height:62px;
    margin:0
  }

  .tagespflege-day-card h3{
    margin:0
  }

  .tagespflege-location-card__content,.tagespflege-film__content{
    padding:var(--space-md)
  }

  .tagespflege-contact__actions{
    margin-top:var(--space-md)
  }

  .landing-service-item{
    min-height:135px
  }

  .landing-service-item__image{
    width:110px;
    min-width:110px
  }

  .landing-service-item__content{
    padding:1rem
  }

  .landing-service-item h3{
    font-size:var(--font-size-m)
  }

  .landing-service-item__text{
    margin-bottom:var(--space-sm);
    font-size:.9rem;
    line-height:1.4
  }

  .landing-service-item__more{
    font-size:.85rem
  }

  .filmwettbewerb-content{
    padding:1.25rem
  }

  .filmwettbewerb-results{
    padding:1.25rem
  }

  .filmwettbewerb-ranking li strong{
    float:none;
    display:block;
    margin-top:.25rem
  }

  .filmvote-consent{
    align-items:flex-start
  }

  .filmvote-consent__box{
    padding:1.25rem
  }

  .filmvote-consent__actions{
    flex-direction:column
  }

  .filmvote-consent__actions .button{
    width:100%
  }

}

@media (prefers-reduced-motion:reduce){
  .landing-service-item,.landing-service-item__image img,.landing-service-item__more span,.filmwettbewerb-progress-bar,.standort-more-card,.tagespflege-location-card,.service-teaser,.tagespflege-location-card__arrow,.standort-more-card__action a::after,.team_list .frab-overlay,.team_list .text-overlay{
    transition:none
  }

}
