/********************************************************/
/*
/* General CSS & Typography
/*
/********************************************************/

    /* Typography ********************************************************************/
    
    h1, h2 {
        font: var(--stack-heading-l);
        color: var(--color-1);
    }
    
    h2 {
        font-size: var(--font-size-2xl);
        line-height: var(--line-height-2xl);
    }
    
    h3, h4 {
        font: var(--stack-heading-m);
        color: var(--color-2);
    }
    
    h4 {
        font-weight: 300;
        font-size: var(--font-size-l);
        line-height: var(--line-height-l);
    }
    
    h5, h6 {
        font: var(--stack-heading-s);
        color: var(--color-1);
    }
    
    h6 {
        font-weight: 300;
        font-size: var(--font-size-s);
        color: var(--color-2);
        text-transform: uppercase;
    }
    
    blockquote {
        font: var(--stack-content-l);
        font-style: italic;
    }
    
    a, p, ul:not(.sub-menu, .menu) li {
        font: var(--stack-content-m);
    }
    
    a {
        font-weight: 700;
        color: var(--color-1);
    }
    
    a:hover {
        color: var(--color-2);
    }
    
    ul:not(.sub-menu, .menu) li {
        padding-left: 15px;
        position: relative;
    }
    
    ul:not(.sub-menu, .menu) li:not(:last-child) {
        margin-bottom: 5px;
    }
    
    ul:not(.sub-menu, .menu) li::before {
       position: absolute;
       left: 0;
       top: 5px;
       font: var(--stack-icn);
       content: "";
       color: var(--color-2);
       display: inline-block;
       width: 10px;
       font-size: 15px;
    }
    
    label {
        font: var(--stack-content-s);
        text-transform: uppercase;
    }
    
    .big {
        font: var(--stack-heading-l);
        font-size: var(--font-size-4xl);
        line-height: var(--line-height-4xl);
        color: var(--color-4);
        text-align: right;
    }
    
    /* Text color ********************************************************************/
    
    .txt-color-1 {
       color: var(--color-1);
    }
    
    .txt-color-2 {
       color: var(--color-2);
    }
    
    .txt-color-3 {
       color: var(--color-3);
    }
    
    .txt-color-4 {
       color: var(--color-4);
    }
    
    .txt-color-5 {
       color: var(--color-5);
    }
    
    .txt-white {
       color: var(--color-white);
    }
    
    .txt-black {
       color: var(--color-black);
    }
    
    .txt-gray {
       color: var(--color-gray);
    }
    
    /* Inputs ********************************************************************/
    
    p.btn, a.btn, .btn > a, input[type='submit'] {
        width: max-content;
    }
    
    .btn > a, a.btn, input[type='submit'] {
        display: flex;
        align-items: center;
        padding: var(--padding-s) var(--padding-l);
        font: var(--stack-content-m);
        font-weight: 700;
        color: var(--color-white);
        border: 0;
        border-radius: 5px;
        background-color: var(--color-3);
        width: max-content;
        transition: var(--transition-default);
    }
    
    .btn:hover > a, a.btn:hover, input[type='submit']:hover {
        background-color: var(--color-2);
    }
    
    .link {
        position: relative;
    }
    
    .link::after {
        content: "";
        display: inline-block;
        position: absolute;
        background: url(../images/arrow_right.svg) no-repeat center right;
        width: 24px;
        height: 24px;
        top: 50%;
        transform: translateY(-50%);
        margin-left: var(--margin-s);
        filter: invert(74%) sepia(53%) saturate(5936%) hue-rotate(338deg) brightness(103%) contrast(101%);
    }
    
    select, input[type='text'], input[type='email'], input[type='tel'], textarea, .custom-file-input > label {
       border-radius: 10px;
       padding: 12px 24px !important;
       border: 1px solid var(--color-4);
       font: var(--stack-content-m);
       color: var(--color-1);
    }
    
    select, .custom-file-input > label {
       position: relative;
       border: 2px solid var(--color-4);
       font-weight: 700;
       color: var(--color-1);
    }
    
    select {
       padding: 12px 72px 12px 24px !important;
       background: url(../images/arrow-v-down-orange.svg) no-repeat right;
       background-size: 32px;
       background-position: calc(100% - 10px) 50%;
       min-width: 200px;
       -moz-appearance: none;
       -webkit-appearance: none;
    }
    
    .custom-file-input > label {
       display: flex;
       width: max-content;
       max-width: 100%;
       align-items: center;
       pointer-events: all !important;
       cursor: pointer !important;
       margin-top: var(--margin-m);
       text-transform: initial;
    }
    
    .custom-file-input > label::after {
       content: "";
       display: inline-block;
       width: 32px;
       height: 32px;
       margin-right: 0;
       margin-left: 42px;
       background: url(../images/upload.svg) no-repeat bottom right;
       filter: brightness(0) saturate(100%) invert(58%) sepia(87%) saturate(2233%) hue-rotate(338deg) brightness(101%) contrast(101%);
       transform: rotate(180deg);
       background-size: contain;
    }
    
    @media screen and (max-width: 600px) {
        .custom-file-input > label::after { margin-left: 12px; }
    }
    
    /* CookieYes banner styling ********************************************************************/
    :is(.cky-notice-btn-wrapper, .cky-prefrence-btn-wrapper) .cky-btn {
        border-color: var(--color-2) !important;
    }
    
    :is(.cky-notice-btn-wrapper, .cky-prefrence-btn-wrapper) .cky-btn,
    button.cky-show-desc-btn:not(:hover):not(:active) {
        color: var(--color-2) !important;
    }
    
    :is(.cky-notice-btn-wrapper, .cky-prefrence-btn-wrapper) .cky-btn.cky-btn-accept {
        background-color: var(--color-2) !important;
        color: var(--color-white) !important;
    }
    
    .cky-btn-revisit-wrapper {
        background-color: var(--color-2) !important;
    }

