/* ############################
## BASICS
############################ */

/* ----------------------------
-- centers
---------------------------- */
.l-center {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: 0 16px 0 16px;
    z-index: 20;
    box-sizing: border-box;
}

@media all and (min-width: 1024px) {
    .l-center {
        padding: 0 32px 0 32px;
    }
}

.l-center .l-center {
    padding: unset;
}

.l-center--side-by-side {
    padding: 0;
}

.l-center--instagram {
    max-width: 100%;
}

.woocommerce-checkout .l-center--text-content,
.woocommerce-cart .l-center--text-content,
.woocommerce-account .l-center--text-content   {
    max-width: 1280px;
}

.woocommerce #customer_login {
    max-width: 768px;
}

.l-page-header-style-2 .c-header-title--align-center .l-center--header-title {
    max-width: 1024px
}

/* ----------------------------
-- ROWS
---------------------------- */
.l-row {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    width: 100%;
}

.l-section-page--header--thumbnail + .l-row, 
.l-section-page--header--thumbnail + .l-section-page--archive,
.l-section-page--header--thumbnail + .l-section-page--blocks {
    margin-top: 64px;
}

.l-row:last-of-type .l-columns {
    margin-bottom: 0;
}

/* ----------------------------
-- SECTIONS
---------------------------- */

.l-section {
    width: 100%;
}

.l-section:last-of-type {
    margin-bottom: 0;
}

/* ----------------------------
-- COLUMNS
---------------------------- */
.l-columns {
    display: grid;
    align-items: start;
    width: 100%;
    /* height: 100%; */
}

.l-columns>div {
    display: grid;
}

.l-columns>div:last-of-type {
    margin-bottom: 0;
}

@media all and (min-width: 768px) {
    .l-columns--four-cols {
        grid-template-columns: repeat(2, 1fr)
    }
}

@media all and (min-width: 1024px) {
    .l-columns--two-cols {
        grid-template-columns: repeat(2, 1fr);
    }
    .l-columns--three-cols {
        grid-template-columns: repeat(3, 1fr)
    }

    .l-columns--four-cols {
        grid-template-columns: repeat(2, 1fr)
    }
}

@media all and (min-width: 1100px) {
    .l-columns--four-cols {
        grid-template-columns: repeat(4, 1fr)
    }
}

.l-section-block__content {
    width: 100% !important;
}

/* ############################
## HEADER
############################ */

.l-header {
    position: fixed;
    display: flex;
    flex-direction: column;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 100;
    transition: top .6s cubic-bezier(0.8, 0.2, 0.2, 0.8), box-shadow .3s;
}
.on-scroll.l-header {
    box-shadow: 0px 4px 8px 0px rgba(0,0,0,0.16);
}

.l-center--header {
    height: 100%;
    width: 100%;
    flex-direction: row;
    align-items: center;
    transition: max-height .3s ease-in-out;
}

/* ----------------------------
-- header mobile
---------------------------- */
.l-header-mobile {
    height: 128px;
    transition: background-color .3s, max-height .3s;
}

@media all and (min-width:1100px) {
    .l-header-mobile {
        display: none;
    }
}

.l-header-mobile__menu {
    display: none;
}

@media all and (min-width:768px) {
    .l-header-mobile__menu {
        display: flex;
        align-items: center;
    }
}

.l-header-mobile .l-center--header {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
}

/* ----------------------------
-- header desktop
---------------------------- */
.l-header-desktop {
    display: none;
}

@media all and (min-width:1100px) {
    .l-header-desktop {
        box-sizing: border-box;
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
    }
}

/* ----------------------------
-- header top bar
---------------------------- */
@media all and (min-width:1100px) {
    .l-header-desktop--top-bar {
        overflow: hidden;
        height: 128px;
        box-sizing: content-box;
        border-bottom-style: solid;
        transition: max-height .3s ease-in-out, background-color .3s;
    }

    .on-scroll .l-header-desktop--top-bar {
        height: 128px;
        transition: max-height .3s ease-in-out, background-color .3s;
    }

    .l-header-top-bar {
        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
    }
}

@media all and (min-width:1200px) {
    .l-header-top-bar .l-header-contact-menu {
        justify-content: space-between;
        width: 100%;
    }
}

@media all and (min-width:1200px) {
    .l-center--header--layout-2 {
        justify-content: center;
    }
}

