:root {
    --black: #1D1D1B;
    --white: #FBFBFB;
    --white100: #ffff;
    --grey: #AAA59F;
    --grey2: #f0efeb;
    --grey50: rgba(170, 165, 159, 0.5);

    --marginMain: 40px;
    --gap30px: 30px;
    --gap60px: 60px;
    --gap100px: 100px;
    --gap200px: 200px;
    --gap300px: 300px;

}

* {
    margin: 0;
    padding: 0;
    text-wrap:pretty;
}

main{
    min-height: 45vh;
}

body {
    background-color: var(--white);
    margin: var(--marginMain) var(--marginMain) calc(var(--marginMain)/2) var(--marginMain);
    color: var(--black);
    overflow-x: hidden;
}

/*fonts*/
h1 {
    font-size: 45px;
    line-height: 50px;

    font-family: "neue-haas-grotesk-display", sans-serif;
    font-weight: 600;
    font-style: normal;
}

h2 {
    font-size: 35px;
    line-height: 40px;

    font-family: "neue-haas-grotesk-display", sans-serif;
    font-weight: 600;
    font-style: normal;
}

h3 {
    font-size: 22px;
    line-height: 27px;

    font-family: "neue-haas-grotesk-text", sans-serif;
    font-weight: 500;
    font-style: normal;
}

p {
    font-size: 18px;
    line-height: 23px;

    font-family: "neue-haas-grotesk-text", sans-serif;
    font-weight: 500;
    font-style: normal;
}

li{
    font-size: 16px;
    line-height: 23px;

    font-family: "neue-haas-grotesk-text", sans-serif;
    font-weight: 500;
    font-style: normal;
}

.bold{
    font-family: "neue-haas-grotesk-text", sans-serif;
    font-weight: 700;
    font-style: normal;
}


/*
Neue Haas Grotesk Display Pro 65 Medium
font-family: "neue-haas-grotesk-display", sans-serif;
font-weight: 600;
font-style: normal;

Neue Haas Grotesk Display Pro 66 Medium Italic
font-family: "neue-haas-grotesk-display", sans-serif;
font-weight: 600;
font-style: italic;

Neue Haas Grotesk Display Pro 75 Bold
font-family: "neue-haas-grotesk-display", sans-serif;
font-weight: 700;
font-style: normal;

Neue Haas Grotesk Display Pro 76 Bold Italic
font-family: "neue-haas-grotesk-display", sans-serif;
font-weight: 700;
font-style: italic;

Neue Haas Grotesk Text Pro 65 Medium
font-family: "neue-haas-grotesk-text", sans-serif;
font-weight: 500;
font-style: normal;

Neue Haas Grotesk Text Pro 66 Medium Italic
font-family: "neue-haas-grotesk-text", sans-serif;
font-weight: 500;
font-style: italic;

Neue Haas Grotesk Text Pro 75 Bold
font-family: "neue-haas-grotesk-text", sans-serif;
font-weight: 700;
font-style: normal;

Neue Haas Grotesk Text Pro 76 Bold Italic
font-family: "neue-haas-grotesk-text", sans-serif;
font-weight: 700;
font-style: italic;
*/


a{
    color:var(--black);
    text-decoration: none;
}

a:hover{
    text-decoration: underline;
    cursor: pointer;
}



/*general*/
.grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    column-gap: var(--gap30px);
    row-gap: var(--gap30px);
}

.span-1 {
    grid-column: span 1;
}

.span-2 {
    grid-column: span 2;
}

.span-3 {
    grid-column: span 3;
}

.span-4 {
    grid-column: span 4;
}

.span-5 {
    grid-column: span 5;
}

.span-6 {
    grid-column: span 6;
}

.span-7 {
    grid-column: span 7;
}

.span-8 {
    grid-column: span 8;
}

.span-9 {
    grid-column: span 9;
}

.span-10 {
    grid-column: span 10;
}

