/* --- _aalborgbutton.css --- */
/* =============================================
   Aalborg Button — WPBakery custom button
   ============================================= */

.aalborg-button {
    --aalborg-button-bg: var(--accent-color, #C5F8B6);
    --aalborg-button-color: var(--text-color, #000);
    --aalborg-button-border-color: var(--accent-color, #C5F8B6);

    display: inline-flex;
    align-items: center;
    gap: 3rem;
    min-height: 4rem;
    max-width: 100%;
    padding: 0.625rem 1.5rem;
    border: 0.09375rem solid var(--aalborg-button-border-color);
    background-color: var(--aalborg-button-bg);
    color: var(--aalborg-button-color);
    text-decoration: none;
    font-family: "Inter", sans-serif;
    font-weight: 300;
    font-size: 1.25rem;
    line-height: 120%;
    letter-spacing: 0;
    transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, opacity 0.25s ease;
    cursor: pointer;
}

.aalborg-button__text {
    min-width: 0;
}

.aalborg-button__icon {
    flex-shrink: 0;
    width: 0.8125rem;
    height: 0.8125rem;
    color: currentColor;
}

.aalborg-button--grey-border {
    --aalborg-button-bg: var(--light-bg-color, #EDEDED);
    --aalborg-button-color: var(--text-color, #000);
    --aalborg-button-border-color: var(--black-color, #000);
}

.aalborg-button--grey-border:hover,
.aalborg-button--grey-border:focus,
.aalborg-button--grey-border:focus-visible {
    background-color: var(--white-color, #fff);
    color: var(--text-color, #000);
    border-color: var(--black-color, #000);
    text-decoration: none;
}

.aalborg-button--grey {
    --aalborg-button-bg: var(--light-bg-color, #EDEDED);
    --aalborg-button-color: var(--text-color, #000);
    --aalborg-button-border-color: transparent;
}

.aalborg-button--grey:hover,
.aalborg-button--grey:focus,
.aalborg-button--grey:focus-visible {
    background-color: #d9d9d9;
    color: var(--text-color, #000);
    border-color: transparent;
    text-decoration: none;
}

.aalborg-button.aalborg-button--job-apply,
.aalborg-button.aalborg-button--job-share {
    --aalborg-button-bg: var(--light-bg-color, #EDEDED);
    --aalborg-button-color: var(--text-color, #000);
    --aalborg-button-border-color: var(--black-color, #000);
}

.aalborg-button.aalborg-button--job-apply:hover,
.aalborg-button.aalborg-button--job-apply:focus,
.aalborg-button.aalborg-button--job-apply:focus-visible,
.aalborg-button.aalborg-button--job-share:hover,
.aalborg-button.aalborg-button--job-share:focus,
.aalborg-button.aalborg-button--job-share:focus-visible {
    background-color: #d9d9d9;
    color: var(--text-color, #000);
    border-color: var(--black-color, #000);
    text-decoration: none;
}

.aalborg-button--white-border {
    --aalborg-button-bg: var(--white-color, #fff);
    --aalborg-button-color: var(--text-color, #000);
    --aalborg-button-border-color: var(--black-color, #000);
}

.aalborg-button--white-border:hover,
.aalborg-button--white-border:focus,
.aalborg-button--white-border:focus-visible {
    background-color: var(--light-bg-color, #EDEDED);
    color: var(--text-color, #000);
    border-color: var(--black-color, #000);
    text-decoration: none;
}

.aalborg-button--accent {
    --aalborg-button-bg: var(--accent-color, #C5F8B6);
    --aalborg-button-color: var(--text-color, #000);
    --aalborg-button-border-color: var(--accent-color, #C5F8B6);
}

.aalborg-button--accent:hover,
.aalborg-button--accent:focus,
.aalborg-button--accent:focus-visible {
    background-color: #a8e89a;
    color: var(--text-color, #000);
    border-color: #a8e89a;
    text-decoration: none;
}

.aalborg-button--white {
    --aalborg-button-bg: var(--white-color, #fff);
    --aalborg-button-color: var(--text-color, #000);
    --aalborg-button-border-color: transparent;
}

.aalborg-button--white:hover,
.aalborg-button--white:focus,
.aalborg-button--white:focus-visible {
    background-color: rgba(0, 0, 0, 0.08);
    color: var(--text-color, #000);
    border-color: transparent;
    text-decoration: none;
}

.aalborg-button--inverse {
    --aalborg-button-bg: var(--black-color, #000);
    --aalborg-button-color: var(--white-color, #fff);
    --aalborg-button-border-color: var(--white-color, #fff);
}

.aalborg-button--inverse:hover,
.aalborg-button--inverse:focus,
.aalborg-button--inverse:focus-visible {
    background-color: rgba(0, 0, 0, 0.75);
    color: var(--white-color, #fff);
    border-color: var(--accent-color, #C5F8B6);
    text-decoration: none;
}

@media (max-width: 48rem) {
    .aalborg-button {
        width: 51%;
        justify-content: space-between;
        gap: 1.5rem;
        min-height: 3.5rem;
        padding: 0.875rem 1.25rem;
        font-size: 1rem;
        margin-bottom: 2rem;
    }
}

@media (max-width: 36rem) {
    .aalborg-button {
        width: 100%;
        justify-content: space-between;
        gap: 1.5rem;
        min-height: 3.5rem;
        padding: 0.875rem 1.25rem;
        font-size: 1rem;
        margin-bottom: 2rem;
    }
}

/* --- _accordion.css --- */
/* =============================================
   making the grey of the accordion dropdown
   equal to the standard text color
   ============================================= */

.vc_tta.vc_tta-color-grey .vc_tta-panels-container .vc_tta-panels .vc_tta-panel .vc_tta-panel-title > a {
    color: var(--text-color);
}

/* =============================================
   FAQ-specific styles
   ============================================= */

.vc_tta.vc_tta-accordion.faq-accordion .vc_tta-panel-title > a {
    display: flex;
    justify-content: space-between;
}

.vc_tta.vc_tta-accordion.faq-accordion .vc_tta-panel-title > a .vc_tta-title-text {
    font-size: 1.250rem;
    font-weight: 300;
    line-height: 120%;
}

.vc_tta.vc_tta-accordion.faq-accordion .vc_tta-panel-title > a i {
    transform: rotate(-45deg);
    position: relative;
    margin: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

.container.faq-accordion.black-border.big-gap {
    padding: 0;
}

.faq-accordion.light .faq-accordion-child {
    background-color: var(--white-color);
}

.faq-accordion.dark .faq-accordion-child {
    background-color: var(--light-bg-color);
}

.faq-accordion.black-border .faq-accordion-child {
    background-color: var(--white-color);
    border: 0.09375rem solid var(--black-color);
}

.faq-accordion.big-gap .faq-accordion-child {
    margin: 2rem 0;
}

.faq-accordion.small-gap .faq-accordion-child {
    margin: 1rem 0;
}

.faq-accordion .faq-accordion-child.open .accordion-child-container {
    grid-template-rows: 1fr;
}

.faq-accordion .acc-headline-container {
    padding: 1.25rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
}

.faq-accordion .acc-headline-container .ctablock__btn-icon {
    flex-shrink: 0;
    transition: var(--transition);
}

.faq-accordion .faq-accordion-child.open .acc-headline-container .ctablock__btn-icon {
    transform: scaleY(-1);
}

.faq-accordion .accordion-child-headline {
    margin: 0;
}

.faq-accordion .accordion-headline {
    margin-bottom: 0;
}

.faq-accordion .accordion-child-container {
    display: grid;
    grid-template-rows: 0fr;
    transition: var(--transition);
}

.faq-accordion .accordion-child-container > .accordion-child-content {
    overflow: hidden;
    min-height: 0;
    padding: 0 25px;
}

/* =============================================
   FAQ Accordion Buttons
   ============================================= */

.faq-accordion-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    margin: 2rem 0;
    max-width: 100%;
}

.faq-acc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    flex: 1 1 auto;
    min-width: calc(50% - 1rem);
    padding: 1.25rem 1.5rem;
    background-color: var(--light-bg-color, #EDEDED);
    color: var(--text-color, #000);
    text-decoration: none;
    transition: var(--transition);
}

.faq-acc-btn:hover {
    text-decoration: none;
    color: var(--text-color, #000);
    opacity: 0.85;
}

.faq-acc-btn__label {
    font-size: 1.250rem;
    font-weight: 300;
    line-height: 120%;
    margin-right: 4rem;
}

.faq-acc-btn__icon {
    flex-shrink: 0;
}

/* =============================================
   FAQ Accordion Buttons – Mobile
   ============================================= */

@media (max-width: 768px) {
    .faq-accordion-buttons {
        flex-direction: column;
        gap: 2rem;
        margin-bottom: 4rem;
    }

    .faq-acc-btn {
        width: 100%;
        min-width: 100%;
        flex: 1 0 100%;
    }

    .faq-acc-btn__label {
        margin-right: 0.5rem;
    }
}


/* --- _attachments.css --- */
/* =============================================
   Post Attachments — two-column downloads + excerpt
   ============================================= */
.post-attachments {
    margin-bottom: 80px;
}

.post-attachments__col--excerpt {
    display: flex;
    align-items: flex-start;
}

/* Title */
.post-attachments__title {
    text-transform: uppercase;
    margin-bottom: 12px;
}

/* File list */
.post-attachments__list {
    margin: 0;
    padding: 0;
}

.post-attachments__item--hidden {
    display: none;
}


/* File link */
.post-attachments__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 0;
    text-decoration: none;
    color: var(--text-color, #333);
    font-weight: 400;
    font-size: 16px;
    line-height: 120%;
    letter-spacing: 0;
    transition: opacity .15s ease;
}

.post-attachments__link:hover {
    opacity: .65;
    color: var(--text-color, #333);
}

.post-attachments__icon {
    flex-shrink: 0;
    opacity: .6;
}

.post-attachments__name {
    font-weight: 500;
    word-break: break-word;
}

/* "more ↘" toggle */
.post-attachments__toggle {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-top: 6px;
    padding: 0;
    border: none;
    background: none;
    font-size: .85rem;
    color: var(--text-color);
    cursor: pointer;
    font-family: inherit;
}

.post-attachments__toggle:hover {
    opacity: .65;
}

.post-attachments__toggle-arrow {
    display: inline-block;
    transition: transform .2s ease;
}

.post-attachments.is-expanded .post-attachments__toggle-arrow {
    transform: rotate(-90deg);
}

/* Excerpt */
.post-attachments__excerpt {
    margin: 0;
}



/* --- _contactform.css --- */
/* =============================================
   Contact Form 7 — Aalborg Styling
   ============================================= */

/* --- Heading ---
   Inherits from global h2: line-height 120%, letter-spacing 0, margin-bottom 40px
   Inherits from body:      font-family "Inter", color --text-color
   Override:                 font-size 48px, font-weight 300 (browser h2 default is bold) */
.aalborg-contact-heading {
    font-weight: 300;
}

/* --- Form grid --- */
.aalborg-contact-form .form-row {
    display: flex;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
}

.aalborg-contact-form .form-row .form-col {
    flex: 1 1 0;
    position: relative;
}

.aalborg-contact-form .form-row .form-col-full {
    flex: 1 1 100%;
}

/* --- Arrow SVG icon — vertically centered inside each field ---
   Same path as ctablock.php: M0.75 0.75L12 12M12 12V3.5625M12 12H3.5625 */
.aalborg-contact-form .form-col::after {
    content: '';
    position: absolute;
    right: 1rem;
    top: 40%;
    transform: translateY(-50%);
    width: 0.8125rem;
    height: 0.8125rem;
    background: url("data:image/svg+xml,%3Csvg width='13' height='13' viewBox='0 0 13 13' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.75 0.75L12 12M12 12V3.5625M12 12H3.5625' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain;
    pointer-events: none;
    z-index: 1;
}

/* Textarea column: arrow top-right instead of vertically centered */
.aalborg-contact-form .form-col-full::after {
    top: 1.125rem;
    transform: none;
}

/* --- CF7 wraps each field in a span — make it block --- */
.aalborg-contact-form .wpcf7-form-control-wrap {
    display: block;
}

/* --- Inputs & Textarea ---
   font: inherit pulls font-family "Inter" + font-weight 300 from body
   Override: font-size 1.25rem (20px), line-height 120% per design spec */
.aalborg-contact-form input[type="text"],
.aalborg-contact-form input[type="email"],
.aalborg-contact-form input[type="tel"],
.aalborg-contact-form textarea {
    font: inherit;
    line-height: 120%;
    width: 100%;
    padding: 1rem 2.75rem 1rem 1.125rem;
    background: var(--white-color);
    border: 1px solid var(--text-color);
    border-radius: 0;
    outline: none;
    transition: border-color 0.2s ease;
    -webkit-appearance: none;
    appearance: none;
}

.aalborg-contact-form input[type="text"]::placeholder,
.aalborg-contact-form input[type="email"]::placeholder,
.aalborg-contact-form input[type="tel"]::placeholder,
.aalborg-contact-form textarea::placeholder {
    color: var(--neutral-color);
    opacity: 1;
}

.aalborg-contact-form input[type="text"]:focus,
.aalborg-contact-form input[type="email"]:focus,
.aalborg-contact-form input[type="tel"]:focus,
.aalborg-contact-form textarea:focus {
    border-color: var(--secondary-color);
}

.aalborg-contact-form textarea {
    min-height: 9.375rem;
    resize: vertical;
}

/* --- Submit ---
   Arrow baked into the button as background-image (no wrapper needed).
   Button right-edge flushes with the fields above via margin-left: auto. */
.aalborg-contact-form input[type="submit"] {
    display: block;
    margin-left: auto;
    margin-top: 0.5rem;
    font: inherit;
    line-height: 120%;
    padding: 0.875rem 3rem 0.875rem 1.5rem;
    color: var(--text-color);
    background-color: var(--light-bg-color);
    background-image: url("data:image/svg+xml,%3Csvg width='13' height='13' viewBox='0 0 13 13' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.75 0.75L12 12M12 12V3.5625M12 12H3.5625' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    background-size: 0.8125rem 0.8125rem;
    border: none;
    cursor: pointer;
    transition: var(--transition);
    -webkit-appearance: none;
    appearance: none;
}

.aalborg-contact-form input[type="submit"]:hover {
    background-color: #ddd;
}

/* --- Validation --- */
.aalborg-contact-form .wpcf7-not-valid {
    border-color: #d32f2f;
}

.aalborg-contact-form .wpcf7-not-valid-tip {
    color: #d32f2f;
    font-size: 1rem;
    margin-top: 0.25rem;
}

.aalborg-contact-form .wpcf7-response-output {
    margin: 1rem 0 0;
    padding: 0.75rem 1rem;
    border: 1px solid var(--neutral-color);
    font-size: 1rem;
}

/* --- Responsive --- */
@media (max-width: 48rem) {
    .aalborg-contact-form .form-row {
        flex-direction: column;
        gap: 1rem;
    }
}

/* --- _ctablock.css --- */
/* ===========================================
   CTA Block ("Let's Talk")
   =========================================== */

section.ctablock {
    position: relative;
    overflow: hidden;
    min-height: 31.25rem;          /* 500px */
    display: flex;
    align-items: center;
}

.ctablock--dark {
    background-color: var(--dark-bg-color, #1A1A1A);
    color: var(--white-color, #fff);
}

/* Inner container — aligned with .wpb-content-wrapper rows */
.ctablock__inner {
    width: 100%;
    max-width: var(--container-size);
    margin-left: auto;
    margin-right: auto;
    padding: 1.25rem;         /* 20px */
}

/* Tagline — small uppercase label */
.ctablock__tagline {
    display: block;
    font-family: "Inter", sans-serif;
    font-weight: 400;
    font-size: 1rem;               /* 16px */
    line-height: 120%;
    letter-spacing: 0;
    text-transform: uppercase;
    margin-bottom: 1rem;           /* 16px */
    color: var(--white-color, #fff);
}

/* Headline */
.ctablock__headline {
    font-family: "Inter", sans-serif;
    font-weight: 300;
    font-size: 3rem;               /* 48px */
    line-height: 120%;
    letter-spacing: 0;
    margin: 0 0 2.25rem;           /* 36px */
    color: var(--white-color, #fff);
}

/* Button row */
.ctablock__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;                     /* 32px */
    align-items: center;
    container-type: inline-size;
}

/* Shared button base */
.ctablock__btn {
    display: inline-flex;
    align-items: center;
    gap: 3rem;                     /* 48px — Abstand Text ↔ SVG (doppelter Randabstand) */
    min-height: 4rem;              /* 64px — wächst bei mehrzeiligem Text mit */
    padding: 0.625rem 1.5rem;     /* 10px 24px */
    font-family: "Inter", sans-serif;
    font-weight: 300;
    font-size: 1.25rem;           /* 20px */
    line-height: 120%;
    letter-spacing: 0;
    text-decoration: none;
    border: 0.0625rem solid transparent; /* 1px */
    transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
    cursor: pointer;
}

/* Primary button (filled) */
.ctablock__btn--primary {
    background-color: var(--accent-color, #C5F8B6);
    color: var(--text-color, #000);
    border-color: var(--accent-color, #C5F8B6);
}

.ctablock__btn--primary:hover,
.ctablock__btn--primary:focus {
    background-color: #a8e89a;
    border-color: #a8e89a;
    color: var(--text-color, #000);
}

/* Secondary button (outline) */
.ctablock__btn--secondary {
    background-color: transparent;
    color: var(--white-color, #fff);
    border-color: var(--white-color, #fff);
    border-width: 0.09375rem;      /* 1.5px */
}

.ctablock__btn--secondary:hover,
.ctablock__btn--secondary:focus {
    background-color: rgba(255, 255, 255, 0.15);
    border-color: var(--accent-color, #C5F8B6);
    color: var(--white-color, #fff);
}

/* Button icon */
.ctablock__btn-icon {
    flex-shrink: 0;
    width: 0.8125rem;             /* 13px */
    height: 0.8125rem;
}

/* ===========================================
   Light Scheme (.ctablock--light)
   =========================================== */

.ctablock--light {
    background-color: var(--light-bg-color, #EDEDED);
    color: var(--text-color, #000);
}

.ctablock--light .ctablock__tagline {
    color: var(--text-color, #000);
}

.ctablock--light .ctablock__headline {
    color: var(--text-color, #000);
}

.ctablock--light .ctablock__btn--primary {
    background-color: transparent;
    color: var(--text-color, #000);
    border-color: var(--text-color, #000);
    border-width: 0.09375rem;      /* 1.5px */
}

.ctablock--light .ctablock__btn--primary:hover,
.ctablock--light .ctablock__btn--primary:focus {
    background-color: rgba(0, 0, 0, 0.08);
    border-color: var(--text-color, #000);
    color: var(--text-color, #000);
}

.ctablock--light .ctablock__btn--secondary {
    background-color: transparent;
    color: var(--text-color, #000);
    border-color: var(--text-color, #000);
}

.ctablock--light .ctablock__btn--secondary:hover,
.ctablock--light .ctablock__btn--secondary:focus {
    background-color: rgba(0, 0, 0, 0.08);
    border-color: var(--text-color, #000);
    color: var(--text-color, #000);
}

/* ---- Responsive: Buttons reagieren auf Container-Breite ---- */
@container (max-width: 40rem) {    /* Buttons passen nicht nebeneinander */
    .ctablock__btn {
        width: 80%;
        justify-content: space-between;
    }
}

@container (max-width: 31.25rem) { /* ~500px — Buttons volle Breite */
    .ctablock__btn {
        width: 100%;
    }
}

/* ---- Responsive: Viewport ---- */
@media (max-width: 36rem) {        /* ~576px */
    .ctablock__headline {
        font-size: 2rem;           /* 32px */
    }

    .ctablock__btn {
        font-size: 1rem;           /* 16px */
        gap: 1.5rem;               /* mobil: gleicher Abstand wie Padding rechts */
    }
}


/* --- _downloadlist.css --- */
/* =============================================
   Download List — grouped by category
   ============================================= */

.downloadlist {
    --downloadlist-hover-bg: rgba(0, 0, 0, .03);
    padding: 80px 0;
}

.downloadlist--light {
    background-color: var(--white-color);
    color: var(--text-color);
}

.downloadlist--dark {
    --downloadlist-hover-bg: rgba(255, 255, 255, .05);
    background-color: var(--dark-bg-color);
    color: var(--white-color);
}

.downloadlist__intro {
    color: var(--neutral-color);
    margin-bottom: 48px;
    max-width: 680px;
}

.downloadlist--dark .downloadlist__intro {
    color: #a5a5a5;
}

/* Category filter bar */
.downloadlist__filters {
    margin-bottom: 40px;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(0, 0, 0, .08);
}

.downloadlist--dark .downloadlist__filters {
    border-bottom-color: rgba(255, 255, 255, .1);
}

.downloadlist__filter-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.downloadlist__filter-tag {
    display: inline-block;
    padding: 7px 16px;
    font-size: clamp(0.875rem, 1.5vw, 1.25rem);
    line-height: 120%;
    font-weight: 400;
    border: 1px solid var(--light-bg-color);
    border-radius: 0;
    background: transparent;
    color: rgba(26, 26, 26, .8);
    cursor: pointer;
    transition: var(--transition);
    white-space: nowrap;
    font-family: inherit;
}

.downloadlist--dark .downloadlist__filter-tag {
    border-color: rgba(255, 255, 255, .15);
    color: rgba(255, 255, 255, .7);
}

.downloadlist__filter-tag:hover {
    border-color: var(--secondary-color);
    color: var(--secondary-color);
}

.downloadlist--dark .downloadlist__filter-tag:hover {
    border-color: var(--primary-color);
    color: var(--primary-color);
}

.downloadlist__filter-tag.is-active {
    background: var(--secondary-color);
    border-color: var(--secondary-color);
    color: var(--white-color);
}

.downloadlist--dark .downloadlist__filter-tag.is-active {
    background: var(--primary-color);
    border-color: var(--primary-color);
    color: var(--dark-bg-color);
}

.downloadlist__filter-count {
    opacity: .5;
    font-size: .85em;
}

/* Category group */
.downloadlist__group {
    margin-bottom: 48px;
}

.downloadlist__group:last-child {
    margin-bottom: 0;
}

.downloadlist__group-title {
    font-size: clamp(1.125rem, 2vw, 1.5rem);
    font-weight: 600;
    margin-bottom: 20px;
    padding-bottom: 0;
    border-bottom: none;
}

/* 2-column card grid */
.downloadlist__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

/* Single card item */
.downloadlist__item {
    display: flex;
    max-height: 140px;
}

/* Card wrapper (a or div) */
.downloadlist__card {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    width: 100%;
    background: transparent;
    border-radius: 0;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: background-color .25s ease;
}

a.downloadlist__card:hover,
a.downloadlist__card:focus {
    background-color: var(--downloadlist-hover-bg);
    color: inherit;
    text-decoration: none;
}

.downloadlist--dark .downloadlist__card {
    background: transparent;
}

/* Thumbnail (left side) */
.downloadlist__thumb {
    flex-shrink: 0;
    width: 140px;
    min-height: 100px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e9e9e9;
}

.downloadlist--dark .downloadlist__thumb {
    background: rgba(255, 255, 255, .08);
}

.downloadlist__thumb-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.downloadlist__thumb-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    opacity: .25;
}

.downloadlist__thumb-placeholder svg {
    width: 40px;
    height: 40px;
}

/* Card body (right side) */
.downloadlist__card-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    padding: 16px 20px;
    flex: 1;
    min-width: 0;
}

/* Header row: download icon + title */
.downloadlist__card-header {
    display: flex;
    align-items: center;
    gap: 8px;
}

.downloadlist__item-icon {
    flex-shrink: 0;
    opacity: .45;
}

.downloadlist--dark .downloadlist__item-icon {
    opacity: .7;
}

.downloadlist__item-title {
    font-weight: 500;
    font-size: 1rem;
    line-height: 1.35;
    word-break: break-word;
    text-decoration: underline;
}

.downloadlist__item-version {
    font-weight: 400;
    font-size: .8rem;
    color: var(--neutral-color);
}

.downloadlist__item-desc {
    font-size: .8rem;
    line-height: 1.4;
    color: var(--neutral-color);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.downloadlist--dark .downloadlist__item-desc {
    color: #a5a5a5;
}

/* Meta: file type badge + size */
.downloadlist__item-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: .75rem;
    color: var(--neutral-color);
    margin-top: 2px;
}


.downloadlist__item-size {
    color: var(--neutral-color);
}


/* Empty state */
.downloadlist--empty {
    padding: 40px 0;
    text-align: center;
    color: var(--neutral-color);
}

/* =============================================
   Responsive
   ============================================= */

@media (max-width: 991px) {
    .downloadlist__thumb {
        width: 110px;
    }

    .downloadlist__card-body {
        padding: 12px 16px;
    }
}

@media (max-width: 768px) {
    .downloadlist {
        padding: 48px 0;
    }

    .downloadlist__list {
        grid-template-columns: 1fr;
    }

    .downloadlist__group {
        margin-bottom: 32px;
    }

    .downloadlist__thumb {
        width: 100px;
        min-height: 80px;
    }
}

@media (max-width: 480px) {
    .downloadlist__item {
        max-height: none;
    }

    .downloadlist__card {
        flex-direction: column;
    }

    .downloadlist__thumb {
        width: 100%;
        height: 140px;
    }
}


/* --- _engineeringslider.css --- */
/* =============================================
   Engineering Slider — scroll-hijacked horizontal slider
   ============================================= */

/* Wrapper — creates extra scroll space for the hijacking effect.
   Height is set by JS: sectionHeight + horizontal overflow.       */
.engslider__wrapper {
    position: relative;
}

/* Sticky section — stays pinned while wrapper scrolls past */
.engslider {
    position: sticky;
    top: 0;
    overflow: hidden;
}

/* ---- Header (tagline + headline) ---- */

/* Tagline — inherits font-size from global span styles */
.engslider__tagline {
    display: block;
    font-weight: 400;
    text-transform: uppercase;
    margin-bottom: 1rem;
    color: var(--text-color);
}

/* Headline — font-size, line-height, margin-bottom from global h2 */
.engslider__headline {
    font-weight: 400;
    color: var(--text-color);
}

.engslider__headline strong {
    font-weight: 700;
}

/* ---- Track (horizontal card row) ---- */

.engslider__track {
    display: flex;
    will-change: transform;
}

/* ---- Card ---- */

.engslider__card {
    flex: 0 0 50rem;                         /* 800px */
    width: 50rem;
    height: 30rem;                           /* 480px */
    position: relative;
    display: block;
    overflow: hidden;
    text-decoration: none;
    transition: filter 0.4s ease;
}

.engslider__card:hover {
    filter: brightness(1.2);
}

.engslider__card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    pointer-events: none;
}

/* Overlay — centered on the card (38 rem × 21.875 rem ≈ 608 × 350 px) */
.engslider__card-overlay {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 38rem;                            /* 608px */
    height: 21.875rem;                       /* 350px */
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    pointer-events: none;
}

/* Card label — same visual weight as h2 (global sizing) */
.engslider__card-label {
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 120%;
    font-weight: 400;
    color: var(--light-bg-color);
}

/* Arrow icon (bottom-right of overlay) — 2 rem = 32 px, ~6 px stroke */
.engslider__arrow {
    align-self: flex-end;
    color: var(--light-bg-color);
    width: 2rem;
    height: 2rem;
}

/* =============================================
   Responsive
   ============================================= */

@media (max-width: 62rem) {                  /* ~992px */
    .engslider__header {
        padding-top: 3rem;
    }

    .engslider__card {
        flex-basis: 35rem;                   /* 560px */
        width: 35rem;
        height: 21rem;                       /* 336px */
    }

    .engslider__card-overlay {
        width: 76%;
        height: 73%;
    }
}

@media (max-width: 36rem) {                  /* ~576px */
    .engslider__header {
        padding-top: 2.5rem;
    }

    .engslider__card {
        flex-basis: 85vw;
        width: 85vw;
        height: 52vw;
    }

    .engslider__card-overlay {
        width: 76%;
        height: 73%;
    }

    .engslider__arrow {
        width: 1.5rem;
        height: 1.5rem;
    }
}

/* --- _headerimage.css --- */
section.headerimage {
    position: relative;
    width: 100%;
    display: flex;
    align-items: flex-end;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    overflow: hidden;
}

/* Dark gradient overlay — fades out at 50% from the left */
.headerimage__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(80.84deg, #000000a6 25%, #6660 100%);
    pointer-events: none;
    z-index: 1;
}

/* Content wrapper — positioned in the bottom third */
.headerimage__content {
    position: relative;
    z-index: 2;
    margin-top: auto;
    padding-top: 0;
    padding-bottom: 15vh;
    color: #ffffff;
}

/* Tag line — small uppercase label */
.headerimage__tagline {
    display: inline-block;
    font-size: 16px;
    font-weight: 400;
    text-transform: uppercase;
    line-height: 120%;
    margin-bottom: 16px;
    color: rgba(255, 255, 255, 0.9);
}

/* Headline */
.headerimage__headline_upper {
    font-size: clamp(36px, 5vw, 64px);
    font-weight: 300;
    line-height: clamp(45px, 5.5vw, 80px);
    letter-spacing: -2.5%;
    margin: 0 0 20px;
    color: #ffffff;
}

.headerimage__headline_lower {
    font-size: clamp(36px, 5vw, 64px);
    font-weight: 500;
    line-height: clamp(45px, 5.5vw, 80px);
    margin: 0 0 20px;
    color: #ffffff;
}

/* Subtitle */
.headerimage__subtitle {
    font-size: clamp(16px, 1.6vw, 24px);
    font-weight: 300;
    line-height: 130%;
    letter-spacing: 0;
    margin: 2rem 0;
    color: rgba(255, 255, 255, 0.85);
    max-width: 720px;
}

/* CTA button */
.headerimage__btn {
    display: inline-block;
    padding: 14px 32px;
    font-size: 15px;
    font-weight: 500;
    color: #ffffff;
    border: 2px solid #ffffff;
    border-radius: 4px;
    text-decoration: none;
    transition: background 0.25s ease, color 0.25s ease;
}

.headerimage__btn:hover {
    background: #ffffff;
    color: var(--text-color);
}

/* ---------- Alignment variants ---------- */

/* Default: bottom-left (items already flex-end + left) */
section.headerimage.headerimage--bottom-left {
    align-items: flex-end;
}

section.headerimage.headerimage--bottom-left .headerimage__content {
    text-align: left;
}

/* Center */
section.headerimage.headerimage--center {
    align-items: center;
}

section.headerimage.headerimage--center .headerimage__content {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}

section.headerimage.headerimage--center .headerimage__headline,
section.headerimage.headerimage--center .headerimage__subtitle {
    margin-left: auto;
    margin-right: auto;
}

/* Bottom-center */
section.headerimage.headerimage--bottom-center {
    align-items: flex-end;
}

section.headerimage.headerimage--bottom-center .headerimage__content {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}

section.headerimage.headerimage--bottom-center .headerimage__headline,
section.headerimage.headerimage--bottom-center .headerimage__subtitle {
    margin-left: auto;
    margin-right: auto;
}

/* ---------- Responsive ---------- */

@media (max-width: 991px) {
    .headerimage__content {
        padding-bottom: 10vh;
    }

    .headerimage__headline {
        max-width: 100%;
    }

    .headerimage__subtitle {
        max-width: 100%;
    }
}

@media (max-width: 575px) {
    section.headerimage {
        min-height: 80vh;
    }

    .headerimage__content {
        padding-bottom: 7vh;
    }

    .headerimage__btn {
        width: 100%;
        text-align: center;
    }
}
/* --- _imageoverlay.css --- */
/* ===========================================
   IMAGE OVERLAY — Background image with text on top
   =========================================== */

.imageoverlay {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;      /* vertical = justify-content, horizontal = align-items */
    overflow: hidden;
}

/* Background image — absolutely positioned so inner padding never shifts it */
.imageoverlay::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: inherit;
    background-position: inherit;
    background-size: inherit;
    background-repeat: inherit;
    z-index: 0;
    pointer-events: none;
}

/* Dark overlay — sits between background (z:0) and content (z:2) */
.imageoverlay__overlay {
    position: absolute;
    inset: 0;
    background: #000;
    pointer-events: none;
    z-index: 1;
}

/* Content container */
.imageoverlay__content {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 60px 24px;
    width: 100%;
}

/* ---- Position modifiers ---- */

/* Center (default) */
.imageoverlay--center {
    justify-content: center;
    align-items: center;
}
.imageoverlay--center .imageoverlay__content {
    align-items: center;
    text-align: center;
}

/* Bottom-Left */
.imageoverlay--bottom-left {
    justify-content: flex-end;
    align-items: flex-start;
}
.imageoverlay--bottom-left .imageoverlay__content {
    align-items: flex-start;
    text-align: left;
}

/* Bottom-Center */
.imageoverlay--bottom-center {
    justify-content: flex-end;
    align-items: center;
}
.imageoverlay--bottom-center .imageoverlay__content {
    align-items: center;
    text-align: center;
}

/* Top-Left */
.imageoverlay--top-left {
    justify-content: flex-start;
    align-items: flex-start;
}
.imageoverlay--top-left .imageoverlay__content {
    align-items: flex-start;
    text-align: left;
}

/* Top-Center */
.imageoverlay--top-center {
    justify-content: flex-start;
    align-items: center;
}
.imageoverlay--top-center .imageoverlay__content {
    align-items: center;
    text-align: center;
}

/* ---- Text color modifiers ---- */

.imageoverlay--text-white,
.imageoverlay--text-white .imageoverlay__content {
    color: #fff;
}

.imageoverlay--text-black,
.imageoverlay--text-black .imageoverlay__content {
    color: #000;
}

/* ---- Typography ---- */

.imageoverlay__tagline {
    display: inline-block;
    font-size: 14px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    opacity: 0.85;
}

.imageoverlay__headline {
    font-size: clamp(28px, 4vw, 56px);
    font-weight: 600;
    line-height: 1.15;
    margin: 0;
}

.imageoverlay__subtitle {
    font-size: clamp(16px, 1.8vw, 22px);
    font-weight: 300;
    line-height: 1.5;
    margin: 0;
    max-width: 720px;
    opacity: 0.9;
}

.imageoverlay__text {
    font-size: clamp(14px, 1.4vw, 18px);
    font-weight: 300;
    line-height: 1.6;
    margin: 0;
    max-width: 720px;
    opacity: 0.85;
}

/* ---- Button ---- */

.imageoverlay__btn {
    display: inline-block;
    margin-top: 8px;
    padding: 12px 32px;
    font-size: 15px;
    font-weight: 500;
    text-decoration: none;
    border-radius: 4px;
    transition: var(--transition, all 160ms ease-out);
}

.imageoverlay--text-white .imageoverlay__btn {
    background: var(--primary-color, #FFE621);
    color: #000;
}
.imageoverlay--text-white .imageoverlay__btn:hover {
    background: #fff;
    color: #000;
}

.imageoverlay--text-black .imageoverlay__btn {
    background: var(--secondary-color, #000);
    color: #fff;
}
.imageoverlay--text-black .imageoverlay__btn:hover {
    background: var(--primary-color, #FFE621);
    color: #000;
}

/* ---- Grid layout mode ---- */

.imageoverlay--layout-grid {
    /* Section stretches so the grid content can fill it */
    align-items: stretch;
}

.imageoverlay--layout-grid .imageoverlay__content {
    /* Override flex column from position modifiers — grid is set via inline style */
    flex-direction: unset;
    align-items: unset;
    padding: 0;
    max-width: none;
}

/* Each direct child in grid mode fills its cell and aligns content to start */
.imageoverlay--layout-grid .imageoverlay__content > * {
    min-width: 0;
    min-height: 0;
}

/* Strip WPBakery row/column wrappers so elements sit directly in grid cells */
.imageoverlay--layout-grid .imageoverlay__content > .vc_row {
    display: contents;
}

.imageoverlay--layout-grid .imageoverlay__content > .vc_row > .wpb_column {
    display: contents;
}

.imageoverlay--layout-grid .imageoverlay__content > .vc_row > .wpb_column > .vc_column-inner {
    display: contents;
}

.imageoverlay--layout-grid .imageoverlay__content > .vc_row > .wpb_column > .vc_column-inner > .wpb_wrapper {
    display: contents;
}

/* ---- Responsive ---- */

@media (max-width: 768px) {
    .imageoverlay__content {
        padding-top: 40px;
        padding-bottom: 40px;
    }
}


/* --- _imagescroller.css --- */
/* =============================================
   Image Scroller — horizontal scroll gallery
   ============================================= */

.imagescroller {
    width: 100%;
    position: relative;
    margin: 80px 0;
}

.imagescroller__track {
    display: flex;
    gap: var(--is-gap, 16px);
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    cursor: grab;
    padding-bottom: 0.75rem;

    /* Hide default scrollbar — we use a custom progress bar */
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.imagescroller__track::-webkit-scrollbar {
    display: none;
}

/* ---- Progress bar (same design as Post Slider) ---- */
.imagescroller__progress {
    margin-top: 2.5rem;            /* 40px */
    width: 100%;
    height: 0.3125rem;             /* 5px */
    border-radius: 0.3125rem;
    background-color: var(--light-bg-color);
    position: relative;
    overflow: hidden;
}

.imagescroller__progress-bar {
    height: 100%;
    border-radius: 1rem;
    background-color: var(--dark-bg-color);
    width: 0;
    transition: width 0.15s ease-out;
}

/* Active drag state */
.imagescroller__track.is-dragging {
    cursor: grabbing;
    scroll-snap-type: none;
    user-select: none;
    -webkit-user-select: none;
}

.imagescroller__slide {
    flex: 0 0 auto;
    scroll-snap-align: start;
    height: var(--is-height, 450px);
}

.imagescroller__slide img {
    display: block;
    height: 100%;
    width: auto;
    max-width: none;           /* override global img { max-width:100% } */
    pointer-events: none;      /* prevent image drag ghost */
}

/* ---- Responsive ---- */

@media (max-width: 991px) {
    .imagescroller__slide {
        height: calc(var(--is-height, 450px) * 0.7);
    }
}

@media (max-width: 575px) {
    .imagescroller__slide {
        height: calc(var(--is-height, 450px) * 0.5);
    }
}


/* --- _language-switcher.css --- */
/* =============================================
   Language Switcher — integrated as nav menu item
   ISO-2 codes, no flags
   ============================================= */

/* ---- Desktop: Style as regular menu item ---- */

/* The LI wrapper */
.menu-item-lang-switcher {
    position: relative;
}

/* Trigger link — inherits menu styling, add uppercase */
.menu-item-lang-switcher > a {
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

/* ---- Mobile: Inline display ---- */

.mobile-navigation .menu-item-lang-switcher {
    border-bottom: none;
    margin-top: 24px;
}

.mobile-navigation .menu-item-lang-switcher > a {
    display: inline-block;
    padding-right: 16px;
    border-bottom: none;
}

/* Show languages inline on mobile instead of dropdown */
.mobile-navigation .menu-item-lang-switcher > .sub-menu {
    display: inline-flex !important;
    position: static;
    background: transparent;
    box-shadow: none;
    padding: 0;
    gap: 0;
    opacity: 1;
    visibility: visible;
    transform: none;
}

.mobile-navigation .menu-item-lang-switcher > .sub-menu li {
    margin: 0;
}

.mobile-navigation .menu-item-lang-switcher > .sub-menu li a {
    display: inline-block;
    padding: 14px 16px 14px 0;
    font-size: 20px;
    color: rgba(255, 255, 255, 0.6);
    background: transparent;
    border-bottom: none;
}

.mobile-navigation .menu-item-lang-switcher > .sub-menu li a:hover {
    color: #fff;
    background: transparent;
}


/* --- _personcard.css --- */
/* ===========================================
   Person Card
   =========================================== */

.personcard {
    display: flex;
    align-items: center;
    background: #fff;
}

/* ---- Image ---- */
.personcard__image {
    width: 33%;
    overflow: hidden;
    border-radius: 0.0rem;
    padding-right: 96px;
    padding-top: 25px;
    padding-bottom: 25px;
}

.personcard__image img {
    width: 75%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* ---- Body (text side) ---- */
.personcard__body {
    width: 66%;
    padding-left: 15px;
    min-width: 0;
}

.personcard__name {
    font-size: 24px;
    margin: 0 0 1.1rem;
    color: var(--text-color, #000);
}

.personcard__title {
    font-size: 16px;
    margin: 0 0 0.6rem;
    color: var(--text-color, #000);
}

.personcard__market {
    font-size: 40px;
    margin: 0 0 1.5rem;
    color: var(--text-color, #000);
}

.personcard__email {
    margin-bottom: 0.0rem;
}

.personcard__email,
.personcard__phone {
    font-size: 20px;
}

.personcard__email a,
.personcard__phone a {
    color: var(--text-color, #000);
    text-decoration: none;
    transition: color 0.2s ease;
}

.personcard__email a:hover,
.personcard__phone a:hover {
    opacity: 0.7;
    color: var(--text-color);
}

/* ---- Responsive ---- */
/*@media (min-width: 575.98px) and (max-width: 768px) {*/
/*    .personcard {*/
/*        align-items: center;*/
/*        padding: 0.0rem;*/
/*    }*/

/*    .personcard__image {*/
/*        width: 50%;*/
/*        overflow: hidden;*/
/*        border-radius: 0.0rem;*/
/*        padding-left: 0.0rem;*/
/*        padding-right: 10%;*/
/*        padding-top: 10%;*/
/*        padding-bottom: 10%;*/
/*    }*/

/*    .personcard__body {*/
/*        width: 50%;*/
/*        min-width: 0;*/
/*    }*/
/*}*/

/* ---- Responsive ---- */
@media (max-width: 768px) {
    .personcard {
        flex-direction: column;
        align-items: center;
        text-align: left;
    }

    .personcard__image {
        width: 100%;
        padding-right: 0.0%;
    }

    .personcard__image img {
        width: 100%;
    }

    .personcard__body {
        width: 100%;
        padding-left: 0.0%;
    }

    .personcard__market {
        font-size: 35px;
        margin: 0 0 1.0rem;
        color: var(--text-color, #000);
    }

    .personcard__email,
    .personcard__phone {
        font-size: 15.5px;
    }
}

/* --- _postslider.css --- */
/* =============================================
   Post Slider — horizontal post carousel
   ============================================= */

/* --- Section wrapper (full-width breakout) --- */
section.postslider {
    position: relative;
    overflow: hidden;
}

/* Inner container — uses the site-wide container width */
.postslider__inner {
    width: 100%;
    max-width: var(--container-size);
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.25rem;         /* 20px */
    padding-right: 1.25rem;        /* 20px */
}

/* ---- Header row ---- */
.postslider__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 1.5rem;
    margin-bottom: 3rem;           /* 48px */
}

.postslider__header-left {
    flex: 1 1 0;
    min-width: 0;
}

.postslider__header-right {
    flex: 0 0 auto;
    align-self: flex-end;
    padding-bottom: 0.25rem;
}

/* Tagline */
.postslider__tagline {
    display: block;
    font-weight: 500;
    font-size: 1rem;
    line-height: 120%;
    text-transform: uppercase;
    margin-bottom: 1rem;
    color: var(--dark-green-color);
}

/* Headline — inherits h2 base styles (font-family, line-height, letter-spacing) */
.postslider__headline {
    font-weight: 400;
    font-size: 3rem;
    margin: 0;
    color: var(--text-color);
}

/* Headline <span> — semi-bold emphasis */
.postslider__headline span {
    font-weight: 600;
    line-height: inherit;
    font-size: inherit;
}

/* "All projects" link */
.postslider__link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 400;
    font-size: 1rem;
    line-height: 120%;
    color: var(--text-color);
    text-decoration: underline;
    text-decoration-style: solid;
    text-underline-offset: 0.25rem;
    text-decoration-thickness: 0.0625rem;
    text-decoration-skip-ink: auto;
    transition: opacity 0.2s ease;
}

.postslider__link:hover,
.postslider__link:focus {
    opacity: 0.7;
    color: var(--text-color);
}

.postslider__link-icon {
    flex-shrink: 0;
}

/* ---- Scrollable track ---- */
.postslider__track {
    display: flex;
    gap: 2rem;                     /* 32px between cards */
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    cursor: grab;
    padding-bottom: 0.75rem;

    /* Hide default scrollbar — we use a custom progress bar */
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.postslider__track::-webkit-scrollbar {
    display: none;
}

/* Active drag state */
.postslider__track.is-dragging {
    cursor: grabbing;
    scroll-snap-type: none;
    user-select: none;
    -webkit-user-select: none;
}

/* ---- Card ---- */
.postslider__card {
    flex: 0 0 36.25rem;            /* 580px */
    max-width: 36.25rem;
    min-width: 0;
    scroll-snap-align: start;
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    gap: 2rem;                     /* 32px between image and text */
    transition: opacity 0.2s ease;
}

.postslider__card:hover,
.postslider__card:focus {
    opacity: 0.85;
    color: inherit;
}

/* Card image */
.postslider__card-image {
    width: 100%;
    height: 24.4375rem;            /* 391px */
    overflow: hidden;
    flex-shrink: 0;
}

.postslider__card-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-width: none;
    pointer-events: none;
}

/* Card body (tagline + title) */
.postslider__card-body {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* Card tagline (location) */
.postslider__card-tagline {
    font-weight: 400;
    font-size: 1rem;
    line-height: 120%;
    color: var(--dark-green-color);
}

/* Card title */
.postslider__card-title {
    font-weight: 400;
    font-size: 2rem;
    line-height: 120%;
    margin: 0;
    color: var(--text-color);
}

/* ---- Progress bar ---- */
.postslider__progress {
    margin-top: 2.5rem;            /* 40px */
    width: 100%;
    height: 0.3125rem;             /* 5px */
    border-radius: 0.3125rem;
    background-color: var(--light-bg-color);
    position: relative;
    overflow: hidden;
}

.postslider__progress-bar {
    height: 100%;
    border-radius: 1rem;
    background-color: var(--dark-bg-color);
    width: 0;
    transition: width 0.15s ease-out;
}

/* =============================================
   Responsive
   ============================================= */

@media (max-width: 991px) {
    .postslider__headline {
        font-size: 2.25rem;        /* 36px */
    }

    .postslider__card {
        flex: 0 0 26rem;           /* ~416px */
        max-width: 26rem;
    }

    .postslider__card-image {
        height: 17.5rem;           /* 280px */
    }

    .postslider__card-title {
        font-size: 1.5rem;         /* 24px */
    }
}

@media (max-width: 575px) {
    .postslider__header {
        flex-direction: column;
        align-items: flex-start;
    }

    .postslider__headline {
        font-size: 1.75rem;        /* 28px */
    }

    .postslider__card {
        flex: 0 0 85vw;
        max-width: 85vw;
    }

    .postslider__card-image {
        height: 14rem;             /* 224px */
    }

    .postslider__card-title {
        font-size: 1.25rem;        /* 20px */
    }
}


/* --- _quoteblock.css --- */
/* ===========================================
   Quote Block
   =========================================== */

.aalborg-quote {
    margin: 0;
}

.aalborg-quote__text {
    --aalborg-quote-hang: 0.55em;
    --aalborg-quote-mark-size: 1.25em;
    display: block;
    padding-inline-start: var(--aalborg-quote-hang);
    text-indent: calc(var(--aalborg-quote-hang) * -1);
    quotes: "“" "”" "‘" "’";
    font-size: clamp(1rem, 2vw, 1.25rem);
    text-align: justify;
}

.aalborg-quote__text::before,
.aalborg-quote__text::after {
    font-size: var(--aalborg-quote-mark-size);
    line-height: 0;
}

.aalborg-quote__text::before {
    content: open-quote;
    margin-right: 0.1em;
}

.aalborg-quote__text::after {
    content: close-quote;
    margin-left: 0.1em;
}

.aalborg-quote[lang^="de"] .aalborg-quote__text,
.aalborg-quote[lang^="da"] .aalborg-quote__text {
    quotes: "„" "“" "‚" "‘";
}

.aalborg-quote--size-large .aalborg-quote__text {
    --aalborg-quote-hang: 0.9em;
    --aalborg-quote-mark-size: clamp(2.25rem, 3vw, 2.75rem);;
}

.aalborg-quote--size-fact .aalborg-quote__text {
    --aalborg-quote-hang: 0.75em;
    --aalborg-quote-mark-size: clamp(1.75rem,2vw, 2.25rem);
}

.aalborg-quote--size-small .aalborg-quote__text {
    --aalborg-quote-hang: 0.35em;
    --aalborg-quote-mark-size: clamp(1rem, 1.5vw, 1.25rem);
}

.aalborg-quote--size-fact-small .aalborg-quote__text {
    --aalborg-quote-hang: 0.35em;
    --aalborg-quote-mark-size: clamp(1rem, 1.5vw, 1.25rem);
    color: var(--neutral-color);
}

.aalborg-quote__author {
    display: block;
    width: fit-content;
    margin-top: 1rem;
    margin-inline-start: auto;
    background-image: linear-gradient(transparent 25%, var(--accent-color) 25%, var(--accent-color) 75%, transparent 75%);
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
    font-size: clamp(1rem, 2vw, 1.25rem);
    font-style: italic;
}

.aalborg-quote--size-large .aalborg-quote__author {
    font-size: clamp(2rem, 3vw, 2.5rem);
}

.aalborg-quote--size-fact .aalborg-quote__author {
    font-size: clamp(1.5rem,2vw, 2rem);
}

.aalborg-quote--size-small .aalborg-quote__author {
    font-size: clamp(0.75rem, 1.5vw, 1rem);
}

.aalborg-quote--size-fact-small .aalborg-quote__author {
    font-size: clamp(0.75rem, 1.5vw, 1rem);
}
/* --- _technologyslider.css --- */
/* =============================================
   Technology Slider — horizontal technology carousel
   ============================================= */

/* --- Section wrapper (full-width breakout) --- */
section.techslider {
    position: relative;
    overflow: hidden;
}

/* Inner container — site-wide container width */
.techslider__inner {
    width: 100%;
    max-width: var(--container-size);
    margin-left: auto;
    margin-right: auto;
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}

/* ---- Header row ---- */
.techslider__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 1.5rem;
    margin-bottom: 3rem;
}

.techslider__header-left {
    flex: 1 1 0;
    min-width: 0;
}

.techslider__header-right {
    flex: 0 0 auto;
    align-self: flex-end;
    padding-bottom: 0.25rem;
}

/* Tagline — .text-small sizing from variables.css */
.techslider__tagline {
    display: block;
    font-weight: 400;
    font-size: clamp(0.75rem, 1.5vw, 1rem);
    line-height: 120%;
    text-transform: uppercase;
    margin-bottom: 1rem;
    color: var(--dark-green-color);
}

/* Headline — h2 sizing from variables.css, light weight as base */
.techslider__headline {
    font-weight: 300;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 120%;
    letter-spacing: 0;
    margin: 0;
    color: var(--text-color);
}

/* Headline bold part */
.techslider__headline strong {
    font-weight: 600;
    line-height: inherit;
    font-size: inherit;
}

/* "All technologies" link — .text-small sizing */
.techslider__link {
    display: inline-flex;
    align-items: baseline;
    gap: 0.5rem;
    font-weight: 400;
    font-size: clamp(0.75rem, 1.5vw, 1rem);
    line-height: 120%;
    color: var(--text-color);
    text-decoration: underline;
    text-decoration-style: solid;
    text-underline-offset: 0.25rem;
    text-decoration-thickness: 0.0625rem;
    text-decoration-skip-ink: auto;
    transition: opacity 0.2s ease;
}

.techslider__link:hover,
.techslider__link:focus {
    opacity: 0.7;
    color: var(--text-color);
}

.techslider__link-icon {
    flex-shrink: 0;
    position: relative;
    top: 0.2em;
}

/* ---- Scrollable track ---- */
.techslider__track {
    display: flex;
    gap: 2rem;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    cursor: grab;
    padding-bottom: 0.75rem;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.techslider__track::-webkit-scrollbar {
    display: none;
}

.techslider__track.is-dragging {
    cursor: grabbing;
    scroll-snap-type: none;
    user-select: none;
    -webkit-user-select: none;
}

/* ---- Card ---- */
.techslider__card {
    flex: 0 0 36.25rem;
    max-width: 36.25rem;
    min-width: 0;
    scroll-snap-align: start;
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    gap: 2rem;
    transition: opacity 0.2s ease;
}

.techslider__card:hover,
.techslider__card:focus {
    opacity: 0.85;
    color: inherit;
}

.techslider__card-image {
    width: 100%;
    height: 24.4375rem;
    overflow: hidden;
    flex-shrink: 0;
}

.techslider__card-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-width: none;
    pointer-events: none;
}

.techslider__card-body {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.techslider__card-title {
    display: inline-flex;
    align-items: baseline;
    gap: 0.5rem;
    font-weight: 300;
    font-size: clamp(1.25rem, 2vw, 1.5rem);
    line-height: 120%;
    margin: 0;
    color: var(--text-color);
}

.techslider__card-arrow {
    flex-shrink: 0;
    width: 0.80rem;
    height: 0.80rem;
    margin-left: 1.5rem;
    position: relative;
    top: 0;
}

/* ---- Progress bar ---- */
.techslider__progress {
    margin-top: 2.5rem;
    width: 100%;
    height: 0.3125rem;
    border-radius: 0.3125rem;
    background-color: var(--light-bg-color);
    position: relative;
    overflow: hidden;
}

.techslider__progress-bar {
    height: 100%;
    border-radius: 1rem;
    background-color: var(--dark-bg-color);
    width: 0;
    transition: width 0.15s ease-out;
}

/* =============================================
   Responsive
   ============================================= */

@media (max-width: 991px) {
    section.techslider {
        padding-top: 5rem;
        padding-bottom: 5rem;
    }

    .techslider__card {
        flex: 0 0 26rem;
        max-width: 26rem;
    }

    .techslider__card-image {
        height: 17.5rem;
    }
}

@media (max-width: 575px) {
    section.techslider {
        padding-top: 3rem;
        padding-bottom: 3rem;
    }

    .techslider__header {
        flex-direction: column;
        align-items: flex-start;
    }

    .techslider__card {
        flex: 0 0 85vw;
        max-width: 85vw;
    }

    .techslider__card-image {
        height: 14rem;
    }
}

/* --- _technologytabs.css --- */
/* =============================================
   Technology Tabs — single-technology tab view
   ============================================= */

/* --- Tab navigation bar --- */
.techtabs__nav {
    width: 100%;
    border-bottom: 1px solid var(--light-bg-color);
}

.techtabs__nav-inner {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    max-width: var(--container-size);
    margin: 0 auto;
    padding: 0 1.25rem;
}

/* Tab button */
.techtabs__btn {
    font-family: inherit;
    font-weight: 400;
    font-size: clamp(0.875rem, 1.5vw, 1rem);
    line-height: 120%;
    color: var(--text-color);
    background: transparent;
    border: 1px solid var(--light-bg-color);
    padding: 0.875rem 1.5rem;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
    white-space: nowrap;
}

.techtabs__btn:hover {
    background-color: var(--light-bg-color);
}

/* Active tab */
.techtabs__btn.is-active {
    background-color: var(--text-color);
    color: var(--white-color);
    border-color: var(--text-color);
}

/* --- Tab panels --- */
.techtabs__panel {
    display: none;
}

.techtabs__panel.is-active {
    display: block;
}

/* --- Content layout: text left, image right --- */
.techtabs__content {
    display: flex;
    align-items: stretch;
    gap: 4rem;
    max-width: var(--container-size);
    margin: 0 auto;
    padding: 6rem 1.25rem;
}

.techtabs__text {
    flex: 1 1 50%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
}

.techtabs__image {
    flex: 1 1 50%;
    min-width: 0;
    overflow: hidden;
}

.techtabs__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* --- Tagline — .text-small sizing --- */
.techtabs__tagline {
    display: block;
    font-weight: 400;
    font-size: clamp(0.75rem, 1.5vw, 1rem);
    line-height: 120%;
    text-transform: uppercase;
    margin-bottom: 1.5rem;
    color: var(--text-color);
}

/* --- Headline — h2 sizing, light weight --- */
.techtabs__headline {
    font-weight: 300;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 120%;
    letter-spacing: 0;
    margin: 0 0 2rem;
    color: var(--text-color);
}

/* --- Description — p/span sizing --- */
.techtabs__description {
    font-weight: 300;
    font-size: clamp(1rem, 2vw, 1.25rem);
    line-height: 130%;
    margin: 0;
    color: var(--text-color);
}

/* =============================================
   Responsive
   ============================================= */

@media (max-width: 991px) {
    .techtabs__content {
        gap: 2.5rem;
        padding: 4rem 1.25rem;
    }
}

@media (max-width: 575px) {
    .techtabs__nav-inner {
        overflow-x: auto;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
    }

    .techtabs__content {
        flex-direction: column;
        padding: 3rem 1.25rem;
        gap: 2rem;
    }

    .techtabs__image {
        max-height: 20rem;
    }
}


/* --- _variables.css --- */
:root {
    --primary-color: #FFE621;
    --secondary-color: #000;
    --accent-color: #C5F8B6;
    --neutral-color: #61656E;
    --light-color: #f3f3f3;
    --text-color: #000;
    --white-color: #ffffff;
    --black-color: #000000;
    --dark-bg-color: #1A1A1A;
    --light-bg-color: #EDEDED;
    --dark-green-color: #0D2A02;
    --container-size: 74rem;

    /* Transitions */
    --transition: all 160ms ease-out;

    --wrapper-padding-sm: 80px;
    --wrapper-padding-md: 120px;
    --wrapper-padding-xl: 160px;

    /* Footer */
    --footer-font-size: 1.25rem;
    --footer-gap: 1.875rem;
}

/* =============================================
   @FONT-FACE — Inter (self-hosted)
   ============================================= */

@font-face {
    font-family: "Inter";
    src: url("../../../assets/webfonts/Inter_18pt-Thin.ttf") format("truetype");
    font-weight: 100;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../../../assets/webfonts/Inter_18pt-ThinItalic.ttf") format("truetype");
    font-weight: 100;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../../../assets/webfonts/Inter_18pt-ExtraLight.ttf") format("truetype");
    font-weight: 200;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../../../assets/webfonts/Inter_18pt-ExtraLightItalic.ttf") format("truetype");
    font-weight: 200;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../../../assets/webfonts/Inter_18pt-Light.ttf") format("truetype");
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../../../assets/webfonts/Inter_18pt-LightItalic.ttf") format("truetype");
    font-weight: 300;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../../../assets/webfonts/Inter_18pt-Regular.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../../../assets/webfonts/Inter_18pt-Italic.ttf") format("truetype");
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../../../assets/webfonts/Inter_18pt-Medium.ttf") format("truetype");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../../../assets/webfonts/Inter_18pt-MediumItalic.ttf") format("truetype");
    font-weight: 500;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../../../assets/webfonts/Inter_18pt-SemiBold.ttf") format("truetype");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../../../assets/webfonts/Inter_18pt-SemiBoldItalic.ttf") format("truetype");
    font-weight: 600;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../../../assets/webfonts/Inter_18pt-Bold.ttf") format("truetype");
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../../../assets/webfonts/Inter_18pt-BoldItalic.ttf") format("truetype");
    font-weight: 700;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../../../assets/webfonts/Inter_18pt-ExtraBold.ttf") format("truetype");
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../../../assets/webfonts/Inter_18pt-ExtraBoldItalic.ttf") format("truetype");
    font-weight: 800;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../../../assets/webfonts/Inter_18pt-Black.ttf") format("truetype");
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Inter";
    src: url("../../../assets/webfonts/Inter_18pt-BlackItalic.ttf") format("truetype");
    font-weight: 900;
    font-style: italic;
    font-display: swap;
}

html,
body {
    font-family: "Inter", serif;
    -moz-hyphens: none;
    -webkit-hyphens: none;
    -ms-hyphens: none;
    hyphens: none;
    color: var(--text-color);
    box-sizing: border-box;
    padding: 0;
    margin: 0;
    font-weight: 400;
    font-size: 1rem;
}

h1, h2, h3, h4, h5, h6 {
    line-height: 120%;
}

h1 {
    font-size: clamp(2.5rem, 5vw, 4rem);
    letter-spacing: -2.5%;
    margin-bottom: 2.5rem;
}

h2 {
    font-size: clamp(2rem, 4vw, 3rem);
    letter-spacing: 0;
    margin-bottom: 2.5rem;
}

h3 {
    font-size: clamp(1.20rem, 2vw, 2rem);
    letter-spacing: 0;
    margin-bottom: 2.5rem;
    font-weight: 600;
    line-height: 130%;
}

h4 {
    font-size: clamp(1rem, 1.5vw, 1.5rem);
    letter-spacing: 0;
    margin-bottom: 2rem;
    font-weight: 600;
}

h5 {
    font-size: clamp(0.9rem, 1.5vw, 1.25rem);
    letter-spacing: 0;
    margin-bottom: 1.5rem;
    font-weight: 600;
}

h6 {
    font-size: clamp(0.75rem, 1.5vw, 1rem);
    letter-spacing: 0;
    margin-bottom: 1.25rem;
    font-weight: 600;
}

p, span  {
    font-size: clamp(1rem, 2vw, 1.25rem);
    line-height: 130%;
}

.text-large  {
    font-size: clamp(2rem, 3vw, 2.5rem);
    line-height: 130%;
}

.text-small  {
    font-size: clamp(0.75rem, 1.5vw, 1rem);
    line-height: 120%;
}

.fact {
    font-weight: 600;
    font-size: clamp(1.5rem,2vw, 2rem);
}

.fact-small {
    font-weight: 500;
    font-size: clamp(0.75rem, 1.5vw, 1rem);
    color: var(--neutral-color);
}

.text-highlight {
    background-image: linear-gradient(transparent 25%, var(--accent-color) 25%, var(--accent-color) 75%, transparent 75%);
    padding: 0 0.25em;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
}


/* --- _vc-tabs.css --- */
/**
 * WPBakery Tabs — Separate button-style override
 *
 * Completely strips WPBakery's tab chrome so tabs look like
 * standalone filter buttons with zero surrounding wrapper styling.
 */

/* ============================================================
   1. Strip ALL wrapper / container chrome
   ============================================================ */
.vc_tta.vc_tta-tabs,
.vc_tta.vc_tta-tabs.vc_tta-style-classic,
.vc_tta.vc_tta-tabs.vc_tta-style-modern,
.vc_tta.vc_tta-tabs.vc_tta-style-flat,
.vc_tta.vc_tta-tabs.vc_tta-style-outline {
    border: none !important;
    background: none !important;
    box-shadow: none !important;
}

/* Container that wraps everything (vc_tta-container) */
.vc_tta-container {
    margin-bottom: 0;
}

/* ============================================================
   2. Tabs container (the bar above the content)
   ============================================================ */
.vc_tta.vc_tta-tabs .vc_tta-tabs-container {
    margin: 0 0 20px 0 !important;
    border: none !important;
    background: none !important;
}

/* ============================================================
   3. Tab list — flex row of buttons
   ============================================================ */
.vc_tta.vc_tta-tabs .vc_tta-tabs-list {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    background: none !important;
    margin-bottom: 128px !important;
}

/* ============================================================
   4. Individual tab — reset WPBakery spacing / negative margins
   ============================================================ */
.vc_tta.vc_tta-tabs .vc_tta-tab {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: none !important;
    float: none !important;
    display: inline-block !important;
}

/* ---- Button link (default state) ---- */
.vc_tta.vc_tta-tabs .vc_tta-tab > a,
.vc_tta.vc_tta-tabs[class*="vc_tta-color-"] .vc_tta-tab > a {
    display: inline-block !important;
    padding: 7px 16px !important;
    font-size: 16px !important;
    line-height: 120% !important;
    font-weight: 300 !important;
    font-family: "Inter", sans-serif !important;
    border: 1px solid #EDEDED !important;
    border-radius: 0 !important;
    background: transparent !important;
    background-image: none !important;
    color: rgba(26, 26, 26, 0.8) !important;
    cursor: pointer !important;
    transition: var(--transition) !important;
    white-space: nowrap !important;
    text-decoration: none !important;
    box-shadow: none !important;
    filter: none !important;
}

/* ---- Hover ---- */
.vc_tta.vc_tta-tabs .vc_tta-tab > a:hover,
.vc_tta.vc_tta-tabs .vc_tta-tab > a:focus,
.vc_tta.vc_tta-tabs[class*="vc_tta-color-"] .vc_tta-tab > a:hover,
.vc_tta.vc_tta-tabs[class*="vc_tta-color-"] .vc_tta-tab > a:focus {
    border-color: var(--secondary-color, #000) !important;
    color: var(--secondary-color, #000) !important;
    background: transparent !important;
    background-image: none !important;
}

/* ---- Active ---- */
.vc_tta.vc_tta-tabs .vc_tta-tab.vc_active > a,
.vc_tta.vc_tta-tabs .vc_tta-tab.vc_active > a:hover,
.vc_tta.vc_tta-tabs .vc_tta-tab.vc_active > a:focus,
.vc_tta.vc_tta-tabs[class*="vc_tta-color-"] .vc_tta-tab.vc_active > a,
.vc_tta.vc_tta-tabs[class*="vc_tta-color-"] .vc_tta-tab.vc_active > a:hover,
.vc_tta.vc_tta-tabs[class*="vc_tta-color-"] .vc_tta-tab.vc_active > a:focus {
    background: var(--secondary-color, #000) !important;
    background-image: none !important;
    border-color: var(--secondary-color, #000) !important;
    color: #fff !important;
}

/* Kill the ::before / ::after pseudo-elements WPBakery uses for corner "joiners" */
.vc_tta.vc_tta-tabs .vc_tta-tab.vc_active > a::before,
.vc_tta.vc_tta-tabs .vc_tta-tab.vc_active > a::after {
    display: none !important;
}

/* ============================================================
   5. Panels — fully transparent, no border, no background
      Override every color-variant selector WPBakery ships.
   ============================================================ */
.vc_tta.vc_tta-tabs .vc_tta-panels-container,
.vc_tta.vc_tta-tabs .vc_tta-panels,
.vc_tta.vc_tta-tabs .vc_tta-panel,
.vc_tta.vc_tta-tabs .vc_tta-panel-body,
.vc_tta.vc_tta-tabs[class*="vc_tta-color-"] .vc_tta-panels-container,
.vc_tta.vc_tta-tabs[class*="vc_tta-color-"] .vc_tta-panels,
.vc_tta.vc_tta-tabs[class*="vc_tta-color-"] .vc_tta-panel,
.vc_tta.vc_tta-tabs[class*="vc_tta-color-"] .vc_tta-panel .vc_tta-panel-body,
.vc_tta.vc_tta-tabs[class*="vc_tta-color-"][class*="vc_tta-style-"].vc_tta-tabs .vc_tta-panels,
.vc_tta.vc_tta-tabs[class*="vc_tta-color-"][class*="vc_tta-style-"] .vc_tta-panels .vc_tta-panel-body {
    border: none !important;
    background: none !important;
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    transition: none !important;
}

/* Also nuke pseudo-element decorations on panel body */
.vc_tta.vc_tta-tabs .vc_tta-panel-body::before,
.vc_tta.vc_tta-tabs .vc_tta-panel-body::after {
    display: none !important;
}

/* ============================================================
   6. Hide accordion headings inside panels (desktop only)
   ============================================================ */
.vc_tta.vc_tta-tabs .vc_tta-panel .vc_tta-panel-heading {
    display: none !important;
}

/* ============================================================
   7. Responsive
   ============================================================ */
@media (max-width: 767px) {
    /* Hide the tabs list on mobile (WPBakery uses accordion instead) */
    .vc_tta.vc_tta-tabs .vc_tta-tabs-container {
        display: none !important;
    }

    /* Show accordion headings on mobile */
    .vc_tta.vc_tta-tabs .vc_tta-panel .vc_tta-panel-heading {
        display: block !important;
        border: none !important;
        background: none !important;
        margin: 0 0 8px 0 !important;
        padding: 0 !important;
        position: relative !important;
    }

    /* Style accordion heading links as buttons */
    .vc_tta.vc_tta-tabs .vc_tta-panel .vc_tta-panel-heading .vc_tta-panel-title > a,
    .vc_tta.vc_tta-tabs[class*="vc_tta-color-"] .vc_tta-panel .vc_tta-panel-heading .vc_tta-panel-title > a {
        display: block !important;
        padding: 12px 16px !important;
        padding-right: 40px !important;
        font-size: 14px !important;
        line-height: 120% !important;
        font-weight: 300 !important;
        font-family: "Inter", sans-serif !important;
        border: 1px solid #EDEDED !important;
        border-radius: 0 !important;
        background: transparent !important;
        background-image: none !important;
        color: rgba(26, 26, 26, 0.8) !important;
        text-decoration: none !important;
        box-shadow: none !important;
        transition: var(--transition) !important;
        position: relative !important;
    }

    /* Add chevron icon to indicate expandable */
    .vc_tta.vc_tta-tabs .vc_tta-panel .vc_tta-panel-heading .vc_tta-panel-title > a::after {
        content: '' !important;
        position: absolute !important;
        right: 16px !important;
        top: 50% !important;
        transform: translateY(-50%) rotate(0deg) !important;
        width: 8px !important;
        height: 8px !important;
        border-right: 2px solid currentColor !important;
        border-bottom: 2px solid currentColor !important;
        transition: transform 0.2s ease !important;
    }

    /* Rotate chevron when active */
    .vc_tta.vc_tta-tabs .vc_tta-panel.vc_active .vc_tta-panel-heading .vc_tta-panel-title > a::after {
        transform: translateY(-50%) rotate(45deg) !important;
    }

    /* Collapsed state - rotate chevron down */
    .vc_tta.vc_tta-tabs .vc_tta-panel:not(.vc_active) .vc_tta-panel-heading .vc_tta-panel-title > a::after {
        transform: translateY(-70%) rotate(45deg) !important;
    }

    /* Hide the default accordion icon/indicator */
    .vc_tta.vc_tta-tabs .vc_tta-panel .vc_tta-panel-heading .vc_tta-controls-icon,
    .vc_tta.vc_tta-tabs .vc_tta-panel .vc_tta-panel-heading .vc_tta-controls-icon-position-left,
    .vc_tta.vc_tta-tabs .vc_tta-panel .vc_tta-panel-heading .vc_tta-controls-icon-position-right {
        display: none !important;
    }

    /* Accordion heading hover state */
    .vc_tta.vc_tta-tabs .vc_tta-panel .vc_tta-panel-heading .vc_tta-panel-title > a:hover,
    .vc_tta.vc_tta-tabs .vc_tta-panel .vc_tta-panel-heading .vc_tta-panel-title > a:focus,
    .vc_tta.vc_tta-tabs[class*="vc_tta-color-"] .vc_tta-panel .vc_tta-panel-heading .vc_tta-panel-title > a:hover,
    .vc_tta.vc_tta-tabs[class*="vc_tta-color-"] .vc_tta-panel .vc_tta-panel-heading .vc_tta-panel-title > a:focus {
        border-color: var(--secondary-color, #000) !important;
        color: var(--secondary-color, #000) !important;
        background: transparent !important;
    }

    /* Accordion active state */
    .vc_tta.vc_tta-tabs .vc_tta-panel.vc_active .vc_tta-panel-heading .vc_tta-panel-title > a,
    .vc_tta.vc_tta-tabs[class*="vc_tta-color-"] .vc_tta-panel.vc_active .vc_tta-panel-heading .vc_tta-panel-title > a {
        background: var(--secondary-color, #000) !important;
        border-color: var(--secondary-color, #000) !important;
        color: #fff !important;
    }

    /* Panel body spacing on mobile */
    .vc_tta.vc_tta-tabs .vc_tta-panel .vc_tta-panel-body {
        padding: 16px 0 !important;
    }

    /* Add "more sections" visual hint - style inactive panels to stand out */
    .vc_tta.vc_tta-tabs .vc_tta-panel:not(.vc_active) .vc_tta-panel-heading .vc_tta-panel-title > a {
        background: rgba(0, 0, 0, 0.02) !important;
    }

    /* Subtle pulse animation on first inactive panel after active one */
    .vc_tta.vc_tta-tabs .vc_tta-panel.vc_active + .vc_tta-panel .vc_tta-panel-heading .vc_tta-panel-title > a {
        animation: subtle-pulse 2s ease-in-out 1 !important;
    }

    @keyframes subtle-pulse {
        0%, 100% {
            box-shadow: none;
        }
        50% {
            box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);
        }
    }

    /* Reset the large margin on tabs list (not visible but affects layout) */
    .vc_tta.vc_tta-tabs .vc_tta-tabs-list {
        margin-bottom: 0 !important;
    }
}



/* --- _waypointitem.css --- */
/* ===========================================
   WAYPOINT ITEM
   =========================================== */

.waypointitem {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
}

/* Header row: icon + title side by side */
.waypointitem__header {
    display: flex;
    align-items: center;
    gap: 16px;
}

/* Icon */
.waypointitem__icon {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.waypointitem__icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.waypointitem__icon .waypointitem__svg {
    width: 100%;
    height: 100%;
    scale: 50%;
    color: var(--text-color, #000);
}

/* Title */
.waypointitem__title {
    font-size: clamp(18px, 2vw, 24px);
    font-weight: 500;
    line-height: 1.3;
    color: var(--text-color, #000);
}

/* Location */
.waypointitem__location {
    font-size: clamp(14px, 1.4vw, 16px);
    font-weight: 300;
    line-height: 1.5;
    color: var(--neutral-color, #61656E);
    text-align: left;
}

/* Description */
.waypointitem__description {
    font-size: clamp(14px, 1.4vw, 16px);
    font-weight: 300;
    line-height: 1.6;
    color: var(--text-color, #000);
    text-align: left;
    max-width: 300px;
}

.waypointitem__description p:first-child {
    margin-top: 0;
}

.waypointitem__description p:last-child {
    margin-bottom: 0;
}

/* ---- Responsive ---- */
@media (max-width: 769px) {
    .waypointitem__icon {
        width: 36px;
        height: 36px;
    }

    /*.waypointitem__title {*/
    /*    font-size: max(14px, 3.5vw);*/
    /*}*/

    /*.waypointitem__location {*/
    /*    font-size: max(10px, 2vw);*/
    /*}*/

    /*.waypointitem__description {*/
    /*    font-size: max(12px, 2.5vw);*/
    /*    max-width: 100%;*/
    /*}*/
}


/* --- _wpbakery.css --- */
.vc_row:not([data-vc-full-width]) {
    max-width: var(--container-size);
    margin-left: auto;
    margin-right: auto;
    padding-left: 0;
    padding-right: 0;
}

.vc_row[data-vc-full-width] .vc_column_container > .vc_column-inner {
    padding: 0;
}

.wpb-content-wrapper > .vc_row {
    padding-left: 0;
    padding-right: 0;
    margin-left: auto !important;
    margin-right: auto !important;
    left: 0 !important;
    right: 0 !important;
}

.vc_col-has-fill > .vc_column-inner, .vc_row-has-fill + .vc_row-full-width + .vc_row > .vc_column_container > .vc_column-inner, .vc_row-has-fill + .vc_row > .vc_column_container > .vc_column-inner, .vc_row-has-fill > .vc_column_container > .vc_column-inner {
    padding-top: 0 !important;
}

.wpb-content-wrapper > .vc_row:first-child {
    padding-top: 0;
}

.wpb-content-wrapper > .vc_row {
    padding-bottom: calc( var(--wrapper-padding-xl) / 2);
    padding-top: calc( var(--wrapper-padding-xl) / 2);
}

.wpb-content-wrapper > .vc_row:has(+ .vc_row-has-fill),
.wpb-content-wrapper > .vc_row:has(+ .vc_clearfix + .vc_row-has-fill),
.wpb-content-wrapper > .vc_row:last-child {
    padding-bottom: var(--wrapper-padding-xl);
}

.wpb-content-wrapper > .vc_row-has-fill + .vc_clearfix + .vc_row,
.wpb-content-wrapper > .vc_row-has-fill + .vc_row {
    padding-top: var(--wrapper-padding-xl);
}

.wpb-content-wrapper > .vc_row + .vc_row-has-fill,
.wpb-content-wrapper > .vc_row-has-fill {
    padding-bottom: var(--wrapper-padding-xl);
    padding-top: var(--wrapper-padding-xl);
}

.page-template-default.has-solid-header #content {
    padding-top: calc( var(--wrapper-padding-xl) / 2);
}

@media (max-width: 991px) {
    .wpb-content-wrapper > .vc_row {
        padding-bottom: calc( var(--wrapper-padding-md) / 2);
        padding-top: calc( var(--wrapper-padding-md) / 2);
    }

    .page-template-default.has-solid-header #content {
        padding-top: calc( var(--wrapper-padding-md) / 2);
    }

    .wpb-content-wrapper > .vc_row:has(+ .vc_row-has-fill),
    .wpb-content-wrapper > .vc_row:has(+ .vc_clearfix + .vc_row-has-fill),
    .wpb-content-wrapper > .vc_row:last-child {
        padding-bottom: var(--wrapper-padding-md);
    }

    .wpb-content-wrapper > .vc_row-has-fill + .vc_clearfix + .vc_row,
    .wpb-content-wrapper > .vc_row-has-fill + .vc_row {
        padding-top: var(--wrapper-padding-md);
    }

    .wpb-content-wrapper > .vc_row + .vc_row-has-fill,
    .wpb-content-wrapper > .vc_row-has-fill {
        padding-bottom: var(--wrapper-padding-md);
        padding-top: var(--wrapper-padding-md);
    }
}

@media (max-width: 575px) {
    .wpb-content-wrapper > .vc_row {
        padding-bottom: calc( var(--wrapper-padding-sm) / 2);
        padding-top: calc( var(--wrapper-padding-sm) / 2);
    }

    .page-template-default.has-solid-header #content {
        padding-top: calc( var(--wrapper-padding-sm) / 2);
    }

    .wpb-content-wrapper > .vc_row:has(+ .vc_row-has-fill),
    .wpb-content-wrapper > .vc_row:has(+ .vc_clearfix + .vc_row-has-fill),
    .wpb-content-wrapper > .vc_row:last-child {
        padding-bottom: var(--wrapper-padding-sm);
    }

    .wpb-content-wrapper > .vc_row-has-fill + .vc_clearfix + .vc_row,
    .wpb-content-wrapper > .vc_row-has-fill + .vc_row {
        padding-top: var(--wrapper-padding-sm);
    }

    .wpb-content-wrapper > .vc_row + .vc_row-has-fill,
    .wpb-content-wrapper > .vc_row-has-fill {
        padding-bottom: var(--wrapper-padding-sm);
        padding-top: var(--wrapper-padding-sm);
    }
}

