/* =============================================================
   BARION COLLECTION · Acervo e página da peça
   Complementa o styles.css: usa os mesmos tokens (cores, fontes,
   escala tipográfica, ritmo). Nada de cor ou fonte nova.
   Leitura 45+: texto da ficha um pouco maior que o corpo do site,
   preço e estado em peso legível, alvos de toque de 44px ou mais.
   ============================================================= */

.loja main{ padding-top:var(--nav-h); }
.loja .nav__links a[aria-current]{ color:var(--or-ancien); text-decoration:underline; text-underline-offset:8px; text-decoration-thickness:1px; }
.loja .mobile-menu nav a[aria-current]{ color:var(--or); }
@media (max-height: 31.25em){ .loja main{ padding-top:0; } }

/* Migalhas */
.migalhas{ padding-top:32px; margin-bottom:32px; font-size:var(--fs-pequeno); line-height:var(--lh-pequeno); color:var(--taupe); }
.migalhas ol{ display:flex; flex-wrap:nowrap; align-items:center; gap:0; list-style:none; min-width:0; }
.migalhas li{ display:inline-flex; align-items:center; flex:none; }
/* A barra fica no FIM do item anterior (nunca abre linha nova) e não é lida pelo leitor de tela */
.migalhas li:not(:last-child)::after{ content:"/"; content:"/" / ""; margin:0 10px; color:var(--taupe); }
/* O último item (nome da peça, que já é o título da página) cabe numa linha, com reticências */
.migalhas li:last-child{ flex:1 1 auto; min-width:0; }
.migalhas li:last-child > span{ display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.migalhas a{ color:var(--vert); text-decoration:underline; text-decoration-color:var(--or-ancien-fio); text-underline-offset:4px; display:inline-block; padding-block:12px; }
.migalhas a:hover{ color:var(--or-ancien); }
.migalhas [aria-current]{ color:var(--encre); }

/* ---------------- Topo do acervo ---------------- */
.acervo-topo{ padding-bottom:48px; }
.acervo-topo__titulo{ font-family:var(--serif); font-weight:500; font-size:var(--fs-h1); line-height:1.08; color:var(--vert); max-width:18ch; }
.acervo-topo__titulo em{ font-style:italic; color:var(--or-ancien); }
.acervo-topo__lead{ margin-top:24px; font-size:1.0625rem; max-width:56ch; }
.acervo-topo__contagem{
  margin-top:32px; padding-top:20px; border-top:1px solid var(--linha);
  font-size:var(--fs-rotulo); font-weight:500; letter-spacing:var(--ls-rotulo); text-transform:uppercase; color:var(--vert);
}

/* ---------------- Vitrine ---------------- */
.vitrine{ padding-bottom:var(--secao); }
.grade-pecas{ display:grid; gap:56px 24px; list-style:none; }
@media (min-width: 30em){ .grade-pecas{ grid-template-columns:repeat(2, 1fr); gap:56px 24px; } }
@media (min-width: 64em){ .grade-pecas{ grid-template-columns:repeat(3, 1fr); gap:72px 40px; } }

.card-peca__link{ display:flex; flex-direction:column; gap:6px; text-decoration:none; color:var(--encre); }
.card-peca__img{ position:relative; overflow:hidden; background:var(--travertin); margin-bottom:18px; }
.card-peca__img img{ width:100%; aspect-ratio:4/5; object-fit:cover; transition:transform .9s var(--ease); }
.card-peca__link:hover .card-peca__img img{ transform:scale(1.02); }
.card-peca__grife{ font-size:var(--fs-rotulo); font-weight:500; letter-spacing:var(--ls-rotulo); text-transform:uppercase; color:var(--or-ancien); }
.card-peca__nome{ font-family:var(--serif); font-weight:600; font-size:var(--fs-h3); line-height:1.2; color:var(--vert); }
.card-peca__link:hover .card-peca__nome{ text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; text-decoration-color:var(--or-ancien); }
.card-peca__estado{ font-size:var(--fs-pequeno); color:var(--taupe); }
.card-peca__preco{ margin-top:6px; font-size:1.125rem; font-weight:600; color:var(--vert); font-variant-numeric:lining-nums tabular-nums; }
.card-peca__avista{ font-size:var(--fs-pequeno); font-weight:500; color:var(--taupe); }
.card-peca__parc{ font-size:var(--fs-pequeno); color:var(--taupe); }
.card-peca--vendida .card-peca__img img{ opacity:.82; }

/* Selos de situação: sempre com texto, nunca só cor */
.selo{
  display:inline-flex; align-items:center; min-height:32px; padding:6px 12px;
  font-family:var(--sans); font-size:var(--fs-rotulo); font-weight:600; letter-spacing:.12em; text-transform:uppercase; line-height:1.2;
}
.card-peca__img .selo, .selo--grande{ position:absolute; left:12px; top:12px; }
.selo--reservada{ background:var(--ivoire); color:var(--vert); border:1px solid var(--or-ancien); }
.selo--vendida{ background:var(--vert); color:var(--ivoire); border:1px solid var(--vert); }

/* Filtros (só com mais de 20 peças): links, sem formulário */
.filtros{ display:grid; gap:24px; margin-bottom:56px; padding:28px 0; border-block:1px solid var(--linha); }
@media (min-width: 64em){ .filtros{ grid-template-columns:repeat(4, 1fr); } }
.filtros__rotulo{ font-family:var(--sans); font-size:var(--fs-rotulo); font-weight:600; letter-spacing:var(--ls-rotulo); text-transform:uppercase; color:var(--vert); margin-bottom:10px; }
.filtros__lista{ display:flex; flex-wrap:wrap; gap:8px; list-style:none; }
.filtro{
  display:inline-flex; align-items:center; min-height:44px; padding:8px 14px;
  font-size:var(--fs-pequeno); text-decoration:none; color:var(--encre);
  border:1px solid var(--linha-forte); background:transparent;
}
a.filtro:hover{ border-color:var(--vert); color:var(--vert); }
.filtro.is-ativo{ background:var(--vert); color:var(--ivoire); border-color:var(--vert); }
.filtro__n{ margin-left:6px; opacity:.85; }
.filtro--vazio{ color:var(--taupe); border-style:dashed; }
.filtros__resultado{ grid-column:1 / -1; font-weight:500; }
.vitrine__nada{ padding:48px 0; }

/* Estado vazio e 404 */
.acervo-vazio{ padding:24px 0 var(--secao); text-align:center; }
.acervo-vazio p{ margin-inline:auto; }
.acervo-vazio .h2{ margin-bottom:24px; }
.acervo-vazio--404{ padding-top:56px; }
.acervo-vazio--404 .eyebrow{ margin-bottom:20px; }
.acervo-vazio__acoes{ display:flex; flex-direction:column; align-items:center; gap:16px; margin-top:40px; }
@media (min-width: 48em){ .acervo-vazio__acoes{ flex-direction:row; justify-content:center; } }

/* Recém vendidas */
.vendidas{ background:var(--travertin); padding-block:var(--secao); }
.vendidas .eyebrow{ color:var(--vert); }
.vendidas .head{ margin-bottom:48px; }
.vendidas__lead{ margin-top:16px; }
.vendidas .card-peca__img{ background:var(--ivoire); }

/* Convite de procura */
.convite-procura{ padding-block:var(--secao); text-align:center; border-top:1px solid var(--linha); }
.convite-procura p{ margin:20px auto 32px; }

/* ---------------- Página da peça ---------------- */
.pdp{ padding-bottom:var(--secao); }
.pdp__grade{ display:grid; gap:40px; }
@media (min-width: 64em){
  .pdp__grade{ grid-template-columns:7fr 5fr; column-gap:clamp(48px, 5vw, 88px); align-items:start; }
}

/* Galeria */
.galeria__principal{ position:relative; background:var(--travertin); }
.galeria__foto{ display:block; cursor:zoom-in; }
.galeria__foto img{ width:100%; aspect-ratio:4/5; object-fit:contain; background:var(--travertin); }
.galeria__seta{
  position:absolute; top:50%; translate:0 -50%;
  width:48px; height:48px; display:flex; align-items:center; justify-content:center;
  background:rgba(246,243,235,.92); color:var(--vert); border:1px solid var(--linha-forte);
}
.galeria__seta:hover{ background:var(--vert); color:var(--ivoire); }
.galeria__seta--ant{ left:12px; }
.galeria__seta--prox{ right:12px; }
.galeria__seta .ic{ width:24px; height:24px; }
.galeria__barra{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:12px; }
.galeria__contador{ font-size:var(--fs-pequeno); color:var(--taupe); font-variant-numeric:tabular-nums; }
.galeria__zoom{
  display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:8px 12px;
  font-size:var(--fs-pequeno); font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--vert);
  text-decoration:underline; text-decoration-color:var(--or-ancien); text-underline-offset:5px;
}
.galeria__miniaturas{ display:grid; grid-template-columns:repeat(auto-fill, minmax(64px, 1fr)); gap:8px; margin-top:16px; list-style:none; }
@media (min-width: 48em){ .galeria__miniaturas{ grid-template-columns:repeat(auto-fill, minmax(84px, 1fr)); } }
.galeria__mini{ position:relative; display:block; border:1px solid transparent; outline-offset:2px; background:var(--travertin); }
.galeria__mini img{ width:100%; aspect-ratio:1; object-fit:cover; }
.galeria__mini[aria-current="true"]{ border-color:var(--vert); }
.galeria__mini[aria-current="true"]::after{ content:""; position:absolute; inset:0; border:3px solid var(--vert); box-shadow:inset 0 0 0 2px var(--ivoire); pointer-events:none; }
.galeria__mini:hover{ border-color:var(--or-ancien); }

