:root{
--bg:#0d0d0d;
--card:#1b1b1b;
--card-hover:#242424;

--text:#ffffff;
--muted:#bdbdbd;

--primary:#ff003c;
--primary-hover:#ff2f5d;

--border:#2d2d2d;

--radius:22px;

--transition:.2s ease;
}

*{
margin:0;
padding:0;
box-sizing:border-box;
}

body{
background:var(--bg);
color:var(--text);
font-family:Arial,sans-serif;
min-height:100vh;
}

/* HERO */

.hero{
width:100%;
display:flex;
justify-content:center;
align-items:center;
padding:20px 10px;
}

.logo-principal{
width:100%;
max-width:280px;
height:auto;
display:block;
}

/* APP */

.app{
width:100%;
max-width:1400px;
margin:auto;
padding:12px;
}

/* GRID */

.products-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:12px;
align-items:stretch;
}

/* CARD */

.card{
width:100%;
min-width:0;
position:relative;
background:var(--card);
border-radius:var(--radius);
overflow:hidden;
border:1px solid var(--border);
transition:
transform var(--transition),
background var(--transition);
display:flex;
flex-direction:column;
height:100%;
}

.card:hover{
background:var(--card-hover);
}

.card:active{
transform:scale(.98);
}

/* IMAGE */

.card__image{
width:100%;
height:170px;
object-fit:cover;
display:block;
background:#111;
}

/* CONTENT */

.card__content{
padding:16px;
display:flex;
flex-direction:column;
flex:1;
}

/* BADGES */

.badge{
display:inline-flex;
align-items:center;
width:max-content;
padding:6px 10px;
border-radius:999px;
font-size:11px;
font-weight:900;
margin-bottom:12px;
}

.badge--artesanal{
background:#8b5a2b;
color:#fff;
}

.badge--comercial{
background:#d4a017;
color:#000;
}

.badge--premium{
background:#c1121f;
color:#fff;
}

/* TITLE */

.card__title{
font-size:18px;
line-height:23px;
min-height:69px;
margin-bottom:10px;

display:-webkit-box;
-webkit-line-clamp:3;
-webkit-box-orient:vertical;
overflow:hidden;
}

/* DESCRIPTION */

.card__description{
color:var(--muted);
font-size:14px;
line-height:19px;

display:-webkit-box;
-webkit-line-clamp:5;
-webkit-box-orient:vertical;
overflow:hidden;

min-height:95px;
}

/* PRICE */

.card__price{
margin-top:auto;
color:var(--primary);
font-size:26px;
font-weight:900;
}

/* CONTROLS */

.controls{
display:flex;
align-items:center;
justify-content:center;
gap:10px;
margin-top:18px;
}

.controls__button{
width:44px;
height:44px;
border:none;
border-radius:14px;
background:var(--primary);
color:white;
font-size:24px;
font-weight:900;
cursor:pointer;
transition:
background var(--transition),
transform var(--transition);
}

.controls__button:hover{
background:var(--primary-hover);
}

.controls__button:active{
transform:scale(.92);
}

.controls__count{
font-size:24px;
font-weight:900;
min-width:30px;
text-align:center;
}

/* CHECKOUT */

.checkout{
position:sticky;
bottom:0;
margin-top:16px;

background:#121212;

border-top:2px solid #2a2a2a;

border-radius:24px 24px 0 0;

padding:20px;

box-shadow:
0 -10px 30px rgba(0,0,0,.5);
}

.checkout__title{
color:#ffcc00;
margin-bottom:15px;
font-size:24px;
}

.checkout__input{
width:100%;
padding:15px;
margin-bottom:12px;
border:none;
border-radius:14px;
background:#2a2a2a;
color:white;
font-size:15px;
outline:none;
}

.checkout__input:focus{
border:1px solid var(--primary);
}

.checkout__total{
display:flex;
justify-content:space-between;
align-items:center;
font-size:28px;
font-weight:900;
margin-top:15px;
}

.checkout__button{
width:100%;
padding:18px;
margin-top:18px;
border:none;
border-radius:16px;
background:var(--primary);
color:white;
font-size:18px;
font-weight:900;
cursor:pointer;
transition:
background var(--transition),
transform var(--transition);
}

.checkout__button:hover{
background:var(--primary-hover);
}

.checkout__button:active{
transform:scale(.98);
}

/* TABLET */

@media(min-width:768px){

.products-grid{
grid-template-columns:repeat(3,1fr);
}

}

/* DESKTOP */

@media(min-width:1200px){

.products-grid{
grid-template-columns:repeat(5,1fr);
}

.card__image{
height:220px;
}

.logo-principal{
max-width:360px;
}

}
