body,form,figure{margin:0;padding:0}img{border:0}header,footer,nav,section,aside,article,figure,figcaption{display:block}body{font-size:100.01%}select,input,textarea{font-size:99%}#container,.inside{position:relative}#main,#left,#right{float:left;position:relative}#main{width:100%}#left{margin-left:-100%}#right{margin-right:-100%}#footer{clear:both}#main .inside{min-height:1px}.ce_gallery>ul,.content-gallery>ul{margin:0;padding:0;overflow:hidden;list-style:none}.ce_gallery>ul li,.content-gallery>ul li{float:left}.ce_gallery>ul li.col_first,.content-gallery>ul li.col_first{clear:left}.float_left,.media--left>figure{float:left}.float_right,.media--right>figure{float:right}.block{overflow:hidden}.media{display:flow-root}.clear,#clear{height:.1px;font-size:.1px;line-height:.1px;clear:both}.invisible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.custom{display:block}#container:after,.custom:after{content:"";display:table;clear:both}
@media (max-width:767px){#wrapper{margin:0;width:auto}#container{padding-left:0;padding-right:0}#main,#left,#right{float:none;width:auto}#left{right:0;margin-left:0}#right{margin-right:0}}img{max-width:100%;height:auto}.audio_container audio{max-width:100%}.video_container video{max-width:100%;height:auto}.aspect,.responsive{position:relative;height:0}.aspect iframe,.responsive iframe{position:absolute;top:0;left:0;width:100%;height:100%}.aspect--16\:9,.responsive.ratio-169{padding-bottom:56.25%}.aspect--16\:10,.responsive.ratio-1610{padding-bottom:62.5%}.aspect--21\:9,.responsive.ratio-219{padding-bottom:42.8571%}.aspect--4\:3,.responsive.ratio-43{padding-bottom:75%}.aspect--3\:2,.responsive.ratio-32{padding-bottom:66.6666%}
header,footer,nav,section,aside,main,article,figure,figcaption{display:block}body,div,h1,h2,h3,h4,h5,h6,p,blockquote,pre,code,ol,ul,li,dl,dt,dd,figure,table,th,td,form,fieldset,legend,input,textarea{margin:0;padding:0}table{border-spacing:0;border-collapse:collapse}caption,th,td{text-align:left;text-align:start;vertical-align:top}abbr,acronym{font-variant:normal;border-bottom:1px dotted #666;cursor:help}blockquote,q{quotes:none}fieldset,img,iframe{border:0}ul{list-style-type:none}sup{vertical-align:text-top}sub{vertical-align:text-bottom}del{text-decoration:line-through}ins{text-decoration:none}body{font:12px/1 "Lucida Grande","Lucida Sans Unicode",Verdana,sans-serif;color:#000}input,button,textarea,select{font-family:inherit;font-size:99%;font-weight:inherit}pre,code{font-family:Monaco,monospace}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400}h1{font-size:1.8333em}h2{font-size:1.6667em}h3{font-size:1.5em}h4{font-size:1.3333em}table{font-size:inherit}caption,th{font-weight:700}a{color:#00f}h1,h2,h3,h4,h5,h6{margin-top:1em}h1,h2,h3,h4,h5,h6,p,pre,blockquote,table,ol,ul,form{margin-bottom:12px}
#colorbox,#cboxOverlay,#cboxWrapper{position:absolute;top:0;left:0;z-index:9999;overflow:hidden;-webkit-transform:translate3d(0,0,0)}#cboxWrapper{max-width:none}#cboxOverlay{position:fixed;width:100%;height:100%}#cboxMiddleLeft,#cboxBottomLeft{clear:left}#cboxContent{position:relative}#cboxLoadedContent{overflow:auto;-webkit-overflow-scrolling:touch}#cboxTitle{margin:0}#cboxLoadingOverlay,#cboxLoadingGraphic{position:absolute;top:0;left:0;width:100%;height:100%}#cboxPrevious,#cboxNext,#cboxClose,#cboxSlideshow{cursor:pointer}.cboxPhoto{float:left;margin:auto;border:0;display:block;max-width:none;-ms-interpolation-mode:bicubic}.cboxIframe{width:100%;height:100%;display:block;border:0;padding:0;margin:0}#colorbox,#cboxContent,#cboxLoadedContent{box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box}#cboxOverlay{background:#000;opacity:.9;filter:alpha(opacity = 90)}#colorbox{outline:0}#cboxContent{margin-top:20px;background:#000}.cboxIframe{background:#fff}#cboxError{padding:50px;border:1px solid #ccc}#cboxLoadedContent{border:5px solid #000;background:#fff}#cboxTitle{position:absolute;top:-20px;left:0;color:#ccc}#cboxCurrent{position:absolute;top:-20px;right:0;color:#ccc}#cboxLoadingGraphic{background:url(../../assets/colorbox/images/loading.gif) no-repeat center center}#cboxPrevious,#cboxNext,#cboxSlideshow,#cboxClose{border:0;padding:0;margin:0;overflow:visible;width:auto;background:0 0}#cboxPrevious:active,#cboxNext:active,#cboxSlideshow:active,#cboxClose:active{outline:0}#cboxSlideshow{position:absolute;top:-20px;right:90px;color:#fff}#cboxPrevious{position:absolute;top:50%;left:5px;margin-top:-32px;background:url(../../assets/colorbox/images/controls.png) no-repeat top left;width:28px;height:65px;text-indent:-9999px}#cboxPrevious:hover{background-position:bottom left}#cboxNext{position:absolute;top:50%;right:5px;margin-top:-32px;background:url(../../assets/colorbox/images/controls.png) no-repeat top right;width:28px;height:65px;text-indent:-9999px}#cboxNext:hover{background-position:bottom right}#cboxClose{position:absolute;top:5px;right:5px;display:block;background:url(../../assets/colorbox/images/controls.png) no-repeat top center;width:38px;height:19px;text-indent:-9999px}#cboxClose:hover{background-position:bottom center}
/*
Theme Name: 3c Web
Version: Version 50
Author: Aren Danielian
*/
/**
 * @license
 * MyFonts Webfont Build ID 3352236, 2017-02-28T11:42:16-0500
 * 
 * The fonts listed in this notice are subject to the End User License
 * Agreement(s) entered into by the website owner. All other parties are 
 * explicitly restricted from using the Licensed Webfonts(s).
 * 
 * You may obtain a valid license at the URLs below.
 * 
 * Webfont: CorporateS-Regular by URW++
 * URL: http://www.myfonts.com/fonts/urw/corporate-s/regular/
 * 
 * Webfont: CorporateS-Bold by URW++
 * URL: http://www.myfonts.com/fonts/urw/corporate-s/bold/
 * 
 * 
 * License: http://www.myfonts.com/viewlicense?type=web&buildid=3352236
 * Licensed pageviews: 20,000
 * Webfonts copyright: (URW)++,Copyright 2006 by (URW)++ Design &amp; Development
 * 
 * © 2017 MyFonts Inc
*/

/* 1.1 Fonts
--------------------------------------------------------------------------------------------*/
@font-face {
  font-family: "CorporateS-Regular";
  src: url("/files/theme/fonts/3326AC_0_0.woff2") format("woff2"),
    url("/files/theme/fonts/3326AC_0_0.woff") format("woff"),
    url("/files/theme/fonts/3326AC_0_0.ttf") format("truetype"),
    url("/files/theme/fonts/3326AC_0_0.eot?#iefix") format("embedded-opentype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "CorporateS-Bold";
  src: url("/files/theme/fonts/3326AC_1_0.woff2") format("woff2"),
    url("/files/theme/fonts/3326AC_1_0.woff") format("woff"),
    url("/files/theme/fonts/3326AC_1_0.ttf") format("truetype"),
    url("/files/theme/fonts/3326AC_1_0.eot?#iefix") format("embedded-opentype");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* 1. Allgemein
--------------------------------------------------------------------------------------------*/
:root {
  --primary-color: #3c3c3b;
  --secondary-color: #999;

  /* Team Gallery Hover Farben */
  --team-color-blue-grey: rgba(91, 148, 159, 0.9);
  --team-color-zitat: rgba(91, 148, 159, 1);
  --team-color-cyan: rgba(13, 185, 199, 0.9);
  --team-color-magenta: rgba(205, 0, 59, 0.9);
  --team-color-yellow: rgba(255, 255, 118, 0.9);
  --team-color-magenta-light: rgba(236, 75, 122, 0.9);
  --team-color-text: #ffffff;

  /* Overlay Text Farbe */
  --team-overlay-text: #3c3c3b;

  --bg-color: rgba(0, 0, 0, 0.03);
  --font-family-regular: "CorporateS-Regular", Arial, Helvetica, sans-serif;
  --font-family-bold: "CorporateS-Bold", Arial, Helvetica, sans-serif;

  --font-size-small: 0.75rem;
  /* 12px */
  --font-size-medium: 0.875rem;
  /* 14px */
  --font-size-large: 1rem;
  /* 16px */
  --font-size-standard: 1.25rem;
  /* 20px */
  --font-size-grand: 1.5rem;
  /* 24px */
  --font-size-jumbo: 2rem;
  /* 32px */
  --font-size-huge: 4rem;
  /* 64px */

  --spacing-little: 0.313rem;
  /* 5px */
  --spacing-small: 0.625rem;
  /* 10px */
  --spacing-13: 0.813rem;
  /* 13px */
  --spacing-medium: 1.25rem;
  /* 20px */
  --spacing-regular: 1.688rem;
  /* 27px */
  --spacing-large: 2.5rem;
  /* 40px */
  --spacing-normal: 3.125rem;
  /* 50px */
  --spacing-jumbo: 4rem;
  /* 64px */
  --spacing-huge: 6.25rem;
  /* 100px */
  --spacing-giant: 7.5rem;
  /* 120px */
  --spacing-expanded: 16.25rem;
  /* 260px */
  --spacing-immense: 31.25rem;
  /* 500px */

  --transition: 0.3s ease;
}

/* Basic typography
--------------------------------------------------------------------------------------------*/
body {
  font-family: var(--font-family-regular);
  background-color: var(--bg-color);
  color: var(--primary-color);
  overflow-x: hidden;
  position: relative;
  width: 100%;
}

h1 {
  font-family: var(--font-family-bold);
  font-size: var(--font-size-jumbo);
  font-weight: 700;
  text-transform: uppercase;
  color: var(--primary-color);
  line-height: 1.2;
  margin: 0;
}

h2 {
  font-family: var(--font-family-bold);
  font-size: var(--font-size-grand);
  font-weight: 400;
  text-transform: uppercase;
  color: var(--primary-color);
  line-height: 1.2;
  margin: 0;
}

h2 a {
  text-decoration: none;
  color: var(--primary-color);
}

h2 a:hover,
h2 a:focus-visible {
  color: var(--secondary-color);
}

h3 {
  font-family: var(--font-family-bold);
  font-size: var(--font-size-large);
  font-weight: 400;
  text-transform: uppercase;
  color: var(--secondary-color);
  margin: 0;
}

h4 {
  font-family: var(--font-family-regular);
  font-size: var(--font-size-large);
  font-weight: 400;
  text-transform: uppercase;
  color: var(--primary-color);
  line-height: 1.2;
  margin: 0;
  padding-left: var(--spacing-large);
}

h6 {
  font-family: var(--font-family-regular);
  font-size: var(--font-size-small);
  color: var(--secondary-color);
  margin: 0;
}

p,
ul li {
  font-family: var(--font-family-regular);
  font-size: var(--font-size-large);
  color: var(--primary-color);
  line-height: 1.4;
}

/* small helpers */
.pb-20 {
  padding-bottom: var(--spacing-little);
}

.pb-40 {
  padding-bottom: var(--spacing-large);
}

.pt-50 {
  padding-top: var(--spacing-normal);
}

.ptpb-40 {
  padding: var(--spacing-large) 0;
}

.ptpb-50 {
  padding: var(--spacing-normal) 0;
}

.pt-64 {
  padding-top: var(--spacing-jumbo);
}

.mb-10 {
  margin-bottom: var(--spacing-small);
}

.mb-13 {
  margin-bottom: var(--spacing-13);
}

/* Overview Section
--------------------------------------------------------------------------------------------*/
.overview-section {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  padding: 0 var(--spacing-immense) 0 var(--spacing-expanded);
  margin-bottom: -0.5rem;
}

.overview-section h3 {
  grid-column: 1;
  padding-left: 0;
  white-space: nowrap;
  align-self: start;
  margin-left: calc(var(--spacing-expanded) * -1);
}

.overview-section .overview-content {
  grid-column: 2;
  font-size: var(--font-size-large);
  color: var(--primary-color);
  line-height: 1.4;
}

.overview-section .overview-content p {
  margin: 0 0 var(--spacing-medium) 0;
}

.overview-section .overview-content a {
  color: var(--primary-color);
  text-decoration: underline;
  transition: color 0.3s ease;
}

.overview-section .overview-content a:hover {
  color: var(--secondary-color);
}

/* Projekt-Details
--------------------------------------------------------------------------------------------*/
.project-category {
  font-family: var(--font-family-bold);
  font-size: var(--font-size-small);
  font-weight: 700;
  color: var(--secondary-color);
  text-transform: uppercase;
  letter-spacing: 2px;
  margin-bottom: var(--spacing-small);
  margin-top: var(--spacing-large);
}

.project-hero-image {
  display: flex;
  flex-direction: column;
}

.project-hero-image h6 {
  order: 2;
  padding-top: var(--spacing-small);
  text-align: right;
}

.project-hero-image.fixed-height {
  height: 60vh;
  overflow: hidden;
}

.project-hero-image img {
  max-width: 100%;
  width: 100%;
  height: auto;
}

/* Header / Navigation
--------------------------------------------------------------------------------------------*/
.inside .logo img {
  height: 1.875rem;
}

.inside {
  display: flex;
  justify-content: space-between;
  padding: var(--spacing-medium) var(--spacing-large);
}

.level_1 {
  display: flex;
  align-items: center;
  gap: 1.875rem;
  font-size: var(--font-size-large);
  text-transform: uppercase;
}

.level_1 a {
  text-decoration: none;
  font-size: var(--font-size-large);
  font-weight: 400;
  letter-spacing: 0.5px;
  color: var(--secondary-color);
}

/* Projekgalerie Filter Navigation
--------------------------------------------------------------------------------------------*/
.project-filter-nav {
  width: 100vw;
  position: relative;
  left: 0;
  padding: var(--spacing-large) var(--spacing-large) 0 0;
}

.project-filter-nav .filter-container {
  display: flex;
  align-items: center;
  gap: 2rem;
}

.project-filter-nav .filter-heading {
  font-family: var(--font-family-regular);
  font-size: var(--font-size-large);
  white-space: nowrap;
}

.filter-buttons {
  display: flex;
  gap: 0;
  align-items: center;
  flex-wrap: wrap;
}

.project-filter-nav .filter-buttons {
  gap: 1rem;
}

.filter-btn {
  background: transparent;
  border: none;
  padding: var(--spacing-small) 0;
  font-family: var(--font-family-bold);
  font-size: var(--font-size-large);
  color: var(--secondary-color);
  cursor: pointer;
  transition: color 0.3s ease;
  text-decoration: none;
  white-space: nowrap;
  letter-spacing: 0.5px;
}

.filter-btn:hover {
  color: var(--primary-color);
}

.filter-btn.active {
  color: var(--primary-color);
  font-weight: 600;
}

.filter-btn:not(:last-child)::after {
  content: "";
  display: inline-block;
  width: 1px;
  height: 20px;
  margin-left: var(--spacing-medium);
  vertical-align: middle;
}

/* Projekgalerie Grid
--------------------------------------------------------------------------------------------*/
#article-2 {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible;
}

#artikel-2 .mod_newslist {
  width: 100vw;
  max-width: none !important;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  background: var(--team-color-text);
  padding: 0;
}

.mod_newslist {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--spacing-small);
  align-items: start;
}

.mod_newslist .layout_latest.arc_1.block {
  background: transparent;
  display: flex;
  flex-direction: column;
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.mod_newslist .layout_latest.arc_1.block.filter-hide {
  opacity: 0;
  transform: scale(0.95);
}

.mod_newslist .layout_latest.arc_1.block.filter-show {
  opacity: 1;
  transform: scale(1);
}

.mod_newslist .layout_latest img {
  max-width: 100%;
  width: 100%;
  height: auto;
}

.mod_newslist .ce_text {
  padding: var(--spacing-medium) 0;
  position: relative;
}

.mod_newslist h2 {
  position: absolute;
  left: -9999px;
  visibility: hidden;
}

.mod_newslist .ce_text::before {
  content: attr(data-subtitle);
  display: block;
  font-family: var(--font-family-bold);
  font-size: var(--font-size-large);
  color: var(--primary-color);
  text-transform: uppercase;
  line-height: 0.2;
  margin: 0 0 var(--spacing-small) 0;
  letter-spacing: 0.5px;
}

.mod_newslist .ce_text::after {
  content: attr(data-title);
  display: block;
  font-family: var(--font-family-bold);
  font-size: var(--font-size-standard);
  color: var(--secondary-color);
  text-transform: none;
  line-height: 1.3;
  margin: 0;
  font-weight: 700;
}

.mod_newslist p,
.mod_newslist .more,
.mod_newslist .info,
.mod_newslist .date,
.mod_newslist .author,
.mod_newslist [class*="date"],
.mod_newslist [class*="author"],
.mod_newslist [class*="time"],
.mod_newslist [class*="category"],
.mod_newslist .category {
  display: none;
}

/* Mehr-Button in Galerie
--------------------------------------------------------------------------------------------*/
.projects-hidden {
  display: none;
}

.projects-more-wrapper {
  text-align: right;
  margin: 3rem 0;
}

.projects-more-btn {
  font-family: var(--font-family-regular);
  font-size: var(--font-size-large);
  padding: 0.75rem 2rem;
  border: none;
  cursor: pointer;
  text-decoration: underline;
  background-color: transparent;
}

/* Medien-Galerie Grid Layout
--------------------------------------------------------------------------------------------*/
.media-gallery-grid.content-gallery {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: auto auto auto;
  column-gap: var(--spacing-small);
  position: relative;
  padding: 0 var(--spacing-expanded);
}

.media-gallery-grid.content-gallery ul {
  display: contents;
  list-style: none;
  padding: 0;
  margin: 0;
}

.media-gallery-grid.content-gallery li {
  position: relative;
  overflow: hidden;
  background: #f5f5f5;
  aspect-ratio: 16 / 9;
}

.media-gallery-grid.content-gallery li:nth-child(1) {
  grid-column: 1;
  grid-row: 1;
}

.media-gallery-grid.content-gallery li:nth-child(2) {
  grid-column: 2;
  grid-row: 1;
}

.media-gallery-grid.content-gallery li:nth-child(3) {
  grid-column: 1 / span 2;
  grid-row: 2;
}

.media-gallery-grid.content-gallery li:nth-child(4) {
  grid-column: 1;
  grid-row: 3;
}

.media-gallery-grid.content-gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.media-gallery-grid.content-gallery figure {
  margin: 0;
  height: 100%;
}

.media-gallery-grid.content-gallery picture {
  display: block;
  height: 100%;
}

.media-gallery-grid.content-gallery figcaption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.7);
  color: var(--team-color-text);
  padding: var(--spacing-small);
  font-size: var(--font-size-medium);
  font-family: var(--font-family-regular);
}

