/* GRID */

.row-cw {
    margin-left: -10px;
    margin-right: -10px;
}

.row-cw>.col-cw {
    float: left;
    width: 100%;
    padding: 0 12px;
}

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

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

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

.row-cw>.col-cw.s50 {
    width: calc(100% / 5);
}

.row-cw>.col-cw.s12 {
    width: 100%
}

.row-cw>.col-cw.s11 {
    width: calc( (100% / 12) * 11)
}

.row-cw>.col-cw.s10 {
    width: calc( (100% / 12) * 10)
}

.row-cw>.col-cw.s9 {
    width: calc( (100% / 12) * 9)
}

.row-cw>.col-cw.s8 {
    width: calc( (100% / 12) * 8)
}

.row-cw>.col-cw.s7 {
    width: calc( (100% / 12) * 7)
}

.row-cw>.col-cw.s6 {
    width: calc( (100% / 12) * 6)
}

.row-cw>.col-cw.s5 {
    width: calc( (100% / 12) * 5)
}

.row-cw>.col-cw.s4 {
    width: calc( (100% / 12) * 4)
}

.row-cw>.col-cw.s3 {
    width: calc( (100% / 12) * 3)
}

.row-cw>.col-cw.s2 {
    width: calc( (100% / 12) * 2)
}

.row-cw>.col-cw.s1 {
    width: calc( (100% / 12) * 1)
}

@media(min-width: 600px) {
    .row-cw>.col-cw.m50 {
        width: calc(100% / 5);
    }
    .row-cw>.col-cw.m12 {
        width: 100%
    }
    .row-cw>.col-cw.m11 {
        width: calc( (100% / 12) * 11)
    }
    .row-cw>.col-cw.m10 {
        width: calc( (100% / 12) * 10)
    }
    .row-cw>.col-cw.m9 {
        width: calc( (100% / 12) * 9)
    }
    .row-cw>.col-cw.m8 {
        width: calc( (100% / 12) * 8)
    }
    .row-cw>.col-cw.m7 {
        width: calc( (100% / 12) * 7)
    }
    .row-cw>.col-cw.m6 {
        width: calc( (100% / 12) * 6)
    }
    .row-cw>.col-cw.m5 {
        width: calc( (100% / 12) * 5)
    }
    .row-cw>.col-cw.m4 {
        width: calc( (100% / 12) * 4)
    }
    .row-cw>.col-cw.m3 {
        width: calc( (100% / 12) * 3)
    }
    .row-cw>.col-cw.m2 {
        width: calc( (100% / 12) * 2)
    }
    .row-cw>.col-cw.m1 {
        width: calc( (100% / 12) * 1)
    }
}

@media(min-width: 900px) {
    .row-cw>.col-cw.l50 {
        width: calc(100% / 5);
    }
    .row-cw>.col-cw.l12 {
        width: 100%
    }
    .row-cw>.col-cw.l11 {
        width: calc( (100% / 12) * 11)
    }
    .row-cw>.col-cw.l10 {
        width: calc( (100% / 12) * 10)
    }
    .row-cw>.col-cw.l9 {
        width: calc( (100% / 12) * 9)
    }
    .row-cw>.col-cw.l8 {
        width: calc( (100% / 12) * 8)
    }
    .row-cw>.col-cw.l7 {
        width: calc( (100% / 12) * 7)
    }
    .row-cw>.col-cw.l6 {
        width: calc( (100% / 12) * 6)
    }
    .row-cw>.col-cw.l5 {
        width: calc( (100% / 12) * 5)
    }
    .row-cw>.col-cw.l4 {
        width: calc( (100% / 12) * 4)
    }
    .row-cw>.col-cw.l3 {
        width: calc( (100% / 12) * 3)
    }
    .row-cw>.col-cw.l2 {
        width: calc( (100% / 12) * 2)
    }
    .row-cw>.col-cw.l1 {
        width: calc( (100% / 12) * 1)
    }
}

@media(min-width: 1200px) {
    .row-cw>.col-cw.lg50 {
        width: calc(100% / 5);
    }
    .row-cw>.col-cw.lg12 {
        width: 100%
    }
    .row-cw>.col-cw.lg11 {
        width: calc( (100% / 12) * 11)
    }
    .row-cw>.col-cw.lg10 {
        width: calc( (100% / 12) * 10)
    }
    .row-cw>.col-cw.lg9 {
        width: calc( (100% / 12) * 9)
    }
    .row-cw>.col-cw.lg8 {
        width: calc( (100% / 12) * 8)
    }
    .row-cw>.col-cw.lg7 {
        width: calc( (100% / 12) * 7)
    }
    .row-cw>.col-cw.lg6 {
        width: calc( (100% / 12) * 6)
    }
    .row-cw>.col-cw.lg5 {
        width: calc( (100% / 12) * 5)
    }
    .row-cw>.col-cw.lg4 {
        width: calc( (100% / 12) * 4)
    }
    .row-cw>.col-cw.lg3 {
        width: calc( (100% / 12) * 3)
    }
    .row-cw>.col-cw.lg2 {
        width: calc( (100% / 12) * 2)
    }
    .row-cw>.col-cw.lg1 {
        width: calc( (100% / 12) * 1)
    }
}


/* Fim GRID */

.alert {
    display: block;
    padding: 8px 10px;
    margin-bottom: 15px;
    color: #444;
    background-color: #f5f5f5;
    border-left: 3px solid;
}

.alert.alert-success {
    color: #00b13e;
}

.alert.alert-danger {
    color: #a50000;
}

.alert.alert-info {
    color: #009eda;
}


/* Modal */

.modal-cw {
    position: fixed;
    display: none;
    top: 0;
    height: 100%;
    width: 100%;
    z-index: 9999;
    background-color: #0000006e;
}

.modal-cw.show {
    display: block;
}

.modal-cw .modal-content {
    background-color: #fff;
    width: 100%;
    max-width: 500px;
    margin: auto;
    padding: 15px;
    margin-top: 5%;
    border-radius: 5px;
    position: relative;
    height: 69%;
    overflow-x: hidden;
}

.modal-cw .modal-content .modal-header .close {
    position: absolute;
    top: 0;
    right: 0;
    border: 0;
    font-size: 22px;
    background-color: #4e4e4e;
    color: #fff;
    padding: 5px 11px;
    line-height: 1;
}

