/************

Jessica Schinhofen // SILK
07.08.2025 -  DEFAULT
Version 1.0 - Responsive

************/

@import '../fonts/fonts.css';
@import 'default.css';
@import 'glightbox.css';
@import 'fancybox.css';
@import 'bfsg.css';

:root {
    --gap: 14px;
    --thumb-radius: 14px;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;


    transition: all .2s ease-in-out;
    -webkit-transition: all .2s ease-in-out;
    -moz-transition: all .2s ease-in-out;
    -o-transition: all .2s ease-in-out;
}


.clearfix:after {
    content: ".";
    clear: both;
    display: block;
    visibility: hidden;
    height: 0;
}

::-moz-selection {
    /* Code for Firefox */
    color: rgba(0, 0, 0, 1);
    background: rgba(0, 0, 0, 0.2);
}

::selection {
    color: rgba(0, 0, 0, 1);
    background: rgba(0, 0, 0, 0.2);
}


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


header {
    float: left;
    width: 100%;
}

main, footer {
    float: left;
    width: 100%;
    position: relative;

}


body {
    -webkit-hyphens: auto;
    -moz-hyphens: auto;
    -ms-hyphens: auto;
    hyphens: auto;
    position: relative;
    text-rendering: optimizeLegibility;
    max-width: 100%;
}



body .nohyphens {
    -webkit-hyphens: none;
    -moz-hyphens: none;
    -ms-hyphens: none;
    hyphens: none;
}

a, a:link, a:active {
    text-decoration: underline;
    transition: all .2s ease-in-out;
    -webkit-transition: all .2s ease-in-out;
    -moz-transition: all .2s ease-in-out;
    -o-transition: all .2s ease-in-out;
}

a:hover {
    opacity: 0.7;
}

ul, ol {
    margin-left: 0px;
}

ul.list {
    margin-top: 15px;
    margin-bottom: 15px;
}

ul.list,
ul, li, ol li {
    list-style-position: outside;
    list-style-type: none;
}

ul.list li,
ul.list li {
    position: relative;
    padding-left: 15px;
    margin-bottom: 5px;
}

ol li {
    margin-bottom: 15px;
}


p {
    margin-bottom: 25px;
}

p:last-child {
    margin-bottom: 0px;
}


.cta-wrapper {
    margin-top: 15px;
    display: inline-block;
}

a.cta {
    text-decoration: none;
    position: relative;
    text-transform: uppercase;
    padding: 15px 45px;
    display: block;
    color: #000;
    border-radius: 15px;
    letter-spacing: 1px;
    transition: all .2s ease-in-out;
    -webkit-transition: all .2s ease-in-out;
    -moz-transition: all .2s ease-in-out;
    -o-transition: all .2s ease-in-out;
}


a.cta:hover {
    background: #000;
    color: #fff;
}


/* Content */

.img-fill {object-fit: fill;}
.img-contain {object-fit: contain; width:100%;
    height:100%;
    object-position: center;}
.img-cover {object-fit: cover; width:100%;
    height:100%;
    object-position: center;}
.img-scale-down {object-fit: scale-down;}
.img-none {object-fit: none; object-position: 50% 50%;}


.container {
    position: relative;
    width: 100%;
    float: left;
    margin-bottom: 45px;
}

.wrapper {
    max-width: calc(100% - 80px);
    margin: 0 auto;
    position: relative;
    z-index: 2;
}

.text-center {text-align: center; }
.text-left {text-align: left; }
.text-right {text-align: right; }
.text-justify { text-align: justify; }


.wrapper.content-width {
    width: 1920px;
    margin:0 auto;
    position: relative;
    height: 100%;
}


header {
    position: fixed;
    z-index: 2;
    transition: background 140ms ease-in-out 140ms,transform 140ms ease-in-out;
}


main {
    z-index: 1;
}


.mt-50 {
    margin-top: 50px;
}
.mt-80 {
    margin-top: 80px;
}
.mt-90 {
    margin-top: 90px;
}
.mt-100 {
    margin-top: 100px;
}

.mb-50 {
    margin-bottom: 50px;
}
.mb-80 {
    margin-bottom: 80px;
}
.mb-90 {
    margin-bottom: 90px;
}
.mb-100 {
    margin-bottom: 100px;
}

strong {
    font-weight: 700;
}

small {
    font-size: 12px;
    display: inline-block;
}


header .menuwrapper {
    width: 100%;
    float: none;
    text-align: center;
    position: relative;
    margin-top: 20px;
    padding: 10px 0 5px;
    margin-right: 0;

}

header .menuwrapper .mainmenu  {
    position: relative;
    z-index: 3;
    width: 100%;
    text-align: center;
    margin: 0 auto;
}


/* Menü */


nav {
    display: inline-block;
    position: relative;
    float: none;

}

nav .mainmenu, nav .mainmenu li {
    float: left;
    margin:0;
    padding: 0;
    list-style-type: none;

}

nav .mainmenu li {
    margin-right: 35px;
    position: relative;
    z-index: 1;
}

nav .mainmenu li:last-child {
    margin-right: 0;
}
nav .mainmenu li button,
nav .mainmenu li span,
nav .mainmenu li a {
    color: #000;
    text-transform: none;
    font-weight: 400;
    line-height: 20px;
    font-size: 14px;
    letter-spacing: 1.5px;
    cursor: pointer;
    text-decoration: none;
}

nav .mainmenu li button {
    border: none;
    background: none;
}

nav .mainmenu li span:after,
nav .mainmenu li a:after {
    width: 0;
    transition: all .2s ease-in-out;
    -webkit-transition: all .2s ease-in-out;
    -moz-transition: all .2s ease-in-out;
    -o-transition: all .2s ease-in-out;
    background: var(--maincolor);
    height: 2px;
    content: "";
    left: 0;
    position: absolute;
    bottom: 0px;
}
nav .mainmenu > li span:hover:after,
nav .mainmenu > li a:hover:after {
    width: 100%;
    font-weight: 500;
}

