.page-heading {
    background-color: var(--main-200);
    & .is--standard {
        padding: 16px 32px 64px 32px;
        @media (max-width: 1200px) { & {
            padding: 48px 16px 16px 16px;
        }}
    }
    & .section__desc {
        padding-top: 32px;
        @media (max-width: 1200px) { & {
            padding-top: 16px;
        }}
    }
}

.full-width.is--align-left > .container,
.agile-columns.is--align-left > .container,
.boxes.is--align-left > .container,
.accordion.is--align-left > .container,
.hero-video.is--align-left > .container,
.cta.is--align-left > .container {
    text-align: left;
	justify-items: start;
}

.full-width.is--align-center > .container,
.agile-columns.is--align-center > .container,
.boxes.is--align-center > .container,
.accordion.is--align-center > .container,
.hero-video.is--align-center > .container,
.cta.is--align-center > .container {
    text-align: center;
	justify-items: center;
}

.full-width.is--align-right > .container,
.agile-columns.is--align-right > .container
.boxes.is--align-right > .container,
.accordion.is--align-right > .container,
.hero-video.is--align-right > .container,
.cta.is--align-right > .container {
    text-align: right;
	justify-items: end;
}

.full-width > div,
.agile-columns > div,
.boxes > div .section__content,
.accordion > div .section__content,
.hero-video > div,
.portfolio .section__content,
.cta > div {
    display: grid;
	gap: 64px;
    width: 100%;
	@media (max-width: 768px) { & {
        gap: 32px;
    }}
}

.agile-columns {
    & .section__column {
        display: flex;
        flex-direction: column;
        gap: 16px;
    }
    & .agile-columns-container__desc {
        & ul {
            list-style-type: none;
            padding-left: 0;
        }
        & h3:not(:last-child),
        & h4:not(:last-child),
        & p:not(:last-child),
        & li:not(:last-child) {
            margin-bottom: 16px;
        }
    }
    & .agile-columns-container__box {
        & .agile-columns-container__icon {
            display: flex;
            align-items: center;
        }
        & .agile-columns-container__icon > svg {
            width: 24px;
            height: 24px;
            margin-right: 16px;
            flex: 0 0 24px;
            & path {
                fill: var(--main-900);
            }
        }
    }
}

.boxes {
    & .section__column {
        & > .section__inner > *:not(:last-child) {
            padding-bottom: 16px;
        }
        & img {
            display: inline-block;
        }
    }
    & .is--wide {
        & .section__column:nth-child(2n+1) .section__img,
        & .section__column:nth-child(2n) .section__img {
            margin: 0;
        }
    }
    & .is--selected_boxes,
    & .is--auto_boxes,
    & .is--blog_boxes {
        & .section__img img {
            aspect-ratio: 4 / 3;
            object-fit: cover;
            height: 100%;
        }
    }
}

.accordion {
    & .section__content {
        width: 100%;
    }
    & .section__inner {
        padding-top: 16px;
        display: flex;
        flex-direction: column;
        gap: 16px;
    }
    & summary {
        list-style-type: none;
        position: relative;
        & .section__header {
            max-width: calc(100% - 32px);
            font-weight: 700;
        }
    }
    & details[open] > summary::after {
        content: '';
        position: absolute;
        top: 22%;
        right: 0;
        background-repeat: no-repeat;
        width: 16px;
        height: 16px;
        z-index: 100;
        background-image: url(../assets/img/accordeon-close.svg);
    }
    & details > summary::before {
        content: '';
        position: absolute;
        top: 22%;
        right: 0;
        background-repeat: no-repeat;
        width: 16px;
        height: 16px;
        z-index: 100;
        background-image: url(../assets/img/accordeon-open.svg);
    }
    & details[open] > summary::before {
        display: none;
    }
}