.span-11 {
    grid-column: span 11;
}

.span-12 {
    grid-column: span 12;
}

.grey {
    color: var(--grey);
}

.pages-main {
    row-gap: var(--gap200px) !important;
}


/*homepage*/
.home header{
    position: sticky;
}
.homepage-main {
    row-gap: var(--gap200px) !important;
}


.homepage-section1 {
    gap: var(--gap60px);
}

.homepage-slider {
    width: 100vw;
    height: 100vh;
    margin: 0  calc(-1 * var(--marginMain)) 0 calc(-1 * var(--marginMain));
}

.homepage-slide {
    width: 100%;
    height: 100%;
    position: absolute;
}

.homepage-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}




.text-image-group {
    position: relative;
}

.image-group {
    aspect-ratio: 4/5;
    width: 100%;
    background-color: var(--grey2);
    max-height: calc(100vh - var(--marginMain) * 2);
}

.image-group img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.text-group {
    position: sticky;
    top: 0;
    height: fit-content;
}





/*footer*/
footer {
    margin-top: var(--gap200px);
}

.footer-contact a{
    color: var(--grey)
}

/*header*/
header{
    position: fixed;
    top: calc(var(--gap30px) / 2);
    display: flex;
    flex-direction: row;
    width: 100%;
    z-index: 100;
}

#logo{
    width:50px;
    height: 50px;
}

header nav{
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

header ul{
    display: flex;
    flex-direction: row;
    gap: 0;
    height: 100%;
    background-color: var(--grey2);
    /*backdrop-filter: blur(10px);*/
    align-items: center;
    border-radius: 100px;
}

header li{
    list-style: none;
    padding: 0 calc(var(--gap30px) / 2);
    height: 100%;
    display: flex;
    align-items: center;
}

header li.active{
    background-color: var(--black);
    color: var(--white);
    border-radius: 100px;
}

header li.active a{
    color: var(--white);
}



/*homepage*/

.oqopo-highlight svg{
   width: calc(100vw - var(--marginMain) * 2);
    height: auto;
    margin: var(--gap30px) 0;
}

.homepage-slider {
    position: relative;
    overflow: hidden;
}

.homepage-slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

.homepage-slide.active {
    opacity: 1;
    position: relative;
}


.homepage-dots {
    display: flex;
    gap: 8px;
    margin-top: 15px;
    position: absolute;
    bottom: calc(var(--gap30px));
    width: 100vw;
    justify-content: center;
}

.homepage-dots .dot {
    width: var(--gap30px);          
    height: 2px;           
    background: var(--grey);
    cursor: pointer;
    transition: all 0.3s ease;
}

.homepage-dots .dot.active {
    height: 2px;     
    background: var(--black);
}


.brands-scroll-wrapper {
    position: relative;
    height: 400vh; /* enough scroll space */
}

.brands-fixed {
    position: sticky;
    top: 0;
    height: 100vh;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

#brand-text {
    width: 40%;
}



.brands-scroll-items {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
}

.brand-item {
    height: 100vh;
}


.our-brands{
        display: flex;
    flex-direction: column;
    gap: var(--gap30px);
}

.homepage-brand{
    padding-top: var(--gap30px);
    border-top: 1px solid var(--black);
}



/* loading */
body.no-scroll {
  overflow: hidden;
}

#page-loader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  pointer-events: none;
}

#page-loader .panel {
  position: fixed;
  background: white;
  transition: all 1s cubic-bezier(0.87, 0, 0.13, 1);
}

#page-loader .panel-top {
  top: 0; left: 0; right: 0;
  height: calc(50% - 18px);
}

#page-loader .panel-bottom {
  bottom: 0; left: 0; right: 0;
  height: calc(50% - 18px);
}

#page-loader .panel-left {
  top: 0; bottom: 0; left: 0;
  width: calc(50% - 28px);
}

