/* Import fonts */
@font-face {
    font-family: "Forza";
    src: url(./fonts/Forza-Book.woff2) format("woff2"),
        url(./fonts/Forza-Book.otf) format("opentype");
    font-weight: 325;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Forza";
    src: url(./fonts/Forza-Bold.woff2) format("woff2"),
        url(./fonts/Forza-Bold.otf) format("opentype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* Define color variables */
:root {
    --color-primary: #dd2f23;
    --color-primary-focus: #b20b00;
    --color-secondary: #d9efef;
    --color-secondary-sand: #fbf7d3;
    --color-secondary-grey: #e9e7e5;
    --color-neutral-100: #f4f5f3;
    --color-neutral-200: #e9e7e5;
    --color-neutral-300: #cfcdcc;
    --color-neutral-400: #9ea0a0;
    --color-neutral-500: #787c7e;
    --color-neutral-600: #555558;
    --color-neutral-700: #2f3337;
    --color-accent-blue: #009ab4;
    --color-accent-green: #54b046;
    --color-accent-yellow: #ebd71c;
    --color-default: #2f3337;
    --color-error: #da0000;
    --color-transparent: transparent;
    --color-current: currentColor;
    --color-white: #ffffff;
    --breakpoint-md: 768px;
    --breakpoint-lg: 992px;

    --pad-container: 1.5rem;
    --pad-block: 1.5rem;
    --form-max-width: unset;

    @media (min-width: 768px) {
        --pad-container: 3rem;
        --pad-block: 3rem;
    }

    @media (min-width: 992px) {
        --pad-container: 8rem;
        --pad-block: 4rem 8rem;
        --form-max-width: 50rem;
    }

    @media (min-width: 1024px) and (max-width: 1370px) {
        --pad-container: 3rem;
        --pad-block: 3rem;
    }

    --min-item-height: max(15rem, 100%);
    --max-item-height: min(30svh, 25rem);

    @media (min-width: 992px) {
        --min-item-height: max(20rem, 100%);
        --max-item-height: min(45svh, 35rem);
    }

    --min-item-height: max(15rem, 100%);
    --max-item-height: min(30svh, 25rem);

    @media (min-width: 992px) {
        --min-item-height: max(20rem, 100%);
        --max-item-height: min(45svh, 35rem);
    }
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: "Forza", system-ui, sans-serif;
    color: var(--color-default);
}

:root {
    --font-size-display: 2rem;
    --font-size-h1: 2.25rem;
    --font-size-h2: 1.5rem;
    --font-size-h3: 1.125rem;
    --font-size-h4: 1rem;
    --font-size-h5: 0.9375rem;
    --font-size-h6: 0.875rem;
}

@media (min-width: 992px) {
    :root {
        --font-size-display: 4rem;
        --font-size-h1: 3rem;
        --font-size-h2: 2rem;
        --font-size-h3: 1.5rem;
        --font-size-h4: 1.25rem;
        --font-size-h5: 1.125rem;
        --font-size-h6: 1rem;
    }
}

h1,
.h1 {
    font-size: var(--font-size-h1);
    font-weight: 400;
}

h2,
.h2 {
    font-size: var(--font-size-h2);
    font-weight: 400;
}

h3,
.h3 {
    font-size: var(--font-size-h3);
    font-weight: 400;
}

h4,
.h4 {
    font-size: var(--font-size-h4);
    font-weight: 400;
}

h5,
.h5 {
    font-size: var(--font-size-h5);
    font-weight: 400;
}

h6,
.h6 {
    font-size: var(--font-size-h6);
    font-weight: 400;
}

.text-display {
    font-size: var(--font-size-display);
    font-weight: 325;
}

.text-lead {
    font-size: 1.375rem;
    font-weight: 325;
}

.text-body-lg {
    font-size: 1.125rem;
    font-weight: 325;
}

.text-body {
    font-weight: 325;
    font-size: 1rem;
}

.text-body-sm {
    font-size: 0.875rem;
    font-weight: 325;
}

.text-tech {
    font-size: 0.75rem;
}

.text-quote {
    font-style: italic;
    font-size: 1.375rem;
}

blockquote {
    font-size: var(--font-size-h3);
    font-style: italic;
    padding: 0 1rem 0 1rem;
}

.row {
    margin-inline: unset;
}

.pad-container {
    padding-inline: var(--pad-container);
}

.pad-block {
    padding-block: var(--pad-block);
}

html,
body {
    font-family: "Forza", system-ui, sans-serif;
    font-weight: 325;
    font-size: 1rem;
    line-height: 1.5;
    color: var(--color-default);
    margin: 0;
}

body > * {
    font-family: "Forza", system-ui, sans-serif;
}

button,
.btn {
    transition-property: color, background-color;
    transition-duration: 200ms;
    font-size: 1.125rem;
    font-weight: 325;
    border-radius: 9999px;
    outline: 1px solid transparent;
    padding: 0.375rem 2.5rem;
    background-color: var(--color-primary);
    color: var(--color-white);
    border: 0;

    &:focus {
        outline: 2px solid var(--color-default);
        box-shadow: none;
    }

    &:hover,
    &:focus {
        background-color: var(--color-primary-focus);
        color: var(--color-white);
    }

    &:disabled {
        background-color: var(--color-neutral-100);
        color: var(--color-neutral-500);
        border-color: transparent;
        cursor: not-allowed;
    }

    &:not(:disabled) {
        &:active {
            background-color: var(--color-primary-focus);
        }
    }
}

button.btn-secondary,
.btn-secondary,
.btn-secondary:not(:disabled):not(.disabled):active {
    background-color: var(--color-white);
    color: var(--color-default);
    outline-color: var(--color-neutral-700);

    &:focus {
        outline-color: var(--color-default);
        box-shadow: none;
    }

    &:hover,
    &:focus {
        background-color: var(--color-secondary);
        color: var(--color-neutral-700);
    }

    &:disabled {
        color: var(--color-neutral-400);
        outline: 1px solid var(--color-default);
        background-color: var(--color-white);
    }
}

.btn-lg {
    padding: 0.875rem 2rem;
}

.formbuilder-row {
    & small.text-muted {
        color: var(--color-default) !important;
        font-weight: 325;
        letter-spacing: 0.0375rem;
    }

    & .invalid-feedback {
        font-weight: 325;
        color: var(--color-error);
    }

    & .form-control {
        border: 0;
        outline: 1px solid var(--color-default);
    }

    & .form-control:focus {
        outline: 2px solid var(--color-default);
        box-shadow: unset;
        border: 0;
        color: var(--color-default);
    }

    & .dropdown-select {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
        max-width: 25rem;
        margin-inline: auto;
    }
}

label {
    color: var(--color-default);
    font-size: 0.875rem;
    font-weight: 325;
    line-height: 150%;
    letter-spacing: 0.04375rem;
}

textarea,
input[type="text"] {
    display: flex;
    padding-left: 1rem;
    padding-right: 1rem;
    font-size: 1rem;
    font-weight: 325;
    letter-spacing: 0.05rem;
    color: var(--color-default);
    border-radius: 0.3125rem;
    border: none;
    outline: 1px solid var(--color-default);

    &:focus {
        outline: 2px solid var(--color-default);
        box-shadow: unset;
        border: 0;
        color: var(--color-default);
    }

    &.is-invalid {
        outline-color: var(--color-error);
    }
}

textarea {
    min-height: 2.5rem;

    &:focus {
        outline: 2px solid var(--color-default);
        box-shadow: unset;
        border: 0;
        color: var(--color-default);
    }
}

option {
    color: var(--color-default);
}

input[type="text"] {
    height: 2.5rem;

    &[size="lg"] {
        height: 3.5rem;
    }
}

form > .row {
    margin-inline: unset;
    display: flex;
    flex-direction: column;
}

.custom-radio {
    & .custom-control-label {
        &::before {
            border: 1px solid var(--color-default);
            background-color: var(--color-white);
        }

        &::after {
            background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E");
            transition: background-image 200ms ease-in 0s;
        }
    }

    & .custom-control-input:checked ~ .custom-control-label {
        &::before {
            border-color: var(--color-primary);
            background-color: var(--color-white);
            box-shadow: none;
        }

        &::after {
            color: var(--color-white);
            background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23dd2f23'/%3E%3C/svg%3E");
            background-size: 100% 100%;
        }
    }

    & .custom-control-input:focus ~ .custom-control-label::before {
        box-shadow: 0 0 0 1px #fff, 0 0 0 2px var(--color-primary);
    }

    & .custom-control-input:active ~ .custom-control-label::before {
        background-color: var(--color-white);
        border-color: var(--color-primary);
    }
}

.custom-checkbox {
    & .custom-control-label {
        &::before {
            border: 1px solid var(--color-default);
            background-color: var(--color-white);
            border-radius: 0.125rem;
        }
    }

    & .custom-control-input:checked ~ .custom-control-label {
        &::before {
            border-color: var(--color-primary);
            background-color: var(--color-primary);
            box-shadow: none;
        }

        &::after {
            color: var(--color-white);
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M10 14.312L16.246 8.046C16.3387 7.95266 16.4563 7.906 16.599 7.906C16.7417 7.906 16.86 7.95233 16.954 8.045C17.0473 8.13766 17.094 8.25566 17.094 8.399C17.094 8.54166 17.0473 8.66 16.954 8.754L10.565 15.124C10.4037 15.2847 10.2153 15.365 10 15.365C9.78467 15.365 9.59634 15.2843 9.43501 15.123L7.04601 12.753C6.95267 12.661 6.90601 12.5437 6.90601 12.401C6.90601 12.2583 6.95234 12.14 7.04501 12.046C7.13767 11.9527 7.25567 11.906 7.39901 11.906C7.54167 11.906 7.66001 11.9527 7.75401 12.046L10 14.312Z' fill='white'/%3E%3C/svg%3E");
            background-size: 100% 100%;
        }
    }

    & .custom-control-input:focus ~ .custom-control-label::before {
        box-shadow: 0 0 0 1px #fff, 0 0 0 2px var(--color-primary);
    }

    & .custom-control-input:active ~ .custom-control-label::before {
        background-color: var(--color-white);
        border-color: var(--color-primary);
    }
}

/** Bricks */
.text-align-left {
    text-align: left;
}

.text-align-right {
    text-align: right;
}

.text-align-center {
    text-align: center;
}

.dropdown-brick {
    &.pad-block {
        padding-block-start: var(--pad-container);
    }

    & > .d-grid {
        grid-template-rows: 1fr 1fr 1fr;
        align-items: center;
    }
}

.office-container {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;

    @media (min-width: 768px) {
        grid-template-columns: repeat(3, 1fr);
    }

    @media (min-width: 992px) {
        grid-template-columns: repeat(4, 1fr);
        gap: 4rem;
    }

    & .office-item {
        & > div {
            display: flex;
            gap: 0.5rem;
            flex-direction: column;

            & > div {
                font-size: 1rem;
            }

            & > div:first-child {
                margin-bottom: 0.25rem;
                font-size: 1.25rem;
            }
        }
    }
}

.office-container,
.wysiwyg-brick,
.wysiwyg-container {
    font-size: 1.25rem;
    
    & a {
        color: var(--color-default);
        text-decoration: underline;

        &:focus,
        &:hover {
            color: var(--color-primary-focus);
        }
    }
}

.two-column-brick {
    & > .d-grid {
        grid-template-rows: 1fr 1fr;

        @media (min-width: 992px) {
            grid-template-columns: repeat(2, 1fr);
            grid-template-rows: unset;
        }

        & > * {
            max-width: 100%;
            overflow: hidden;
            align-self: center;
        }

        & .pimcore_area_wysiwyg ~ .pimcore_area_wysiwyg,
        .pimcore_area_accordion ~ .pimcore_area_accordion {
            @media (min-width: 992px) {
                margin-left: 2rem;
            }
        }

        & .slick-slider-wrapper {
            gap: unset;

            @media (min-width: 992px) {
                gap: unset;
            }

            & ul,
            button {
                display: none !important;
            }
        }
    }

    & .cta-banner-brick.with-image {
        @media (min-width: 992px) {
            --pad-block: 4rem;
            --pad-container: 4rem;
        }

        &.image-left {
            & .d-grid {
                @media (min-width: 992px) {
                    grid-template-columns: 1fr 2fr;
                    grid-template-rows: unset;
                }
            }
        }

        &.image-right {
            & .d-grid {
                @media (min-width: 992px) {
                    grid-template-columns: 1fr 2fr;
                    grid-template-rows: unset;
                }
            }
        }

        & .d-grid {
            @media (min-width: 992px) {
                & img {
                    max-height: 18rem;
                }
            }
        }
    }
}

.article-brick {
    display: flex;
    flex-direction: column;
    gap: 2rem;

    & > .d-grid {
        grid-template-rows: 1fr;
        gap: 2rem;
        justify-content: center;

        @media (min-width: 992px) {
            grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
            grid-template-rows: unset;
        }

        @media (min-width: 1380px) {
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
        }

        & img {
            object-fit: cover;
            max-width: 100%;

            @media (min-width: 992px) {
                aspect-ratio: 30 / 19;
            }
        }

        & a {
            &:hover {
                text-decoration: unset;

                & .title {
                    text-decoration: underline;
                }
            }
        }

        & .image {
            margin-bottom: 0.5rem;

            @media (min-width: 992px) {
                margin-bottom: 1rem;
            }
        }

        & .details {
            color: var(--color-default);
            font-size: var(--font-size-h4);
            margin-bottom: 0.25rem;
            display: grid;
            grid-template-columns: 2fr 1fr;
            gap: 0.5rem;

            @media (min-width: 992px) {
                margin-bottom: 0.5rem;
            }

            & .date {
                text-align: right;
            }

            & .category {
                text-align: left;
            }
        }

        & .title {
            color: var(--color-default);
            font-size: var(--font-size-h3);
            font-weight: 400;
            display: flex;
            justify-content: space-between;

            & .heading {
                display: flex;
                align-items: center;
            }
        }
    }
}

.cta-banner-brick {
    @media (min-width: 992px) {
        --pad-block: 5rem;
    }

    & .d-grid {
        grid-template-rows: 1fr;
    }

    &.with-image {
        &.pad-block {
            padding-block: unset;

            & .cta-content {
                padding-block: var(--pad-block);
            }
        }

        &.pad-container {
            padding-inline: unset;

            & .cta-content {
                padding-inline: var(--pad-container);
            }
        }

        & .d-grid {
            grid-template-rows: 1fr 1fr;

            @media (min-width: 992px) {
                grid-template-columns: 1fr 1fr;
                grid-template-rows: unset;
            }
        }
    }

    & img {
        object-fit: cover;
        max-height: var(--max-item-height);
        min-height: var(--min-item-height);
        max-width: 100%;
    }
}

.icon-brick {
    --max-item-width: 8rem;
    --min-item-width: 8rem;

    @media (min-width: 1600px) {
        --max-item-width: 12rem;
        --min-item-width: 12rem;
    }

    & .slide-item {
        min-width: 100%;
        display: grid;
        justify-content: center;
        justify-items: center;

        & a {
            text-decoration: underline;

            &:hover,
            &:focus {
                color: var(--color-primary-focus);
            }
        }

        & > .pimcore_editable_block {
            display: contents;
        }

        & .icon-item {
            min-width: var(--min-item-width);
            max-width: var(--max-item-width);

            & .icon {
                display: flex;
                min-height: var(--min-item-width);
                max-height: var(--max-item-width);
                border-radius: var(--border-radius);

                & .none-if-empty {
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    border-radius: var(--border-radius);

                    &:not(&:empty) ~ .none-if-empty {
                        display: none;
                    }

                    &:empty {
                        display: none;
                    }
                }
            }

            & .label {
                margin-top: 1rem;
                font-size: var(--font-size-h4);
                font-weight: 400;
                text-align: center;
                text-wrap: wrap;
            }
        }

        & .as-text {
            background-color: #fff;
            text-align: center;
            font-size: var(--font-size-h3);
            font-weight: 400;
            min-width: var(--min-item-width);
            max-width: var(--max-item-width);
            min-height: var(--min-item-width);
            border-radius: var(--border-radius);
            word-break: break-word;
        }

        & .as-image {
            & img {
                border-radius: var(--border-radius);
                max-width: var(--max-item-width);
                max-height: var(--max-item-width);
                object-fit: var(--image-position, contain);
            }
        }
    }

    & .template-6 {
        @media (min-width: 500px) {
            grid-template-columns: repeat(2, 1fr);
            gap: 2rem;
        }

        @media (min-width: 768px) {
            grid-template-columns: repeat(3, 1fr);
            gap: 2rem;
        }

        @media (min-width: 1600px) {
            grid-template-columns: repeat(6, 1fr);
            gap: 2rem;
        }
    }

    & .template-3 {
        @media (min-width: 660px) {
            grid-template-columns: repeat(3, 1fr);
            gap: 2rem;
        }
    }

    & a.btn {
        display: block;
        width: fit-content;
        margin-top: 2rem;
        max-width: calc(var(--max-item-width) * 2);
        margin-inline: auto;
    }
}

.sales-presentation {
    & > .d-grid {
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
        grid-template-rows: repeat(1, 1fr);
        gap: 2rem;
        --max-sales-size: 15rem;
        justify-items: center;

        @media (min-width: 560px) {
            --max-sales-size: 15rem;
            grid-template-rows: repeat(1, 1fr);
        }

        @media (min-width: 1280px) {
            grid-template-rows: unset;
        }

        & .contact {
            display: flex;
            flex-direction: column;
            gap: 1.5rem;
            font-size: var(--font-size-h5);

            @media (min-width: 1280px) {
                max-width: var(--max-sales-size);
            }
        }

        & .info {
            max-width: var(--max-sales-size);
            display: flex;
            flex-direction: column;
            gap: 1rem;

            & .name {
                font-weight: 400;
            }
        }

        & .image {
            & img {
                width: var(--max-sales-size);
                height: var(--max-sales-size);
                border-radius: 9999px;
                object-fit: cover;
            }
        }

        & a.btn {
            text-wrap: wrap;
            min-width: 100%;
        }
    }
}

.heading-brick {
    &.pad-block {
        padding-block: unset;
        padding-block-start: calc(var(--pad-container) / 2);
    }

    & h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
        margin: unset;
    }
}

.hero-brick {
    background-size: cover;
    display: grid;
    min-height: 15rem;
    position: relative;

    & .row {
        padding-block: 2.5rem;
        min-width: 100%;

        @media (min-width: 992px) {
            padding-block: 5rem;
        }

        & > div {
            margin-top: auto;
        }
    }

    &.align-center {
        justify-content: center;
        align-items: center;
    }

    &.align-right {
        justify-content: end;
    }

    & .heading {
        max-width: 18rem;

        @media (min-width: 768px) {
            max-width: 30rem;
        }

        @media (min-width: 1024px) {
            max-width: 55rem;
        }

        & h1,
        h2,
        h3,
        h4,
        h5,
        h6 {
            margin-bottom: 1rem;
            font-size: var(--font-size-display);
            font-weight: 325;
            letter-spacing: 0.2rem;
            text-transform: uppercase;
            word-break: break-word;
            width: auto;
        }
    }
    & .wysiwyg-container {
        & > *:not(:last-child) {
            margin-bottom: 2rem;
        }
    }

    & .hero-icon {
        position: absolute;
        top: 1rem;
        right: 1rem;

        & img {
            max-width: 2rem;
            max-height: 2rem;

            @media (min-width: 640px) {
                max-width: 4rem;
                max-height: 4rem;
            }

            @media (min-width: 1280px) {
                max-width: 8rem;
                max-height: 8rem;
            }
        }
    }

    & video {
        z-index: 0;
    }

    & .video-overlay {
        display: contents;
    }

    &[data-video-exists="true"] {
        & .video-overlay {
            width: 100%;
            display: block;
            position: relative;
            z-index: 1;
        }

        & .pimcore_editable_video {
            display: flex;
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 0;

            & video {
                object-fit: cover;
            }
        }
    }
}

.accordion-brick {
    &.card {
        border: unset;
    }

    & .servi-accordion {
        display: grid;
        padding: unset;
        background-color: inherit;
        row-gap: 1rem;
        column-gap: 2rem;

        & .card-wrapper {
            padding: 1rem 1.5rem;
            border: 1px solid var(--color-neutral-300);
        }

        & .headline {
            display: flex;
            gap: 1.5rem;
            align-items: center;
            font-size: 1.125rem;

            & > span {
                min-width: 3rem;
            }
        }

        & .card-header {
            font-weight: 325;

            & > .row {
                justify-content: space-between;
                align-items: center;

                & svg {
                    transition: transform 200ms;
                    margin-right: 0.5rem;
                }

                &:not(&[aria-expanded="true"]) {
                    & svg {
                        transform: rotate(90deg);
                    }
                }
            }
        }

        & .card-body {
            &:not(&:empty) {
                padding-top: 0.5rem;
            }

            & > *:last-child {
                margin-bottom: 0;
            }
        }
    }
}

/** Header */
#header-area {
    margin-bottom: 0;
    display: contents;

    & .header-top {
        display: none;
        background-color: transparent;

        @media (min-width: 1370px) {
            background: var(--color-secondary);
            color: var(--color-default);
            display: block;
        }
    }

    & .main-header {
        display: none;

        @media (min-width: 1370px) {
            display: block;
        }

        &.pad-container {
            padding-inline: var(--pad-container);
            padding-block: 0.5rem;

            @media (min-width: 992px) {
                padding-block: 1.5rem;
            }

            & > .row {
                align-items: center;

                .row {
                    align-items: center;
                    flex-grow: 1;
                    justify-content: space-between;
                }
            }
        }
    }
}