nav .mainmenu > li.currentparent span:after,
nav .mainmenu > li.currentparent a:after,
nav .mainmenu > li.current span:after,
nav .mainmenu > li.current a:after {
    width: 0%;
}


nav .mainmenu > li.currentparent button span,
nav .mainmenu > li.currentparent > a,
nav .mainmenu > li.current > a {
    color: var(--maincolor);
    font-weight: 500;
}

.submenu {
    /* visibility: hidden;
     opacity: 0;

     */
    display: none;
    position: absolute;
    top: 40px;
    left: 0;

    width: 300px;
    transform: translateY(-2em);
    z-index: 1;
    transition: all 0.3s ease-in-out 0s, visibility 0s linear 0.3s, z-index 0s linear 0.01s;
    margin-left: 0;

    background: #fff;
    padding: 10px 0;
    border-bottom: 5px solid var(--maincolor);
}

/*
nav .mainmenu li.child:focus .submenu,
nav .mainmenu li.child:focus-within .submenu {
    visibility: visible;
    opacity: 1;
    z-index: 9;
    transform: translateY(0%);
    transition-delay: 0s, 0s, 0.3s;
}
*/

.submenu li.menu-item {
    width: 100%;
}
.submenu li.menu-item a {
    text-align: left;
    padding: 10px;
    display: block;
    text-transform: none;
    font-weight: 400;
}

.submenu li.menu-item a:hover:after {
    display: none;
}
.submenu li.menu-item a:hover {
    color: var(--maincolor);
    font-weight: 500;
}


nav .mainmenu > li.currentparent .submenu > li > span:after,
nav .mainmenu > li.currentparent .submenu > li > a:after,
nav .mainmenu > li.current .submenu > li > a:after,
nav .mainmenu > li.current ul.submenu > li:after,
nav .mainmenu > li.current ul.submenu > li:hover:after,
nav .mainmenu ul.submenu > li:after,
nav .mainmenu ul.submenu > li.current span:after,
nav .mainmenu ul.submenu > li.current a:after {
    width: 0%;
    display: none;
}


nav .mainmenu > li > .submenu > li.current a,
nav .mainmenu > li > .submenu > li.current a {

    color: var(--maincolor);
    font-weight: 500;
}

.overlay + .is-drilldown {
    display: none;
}

#burger-toggle {
    position: absolute;
    appearance: none;
    opacity: 0;
}

#burger-toggle:checked ~ .burger-menu .line:nth-child(1) {
    transform: translateY(calc(var(--burger-menu-radius) / 5)) rotate(45deg);
}
#burger-toggle:checked ~ .burger-menu .line:nth-child(2) {
    transform: scaleX(0);
}
#burger-toggle:checked ~ .burger-menu .line:nth-child(3) {
    transform: translateY(calc(var(--burger-menu-radius) / -5)) rotate(-45deg);
}

.burger-menu {
    visibility: hidden;
    --burger-menu-radius: 4em;
    position: fixed;
    opacity: 0;
    top: 33px;
    right: 15px;
    z-index: 100;
    width: var(--burger-menu-radius);
    height: var(--burger-menu-radius);
    background-color: transparent;
    border: solid 0px rgba(149, 166, 167, 0.4);
    border-radius: 0;
    outline: none;
    cursor: pointer;
    transition: 0.5s ease-in-out;
}
.burger-menu .line {
    position: absolute;
    right: 0;
    width: 75%;
    height: 4px;
    background: #000;
    border-radius: 10px;
    overflow: hidden;
    transition: all 0.5s ease;


}
.burger-menu .line:nth-child(1) {
    top: 30%;
}
.burger-menu .line:nth-child(2) {
    top: 50%;
    width: 50%;
    right: 0;
}
.burger-menu .line:nth-child(3) {
    top: 70%;
    width: 25%;
}
.burger-menu .line::after {
    position: absolute;
    content: "";
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #000;
    transform: translateX(-100%);
    transition: all 0.25s ease;
}
.burger-menu .line:nth-child(2)::after {
    transition-delay: 0.1s;
}
.burger-menu .line:nth-child(3)::after {
    transition-delay: 0.2s;
}
.burger-menu:hover {
    /* box-shadow: 0.4px 0.4px 0.8px rgba(0, 0, 0, 0.042), 1px 1px 2px rgba(0, 0, 0, 0.061), 1.9px 1.9px 3.8px rgba(0, 0, 0, 0.075), 3.4px 3.4px 6.7px rgba(0, 0, 0, 0.089), 6.3px 6.3px 12.5px rgba(0, 0, 0, 0.108), 15px 15px 30px rgba(0, 0, 0, 0.15); */
}
.burger-menu:hover .line::after {
    transform: translateX(0);
}



.is-drilldown {
    display: none;
}



.contentboxwrapper {
    display: flex;
}


.flex-center .contentboxwrapper,
.contentboxwrapper.flex-center {
    align-items: center;
}

.contentboxwrapper > div {
    width: 50%;
}

.middlewidth {
    width: 70%;
    margin:0 auto;
}

.smallwidth {
    width: 45%;
    margin:0 auto;
}

.pl {
    padding-left: 35px;
}

.pr {
    padding-right: 35px;
}


#loading {
    position: fixed;
    display: none;
    width: 100%;
    height: 100%;
    background: rgba(255,255,255, .8);
    text-align: center;
}

#loading:after {
    content: "einen Augenblick...";
    font-size: 25px;
    line-height: 30px;
    text-align: center;
    top: 50%;
    margin-top: -15px;
    color: #000;
    font-weight: 600;
    position: absolute;
    z-index: 2;
}


.badge {
    background: var(--maincolor-light);
    text-align: center;
    color: #fff;
    position: absolute;
    top: 160px;
    right: 28%;
    z-index: 2;
    width: 170px;
    height: 170px;
    border-radius: 128926478px;
    border: 2px dotted #fff;
    display: flex;
    align-content: center;
    align-items: center;
}