.multi {
    & .section__content {
        grid-template-columns: 100%;
    }
    & .multi__grid {
        display: grid;
        grid-template-columns: 1fr;
        .is--align-left {
            justify-items: start;
        }
        .is--align-center {
            justify-items: center;
        }
        .is--align-right {
            justify-items: end;
        }
    }
    & .multi__full {
        display: grid;
        grid-template-columns: 1fr;
        gap: 32px;;
    }
    & .multi__columns--2 {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        @media (max-width: 768px) { & {
            grid-template-columns: repeat(1, minmax(0, 1fr));
        }}
        & .multi__column {
            gap: 32px;
        }
    }
    @media (max-width: 768px) { & {
        .is--reverse .multi__column:nth-child(1) {
            order: 2;
        }
        .is--reverse .multi__column:nth-child(2) {
            order: 1;
        }
    }}
    & .multi__columns--3 {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        @media (max-width: 768px) { & {
            grid-template-columns: repeat(1, minmax(0, 1fr));
        }}
        & .multi__column {
            gap: 24px;
        }
    }
    & .multi__columns--4 {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        @media (max-width: 1024px) { & {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }}
        @media (max-width: 576px) { & {
            grid-template-columns: repeat(1, minmax(0, 1fr));
        }}
        & .multi__column {
            gap: 16px;
        }
    }   
    & .is--wide:not(.multi__full) {
        & .section__buttons > div {
            @media (max-width: 1400px) { & {
                gap: 24px;
            }}
            @media (max-width: 1200px) { & {
                flex-direction: column;
                gap: 16px;
            }}
        }
        &.multi__columns--2 {
            & .multi__column:first-child.is--multi-full-img {
                & .section__img {
                    margin-left: -32px;
                    @media (max-width: 1200px) { & {
                        margin-left: -16px;
                    }}
                    @media (max-width: 768px) { & {
                        margin-right: -16px;
                    }}
                }
            }
            .multi__column:last-child.is--multi-full-img {
                & .section__img {
                    margin-right: -32px;
                    @media (max-width: 1200px) { & {
                        margin-right: -16px;
                    }}
                    @media (max-width: 768px) { & {
                        margin-left: -16px;
                    }}
                }
            }
            @media (max-width: 768px) {
                &.is--reverse .multi__column:nth-child(1) {
                    order: 2;
                }
                
                &.is--reverse .multi__column:nth-child(2) {
                    order: 1;
                }
            }
        }
        &.multi__columns--3 {
            & .multi__column.is--multi-full-img {
                & .section__img {
                    @media (max-width: 768px) { & {
                        margin-left: -16px;
                        margin-right: -16px;
                    }}
                }
            }
        }
        &.multi__columns--4 {
            & .multi__column.is--multi-full-img {
                & .section__img {
                    @media (max-width: 578px) { & {
                        margin-left: -16px;
                        margin-right: -16px;
                    }}
                }
            }
        }
    }
    & .is--standard:not(.multi__full) {
        & .section__buttons > div {
            gap: 24px;
            @media (max-width: 1600px) { & {
                flex-direction: column;
                gap: 16px;
            }}
        }
        &.multi__columns--2 {
            & .is--multi-full-img .section__img {
                width: calc(100svw / 2);
                @media (max-width: 768px) { & {
                    width: 100svw;
                }}
            }
            
            @media (min-width: 769px) {
                &.is--gap-8 .is--multi-full-img .section__img {
                    width: calc((100svw - 8px) / 2);
                }
                &.is--gap-16 .is--multi-full-img .section__img,
                &.is--gap-24 .is--multi-full-img .section__img,
                &.is--gap-32 .is--multi-full-img .section__img {
                    width: calc((100svw - 16px) / 2);
                }
                &.is--gap-64 .is--multi-full-img .section__img {
                    width: calc((100svw - 32px) / 2);
                }
            }
            
            @media (min-width: 1201px) {
                &.is--gap-24 .is--multi-full-img .section__img {
                    width: calc((100svw - 24px) / 2);
                }
                &.is--gap-32 .is--multi-full-img .section__img {
                    width: calc((100svw - 32px) / 2);
                }
                &.is--gap-64 .is--multi-full-img .section__img {
                    width: calc((100svw - 64px) / 2);
                }
            }
            
            & .is--multi-full-img.multi__column .section__img {
                @media (max-width: 768px) { & {
                    margin-left: -16px;
                }}
            }
            
            & .is--multi-full-img.multi__column:first-child .section__img {
                margin-left: calc((0px - ((100svw - 1400px)/2)) - 32px);
                @media (max-width: 1600px) { & {
                    margin-left: calc((0px - ((100svw - 1200px)/2)) - 32px);
                }}
                @media (max-width: 1200px) { & {
                    margin-left: -16px;
                }}
            }
        }
    }
    & .is--narrow:not(.multi__full) {
        & .section__buttons > div {
            flex-direction: column;
            gap: 16px;
        }
        &.multi__columns--2 {
            & .is--multi-full-img.multi__column:first-child .section__img {
                margin-left: calc(((-100svw + 700px) / 2) - 32px);
                @media (max-width: 1200px) { & {
                    margin-left: calc(0px - ((100svw - 700px) / 2) - 16px);
                }}
                @media (max-width: 768px) { & {
                    margin-left: calc(0px - ((100svw - 700px) / 2) - 16px);
                    margin-right: calc(0px - ((100svw - 700px) / 2) - 16px);
                }}
                @media (max-width: 700px) { & {
                    margin-left: -16px;
                    margin-right: -16px;
                }}
            }
            & .is--multi-full-img.multi__column:last-child .section__img {
                margin-right: calc(((-100svw + 700px) / 2) - 32px);
                @media (max-width: 1200px) { & {
                    margin-right: calc(0px - ((100svw - 700px) / 2) - 16px);
                }}
                @media (max-width: 768px) { & {
                    margin-left: calc(0px - ((100svw - 700px) / 2) - 16px);
                    margin-right: calc(0px - ((100svw - 700px) / 2) - 16px);
                }}
                @media (max-width: 700px) { & {
                    margin-left: -16px;
                    margin-right: -16px;
                }}
            }
        }
    }
    & .multi__column {
        display: grid;
        grid-template-columns: 1fr;
    }
    & .multi_boxes {
        & .section__column {
            & > .section__inner > *:not(:last-child) {
                padding-bottom: 16px;
            }
            & img {
                display: inline-block;
            }
        }
        &.is--wide {
            & .section__column:nth-child(2n+1) .section__img,
            & .section__column:nth-child(2n) .section__img {
                margin: 0;
            }
        }
        &.is--selected_boxes,
        &.is--auto_boxes,
        &.is--blog_boxes {
            & .section__img img {
                aspect-ratio: 4 / 3;
                object-fit: cover;
                height: 100%;
            }
        }
    }
}
.hero-video {
    min-height: 75svh;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    position: relative;
    & > div {
        gap: 32px;
        & > * {
            max-width: 900px;
        }
    }
    & .section__video {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        z-index: -100;
    }
}