#page-loader .panel-right {
  top: 0; bottom: 0; right: 0;
  width: calc(50% - 28px);
}

#page-loader.expand .panel-top {
  height: 0;
}

#page-loader.expand .panel-bottom {
  height: 0;
}

#page-loader.expand .panel-left {
  width: 0;
}

#page-loader.expand .panel-right {
  width: 0;
}
/*contact*/
#rotator {
    display: inline-flex;
    align-items: baseline;
    height: 1.2em;
    overflow: hidden;
    vertical-align: baseline;
}


#rotator .rotator-track {
    display: flex;
    flex-direction: column;
    transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

#rotator .local-item {
    line-height: 1.2em;
    height: 1.2em;
    white-space: nowrap;
}


#rotator .local-item.active {
    transform: translateY(0%);
    opacity: 1;
    position: relative;
}

#rotator .local-item.exit {
    transform: translateY(-100%);
    opacity: 0;
    position: absolute;
}

.contact-hero {
    background-color: var(--grey);
    width: calc(100vw - var(--marginMain) * 2);
    height: calc(100vh - var(--marginMain) * 2);
    margin: calc(-1 * var(--marginMain)) calc(-1 * var(--marginMain)) 0 calc(-1 * var(--marginMain));
    padding: var(--marginMain);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.contact-form {
    display: flex;
    flex-direction: column;
    gap: var(--gap30px);
    margin: var(--gap30px) 0;
}

.contact-main {
    row-gap: var(--gap100px) !important;
}

.contact-form input {
    border: none;
    border-bottom: 1px solid var(--grey);
    padding-bottom: 15px;
    font-size: 35px;
    line-height: 40px;
    background-color: transparent;

    font-family: "neue-haas-grotesk-display", sans-serif;
    font-weight: 600;
    font-style: normal;
    color: var(--black);
}

.contact-form textarea {
    border: none;
    background-color: transparent;
    border-bottom: 1px solid var(--grey);
    padding-bottom: 15px;
    font-size: 35px;
    line-height: 40px;

    font-family: "neue-haas-grotesk-display", sans-serif;
    font-weight: 600;
    font-style: normal;
    color: var(--black);
}

input[type="submit"] {
    border: none;
    background-color: transparent;

    padding-bottom: 15px;
    font-size: 35px;
    line-height: 40px;

    font-family: "neue-haas-grotesk-display", sans-serif;
    font-weight: 600;
    font-style: normal;
    color: var(--black);

    text-decoration: underline;
}

.contact-submit {
    width: 100%;
    display: flex;
    justify-content: flex-end;
}


/*about*/
.sobre-main{
margin-top: var(--gap200px);
row-gap: var(--gap200px) !important;
}

.img-cover-vertical {
    aspect-ratio: 3/4;
    width: 100%;
    height: auto;
    max-height: calc(100vh - var(--marginMain) * 2);
}

.img-cover-vertical img {
    object-fit: cover;
        width: 100%;
    height: 100%;
}


.img-cover-square{
    aspect-ratio: 1/1;
    width: 100%;
    height: auto;
    max-height: calc(100vh - var(--marginMain) * 2);
}

.img-cover-square img {
    object-fit: cover;
    width: 100%;
    height: 100%;
}


.about-list {
    display: flex;
    flex-direction: column;
    row-gap: 0;
}

.about-list-item {
    position: sticky;
    top: 0;
    background: var(--white);
    z-index: 1;

    border-top: 1px solid var(--black);
    padding: var(--gap30px) 0;

    overflow: hidden;
    transition:
        max-height 0.2s ease-out,
        padding 0.2s ease-out;
}

.about-list-item.collapsed {
    padding-top: 5px;
}









.about-list-text {
    margin-top: var(--gap30px);
    display: flex;
    flex-direction: row;
    gap: var(--gap30px);
}

.about-list-text div{
    width: 50%;
}


.about-list-img img {
    width: 100%;
}



/**/
.image-hero {
    width: 100vw;
    height: 80vh;
    margin: calc(-1 * var(--marginMain)) calc(-1 * var(--marginMain)) 0 calc(-1 * var(--marginMain));
}

.image-hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;

}

