:root{
  --bg:#f6f1e9;           /* hueso suave */
  --bg-2:#fbf8f3;
  --text:#111;
  --muted:#666;
  --accent:#111;          /* negro (se usa en algunos componentes) */
  --accent-2:#2b2b2b;
  --surface:#ffffff;
  --radius:18px;
  --shadow:0 8px 28px rgba(0,0,0,.08);

  /* ===== Brand (naranja) ===== */
  --brand-100:#FFF3E0;
  --brand-200:#FFE0B2;
  --brand-500:#FF9800;
  --brand-600:#FF6D00;
  --brand-700:#E65100;
}

*{box-sizing:border-box}
html,body{
  margin:0;padding:0;
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--text);
  background:linear-gradient(180deg,var(--bg),var(--bg-2));
}

.container{max-width:1100px;margin:80px auto 140px auto;padding:0 16px}

/* Navbar (para .nav) */
.nav{
  position:sticky;top:0;z-index:10;
  backdrop-filter:saturate(180%) blur(10px);
  background:rgba(246,241,233,.7);
  display:flex;justify-content:space-between;align-items:center;
  padding:14px 16px;border-bottom:1px solid rgba(0,0,0,.06)
}
.nav a{color:var(--text);text-decoration:none;margin:0 10px}
.nav a:hover{opacity:.8}
.brand{font-weight:800;font-size:20px}
.slogan{font-size:12px;color:var(--muted)}

/* Títulos */
.title{font-size:28px;margin:8px 0 18px 0}
.muted{color:var(--muted)}

/* Grid catálogo */
.grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:18px
}
.card{
  background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);
  overflow:hidden;transform:translateY(0);
  transition:transform .25s ease, box-shadow .25s ease
}
.card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(0,0,0,.12)}

/* ========= Thumbnails CUADRADOS (limpio de duplicados) ========= */
.card__image{
  position:relative;width:100%;
  aspect-ratio:1/1; background:#eee; overflow:hidden; border-radius:14px;
}
.card__image img{
  width:100%;height:100%;
  object-fit:contain;object-position:center;display:block;
  background:#f6f1e9; /* hueso para que combine */
}

/* Utilidad cuadrada */
.square{position:relative;width:100%;aspect-ratio:1/1;overflow:hidden}
.square>img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}