/* ----------------------------
-- header nav
---------------------------- */
@media all and (min-width:1100px) {
    .l-header-desktop--nav-bar {
        border-bottom-style: solid;
        height: 192px;
        transition: max-height .3s, background-color .3s;
    }
    .on-scroll .l-header-desktop--nav-bar {
        transition: max-height .3s, background-color .3s;
    }
    .l-header-desktop--nav-bar .l-header-item:first-child {
        margin-left: 0;
    }

    .l-header-nav {
        display: flex;
        align-items: center;
        width: 100%;
    }

    .l-center--header--layout-1 .l-header-nav {
        justify-content: flex-end;
    }

    .l-center--header--layout-2 .l-header-nav {
        display: grid;
        grid-template-columns: 1fr 8fr 1fr;
        align-items: center;
        align-content: center;
    }

    .l-header-desktop--layout-2__logo-nav {
        display: flex;
        justify-content: center;
        width: 100%;
    }

    .l-header-nav__item {
        display: flex;
        align-items: center;
    }

    .l-center--header--layout-1 .l-header-nav__item {
        margin-left: 24px;
    }

    .l-center--header--layout-2 .l-header-nav__item:first-of-type {
        justify-content: flex-end;
    }

    .l-center--header--layout-1 .l-header-nav__item--menu {
        width: 100%;
        margin-left: 0;
    }

    .l-header-nav__col {
        display: flex;
        align-items: center;
        width: 100%;
    }

    .l-header-nav__col--left {
        justify-content: flex-start;
    }

    .l-header-nav__col--right {
        justify-content: flex-end;
    }

    .l-header-nav__col--right .l-header-nav__item {
        margin-left: 32px;
    }
}

/* ----------------------------
-- header contacts
---------------------------- */
.l-header-contacts {
    display: none;
}

@media all and (min-width:1100px) {
    .l-header-contacts {
        display: flex;
        margin: 0;
        align-items: center;
    }
}  
.l-header-top-bar__content {
    display: flex;
    justify-content: space-between;
    width: 100%;
}
.l-header-top-bar__content > div {
    display: flex;
    align-items: center;
}

/* ----------------------------
-- header logo
---------------------------- */
.l-header-logo {
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 50;
}

.js-header-fixed {
    position: fixed;
}

/* ----------------------------
-- header fixed to top
---------------------------- */
.l-header-fixed {
    top: 0 !important
}

.l-header.top-fixed {
    position: fixed;
    width: 100%;
    top: 0 !important
}

.l-social-media--menu {
    margin-left: 32px;
}

/* ----------------------------
-- header languages
---------------------------- */ 
.l-header-languages {
    display: none;
}

@media all and (min-width:768px) {
    .l-header-languages {
        display: flex;
    }
}

/* ----------------------------
-- desktop menu
---------------------------- */
.l-main-nav {
    display: flex;
    flex-direction: row;
    align-items: center;
}

/* ----------------------------
-- WooCommerce items
---------------------------- */
.l-woocommerce-items-header {
    display: flex;
    align-items: center;
    margin: 0 0 0 16px;
    width: auto;
    height: 16px;
}

/* ############################
## MAIN
############################ */
body {
    width: 200%;
    max-width: 100%;
}
.l-main-content-wrapper {
    position: absolute;
    width: 100%;
}
.l-main-content {
    width: 100%;
}
main {
    overflow: hidden;
}
main:after {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-color: rgba(0, 0, 0, .90);
    content: '';
    z-index: 0;
    opacity: 0;
    transition: z-index .3s, opacity .3s, background-color .15s;
}

.l-main-page {
    display: flex;
    flex-direction: column;
    align-items: center;
}

@media all and (min-width:768px) {
    .l-main-page {
        margin-top: 0
    }
}

.l-main-page.l-main-page--404 {
    padding-top: 0;
}

.l-main-page.l-main-page--no-header {
    padding-top: 0;
}

.l-section-page--other-posts {
    margin-bottom: 48px;
}

.l-section-page {
    width: 100%;
    position: relative;
}

.l-home .l-section-page:last-child {
    margin-bottom: 0;
}

.l-section-page--header {
    padding-left: 0;
    padding-right: 0;
    min-height: 128px;
    height: auto;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    transition: min-height 300ms cubic-bezier(0.455, 0.030, 0.515, 0.955);
    transition-timing-function: cubic-bezier(0.455, 0.030, 0.515, 0.955);
}