/* Resumo de decisão */
.pdp__titulo{ font-weight:inherit; }
.pdp__titulo .pdp__grife{ display:block; font-family:var(--sans); font-size:var(--fs-rotulo); font-weight:600; letter-spacing:var(--ls-rotulo); text-transform:uppercase; line-height:1.4; color:var(--or-ancien); }
.pdp__titulo .pdp__nome{ display:block; margin-top:10px; font-family:var(--serif); font-weight:500; font-size:var(--fs-h2); line-height:1.12; color:var(--vert); }
.pdp__descritor{ margin-top:10px; color:var(--taupe); }
.pdp__preloved{ margin-top:16px; font-size:var(--fs-pequeno); line-height:var(--lh-pequeno); color:var(--taupe); }
.pdp__status{ margin-top:24px; display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; font-size:var(--fs-pequeno); line-height:var(--lh-pequeno); }
.pdp__preco{ margin-top:28px; padding-top:24px; border-top:1px solid var(--linha); }
.pdp__preco p{ max-width:none; }
.pdp__valor{ font-size:clamp(1.625rem, 1.5rem + .5vw, 1.875rem); font-weight:600; color:var(--vert); font-variant-numeric:lining-nums tabular-nums; letter-spacing:.01em; }
.pdp__avista{ font-size:var(--fs-pequeno); font-weight:500; color:var(--taupe); }
.pdp__parc{ margin-top:6px; color:var(--encre); }
.pdp__estado{ margin-top:28px; padding-top:24px; border-top:1px solid var(--linha); }
.pdp__estado-nome{ font-size:1.0625rem; }
.pdp__estado-nome strong{ font-weight:600; color:var(--vert); }
.pdp__estado-def{ margin-top:6px; font-size:var(--fs-pequeno); line-height:var(--lh-pequeno); color:var(--taupe); }
.escala{ display:grid; grid-template-columns:repeat(2, 1fr); gap:6px; margin-top:16px; list-style:none; }
@media (min-width: 30em){ .escala{ grid-template-columns:repeat(4, 1fr); } }
.escala__item{
  display:flex; align-items:center; justify-content:center; text-align:center; min-height:44px; padding:6px 8px;
  font-size:.875rem; line-height:1.3; color:var(--taupe); border:1px solid var(--linha);
}
.escala__item.is-atual{ color:var(--ivoire); background:var(--vert); border-color:var(--vert); font-weight:600; }
.pdp__ver-sinais{ display:inline-flex; align-items:center; min-height:44px; margin-top:8px; }
.pdp__aut{ display:flex; align-items:center; gap:16px; margin-top:28px; padding-top:24px; border-top:1px solid var(--linha); }
.pdp__aut img{ width:110px; height:auto; flex:none; }
.pdp__aut p{ font-size:var(--fs-pequeno); line-height:var(--lh-pequeno); }
.pdp__aut--texto .ic--lg{ width:28px; height:28px; }
.pdp__acoes{ display:grid; gap:12px; margin-top:32px; }
.pdp__acoes .btn{ width:100%; }
.pdp__atendimento{ margin-top:16px; font-size:var(--fs-pequeno); line-height:var(--lh-pequeno); color:var(--taupe); }
.garantias{ display:grid; gap:12px; margin-top:28px; padding-top:24px; border-top:1px solid var(--linha); list-style:none; }
.garantias li{ display:flex; align-items:flex-start; gap:12px; font-size:var(--fs-pequeno); line-height:var(--lh-pequeno); }
.garantias .ic{ color:var(--or-ancien); margin-top:1px; }

