@font-face {
	font-family: 'Libre Baskerville';
	src: url('../fonts/LibreBaskerville-Italic.woff2') format('woff2'),
	url('../fonts/LibreBaskerville-Italic.woff') format('woff');
	font-weight: normal;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: 'Libre Baskerville';
	src: url('../fonts/LibreBaskerville-Bold.woff2') format('woff2'),
	url('../fonts/LibreBaskerville-Bold.woff') format('woff');
	font-weight: bold;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Libre Baskerville';
	src: url('../fonts/LibreBaskerville-Regular.woff2') format('woff2'),
	url('../fonts/LibreBaskerville-Regular.woff') format('woff');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Roboto';
	src: url('../fonts/Roboto-Regular.woff2') format('woff2'),
	url('../fonts/Roboto-Regular.woff') format('woff');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Roboto';
	src: url('../fonts/Roboto-Medium.woff2') format('woff2'),
	url('../fonts/Roboto-Medium.woff') format('woff');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Roboto';
	src: url('../fonts/Roboto-Bold.woff2') format('woff2'),
	url('../fonts/Roboto-Bold.woff') format('woff');
	font-weight: bold;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Roboto';
	src: url('../fonts/Roboto-Light.woff2') format('woff2'),
	url('../fonts/Roboto-Light.woff') format('woff');
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Roboto';
	src: url('../fonts/Roboto-Thin.woff2') format('woff2'),
	url('../fonts/Roboto-Thin.woff') format('woff');
	font-weight: 100;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Font Awesome 6 Free";
	src: url("../vendors/fontawesome/webfonts/fa-regular-400.woff2") format("woff2"),
	url("../vendors/fontawesome/webfonts/fa-regular-400.ttf") format("ttf");
	font-weight: 400;
	font-style: normal;
}

@font-face {
	font-family: "Font Awesome 6 Free";
	src: url("../vendors/fontawesome/webfonts/fa-solid-900.woff2") format("woff2");
	url("../vendors/fontawesome/webfonts/fa-solid-900.ttf") format("ttf");
	font-weight: 900;
	font-style: normal;
}

@font-face {
    font-family: "Font Awesome 6 Brands";
    src: url("../vendors/fontawesome/webfonts/fa-brands-400.woff2") format("woff2"),
    url("../vendors/fontawesome/webfonts/fa-brands-400.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
}

.section--image__figure {
    margin: 0;
}

.section--image__img {
    display: block;
    width: 100%;
    height: auto;
}

.section--image__caption {
    margin-top: 12px;
    font-size: 16px;
    line-height: 1.4;
    font-style: italic;
    color: var(--secondary);
}

.section-references {
    margin: 0 auto 50px auto;
    padding: 0;
}

.section-references .references-grid {
    background-color: var(--default);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 32px;
    align-items: center;
    justify-items: center;
}

.section-references .references-grid__item {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
}

.section-references a.references-grid__item {
    text-decoration: none;
    transition: opacity 0.25s ease;
}

.section-references a.references-grid__item:hover {
    opacity: 0.8;
}

.section-references .references-grid__logo {
    max-width: 100%;
    max-height: 80px;
    width: auto;
    height: auto;
    object-fit: contain;
}

@media (min-width: 576px) {
    .section-references .references-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 40px;
    }
}

@media (min-width: 992px) {
    .section-references .references-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 48px;
    }

    .section-references .references-grid__logo {
        max-height: 96px;
    }
}

/* === VARIABLES === */
:root {
	--font-serif: 'Libre Baskerville', serif;
    	/* Oszi --font-serif: 'Lucida Bright', serif !important; */
	--font-sans-serif: 'Roboto', sans-serif;
    	/* Oszi --font-sans-serif: 'Rotis II Sans Pro', sans-serif !important; */
    --font-fa: "Font Awesome 6 Free";
    --font-fa-brands: "Font Awesome 6 Brands";
	--white: #fff;
	--midtone: #737373;
	--primary: #003b6f;
	--secondary: #b1a467;
	--secondary-dark: #817665;
	--secondary-highlight: #f4f0ce;
	--tertiary: #b2c4d4;
	--default: #f7f7f7;
	--light: #eee;
	--highlight: #f7f7f7;
    --logo-gray: #818c99;
	/* Oszi: Haarlinie aus dem Entwurf, gemessen #e7e7e7. */
	--hairline: #e7e7e7;
}

/* === BASE === */

:root {
    transition-behavior: allow-discrete;
}

body {
	background-color:  var(--white);
	font-family: var(--font-sans-serif);
	color: var(--midtone);
	font-size: 100%;
	line-height: 1.58823529412;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.container-fluid {
	max-width: 1034px;
	margin-left: auto;
	margin-right: auto;
}

.img-responsive {
	display: inline-block;
	vertical-align: middle;
	max-width: 100%;
	height: auto;
}

.slick-track {
    display: flex !important;
}

.slick-slider {
    touch-action: pan-y;
}

.slick-slide {
    height: auto !important;
}

.slick-slide > *,
.slick-slide > * > * {
    height: 100%;
}


@media (min-width: 360px) and (max-width: 575.98px) {
    .col-xs-6 {
        flex: 0 0 auto;
        width: 50%;
    }
}

/* === Icons === */

.fa-regular {
	font-weight: 400;
    font-style: normal;
    font-family: var(--font-fa);
}

.fa-solid {
	font-weight: 900;
    font-style: normal;
    font-family: var(--font-fa);
}

.fa-brands {
    font-weight: 400;
    font-style: normal;
    font-family: var(--font-fa-brands);
}

/* === Typography === */

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
	margin: 0;
	padding: 0;
	font-family: var(--font-serif);
	font-weight: 400;
	text-align: left;
	text-wrap: balance;
	letter-spacing: 1px;
	color: var(--primary);
}

h1::after,
.h1::after {
	display: block;
	content: '';
	height: 65px;
	margin-top: 1rem;
	background: url(../img/title-separator.png) no-repeat 50% 50%;
}

.content p, .content ul, .content ol {
	font-size: 17px;
	line-height: 1.58823529412;
	letter-spacing: 0;
	font-weight: 400;
}

.content p {
	margin-top: 0;
	margin-bottom: 12px;
}

.content :where(strong) {
	font-weight: 600;
}


.content ul {
    margin: 0;
    padding: 0 0 0 25px;
    list-style: none;
}

.content ul.wp-block-list {
    padding-left: 32px;
}

.content :where(ul:not([class])) li,
.content :where(ul.wp-block-list) li,
.content :where(ul.col-two) li {
    position: relative;
}

.content :where(ul:not([class])) li:not(:first-child),
.content :where(ul.wp-block-list) li:not(:first-child),
.content :where(ul.col-two) li:not(:first-child) {
    margin-top: 5px;
}

.content :where(ul:not([class])) li:before,
.content :where(ul.wp-block-list) li:before,
.content :where(ul.col-two) li:before {
    content: "";
    width: 8px;
    height: 8px;
    display: inline-block;
    vertical-align: middle;
    background: #b1a467;
    margin-left: -20px;
    position: absolute;
    top: 8px;
}

:where(.content) a:where([href]:not(.btn)) {
	color: var(--secondary);
	text-decoration: underline;
}

:where(.content) a:where([href]:not(.btn)):hover,
:where(.content) a:where([href]:not(.btn)):focus-visible {
	color: var(--secondary);
}

:where(.content) a:where([href]:not(.btn)):active {
	color: var(--secondary);
}

.content :where(h1),
.content :where(.h1) {
	font-size: 22px;
	line-height: 1.2;
	letter-spacing: 1px;
	text-align: center;
}

@media (min-width: 768px) {
    .content :where(h1),
    .content :where(.h1) {
		font-size: 28px;
	}
}

.content :where(h2),
.content :where(.h2) {
    position: relative;
    padding-top: 0;
	font-size: 18px;
	line-height: 1.27272727273;
	letter-spacing: 0;
}



@media (min-width: 768px) {
    .content :where(h2),
    .content :where(.h2) {
		font-size: 22px;
	}
}


.content :where(h2):not(:first-of-type):before,
.content :where(.h2):not(:first-of-type):before {
    display: none;
}

.content :where(h3),
.content :where(.h3) {
	font-size: 20px;
	line-height: 1.3;
	letter-spacing: 0;
	margin-top: 1.5em;
	margin-bottom: 0.5em;
}

@media (min-width: 768px) {
	.content :where(h3),
	.content :where(.h3) {
		font-size: 22px;
	}
}

.content :where(h4),
.content :where(.h4) {
	font-size: 18px;
	line-height: 1.35;
	letter-spacing: 0;
	margin-top: 1.25em;
	margin-bottom: 0.5em;
}

@media (min-width: 768px) {
	.content :where(h4),
	.content :where(.h4) {
		font-size: 20px;
	}
}

.content :where(h5),
.content :where(.h5) {
	font-size: 17px;
	line-height: 1.4;
	letter-spacing: 0;
	margin-top: 1em;
	margin-bottom: 0.5em;
}

@media (min-width: 768px) {
	.content :where(h5),
	.content :where(.h5) {
		font-size: 18px;
	}
}

.content :where(h6),
.content :where(.h6) {
	font-size: 16px;
	line-height: 1.4;
	letter-spacing: 0;
	margin-top: 1em;
	margin-bottom: 0.5em;
}

@media (min-width: 768px) {
	.content :where(h6),
	.content :where(.h6) {
		font-size: 17px;
	}
}

.content :where(blockquote) {
	padding: 12px 24px;
	margin: 0 0 24px;
	font-size: 21.25px;
	border-left: 5px solid var(--light);
}

.content :where(blockquote) > *:last-child {
    margin-bottom: 0;
}

.content summary,
.content details {
    display: block;
}

.content details {
    margin-top: 30px;

@media (prefers-reduced-motion: no-preference) {
    interpolate-size: allow-keywords;
}
}

.content details summary {
    position: relative;
    margin: 0;
    padding: 0 0 0 26px;
    cursor: pointer;
    color: var(--secondary);
}

.content details summary,
.content details {
    display: block;
}

.content details summary::before {
    position: absolute;
    left: 0;
    top: 0;
    display: block;
    vertical-align: middle;
    font-family: var(--font-fa);
    font-weight: 900;
    font-style: normal;
    content: "\f054";
    transform: rotate(0deg);
    transition: all 0.1s ease;
}

.content details[open] summary::before {
    transition: all 0.1s linear;
    transform: rotate(90deg);
}

.content summary:hover {
    cursor: pointer;
}

.content details[open] {
    padding-bottom: 16px;
}

.content details summary::-webkit-details-marker {
    display: none;
}

.content details::details-content {
    padding-top: 20px;
    padding-left: 40px;
    height: 0;
    opacity: 0;
    overflow-y: clip;
    transition: content-visibility 0.1s allow-discrete, opacity 0.1s, height 0.1s;
}

.content details[open]::details-content {
    height: auto;
    opacity: 1;
}

@media (min-width: 456px) {
    .content details .col-two {
        column-count: 2;
        column-gap: 30px;
    }
}

/* === Buttons === */

.btn {
    position: relative;
	border-radius: 0;
	padding: 11.25px 16px;
	font-size: 17px;
	letter-spacing: 1px;
}

.btn.btn:focus {
	outline: 0;
	box-shadow: none;
}

.btn.btn:focus-visible {
	outline: 1px dashed var(--midtone);
	outline-offset: 4px;
}

.btn.btn--default {
    background-color: var(--default);
    border-color: var(--default);
    color: var(--secondary);
}

.btn.btn--default:hover,
.btn.btn--default:focus-visible {
	background-color: var(--default);
    border-color: var(--default);
	color: var(--secondary);
}

.btn.btn--default:active {
	background-color: var(--default);
    border-color: var(--default);
	color: var(--secondary);
}

.btn.btn--primary {
	background-color: var(--primary);
    border-color: var(--primary);
	color: var(--white);
}

.btn.btn--primary:hover,
.btn.btn--primary:focus-visible {
	background-color: var(--primary);
    border-color: var(--primary);
	color: var(--white);
}

.btn.btn--primary:active {
	background-color: var(--primary);
    border-color: var(--primary);
	color: var(--white);
}

.btn.btn--secondary {
	background-color: var(--secondary);
    border-color: var(--secondary);
	color: var(--white);
}

.btn.btn--secondary:hover,
.btn.btn--secondary:focus-visible {
	background-color: var(--secondary);
    border-color: var(--secondary);
	color: var(--white);
}

.btn.btn--secondary:active {
	background-color: var(--secondary);
    border-color: var(--secondary);
	color: var(--white);
}

/* === Header === */

body {
    padding-top: 100px;
}

@media (min-width: 768px) {
    body {
        padding-top: 112px;
    }
}

.header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    padding-top: 20px;
    padding-bottom: 20px;
    background-color: var(--white);
    transition: padding 0.3s ease, transform 0.3s ease, height 0.3s ease, box-shadow 0.3s ease, backdrop-filter 0.3s ease;
}

.header--hidden {
    transform: translateY(-100%);
}

.header--mini {
    padding-top: 10px;
    padding-bottom: 10px;
    background-color: rgba(255, 255, 255, 0.95);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
    backdrop-filter: blur(24px);

}

.header:not(.header--mini) {

}

.header__wrapper {
    display: flex;
    align-items: center;
    gap: 48px;
}

.header .logo {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 8px;
    margin-right: auto;
}

@media (min-width: 400px) {
    .header .logo {
        gap: 20px;
    }
}

.header .logo__box {
    position: relative;
}

.header .logo__link {
    display: block;
    text-decoration: none;
    line-height: 1;
}

.header .logo__img {
    display: block;
    height: auto;
    max-width: 120px;
    width: 66px;
}

@media (min-width: 400px) {
    .header .logo__img {
        width: auto;
        max-width: 100px;
    }
}

@media (min-width: 768px) {
    .header .logo__box .logo__link:after {
        position: absolute;
        display: block;
        content: attr(data-phone);
        background-color: var(--primary);
        color: var(--white);
        font-size: 14px;
        visibility: hidden;
        opacity: 0;
        transition: opacity 0.5s ease, visibility 0.5s linear 0.5s;
        padding: 5px 6px;
        bottom: -2px;
        left: 51px;
        white-space: nowrap;
    }

    .header .logo__box:hover .logo__link:after {
        opacity: 1;
        visibility: visible;
        transition: opacity 0.5s ease, visibility 0.5s linear 0s;
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    .header .logo__box .logo__link:after {
        font-size: 12px;
    }
}

.header .logo__text {
    display: block;
    padding-top: 7px;
    color: var(--primary);
}

.header .logo__bottom-text {
    display: flex;
    gap: 8px;
    color: var(--logo-gray);
}

.logo__phone-link {
    color: var(--primary);
    text-decoration: none;
    transition: color 0.25s ease;
}

.logo__phone-link:hover,
.logo__phone-link:focus-visible {
    color: var(--secondary);
    text-decoration: none;
}

.logo__phone-link:active {
    color: var(--secondary);
    text-decoration: none;
}

.header .logo__text,
.header .logo__bottom-text {
    padding-left: 38px;
    white-space: nowrap;
    font-size: 12px;
}

@media (min-width: 400px) {
    .header .logo__text,
    .header .logo__bottom-text {
        padding-left: 51px;
    }
}

@media (min-width: 992px) {
    .header .logo__text,
    .header .logo__bottom-text {
        font-size: 14px;
    }
}

.header .header__nav {
    display: none;
    margin: 0 0 0 auto;
    padding: 0;
}

@media (min-width: 992px) {
    .header .header__nav {
        display: block;
    }
}

.header .header__nav-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    gap: 16px;
}

.header .header__nav-list a {
    color: var(--secondary);
    text-decoration: none;
    font-size: 14px;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: 2px;
    transition: 0.25s color ease;
}

.header .header__nav-list a:hover,
.header .header__nav-list a:focus-visible {
    color: var(--primary);
    text-decoration: none;
}

.header .header__nav-list a:active {
    color: var(--primary);
    text-decoration: none;
}

.header .toggle-button {
    position: relative;
    display: block;
    padding-left: 0;
    padding-right: 16px;
}

@media (min-width: 768px) {
    .header  .toggle-button {
        padding-left: 40px;
    }
}

@media (min-width: 992px) {
    .header .toggle-button {
        padding-left: 40px;
        border-left: 1px solid var(--secondary);
    }
}

@media (min-width: 1040px) {
    .header .toggle-button {
        padding-right: 0;
    }
}