.badge .inner {
    padding: 0px 10px;
    width: 100%;
}

.badge .inner a {
    text-decoration: none;
    color: #fff;
    text-transform: uppercase;
    font-size: 13px;
    line-height: 20px;
    display: inline-block;
    font-weight: 400;
    letter-spacing: 1px;
    padding-top: 10px;
}

.badge .inner a span {
    font-size: 22px;
    line-height: 22px;
    font-weight: 700;
    color: var(--color-brown);
}

.hero-slider {
    min-height: 735px;
}


.hero-content {
    padding: clamp(10px,1vw,45px);
}

.hero-content h1 {
    font-size: 50px;
    line-height: 60px;
    margin: 0 0 70px;
}
.hero-content .subheadline {
    font-size: 40px;
    line-height: 52px;
}



.linecta {
    font-size: 35px;
    line-height: 45px;
    text-transform: uppercase;
    font-weight: 600;
}

.linecta a {
    color: #fff;
}

.sidebar {
    position: fixed;
    right: 0;
    top: 50%;
    margin-top: -80px;
    width: 50px;
    z-index: 6;
}

.sidebar a:before {
    display: none;
}
.sidebar a {
    width: 50px;
    height: 50px;
    background: var(--maincolor-sidebar);
    padding: 5px;
    display: block;
    text-align: center;
    color: #fff;
    border-bottom-left-radius: 10px;
    margin-bottom: 3px;
    border-top-left-radius: 10px;
    position: relative;
    text-decoration: none;
}
.sidebar a[data-icon="telefon"]:after {
    content: "";
    position: absolute;
    left: 15px;
    top:15px;
    width: 20px;
    height: 20px;
    background: url('../images/icon-phone.svg');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.sidebar a[data-icon="whatsapp"]:after {
    content: "";
    position: absolute;
    left: 15px;
    top:15px;
    width: 20px;
    height: 20px;
    background: url('../images/icon-whatsapp.svg');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.sidebar a[data-icon="mail"]:after {
    content: "";
    position: absolute;
    left: 15px;
    top:15px;
    width: 20px;
    height: 20px;
    background: url('../images/icon-mail.svg');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}



.faq-wrapper {
    max-width: 65%;
    margin: 35px auto 0;
    overflow: hidden;
}
.faq-item {
    border-bottom: 1px solid var(--maincolor);
}
.faq-question {
    padding: 15px 10px;
    cursor: pointer;
    font-weight: bold;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: background 0.3s;

    border: 0;
    width: 100%;
    background: transparent;
}
.faq-question:hover,
.faq-question:focus {
    background: var(--color-grey-lighter);
    outline: none;
}
.faq-answer {
    overflow: hidden;
    padding: 0 15px;
    display: none;
}
.faq-answer p {
    margin: 15px 0;
}
.faq-icon {
    transition: transform 0.3s ease;
}
.faq-item.active .faq-icon {
    transform: rotate(45deg);
}





.twocol {
    column-count: 2;
    column-gap: 25px;
    margin: 25px 0;
    text-align: justify;
}


/*
.showreel .video-card {
    position: relative;
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
    max-width: 800px;
    margin: 2rem auto;
}

.showreel .video-card video {
    width: 100%;
    display: block;
}

.showreel .video-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(0,0,0,0.5), rgba(0,0,0,0.8));
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: opacity 0.4s ease;
}

.showreel .play-btn {
    font-size: 3rem;
    color: white;
    background: rgba(255,255,255,0.2);
    border: 2px solid white;
    border-radius: 50%;
    width: 80px;
    height: 80px;
    cursor: pointer;
    transition: transform 0.3s ease;
}
.showreel .play-btn:hover { transform: scale(1.1); }
*/






/* Container-Größe (anpassen): */
.ellipse-video{
    /* responsive Fläche – z.B. 16:9 */
    aspect-ratio: 16 / 9;
    width: min(900px, 90vw);
    margin: 0rem auto;
    position: relative;
    overflow: hidden; /* falls die Maske in Safari mal „durchblutet“ */
    filter: drop-shadow(0 20px 40px rgba(0,0,0,.25)); /* hübscher Schatten */
}

/* Video füllt den Container */
.ellipse-video > video{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;

    /* --- Ellipsen-Maske --- */
    /* radial-gradient: weiß = sichtbar, transparent = versteckt */

   /* --rx: 50%;
    --ry: 50%;
    --feather: 5%;

    -webkit-mask-image: radial-gradient(ellipse var(--rx) var(--ry) at 50% 50%,
    #fff  calc(100% - var(--feather)),
    rgba(255,255,255,0) 100%
    );
    mask-image: radial-gradient(ellipse var(--rx) var(--ry) at 50% 50%,
    #fff  calc(100% - var(--feather)),
    rgba(255,255,255,0) 100%
    );
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: 50% 50%;
    mask-position: 50% 50%;
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
    transition: -webkit-mask-image .5s ease, mask-image .5s ease, transform .5s ease;

    */
}

/* Hover: Ellipse „öffnet“ sich etwas & leichter Scale */
.ellipse-video:hover > video{
    transform: scale(1.01);
}

/* Bewegung reduzieren respektieren */
@media (prefers-reduced-motion: reduce){
    .ellipse-video > video{ transition: none; }
}

.showreel {
    position: relative;
}

/* Play/Pause Button */
/*
.video-toggle {
    position: absolute;
    bottom: 1rem;
    right: 1rem;
    z-index: 2;

    width: 60px; height: 60px;
    border-radius: 50%;
    border: none;
    background: rgba(0,0,0,0.5);
    color: white;
    font-size: 1.5rem;
    cursor: pointer;
    transition: transform .3s ease, background .3s ease;

    top: 50%;
    left: 50%;
    margin-left: -20px;
    margin-top: -20px;
}

.video-toggle:hover {
    background: rgba(0,0,0,0.7);
    transform: scale(1.1);
}
.video-toggle {
    opacity: 0.0;
    transition: opacity .3s;
}
.showreel:hover .video-toggle {
    opacity: 1;
}
*/

.video-controls {
    position: absolute;
    right: 1rem; bottom: 1rem;
    display: flex; gap: .5rem;
    z-index: 2;
}

.video-btn{
    width: 48px; height: 48px;
    border-radius: 999px;
    border: none;
    background: rgba(0,0,0,.5);
    color: #fff;
    font-size: 1.2rem;
    display: grid; place-items: center;
    cursor: pointer;
    transition: transform .2s ease, background .2s ease, opacity .2s ease;
}

.video-btn {
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    font-variant-emoji: text;            /* falls unterstützt, erzwingt Text-Stil */
    font-size: 1.2rem;
    line-height: 1;
}

.video-btn:hover{ background: rgba(0,0,0,.7); transform: scale(1.06); }
.ellipse-video:not(:hover) .video-btn{ opacity: .85; }

@media (prefers-reduced-motion: reduce){
    .ellipse-video > video, .video-btn{ transition: none; }
}


/* --- Icon über CSS-Mask --- */
.video-mute::before {
    content: "";
    display: block;
    width: 1.4em; height: 1.4em;
    background-color: currentColor;
    mask: var(--icon) no-repeat center / contain;
    -webkit-mask: var(--icon) no-repeat center / contain;
}

/* Default = Lautsprecher AN */
.video-mute {
    --icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M4 9v6h4l5 5V4L8 9H4z"/></svg>');
}

/* Wenn stummgeschaltet → durchgestrichen */
.video-mute.is-muted {
    --icon: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M16.5 12c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM19 3L5 17h3v4l5-5h4l2 2 2-2-2-2V7l2-2-2-2z"/></svg>');
}


.gallery {
    margin-left: 0;
    margin-top: 45px;
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-template-rows: repeat(4, 250px);
    gap: 1rem;
}

.gallery .imagebox img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 0px;
}



.overlay {
    position: fixed;
    top: 50px;
    left: 50px;
    width: 2em;
    height: 2em;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    opacity: 0;
    transition: 0.5s ease-in-out;
    will-change: transform;
    z-index: 8;
}



/* Kontaktformular */

.anfrageform .flex-end {
    align-items: end;
}

.anfrageform {
    padding: 75px 0;
}

.anfrageform form {
    max-width: 75%;
    margin: 0 auto;
    padding: 0;

}

.anfrageform form h2 {
    margin-bottom: 35px;
    font-size: 35px;
    line-height: 45px;
}

.anfrageform form h3 {
    margin-top: 35px;
    margin-bottom: 0px;
    font-size: 35px;
    line-height: 45px;
}

.anfrageform .form-row {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}


.anfrageform .form-row > div {
    flex: 1;
    min-width: 48%;
}

.anfrageform .form-row.check {
    display: flex;
    flex-wrap: unset;
    align-items: baseline;
}

.anfrageform .form-row.check input {
    width: 25px;
}



.anfrageform .inline-options {
    display: flex;
    gap: 2rem;
    margin-bottom: 1rem;
}

.anfrageform .inline-options label {
    font-size: 16px;
    color: #000;
}

.anfrageform label {
    display: block;
    font-size: 16px;
    color:  #000;
    margin: 1rem 0 0.3rem;
}

.anfrageform input,
.anfrageform textarea,
.anfrageform select,
.anfrageform button {
    width: 100%;
    padding: 0.75rem;
    border: 0px solid var(--maincolor);
    border-radius: 10px;
    font-size: 16px;
    background: #fff;
    transition: border 0.3s;
    color: #000;
}

.anfrageform textarea {

}

.anfrageform input:focus,  .anfrageform textarea:focus,  .anfrageform select:focus {
    border-color: var(--maincolor);
    outline: none;
}

.anfrageform input.error,  .anfrageform textarea.error {
    border: 1px solid red;
}

.anfrageform .field-error {
    color: red;
    font-size: 0.75rem;
    margin-top: 0.2rem;
}



.anfrageform button.cta {
    position: relative;
    margin: 25px 0 0;
    padding: 15px 20px;
    transition: all 0.2s ease;
    display: block;
    border: 0;
    width: auto;
    cursor: pointer;

    background: #fff;
    border-radius: 10px;
    color: #000;
}

.anfrageform button.cta span {
    position: relative;
    font-size: 16px;
    line-height: 18px;


    text-transform: uppercase;
    vertical-align: middle;
}

.anfrageform button.cta:hover {
    color: #fff;
    background: var(--maincolor);

}



.anfrageform .captcha-wrapper img {
    display: block;
    margin: 0.5rem 0;
    border: 1px solid var(--backcolor-main);
    border-radius: 0px;
    cursor: pointer;
}

.anfrageform .success {
    color: var(--maincolor);
    margin-top: 1rem;
}

.anfrageform .error {
    color: red;
    margin-top: 0;
}

@keyframes shake {
    0% { transform: translateX(0); }
    25% { transform: translateX(-4px); }
    50% { transform: translateX(4px); }
    75% { transform: translateX(-4px); }
    100% { transform: translateX(0); }
}
input.error {
    animation: shake 0.3s ease;
}


footer {
    float: left;
    position: relative;
    width: 100%;
}

footer.container {
    margin-bottom: 0;
}

footer .wrapper {
    padding: 20px 0;
}

footer .contentboxwrapper {
    align-items: center;
    margin:0 auto;
}

footer .contentboxwrapper {
    padding-bottom: 30px;
}


.copyright {
    padding: 15px 0;
}
.copyright, .copyright a {
    color: #fff;
    font-size: 14px;
}



footer p {
    margin-bottom: 15px;
}

footer .textbox {
    width: 35%;
}
footer .textbox:nth-child(1) {
    margin-left: 0px;
}
footer .textbox:nth-child(2) {
    width: 20%;
    margin-left: 5%;
    margin-right: 5%;
}


.iframe-wrapper {
    position: relative;
    width: 100%;

}

.iframe-wrapper iframe {
    position: relative;
    top: 0;
    left: 0;
    width: 100%;
    border: none; /* entfernt Rahmen */
}

.overlay + nav {
    display: none;
}


#modal{
    background: rgba(0, 0,0,0.72);
    color: #fff;
    width: 75%;
    max-width: 600px;
    margin: -250px 0px 0 -300px;
    border-radius: 15px;
    padding: 25px;
    position: fixed;
    top: 50%;
    height: 360px;
    left: 50%;
    z-index: 9999;
    display: none;

}
#modalheader{
    display:flex;
    width:100%;
}
#modaltitle{
    text-align:center;
    font-size:28px;
    width:100%;
    line-height:40px;
    border-bottom:2px solid white;
}
#modalbody{
    padding:10px;
    font-size:35px;
    color: #fff;
}