.placeholder{display:flex;align-items:center;justify-content:center;background:#e9e7e2;color:#9b9387}
.placeholder--lg{height:340px}

/* Badge genérico (en tarjetas o donde lo uses) */
.badge{
  position:absolute;top:10px;left:10px;
  background:rgba(0,0,0,.7);color:#fff;font-size:12px;
  padding:6px 10px;border-radius:999px
}

.card__body{padding:14px}
.card__title{margin:0 0 6px 0;font-size:18px}
.card__price{font-weight:700;margin-bottom:10px}
.card__actions{display:flex;gap:8px;flex-wrap:wrap}

/* ================== BOTONES (Brand naranja) ================== */
.btn{
  appearance:none;border:1px solid transparent;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:10px 14px;border-radius:12px;cursor:pointer;user-select:none;
  text-decoration:none;white-space:nowrap;
  font-weight:900;letter-spacing:.2px;color:#fff;
  background-image:linear-gradient(90deg,var(--brand-500) 0%, var(--brand-600) 100%);
  background-size:200% 100%;
  box-shadow:0 10px 18px rgba(255,109,0,.18);
  transition:transform .12s ease, box-shadow .12s ease, background-position .35s ease, filter .2s ease, opacity .2s ease;
}
.btn:hover{background-position:100% 0;transform:translateY(-1px);box-shadow:0 12px 22px rgba(255,109,0,.25)}
.btn:active{transform:translateY(0);filter:brightness(.96)}
.btn:focus-visible{outline:2px solid var(--brand-200);outline-offset:2px;box-shadow:0 0 0 3px rgba(255,152,0,.35)}
.btn[disabled], .btn.is-disabled{opacity:.6;pointer-events:none}

/* Variantes */
.btn--primary{ /* alias: ya es el default de .btn */ }
.btn--ghost{
  background:var(--brand-100); color:var(--brand-700);
  border-color:var(--brand-200); box-shadow:none;
}
.btn--ghost:hover{ background:#FFEFD6; }
.btn--outline{
  background:transparent; color:var(--brand-600);
  border-color:var(--brand-500);
}
.btn--outline:hover{ background:var(--brand-100); }
.btn--sm{padding:8px 10px;font-size:13px}

/* WhatsApp */
.btn--wa{background:#1fa855;box-shadow:0 10px 18px rgba(31,168,85,.18)}
.btn--wa:hover{box-shadow:0 12px 22px rgba(31,168,85,.25)}

/* Producto (detalle) */
.product{display:grid;grid-template-columns:1.2fr 1fr;gap:20px}
@media (max-width:900px){.product{grid-template-columns:1fr}}
.product__gallery{
  background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:10px
}
.carousel{display:grid;gap:10px}
.carousel img{width:100%;border-radius:12px}
.product__info{
  background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px
}
.price{font-size:22px;font-weight:800;margin-bottom:10px}
.meta{margin:8px 0}
.chip{display:inline-block;background:#efede9;border-radius:999px;padding:6px 10px;color:#333}

/* Reseñas */
.reviews{margin-top:28px}
.reviews__list{list-style:none;padding:0;margin:0;display:grid;gap:14px}
.reviews__text{margin:8px 0 0}
.stars{height:10px;background:#e5e2db;border-radius:999px;overflow:hidden}
.stars__bar{height:100%;width:calc((var(--value,0)/5)*100%);background:linear-gradient(90deg,#ffc107,#ff9800)}

/* Star input (form) */
.star-input{display:flex;align-items:center;gap:10px;margin:12px 0}
.star-input__wrap{display:flex;flex-direction:row-reverse}
.star-input__wrap input{display:none}
.star-input__wrap label{font-size:24px;color:#ccc;cursor:pointer;transition:transform .1s}
.star-input__wrap label:hover,
.star-input__wrap input:checked ~ label{color:#ffb400}
.star-input__wrap label:hover{transform:scale(1.05)}

/* Formularios */
.form label{display:block;margin:10px 0}
.input,.textarea{width:100%;padding:10px;border-radius:10px;border:1px solid #d9d5cf;background:#fff}
.textarea{min-height:100px}

/* Tabla admin */
.table{
  width:100%;border-collapse:collapse;background:var(--surface);
  box-shadow:var(--shadow);border-radius:12px;overflow:hidden
}
.table th,.table td{padding:12px;border-bottom:1px solid #eee;text-align:left}
.table thead th{background:#f2eee7}
.title-row{display:flex;justify-content:space-between;align-items:center}

/* Miniaturas (admin y previews) uniformes */
.thumbs{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
  gap:10px;margin-top:10px
}
.thumb{background:#f2eee7;border-radius:10px;padding:6px;text-align:center}
.thumb img{
  width:100%;height:120px;object-fit:cover;object-position:center;border-radius:8px
}

/* FABs */
.fab{
  position:fixed;right:18px;display:flex;align-items:center;justify-content:center;
  width:60px;height:60px;border-radius:50%;box-shadow:0 14px 34px rgba(0,0,0,.2);
  color:#fff;z-index:20;animation:pop .4s ease
}
.fab svg{width:26px;height:26px;fill:#fff}
.fab--cart{bottom:98px;background:var(--brand-600)}  /* naranja en carrito */
.fab--wa{bottom:24px;background:#1fa855}
.fab__badge{
  position:absolute;top:-6px;right:-6px;background:#ff4d4f;color:#fff;border-radius:999px;
  padding:4px 7px;font-size:12px;min-width:22px;text-align:center
}

/* Footer animado (marquee) */
.footer{position:fixed;left:0;right:0;bottom:0;background:#0e0e0e;color:#fff}
.footer a{color:#fff;text-decoration:underline}
.footer__marquee{overflow:hidden;white-space:nowrap;border-top:1px solid rgba(255,255,255,.08)}
.footer__track{display:inline-flex;gap:60px;animation:marquee 18s linear infinite;padding:12px 0}
.footer__bottom{text-align:center;font-size:12px;padding:6px 0;background:#111}

@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes pop{0%{transform:scale(.6);opacity:.2}100%{transform:scale(1);opacity:1)}

/* FAQ */
.faq details{background:var(--surface);margin:10px 0;padding:12px;border-radius:12px;box-shadow:var(--shadow)}
.faq summary{cursor:pointer;font-weight:600}

/* Encargo */
.encargo__row{display:grid;grid-template-columns:1fr auto;gap:10px;margin:8px 0}
.encargo__actions{display:flex;gap:10px;margin-top:10px}

/* Cart */
.cart{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.cart__item{
  display:grid;grid-template-columns:120px 1fr;gap:14px;
  background:var(--surface);padding:10px;border-radius:12px;box-shadow:var(--shadow)
}
.cart__thumb img{
  width:100%;height:100px;object-fit:cover;object-position:center;border-radius:10px
}
.cart__name{font-weight:700;margin:4px 0}
.cart__actions{display:flex;gap:10px;margin-top:12px}

/* Links como tarjetas */
.card.link{display:block;padding:16px}
.card.link:hover{transform:translateY(-3px)}

/* ============ Admin Dashboard ============ */
.admin-head{
  display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px
}
.admin-actions{display:flex;gap:10px;flex-wrap:wrap}

.kpis{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:14px;margin-bottom:18px
}
.kpi{
  position:relative;display:flex;align-items:center;gap:12px;background:var(--surface);
  border-radius:var(--radius);box-shadow:var(--shadow);padding:14px;transition:transform .2s ease
}
.kpi:hover{transform:translateY(-2px)}
.kpi__icon{font-size:26px}
.kpi__label{font-size:12px;color:var(--muted);margin-bottom:2px}
.kpi__value{font-size:22px;font-weight:800}
.kpi__cta{
  margin-left:auto;align-self:center;background:#111;color:#fff;border-radius:10px;padding:8px 10px;
  text-decoration:none;font-size:12px
}
.kpi--alert{outline:2px solid #ffb300; box-shadow:0 8px 28px rgba(255,179,0,.18)}

.grid-2{display:grid;grid-template-columns:1.1fr .9fr;gap:16px;margin-top:8px}
@media (max-width:900px){.grid-2{grid-template-columns:1fr}}

.panel{
  background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden
}
.panel__head{padding:12px 14px;border-bottom:1px solid #eee;background:#f2eee7}
.panel__title{margin:0;font-size:16px}
.sep{border:0;height:1px;background:linear-gradient(90deg,transparent,#ddd,transparent);margin:22px 0}

.quick{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;padding:14px}
.quick__item{
  display:flex;gap:10px;align-items:center;background:#fbf8f3;border:1px solid #eee;border-radius:12px;
  padding:12px;text-decoration:none;color:inherit;transition:transform .18s ease, box-shadow .18s ease
}
.quick__item:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(0,0,0,.08)}
.quick__icon{font-size:18px}

.guide{padding:14px}
.guide details{background:#fbf8f3;border:1px solid #eee;border-radius:10px;padding:10px;margin:8px 0}
.guide summary{cursor:pointer;font-weight:600}

/* Detalle de producto: galería uniforme (altura fija) */
.product__gallery .carousel{display:grid;grid-template-columns:1fr;gap:10px}
.product__gallery .carousel img{
  width:100%;height:360px;object-fit:contain;object-position:center;border-radius:12px;background:#f6f1e9
}
@media (max-width:900px){
  .product__gallery .carousel img{height:280px}
}

/* Ajustes menores */
.form--narrow{max-width:420px}

/* ===== FIX badges (estados) en móvil: apilados y SIEMPRE encima ===== */
.p-card__media { position: relative; }
.p-card__media img { position: relative; z-index: 1; }

.p-card__status {
  position: absolute;
  left: 8px; top: 8px;
  z-index: 5;
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  max-width: calc(100% - 16px);
  flex-direction: row;  /* por defecto en fila (desktop) */
}

.badge {
  display: inline-flex;
  align-items: center;
  font-weight: 800;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 4px 10px;
  line-height: 1.2;
  box-shadow: 0 2px 6px rgba(0,0,0,.08);
}

@media (max-width: 640px) {
  .p-card__status{
    flex-direction: column;    /* << clave para evitar solapes en móvil */
    align-items: flex-start;
    gap: 6px;
  }
  .badge{
    font-size: 11px;
    padding: 3px 8px;
    white-space: nowrap;
  }
}

/* Navbar oscuro */
.nav--dark{
  background:#0e0e0e !important;   /* negro */
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.nav--dark a{ color:#fff; text-decoration:none; margin:0 10px; }
.nav--dark a:hover{ opacity:.85; }

/* Layout izquierda/derecha */
.nav__left{ display:flex; align-items:center; gap:12px; }
.nav__right{ display:flex; align-items:center; gap:12px; }

/* Logo */
.brand__img{ height:40px; display:block; }

/* (Opcional) oculta slogan si no lo usas en navbar */
.nav .slogan{ display:none; }

/* Slogan al lado del logo */
.navbar__slogan {
  font-size: 0.9rem;
  color: #fff;
  margin-left: 10px;
  font-weight: 400;
  letter-spacing: 0.5px;
  white-space: nowrap;
}
