/* Vitrine SPA — HOME rica (banners Swiper, categorias com imagem, promoções). */
.hm-banners { border-radius: 16px; overflow: hidden; margin-bottom: 1.4rem; background: #eceef5; }
.hm-banners .swiper-slide img { width: 100%; max-height: 340px; object-fit: cover; display: block; }
.hm-banners .swiper-slide { cursor: pointer; }
/* slide de HTML customizado: contém o markup do admin; garante responsividade mínima sem
   impor layout (o CSS do próprio HTML manda). Vídeos/imagens não estouram a largura. */
.hm-slide-html { width: 100%; max-height: 340px; overflow: hidden; }
.hm-slide-html img, .hm-slide-html video { max-width: 100%; }
.hm-slide-html * { box-sizing: border-box; }
.hm-sec { margin: 1.6rem 0 .8rem; display: flex; align-items: baseline; justify-content: space-between; }
.hm-sec h3 { margin: 0; font-size: 1.05rem; font-weight: 800; }
.hm-sec button { border: none; background: none; font-size: .8rem; color: var(--indigo); font-weight: 700; cursor: pointer; }
/* Cards de categoria — customizáveis via config (altura, cores, legenda, borda) */
.hm-cats { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .8rem; }
.hm-cat { position: relative; background: #fff; border: 1px solid #eceef4; border-radius: 14px; overflow: hidden; cursor: pointer; text-align: center; transition: box-shadow .15s, transform .15s; padding: 0; display: flex; flex-direction: column; }
.hm-cat:hover { box-shadow: 0 10px 24px rgba(30,41,59,.12); transform: translateY(-2px); }
.hm-cat .im { height: var(--cat-card-h, 110px); background: #f6f7fb; display: flex; align-items: center; justify-content: center; color: #c3c9d6; font-size: 1.8rem; overflow: hidden; flex: none; }
/* imagem SEMPRE ancorada no topo do card (corta embaixo, nunca em cima) */
.hm-cat .im img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
.hm-cat .nm { padding: .55rem .5rem .2rem; font-size: .8rem; font-weight: 700; color: var(--cat-card-fonte, inherit); background: var(--cat-card-fundo, transparent); }
.hm-cat .dc { font-size: .66rem; color: #16a34a; font-weight: 800; padding: 0 .5rem .55rem; background: var(--cat-card-fundo, transparent); }
.hm-cat .dc.q { color: #98a1b3; font-weight: 700; }
/* modo sem borda: só sombra suave */
body.card-sem-borda .hm-cat { border: none; box-shadow: 0 2px 12px rgba(30,41,59,.08); }
/* modo OVERLAY: nome sobre a imagem (imagem ocupa o card inteiro) */
body.card-overlay .hm-cat .im { height: calc(var(--cat-card-h, 110px) + 46px); }
body.card-overlay .hm-cat .nm { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.1rem .5rem .5rem; color: var(--cat-card-fonte, #fff); background: var(--cat-card-fundo-overlay, linear-gradient(transparent, rgba(15,23,42,.72))); text-shadow: 0 1px 2px rgba(0,0,0,.35); }
body.card-overlay .hm-cat .dc { position: absolute; top: .4rem; right: .45rem; background: #fff; border-radius: 999px; padding: .12rem .5rem; box-shadow: 0 1px 4px rgba(0,0,0,.18); }
body.card-overlay .hm-cat .dc.q { background: rgba(255,255,255,.92); }
