:root{
  --ink:#0B0B0C; --muted:#6E6E73; --line:#E3E3E5; --tile:#F2F2F3;
  --accent:#D2500F; --page:#FFFFFF;
  --font:'Helvetica Neue',Helvetica,Arial,'Segoe UI',system-ui,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--page);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}

/* ---------- topo ---------- */
.topbar{background:var(--ink);color:#fff;font-size:11px;letter-spacing:.14em;
  text-transform:uppercase;text-align:center;padding:9px 16px}
.header{display:flex;flex-direction:column;align-items:center;gap:16px;
  padding:24px 20px 0;border-bottom:1px solid var(--line)}
.header .logo{height:52px;width:auto;display:block}
.nav{display:flex;gap:34px}
.nav a{font-size:13px;letter-spacing:.14em;text-transform:uppercase;padding:0 2px 14px;
  border-bottom:2px solid transparent;color:var(--muted)}
.nav a:hover{color:var(--ink)}
.nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--ink);font-weight:700}

/* ---------- coleção ---------- */
.collection{padding:44px 20px 8px;max-width:1440px;margin:0 auto}
.collection-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:22px}
.collection-head h1{margin:0;font-size:26px;font-weight:700;letter-spacing:-.01em}
.collection-head .count{font-size:11px;letter-spacing:.16em;color:var(--muted);text-transform:uppercase}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}

/* ---------- card ---------- */
.card{display:block;position:relative;background:var(--page)}
/* display:block obrigatorio — o tile é um <a> (link p/ PDP) e <a> nasce inline,
   onde aspect-ratio nao gera caixa e a foto colapsa p/ altura zero */
.tile{display:block;position:relative;aspect-ratio:1/1;overflow:hidden;
  background:radial-gradient(circle at 50% 42%,#FBFBFC 0%,#F1F1F2 58%,#E7E7E9 100%)}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
  padding:6% 4%;transition:opacity .35s ease}
.tile img.alt{opacity:0}
.card:hover .tile img.main{opacity:0}
.card:hover .tile img.alt{opacity:1}
.fav{position:absolute;top:14px;right:14px;width:22px;height:22px;border:0;background:none;
  padding:0;cursor:pointer;color:var(--ink);opacity:.85}
.fav svg{width:100%;height:100%;display:block}
.fav:hover{opacity:1}

.swatches{display:flex;gap:7px;flex-wrap:nowrap;align-items:center;padding:12px 8px 2px 0}
.swatches span{width:34px;height:22px;border-radius:2px;overflow:hidden;display:block;
  flex:0 0 auto;background:var(--tile)}
.swatches span:first-child{box-shadow:0 2px 0 0 var(--ink)}
.swatches img{width:100%;height:100%;object-fit:cover;display:block}
.more-colors{font-size:11px;color:var(--muted);align-self:center;letter-spacing:.02em}

.info{padding:6px 14px 30px 0}
.badge{display:block;font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--accent);margin-bottom:5px}
.badge.tag{display:inline-block;border:1px solid var(--accent);padding:3px 6px;
  line-height:1;letter-spacing:.1em;margin-bottom:7px}
.name{font-size:15px;font-weight:700;margin:0 0 3px;letter-spacing:-.005em}
.sub{font-size:13px;color:var(--muted);margin:0 0 7px;line-height:1.35}
.price{font-size:13px;margin:0}

/* ---------- capa (index) ---------- */
.cover{max-width:1440px;margin:0 auto;padding:44px 20px 20px;
  display:grid;grid-template-columns:repeat(2,1fr);gap:4px}
.cover a{position:relative;display:block}
.cover .shot{aspect-ratio:4/5;overflow:hidden;
  background:radial-gradient(circle at 50% 42%,#FBFBFC 0%,#F1F1F2 58%,#E7E7E9 100%)}
.cover img{width:100%;height:100%;object-fit:contain;padding:8%;display:block;
  transition:transform .5s ease}
.cover a:hover img{transform:scale(1.03)}
.cover h2{margin:16px 0 4px;font-size:22px;font-weight:700}
.cover p{margin:0 0 26px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* ---------- rodapé ---------- */
.foot{border-top:1px solid var(--line);margin-top:40px;padding:28px 20px 46px;text-align:center}
.foot img{height:34px;opacity:.9}
.foot p{font-size:11px;color:var(--muted);letter-spacing:.06em;margin:12px 0 0}

@media (max-width:1023px){
  .grid{grid-template-columns:repeat(2,1fr);gap:3px}
  .collection{padding:32px 12px 4px}
  .collection-head h1{font-size:21px}
  .name{font-size:14px}
  .sub{font-size:12px}
  .swatches span{width:30px;height:20px}
  .header .logo{height:42px}
  .nav{gap:26px}
  .cover{grid-template-columns:1fr;padding:26px 12px 10px}
  .cover h2{font-size:19px}
}
