/* ==========================================================================
   CATÁLOGO DE ARMAS E FICHAS
   Placas em marfim com a foto do catálogo (multiply apaga o fundo branco).
   O botão de WhatsApp ocupa o lugar do preço.
   ========================================================================== */
.gun[hidden], .cat-group[hidden], .cat-empty[hidden] { display: none !important; }
.btn-sm { padding: .85rem 1.1rem; font-size: 1.02rem; letter-spacing: .08em; }
.btn .i-wa { width: 20px; height: 20px; flex: none; }
.lb-ficha { align-self: flex-start; }

/* ---------- Filtros ---------- */
.cat-tools { display: grid; gap: 1.1rem; margin-bottom: 1.6rem; padding-bottom: 1.8rem; border-bottom: 1px solid var(--line); }
.cat-search { display: block; max-width: 560px; }
.cat-search input { width: 100%; background: transparent; color: var(--ivory); border: 0; border-bottom: 1px solid rgba(236, 230, 215, .35); border-radius: 0; padding: .8rem 0; font: inherit; font-size: 1.1rem; transition: border-color .3s; }
.cat-search input::placeholder { color: #7d786c; }
.cat-search input:focus { outline: 0; border-color: var(--brass-hi); }
.chip-row { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.chip-label { font: 700 .76rem/1 var(--f-body); letter-spacing: .16em; text-transform: uppercase; color: var(--brass); min-width: 5.2rem; }
.chip { padding: .5rem 1rem; border: 1px solid var(--line); border-radius: 999px; font-size: .9rem; line-height: 1.2; color: var(--steel); transition: border-color .25s, color .25s, background .25s; }
.chip small { font-size: .78rem; opacity: .7; margin-left: .25rem; }
.chip:hover { border-color: var(--brass); color: var(--ivory); }
.chip.is-on { background: var(--brass); border-color: var(--brass); color: #0a0804; font-weight: 700; }
.cat-count { color: var(--steel); font-size: .95rem; margin-bottom: .4rem; }
.cat-empty { padding: 3rem 0; display: grid; gap: 1.2rem; justify-items: start; }
.cat-empty p { color: var(--steel); }

/* ---------- Grupos e cartões ---------- */
.cat-group { margin-top: clamp(2.4rem, 5vw, 4rem); }
.cat-group-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding-bottom: .9rem; margin-bottom: 1.5rem; border-bottom: 1px solid var(--line); }
.cat-group-head h3 { font-size: clamp(1.7rem, 3vw, 2.5rem); }
.cat-group-head h3 span { color: var(--brass); margin-left: .35rem; }
.cat-group-head p { color: var(--steel); font-size: .9rem; }
.cat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 1.3rem; }

.gun { position: relative; display: flex; flex-direction: column; background: var(--coal); border: 1px solid var(--line); transition: border-color .35s, transform .5s var(--ease), box-shadow .5s; }
.gun:hover { border-color: rgba(201, 162, 74, .65); transform: translateY(-5px); box-shadow: 0 22px 44px rgba(0, 0, 0, .55); }
.gun-plate { position: relative; display: block; aspect-ratio: 4 / 3; background: var(--ivory); overflow: hidden; }
.gun-plate img { position: absolute; inset: 1.1rem; width: calc(100% - 2.2rem); height: calc(100% - 2.2rem); object-fit: contain; mix-blend-mode: multiply; transition: transform .7s var(--ease); }
.gun:hover .gun-plate img { transform: scale(1.05); }
.gun-flag { position: absolute; top: .75rem; left: .75rem; z-index: 2; padding: .12rem .55rem; background: var(--ink); color: var(--brass-hi); font: 700 .7rem/1.5 var(--f-body); letter-spacing: .1em; text-transform: uppercase; }
.gun-body { display: flex; flex-direction: column; gap: .5rem; padding: 1.05rem 1.15rem 1.2rem; flex: 1; }
.gun-eyebrow { font: 700 .72rem/1.2 var(--f-body); letter-spacing: .15em; text-transform: uppercase; color: var(--brass); }
.gun h3 { font-size: clamp(1.3rem, 1.6vw, 1.5rem); line-height: 1.03; }
.gun h3 a::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.gun-facts { font-size: .87rem; line-height: 1.45; color: var(--steel); }
.gun-cta { margin-top: auto; padding-top: .9rem; position: relative; z-index: 2; display: grid; gap: .5rem; }
.gun-cta .gun-slot { font: 700 .7rem/1 var(--f-body); letter-spacing: .16em; text-transform: uppercase; color: var(--steel); }
.gun-cta .btn { width: 100%; }

/* ---------- Ficha da arma ---------- */
.gp { padding-top: calc(var(--nav-h) + clamp(1.4rem, 3vw, 2.4rem)); padding-bottom: clamp(2.5rem, 6vw, 5rem); position: relative; isolation: isolate; }
.gp::before { content: ''; position: absolute; inset: 0 0 auto 0; height: 78%; z-index: -1; background: radial-gradient(60% 80% at 20% 30%, rgba(201, 162, 74, .13), transparent 65%); }
.crumbs { display: flex; flex-wrap: wrap; gap: .45rem; font-size: .85rem; color: var(--steel); margin-bottom: clamp(1.4rem, 3vw, 2.2rem); }
.crumbs a { transition: color .25s; }
.crumbs a:hover { color: var(--brass-hi); }
.crumbs [aria-current] { color: var(--ivory); }
.gp-grid { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.gp-gallery { position: sticky; top: calc(var(--nav-h) + 1.2rem); min-width: 0; }
.gp-stage { margin: 0; display: grid; place-items: center; min-height: clamp(260px, 38vw, 500px); padding: clamp(1rem, 3vw, 2.2rem); background: var(--ivory); outline: 1px solid rgba(201, 162, 74, .55); outline-offset: 8px; }
.gp-stage img { width: min(100%, calc(var(--nw, 600) * 2.2px)); height: clamp(220px, 34vw, 440px); object-fit: contain; mix-blend-mode: multiply; }
.gp-cap { min-height: 1.5em; margin-top: 1.4rem; font-size: .93rem; color: var(--ivory); }
.gp-thumbs { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .9rem; }
.gp-thumbs button { width: 92px; height: 70px; padding: 6px; display: grid; place-items: center; background: var(--ivory); outline: 2px solid transparent; outline-offset: 2px; transition: outline-color .25s, transform .3s var(--ease); }
.gp-thumbs button:hover { transform: translateY(-2px); }
.gp-thumbs button.is-on { outline-color: var(--brass); }
.gp-thumbs img { width: auto; height: auto; max-width: 100%; max-height: 100%; mix-blend-mode: multiply; }

.gp-info { min-width: 0; }
.gp-eyebrow { font: 700 .8rem/1.2 var(--f-body); letter-spacing: .18em; text-transform: uppercase; color: var(--brass); margin-bottom: .9rem; }
.gp-info h1 { font-size: clamp(2.3rem, 4.6vw, 4.2rem); line-height: .94; margin-bottom: 1.2rem; }
.gp-tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.6rem; }
.tag { display: inline-block; padding: .28rem .75rem; border: 1px solid var(--line); font: 600 .76rem/1.3 var(--f-body); letter-spacing: .08em; text-transform: uppercase; color: var(--steel); }
.tag-brass { background: var(--brass); border-color: var(--brass); color: #000; font-weight: 700; }
.gp-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.6rem; border-top: 1px solid var(--line); }
.gp-facts > div { padding: .85rem 0; border-bottom: 1px solid var(--line); min-width: 0; }
.gp-facts dt { font-size: .8rem; color: var(--steel); letter-spacing: .04em; }
.gp-facts dd { font: 700 1.5rem/1.1 var(--f-display); text-transform: uppercase; letter-spacing: .01em; overflow-wrap: anywhere; }
.gp-buy { margin-top: 1.7rem; padding: clamp(1.2rem, 2.4vw, 1.8rem); border: 1px solid rgba(201, 162, 74, .55); background: linear-gradient(180deg, rgba(201, 162, 74, .1), rgba(201, 162, 74, 0)); display: grid; gap: .85rem; }
.gp-buy-label { font: 700 .76rem/1 var(--f-body); letter-spacing: .18em; text-transform: uppercase; color: var(--brass); }
.gp-buy .btn { width: 100%; padding-block: 1.2rem; font-size: 1.25rem; }
.gp-buy-note { font-size: .88rem; color: var(--steel); }
.gp-legal { margin-top: 1.1rem; font-size: .8rem; color: #7d786c; }

.gp-sec { padding-block: clamp(2.8rem, 6vw, 5rem); border-top: 1px solid var(--line); }
.gp-sec h2 { font-size: clamp(2rem, 4vw, 3.2rem); margin-bottom: clamp(1.4rem, 3vw, 2.2rem); }
.spec { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(2rem, 6vw, 5rem); border-top: 1px solid var(--line); }
.spec > div { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: .3rem 1rem; padding: .85rem 0; border-bottom: 1px solid var(--line); }
.spec dt { color: var(--steel); }
.spec dd { font-weight: 600; overflow-wrap: anywhere; }
.notes { margin-top: 1.8rem; display: grid; gap: .5rem; }
.notes li { position: relative; padding-left: 1.4rem; color: var(--steel); max-width: 70ch; }
.notes li::before { content: ''; position: absolute; left: 0; top: .78em; width: .7rem; height: 1px; background: var(--brass); }

.gp-sec.ivory { border-top: 0; }
.gp-sec.ivory h2 { color: var(--ink); }
.gp-sec h3.sub { font-size: 1.4rem; margin: 2.2rem 0 1rem; color: var(--ink); }
.gp-sec h3.sub:first-of-type { margin-top: 0; }
.vars { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 1rem; }
.var { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: .3rem 1rem; align-items: center; padding: .8rem; background: #f6f1e4; border: 1px solid var(--line-ink); }
.var-img { grid-row: span 2; display: grid; place-items: center; height: 68px; }
.var-img img { max-width: 100%; max-height: 100%; width: auto; height: auto; mix-blend-mode: multiply; }
.var strong { font-size: .98rem; line-height: 1.25; color: var(--ink); }
.var span { font-size: .82rem; color: #4c4536; }
.var-wa { grid-column: 2; justify-self: start; display: inline-flex; align-items: center; gap: .4rem; font-weight: 700; font-size: .85rem; color: var(--ink); border-bottom: 1px solid var(--brass-lo); padding-bottom: 1px; }
.var-wa svg { width: 16px; height: 16px; color: #1f8f4a; }
.var-wa:hover { color: var(--brass-lo); }
.tbl-wrap { overflow-x: auto; border: 1px solid var(--line-ink); background: #f6f1e4; -webkit-overflow-scrolling: touch; }
.cat-table { width: 100%; border-collapse: collapse; min-width: 560px; font-size: .95rem; color: var(--ink); }
.cat-table th { background: var(--ink); color: var(--ivory); font: 700 .82rem/1.25 var(--f-body); letter-spacing: .04em; padding: .8rem 1rem; text-align: left; white-space: nowrap; }
.cat-table td { padding: .75rem 1rem; border-top: 1px solid var(--line-ink); vertical-align: middle; }
.cat-table td + td { border-left: 1px solid var(--line-ink); }
.cat-table td.cod { font-variant-numeric: tabular-nums; white-space: nowrap; }
.cat-table td.act { white-space: nowrap; }
.cat-table .var-wa { font-size: .82rem; }
.tbl-hint { display: none; margin-top: .6rem; font-size: .8rem; color: #4c4536; }

@media (max-width: 900px) {
  .gp-grid { grid-template-columns: 1fr; }
  .gp-gallery { position: static; }
  .gp-stage { outline-offset: 6px; margin-inline: 6px; }
  .spec { grid-template-columns: 1fr; }
  .tbl-hint { display: block; }
}
@media (max-width: 640px) {
  .cat-tools { gap: .7rem; }
  .chip-row { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(var(--gutter) * -1); padding: .15rem var(--gutter); scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .chip-row::-webkit-scrollbar { display: none; }
  .chip-label, .chip { flex: none; }
  .chip-label { min-width: 0; margin-right: .3rem; }
  .cat-grid { grid-template-columns: 1fr; }
  .gp-facts dd { font-size: 1.3rem; }
  .gp-thumbs button { width: 78px; height: 60px; }
}
