/* Favoritos: controles compartilhados e composição aprovada do painel. */
.favorite-heart{
  appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 44px;
  width:44px;
  min-width:44px;
  height:44px;
  min-height:44px;
  margin:0;
  padding:0;
  border:0;
  border-radius:50%;
  background:transparent!important;
  color:var(--favorite-color,currentColor);
  cursor:pointer;
  position:relative;
  z-index:22;
  touch-action:manipulation;
}
.favorite-heart__icon{display:block;width:20px;height:20px;pointer-events:none}
.favorite-heart__icon path{fill:none;stroke:currentColor;stroke-width:1.8}
.favorite-heart[aria-pressed="true"] .favorite-heart__icon path{fill:currentColor}
.favorite-heart::before,.favorite-heart::after{content:none!important;background:transparent!important}
.favorite-heart:focus-visible{outline:3px solid var(--blue,#006ab8);outline-offset:3px}

/* Nomes de produtos conservam palavras inteiras; o hífen explícito continua natural. */
.product-showcase .showcase-title-row{display:flex;align-items:flex-start;min-width:0}
.showcase-title-row h3,
#compare .compare-vs-products .compare-product-title-row h3,
.lado-a-lado .duel-model-row .duel-model{
  white-space:normal;
  overflow-wrap:normal;
  word-break:normal;
  hyphens:manual;
}
.product-showcase .showcase-title-row h3{min-width:0;flex:1 1 auto}
.product-showcase .showcase-title-row .favorite-heart{align-self:flex-start;flex:none}

/* COMPARE: coração antes do X existente, na mesma linha vertical do título. */
#compare .compare-vs-products .compare-product-title-row{
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  gap:clamp(8px,1vw,14px);
  min-width:0;
}
#compare .compare-vs-products .compare-product-title-row h3{
  min-width:0;
  flex:0 1 auto;
  white-space:normal;
}
#compare .compare-vs-products .compare-product-title-row .favorite-heart{align-self:flex-start;flex:0 0 44px}
#compare .compare-vs-products .compare-product-title-row .compare-remove-product{align-self:flex-start}

@media(max-width:700px){
  #compare.compare-page-section .compare-product-title-row{column-gap:4px}
  /* Só o desenho se aproxima do X; o botão continua com 44 × 44 px. */
  #compare.compare-page-section .compare-product-title-row .favorite-heart__icon{position:relative;left:6px}
}

/* COMPARE desktop: o desenho e sua área de clique acompanham o título fluido. */
@media(min-width:1061px){
  #compare .compare-vs-products .compare-product-title-row .favorite-heart{
    --compare-heart-size:max(44px,calc(var(--compare-vs-text-unit,1px)*40));
    flex:0 0 var(--compare-heart-size);
    width:var(--compare-heart-size);
    min-width:var(--compare-heart-size);
    height:var(--compare-heart-size);
    min-height:var(--compare-heart-size);
  }
  #compare .compare-vs-products .compare-product-title-row .favorite-heart__icon{
    width:calc(var(--compare-vs-text-unit,1px)*24);
    height:calc(var(--compare-vs-text-unit,1px)*24);
  }
}

/* VS: somente a decoração fica sem interação; os nomes e corações continuam acessíveis. */
.lado-a-lado .duel-stage{z-index:21;pointer-events:none}
.lado-a-lado .duel-model-row{display:flex;flex-direction:column;align-items:flex-start;min-width:0;gap:4px}
.lado-a-lado .duel-model-row .duel-model{
  flex:none;
  width:100%;
  min-width:0;
  white-space:normal;
  overflow:visible;
}
.lado-a-lado .duel-model-row .favorite-heart{flex:none;pointer-events:auto}
.lado-a-lado .duel-side-0 .duel-model-row .favorite-heart{align-self:flex-start;margin-inline-start:calc(-1 * var(--favorite-card-inset,12px))}
.lado-a-lado .duel-side-1 .duel-model-row .favorite-heart{align-self:flex-end;margin-inline-end:calc(-1 * var(--favorite-card-inset,12px))}

/* Cards: o desenho acompanha a fonte, não a ampliação da imagem/respiros.
 * A caixa contém o ícone e conserva 44px como mínimo de toque. */