div#conteudo-orcamento {
    max-height: 100%;
    overflow: auto;
    margin-left: -15px;
    margin-right: -15px;
    padding-bottom: 50px;
}

.modal-cw .modal-footer {
    background-color: #eaeaea;
    margin-bottom: -15px;
    padding: 14px;
    margin-top: 15px;
    position: absolute;
    top: calc(100% - 78px);
    width: 100%;
    left: 0;
}

.modal-cw button.excluiModal {
    float: right;
    background-color: transparent;
    border: 0;
    color: #ad0000;
}

@media(max-width: 650px) {
    .modal-cw .modal-content {
        margin-top: 0;
        height: 100%;
        border-radius: 0;
        display: block;
    }
    .modal-cw .modal-footer {
        position: absolute;
        bottom: 0;
        width: 100%;
        left: 0;
        margin-left: 0;
        margin-bottom: 0;
    }
    .modal-cw .modal-content .modal-header .close {
        top: 0;
        right: 0;
    }
}

.modal-cw input[type="number"] {
    height: 30px!important;
    border: 1px solid!important;
    width: 60px!important;
    text-align: center;
}

.modal-cw .produto {
    display: flex;
    align-items: center;
    padding: 10px 0;
}

.modal-cw .produto p {
    margin: 0;
}

.modal-cw .produto img {
    max-width: 100%;
    border-radius: 100%;
}

.row-cw.produtos .thumbnail,
.swiper-slide .thumbnail {
    text-align: center;
    padding: 15px 0;
    margin: 15px 0;
}

.row-cw.produtos .thumbnail a.imagem,
.swiper-slide .thumbnail a.imagem {
    display: grid;
    width: 100%;
    align-items: center;
    height: 165px;
    text-align: center;
    overflow: hidden;
}

.row-cw.produtos .thumbnail a.imagem img {
    margin: auto;
    transition: .3s;
}

.row-cw.produtos .thumbnail a.imagem:hover img {
    transform: scale(1.2);
}


/* Fim modal */

section.orcamento-cw.module {
    float: left;
    width: 100%;
    padding: 30px 0;
    background-color: #fff;
}

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

.row-cw.produtos .thumbnail img {
    min-width: 150px;
}

.swiper-slide .thumbnail .titulo h2,
.row-cw.produtos .thumbnail .titulo h2 {
    font-size: 20px;
    height: 52px;
    display: grid;
    align-items: center;
}


/* Page Produto  */

/*
 * Alguns temas carregam outra versão do Swiper e redefinem o overflow da
 * galeria. Estas regras mantêm os slides dentro da coluna de imagens e
 * impedem que a próxima foto cubra o botão "Enviar Orçamento".
 */
.orcamento-cw .gallery-top,
.orcamento-cw .gallery-thumbs {
    position: relative;
    overflow: hidden !important;
    max-width: 100%;
}

.orcamento-cw .gallery-top {
    isolation: isolate;
}

.orcamento-cw .gallery-top .swiper-slide {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 100%;
}

.orcamento-cw .gallery-top img {
    display: block;
    min-width: 0;
    max-width: 100%;
    width: auto;
    height: auto;
    margin: 0 auto;
}

.gallery-thumbs .swiper-slide {
    width: 80px;
    display: grid;
    align-items: center;
    height: 80px;
    opacity: .5;
    border: 2px solid #ececec;
    overflow: hidden;
}

.gallery-thumbs .swiper-slide.swiper-slide-thumb-active {
    opacity: 1;
    border: 2px solid #c5c5c5;
}

.actioAddOrcamento {
    padding: 30px 0;
}

.actioAddOrcamento .quantidade {
    padding-right: 15px;
}

.actioAddOrcamento .quantidade input[type='tel'] {
    text-align: center;
    height: 33px;
    width: 50px;
    border: 1px solid #717171;
    margin: 0 4px;
    font-size: 18px;
    font-weight: 600;
    border-radius: 4px;
}

.actioAddOrcamento .quantidade button {
    background-color: #717171;
    color: #ffffff;
    border: 1px solid;
    width: 25px;
    height: 25px;
    border-radius: 21px;
    font-size: 12px;
    font-weight: bold;
    line-height: 1;
    transition: .2s;
    padding-top: 2px;
}

.actioAddOrcamento .quantidade button:hover {
    background-color: rgb(43, 43, 43);
    color: #ffffff;
}

.actioAddOrcamento .quantidade button.disabled {
    opacity: .4;
    pointer-events: none;
    cursor: default;
}

.actioAddOrcamento button[type=submit] {
    font-size: 18px;
    padding: 4px 20px;
    height: auto;
}

.compartilhe a {
    display: inline-block;
    width: 61px;
    margin-right: 5px;
    text-align: center;
    color: #717171;
    border: 1px solid;
    border-radius: 3px;
    transition: .2s;
}

.compartilhe p {
    float: left;
    margin-right: 7px;
    margin-top: 0;
}

.compartilhe a:hover {
    background-color: #717171;
    color: #fff;
}


/* FINALIZACAO */

.produto-car {
    float: left;
    width: 100%;
    background-color: #f7f7f7;
    margin-bottom: 15px;
    padding: 10px;
}

.imagem-car img {
    max-width: 60px;
    margin-right: 15px;
}

.produto-car .excluir button {
    background: transparent;
    border: 0;
    float: right;
    color: #b10000;
    font-size: 18px;
}

.call-action {
    padding: 15px;
}

.call-action button {
    font-size: 20px;
    padding: 10px 18px;
    height: auto;
    margin: 15px 0;
}

/* ================================================================
   Catálogo moderno — aplicado apenas na página Produtos e categorias
   ================================================================ */
.orcamento-catalogo-page #content-inside {
    max-width: 1280px;
    width: calc(100% - 40px);
    margin: 0 auto;
}

.orcamento-catalogo-page #primary,
.orcamento-catalogo-page .content-area {
    float: none !important;
    width: 100% !important;
    max-width: none !important;
}

.orcamento-catalogo-page #secondary,
.orcamento-catalogo-page .widget-area,
.orcamento-catalogo-page .sidebar {
    display: none !important;
}

.catalogo-cw,
.catalogo-cw * {
    box-sizing: border-box;
}

.catalogo-cw {
    width: 100%;
    margin: 28px 0 54px;
}