#modalbody .infowrapper {
    display: flex;
    align-items: center;

}
#modalbody .infowrapper .imagebox {
    width: 50%;
    display: inline-block;
}
#modalbody .infowrapper .contentbox {
    width: 50%;
    display: inline-block;
    font-size: 50px;
    line-height: 60px;
    font-weight: 600;
    padding-left: 25px;
    color: #fff;
}
#modalbody .infowrapper .imagebox img {
    display: inline-block;
    width: 100%;
    height: auto;

}

#close{
    position: absolute;
    right: -10px;
    top: -10px;
    height:40px;
    cursor:pointer;
    width:40px;
    font-size:22px;
    font-weight:900;
    border-radius: 32423487px;
    margin:-1px 0 0 -1px;
    line-height:40px;
    text-align:center;
    border:1px solid #ccc;
    background: #fff;
    color: #000;
}
#close:hover{
    background: rgba(0, 0,0,0.2);
}

.container.nm {
    margin-bottom: 0;
}

/*
.l__info h3 {
    font-size: 30px;
    line-height: 40px;
}
*/

.l__info h3 {
    font-size: 30px;
    line-height: 40px;
    border: 1px solid #fff;
    padding: 45px 15px;
}

#referenzen .contentboxwrapper {
    align-items: center;
}

