/*
* @author  Agence Dn'D <contact@dnd.fr>
* @license https://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
* @link    https://www.dnd.fr/
*/

/* Global */

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

h1,
h1.h3,
h2,
h2.h1,
h2.h4 {
    font-size: var(--title-size-mobile);
    font-family: var(--heading-font-family);
    font-weight: var(--font-weight-700);

    &.heading-size-mobile--small {
        font-size: var(--heading-size-small-mobile);
        line-height: 1.3;
    }

    &.heading-size-mobile--medium {
        font-size: var(--heading-size-medium-mobile);
        line-height: 1.2;
    }

    &.heading-size-mobile--large {
        font-size: var(--heading-size-large-mobile);
        line-height: 1.1;
    }

    @media (min-width: 768px) {
        font-size: var(--title-size-desktop);

        &.heading-size-desktop--extra-small {
            font-size: var(--heading-size-extra-small-desktop);
            line-height: 1.2;
        }

        &.heading-size-desktop--small {
            font-size: var(--heading-size-small-desktop);
            line-height: 1.1;
        }

        &.heading-size-desktop--medium {
            font-size: var(--heading-size-medium-desktop);
            line-height: 1;
        }

        &.heading-size-desktop--large {
            font-size: var(--heading-size-large-desktop);
            line-height: 1;
        }

        &.heading-size-desktop--extra-large {
            font-size: var(--heading-size-extra-large-desktop);
            line-height: 1;
        }
    }
}

.heading-font {
    font-weight: var(--font-weight-700);
}

p {
    line-height: 1.43;
}

a.small-feature-link {
    text-decoration: none;
}

/* Buttons */

.btn {
    padding: var(--input-btn-padding-top) 24px var(--input-btn-padding-bottom);
    border-radius: var(--border-radius-s);
    transition: background-color 0.2s ease-in-out;
    font-weight: var(--font-weight-600);
    letter-spacing: 0;

    @media (max-width: 767.98px) {
        margin-inline: auto;
        max-width: 390px;
    }

    &.btn--primary {
        border: none;
        background-color: var(--primary);
        color: var(--white);

        &:hover {
            background-color: var(--primary-500);
        }

        &:active {
            background-color: var(--primary-950);
        }

        &:focus {
            background-color: var(--primary-700);
        }
    }

    &.btn--secondary {
        border: none;
        background-color: var(--secondary-50);
        color: var(--secondary-950);

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

        &:hover {
            background-color: var(--secondary-200);
        }

        &:active {
            background-color: var(--secondary-300);
        }

        &:focus {
            background-color: var(--secondary-50);
        }
    }
}

.button-row__icon {
    margin-inline-start: 8px;
}

/* Fields */

.custom-select__btn {
    background-color: var(--white);
    font-weight: var(--font-weight-500);

    > span {
        font-weight: var(--font-weight-500);
    }
}

.section-footer__row-container {
    .custom-select__btn {
        background-color: var(--secondary-50);
        font-weight: var(--font-weight-700);

        &:hover {
            background-color: var(--secondary-100);
            color: var(--secondary-950);
        }
    }
}

label,
.account-form label {
    color: var(--black);
    font-weight: var(--font-weight-500);
}

.input[type=text],
input[type=text],
input[type=text].main-search__input,
input[type=number],
input[type=email],
input[type=password],
input[type=address],
input[type=tel],
input[type=date],
.input,
textarea,
.globo-formbuilder .globo-form-control input,
.globo-formbuilder .globo-form-control select,
.globo-formbuilder .globo-form-control textarea {
    font-family: var(--base-font-family);
    font-size: var(--base-text-size-xs);
    font-weight: var(--font-weight-500);
    border: var(--border-base);
    color: var(--primary-950);
    border-radius: 6px;
    box-shadow: none;
    background-color: var(--white);

    &:focus,
    &:hover,
    &:active,
    &:visited {
        box-shadow: none;
    }
}

input[type=number] {
    background-color: var(--secondary-200);
}

/* Powerfull form builder */

