/* Componentes compartilhados; conteúdo e opções ficam em catalog.js. */
.street-card{margin:0}
#category-links{display:contents}
.cart-open{text-decoration:none}
.product-name-link{text-decoration:none}
.product-name-link:hover{color:var(--red)}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.campaign-banner{margin-top:26px;border-radius:18px;overflow:hidden;background:var(--red);box-shadow:var(--shadow)}
.campaign-banner>a{display:block}
.campaign-banner img{width:100%;height:auto}
.banner-action{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;color:#fff4e1}
.banner-action p{font-size:13px;margin:0}
.banner-action .cta{font-size:12px;min-height:42px;padding:10px 18px;flex-shrink:0}
@media(max-width:620px){.banner-action{align-items:start;padding:14px;gap:10px}.banner-action p{font-size:11px}.banner-action .cta{font-size:10px;padding:8px 12px;min-height:38px}}
[hidden]{display:none!important}
input{font:inherit}
input:focus-visible{outline:3px solid #f2b938;outline-offset:3px}
.product{display:flex;flex-direction:column}
.product-image.preview{display:block;width:100%;padding:0;border:0;background:#eeece8;color:var(--ink);text-align:left;flex-shrink:0}
.product-image img{object-fit:contain}
.product-badge{max-width:calc(100% - 28px);font-size:9px;white-space:normal}
.view-product{position:absolute;bottom:12px;right:12px;background:#fffdf5e8;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:750}
.product-body{display:flex;flex-direction:column;flex:1}
.product h3{margin:6px 0 0}
.product-title-row{display:block}
.price{margin-top:10px}
.product-desc{flex:1}
.color-options{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.color-option{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:8px;background:transparent;padding:7px 10px;font-size:11px}
.color-option span{width:15px;height:15px;border:1px solid #0002;border-radius:50%;background:var(--swatch)}
.color-option[aria-pressed=true]{border-color:var(--red);box-shadow:0 0 0 1px var(--red)}
.kit{display:block;min-width:0;padding:18px}
.kit-art.kit-collage{height:160px;display:flex;gap:5px;background:#eeece8;overflow:hidden;margin-bottom:15px}
.kit-collage img{flex:1;min-width:0;object-fit:contain;width:0}
.kit h3{margin:8px 0}
.kit-action{margin-top:14px;flex-wrap:wrap;gap:10px}
.kit-original{font-size:11px;color:var(--muted);display:block}
.kit-price{font-size:20px}
.kit-button{font-size:12px;min-height:44px}
#product-detail{width:min(1000px,calc(100% - 28px));padding:20px;max-height:92vh;max-height:92dvh}
.detail-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:12px}
.detail-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:28px;align-items:start}
.detail-photo{position:relative;background:#eeece8;border-radius:12px;overflow:hidden;height:min(58vh,570px)}
.detail-photo>img{width:100%;height:100%;object-fit:contain}
.view-arrow{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:44px;border:1px solid #ddd4c7;border-radius:50%;background:#fffffff0;font-size:27px;line-height:1}
.view-arrow.prev{left:10px}.view-arrow.next{right:10px}
.view-caption{margin:9px 0;font-size:11px;color:var(--muted);text-align:center}
.detail-thumbs{display:flex;gap:8px;flex-wrap:wrap}
.detail-thumb{padding:4px;border:1px solid var(--line);border-radius:8px;background:white;width:calc((100% - 24px)/4);min-width:65px;color:var(--ink)}
.detail-thumb[aria-pressed=true]{border-color:var(--red);box-shadow:0 0 0 1px var(--red)}
.detail-thumb img{width:100%;height:78px;object-fit:contain;background:#eeece8;border-radius:4px}
.detail-thumb span{display:block;font-size:9px;margin:5px 0}
.detail-info h2{font-size:32px;line-height:1.1;letter-spacing:-.04em;margin:14px 0}
.detail-info>p{font-size:13px;color:var(--muted)}
.detail-price{display:block;font-size:28px;margin:25px 0}
.detail-info .variant{font-size:14px;min-height:44px}
.detail-note{border-top:1px solid var(--line);padding-top:18px;margin-top:22px}
.toast{border-radius:12px;width:max-content;max-width:calc(100% - 28px);z-index:100}
@media(max-width:620px){
  .cart-open,.menu{min-width:44px;min-height:44px}
  .filter{min-height:44px;font-size:12px;padding:10px 14px}
  .product h3{font-size:16px;line-height:1.25}
  .product-category{font-size:9px;letter-spacing:.07em}
  .product-desc{font-size:12px;line-height:1.55}
  .variant-label{font-size:12px}
  .variant{font-size:16px;min-height:48px;padding:11px 8px;max-width:100%}
  .product .add,.kit-button{min-height:48px;font-size:13px;padding:12px 8px}
  .price{font-size:18px}
  .banner-action .cta{min-height:44px}
  #nav a{display:flex;align-items:center;min-height:44px}
  .product-image.preview{aspect-ratio:.85}
  .product-badge{font-size:7px;max-width:calc(100% - 16px)}
  .view-product{font-size:9px;right:7px;bottom:7px;padding:5px 8px}
  .product-desc{min-height:0}
  .kit-art.kit-collage{height:150px}
  .kit-price{font-size:18px}
  .kit-action{gap:12px}
  #product-detail{padding:14px}
  .detail-layout{grid-template-columns:1fr;gap:15px}
  .detail-photo{height:45vh;height:45dvh}
  .detail-info h2{font-size:27px;margin-top:8px}
  .detail-price{font-size:24px;margin:18px 0}
  .cart-item{grid-template-columns:1fr;gap:6px}
  .cart-item-price{text-align:left;display:flex;align-items:center;justify-content:space-between;gap:8px}
  .cart-controls{margin-top:0}
  .cart-controls button{width:34px;height:34px}
}
@media(max-width:359px){.products{grid-template-columns:1fr}.product-image.preview{aspect-ratio:1.1}}