.hero-brands {
    display: flex;
    flex-direction: column;
    gap: var(--gap30px);
}

.filter-container{
    height: fit-content;
    position: sticky;
    top: var(--gap100px);
}

.filter {
    padding: 10px 0;
    border-top: 1px solid var(--grey);
}

.filter:last-child {
    border-bottom: 1px solid var(--grey);
}

.filter-item-title {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    cursor:pointer;
}

.filter-subgroup {
    color: var(--grey);
}

.filter-group {
    
    display: flex;
    flex-direction: column;
    gap: 1em;

    max-height: 0;
    overflow: hidden;
    transition: all 0.35s ease;
}

.filter-group.open {
    max-height: 5000px; 
    margin-top: 1em;
}

.filter-main{
    position: sticky;
    top: var(--marginMain);
}

.filter-option {
    cursor: pointer;
    transition: all 0.3s ease;
}

.filter-option.active {
    text-decoration: underline;
}

.loading {
    text-align: center;
    padding: 40px;
    font-size: 16px;
    color: #666;
}

/**/
.product-list {
    display: flex;
    flex-direction: column;
    column-gap: var(--gap30px);
    row-gap: var(--gap60px) !important;
}

.product-grid {
    display: grid;
    grid-template-columns: repeat(9, 1fr);
    column-gap: var(--gap30px);
    row-gap: var(--gap60px) !important;
}

.product {
    display: flex;
    flex-direction: column;
    gap: 10px;
}


.product-image {
    width: 100%;
    height: auto;
    aspect-ratio: 1/1;
    background-color: var(--grey2);
}

.product-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.product-list-title {
    display: flex;
    flex-direction: column;
    gap: var(--gap30px);
}

.product-list-main {
    display: flex;
    flex-direction: column;
    gap: var(--gap200px);
}

.product-main {
    margin-top: var(--gap200px);
}

.product-main {
    margin-top: var(--gap200px);
}

.product-container{
        display: flex;
    flex-direction: column;
    row-gap: var(--gap200px);
}

.filter-option:hover{
cursor: pointer;
text-decoration: underline;
}

/*single*/
.product-single {
    align-items: center;
}



.product-single-image {
    background-color: var(--grey2);
    width: 100%;
    margin: calc(-1 * var(--marginMain)) 0 0 calc(-1 * var(--marginMain));
display: flex;
    flex-direction: column;
    gap: 0;
min-height: calc(100vh + var(--marginMain));
}

.product-single-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-height: calc(100vh + var(--marginMain));
}

.product-single-title {
    display: flex;
    flex-direction: column;
    gap: var(--gap30px);
}

.product-single-list-item {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: var(--gap30px);
}

.product-single-list-item {
    padding: 20px 0;
    border-top: 1px solid var(--grey);
}

.product-single-list-item:last-child {
    border-bottom: 1px solid var(--grey);
}

.product-single-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: var(--gap30px);
}

.product-single {
    align-items: stretch;
    /* makes both columns equal height */
}

.product-single-info-main {
    position: relative;
    height: 100%;
}

.product-single-info {
    display: flex;
    flex-direction: column;
    gap: var(--gap100px);
}

.product-single-info {
    position: sticky;
    top: calc(50vh - 200px);
}



.product-list a:hover{
    text-decoration: none !important;
}

.product-image{
overflow: hidden;
}

.product-image img{
transform: scale(1);
transition: transform 0.5s ease;
}

.product-list a:hover .product-image img{
transform: scale(1.05);
}