.header .toggle-button a {
    display: flex;
    gap: 20px;
    align-items: center;
    height: 50px;
    color: var(--secondary);
    text-decoration: none;
    transition: 0.25s color ease;
}

.header .toggle-button a:hover,
.header .toggle-button a:focus-visible {
    color: var(--primary);
}

.header .toggle-button a:active {
    color: var(--primary);
}

.header .toggle-button .nav-title {
    display: none;
}

@media (min-width: 576px) {
    .header .toggle-button .nav-title {
        display: inline-block;
    }
}

.header .toggle-button .icon-bars {
    position: relative;
    top: -2px;
    width: 20px;
}

.header .toggle-button .toggle:not(.open-nav) .icon-bars span.top-bar {
    top: -6px;
    background-color: var(--secondary);
    transition: 0.25s background-color ease;
}

.header .toggle-button .toggle:not(.open-nav) .icon-bars span.middle-bar {
    top: 0;
    background-color: var(--secondary);
    transition: 0.25s background-color ease;
}

.header .toggle-button .toggle:not(.open-nav) .icon-bars span.bottom-bar {
    top: 6px;
    background-color: var(--secondary);
    transition: 0.25s background-color ease;
}

.header .toggle-button .toggle:not(.open-nav) .icon-bars span.icon-bar {
    transform: rotate(0deg);
}

.header .toggle-button .icon-bars span.icon-bar.top-bar,
.header .toggle-button .icon-bars span.icon-bar.middle-bar,
.header .toggle-button .icon-bars span.icon-bar.bottom-bar {
    display: block;
    width: 20px;
    height: 2px;
    border-radius: 0;
    position: absolute;
    opacity: 1;
}

.header .toggle-button .icon-bar + .icon-bar {
    margin-top: -2px !important;
}

.header .toggle-button .icon-bars .icon-bar + .icon-bar {
    margin-top: 0 !important;
}

.header .toggle-button .icon-bars span.top-bar {
    transform: rotate(45deg);
    background-color: var(--primary);
    opacity: 1;
    top: 0;
    display: block;
}

.header .toggle-button .icon-bars span.middle-bar {
    opacity: 0;
}

.header .toggle-button .icon-bars span.bottom-bar {
    transform: rotate(-45deg);
    opacity: 1;
    background-color: var(--primary);
    top: 0;
    display: block;
}

.header .toggle-button a.open-nav {
    color: var(--primary);
}

.header .toggle-button:hover a {
    color: var(--primary);
}

.header .toggle-button:hover .toggle:not(.open-nav) .icon-bars span.icon-bar {
    background-color: var(--primary) !important;
}

.header .mega-menu {
    display: block;
    position: absolute;
    z-index: 10;
    left: 0;
    right: 0;
    top: 100%;
    background-color: var(--primary);
    color: var(--secondary);
    padding: 32px 0 32px 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s ease, visibility 0.5s ease 0s;
}

.header--hidden .mega-menu {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.5s ease, visibility 0.5s ease 0.5s;
}

@media (min-width: 992px) {
    .header .mega-menu {
        padding: 60px 0 0 0;
    }
}

.navbar-open .header:not(.header--hidden) .mega-menu {
    opacity: 1;
    visibility: visible;
}

.header .mega-menu:after {
    position: absolute;
    z-index: 1;
    bottom: -131px;
    left: 0;
    right: 0;
    display: block;
    content: '';
    height: 132px;
    background-color: var(--primary);
    clip-path: polygon(0 0, 100% 100%, 100% 0);
}


@media (max-width: 1199.98px) {
    .header .mega-menu:after {
        bottom: -65px;
        height: 66px;
        clip-path: polygon(0 0, 100% 100%, 100% 0);
    }
}

.header .mega-menu__header {
    display: flex;
    align-items: start;
    justify-content: space-between;
}

.header .lang {
    display: inline-flex;
    align-items: center;
    margin-bottom: 24px;
    padding: 6px 16px;
    height: 35px;
    background-color: rgba(255, 255, 255, 0.1);
}

.header .lang__list {
    margin: 0;
    padding: 0;
    display: flex;
    list-style: none;
    justify-content: center;
    gap: 16px;
    align-items: center;
}

.header .lang__link,
.header .lang__link:hover,
.header .lang__link:focus-visible {
    text-decoration: none;
}

.header .lang__link {
    color: var(--secondary);
}

.header .lang__link:hover,
.header .lang__link:focus-visible {
    color: var(--light);
}

.header .lang__item--active .lang__link {
    color: var(--light);
    text-decoration: underline;
    text-decoration-color: var(--light);
    text-decoration-thickness: 2px;
    text-underline-offset: 4px;
}

.header .lang-item a {
    display: flex;
    text-decoration: none;
    color: var(--secondary);
    border-top: 2px solid transparent;
    border-bottom: 2px solid transparent;
    font-size: 15px;
    line-height: 1.25;
    text-transform: uppercase;
    transition: color 0.25s ease, border 0.25s ease;
}

.header .lang-item a:hover,
.header .lang-item a:focus-visible {
    text-decoration: none;
    color: var(--light);
}

.header .lang-item a:active {
    text-decoration: none;
    color: var(--light);
}

.header .lang-item.current-lang a {
    color: var(--white);
    border-bottom-color: var(--white);
}

.header .mega-menu__close-btn {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0;
    padding: 0;
    font-size: 17px;
    line-height: 1;
    color: var(--white);
    width: 35px;
    height: 35px;
    background-color: rgba(255, 255, 255, 0.1);
    text-indent: 1.5px;
}

.header .mega-menu__boxes {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    max-height: calc(100vh - 246px);
    overflow-y: auto;
    overscroll-behavior: contain;
}

.header .mega-menu__boxes::-webkit-scrollbar {
    width: 8px;
}

.header .mega-menu__boxes::-webkit-scrollbar-track {
    background: var(--light);
    border-radius: 999px;
}

.header .mega-menu__boxes::-webkit-scrollbar-thumb {
    background: var(--secondary);
    border-radius: 999px;
}


@media (min-width: 992px) {
    .header .mega-menu__boxes {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.header .header__mega-menu-nav {
    margin: 0;
    padding: 0;
}

.header .header__mega-menu-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
}

@media (min-width: 992px) {
    .header .header__mega-menu-list {
        padding: 0 0 0 20px;
        border-left: 1px solid var(--secondary);
        gap: 16px;
    }
}

.header .header__mega-menu-list a {
    display: inline-block;
    vertical-align: middle;
    padding: 10px;
    text-decoration: none;
    color: var(--secondary);
    font-weight: 400;
    font-size: 14px;
    line-height: 1.42857142857;
    letter-spacing: 2px;
    text-transform: uppercase;
    transition: color 0.25s ease;
}

.header .header__mega-menu-list a:hover,
.header .header__mega-menu-list a:focus-visible {
    text-decoration: none;
    color: var(--white);
}

.header .header__mega-menu-list a:active {
    text-decoration: none;
    color: var(--white);
}


/* === Footer === */

.footer {
    position: relative;
    z-index: 1;
    background-color: var(--default);
    padding-top: 56px;
    padding-bottom: 32px;
    border-bottom: 20px solid var(--primary);
}

.footer:before {
    position: absolute;
    z-index: 1;
    display: block;
    content: '';
    background-color: var(--white);
    top: -1px;
    left: 0;
    right: 0;
    height: 56px;
    clip-path: polygon(0 0, 100% 0, 100% 100%);
}

@media (min-width: 992px) {
    .footer {
        padding-top: 110px;
    }

    .footer:before {
        height: 110px;
    }
}

.footer a {
    font-weight: 300;
    color: var(--secondary);
    text-decoration: none;
}

.footer a:hover,
.footer a:focus-visible {
    color: var(--primary);
    text-decoration: none;
}

.footer a:active {
    color: var(--primary);
    text-decoration: none;
}

.footer .footer__boxes {
    display: grid;
    justify-content: center;
    gap: 20px;
    padding-top: 12px;
}

@media (min-width: 576px) and (max-width: 1199.98px) {
    .footer .footer__boxes {
        display: grid;
        grid-template-areas: 'box1 box2 box2' 'box3 box4 box5';
        gap: 40px;
    }

    .footer .footer__box--1 {
        grid-area: box1;
    }

    .footer .footer__box--2 {
        grid-area: box2;
    }

    .footer .footer__box--3 {
        grid-area: box3;
    }

    .footer .footer__box--4 {
        grid-area: box4;
    }

    .footer .footer__box--5 {
        grid-area: box5;
    }
}

@media (min-width: 1200px) {
    .footer .footer__boxes {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, max-content) minmax(0, max-content) minmax(0, max-content);
        gap: 40px;
        padding-top: 12px;
    }

    .footer .footer__box--3,
    .footer .footer__box--4,
    .footer  .footer__box--5 {
        padding-left: 30px;
    }
}


.footer .footer__box-title {
    margin: 0 0 4px 0;
    padding: 0;
    font-family: var(--font-sans-serif);
}

.footer .footer__box-title--1 {
    font-weight: 300;
    font-size: 15px;
    line-height: 1.5;
    color: var(--primary);
}

.footer .footer__box-title--2,
.footer .footer__box-title--2 a {
    font-weight: 400;
    font-size: 15px;
    line-height: 1.5;
    color: var(--secondary);
}

.footer .footer__box-title--2 a:hover,
.footer .footer__box-title--2 a:focus-visible {
    color: var(--primary)
}

.footer .footer__box-title--2 a:active {
    color: var(--primary)
}

.footer .footer__box-nav {
    margin: 0;
    padding: 0;
}

.footer .footer__box-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.footer .footer__box-list li {
    font-size: 15px;
    line-height: 1.5;
    font-weight: 300;
}

.footer .footer__box-list li[class*="icon-"] a:before {
    display: inline-block;
    vertical-align: middle;
    font-family: var(--font-fa-brands);
    font-weight: 400;
    font-style: normal;
    margin-right: 4px;
}

.footer .footer__box-list .icon-linkedin a:before {
    content: "\f0e1";
}

.footer .footer__box-list .icon-instagram  a:before{
    content: "\f16d";
}

/* === Filter === */
.filter {
	font-family: var(--font-sans-serif);
	font-weight: 400;
	letter-spacing: 1px;
	margin-top: 25px;
	margin-bottom: 15px;
}
@media (max-width: 767.98px) {
	.filter {
		margin-top: 25px;
	}
}
@media (max-width: 767.98px) {
	.filter {
		margin-bottom: 0;
	}
}
.filter .filter-rubrik .rubrik-item {
	float: left;
	display: inline-block;
	height: 50px;
	line-height: 50px;
}
.filter .filter-rubrik .rubrik-item.rubrik1 {
	width: 100%;
}
@media (max-width: 767.98px) {
	.filter .filter-rubrik .rubrik-item.rubrik1 {
		margin-bottom: 10px;
	}
}
.filter .filter-rubrik .rubrik-item.rubrik2 {
	width: 100%;
}
@media (max-width: 767.98px) {
	.filter .filter-rubrik .rubrik-item.rubrik2 {
		margin-bottom: 10px;
	}
}
.filter .filter-rubrik .rubrik-item.rubrik3 {
	width: 100%;
}
@media (max-width: 767.98px) {
	.filter .filter-rubrik .rubrik-item.rubrik3 {
		margin-bottom: 10px;
	}
}
.filter .filter-rubrik .rubrik-item.rubrik4 {
	width: 100%;
	margin-right: 0 !important;
}
.filter .filter-rubrik .rubrik-item.rubrik4 .fa {
	display: none;
}
.filter .filter-rubrik .rubrik-item.rubrik4 .item {
	padding: 0 16px !important;
	text-align: center;
	border-radius: 0;
}
@media (max-width: 767.98px) {
	.filter .filter-rubrik .rubrik-item.rubrik4 {
		margin-bottom: 10px;
	}
}
.filter .filter-rubrik .rubrik-item .item {
	display: block;
	background-color: var(--primary);
	color: #fff;
	padding: 0 44px 0 16px;
	position: relative;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	max-width: 100%;
	text-decoration: none;
	border-radius: 0;
}
.filter .filter-rubrik .rubrik-item .item.collapsed {
	background-color: #f7f7f7;
	color: var(--secondary);
	border-radius: 0;
}
.filter .filter-rubrik .rubrik-item .item.f-filter-inactive {
	opacity: 0;
}
.filter .filter-rubrik .rubrik-item .item .fa {
	position: absolute;
	right: 16px;
	top: 0;
	line-height: 50px;
}
.filter .filter-rubrik .rubrik-item.search {
	float: right;
	width: 38%;
	margin-right: 0;
	height: 50px;
	position: relative;
	background-color: #f7f7f7;
}
.filter .filter-rubrik .rubrik-item.search input {
	padding: 0 20px;
	border: 0;
	background: transparent;
	color: var(--secondary);
	float: left;
	letter-spacing: 1px;
	display: inline-block;
}
.filter .filter-rubrik .rubrik-item.search input.submit {
	padding: 0 30px;
	position: relative;
	z-index: 10;
}
.filter .filter-rubrik .rubrik-item.search span {
	padding: 0 20px;
	color: var(--secondary);
	position: absolute;
	right: 0;
}
.filter .filter-rubrik .rubrik-item.search input::-webkit-input-placeholder {
	color: var(--secondary) !important;
	opacity: 1;
}
.filter .filter-rubrik .rubrik-item.search input:-moz-placeholder {
	color: var(--secondary) !important;
	opacity: 1;
}
.filter .filter-rubrik .rubrik-item.search input::-moz-placeholder {
	color: var(--secondary) !important;
	opacity: 1;
}
.filter .filter-rubrik .rubrik-item.search input:-ms-input-placeholder {
	color: var(--secondary) !important;
	opacity: 1;
}

@media (max-width: 575.98px) {
    .filter-rubrik [class*="col"]:has(.collapsed) {
        order: -1;
    }
}

.filter .filter-content {
	clear: both;
	position: relative;
}
.filter .filter-content .item-content {
	border-top: 1px solid var(--tertiary);
	width: 100%;
}
.filter .filter-content .item-content .row {
	padding: 0;
}
.filter .filter-content .item-content .flex-row {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: stretch;
}
.filter .filter-content .item-content .flex-row div.flex-list {
	background-color: #fcfcfc;
	padding: 16px;
	height: 100%;
}
@media (max-width: 767.98px) {
	.filter .filter-content .item-content .flex-row div.flex-list {
		padding: 16px;
	}
}
.filter .filter-content .item-content .flex-row div.flex-list ul.list-unstyled {
	margin-top: 0;
	margin-bottom: 0;
}
.filter
.filter-content
.item-content
.flex-row
div.flex-list
ul.list-unstyled
li {
	padding-left: 20px;
	margin-bottom: 12px;
}
.filter .filter-content .item-content ul {
	margin-top: 0;
	margin-bottom: 50px;
}
.filter .filter-content .item-content ul li {
	margin-bottom: 12px;
}
.filter .filter-content .item-content ul li a:hover {
	color: var(--primary);
}
.filter .filter-content .item-content ul li.title a {
	font-family: var(--font-sans-serif);
	font-weight: 500;
}

@media (min-width: 768px) {
	.filter .filter-content .item-content.collapse.show {
		padding: 0 12px;
	}
	.filter .filter-content #collapse-section-bereiche .flex-row .flex-list {
		padding: 0;
		background-color: transparent;
	}
	.filter .filter-content #collapse-section-bereiche .flex-row .flex-list ul.list-unstyled {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 8px 24px;
		margin: 0;
	}
	.filter .filter-content #collapse-section-bereiche .flex-row .flex-list li {
		padding: 8px 12px;
		margin: 0;
		border-radius: 0;
		background-color: #f7f7f7;
	}
	.filter .filter-content #collapse-section-bereiche .flex-row .flex-list li a {
		display: block;
		padding: 0;
		transition: color 0.2s ease;
	}
	.filter .filter-content #collapse-section-bereiche .flex-row .flex-list li a:hover {
		color: var(--primary);
	}
	.filter .filter-content #collapse-section-stadt .row {
		padding: 0;
	}
	.filter .filter-content #collapse-section-stadt .row ul.list-unstyled {
		display: flex;
		flex-wrap: wrap;
		gap: 12px;
		margin: 0;
	}
	.filter .filter-content #collapse-section-stadt .row li {
		padding: 0;
		margin: 0;
	}
	.filter .filter-content #collapse-section-stadt .row li a {
		display: inline-block;
		padding: 8px 16px;
		border-radius: 0;
		background-color: #f7f7f7;
		transition: background-color 0.2s ease, color 0.2s ease;
	}
	.filter .filter-content #collapse-section-stadt .row li a:hover {
		background-color: var(--primary);
		color: #fff;
	}
}