/* Detalhe (abaixo da dobra) */
.pdp__detalhe{ display:grid; gap:0 clamp(48px, 5vw, 88px); margin-top:88px; }
@media (min-width: 64em){ .pdp__detalhe{ grid-template-columns:1fr 1fr; } }
.ficha{ padding-block:36px; border-top:1px solid var(--or-ancien-fio); font-size:1.0625rem; }
.ficha:focus{ outline:none; }
.ficha__titulo{ font-family:var(--serif); font-weight:600; font-size:var(--fs-h3); line-height:1.2; color:var(--vert); margin-bottom:20px; }
.ficha__nota{ font-size:var(--fs-pequeno); line-height:var(--lh-pequeno); color:var(--taupe); margin-bottom:20px; }
#sinais{ grid-column:1 / -1; }

.sinais{ display:grid; gap:28px; list-style:none; }
@media (min-width: 48em){ .sinais{ grid-template-columns:repeat(2, 1fr); gap:32px 40px; } }
.sinal{ display:grid; grid-template-columns:44px 1fr; gap:16px; }
.sinal__n{
  width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  border:1px solid var(--or-ancien); color:var(--or-ancien); font-family:var(--serif); font-weight:600; font-size:1.5rem; line-height:1;
}
.sinal__corpo p{ max-width:none; }
.sinal__foto{ display:inline-block; margin-top:12px; text-decoration:none; color:var(--vert); }
.sinal__foto img{ width:min(240px, 100%); aspect-ratio:1; object-fit:cover; background:var(--travertin); }
.sinal__ver{
  display:inline-flex; align-items:center; gap:8px; min-height:44px; margin-top:4px;
  font-size:var(--fs-pequeno); font-weight:500; text-decoration:underline; text-decoration-color:var(--or-ancien); text-underline-offset:5px;
}