.media-gallery-grid.content-gallery video {
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* Video unterhalb der Galerie */
.media-gallery-grid.content-gallery+.media-gallery-video,
.media-gallery-grid.content-gallery+.ce_player,
.media-gallery-grid.content-gallery+.content-player {
  position: relative;
  margin-top: var(--spacing-small);
  grid-column: 1;
  grid-row: 4;
  align-self: start;
  padding: 0 var(--spacing-expanded);
}

.media-gallery-grid.content-gallery+.media-gallery-video video,
.media-gallery-grid.content-gallery+.ce_player video,
.media-gallery-grid.content-gallery+.content-player video {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

/* 3-Bilder Galerie */
.gallery-3images ul {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: auto auto;
  gap: 10px;
  list-style: none;
  margin: 0;
  padding: 0 var(--spacing-expanded);
}

.gallery-3images li {
  overflow: hidden;
  background: #f5f5f5;
  aspect-ratio: 16 / 9;
}

.gallery-3images li:nth-child(1) {
  grid-column: 1;
  grid-row: 1;
}

.gallery-3images li:nth-child(2) {
  grid-column: 1;
  grid-row: 2;
}

.gallery-3images li:nth-child(3) {
  grid-column: 2;
  grid-row: 1 / span 2;
  aspect-ratio: auto;
  height: 100%;
}

.gallery-3images img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Footer
--------------------------------------------------------------------------------------------*/
footer {
  color: var(--primary-color);
  padding: var(--spacing-medium) 0;
  position: relative;
  bottom: 0;
  width: 100%;
}

footer .inside {
  display: block;
  padding: 0;
}

.footer-header h2 {
  font-family: var(--font-family-bold);
  font-size: var(--font-size-jumbo);
  margin: 0;
  text-align: left;
  color: var(--primary-color);
  text-transform: none;
}

.footer-header a {
  text-decoration: none;
  color: var(--primary-color);
}

.footer-header a h2:hover {
  color: var(--secondary-color);
}

.footer-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  padding: var(--spacing-medium) var(--spacing-large);
}

.copyright {
  margin: 0;
  font-size: var(--font-size-large);
  color: var(--primary-color);
  text-align: left;
}

.footer-links {
  display: flex;
  align-items: center;
}

.footer-links a {
  color: var(--primary-color);
  text-decoration: none;
  margin-left: var(--spacing-medium);
  font-size: var(--font-size-large);
}

.footer-links .social-icon {
  font-size: var(--font-size-large);
  color: var(--primary-color);
  text-decoration: none;
}

.social-icon i {
  vertical-align: baseline;
}

.footer-header {
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  box-sizing: border-box;
  padding: 0;
  margin-bottom: var(--spacing-jumbo);
}

/* Similar Projects Section
--------------------------------------------------------------------------------------------*/
.similar-projects-section {
  width: 100%;
  margin: var(--spacing-normal) 0;
  padding: 0;
  position: relative;
}

.similar-projects-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--spacing-large);
  gap: var(--spacing-large);
}