/* Large devices (tablets / small laptops) */
@media (max-width: 1150px) {
    :root {
        --marginMain: 30px;
    }

        /*fonts*/
    h1 {
        font-size: 35px;
        line-height: 40px;

        font-family: "neue-haas-grotesk-display", sans-serif;
        font-weight: 600;
        font-style: normal;
    }

    h2 {
        font-size: 25px;
        line-height: 30px;

        font-family: "neue-haas-grotesk-display", sans-serif;
        font-weight: 600;
        font-style: normal;
    }

    h3 {
        font-size: 20px;
        line-height: 25px;

        font-family: "neue-haas-grotesk-text", sans-serif;
        font-weight: 500;
        font-style: normal;
    }

    p {
        font-size: 18px;
        line-height: 23px;

        font-family: "neue-haas-grotesk-text", sans-serif;
        font-weight: 500;
        font-style: normal;
    }


    /*general*/
    .span-t-1 {
        grid-column: span 1;
    }

    .span-t-2 {
        grid-column: span 2;
    }

    .span-t-3 {
        grid-column: span 3;
    }

    .span-t-4 {
        grid-column: span 4;
    }

    .span-t-5 {
        grid-column: span 5;
    }

    .span-t-6 {
        grid-column: span 6;
    }

    .span-t-7 {
        grid-column: span 7;
    }

    .span-t-8 {
        grid-column: span 8;
    }

    .span-t-9 {
        grid-column: span 9;
    }

    .span-t-10 {
        grid-column: span 10;
    }

    .span-t-11 {
        grid-column: span 11;
    }

    .span-t-12 {
        grid-column: span 12;
    }

    .pages-main {
        row-gap: var(--gap200px) !important;
    }

    /*brand*/
    .product-grid {
        display: grid;
        grid-template-columns: repeat(6, 1fr);
        column-gap: var(--gap30px);
        row-gap: var(--gap60px);
    }


}

/* Medium devices (large phones / small tablets) */
@media (max-width: 768px) {
    :root {
        --marginMain: 20px;
    }

    /*fonts*/
    h1 {
        font-size: 30px;
        line-height: 35px;

        font-family: "neue-haas-grotesk-display", sans-serif;
        font-weight: 600;
        font-style: normal;
    }

    h2 {
        font-size: 25px;
        line-height: 30px;

        font-family: "neue-haas-grotesk-display", sans-serif;
        font-weight: 600;
        font-style: normal;
    }

    h3 {
        font-size: 20px;
        line-height: 25px;

        font-family: "neue-haas-grotesk-text", sans-serif;
        font-weight: 500;
        font-style: normal;
    }

    p {
        font-size: 18px;
        line-height: 23px;

        font-family: "neue-haas-grotesk-text", sans-serif;
        font-weight: 500;
        font-style: normal;
    }

    header li {
        font-size: 30px;
        line-height: 35px;

        font-family: "neue-haas-grotesk-display", sans-serif;
        font-weight: 600;
        font-style: normal;
    }


    .mobile-none {
        display: none;
    }

    /*general*/
    .grid {
        display: grid;
        grid-template-columns: repeat(6, 1fr);
        row-gap: var(--gap30px);
        column-gap: var(--gap30px);
    }

    .span-m-1 {
        grid-column: span 1;
    }

    .span-m-2 {
        grid-column: span 2;
    }

    .span-m-3 {
        grid-column: span 3;
    }

    .span-m-4 {
        grid-column: span 4;
    }

    .span-m-5 {
        grid-column: span 5;
    }

    .span-m-6 {
        grid-column: span 6;
    }

    .pages-main {
        row-gap: var(--gap100px) !important;
    }

    .margin-top-mobile {
        margin-top: var(--gap100px);
    }

    /*brand*/
    .product-grid {
        display: grid;
        grid-template-columns: repeat(6, 1fr);
        column-gap: var(--gap30px);
        row-gap: var(--gap30px);
    }

    .product-list-main {
        gap: var(--gap100px);
    }

    .product-list {
        row-gap: var(--gap30px);
    }

    /*footer*/
    footer {
        margin-top: var(--gap100px);
    }

    /*single*/
    .product-single {
        margin-top: var(--gap100px);
        display: flex;
        flex-direction: column;
        gap: var(--gap100px);
    }

    .product-single>.product-single-info-main {
        order: 1;
    }

    .product-single>div:first-child {
        order: 2;
    }

    .product-single-list-item {
        display: grid;
        grid-template-columns: repeat(6, 1fr);
        gap: 10px;
    }


  .product-single-image {
        height: auto;
        background-color: var(--grey2);
        width: calc(100% + var(--marginMain) * 2);
        margin: calc(-1 * var(--marginMain)) calc(-1 * var(--marginMain)) 0 calc(-1 * var(--marginMain));
        min-height: 0;
    }


    .product-single-info {
        position: initial;
        top: auto;
        transform: translateY(0);
        gap: var(--gap30px);
    }

    /*homepage*/
    .homepage-slider {
        width: 100vw;
        height: auto;
        margin: calc(-1 * var(--marginMain)) calc(-1 * var(--marginMain)) 0 calc(-1 * var(--marginMain));
    }

      .homepage-slide {
        height: auto;
        width: 100%;
    }

    .brands-group {
        width: calc(100vw - var(--marginMain) * 2);
        display: flex;
        flex-direction: column;
        gap: var(--gap30px);
        row-gap: var(--gap100px);
    }

    .brands-text-group {
        gap: var(--gap30px);
    }

    .text-image-group {
        width: calc(100vw - var(--marginMain) * 2);
    }

    .homepage-main {
        row-gap: var(--gap100px) !important;
    }

    .our-brands{
        display: flex;
    flex-direction: column;
    gap: var(--gap30px);
}


    /*about*/
    .text-group {
        position: initial;
        top: auto;
        height: fit-content;
    }

    .about-list-text {
        flex-direction: column;
        gap:0;
        margin-top: var(--gap30px);
    }

    .sobre-main {
    margin-top: var(--gap60px);
    row-gap: var(--gap60px) !important;
}

    /*products*/
    .filter-container {
        position: static;
    }

    /*brands*/
    .image-hero {
    height: auto;
}


}



