/* =========================================================
   PÁGINA DO PRODUTO
========================================================= */

body{

    background:#f5f5f5;

    color:#111;

}


/* =========================================================
   CONTAINER
========================================================= */

.container{

    width:90%;

    max-width:1200px;

    margin:auto;

}


/* =========================================================
   BREADCRUMB
========================================================= */

.breadcrumb{

    display:flex;

    align-items:center;

    gap:10px;

    margin:25px 0;

    font-size:14px;

    color:#777;

    min-width:0;

}

.breadcrumb a{

    text-decoration:none;

    color:#111;

}

.breadcrumb a:hover{

    text-decoration:underline;

}


/* =========================================================
   PRODUTO PRINCIPAL
========================================================= */

.produto-detalhe{

    display:grid;

    grid-template-columns:minmax(0,1fr) minmax(0,1fr);

    gap:40px;

    background:#fff;

    padding:30px;

    border-radius:14px;

    min-width:0;

}


/* =========================================================
   GALERIA
========================================================= */

.galeria-produto{

    display:flex;

    align-items:flex-start;

    gap:15px;

    min-width:0;

    width:100%;

}


/* =========================================================
   ÁREA DAS MINIATURAS
========================================================= */

.miniaturas-area{

    width:75px;

    height:420px;

    flex:0 0 75px;

    display:flex;

    flex-direction:column;

    align-items:center;

    gap:7px;

    min-width:0;

}


/* =========================================================
   VIEWPORT DAS MINIATURAS
========================================================= */

.miniaturas-viewport{

    width:75px;

    height:370px;

    overflow-y:auto;

    overflow-x:hidden;

    scroll-behavior:smooth;

    scroll-snap-type:y proximity;

    overscroll-behavior:contain;

    scrollbar-width:none;

}

.miniaturas-viewport::-webkit-scrollbar{

    display:none;

}


/* =========================================================
   TRACK DAS MINIATURAS
========================================================= */

.miniaturas{

    display:flex;

    flex-direction:column;

    gap:12px;

    width:75px;

}


/* =========================================================
   MINIATURA
========================================================= */

.miniatura{

    width:75px;

    height:75px;

    flex:0 0 75px;

    object-fit:cover;

    border-radius:9px;

    cursor:pointer;

    border:2px solid transparent;

    background:#f5f5f5;

    transition:
        border-color .2s ease,
        transform .2s ease;

    scroll-snap-align:start;

    display:block;

}

.miniatura:hover{

    border-color:#777;

    transform:scale(.97);

}

.miniatura.ativa,

.miniatura.miniatura-selecionada{

    border-color:#111;

}


/* =========================================================
   SETAS DA GALERIA
========================================================= */

.seta-galeria{

    width:34px;

    height:28px;

    flex:0 0 28px;

    border:1px solid #ddd;

    background:#fff;

    color:#111;

    border-radius:6px;

    cursor:pointer;

    display:flex;

    align-items:center;

    justify-content:center;

    transition:
        background .2s ease,
        border-color .2s ease,
        opacity .2s ease;

}

.seta-galeria:hover:not(:disabled){

    background:#111;

    color:#fff;

    border-color:#111;

}

.seta-galeria:disabled{

    opacity:.25;

    cursor:default;

}


/* =========================================================
   IMAGEM PRINCIPAL
========================================================= */

.imagem-principal{

    flex:1 1 auto;

    width:100%;

    min-width:0;

    height:420px;

    display:flex;

    justify-content:center;

    align-items:flex-start;

    overflow:hidden;

}

.imagem-principal img{

    width:100%;

    max-width:420px;

    height:420px;

    object-fit:contain;

    border-radius:12px;

    display:block;

}


/* =========================================================
   INFORMAÇÕES DO PRODUTO
========================================================= */

.info-produto{

    display:flex;

    flex-direction:column;

    min-width:0;

}

.categoria-produto{

    color:#777;

    font-size:13px;

    margin:0;

}

.info-produto h1{

    font-size:30px;

    line-height:1.2;

    margin:8px 0 10px;

    color:#222;

    overflow-wrap:anywhere;

}


/* =========================================================
   AVALIAÇÃO
========================================================= */

.avaliacao{

    display:flex;

    align-items:center;

    gap:3px;

    margin-bottom:10px;

}

.avaliacao i{

    color:#f5b301;

    font-size:14px;

}


/* =========================================================
   PREÇOS
========================================================= */

.preco{

    font-size:27px;

    font-weight:bold;

    margin:10px 0;

}