.product-showcase .showcase-title-row .favorite-heart{
  --favorite-card-icon-size:calc(var(--showcase-card-font-unit,1px)*20);
}
.lado-a-lado .duel-model-row .favorite-heart{
  --favorite-card-icon-size:max(16px,calc(var(--duel-model-font-size,21px)*20/21));
}
:is(.product-showcase .showcase-title-row,.lado-a-lado .duel-model-row) .favorite-heart{
  --favorite-card-hit-size:max(44px,calc(var(--favorite-card-icon-size) + 24px));
  --favorite-card-inset:calc((var(--favorite-card-hit-size) - var(--favorite-card-icon-size))/2);
  flex:none;
  width:var(--favorite-card-hit-size);
  min-width:var(--favorite-card-hit-size);
  height:var(--favorite-card-hit-size);
  min-height:var(--favorite-card-hit-size);
}
:is(.product-showcase .showcase-title-row,.lado-a-lado .duel-model-row) .favorite-heart__icon{
  width:var(--favorite-card-icon-size);
  height:var(--favorite-card-icon-size);
}
/* Os títulos compactos do painel são fixos e não usam a escala da janela. */
.atleta-panel .product-showcase .showcase-title-row .favorite-heart{
  --favorite-card-icon-size:20px;
}

/* O fade estático vive somente no texto do showcase e dos títulos COMPARE.
 * O padding amplia a área realmente pintada no Chromium; a margem negativa
 * compensa a largura útil e não desloca o coração no fluxo. */
.showcase-title-row h3[data-title-fade="true"],
#compare .compare-vs-products .compare-product-title-row h3[data-title-fade="true"]{
  overflow:visible;
  padding-inline-end:var(--title-fade-reach,0px);
  margin-inline-end:calc(-1 * var(--title-fade-reach,0px));
  -webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 12px),transparent 100%);
  mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 12px),transparent 100%);
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-size:100% 100%;
  mask-size:100% 100%;
  -webkit-mask-clip:border-box;
  mask-clip:border-box;
}

/* O showcase global é amplo; no painel o card favorito permanece compacto. */
.atleta-panel .product-showcase{
  width:auto!important;
  max-width:none!important;
  position:static;
  left:auto;
  transform:none;
  margin-inline:0!important;
  border-top:0;
  padding-top:0;
}
.atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards){
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:22px;
  padding:0;
  border-top:0;
  margin:0;
}
.atleta-panel .atleta-panel__favorite-product{width:100%;min-width:0}
.atleta-panel .atleta-panel__favorite-product .showcase-card{
  width:100%;
  min-width:0;
  grid-row:auto!important;
  grid-template-rows:none!important;
  grid-column:auto!important;
  border-left:0!important;
  padding-bottom:10px;
}
.atleta-panel .atleta-panel__favorite-product .showcase-copy{
  display:block;
  grid-row:auto!important;
  grid-template-rows:none!important;
}
.atleta-panel .atleta-panel__favorites-overview-empty,
.atleta-panel .atleta-panel__favorites-empty{margin:0;color:#626870;font-size:15px;line-height:1.5}
.atleta-panel .atleta-panel__favorites-overview-empty a,
.atleta-panel .atleta-panel__favorites-empty a{color:inherit;font-weight:690;text-decoration:underline;text-underline-offset:3px}

/* Métricas do card compacto; não afeta showcases com resumo fora do painel. */
.atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards) .showcase-art{
  width:100%;
  max-width:100%;
  height:190px!important;
  aspect-ratio:auto!important;
  margin:10px 0 0;
}
.atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards) .showcase-art img{
  position:static!important;
  top:auto!important;
  left:auto!important;
  width:100%;
  height:173px!important;
  object-fit:contain;
}
@media(min-width:701px){
  .atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards) .showcase-copy{padding:20px 20px 0}
  .atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards) .showcase-intro{padding-bottom:20px}
  .atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards) .showcase-brand{font-size:10px;margin-bottom:8px}
  .atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards) .showcase-copy h3{font-size:24px;line-height:1.1;margin-bottom:10px}
  .atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards) .showcase-concept{font-size:14px;line-height:1.5}
  .atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards) .showcase-price{font-size:15px;line-height:1.35;margin-bottom:14px}
  .atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards) .showcase-copy>.link-arrow{font-size:14px;line-height:1.45;gap:8px}
  .atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards) .showcase-copy>.link-arrow span{font-size:20px}
}
@media(max-width:700px){
  .atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards){gap:20px}
  .atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards) .showcase-card{border-radius:14px;padding-bottom:8px}
  .atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards) .showcase-art{height:133px!important;margin-top:8px}
  .atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards) .showcase-art::before{top:25px;height:89px;left:7%;width:86%;border-radius:8px}
  .atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards) .showcase-art img{height:124px!important}
  .atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards) .showcase-copy{padding:14px 12px 0}
  .atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards) .showcase-intro{padding-bottom:19px}
  .atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards) .showcase-brand{font-size:9px;margin-bottom:7px}
  .atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards) .showcase-copy h3{font-size:20px;line-height:1.1;margin-bottom:10px}
  .atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards) .showcase-concept{font-size:12px;line-height:1.5}
  .atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards) .showcase-price{font-size:13px;margin-bottom:10px}
  .atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards) .showcase-copy>.link-arrow{font-size:12px;line-height:1.4;gap:8px}
  .atleta-panel :is(.atleta-panel__favorites-overview-card,.atleta-panel__favorites-cards) .showcase-copy>.link-arrow span{font-size:18px}
}