.l-title {
    width: 100%;
    position: relative;
    display: flex;
}


.l-page-header-style-1 .l-title{
    max-width: 1280px;
    box-sizing: border-box;
}

.l-page-header-style-2 .l-title {
    position: relative;
    display: flex;
    justify-content: center;
    max-width: unset;
    padding: unset;
}

.single-team .l-section-page--header {
    margin-bottom: 0;
}

body .header-on-scroll {
    min-height: 256px;
}

.l-section-page--header--no-thumbnail {
    padding-top: 64px;
}

.l-section-page--header--no-thumbnail+section {
    padding-top: 0;
    margin-top: 64px;
}

.l-section-page--header::after {
    width: 100%;
    height: 100%;
    content: '';
    position: absolute;
    top: 0;
    left: 0
}

.l-section-page--title {
    padding-bottom: 0
}

.l-section-page--blocks {
    align-items: unset;
    padding-top: 0;
    width: 100%;
    flex-direction: column;
}

.l-section-page section {
    padding-left: 0;
    padding-right: 0;
}

.l-section-page-article__header {
    padding-left: 0;
    padding-right: 0;
    width: 100%
}

.l-section-page--social-share {
    width: 100%;
    margin: 48px 0;
    padding-top: 0;
}

.l-section-page--search {
    margin-bottom: 48px;
}

.l-row-background~.l-center>.l-columns:last-child {
    margin-bottom: 0;
}

.l-section-default .l-center>div {
    display: flex;
    justify-content: center;
}

.l-center--posts-team .l-center {
    width: 100%;
}

@media all and (max-width:1023px) {
    .l-section-text-block {
        max-width: 1024px;
    }
}

.l-posts {
    width: 100%;
}

/* ----------------------------
-- article
---------------------------- */
.l-article {
    display: flex;
    flex-direction: column;
    min-width: 100%
}

.l-page-article {
    width: 100%
}

@media all and (min-width:1024px) {
    .l-article-post {
        flex-direction: var(--post-sidebar-position);
        flex-direction: row;
        justify-content: space-between
    }
}

.l-article-header {
    display: flex;
    flex-direction: column;
    width: 100%
}

/* ----------------------------
-- archive
---------------------------- */
.l-archive {
    width: 100%;
    padding-bottom: 64px;
}

.l-archive-categories {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    margin: 0 0 32px 0;
    width: 100%;
}

@media all and (min-width:768px) {
    .l-archive-categories {
        flex-direction: row
    }
}

.l-archive-select {
    margin-bottom: 16px
}

div.l-archive-select--see-others {
    margin-bottom: 32px;
}

@media all and (min-width:768px) {
    .l-archive-select {
        margin-bottom: 0
    }
}

.l-archive-select:last-child {
    margin-bottom: 0
}

@media all and (min-width:768px) {
    .l-archive-select {
        margin-right: 16px
    }

    .l-archive-select:last-child {
        margin-right: 0
    }
}

.l-archive--blog {
    display: grid;
}

@media all and (min-width: 1024px) {
    .l-archive--blog {
        -moz-column-gap: 48px;
        column-gap: 48px;
    }
}

/* ----------------------------
-- search
---------------------------- */
.fancybox-content.l-search-top-field {
    display: flex;
    width: 100%;
    max-width: 786px;
    overflow: hidden;
    height: 320px;
    display: none;
    padding-top: unset;
    background-color: black;
}

.l-header .l-search-top-field {
    display: none;
}

.l-search-top-field.fancybox-content {
    padding-top: unset;
}

.l-mobile-menu-element {
    margin-bottom: 24px
}

/* ----------------------------
-- password
---------------------------- */
.l-password-protect {
    width: 100%;
    display: flex;
    justify-content: center;
    padding: 96px 0
}

/* ----------------------------
-- comments
---------------------------- */
.l-comments {
    width: 100%;
    align-self: center;
}

/* ----------------------------
-- 404
---------------------------- */
.l-404 {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center
}

/* ----------------------------
-- pagination
---------------------------- */
.l-pagination {
    margin-top: 48px;
}

/* ----------------------------
-- share icons
---------------------------- */
.l-share-icons {
    width: 100%
}

.page-template-page-all-posts .l-share-icons {
    margin-top: 48px;
}

