.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:28px}
@media(max-width:480px){.grid{grid-template-columns:repeat(2,1fr);gap:14px}}
.p-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:0;display:flex;flex-direction:column;gap:0;transition:all 0.22s ease;position:relative;overflow:hidden}
.p-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--blue-border)}
.p-card__body{padding:18px 20px;display:flex;flex-direction:column;gap:8px;flex:1}
.p-card__price-block{margin-top:auto;padding-top:10px;}
.p-price-dist{font-size:20px;font-weight:700;color:var(--text-primary);line-height:1;letter-spacing:-0.02em}
.p-price-compare{font-size:12px;color:var(--gray-400);text-decoration:line-through;font-weight:500}
.p-price-label{font-size:10px;color:var(--gray-500);text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.p-price-economy{font-size:12px;font-weight:700;color:#2d8a4e;background:#edfaf2;border-radius:6px;padding:3px 8px;display:inline-flex;align-items:center;gap:4px;align-self:flex-start;margin-top:2px}
.p-card__meta{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.p-card__chip{display:inline-flex;align-items:center;gap:4px;border-radius:999px;background:var(--gray-100);color:var(--gray-600);padding:4px 9px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.p-card__chip--pack{background:#eef6ff;color:var(--blue);border:1px solid #dbe7ff}
.p-card-badges{position:absolute;top:10px;left:10px;display:flex;flex-direction:column;gap:4px;z-index:2}
.p-badge{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:10px}
.p-badge-new{background:transparent;color:var(--blue);border:1px solid var(--blue-mid)}
.p-badge-promo{background:transparent;color:#B45309;border:1px solid #D97706}
.skeleton{background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--radius-sm)}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.skeleton-img{width:100%;height:130px;border-radius:var(--radius)}
.skeleton-line{height:12px;margin-bottom:6px}
.skeleton-line.w80{width:80%}.skeleton-line.w60{width:60%}.skeleton-line.w40{width:40%}
.p-img{width:100%;aspect-ratio:5/4;background:var(--bg-app);border-radius:16px 16px 0 0;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;cursor:pointer;padding:12px}
.p-img img{width:100%;height:100%;object-fit:contain}
.p-img .ph{font-size:52px;color:var(--gray-300)}
.p-code{font-size:11px;color:var(--gray-400);font-weight:600;letter-spacing:.04em}
.p-name{font-size:14px;font-weight:600;color:var(--gray-900);line-height:1.4;flex:1;cursor:pointer}
.p-name:hover{color:var(--blue)}
.p-pack{font-size:11px;color:var(--gray-500);background:var(--gray-100);border-radius:var(--radius-sm);padding:2px 7px;display:inline-block;margin-top:2px;font-weight:500}
.p-unavail{font-size:11px;color:var(--gray-400);font-style:italic}
.p-stock-low{font-size:10px;color:#B45309;font-weight:600;background:transparent;display:inline-flex;align-items:center;gap:3px}
.qty-row{display:flex;align-items:center;gap:8px;padding:0 20px 18px}
.qty-row input{width:58px;text-align:center;padding:9px 4px;font-size:13px;font-weight:700;border-radius:10px}
.btn-add{flex:1;padding:12px 6px;background:var(--blue);color:var(--white);border:none;border-radius:10px;font-size:13px;cursor:pointer;font-weight:600;transition:var(--transition);min-height:42px}
.btn-add:hover{background:var(--blue-dark)}
.btn-add.added{background:#2d7a45;color:var(--white);border:none}
.btn-add:disabled{background:var(--gray-100);color:var(--gray-400);border:1px solid var(--gray-200);cursor:not-allowed}
/* card compacto (home + catálogo default) */
.p-card-compact{flex:0 0 190px;background:#fff;border:1px solid var(--border);border-radius:16px;display:flex;flex-direction:column;overflow:hidden;transition:box-shadow .22s,transform .22s}
.p-card-compact:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.p-card-compact-img{width:100%;aspect-ratio:1/1;background:var(--bg-app);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:8px;overflow:hidden}
.p-card-compact-img img{width:100%;height:100%;object-fit:contain}
.p-card-compact-img .ph{font-size:40px;color:var(--gray-300)}
.p-card-compact-body{padding:12px 14px;flex:1}
.p-card-compact-name{font-size:13px;font-weight:600;color:var(--text-primary);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer;margin-bottom:6px}
.p-card-compact-name:hover{color:var(--blue)}
.p-card-compact-price{font-size:15px;font-weight:700;color:var(--text-primary);letter-spacing:-0.01em}
.btn-add-compact{margin:0 14px 14px;padding:10px;background:var(--blue);color:#fff;border:none;border-radius:10px;font-size:12px;font-weight:600;cursor:pointer;transition:var(--transition);width:calc(100% - 28px);text-align:center}
.btn-add-compact.added{background:#2d7a45}
.btn-add-compact:disabled{background:var(--gray-100);color:var(--gray-400);cursor:not-allowed}
/* PDP */
.lp-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
@media(max-width:640px){.lp-grid{grid-template-columns:1fr}}
.pdp-shell{display:flex;flex-direction:column;gap:20px}
.pdp-hero{display:grid;grid-template-columns:1fr 1.1fr;gap:20px;align-items:start}
.pdp-gallery{background:#fff;border:1px solid var(--border);border-radius:12px;padding:0;overflow:hidden;position:sticky;top:80px}
.pdp-gallery img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}
.pdp-gallery-footer{padding:12px 14px;border-top:1px solid rgba(56,83,132,.08);display:flex;justify-content:center}
.pdp-panel{display:flex;flex-direction:column;gap:14px}
.pdp-kicker{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--text-secondary)}
.pdp-title{font-size:clamp(20px,3.2vw,28px);line-height:1.15;font-weight:700;color:var(--text-primary)}
.pdp-copy{font-size:13px;color:var(--gray-600);line-height:1.6}
.pdp-pills{display:flex;gap:7px;flex-wrap:wrap}
.pdp-pill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:6px 11px;background:#f4f8ff;border:1px solid rgba(56,83,132,.12);font-size:11px;font-weight:700;color:var(--blue-dark)}
/* price hero block */
.pdp-price-hero{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:8px}
.pdp-price-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.pdp-price-final{font-size:32px;font-weight:700;color:var(--text-primary);letter-spacing:-0.02em;line-height:1}
.pdp-price-from{font-size:14px;color:var(--gray-400);text-decoration:line-through;font-weight:500}
.pdp-economy-badge{background:var(--green-bg);border:1px solid #c5e0a0;color:var(--green);font-size:13px;font-weight:700;padding:5px 12px;border-radius:8px;display:inline-flex;align-items:center;gap:5px}
.pdp-price-label{font-size:11px;color:var(--gray-500);font-weight:600}
/* payment table */
.pdp-pay-table{background:#fff;border:1px solid rgba(56,83,132,.10);border-radius:16px;overflow:hidden;box-shadow:0 4px 14px rgba(56,83,132,.06)}
.pdp-pay-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:var(--gray-500);padding:10px 14px;border-bottom:1px solid rgba(56,83,132,.08);background:var(--gray-50)}
.pdp-pay-row{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid rgba(56,83,132,.06)}
.pdp-pay-row:last-child{border-bottom:none}
.pdp-pay-row-name{font-size:13px;font-weight:700;color:var(--gray-800)}
.pdp-pay-row-sub{font-size:11px;color:var(--gray-400);margin-top:1px}
.pdp-pay-row-price{font-size:16px;font-weight:700}
.pdp-pay-row-pct{font-size:10px;font-weight:700;margin-top:1px}
/* actions */
.pdp-actions{display:flex;gap:10px;align-items:stretch}
.pdp-actions input{width:72px;text-align:center;border-radius:12px;font-size:15px;font-weight:700}
.pdp-btn-buy{flex:1;padding:14px;background:var(--blue);color:#fff;border:none;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;transition:var(--transition);letter-spacing:.01em}
.pdp-btn-buy:hover{background:var(--blue-dark)}
.pdp-btn-buy:disabled{background:var(--gray-200);color:var(--gray-400);cursor:not-allowed}
/* trust seals */
.pdp-trust{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pdp-trust-item{background:#fff;border:1px solid rgba(56,83,132,.10);border-radius:14px;padding:12px 10px;display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;box-shadow:0 4px 10px rgba(56,83,132,.05)}
.pdp-trust-icon{font-size:22px}
.pdp-trust-label{font-size:11px;font-weight:700;color:var(--blue-dark)}
.pdp-trust-sub{font-size:10px;color:var(--gray-500);line-height:1.4}
/* benefits */
.pdp-benefits{background:#fff;border:1px solid var(--border);border-radius:12px;padding:18px}
.pdp-benefits h3{font-size:13px;font-weight:800;color:var(--blue-dark);margin-bottom:12px;display:flex;align-items:center;gap:6px}
.pdp-benefit-list{display:flex;flex-direction:column;gap:8px}
.pdp-benefit-item{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--gray-700);line-height:1.4}
.pdp-benefit-dot{width:6px;height:6px;border-radius:50%;background:var(--blue);flex-shrink:0;margin-top:5px}
@media(max-width:980px){.pdp-hero{grid-template-columns:1fr}.pdp-gallery{position:static}.pdp-trust{grid-template-columns:repeat(3,1fr)}}
@media(max-width:480px){.pdp-trust{grid-template-columns:repeat(2,1fr)}.pdp-price-final{font-size:28px}}
.lp-img-main{border-radius:var(--radius-md);overflow:hidden;background:var(--gray-100)}
.lp-img-main img{width:100%;aspect-ratio:1;object-fit:contain;padding:16px}
.lp-section{background:var(--white);border:1.5px solid var(--gray-200);border-radius:var(--radius-md);padding:20px;margin-bottom:14px}
.lp-section h3{font-size:14px;font-weight:700;margin-bottom:12px;color:var(--gray-900)}
.lp-add-section{background:var(--blue-light);border:1.5px solid var(--blue-border);border-radius:var(--radius-md);padding:20px;margin-top:0}
/* LP loading slot */
.lp-s3-loading{text-align:center;padding:40px 20px;color:var(--gray-400)}
.lp-s3-loading-spinner{display:inline-block;width:28px;height:28px;border:3px solid var(--gray-200);border-top-color:var(--blue);border-radius:50%;animation:spin 0.8s linear infinite;margin-bottom:12px}
@keyframes spin{to{transform:rotate(360deg)}}
.lp-s3-error{background:var(--yellow-bg);border:1px solid var(--yellow-border);border-radius:var(--radius);padding:14px 18px;font-size:13px;color:#7a5c00;margin:16px 0}
/* ══ LP INDISPONÍVEL ══ */
.lp-unavail{background:#fff;border:1px solid var(--border);border-radius:12px;padding:36px 28px;text-align:center;margin:20px 0}
.lp-unavail-icon{font-size:36px;margin-bottom:14px;display:block}
.lp-unavail-title{font-size:16px;font-weight:700;color:var(--gray-700);margin-bottom:8px}
.lp-unavail-desc{font-size:13px;color:var(--gray-400);margin-bottom:20px;line-height:1.5}
/* ══ GALERIA PDP ══ */
.pdp-gallery img{object-fit:contain}