.navbar-dark {
    & .navbar-toggler-icon {
        background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='%232f3337' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
    }

    & .navbar-nav {
        gap: 2rem;

        & .nav-link {
            color: inherit;
            padding-inline: 0;
        }

        & .nav-link.active,
        & .nav-link.show,
        & .active > .nav-link,
        & .show > .nav-link,
        & .nav-link:focus {
            color: var(--color-primary-focus);
        }

        & .nav-link:focus {
            border-radius: 0.125rem;
            outline: 2px solid var(--color-primary-focus);
            box-shadow: none;
        }
    }
}

.header-top li,
.header-top .btn-link,
#main-menu.navbar,
#search .input-group .form-control,
#cart .btn,
.dropdown-menu,
.product-head,
.product-col .caption h4,
.product-col .price,
.product-col .btn-cart,
.breadcrumb,
.side-heading,
.list-group-item,
.product-filter,
.pagination,
.product-info .product-details,
.tabs-panel .nav-tabs {
    font-family: inherit;
}

.bg-dark {
    background-color: var(--color-neutral-600) !important;
    color: var(--color-white);
}
#main-menu {
    display: none;

    @media (min-width: 1370px) {
        display: flex;
        position: sticky;
        top: 0;
        z-index: 10;
    }

    & .nav-link {
        padding: 1rem 2rem;
        min-height: 100%;
        display: flex;
        align-content: center;
    }

    & .dropdown {
        position: unset;
    }

    & .navbar-nav {
        position: relative;

        & > li {
            & > a:focus,
            & > a:hover {
                background-color: var(--color-white);
                color: var(--color-default);
            }
        }
    }

    &.navbar.pad-container {
        padding-inline: var(--pad-container);
    }

    & .dropdown:focus-within {
        & .dropdown-toggle {
            background-color: var(--color-white);
            color: var(--color-default);
        }
    }

    & .dropdown-toggle {
        &::after {
            display: none;
        }
    }

    & .dropdown-toggle:hover,
    & .dropdown-toggle:focus {
        ~ .dropdown-menu {
            transform: scaleY(1);
            transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
            transition-duration: 100ms;
            opacity: 1;
        }
    }

    & .dropdown-menu:hover,
    & .dropdown-menu:focus-within {
        transform: scaleY(1);
        transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
        transition-duration: 100ms;
        opacity: 1;
        overflow-y: auto;
        max-height: 67vh;
    }

    & li > .dropdown-menu {
        --spacing: calc(var(--pad-container) / 2);
        margin-top: 0;
        background-color: var(--color-white);
        box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
        gap: var(--spacing);
        flex-wrap: wrap;
        transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
        transition-duration: 75ms;

        &.show {
            display: flex;
        }

        opacity: 0;
        display: flex;
        flex-direction: row;
        transform: scaleY(0);
        max-width: calc(100vw - (2 * var(--pad-container)));
        min-width: calc(100vw - (2 * var(--pad-container)));
        padding: var(--spacing);

        & .dropdown-list {
            display: flex;
            flex-direction: column;
            gap: 1rem;
        }

        & a {
            padding: 0;
            color: var(--color-default);
            font-size: var(--font-size-h4);
            letter-spacing: 0.0625rem;
            position: relative;

            &:focus,
            &:hover {
                &::after {
                    content: "";
                    position: absolute;
                    display: block;
                    width: 100%;
                    height: 2px;
                    background-color: var(--color-default);
                }
            }

            &:active,
            &:focus,
            &:hover {
                background-color: transparent;
            }

            &.subchild {
                font-size: var(--font-size-h6);
                font-weight: 325;
                letter-spacing: 0.05rem;
            }

            &.parent-page {
                @media (min-width: 992px) {
                    display: none;
                }
            }
        }
    }
}

