/* ============================================================
   ELEGANZ BRASIL — Catálogo
   Mesma paleta e tipografia do site principal: galeria branca,
   vitrines escuras para as fotos, assinatura azul-marinho.
   ============================================================ */
:root{
  --onix:#FFFFFF;
  --terciopelo:#F5F7FA;
  --terciopelo-2:#EDF1F6;
  --ambar:#1B2A4A;      /* assinatura — azul-marinho */
  --oro:#2E4573;        /* detalhe metálico */
  --champan:#0E1116;    /* texto principal */
  --ceniza:#5C6675;
  --ceniza-2:#A4AEBC;
  --verde:#1FA37A;      /* SÓ WhatsApp */
  --line:rgba(27,42,74,.14);
  --line-soft:rgba(14,17,22,.08);
  --panel:#0B0D13;
  --panel-2:#161B29;
  --glow:rgba(126,156,214,.20);
  --r:14px;
  --ease:cubic-bezier(.16,1,.3,1);
  --pad:clamp(16px,4vw,56px);
  --maxw:1440px;
  --hdr:60px;
}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{background:var(--onix);color:var(--champan);
  font-family:'Inter',system-ui,sans-serif;line-height:1.6;overflow-x:hidden;
  -webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;color:inherit;background:none;border:none;cursor:pointer}
::selection{background:var(--ambar);color:#fff}
:focus-visible{outline:2px solid var(--ambar);outline-offset:3px;border-radius:4px}
.mono{font-family:'Space Mono',monospace;font-variant-numeric:tabular-nums}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}

/* ---------- cabeçalho ---------- */
header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.93);
  backdrop-filter:blur(12px);border-bottom:1px solid var(--line-soft)}
.bar{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);height:var(--hdr);
  display:flex;align-items:center;gap:18px}
.brand{font-weight:600;letter-spacing:.14em;font-size:1.02rem;color:var(--ambar);
  text-transform:uppercase;white-space:nowrap}
.brand small{display:block;font-size:.54rem;letter-spacing:.34em;color:var(--ceniza);
  font-weight:400;margin-top:-3px}
.hdr-sp{flex:1}
.hdr-n{font-family:'Space Mono',monospace;font-size:.74rem;color:var(--ceniza);white-space:nowrap}
.wa-mini{display:inline-flex;align-items:center;gap:7px;background:var(--verde);color:#fff;
  padding:8px 15px;border-radius:100px;font-size:.82rem;font-weight:500;white-space:nowrap}
.wa-mini svg{width:15px;height:15px}
@media(max-width:640px){.wa-mini span{display:none}.wa-mini{padding:9px}}

/* ---------- controles ---------- */
.controls{position:sticky;top:var(--hdr);z-index:50;
  background:linear-gradient(rgba(255,255,255,.96),rgba(255,255,255,.86));
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line-soft);padding:12px 0}
.busca{position:relative;display:flex;align-items:center;margin-bottom:10px}
.busca svg{position:absolute;left:16px;width:19px;height:19px;color:var(--ceniza);pointer-events:none}
.busca input{width:100%;font-family:inherit;font-size:1rem;color:var(--champan);
  padding:13px 44px 13px 46px;border-radius:100px;border:1px solid var(--line);
  background:var(--onix);transition:border-color .2s,box-shadow .2s}
.busca input:focus{outline:none;border-color:var(--ambar);box-shadow:0 0 0 3px rgba(27,42,74,.08)}
.busca .clr{position:absolute;right:8px;width:30px;height:30px;border-radius:50%;
  color:var(--ceniza);font-size:1rem;display:grid;place-items:center}
.busca .clr:hover{background:var(--terciopelo-2);color:var(--champan)}

.linha{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px;align-items:center}
.linha::-webkit-scrollbar{display:none}
.linha+.linha{margin-top:8px}
.chip{flex-shrink:0;font-size:.8rem;font-weight:500;padding:7px 14px;border-radius:100px;
  background:var(--terciopelo);border:1px solid var(--line);color:var(--champan);white-space:nowrap;
  transition:background .2s,border-color .2s,color .2s}
.chip:hover{border-color:var(--ambar);color:var(--ambar)}
.chip.on{background:var(--ambar);color:#fff;border-color:var(--ambar)}
.chip .n{font-family:'Space Mono',monospace;font-size:.68rem;opacity:.62;margin-left:6px}
.rot{font-family:'Space Mono',monospace;font-size:.66rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ceniza-2);flex-shrink:0;padding-right:2px}

/* ---------- barra de estado ---------- */
.estado{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding:14px 0 4px;font-size:.9rem}
.estado .tit{font-weight:500;font-size:1.06rem}
.estado .cnt{font-family:'Space Mono',monospace;color:var(--oro);font-size:.8rem}
.estado .limpar{margin-left:auto;font-size:.8rem;color:var(--ceniza);
  border:1px solid var(--line);border-radius:100px;padding:6px 13px}
.estado .limpar:hover{border-color:var(--ambar);color:var(--ambar)}

/* ---------- grade de produtos ---------- */
.grade{display:grid;gap:13px;grid-template-columns:repeat(2,1fr);padding:16px 0 0}
@media(min-width:640px){.grade{grid-template-columns:repeat(3,1fr)}}
@media(min-width:980px){.grade{grid-template-columns:repeat(4,1fr)}}
@media(min-width:1320px){.grade{grid-template-columns:repeat(5,1fr)}}
.card{border-radius:var(--r);overflow:hidden;background:var(--terciopelo);
  border:1px solid var(--line-soft);display:flex;flex-direction:column;
  transition:transform .4s var(--ease),border-color .3s,box-shadow .4s;cursor:pointer}
