.vitis-outline-grid {
    --vitis-outline-grid-background: #FFFFFF;
    --vitis-outline-grid-padding-before: 104px;
    --vitis-outline-grid-padding-before-min: 48px;
    --vitis-outline-grid-padding-before-base: 42px;
    --vitis-outline-grid-padding-after: 104px;
    --vitis-outline-grid-padding-after-min: 48px;
    --vitis-outline-grid-padding-after-base: 42px;
    --vitis-outline-grid-button-spacing: 32px;
    --vitis-outline-grid-no-image-min-height: 430px;
    --vitis-outline-grid-title-font: var(--main-font-family);
    --vitis-outline-grid-title-size: 24px;
    --vitis-outline-grid-title-weight: 400;
    padding-block-start: clamp(var(--vitis-outline-grid-padding-before-min), calc(var(--vitis-outline-grid-padding-before-base) + 3vw), var(--vitis-outline-grid-padding-before));
    padding-block-end: clamp(var(--vitis-outline-grid-padding-after-min), calc(var(--vitis-outline-grid-padding-after-base) + 3vw), var(--vitis-outline-grid-padding-after));
    background: var(--vitis-outline-grid-background);
    box-shadow: 0 0 0 100vmax var(--vitis-outline-grid-background);
    clip-path: inset(0 -100vmax);
}

.vitis-outline-grid__module-title {
    margin: 0 0 clamp(2rem, 1.4rem + 2vw, 4rem);
    color: #62663D;
    font-family: var(--main-font-family);
    font-size: clamp(2.5rem, 2rem + 1.6vw, 3.125rem);
    font-weight: 400;
    line-height: 1.12;
    text-align: center;
}

.vitis-outline-grid__card {
    position: relative;
    display: flex;
    width: 100%;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid rgb(98 102 61 / 35%);
    border-radius: 0;
    background: transparent;
    transition:
        transform 420ms cubic-bezier(0.22, 1, 0.36, 1),
        border-color 320ms ease,
        box-shadow 420ms ease;
}

.vitis-outline-grid__card.has-no-image {
    min-height: var(--vitis-outline-grid-no-image-min-height);
}

.vitis-outline-grid__media {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 10;
    max-height: 430px;
    overflow: hidden;
    background: #F4F0EB;
}

.vitis-outline-grid__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
}

.vitis-outline-grid__content {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: clamp(1.5rem, 1.2rem + 1vw, 2.25rem);
    text-align: left;
}

.vitis-outline-grid--align-center .vitis-outline-grid__content {
    align-items: center;
    text-align: center;
}

.vitis-outline-grid--align-right .vitis-outline-grid__content {
    align-items: flex-end;
    text-align: right;
}

.vitis-outline-grid__title {
    width: 100%;
    margin: 0 0 clamp(0.85rem, 0.7rem + 0.5vw, 1.25rem);
    color: #62663D;
    font-family: var(--vitis-outline-grid-title-font);
    font-size: min(var(--vitis-outline-grid-title-size), clamp(1.25rem, 1rem + 1vw, var(--vitis-outline-grid-title-size)));
    font-weight: var(--vitis-outline-grid-title-weight);
    line-height: 1.2;
    text-wrap: balance;
}

.vitis-outline-grid__text {
    width: 100%;
    color: #64605A;
    font-family: var(--secondary-font-family);
    font-size: 1rem;
    font-weight: 300;
    line-height: 1.65;
}

.vitis-outline-grid__text > :last-child {
    margin-bottom: 0;
}

.vitis-outline-grid__text a {
    position: relative;
    z-index: 6;
    color: #B78F4F;
}

.vitis-outline-grid__button {
    display: inline-flex;
    min-height: 3rem;
    align-items: center;
    justify-content: center;
    margin-top: var(--vitis-outline-grid-button-spacing);
    padding: 0.75rem 1.5rem;
    border: 1px solid #62663D;
    border-radius: 0;
    background: transparent;
    color: #62663D;
    font-family: var(--secondary-font-family);
    font-size: 0.875rem;
    font-weight: 400;
    letter-spacing: 0.035em;
    line-height: 1.2;
    text-transform: uppercase;
    transition: background-color 280ms ease, color 280ms ease;
}

.vitis-outline-grid__overlay-link {
    position: absolute;
    z-index: 5;
    inset: 0;
    display: block;
}

.vitis-outline-grid__overlay-link:focus-visible {
    outline: 2px solid #62663D;
    outline-offset: -0.4rem;
}

.vitis-outline-grid__card.is-linked:focus-within {
    border-color: #62663D;
    box-shadow: 0 0.75rem 2rem rgb(98 102 61 / 13%);
    transform: translateY(-0.35rem);
}

.vitis-outline-grid__card.is-linked:focus-within .vitis-outline-grid__image {
    transform: scale(1.035);
}

.vitis-outline-grid__card.is-linked:focus-within .vitis-outline-grid__button {
    background: #62663D;
    color: #FFFFFF;
}

@media (hover: hover) and (pointer: fine) {
    .vitis-outline-grid__card.is-linked:hover {
        border-color: #62663D;
        box-shadow: 0 0.75rem 2rem rgb(98 102 61 / 13%);
        transform: translateY(-0.35rem);
    }

    .vitis-outline-grid__card.is-linked:hover .vitis-outline-grid__image {
        transform: scale(1.035);
    }

    .vitis-outline-grid__card.is-linked:hover .vitis-outline-grid__button {
        background: #62663D;
        color: #FFFFFF;
    }
}

@media (max-width: 575.98px) {
    .vitis-outline-grid__content {
        padding: 1.35rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .vitis-outline-grid__card,
    .vitis-outline-grid__image,
    .vitis-outline-grid__button {
        transition: none;
    }

    .vitis-outline-grid__card.is-linked:hover,
    .vitis-outline-grid__card.is-linked:focus-within {
        transform: none;
    }
}