/********************************************************/
/*
/* Header & Menus
/*
/********************************************************/

    header {
        position: relative;
        min-height: 175px;
        max-height: 175px;
        padding: var(--padding-xl) 0;
        background-color: var(--color-gray);
        border-bottom: 1px solid var(--color-black);
    }
    
    header menu {
        justify-content: space-between;
    }
    
    header menu .logo {
        width: 300px;
        min-height: 75px;
        max-height: 75px;
    }
    
    header menu nav {
        display: flex;
        align-items: center;
        column-gap: var(--margin-xl);
    }
    
    header menu .main {
        min-height: 100%;
    }
    
    header menu [data-part="action__href"].main:not(.icon) {
        position: relative;
        display: inline-block;
        line-height: 20px;
        padding-right: 35px;
    }
    
    header menu [data-part="action__href"].main:not(.icon)::after {
        content: "";
        background: url(../images/nav_arrow.svg) no-repeat center left;
        position: absolute;
        right: 0;
        width: 30px;
        height: 30px;
        filter: brightness(0) saturate(100%) invert(50%) sepia(76%) saturate(1223%) hue-rotate(339deg) brightness(105%) contrast(101%) saturate(0) brightness(1.5);
        -webkit-transition : -webkit-filter .4s ease
    }
    
    header menu [data-part="action__href"].main:hover::after, header menu [data-part="action__href"].main.current-menu-item::after {
        filter: brightness(0) saturate(100%) invert(50%) sepia(76%) saturate(1223%) hue-rotate(339deg) brightness(105%) contrast(101%);
    }
    
    /* Icon buttons for mobile menu */
    
    header menu [data-part="action__item"].icons {
        display: none;
    }
    
    header menu .icon {
        display: flex;
        pointer-events: all;
        cursor: pointer;
    }
    
    header menu .icon img {
        height: 24px;
        min-width: 40px;
        max-width: 40px;
        object-fit: contain;
        filter: brightness(0) saturate(100%) invert(67%) sepia(49%) saturate(2214%) hue-rotate(155deg) brightness(96%) contrast(91%);
    }
    
    /* Mobile menu */
    
    aside.menu {
        position: absolute;
        width: 100vw;
        height: calc(100vh - 175px); /* 175px = Height of header */
        top: 175px; 
        left: 0;
        background-color: var(--color-gray);
        transition: var(--transition-default);
        z-index: 2;
        
        opacity: 0;
        pointer-events: none;
    }
    
    aside.menu menu {
        height: 100%;
        padding: var(--padding-xl) var(--grid-gap);
    }
    
    aside.menu menu nav {
        display: flex;
        flex-direction: column;
        gap: var(--margin-l);
    }
    
    aside.menu menu [data-part="action__href"] {
        font: var(--stack-content-l);
    }
    
    aside.menu br {
        display: none;
    }
    
    #menu-toggle:checked ~ aside {
       opacity: 1;
       pointer-events: all;
    }
    
    #menu-toggle:checked ~ header .burger, #menu-toggle:not(:checked) ~ header .close {
       display: none;   
    }
    
    @media screen and (max-width: 1200px) {
        header menu nav { column-gap: var(--margin-l); }
    }
    
    @media screen and (max-width: 1000px) {
        header menu nav li.main:not(.icons) { display: none; }
        aside.menu, header menu [data-part="action__item"].icons { display: initial; }
    }
    
    @media screen and (max-width: 600px) {
        header menu .logo { width: 250px; }
        header menu[data-part="inner"] { column-gap: calc(var(--spacing) * 2); }
    }


/********************************************************/
/*
/* Main
/*
/********************************************************/

    main {
        display : grid;
        column-gap : var(--grid-gap);
        grid-template-columns : var(--outer-grid);
        position: relative;
    }
    
    main > * {
        grid-column : full-start / full-end;
    }
    
    .gradient {
        position: absolute;
        width: 100%;
        height: 100%;
        background: linear-gradient(180deg, rgba(234,236,239,1) 0%, rgba(255,255,255,1) 45%, rgba(255,255,255,1) 55%, rgba(234,236,239,1) 100%);
        z-index: -1;
    }
    
    .group {
        display: flex;
        flex-direction: column;
        gap: calc(var(--margin-xl) * 1.5);
        padding: var(--margin-xl) 0;
        /* margin-top: var(--margin-xl); */
    }
    
    .group section:not(:first-child), .group section:not(:first-child) [data-part="inner"] {
        padding-top: 0;
    }
    
    .group section:not(:last-child), .group section:not(:last-child) [data-part="inner"] {
        padding-bottom: 0;
    }