.precos{

    display:flex;

    align-items:center;

    flex-wrap:wrap;

    gap:8px;

    margin:10px 0;

}

.preco-antigo{

    text-decoration:line-through;

    color:#999;

    font-size:16px;

}

.preco-promocao{

    font-size:27px;

    font-weight:bold;

    color:#e53935;

}

.desconto{

    background:#e53935;

    color:#fff;

    padding:4px 9px;

    border-radius:15px;

    font-size:12px;

    font-weight:bold;

}


/* =========================================================
   CARACTERÍSTICAS
========================================================= */

.caracteristicas-produto{

    margin-top:12px;

    padding-top:12px;

    border-top:1px solid #eee;

}

.caracteristicas-produto h3{

    font-size:16px;

    margin:0 0 12px;

    color:#222;

}

.grupo-caracteristica{

    margin-bottom:12px;

}

.grupo-caracteristica:last-child{

    margin-bottom:0;

}

.grupo-caracteristica h4{

    font-size:13px;

    font-weight:600;

    margin:0 0 7px;

    color:#444;

}

.opcoes-caracteristica{

    display:flex;

    flex-wrap:wrap;

    gap:6px;

}


/* =========================================================
   ESCONDER RADIO
========================================================= */

.opcoes-caracteristica input{

    display:none;

}


/* =========================================================
   OPÇÕES DE TEXTO
========================================================= */

.opcao-texto{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    min-height:32px;

    padding:6px 11px;

    border:1px solid #d6d6d6;

    border-radius:6px;

    cursor:pointer;

    background:#fff;

    font-size:12px;

    color:#333;

    transition:.2s;

}

.opcao-texto:hover{

    border-color:#111;

}

.opcao-texto:has(input:checked){

    background:#111;

    color:#fff;

    border-color:#111;

}


/* =========================================================
   CORES
========================================================= */

.opcao-cor{

    display:flex;

    align-items:center;

    gap:6px;

    cursor:pointer;

    padding:5px 9px;

    border:1px solid #ddd;

    border-radius:16px;

    font-size:12px;

    transition:.2s;

}

.opcao-cor:hover{

    border-color:#111;

}

.opcao-cor .cor{

    width:20px;

    height:20px;

    border-radius:50%;

    border:1px solid #ccc;

}

.opcao-cor input:checked + .cor{

    outline:2px solid #111;

    outline-offset:2px;

}


/* =========================================================
   ESTOQUE
========================================================= */

.estoque{

    margin:14px 0;

    font-size:13px;

}

.stock{

    color:#138a36;

    font-weight:bold;

}

.sem-stock{

    color:#d00000;

    font-weight:bold;

}


/* =========================================================
   QUANTIDADE
========================================================= */

.quantidade{

    display:flex;

    align-items:center;

    gap:8px;

    margin:12px 0;

}

.quantidade button{

    width:34px;

    height:34px;

    border:none;

    background:#111;

    color:#fff;

    cursor:pointer;

    border-radius:5px;

    font-size:16px;

}

.quantidade button:hover{

    background:#333;

}

.quantidade input{

    width:50px;

    height:34px;

    text-align:center;

    border:1px solid #ddd;

    border-radius:5px;

    font-size:14px;

}

.total{

    font-size:15px;

    margin:8px 0;

}

.total span{

    font-weight:bold;

}


/* =========================================================
   AÇÕES PRINCIPAIS
========================================================= */

.acoes-produto{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:8px;

    margin-top:12px;

}

.acoes-produto button{

    width:100%;

    min-height:43px;

    padding:10px;

    border:none;

    cursor:pointer;

    border-radius:7px;

    font-size:13px;

    font-weight:600;

    transition:.2s;

}

.btn-comprar{

    background:#111;

    color:#fff;

}

.btn-carrinho{

    background:#eee;

    color:#111;

}

.btn-carrinho:hover,

.btn-comprar:hover{

    opacity:.8;

}


/* =========================================================
   FAVORITOS + PARTILHAR
========================================================= */

.area-favorito{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:8px;

    margin-top:8px;

}

.btn-favorito,

.btn-partilhar{

    display:flex;

    align-items:center;

    justify-content:center;

    gap:7px;

    min-height:40px;

    padding:9px;

    border-radius:7px;

    border:1px solid #ddd;

    text-decoration:none;

    color:#111;

    cursor:pointer;

    background:#fff;

    width:100%;

    font-size:12px;

}

.btn-favorito:hover,