.catalogo-cw__hero {
    position: relative;
    overflow: hidden;
    margin-bottom: 28px;
    padding: 36px;
    border: 1px solid #dbe8e2;
    border-radius: 24px;
    background: linear-gradient(135deg, #f4faf6 0%, #ffffff 58%, #edf7f2 100%);
    box-shadow: 0 14px 36px rgba(10, 55, 37, .07);
}

.catalogo-cw__hero:after {
    position: absolute;
    z-index: 0;
    top: -120px;
    right: -88px;
    width: 290px;
    height: 290px;
    border: 44px solid rgba(0, 113, 67, .055);
    border-radius: 50%;
    content: '';
    pointer-events: none;
}

.catalogo-cw__intro,
.catalogo-cw__search,
.catalogo-cw__toolbar {
    position: relative;
    z-index: 1;
}

.catalogo-cw__intro {
    max-width: 720px;
}

.catalogo-cw__eyebrow {
    margin: 0 0 9px;
    color: #08734e;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
}

.catalogo-cw__intro h1 {
    margin: 0;
    color: #123a2c;
    font-size: clamp(29px, 4vw, 45px);
    font-weight: 750;
    letter-spacing: -.04em;
    line-height: 1.08;
}

.catalogo-cw__intro > p:last-child {
    max-width: 630px;
    margin: 13px 0 0;
    color: #5a6d65;
    font-size: 16px;
    line-height: 1.6;
}

.catalogo-cw__search {
    display: flex;
    align-items: center;
    max-width: 660px;
    margin-top: 28px;
    padding: 4px 4px 4px 18px;
    border: 1px solid #bed5ca;
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 7px 18px rgba(15, 50, 38, .07);
}

.catalogo-cw__search input[type='search'] {
    min-width: 0;
    width: 100%;
    height: 43px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0;
    background: transparent !important;
    box-shadow: none !important;
    color: #173b2e;
    font-size: 15px;
}

.catalogo-cw__search input[type='search']::placeholder {
    color: #83968e;
    opacity: 1;
}

.catalogo-cw__search button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    padding: 0;
    border: 0;
    border-radius: 11px;
    background: #087b71;
    color: #fff;
    cursor: pointer;
    transition: transform .2s ease, background-color .2s ease;
}

.catalogo-cw__search button:hover {
    transform: translateY(-1px);
    background: #05695f;
}

.catalogo-cw__search svg {
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.catalogo-cw__toolbar {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 26px;
}

.catalogo-cw__count {
    padding-top: 12px;
    color: #577067;
    font-size: 14px;
    font-weight: 600;
}

/*
 * O painel de categorias precisa ocupar espaço real quando aberto. Antes ele
 * era absoluto e ficava cortado pelo overflow do cabeçalho do catálogo.
 * Mantendo-o no fluxo, o cabeçalho aumenta de altura e os produtos são
 * empurrados para baixo, sem sobreposição nem corte.
 */
.catalogo-cw__filters {
    position: relative;
    margin-left: auto;
}

.catalogo-cw__filters[open] {
    flex: 0 1 min(660px, 100%);
    width: min(660px, 100%);
    max-width: 100%;
}

.catalogo-cw__filters[open] > summary {
    width: fit-content;
    margin-left: auto;
}

.catalogo-cw__filters > summary {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 42px;
    padding: 10px 14px;
    border: 1px solid #c8ddd3;
    border-radius: 12px;
    background: rgba(255, 255, 255, .78);
    color: #234d3d;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.catalogo-cw__filters > summary::-webkit-details-marker {
    display: none;
}

.catalogo-cw__filters > summary:after {
    width: 7px;
    height: 7px;
    margin-left: 3px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    content: '';
    transform: rotate(45deg) translateY(-2px);
    transition: transform .2s ease;
}

.catalogo-cw__filters[open] > summary:after {
    transform: rotate(225deg) translate(-1px, -1px);
}

.catalogo-cw__filters > summary span {
    font-size: 13px;
}

.catalogo-cw__filters > summary strong {
    font-size: 13px;
}

.catalogo-cw__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    width: 100%;
    margin-top: 9px;
    padding: 16px;
    border: 1px solid #d4e5dc;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 12px 28px rgba(20, 63, 46, .10);
}

.catalogo-cw__chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 34px;
    padding: 7px 10px;
    border: 1px solid #d4e2dc;
    border-radius: 999px;
    background: #fff;
    color: #486258;
    font-size: 12px;
    font-weight: 650;
    line-height: 1.25;
    text-decoration: none !important;
    transition: color .2s ease, border-color .2s ease, background-color .2s ease;
}

.catalogo-cw__chip:hover,
.catalogo-cw__chip.is-active {
    border-color: #087b71;
    background: #087b71;
    color: #fff !important;
}

.catalogo-cw__chip span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 999px;
    background: #eef4f1;
    color: #3b5a4d;
    font-size: 10px;
}

.catalogo-cw__chip.is-active span,
.catalogo-cw__chip:hover span {
    background: rgba(255, 255, 255, .18);
    color: #fff;
}

.catalogo-cw__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
    margin: 0 !important;
}

.catalogo-cw__grid > .col-cw {
    float: none !important;
    width: auto !important;
    padding: 0 !important;
}