.tabela-ficha{ display:grid; }
.tabela-ficha div{ display:grid; grid-template-columns:minmax(120px, 42%) 1fr; gap:16px; padding-block:12px; border-bottom:1px solid var(--linha); }
.tabela-ficha dt{ color:var(--taupe); font-size:var(--fs-pequeno); line-height:1.5; padding-top:2px; }
.tabela-ficha dd{ color:var(--encre); font-weight:500; font-variant-numeric:lining-nums tabular-nums; }
.codigo{ display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; }
.codigo__copiar{
  display:inline-flex; align-items:center; gap:6px; min-height:44px; padding:8px 12px;
  font-size:var(--fs-pequeno); font-weight:500; color:var(--vert); border:1px solid var(--linha-forte);
}
.codigo__copiar:hover{ border-color:var(--vert); }
.codigo__copiar .ic{ width:16px; height:16px; }

.acompanha{ display:grid; gap:10px; list-style:none; }
.acompanha li{ display:flex; align-items:center; gap:12px; }
.acompanha .is-sim .ic{ color:var(--vert); }
.acompanha .is-nao{ color:var(--taupe); }
.acompanha .is-nao .ic{ color:var(--taupe); }

.ficha p + p{ margin-top:1.1em; }
.ficha .nota{ margin-top:20px; }

/* Relacionadas */
.relacionadas{ padding-block:var(--secao); border-top:1px solid var(--linha); }
.relacionadas .h2{ margin-bottom:48px; }
.relacionadas > .container > p{ margin:-24px 0 32px; }