.contact-section {
    & .section__img {
        display: none;
    }
    & .section__inner:has(.section__img) .section__desc p {
        padding-left: 24px;
    }
    & .section__desc p {
        position: relative;
        &:not(:last-of-type) {
            margin-bottom: 16px;
        }
        &::after {
            content: '';
            position: absolute;
            top: calc(50% - 8px);
            left: 0;
            background-repeat: no-repeat;
            width: 16px;
            height: 16px;
            z-index: 100;
            background-image: var(--bg-image);
        }
    }
}

.logo-section {
    background-color: var(--main-200);
    &.is--pt {
        padding-top: 32px;
    }
    &.is--pb {
        padding-bottom: 32px;
    }
    & > div .section__content {
        gap: 32px;
    }
    & .section__columns {
        align-items: center;
    }
    & .section__title {
        font-weight: 700;
    }
}
.portfolio-main-section {
    & .multi__column:first-child {
        height: 100%;
        align-content: space-between;
		@media (max-width: 1201px) {
			& .section__header {
				    order: -1;
			}
		}
    }
	& .multi__column:nth-child(2) {
		& .section__img,
		& img {
			width: 100%;
			height: auto;
		}
	}
	@media (max-width: 1201px) {
		& .multi__columns--3 {
        grid-template-columns: repeat(1, 1fr);
		}
	}
}

.portfolio {
    & .section__content {
        grid-template-columns: 100%;
    }
    & .section__desc {
        max-width: min(100%, 1024px);
        margin: 0 auto;
    }
    & .portfolio__table {
        width: 100%;
        text-align: left;
        @media (max-width: 768px) { & {
            max-width: calc(100svw - 32px);
        }}
    }
    @media (max-width: 1200px) { & {
        .portfolio__thead {
            display: none;
        }
        .portfolio__tbody {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 32px;
        }
    }}
    @media (max-width: 769px) { & {
        .portfolio__tbody {
            grid-template-columns: repeat(1, 1fr);
        }
    }}
    & .portfolio__tr {
        position: relative;
        display: grid;
        grid-template-columns: 1fr;
        @media (min-width: 1200px) { & {
                grid-template-columns: 4fr 2fr 1fr 160px;
                border-bottom: 1px solid var(--main-300) ;
                .portfolio__tbody &:hover {
                    background-color: var(--main-700);
                    color: var(--main-200);
                    & .is--tertiary-dark {
                        color: var(--btn-light-hover);
                    }
                }
        }}
        & .portfolio__img {
            object-fit: cover;
            border: 1px solid var(--main-300);
            margin-bottom: 16px;
            @media (min-width: 1200px) { & {
                width: 252px;
                height: 189px;
                top: 0;
                left: 0;
                position: fixed;
                z-index: 50;
                pointer-events: none;
                opacity: 0;
            }}
        }
        &:hover .portfolio__img {
            opacity: 1;
            transition: opacity 0.65s;
        }
    }
    & .portfolio__td {
        padding: 8px 0;
        @media (min-width: 1200px) {
            & {
                padding: 32px 16px;
            }
            .portfolio__tbody & b {
                display: none;
            }
        }
        @media (max-width: 1201px) {
            .portfolio__thead & b {
                display: none;
            }
        }
    }
}

.portfolio-hero {
    & .section__column:last-child {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }
    & .portfolio-hero__feature {
        display: flex;
        flex-direction: column
    }
}

.cta {
    & .section__columns {
        background-color: var(--main-200);
    }
    & .section__column:first-child {
        padding: 64px 32px 0 32px;
        @media(min-width: 1025px) { & {
            padding: 64px 32px 64px 64px;
        }}
        @media(min-width: 1201px) { & {
            padding: 96px 32px 96px 96px;
        }}
    }
    & .section__column:last-child {
        position: relative;
        
        @media(min-width: 769px) { & {
            align-items: flex-end
        }}
    }
    & .section__buttons {
        margin-top: 16px;
        @media(min-width: 1024px) { & {
            margin-top: 32px;
        }}
    }
    & .section__img-bg {
        width: 85%;
    }
    & .section__img-front {
        position: absolute;
        top: 45%;
        right: 0;
        width: 40%;
        height: auto;
        border: 12px solid var(--main-200);
        @media(min-width: 769px) { & {
            left: 0;
        }}
    }
    & .section__img-bg > img,
    & .section__img-front > img {
        aspect-ratio: 3 / 4;
        object-fit: cover;
    }
}