/********************************************************/
/*
/* Blocks
/*
/********************************************************/

    /* Block Wrapper ********************************************************************/
    .cake-def-wrap [data-part="inner"] {
        flex-direction: column;
        padding: var(--padding-2xl) 0;
    }
    
    .cake-def-wrap [data-part="inner"] > * + * {
        margin-top: 1em;
    }
    
    /* Block Page Header ********************************************************************/
    
    .cake-block-page-header [data-part="inner"] {
        padding: var(--padding-2xl) 0 0;
        flex-direction: column;
    }
    
    .cake-block-page-header .wp-block-columns {
        justify-content: space-between;
        margin-bottom: var(--margin-2xl);
    }
    
    .cake-block-page-header .wp-block-column {
        display: flex;
        flex-direction: column;
        gap: var(--margin-l);
        max-width: 60%;
    }
    
    .cake-block-page-header .wp-block-column > *:not(figure) {
        max-width: 75%;
    }
    
    .cake-block-page-header .wp-block-column:has(figure) {
        max-width: 25%;
    }
    
    .cake-block-page-header [data-part="inner"] > figure {
        width: calc(80% + var(--grid-gap));
        margin-bottom: calc(var(--margin-xl) * 1.5);
        transform: translateX(var(--grid-gap));
        align-self: end;
    }
    
    .cake-block-page-header [data-part="inner"] > figure img {
        width: 100%;
    }
    
    .cake-block-page-header .scrolling-text {
        color: var(--color-4);
        text-align: right;
        align-self: end;
        width: max-content;
        margin-right: calc(max(var(--grid-gap) ,calc(var(--grid-pad) + var(--grid-gap) + 10px)) * -1);
    }
    
    @media screen and (max-width: 1200px) {
        .cake-block-page-header .wp-block-column { max-width: 70%; }
        .cake-block-page-header .wp-block-column > *:not(figure) { max-width: 90%; }
    }
    
    @media screen and (max-width: 800px) {
       .cake-block-page-header .wp-block-columns { margin-bottom: calc(var(--margin-xl) * 1.5); }
       .cake-block-page-header [data-part="inner"] > figure { width: calc(90% + var(--grid-gap)); }
    }
    
    @media screen and (max-width: 600px) {
        .cake-block-page-header [data-part="inner"] { padding: var(--padding-xl) 0 0; }
        .cake-block-page-header .wp-block-columns { flex-direction: column; }
        .cake-block-page-header .wp-block-column { align-self: baseline; }
        .cake-block-page-header .wp-block-column, .cake-block-page-header .scrolling-text, .cake-block-page-header .wp-block-column > *:not(figure) 
        { max-width: 100%; }
        .cake-block-page-header .wp-block-column:has(figure) { min-width: 50%; max-width: 50%; order: 1; }
        .cake-block-page-header [data-part="inner"] > figure { width: calc(100% + var(--grid-gap)); }
    }
    
    /* Block 1 Col ********************************************************************/

    .cake-block-1-col [data-part="inner"] {
        position: relative;
        padding: var(--padding-xl) 0;
    }
    
    .cake-block-1-col [data-part="inner"], .cake-block-1-col .content {
        gap: calc(var(--margin-l) * 1.5);
    }
    
    .cake-block-1-col .content {
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
    
    .cake-block-1-col .content > *:not(.btn) {
        max-width: 80%;
    }
    
    .cake-block-1-col figure {
        width: 25%;
        margin-left: calc(var(--grid-gap) * -1);
        align-self: center;
    }
    
    @media screen and (max-width: 800px) {
        .cake-block-1-col .content > *:not(.btn) { max-width: 100%; }
    }
    
    @media screen and (max-width: 600px) {
        .cake-block-1-col figure { display: none; }
    }
    
    /* Block 2 Col ********************************************************************/
    
    .cake-block-2-col [data-part="inner"] {
        padding: var(--padding-xl) 0 var(--padding-2xl);
    }
    
    .cake-block-2-col .wp-block-columns {
        gap: var(--margin-l);
        width: 100%;
    }
    
    .cake-block-2-col .wp-block-column *:is(h1, h2, p, h5, h6):not(:last-child) {
        margin-bottom: var(--margin-xl);
    }
    
    .cake-block-2-col .wp-block-column *:is(h3, h4):not(:last-child) {
        margin-bottom: var(--margin-s);
    }
    
    .cake-block-2-col .wp-block-column *:is(h4, h5) {
        width: 75%;
    }
    
    .cake-block-2-col .wp-block-column:has(figure) {
        max-width: 37.5%;
    }
    
    .cake-block-2-col .wp-block-column figure, .cake-block-2-col .wp-block-column figure img {
        max-height: 425px;
        object-fit: cover;
    }
    
    .cake-block-2-col .wp-block-column figure:not(:has(img[src*='.svg'])) {
        border-radius: 10px;
        overflow: hidden;
    }
    
    .cake-block-2-col .wp-block-column figure:has(img[src*='.svg']) {
        transform: translateY(100px);
    }
    
    /* Group specific style */
    
    .group .cake-block-2-col .wp-block-columns {
        gap: calc(var(--margin-xl) * 1.5);
    }
    
    .group .cake-block-2-col .wp-block-column {
        align-self: center;
    }
    
    .group .cake-block-2-col .wp-block-column figure, .group .cake-block-2-col .wp-block-column figure img { 
        transform: unset !important; 
        max-height: unset; 
    }
    
    @media screen and (max-width: 800px) {
        .cake-block-2-col .wp-block-column:has(figure) { max-width: 30%; display: flex; flex-direction: column; justify-content: center; }
        .cake-block-2-col .wp-block-column figure:has(img[src*='.svg']) { transform: unset; }
    }
    
    @media screen and (max-width: 600px) {
        .cake-block-2-col .wp-block-column:has(figure) { max-width: 100%; height: unset; }
        .cake-block-2-col .wp-block-column:has(img[src*='.svg']) { max-width: 50%; }
        .cake-block-2-col .wp-block-column *:is(h1, h2, p, h5, h6):not(:last-child) { margin-bottom: var(--margin-l); }
        .cake-block-2-col .wp-block-column figure:has(img[src*='.svg']) { transform: translateY(50px); }
        .cake-block-2-col .wp-block-column *:is(h4, h5) { width: 100%; }
    }
    
    /* Block Media ********************************************************************/
    
    .cake-block-media [data-part="inner"] {
        padding: var(--padding-xl) 0;
    }
    
    .cake-block-media figure, .cake-block-media figure img {
        width: 100%;
    }
    
    .cake-block-media figure.is-type-video {
        position: relative;
        overflow: hidden;
        padding-top: 56.25%;
        /* 16:9 Aspect Ratio (divide 9 by 16 = 0.5625) */
    }
    
    .cake-block-media figure.is-type-video .wp-block-embed__wrapper {
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        right: 0;
        width: 100%;
        height: 100%;
    }
    
    .cake-block-media figure.is-type-video iframe {
        height: 100%;
    }
    
    /* Block Text ********************************************************************/
    
    .cake-block-text {
        padding: var(--padding-xl) 0;
    }
    
    .cake-block-text [data-part="inner"] {
        display: flex;
        flex-direction: column;
    }
    
    .cake-block-text [data-part="inner"] > * > a {
        font-family: inherit;
        font-size: inherit;
        line-height: inherit;
        letter-spacing: inherit;
        color: inherit;
    }
    
    .cake-block-text h6 { /* H6 typo override to simulate label that is absent in Gutenberg */
        font: var(--stack-content-s);
    }
    
    .cake-block-text *:is(h1, h2, p):not(:last-child) {
        margin-bottom: calc(var(--margin-m) * 2);
    }
    
    .cake-block-text *:is(h3, h4):not(:last-child) {
        margin-bottom: var(--margin-l);
    }
    .cake-block-text *:is(h5, h6):not(:last-child) {
        margin-bottom: calc(var(--margin-s) / 2);
    }
    
    @media screen and (max-width: 800px) {
        .cake-block-text { padding: var(--padding-l) 0; }
    }
    
    /* Block Text & Media ********************************************************************/
    
    .cake-block-text-media [data-part="inner"] {
        padding: var(--padding-xl) 0;
        flex-direction: column;
        row-gap: var(--margin-3xl);
    }
    
    .cake-block-text-media .wp-block-columns {
        gap: var(--margin-3xl);
    }
    
    .cake-block-text-media .wp-block-column *:is(h1, h2, h3, p, h5, h6):not(:last-child) {
        margin-bottom: var(--margin-xl);
    }
    
    .cake-block-text-media .wp-block-column *:is(h4):not(:last-child) {
        margin-bottom: var(--margin-s);
    }
    
    .cake-block-text-media .wp-block-column figure {
        border-radius: 10px;
        overflow: hidden;
    }
    
    @media screen and (max-width: 800px) {
        .cake-block-text-media .wp-block-columns { gap: var(--margin-xl); }
    }
    
    @media screen and (max-width: 600px) {
        .cake-block-text-media .wp-block-columns { flex-wrap: wrap !important; }
        .cake-block-text-media .wp-block-column:has(figure) { order: 1; }
        .cake-block-text-media .wp-block-column *:is(h1, h2, h3, p, h5, h6):not(:last-child) { margin-bottom: var(--margin-l); }
    }
    
    /* Block Studies & Block Jobs ********************************************************************/
    
    .cake-block-studies, .cake-block-jobs {
        padding: var(--padding-2xl) 0;
    }
    
    .cake-block-studies [data-part="inner"], .cake-block-jobs [data-part="inner"] {
        flex-direction: column;
    }
    
    .cake-block-studies [data-part="inner"] {
        gap: calc(var(--margin-xl) * 1.5);
    }
    
    .cake-block-jobs [data-part="inner"] {
        gap: var(--margin-xl);
    }
    
    .cake-block-studies [data-part="inner"] > .btn, .cake-block-jobs [data-part="inner"] > .btn {
        align-self: center;
    }
    
    .cake-block-studies .wp-block-columns {
        justify-content: space-between;
    }
    
    .cake-block-studies .wp-block-column {
        max-width: 50%;
    }
    
    .cake-block-studies .wp-block-column > *:not(:last-child) {
       margin-bottom: var(--margin-s);
    }
    
    .cake-block-studies .wp-block-column:only-child {
        max-width: 75%;
    }
    
    .cake-block-studies .wp-block-column:only-child > *:not(:last-child) {
       margin-bottom: var(--margin-xl);
    }
    
    .cake-block-studies .wp-block-column:has(figure) {
        position: relative;
        max-width: 27.5%;
    }
    
    .cake-block-studies .wp-block-column figure {
        position: absolute;
        top: -110px; /* Value of block's top padding + small buffer */
        left: calc(var(--grid-gap) * .75);
        width: 100%;
        height: 100%;
        z-index: -2;
    }
    
    .cake-block-studies form.studies-filters, .cake-block-jobs form.jobs-filters {
        display: flex;
        flex-wrap: wrap;
        gap: var(--margin-l);
        padding-bottom: var(--margin-l);
        border-bottom: 1px solid var(--color-4);
    }
    
    .cake-block-studies .studies-cards, .cake-block-jobs .jobs-cards {
        display: flex;
    }
    
    .cake-block-studies .studies-cards {
        flex-wrap: wrap;
        gap: var(--margin-xl);
    }
    
    .cake-block-jobs .jobs-cards {
        flex-direction: column;
        gap: var(--margin-l);
    }
    
    .cake-block-studies .study-card {
        min-width: calc((100% - var(--margin-xl)) / 2);
        max-width: calc((100% - var(--margin-xl)) / 2);
    }
    
    .cake-block-studies .study-card:nth-child(even) {
        margin-top: calc(var(--margin-xl) * 1.5);
    }
    
    .cake-block-studies .study-card > div:first-child {
        position: relative;
        border-radius: 10px;
        overflow: hidden;
        min-height: 450px;
        max-height: 450px;
    }
    
    .cake-block-studies .study-card .thumbnail, .cake-block-studies .study-card .terms {
        position: absolute;
    }
    
    .cake-block-studies .study-card .thumbnail {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    
    .cake-block-studies .study-card .terms {
        display: flex;
        flex-wrap: wrap;
        gap: var(--margin-s);
        bottom: var(--margin-m);
        left: var(--margin-m);
    }
    
    .cake-block-studies .study-card .terms label {
        background-color: var(--color-3);
        color: var(--color-white);
        padding: 5px;
        border-radius: 5px;
    }
    
    .cake-block-studies .study-card > div:last-child {
        padding: var(--padding-l);
    }
    
    .cake-block-studies .study-card h4 {
        color: var(--color-1);
        margin-bottom: var(--margin-l);
    }
    
    .cake-block-jobs .job-card {
        display: flex;
        justify-content: space-between;
        background-color: var(--color-gray);
        border-radius: 10px;
        padding: var(--padding-l);
    }
    
    .cake-block-jobs .job-card h4 {
        margin-bottom: var(--margin-s);
    }
    
    .cake-block-jobs .job-card .terms {
        display: flex;
        flex-wrap: wrap;
        gap: var(--margin-m);
    }
    
    @media screen and (max-width: 800px) {
        .cake-block-studies, .cake-block-jobs { padding: var(--padding-xl) 0; }
        .cake-block-studies .wp-block-columns { flex-wrap: nowrap !important; }
        .cake-block-studies .wp-block-column { max-width: 70%; }
        .cake-block-studies .wp-block-column figure { top: -60px; left: 0; }
        .cake-block-studies .study-card { min-width: 100%; max-width: 100%; }
        .cake-block-studies .study-card:nth-child(even) { margin-top: 0; }
        .cake-block-jobs .job-card .terms { gap: var(--margin-s); }
    }
    
    @media screen and (max-width: 600px) {
        .cake-block-studies .study-card > div:first-child { min-height: 300px; max-height: 300px; }
        .cake-block-jobs .job-card { flex-direction: column; gap: var(--margin-m); }
    }
    
    @media screen and (max-width: 400px) {
        .cake-block-studies .wp-block-column:has(figure) { max-width: 25%; }
    }
    
    /* Block CTA ********************************************************************/
    
    .cake-block-cta {
        padding: var(--padding-3xl) 0;
        background: linear-gradient(180deg, rgba(227,227,233,1) 0%, rgba(206,206,217,1) 100%);
    }
    
    .cake-block-cta [data-part="inner"], .cake-block-cta .wp-block-columns {
        display: contents;
    }
    
    .cake-block-cta .wp-block-column {
        grid-column: inner-start / col-end 4;
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: var(--margin-xl);
    }
    
    .cake-block-cta .wp-block-column:has(figure) {
        grid-column: col-start 5 / full-end;
    }
    
    .cake-block-cta .wp-block-column figure {
        margin-bottom: calc(var(--padding-3xl) * -1);
        min-width: calc(var(--inner-grid-w) * (8 / 12) + var(--grid-gap));
        max-width: calc(var(--inner-grid-w) * (8 / 12) + var(--grid-gap));
        /* max-height: 700px; */
    }
    
    .cake-block-cta .wp-block-column figure img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    
    @media screen and (max-width: 1416px) {
        .cake-block-cta .wp-block-column figure { min-width: 100%; }
    }
    
    @media screen and (max-width: 1200px) {
        .cake-block-cta { padding: var(--padding-2xl) 0; }
        .cake-block-cta .wp-block-column { grid-column: inner-start / col-end 5; }
        .cake-block-cta .wp-block-column:has(figure) { grid-column: col-start 6 / full-end; display: flex; flex-direction: column; justify-content: end; }
        .cake-block-cta .wp-block-column figure { margin-bottom: calc(var(--padding-2xl) * -1); }
    }
    
    @media screen and (max-width: 800px) {
        .cake-block-cta .wp-block-column { grid-column: inner-start / inner-end; gap: var(--margin-l); }
        .cake-block-cta .wp-block-column:has(figure) { grid-column: inner-start / full-end; }
    }
    
    /* Block Panels ********************************************************************/
    
    .cake-block-panels [data-part="inner"] {
        padding: var(--padding-xl) 0;   
        flex-wrap: wrap;
    }
    
    .cake-block-panels [data-part="inner"], .cake-block-panels .wp-block-columns {
        gap: var(--margin-l);
        width: 100%;
    }
    
    .cake-block-panels .wp-block-column {
        flex: 1;
        padding: calc(var(--padding-m) * 1.5) var(--padding-m);
        background-color: var(--color-gray);
        border-radius: 10px;
    }
    
    .cake-block-panels .wp-block-column *:is(h1, h2, h3):not(:last-child) {
        margin-bottom: var(--margin-s);
    }
    
    .cake-block-panels .wp-block-column *:is(h4, h5, h6, p, ul):not(:last-child) {
        margin-bottom: var(--margin-l);
    }
    
    @media screen and (max-width: 1000px) {
        .cake-block-panels .wp-block-columns { flex-wrap: wrap !important; }
        .cake-block-panels .wp-block-columns:has(div:nth-child(3)) .wp-block-column  { min-width: 100%; max-width: 100%; }
        .cake-block-panels .wp-block-columns:has(div:nth-child(4)) .wp-block-column 
        { min-width: calc((100% - var(--margin-l)) / 2); max-width: calc((100% - var(--margin-l)) / 2); }
    }
    
    @media screen and (max-width: 600px) {
        .cake-block-panels .wp-block-columns { flex-wrap: wrap !important; }
        .cake-block-panels .wp-block-column { min-width: 100% !important; max-width: 100% !important; }
    }
    
    /* Block Testimonies (and block image carousel) ********************************************************************/
    
    .cake-block-testimonies, .cake-block-img-carousel {
        overflow-x: hidden;
    }
    
    .cake-block-testimonies {
        background-color: var(--color-1);
    }
    
    .cake-block-testimonies [data-part="inner"] {
        padding: var(--padding-2xl) 0;
    }
    
    :is(.cake-block-testimonies, .cake-block-img-carousel) :is(.slider, .slider-controls, .slider-controls a, .slides, .slide, .content) {
        display: flex;
    }
    
    :is(.cake-block-testimonies, .cake-block-img-carousel) .slider {
        width: 100%;
        flex-direction: column;
        gap: var(--margin-xl);
    }
    
    .cake-block-testimonies .slider-controls {
        align-items: center;
        gap: var(--margin-m);
    }
    
    .cake-block-testimonies .slider-controls a {
        justify-content: center;
        align-items: center;
        position: relative;
        width: 50px;
        height: 50px;
        border: 6px solid var(--color-3);
        border-radius: 100%;
        pointer-events: all;
        cursor: pointer;
    }
    
    .cake-block-testimonies .slider-controls a:first-of-type {
        margin-left: auto;
    }
    
    .cake-block-testimonies .slider-controls a img {
        width: 24px;
        height: 24px;
        filter: invert(81%) sepia(37%) saturate(6064%) hue-rotate(154deg) brightness(97%) contrast(90%) brightness(100%) saturate(0) contrast(4);
        transition: filter .4s ease;
    }
    
    .cake-block-testimonies .slider-controls a:hover img {
        filter: invert(81%) sepia(37%) saturate(6064%) hue-rotate(154deg) brightness(97%) contrast(90%);
    }
    
    :is(.cake-block-testimonies, .cake-block-img-carousel) .slides {
        flex-wrap: nowrap;
        gap: max(var(--grid-gap) ,calc(var(--grid-pad) + var(--grid-gap) + 10px)); /* Ensures that next slide is offscreen */
        transition: transform .9s ease;
        align-items: center;
    }
    
    :is(.cake-block-testimonies, .cake-block-img-carousel) .slide {
        min-width: 100%;
        height: max-content;
        gap: calc(var(--margin-xl) * 1.5);
    }
    
    :is(.cake-block-testimonies, .cake-block-img-carousel) .slide :is(.content, figure) {
        flex: 1;
    }
    
    :is(.cake-block-testimonies, .cake-block-img-carousel) .slide :is(figure, figure img) {
        width: 100%;
        height: 100%;
        max-height: 500px;
        object-fit: cover;
    }
    
    .cake-block-img-carousel .slide :is(figure, figure img) {
        max-height: 750px;
    }
    
    .cake-block-testimonies .slide .content {
        flex-direction: column;
        justify-content: center;
        gap: var(--margin-l);
    }
    
    .cake-block-testimonies .slide :is(figure, figure img) {
        object-fit: contain;
    }
    
    @media screen and (max-width: 800px) {
        .cake-block-testimonies [data-part="inner"] { padding: var(--padding-xl) 0; }
        .cake-block-testimonies .slider-controls { flex-wrap: wrap; }
        .cake-block-testimonies .slider-controls h2 { width: 100%; }
        .cake-block-testimonies .slider-controls a:first-of-type { margin-left: 0; }
        .cake-block-testimonies .slide { flex-direction: column; gap: var(--margin-xl); }
    }
    
    @media screen and (max-width: 600px) {
        .cake-block-testimonies .slide figure, .cake-block-testimonies .slide figure img { max-height: 400px; }
    }
    
    /* Block Sticky Image ********************************************************************/
    
    .cake-block-sticky-img [data-part="inner"] {
        padding: var(--padding-2xl) 0;
    }
    
    .cake-block-sticky-img .wp-block-columns {
        gap: calc(var(--margin-xl) * 1.5);
    }
    
    .cake-block-sticky-img .wp-block-column:not(:has(figure)) > *:not(:last-child) {
        margin-bottom: var(--margin-2xl);
    }
    
    .cake-block-sticky-img .wp-block-column:not(:has(figure)) > div {
        display: flex;
        flex-direction: column;
        gap: var(--margin-s);
        padding-left: var(--padding-xl);
    }
    
    .cake-block-sticky-img figure {
        position: sticky;
        top: 0;
        border-radius: 10px;
        overflow: hidden;
    }
    
    @media screen and (max-width: 1200px) {
        .cake-block-sticky-img .wp-block-columns { gap: var(--margin-xl); }
        .cake-block-sticky-img .wp-block-column:not(:has(figure)) > div { padding-left: 0; }
    }

    @media screen and (max-width: 800px) {
        .cake-block-sticky-img .wp-block-column:not(:has(figure)) > *:not(:last-child) { margin-bottom: var(--margin-xl); }
    }
    
    /* Block Team ********************************************************************/
    
    .cake-block-team {
        padding: var(--padding-2xl) 0;
    }
    
    .cake-block-team [data-part="inner"], .cake-block-team .wp-block-column {
        display: flex;
        flex-direction: column;
    }
    
    .cake-block-team [data-part="inner"] {
        gap: var(--margin-xl);
    }
    
    .cake-block-team .wp-block-column {
        gap: var(--margin-m);
    }
    
    .cake-block-team .wp-block-column figure {
        border-radius: 10px;
        overflow: hidden;
    }
    
    @media screen and (max-width: 1000px) {
        .cake-block-team { padding: var(--padding-xl) 0; }
    }
    
    @media screen and (max-width: 600px) {
        .cake-block-team .wp-block-column figure, .cake-block-team .wp-block-column figure img { max-height: 400px; object-fit: cover; }
    }
    
    /* Block Form ********************************************************************/
    
    .cake-block-form {
        padding: var(--padding-xl) 0 var(--padding-2xl);
    }
    
    .cake-block-form select { /* Filter select style override to match style of other gform inputs */
        font-weight: 400;
    }
    
    .cake-block-form [data-part="inner"] {
        grid-column: col-start 2 / col-end 11;
        flex-direction: column;
    }
    
    .cake-block-form [data-part="inner"] > *:not(.gform_wrapper) {
        margin-bottom: calc(var(--margin-xl) * 1.5);
    }
    
    .cake-block-form [data-part="inner"] > *:not(.gform_wrapper):is(h1, h2, h3) {
        margin-bottom: var(--margin-l);
    }
    
    .cake-block-form .gform_fields {
        grid-row-gap: var(--margin-l);
    }
    
    .cake-block-form .gform_fields #field_1_8, .cake-block-form .gform_fields #field_1_8:not(.gfield_error) + .gfield_html .custom-file-input + .gfield_validation_message {
        display: none;
    }
    
    .cake-block-form .gform_fields #field_1_8.gfield_error + .gfield_html .custom-file-input > label {
        border-color: #c02b0a;
    }
    
    .cake-block-form .gfield_html:not(:first-child) {
        margin-top: var(--margin-xl);
    }
    
    .cake-block-form .gform_footer {
        border-top: 1px solid var(--color-4);
        margin-top: var(--margin-xl) !important;
        padding-top: var(--padding-xl) !important;
        justify-content: center;
    }
    
    /* Gravity Forms CSS Override */
    
    .gform_wrapper .gform_validation_errors {
        display: none !important;
    }
    
    .gform_wrapper .gfield_validation_message, .gform_wrapper .validation_message {
        border: 0 !important;
        background: transparent !important;
        padding: 0 !important;
    }
    
    @media screen and (max-width: 600px) {
        .cake-block-form [data-part="inner"] { grid-column: inner-start / inner-end; }
    }
    