.team-archive-filter {
	margin-top: 0;
	margin-bottom: 15px;
	font-family: var(--font-sans-serif);
}
.team-archive-filter__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-bottom: 0;
}
.team-archive-filter__divider-bar {
	height: 1px;
	background: rgba(0, 59, 111, 0.2);
	margin: 0;
	padding: 0;
	width: 100%;
}
.team-archive-filter__btn {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	height: 50px;
	padding: 0 16px;
	/* Oszi: lange Begriffe brachen den Button auf zwei Zeilen und schoben
	   "Suchauftrag loeschen" in die naechste Zeile. Jetzt einzeilig, und der
	   Button darf schrumpfen (min-width:0), bevor die Zeile umbricht. */
	max-width: 100%;
	min-width: 0;
	background-color: #f7f7f7;
	color: var(--secondary);
	border: 0;
	border-radius: 0;
	font-family: inherit;
	font-weight: 400;
	letter-spacing: 1px;
	cursor: pointer;
	text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.team-archive-filter__btn-text {
	display: block;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	text-align: left;
}

.team-archive-filter__btn .fa-chevron-down {
	flex: 0 0 auto;
}

@media (min-width: 992px) {
	/* Oszi: mit flex-wrap:wrap bricht die Zeile um, statt die Buttons zu
	   verkleinern. Auf Desktop deshalb nowrap - die Buttons schrumpfen dann
	   bis zur Ellipsis und "Suchauftrag loeschen" bleibt in derselben Zeile. */
	.team-archive-filter__bar {
		flex-wrap: nowrap;
	}
	.team-archive-filter__btn {
		max-width: 340px;
	}
	.team-archive-filter__reset {
		flex: 0 0 auto;
		min-width: auto;
	}
}

.team-archive-filter__btn:hover,
.team-archive-filter__btn[aria-expanded="true"] {
	background-color: var(--primary);
	color: #fff;
}
.team-archive-filter__btn .fa {
	transition: transform 0.2s ease;
}
.team-archive-filter__btn[aria-expanded="true"] .fa {
	transform: rotate(180deg);
}
.team-archive-filter__reset {
	margin-left: auto;
}
/* Team-Filter: Leerzustand (Oszi, team-filter-2-keine-treffer.jpg) */
.team-archive-empty {
	text-align: center;
	padding: 40px 0 70px;
}

.team-archive-empty p.team-archive-empty__city {
	margin: 0 0 26px;
	font-family: var(--font-serif);
	font-size: 24px;
	line-height: 1.2;
	letter-spacing: 1px;
	color: var(--primary);
}

@media (min-width: 768px) {
	.team-archive-empty p.team-archive-empty__city {
		font-size: 28px;
	}
}

.team-archive-empty p.team-archive-empty__title {
	margin: 0 0 14px;
	font-family: var(--font-serif);
	font-size: 21px;
	line-height: 1.4;
	letter-spacing: 0.5px;
	color: var(--primary);
}

.team-archive-empty p.team-archive-empty__hint {
	margin: 0;
	font-size: 15px;
	line-height: 1.5;
	color: var(--midtone);
}

.team-archive-filter__panel {
	position: relative;
	width: 100%;
	margin: 0;
	background: #fff;
	max-height: 0;
	overflow: hidden;
	opacity: 0;
	padding-top: 0;
	padding-bottom: 0;
	transition: max-height 0.35s ease-out, opacity 0.25s ease, padding 0.35s ease;
}
.team-archive-filter__panel:not(.team-archive-filter__panel--closed) {
	max-height: 500px;
	opacity: 1;
	padding: 16px 0;
}
.team-archive-filter__search {
	display: block;
	width: 100%;
	max-width: 250px;
	height: 44px;
	padding: 0 12px;
	margin-bottom: 12px;
	border: 1px solid #ddd;
	font-family: inherit;
	font-size: 1rem;
	box-sizing: border-box;
}
.team-archive-filter__search:focus {
	outline: none;
	border-color: var(--primary, #333);
}
@media (max-width: 768px) {
	.team-archive-filter__search {
		max-width: 100%;
	}
}
.team-archive-filter__options {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
}
.team-archive-filter__options--areas {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px 24px;
	margin-bottom: 0;
	max-height: 280px;
	overflow-y: auto;
}
.team-archive-filter__options--areas .team-archive-filter__col {
	display: flex;
	flex-direction: column;
	gap: 12px;
	background-color: #f7f7f7;
	padding: 8px 12px;
	border-radius: 0;
}
.team-archive-filter__link {
	color: var(--secondary);
	text-decoration: none;
	transition: color 0.2s ease;
	display: block;
	padding: 4px 0;
}
.team-archive-filter__link:hover {
	color: var(--primary);
}
.team-archive-filter__options--cities {
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	align-items: flex-start;
	gap: 8px;
}
.team-archive-filter__options--cities .team-archive-filter__link {
	padding: 6px 0;
}
.team-archive-loading {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 120px;
	padding: 24px;
}
.team-archive-loading__spinner {
	display: inline-block;
	width: 40px;
	height: 40px;
	border: 3px solid #e5e5e5;
	border-top-color: var(--primary);
	border-radius: 50%;
	animation: teamArchiveSpin 0.8s linear infinite;
}
@keyframes teamArchiveSpin {
	to { transform: rotate(360deg); }
}
@media (max-width: 991.98px) {
	.team-archive-filter__bar {
		flex-direction: column;
		align-items: stretch;
	}
	.team-archive-filter__btn {
		width: 100%;
		max-width: none;
		text-align: left;
	}
	.team-archive-filter__options--areas {
		grid-template-columns: 1fr;
	}
	.team-archive-filter__reset {
		margin-left: 0;
		width: 100%;
		justify-content: center;
	}
}

.filter-bereiche .member {
    margin-top: 24px;
}
.filter-bereiche .member a {
    display: block;
    position: relative;
}
.filter-bereiche .filter-rubrik:first-child .box {
	margin-top: 0;
}
.filter-bereiche .filter-rubrik .box a.item {
	color: #fff;
	background: var(--primary);
	border-bottom: 3px solid var(--primary);
}
.filter-bereiche .filter-rubrik .box a,
.filter-bereiche .filter-rubrik .box a:hover,
.filter-bereiche .filter-rubrik .box a:active {
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-decoration: none;
    padding: 12px;
}
.filter-bereiche .filter-rubrik .box a .outer {
    font-weight: 400;
    text-align: center;
    width: 100%;
    margin-top: auto;
    margin-bottom: auto;
}
.filter-bereiche .filter-rubrik .box a .tile-chevron {
    display: block;
    margin-top: 8px;
    margin-bottom: 6px;
    font-size: 1em;
    line-height: 1;
    color: inherit;
    transition: transform 0.3s ease;
}
.filter-bereiche .filter-rubrik .box a .tile-chevron i {
    font-family: var(--font-fa);
    font-weight: 900;
    transition: transform 0.3s ease;
    transform: rotate(0deg);
}
.filter-bereiche .filter-rubrik .box a.item:not(.collapsed) .tile-chevron {
    transform: rotate(0deg);
}
.filter-bereiche .filter-rubrik .box a.item:not(.collapsed) .tile-chevron i {
    transform: rotate(180deg);
    animation: none;
}
.filter-bereiche .filter-rubrik .box a.item:after {
    display: block;
    width: 40px;
    height: 40px;
    content: "\f107";
    position: relative;
    margin-left: auto;
    margin-right: auto;
    margin-top: 10px;
    margin-bottom: 0;
    font-family: var(--font-fa);
    font-weight: 600;
    font-size: 20px;
    line-height: 40px;
    text-align: center;
    transition: transform 0.3s ease;
    transform-origin: 50% 50%;
}
.filter-bereiche .filter-rubrik .box a.item:not(.collapsed):after {
    transform: rotate(180deg);
}
.filter-bereiche .filter-rubrik .box a.item:after {
    display: none;
    content: none;
}
.filter-bereiche .filter-rubrik .box a.item.collapsed {
	color: var(--secondary);
	background: #f7f7f7;
	border-bottom: 3px solid #ccc399;
}
.filter-bereiche .filter-content .item-content {
	padding-bottom: 35px;
}
#cross-border-accordion .member .headline .title.head3 {
	font-size: 0.875em;
}
.filter-bereiche .filter-content ul.list-unstyled {
	margin-top: 0;
	margin-bottom: 0;
	font-family: var(--font-sans-serif);
	font-weight: 400;
}
.filter-bereiche .filter-content ul.list-unstyled li {
	padding-left: 20px;
    padding-right: 20px;
	margin-bottom: 12px;
}
.filter-bereiche .filter-content ul.list-unstyled li a:hover {
	color: var(--primary);
}
.filter-bereiche .filter-content ul.list-unstyled li a.item {
	color: var(--primary);
	-moz-hyphens: auto;
	-o-hyphens: auto;
	-webkit-hyphens: auto;
	-ms-hyphens: auto;
	hyphens: auto;
}
.filter-bereiche .filter-content ul.list-unstyled li a.item.collapsed {
	color: var(--secondary);
	display: block;
}
.filter-bereiche .filter-content ul.list-unstyled li a.item.collapsed:hover {
	color: var(--primary);
}
.filter-bereiche .filter-content ul.list-unstyled li.title a {
	font-family: var(--font-sans-serif);
	font-weight: 500;
}
.filter-bereiche .filter-content .flex-row {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: stretch;
}
.filter-bereiche .filter-content .flex-row div:first-child div.flex-list {
	padding-top: 10px;
}
.filter-bereiche .filter-content .flex-row div.flex-list {
	background-color: #fcfcfc;
	padding: 10px 0;
	height: 100%;
}
@media (max-width: 767.98px) {
	.filter-bereiche .filter-content .flex-row div.flex-list {
		padding: 0 0;
	}
}
.filter-bereiche .filter-content .info-bereiche {
	padding: 20px 30px 20px;
	margin-bottom: 20px;
	position: relative;
	background-color: #f0f1f5;
}
.filter-bereiche .filter-content .info-bereiche b,
.filter-bereiche .filter-content .info-bereiche strong {
	font-family: var(--font-sans-serif);
	font-weight: 400;
	color: var(--primary);
	letter-spacing: 1px;
}
.filter-bereiche .filter-content .info-bereiche .section-preview {
	color: inherit;
}
.filter-bereiche .filter-content .info-bereiche .section-preview p {
	display: block;
	margin: 0 0 16px;
	font-weight: inherit;
	font-size: inherit;
	line-height: inherit;
	color: var(--midtone) !important;
	letter-spacing: inherit;
}
.filter-bereiche .filter-content .info-bereiche .section-preview strong {
	color: var(--primary) !important;
    letter-spacing: 1px !important;
	font-weight: 400 !important;
	font-size: inherit !important;
}
.filter-bereiche .filter-content .info-bereiche .more {
	width: 48px;
	height: 48px;
	position: absolute;
	right: 0;
	top: 0;
	overflow: hidden;
}
.filter-bereiche .filter-content .info-bereiche .f-collapse-section-more.show ~ .more,
.filter-bereiche .filter-content .info-bereiche:has(.f-collapse-section-more.show) .more {
	height: 48px;
}
.filter-bereiche .filter-content .info-bereiche .more a {
	z-index: 10;
	position: absolute;
	top: 0;
	right: 0;
	width: 48px;
	height: 48px;
	display: flex;
	align-items: flex-start;
	justify-content: flex-end;
	padding: 4px;
	background: #fff;
	color: var(--secondary);
	text-decoration: none;
	line-height: 1em;
	clip-path: polygon(100% 0, 0 0, 100% 100%);
}

.filter-bereiche .filter-content .info-bereiche .more a .hide-section {
	display: none;
}
.filter-bereiche .filter-content .info-bereiche .more a .show-section {
	display: block;
}
.filter-bereiche .filter-content .info-bereiche .more a .show-section .fa,
.filter-bereiche .filter-content .info-bereiche .more a .show-section .fa-solid,
.filter-bereiche .filter-content .info-bereiche .more a .show-section i,
.filter-bereiche .filter-content .info-bereiche .more a .show-section svg {
	font-size: 18px;
	transition: transform 0.35s cubic-bezier(0.25, 0.8, 0.25, 1);
	will-change: transform;
	transform: rotate(0deg);
}
.filter-bereiche .filter-content .info-bereiche .more a .show-section .fa.rotated,
.filter-bereiche .filter-content .info-bereiche .more a .show-section .fa-solid.rotated,
.filter-bereiche .filter-content .info-bereiche .more a .show-section i.rotated,
.filter-bereiche .filter-content .info-bereiche .more a .show-section svg.rotated,
.filter-bereiche .filter-content .info-bereiche.is-open .more a .show-section .fa,
.filter-bereiche .filter-content .info-bereiche.is-open .more a .show-section .fa-solid,
.filter-bereiche .filter-content .info-bereiche.is-open .more a .show-section i,
.filter-bereiche .filter-content .info-bereiche.is-open .more a .show-section svg,
.filter-bereiche .filter-content .info-bereiche .more a:not(.collapsed) .show-section .fa,
.filter-bereiche .filter-content .info-bereiche .more a:not(.collapsed) .show-section .fa-solid,
.filter-bereiche .filter-content .info-bereiche .more a:not(.collapsed) .show-section i,
.filter-bereiche .filter-content .info-bereiche .more a:not(.collapsed) .show-section svg,
.filter-bereiche .filter-content .info-bereiche .more a[aria-expanded="true"] .show-section .fa,
.filter-bereiche .filter-content .info-bereiche .more a[aria-expanded="true"] .show-section .fa-solid,
.filter-bereiche .filter-content .info-bereiche .more a[aria-expanded="true"] .show-section i,
.filter-bereiche .filter-content .info-bereiche .more a[aria-expanded="true"] .show-section svg {
	transform: rotate(180deg);
	animation: none;
}
.filter-bereiche .filter-content .info-bereiche .more a[aria-expanded="false"] .show-section .fa,
.filter-bereiche .filter-content .info-bereiche .more a[aria-expanded="false"] .show-section .fa-solid,
.filter-bereiche .filter-content .info-bereiche .more a[aria-expanded="false"] .show-section i,
.filter-bereiche .filter-content .info-bereiche .more a[aria-expanded="false"] .show-section svg {
	transform: rotate(0deg);
	animation: heartbeat 1.2s ease-out infinite;
}
@keyframes heartbeat {
	0%, 100% { transform: scale(1); }
	18% { transform: scale(1.28); }
	45% { transform: scale(1); }
}
.filter-bereiche
.filter-content
.info-bereiche
.more
a.collapsed
.hide-section {
	display: none;
}
.filter-bereiche
.filter-content
.info-bereiche
.more
a.collapsed
.show-section {
	display: block;
}
.filter-bereiche
.filter-content
.info-bereiche
.f-collapse-section-more a {
    color: var(--secondary);
    text-decoration: none;
    transition: color 0.25s ease;
}
.filter-bereiche .filter-content .info-bereiche .more a .show-section-text,
.filter-bereiche .filter-content .info-bereiche .more a .hide-section-text {
    text-decoration: none;
}
.filter-bereiche
.filter-content
.info-bereiche
.f-collapse-section-more a:focus-visible,
.filter-bereiche
.filter-content
.info-bereiche
.f-collapse-section-more a:active {
    color: var(--primary);
    text-decoration: none;
}

.filter-bereiche
.filter-content
.info-bereiche
.f-collapse-section-more.caption
p:nth-of-type(1) {
	margin-bottom: 0;
}
.filter-bereiche
.filter-content
.info-bereiche
.f-collapse-section-more.caption
p:nth-of-type(1),
.filter-bereiche
.filter-content
.info-bereiche
.f-collapse-section-more.caption
p:nth-of-type(2) {
	display: contents;
}
.filter-bereiche
.filter-content
.info-bereiche
.f-collapse-section-more.caption
p:nth-of-type(3) {
	margin-top: 12px;
}
.filter-bereiche .filter-content .info-bereiche .caption.collapse {
	display: block;
	min-height: 35px;
}
.filter-bereiche .filter-content .info-bereiche .caption.collapsing {
	min-height: 35px;
}
.filter-bereiche .filter-content .info-bereiche .caption.collapse.show {
	min-height: auto;
}
.filter-bereiche
.filter-content
.info-bereiche
.caption.collapse
.section-preview {
	height: auto;
	display: block;
}
.filter-bereiche
.filter-content
.info-bereiche
.caption.collapse.show
.section-preview {
	display: none;
	height: auto;
}
.filter-bereiche
.filter-content
.info-bereiche
.caption.collapse
.section-more {
	height: 0;
	display: none;
}
.filter-bereiche
.filter-content
.info-bereiche
.caption.collapse.show
.section-more {
	height: auto;
	display: block;
}
.filter-bereiche
.filter-content
.info-bereiche
.caption.collapsing
.section-preview {
	position: relative;
	height: 0;
	overflow: hidden;
	-webkit-transition-property: height, visibility;
	transition-property: height, visibility;
	-webkit-transition-duration: 0.5s;
	transition-duration: 0.5s;
	-webkit-transition-timing-function: ease;
	transition-timing-function: ease;
}

.filter-content .flex-list a {
	color: var(--secondary);
	text-decoration: none;
}

.f-shuffle-persons {
	--bs-gutter-x: 1.25rem !important;
}

/* === SECTIONS === */

/* --- Hero slider --- */


.hero-slider {
    background-color: var(--default);
    position: relative;
    margin-bottom: 1.5rem; /* Oszi */
}

.hero-slider .hero-slider__list {
    transition: opacity 0.5s ease;
}

.hero-slider .hero-slider__list:not(.slick-initialized) {
    display: flex;
    opacity: 0;
}

.hero-slider > *:before {
    display: block;
    content: '';
    position: absolute;
    z-index: 1;
    bottom: 72px;
    left: 0;
    right: 0;
    height: 66px;
    background-color: var(--secondary-highlight);
    clip-path: polygon(25% 58.5%, 0 0, 0 100%);
}

.hero-slider > *:after {
    display: block;
    content: '';
    position: absolute;
    z-index: 0;
    bottom: -1px;
    left: 0;
    right: 0;
    height: 132px;
    background-color: var(--white);
    clip-path: polygon(107% 100%, 0px 0, 0px 100%)
}

@media (max-width: 1199.98px) {
    .hero-slider > *:before {
        bottom: -1px;
        height: 66px;
        clip-path: polygon(50% 44%, 0 0, 0 100%);
    }

    .hero-slider > *:after {
        bottom: -1px;
        height: 66px;
        clip-path: polygon(116% 100%, 0 0, 0 100%);
    }
}

.hero-slider .slick-arrow {
    margin: 0;
    padding: 0;
    border: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
    overflow: clip;
    background: rgba(43, 91, 133, 0.5);
    width: 45px;
    height: 60px;
    font-size: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    color: var(--white);
    transition: background-color 0.25s ease, color 0.25s ease;
}

.hero-slider .slick-arrow:hover,
.hero-slider .slick-arrow:focus-visible {
    background: var(--primary);
    color: var(--white);
}

.hero-slider .slick-arrow:active {
    background: var(--primary);
    color: var(--secondary);
}

.hero-slider .slick-prev {
    left: 0;
}

.hero-slider .slick-next {
    right: 0;
}

.hero-slider .slick-arrow:after {
    display: block;
    font-family: var(--font-fa);
    font-size: 14px;
    color: inherit;
    position: absolute;
    inset: 0;
    font-weight: 900;
    line-height: 60px;
}

.hero-slider .slick-prev:after {
    content: "\f053";
}

.hero-slider .slick-next:after {
    content: "\f054";
}

.hero-slider .hero-slider__item--has-gradient .hero-slider__item-body:after {
    display: block;
    content: "";
    pointer-events: none;
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, #003b6f 0%, #003b6f00 100%);
}

.hero-slider .hero-slider__item-body {
    position: relative;
    z-index: 1;
    display: grid;
}

/* Oszi: Hero-Hoehe fest statt aus dem Seitenverhaeltnis des Bildes.
   Bild und Inhalt liegen in derselben Grid-Zelle; solange die Zelle keine
   definite Hoehe hatte, gewann die intrinsische Bildhoehe gegen
   min-height des Contents (2560x1327 bei 1291px Slide = 665px statt 520px).
   Referenz: Startseite lclaw.ch. object-fit: cover ist am Bild schon gesetzt,
   damit ist die Hoehe jetzt unabhaengig vom hochgeladenen Bild. */
.hero-slider:not(.hero-slider--static-height) .hero-slider__item-body {
    height: 420px;
}

.hero-slider--static-height .hero-slider__item-body {
    height: 240px;
}

@media (min-width: 992px) {
    .hero-slider:not(.hero-slider--static-height) .hero-slider__item-body,
    .hero-slider .hero-slider__item:not(.x) .hero-slider__item-body {
        height: 520px;
    }

    body.single-team .hero-slider:not(.hero-slider--static-height) .hero-slider__item-body {
        height: 800px;
    }

    .hero-slider--static-height .hero-slider__item-body {
        height: 360px;
    }
}

.hero-slider .hero-slider__item-body > * {
    grid-area: 1 / -1;
}

/* Oszi: Das Bild ragte mit `calc(100% + 66/132px)` unter die Contentbox hinaus,
   das Video (Regel weiter unten) fuellt dagegen exakt die Box. Dadurch war der
   sichtbare Hero bei Bildern 132px hoeher als bei einem Video - genau der
   Unterschied zur Referenz, der Startseite von lclaw.ch. Das Bild wird jetzt
   wie das Video behandelt: absolut, deckungsgleich mit der Contentbox. */
.hero-slider__item-img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: var(--hero-obj-pos-mobile, var(--hero-obj-pos-desktop, 50% 50%));
}