.all-projects-link,
.similar-projects-title {
  font-family: var(--font-family-bold);
  font-size: var(--font-size-large);
  color: var(--secondary-color);
  text-decoration: none;
  transition: color 0.3s ease;
}

.similar-projects-title {
  font-size: var(--font-size-jumbo);
  color: var(--primary-color);
  text-transform: uppercase;
  margin: 0;
  text-decoration: none;
  transition: color var(--transition);
  flex-shrink: 0;
}

.similar-projects-title:hover,
.similar-projects-title:focus-visible {
  color: var(--secondary-color);
}

.all-projects-link:hover {
  color: var(--primary-color);
}

/* Filter Navigation im Header */
.filter-navigation {
  display: flex;
  gap: 1.5rem;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-start;
  flex: 1;
}

.filter-navigation .filter-btn {
  background: transparent;
  border: none;
  padding: 0;
  font-family: var(--font-family-bold);
  font-size: var(--font-size-large);
  color: var(--secondary-color);
  cursor: pointer;
  transition: color var(--transition);
  text-decoration: none;
  white-space: nowrap;
  letter-spacing: 0.5px;
}

.filter-navigation .filter-btn:hover,
.filter-navigation .filter-btn:focus-visible {
  color: var(--primary-color);
}

.filter-navigation .filter-btn.active {
  color: var(--primary-color);
  font-weight: 600;
}