.btn-partilhar:hover{

    border-color:#111;

}

.favorito-ativo{

    color:#e53935;

}


/* =========================================================
   ÁREA INFERIOR
========================================================= */

.descricao-produto{

    margin-top:35px;

    padding:25px 0 0;

    border-top:1px solid #ddd;

    line-height:1.7;

}

.descricao-produto h3{

    font-size:20px;

    margin:0 0 12px;

    color:#222;

}

.descricao-produto p{

    font-size:14px;

    color:#555;

    margin-bottom:25px;

    overflow-wrap:anywhere;

}

.descricao-produto hr{

    border:0;

    border-top:1px solid #eee;

    margin:25px 0;

}


/* =========================================================
   GARANTIAS
========================================================= */

.garantias{

    margin-top:25px;

    padding:20px;

    background:#f8f8f8;

    border-radius:10px;

}

.garantias h3{

    margin:0 0 12px;

    font-size:17px;

}

.garantias ul{

    margin:0;

    padding-left:20px;

}

.garantias li{

    margin:7px 0;

    font-size:13px;

    color:#555;

}


/* =========================================================
   TÍTULO DOS RELACIONADOS
========================================================= */

.container > h2{

    margin-top:35px;

    margin-bottom:15px;

    font-size:24px;

}


/* =========================================================
   WRAPPER DO CARROSSEL
========================================================= */

.relacionados-wrapper{

    width:100%;

    min-width:0;

    position:relative;

    margin:25px 0 40px;

}


/* =========================================================
   VIEWPORT DOS RELACIONADOS
========================================================= */

.produtos-relacionados-viewport{

    width:100%;

    overflow-x:auto;

    overflow-y:hidden;

    scrollbar-width:none;

    overscroll-behavior-x:contain;

    scroll-behavior:auto;

    min-width:0;

}

.produtos-relacionados-viewport::-webkit-scrollbar{

    display:none;

}


/* =========================================================
   TRACK DOS RELACIONADOS
========================================================= */

.produtos-relacionados{

    display:flex;

    flex-wrap:nowrap;

    gap:20px;

    width:max-content;

    min-width:100%;

}


/* =========================================================
   CARD RELACIONADO
========================================================= */

.card-produto,

.produto-card{

    background:#fff;

    border-radius:12px;

    overflow:hidden;

    transition:
        transform .3s ease,
        box-shadow .3s ease;

    flex:0 0 calc(
        (1200px - 60px) / 4
    );

    width:calc(
        (1200px - 60px) / 4
    );

    min-width:0;

}

.card-produto:hover,

.produto-card:hover{

    transform:translateY(-4px);

    box-shadow:
        0 8px 20px rgba(0,0,0,.08);

}


/* =========================================================
   LINKS DOS CARDS
========================================================= */

.card-produto a,

.produto-card a{

    text-decoration:none;

    color:#222;

    display:block;

    height:100%;

}


/* =========================================================
   IMAGEM DOS CARDS
========================================================= */

.card-produto img,

.produto-card img{

    width:100%;

    height:210px;

    object-fit:cover;

    display:block;

}


/* =========================================================
   CONTEÚDO DOS CARDS
========================================================= */

.produto-card-conteudo{

    padding:0 15px 15px;

}

.card-produto h3,

.produto-card h3{

    padding:0 15px;

    margin:15px 0 10px;

    font-size:16px;

    line-height:1.35;

    min-height:43px;

    overflow:hidden;

    display:-webkit-box;

    -webkit-line-clamp:2;

    -webkit-box-orient:vertical;

}

.produto-card-conteudo h3{

    padding:0;

    margin:15px 0 10px;

}


/* =========================================================
   PREÇO DOS CARDS
========================================================= */

.card-produto .preco,

.produto-card .preco{

    padding:0 15px;

}

.produto-card-conteudo .preco{

    padding:0;

}

.area-preco{

    position:relative;

    display:flex;

    align-items:center;

    flex-wrap:wrap;

    gap:7px;

}

.produto-card-conteudo .area-preco{

    padding:0;

}

.area-preco .preco-antigo{

    padding:0;

    margin:0;

    font-size:13px;

}

.area-preco .preco.promocional{

    padding:0;

    margin:0;

    font-size:18px;

    color:#e53935;

    font-weight:bold;

}


/* =========================================================
   TABLET
========================================================= */