#referenzen .textbox a {
    margin-top: 55px;
}

#abschluss p {
    font-size: 30px;
    line-height: 45px;
}

#abschluss .content-width {
    padding-bottom: 295px;
}


.btnarrow .arrow {
    display: inline-flex;
    align-items: center;
    animation: pulse 1.5s infinite ease-in-out;
    transition: transform 0.3s ease;
}



.btnarrow:hover .arrow {
    transform: translateX(5px); /* Pfeil schiebt sich nach rechts */
}

/* Puls-Animation */
@keyframes pulse {
    0%   { transform: translateX(0); opacity: 1; }
    50%  { transform: translateX(3px); opacity: 0.7; }
    100% { transform: translateX(0); opacity: 1; }
}


.member .meta {
    position: absolute;        /* kein Overlay mehr */
    background: none;        /* keine Fläche mehr über dem Bild */
    border: none;
    backdrop-filter: none;
    padding: 10px 0 0;       /* Abstand nach oben zum Bild */
    text-align: center;      /* zentriert unter dem Bild */
    color: #fff;

    bottom: -75px;
}

.member .meta .name {
    font-weight: 800;
    font-size: 18px;
    line-height: 1.3;
    text-transform: uppercase;
}

.member .meta .role {
    opacity: .8;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.member {
    display: flex;
    flex-direction: column;  /* Bild oben, Text unten */
    align-items: center;
    overflow: visible;
    margin-bottom: 80px;
}

.member .meta {
    margin-top: 0px;
}

#details .textbox p {
    font-size: 30px;
    line-height: 45px;
}
#defaulthome .content-width {
    width: 55%;
}

.grid-item img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover; /* falls ihr gleichmäßige Kacheln wollt, dann height:100% + aspect-ratio */
}

/*referenzen*/


/* Gallerie-Container */
.grid {
    margin: 0 auto;
}

/* Masonry Grid (für Galerie 2) */
.masonry {
    /* initial invisible to avoid reflow-jumps until laid out */
    opacity: 0; transition: opacity .3s ease;
}
.masonry.ready { opacity: 1; }

.grid-sizer, .grid-item { width: calc(25% - var(--gap)); }
@media (max-width: 1100px) { .grid-sizer, .grid-item { width: calc(33.333% - var(--gap)); } }
@media (max-width: 800px) { .grid-sizer, .grid-item { width: calc(50% - var(--gap)); } }
@media (max-width: 520px) { .grid-sizer, .grid-item { width: calc(100% - var(--gap)); } }

.grid-item { margin-bottom: var(--gap); border-radius: 0; overflow: hidden; background:#111827; position: relative; }
.grid-item img { display: block; width: 100%; height: 100%; aspect-ratio: 4/3; object-fit: cover; }

/* Innerhalb der Lightbox: Thumbnails, die Kinder von Video-Links sind, ausblenden */
.glightbox-container .gslide[data-type="video"] img {
    display: none !important;
}

/* einfache Hover-Veredelung */
.grid-item::after {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.06);
}
.grid-item:hover { transform: translateY(-2px); transition: transform .2s ease; }

/* Badges / Video-Icon */
.badge {
    position: absolute; top: 8px; left: 8px; background: rgba(17,24,39,.8);
    color: #e5e7eb; font-size: 12px; padding: 4px 8px; border-radius: 999px; backdrop-filter: blur(4px);
}
.play {
    position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none;
    font-size: 0; /* hide text */
}
.play::before {
    content: ""; width: 52px; height: 52px; border-radius: 50%; background: rgba(0,0,0,.35);
    border: 1px solid rgba(255,255,255,.25); box-shadow: 0 10px 25px rgba(0,0,0,.35);
    display: block; position: relative; top: 50%;
    margin-top: -15px;
}
.play::after {
    content: ""; position: absolute; border-style: solid; border-width: 9px 0 9px 15px;
    border-color: transparent transparent transparent white; transform: translateX(4px);
}

