/* Galeria de produtos: grade leve com miniaturas + visualizador em tela cheia */
.gallery-section { padding: 30px 0 50px; }

.pgal { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 10px; }
.pgal-item { display: block; position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 10px; background: #e9e9ee; box-shadow: 0 2px 10px rgba(0,0,0,.12); }
.pgal-item[hidden] { display: none; }
.pgal-item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.pgal-item:hover img, .pgal-item:focus-visible img { transform: scale(1.06); }
.pgal-item:focus-visible { outline: 3px solid #0000cd; outline-offset: 2px; }
.pgal-more { text-align: center; margin-top: 26px; }

@media (max-width: 991px) { .pgal { grid-template-columns: repeat(3, 1fr); gap: 10px; } }
@media (max-width: 575px) { .pgal { grid-template-columns: repeat(2, 1fr); gap: 8px; } }

/* Visualizador */
.plb { position: fixed; inset: 0; z-index: 100000; background: rgba(8,10,16,.94); display: flex; align-items: center; justify-content: center; }
.plb[hidden] { display: none; }
.plb-stage { margin: 0; max-width: 92vw; max-height: 86vh; display: flex; align-items: center; justify-content: center; position: relative; }
.plb-stage img { max-width: 92vw; max-height: 86vh; width: auto; height: auto; border-radius: 6px; box-shadow: 0 10px 50px rgba(0,0,0,.6); opacity: 0; transition: opacity .2s; user-select: none; -webkit-user-drag: none; }
.plb-stage img.is-ready { opacity: 1; }
.plb-spin { position: absolute; width: 38px; height: 38px; border: 4px solid rgba(255,255,255,.25); border-top-color: #fff; border-radius: 50%; animation: plbspin .8s linear infinite; }
.plb-stage img.is-ready + .plb-spin { display: none; }
@keyframes plbspin { to { transform: rotate(360deg); } }
.plb-close, .plb-nav { position: absolute; background: rgba(255,255,255,.12); border: 0; color: #fff; cursor: pointer; border-radius: 50%; width: 46px; height: 46px; font-size: 22px; line-height: 1; display: flex; align-items: center; justify-content: center; transition: background .2s; }
.plb-close:hover, .plb-nav:hover { background: rgba(255,255,255,.25); }
.plb-close { top: 16px; right: 16px; font-size: 30px; }
.plb-nav { top: 50%; transform: translateY(-50%); }
.plb-prev { left: 14px; }
.plb-next { right: 14px; }
.plb-count { position: absolute; bottom: 16px; left: 0; right: 0; text-align: center; color: #fff; font-size: 14px; opacity: .85; }
@media (max-width: 575px) { .plb-nav { width: 40px; height: 40px; } .plb-prev { left: 6px; } .plb-next { right: 6px; } }
body.plb-open { overflow: hidden; }

/* Abas por tipo de peça */
.pgal-tabs { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin: 6px 0 22px; }
.pgal-tab { border: 1px solid rgba(0,0,0,.14); background: #fff; color: #333; padding: 8px 16px; border-radius: 999px; font-size: 14px; font-weight: 600; cursor: pointer; transition: background .15s, color .15s, border-color .15s; }
.pgal-tab small { opacity: .6; font-weight: 500; margin-left: 3px; }
.pgal-tab:hover { border-color: #0000cd; color: #0000cd; }
.pgal-tab.active { background: #0000cd; border-color: #0000cd; color: #fff; }
.pgal-tab:focus-visible { outline: 3px solid rgba(0,0,205,.35); outline-offset: 2px; }
.pgal-cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 26px 10px 8px; background: linear-gradient(transparent, rgba(0,0,0,.72)); color: #fff; font-size: 13px; font-weight: 600; line-height: 1.25; text-align: left; }

/* Informações e WhatsApp no visualizador */
.plb-info { position: absolute; left: 0; right: 0; bottom: 44px; display: flex; gap: 14px; align-items: center; justify-content: center; flex-wrap: wrap; padding: 0 16px; color: #fff; }
.plb-text { display: flex; flex-direction: column; text-align: left; max-width: 60vw; }
.plb-text strong { font-size: 16px; }
.plb-text span { font-size: 13px; opacity: .75; }
.plb-wa { background: #25d366; color: #fff !important; padding: 10px 18px; border-radius: 999px; font-weight: 700; font-size: 14px; text-decoration: none !important; display: inline-flex; gap: 8px; align-items: center; box-shadow: 0 6px 18px rgba(0,0,0,.35); }
.plb-wa:hover { background: #1ebe5b; }
.plb-stage, .plb-stage img { max-height: 70vh; }
@media (max-width: 575px) { .plb-text { max-width: 100%; text-align: center; } .pgal-tabs { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; padding-bottom: 6px; -webkit-overflow-scrolling: touch; } .pgal-tab { flex-shrink: 0; } }