.row-cw.produtos.catalogo-cw__grid .thumbnail.produto-card-cw {
    display: flex;
    flex-direction: column;
    height: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 1px solid #e1ebe6;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 9px 25px rgba(13, 58, 39, .07);
    text-align: left;
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.row-cw.produtos.catalogo-cw__grid .thumbnail.produto-card-cw:hover {
    border-color: #a5cabc;
    box-shadow: 0 17px 35px rgba(13, 58, 39, .14);
    transform: translateY(-5px);
}

.row-cw.produtos.catalogo-cw__grid .thumbnail.produto-card-cw a.imagem {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 220px;
    padding: 18px;
    overflow: hidden;
    background: linear-gradient(145deg, #f8fbfa, #eef5f1);
}

.row-cw.produtos.catalogo-cw__grid .thumbnail.produto-card-cw a.imagem img {
    display: block;
    min-width: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    object-fit: contain;
    mix-blend-mode: multiply;
    transform: none;
    transition: transform .28s ease;
}

.row-cw.produtos.catalogo-cw__grid .thumbnail.produto-card-cw:hover a.imagem img {
    transform: scale(1.045);
}

.produto-card-cw__content {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    padding: 18px;
}

.produto-card-cw__category {
    overflow: hidden;
    max-width: 100%;
    margin: 0 0 8px;
    color: #087b71;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .075em;
    line-height: 1.25;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
}

.row-cw.produtos.catalogo-cw__grid .thumbnail .titulo {
    width: 100%;
    min-height: 56px;
}

.row-cw.produtos.catalogo-cw__grid .thumbnail .titulo h2 {
    display: -webkit-box;
    overflow: hidden;
    height: auto;
    margin: 0;
    color: #173b2e;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -.018em;
    line-height: 1.28;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.row-cw.produtos.catalogo-cw__grid .thumbnail .titulo a {
    color: inherit;
    text-decoration: none !important;
}

.catalogo-cw__button {
    display: inline-flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    min-height: 43px;
    margin-top: auto;
    padding: 11px 14px !important;
    border: 0 !important;
    border-radius: 10px !important;
    box-shadow: none !important;
    font-size: 14px !important;
    font-weight: 750 !important;
    line-height: 1.2 !important;
    text-align: left !important;
    text-decoration: none !important;
    transition: filter .2s ease, transform .2s ease;
}

.catalogo-cw__button:hover {
    color: inherit !important;
    filter: brightness(.93);
    transform: translateY(-1px);
}

.catalogo-cw__button span {
    font-size: 19px;
    line-height: .8;
}

.catalogo-cw__empty {
    padding: 48px 26px;
    border: 1px dashed #bcd6ca;
    border-radius: 18px;
    background: #f7fbf8;
    color: #526b60;
    text-align: center;
}

.catalogo-cw__empty h2 {
    margin: 0 0 7px;
    color: #234b3c;
    font-size: 22px;
}

.catalogo-cw__empty p {
    margin: 0;
}

.catalogo-cw__description {
    margin: -10px 0 22px;
    color: #5e7269;
}

.orcamento-catalogo-page .orcamentos_paginacao {
    margin-top: 30px;
    text-align: center;
}

.orcamento-catalogo-page .orcamentos_paginacao .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 38px;
    margin: 3px;
    padding: 0 10px;
    border: 1px solid #cbded5;
    border-radius: 10px;
    background: #fff;
    color: #245241;
    font-weight: 700;
    text-decoration: none !important;
}

.orcamento-catalogo-page .orcamentos_paginacao .page-numbers.current,
.orcamento-catalogo-page .orcamentos_paginacao .page-numbers:hover {
    border-color: #087b71;
    background: #087b71;
    color: #fff;
}

@media (max-width: 1100px) {
    .catalogo-cw__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .catalogo-cw__hero {
        padding: 28px 22px;
    }

    .catalogo-cw__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }

    .row-cw.produtos.catalogo-cw__grid .thumbnail.produto-card-cw a.imagem {
        height: 190px;
        padding: 14px;
    }
}

@media (max-width: 560px) {
    .orcamento-catalogo-page #content-inside {
        width: calc(100% - 28px);
    }

    .catalogo-cw {
        margin-top: 18px;
    }

    .catalogo-cw__hero {
        padding: 24px 18px;
        border-radius: 18px;
    }

    .catalogo-cw__intro h1 {
        font-size: 30px;
    }

    .catalogo-cw__toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .catalogo-cw__count {
        padding-top: 0;
    }

    .catalogo-cw__filters,
    .catalogo-cw__filters[open] {
        width: 100%;
        max-width: 100%;
        margin-left: 0;
    }

    .catalogo-cw__filters[open] > summary {
        width: 100%;
        margin-left: 0;
    }

    .catalogo-cw__filters > summary {
        justify-content: space-between;
    }

    .catalogo-cw__chips {
        width: 100%;
    }

    .catalogo-cw__grid {
        grid-template-columns: 1fr;
    }

    .row-cw.produtos.catalogo-cw__grid .thumbnail.produto-card-cw a.imagem {
        height: 230px;
    }
}


/* ================================================================
   VITRINE DE PRODUTOS DA HOME
   Mantém as alterações restritas à página inicial.
   ================================================================ */
.orcamento-home-catalogo-page .home-catalogo-cw,
.home-catalogo-cw {
    width: 100%;
    max-width: 1240px;
    margin: 52px auto 72px;
    padding: 0 24px;
    color: #183038;
    box-sizing: border-box;
}

.home-catalogo-cw *,
.home-catalogo-cw *::before,
.home-catalogo-cw *::after {
    box-sizing: border-box;
}

.home-catalogo-cw__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
    padding: 36px 38px;
    margin-bottom: 34px;
    border: 1px solid #dce8e5;
    border-radius: 22px;
    background:
        radial-gradient(circle at 92% 15%, rgba(2, 126, 90, .12), transparent 31%),
        linear-gradient(135deg, #f7fbf9 0%, #ffffff 100%);
}

.home-catalogo-cw__eyebrow,
.home-catalogo-cw__kicker,
.home-catalogo-cw__category {
    margin: 0;
    color: #047857;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    line-height: 1.3;
    text-transform: uppercase;
}

.home-catalogo-cw__header h2 {
    max-width: 700px;
    margin: 8px 0 10px;
    color: #153b36;
    font-size: clamp(28px, 3vw, 44px);
    font-weight: 750;
    letter-spacing: -.035em;
    line-height: 1.08;
}

.home-catalogo-cw__header p:not(.home-catalogo-cw__eyebrow) {
    max-width: 650px;
    margin: 0;
    color: #557069;
    font-size: 16px;
    line-height: 1.55;
}

.home-catalogo-cw__all-link,
.home-catalogo-cw__catalog-button,
.home-catalogo-cw__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 11px;
    border-radius: 10px;
    font-weight: 800;
    line-height: 1;
    text-decoration: none !important;
    transition: transform .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.home-catalogo-cw__all-link {
    flex: 0 0 auto;
    padding: 15px 18px;
    color: #075f4a !important;
    border: 1px solid #abd3c8;
    background: #fff;
    font-size: 14px;
}

.home-catalogo-cw__all-link:hover {
    color: #fff !important;
    border-color: #08755b;
    background: #08755b;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(5, 112, 82, .18);
}

.home-catalogo-cw__section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 26px;
    margin: 0 0 18px;
}

.home-catalogo-cw__section-heading--second {
    margin-top: 58px;
}