/* Carousel */
.projects-carousel {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--spacing-medium);
}

.carousel-container {
  flex: 1;
  overflow: hidden;
  position: relative;
}

.carousel-track {
  display: flex;
  gap: var(--spacing-small);
  transition: transform 0.4s ease-in-out;
}

.carousel-item {
  min-width: auto;
  flex-shrink: 0;
  position: relative;
}

.carousel-item a {
  display: block;
  text-decoration: none;
  color: var(--primary-color);
}

.carousel-item img,
.carousel-item video {
  width: 30vw;
  max-width: 450px;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  height: auto;
  display: block;
}

.carousel-item:hover img {
  opacity: 0.9;
}

.carousel-caption {
  padding: var(--spacing-medium) 0;
}

.carousel-caption h6 {
  font-family: var(--font-family-bold);
  font-size: var(--font-size-small);
  color: var(--primary-color);
  text-transform: uppercase;
  margin-bottom: var(--spacing-little);
  letter-spacing: 1px;
}

.carousel-caption h4 {
  font-family: var(--font-family-bold);
  font-size: var(--font-size-large);
  color: var(--secondary-color);
  text-transform: none;
  padding-left: 0;
  line-height: 1.3;
  transition: color 0.3s ease;
}

.carousel-item:hover .carousel-caption h4 {
  color: var(--secondary-color);
}

.carousel-item video {
  transition: opacity 0.3s ease;
}

.carousel-item:hover video {
  opacity: 0.9;
}

.carousel-arrow {
  background: transparent;
  border: none;
  font-size: 3rem;
  color: var(--secondary-color);
  cursor: pointer;
  padding: 0;
  line-height: 1;
  transition: color var(--transition);
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
}

.carousel-arrow:hover,
.carousel-arrow:focus-visible {
  color: var(--primary-color);
}

.carousel-arrow:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

.carousel-arrow span {
  display: block;
  line-height: 1;
}

.carousel-arrow-right {
  justify-content: end;
}

/* Karriere – Legacy-Akkordeon als Jobliste
   ---------------------------------------------------------------------- */

/* Abstand der einzelnen Jobs */
.ce_accordionSingle,
.ce_accordion {
  max-width: 1200px;
  margin-bottom: var(--spacing-small);
  min-height: var(--spacing-huge);
}

/* Kopfzeile (Balken) */
.ce_accordionSingle .toggler,
.ce_accordion .toggler {
  position: relative;
  min-height: var(--spacing-jumbo);
  padding: var(--spacing-medium) var(--spacing-large);
  font-family: var(--font-family-bold);
  font-size: var(--font-size-standard);
  text-transform: none;
  cursor: pointer;
  border: 0;
  background: #eee;
  /* Fallback, falls keine Farbe gesetzt */
  text-align: left;
}

/* Pfeil rechts im Toggler */
.ce_accordionSingle .toggler::after,
.ce_accordion .toggler::after {
  content: "›";
  position: absolute;
  right: var(--spacing-large);
  top: 50%;
  transform: translateY(-50%);
  display: inline-block;
  font-size: var(--font-size-grand);
  line-height: 1;
  transition: transform var(--transition);
  color: var(--primary-color);
}

/* Wenn geöffnet: Pfeil drehen */
.ce_accordionSingle .toggler.active::after,
.ce_accordion .toggler.active::after {
  transform: translateY(-50%) rotate(90deg);
}

/* Inhalt */
.ce_accordionSingle .accordion,
.ce_accordion .accordion {
  padding: var(--spacing-medium) var(--spacing-large) var(--spacing-large);
  background: transparent;
}

/* Farbvarianten nur für den Balken */
.job-yellow .toggler {
  background: var(--team-color-yellow);
}

.job-blue .toggler {
  background: var(--team-color-blue-grey) !important;
  color: var(--team-color-text) !important;
}

.job-magenta .toggler {
  background: var(--team-color-magenta);
  color: var(--team-color-text) !important;
}

.job-blue .toggler::after,
.job-magenta .toggler::after {
  color: var(--team-color-text) !important;
}

.job-cyan .toggler {
  background: var(--team-color-cyan);
}

/* Zweite Zeile im Toggler (z.B. 40h/Woche) */
.ce_accordionSingle .toggler {
  display: block;
  /* nicht mehr als Flex-Row */
}

.ce_accordionSingle .toggler .job-title-main,
.ce_accordionSingle .toggler .job-title-sub {
  display: block;
}

/* 2. Zeile */
.ce_accordionSingle .toggler .job-title-sub {
  font-family: var(--font-family-regular);
  font-size: var(--font-size-medium);
  margin-top: 0.25rem;
  text-transform: none;
  opacity: 0.85;
}

/* Toggler-Texte für job-blue & job-magenta weiß darstellen */
.job-blue.ce_accordionSingle .toggler,
.job-magenta.ce_accordionSingle .toggler,
.job-blue.ce_accordion .toggler,
.job-magenta.ce_accordion .toggler {
  color: var(--team-color-text);
}

/* Inhaltstexte in allen Jobs: normale (dunkle) Schriftfarbe */
.job-blue .accordion,
.job-magenta .accordion {
  color: var(--primary-color);
}

.job-blue .accordion p,
.job-blue .accordion li,
.job-blue .accordion h2,
.job-magenta .accordion p,
.job-magenta .accordion li,
.job-magenta .accordion h2 {
  color: var(--primary-color);
}

/* jQuery-UI-Pfeil ausblenden, wir nutzen unseren eigenen › */
.job-blue .ui-accordion-header-icon,
.job-magenta .ui-accordion-header-icon {
  display: none;
}

/* Karriere – Akkordeon-Jobs (Twig-Template jobs.html.twig)
   ---------------------------------------------------------------------- */

.job-list {
  max-width: 800px;
  margin: var(--spacing-normal) auto;
}

/* Bunter Balken / Header */
.job-box {
  margin-bottom: var(--spacing-small);
  padding: var(--spacing-medium) var(--spacing-large);
}

/* Inhalt der Kopfzeile: Titel-Zeilen + Icon */
.job-box__button {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  column-gap: var(--spacing-medium);
  align-items: flex-start;
  width: 100%;
  border: 0;
  padding: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
}