/********************************************************/
/*
/* Singles
/*
/********************************************************/
    
    .study-single-header [data-part="inner"] {
        padding: calc(var(--padding-xl) * 1.5) 0 var(--padding-2xl);
        flex-direction: column;
        gap: var(--margin-2xl);
    }
    
    .job-single-header [data-part="inner"] {
        padding: var(--padding-2xl) 0;
    }
    
    .study-single-header .fields h1, .job-single-header .fields h1 {
        margin-bottom: var(--margin-l);
    }
    
    .study-single-header .fields .terms {
        display: flex;
        flex-wrap: wrap;
        gap: var(--margin-s);
        bottom: var(--margin-m);
        left: var(--margin-m);
    }
    
    .job-single-header .fields .terms {
        display: flex;
        gap: var(--margin-m);
    }
    
    .study-single-header .fields .terms label {
        background-color: var(--color-3);
        color: var(--color-white);
        padding: 5px;
        border-radius: 5px;
    }
    
    .study-single-header .thumbnail {
        width: calc(80% + var(--grid-gap));
        transform: translateX(var(--grid-gap));
        align-self: end;
    }
    
    .study-single-header .thumbnail img {
        width: 100%;
    }
    
    .job-single-content {
        padding: calc(var(--padding-xl) * 1.5) 0 var(--padding-2xl);
        background-color: var(--color-4);
    }
    
    .study-single-content > [data-part="inner"], .job-single-content > [data-part="inner"] {
        display: contents;
    }
    
    .study-single-content > [data-part="inner"] > [data-part="wrap"], .job-single-content > [data-part="inner"] > [data-part="wrap"] {
        grid-column: full-start / full-end;
    }
    
    .study-single-content > [data-part="inner"] > *:not(section, .group), .job-single-content > [data-part="inner"] > *:not(section, .group) {
        grid-column: inner-start / inner-end;
        padding-right: 25%;
    }
    
    .study-single-content > [data-part="inner"] > *:not(section, .group, :last-child), .job-single-content > [data-part="inner"] > *:not(section, .group, :last-child) {
        margin-bottom: var(--margin-l);
    }
    
    .study-single-content > [data-part="inner"] > *:not(section, .group, :last-child):is(h1, h2, h3, p, ul), .job-single-content > [data-part="inner"] > *:not(section, .group, :last-child):is(h1, h2, h3, p, ul) {
        margin-bottom: var(--margin-xl);
    }
    
    @media screen and (max-width: 800px) {
        .study-single-header [data-part="inner"] { gap: var(--margin-xl); }
        .study-single-content > [data-part="inner"] > *:not(section, .group), .job-single-content > [data-part="inner"] > *:not(section, .group) { padding-right: 0; }
        .job-single-header [data-part="inner"] { padding: var(--padding-xl) 0; }
        .job-single-header .fields .terms { gap: var(--margin-s); }
    }
    
    @media screen and (max-width: 600px) {
        .study-single-header .thumbnail { width: calc(100% + var(--grid-gap)); }
    }
    