#logo {
    &:focus-within {
        outline: 2px solid var(--color-default);
    }

    & img {
        width: 4rem;
    }

    @media (min-width: 992px) {
        margin-right: 5rem;

        & img {
            width: 6.5rem;
        }
    }
}

#search,
#search-results {
    margin: 0;
    width: 100%;

    @media (min-width: 1370px) {
        max-width: 22rem;
        flex-grow: 1;
    }

    & .input-group {
        width: 100%;
        display: block;

        & input[type="search"]#q.form-control {
            padding: 0.5rem var(--pad-container);
            padding-right: 3.5rem;
            border: 1px solid var(--color-neutral-300);
            border-radius: 0;
            border-inline: none;
            font-weight: 325;
            font-size: var(--font-size-h5);
            color: var(--color-default);

            &::placeholder {
                color: var(--color-default);
            }

            @media (min-width: 1370px) {
                padding: 0.5rem 1.5rem;
                border-radius: 50px;
                border: 1px solid var(--color-default);

                &:focus {
                    outline: 2px solid var(--color-default);
                }
            }

            &:focus {
                border-color: var(--color-default);
                box-shadow: none;
            }
        }
    }

    & button[type="submit"] {
        display: contents;
        /*position: absolute;
        right: var(--pad-container);
        top: 0.3rem;
        height: 1.5rem;
         */
    }

    & svg {
        position: absolute;
        right: var(--pad-container);
        width: 1.5rem;
        height: 1.5rem;
        top: 0.3rem;

        &:hover {
            cursor: pointer;
        }

        @media (min-width: 1370px) {
            top: 0.75rem;
            right: 1.5rem;
        }
    }

    & .form-group {
        margin: 0;
    }
}