.globo-formbuilder {
    .globo-form {
        .g-container {
            font-family: var(--base-font-family);

            .header {
                text-align: left;

                @media (min-width: 768px) {
                    text-align: center;
                }
            }

            .title {
                margin-block-end: 16px;
                font-size: var(--base-text-size-m-xxl);
                font-weight: var(--font-weight-700);
                line-height: 1.2;

                @media (min-width: 768px) {
                    font-size: var(--base-text-size-xxxl);
                }
            }

            .description {
                font-size: var(--base-text-size-m);
                color: var(--secondary-600);
            }

            .globo-formbuilder-wizard {
                .globo-form-control {
                    padding-inline-start: 0;

                    span.label-content {
                        font-family: var(--base-font-family);
                        font-size: var(--base-text-size-m);
                        font-weight: var(--font-weight-500);
                        color: var(--black);
                    }
                }

                .gfb__dropzone {
                    background-color: var(--white);

                    .gfb__dropzone--placeholder--description {
                        text-align: center;
                    }

                    .gfb__dropzone--placeholder--button {
                        background-color: var(--secondary-100);
                        border-color: var(--secondary-100);
                        border-radius: var(--border-radius-s);
                        color: var(--secondary-950);
                    }
                }
            }
        }
    }
}

/* Slideshow */

.slider-nav__btn,
.slideshow-nav__btn,
.gallery-viewer__button,
.section-testimonials .testimonial-list .slideshow-nav__btn {
    padding: 8px;
    border: 0;
    background-color: var(--white-transparent);
    color: var(--black);
}

.slider-nav__btn--style-2 svg {
    width: 24px;
    height: 24px;
    stroke: none;
}

/* Breadcrumbs */

.breadcrumbs {
    .breadcrumbs-list__link {
        font-size: var(--base-text-size-xs);

        &[aria-current="page"] {
            font-weight: var(--font-weight-700);
            color: var(--secondary-600);
        }
    }

    .breadcrumbs-list__item {
        margin-inline-end: 4px;
    }

    .icon {
        display: inline-flex;
        justify-content: center;
        align-items: center;
    }
}

/* Pagination */

.pagination-row {
    .pagination {
        display: flex;
        justify-content: center;
        align-items: baseline;
        gap: 12px;
    }

    .pagination__prev,
    .pagination__next {
        &.pagination__link {
            padding: 8px;
            width: 40px;
            height: 40px;
            border-radius: var(--border-radius-s);
            background-color: var(--secondary-200);

            svg {
                width: 18px;
                height: 18px;
                stroke-width: 2;
            }
        }
    }

    .pagination__number {
        padding: 10px 8px 2px 6px;
        font-weight: var(--font-weight-700);
        border-bottom: 1px solid transparent;

        &.underline {
            text-decoration: none;
            color: var(--secondary-950);
            border-bottom: 1px solid var(--secondary-950);
        }
    }
}

/* UTILITY BAR */

.container {
    &:has(> .utility-bar) {
        @media (max-width: 767.98px) {
            padding-inline: 4px;
        }
    }
}

.utility-bar:not(.utility-bar--blog) {
    display: flex;
    flex-direction: column;
    padding-inline: 24px;
    margin-block-end: 32px;

    @media (min-width: 768px) {
        flex-direction: row;
        padding-inline: 0;
    }

    .utility-bar__left,
    .utility-bar__right {
        @media (max-width: 767.98px) {
            order: 2;
            width: 100%;
        }

        .utility-bar__item {
            justify-content: center;
            padding: 0;
            margin: 0;
            width: 100%;
            color: var(--secondary-950);
            background-color: var(--secondary-200);
            font-weight: var(--font-weight-500);
            border: 1px solid var(--secondary-300);
            border-radius: 2px;

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

            .btn-icon {
                color: var(--black);

                circle {
                    fill: var(--secondary-200);
                }
            }
        }
    }

    .utility-bar__left {
        .utility-bar__item {
            gap: 8px;

            .toggle-btn__chevron {
                position: static;
                margin: 0;
            }
        }
    }

    .utility-bar__centre {
        @media (max-width: 767.98px) {
            order: 1;
        }

        .utility-bar__item {
            margin-block: 0 16px;
            color: var(--secondary-600);
        }
    }

    .utility-bar__right {
        @media (max-width: 767.98px) {
            display: none;
        }

        .utility-bar__item.desktop-only {
            .link-dropdown__button {
                display: flex;
                align-items: center;
                gap: 8px;
                padding: 0;
                min-width: 150px;
            }

            .link-dropdown__button-text {
                font-weight: var(--font-weight-500);
            }

            .link-dropdown__button-icon {
                position: static;
                margin: 0;

                svg {
                    width: 20px;
                    height: 20px;
                }
            }
        }
    }
}

/* FILTERS */

.filter-container {
    .filters {
        @media (max-width: 767.98px) {
            width: 100% !important;
        }
    }

    .filter-group__heading__text {
        @media (max-width: 767.98px) {
            font-weight: var(--font-weight-500);
            text-transform: uppercase;
            color: var(--primary-500);
        }
    }
}

