:root { --bg:#f6f6f6; --card:#fff; --text:#111; --muted:#666; --line:#eaeaea; --btn:#111; --btnText:#fff; }
*{box-sizing:border-box}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}
.container{max-width:1000px;margin:0 auto;padding:16px}
.topbar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.topbar-inner{display:flex;justify-content:space-between;align-items:center;gap:12px}
.brand{font-weight:800;text-decoration:none;color:var(--text)}
.nav a{margin-left:12px;text-decoration:none;color:var(--text)}
.badge{display:inline-block;min-width:22px;padding:2px 8px;border-radius:999px;background:#eee;font-size:12px;text-align:center}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;margin:12px 0;box-shadow:0 6px 18px rgba(0,0,0,.04)}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.grid{grid-template-columns:1fr}}
.h1{font-size:22px;font-weight:800;margin:12px 0}
.muted{color:var(--muted);font-size:13px}
.price{font-size:18px;font-weight:800}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between}
.btn{display:inline-block;background:var(--btn);color:var(--btnText);padding:10px 14px;border-radius:12px;text-decoration:none;border:0;cursor:pointer}
.btn.secondary{background:#fff;color:#111;border:1px solid #111}
.input, select{padding:10px 12px;border-radius:12px;border:1px solid var(--line);width:100%}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:10px;border-bottom:1px solid var(--line);text-align:left}
.footer{padding:20px 0}
.notice{padding:10px 12px;border-radius:12px;background:#fff6d6;border:1px solid #ffe2a3}
.error{padding:10px 12px;border-radius:12px;background:#ffe9e9;border:1px solid #ffc5c5}
.small{font-size:12px}
/* --- HERO / busca --- */
.hero { padding: 18px; }
.hero-row { align-items: center; }
.searchbar { display:flex; gap:10px; align-items:center; min-width: 320px; }
.searchbar .input { flex: 1; min-width: 220px; }

/* --- Cards de produto --- */
.products-grid { align-items: stretch; }

.product-card{
  display:block;
  text-decoration:none;
  color:inherit;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--card);
  overflow:hidden;
  box-shadow:0 6px 18px rgba(0,0,0,.04);
  transition:transform .12s ease, box-shadow .12s ease;
}
.product-card:hover{
  transform: translateY(-2px);
  box-shadow:0 10px 22px rgba(0,0,0,.08);
}

.product-media{
  position:relative;
  width:100%;
  aspect-ratio: 4 / 3;
  background:#fafafa;
  border-bottom:1px solid var(--line);
}
.product-media img{
  width:100%;
  height:100%;
  object-fit:contain;
  padding:10px;
  display:block;
}

.badge{
  position:absolute;
  left:10px;
  top:10px;
  font-size:12px;
  padding:6px 10px;
  border-radius:999px;
  background:#111;
  color:#fff;
  opacity:.92;
}
.badge-ok{ background:#111; }

.product-body{
  padding:12px 12px 14px;
  display:flex;
  flex-direction:column;
  gap:8px;
  min-height: 135px;
}
.product-title{
  font-weight:900;
  line-height:1.2;
  font-size:14px;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height: 34px;
}
.product-sub{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.product-bottom{
  margin-top:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.product-price{
  font-size:16px;
  font-weight:900;
}
.btn.mini{
  padding:8px 10px;
  border-radius:10px;
  font-size:13px;
}

/* --- Paginação --- */
.pager { align-items:center; }
.pager-actions { display:flex; gap:10px; }

/* --- Página do produto --- */
.product-page { padding: 16px; }
.product-layout{
  display:grid;
  grid-template-columns: 420px 1fr;
  gap: 16px;
  align-items:start;
}
@media(max-width:900px){
  .product-layout{ grid-template-columns: 1fr; }
}

.product-photo{
  position:relative;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fafafa;
  overflow:hidden;
}
.product-photo img{
  width:100%;
  height:420px;
  object-fit:contain;
  display:block;
  padding:14px;
}
@media(max-width:900px){
  .product-photo img{ height:320px; }
}

.product-info{ padding: 4px; }
.buybox{
  margin-top:16px;
  border-top:1px solid var(--line);
  padding-top:14px;
}
/* Links dentro do card */
.link-block{ display:block; text-decoration:none; color:inherit; }
.link-title{ text-decoration:none; color:inherit; display:block; }
.link-title:hover{ text-decoration:underline; }

/* Ajuste product-card para não ser <a> mais */
.product-card{
  display:block;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--card);
  overflow:hidden;
  box-shadow:0 6px 18px rgba(0,0,0,.04);
  transition:transform .12s ease, box-shadow .12s ease;
}
.product-card:hover{
  transform: translateY(-2px);
  box-shadow:0 10px 22px rgba(0,0,0,.08);
}

/* Controles de quantidade */
.cart-inline{ margin:0; }
.qty-controls{
  display:flex;
  align-items:center;
  gap:8px;
}
.qty-btn{
  width:36px;
  height:34px;
  border-radius:10px;
  border:1px solid var(--line);
  background:#fff;
  cursor:pointer;
  font-size:16px;
  line-height:1;
}
.qty-btn:hover{ border-color:#bbb; }
.qty-value{
  min-width:28px;
  text-align:center;
  font-weight:800;
}

/* --- Layout carrinho --- */
.cart-layout{
  display:grid;
  grid-template-columns: 1fr 320px;
  gap: 14px;
}
@media(max-width:900px){
  .cart-layout{ grid-template-columns: 1fr; }
}

.cart-item{ padding: 12px; }
.cart-item-grid{
  display:grid;
  grid-template-columns: 90px 1fr 140px;
  gap: 12px;
  align-items:center;
}
@media(max-width:700px){
  .cart-item-grid{ grid-template-columns: 90px 1fr; }
  .cart-line{ grid-column: 1 / -1; display:flex; justify-content:space-between; margin-top:8px; }
}

.cart-thumb{
  display:block;
  width:90px;
  height:70px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fafafa;
  overflow:hidden;
}
.cart-thumb img{
  width:100%;
  height:100%;
  object-fit:contain;
  padding:8px;
  display:block;
}

.cart-title{
  text-decoration:none;
  color:inherit;
  font-weight:900;
  display:block;
}
.cart-title:hover{ text-decoration:underline; }

.cart-actions{
  margin-top:10px;
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}

.cart-line{ text-align:right; }

/* --- resumo --- */
.cart-summary .card{ position:sticky; top:86px; }
.sum-row{
  display:flex;
  justify-content:space-between;
  padding:10px 0;
  border-bottom:1px solid var(--line);
}
.sum-row.total{
  border-bottom:none;
  padding-top:12px;
  font-size:16px;
}
.checkout-layout{
  display:grid;
  grid-template-columns: 1fr 320px;
  gap: 14px;
}
@media(max-width:900px){
  .checkout-layout{ grid-template-columns: 1fr; }
}
.checkout-summary .card{ position:sticky; top:86px; }

.form-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media(max-width:700px){
  .form-grid{ grid-template-columns: 1fr; }
}

.pay-methods{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 8px;
}
@media(max-width:700px){
  .pay-methods{ grid-template-columns: 1fr; }
}
.pay-option{
  display:flex;
  gap:10px;
  align-items:flex-start;
  border:1px solid var(--line);
  border-radius:14px;
  padding:10px;
  background:#fff;
  cursor:pointer;
}
.pay-option input{ margin-top:4px; }

.sum-row{
  display:flex;
  justify-content:space-between;
  padding:10px 0;
  border-bottom:1px solid var(--line);
}
.sum-row.total{
  border-bottom:none;
  padding-top:12px;
  font-size:16px;
}

.pix-box{
  margin-top:10px;
  border:1px dashed #ddd;
  border-radius:14px;
  padding:14px;
  background:#fafafa;
}
.pix-qr{
  height:260px;
  border-radius:14px;
  background:#fff;
  border:1px solid #eee;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:800;
  color:#666;
}
/* --- Barra de categorias (full width) --- */
.catbar{
  width:100vw;                 /* pega a tela toda */
  margin-left:calc(50% - 50vw);/* garante full width mesmo dentro de layouts */
  background:#111;
  color:#fff;
  border-top:1px solid rgba(255,255,255,.08);
}

/* conteudo interno da barra: também full width */
.catbar-inner{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 18px;           /* padding lateral */
}

/* Botão "Todos" */
.cat-all-btn{
  background:transparent;
  color:#fff;
  border:1px solid rgba(255,255,255,.2);
  border-radius:12px;
  padding:7px 10px;            /* menor pra caber mais */
  cursor:pointer;
  font-weight:800;
  white-space:nowrap;
}

/* Links das categorias */
.cat-links{
  display:flex;
  flex:1;                      /* ocupa o restante */
  gap:8px;
  white-space:nowrap;          /* tenta ficar em 1 linha */
  overflow:hidden;             /* sem scroll e sem barra */
}

/* Se não couber, vai quebrar linha em telas menores (sem scroll) */
@media(max-width:1100px){
  .cat-links{
    flex-wrap:wrap;
    white-space:normal;
    overflow:visible;
  }
}

.cat-links a{
  color:#fff;
  text-decoration:none;
  padding:6px 8px;             /* menor */
  border-radius:12px;
  font-size:12.5px;            /* menor */
  border:1px solid transparent;
  opacity:.92;
  line-height:1;
}

.cat-links a:hover{
  border-color: rgba(255,255,255,.25);
  opacity:1;
}

.cat-links a.active{
  background:rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.18);
  opacity:1;
}


/* --- Sidebar --- */
.sidebar-backdrop{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.35);
  display:none;
  z-index:50;
}
.sidebar-backdrop.open{ display:block; }

.sidebar{
  position:fixed;
  top:0;
  left:-320px;
  width:320px;
  height:100vh;
  background:#fff;
  z-index:60;
  box-shadow: 0 12px 30px rgba(0,0,0,.18);
  transition:left .18s ease;
  display:flex;
  flex-direction:column;
}
.sidebar.open{ left:0; }

.sidebar-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px;
  border-bottom:1px solid var(--line);
}
.sidebar-close{
  background:#fff;
  border:1px solid var(--line);
  border-radius:10px;
  padding:6px 10px;
  cursor:pointer;
}

.sidebar-body{
  padding:10px;
  overflow:auto;
}
.sidebar-link{
  display:block;
  text-decoration:none;
  color:#111;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid transparent;
}
.sidebar-link:hover{
  background:#f7f7f7;
}
.sidebar-link.active{
  border-color:#111;
  background:#fff;
}
/* Pills no admin */
.pill{
  display:inline-block;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid var(--line);
  font-size:12px;
  background:#fff;
}
.pill.ok{
  border-color:#111;
  font-weight:800;
}

/* Grid de vinculados */
.linked-grid{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.linked-pill{
  text-decoration:none;
  color:#111;
  border:1px solid var(--line);
  border-radius:999px;
  padding:6px 10px;
  background:#fff;
  font-size:12px;
}
.linked-pill:hover{
  border-color:#111;
}