.l-section-page--404 {
    padding-bottom: 64px;
    background-color: unset;
}

/* ############################
## BLOCKS
############################ */

/* ----------------------------
-- block wrapper
---------------------------- */
.l-section-block-wrapper {
    display: flex;
    justify-content: center;
    width: 100%;
}

.l-section-block-wrapper--title>.l-section-block {
    margin-bottom: 0;
    padding-bottom: 0;
}

.home .l-section-block-wrapper:first-child .l-section-block {
    margin-top: 0;
}

/* ----------------------------
-- single block
---------------------------- */
.l-section-block {
    position: relative;
    width: 100%;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
}

.l-section-block--default {
    margin-bottom: 64px;
}

.l-section-row-border {
    position: absolute;
    width: 100%;
    z-index: 1;
}

.l-section-row-border svg {
    height: 100%;
    width: 100%;
}

.l-section-row-border--top {
    top: -2px;
    left: 0;
}

.l-section-row-border--bottom {
    bottom: -2px;
    left: 0;
    background-position: bottom;
    background-repeat: no-repeat;
    background-size: contain;
    z-index: 10;
}

.l-section-row-border--bottom svg {
    margin-bottom: -6px;
}

.l-section-row:last-of-type {
    margin-bottom: 0;
}

.l-row-background__image,
.l-row-background__raster {
    height: 100%;
    width: 100%;
    left: 0;
    top: 0;
    position: absolute;
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: scroll;
    background-position: center;
    overflow: hidden;
}

.l-row-background__raster {
    z-index: 1;
}

.l-row-background:before {
    content: '';
    height: 100%;
    width: 100%;
    left: 0;
    top: 0;
    position: absolute;
}

.l-row-background:after {
    content: '';
    height: 100%;
    width: 100%;
    left: 0;
    top: 0;
    position: absolute;
}
/* ----------------------------
-- hero
---------------------------- */
.l-center--hero {
    justify-content: center;
}

.l-hero {
    width: 100%;
    background-attachment: scroll;
    background-size: cover;
    background-position: center;
    position: relative;
}

@media all and (min-width:1200px) {
    .l-hero {
        background-attachment: fixed;
    }
}

.l-hero__block:nth-child(2) {
    margin-top: 48px;
    display: flex;
    justify-content: center;
}

.l-hero__block:nth-child(2) .l-hero-content {
    display: flex;
    justify-content: center;
}

@media all and (min-width:1280px) {
    .l-hero__block:nth-child(2) {
        margin-top: 0;
    }
}