.home-catalogo-cw__section-heading h3 {
    margin: 5px 0 0;
    color: #173c38;
    font-size: clamp(24px, 2.2vw, 32px);
    font-weight: 750;
    letter-spacing: -.025em;
    line-height: 1.1;
}

.home-catalogo-cw__section-heading > p {
    max-width: 395px;
    margin: 0 0 2px;
    color: #657c75;
    font-size: 14px;
    line-height: 1.45;
    text-align: right;
}

.home-catalogo-cw__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

.home-catalogo-cw__card {
    display: flex;
    min-width: 0;
    min-height: 100%;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid #e2ebe8;
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(18, 57, 47, .055);
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.home-catalogo-cw__card:hover {
    border-color: #9fcec0;
    transform: translateY(-6px);
    box-shadow: 0 19px 38px rgba(18, 57, 47, .13);
}

.home-catalogo-cw__image {
    display: grid;
    min-height: 220px;
    padding: 20px;
    place-items: center;
    overflow: hidden;
    background: linear-gradient(145deg, #f7faf9 0%, #edf4f1 100%);
}

.home-catalogo-cw__image img {
    display: block;
    width: 100%;
    height: 184px;
    object-fit: contain;
    transition: transform .3s ease;
}

.home-catalogo-cw__card:hover .home-catalogo-cw__image img {
    transform: scale(1.065);
}

.home-catalogo-cw__card-content {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    padding: 20px 20px 21px;
}

.home-catalogo-cw__category {
    min-height: 14px;
    color: #17806a;
    font-size: 9px;
    letter-spacing: .1em;
}

.home-catalogo-cw__category--empty {
    opacity: .7;
}

.home-catalogo-cw__card h3 {
    min-height: 55px;
    margin: 8px 0 18px;
    color: #1b3431;
    font-size: 18px;
    font-weight: 750;
    letter-spacing: -.015em;
    line-height: 1.22;
}

.home-catalogo-cw__card h3 a {
    color: inherit !important;
    text-decoration: none !important;
}

.home-catalogo-cw__button {
    width: 100%;
    margin-top: auto;
    padding: 13px 16px;
    color: #fff !important;
    background: #0d887f;
    font-size: 14px;
}

.home-catalogo-cw__button:hover {
    color: #fff !important;
    background: #086d67;
    transform: translateY(-1px);
    box-shadow: 0 9px 18px rgba(13, 136, 127, .22);
}

.home-catalogo-cw__footer {
    display: flex;
    justify-content: center;
    margin-top: 34px;
}

.home-catalogo-cw__catalog-button {
    padding: 16px 22px;
    color: #fff !important;
    background: #08755b;
    font-size: 15px;
}

.home-catalogo-cw__catalog-button:hover {
    color: #fff !important;
    background: #055f49;
    transform: translateY(-2px);
    box-shadow: 0 12px 25px rgba(4, 113, 84, .24);
}

.home-catalogo-cw__empty {
    padding: 50px 24px;
    text-align: center;
    border: 1px dashed #bad4ca;
    border-radius: 18px;
    background: #f8fcfa;
}

.home-catalogo-cw__empty h2 {
    margin: 0 0 8px;
    color: #163b35;
}

.home-catalogo-cw__empty p {
    margin: 0;
    color: #627c74;
}

@media (max-width: 1060px) {
    .home-catalogo-cw__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .orcamento-home-catalogo-page .home-catalogo-cw,
    .home-catalogo-cw {
        margin: 36px auto 50px;
        padding: 0 16px;
    }

    .home-catalogo-cw__header {
        align-items: flex-start;
        flex-direction: column;
        padding: 27px 22px;
        border-radius: 17px;
    }

    .home-catalogo-cw__header h2 {
        font-size: 30px;
    }

    .home-catalogo-cw__all-link {
        width: 100%;
    }

    .home-catalogo-cw__section-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .home-catalogo-cw__section-heading > p {
        max-width: none;
        text-align: left;
    }

    .home-catalogo-cw__section-heading--second {
        margin-top: 42px;
    }
}

@media (max-width: 520px) {
    .home-catalogo-cw__grid {
        grid-template-columns: 1fr;
    }

    .home-catalogo-cw__image {
        min-height: 235px;
    }

    .home-catalogo-cw__image img {
        height: 200px;
    }

    .home-catalogo-cw__card h3 {
        min-height: auto;
    }
}


/* ================================================================
   Filtro de categorias — shortcode [orcamento_menu_categorias]
   ================================================================ */
.cw-category-filter,
.cw-category-filter * {
    box-sizing: border-box;
}

.cw-category-filter {
    width: 100%;
    max-width: 360px;
    padding: 18px;
    border: 1px solid #dce9e2;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 12px 30px rgba(12, 62, 42, .08);
    color: #173b2e;
}

.cw-category-filter__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}

.cw-category-filter__eyebrow {
    margin: 0 0 5px;
    color: #087b71;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .1em;
    line-height: 1.2;
}

.cw-category-filter__head h2 {
    margin: 0;
    color: #173b2e;
    font-size: 21px;
    font-weight: 750;
    letter-spacing: -.025em;
    line-height: 1.1;
}

.cw-category-filter__all {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    flex: 0 0 auto;
    padding: 7px 9px;
    border-radius: 9px;
    background: #edf7f2;
    color: #087b71 !important;
    font-size: 11px;
    font-weight: 750;
    line-height: 1;
    text-decoration: none !important;
}

.cw-category-filter__all:hover {
    background: #087b71;
    color: #fff !important;
}

.cw-category-filter__search {
    display: flex;
    align-items: center;
    gap: 9px;
    width: 100%;
    min-height: 43px;
    margin: 0 0 12px;
    padding: 0 12px;
    border: 1px solid #cfe1d7;
    border-radius: 11px;
    background: #f8fbf9;
}

.cw-category-filter__search:focus-within {
    border-color: #087b71;
    box-shadow: 0 0 0 3px rgba(8, 123, 113, .11);
}

.cw-category-filter__search svg {
    flex: 0 0 17px;
    width: 17px;
    height: 17px;
    fill: none;
    stroke: #4f7666;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
}

.cw-category-filter__search input {
    width: 100%;
    min-width: 0;
    height: 41px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0;
    background: transparent !important;
    box-shadow: none !important;
    color: #173b2e;
    font-size: 13px;
}

.cw-category-filter__search input::placeholder {
    color: #879a91;
    opacity: 1;
}

.cw-category-filter__groups {
    display: grid;
    gap: 8px;
    max-height: 540px;
    overflow: auto;
    padding-right: 2px;
    scrollbar-color: #b9d4c6 transparent;
    scrollbar-width: thin;
}

.cw-category-filter__group,
.cw-category-filter__single {
    overflow: hidden;
    border: 1px solid #e1ece6;
    border-radius: 11px;
    background: #fff;
}

.cw-category-filter__group[hidden],
.cw-category-filter__single[hidden] {
    display: none !important;
}

.cw-category-filter__group summary {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 45px;
    padding: 10px 11px;
    color: #204b3a;
    cursor: pointer;
    list-style: none;
    transition: background-color .2s ease, color .2s ease;
}

.cw-category-filter__group summary::-webkit-details-marker {
    display: none;
}

.cw-category-filter__group summary:hover,
.cw-category-filter__group.is-active summary {
    background: #f1f8f4;
}

.cw-category-filter__group-title,
.cw-category-filter__single > span {
    flex: 1 1 auto;
    min-width: 0;
    color: inherit;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.28;
}

.cw-category-filter__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-width: 23px;
    height: 21px;
    padding: 0 6px;
    border-radius: 999px;
    background: #e7f2ec;
    color: #2f6b52;
    font-size: 10px;
    font-weight: 800;
    line-height: 1;
}

