/* open-sans-regular - latin */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/open-sans-v28-latin-regular.eot'); /* IE9 Compat Modes */
  src: local(''),
       url('../fonts/open-sans-v28-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('../fonts/open-sans-v28-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
       url('../fonts/open-sans-v28-latin-regular.woff') format('woff'), /* Modern Browsers */
       url('../fonts/open-sans-v28-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
       url('../fonts/open-sans-v28-latin-regular.svg#OpenSans') format('svg'); /* Legacy iOS */
}

/*4JZ Formular Color Override */
form.style6 fieldset
{
	border: 1px solid rgb(30,130,210)!important;
}

form.style6
{
	background: none !important;
}

form.style6 fieldset legend
{
	background-color: rgb(30,136,210)!important;
	display: flex !important;
	border: 1px solid rgb(30,130,210)!important;
}

form.style6 input.submit[type="submit"], 
form.style6 button.submit[type="submit"]
{
	background-color: rgb(30,136,210)!important;
}

/* Button Padding Opti */
.ce_hyperlink a, a.btn {
	padding: 10px 10px !important;
	margin-bottom: 5px !important;
}

/* Overwrite framework.css */

.ce_downloads_box .ce_downloads_box_inside {
	font-size: 16px;
	background: none;
/*	padding: 30px;*/
	padding: 15px;
/*	font-size: 0.85rem;*/
}

a {
	color: #007E5B;
	text-decoration: none;
}


/* Overwrite Standort Pic Width-Auto
.ce_image .image_container img */

.image-100-w img {
  width: 100% !important;
}

.ansprechpartner-img img {
  width: 144px !important;
  display: inline !important;
}

.responsiveContainer {
  position: relative;
  padding-bottom: 56%;
  height: 0;
  overflow: hidden;
}

.responsiveContainer iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.fa-exclamation-circle:before, .fa-check:before{
	color: #007E5B;
}

.a {
	color: #007E5B !important;
}

.carpi{
	position: relative; 
	left: 15%; 
	z-index: 5;
}
.carpi_mouth{
	position: relative; 
	left: 55px;
	bottom: 45px;
	z-index: 6;
}
.lupe{
	position: relative; 
	bottom: 140px; 
	left: 120px;
	opacity: 0;
}
.error404{
	opacity: 0;
}
.arrow404{
	opacity: 0;
}

.bewerbungsinfo{
	position: fixed;
	bottom: 0;
	left: 20px;
	z-index: 5;
}
.bewerbungsinfo:hover{
	opacity: .7;
	-webkit-filter: drop-shadow(0.5px 0.5px 0.5px #111);
	filter: drop-shadow(0.5px 0.5px 0.5px #111);
	transition: all .09s ease-in-out;
}

.virtualtourinfo{
	position: fixed;
	top: 35%;
	left: -230px;
	z-index: 5;
}
.virtualtourinfo:hover{
	opacity: .7;
	-webkit-filter: drop-shadow(0.5px 0.5px 0.5px #111);
	filter: drop-shadow(0.5px 0.5px 0.5px #111);
	transition: all .09s ease-in-out;
}

.hovergreen{
	color: #555 !important;
}
.hovergreen:hover{
	color: #007e5b !important;
}

.hoverblack{
	color: #000 !important;
}

.hoverblack:hover{
	color: #000 !important;
}

.stickyjobmobile{
	float: right;
	padding-right: 40px;
	padding-top: 5px;
	margin-bottom: -20px;
}

.stickyblog{
	float: right;
	top: 0px;
	margin-bottom: -20px;
}
.stickyblog:hover{
	opacity: .7;
	-webkit-filter: drop-shadow(2px 2px 2px #222);
	filter: drop-shadow(2px 2px 2px #222);
	transition: all .09s ease-in-out;
}

@media (max-width: 1054px) {
	.stickyblog{
		display: none !important;
	}
}
.header{
	z-index: 5 !important;
}

.mainmenu{
	margin-right: 8% !important;
}

.mod_breadcrumb{
	color: #007E5B;
}


#wrapper{
	z-index: 4 !important;
}
.tp-revslider-slidesli{
	z-index: 5 !important;
}
.slider_container{
	width: 100%;
}
.ce_image_text_box .ce_image_text_box_content{
	margin-top: 10px !important;
}
.slotholder {
	transform:translate3d(0px, 0px, 0px) !important;
}
.ce_text_extented ul {
margin-bottom: 15px;
padding-left: 26px;
}
.ce_list.hasIcon ul li i {
margin-left: 0.1em !important;
}
.ce_text_extented li {
line-height: 1.5em;
list-style-type: disc;
list-style-position: outside;
}


input.submit, button.submit {
    border-radius: 0px !important;
    font-weight: 400 !important;
    font-size: 16px !important;
}

button.submit:hover {
	transform: scale(1.1);
	opacity: .7;
}


/*Styles für die popups*/
/*################################################################################*/
.background_fadeout{
	display: none;
	justify-content: center;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background-color: rgb(0,0,0,.7);
	position: fixed;
	z-index:10001;
	-webkit-animation: slide-in-fwd-center 0.5s ease-in-out both;
	        animation: slide-in-fwd-center 0.5s ease-in-out both;
}
.popup_box{
	z-index: 10001;
	margin: auto;
	max-height: 90%;
/*	border-radius:5px;*/
	max-width: 90%;
	min-width: 75%;
	min-height: 30%;
	overflow-y: auto;
	overflow: overlay;
	background-color: #e3e3e3;
	-webkit-animation: slide-in-fwd-center 0.4s ease-in-out both;
	        animation: slide-in-fwd-center 0.4s ease-in-out both;
}
@-webkit-keyframes slide-in-fwd-center {
  0% {
    -webkit-transform: translateZ(-1400px);
            transform: translateZ(-1400px);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateZ(0);
            transform: translateZ(0);
    opacity: 1;
  }
}
@keyframes slide-in-fwd-center {
  0% {
    -webkit-transform: translateZ(-1400px);
            transform: translateZ(-1400px);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateZ(0);
            transform: translateZ(0);
    opacity: 1;
  }
}
@keyframes slide-out-fwd-center {
  0% {
    -webkit-transform: translateZ(0);
            transform: translateZ(0);
    opacity: 1;
  }
  100% {
    -webkit-transform: translateZ(-1400px);
            transform: translateZ(-1400px);
    opacity: 0;
  }
}
@-webkit-keyframes slide-out-fwd-center {
  0% {
    -webkit-transform: translateZ(0);
            transform: translateZ(0);
    opacity: 1;
  }
  100% {
    -webkit-transform: translateZ(-1400px);
            transform: translateZ(-1400px);
    opacity: 0;
  }
}
.popup_txt_bg{
	background-color: rgb(0,126,91,.7);
	padding: 20px;
/*	border-radius: 5px;*/
}
.close-btn{
	float: right;
	margin-right: 20px;
	padding:0 20px 0 20px;
	border-radius:0 0 0 0px;
	background-color:#007e5b;
	color:#FFF;
	position: relative;
	top: 0;
	right: 0;
	z-index: 15;
}
.close-btn:hover{
	cursor: pointer;
	-webkit-animation:close_btn_anim .2s ease-in-out 0s 1 normal;
	-moz-animation:close_btn_anim .2s ease-in-out 0s 1 normal;
	-ms-animation:close_btn_anim .2s ease-in-out 0s 1 normal;
	animation:close_btn_anim .2s ease-in-out 0s 1 normal;
	background-color: #525252;
}
@-webkit-keyframes close_btn_anim {
	0%{ background-color:#007e5b; }
	100%{ background-color:#525252; }
}
@keyframes close_btn_anim {
	0%{ background-color:#007e5b; }
	100%{ background-color:#525252; }
}
.grow { 
transition: all .2s ease-in-out; 
}

.grow:hover { 
transform: scale(1.1);
opacity: .7;
}
.popup_txt_bg_4jz{
	background-color: rgb(0, 68, 148,.7);
	padding: 20px;
/*	border-radius: 5px;*/
}
.nobg{
	background:none !important;
}
.close-btn_4jz{
	float: right;
	margin-right: 20px;
	padding:0 20px 0 20px;
	border-radius:0 0 0 0px;
	background-color:#004494;
	color:#FFF;
	position: relative;
	top: 0;
	right: 0;
	z-index: 15;
}
.close-btn_4jz:hover{
	cursor: pointer;
	-webkit-animation:close_btn_anim_4jz .2s ease-in-out 0s 1 normal;
	-moz-animation:close_btn_anim_4jz .2s ease-in-out 0s 1 normal;
	-ms-animation:close_btn_anim_4jz .2s ease-in-out 0s 1 normal;
	animation:close_btn_anim_4jz .2s ease-in-out 0s 1 normal;
	background-color: #525252;
}
@-webkit-keyframes close_btn_anim_4jz {
	0%{ background-color:#004494; }
	100%{ background-color:#525252; }
}
@keyframes close_btn_anim_4jz {
	0%{ background-color:#004494; }
	100%{ background-color:#525252; }
}

.popup_btn{
	float: right;
	position: relative;
	bottom: 78px;
}


.background_demo{

	backdrop-filter: blur(5px);

}

.popup_btn_standortinfos{
	background-color: #007e5b; 
	border-color: #007e5b;
	width: 100%;
	min-width: 190px;
	font-weight: 700;
	text-align: center !important;
	font-size: .9rem;
/*	font-size: ;*/
	padding: 10px;
	color: #FFF;
	display: inline-block;
    padding: 12px 20px;
    margin-bottom: 15px;
    cursor: pointer;
    transition: all 0.2s ease-out 0s;
    -webkit-transition-property: all;
    transition-property: all;
    -webkit-transition-duration: 0.2s;
    transition-duration: 0.2s;
    font-family: "Open Sans";
}

/*Popup Scrolling*/


.popup_box::-webkit-scrollbar {
	width: 15px;
	z-index: 10 !important;
}

.popup_box::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.2);
/*  box-shadow: inset 0 0 5px grey; */
}

.popup_box::-webkit-scrollbar-thumb {
  background: rgba(90, 90, 90);
}

.popup_box::-webkit-scrollbar-thumb:hover {
  background: hsl(120 100% 10% / 1);
}

    


/*################################################################################*/
.ce_flipbox .ce_flipbox_frontside{
	background-position: center top 50px;
	
}

.ce_flipbox .ce_flipbox_backside{
	background-position: center top 40px;
	
}
.force_center{
	justify-content: center !important;
	text-align: center !important;
}

.bg_grey{
	background-color: #F0F0F0 /*var(--module-box-grey)*/;
}

.bg_green{
	background-color: #99CBBD /*var(--module-box-green)*/;	
}
.bg_blue{
	background-color: #D2E0EF /*var(--module-box-green)*/;	
}

.txt_green{
	color: #007E5B !important;
}

.txt_blue{
	color: #004494 !important;	
}

.txt_border_white{
    -webkit-text-stroke: 0.25px white;
}

.d_padding{
	padding-left: 15px;
	padding-right: 15px;
}

.r_padding{
	padding-right: 15px;
}

.tp-dottedoverlay.threexthree{
	background-size: contain !important;
	background-repeat: no-repeat;
	background-position: center center;
}

.transparent_bg {
    background-color: rgba(255, 255, 255, 0.85);
}

.zero_space{
	padding-left: 0px !important;
	padding-right: 0px !important;
	padding-top: 0px !important;
	padding-bottom: 0px !important;
	margin-left: 0px !important;
	margin-right: 0px !important;
	margin-top: 0px !important;
	margin-bottom: 0px !important;
}

.no_padding{
	margin-left: -15px !important;
	margin-right: -15px !important;
}

.no_padding_tb{
	margin-top: -60px;
	margin-bottom: -60px;
}

.no_r_padding{
	margin-right: -15px !important; 
}

.no_l_padding{
	margin-left: -15px !important; 
}

#top_link a{
	color: #FFF;
	background-color: #007e5b;
}

v_align{
	vertical-align: central;
}

p.privacy{
	background: #ff7777 !important;
}

.nobr{
 -moz-hyphens: none !important;
  -ms-hyphens: none !important;
  -webkit-hyphens: none !important;
  hyphens: none !important;
}


.scrollable_dl{
	overflow-y: auto !important;
	max-height: 200px !important;
}

.headline_md{
	font-size: 18px !important;
	font-family: "Open Sans";
}

.headline_lg{
	font-size: 24px !important;
	font-family: "Open Sans";
}

.headline_xl{
	font-size: 30px !important;
	font-family: "Open Sans";
}

.image_container img{
	max-width: 150% !important;
}

.ce_teambox .function{
	color: #000000 !important;
}
.ce_teambox.frame .teambox_inside .function {
    font-style: normal;
    font-weight: 500 !important;
}
/*.ce_teambox .image_container img {
	width: auto !important;
	margin: auto !important;
}*/
.ce_teambox .name {
	font-weight: 500 !important;
}

/*MENU ADJUSTMENT*/
#stickyheader {
	display:block;
	top:0 !important;
	z-index:500 !important;
}

.stickyheader .logo{
	width: 200px !important;
	height: 100px !important;
}

.stickyheader .header.cloned {
    line-height: 100px !important;
}

@media only screen and (max-width: 767px){
.logo{
    width: 200px !important;
    height: 100px !important;
	 }
}

/*MOBILE+DESKTOP ADJUSTMENTS)*/

/*MOBILE ONLY)*/
@media only screen and (max-width: 767px){
	.slider_container{
		height: 275px;
	}
	#top_link{
		display: block;
    }
	.mobile_hidden{
		display: none !important;
	}
	.b_padding_mobile{
		padding-bottom: 80px;
	}
	.responsiveContainer {
	padding-bottom: 100% !important;
	}
	.popup_box::-webkit-scrollbar {
	display: none;
	}
	.carpi_mouth{
	left: -17% !important;
	}
	.lupe{
	left: -20px !important;
	}
}


/*DESKTOP ONLY)*/
@media only screen and (min-width: 768px){
	.slider_container{
		height: 753px;
	}
	.desktop_hidden{
		display: none !important;
	}
	.Leistungsbox{
		max-height: 350px;
		min-height: 350px;
	}
	.Leistungsbox > div > div{
    width: 100%;
    margin-top: 20px;
	}
	.auto-fit{
		display: grid !important;
		grid-template-columns: repeat(auto-fit, minmax(160px, 1fr))!important;
	}/*Automatische Positionierung von Items (bspw. im Pagemenu unter den Slidern)*/
	
	/*Button Icons immer animieren außer mobile*/
	.ce_hyperlink i {
		opacity: 0;
		width: 0;
		transition: All 0.3s ease;
		-webkit-transition: All 0.3s ease;
	}
	.ce_hyperlink a:hover i {
    	opacity: 1;
    	width: 16px;
	}
	* {
	hyphens: none !important; 
	}
}




/* =========================================================
   relaunch-home.css
   Alle Regeln sind auf .relaunch-home gescoped, damit nichts
   anderes auf der bestehenden Seite beeinflusst wird.
   Einbindung: Seitenlayout -> "Externe Style-Sheets"
   (Datei aus der Contao-Dateiverwaltung referenzieren)
   oder per <link rel="stylesheet" href="..."> im Layout.
   ========================================================= */



/* ---------- Tokens + Basis ---------- */
.relaunch-home{
  --bg:#FAF8F3;
  --bg-alt:#EFEDE4;
  --surface:#FFFFFF;
  --ink:#1D1D1B;
  --ink-soft:#5B5850;
  --ink-faint:#8C8570;
  --line:#E2DFD2;
  --accent:#007E5B;
  --accent-bright:#4FAE83;
  --accent-soft:#B9C3A9;
  --accent-tint:#E4F1EC;
  --accent2:#F59F45;
  --btn-bg:#1D1D1B;
  --btn-fg:#FAF8F3;
  --shadow: 0 30px 60px -30px rgba(29,29,27,.35);
  --radius-s: 6px;
  --radius-m: 14px;
  --container: 1240px;
  --gap: clamp(1rem, 2vw, 1.75rem);

  background:var(--bg);
  color:var(--ink);
  font-family:'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
@media (prefers-color-scheme: dark){
  .relaunch-home:not([data-theme="light"]){
    --bg:#15201B;
    --bg-alt:#1C2822;
    --surface:#1B2621;
    --ink:#F3F1E9;
    --ink-soft:#BFC0B4;
    --ink-faint:#828B80;
    --line:#31392F;
    --accent:#3FCB97;
    --accent-bright:#6FDDB0;
    --accent-soft:#2F4A3C;
    --accent-tint:#1E2E27;
    --accent2:#F5A25C;
    --btn-bg:#F3F1E9;
    --btn-fg:#15201B;
    --shadow: 0 30px 70px -30px rgba(0,0,0,.6);
  }
}

.relaunch-home, .relaunch-home *{ box-sizing:border-box; }

.relaunch-home h1, .relaunch-home h2, .relaunch-home h3, .relaunch-home h4{
  font-family:'Playfair Display', Georgia, 'Times New Roman', serif;
  font-weight:500;
  line-height:1.05;
  letter-spacing:-0.01em;
  margin:0;
  text-wrap:balance;
  color:var(--accent);
}
.relaunch-home p{ margin:0; }
.relaunch-home a{ color:inherit; text-decoration:none; }
.relaunch-home button{ font-family:inherit; cursor:pointer; }

.relaunch-home .wrap{
  max-width:var(--container);
  margin:0 auto;
  padding-inline:clamp(1.25rem, 4vw, 3rem);
}

.relaunch-home .eyebrow{
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent2);
  display:inline-flex; align-items:center; gap:.6rem;
}
.relaunch-home .eyebrow::before{ content:""; display:inline-block; width:22px; height:2px; background:var(--accent2); border-radius:2px; }

.relaunch-home :focus-visible{ outline:2px solid var(--accent2); outline-offset:3px; }

/* ---------- Buttons / Links ----------
   Statt Standard-Pille + Lift-on-Hover: eine leicht asymmetrische
   Form (nickt zur Handschrift der Headline-Serife) und ein
   ruhiger Farb-Wipe von innen statt eines simplen Opacity-Fades.
   Der Pfeil rückt beim Hover ein Stück mit, als würde die
   Aktion selbst schon losgehen. */
.relaunch-home .btn{
  position:relative;
  display:inline-flex; align-items:center; gap:.55rem;
  padding:.9rem 1.7rem;
  background:var(--btn-bg); color:var(--btn-fg);
  border-radius:2px 20px 2px 20px;
  border:none;
  font-size:.95rem; font-weight:600;
  overflow:hidden; isolation:isolate;
  cursor:pointer;
  transition:color .5s cubic-bezier(.16,1,.3,1);
}
.relaunch-home .btn::before{
  content:"";
  position:absolute; inset:0;
  background:var(--accent);
  border-radius:inherit;
  transform:translateX(-102%);
  transition:transform .55s cubic-bezier(.16,1,.3,1);
  z-index:-1;
}
.relaunch-home .btn:hover::before,
.relaunch-home .btn:focus-visible::before{ transform:translateX(0); }
.relaunch-home .btn .btn-arrow{ transition:transform .45s cubic-bezier(.16,1,.3,1); flex-shrink:0; }
.relaunch-home .btn:hover .btn-arrow,
.relaunch-home .btn:focus-visible .btn-arrow{ transform:translateX(4px); }

.relaunch-home .btn.accent{ background:var(--accent); color:#fff; }
.relaunch-home .btn.accent::before{ background:var(--btn-bg); }

/* Hero-Button nutzt jetzt denselben Akzentgrün-Wipe wie der
   Button im Header statt eines eigenen Lift-Effekts. */

@media (prefers-reduced-motion: reduce){
  .relaunch-home .btn::before{ transition:none; }
  .relaunch-home .btn .btn-arrow{ transition:none; }
}

.relaunch-home .link-arrow{
  display:inline-flex; align-items:center; gap:.4rem;
  font-weight:600; font-size:.95rem;
  border-bottom:1px solid var(--ink-faint);
  padding-bottom:2px;
}
.relaunch-home .link-arrow svg{ transition:transform .3s cubic-bezier(.16,1,.3,1); }
.relaunch-home .link-arrow:hover{ color:var(--accent2); border-color:var(--accent2); }
.relaunch-home .link-arrow:hover svg{ transform:translateX(5px); }
.relaunch-home .link-arrow.on-dark{ border-color:rgba(247,242,231,.5); color:#F7F2E7; }
.relaunch-home .link-arrow.on-dark:hover{ color:var(--accent2); border-color:var(--accent2); }

/* ---------- Header ----------
   Der Header ist fix positioniert und liegt damit über wechselnden
   Hintergründen (Hero-Foto, Quicknav-Grün, helle Inhalts-Abschnitte).
   Statt einer einzigen "gescrollt/nicht gescrollt"-Optik passt er
   sich per data-header-theme (siehe JS) an das an, was gerade
   dahinter liegt - so wirkt er nie wie eine fest aufgeklebte, aus dem
   Kontext gerissene Leiste. */
.relaunch-home .skip-link{
  position:absolute; left:-999px; top:0;
  background:var(--btn-bg); color:var(--btn-fg);
  padding:.75rem 1.25rem; z-index:200; border-radius:0 0 8px 0;
}
.relaunch-home .skip-link:focus{ left:0; }

.relaunch-home header.site{
  position:fixed; inset:0 0 auto 0; z-index:100;
  padding:1.4rem clamp(1.25rem, 4vw, 3rem);
  display:flex; align-items:center; justify-content:space-between;
  border-bottom:1px solid transparent;
  transition:padding .4s cubic-bezier(.16,1,.3,1), background .5s ease, border-color .5s ease, box-shadow .4s;
}
.relaunch-home header.site.is-scrolled{
  padding:.75rem clamp(1.25rem, 4vw, 3rem);
  backdrop-filter:blur(14px) saturate(1.1);
  box-shadow:0 1px 0 rgba(0,0,0,.03);
}
.relaunch-home header.site.is-scrolled[data-header-theme="light"]{
  background:color-mix(in srgb, var(--bg) 88%, transparent);
  border-color:var(--line);
}
.relaunch-home header.site.is-scrolled[data-header-theme="accent"]{
  background:color-mix(in srgb, var(--accent) 80%, transparent);
  border-color:rgba(247,242,231,.18);
}
.relaunch-home header.site.is-scrolled[data-header-theme="dark"]{
  background:color-mix(in srgb, #0B1F17 74%, transparent);
  border-color:rgba(247,242,231,.14);
}
.relaunch-home .logo{
  font-family:'Playfair Display', serif; font-weight:500; font-size:1.35rem;
  letter-spacing:-0.01em; display:inline-flex; align-items:center; gap:.55rem;
}
.relaunch-home .logo-mark{ display:block; height:36px; width:auto; filter:none; transition:filter .4s ease; }
.relaunch-home header.site:not([data-header-theme="light"]) .logo-mark{ filter:brightness(0) invert(1); }
.relaunch-home .mobile-menu .logo .logo-mark{ height:32px; }
@media (max-width:480px){ .relaunch-home .logo-mark{ height:30px; } }

.relaunch-home nav.primary{ display:flex; align-items:center; gap:clamp(1.25rem,2.4vw,2.4rem); }
.relaunch-home nav.primary .nav-links{ display:flex; gap:clamp(1.25rem,2.4vw,2.2rem); }
.relaunch-home nav.primary .nav-links a{
  font-size:.92rem; font-weight:500; color:var(--ink-soft);
  position:relative; padding:.2rem 0;
  transition:color .4s ease;
}
.relaunch-home header.site:not([data-header-theme="light"]) nav.primary .nav-links a{ color:rgba(247,242,231,.85); }
.relaunch-home nav.primary .nav-links a:hover{ color:var(--accent2); }
.relaunch-home header.site:not([data-header-theme="light"]) nav.primary .nav-links a:hover{ color:#fff; }
.relaunch-home nav.primary .nav-links a::after{
  content:""; position:absolute; left:0; right:100%; bottom:-2px; height:1px; background:var(--accent2);
  transition:right .3s cubic-bezier(.16,1,.3,1);
}
.relaunch-home header.site:not([data-header-theme="light"]) nav.primary .nav-links a::after{ background:#F7F2E7; }
.relaunch-home nav.primary .nav-links a:hover::after{ right:0; }
.relaunch-home .nav-cta{ display:none; }
@media (min-width:900px){
  .relaunch-home .nav-cta{ display:inline-flex; }
  .relaunch-home .menu-toggle{ display:none; }
}
.relaunch-home .menu-toggle{
  display:flex; flex-direction:column; gap:5px; background:none; border:none; padding:.5rem;
}
.relaunch-home .menu-toggle span{ width:22px; height:2px; background:var(--ink); display:block; transition:transform .3s, opacity .3s, background .4s ease; }
.relaunch-home header.site:not([data-header-theme="light"]) .menu-toggle span{ background:#F7F2E7; }
@media (min-width:900px){ .relaunch-home nav.primary .nav-links{ display:flex; } }
@media (max-width:899px){ .relaunch-home nav.primary .nav-links{ display:none; } }

.relaunch-home .mobile-menu{
  position:fixed; inset:0; z-index:150;
  background:var(--bg);
  display:flex; flex-direction:column;
  padding:1.4rem clamp(1.25rem,4vw,3rem);
  transform:translateY(-100%);
  transition:transform .5s cubic-bezier(.16,1,.3,1);
}
.relaunch-home .mobile-menu.is-open{ transform:translateY(0); }
.relaunch-home .mobile-menu .top{ display:flex; align-items:center; justify-content:space-between; }
.relaunch-home .mobile-menu .close-btn{ background:none; border:none; font-size:1.6rem; line-height:1; color:var(--ink); padding:.5rem; }
.relaunch-home .mobile-menu-links{ display:flex; flex-direction:column; gap:1.6rem; margin-top:3rem; }
.relaunch-home .mobile-menu-links a{ font-family:'Playfair Display',serif; font-size:2rem; font-weight:400; }
.relaunch-home .mobile-menu .btn{ margin-top:2.4rem; align-self:flex-start; }

/* ---------- Hero ---------- */
.relaunch-home .hero{
  position:relative; min-height:100vh;
  display:flex; z-index: 0; align-items:flex-end;
  padding:0 0 clamp(2.5rem,6vw,5rem);
  overflow:hidden;
}
.relaunch-home .hero .photo{ position:absolute; inset:0; z-index:-1; }
/* Scrim: sichert Lesbarkeit von Header-Inhalten oben und Headline
   unten unabhängig vom jeweiligen Foto - und der Farbton geht am
   unteren Rand bewusst schon Richtung Quicknav-Grün, damit der
   Übergang zum nächsten Abschnitt wie eine Fortsetzung wirkt statt
   wie ein harter Schnitt zwischen zwei fremden Flächen. */
.relaunch-home .hero::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:linear-gradient(180deg,
    rgba(8,20,15,.5) 0%,
    rgba(8,20,15,.08) 26%,
    rgba(8,20,15,.05) 55%,
    rgba(7,26,19,.62) 100%
  );
}
.relaunch-home .hero-inner{
  position:relative; z-index:1;
  width:100%; display:grid; gap:1.6rem;
  padding-top:8rem;
}
.relaunch-home .hero .eyebrow{ color:rgba(247,242,231,.78); }
.relaunch-home .hero h1{
  color:#F7F2E7; font-size:clamp(2.8rem, 7.2vw, 6.4rem);
  max-width:16ch;
}
.relaunch-home .hero .sub{
  color:rgba(247,242,231,.85); font-size:clamp(1.05rem,1.6vw,1.3rem);
  max-width:38ch; font-weight:400;
}
.relaunch-home .hero .actions{ display:flex; flex-wrap:wrap; gap:1.4rem; align-items:center; margin-top:.6rem; }
.relaunch-home .hero .btn{ background:#F7F2E7; color:#2A2720; }
.relaunch-home .hero .btn:hover, .relaunch-home .hero .btn:focus-visible{ color:#F7F2E7; }

/* ---------- Quicknav: Leistungen im Überblick ----------
   Vierter Anlauf: eine Zeile, ein Schriftschnitt, eine Farbe für alle
   vier Begriffe - keine Größenstaffelung, keine Indexziffern mehr.
   Die Unterscheidung zwischen "hat schon Inhalt" (Pflege, Wohnen) und
   "noch Platzhalter" (Service, Restaurant) passiert nicht mehr
   visuell auf dieser Seite, sondern rein im Ziel der Verlinkung.
   Sans-Serif statt der seriffen Headline-Schrift, damit es sich klar
   von den Headlines absetzt und moderner/technischer liest. Einzige
   Interaktion: ein dünner Unterstrich, der beim Hover/Fokus von
   links nach rechts einläuft - dieselbe Geste wie bei den Link-Pfeilen
   im restlichen Entwurf, nur ohne Pfeil. */
.relaunch-home .quicknav{ padding-block:clamp(3.5rem,7vw,5.5rem); }
.relaunch-home .quicknav .wrap{ text-align:center; }
.relaunch-home .quicknav .eyebrow{ margin-bottom:1.4rem; justify-content:center; }
.relaunch-home .quicknav-heading{
  font-size:clamp(1.7rem,3.2vw,2.3rem); font-weight:500;
  max-width:34ch; margin:0 auto clamp(2.2rem,4.5vw,3.4rem);
}
.relaunch-home .quicknav-flow{
  display:flex; flex-wrap:wrap; justify-content:center; gap:1.7rem 3rem; align-items:baseline;
}
.relaunch-home .quicknav-word{
  position:relative; display:inline-block;
  font-family:'Plus Jakarta Sans', sans-serif; font-weight:700; letter-spacing:-0.01em;
  color:var(--ink); font-size:clamp(1.8rem,3.4vw,2.4rem);
  padding-bottom:.3rem;
  transition:color .3s ease;
}
.relaunch-home .quicknav-word::after{
  content:""; position:absolute; left:0; right:100%; bottom:0; height:1.5px; background:var(--accent);
  transition:right .35s cubic-bezier(.16,1,.3,1);
}
.relaunch-home .quicknav-word:hover, .relaunch-home .quicknav-word:focus-visible{ color:var(--accent); }
.relaunch-home .quicknav-word:hover::after, .relaunch-home .quicknav-word:focus-visible::after{ right:0; }
@media (prefers-reduced-motion: reduce){
  .relaunch-home .quicknav-word::after{ transition:none; }
}

/* ---------- Fotos ---------- */
.relaunch-home .photo{
  position:relative; border-radius:var(--radius-m); overflow:hidden;
  background-size:cover; background-position:center;
}
.relaunch-home .photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }

/* ---------- Section-Basics ---------- */
.relaunch-home section{ padding-block:clamp(4.5rem,10vw,9rem); }
.relaunch-home .section-head{ max-width:44ch; display:grid; gap:1.1rem; margin-bottom:clamp(2.2rem,5vw,4rem); }
.relaunch-home .section-head h2{ font-size:clamp(2rem,4.2vw,3.1rem); }
.relaunch-home .section-head p{ color:var(--ink-soft); font-size:1.08rem; max-width:36ch; }

.relaunch-home .reveal{ opacity:0; transform:translateY(26px); transition:opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1); }
.relaunch-home .reveal.in-view{ opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion: reduce){
  .relaunch-home .reveal{ opacity:1; transform:none; transition:none; }
}

/* ---------- Standortsuche-Teaser (Locator) ---------- */
.relaunch-home .locator{ background:var(--bg-alt); }
.relaunch-home .locator-form{
  display:flex; gap:.6rem; flex-wrap:wrap;
  background:var(--surface); border:1px solid var(--line);
  border-radius:100px; padding:.5rem .5rem .5rem 1.6rem;
  max-width:640px; align-items:center;
  box-shadow:var(--shadow);
}
.relaunch-home .locator-form input{
  flex:1; min-width:160px; border:none; background:none; font-size:1.05rem;
  font-family:inherit; color:var(--ink); padding:.7rem 0;
}
.relaunch-home .locator-form input:focus{ outline:none; }
.relaunch-home .locator-form .btn{ white-space:nowrap; }
.relaunch-home .visually-hidden{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

.relaunch-home .locator-secondary{ margin-top:1.4rem; }

.relaunch-home .preview-grid{
  margin-top:clamp(2.6rem,6vw,4.5rem);
  display:grid; gap:var(--gap);
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
}
.relaunch-home .preview-card{
  background:var(--surface); border-radius:var(--radius-m); overflow:hidden;
  border:1px solid var(--line);
  transition:transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s;
}
.relaunch-home .preview-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow); }
.relaunch-home .preview-card .photo{ aspect-ratio:4/3; border-radius:0; transition:transform .8s cubic-bezier(.16,1,.3,1); }
.relaunch-home .preview-card:hover .photo{ transform:scale(1.04); }
.relaunch-home .preview-card .body{ padding:1.4rem 1.5rem 1.6rem; display:grid; gap:.5rem; }
.relaunch-home .preview-card h3{ font-size:1.25rem; }
.relaunch-home .preview-card .tags{ color:var(--ink-soft); font-size:.92rem; }
.relaunch-home .preview-card .cta{ margin-top:.5rem; }

/* ---------- Leistungsbereiche (alternierend) ---------- */
.relaunch-home .service-row{
  display:grid; gap:clamp(2rem,5vw,4rem); align-items:center;
  grid-template-columns:1fr; margin-bottom:clamp(3.5rem,8vw,6.5rem);
}
.relaunch-home .service-row:last-child{ margin-bottom:0; }
@media (min-width:860px){
  .relaunch-home .service-row{ grid-template-columns:1.05fr .95fr; }
  .relaunch-home .service-row.flip .photo{ order:2; }
  .relaunch-home .service-row.flip .service-text{ order:1; }
}
.relaunch-home .service-row .photo{ aspect-ratio:5/4; }
.relaunch-home .service-text{ display:grid; gap:1.1rem; }
.relaunch-home .service-text h3{ font-size:clamp(1.7rem,3vw,2.35rem); }
.relaunch-home .service-text p{ color:var(--ink-soft); font-size:1.06rem; max-width:42ch; }

/* ---------- Storytelling (gepinnt) ---------- */
.relaunch-home .story{ position:relative; background:#12211B; color:#F2EBD9; padding:0; }
.relaunch-home .story-track{ position:relative; }
.relaunch-home .story-sticky{
  position:sticky; top:0; height:100vh;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
}
.relaunch-home .story-sticky .photo{ position:absolute; inset:0; border-radius:0; }
.relaunch-home .story-sticky .scrim{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(11,22,17,.55), rgba(11,22,17,.8)); }
.relaunch-home .story-lines{ position:relative; text-align:center; padding-inline:1.5rem; }
.relaunch-home .story-line{
  font-family:'Playfair Display', serif; font-style:italic; font-weight:400;
  font-size:clamp(1.8rem,5.4vw,4rem);
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  opacity:0; transform:translateY(22px);
  transition:opacity .7s ease, transform .7s ease;
  max-width:20ch; margin-inline:auto;
}
.relaunch-home .story-line.active{ opacity:1; transform:translateY(0); position:relative; }
@media (prefers-reduced-motion: reduce){
  .relaunch-home .story-sticky{ position:relative; height:auto; padding-block:5rem 6rem; }
  .relaunch-home .story-lines{ position:relative; display:grid; gap:2.4rem; }
  .relaunch-home .story-line{ position:relative; opacity:1; transform:none; }
}

/* ---------- Unternehmen ---------- */
.relaunch-home .company{ background:var(--accent-tint); }
.relaunch-home .company-grid{
  display:grid; gap:1px; background:var(--line);
  border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden;
  grid-template-columns:1fr;
}
@media (min-width:720px){ .relaunch-home .company-grid{ grid-template-columns:1fr 1fr; } }
.relaunch-home .company-cell{ background:var(--surface); padding:clamp(1.8rem,3.5vw,2.6rem); display:grid; gap:.7rem; }
.relaunch-home .company-cell h4{ font-size:1.3rem; font-weight:500; }
.relaunch-home .company-cell p{ color:var(--ink-soft); font-size:.98rem; }
.relaunch-home .stat-line{ margin-top:clamp(2.4rem,5vw,3.6rem); display:flex; flex-wrap:wrap; gap:clamp(2rem,5vw,4rem); }
.relaunch-home .stat{ display:grid; gap:.2rem; }
.relaunch-home .stat .num{ font-family:'Playfair Display',serif; font-size:clamp(2rem,4vw,3rem); color:var(--accent2); }
.relaunch-home .stat .label{ color:var(--ink-soft); font-size:.92rem; }

/* ---------- Karriere ---------- */
.relaunch-home .careers{ background:#1D1D1B; color:#F2EBD9; }
.relaunch-home .careers h2{ color:#F2EBD9; }
.relaunch-home .careers .section-head p{ color:rgba(242,235,217,.75); }
.relaunch-home .careers .eyebrow{ color:rgba(242,235,217,.55); }
.relaunch-home .people-grid{ display:grid; gap:var(--gap); grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); }
.relaunch-home .person{ display:grid; gap:1rem; }
.relaunch-home .person .photo{ aspect-ratio:3/4; }
.relaunch-home .person blockquote{ font-family:'Playfair Display',serif; font-style:italic; font-size:1.2rem; margin:0; }
.relaunch-home .person cite{ display:block; font-style:normal; font-size:.88rem; color:rgba(242,235,217,.6); margin-top:.5rem; }
.relaunch-home .careers-cta{ margin-top:clamp(2.6rem,5vw,4rem); display:flex; gap:1.4rem; flex-wrap:wrap; align-items:center; }
.relaunch-home .careers .btn{ background:#F2EBD9; color:#201D16; }