@media (min-width: 992px) {
    .hero-slider__item-img {
        object-position: var(--hero-obj-pos-desktop, var(--hero-obj-pos-mobile, 50% 50%));
    }
}

@media (min-width: 1920px) {
    .hero-slider__item-img {
        object-position: var(--hero-obj-pos-hd, var(--hero-obj-pos-desktop, var(--hero-obj-pos-mobile, 50% 50%)));
    }
}

.hero-slider:not(.hero-slider--static-height) .hero-slider__item-content {
    position: relative;
    z-index: 1;
    padding-top: 20px;
    padding-bottom: 66px;
    padding-left: 50px;
    padding-right: 50px;
    display: flex;
    align-items: center;
    min-height: 420px;
}

@media (min-width: 992px) {
    .hero-slider:not(.hero-slider--static-height) .hero-slider__item-content {
        min-height: 520px;
        padding-bottom: 100px;
    }

    body.single-team .hero-slider:not(.hero-slider--static-height) .hero-slider__item-content {
        min-height: 800px;
    }
}

@media (min-width: 1200px) {
    .hero-slider .hero-slider__item-content {
        padding-top: 40px;
        padding-left: 0;
        padding-right: 0;
    }
}

.hero-slider--static-height .hero-slider__item-content {
    height: 240px;
}

@media (min-width: 992px) {
    .hero-slider--static-height .hero-slider__item-content {
        height: 360px;
    }
}

.hero-slider .hero-slider__item-content * {
    color: var(--white);
}

.hero-slider .container-fluid > * {
    max-width: 470px;
}

@media (min-width: 1200px) {
    .hero-slider .col {
        margin-top: -60px;
    }
}

.hero-slider .hero-slider__item-btn {
    text-decoration: none;
    color: var(--white);
}

.hero-slider__item-title {
    margin: 0 0 8px 0;
    padding: 0;
    font-family: var(--font-sans-serif);
    font-size: 17px;
    line-height: 1.58823529412;
    font-weight: 500;
    text-transform: uppercase;
    word-break: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
}

@media (min-width: 768px) {
    .hero-slider__item-title {
        margin-bottom: 16px;
        font-size: 20px;
    }
}

.hero-slider .hero-slider__item-title::after {
    display: none;
}

.hero-slider__item-title a,
.hero-slider__item-title a:hover,
.hero-slider__item-title a:focus,
.hero-slider__item-title a:active,
.hero-slider__item-title-link {
    text-decoration: none;
    color: var(--white);
    cursor: pointer;
}

.hero-slider__item-desc {
    position: relative;
    font-size: 17px;
    line-height: 1.58823529412;
    font-weight: 300;
    word-break: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
}

.hero-slider__item-desc-overlay-link {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    cursor: pointer;
}

.hero-slider__item-desc-overlay-link,
.hero-slider__item-desc-overlay-link:hover,
.hero-slider__item-desc-overlay-link:focus,
.hero-slider__item-desc-overlay-link:active {
    text-decoration: none;
    color: var(--white);
}

/* --- Single hero --- */
.hero-single {
    position: relative;
    background-color: var(--default);
    margin-bottom: 1.5rem;
}

.hero-single__wrapper {
    position: relative;
}

.hero-single__item {
    position: relative;
    min-height: 420px;
}

.hero-single__item:before {
    display: block;
    content: '';
    position: absolute;
    z-index: 1;
    bottom: 72px;
    left: 0;
    right: 0;
    height: 66px;
    background-color: var(--secondary-highlight);
    clip-path: polygon(25% 58.5%, 0 0, 0 100%);
}

.hero-single__item:after {
    display: block;
    content: '';
    position: absolute;
    z-index: 0;
    bottom: -1px;
    left: 0;
    right: 0;
    height: 132px;
    background-color: var(--white);
    clip-path: polygon(107% 100%, 0px 0, 0px 100%);
}

@media (max-width: 1199.98px) {
    .hero-single__item:before {
        bottom: 0;
        height: 66px;
        clip-path: polygon(50% 44%, 0 0, 0 100%);
    }

    .hero-single__item:after {
        bottom: -1px;
        height: 66px;
        clip-path: polygon(116% 100%, 0 0, 0 100%);
    }
}