#search-results {
    display: flex;
    min-width: 100%;
    margin-bottom: 1rem;

    @media (min-width: 992px) {
        margin-bottom: 3rem;
        gap: 4rem;
    }

    & .input-group {
        display: none;

        @media (min-width: 992px) {
            display: block;
        }
    }

    & .search-type-count {
        font-size: var(--font-size-h3);
        font-weight: 400;
        min-width: fit-content;
        padding-bottom: 0.5rem;

        &::after {
            content: "";
            display: block;
            width: 100%;
            height: 1px;
            background-color: var(--color-default);
        }
    }
}

.search-list {
    & h1 {
        overflow-wrap: break-word;
    }

    & .search-count-string {
        margin-block: 1rem;
        font-size: var(--font-size-h5);

        @media (min-width: 992px) {
            margin-block: 3rem;
        }
    }
}

.list-group {
    & .servi-list-group-item {
        padding-block: 1rem;
        border-bottom: 1px solid var(--color-default);

        & > .d-flex {
            gap: 1.5rem;
            flex-direction: column;

            @media (min-width: 560px) {
                flex-direction: row;
            }

            & img {
                max-height: 10rem;
                max-width: 10rem;
            }

            & .details {
                display: flex;
                flex-direction: column;
                gap: 0.5rem;
            }

            & .description {
                margin-top: 1.5rem;
                color: var(--color-default);
            }

            & .date {
                color: var(--color-default);
            }
        }
    }
}