.card:hover{transform:translateY(-3px);border-color:var(--line);
  box-shadow:0 12px 32px -18px rgba(14,17,22,.4)}
/* As fotos vêm com fundo próprio (branco, mão, bancada). Fundo claro e recorte cheio
   deixam a grade uniforme; sobre o painel escuro elas ficavam como recortes flutuando. */
.card .ph{position:relative;aspect-ratio:1/1;overflow:hidden;display:grid;place-items:center;
  background:var(--terciopelo-2)}
.card .ph img{width:100%;height:100%;object-fit:cover;
  transition:transform .5s var(--ease)}
.card:hover .ph img{transform:scale(1.04)}
.card .vid{position:absolute;top:8px;right:8px;background:rgba(0,0,0,.55);color:#fff;
  border-radius:100px;padding:3px 8px;font-size:.6rem;display:flex;align-items:center;gap:4px;
  backdrop-filter:blur(4px)}
.card .vid svg{width:9px;height:9px}
.card .body{padding:11px 12px 13px;display:flex;flex-direction:column;gap:4px;flex:1}
.card .bd{font-family:'Space Mono',monospace;font-size:.58rem;letter-spacing:.15em;
  text-transform:uppercase;color:var(--oro)}
.card .nm{font-weight:500;font-size:.94rem;line-height:1.2;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card .dt{font-size:.73rem;color:var(--ceniza);line-height:1.35;margin-top:auto;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card .fb{display:inline-block;margin-top:5px;font-family:'Space Mono',monospace;
  font-size:.62rem;color:var(--ambar);background:var(--terciopelo-2);
  border-radius:4px;padding:2px 7px;align-self:flex-start}

.mais{display:block;margin:32px auto;padding:14px 32px;border-radius:100px;font-weight:500;
  border:1px solid var(--ambar);color:var(--ambar);transition:background .2s,color .2s}
.mais:hover{background:var(--ambar);color:#fff}
.vazio{text-align:center;color:var(--ceniza);padding:60px 20px}
.vazio b{display:block;color:var(--champan);font-size:1.1rem;margin-bottom:6px}
.carregando{text-align:center;color:var(--ceniza);padding:40px;font-size:.9rem}

/* ---------- ficha ---------- */
.modal{position:fixed;inset:0;z-index:100;display:none;place-items:center;padding:16px}
.modal.on{display:grid}
.modal .fundo{position:absolute;inset:0;background:rgba(10,13,20,.62);backdrop-filter:blur(5px)}
.ficha{position:relative;background:var(--onix);border-radius:18px;max-width:1000px;width:100%;
  max-height:92vh;overflow:auto;display:grid;grid-template-columns:1fr;
  box-shadow:0 30px 80px -30px rgba(0,0,0,.6)}
@media(min-width:820px){.ficha{grid-template-columns:1.05fr .95fr}}
.ficha .fechar{position:absolute;top:12px;right:12px;z-index:3;width:36px;height:36px;
  border-radius:50%;background:rgba(255,255,255,.9);display:grid;place-items:center;
  font-size:1.1rem;box-shadow:0 2px 10px rgba(0,0,0,.16)}
.ficha .fotos{background:var(--terciopelo-2);
  padding:0;display:flex;flex-direction:column;gap:12px;min-height:300px}
.ficha .fotos .big{aspect-ratio:1/1;display:grid;place-items:center;overflow:hidden}
.ficha .fotos .big img{width:100%;height:100%;object-fit:cover}
.ficha .fotos video{width:100%;border-radius:10px}
.ficha .mini{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.ficha .mini button{width:52px;height:52px;border-radius:8px;overflow:hidden;
  border:2px solid transparent;background:rgba(255,255,255,.07);opacity:.6}
.ficha .mini button.on{border-color:#fff;opacity:1}
.ficha .mini img{width:100%;height:100%;object-fit:cover}
.ficha .dados{padding:26px 26px 24px;display:flex;flex-direction:column;gap:14px}
.ficha .mk{font-family:'Space Mono',monospace;font-size:.66rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--oro)}
.ficha h2{font-weight:500;font-size:1.6rem;line-height:1.15;letter-spacing:-.01em}
.ficha .cod{font-family:'Space Mono',monospace;font-size:.72rem;color:var(--ceniza-2)}
.ficha table{width:100%;border-collapse:collapse;font-size:.88rem}
.ficha td{padding:8px 0;border-bottom:1px solid var(--line-soft);vertical-align:top}
.ficha td:first-child{color:var(--ceniza);width:42%;font-size:.82rem}
.ficha td:last-child{font-weight:500}
.wa-btn{display:flex;align-items:center;justify-content:center;gap:9px;background:var(--verde);
  color:#fff;padding:15px;border-radius:100px;font-weight:500;font-size:1rem;margin-top:auto}
.wa-btn svg{width:19px;height:19px}
.wa-btn:hover{filter:brightness(1.07)}

footer{border-top:1px solid var(--line-soft);margin-top:60px;padding:30px 0;
  color:var(--ceniza);font-size:.84rem}
.foot{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