@media(max-width:1100px){

    .produto-detalhe{

        gap:25px;

        padding:25px;

    }


    .miniaturas-area{

        width:68px;

        flex-basis:68px;

    }


    .miniaturas-viewport{

        width:68px;

    }


    .miniaturas{

        width:68px;

    }


    .miniatura{

        width:68px;

        height:68px;

        flex-basis:68px;

    }


    .card-produto,

    .produto-card{

        flex-basis:300px;

        width:300px;

    }

}


/* =========================================================
   TABLET / TELAS MENORES
========================================================= */

@media(max-width:900px){

    .produto-detalhe{

        grid-template-columns:1fr;

        gap:25px;

        padding:20px;

    }


    .galeria-produto{

        width:100%;

    }


    .imagem-principal{

        height:400px;

    }


    .imagem-principal img{

        max-width:400px;

        height:400px;

    }


    .info-produto h1{

        font-size:26px;

    }

}


/* =========================================================
   MOBILE
========================================================= */

@media(max-width:600px){

    .container{

        width:94%;

        max-width:none;

    }


    .breadcrumb{

        margin:18px 0;

        font-size:12px;

        gap:7px;

        overflow:hidden;

    }


    .breadcrumb span:last-child{

        white-space:nowrap;

        overflow:hidden;

        text-overflow:ellipsis;

    }


    .produto-detalhe{

        padding:15px;

        border-radius:10px;

        gap:20px;

    }


    /* =========================
       GALERIA MOBILE
    ========================= */

    .galeria-produto{

        display:flex;

        flex-direction:column;

        gap:10px;

        width:100%;

    }


    .imagem-principal{

        order:1;

        width:100%;

        height:300px;

    }


    .imagem-principal img{

        width:100%;

        max-width:100%;

        height:300px;

    }


    .miniaturas-area{

        order:2;

        width:100%;

        height:72px;

        flex:0 0 72px;

        display:grid;

        grid-template-columns:30px minmax(0,1fr) 30px;

        align-items:center;

        gap:5px;

    }


    .miniaturas-viewport{

        width:100%;

        height:70px;

        overflow-x:auto;

        overflow-y:hidden;

        scroll-snap-type:x proximity;

    }


    .miniaturas{

        width:max-content;

        height:70px;

        flex-direction:row;

        gap:9px;

    }


    .miniatura{

        width:60px;

        height:60px;

        flex:0 0 60px;

    }


    .seta-galeria{

        width:30px;

        height:34px;

        flex:0 0 34px;

    }


    .seta-galeria-cima{

        order:initial;

    }


    .seta-galeria-baixo{

        order:initial;

    }


    .seta-galeria-cima i{

        transform:rotate(-90deg);

    }


    .seta-galeria-baixo i{

        transform:rotate(-90deg);

    }


    /* =========================
       INFORMAÇÕES
    ========================= */

    .info-produto h1{

        font-size:23px;

    }


    .preco,

    .preco-promocao{

        font-size:23px;

    }


    .acoes-produto{

        grid-template-columns:1fr;

    }


    .area-favorito{

        grid-template-columns:1fr;

    }


    /* =========================
       RELACIONADOS
    ========================= */

    .produtos-relacionados{

        gap:10px;

    }


    .produto-card,

    .card-produto{

        flex-basis:calc(
            (100vw - 10vw - 25px) / 2
        );

        width:calc(
            (100vw - 10vw - 25px) / 2
        );

        border-radius:10px;

    }


    .produto-card img,

    .card-produto img{

        height:160px;

    }


    .produto-card h3,

    .card-produto h3{

        font-size:14px;

        min-height:38px;

    }


    .produto-card-conteudo{

        padding:0 12px 12px;

    }


    .produto-card-conteudo h3{

        font-size:14px;

    }


    .area-preco .preco.promocional{

        font-size:16px;

    }

}


/* =========================================================
   TELEMÓVEL PEQUENO
========================================================= */

@media(max-width:400px){

    .produto-detalhe{

        padding:12px;

    }


    .imagem-principal{

        height:270px;

    }


    .imagem-principal img{

        height:270px;

    }


    .miniaturas-area{

        grid-template-columns:26px minmax(0,1fr) 26px;

    }


    .miniatura{

        width:56px;

        height:56px;

        flex-basis:56px;

    }


    .miniaturas{

        gap:7px;

    }


    .seta-galeria{

        width:26px;

        height:32px;

    }


    .produto-card,

    .card-produto{

        flex-basis:calc(
            100vw - 10vw - 20px
        );

        width:calc(
            100vw - 10vw - 20px
        );

    }


    .produto-card img,

    .card-produto img{

        height:190px;

    }

}