/* -------------------------------------------------------
Ruta: /tienda/assets/css/store.css
Archivo: store.css
Creado: 2026-03-06
Actualizado: 2026-03-07
Autor: CoreStore
------------------------------------------------------- */

:root{
--primary:#2D6CDF;
--secondary:#1F4FA6;
--accent:#FFCC66;
--bg:#F4F6F9;
--text:#222;

--card:#ffffff;
--border:#e9ecef;
}

*{
box-sizing:border-box;
}

body{
margin:0;
font-family:Arial, Helvetica, sans-serif;
background:var(--bg);
color:var(--text);
}

/* -------------------------------------------------------
CONTAINER
------------------------------------------------------- */

.container{
max-width:1100px;
margin:auto;
padding:16px;
}

/* -------------------------------------------------------
HEADER
------------------------------------------------------- */

.header{
background:var(--card);
border-bottom:1px solid var(--border);
}

.header-row{
display:flex;
align-items:center;
justify-content:space-between;
gap:20px;
}

.logo{
font-size:20px;
font-weight:bold;
}

/* -------------------------------------------------------
HEADER ACTIONS
------------------------------------------------------- */

.header-actions{
display:flex;
gap:14px;
align-items:center;
}

.header-actions a{
text-decoration:none;
color:var(--text);
font-size:14px;
}

.header-actions a:hover{
color:var(--primary);
}

/* -------------------------------------------------------
ACCOUNT MENU
------------------------------------------------------- */

.account-menu{
position:relative;
display:inline-block;
cursor:pointer;
}

.account-name{
display:flex;
align-items:center;
gap:6px;
font-weight:500;
}

/* avatar usuario */

.account-avatar{
width:26px;
height:26px;
border-radius:50%;
background:var(--primary);
color:white;
display:flex;
align-items:center;
justify-content:center;
font-size:13px;
font-weight:bold;
}

/* separador menú */

.account-divider{
height:1px;
background:var(--border);
margin:6px 0;
}

/* dropdown */

.account-dropdown{
display:none;
position:absolute;
right:0;
top:32px;

background:#fff;
border:1px solid var(--border);
border-radius:6px;

padding:8px;

min-width:180px;

box-shadow:0 6px 16px rgba(0,0,0,.08);

z-index:100;
}

.account-dropdown a{
display:block;
padding:8px 8px;
text-decoration:none;
color:#333;
font-size:14px;
border-radius:4px;
}

.account-dropdown a:hover{
background:#f5f7fa;
color:var(--primary);
}

/* apertura con JS */

.account-menu.open .account-dropdown{
display:block;
}

/* -------------------------------------------------------
MENU CATEGORIAS
------------------------------------------------------- */

.menu{
margin-top:10px;
display:flex;
gap:12px;
flex-wrap:wrap;
}

.menu a{
text-decoration:none;
color:var(--text);
font-size:14px;
padding:6px 10px;
border-radius:6px;
transition:all .15s ease;
}

.menu a:hover{
background:var(--primary);
color:white;
}

/* -------------------------------------------------------
SEARCH
------------------------------------------------------- */

.search{
display:flex;
flex:1;
max-width:420px;
gap:6px;
}

.search input{
flex:1;
padding:9px;
border-radius:6px;
border:1px solid var(--border);
}

.search button{
background:var(--primary);
border:none;
color:white;
padding:9px 14px;
border-radius:6px;
cursor:pointer;
}

/* -------------------------------------------------------
GRID PRODUCTOS
------------------------------------------------------- */

.grid{
margin-top:20px;
display:grid;
grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
gap:16px;
}

/* -------------------------------------------------------
CARD PRODUCTO
------------------------------------------------------- */

.card{
background:var(--card);
border-radius:10px;
border:1px solid var(--border);
overflow:hidden;
transition:transform .15s ease, box-shadow .15s ease;
}

.card:hover{
transform:translateY(-3px);
box-shadow:0 6px 14px rgba(0,0,0,0.08);
}

.card-image{
display:block;
overflow:hidden;
background:#f4f4f4;
}

.card-image img{
width:100%;
height:200px;
object-fit:cover;
transition:transform .25s ease;
}

.card:hover .card-image img{
transform:scale(1.05);
}

.card-body{
padding:14px;
display:flex;
flex-direction:column;
gap:8px;
}

.card-title{
font-size:15px;
font-weight:500;
min-height:38px;
}

.card-title a{
text-decoration:none;
color:var(--text);
}

.card-title a:hover{
color:var(--primary);
}

/* -------------------------------------------------------
PRICE
------------------------------------------------------- */