/********************************************************/
/*
/* Footer
/*
/********************************************************/

    footer .cta {
        background-color: var(--color-gray);
    }
    
    footer .cta [data-part="inner"] {
        padding: calc(var(--padding-xl) * 1.5) var(--padding-xl);
        column-gap: 0;
        align-items: center;
    }
    
    footer .cta [data-part="inner"] > img {
        max-height: 300px;
        max-width: 30%;
        margin-right: 20%;
    }
    
    footer .cta [data-part="inner"] > div {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        max-width: 40%;
    }
    
    footer .cta h2, footer .cta p {
        margin-bottom: var(--margin-m);
    }
    
    footer .menus {
        background-color: var(--color-1);
    }
    
    footer .menus [data-part="inner"] {
        flex-wrap: wrap;
        justify-content: space-between;
        padding: calc(var(--padding-m) * 1.5) 0;
        column-gap: 0;
        row-gap: var(--margin-xl);
    }
    
    footer .menus [data-part="action"].main {
        column-count: 2;
        width: 40%;
    }
    
    footer .menus [data-part="action"].main br {
        display: none;
    }
    
    footer .menus [data-part="action"].main [data-part="action__item"] {
        margin-bottom: var(--margin-s);
    }
    
    footer .menus [data-part="action"].main [data-part="action__href"],
    footer .credits a {
        color: var(--color-white);
        font-weight: 400;
    }
    
    footer .menus [data-part="action"].main [data-part="action__href"]:hover,
    footer .credits a:hover {
        color: var(--color-2);
    }
    
    footer .menus [data-part="action"].social {
        display: flex;
        align-items: center;
        gap: var(--margin-s);
    }
    
    footer .menus [data-part="action"].social [data-part="action__href"] {
        display: flex;
        justify-content: center;
        align-items: center;
        position: relative;
        width: 50px;
        height: 50px;
        border: 6px solid var(--color-3);
        border-radius: 100%;
    }
    
    footer .menus [data-part="action"].social [data-part="action__href"]::after {
        display: inline-block;
        font: var(--stack-icn);
        color: var(--color-white);
        transition: color .4s ease;
    }
    
    footer .menus [data-part="action"].social [data-part="action__href"]:hover::after {
        color: var(--color-2);
    }
    
    footer .menus [data-part="action"].social [data-part="action__href"].fb::after {
        content: "\f39e";
    }
    
    footer .menus [data-part="action"].social [data-part="action__href"].linkedin::after {
        content: "\f0e1";
        translate: 0 1px;
    }
    
    footer .menus [data-part="action"].social [data-part="action__ctn"] {
        display: none;
    }
    
    footer .menus .credits {
        display: flex;
        justify-content: space-between;
        align-items: center; 
        width: 100%;
    }
    
    @media screen and (max-width: 1000px) {
        footer .cta [data-part="inner"] > div { max-width: 50%; }
        footer .menus [data-part="action"].main { width: 50%; }
    }
    
    @media screen and (max-width: 800px) {
        footer .cta [data-part="inner"] > img { margin-right: 10%; }
        footer .cta [data-part="inner"] > div { max-width: 60%; }
    }
    
    @media screen and (max-width: 600px) {
        footer .cta [data-part="inner"] { padding: var(--padding-xl) 0; flex-direction: column; gap: var(--margin-l); }
        footer .cta [data-part="inner"] > img { margin-right: 0; }
        footer .cta [data-part="inner"] > div { max-width: 100%; text-align: center; }
        footer .menus [data-part="inner"] { row-gap: var(--margin-l); }
        footer .menus [data-part="action"].main, footer .menus [data-part="action"].social, footer .menus .credits 
        { width: 100%; text-align: center; justify-content: center; }
        footer .menus .credits { flex-direction: column; gap: var(--margin-s); }
    }