/* 1. Zeile (Jobtitel) */
.job-box__title-main {
  grid-column: 1;
  grid-row: 1;
  font-family: var(--font-family-bold);
  font-size: var(--font-size-standard);
  text-transform: none;
}

/* 2. Zeile (frei konfigurierbar, z. B. "40h/Woche", "Teilzeit möglich" …) */
.job-box__title-sub {
  grid-column: 1;
  grid-row: 2;
  font-family: var(--font-family-regular);
  font-size: var(--font-size-medium);
  text-transform: none;
  margin-top: 0.25rem;
  opacity: 0.85;
}

/* Icon-Spalte rechts */
.job-box__icon {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  justify-self: end;
}

/* Pfeil darstellen */
.job-box__icon::before {
  content: "›";
  display: block;
  font-size: var(--font-size-grand);
  line-height: 1;
  transition: transform var(--transition);
}

/* Wenn Akkordeon geöffnet ist (handorgel setzt "--opened" auf den Header) */
.handorgel__header.--opened .job-box__icon::before {
  transform: rotate(90deg);
}

/* Inhaltspanel */
.job-box__content {
  padding: var(--spacing-medium) var(--spacing-large) var(--spacing-large);
  background: var(--team-color-text);
}

/* Farbvarianten – Klassen kommen aus dem Feld CSS-ID/Klasse im Inhaltselement */
.job-yellow.job-box {
  background: #fff86a;
}

/* SUNNY FRIDAY – separater Kreis unterhalb des 1. Jobs
   ------------------------------------------------------------ */

/* Der Kreis selbst */
.sunny-circle {
  width: 300px;
  height: 300px;
  background: var(--team-color-yellow);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 40px;
  box-sizing: border-box;
  transform: rotate(-7deg);
}

.sunny-circle-small {
  font-family: var(--font-family-regular);
  font-size: var(--font-size-large);
  font-size: 1rem;
  margin-bottom: 0.5rem;
  line-height: 1.4;
  color: var(--primary-color);
}

.sunny-circle-big {
  font-family: var(--font-family-bold);
  font-size: var(--font-size-jumbo);
  text-transform: uppercase;
  line-height: 1.2;
  color: var(--primary-color);
}

.sunny-circle-big2 {
  font-family: var(--font-family-bold);
  font-size: var(--font-size-jumbo);
  margin-bottom: 0.8rem;
  color: var(--primary-color);
  line-height: 1.2;
}

.sunny-circle-text {
  font-family: var(--font-family-regular);
  font-size: var(--font-size-large);
  line-height: 1.4;
  color: var(--primary-color);
}

.sunny-friday-block a {
  text-decoration: none;
}

.sunny-friday-block:hover {
  transform: rotate(-4deg) scale(1.07);
}

/* Textblock soll Float “umschließen” */
.career-textblock {
  overflow: hidden;
}

/* SUNNY FRIDAY im Text – Text läuft um den Kreis */
.sunny-friday-block {
  float: right;
  width: 300px;
  height: 300px;
  margin: var(--spacing-large) var(--spacing-medium) var(--spacing-medium) var(--spacing-large);
  /* Abstand zum Text */
  shape-outside: circle(50%);
  clip-path: circle(50%);
  position: static;
  /* wichtig: absolut aus */
  display: block;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  transform: rotate(-8deg);
  /* deine Grundrotation */
}

.job-cyan.job-box {
  background: #7fd8e6;
}

.job-blue.job-box {
  background: #5b949f;
  color: var(--team-color-text);
}

.job-magenta.job-box {
  background: #ec4b7a;
  color: var(--team-color-text);
}

/* Texte im dunklen Balken weiß */
.job-blue.job-box .job-box__title-main,
.job-blue.job-box .job-box__title-sub,
.job-magenta.job-box .job-box__title-main,
.job-magenta.job-box .job-box__title-sub {
  color: var(--team-color-text);
}

/* Pfeil sicher rechts positionieren & Headline links */
.ce_accordionSingle .toggler,
.ce_accordion .toggler {
  position: relative;
  text-align: left;
}

.ce_accordionSingle .toggler::after,
.ce_accordion .toggler::after {
  position: absolute;
  right: var(--spacing-large);
  top: 50%;
  transform: translateY(-50%);
}

/* wenn geöffnet: zusätzlich drehen */
.ce_accordionSingle .toggler.active::after,
.ce_accordion .toggler.active::after {
  transform: translateY(-50%) rotate(90deg);
}

/* Karriere-Textblock nach Jobliste */
.career-textblock {
  max-width: 800px;
  margin: var(--spacing-normal) 0;
  /* Abstand nach oben */
  font-size: var(--font-size-large);
  /* 16px Standard */
  line-height: 1.5;
}

/* Überschrift innerhalb des Blocks */
.career-textblock h2,
.career-textblock h3,
.career-textblock h4 {
  margin-bottom: 16px;
  /* Abstand zur ersten Textzeile */
}

/* Paragraphen-Abstände */
.career-textblock p {
  margin-bottom: 12px;
}

/* Footer Unterseite
--------------------------------------------------------------------------------------------*/
.footer-line {
  border: 0;
  height: 2px;
  background: var(--primary-color);
  margin: var(--spacing-large) 0;
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}

.footer-nav-container {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--spacing-large);
}

.footer-nav-link {
  text-decoration: none;
  color: var(--primary-color);
}

.footer-nav-next {
  flex: 1;
}

.footer-nav-label {
  color: var(--secondary-color);
  display: block;
}

.footer-nav-container h4 {
  padding-left: 0;
}

.footer-nav-next h2 {
  font-family: var(--font-family-bold);
  font-size: var(--font-size-jumbo);
  text-transform: none;
  margin: 0;
  transition: color 0.3s ease;
}

.footer-nav-next:hover h2 {
  color: var(--secondary-color);
}

.footer-nav-all a {
  color: var(--secondary-color);
}

.footer-nav-all:hover {
  color: var(--secondary-color);
}

.footer-nav-icon {
  font-size: var(--font-size-grand);
}

/* Footer-Line speziell für article-7 */
#article-7 .footer-line {
  position: absolute;
  left: 0;
  width: 100vw;
  height: 2px;
  background: var(--primary-color);
  margin: 0;
  transform: translateX(calc(-50vw + 50%));
}

/* Impressum Seite, Kontakt Seite
--------------------------------------------------------------------------------------------*/
.impressum-container {
  max-width: 800px;
}

.impressum-container h1 {
  font-family: var(--font-family-bold);
  font-size: var(--font-size-jumbo);
  font-weight: 700;
  text-transform: uppercase;
  color: var(--primary-color);
  margin-bottom: var(--spacing-large);
  line-height: 1.2;
}

.impressum-container h2 {
  font-family: var(--font-family-bold);
  font-size: var(--font-size-standard);
  font-weight: 700;
  text-transform: uppercase;
  color: var(--primary-color);
  margin-top: var(--spacing-large);
  margin-bottom: var(--spacing-medium);
  line-height: 1.3;
}

.impressum-container h3 {
  font-family: var(--font-family-bold);
  font-size: var(--font-size-large);
  font-weight: 700;
  text-transform: uppercase;
  color: var(--primary-color);
  margin-top: var(--spacing-large);
  margin-bottom: var(--spacing-medium);
  line-height: 1.3;
}

.impressum-container p {
  font-family: var(--font-family-regular);
  font-size: var(--font-size-large);
  color: var(--primary-color);
  line-height: 1.6;
  margin-bottom: var(--spacing-medium);
}