.page-item {
    display: flex;

    &.active {
        & .page-link {
            background-color: var(--color-secondary);
            color: var(--color-default);
        }
    }

    & .page-link {
        all: unset;
        color: var(--color-default);
        width: 100%;
        padding: 0.625rem 1rem;
        font-weight: 400;
        font-size: var(--font-size-h4);
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 0.3125rem;

        &:focus,
        &:hover {
            background-color: var(--color-secondary);
            color: var(--color-default);
        }
    }
}

.pagination {
    justify-content: center;

    & > * {
        flex-basis: 2.875rem;
    }
}

.navbar {
    flex-wrap: nowrap;
    align-items: start;
    justify-content: end;

    & button {
        background-color: transparent;

        &:focus,
        &:hover,
        &:not(:disabled):active {
            background-color: transparent;
        }
    }

    & .navbar-toggler {
        order: 1;
    }
}

#footer-area {
    position: unset;
    height: unset;
    background-color: var(--color-neutral-600);
    color: var(--color-white);
    padding-block: 2rem;

    @media (min-width: 992px) {
        padding-block: 4rem;
    }

    & .copyright {
        background: inherit;
        padding: unset;
    }

    & .link {
        & img {
            object-fit: cover;
            object-position: left;
        }
    }

    & .servi-links {
        display: flex;
        justify-content: space-between;
    }

    & .d-grid {
        grid-template-columns: repeat(1, 1fr);
        row-gap: 2rem;

        @media (min-width: 560px) {
            grid-template-columns: repeat(2, 1fr);
        }

        @media (min-width: 768px) {
            grid-template-columns: repeat(3, 1fr);
            column-gap: 3rem;
        }

        @media (min-width: 992px) {
            grid-template-columns: 224px repeat(3, 1fr) 2rem;
            column-gap: 5rem;
        }
    }

    & .col-3 {
        display: flex;
        max-width: unset;
        padding: unset;
        gap: 0.5rem;
        flex: unset;
        flex-direction: column;

        & a {
            font-size: 1rem;
            color: var(--color-white);
        }
    }

    & .servi-logos {
        flex-direction: row;
        gap: unset;
        order: 1;
        grid-column: 1;

        @media (min-width: 992px) {
            order: unset;
        }

        & > div {
            display: flex;
            flex-direction: column;
            gap: 1.5rem;
        }

        & a {
            &:focus,
            &:hover {
                outline: 0.25rem solid var(--color-white);
            }
        }
    }
}

