/* Exclusivo da página interna Produtos; não usa a cor configurável da Home. */
.catalog-page { padding:32px 0 56px; background:#F7F6F2; color:#171717; }
.catalog-page__inner { width:calc(100% - 32px); max-width:1320px; margin-inline:auto; }
.catalog-intro { max-width:900px; margin-bottom:28px; }
.catalog-intro__eyebrow { display:flex; align-items:center; gap:10px; margin:0 0 12px; color:var(--action-primary); font-size:.75rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.catalog-intro__eyebrow::before { content:""; width:28px; height:2px; flex-shrink:0; background:currentColor; }
.catalog-intro h1 { margin:0 0 16px; font-size:clamp(2rem, 3.2vw, 2.875rem); font-weight:700; line-height:1.1; letter-spacing:-.025em; }
.catalog-intro__text { max-width:660px; margin:0; color:#626761; font-size:1rem; line-height:1.6; }
.catalog-toolbar { margin-bottom:24px; padding-bottom:20px; border-bottom:1px solid #e0e2d9; }
.catalog-tools { display:grid; grid-template-columns:minmax(0, 1fr); gap:16px 24px; align-items:end; }
.catalog-tools > * { min-width:0; }
.catalog-tools label { display:block; margin-bottom:8px; color:#333b32; font-size:.8rem; font-weight:600; }
.catalog-search__field { position:relative; }
.catalog-search__field svg { position:absolute; top:50%; left:16px; transform:translateY(-50%); color:#63705e; pointer-events:none; }
.catalog-tools input, .catalog-tools select { width:100%; min-width:0; height:44px; border:1px solid #d9ded3; border-radius:10px; background:#fff; color:#171717; font-size:.9375rem; transition:border-color .28s ease, box-shadow .28s ease; }
.catalog-tools input { padding:8px 14px 8px 46px; }
.catalog-tools select { padding:8px 36px 8px 14px; }
.catalog-tools input::placeholder { color:#777e73; opacity:1; }
.catalog-tools input:disabled, .catalog-tools select:disabled { opacity:.7; }
.catalog-tools input:hover:not(:disabled), .catalog-tools select:hover:not(:disabled) { border-color:#aeb9a5; }
.catalog-count { margin:12px 0 0; color:#626b5e; font-size:.875rem; }
.catalog-filters { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:28px; }
.catalog-filter { gap:8px; min-height:var(--button-height, 40px); max-width:100%; padding:8px 18px; border:1px solid #dddfd6; border-radius:10px; background:#fff; color:#171717; font-size:.875rem; font-weight:600; transition:transform .28s ease, box-shadow .28s ease, background-color .28s ease, color .28s ease, border-color .28s ease; }
.catalog-filter__label { min-width:0; }
.catalog-filter:disabled { opacity:1; cursor:default; }
.catalog-icon { display:block; flex-shrink:0; width:22px; height:22px; }
.catalog-filter > .catalog-icon { color:#173A24; }
.catalog-filter.is-active { border-color:var(--action-primary); background:var(--action-primary); color:#fff; box-shadow:0 4px 12px rgb(23 58 36 / .15); }
.catalog-filter.is-active > .catalog-icon { color:#fff; }
.catalog-icon--custom { display:flex; align-items:center; justify-content:center; padding:1px; border-radius:4px; background:#fff; }
.catalog-icon--custom img { width:20px; height:20px; object-fit:contain; }
.catalog-page :focus-visible { outline:3px solid var(--action-primary); outline-offset:4px; }
.catalog-grid { display:grid; grid-template-columns:minmax(0, 1fr); gap:22px; row-gap:32px; align-items:stretch; }
.catalog-card { display:flex; flex-direction:column; min-width:0; overflow:hidden; border:0; border-radius:14px; background:#fff; box-shadow:0 5px 20px rgb(23 23 23 / .065); transition:transform .3s ease, box-shadow .3s ease; }
.catalog-media { position:relative; flex-shrink:0; min-width:0; overflow:hidden; border-radius:14px 14px 0 0; background:#edece7; }
.catalog-media__viewport { aspect-ratio:4 / 3; touch-action:pan-y pinch-zoom; }
.catalog-slide { width:100%; height:100%; margin:0; }
.catalog-slide img { width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.catalog-placeholder { display:flex; width:100%; height:100%; flex-direction:column; align-items:center; justify-content:center; gap:12px; color:#63705e; font-size:.8rem; }
.catalog-placeholder .catalog-icon { width:48px; height:48px; opacity:.65; }
.catalog-gallery-arrow { position:absolute; top:50%; z-index:1; width:40px; height:40px; min-height:40px; padding:0; transform:translateY(-50%); border:0; border-radius:50%; background:#fff; color:#173A24; box-shadow:0 3px 10px rgb(0 0 0 / .12); transition:opacity .28s ease, box-shadow .28s ease, color .28s ease; }
.catalog-gallery-arrow span { font-family:Arial, sans-serif; font-size:1.75rem; line-height:1; }
.catalog-gallery-arrow:hover { color:var(--action-primary); box-shadow:0 4px 14px rgb(0 0 0 / .16); }
.catalog-gallery-arrow--prev { left:8px; }
.catalog-gallery-arrow--next { right:8px; }
.catalog-gallery-dots { position:absolute; inset:auto 0 0; display:flex; justify-content:center; padding-inline:8px; background:linear-gradient(transparent, rgb(0 0 0 / .25)); }
.catalog-gallery-dots button { width:36px; min-height:36px; padding:0; border:0; background:none; }
.catalog-gallery-dots button span { width:7px; height:7px; border-radius:50%; background:rgb(255 255 255 / .65); box-shadow:0 1px 3px rgb(0 0 0 / .3); }
.catalog-gallery-dots button[aria-pressed="true"] span { background:var(--action-primary); box-shadow:0 0 0 2px #fff; }
.catalog-card__body { display:flex; flex:1; flex-direction:column; align-items:flex-start; min-width:0; padding:20px; }
.catalog-card__category { margin:0 0 8px; color:#173A24; font-size:.7rem; font-weight:700; letter-spacing:.08em; line-height:1.5; text-transform:uppercase; }
.catalog-card h2 { display:-webkit-box; margin:0 0 10px; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; line-clamp:2; color:#171717; font-size:1.25rem; font-weight:700; line-height:1.3; }
.catalog-card h2 a { text-decoration:none; }
.catalog-card h2 a:hover { color:var(--action-primary); }
.catalog-card__price { margin:0 0 10px; color:#D90416; font-size:1.3rem; font-weight:700; line-height:1.3; }
.catalog-card__description { display:-webkit-box; margin:0 0 16px; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:3; line-clamp:3; color:#666A67; font-size:.9rem; line-height:1.6; }
.catalog-card__button { display:inline-flex; align-items:center; justify-content:center; gap:10px; width:100%; max-width:100%; min-height:var(--button-height, 40px); margin-top:auto; padding:8px 18px; border-radius:8px; background:var(--action-primary); color:#fff; text-align:center; text-decoration:none; font-size:.875rem; font-weight:600; line-height:1.35; transition:background-color .3s ease, box-shadow .3s ease, transform .3s ease; }
.catalog-card__button:hover { background:var(--action-primary-hover); box-shadow:0 5px 12px rgb(23 58 36 / .16); }
.catalog-empty { padding:32px 20px; border-radius:14px; background:#fff; color:#666A67; text-align:center; }
.catalog-empty h2 { margin:0 0 12px; color:#173A24; font-size:1.4rem; }
.catalog-empty p { margin:0 0 20px; }
.catalog-empty__reset { min-height:var(--button-height, 40px); padding:8px 18px; border:1px solid #173A24; border-radius:10px; background:#fff; color:#173A24; font-size:.875rem; font-weight:600; }
.catalog-empty__reset:hover { background:#f0f3ed; }
@media (max-width:599px) {
    .catalog-filters { flex-wrap:nowrap; overflow-x:auto; padding:8px 8px 14px; margin-inline:-8px; overscroll-behavior-x:contain; }
    .catalog-filter { flex:0 0 auto; max-width:calc(100vw - 48px); white-space:nowrap; }
    .catalog-filter__label { overflow:hidden; text-overflow:ellipsis; }
}
@media (min-width:600px) {
    .catalog-page { padding-top:40px; }
    .catalog-page__inner { width:calc(100% - 64px); }
    .catalog-tools { grid-template-columns:minmax(0, 1fr) minmax(200px, 260px); }
    .catalog-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (min-width:960px) {
    .catalog-grid { grid-template-columns:repeat(3, minmax(0, 1fr)); }
}
@media (min-width:1200px) {
    .catalog-page { padding-block:48px 64px; }
    .catalog-intro { margin-bottom:32px; }
    .catalog-grid { grid-template-columns:repeat(4, minmax(0, 1fr)); }
}
@media (hover:hover) and (pointer:fine) {
    .catalog-filter:not(:disabled):hover { transform:translateY(-2px); border-color:var(--action-primary); box-shadow:0 4px 12px rgb(23 23 23 / .06); }
    .catalog-card:hover { transform:translateY(-4px); box-shadow:0 14px 32px rgb(23 23 23 / .13); }
    .catalog-card:hover .catalog-slide img { transform:scale(1.025); }
    .catalog-card__button:hover { transform:translateY(-1px); }
    .catalog-gallery-arrow { opacity:0; pointer-events:none; }
    .catalog-media:hover .catalog-gallery-arrow, .catalog-media:focus-within .catalog-gallery-arrow { opacity:1; pointer-events:auto; }
}
@media (prefers-reduced-motion:reduce) {
    .catalog-page *, .catalog-page *::before, .catalog-page *::after { transition:none; }
    .catalog-filter:not(:disabled):hover, .catalog-card:hover, .catalog-card:hover .catalog-slide img, .catalog-card__button:hover { transform:none; }
}
