:root{
  --ce-bg:#faf7f3;
  --ce-card:#ffffff;
  --ce-text:#4a3d34;
  --ce-text-light:#8a7968;
  --ce-accent:#a8826a;
  --ce-accent-dark:#5c4033;
  --ce-border:#e8ddd0;
  --ce-cream:#f1e9df;
  --ce-green:#4c6444;
}
*{box-sizing:border-box}
body{
  font-family:'Jost', sans-serif;
  background:var(--ce-bg);
  color:var(--ce-text);
  font-weight:400;
}
h1,h2,h3,h4,.ce-serif{
  font-family:'Playfair Display', serif;
  color:var(--ce-accent-dark);
}
a{color:var(--ce-accent-dark); text-decoration:none}
a:hover{color:var(--ce-accent)}

/* Reusable dot-cluster motif from the logo mark */
.ce-dots-motif{width:26px; height:auto; display:inline-block}
.ce-logo-invert{filter:brightness(0) invert(1)}

/* Header */
.ce-header{background:var(--ce-card); border-bottom:1px solid var(--ce-border); position:sticky; top:0; z-index:1000}
.ce-logo-img{height:36px}
.ce-nav-links a{font-size:.92rem; letter-spacing:.03em; text-transform:uppercase; color:var(--ce-text); font-weight:500}
.ce-nav-links a:hover{color:var(--ce-accent)}
.ce-search input{border:1px solid var(--ce-border); border-radius:20px; padding:.35rem 1rem; width:160px; background:var(--ce-bg)}
.ce-cart-link{font-size:1.25rem; color:var(--ce-accent-dark)}
.ce-cart-badge{position:absolute; top:-8px; right:-10px; background:var(--ce-accent); color:#fff; font-size:.65rem; border-radius:50%; width:18px; height:18px; display:flex; align-items:center; justify-content:center}
.ce-burger{border:none; color:var(--ce-accent-dark); font-size:1.2rem}

.ce-alert{border-radius:10px; border:1px solid var(--ce-border)}

/* Hero */
.ce-hero{
  background:linear-gradient(135deg, var(--ce-cream) 0%, var(--ce-bg) 100%);
  padding:70px 0 60px;
  text-align:center;
  border-bottom:1px solid var(--ce-border);
}
.ce-hero h1{font-size:2.8rem; font-style:italic; margin-bottom:.6rem}
.ce-hero p{color:var(--ce-text-light); font-size:1.05rem; max-width:560px; margin:0 auto 1.6rem}
.ce-hero .dots{margin-bottom:1rem}
.btn-ce{
  background:var(--ce-accent-dark); color:#fff; border:none; padding:.7rem 2rem;
  border-radius:30px; font-size:.85rem; letter-spacing:.08em; text-transform:uppercase;
  transition:.2s;
}
.btn-ce:hover{background:var(--ce-accent); color:#fff}
.btn-ce-outline{
  background:transparent; color:var(--ce-accent-dark); border:1.5px solid var(--ce-accent-dark);
  padding:.65rem 2rem; border-radius:30px; font-size:.85rem; letter-spacing:.08em; text-transform:uppercase;
  transition:.2s;
}
.btn-ce-outline:hover{background:var(--ce-accent-dark); color:#fff}

/* Section titles */
.ce-section-title{text-align:center; margin-bottom:2.5rem}
.ce-section-title h2{font-size:2rem; font-style:italic}
.ce-section-title .sub{color:var(--ce-green); text-transform:uppercase; letter-spacing:.25em; font-size:.72rem; display:flex; align-items:center; justify-content:center; gap:.5rem}
.ce-section-title .sub::before, .ce-section-title .sub::after{content:''; width:16px; height:1px; background:var(--ce-green); opacity:.5}

/* Categories */
.ce-cat-card{
  display:block; text-align:center; padding:1.8rem 1rem; background:var(--ce-card);
  border:1px solid var(--ce-border); border-radius:14px; transition:.25s; height:100%;
}
.ce-cat-card:hover{transform:translateY(-4px); box-shadow:0 12px 30px rgba(90,64,51,.08); border-color:var(--ce-accent)}
.ce-cat-card .icon{font-size:1.8rem; color:var(--ce-accent); margin-bottom:.7rem}
.ce-cat-card .name{font-family:'Playfair Display',serif; color:var(--ce-accent-dark); font-size:1.05rem}

/* Product cards */
.ce-product-card{
  background:var(--ce-card); border:1px solid var(--ce-border); border-radius:14px;
  overflow:hidden; transition:.25s; height:100%; display:flex; flex-direction:column;
}
.ce-product-card:hover{box-shadow:0 14px 34px rgba(90,64,51,.1); transform:translateY(-3px)}
.ce-product-img-wrap{
  aspect-ratio:1/1; background:var(--ce-cream); display:flex; align-items:center; justify-content:center; overflow:hidden; position:relative;
}
.ce-product-img-wrap img{width:100%; height:100%; object-fit:cover}
.ce-badge-oferta{position:absolute; top:10px; left:10px; background:var(--ce-accent-dark); color:#fff; font-size:.68rem; padding:3px 10px; border-radius:20px; text-transform:uppercase; letter-spacing:.05em}
.ce-badge-sinstock{position:absolute; inset:0; background:rgba(250,247,243,.75); display:flex; align-items:center; justify-content:center; font-family:'Playfair Display',serif; font-style:italic; color:var(--ce-accent-dark); font-size:1.1rem}
.ce-product-body{padding:1.1rem 1.1rem 1.3rem; display:flex; flex-direction:column; flex:1}
.ce-product-cat{font-size:.68rem; text-transform:uppercase; letter-spacing:.1em; color:var(--ce-text-light); margin-bottom:.3rem}
.ce-product-name{font-family:'Playfair Display',serif; font-size:1.05rem; color:var(--ce-accent-dark); margin-bottom:.4rem; flex:1}
.ce-product-name a{color:inherit}
.ce-price{font-weight:600; font-size:1.05rem; color:var(--ce-accent-dark)}
.ce-price-old{text-decoration:line-through; color:var(--ce-text-light); font-size:.85rem; margin-right:.4rem}

/* Filters bar */
.ce-filters{background:var(--ce-card); border-bottom:1px solid var(--ce-border); padding:1rem 0}
.ce-filter-pill{
  display:inline-block; padding:.4rem 1.1rem; border-radius:20px; border:1px solid var(--ce-border);
  font-size:.82rem; color:var(--ce-text); margin:.2rem; text-transform:uppercase; letter-spacing:.03em;
}
.ce-filter-pill.active, .ce-filter-pill:hover{background:var(--ce-accent-dark); color:#fff; border-color:var(--ce-accent-dark)}

/* Product detail */
.ce-detail-img{background:var(--ce-cream); border-radius:16px; overflow:hidden; aspect-ratio:1/1; display:flex; align-items:center; justify-content:center}
.ce-detail-img img{width:100%; height:100%; object-fit:cover}
.ce-qty-input{width:70px; text-align:center; border:1px solid var(--ce-border); border-radius:8px; padding:.4rem}

/* Cart */
.ce-cart-item{border-bottom:1px solid var(--ce-border); padding:1.2rem 0}
.ce-cart-thumb{width:80px; height:80px; object-fit:cover; border-radius:10px; background:var(--ce-cream)}
.ce-summary-box{background:var(--ce-card); border:1px solid var(--ce-border); border-radius:14px; padding:1.6rem}

/* Forms */
.ce-form-box{background:var(--ce-card); border:1px solid var(--ce-border); border-radius:14px; padding:1.8rem}
.form-control, .form-select{border:1px solid var(--ce-border); border-radius:8px; padding:.6rem .8rem}
.form-control:focus, .form-select:focus{border-color:var(--ce-accent); box-shadow:0 0 0 .2rem rgba(168,130,106,.15)}
.form-label{font-size:.82rem; text-transform:uppercase; letter-spacing:.04em; color:var(--ce-text-light)}

/* Footer */
.ce-footer{background:var(--ce-accent-dark); color:#e8ddd0}
.ce-footer-title{color:#fff; font-family:'Playfair Display',serif; font-weight:700; letter-spacing:.08em; text-transform:uppercase; font-size:.9rem; margin-bottom:1rem}
.ce-footer-text{color:#d9c7ba; font-size:.9rem}
.ce-footer-text a{color:#d9c7ba}
.ce-footer-text a:hover{color:#fff}
.ce-footer-hr{border-color:rgba(255,255,255,.15)}

/* Empty state */
.ce-empty{text-align:center; padding:5rem 1rem; color:var(--ce-text-light)}
.ce-empty i{font-size:3rem; color:var(--ce-border); margin-bottom:1rem; display:block}

@media (max-width:767px){
  .ce-hero{padding:45px 0 40px}
  .ce-hero h1{font-size:2rem}
}
