@font-face {
    font-family: "Source Sans 3";
    src: url("../fonts/source-sans-3.ttf") format("truetype");
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
}

@font-face {
    font-family: "Source Serif 4";
    src: url("../fonts/source-serif-4.ttf") format("truetype");
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
}

.cbl-homepage,
.cbl-germany-page,
.cbl-denmark-page {
    --cbl-germany-navy: #193c32;
    --cbl-germany-gold: #a64f35;
    --cbl-germany-gold-dark: #873e29;
    --cbl-germany-cream: #f3f6f2;
    --cbl-germany-ink: #283630;
    --cbl-germany-muted: #596b61;
    --cbl-germany-border: #dce4de;
    color: #283630;
    font-family: "Source Sans 3", "Segoe UI", sans-serif;
    font-size: 16px;
}

:is(.cbl-homepage, .cbl-germany-page, .cbl-denmark-page) * {
    letter-spacing: 0;
}

:is(.cbl-homepage, .cbl-germany-page, .cbl-denmark-page) :is(h1, h2, h3, h4) {
    font-family: "Source Serif 4", Georgia, serif;
    font-weight: 600;
    overflow-wrap: break-word;
}

:is(.cbl-homepage, .cbl-germany-page, .cbl-denmark-page) :is(button, input, select, .cbl-country-card) {
    font-family: "Source Sans 3", "Segoe UI", sans-serif;
}

.cbl-germany-page h2,
.cbl-denmark-page h2,
.cbl-homepage .cbl-section-title,
.cbl-homepage .cbl-bottom-heading h2 {
    font-size: 36px;
    line-height: 1.2;
}

.cbl-germany-page .cbl-germany-container,
.cbl-homepage .cbl-container {
    max-width: 1280px;
}

.cbl-germany-page :is(.cbl-germany-audiences, .cbl-germany-process, .cbl-germany-faq, .cbl-germany-pathway-section),
.cbl-homepage :is(.cbl-countries, .cbl-services, .cbl-process) {
    padding-top: 64px;
    padding-bottom: 64px;
}

.cbl-germany-page .cbl-germany-section-heading {
    margin-bottom: 32px;
    text-align: left;
}

.cbl-germany-page .cbl-germany-section-heading > p:last-child {
    margin-left: 0;
    font-size: 16px;
    line-height: 1.65;
}

.cbl-germany-page :is(.cbl-germany-hero, .cbl-germany-pathway-hero),
.cbl-homepage .cbl-hero {
    min-height: 600px;
    position: relative;
    isolation: isolate;
    display: block;
    overflow: hidden;
    background: #193c32;
}

.cbl-germany-page :is(.cbl-germany-hero__visual, .cbl-germany-pathway-hero__visual),
.cbl-homepage .cbl-hero__visual {
    min-height: 0;
    position: absolute;
    inset: 0;
    z-index: -2;
    background-position: center;
}

.cbl-germany-page :is(.cbl-germany-hero__visual, .cbl-germany-pathway-hero__visual)::after,
.cbl-homepage .cbl-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(90deg, rgba(16, 40, 32, .94), rgba(16, 40, 32, .78) 40%, rgba(16, 40, 32, .12) 78%);
    pointer-events: none;
}

.cbl-germany-page :is(.cbl-germany-hero__visual, .cbl-germany-pathway-hero__visual)::after {
    z-index: 1;
}

.cbl-germany-page :is(.cbl-germany-hero__content, .cbl-germany-pathway-hero__content),
.cbl-homepage .cbl-hero__content {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    min-height: 600px;
    padding: 56px max(24px, calc((100% - 1280px) / 2 + 24px));
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    background: transparent;
}

.cbl-germany-page :is(.cbl-germany-hero__content, .cbl-germany-pathway-hero__content) > *,
.cbl-homepage .cbl-hero__content > * {
    width: 100%;
    max-width: 640px;
    min-width: 0;
}