.hero-single__item--has-gradient .hero-single__item-body:after {
    display: block;
    content: "";
    pointer-events: none;
    position: absolute;
    inset: 0;
    background: linear-gradient(to right, #003b6f 0%, #003b6f00 100%);
}

.hero-single__item-body {
    position: relative;
    z-index: 1;
    display: grid;
    height: 100%;
    overflow: hidden;
}

.hero-single__item-body > * {
    grid-area: 1 / -1;
}

.hero-single__item-img {
    display: block;
    width: 100%;
    height: calc(100% + 66px);
    margin-bottom: -100%;
    object-fit: cover;
    object-position: 50% 50%;
}

@media (min-width: 1200px) {
    .hero-single__item-img {
        height: calc(100% + 132px);
    }
}

.hero-single__item-content {
    position: relative;
    z-index: 1;
    padding-top: 40px;
    padding-bottom: 100px;
    padding-left: 50px;
    padding-right: 50px;
    display: flex;
    align-items: center;
    min-height: 420px;
}

@media (min-width: 1200px) {
    .hero-single__item-content {
        padding-top: 60px;
        padding-left: 0;
        padding-right: 0;
    }
}

@media (min-width: 992px) {
    .hero-single__item-content {
        min-height: 520px;
        padding-bottom: 130px;
    }
}

.hero-single__item-content * {
    color: var(--white);
}

.hero-single .container-fluid > * {
    max-width: 470px;
}

@media (min-width: 1200px) {
    .hero-single .col {
        margin-top: -60px;
    }
}

.hero-single__item-title {
    margin: 0 0 8px 0;
    padding: 0;
    font-family: var(--font-sans-serif);
    font-size: 20px;
    line-height: 1.3;
    font-weight: 500;
    text-transform: uppercase;
    word-break: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
}

@media (min-width: 768px) {
    .hero-single__item-title {
        margin-bottom: 16px;
        font-size: 28px;
    }
}

.hero-slider__item-desc p {
    margin: 0;
    padding: 0;
}

.hero-slider .hero-slider__item-btn-box {
    margin-top: 16px;
    font-size: 17px;
    font-weight: 300;
    letter-spacing: 1px;
}

.hero-slider .hero-slider__item-btn:hover,
.hero-slider .hero-slider__item-btn:focus-visible {
    text-decoration: none;
    color: var(--white);
}

.hero-slider .hero-slider__item-btn:active {
    text-decoration: none;
    color: var(--white);
}

.hero-slider .hero-slider__item-btn i {
    font-size: 12px;
}

/* Hero slider overrides */
@media (min-width: 1200px) {
    .hero-slider > *:before {
        clip-path: polygon(25% 28%, 0 0, 0 100%);
        bottom: 8px;
    }

    .hero-slider > *:after {
        height: 74px;
    }

    .hero-slider .col {
        margin-top: -40px;
    }
}


/* --- Section > Our Company --- */

.our-company {
    padding: 0;
	background-color: var(--white);
}


.our-company .our-company__content {
	font-size: 17px;
	font-weight: 300;
	text-align: center;
}

.our-company .our-company__info-boxes {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
    padding: 80px 0;
	gap: 16px;
	max-width: 560px;
	margin-left: auto;
	margin-right: auto;
}

@media (min-width: 360px) and (max-width: 991.98px) {
	.our-company .our-company__info-boxes {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 992px) {
	.our-company .our-company__info-boxes {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		max-width: none;
	}
}

.our-company .our-company__info-box {
	text-align: center;
}

.our-company .our-company__info-boxes a {
    text-decoration: none !important; /* Oszi */
    transition: color 0.5s all;
}
@media (max-width: 767.98px) {
    .our-company .our-company__info-boxes a .our-company__info-box-desc {
        text-decoration: underline !important; /* Oszi */
    }
}


.our-company .our-company__info-boxes a:hover .our-company__info-box-title {  color: var(--secondary); /* Oszi */ transition: color 0.5s all; }
.our-company .our-company__info-boxes a:hover .our-company__info-box-title-icon-box i { color:  var(--secondary); /* Oszi */ transition: color 0.5s all; }
.our-company .our-company__info-boxes a:hover .our-company__info-box-desc { /* color: var(--primary);  Oszi */ transition: color 0.5s all; }

.our-company .our-company__info-box-title {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 16px;
	font-size: 48px;
	font-family: var(--font-serif);
	color: var(--primary);
    transition: color 0.5s all;
}

@media (min-width: 768px) {
	.our-company .our-company__info-box-title {
		font-size: 56px;
	}
}

.our-company .our-company__info-box-title-icon-box > i {
	display: block;
	font-size: 26px;
}

.our-company .our-company__info-box-desc {
	font-family: var(--font-serif);
	color: var(--secondary);
	font-size: 16px;
	letter-spacing: 1px;
    text-decoration: none;
}

@media (min-width: 768px) {
	.our-company .our-company__info-box-desc {
		font-size: 24px;
	}
}

.our-company .locations__nav {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
}

@media (min-width: 576px) {
    .our-company .locations__nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .our-company .locations__nav {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        grid-template-areas: 'a b c' '. d .';
        gap: 30px;
    }

    .our-company .locations__nav-item:nth-child(1) {
        grid-area: a;
    }

    .our-company .locations__nav-item:nth-child(2) {
        grid-area: b;
    }

    .our-company .locations__nav-item:nth-child(3) {
        grid-area: c;
    }

    .our-company .locations__nav-item:nth-child(4) {
        grid-area: d;
    }
}

/* --- Locations --- */
.locations__nav-title {
    margin-bottom: 30px;
    font-size: 22px;
    line-height: 1.2;
    letter-spacing: 1px;
    text-align: center;
}

@media (min-width: 768px) {
    .locations__nav-title {
        font-size: 28px;
    }
}

.locations__nav-link {
    display: block;
    text-align: center;
}

.locations__nav-link-icon {
    display: inline-block;
    vertical-align: middle;
    width: 28px;
    height: auto;
    margin-top: -2px;
}


/* --- Section > News --- */
.news {
    padding-top: 36px;
    padding-bottom: 36px;
}

.news__title {
    margin-bottom: 50px;
    font-size: 22px;
    line-height: 1.2;
    letter-spacing: 1px;
    text-align: center;
}

@media (min-width: 768px) {
    .news__title{
        font-size: 28px;
    }
}

.news-slider {
    margin-left: 48px;
    margin-right: 48px;
}

@media (min-width: 1080px) {
    .news-slider {
        margin-left: 64px;
        margin-right: 64px;
    }
}

.news-slider .slick-arrow {
    margin: 0;
    padding: 0;
    border: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
    overflow: clip;
    background: transparent;
    width: 45px;
    height: 60px;
    font-size: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    color: var(--primary);
    transition: background-color 0.25s ease, color 0.25s ease;
}

.news-slider .slick-arrow:hover,
.news-slider .slick-arrow:focus-visible {
    background: var(--secondary);
    color: var(--white);
}

.news-slider .slick-arrow:active {
    background: var(--secondary);
    color: var(--white);
}

.news-slider .slick-disabled,
.news-slider .slick-disabled:hover,
.news-slider .slick-disabled:focus-visible,
.news-slider .slick-disabled:active {
    background-color: transparent;
    color: var(--light);
    cursor: initial;
}

.news-slider .slick-prev {
    left: -48px;
}

.news-slider .slick-next {
    right: -48px;
}

@media (min-width: 1340px) {


    .news-and-publications__news-cards .news-slider {
        margin-left: 90px;
        margin-right: 90px;
    }
}

.news-slider .slick-arrow:after {
    display: block;
    font-family: var(--font-fa);
    font-size: 22px;
    color: inherit;
    position: absolute;
    inset: 0;
    font-weight: 900;
    line-height: 60px;
}

.news-slider .slick-prev:after {
    content: "\f053";
}

.news-slider .slick-next:after {
    content: "\f054";
}

.news-slider .slick-slider {
    margin-left: -8px;
    margin-right: -8px;
}

@media (min-width: 1080px) {
    .news-slider .slick-slider {
        margin-left: -16px;
        margin-right: -16px;
    }
}

.news-slider .slick-slide {
    margin-left: 8px;
    margin-right: 8px;
}

@media (min-width: 1340px) {
    .news-slider .slick-slider {
        margin-left: -16px;
        margin-right: -16px;
    }

    .news-slider .slick-slide {
        margin-left: 16px;
        margin-right: 16px;
    }
}

.news__nav {
    margin-top: 30px;
    text-align: right;
}

.news__nav-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: var(--primary);
    transition: color 0.25s ease;
}

.news__nav-link:hover,
.news__nav-link:focus-visible {
    text-decoration: none;
    color: var(--secondary);
}

.news__nav-link:active {
    text-decoration: none;
    color: var(--secondary);
}

.news__nav-link-icon {
    font-size: 12px;
    color: inherit;
}

/* --- Component > News Card --- */

.news-card {
    display: flex !important;
    flex-direction: column;
    background-color: var(--default);
}

.news-card__header {
    position: relative;
    padding-top: 32px;
    padding-left: 30px;
    padding-right: 30px;
    padding-bottom: 8px;
}

@media (min-width: 992px) {
    .news-card__header {
        padding-left: 40px;
        padding-right: 40px;
    }
}

.news-card__header:after {
    display: block;
    position: absolute;
    content: '';
    bottom: 0;
    left: 0;
    width: 75%;height: 4px;
    background-color: var(--secondary);
}

.news-card__title {
    margin: 0;
    padding: 0;
    font-size: 22px;
    line-height: 1.25;
    color: var(--primary);
}

.news-card__title:before {
    display: none;
}

.news-card__body {
    padding: 30px;
    font-size: 17px;
    line-height: 1.58823529412;
    word-break: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
    letter-spacing: 1px;
}

@media (min-width: 992px) {
    .news-card__body {
        padding-left: 40px;
        padding-right: 40px;
    }
}

.news-card__footer {
    margin-top: auto;
    padding: 0 30px 30px 30px;
}

@media (min-width: 992px) {
    .news-card__footer {
        padding-left: 40px;
        padding-right: 40px;
    }
}

.news-card__footer-links {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 16px;
}

.news-card__footer-link {
    display: flex;
    gap: 8px;
    font-weight: 400;
    text-decoration: none;
    color: var(--secondary);
    transition: color 0.25s ease;
}

.news-card__footer-link:hover,
.news-card__footer-link:focus-visible {
    text-decoration: none;
    color: var(--primary);
}

.news-card__footer-link:active {
    text-decoration: none;
    color: var(--primary);
}

.news-card__footer-link-img {
    display: block;
    width: 22px;
    height: 22px;
    object-fit: cover;
    object-position: 50% 50%;
}

.news-card__footer-link-more {
    font-weight: 400;
    text-decoration: none;
    color: var(--secondary);
    transition: color 0.25s ease;
}

.news-card__footer-link-more:hover,
.news-card__footer-link-more:focus-visible {
    text-decoration: none;
    color: var(--primary);
}

.news-card__footer-link-more:active {
    text-decoration: none;
    color: var(--primary);
}

.news-card__footer-link-more-icon {
    font-size: 12px;
    color: inherit;
}

/* --- Component > LinkedIn leave modal --- */
.linkedin-leave-modal .linkedin-leave-modal__content {
    background-color: var(--default);
    border: 0;
    border-radius: 0;
}

.linkedin-leave-modal__header {
    padding: 24px 30px 16px;
    border-bottom: 1px solid var(--tertiary);
}

.linkedin-leave-modal__title {
    margin: 0;
    font-size: 22px;
    line-height: 1.25;
    color: var(--primary);
    letter-spacing: 1px;
}

.linkedin-leave-modal__close {
    padding: 8px 12px;
    margin: -8px -12px -8px auto;
}

.linkedin-leave-modal__close .fa-times {
    font-size: 18px;
}

.linkedin-leave-modal__body {
    padding: 24px 30px;
    font-size: 17px;
    line-height: 1.58823529412;
    letter-spacing: 1px;
    color: var(--primary);
}

.linkedin-leave-modal__footer {
    padding: 16px 30px 24px;
    border-top: 1px solid var(--tertiary);
    gap: 12px;
}

/* --- Component > Pagination --- */
.pagination {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 30px 0;
}

@media (min-width: 768px) {
    .pagination {
        grid-column: span 2;
    }
}

.pagination a,
.pagination span.page-numbers {
    display: inline-block;
    padding: 0.25rem 0.75rem;
    text-decoration: none;
    transition: all 0.2s ease;
    font-size: 15px;
}


.pagination a {
    color: var(--secondary);
    background-color: var(--white);
}

.pagination span.page-numbers:not(.dots) {
    background-color: var(--primary);
    color: var(--white);
}

.pagination a:hover,
.pagination a:focus-visible,
.pagination a:active {
    background-color: var(--secondary);
    color: var(--white);
}

.pagination .current {
    background-color: var(--secondary);
    color: var(--white);
    font-weight: bold;
}

.pagination .dots {
    padding: 0.5rem 0.8rem;
    color: var(--midtone);
    border: none;
    background: none;
}

.pagination .prev,
.pagination .next {
    font-weight: bold;
    background-color: var(--white);
    color: var(--secondary);
}

.pagination .prev:hover,
.pagination .next:hover,
.pagination .prev:focus-visible,
.pagination .next:focus-visible,
.pagination .prev:active,
.pagination .next:active {
    background-color: var(--secondary);
    color: var(--white);
}


/* --- Component > Arrow button box --- */

.arrow__btn-box .btn:before,
.arrow__btn-box .btn:after {
    display: block;
    position: absolute;
    content: '';
    width: 140px;
    height: 76px;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: contain;
}

.arrow__btn-box .btn:before {
    top: -32px;
    left: 0;
    transform: translateX(-100%);
    background-image: url(../img/curve-arrow-left-up.svg);
}

.arrow__btn-box .btn:after {
    top: 2px;
    right: 0;
    transform: translateX(100%);
    background-image: url(../img/curve-arrow-right-down.svg);
}

@media (max-width: 768px) {
    .arrow__btn-box .btn:before {
        top: -40px;
        left: 50%;
        transform: translateX(-50%) translateY(-100%) rotate(90deg);
        background-image: url(../img/curve-arrow-left-up.svg);
    }

    .arrow__btn-box .btn:after {
        top: auto;
        bottom: -40px;
        right: 50%;
        transform: translateX(50%) translateY(100%) rotate(90deg);
        background-image: url(../img/curve-arrow-right-down.svg);
    }
}

/* --- Component > Side Panel --- */

.side-panel {
    position: fixed;
    z-index: 1000;
    display: flex;
    align-items: center;
    right: 48px;
    max-width: 100%;
    top: 50%;
    transform: translateX(100%) translateY(-50%);
    pointer-events: none;
    transition: transform 0.4s ease;
}

.side-panel__btn-box {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 50px;
}

.side-panel__btn.btn {
    pointer-events: auto;
    transform: rotate(90deg);
}

.side-panel__btn.btn:hover {
    background-color: var(--primary);
    border-color: var(--primary);
}

.side-panel__main {
    pointer-events: auto;
    background-color: var(--primary);
    padding: 20px;
    color: var(--white);
    width: 400px;
    max-width: 100%;
}

@media (min-width: 768px) {
    .side-panel__main {
        padding: 40px;
    }
}

.side-panel.is-open {
    transform: translateX(50px) translateY(-50%);
}

.side-panel.is-open .side-panel__btn.btn {
    background-color: var(--primary);
    border-color: var(--primary);
}

.side-panel__header {
    display: grid;
    grid-template-columns: 80px minmax(0, 1fr);
    gap: 16px;
    align-items: center;
}

.side-panel__header-img {
    display: block;
    width: 80px;
    height: 80px;
    object-fit: cover;
    object-position: 50% 50%;
}

.side-panel__title {
    font-size: 22px;
    font-family: var(--font-serif);
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: 1px;
}

@media (min-width: 768px) {
    .side-panel__title {
        font-size: 28px;
    }
}

.side-panel__subtitle {
    font-size: 17px;
    line-height: 1.58823529412;
    letter-spacing: 1px;
    color: var(--light);
}

.side-panel__list {
    display: flex;
    flex-direction: column;
    gap: 20px;
    margin-top: 20px;
}

.side-panel__item {
    display: flex;
    align-items: center;
    gap: 16px;
    color: var(--white);
    text-decoration: none;
}

.side-panel__item:focus,
.side-panel__item:hover,
.side-panel__item:active {
    color: var(--white);
    text-decoration: none;
}

.side-panel__item-icon-box .fa {
    flex-shrink: 0;
    font-size: 16px;
}

.side-panel__item-title {
    font-weight: 400;
    font-size: 15px;
    line-height: 1.333333;
    letter-spacing: 1px;
    color: var(--secondary);
}

.side-panel__item-desc {
    font-weight: 400;
    font-size: 15px;
    line-height: 1.333333;
    letter-spacing: 1px;
    overflow-wrap: anywhere;
}

@media (min-width: 768px) {
    .side-panel__item {
        gap: 20px;
    }

    .side-panel__item-icon-box .fa {
        font-size: 24px;
    }

    .side-panel__item-title {
        font-size: 17px;
    }

    .side-panel__item-desc {
        font-size: 17px;
    }
}

/* --- Section > Events --- */

.events {
    padding-top: 80px;
    padding-bottom: 80px;
}

.events .col .events__content {
    margin: 0;
    padding: 0;
}

.events__title {
    margin-bottom: 50px;
}

.events__news-cards {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 30px;
}

@media (min-width: 768px) {
    .events__news-cards {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }
}

/* --- Section > News / Publications --- */

.news-and-publications__title {
    margin-bottom: 50px;
}

.news-and-publications__nav {
    margin-bottom: 80px;
}

.news-and-publications__nav-list {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 30px;
}

.news-and-publications__nav-item {
    flex: 1;
}

.news-and-publications__btn {
    width: 100%;
}

@media (min-width: 480px) {
    .news-and-publications__nav-list {
        flex-direction: row;
    }
}

@media (min-width: 768px) {
    .news-and-publications__nav-item {
        flex: unset;
    }

    .news-and-publications__btn {
        min-width: 320px;
    }
}

.news-and-publications__news-cards {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 30px;
}

@media (min-width: 768px) {
    .news-and-publications__news-cards {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }
}

/* --- Section > Team --- */

.lawyers {
	padding-top: 0;
	padding-bottom: 0;
}
.lawyers__content {
    padding-top: 50px;
	padding-bottom: 0;
}
.page-about-us .lawyers {
	padding-top: 50px;
	padding-bottom: 36px;
}

.lawyers__title {
    margin-bottom: 20px;
    color: var(--primary);
    font-size: 22px;
    line-height: 1.2;
    text-align: center;
}

@media (min-width: 768px) {
    .lawyers__title {
        font-size: 28px;
    }
}

.lawyers__description {
    margin-top: 0 !important;
    padding-top: 0 !important;
    margin-bottom: 50px;
    text-align: center;
}

.lawyers .team__title {
	margin-bottom: 50px;
}

.fields .member {
	margin-top: 16px;
}

.section.fields .member .image {
	position: relative;
	width: 171px;
	height: 171px;
	margin-left: auto;
	margin-right: auto;
	overflow: clip;
}

.section.fields .member .image a {
	display: block;
	width: 100%;
	height: 100%;
}

.section.fields .member .image img.fields-member-photo {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

@media (min-width: 768px) {
	.section.fields .member .image {
		width: 151px;
		height: 151px;
	}
}

@media (min-width: 992px) {
	.section.fields .member .image {
		width: 136px;
		height: 136px;
	}
}

.member .image {
    overflow: clip;
}

.member .image img {
    transition: transform 0.6s ease;
}

.member:hover .image img:not(.flag) {
    transform: scale(1.15);
}

.member .image .flags {
    display: flex;
    gap: 4px;
    position: absolute;
    top: 4px;
    right: 4px;
}

.member .image .flag {
    display: block;
    width: 24px;
    height: auto;
}


.member .headline {
	min-height: 30px;
}

.member .headline .title {
	margin-top: 8px;
	text-align: center;
}

.headline .title a:not(.btn) {
	color: inherit;
	text-decoration: none;
}

.headline .title.head2,
.header2,
.date .title.head2,
.caption h2 {
	font-family: var(--font-serif);
	font-weight: 400;
	font-size: 18px;
	line-height: 1.8;
	letter-spacing: 0;
	color: var(--primary);
}

.caption h2,
.caption h3 {
	-moz-hyphens: manual;
	-o-hyphens: manual;
	-webkit-hyphens: manual;
	-ms-hyphens: manual;
	hyphens: manual;
	word-wrap: break-word;
}

.headline .title.head3,
.header3,
.caption h3 {
	font-family: "Libre Baskerville", serif;
	font-weight: 400;
	font-size: 20px;
	line-height: 22px;
	letter-spacing: 1px;
	color: #b1a467;
}

@media (max-width: 991px) {
	.member .headline .title.head3,
	.date .title.head2,
	.news .text .subline p {
		font-size: 12px;
		line-height: 1.25;
	}
}

.tx-cldb .headline.visible-xs .title.head1 {
	margin-bottom: 16px;
}

.headline .title.head4,
.header3,
.date .title.head4,
.caption h4 {
	font-family: var(--font-serif);
	font-weight: 400;
	font-size: 12px;
	line-height: 1.15;
	letter-spacing: 1px;
	color: var(--primary);
}

.label-outer {
	clear: both;
	margin-top: 15px;
	margin-bottom: 15px;
	display: block;
	width: 100%;
	position: relative;
}

.label-outer::after {
	border-bottom: 1px solid var(--tertiary);
	width: 100%;
	position: absolute;
	bottom: 0;
	left: 0;
	content: "";
}

.label-outer .label {
	display: inline-block;
	min-width: 83px;
	padding: 8px 5px;
	background-color: #003b6f;
    color: #fff;
	border-radius: 0;
	font-family: "Roboto", sans-serif;
	font-weight: 400;
	letter-spacing: 1px;
	font-size: 14px;
    text-align: center;
}

@media (max-width: 767.98px) {
	.f-location-box .f-person-box.shuffle-item--visible:nth-child(2n + 3) {
		clear: both;
	}
}

/* --- Section > Services --- */

.services {
	position: relative;
	padding-top: 140px;
	padding-bottom: 100px;
	background-color: var(--secondary);
}

.services:after {
	display: block;
	content: '';
	position: absolute;
	z-index: 1;
	bottom: -1px;
	left: 0;
	right: 0;
	height: 16px;
	background-color: var(--white);
	clip-path: polygon(0 0, 100% 100%, 0 100%);
}

.services > *:before {
	display: block;
	content: '';
	position: absolute;
	z-index: 1;
	top: 65px;
	left: 0;
	right: 0;
	height: 66px;
	background-color: var(--secondary-highlight);
	clip-path: polygon(75% 50%, 100% 100%, 100% 0);
}

.services > *:after {
	display: block;
	content: '';
	position: absolute;
	z-index: 0;
	top: -1px;
	left: 0;
	right: 0;
	height: 132px;
	background-color: var(--white);
	clip-path: polygon(0 0, 100% 100%, 100% 0);
}

@media (max-width: 1199.98px) {
    .services > *:before {
        top: -1px;
        height: 66px;
        clip-path: polygon(50% 50%, 100% 100%, 100% 0);
    }

    .services > *:after {
        top: -1px;
        height: 66px;
        clip-path: polygon(0 0, 100% 100%, 100% 0);
    }
}

.services__title {
    padding-top: 0;
    /* Oszi: Abstand Titel -> Liste erhoeht (vorher 50px) */
    margin-bottom: 80px;
    color: var(--white);
    font-size: 22px;
    line-height: 1.2;
    letter-spacing: 1px;
    text-align: center;
}

.services__title:before {
    display: none;
}

@media (min-width: 768px) {
    .services__title {
        font-size: 28px;
    }
}

.services__boxes {
	text-align: center;
}

.services__box {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 30px;
	margin-bottom: 30px;
}

@media (min-width: 768px) {
	.services__box {
		gap: 12px;
		margin-bottom: 0;
	}

	.services__box-item:not(:last-child) {
		min-height: 80px;
	}
}

.services__box-link {
    display: flex;
    align-items: center;
    gap: 8px;
	color: var(--white);
	text-decoration: underline;
	font-size: 17px;
	line-height: 1.58823529412;
	letter-spacing: 1px;
    word-break: break-word;
    overflow-wrap: break-word;
    hyphens: auto;
    transition: color 0.2s ease;
    text-align: left;
}

.services__box-link:hover,
.services__box-link:focus-visible {
    color: var(--white);
}

.services__box-link:active {
    color: var(--white);
}

@media (min-width: 768px) {
    .services__box-link {
        text-decoration: none;
        color: var(--white);
    }

    .services__box-link:hover,
    .services__box-link:focus-visible {
        color: var(--primary);
    }

    .services__box-link:active {
        color: var(--primary);
    }

    .services__box-link .fa-arrow-right {
        margin-left: 0.35em;
        vertical-align: middle;
    }
}

/* --- Section > Career --- */

.career {
	padding-top: 50px;
	padding-bottom: 90px;
}

.career .career__title {
    margin-bottom: 50px;
    font-size: 22px;
    line-height: 1.2;
    letter-spacing: 1px;
    text-align: center;
    padding-top: 0;
}

.career .career__title::before {
    display: none;
}

@media (min-width: 768px) {
    .career .career__title {
        font-size: 28px;
    }
}


.career .career__subtitle {
	margin-top: 30px;
	margin-bottom: 12px;

    font-size: 18px;
    line-height: 1.27272727273;
    letter-spacing: 0;
}

@media (min-width: 768px) {
    .career .career__subtitle {
        font-size: 22px;
    }
}

.career .career__btn-box {
	margin-top: 40px;
	text-align: center;
}

.career .career__btn {
	width: 312px;
	max-width: 100%;
}

/* --- Section > Fields --- */

.fields {
    padding-top: 50px;
    padding-bottom: 50px;
}

.hero-slider + .fields {
    padding-top: 0;
}

.fields .col .fields__content {
    margin-bottom: 0;
    padding-bottom: 20px;
}

.fields .fields__content * {
    margin-top: 0;
    margin-bottom: 0;
}

.page-heading__title,
body:not(.home) .lawyers__title,
.section--content h1,
.fields .fields__content .fields__title,
.fields .fields__title,
.section--page-title .fields__title,
.events__title,
.news-and-publications__title,
.lawyer-main__title,
.rechtsgebiete-list__title,
.rechtsgebiete-team__title,
.content h1.title {
    font-size: 28px;
    line-height: 1.2;
    letter-spacing: 1px;
    text-align: center;
    padding-top: 0;
    margin-bottom: 50px;

    @media (min-width: 768px) {
        font-size: 32px;
    }
}

.page-heading {
    padding-top: 80px;
}

.section--content {
    padding-top: 40px;
    padding-bottom: 40px;
}

.page-heading + .section--content {
    padding-top: 0;
}

.fields .fields__content .fields__title:has(+p) {
    margin-bottom: 50px;
}

.fields .fields__content .fields__title:before {
    display: none;
}
.fields .fields__content.text-center h1,
.fields .fields__content.text-center h2,
.fields .fields__content.text-center h3,
.fields .fields__content.text-center h4,
.fields .fields__content.text-center h5,
.fields .fields__content.text-center h6 {
    text-align: center;
}

.fields .section-content > .container > .row > * {
    padding-left: 0;
    padding-right: 0;
}

    /* === Lawyer === */

.lawyer .logo-slider {
    margin-top: 50px;
}

/* -- Section > Lawyer hero --- */

.lawyer-hero {
    position: relative;
}

.lawyer-hero > *:before {
    display: block;
    content: '';
    position: absolute;
    z-index: 1;
    bottom: 72px;
    left: 0;
    right: 0;
    height: 66px;
    background-color: var(--secondary-highlight);
    clip-path: polygon(25% 58.5%, 0 0, 0 100%);
}

.lawyer-hero > *:after {
    display: block;
    content: '';
    position: absolute;
    z-index: 0;
    bottom: -1px;
    left: 0;
    right: 0;
    height: 132px;
    background-color: var(--white);
    clip-path: polygon(107% 100%, 0px 0, 0px 100%)
}

@media (max-width: 1199.98px) {
    .lawyer-hero > *:before {
        bottom: -1px;
        height: 66px;
        clip-path: polygon(50% 44%, 0 0, 0 100%);
    }

    .lawyer-hero > *:after {
        bottom: -1px;
        height: 66px;
        clip-path: polygon(116% 100%, 0 0, 0 100%);
    }
}

.lawyer-hero__img {
    display: block;
    width: 100%;
    height: auto;
    min-height: 400px;
    object-fit: cover;
    object-position: 50% 0;
}

/* -- Section > Lawyer main --- */

.lawyer-main__content {
    padding-top: 0;
    padding-bottom: 60px;
    text-align: left;
}

.lawyer-main__title {
    margin: 0 0 50px;
    padding: 0;
    text-align: center;
}

.lawyer-main__title:has(+ h4) {
    margin-bottom: 50px;
}

.lawyer-main__content h2 {
    text-align: center;
    margin-bottom: 50px;
}

.lawyer-main__content h3 {
    margin: 0 0 30px 0;
    padding: 0;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.33333;
    letter-spacing: 1px;
    color: var(--secondary);
}

@media (min-width: 768px) {
    .lawyer-main__content h3 {
        font-size: 20px;
        line-height: 1.4;
    }
}

.lawyer-main__content h4 {
    margin-top: 0;
    margin-bottom: 40px;
    font-size: 17px;
    line-height: 1.58823529412;
    letter-spacing: 1px;
    font-weight: 600;
    font-family: var(--font-sans-serif);
    color: var(--midtone);
}

.lawyer-main__content strong {
    font-weight: 600;
}

/* -- Section > Lawyer contact --- */

.lawyer-contact {
    padding-bottom: 50px;
}

@media (min-width: 992px) {
    .lawyer-contact {
        padding-bottom: 50px;
    }
}

.lawyer-contact__title {
    margin-bottom: 50px;
    font-size: 22px;
    line-height: 1.2;
    letter-spacing: 1px;
    text-align: center;
}

@media (min-width: 768px) {
    .lawyer-contact__title {
        font-size: 28px;
    }
}

.lawyer-contact__boxes {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
}

@media (min-width: 992px) {
    .lawyer-contact__boxes {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }
}

.lawyer-contact__box {
    background-color: var(--highlight);
    text-align: center;
}

.lawyer-contact__box p {
    margin: 0;
    padding: 0;
    font-size: 27px;
    line-height: 1.15;
    letter-spacing: 1px;
}

.lawyer-contact__box a {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    padding: 55px 40px;
    color: var(--secondary);
    text-decoration: none;
    transition: color 0.25s ease;
}

.lawyer-contact__box a:hover,
.lawyer-contact__box a:focus-visible {
    color: var(--secondary);
    text-decoration: none;
}

.lawyer-contact__box a:active {
    color: var(--secondary);
    text-decoration: none;
}

.lawyer-contact__box i[class$="fa"] {
    font-size: 40px;
}

.lawyer-contact__box span:first-of-type {
    margin-top: 20px;
}

/* Box */
.text-center {
    text-align: center;
}

.box {
    position: relative;
    margin-bottom: 25px;
    margin-top: 5px;
    font-family: "Roboto", sans-serif;
    font-weight: 300;
    letter-spacing: 1px;
}

.box.bg {
    background-color: #f7f7f7;
}

.box.link {
    height: 132px;
    min-height: 132px;
    max-height: 132px;
    color: #b1a467;
}

.box.link a {
    color: #b1a467;
    display: block;
    width: 100%;
    height: 100%;
    border-bottom: 3px solid #ccc399;
    text-decoration: none;
    outline: 0 !important;
    font-family: "Roboto", sans-serif;
}

.box.link a:hover,
.box.link a:focus {
    cursor: pointer;
}



.box.link p {
    height: 130px;
    align-content: center;
}

.box.icon {
    height: 220px;
    min-height: 220px;
    max-height: 220px;
    color: #b1a467;
}

.box.icon a {
    color: #b1a467;
    display: block;
    width: 100%;
    height: 100%;
}

.box.icon p {
    height: 220px;
    font-size: 1.35em;
}

.box.icon p .icon {
    margin-bottom: 20px;
}

.box span.icon {
    content: "";
    width: 35px;
    height: 35px;
    display: inline-block;
    background-size: 100%;
}

.box.text {
    padding-left: 40px;
}

.box.text .headline {
    margin-top: 15px;
}

.box.text .title {
    margin-top: 0;
}

.box.text .headline + .caption {
    margin-top: 35px;
}

.box.thumb .headline {
    margin-top: 40px;
}

.box.thumb .title {
    margin-top: 0;
}

.box.thumb .headline + .caption {
    margin-top: 35px;
}


/* References */
.reference-company {
    background-color: #f0f1f5;
    text-align: center;
    padding: 16px;
}

.reference-company .row-flex {
    align-items: center;
}

.reference-company a {
    position: relative;
    width: 80%;
    display: block;
    margin: 20px auto 20px;
}

.reference-company img {
    position: relative;
    margin-left: auto;
    margin-right: auto;
    transition: transform 0.6s ease;
}

.reference-company a:hover img {
    transform: scale(1.15);
}

.reference-company + .row:has(.f-collapse-section-person) {
    margin-top: 30px;
}

#areas-activity-accordion .fields-area-members-row {
    margin-left: 0;
    margin-right: 0;
}

#areas-activity-accordion .fields-area-members-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
    margin: 0;
    width: 100%;
}