.price{
font-size:18px;
font-weight:bold;
color:var(--primary);
}

/* -------------------------------------------------------
BUY BUTTON
------------------------------------------------------- */

.buy{
display:block;
text-align:center;
padding:10px;
background:var(--primary);
color:white;
border-radius:6px;
text-decoration:none;
font-size:14px;
transition:all .15s ease;
border:none;
cursor:pointer;
}

.buy:hover{
background:var(--secondary);
transform:translateY(-1px);
}

/* -------------------------------------------------------
CART
------------------------------------------------------- */

.cart-link{
position:relative;
text-decoration:none;
font-size:18px;
}

.cart-badge{
position:absolute;
top:-6px;
right:-10px;
background:red;
color:white;
font-size:11px;
font-weight:bold;
padding:3px 6px;
border-radius:20px;
min-width:18px;
text-align:center;
}

/* -------------------------------------------------------
BANNER
------------------------------------------------------- */

.store-banner{
margin:20px 0;
padding:25px;
background:linear-gradient(
135deg,
var(--primary),
var(--secondary)
);
color:white;
border-radius:10px;
}

.store-banner h3{
margin:0 0 5px 0;
}

/* -------------------------------------------------------
BREADCRUMBS
------------------------------------------------------- */

.breadcrumbs{
font-size:14px;
margin:10px 0 20px;
color:#777;
}

.breadcrumbs a{
color:#555;
text-decoration:none;
}

.breadcrumbs a:hover{
text-decoration:underline;
}

.sep{
margin:0 6px;
}

/* -------------------------------------------------------
AUTH / LOGIN / REGISTER
------------------------------------------------------- */

.auth-page{
padding:40px 0;
}

.auth-box{
max-width:460px;
margin:0 auto;
background:var(--card);
border:1px solid var(--border);
border-radius:10px;
padding:28px;
box-shadow:0 4px 18px rgba(0,0,0,.06);
}

.auth-title{
margin:0 0 20px;
font-size:32px;
line-height:1.2;
}

.auth-error{
margin-bottom:16px;
padding:12px 14px;
background:#fff3f3;
border:1px solid #efc2c2;
border-radius:8px;
color:#b42318;
font-size:14px;
}

.auth-form{
display:flex;
flex-direction:column;
gap:16px;
}

.auth-field label{
display:block;
margin-bottom:6px;
font-size:14px;
font-weight:600;
}

.auth-field input{
width:100%;
height:44px;
padding:0 12px;
border:1px solid var(--border);
border-radius:8px;
font-size:15px;
background:#fff;
}

.auth-pass-wrap{
position:relative;
}

.auth-pass-wrap input{
padding-right:90px;
}

.auth-pass-toggle{
position:absolute;
top:50%;
right:10px;
transform:translateY(-50%);
border:0;
background:transparent;
cursor:pointer;
font-size:13px;
font-weight:600;
color:var(--primary);
}

.auth-actions{
margin-top:4px;
}

.auth-submit{
width:100%;
}

.auth-extra{
margin-top:22px;
text-align:center;
}

.auth-extra p{
margin:0 0 10px;
font-size:14px;
color:#555;
}

.auth-link-button{
display:inline-block;
padding:10px 16px;
border:1px solid var(--border);
border-radius:8px;
text-decoration:none;
font-weight:600;
color:var(--text);
background:#fff;
}

.auth-link-button:hover{
background:#f8f9fa;
}

/* -------------------------------------------------------
FOOTER
------------------------------------------------------- */

.footer{
margin-top:40px;
padding:20px;
text-align:center;
font-size:13px;
color:#666;
}

/* -------------------------------------------------------
RESPONSIVE
------------------------------------------------------- */

@media (max-width:900px){

.header-row{
flex-wrap:wrap;
gap:10px;
}

.search{
order:3;
width:100%;
max-width:none;
}

.header-actions{
order:2;
margin-left:auto;
}

.menu{
gap:8px;
}

}

@media (max-width:600px){

.logo{
font-size:18px;
}

.menu{
overflow-x:auto;
flex-wrap:nowrap;
padding-bottom:6px;
}

.menu a{
white-space:nowrap;
}

.grid{
grid-template-columns:repeat(2,1fr);
}

.card-image img{
height:150px;
}

.store-banner{
padding:18px;
}

}

@media (max-width:420px){

.grid{
grid-template-columns:1fr;
}

.search input{
font-size:14px;
}

}

@media (max-width:768px){

.auth-page{
padding:20px 0;
}

.auth-box{
padding:20px;
border-radius:8px;
}

.auth-title{
font-size:26px;
}

}