.impressum-container .contact-info {
  margin-bottom: var(--spacing-medium);
}

.impressum-container .contact-info p {
  margin-bottom: var(--spacing-small);
}

.impressum-container a {
  color: var(--primary-color);
  text-decoration: none;
  border-bottom: 1px solid var(--secondary-color);
  transition: color var(--transition), border-color var(--transition);
}

.impressum-container a:hover,
.impressum-container a:focus-visible {
  color: var(--secondary-color);
  border-bottom-color: var(--primary-color);
}

.impressum-container .legal-text {
  font-size: var(--font-size-medium);
  color: var(--secondary-color);
  line-height: 1.7;
  margin-top: var(--spacing-medium);
}

.impressum-container address {
  font-style: normal;
  line-height: 1.6;
}

.impressum-container address p {
  margin-bottom: var(--spacing-medium);
}

.impressum-container .legal-text p {
  margin-bottom: var(--spacing-small);
}

/* Team Gallery - Masonry Layout
--------------------------------------------------------------------------------------------*/
.team-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: var(--spacing-small);
  gap: var(--spacing-small);
  width: 100%;
  padding: 0;
  margin: 0;
  list-style: none;
}

.team-gallery-item {
  position: relative;
  overflow: hidden;
  background: #f5f5f5;
  display: block;
  width: 100%;
}

.team-gallery-item img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform var(--transition);
}

/* Hover Overlay */
.team-gallery-item .team-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity var(--transition);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  padding: var(--spacing-medium);
  box-sizing: border-box;
  text-align: left;
}

/* JOIN-BLOCK: Titel oben links, Link unten rechts */
.team-join-item .team-overlay {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  padding: var(--spacing-large);
}

.team-gallery-item:hover .team-overlay {
  opacity: 1;
}

.team-overlay.always-visible {
  opacity: 1 !important;
}

/* Farbvarianten */
.team-gallery-item.color-blue-grey .team-overlay {
  background: var(--team-color-blue-grey);
}

.team-gallery-item.color-cyan .team-overlay {
  background: var(--team-color-cyan);
}

.team-gallery-item.color-magenta .team-overlay {
  background: var(--team-color-magenta);
}

.team-gallery-item.color-pink .team-overlay {
  background: var(--team-color-yellow);
}

.team-gallery-item.color-magenta-light .team-overlay {
  background: var(--team-color-magenta-light);
}

/* Team Member Info */
.team-member-name {
  font-family: var(--font-family-bold);
  font-size: var(--font-size-grand);
  color: var(--team-overlay-text);
  line-height: 1.2;
  text-align: left !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  text-transform: none;
}

.team-member-position {
  font-family: var(--font-family-regular);
  font-size: var(--font-size-medium);
  color: var(--team-overlay-text);
  margin: 0 0 var(--spacing-jumbo) 0;
  line-height: 1.3;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.color-cyan .team-member-name,
.color-cyan .team-member-position,
.color-magenta .team-member-name,
.color-magenta .team-member-position,
.color-magenta-light .team-member-name,
.color-magenta-light .team-member-position {
  color: var(--team-color-text);
}

.color-blue-grey .team-member-name,
.color-blue-grey .team-member-position,
.color-pink .team-member-name,
.color-pink .team-member-position {
  color: var(--team-overlay-text);
}

/* Join Our Team Block (alt) */
.team-join-block {
  position: relative;
  background: var(--team-color-cyan);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  padding: var(--spacing-large);
  text-decoration: none;
  transition: background var(--transition);
  width: 100%;
  box-sizing: border-box;
  aspect-ratio: 1 / 1;
  height: 100%;
}

.team-join-block:hover {
  background: var(--team-color-blue-grey);
}

.team-join-title {
  font-family: var(--font-family-bold);
  font-size: clamp(1.4rem, 3vw, 2.4rem);
  color: var(--primary-color);
  margin: 0 0 var(--spacing-normal) 0;
  line-height: 1.1;
  text-transform: none;
}

.team-join-link {
  font-family: var(--font-family-regular);
  font-size: clamp(0.65rem, 1.2vw, 0.95rem);
  text-transform: uppercase;
  letter-spacing: 1px;
  text-decoration: none;
  color: var(--primary-color);
  display: inline-flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0.35rem;
  margin-top: var(--spacing-small);
  width: 100%;
  padding: 0;
}

.team-join-link::after {
  content: "›";
  font-size: clamp(0.9rem, 2.2vw, 1.8rem);
  line-height: 1;
  position: relative;
  top: -2.5px;
}

.team-join-block:hover .team-join-link::after {
  transform: translateX(5px);
}

/* Accessibility */
.team-gallery-item:focus-visible,
.team-join-block:focus-visible {
  outline: 2px solid var(--primary-color);
  outline-offset: -2px;
}

.team-gallery-item:focus-visible .team-overlay {
  opacity: 1;
}

/* =========================================================================
   TEAM-DETAIL LIGHTBOX – NEUE VERSION
   ========================================================================= */

/* Overlay-Container */
.team-detail-overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.85);
  z-index: 9999;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.team-detail-overlay.active {
  display: block;
  opacity: 1;
}

/* Modal-Box */
.team-detail-modal {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 90%;
  max-width: 750px;
  max-height: 85vh;
  background: white;
  padding: var(--spacing-large);
  overflow-y: auto;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
  z-index: 10000;
  border-radius: 0;
}

/* Team-Detail Container innerhalb der Lightbox */
.team-detail-modal .team-detail {
  display: grid !important;
  grid-template-columns: 320px minmax(0, 1fr);
  column-gap: var(--spacing-large);
  align-items: flex-start;
  margin: 0;
  padding: 0;
  max-width: none;
}

/* Bilder und Inhalte behalten ihre Styles */
.team-detail-modal .team-detail figure.image_container,
.team-detail-modal .team-detail .image_container {
  grid-column: 1;
  grid-row: 1 / span 3;
  margin: 0;
}

.team-detail-modal .team-detail figure.image_container img,
.team-detail-modal .team-detail .image_container img {
  width: 100%;
  max-width: 280px;
  height: auto;
  display: block;
}

/* Fallback: wenn figure keine Klasse hat */
.team-detail-modal .team-detail figure {
  grid-column: 1;
  grid-row: 1 / span 3;
  margin: 0;
}

.team-detail-modal .team-detail figure img {
  width: 100%;
  max-width: 280px;
  height: auto;
  display: block;
  margin: 70px 0 0 60px;
}

.team-detail-modal .team-detail .team-detail-text {
  grid-column: 2;
  grid-row: 1 / span 3;
  display: block;
}

.team-detail-modal .team-detail .team-detail-text>h2 {
  margin: 0 0 var(--spacing-small) 0;
  font-family: var(--font-family-bold);
  font-size: var(--font-size-grand);
  text-transform: none;
}

.team-detail-modal .team-detail .team-detail-text .rte h3 {
  font-family: var(--font-family-regular);
  font-size: var(--font-size-medium);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin: 0 0 var(--spacing-small) 0;
  color: var(--primary-color);
}

.team-detail-modal .team-detail .team-detail-text .rte p {
  font-size: var(--font-size-large);
  line-height: 1.5;
  margin: 0 0 var(--spacing-small) 0;
}

/* Zitat unter dem Bild */
.team-detail-modal .team-detail .team-detail-quote {
  grid-column: 1;
  grid-row: 4;
  align-self: flex-start;
  width: 160%;
  font-size: clamp(1.4rem, 2.1vw, 2.2rem);
  line-height: 1.3;
  font-style: italic;
  color: var(--team-color-zitat);
  margin-top: -45px;
}