#areas-activity-accordion .fields-area-members-grid > [class*="col-"] {
    max-width: none;
    padding: 0;
}

#areas-activity-accordion .fields-area-member .image {
    width: 100%;
    aspect-ratio: 1;
    overflow: hidden;
}

#areas-activity-accordion .fields-area-member .image a,
#areas-activity-accordion .fields-area-member .image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

#areas-activity-accordion .fields-area-member .headline {
    margin-top: 0.75rem;
    line-height: 1.35;
}

#areas-activity-accordion .fields-area-member .headline .title {
    line-height: inherit;
}

@media (max-width: 575px) {
    #areas-activity-accordion .fields-area-members-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 991px) {
    #areas-activity-accordion .fields-area-members-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .reference-company img {
        left: auto;
        top: auto;
        transform: translateX(0) translateY(0);
    }
}

.filter-content .reference-company {
    margin-top: 20px;
}

.f-collapse-more {
    color: var(--secondary);
}
.filter-bereiche .filter-content .info-bereiche {
    cursor: pointer;
}
.filter-bereiche .filter-content .info-bereiche .section-preview-link {
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    display: block;
}
.filter-bereiche .filter-content .info-bereiche .section-preview-link:hover,
.filter-bereiche .filter-content .info-bereiche .section-preview-link:focus-visible,
.filter-bereiche .filter-content .info-bereiche .section-preview-link:active {
    color: var(--primary);
    color: inherit;
    text-decoration: none;
    background: transparent;
}
.filter-bereiche .filter-content .info-bereiche .f-collapse-section-more.collapse:not(.show):not(.in) .section-preview-link:hover {
    color: var(--primary);
    text-decoration: none;
    background: transparent;
}
.filter-bereiche .filter-content .info-bereiche .section-preview p,
.filter-bereiche .filter-content .info-bereiche .section-preview strong {
    color: inherit;
    font-family: var(--font-sans-serif);
    font-weight: 400;
    letter-spacing: normal;
}
.filter-bereiche .filter-content .info-bereiche .section-preview strong {
    color: var(--primary);
}

.f-collapse-more .fa {
    font-size: 14px;
    position: relative;
    top: 2px;
}

.filter .filter-content .f-law-field-box [class*="col"] {
    float: left;
}

.filter .filter-content a {
    text-decoration: none;
    font-weight: 400;
}

/* Section > Contact */

.contact {
    padding-top: 0;
    padding-bottom: 0;
}

.contact .contact__title {
    margin-bottom: 50px;
    text-align: center;
}

.contact .contact__boxes {
    display: grid;
    gap: 50px;
    justify-content: center;
}

@media (min-width: 768px) {
    .contact .contact__boxes {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }
}

.contact .contact__box-title {
    margin-bottom: 12px;
}

.contact .contact__box-title:before {
    background-position: 0 50%;
}

.contact .contact__box-list {
    margin: 0;
    padding: 0;
}

.contact .contact__box-map {
    display: block;
    margin-top: 20px;
    max-width: 100%;
    height: auto;
}

/* Section > Offices */

.offices {
    padding-top: 30px;
    padding-bottom: 30px;
}

.section--content + .offices {
    padding-bottom: 0;
}

.section--content:has(+ .offices) .content {
    padding-bottom: 0;
}

.offices h2 {
    font-weight: 400;
    font-size: 28px;
    line-height: 1.35714285714;
    color: #003b6f;
    margin-top: 0;
    margin-bottom: 30px;
    padding-top: 0;
}

.offices h2:before {
    display: none;
}

.offices .offices__list {
    display: grid;
    gap: 50px;
}

.offices .offices__item {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 30px;
}

@media (min-width: 768px) {
    .offices .offices__item:not(.offices__item--full-width) {
        grid-template-columns: 228px minmax(0, 1fr);
    }
}

.offices .offices__item .offices__content {
    padding-top: 0;
    padding-bottom: 0;
}

.offices .offices__img-box {
    position: relative;
    overflow: hidden;
    aspect-ratio: 1 / 1;
}

.offices .offices__img-box:after {
    display: block;
    content: '';
    position: absolute;
    bottom: -1px;
    left: 0;
    right: -10px;
    clip-path: polygon(0 0, 0 100%, 100% 100%);
    height: 24px;
    background-color: var(--white);
}

.offices .offices__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 50%;
    transition: transform 0.5s ease;
}

.offices .offices__img-box:hover .offices__img {
    transform: scale(1.1);
}

.offices__btn-box {
    display: flex;
    justify-content: center;
    margin-top: 100px;
    margin-bottom: 100px;
}


/* Section > About us */

.about-us {
    padding-top: 50px;
    padding-bottom: 150px;
}

.about-us .about-us__content {
    text-align: left;
}

.about-us .about-us__content h1 {
    margin-top: 0;
    margin-bottom: 50px;
}

.about-us .about-us__content h2 {
    padding-top: 0;
    margin-top: 50px;
    margin-bottom: 12px;
}

.about-us .about-us__content h2:before {
    display: none;
}

.about-us .news__subtitle {
    position: relative;
    margin: 30px 0 40px 0;
    padding: 0;
    color: var(--secondary);
    text-align: center;
    font-size: 18px;
    line-height: 1.27272727273;
    letter-spacing: 0;
}

@media (min-width: 768px) {
    .about-us .news__subtitle {
        font-size: 22px;
    }
}

.about-us .news__nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
}

.about-us .news__nav-link-icon.fa-brands {
    font-size: 18px;
    margin-top: -4px;
}

.about-us .locations {
    margin-top: 70px;
    margin-bottom: 70px;
}

.about-us .locations h2 {
    margin-bottom: 30px;
}