.cbl-germany-page :is(.cbl-germany-hero, .cbl-germany-pathway-hero) h1,
.cbl-homepage .cbl-hero__title {
    margin-bottom: 20px;
    color: #ffffff;
    font-size: 56px;
    line-height: 1.08;
}

.cbl-germany-page :is(.cbl-germany-hero, .cbl-germany-pathway-hero) :is(p, .cbl-germany-eyebrow, .cbl-germany-capabilities strong, .cbl-germany-capabilities span),
.cbl-homepage .cbl-hero :is(p, strong, small, .cbl-hero__title span) {
    color: #f5f8f4;
}

.cbl-germany-page .cbl-germany-hero__tagline strong,
.cbl-germany-page .cbl-germany-hero__tagline span {
    color: #f5f8f4;
    font-size: 18px;
}

.cbl-germany-page .cbl-germany-capabilities {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-color: rgba(255, 255, 255, .3);
}

.cbl-germany-page .cbl-germany-capabilities :is(svg, span) {
    color: #edf2e8;
}

.cbl-germany-page .cbl-germany-capabilities strong {
    font-family: "Source Sans 3", sans-serif;
    font-size: 14px;
}

.cbl-germany-page .cbl-germany-capabilities span {
    font-size: 12px;
}

.cbl-germany-page .cbl-germany-hero__visual img,
.cbl-germany-page .cbl-germany-pathway-hero__visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.cbl-germany-page .cbl-germany-button,
.cbl-homepage :is(.cbl-button, .cbl-gold-button) {
    min-height: 48px;
    border-radius: 4px;
    font-size: 14px;
}

.cbl-germany-page :is(.cbl-germany-hero, .cbl-germany-pathway-hero) .cbl-germany-button--outline,
.cbl-homepage .cbl-hero .cbl-button--outline {
    color: #ffffff;
    border-color: rgba(255, 255, 255, .75);
    background: transparent;
}

.cbl-homepage :is(.cbl-button:not(.cbl-button--outline), .cbl-gold-button) {
    background: #873e29;
    border-color: #873e29;
}

.cbl-germany-page :is(.cbl-germany-audience-columns, .cbl-denmark-audience-columns) {
    gap: 40px;
}

.cbl-germany-page .cbl-denmark-audience-column {
    padding: 0;
    color: var(--cbl-germany-ink);
    border: 0;
    background: transparent;
}

.cbl-germany-page .cbl-denmark-audience-column :is(h3, h4, li, p, .cbl-germany-eyebrow, .cbl-germany-text-link) {
    color: var(--cbl-germany-ink);
}

.cbl-germany-page .cbl-denmark-audience-column--organisations .cbl-denmark-audience-column__header :is(h3, p),
.cbl-germany-page .cbl-denmark-audience-column--organisations .cbl-denmark-tabpanel__content :is(h4, p, li) {
    color: #283630;
}

.cbl-germany-page .cbl-denmark-audience-column--organisations .cbl-denmark-tabpanel__content .cbl-germany-eyebrow {
    color: #596b61;
}

.cbl-germany-page .cbl-denmark-audience-column--organisations .cbl-denmark-pathway-button--organisation {
    width: 100%;
    color: #ffffff;
    background: #176b43;
    border-color: #176b43;
}

.cbl-germany-page .cbl-denmark-audience-column--organisations .cbl-denmark-pathway-button--organisation:hover,
.cbl-germany-page .cbl-denmark-audience-column--organisations .cbl-denmark-pathway-button--organisation:focus-visible {
    color: #ffffff;
    background: #124e32;
    border-color: #124e32;
}

.cbl-germany-page .cbl-denmark-audience-columns {
    align-items: stretch;
}

.cbl-germany-page .cbl-denmark-audience-columns > .cbl-denmark-audience-column {
    display: flex;
    flex-direction: column;
}

.cbl-germany-page .cbl-denmark-audience-column .cbl-denmark-tabs {
    display: flex;
    flex: 1;
    flex-direction: column;
}