/* Hide mobile nav by default */
.navMobile {
    display: none;
}

/* Menu toggle text */
.menuToggle {
    display: none;
    cursor: pointer;
    z-index: 200;
}

/* Mobile menu open state — full screen overlay */
.navMobile.open {
    display: flex;
    flex-direction: column;
    position: fixed;
    inset: 0;
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(15px);
    align-items: flex-start;
    gap: 30px;
    z-index: 150;
    align-content: flex-start;
}

/* Mobile list */
.menuMobile li {
    list-style: none;
}

.menuMobile li a {
    color: var(--black);
}

/* Responsive breakpoint */
@media (max-width: 900px) {
    .navDesktop {
        display: none;
    }

    .menuToggle {
        display: block;
    }

    header {
        width: calc(100% - (var(--marginMain) * 2));
        justify-content: space-between;
    }

    .home header{
        width: calc(100%);
    }

    .menuToggle{
        background-color: rgba(230, 230, 230, 0.3);
        backdrop-filter: blur(10px);
        border-radius: 2rem;
        z-index: 2;
        z-index: 200;
    }

    .menuToggle p {
    list-style: none;
    padding: 1rem;
    font-family: "neue-haas-grotesk-text", sans-serif;
    font-weight: 400;
    font-style: normal;
    text-wrap: pretty;
    cursor: pointer;

    }

    header ul {
    display: flex;
    flex-direction: column;
    gap: var(--gap30px);
    height: auto;
    background-color: transparent;
    align-items: flex-start;
    border-radius: 0;
    padding-left: var(--gap30px);
}

header li.active a {
    color: var(--black);
}

header li.active {
    background-color: transparent;
    color: var(--black);
    border-radius: 0;
    text-decoration: underline;
}
}