.about-us .locations__nav {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    justify-content: center;
}

.about-us .locations__nav-link {
    width: 316px;
    max-width: 100%;
}

.arrow__btn-box {
    display: flex;
    justify-content: center;
    margin-top: 180px;
    margin-bottom: 180px;
}

@media (min-width: 768px) {
    .arrow__btn-box {
        margin-top: 100px;
        margin-bottom: 100px;
    }
}


/* --- Gallery --- */

.gallery__title {
    position: relative;
    margin: 0 0 50px 0;
    padding-top: 50px;
    font-size: 18px;
    line-height: 1.27272727273;
    letter-spacing: 0;
    text-align: center;
    color: var(--secondary);
}

@media (min-width: 768px) {
    .gallery__title {
        font-size: 22px;
    }
}

.gallery-slider__link {
    display: block;
    text-decoration: none;
}

.gallery-slider__img {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 216 / 288;
    object-fit: cover;
    object-position: 50% 50%;
}

.gallery-slider__nav {
    margin-top: 30px;
    display: flex;
    flex-wrap: wrap;
    justify-content: end;
    align-items: center;
    gap: 30px;
}

.gallery-slider__nav-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: var(--primary);
    transition: color 0.25s ease;
}

.gallery-slider__nav-link:hover,
.gallery-slider__nav-link:focus-visible {
    text-decoration: none;
    color: var(--secondary);
}

.gallery-slider__nav-link:active {
    text-decoration: none;
    color: var(--secondary);
}

.gallery-slider__nav-link-icon {
    font-size: 12px;
    color: inherit;
}

.gallery-slider__nav-link-icon.fa-brands {
    font-size: 18px;
    margin-top: -1px;
}


.gallery-slider {
    margin-left: 48px;
    margin-right: 48px;
}

@media (min-width: 1080px) {
    .gallery-slider {
        margin-left: 75px;
        margin-right: 75px;
    }
}

.gallery-slider .slick-arrow {
    margin: 0;
    padding: 0;
    border: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
    overflow: clip;
    background: transparent;
    width: 45px;
    height: 60px;
    font-size: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    color: var(--primary);
    transition: background-color 0.25s ease, color 0.25s ease;
}

.gallery-slider .slick-arrow:hover,
.gallery-slider .slick-arrow:focus-visible {
    background: var(--secondary);
    color: var(--white);
}

.gallery-slider .slick-arrow:active {
    background: var(--secondary);
    color: var(--white);
}

.gallery-slider .slick-disabled,
.gallery-slider .slick-disabled:hover,
.gallery-slider .slick-disabled:focus-visible,
.gallery-slider .slick-disabled:active {
    background-color: transparent;
    color: var(--light);
    cursor: initial;
}

.gallery-slider .slick-prev {
    left: -48px;
}

.gallery-slider .slick-next {
    right: -48px;
}

@media (min-width: 1340px) {
    .gallery-slider .slick-prev {
        left: -90px;
    }

    .gallery-slider .slick-next {
        right: -90px;
    }
}

.gallery-slider .slick-arrow:after {
    display: block;
    font-family: var(--font-fa);
    font-size: 22px;
    color: inherit;
    position: absolute;
    inset: 0;
    font-weight: 900;
    line-height: 60px;
}

.gallery-slider .slick-prev:after {
    content: "\f053";
}

.gallery-slider .slick-next:after {
    content: "\f054";
}

.gallery-slider .slick-slider {
    margin-left: -8px;
    margin-right: -8px;
}

@media (min-width: 1080px) {
    .gallery-slider .slick-slider {
        margin-left: -16px;
        margin-right: -16px;
    }
}

.gallery-slider .slick-slide {
    margin-left: 4px;
    margin-right: 4px;
    height: fit-content !important;
}

@media (min-width: 1340px) {
    .gallery-slider .slick-slider {
        margin-left: -16px;
        margin-right: -16px;
    }

    .gallery-slider .slick-slide {
        margin-left: 4px;
        margin-right: 4px;
    }
}

/* --- Logo Slider --- */
.logo-slider {
    margin-left: 48px;
    margin-right: 48px;
}

@media (min-width: 1080px) {
    .logo-slider {
        margin-left: 64px;
        margin-right: 64px;
    }
}

.logo-slider .slick-arrow {
    margin: 0;
    padding: 0;
    border: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
    overflow: clip;
    background: transparent;
    width: 45px;
    height: 60px;
    font-size: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    color: var(--primary);
    transition: background-color 0.25s ease, color 0.25s ease;
}

.logo-slider .slick-arrow:hover,
.logo-slider .slick-arrow:focus-visible {
    background: var(--secondary);
    color: var(--white);
}

.logo-slider .slick-arrow:active {
    background: var(--secondary);
    color: var(--white);
}

.logo-slider .slick-disabled,
.logo-slider .slick-disabled:hover,
.logo-slider .slick-disabled:focus-visible,
.logo-slider .slick-disabled:active {
    background-color: transparent;
    color: var(--light);
    cursor: initial;
}

.logo-slider .slick-prev {
    left: -48px;
}

.logo-slider .slick-next {
    right: -48px;
}

@media (min-width: 1340px) {
    .logo-slider .slick-prev {
        left: -90px;
    }

    .logo-slider .slick-next {
        right: -90px;
    }
}

.logo-slider .slick-arrow:after {
    display: block;
    font-family: var(--font-fa);
    font-size: 22px;
    color: inherit;
    position: absolute;
    inset: 0;
    font-weight: 900;
    line-height: 60px;
}

.logo-slider .slick-prev:after {
    content: "\f053";
}

.logo-slider .slick-next:after {
    content: "\f054";
}

.logo-slider .slick-slider {
    margin-left: -8px;
    margin-right: -8px;
}

@media (min-width: 1080px) {
    .logo-slider .slick-slider {
        margin-left: -16px;
        margin-right: -16px;
    }
}

.logo-slider .slick-slide {
    margin-left: 8px;
    margin-right: 8px;
}

@media (min-width: 1340px) {
    .logo-slider .slick-slider {
        margin-left: -16px;
        margin-right: -16px;
    }

    .logo-slider .slick-slide {
        margin-left: 16px;
        margin-right: 16px;
    }
}

.logo-slider__item-img {
    display: block;
    width: 100%;
    height: 100%;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    object-position: 50% 50%;
}

/* Page Cross-Border Desk */

.page-cross-border-desk .f-collapse-section-person {
    display: flex;

}

/* Page News */

.page-news .news__subtitle {
    position: relative;
    color: var(--secondary);
    text-align: center;
    font-size: 18px;
    line-height: 1.27272727273;
    letter-spacing: 0;
}

.page-news .news__nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 30px;
}

.page-news .news__nav-link-icon.fa-brands {
    font-size: 18px;
    margin-top: -4px;
}

/* Page Template Default */
.page-template-default .content {
    padding-top: 80px;
    padding-bottom: 80px;
}

.page-template-default .content > *:first-child {
    margin-top: 0;
    padding-top: 0;
}

.section .content > h2 {
    margin-top: 50px;
    margin-bottom: 20px;
    font-size: 22px;
}

/* Oszi: `.section .content > h2` (0-2-1) hat `.services__title` (0-1-0) immer
   ueberschrieben, deshalb lag der Abstand real bei 20px statt 50px. */
.section .content > h2.services__title {
    margin-bottom: 80px;
}

@media (min-width: 768px) {
    .section .content > h2 {
        font-size: 28px;
    }
}

.page-template-default .page-title {
    margin: 0 0 40px 0;
    padding: 0;
}

.page-template-default strong,
.page-template-default b {
    font-weight: 900;
}

.page-template-default article img {
    max-width: 100%;
    height: auto;
}

/* Post Template Default */
.post-template-default .content {
    padding-top: 0;
    padding-bottom: 80px;
}

.post-template-default .post-title {
    margin: 0 0 40px 0;
    padding: 0;
}

.post-template-default strong,
.post-template-default b {
    font-weight: 900;
}

.post-template-default article img {
    max-width: 100%;
    height: auto;
}

.post-template-default .featured-image-wrap {
    margin-bottom: 40px;
}

.section--video__wrapper {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%;
}

.section--video__iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.article-author {
    margin-bottom: 40px;
}

.article-author__card {
    display: flex;
    gap: 28px;
    align-items: flex-start;
}

@media (max-width: 767.98px) {
    .article-author__card {
        flex-direction: column;
    }
}

.article-author__media {
    flex: 0 0 220px;
    text-align: center;
}

.article-author__image {
    display: block;
}

.article-author__image img {
    display: block;
    width: 100%;
    max-width: 240px;
    height: auto;
    object-fit: cover;
    border: 1px solid var(--secondary-highlight);
}

.article-author__name {
    margin-top: 8px;
    font-size: 22px;
    color: var(--secondary-dark);
}

.article-author__name a {
    color: inherit;
    text-decoration: none;
}

.article-author__name a:hover {
    color: var(--secondary);
}

.article-author__details {
    flex: 1;
}

.article-author__title {
    margin: 0 0 16px;
    color: var(--primary);
}

.article-author__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    row-gap: 10px;
}

.article-author__item {
    position: relative;
    padding-left: 16px;
    font-size: 16px;
    line-height: 1.5;
    color: var(--midtone);
}

.article-author__item:before {
    content: '';
    position: absolute;
    left: 0;
    top: 9px;
    width: 7px;
    height: 7px;
    background-color: var(--secondary);
}

.article-author__item--highlighted {
    color: var(--primary);
    font-weight: 600;
}

.article-author__item--highlighted:before {
    background-color: var(--primary);
}

/* Theme overrides – add custom styles here */

.section.fields .reference-company--spaced {
    padding: 30px;
}

.section.fields .reference-company--spaced .row-flex {
    gap: 0;
    align-items: center;
}

.section.fields .reference-company--spaced .row-flex > [class*="col-"] {
    display: flex;
    align-items: center;
    justify-content: center;
}

.section.fields .reference-company--spaced .row-flex a,
.section.fields .reference-company--spaced .row-flex > [class*="col-"] {
    display: flex;
    align-items: center;
    justify-content: center;
}

.section.fields .reference-company--spaced .row-flex img {
    height: 80px;
    width: auto;
    max-width: 100%;
    object-fit: contain;
    object-position: center;
}

.loading-placeholder {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    min-height: 200px;
    width: 100%;
}

.loading-placeholder__spinner {
    width: 40px;
    height: 40px;
    border: 3px solid rgba(0, 0, 0, 0.1);
    border-top-color: currentColor;
    border-radius: 50%;
    animation: loading-spin 0.8s linear infinite;
}

@keyframes loading-spin {
    to { transform: rotate(360deg); }
}

/* Search Field */
.search-field {
    position: relative;
    max-width: 360px;
    margin-bottom: 30px;
}

.search-field .search {
    color: #ccc399;
    margin-bottom: 0;
    padding: 5px 30px 5px 10px;
    border: 1px solid #ddd;
    width: 100%;
    height: 44px; 
    border-radius: 0;
    font-family: "Roboto", sans-serif;
    transition: border-color 0.2s ease;
}

.search-field .search:focus {
    border: 2px solid #ccc399;
    outline: none;
    padding: 4px 29px 4px 9px; 
}

.search-field .search::placeholder {
    color: #ccc399;
    opacity: 1;
}

.search-field .search-icon {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--secondary);
    pointer-events: none;
    line-height: 1;
}

.rechtsgebiete-list__title {
    margin-bottom: 50px;
}

.rechtsgebiete-list__no-results {
    display: none;
    margin-top: 20px;
}

.rechtsgebiete-list__name {
    display: flex;
    height: 100%;
    justify-content: center;
    align-items: center;
    font-weight: 300;
}

.rechtsgebiete-list__name-text {
    margin: 0;
    white-space: normal;
    word-break: break-word;
}

@media (max-width: 575.98px) {
    .rechtsgebiete-list__search {
        max-width: 100%;
    }
}


.rechtsgebiete-team__title {
    margin-top: 3rem;
    margin-bottom: 50px;
}

.practice-area-legal-areas {
    margin-bottom: 1rem;
    display: flex;
    flex-wrap: wrap;
    gap: 16px 24px;
}

.practice-area-legal-areas > [class*="col-"] {
    float: none;
    padding-left: 12px;
    padding-right: 12px;
    flex: 1 1 260px;
    max-width: 100%;
}

@media (min-width: 768px) {
    .practice-area-legal-areas > [class*="col-"] {
        flex-basis: calc(50% - 24px);
    }
}

@media (min-width: 992px) {
    .practice-area-legal-areas > [class*="col-"] {
        flex-basis: calc(33.3333% - 24px);
    }
}

.practice-area-legal-areas__options {
    display: flex;
    flex-wrap: wrap;
    word-break: break-word;
    gap: 0.5rem;
}

.practice-area-legal-area-link {
    display: inline-block;
    padding: 0;
    text-decoration: none;
}

.practice-area-team-results {
    margin-top: 1rem;
}

.practice-area-team-results .practice-area-team-row {
    margin-left: -0.5rem;
    margin-right: -0.5rem;
}

.practice-area-team-results .practice-area-team-row [class*="col-"] {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    margin-bottom: 0.5rem;
}

/* Override specificty of .section.fields .member .image */
.section.fields .practice-area-team-results .member .image {
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    height: auto;
}

.practice-area-team-results .member .image {
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
}

.practice-area-team-results .member .image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.practice-area-team-results .member .headline .title {
    line-height: 22px;
    margin-top: 10px;
    font-size: 16px; /* Adjust if needed, user only said 22px line height */
}

