/* Carrossel de empresas verificadas em stories: página inicial e páginas de
   nicho do guia (arquivo próprio desde 12/10/2026). */
/* ─── Empresas verificadas em stories (08/10/2026, dono: "carrossel no
   formato de story, mais alto") ──────────────────────────────────────────
   Foto inteira em 9:16, barrinha de progresso no topo (a do story da vez
   enche e o trilho avança sozinho; pausa com o mouse em cima ou fora da
   tela), anel com a logo, nome com o selo e o botão de agendar embaixo. */
.hm-stories { margin-bottom: 46px; }
.hm-stories-topo { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.hm-stories-olho { display: inline-flex; align-items: center; gap: 7px; margin: 0 0 6px; font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #15803D; }
.hm-stories-olho .selo-verificado { color: #22C55E; display: inline-flex; }
.hm-stories-topo .hm-titulo { margin: 0; }
.hm-stories-setas { display: flex; gap: 8px; flex: none; }
.hm-stories-seta { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; cursor: pointer;
  border: 1px solid var(--hm-borda, #E5E7EB); background: #fff; color: #0F1020; transition: background .16s ease, color .16s ease, transform .16s ease, opacity .16s ease; }
.hm-stories-seta:hover:not(:disabled) { background: #0F1020; color: #fff; transform: translateY(-1px); }
.hm-stories-seta:disabled { opacity: .35; cursor: default; }
.hm-stories-trilho { --story-l: 214px; display: grid; grid-auto-flow: column; grid-auto-columns: var(--story-l); gap: 14px;
  overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: 2px;
  padding: 4px 2px 14px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.hm-stories-trilho::-webkit-scrollbar { display: none; }
.hm-story { position: relative; display: flex; flex-direction: column; justify-content: space-between; aspect-ratio: 9 / 16; min-height: 0;
  border-radius: 22px; overflow: hidden; isolation: isolate; scroll-snap-align: start; text-decoration: none; color: #fff;
  background: linear-gradient(160deg, color-mix(in srgb, var(--cor) 70%, #0B0C10), #0B0C10);
  box-shadow: 0 18px 36px -22px rgba(15,16,32,.55); transition: transform .25s ease, box-shadow .25s ease; }
.hm-story[hidden] { display: none; }
.hm-story::before { content: ''; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,0) 26%, rgba(0,0,0,0) 46%, rgba(0,0,0,.6) 70%, rgba(0,0,0,.92) 100%); }
.hm-story-foto { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.hm-story:hover { transform: translateY(-4px); box-shadow: 0 26px 44px -22px rgba(15,16,32,.65); }
.hm-story:hover .hm-story-foto { transform: scale(1.06); }
.hm-story:focus-visible { outline: 3px solid var(--cor); outline-offset: 3px; }
.hm-story-barra { position: absolute; top: 10px; left: 12px; right: 12px; height: 3px; border-radius: 3px; background: rgba(255,255,255,.32); overflow: hidden; }
.hm-story-barra i { display: block; height: 100%; width: 0; background: #fff; border-radius: inherit; }
.hm-story.hm-story-ativo .hm-story-barra i { animation: hm-story-enche var(--story-tempo, 4.5s) linear forwards; }
.hm-stories-trilho.hm-pausa .hm-story-ativo .hm-story-barra i { animation-play-state: paused; }
@keyframes hm-story-enche { from { width: 0; } to { width: 100%; } }
.hm-story-quem { display: flex; align-items: center; gap: 9px; padding: 24px 12px 0; min-width: 0; }
.hm-story-anel { flex: none; width: 42px; height: 42px; border-radius: 50%; padding: 2px;
  background: conic-gradient(from 210deg, #22C55E, #A3E635, var(--cor), #22C55E); }
.hm-story-anel img, .hm-story-anel b { display: grid; place-items: center; width: 100%; height: 100%; border-radius: 50%; object-fit: cover;
  border: 2px solid #0B0C10; background: #fff; color: #fff; font-size: 13px; font-weight: 800; letter-spacing: .02em; }
.hm-story-area { justify-self: start; display: inline-flex; align-items: flex-start; gap: 5px; max-width: 100%; padding: 5px 9px; border-radius: 10px;
  font-size: 10px; font-weight: 700; line-height: 1.3; letter-spacing: .05em; text-transform: uppercase; color: #fff;
  background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.2); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.hm-story-area .icone-svg { flex: none; margin-top: 1px; }
.hm-story-base { display: grid; gap: 7px; padding: 0 14px 14px; }
.hm-story-nome { font-size: 18px; font-weight: 800; line-height: 1.2; letter-spacing: -.01em; text-shadow: 0 2px 12px rgba(0,0,0,.45);
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.hm-story-nome .hm-selo { display: inline-flex; vertical-align: -2px; margin-left: 5px; color: #22C55E; }
.hm-story-local { display: flex; align-items: center; gap: 5px; min-width: 0; font-size: 12.5px; color: rgba(255,255,255,.78); }
.hm-story-local .icone-svg { flex: none; }
.hm-story-local span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hm-story-botao { display: inline-flex; align-items: center; justify-content: center; gap: 7px; margin-top: 4px; padding: 10px 12px; border-radius: 999px;
  font-size: 13px; font-weight: 700; background: #fff; color: #0F1020; transition: background .2s ease, color .2s ease; }
.hm-story:hover .hm-story-botao { background: #22C55E; color: #fff; }
@media (max-width: 640px) {
  .hm-stories { margin-bottom: 36px; }
  .hm-stories-setas { display: none; }
  .hm-stories-trilho { --story-l: 168px; gap: 10px; margin-inline: -16px; padding-inline: 16px; scroll-padding-inline: 16px; }
  .hm-story { border-radius: 18px; }
  .hm-story-nome { font-size: 16px; }
  .hm-story-anel { width: 36px; height: 36px; }
  .hm-story-botao { font-size: 12px; padding: 9px 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .hm-story, .hm-story-foto { transition: none; }
  .hm-story.hm-story-ativo .hm-story-barra i { animation: none; width: 100%; }
}

/* Stories infinitos (08/10/2026): cópias do laço fora quando não precisa. */
.hm-story.hm-story-sem-laco { display: none; }
/* Stories sem sublinhado (08/10/2026, dono): o story inteiro é link e a
   regra geral de link sublinhava ramo, nome e botão ao tocar/passar o mouse. */
.hm-story, .hm-story:hover, .hm-story:focus, .hm-story:active, .hm-story *, .hm-story:hover * { text-decoration: none !important; }
.hm-story-quem { gap: 7px; }
.hm-story-selo { display: inline-flex; flex: none; color: #22C55E; filter: drop-shadow(0 1px 4px rgba(0,0,0,.45)); }
.hm-story-anel { position: relative; }
.hm-story-anel .hm-story-selo { position: absolute; right: -5px; bottom: -4px; width: 20px; height: 20px; display: grid; place-items: center;
  border-radius: 50%; background: #0B0C10; filter: none; }
.hm-story-anel .hm-story-selo svg { width: 18px; height: 18px; border: 0; background: none; }
/* Selo sem o círculo preto atrás (08/10/2026, dono). */
.hm-story-anel .hm-story-selo { background: none; width: auto; height: auto; right: -4px; bottom: -3px; filter: drop-shadow(0 1px 3px rgba(0,0,0,.5)); }
/* Ramo menor no story, numa linha só (08/10/2026, dono: "diminua o nome da área"). */
.hm-story-area { padding: 3px 8px; gap: 4px; border-radius: 8px; font-size: 8.5px; letter-spacing: .04em; align-items: center; }
.hm-story-area .icone-svg { width: 10px; height: 10px; margin-top: 0; }
.hm-story-area > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
/* Celular (08/10/2026, dono): um story no centro e os vizinhos aparecendo
   nas laterais. O recuo das pontas é metade da sobra da tela, então o
   "rolar até o story" do home.js já o deixa centralizado. */
@media (max-width: 640px) {
  .hm-stories-trilho { --story-l: min(62vw, 240px); gap: 12px; margin-inline: -16px;
    padding-inline: calc((100vw - var(--story-l)) / 2); scroll-padding-inline: 0; }
  .hm-story { scroll-snap-align: center; transition: transform .3s ease, opacity .3s ease, box-shadow .3s ease; }
  .hm-story:not(.hm-story-ativo) { transform: scale(.9); opacity: .6; }
  .hm-story:hover { transform: none; }
  .hm-story:not(.hm-story-ativo):hover { transform: scale(.9); }
  .hm-story-nome { font-size: 17px; }
}
@media (max-width: 640px) and (prefers-reduced-motion: reduce) {
  .hm-story:not(.hm-story-ativo) { transform: none; opacity: 1; }
}
/* Celular: escala e brilho vêm do home.js a cada quadro (--s, --o), sem transição. */
@media (max-width: 640px) {
  .hm-story, .hm-story:not(.hm-story-ativo), .hm-story:hover, .hm-story:not(.hm-story-ativo):hover { transform: scale(var(--s, .9)); opacity: var(--o, .6); transition: box-shadow .3s ease; will-change: transform; }
}
@media (max-width: 640px) and (prefers-reduced-motion: reduce) {
  .hm-story, .hm-story:not(.hm-story-ativo) { transform: none; opacity: 1; }
}


/* Título da seção fora da página inicial (o .hm-titulo mora em home.css). */
.hm-stories-topo .hm-titulo { font-size: clamp(22px, 3vw, 30px); letter-spacing: -.8px; font-weight: 800; line-height: 1.15; }