.d-grid {
    display: grid;
}

.main-container {
    min-height: 70svh;
    padding: 0;
}

.with-grid-menu {
    & .slick-slider-wrapper {
        --max-slider-width-multiplier: 2;
    }

    & .pad-container {
        & .slick-slider-wrapper {
            --max-slider-width-multiplier: 4;
        }
    }
}

.col-1,
.col-2,
.col-3,
.col-4,
.col-5,
.col-6,
.col-7,
.col-8,
.col-9,
.col-10,
.col-11,
.col-12,
.col,
.col-auto,
.col-sm-1,
.col-sm-2,
.col-sm-3,
.col-sm-4,
.col-sm-5,
.col-sm-6,
.col-sm-7,
.col-sm-8,
.col-sm-9,
.col-sm-10,
.col-sm-11,
.col-sm-12,
.col-sm,
.col-sm-auto,
.col-md-1,
.col-md-2,
.col-md-3,
.col-md-4,
.col-md-5,
.col-md-6,
.col-md-7,
.col-md-8,
.col-md-9,
.col-md-10,
.col-md-11,
.col-md-12,
.col-md,
.col-md-auto,
.col-lg-1,
.col-lg-2,
.col-lg-3,
.col-lg-4,
.col-lg-5,
.col-lg-6,
.col-lg-7,
.col-lg-8,
.col-lg-9,
.col-lg-10,
.col-lg-11,
.col-lg-12,
.col-lg,
.col-lg-auto,
.col-xl-1,
.col-xl-2,
.col-xl-3,
.col-xl-4,
.col-xl-5,
.col-xl-6,
.col-xl-7,
.col-xl-8,
.col-xl-9,
.col-xl-10,
.col-xl-11,
.col-xl-12,
.col-xl,
.col-xl-auto {
    padding-inline: unset;
}

/*
  The header mobile is displayed upto around 1370px
  This is to handle ipad pro which renders between 1024-1366px
  In potrait and landscape
*/
#header-mobile {
    position: sticky;
    top: 0;
    z-index: 10;
    background-color: white;

    & svg {
        width: 1.875rem;
        height: 1.875rem;
    }

    @media (min-width: 1370px) {
        display: none;
    }

    & .d-flex {
        align-items: center;
        justify-content: space-between;

        & .d-flex {
            gap: 1.25rem;
        }
    }

    & .pad-container {
        padding-block: 0.5rem;
    }
}

#mobile-menu {
    padding: 0;

    & button {
        background-color: transparent;
        border: 0;
        padding: 0;
    }

    & .backdrop {
        all: unset;
    }

    & .navbar-toggler.close {
        position: absolute;
        right: 0rem;
        z-index: 11;
        padding: 0.5rem;

        & svg {
            width: 1.75rem;
            height: 1.75rem;
        }
    }

    & > button {
        &.collapsed ~ .navbar-collapse {
            transform: translateX(100%);
        }
    }

    & > .navbar-collapse {
        transform: translateX(100%);
        position: fixed;
        display: block;
        visibility: hidden;
        z-index: 10;
        background-color: var(--color-white);
        right: 0;
        top: 0;
        color: var(--color-default);
        width: 24rem;
        max-width: 100vw;
        min-height: 100dvh;
        max-height: 100dvh;
        overflow-y: auto;
        transition: transform 0.3s ease-in-out;

        &.collapse.show,
        &.collapsing {
            transform: translateX(0);
            visibility: visible;

            & ~ .backdrop {
                background-color: rgba(0, 0, 0, 0.5);
                position: fixed;
                top: 0;
                left: 0;
                width: 100dvw;
                height: 100dvh;
                z-index: 9;
            }
        }
    }

    & .navbar-nav {
        padding: var(--pad-container);
        border-bottom: 1px solid var(--color-neutral-200);

        @media (min-width: 1024px) and (max-width: 1370px) {
            padding: calc(var(--pad-container)/2);
        }

        & .dropdown-menu.show {
            border: 0;
            background-color: var(--color-neutral-100);
            padding: 0.5rem;
        }

        & a {
            text-wrap: wrap;
            color: var(--color-default);
            font-size: var(--font-size-h4);
            letter-spacing: 0.0625rem;

            &:focus,
            &:hover {
                margin-bottom: -2px;
                border-bottom: 2px solid var(--color-default);
            }

            &:active,
            &:focus,
            &:hover {
                background-color: transparent;
            }

            &.subchild {
                font-size: var(--font-size-h6);
                font-weight: 325;
                letter-spacing: 0.05rem;
            }

            &.parent-page {
                font-size: var(--font-size-h3);
                padding: 0.5rem 0;
            }
        }

        & .dropdown-list > a {
            padding: 0.5rem 0;
        }
    }
}