.cbl-germany-page .cbl-denmark-audience-column .cbl-denmark-tabs > :is(.cbl-germany-opportunity-panel, .cbl-denmark-opportunity-panel) {
    flex: 1;
    align-content: stretch;
}

.cbl-germany-page .cbl-denmark-audience-column--organisations > .cbl-denmark-employer-content {
    display: flex;
    flex: 1;
    flex-direction: column;
}

.cbl-germany-page .cbl-germany-opportunity-panel__support {
    display: flex;
    flex-direction: column;
}

.cbl-germany-page .cbl-germany-opportunity-panel__support :is(.cbl-denmark-pathway-button, .cbl-germany-text-link) {
    margin-top: auto;
}

.cbl-germany-page .cbl-denmark-tablist {
    gap: 4px;
    border: 0;
    background: #eef3ef;
}

.cbl-germany-page .cbl-denmark-tab {
    min-height: 58px;
    padding: 10px 8px;
    border: 0;
    background: transparent;
    font-size: 13px;
}

.cbl-germany-page .cbl-denmark-tab.is-active {
    background: #ffffff;
    box-shadow: inset 0 -3px #873e29;
}

.cbl-germany-page :is(.cbl-germany-opportunity-panel, .cbl-denmark-opportunity-panel) {
    padding-top: 22px;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
}

.cbl-germany-page :is(.cbl-germany-opportunity-panel, .cbl-denmark-opportunity-panel) > img {
    width: 100%;
    height: auto;
    min-height: 0;
    max-height: 330px;
    aspect-ratio: 3 / 2;
    grid-column: auto;
    grid-row: auto;
    border-radius: 4px;
}

.cbl-germany-page .cbl-denmark-tabpanel__content :is(p, li),
.cbl-germany-page .cbl-germany-faq-list details p {
    font-size: 15px;
    line-height: 1.65;
}

.cbl-germany-page :is(.cbl-study-degrees article, .cbl-germany-pathway-steps li) {
    padding: 22px 0;
    border: 0;
    border-top: 2px solid var(--cbl-germany-border);
    background: transparent;
}

.cbl-germany-page .cbl-study-form {
    padding: 28px;
    gap: 12px;
    border-color: #dce4de;
    background: #f5f7f4;
}

.cbl-germany-page .cbl-study-form :is(input, select) {
    color: #283630;
    border-color: #a2b4a8;
    border-radius: 4px;
}

.cbl-germany-page .cbl-study-nav,
.cbl-germany-page .cbl-training-nav {
    justify-content: flex-start;
    gap: 14px 24px;
    background: #ffffff;
}

.cbl-germany-page .cbl-study-support-stages summary strong {
    font-family: "Source Serif 4", Georgia, serif;
    font-size: 22px;
}

.cbl-germany-page .cbl-germany-principles {
    background: #edf3ef;
}

.cbl-germany-page .cbl-germany-principles :is(h2, h3, p, .cbl-germany-eyebrow) {
    color: #193c32;
}

.cbl-germany-page .cbl-germany-principles article {
    border-color: #bccdc1;
}

.cbl-homepage .cbl-hero__visual {
    background-image: url("../images/countries/germany/hero-primary.webp");
}

.cbl-homepage .cbl-hero__visual [data-home-hero-layer] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 800ms ease;
}

.cbl-homepage .cbl-hero__visual [data-home-hero-layer].is-active {
    opacity: 1;
}

.cbl-homepage .cbl-hero-pause {
    position: absolute;
    right: 24px;
    bottom: 24px;
    z-index: 3;
    width: 44px;
    height: 44px;
    padding: 0;
    color: #ffffff;
    background: rgba(16, 40, 32, .8);
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: 4px;
    cursor: pointer;
}

.cbl-homepage .cbl-hero-pause[hidden] {
    display: none;
}