.practice-area-team-results-loading {
    min-height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.practice-area-team-results-loading .team-archive-loading__spinner {
    width: 32px;
    height: 32px;
    border: 3px solid rgba(0,0,0,0.1);
    border-top-color: currentColor;
    border-radius: 50%;
    animation: practice-area-spin 0.8s linear infinite;
}

@keyframes practice-area-spin {
    to { transform: rotate(360deg); }
}

.error-404__content {
  min-height: 60vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.error-404__content.text-center {
    text-align: center;
}

.error-404__title {
    font-size: 120px;
    font-weight: 700;
    margin: 0;
}

.error-404__spacer {
    margin-top: 1rem;
    margin-bottom: 0;
}

/* Fancybox Caption Layout */
.fancybox__slide.has-caption {
    flex-direction: column;
}

.fancybox__caption {
    width: 100%;
    padding: 1rem;
    background: #fff;
    color: #333;
    max-height: 30vh;
    overflow-y: auto;
    font-size: 0.9rem;
    line-height: 1.5;
}

@media (min-width: 1024px) {
    .fancybox__slide.has-caption {
        flex-direction: row;
        align-items: center;
    }

    /* Image container */
    .fancybox__slide.has-caption .fancybox__content {
        flex: 1 1 auto;
        min-width: 0;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 2rem; /* Give some breathing room */
    }

    .fancybox__caption {
        width: 350px;
        min-width: 350px;
        height: 100%;
        max-height: 100vh;
        overflow-y: auto;
        border-left: 1px solid #eee;
        padding: 2rem;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        text-align: left;
    }
}

.news-and-publications--linkedin-archive {
	margin-top: 3rem;
}

.news-slider--uniform .slick-slide {
	height: auto;
}

.news-slider--uniform .slick-slide > div {
	height: 100%;
	display: block;
	min-width: 0;
}

.news-slider--uniform .slick-slide .news-card {
	height: 100%;
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.news-slider--uniform .news-card__body {
	flex: 1 1 auto;
	min-height: 0;
}

.news-slider--uniform .news-card {
	min-height: 260px;
}

@media (min-width: 768px) {
	.news-slider--uniform .news-card {
		min-height: 300px;
	}
}

.news-and-publications__news-cards,
.section--content .news.section .news-slider {
	display: block !important;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow: hidden;
}

.news-and-publications__news-cards .news-slider__list,
.section--content .news.section .news-slider__list {
	display: block !important;
	width: 100%;
	max-width: 100%;
}

.news-slider .slick-prev:before,
.news-slider .slick-prev::before,
.news-slider .slick-next:before,
.news-slider .slick-next::before {
	content: none !important;
	font-family: inherit !important;
	font-size: 0 !important;
	line-height: 0 !important;
	opacity: 0 !important;
	width: 0 !important;
	height: 0 !important;
	overflow: hidden !important;
	display: none !important;
}
.news-slider .slick-prev .fa-solid,
.news-slider .slick-next .fa-solid {
	font-size: 1rem;
	line-height: 1;
	opacity: 1;
}

.hero-slider__item-body {
    position: relative;
}

.hero-slider__item-body > .hero-slider__item-img.hero-slider__item-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
}

/* Hero-Objektposition für Video-Hintergründe. Die Regel oben hat eine höhere
   Spezifität als `.hero-slider__item-img`, daher wird die Variablen-Kette hier
   pro Breakpoint wiederholt, damit sie nicht versehentlich überschrieben wird. */
.hero-slider__item-body > .hero-slider__item-img.hero-slider__item-video {
    object-position: var(--hero-obj-pos-mobile, var(--hero-obj-pos-desktop, 50% 50%));
}

@media (min-width: 992px) {
    .hero-slider__item-body > .hero-slider__item-img.hero-slider__item-video {
        object-position: var(--hero-obj-pos-desktop, var(--hero-obj-pos-mobile, 50% 50%));
    }
}

@media (min-width: 1920px) {
    .hero-slider__item-body > .hero-slider__item-img.hero-slider__item-video {
        object-position: var(--hero-obj-pos-hd, var(--hero-obj-pos-desktop, var(--hero-obj-pos-mobile, 50% 50%)));
    }
}

/* === Article authors === */

.article-authors {
	padding-top: 40px;
	padding-bottom: 40px;
}

.article-authors__row {
	row-gap: 32px;
}

.article-author__card {
	display: flex;
	flex-direction: column;
	gap: 24px;
	height: 100%;
}

@media (min-width: 768px) {
	.article-author__card {
		flex-direction: row;
		align-items: flex-start;
	}
}

.article-author__media {
	flex: 0 0 auto;
	width: 100%;
	max-width: 171px;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}

@media (min-width: 768px) {
	.article-author__media {
		max-width: 151px;
		margin-left: 0;
		margin-right: 0;
	}
}

@media (min-width: 992px) {
	.article-author__media {
		max-width: 136px;
	}
}

.article-author__image {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	overflow: clip;
	text-decoration: none;
}

.article-author__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.article-author__name {
	margin-top: 8px;
}

.article-author__name-link {
	color: inherit;
	text-decoration: none;
}

.article-author__name-link:hover,
.article-author__name-link:focus-visible {
	color: var(--primary);
}

.article-author__details {
	flex: 1 1 auto;
	min-width: 0;
}

.article-author__title {
	margin: 0 0 16px;
}

.article-author__list {
	padding: 0 0 0 25px;
	list-style: none;
}

.article-author__item {
	position: relative;
	font-size: 17px;
	line-height: 1.58823529412;
	letter-spacing: 0;
	color: var(--midtone);
}

.article-author__item:not(:first-child) {
	margin-top: 5px;
}

.article-author__item::before {
	content: "";
	width: 8px;
	height: 8px;
	display: inline-block;
	vertical-align: middle;
	background: var(--secondary);
	margin-left: -20px;
	position: absolute;
	top: 8px;
}


/* ==========================================================================
   Oszi - Freigaben aus der Design-Runde 20260730
   Item 3  Taetigkeitsbereiche Startseite  -> tatig-1-index.jpg
   Item 5  Cross-Border Button Standorte   -> standorte-1-hairline.jpg
   Item 7  Introtext Startseite            -> home-4.jpg
   Item 8  Zahlenblock                     -> home-1.jpg
   Item 9  Cross-Border Button Startseite  -> standorte-1-hairline.jpg
   Item 10 Reihenfolge der Standorte-Buttons
   ========================================================================== */

/* --- Item 3: Index-Layout im goldenen Block ------------------------------ */
.services .services__boxes {
    text-align: left;
}

/* Oszi: eine einzige Grid statt drei getrennter Spalten. Nur so liegen die
   Haarlinien spaltenuebergreifend auf derselben Hoehe, weil eine Grid-Zeile
   immer so hoch ist wie ihr hoechstes Element. Ein- und zweizeilige Eintraege
   werden darin vertikal zentriert. */
.services .services__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0 44px;
}

@media (min-width: 576px) {
    .services .services__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 768px) {
    .services .services__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .services .services__box-item:not(:last-child) {
        min-height: 0;
    }
}

.services .services__box-item {
    display: flex;
    align-items: stretch;
}

.services .services__box-link {
    width: 100%;
    justify-content: space-between;
    align-items: center;
    padding: 15px 2px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.4);
    text-decoration: none;
    hyphens: manual;
}

.services .services__box-link > i {
    flex: 0 0 auto;
    opacity: 0.85;
    font-size: 14px;
}

.services .services__box-link:hover {
    color: var(--secondary-highlight);
}

.services .services__box-link:hover > i {
    opacity: 1;
}

/* --- Item 8: Zahlenblock als Rahmenbox mit Icon auf der Oberkante -------- */
.our-company .our-company__info-boxes {
    gap: 22px;
}

.our-company .our-company__info-box {
    position: relative;
    padding: 52px 18px 40px;
    border: 1px solid var(--light);
    text-align: center;
}

.our-company .our-company__info-box-icon {
    position: absolute;
    top: -17px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    padding: 0 14px;
    background: var(--white);
    line-height: 0;
    color: var(--secondary);
    transition: color 0.3s ease;
}

.our-company .our-company__info-box-icon > i {
    display: block;
    font-size: 24px;
}

.our-company .our-company__info-box-title-num {
    font-family: var(--font-serif);
    font-size: 40px;
    line-height: 1;
    color: var(--primary);
}

@media (min-width: 768px) {
    .our-company .our-company__info-box-title-num {
        font-size: 46px;
    }
}

.our-company .our-company__info-box-rule {
    display: block;
    width: 32px;
    height: 1px;
    margin: 18px auto 14px;
    background: var(--secondary);
}

.our-company .our-company__info-boxes a .our-company__info-box-desc {
    font-family: var(--font-sans-serif);
    font-size: 11px;
    line-height: 1.5;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--midtone);
}

@media (min-width: 768px) {
    .our-company .our-company__info-boxes a .our-company__info-box-desc {
        font-size: 11px;
    }
}

.our-company .our-company__info-boxes a:hover .our-company__info-box {
    border-color: var(--secondary);
}

/* --- Items 5 + 9: Cross-Border-Button, Variante Haarlinie ---------------- */
.cbd-hairline {
    display: block;
    text-align: center;
    text-decoration: none;
}

.cbd-hairline__line {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
}

.cbd-hairline__rule {
    display: block;
    width: 60px;
    height: 1px;
    background: var(--secondary);
    opacity: 0.6;
}

@media (min-width: 768px) {
    .cbd-hairline__rule {
        width: 110px;
    }
}

.cbd-hairline__flags {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.cbd-hairline__flag {
    display: block;
    width: 22px;
    height: auto;
}

.cbd-hairline__label {
    font-family: var(--font-serif);
    font-size: 18px;
    line-height: 1.2;
    letter-spacing: 1.5px;
    color: var(--primary);
    white-space: nowrap;
}

@media (min-width: 768px) {
    .cbd-hairline__label {
        font-size: 20px;
    }
}

.cbd-hairline__teaser {
    display: block;
    margin-top: 12px;
    font-family: var(--font-sans-serif);
    font-size: 11px;
    line-height: 1.5;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--secondary);
}

.cbd-hairline:hover .cbd-hairline__rule {
    opacity: 1;
}

/* --- Item 10: Reihenfolge der Standorte-Buttons auf der Startseite ------- */
.our-company .locations__nav--stacked {
    display: block;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}

.our-company .locations__nav--stacked .locations__nav-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
}

.our-company .locations__nav--stacked .locations__nav-row--cross-border,
.our-company .locations__nav--stacked .locations__nav-row--contact {
    margin-top: 24px;
}

@media (min-width: 576px) {
    .our-company .locations__nav--stacked .locations__nav-row--cities {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 24px;
    }

    .our-company .locations__nav--stacked .locations__nav-row--contact {
        justify-items: center;
    }

    .our-company .locations__nav--stacked .locations__nav-row--contact .locations__nav-item {
        width: 100%;
        max-width: 338px;
    }
}

/* --- Item 7: Introtext der Startseite ------------------------------------ */
.section--intro-lead .intro-lead {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
}

.section--intro-lead .intro-lead__statement p {
    margin: 0;
    padding-top: 24px;
    position: relative;
    font-family: var(--font-serif);
    font-size: 24px;
    line-height: 1.4;
    letter-spacing: 0.5px;
    color: var(--primary);
}

.section--intro-lead .intro-lead__statement p::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 44px;
    height: 2px;
    background: var(--secondary);
}

.section--intro-lead .intro-lead__body p {
    font-size: 17px;
    line-height: 1.75;
    text-align: left;
}

.section--intro-lead .intro-lead__body p:last-child {
    margin-bottom: 0;
}

@media (min-width: 992px) {
    .section--intro-lead .intro-lead {
        grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
        gap: 56px;
        align-items: start;
    }

    .section--intro-lead .intro-lead__statement p {
        font-size: 30px;
    }
}

/* Oszi: Die alten Regeln `.our-company .locations__nav-item:nth-child(n)` setzen
   grid-area a..d. In der neuen, gestapelten Struktur liegen die Items in eigenen
   Zeilen-Containern, in denen es diese Bereiche nicht gibt - dadurch wurden die
   Buttons falsch platziert und einer verschwand. */
.our-company .locations__nav--stacked .locations__nav-item {
    grid-area: auto;
}

.our-company .locations__nav--stacked .locations__nav-row--cities,
.our-company .locations__nav--stacked .locations__nav-row--contact {
    justify-items: center;
}

.our-company .locations__nav--stacked .locations__nav-item {
    width: 100%;
}

@media (min-width: 576px) {
    .our-company .locations__nav--stacked .locations__nav-row--contact .locations__nav-item {
        max-width: 338px;
    }
}

/* --- Oszi: Cross-Border-Button braucht einen sichtbaren Hover ------------- */
.cbd-hairline {
    padding: 18px 12px;
    transition: background-color 0.25s ease;
}

.cbd-hairline:hover,
.cbd-hairline:focus-visible {
    background-color: var(--default);
}

/* --- Item 3b: Taetigkeitsbereiche-Seite, zugeklappt wie tatig-1-index.jpg --
   Werte am freigegebenen Entwurf gemessen: Haarlinie #e7e7e7, Chevron ein
   neutrales Hellgrau, Beschriftung 16px Serif in --primary, Hintergrund weiss.
   Bei Hover und im geoeffneten Zustand werden Linie, Text und Chevron gold,
   der Hintergrund bleibt in jedem Zustand transparent. */

/* `.box.bg` faerbt grau und `.box.link` erzwingt 132px feste Hoehe. Beide
   gewinnen mit 0-2-0 gegen einfache Klassen, deshalb hier mit 0-3-0
   zuruecknehmen - sonst bleibt die gefuellte Kachel stehen. */
.filter-bereiche .filter-rubrik .box,
.filter-bereiche .filter-rubrik .box.bg,
.filter-bereiche .filter-rubrik .box.link {
    height: 100%;
    min-height: 0;
    max-height: none;
    margin-top: 0;
    margin-bottom: 0;
    background-color: transparent;
}

.filter-bereiche .filter-rubrik .box a.item,
.filter-bereiche .filter-rubrik .box a.item.collapsed {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    height: 100%;
    padding: 15px 2px;
    background: transparent;
    border-bottom: 1px solid var(--hairline);
    color: var(--primary);
    font-family: var(--font-serif);
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: 0.3px;
    text-align: left;
}

.filter-bereiche .filter-rubrik .box a.item:hover,
.filter-bereiche .filter-rubrik .box a.item:focus-visible,
.filter-bereiche .filter-rubrik .box a.item.collapsed:hover,
.filter-bereiche .filter-rubrik .box a.item.collapsed:focus-visible,
.filter-bereiche .filter-rubrik .box a.item:not(.collapsed) {
    background: transparent;
    color: var(--secondary);
    border-bottom-color: var(--secondary);
}

.filter-bereiche .filter-rubrik .box a .outer {
    width: auto;
    margin: 0;
    text-align: left;
    line-height: 1.4;
}

.filter-bereiche .filter-rubrik .box a .tile-chevron {
    flex: 0 0 auto;
    margin: 0 0 0 12px;
    font-size: 13px;
    color: #c6c6c6;
}

.filter-bereiche .filter-rubrik .box a.item:hover .tile-chevron,
.filter-bereiche .filter-rubrik .box a.item:not(.collapsed) .tile-chevron {
    color: var(--secondary);
}

.filter-bereiche .filter-rubrik .box a.item.collapsed .tile-chevron i {
    transform: rotate(-90deg);
}

.filter-bereiche .filter-rubrik .box a.item:not(.collapsed) .tile-chevron i {
    transform: rotate(180deg);
}

/* ==========================================================================
   Oszi - Item 6: Karriere, Zielgruppen-Struktur (karriere-2-zielgruppen.jpg)
   ========================================================================== */
.career-groups {
    padding-bottom: 40px;
}

.career-groups__lead {
    margin: 0 0 22px;
    font-family: var(--font-serif);
    font-size: 20px;
    line-height: 1.6;
    letter-spacing: 0.5px;
    color: var(--primary);
    text-align: center;
}

/* Die beiden bisherigen Einleitungsabsaetze der Seite. Zentriert, schmaleres
   Mass, damit sie unter der Serifenzeile ruhig stehen. */
.career-groups__intro {
    max-width: 760px;
    margin: 0 auto 46px;
    text-align: center;
}

.career-groups__intro p {
    margin: 0 0 12px;
    font-size: 16px;
    line-height: 1.7;
}

.career-groups__intro p:last-child {
    margin-bottom: 0;
}

.career-group {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
    padding: 38px 0;
    border-top: 1px solid var(--hairline);
}

.career-group:last-child {
    border-bottom: 1px solid var(--hairline);
}

@media (min-width: 768px) {
    .career-group {
        grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
        gap: 48px;
    }

    .career-group__head {
        padding-right: 24px;
    }
}

.career-group__kicker {
    display: block;
    margin-bottom: 12px;
    font-family: var(--font-sans-serif);
    font-size: 11px;
    line-height: 1.5;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--secondary);
}

.career-group__title {
    margin: 0;
    font-family: var(--font-serif);
    font-size: 21px;
    line-height: 1.35;
    letter-spacing: 0.5px;
    color: var(--primary);
    text-align: left;
    /* Oszi: "Rechtsanwaltsfachangestellten" ist ein einzelnes langes Wort und
       lief sonst in die rechte Spalte hinein. Trennung nach Sprache, plus ein
       harter Umbruch als Rueckfall. Das Dokument ist de-DE, das reicht. */
    hyphens: auto;
    -webkit-hyphens: auto;
    overflow-wrap: break-word;
}

@media (min-width: 768px) {
    .career-group__title {
        font-size: 23px;
    }
}

.career-group__text p {
    margin: 0 0 12px;
    font-size: 16px;
    line-height: 1.6;
}

.career-group__text p:last-child {
    margin-bottom: 0;
}

.career-group__links {
    list-style: none;
    margin: 22px 0 0;
    padding: 0;
    border-top: 1px solid var(--hairline);
}

.career-group__links li {
    border-bottom: 1px solid var(--hairline);
}

.career-group__links li:before {
    display: none;
    content: none;
}

.career-group__links a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 14px 0;
    text-decoration: none;
    color: var(--primary);
    transition: color 0.2s ease;
}

.career-group__links a:hover,
.career-group__links a:focus-visible {
    color: var(--secondary);
}

.career-group__link-label {
    font-family: var(--font-serif);
    font-size: 16px;
    line-height: 1.4;
    letter-spacing: 0.3px;
}

.career-group__link-place {
    flex: 0 0 auto;
    font-family: var(--font-sans-serif);
    font-size: 11px;
    line-height: 1.5;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--secondary);
    text-align: right;
}

.career-groups__footer {
    margin-top: 60px;
    padding: 40px;
    background: var(--highlight);
    text-align: center;
}

.career-groups__footer-title {
    margin: 0 0 10px;
    font-family: var(--font-serif);
    font-size: 20px;
    line-height: 1.3;
    letter-spacing: 0.5px;
    color: var(--primary);
    text-align: center;
}

.career-groups__footer-text p {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
}

.career-groups__footer-link {
    margin: 16px 0 0;
    font-size: 13px;
}

.career-groups__footer-link a {
    color: var(--secondary);
}

