:root{
  --azul:#0B3B6B;
  --celeste:#2E9DF7;
  --celeste-dark:#1C7FD4;
  --celeste-soft:#EAF4FE;
  --paper:#F5F9FE;
  --card:#FFFFFF;
  --line:#DCE6F0;
  --volt:#FF7A1A;
  --volt-dark:#E4650A;
  --whats:#1EAA55;
  --whats-dark:#178A44;
  --rojo:#E4392E;
  --muted:#5C6B7A;
  --tag-bg:#EAF4FE;
  --radius:2px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--paper);
  color:var(--azul);
  font-family:'Inter',system-ui,sans-serif;
  line-height:1.4;
}
h1,h2,h3,.brand,.price{font-family:'Space Grotesk',system-ui,sans-serif;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}

/* ---------- Header / nav bar: blanco, estilo tienda ---------- */
header{
  background:#fff;
  color:var(--azul);
  border-bottom:1px solid var(--line);
  position:sticky;
  top:0;
  z-index:20;
}
.header-inner{
  max-width:1200px;
  margin:0 auto;
  padding:16px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:14px;
}
.brand-group{
  display:flex;
  align-items:center;
  gap:12px;
}
.brand{
  font-weight:700;
  font-size:1.5rem;
  letter-spacing:-0.02em;
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--azul);
}
.brand span{color:var(--celeste);}
.brand-logo{
  height:44px;
  width:44px;
  object-fit:contain;
  border-radius:4px;
  flex-shrink:0;
}
.header-tag{
  font-size:.74rem;
  color:var(--muted);
  margin-top:2px;
  letter-spacing:.02em;
}
.acceder{
  border:1.5px solid var(--celeste);
  background:#fff;
  color:var(--celeste);
  padding:9px 18px;
  font-size:.88rem;
  font-weight:600;
  cursor:pointer;
  border-radius:8px;
  transition:background .15s ease, color .15s ease;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.acceder:hover{background:var(--celeste-soft);}

/* ---------- Filter bar: tarjeta blanca flotante, separada del header ---------- */
.filterbar-wrap{
  background:transparent;
  padding:22px 24px 0;
}
.filterbar{
  max-width:1200px;
  margin:0 auto;
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
  box-shadow:0 2px 12px rgba(11,59,107,.07);
  padding:12px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
}
.filterbar input{
  flex:1;
  min-width:200px;
}
.filterbar select{
  min-width:170px;
}
.filterbar input,
.filterbar select{
  height:44px;
  border:1px solid var(--line);
  background:#fff;
  color:var(--azul);
  padding:0 14px;
  font-size:.9rem;
  font-family:'Inter',sans-serif;
  border-radius:8px;
}
.filterbar input::placeholder{color:#9AA9B7;}
.filterbar select option{color:var(--azul);}
.filterbar input:focus,
.filterbar select:focus{
  outline:none;
  border-color:var(--celeste);
}
.filterbar button{
  height:44px;
  background:var(--azul);
  color:#fff;
  border:none;
  font-weight:700;
  font-size:.9rem;
  padding:0 26px;
  cursor:pointer;
  border-radius:8px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  transition:background .15s ease;
}
.filterbar button:hover{background:#082C52;}

/* ---------- Results meta ---------- */
.results-meta{
  max-width:1200px;
  margin:20px auto 6px;
  padding:0 24px;
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  color:var(--muted);
  font-size:.9rem;
}
.results-meta strong{color:var(--azul);}

/* ---------- Grid ---------- */
.grid{
  max-width:1200px;
  margin:0 auto;
  padding:14px 24px 60px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}
@media (max-width:1000px){ .grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){
  .grid{grid-template-columns:1fr;}
  .filterbar input{min-width:100%;order:1;}
  .filterbar select{flex:1;min-width:0;order:2;}
  .filterbar button{width:100%;order:3;justify-content:center;}
}

.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  position:relative;
}
.card .imgwrap{
  aspect-ratio:1/1;
  background:var(--celeste-soft);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  position:relative;
  border-bottom:1px solid var(--line);
}
.card .imgwrap img{max-height:100%;width:100%;object-fit:contain;}
.card .imgwrap svg{width:70%;height:70%;}
.card.agotado-item .imgwrap img,
.card.agotado-item .imgwrap svg{opacity:.4;filter:grayscale(60%);}

.badge-agotado{
  position:absolute;
  top:10px;
  left:10px;
  background:var(--rojo);
  color:#fff;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.03em;
  padding:5px 10px;
  border-radius:var(--radius);
}
.card .body{
  padding:16px 16px 18px;
  display:flex;
  flex-direction:column;
  gap:8px;
  flex:1;
}
.tag{
  align-self:flex-start;
  background:var(--tag-bg);
  color:var(--azul);
  font-size:.68rem;
  font-weight:600;
  letter-spacing:.02em;
  padding:4px 9px;
  border-radius:var(--radius);
}
.card h3{
  font-size:.96rem;
  font-weight:600;
  margin:0;
  letter-spacing:-0.01em;
  min-height:2.5em;
}
.meta-line{font-size:.78rem;color:var(--muted);}
.price{
  font-size:1.3rem;
  font-weight:700;
  color:var(--volt-dark);
  margin-top:2px;
}
.stock{font-size:.78rem;color:var(--muted);}
.cuotas-label{font-size:.74rem;color:var(--muted);margin-top:6px;}
.card select{
  width:100%;
  height:38px;
  border:1px solid var(--line);
  padding:0 10px;
  font-size:.85rem;
  font-family:'Inter',sans-serif;
  border-radius:var(--radius);
  background:#fff;
  color:var(--azul);
}
.card select:disabled{color:#A3A7AB;}
.whats-btn{margin-top:auto;padding-top:10px;}
.whats-btn a{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  background:var(--whats);
  color:#fff;
  text-decoration:none;
  font-weight:600;
  font-size:.88rem;
  height:42px;
  border-radius:var(--radius);
  transition:background .15s ease;
}
.whats-btn a:hover{background:var(--whats-dark);}

.empty-state{
  max-width:1200px;
  margin:0 auto;
  padding:60px 24px;
  text-align:center;
  color:var(--muted);
}

footer{
  border-top:1px solid var(--line);
  padding:26px 24px;
  text-align:center;
  color:var(--muted);
  font-size:.82rem;
}