/* ---------------- Zoom (lightbox) ---------------- */
.zoom{
  position:fixed; inset:0; width:100%; height:100%; max-width:none; max-height:none;
  margin:0; padding:0; border:0; background:var(--vert); color:var(--ivoire);
}
.zoom::backdrop{ background:rgba(18,41,31,.96); }
.zoom[open]{ display:grid; grid-template-rows:auto 1fr; }
.zoom__barra{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 12px 12px var(--gutter); }
.zoom__contador{ font-size:var(--fs-pequeno); color:var(--travertin); font-variant-numeric:tabular-nums; }
.zoom__fechar{ width:52px; height:52px; display:flex; align-items:center; justify-content:center; color:var(--or); }
.zoom__fechar .ic{ width:28px; height:28px; }
.zoom__palco{ overflow:auto; display:flex; align-items:center; justify-content:center; padding:0 8px 16px; touch-action:pinch-zoom pan-x pan-y; }
.zoom__img{ max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; }
.zoom__palco.is-ampliado{ align-items:flex-start; justify-content:flex-start; }
.zoom__palco.is-ampliado .zoom__img{ max-width:none; max-height:none; cursor:zoom-out; }
.zoom__img{ cursor:zoom-in; }
.zoom__seta{
  position:fixed; top:50%; translate:0 -50%;
  width:52px; height:52px; display:flex; align-items:center; justify-content:center;
  background:rgba(18,41,31,.75); color:var(--or); border:1px solid rgba(200,168,106,.45);
}
.zoom__seta:hover{ background:var(--or); color:var(--vert); }
.zoom__seta--ant{ left:8px; }
.zoom__seta--prox{ right:8px; }
.zoom__seta .ic{ width:26px; height:26px; }
.zoom :focus-visible{ outline:2px solid var(--or); outline-offset:3px; }
body.zoom-aberto{ overflow:hidden; }

/* ---------------- Home: chegadas recentes (preenchido pelo acervo-home.js) ---------------- */
.recentes{ margin-bottom:96px; }
.recentes .grade-pecas{ gap:48px 24px; }
@media (min-width: 64em){ .recentes .grade-pecas{ grid-template-columns:repeat(4, 1fr); gap:48px 28px; } }
.recentes .card-peca__img{ background:var(--ivoire); }
.recentes__acoes{ margin-top:48px; text-align:center; }

@media (prefers-reduced-motion: reduce){
  .card-peca__link:hover .card-peca__img img{ transform:none; }
}

@media print{
  .nav, .mobile-menu, .fab, .galeria__seta, .galeria__zoom, .zoom, .relacionadas, .footer{ display:none !important; }
  .loja main{ padding-top:0; }
}

/* Botão "Tamanho real" do zoom (criado pelo loja.js), sobre o verde */
.zoom__real.btn{ min-height:44px; padding:8px 16px; margin-left:auto; color:var(--or); border-color:rgba(200,168,106,.6); background:transparent; letter-spacing:.1em; }
.zoom__real.btn:hover, .zoom__real[aria-pressed="true"]{ background:var(--or); color:var(--vert); border-color:var(--or); }

/* -------------------------------------------------------------
   Rodada de acessibilidade (30-09-2026, relatório 14)
   ------------------------------------------------------------- */
/* Leitura 45+: o que decide a compra e protege contra golpe sai em 16/17px */
.pdp__status, .pdp__estado-def, .pdp__aut p, .pdp__atendimento, .garantias li, .ficha__nota, .pdp__preloved{
  font-size:var(--fs-corpo); line-height:var(--lh-corpo);
}
.pdp__atendimento{ color:var(--encre); }
/* Or Ancien só sobre marfim: sobre Travertin a grife vai em Vert */
.vendidas .card-peca__grife, .recentes .card-peca__grife{ color:var(--vert); }
/* Zoom: palco em tamanho real recebe foco pelo teclado */
.zoom__palco:focus-visible{ outline:3px solid var(--or); outline-offset:-3px; }
/* Filtro de resultado recebe foco programático */
.filtros__resultado:focus{ outline:none; }
/* Rodapé: links com alvo de 44px */
.footer__col ul{ gap:0; }
.footer__col a{ display:inline-flex; align-items:center; min-height:44px; }
/* Tela baixa ou zoom de 400%: os botões flutuantes não cobrem conteúdo nem foco */
@media (max-height: 31.25em){
  .fab--topo{ display:none; }
  .fab--wa{ width:44px; height:44px; right:8px; bottom:calc(8px + env(safe-area-inset-bottom, 0px)); }
  html{ scroll-padding-bottom:64px; }
}
/* Modo de alto contraste do Windows: o item atual não depende do preenchimento */
@media (forced-colors: active){
  .escala__item.is-atual, .filtro.is-ativo, .galeria__mini[aria-current="true"]{ outline:3px solid Highlight; outline-offset:-3px; }
}