/* Filterleiste für Galerie 2 */
.filters { display:flex; gap: 10px; flex-wrap: wrap; margin: 8px 0 18px; }
.filters button {
    background:#333; color:#e5e7eb; border:1px solid #1f2937; border-radius: 999px; padding: 8px 12px;
    cursor: pointer; font-size: 14px; transition: all .2s ease;
}
.filters button.active, .filters button:hover { background:#111827; border-color:#374151; }

/* Galerie 1 (Brandings) Thumbs schlicht im Grid) */
.simple-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: var(--gap);
}
@media (max-width: 1400px) { .simple-grid { grid-template-columns: repeat(5, 1fr); } }
@media (max-width: 1100px) { .simple-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 900px)  { .simple-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px)  { .simple-grid { grid-template-columns: repeat(2, 1fr); } }
.simple-grid a { display:block; border-radius: var(--thumb-radius); overflow:hidden; background:#111827; }
.simple-grid img { width:100%; height:auto; display:block; aspect-ratio: 4/3; object-fit: cover; }


/* Inhalt mittig */
.glightbox-container .ginner-container,
.glightbox-container .gslide,
.glightbox-container .gslide-media {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Bilder: max 75vh, Breite automatisch (keine Verzerrung) */
.glightbox-container .gslide-image img {
    max-height: 75vh;
    width: auto;
    height: auto;
    object-fit: contain;
}

/* Videos: 16:9, so groß wie möglich bis 95vw × 75vh */
.glightbox-container .gslide-video {
    max-width: 95vw;
    max-height: 75vh;
    aspect-ratio: 16 / 9;
    width: min(95vw, calc(75vh * 16 / 9));
    height: min(75vh, calc(95vw * 9 / 16));
}
.glightbox-container .gslide-video video {
    width: 100%;
    height: 100%;
    display: block;
}


.badgeref {
    display: none;
}

/*Galerie 1*/
/* --- Simple Overlay für Galerie 1 --- */
/* Grid */

#gallery1 {
    margin-bottom: 45px;
}

#g1-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
}
@media (max-width: 1400px){ #g1-grid { grid-template-columns: repeat(5, 1fr); } }
@media (max-width: 1100px){ #g1-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 900px) { #g1-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px) { #g1-grid { grid-template-columns: repeat(2, 1fr); } }

#g1-grid a {
    display: block;
    border-radius: 0px;
    overflow: hidden;
    background: #111827;
}
#g1-grid img {
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 6/4;
    object-fit: cover;
    object-position: top;
}

/* --- Simple Overlay --- */
.g1-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.92);
    z-index: 9999;
    display: none; /* per JS auf block setzen */
}

.g1-overlay__track {
    position: absolute;
    inset: 0;
    overflow-y: auto;      /* natives Scrollen */
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
}

.g1-overlay__inner {
    width: 90vw;           /* <- hier die Breite einstellen (80–98vw möglich) */
    max-width: none;       /* keine harte Obergrenze */
    margin: 0 auto;
    padding: 16px 0;       /* bisschen Luft oben/unten */
    box-sizing: border-box;
}

.g1-overlay__img {
    display: block;
    width: 100%;           /* Bild füllt die eingestellte Breite */
    height: auto;          /* proportional wachsen */
}

/* Close-Button */
.g1-overlay__close {
    position: fixed;
    top: 12px;
    right: 16px;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    color: #fff;
    font-size: 20px;
    cursor: pointer;
}

body.g1-modal-open { overflow: hidden; } /* Seite dahinter nicht scrollen */

#masonry .grid-item {
    content-visibility: auto;  /* Chromium & Safari */
    contain-intrinsic-size: 300px; /* Platzhalterhöhe, verhindert Reflow-Jumps */
}


@media screen and (max-width: 1680px) {
    :root {
        --header-height: 70px;
        --headline-size: 45px;
        --headline-lh: 55px;
        --bigweight: 800;
        --subheadline-size: 35px;
        --subheadline-lh: 45px;
    }

    h1,
    .hero-content h1 {
        font-size: var(--headline-size);
        line-height: var(--headline-lh);
    }

    #defaulthome.healthcare .subheadline,
    .hero-content .subheadline {
        font-size: var(--subheadline-size);
        line-height: var(--subheadline-lh);
    }

    #referenzenhome .subheadline {
        margin-top: 35px;
    }

    .hero-content.sec {
        max-width: 85%;
    }

    #spirit-title {
        font-size: 40px;
        line-height: 50px;
    }

    .cap {
        font-size: 35px;
        line-height: 45px;
    }

    .circle-svg {
        height: 133px;
    }

    .arbeit p, .ziel p, #abschluss p, .linecta, #details .textbox p {
        font-size: 30px;
        line-height: 45px;
    }

    footer .textbox {
        width: 45%;
    }

}

@media screen and (max-width: 1560px) {
    :root {
        --header-height: 70px;
        --headline-size: 45px;
        --headline-lh: 55px;
        --bigweight: 800;
        --subheadline-size: 30px;
        --subheadline-lh: 45px;
    }



    #defaulthome .subheadline {
        font-size: var(--subheadline-size);
        line-height: var(--subheadline-lh);
    }

    .ellipse-video {
        width: 100%;
    }
    .hl-circle {
        text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
    }

    .circle-svg ellipse {
        stroke-width: 1;
    }


    footer {
        font-size: 14px;
    }

    .circle-svg {
        z-index: -1;
    }

    #spirits .capwrap {
        width: 90%;
    }

    h1 {
        margin-bottom: 15px;
    }

}