.cw-category-filter__chevron {
    flex: 0 0 7px;
    width: 7px;
    height: 7px;
    margin-right: 2px;
    border-right: 2px solid #4b7564;
    border-bottom: 2px solid #4b7564;
    transform: rotate(45deg) translateY(-2px);
    transition: transform .2s ease;
}

.cw-category-filter__group[open] .cw-category-filter__chevron {
    transform: rotate(225deg) translate(-1px, -1px);
}

.cw-category-filter__group-body {
    padding: 0 10px 10px;
    border-top: 1px solid #edf3ef;
    background: #fbfdfc;
}

.cw-category-filter__parent-link,
.cw-category-filter__child {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: #496b5d !important;
    font-size: 12px;
    line-height: 1.25;
    text-decoration: none !important;
}

.cw-category-filter__parent-link {
    margin: 9px 0 6px;
    color: #087b71 !important;
    font-size: 11px;
    font-weight: 800;
}

.cw-category-filter__parent-link:hover,
.cw-category-filter__child:hover,
.cw-category-filter__parent-link.is-active,
.cw-category-filter__child.is-active {
    color: #087b71 !important;
}

.cw-category-filter__children {
    display: grid;
    gap: 2px;
    margin-top: 6px;
    padding-top: 7px;
    border-top: 1px solid #edf3ef;
}

.cw-category-filter__child {
    min-height: 31px;
    padding: 5px 0;
}

.cw-category-filter__child span {
    min-width: 0;
}

.cw-category-filter__child b {
    flex: 0 0 auto;
    color: #8aa399;
    font-size: 10px;
    font-weight: 750;
}