.cbl-homepage .cbl-hero-pause:focus-visible {
    outline: 3px solid #ffffff;
    outline-offset: 3px;
}

.cbl-homepage .cbl-hero__visual::after {
    display: none;
}

.cbl-homepage :is(.cbl-benefit strong, .cbl-trust-items strong) {
    font-family: "Source Sans 3", sans-serif;
    font-size: 15px;
}

.cbl-homepage :is(.cbl-benefit small, .cbl-process-step p, .cbl-trust-items small) {
    font-size: 13px;
    line-height: 1.5;
}

.cbl-homepage :is(.cbl-services, .cbl-countries) {
    background: #ffffff;
}

.cbl-homepage .cbl-country-card {
    border-radius: 4px;
    border-color: #dce4de;
    background: #f5f7f4;
}

.cbl-homepage .cbl-service-box {
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.cbl-homepage .cbl-service-tab {
    font-size: 14px;
    background: #eef3ef;
}

.cbl-homepage .cbl-service-tab.active {
    color: #193c32;
    background: #ffffff;
    box-shadow: inset 0 -3px #873e29;
}

.cbl-homepage .cbl-trust-bar {
    background: #193c32;
}

.cbl-homepage .cbl-trust-cta {
    padding-left: 24px;
    border-left: 1px solid rgba(255, 255, 255, .3);
    border-radius: 0;
    background: transparent;
}

.cbl-homepage .cbl-trust-cta :is(h3, p) {
    color: #ffffff;
}

.cbl-image-credits {
    padding-top: 16px;
    padding-bottom: 16px;
    color: #596b61;
    font-size: 12px;
    line-height: 1.6;
}

.cbl-image-credits summary {
    cursor: pointer;
}

.cbl-image-credits a {
    color: #193c32;
}

@media (max-width: 800px) {
    .cbl-germany-page :is(.cbl-germany-hero__content, .cbl-germany-pathway-hero__content),
    .cbl-homepage .cbl-hero__content {
        min-height: 580px;
        padding: 44px 24px;
    }

    .cbl-germany-page :is(.cbl-germany-hero, .cbl-germany-pathway-hero) h1,
    .cbl-homepage .cbl-hero__title {
        font-size: 42px;
    }

    .cbl-germany-page :is(.cbl-germany-hero__visual, .cbl-germany-pathway-hero__visual)::after,
    .cbl-homepage .cbl-hero::after {
        background: linear-gradient(90deg, rgba(16, 40, 32, .9), rgba(16, 40, 32, .7));
    }

    .cbl-germany-page :is(.cbl-germany-audience-columns, .cbl-denmark-audience-columns) {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 560px) {
    .cbl-germany-page h2,
    .cbl-denmark-page h2,
    .cbl-homepage :is(.cbl-section-title, .cbl-bottom-heading h2) {
        font-size: 28px;
    }

    .cbl-germany-page :is(.cbl-germany-audiences, .cbl-germany-process, .cbl-germany-faq, .cbl-germany-pathway-section),
    .cbl-homepage :is(.cbl-countries, .cbl-services, .cbl-process) {
        padding-top: 44px;
        padding-bottom: 44px;
    }

    .cbl-germany-page :is(.cbl-germany-hero__content, .cbl-germany-pathway-hero__content),
    .cbl-homepage .cbl-hero__content {
        width: 100%;
        min-height: 560px;
        padding: 36px 20px;
    }

    .cbl-germany-page :is(.cbl-germany-hero, .cbl-germany-pathway-hero) h1,
    .cbl-homepage .cbl-hero__title {
        font-size: 36px;
    }

    .cbl-germany-page .cbl-denmark-tab {
        font-size: 12px;
    }

    .cbl-germany-page .cbl-study-form {
        padding: 20px;
    }
}

@media (prefers-reduced-motion: reduce) {
    :is(.cbl-homepage, .cbl-germany-page, .cbl-denmark-page) * {
        scroll-behavior: auto;
        transition: none;
    }
}