/* Social Icons */
.team-detail-modal .team-detail .team-detail-socials {
  grid-column: 2;
  grid-row: 3;
  display: flex;
  justify-content: flex-end;
  gap: var(--spacing-small);
  flex-wrap: wrap;
  margin-top: var(--spacing-small);
}

.team-detail-social-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 1px solid var(--primary-color);
  font-family: var(--font-family-regular);
  font-size: 0.7rem;
  text-transform: uppercase;
  color: var(--primary-color);
  line-height: 1;
  text-decoration: none;
}

.team-detail-social:hover .team-detail-social-icon,
.team-detail-social:focus-visible .team-detail-social-icon {
  background: var(--primary-color);
  color: var(--team-color-text);
}

/* Close Button für Lightbox */
.team-detail-close {
  position: absolute;
  top: var(--spacing-medium);
  right: var(--spacing-medium);
  background: transparent;
  border: none;
  font-size: 2.5rem;
  cursor: pointer;
  color: var(--primary-color);
  z-index: 10001;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.2s ease;
  line-height: 1;
  padding: 0;
}

.team-detail-close:hover {
  transform: rotate(90deg);
}

.team-detail figcaption {
  display: none;
}

/* Verstecke originale Detail-Container auf der Seite */
.team-detail {
  display: none;
}

/* =========================================================================
   PROFILBLOCK-LAYOUT FÜR CONTENT-ELEMENT (Final 26px)
   ========================================================================= */

/* NEUE CONTAINER-KLASSE: Richtet Bild und Text nebeneinander aus */
.team-profile-block {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 40px;
  align-items: flex-start;
}

/* TEXT-SPALTE: Flex-Box, damit die Social Icons nach unten gedrückt werden */
.profile-text-col {
  display: flex;
  flex-direction: column;
}

/* SOCIAL ICONS CONTAINER: Sorgt für Rechtsbündigkeit und Abstand */
.profile-social-links {
  margin-top: auto;
  padding-top: 20px;
  display: flex;
  justify-content: flex-end;
  /* Icons rechtsbündig */
  gap: 6px;
  /* NEU: Einheitlicher, kleinerer Abstand */
  /* Setzt Flex-Item auf Ende der Achse für vertikale Ausrichtung */
  align-items: flex-end;
}

/* Der Link-Container (a-Tag) zwingt die Größe und entfernt alle Störfaktoren */
.profile-social-links a {
  width: 26px;
  /* NEU: 26px breit */
  height: 26px;
  /* NEU: 26px hoch */
  display: block;
  /* WICHTIG: Überschreibt alle versehentlich verbliebenen alten Styles */
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
}

/* Das <img>-Tag wird gezwungen, den a-Container komplett zu füllen */
.profile-social-links img {
  width: 100%;
  height: 100%;
  /* Dies verhindert, dass die Icons verzerrt werden und erzwingt das Quadrat */
  object-fit: contain;
}

/* Zitat-Positionierung */
.profile-image-col {
  position: relative;
  margin: 0;
}

.profile-quote {
  position: absolute;
  bottom: -80px;
  left: 0;
  width: 150%;
  font-size: 1.8rem;
  color: var(--secondary-color);
}

.profile-social-links .icon-linkedin img {
  margin-top: 1px;
  height: 95%;
  margin-left: 2px;
}

.team-detail-quote .quote-author {
  /* Verkleinert die Schriftgröße des Autors */
  font-size: 0.6em;
  /* Macht den Text 60% der Größe des Elternelements (<cite>) */
  /* Sorgt für einen kleinen Abstand nach oben zum Zitat */
  display: block;
  margin-top: 5px;
}

/* Responsive Design
--------------------------------------------------------------------------------------------*/

/* Unter 1200px: Galerie auf volle Breite */
@media (max-width: 1200px) {
  .mod_newslist {
    grid-template-columns: repeat(2, 1fr);
  }

  .mod_newslist .layout_latest.arc_1.block.wide {
    grid-column: span 2;
  }

  .media-gallery-grid.content-gallery {
    width: 100vw;
    max-width: none;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    padding: 0;
  }

  .overview-section {
    grid-template-columns: 1fr;
    padding: 0;
  }

  .overview-section h3 {
    margin-bottom: var(--spacing-small);
    margin-left: 0;
  }

  .overview-section .overview-content {
    grid-column: 1;
  }

  .filter-navigation {
    gap: 0.75rem;
  }

  .filter-navigation .filter-btn {
    font-size: var(--font-size-medium);
  }

  .media-gallery-grid.content-gallery+.media-gallery-video,
  .media-gallery-grid.content-gallery+.ce_player,
  .media-gallery-grid.content-gallery+.content-player {
    padding: 0;
  }
}

@media (max-width: 872px) {
  .footer-header h2 {
    text-align: left;
  }

  .footer-line {
    width: 100vw;
  }

  .footer-content {
    flex-direction: column;
    text-align: left;
    align-items: flex-start;
  }

  .copyright {
    order: 2;
    padding: var(--spacing-small) 0;
    align-self: flex-start;
  }

  .footer-links {
    order: 1;
    flex-direction: column;
    justify-content: flex-start;
    margin-bottom: var(--spacing-medium);
    align-items: flex-start;
    width: 100%;
  }

  .footer-links a {
    margin: 0;
    padding: var(--spacing-small) 0;
    font-size: var(--font-size-large);
    align-self: flex-start;
  }

  .social-group {
    padding-top: var(--spacing-small);
  }

  .social-group a {
    padding-right: var(--spacing-medium);
  }

  footer .social-icon {
    font-size: var(--font-size-large);
  }

  .media-gallery-grid.content-gallery {
    grid-template-columns: 1fr;
  }

  .media-gallery-grid.content-gallery li:nth-child(1),
  .media-gallery-grid.content-gallery li:nth-child(2),
  .media-gallery-grid.content-gallery li:nth-child(3),
  .media-gallery-grid.content-gallery li:nth-child(4) {
    grid-column: 1;
    grid-row: auto;
  }

  .media-gallery-grid.content-gallery+.ce_player {
    width: 100%;
    margin-left: 0;
    margin-top: var(--spacing-small);
  }

  .footer-nav-next h2 {
    font-size: var(--font-size-standard);
  }

  .similar-projects-header {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--spacing-medium);
  }

  .similar-projects-title {
    font-size: var(--font-size-grand);
  }

  .filter-navigation {
    justify-content: flex-start;
    width: 100%;
  }

  .bottom_distance {
    margin-bottom: var(--spacing-small);
  }
}

/* Tablet-Bereich: 1000px bis 769px */
@media (max-width: 1000px) and (min-width: 769px) {
  .team-join-item .team-overlay {
    padding: var(--spacing-medium);
  }

  .team-join-title {
    font-size: clamp(1.1rem, 2.2vw, 1.7rem);
    margin-bottom: var(--spacing-small);
  }

  .team-join-link {
    font-size: clamp(0.6rem, 1.1vw, 0.8rem);
    letter-spacing: 0.75px;
  }

  .team-join-link::after {
    font-size: clamp(0.75rem, 1.8vw, 1.3rem);
    top: -2px;
  }
}