.cw-category-filter__single {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 45px;
    padding: 10px 11px;
    color: #204b3a !important;
    text-decoration: none !important;
    transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

.cw-category-filter__single:hover,
.cw-category-filter__single.is-active {
    border-color: #acd0bd;
    background: #f1f8f4;
    color: #087b71 !important;
}

.cw-category-filter__single-arrow {
    flex: 0 0 auto;
    color: #66a085;
    font-size: 16px;
    line-height: 1;
}

.cw-category-filter__empty {
    margin: 14px 0 2px;
    color: #72877d;
    font-size: 12px;
    text-align: center;
}

@media (max-width: 600px) {
    .cw-category-filter {
        max-width: none;
        padding: 15px;
        border-radius: 15px;
    }

    .cw-category-filter__groups {
        max-height: 440px;
    }
}

/* ================================================================
   Página individual do produto — visual atualizado e zoom de imagem
   ================================================================ */
.produto-single-cw {
    background: linear-gradient(180deg, #f7fbf8 0, #ffffff 44%) !important;
    padding: 56px 0 70px !important;
}

.produto-single-cw .container.wrap {
    width: calc(100% - 40px);
    max-width: 1320px;
    margin: 0 auto;
}

.produto-single-cw__layout {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    margin-left: -12px;
    margin-right: -12px;
    row-gap: 38px;
}

.produto-single-cw__layout > .col-cw {
    float: none;
    box-sizing: border-box;
}

.produto-galeria-cw__frame {
    padding: 18px;
    border: 1px solid #dce9e2;
    border-radius: 22px;
    background: #ffffff;
    box-shadow: 0 16px 36px rgba(20, 72, 53, .08);
}

.produto-single-cw .gallery-top {
    border-radius: 15px;
    background: linear-gradient(145deg, #f6faf8, #edf6f1);
}

.produto-single-cw .gallery-top .swiper-slide {
    height: 455px;
    padding: 18px;
    box-sizing: border-box;
    overflow: hidden;
}

.produto-single-cw .gallery-top .cw-gallery-zoomable {
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: contain;
    cursor: zoom-in;
    transition: transform .35s ease;
}

.produto-single-cw .gallery-top:hover .cw-gallery-zoomable {
    transform: scale(1.055);
}

.cw-gallery-zoom-trigger {
    position: absolute;
    z-index: 6;
    right: 18px;
    bottom: 18px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 38px;
    padding: 0 14px;
    color: #ffffff;
    background: rgba(18, 70, 50, .92);
    border: 0;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(16, 62, 46, .22);
    transition: transform .2s ease, background-color .2s ease;
}

.cw-gallery-zoom-trigger:hover,
.cw-gallery-zoom-trigger:focus {
    color: #ffffff;
    background: #0e5f43;
    transform: translateY(-2px);
    outline: none;
}

.produto-single-cw .gallery-top .swiper-button-next,
.produto-single-cw .gallery-top .swiper-button-prev {
    width: 42px;
    height: 42px;
    margin-top: -21px;
    border-radius: 50%;
    background: #ffffff;
    box-shadow: 0 8px 18px rgba(20, 72, 53, .16);
    transition: transform .2s ease, background-color .2s ease;
}

.produto-single-cw .gallery-top .swiper-button-next:hover,
.produto-single-cw .gallery-top .swiper-button-prev:hover {
    background: #0f826b;
    transform: scale(1.06);
}

.produto-single-cw .gallery-top .swiper-button-next:after,
.produto-single-cw .gallery-top .swiper-button-prev:after {
    color: #0f826b;
    font-size: 16px;
    font-weight: 800;
}

.produto-single-cw .gallery-top .swiper-button-next:hover:after,
.produto-single-cw .gallery-top .swiper-button-prev:hover:after {
    color: #ffffff;
}

.produto-single-cw .gallery-thumbs {
    margin-top: 14px;
    overflow: hidden !important;
}

.produto-single-cw .gallery-thumbs .swiper-wrapper {
    align-items: center;
}

.produto-single-cw .gallery-thumbs .swiper-slide {
    width: 76px;
    height: 76px;
    padding: 5px;
    border: 1px solid #dbe8e1;
    border-radius: 10px;
    background: #ffffff;
    opacity: 1;
    cursor: pointer;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.produto-single-cw .gallery-thumbs .swiper-slide:hover {
    border-color: #73b29c;
    transform: translateY(-2px);
}

.produto-single-cw .gallery-thumbs .swiper-slide.swiper-slide-thumb-active {
    border: 2px solid #0f826b;
    box-shadow: 0 6px 16px rgba(15, 130, 107, .16);
}

.produto-single-cw .gallery-thumbs .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.produto-info-cw__card {
    min-height: 100%;
    padding: 38px;
    border: 1px solid #dce9e2;
    border-radius: 22px;
    background: #ffffff;
    box-shadow: 0 16px 36px rgba(20, 72, 53, .08);
}

.produto-info-cw__category,
.produto-detalhes-cw__eyebrow,
.produto-relacionados-cw__heading p {
    margin: 0 0 12px;
    color: #0f826b;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .11em;
    line-height: 1.2;
    text-transform: uppercase;
}

.produto-info-cw__title {
    margin: 0 0 18px !important;
    color: #173d31;
    font-size: clamp(30px, 3vw, 42px) !important;
    font-weight: 700;
    line-height: 1.12;
}

.produto-info-cw__summary {
    color: #405c51;
    font-size: 16px;
    line-height: 1.7;
}

.produto-info-cw__summary p:last-child {
    margin-bottom: 0;
}

.produto-orcamento-form {
    margin-top: 28px;
    padding-top: 25px;
    border-top: 1px solid #e3eee8;
}

.produto-orcamento-form .form-group {
    margin-bottom: 18px;
}

.produto-orcamento-form .form-group > label {
    display: block;
    margin-bottom: 8px;
    color: #244b3e;
    font-size: 13px;
    font-weight: 700;
}

.produto-orcamento-form .form-control {
    height: 44px;
    border: 1px solid #cfe0d7;
    border-radius: 9px;
    box-shadow: none;
}

.produto-orcamento-form textarea.form-control {
    min-height: 100px;
    height: auto;
}

.produto-single-cw .actioAddOrcamento {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    padding: 0;
}

.produto-single-cw .actioAddOrcamento .quantidade {
    display: inline-flex;
    align-items: center;
    min-height: 52px;
    padding: 7px 10px;
    border: 1px solid #d6e5dc;
    border-radius: 10px;
    background: #f8fbf9;
}

.produto-single-cw .actioAddOrcamento .quantidade input[type='tel'] {
    width: 42px;
    height: 34px;
    margin: 0 5px;
    border: 0;
    background: transparent;
    color: #183f32;
    font-size: 16px;
    box-shadow: none;
}

.produto-single-cw .actioAddOrcamento .quantidade button {
    width: 28px;
    height: 28px;
    border: 0;
    background: #e5efe9;
    color: #0f6852;
    font-size: 14px;
}

.produto-single-cw .actioAddOrcamento .quantidade button:hover {
    background: #0f826b;
    color: #ffffff;
}

.produto-single-cw .actioAddOrcamento button[type=submit] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 52px;
    padding: 0 22px;
    border: 0;
    border-radius: 10px;
    font-size: 16px;
    font-weight: 800;
    line-height: 1;
    box-shadow: 0 10px 22px rgba(10, 108, 84, .18);
    transition: transform .2s ease, box-shadow .2s ease;
}

.produto-single-cw .actioAddOrcamento button[type=submit]:hover,
.produto-single-cw .actioAddOrcamento button[type=submit]:focus {
    transform: translateY(-2px);
    box-shadow: 0 14px 26px rgba(10, 108, 84, .25);
}

.produto-compartilhe-cw {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 14px;
    margin-top: 26px;
    padding-top: 22px;
    border-top: 1px solid #e3eee8;
}

.produto-compartilhe-cw p {
    float: none;
    margin: 0;
    color: #547067;
    font-size: 13px;
    font-weight: 600;
}

.produto-compartilhe-cw__links {
    display: flex;
    gap: 8px;
}

.produto-compartilhe-cw a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    margin: 0;
    border: 1px solid #d2e2d9;
    border-radius: 50%;
    color: #176a56;
    background: #f8fbf9;
}

.produto-compartilhe-cw a:hover {
    color: #ffffff;
    border-color: #0f826b;
    background: #0f826b;
}

.produto-detalhes-cw {
    margin-top: 2px;
}

.produto-detalhes-cw__card {
    padding: 30px 34px;
    border: 1px solid #dce9e2;
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 12px 28px rgba(20, 72, 53, .06);
}

.produto-detalhes-cw__content {
    max-width: 850px;
    color: #36554a;
    font-size: 16px;
    line-height: 1.75;
}

.produto-detalhes-cw__content h1,
.produto-detalhes-cw__content h2,
.produto-detalhes-cw__content h3,
.produto-detalhes-cw__content h4 {
    color: #173d31;
    font-size: 20px;
    font-weight: 750;
}

.produto-detalhes-cw__content p:last-child,
.produto-detalhes-cw__content ul:last-child,
.produto-detalhes-cw__content ol:last-child {
    margin-bottom: 0;
}

.produto-relacionados-cw {
    padding-top: 12px;
}

.produto-relacionados-cw__heading {
    margin-bottom: 8px;
}

.produto-relacionados-cw__heading h3 {
    margin: 0;
    color: #173d31;
    font-size: 28px;
    font-weight: 700;
}

.cw-gallery-zoom-modal {
    position: fixed;
    z-index: 99999;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 28px;
}

.cw-gallery-zoom-modal.is-open {
    display: flex;
}

.cw-gallery-zoom-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(7, 23, 17, .82);
}

.cw-gallery-zoom-modal__dialog {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: min(1100px, 100%);
    height: min(820px, 100%);
    padding: 24px;
    border-radius: 16px;
    background: #ffffff;
    box-shadow: 0 25px 80px rgba(0, 0, 0, .38);
}

.cw-gallery-zoom-modal__dialog img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.cw-gallery-zoom-modal__close {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 50%;
    color: #ffffff;
    background: #173d31;
    font-size: 16px;
    transition: transform .2s ease, background-color .2s ease;
}

.cw-gallery-zoom-modal__close:hover,
.cw-gallery-zoom-modal__close:focus {
    background: #0f826b;
    transform: scale(1.06);
    outline: none;
}

body.cw-gallery-zoom-is-open {
    overflow: hidden;
}

@media (max-width: 899px) {
    .produto-single-cw {
        padding: 36px 0 50px !important;
    }

    .produto-single-cw__layout {
        row-gap: 24px;
    }

    .produto-single-cw .gallery-top .swiper-slide {
        height: 390px;
    }

    .produto-info-cw__card {
        padding: 30px;
    }
}

@media (max-width: 599px) {
    .produto-single-cw .container.wrap {
        width: calc(100% - 24px);
    }

    .produto-galeria-cw__frame {
        padding: 10px;
        border-radius: 16px;
    }

    .produto-single-cw .gallery-top .swiper-slide {
        height: 295px;
        padding: 12px;
    }

    .produto-single-cw .gallery-top .swiper-button-next,
    .produto-single-cw .gallery-top .swiper-button-prev {
        width: 35px;
        height: 35px;
        margin-top: -17px;
    }

    .produto-single-cw .gallery-top .swiper-button-next:after,
    .produto-single-cw .gallery-top .swiper-button-prev:after {
        font-size: 13px;
    }

    .cw-gallery-zoom-trigger {
        right: 12px;
        bottom: 12px;
        min-height: 34px;
        padding: 0 11px;
        font-size: 12px;
    }

    .produto-single-cw .gallery-thumbs .swiper-slide {
        width: 62px;
        height: 62px;
    }

    .produto-info-cw__card {
        padding: 25px 21px;
        border-radius: 16px;
    }

    .produto-info-cw__title {
        font-size: 29px !important;
    }

    .produto-info-cw__summary,
    .produto-detalhes-cw__content {
        font-size: 15px;
    }

    .produto-single-cw .actioAddOrcamento {
        align-items: stretch;
    }

    .produto-single-cw .actioAddOrcamento button[type=submit] {
        flex: 1;
        min-width: 185px;
    }

    .produto-detalhes-cw__card {
        padding: 23px 21px;
        border-radius: 16px;
    }

    .produto-relacionados-cw__heading h3 {
        font-size: 24px;
    }

    .cw-gallery-zoom-modal {
        padding: 12px;
    }

    .cw-gallery-zoom-modal__dialog {
        padding: 14px;
        border-radius: 12px;
    }
}

/* Filtro assíncrono do catálogo: troca os produtos ao lado sem sair da página. */
.catalogo-cw[data-cw-ajax-catalog] {
    position: relative;
}

.catalogo-cw[data-cw-ajax-catalog] .catalogo-cw__grid,
.catalogo-cw[data-cw-ajax-catalog] [data-cw-pagination] {
    transition: opacity .2s ease, filter .2s ease;
}

.catalogo-cw[data-cw-ajax-catalog].is-loading .catalogo-cw__grid,
.catalogo-cw[data-cw-ajax-catalog].is-loading [data-cw-pagination] {
    opacity: .42;
    filter: grayscale(.12);
    pointer-events: none;
}

.catalogo-cw[data-cw-ajax-catalog].is-loading:after {
    position: absolute;
    z-index: 5;
    top: 50%;
    left: 50%;
    width: 38px;
    height: 38px;
    margin: -19px 0 0 -19px;
    border: 3px solid rgba(15, 130, 107, .2);
    border-top-color: #0f826b;
    border-radius: 50%;
    content: '';
    animation: cwCatalogSpin .75s linear infinite;
}

.catalogo-cw__ajax-pagination {
    display: flex;
    justify-content: center;
    margin: 32px 0 4px;
}

.catalogo-cw__ajax-pagination .page-numbers {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.catalogo-cw__ajax-pagination .page-numbers li {
    margin: 0;
}

.catalogo-cw__ajax-pagination .page-numbers a,
.catalogo-cw__ajax-pagination .page-numbers span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 38px;
    padding: 0 10px;
    border: 1px solid #d8e8df;
    border-radius: 10px;
    color: #205545;
    background: #ffffff;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    transition: transform .2s ease, color .2s ease, background-color .2s ease, border-color .2s ease;
}

.catalogo-cw__ajax-pagination .page-numbers a:hover,
.catalogo-cw__ajax-pagination .page-numbers .current {
    border-color: #0f826b;
    color: #ffffff;
    background: #0f826b;
    transform: translateY(-1px);
}

.cw-category-filter [data-cw-category-link].is-active,
.catalogo-cw__filters [data-cw-category-link].is-active {
    pointer-events: none;
}

@keyframes cwCatalogSpin {
    to {
        transform: rotate(360deg);
    }
}

/* ================================================================
   PADRÃO DE IMAGENS 3:4 — CATÁLOGO E VITRINE DA HOME
   Mantém um único enquadramento vertical para todos os cards e
   preserva a foto inteira do equipamento, sem recortes indesejados.
   ================================================================ */
.row-cw.produtos.catalogo-cw__grid .thumbnail.produto-card-cw a.imagem,
.home-catalogo-cw__image {
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 3 / 4;
    padding: 18px;
}

.row-cw.produtos.catalogo-cw__grid .thumbnail.produto-card-cw a.imagem img,
.home-catalogo-cw__image img {
    width: 100%;
    height: 100% !important;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    object-position: center;
}

@media (max-width: 560px) {
    .row-cw.produtos.catalogo-cw__grid .thumbnail.produto-card-cw a.imagem,
    .home-catalogo-cw__image {
        padding: 14px;
    }
}