/* Overview, lista, busca e estado vazio seguem os selectors privados finais. */
.atleta-panel .atleta-panel__favorites-overview-open{margin-top:0}
.atleta-panel .atleta-panel__guest-favorites{margin-top:0}
.atleta-panel .atleta-panel__favorites .atleta-panel__list-search{margin-bottom:22px}
.atleta-panel .atleta-panel__favorites-count{margin-top:0}
.atleta-panel .atleta-panel__favorites-more{margin-top:0}
.atleta-panel .atleta-panel__favorites-search-empty{margin-bottom:22px}
.atleta-panel [data-favorites-view]{margin:0;padding:0;border-top:0}
.atleta-panel [data-favorites-view]:has(> [data-favorites-empty]:not([hidden])) > .atleta-panel__list-search,
.atleta-panel [data-favorites-view]:has(> [data-favorites-empty]:not([hidden])) > .atleta-panel__history-intro:not(.atleta-panel__favorites-empty){display:none}
.atleta-panel .atleta-panel__favorite-product > .atleta-panel__inline-feedback,
.atleta-panel .atleta-panel__comparison > [data-favorites-feedback]{margin-top:22px}

/* O link guest é o primeiro filho do body: uma única linha abaixo e o gap comum. */
.atleta-panel[data-guest="true"] .atleta-panel__guest-favorites{
  flex:none;
  margin:0 0 var(--atleta-section-gap);
  padding:18px 0;
  border:0;
  border-bottom:1px solid #e7e9ec;
}

.atleta-panel[data-guest="true"]:has(.atleta-panel__guest-favorites:not([hidden])) .atleta-panel__body{padding-top:0}

/* Confirmação: a miniatura do catálogo não recebe fundo cinza. */
#favorites-remove-dialog .favorites-remove-product{display:flex;align-items:center;gap:16px;margin:0 0 22px}
#favorites-remove-dialog .favorites-remove-image{display:block;flex:none;width:64px;height:64px;object-fit:contain;border-radius:12px;background:transparent}
#favorites-remove-dialog .favorites-remove-image[hidden]{display:none}
#favorites-remove-dialog .favorites-remove-product p{margin:0;color:var(--muted);font-size:1rem;line-height:1.65;min-width:0}

@media(max-width:700px){
  .atleta-panel .atleta-panel__favorite-product > .atleta-panel__inline-feedback,
  .atleta-panel .atleta-panel__comparison > [data-favorites-feedback]{margin-top:20px}
  .atleta-panel .atleta-panel__guest-favorites{padding-block:18px}
}

[data-favorites-announcement]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