@media screen and (max-width: 1380px) {
    :root {
        --header-height: 70px;
        --headline-size: 38px;
        --headline-lh: 48px;
        --bigweight: 800;
        --subheadline-size: 30px;
        --subheadline-lh: 40px;
        --headline-third-size: 25px;
        --headline-third-lh: 35px;

    }


    #referenzen .textbox a,
    .hero-content .wrapperinfos .infobox h2,
    .arbeit p, .ziel p, #abschluss p, .linecta, #details .textbox p,
    #spirit-title {
        font-size: var(--subheadline-size);
        line-height: var(--subheadline-lh);
    }

    .cap,.tl-summary h3,
    .l__info h3 {
        font-size: var(--headline-third-size);
        line-height: var(--headline-third-lh);
    }

    .hero-content {
        max-width: 85%;
    }

    #leistung {
        margin-top: 110px;
    }


    .team-grid,
    #spirits .wrap {
        width: 85%;
    }
    .smallwidth {
        width: 75%;
    }

    .mt-90 {
        margin-top: 45px;
    }

    .pr {
        padding-right: 15px;
    }
    .pl {
        padding-left: 15px;
    }


    footer .textbox {
        width: 50%;
    }
    footer .textbox:nth-child(2) {
        width: 20%;
        margin-left: 3%;
        margin-right: 3%;
    }

}



@media screen and (max-width: 1180px) {
    footer .contentboxwrapper {
        max-width: 100%;
    }
}

@media screen and (max-width: 1080px) {
    :root {
        --header-height: 70px;
        --headline-size: 32px;
        --headline-lh: 42px;

        --subheadline-size: 25px;
        --subheadline-lh: 35px;
        --headline-third-size: 22px;
        --headline-third-lh: 28px;

    }


    .logo-track .logo {
        width: 200px;
        height: 100px;
    }

    .logo-track .logo img {
        height: clamp(90px, 5vw, 90px);
    }


    .contentboxwrapper.lei {
        column-gap: 15px;
    }

    .arbeit {
        margin-left: 0;
    }
    .ziel {
        margin-right: 0;
    }

    .team-grid, #spirits .wrap {
        width: 95%;
    }


    .smallwidth, .middlewidth {
        width: 85%;
    }
    .anfrageform form {
        max-width: 90%;
    }


    nav {
        display: none;
    }
    #burger-toggle {
        opacity: 1;
        right: 40px;
        position: fixed;
        top: 15px;
    }


    /* === Button === */
    .burger {
        --size: 40px;
        --bar-h: 2px;
        --bar-w: 40px;
        --gap: 0px;
        --color: #fff;

        width: var(--size);
        height: var(--size);
        display: grid;
        place-items: center;
        background: transparent;
        border: 0;
        cursor: pointer;
        position: relative;
        z-index: 1100;
    }

    .burger .line {
        position: relative;
        display: block;
        width: var(--bar-w);
        height: var(--bar-h);
        border-radius: 2px;
        background: var(--color);
        transition: transform .35s ease, opacity .25s ease, width .25s ease, background .25s ease;
    }
    .burger .line:nth-child(1) { transform: translateY(5px); }
    .burger .line:nth-child(3) { transform: translateY(-5px); }

    /* Active/X-State */
    body.menu-open .burger .line:nth-child(1) {
        transform: rotate(45deg) translateY(21px);
    }
    body.menu-open .burger .line:nth-child(2) {
        opacity: 0; transform: translateX(8px);
    }
    body.menu-open .burger .line:nth-child(3) {
        transform: rotate(-45deg) translateY(-21px);
    }

    /* === Overlay === */
    .menu-overlay {
        position: fixed;
        inset: 0;
        display: grid;
        place-items: center;
        background: rgba(0,0,0,.75);
        backdrop-filter: blur(14px) saturate(120%);
        -webkit-backdrop-filter: blur(14px) saturate(120%);
        z-index: 1000;

        /* Fancy: Kreis-Reveal */
        clip-path: circle(0% at calc(100% - 34px) 34px);
        opacity: 0;
        transition: clip-path .5s cubic-bezier(.2,.8,.2,1), opacity .3s ease;
    }

    /* sichtbarer Zustand */
    body.menu-open .menu-overlay {
        opacity: 1;
        clip-path: circle(150% at calc(100% - 34px) 34px); /* expandiert vom Burger */
    }

    /* Fallback für reduced motion */
    @media (prefers-reduced-motion: reduce) {
        .menu-overlay { clip-path: none; transition: opacity .2s ease; }
        body.menu-open .menu-overlay { opacity: 1; }
    }

    /* Inhalt */
    .menu-list {
        list-style: none;
        padding: 0; margin: 0;
        display: grid;
        gap: 16px;
        text-align: center;
    }
    .menu-list a {
        font-size: clamp(1.6rem, 3vw, 2.8rem);
        color: #fff;
        text-decoration: none;
        opacity: 0;
        transform: translateY(12px);
        transition: opacity .45s ease, transform .45s ease;
    }

    /* sichtbare Links – Stagger via CSS */
    body.menu-open .menu-list a {
        opacity: 1; transform: translateY(0);
    }
    body.menu-open .menu-list li:nth-child(1) a { transition-delay: .08s; }
    body.menu-open .menu-list li:nth-child(2) a { transition-delay: .16s; }
    body.menu-open .menu-list li:nth-child(3) a { transition-delay: .24s; }
    body.menu-open .menu-list li:nth-child(4) a { transition-delay: .32s; }

    /* Scroll-Lock wenn Menü offen */
    body.menu-open { overflow: hidden; }



}


