/* ================= LOJA (B) ================= */
.store-section{
  max-width:1200px;
  margin:0 auto;
  padding:60px 24px 100px;
}

.store-alert{
  background:rgba(46,125,50,0.1);
  color:var(--success);
  padding:14px 18px;
  border-radius:10px;
  font-size:13.5px;
  margin-bottom:24px;
}
.store-alert a{ color:var(--success); font-weight:700; text-decoration:underline; }

.store-toolbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:16px;
  margin-bottom:32px;
}
.store-filter{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.store-filter a{
  font-size:13px;
  font-weight:600;
  color:var(--text-soft);
  padding:8px 16px;
  border-radius:20px;
  border:1.5px solid rgba(18,43,48,0.15);
  transition:background .18s ease, color .18s ease;
}
.store-filter a:hover{ border-color:var(--sky); color:var(--sky); }
.store-filter a.active{ background:var(--teal-deep); border-color:var(--teal-deep); color:#fff; }

.store-cart-link{ position:relative; }
.cart-badge{
  position:absolute;
  top:-8px; right:-8px;
  background:var(--gold);
  color:#fff;
  font-size:10.5px;
  font-weight:700;
  min-width:18px; height:18px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  padding:0 3px;
}

.product-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
  gap:24px;
}
.product-card{
  background:#fff;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 12px 30px rgba(18,43,48,0.1);
  display:flex;
  flex-direction:column;
  transition:transform .2s ease;
}
.product-card:hover{ transform:translateY(-4px); }
.product-photo{ width:100%; aspect-ratio:4/3; }
.product-info{ padding:18px; display:flex; flex-direction:column; gap:8px; flex:1; }
.product-type-tag{
  align-self:flex-start;
  font-size:10.5px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.04em;
  color:var(--sky);
  background:rgba(1,124,192,0.08);
  padding:4px 10px;
  border-radius:12px;
}
.product-info h3{
  font-family:'Poppins', sans-serif;
  font-weight:600;
  font-size:16px;
  color:var(--teal-deep);
}
.product-desc{ font-size:12.5px; color:var(--text-soft); line-height:1.5; flex:1; }
.product-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:6px;
}
.product-price{ font-family:'Poppins', sans-serif; font-weight:700; color:var(--teal-deep); font-size:16px; }

/* ---- carrinho ---- */
.cart-table{ width:100%; border-collapse:collapse; margin-bottom:20px; }
.cart-table th{
  text-align:left;
  padding:10px 12px;
  border-bottom:2px solid rgba(18,43,48,0.1);
  color:var(--text-soft);
  font-size:11.5px;
  text-transform:uppercase;
}
.cart-table td{ padding:14px 12px; border-bottom:1px solid rgba(18,43,48,0.06); vertical-align:middle; }
.cart-product-cell{ display:flex; align-items:center; gap:12px; font-weight:600; color:var(--teal-deep); }
.cart-thumb{ width:52px; height:52px; border-radius:10px; flex-shrink:0; }
.cart-qty-input{
  width:60px;
  padding:6px 8px;
  border:1.5px solid rgba(18,43,48,0.15);
  border-radius:8px;
  font-size:14px;
}
.cart-summary{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding-top:12px;
}
.cart-total{ font-size:18px; color:var(--teal-deep); }
.cart-total strong{ font-family:'Poppins', sans-serif; font-weight:700; }
.cart-actions{ display:flex; justify-content:space-between; margin-top:24px; }

/* ---- checkout ---- */
.checkout-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:32px;
  align-items:start;
}
.checkout-summary-item{
  display:flex;
  justify-content:space-between;
  font-size:13.5px;
  color:var(--text-soft);
  padding:8px 0;
  border-bottom:1px solid rgba(18,43,48,0.06);
}
.checkout-summary-total{
  display:flex;
  justify-content:space-between;
  font-family:'Poppins', sans-serif;
  font-weight:700;
  font-size:17px;
  color:var(--teal-deep);
  padding-top:14px;
  margin-top:6px;
}