#cart {
    border-radius: 0.25rem;

    @media (min-width: 992px) {
        padding: 0.5rem;
    }

    &:focus-within {
        outline: 2px solid var(--color-default);
    }

    & a {
        display: flex;
        align-items: center;
        color: var(--color-default);
        gap: 1rem;
        font-size: var(--font-size-h5);

        & > span {
            display: none;

            @media (min-width: 992px) {
                display: block;
            }
        }
    }
}

#breadcrumbs {
    text-transform: uppercase;
    padding-block: calc(var(--pad-container) / 4);

    &:empty {
        padding-block: unset;
    }

    & .desktop-only {
        display: none;

        @media (min-width: 992px) {
            display: contents;
        }
    }

    & .mobile-only {
        display: contents;

        @media (min-width: 992px) {
            display: none;
        }
    }

    & a {
        font-weight: 325;
        color: var(--color-default);

        &:focus,
        &:hover,
        &:active {
            text-decoration: underline solid var(--color-default);
        }
    }

    @media (min-width: 992px) {
        & a:last-of-type::before {
            display: none;
        }
    }

    & a {
        display: none;
    }

    & a:last-of-type {
        display: inline;
    }

    @media (min-width: 992px) {
        & a {
            display: unset;
        }
    }

    & a:last-of-type::before {
        content: " ";
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24px' viewBox='0 -960 960 960' width='24px' fill='%232f3337'%3E%3Cpath d='m432-480 156 156q11 11 11 28t-11 28q-11 11-28 11t-28-11L348-452q-6-6-8.5-13t-2.5-15q0-8 2.5-15t8.5-13l184-184q11-11 28-11t28 11q11 11 11 28t-11 28L432-480Z'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: center;
        padding: 0.5rem;
    }

    & span {
        display: none;
    }

    @media (min-width: 1370px) {
        & span {
            display: inline;

            &.active {
                font-weight: 400;
            }
        }
    }
}

html:not(.form-builder-rec3-available) .grecaptcha-badge {
    visibility: hidden;
}

#languageDropdown ~ div {
    & a {
        font-weight: 325;
        padding: 0.25rem 2rem;

        &.current {
            font-weight: 400;
            position: relative;

            &::before {
                content: "";
                left: 0.5rem;
                background-position: center;
                top: 0.5rem;
                width: 1rem;
                height: 1rem;
                display: block;
                position: absolute;
                background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M10 14.312L16.246 8.046C16.3387 7.95266 16.4563 7.906 16.599 7.906C16.7417 7.906 16.86 7.95233 16.954 8.045C17.0473 8.13766 17.094 8.25566 17.094 8.399C17.094 8.54166 17.0473 8.66 16.954 8.754L10.565 15.124C10.4037 15.2847 10.2153 15.365 10 15.365C9.78467 15.365 9.59634 15.2843 9.43501 15.123L7.04601 12.753C6.95267 12.661 6.90601 12.5437 6.90601 12.401C6.90601 12.2583 6.95234 12.14 7.04501 12.046C7.13767 11.9527 7.25567 11.906 7.39901 11.906C7.54167 11.906 7.66001 11.9527 7.75401 12.046L10 14.312Z' fill='%232f3337'/%3E%3C/svg%3E");
            }
        }
    }
}

.slick-slider-wrapper {
    --max-slider-width-multiplier: 0;
    --max-slider-width: calc(
        100vw - (var(--max-slider-width-multiplier) * var(--pad-container)) -
            var(--left-menu-width, 0px)
    );
    display: flex;
    flex-direction: column;
    gap: 1rem;
    max-width: var(--max-slider-width);

    @media (min-width: 992px) {
        gap: 2rem;
    }
}

.slick-slider {
    align-items: center;
    gap: 1rem;
    display: flex;

    & > * {
        flex: 1 1 auto;
    }
}

.slick-slide {
    overflow: hidden;
}

.slick-arrow {
    display: contents;

    & svg {
        --svg-size: 2rem;
        min-width: var(--svg-size);
        min-height: var(--svg-size);

        @media (min-width: 992px) {
            --svg-size: 3.5rem;
        }
    }
}
.slick-dots {
    all: unset;
    display: flex;
    justify-content: center;
    gap: 0.65rem;
    padding-top: 1rem;

    & li {
        list-style-type: none;
        --disc-bg: var(--color-neutral-300);

        & button {
            font-size: 0;
            padding: 0;
            line-height: 0;
            height: 0.75rem;
            width: 0.75rem;
            background-color: var(--disc-bg);

            &:focus,
            &:hover,
            &:active {
                outline: none;
                background-color: var(--color-primary-focus);
            }
        }

        &.slick-active {
            --disc-bg: var(--color-default);
        }
    }
}

.slick-track {
    display: flex;
    align-items: center;
}

.slick-item {
    & .image-text {
      font-style: italic;
      padding-top: 0.625rem;
      font-size: 1.25rem;
    }

    & img,
    video {
        object-fit: var(--image-position, cover);
        max-height: var(--max-item-height);
        min-height: var(--min-item-height);
        max-width: 100%;
    }

    & iframe {
        height: var(--max-item-height);
        max-width: 100%;
    }
}

.servi-accordion {
    padding: 1rem 1.5rem;
    background-color: var(--color-neutral-100);
    font-size: var(--font-size-h5);

    & ul {
        all: unset;
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }

    & .card-header {
        all: unset;
        font-weight: 400;

        & a {
            color: var(--color-default);
            font-size: var(--font-size-h5);

            &:focus,
            &:hover {
                color: var(--color-primary-focus);
                text-decoration: underline;
            }
        }
    }

    &#menu-accordion {
        & a {
            color: var(--color-default);
            font-size: var(--font-size-h5);

            &:focus,
            &:hover {
                color: var(--color-primary-focus);
                text-decoration: underline;
            }
        }
    }

    & .card {
        all: unset;
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }

    & .card-body {
        all: unset;
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }

    & .dropdown-item {
        all: unset;
        cursor: pointer;
    }

    & button {
        all: unset;

        &:not(:disabled) {
            all: unset;
            color: var(--color-default);
            display: flex;
            width: 100%;
            align-items: center;
            justify-content: space-between;
            gap: 1rem;

            &:hover,
            &:focus,
            &:active {
                background-color: var(--color-neutral-200);
            }
        }

        & svg {
            transition: transform 200ms;
            margin-right: 0.5rem;
        }

        &:not(&[aria-expanded="true"]) {
            & svg {
                transform: rotate(90deg);
            }
        }
    }

    & .grandchild {
        padding-left: 1rem;
    }
}