@media screen and (max-width: 991px) {
    .badge {
        transform: scale(0.9);
        top: 110px;
        right: 25%;
    }

    .circle-svg {
        height: 100px;
    }
    header .menuwrapper {
        display: none;
    }

    .hero-content .wrapperinfos .infobox {
        flex: 0 1 calc(100% - 25px);
    }

    .contentboxwrapper.lei {
        flex-wrap: wrap;
        flex-direction: row;
    }

    .contentboxwrapper.lei > div {
        width: calc(100% / 1/2 - 15px);
    }

    .contentboxwrapper {
        flex-direction: column;
    }

    .contentboxwrapper > div {
        width: 100%;
    }

    .contentboxwrapper .imagebox {
        height: auto;
        max-height: 650px;
        overflow: hidden;
    }

    #pagenavigation .contentboxwrapper {
        flex-direction: row;
    }

    #details .textbox {
        margin-left: 20px;
        width: 85%;
    }

    #referenzenhome .content-width {
        width: 85%;
    }

    .pl {
        padding-left: 0;
        padding-top: 15px;
    }
    .pr {
        padding-right: 0;
        padding-bottom: 15px;
    }



    .smallwidth, .middlewidth {
        width: 100%;
        max-width: 100%;
    }

    footer .contentboxwrapper {
        flex-wrap: wrap;
        flex-direction: row;
    }

    .faq-wrapper {
        max-width: 100%;
    }

    footer .textbox {
        text-align: center;
    }
    footer .textbox:nth-child(2) {
        width: 100%;
        margin-left: 0;
        margin-right: 0;
        order: 1;
    }

    footer .textbox:nth-child(1) {
        order: 2;
        padding: 15px 0;
    }
    footer .textbox:nth-child(3) {
        order: 3;
    }


    .arbeit {
        width: 80%;
        margin-bottom: 50px;
    }
    .ziel::before { left: 70%;}
    .ziel {
        width: 65%;
    }

    #referenzen {
        padding-bottom: 0;
    }
    .reflink {
        margin-top: 45px;
    }



}


@media screen and (max-width: 892px) {

    .smallwidth, .middlewidth {
        width: 100%;
    }

    #abschluss .content-width {
        width: 90%;
    }

}



@media screen and (max-width: 768px) {
    .badge {
        transform: scale(0.7);
        top: -10px;
        right: 78%;
    }

    .contentboxwrapper .imagebox {
        height: auto;
        overflow: hidden;
    }

    .anfrageform form {
        width: 95%;
    }


    .burger-menu {
        top: 9px;
    }

    .badge {
        transform: scale(0.7);
        top: -10px;
        right: unset;
    }

    .twocol {
        column-count: 1;
        column-gap: unset;
    }


    #pagenavigation .contentboxwrapper {
        flex-direction: column;
    }
    #pagenavigation .contentboxwrapper .textbox:first-child,
    #pagenavigation .contentboxwrapper .textbox:last-child {
        text-align: center;
    }

    #pagenavigation .circle-svg {
        display: none;
    }

    #defaulthome .content-width {
        width: 85%;
    }

    .detailinfos .capwrap .textblock-left p, .detailinfos .capwrap .textblock-right p {
        margin-top: 50px;
        width: 95%;
    }

    .detailinfos .capwrap .textblock-right p {
        text-align: right;
        margin-left: calc(100% - 95%);
    }

    #defaulthome .content-width {
        padding-bottom: 35px;
    }


    .silk-timeline {
        max-width: 90%;
    }

}



@media screen and (max-width: 620px) {


    .anfrageform button.cta::before {
        display: none;
    }
    .anfrageform button.cta {
        border: 1px solid var(--maincolor);
        background: var(--maincolor);
        padding: 5px 35px 5px 35px;
        color: #fff;
    }

    .anfrageform button.cta svg {
        display: none;
    }

}


@media screen and (max-width: 592px) {

    .wrapper {
        max-width: calc(100% - 25px);
    }


    .hero-slider {
        min-height: 575px;
    }


    .detailinfos .capwrap .textblock-right p {
        text-align: center;
        margin-left: calc(100% - 100%);
        margin-top: 25px;
        margin-bottom: 50px;
    }


    .detailinfos .capwrap .textblock-left p, .detailinfos .capwrap .textblock-right p {
        margin-top: 25px;
        margin-bottom: 50px;
        width: 100%;
        text-align: center;
    }


    .silk-timeline {
       margin: 40px auto 0;
    }

    .tl-marker {
        position: relative;
        width: 18px;
        height: 18px;
        border: 1px solid var(--accent);
    }


    .tl-summary {
        grid-template-columns: 15px 1fr auto;
    }


    .tl-summary h3 {
        font-size: 16px;
        line-height: 24px;
        hyphens: none;
    }

    .tl-ul li {
        hyphens: none;
    }

}


@media screen and (max-width: 492px) {
    .content-width {
        margin: 0 auto;
        width: calc(100% - 40px);
    }
    :root {
        --header-height: 70px;
        --headline-size: 26px;
        --headline-lh: 36px;

        --subheadline-size: 18px;
        --subheadline-lh: 28px;
        --headline-third-size: 16px;
        --headline-third-lh: 26px;

    }
    .anfrageform .form-row > div {
        min-width: 100%;
    }
    .anfrageform .inline-options {
        display: inline-block;
        gap: unset;
        margin-bottom: 1rem;
        width: 100%;
    }
    .anfrageform .inline-options label {
        display: flex;
        width: 100%;
    }
    .anfrageform .inline-options label input {
        width: 15px;
        margin-right: 15px;
    }


    .anfrageform form h2 {
        font-size: 20px;
        line-height: 28px;
    }

    .anfrageform form h3 {
        font-size: 20px;
        line-height: 28px;
    }

    #spirits .wrap {
        width: 75%;
    }

    #leistung {
          margin-top: 0;
      }
    #arbeit-ziel {
        margin-top: 60px;
    }

    .arbeit {
        width: 100%;
    }

    .ziel::before { display: none; }
    .ziel {
        width: 100%;
    }

    #abschluss .content-width {
        padding-bottom: 115px;
    }


    .nav.prev, .nav.next {
        display: none;
    }

    .cap br {
        display: none;
    }

    #leistung-title,
    .textblock-right .cap,
    .textblock-left .cap {
        text-align: center;
    }




}