@media (max-width: 900px){
  .checkout-grid{ grid-template-columns:1fr; }
}

/* ---- voucher de confirmação ---- */
.voucher-card{
  max-width:600px;
  margin:0 auto;
  background:#fff;
  border-radius:24px;
  box-shadow:0 24px 50px rgba(18,43,48,0.14);
  padding:48px;
  text-align:center;
}
.voucher-check{
  width:64px; height:64px;
  border-radius:50%;
  background:var(--success);
  display:flex; align-items:center; justify-content:center;
  margin:0 auto 20px;
}
.voucher-check svg{ width:32px; height:32px; }
.voucher-card h2{
  font-family:'Poppins', sans-serif;
  font-weight:700;
  font-size:24px;
  color:var(--teal-deep);
  margin-bottom:8px;
}
.voucher-sub{ font-size:14px; color:var(--text-soft); margin-bottom:20px; }
.voucher-number{
  display:inline-block;
  font-family:'Poppins', sans-serif;
  font-weight:700;
  font-size:20px;
  color:var(--sky);
  background:rgba(1,124,192,0.08);
  padding:12px 28px;
  border-radius:14px;
  letter-spacing:0.03em;
}


/* ================= BUSCA DE PONTO TURÍSTICO (autocomplete) ================= */
.busca-ponto-wrap{ position:relative; max-width:400px; }
.busca-ponto-input{
  width:100%;
  padding:10px;
  border-radius:8px;
  border:1.5px solid rgba(18,43,48,0.15);
  font-family:'Inter', sans-serif;
  font-size:13.5px;
}
.busca-ponto-input:focus{ outline:none; border-color:var(--sky); }

.busca-ponto-resultados{
  display:none;
  position:absolute;
  top:calc(100% + 6px);
  left:0; right:0;
  background:#fff;
  border-radius:10px;
  box-shadow:0 12px 28px rgba(18,43,48,0.18);
  max-height:260px;
  overflow-y:auto;
  z-index:20;
}
.busca-ponto-resultados.open{ display:block; }

.busca-ponto-item{
  padding:10px 14px;
  font-size:13px;
  cursor:pointer;
  border-bottom:1px solid rgba(18,43,48,0.06);
}
.busca-ponto-item:last-child{ border-bottom:none; }
.busca-ponto-item:not(.busca-ponto-disabled):not(.busca-ponto-vazio):not(.busca-ponto-erro):hover{ background:var(--sand); }
.busca-ponto-disabled{ color:var(--text-soft); cursor:not-allowed; opacity:0.6; }
.busca-ponto-vazio, .busca-ponto-erro{ color:var(--text-soft); cursor:default; }

/* ================= ÁRVORE DE INDICAÇÃO (MMN) ================= */
.rede-tree{ display:flex; flex-direction:column; gap:6px; }

.rede-node{
  border-left:2px solid rgba(18,43,48,0.1);
}
.rede-node .rede-node-filhos{
  margin-left:18px;
  padding-left:10px;
  border-left:2px dashed rgba(1,124,192,0.2);
  margin-top:6px;
  display:flex;
  flex-direction:column;
  gap:6px;
}

.rede-node-summary{
  list-style:none;
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  background:var(--sand);
  border-radius:10px;
  font-size:13px;
  cursor:pointer;
}
.rede-node-summary::-webkit-details-marker{ display:none; }
.rede-node-summary::marker{ content:""; }

.rede-node-seta{
  display:inline-block;
  width:14px;
  color:var(--sky);
  font-weight:700;
  transition:transform .15s ease;
}
.rede-node[open] > .rede-node-summary .rede-node-seta{ transform:rotate(90deg); }
.rede-node-seta-vazia{ visibility:hidden; }

.rede-node-nome{ font-weight:700; color:var(--teal-deep); }
.rede-node-patamar{
  font-size:11px;
  font-weight:600;
  color:var(--sky);
  background:rgba(1,124,192,0.1);
  padding:2px 10px;
  border-radius:10px;
}
.rede-node-count{
  margin-left:auto;
  font-size:11.5px;
  color:var(--text-soft);
}