a {
    color: var(--color-default);

    &:focus,
    &:hover {
        text-decoration: underline;
    }
}

.d-grid-menu {
    display: grid;
    gap: 2rem;
    --left-menu-width: 0px;

    @media (min-width: 1800px) {
        --left-menu-width: calc(20rem + 2rem);
        grid-template-columns: 20rem 3fr;
    }

    & .icon-brick {
        @media (min-width: 992px) {
            --max-item-width: 9rem;
            --min-item-width: 9rem;
        }

        & .slick-slider-wrapper {
            min-width: 100%;
        }

        & .template-6 {
            @media (min-width: 500px) {
                grid-template-columns: repeat(2, 1fr);
                gap: 2rem;
            }

            @media (min-width: 768px) {
                grid-template-columns: repeat(3, 1fr);
                gap: 2rem;
            }

            @media (min-width: 992px) {
                grid-template-columns: repeat(2, 1fr);
                gap: 2rem;
            }

            @media (min-width: 1200px) {
                grid-template-columns: repeat(3, 1fr);
                gap: 2rem;
            }

            @media (min-width: 1900px) {
                grid-template-columns: repeat(6, 1fr);
                gap: 2rem;
            }
        }

        &.has-pagination {
            .template-6 {
                --max-item-width: 7rem;
                --min-item-width: 7rem;
            }
        }
    }
}

.cylinderconfigurator-brick {
    .menu {
        .SolidComMenu {
            display: flex;
            margin-top: 20px;
            width: 100%;
            grid-gap: 20px;
            margin-bottom: 20px;
            grid-template-columns: repeat(auto-fit, minmax(150px, 200px));

            .ThumbItem {
                box-shadow: 0 0 0 1px #ddd;
                background-color: #fafafa;
                cursor: pointer;
                border-radius: 10px;

                .Thumb {
                    display: block;
                    text-align: center;
                    padding-top: 20px;
                }

                .Title {
                    text-align: center;
                    padding: 10px;
                }
            }
            .Long {
                display: none;
            }
        }
    }
}

.form-builder-wrapper {
    padding-block: var(--pad-block);
    padding-inline: var(--pad-container);

    & > form {
        max-width: var(--form-max-width);

        @media (min-width: 992px) {
            margin-inline: auto;
        }
    }

    & legend {
        font-size: var(--font-size-h4);
        font-weight: 400;
    }
}

.cylinderconfigurator-brick {
    & .menu {
        & .SolidComMenu {
            display: grid;
            margin-top: 20px;
            width: 100%;
            grid-gap: 20px;
            margin-bottom: 20px;
            grid-template-columns: repeat(auto-fit, minmax(150px, 200px));

            & .ThumbItem {
                box-shadow: 0 0 0 1px #ddd;
                background-color: #fafafa;
                cursor: pointer;
                border-radius: 10px;

                & .Thumb {
                    display: block;
                    text-align: center;
                    padding-top: 20px;
                }

                & .Title {
                    text-align: center;
                    padding: 10px;
                }
            }
            & .Long {
                display: none;
            }
        }
    }

    & #ConfigV5Container div.Button_outer_normal {
        transition-property: color, background-color;
        transition-duration: 200ms;
        font-size: 1.125rem;
        font-weight: 325;
        outline: 1px solid transparent;
        background-color: var(--color-primary);
        color: var(--color-white);
        border: 0;

        &:focus {
            outline: 2px solid var(--color-default);
            box-shadow: none;
        }

        &:hover,
        &:focus {
            background-color: var(--color-primary-focus);
            color: var(--color-white);
        }

        &:disabled {
            background-color: var(--color-neutral-100);
            color: var(--color-neutral-500);
            border-color: transparent;
            cursor: not-allowed;
        }

        &:not(:disabled) {
            &:active {
                background-color: var(--color-primary-focus);
            }
        }
    }

    & .configurator-content {
        flex-direction: column;
    }
}

dialog {
    display: none;
    min-width: max(200px, 50%);
    max-width: unset;
    width: 100%;
    min-height: 10rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: none;
    margin: unset;
    margin-top: auto;
    bottom: 0;

    @media (min-width: 992px) {
        width: unset;
        margin-inline: revert;
        margin-top: revert;
        margin-bottom: revert;
        bottom: revert;
        max-width: revert;
        width: revert;
    }

    &::backdrop {
        background: #2f333780;
        animation: fadein 0.2s ease-in-out forwards;
    }

    &[open] {
        display: flex;
        animation: slidein 0.2s ease-in-out forwards;
        @media (min-width: 992px) {
            animation: fadein 0.2s ease-in-out forwards;
        }
    }

    & .close {
        all: unset;
        display: flex;
        position: absolute;
        top: 0.5rem;
        right: 0.5rem;
        font-size: large;

        &:hover,
        &:focus,
        &:active {
            background-color: unset !important;
            cursor: pointer;
            position: absolute;
            top: 0.5rem;
            right: 0.5rem;
            font-size: large;
        }
    }
}

.link-container {
    max-width: 320px;
    white-space: normal;
    margin: auto;

    @media (min-width: 768px) {
        max-width: 100%;
    }

    .btn {
        width: 100%;
        text-wrap: balance;

        @media (min-width: 768px) {
            width: auto;
        }
    }
}

@keyframes slidein {
    0% {
        bottom: -100%;
    }
    100% {
        bottom: 0;
    }
}

@keyframes fadein {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}
