.catalogo-geral { padding:54px 0 92px; background:#fbfcfb; }
.catalogo-topo {
    margin-bottom:24px;
}
.catalogo-kicker {
    display:inline-block;
    margin-bottom:10px;
    color:#218838;
    font-size:13px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.08em;
}
.catalogo-topo h2 {
    margin:0 0 10px;
    color:#26352b;
    font-size:34px;
    line-height:1.18;
}
.catalogo-topo p {
    max-width:720px;
    color:#5d685f;
    line-height:1.65;
}
.catalogo-filtros {
    padding:18px;
    border:1px solid #dfe8e1;
    border-radius:8px;
    background:#fff;
    box-shadow:0 12px 35px rgba(33, 66, 41, .07);
}
.catalogo-filtros-grid {
    display:grid;
    grid-template-columns:minmax(250px, 1.55fr) minmax(145px, .75fr) minmax(190px, .9fr) minmax(165px, .8fr) auto;
    gap:12px;
    align-items:end;
}
.catalogo-campo label {
    display:block;
    margin-bottom:7px;
    color:#314137;
    font-size:13px;
    font-weight:700;
}
.catalogo-campo input,
.catalogo-campo select {
    width:100%;
    height:46px;
    padding:0 13px;
    border:1px solid #d8e1da;
    border-radius:6px;
    color:#26352b;
    background:#fff;
}
.catalogo-campo input:focus,
.catalogo-campo select:focus {
    border-color:#218838;
    box-shadow:0 0 0 3px rgba(33, 136, 56, .12);
}
.catalogo-preco > div { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.catalogo-opcoes {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:12px 18px;
    margin-top:16px;
    padding-top:14px;
    border-top:1px solid #edf1ee;
}
.catalogo-opcoes-titulo {
    flex:0 0 auto;
    color:#314137;
    font-size:13px;
    font-weight:700;
}
.catalogo-opcoes > div {
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
}
.catalogo-opcoes > div label {
    display:inline-flex;
    align-items:center;
    gap:6px;
    min-height:34px;
    margin:0;
    padding:6px 10px;
    border:1px solid #d8e1da;
    border-radius:999px;
    color:#314137;
    background:#f8fbf9;
    font-size:12px;
    font-weight:700;
    cursor:pointer;
}
.catalogo-opcoes > div label.is-active,
.catalogo-opcoes > div label:has(input:checked) {
    border-color:#218838;
    color:#176d2a;
    background:#eaf6ed;
}
.catalogo-opcoes input {
    width:auto;
    height:auto;
    margin:0;
    accent-color:#218838;
}
.catalogo-acoes {
    display:flex;
    align-self:end;
    gap:8px;
}
.catalogo-btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:46px;
    padding:0 18px;
    border-radius:6px;
    border:1px solid #d8e1da;
    font-weight:700;
    text-decoration:none !important;
    cursor:pointer;
    white-space:nowrap;
    gap:7px;
}
.catalogo-btn-primary { background:#218838; border-color:#218838; color:#fff !important; }
.catalogo-btn-primary:hover { background:#28a745; border-color:#28a745; }
.catalogo-btn-light { background:#f7faf8; color:#304138 !important; }
.catalogo-btn-light:hover { border-color:#b9c9bd; background:#eef4f0; }
.catalogo-chips {
    display:flex;
    gap:10px;
    overflow-x:auto;
    padding:18px 0 6px;
    scrollbar-width:thin;
}
.catalogo-chips a {
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:38px;
    padding:8px 13px;
    border:1px solid #dce6df;
    border-radius:999px;
    color:#33443a;
    background:#fff;
    font-weight:700;
    white-space:nowrap;
    text-decoration:none !important;
}
.catalogo-chips a.active,
.catalogo-chips a:hover {
    color:#fff;
    border-color:#218838;
    background:#218838;
}
.catalogo-barra {
    display:flex;
    justify-content:space-between;
    gap:16px;
    align-items:center;
    margin:22px 0;
    color:#5b665e;
}
.catalogo-barra > div { color:#314137; font-weight:700; }
.catalogo-link-todos { color:#218838; font-weight:700; text-decoration:none; }
.catalogo-link-todos:hover { color:#176d2a; text-decoration:underline; }
.catalogo-grid {
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:18px;
}
.catalogo-card {
    display:flex;
    flex-direction:column;
    min-height:100%;
    border:1px solid #e1e8e3;
    border-radius:8px;
    background:#fff;
    overflow:hidden;
    box-shadow:0 10px 28px rgba(42, 64, 47, .07);
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.catalogo-card:hover {
    transform:translateY(-3px);
    border-color:#b9d4bf;
    box-shadow:0 16px 38px rgba(42, 64, 47, .12);
}
.catalogo-card-img {
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    aspect-ratio:1 / 1;
    background:#f7f8f7;
}
.catalogo-card-img picture { display:block; width:100%; height:100%; }
.catalogo-card-img img {
    width:100%;
    height:100%;
    object-fit:contain;
    padding:16px;
}
.catalogo-selo {
    position:absolute;
    top:12px;
    left:12px;
    z-index:2;
    padding:6px 10px;
    border-radius:999px;
    color:#fff;
    background:#d92727;
    font-size:12px;
    font-weight:800;
}
.catalogo-selo-top { background:#26352b; }
.catalogo-selo-personal { background:#218838; }
.catalogo-card-body {
    display:flex;
    flex:1;
    flex-direction:column;
    padding:16px;
}
.catalogo-card-meta {
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    min-height:25px;
    margin-bottom:9px;
}
.catalogo-card-meta span {
    display:inline-flex;
    align-items:center;
    min-height:24px;
    padding:4px 8px;
    border-radius:999px;
    color:#4a5c50;
    background:#eef3ef;
    font-size:11px;
    font-weight:700;
}
.catalogo-card h3 {
    margin:0 0 8px;
    min-height:50px;
    font-size:17px;
    line-height:1.35;
}
.catalogo-card h3 a { color:#243229; text-decoration:none !important; }
.catalogo-card h3 a:hover { color:#218838; }
.catalogo-card p {
    min-height:45px;
    color:#657169;
    font-size:13px;
    line-height:1.5;
}
.catalogo-precos {
    display:grid;
    gap:2px;
    margin-top:auto;
    padding-top:12px;
}
.catalogo-preco-antigo {
    color:#8a928c;
    font-size:13px;
    text-decoration:line-through;
}
.catalogo-precos strong {
    color:#218838;
    font-size:22px;
    line-height:1.2;
}
.catalogo-comprar {
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    margin-top:14px;
    border-radius:6px;
    color:#fff !important;
    background:#26352b;
    font-weight:800;
    text-decoration:none !important;
}
.catalogo-comprar:hover { background:#218838; }
.catalogo-vazio {
    padding:46px 22px;
    border:1px dashed #cddad0;
    border-radius:8px;
    background:#fff;
    text-align:center;
}
.catalogo-vazio h3 { margin-bottom:8px; color:#26352b; }
.catalogo-vazio p { margin-bottom:18px; color:#657169; }
.catalogo-paginacao {
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:8px;
    margin-top:34px;
}
.catalogo-paginacao a {
    display:grid;
    place-items:center;
    min-width:42px;
    height:42px;
    padding:0 13px;
    border:1px solid #dce6df;
    border-radius:6px;
    color:#304138;
    background:#fff;
    font-weight:700;
    text-decoration:none !important;
}
.catalogo-paginacao a.active,
.catalogo-paginacao a:hover {
    color:#fff;
    border-color:#218838;
    background:#218838;
}
@media (max-width:1199px) {
    .catalogo-filtros-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
    .catalogo-campo-busca { grid-column:1 / -1; }
    .catalogo-acoes { display:grid; grid-template-columns:1fr 1fr; }
    .catalogo-grid { grid-template-columns:repeat(3, minmax(0, 1fr)); }
}
@media (max-width:767px) {
    .catalogo-geral { padding:38px 0 70px; }
    .catalogo-topo h2 { font-size:27px; }
    .catalogo-filtros { padding:14px; }
    .catalogo-filtros-grid { grid-template-columns:1fr; }
    .catalogo-campo-busca { grid-column:auto; }
    .catalogo-opcoes { align-items:flex-start; gap:9px; }
    .catalogo-opcoes-titulo { flex-basis:100%; }
    .catalogo-acoes { display:grid; grid-template-columns:1fr 1fr; }
    .catalogo-barra { display:block; }
    .catalogo-link-todos { display:inline-block; margin-top:8px; }
    .catalogo-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; }
    .catalogo-card-body { padding:13px; }
    .catalogo-card h3 { min-height:auto; font-size:15px; }
    .catalogo-card p { display:none; }
    .catalogo-precos strong { font-size:19px; }
}
@media (max-width:420px) {
    .catalogo-grid { grid-template-columns:1fr; }
}