@media (max-width: 768px) {

  /* Similar Projects Header / Carousel */
  .similar-projects-header {
    padding: 0 var(--spacing-medium);
  }

  .carousel-arrow {
    font-size: 2rem;
    width: 44px;
    height: 44px;
  }

  /* Filter Navigation */
  .filter-navigation {
    align-items: flex-start;
    gap: var(--spacing-small);
    margin-left: 0;
  }

  .filter-navigation .filter-btn {
    padding: var(--spacing-small) 0;
    font-size: var(--font-size-medium);
    min-height: 44px;
  }

  .project-filter-nav {
    width: 100%;
    position: static;
    left: auto;
    right: auto;
    margin-left: 0;
    margin-right: 0;
  }

  .filter-buttons {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--spacing-small);
    padding-bottom: var(--spacing-medium);
  }

  .filter-btn {
    padding: 0;
    font-size: var(--font-size-medium);
  }

  .filter-btn:not(:last-child)::after {
    display: none;
  }

  /* Newslist → 1 Spalte */
  .mod_newslist {
    grid-template-columns: 1fr;
    gap: var(--spacing-small);
    width: 100%;
    margin-left: 0;
    left: 0;
    right: 0;
  }

  #artikel-2 .mod_newslist {
    width: 100%;
    position: static;
    margin-left: 0;
    margin-right: 0;
  }

  .mod_newslist .layout_latest.arc_1.block.wide {
    grid-column: span 1;
  }

  .mod_newslist .ce_text {
    padding: var(--spacing-small) 0;
  }

  .mod_newslist .ce_text::before {
    font-size: var(--font-size-medium);
    margin-bottom: 0.5rem;
    letter-spacing: 1.5px;
  }

  .mod_newslist .ce_text::after {
    font-size: var(--font-size-large);
  }

  /* Projekt Hero Image */
  .project-hero-image {
    margin-top: var(--spacing-medium);
    margin-bottom: var(--spacing-medium);
  }

  .project-hero-image.fixed-height {
    height: 40vh;
  }

  .project-hero-image h6 {
    padding-right: var(--spacing-medium);
    font-size: var(--font-size-small);
  }

  /* Impressum */
  .impressum-container {
    padding: var(--spacing-medium) var(--spacing-small);
  }

  .impressum-container h1 {
    font-size: var(--font-size-grand);
    margin-bottom: var(--spacing-medium);
  }

  .impressum-container h2 {
    font-size: var(--font-size-large);
    margin-top: var(--spacing-medium);
  }

  .impressum-container h3 {
    font-size: var(--font-size-medium);
    margin-top: var(--spacing-medium);
  }

  .impressum-container p {
    font-size: var(--font-size-medium);
  }

  /* TEAM GALLERY – 3 Spalten mobil */
  .team-gallery {
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: auto;
  }

  .team-gallery-item,
  .team-join-item {
    grid-row-end: auto !important;
  }

  .team-gallery-item img {
    width: 100%;
    aspect-ratio: 1 / 1.2;
    object-fit: cover;
  }

  .team-join-block {
    aspect-ratio: 1 / 1.2;
    height: 100%;
  }

  .team-join-item .team-overlay {
    padding: var(--spacing-medium);
  }

  .team-join-title {
    font-size: var(--font-size-grand);
    margin-bottom: var(--spacing-small);
  }

  .team-join-link {
    font-size: var(--font-size-small);
    letter-spacing: 0.75px;
    margin-top: var(--spacing-small);
  }

  .team-member-name {
    font-size: var(--font-size-grand);
  }

  .team-member-position {
    font-size: var(--font-size-small);
  }

  .team-join-link::after {
    content: "" !important;
  }

  /* TEAM-DETAIL LIGHTBOX: Mobile Anpassung */
  .team-detail-modal {
    width: 95%;
    max-height: 90vh;
    padding: var(--spacing-medium);
    overflow-x: hidden;
  }

  .team-detail-modal .team-detail {
    display: block !important;
  }

  .team-detail-modal .team-detail figure.image_container,
  .team-detail-modal .team-detail .image_container {
    max-width: 220px;
    margin-bottom: var(--spacing-medium);
  }

  .team-detail-modal .team-detail .team-detail-text {
    grid-column: auto;
    grid-row: auto;
  }

  .team-detail-modal .team-detail .team-detail-quote {
    margin-top: var(--spacing-medium);
    font-size: var(--font-size-grand);
  }

  .team-detail-close {
    top: 0.5rem;
    right: 0.5rem;
  }

  .team-detail-modal .team-detail figure img {
    margin: 0;
  }

  .ce_accordionSingle .toggler,
  .ce_accordionSingle .accordion {
    padding: var(--spacing-medium);
  }

  .ce_accordionSingle .toggler {
    font-size: var(--font-size-large);
  }

  .job-box,
  .job-box__content {
    padding: var(--spacing-medium);
  }

  .job-box__title-main {
    font-size: var(--font-size-large);
  }

  /* Layout wird zu einer einzigen Spalte */
  .team-profile-block {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  /* Zitat wird unter das Bild verschoben und normal angezeigt */
  .profile-image-col {
    margin-bottom: 20px;
  }

  .profile-quote {
    position: static;
    width: 100%;
    margin-top: 10px;
    margin-bottom: 0;
  }

  .gallery-3images ul {
    grid-template-columns: 1fr;
  }

  .gallery-3images li:nth-child(3) {
    grid-column: 1;
    grid-row: 3;
    aspect-ratio: 16 / 9;
    height: auto;
  }

  .sunny-friday-block {
    float: none;
    margin: 20px auto;
    shape-outside: none;
    clip-path: none;
  }

}

@media (max-width: 480px) {
  .team-detail-modal {
    padding: var(--spacing-small);
  }

  .team-detail-modal .team-detail figure.image_container img,
  .team-detail-modal .team-detail .image_container img {
    max-width: 180px;
  }

  .team-detail-modal .team-detail .team-detail-quote {
    font-size: var(--font-size-standard);
  }

  .project-filter-nav {
    padding: var(--spacing-medium) 0;
  }

  .mod_newslist {
    padding: 0;
    gap: var(--spacing-small);
  }

  .mod_newslist .ce_text::before {
    font-size: var(--font-size-small);
  }

  .mod_newslist .ce_text::after {
    font-size: var(--font-size-medium);
  }

  .overview-section {
    padding: 0 var(--spacing-medium);
  }

  .project-hero-image {
    margin-top: var(--spacing-small);
    margin-bottom: var(--spacing-small);
  }

  .project-hero-image.fixed-height {
    height: 30vh;
  }

  .similar-projects-title {
    font-size: var(--font-size-standard);
  }

  .filter-navigation .filter-btn {
    font-size: var(--font-size-small);
  }

  .impressum-container {
    padding: var(--spacing-small);
  }

  .impressum-container h1 {
    font-size: var(--font-size-standard);
  }

  .impressum-container h2,
  .impressum-container h3 {
    font-size: var(--font-size-large);
  }

  /* TEAM GALLERY: 2 Spalten */
  .team-gallery {
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: auto;
  }

  .team-gallery-item,
  .team-join-item {
    grid-row-end: auto !important;
  }

  .team-gallery-item img {
    width: 100%;
    aspect-ratio: 1 / 1.2;
    object-fit: cover;
  }

  .team-join-block {
    aspect-ratio: 1 / 1.2;
    padding: var(--spacing-medium);
    height: 100%;
  }

  .team-join-item .team-overlay {
    padding: var(--spacing-small);
  }

  .team-join-title {
    font-size: var(--font-size-standard);
    margin-bottom: var(--spacing-small);
    line-height: 1.1;
  }

  .team-join-link {
    font-size: var(--font-size-small);
    letter-spacing: 0.5px;
    gap: 0.25rem;
  }

  .team-member-name {
    font-size: var(--font-size-grand);
  }

  .team-member-position {
    font-size: var(--font-size-small);
  }
}