.l-hero__block {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.l-hero-content {
    margin-bottom: 32px;
    width: 100%;
}

@media all and (min-width:1024px) {
    .l-hero-content--additional-content {
        max-width: 768px;
    }
}

.l-hero-content:last-of-type {
    margin-bottom: 0;
}

/* ----------------------------
-- side by side
---------------------------- */
.l-section-block-side-by-side>div {
    width: 100%;
}

.l-block-side {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr;
    grid-row-gap: 64px;
}

.l-block-side-by-side-wrapper {
    display: flex;
    justify-content: center;
}

/* ----------------------------
-- features
---------------------------- */
section.l-section-block.l-section-features {
    background-attachment: scroll;
    background-position: center;
    background-size: cover;
}

@media all and (min-width:1030px) {
    section.l-section-block.l-section-features {
        background-attachment: fixed
    }
}

.l-features {
    display: grid;
    z-index: 10;
}

.l-features-layout:last-of-type {
    margin-bottom: 0;
}

/* ----------------------------
-- team
---------------------------- */


/* ----------------------------
-- gallery
/* ------------------------- */
.l-gallery-single {
    margin-bottom: 48px;
}

.l-gallery-single:last-child {
    margin-bottom: 0;
}

/* ----------------------------
-- price table
---------------------------- */
.l-price-table {
    width: 100%;
}

/* ----------------------------
-- map
---------------------------- */
.l-section-map {
    padding-left: 0;
    padding-right: 0
}

.l-map-markers {
    position: relative;
    max-height: 224px;
    overflow: auto;
    margin-bottom: 16px;
}

@media all and (min-width:1024px) {
    .l-map-markers {
        width: 224px;
        margin: 0 8px 0 0;
        position: absolute;
        z-index: 20;
        bottom: 32px;
        left: 12px;
        padding: 16px;
        margin: 0 16px 16px 0;
        background-color: rgba(255, 255, 255, .9);
        box-shadow: 0 0 32px -4px rgba(0, 0, 0, .28)
    }
}

@media all and (min-width:1200px) {
    .l-map-markers {
        width: 320px
    }
}

.l-map-markers::-webkit-scrollbar {
    width: 6px
}

.l-map-markers::-webkit-scrollbar-track {
    background-color: #d4d4d4;
    border-radius: 16px
}

.l-map-markers::-webkit-scrollbar-thumb {
    background-color: #a9a9a9;
    border-radius: 16px
}

/* ----------------------------
-- contacts
---------------------------- */
.l-contacts {
    display: flex;
    flex-direction: column;
    width: 100%;
}

@media all and (min-width:1024px) {
    .l-contacts {
        flex-direction: row;
        flex-wrap: wrap;
    }
}

/* ----------------------------
-- form
---------------------------- */
.l-contact-form {
    align-self: center;
    width: 100%
}

/* ----------------------------
-- video
---------------------------- */
.l-videos {
    display: flex;
    justify-content: center;
}

/* ----------------------------
-- countdown
---------------------------- */
.l-countdown {
    display: flex;
    justify-content: center;
    width: 100%;
}

/* ############################
## AUTOR
############################ */
.l-author {
    margin-top: 96px;
    ;
}

/* ############################
## CTA
############################ */

.l-section-block-wrapper--cta:last-child {
    margin-bottom: 0;
}

.l-cta {
    display: flex;
    flex-direction: column;
    width: 100%;
}

@media all and (min-width:1024px) {
    .l-cta {
        flex-direction: row;
    }
}

.l-cta--404 {
    justify-content: center;
}

.c-posts .l-cta {
    flex-direction: column;
}

.single .l-section-page--other-posts .l-cta {
    justify-content: center;
}

.l-cta--services-accordion {
    margin-bottom: 32px;
    justify-content: center;
}

.l-cta--hidden-content {
    margin-top: 0;
}

.e-post--events .l-cta {
    margin-top: 0px;
}

.l-section-block-side-by-side .l-cta {
    justify-content: flex-start;
}

.l-section-price-table .l-cta {
    justify-content: center;
}

/* ----------------------------
-- header cta
---------------------------- */
.l-header-cta {
    display: flex;
    flex-direction: column;
}

@media all and (min-width: 768px) {
    .l-header-cta {
        flex-direction: row;
        justify-content: center;
    }
}

/* ----------------------------
-- grid CTA
---------------------------- */
.l-grid__cta {
    position: absolute;
    left: 32px;
    bottom: 32px;
    width: calc(100% - 64px);
    z-index: 100;
    display: flex;
}

.l-grid__cta .l-cta {
    width: 100%;
}

/* ############################
## SHOW / HIDE
############################ */
.l-hidden-content {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height .9s ease-in-out, opacity .6s .1s;
}

.l-show-content {
    position: relative;
    max-height: 9999px;
    width: 100%;
    opacity: 1;
    transition: max-height .9s ease-in-out, opacity .6s .3s;
}

.l-hidden-content::before {
    content: '';
    display: block;
    width: 100%;
    top: 0;
    left: 0;
    position: relative;
}

.l-show-content>div {
    width: 100%;
}

/* ############################
## EVENTS
############################ */
.l-event-details {
    margin-top: 28px;
    display: flex;
    flex-direction: column;
    width: 100%;
}

/* ############################
## LANGUAGES
############################ */
@media all and (min-width:1030px) {
    .l-languages-header {
        display: flex;
        align-items: center;
        width: 32px;
        height: 16px;
    }
}

.l-languages--mobile {
    display: flex;
    justify-content: center;
    margin: 0;
}

@media all and (min-width:1030px) {
    .l-languages--mobile {
        display: none
    }
}

/* ############################
## FOOTER
############################ */
.l-footer {
    margin-top: 64px;
}
.l-center--footer {
    display: grid;
    grid-template-columns: 1fr;
    grid-gap: 32px;
}

@media all and (min-width: 768px) {
    .l-center--footer {
        grid-template-columns: repeat(3, 1fr);
    }
}

.l-footer__item {
    width: 100%;
}

.l-footer__item ul {
    display: flex;
    flex-direction: column;
}

.l-section-footer--copyrights {
    padding: 16px 0
}