/* Selo — vistaselo.com.br — sistema visual
   Direção: oryzo.ai (narrativa editorial) + ramp.com (cor única dominante,
   serif heroica, composição assimétrica), aplicada com Design Taste Stack
   (emil-design-eng / impeccable / taste-skill). Brand própria da Selo —
   sem diálogo com LA CERDA. Ver tokens.css para a origem de cada cor.
   tokens.css é carregado via <link> separado no <head> de cada página
   (antes deste arquivo) — NÃO via @import, que serializa a busca de
   tokens.css depois de baixar e parsear este arquivo inteiro (perf QA
   25/09/2026: ~150-300ms de LCP/FCP perdidos por página). */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

body {
  margin: 0;
  background: var(--selo-cream);
  color: var(--selo-ink);
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
ul { list-style: none; margin: 0; padding: 0; }
h1, h2, h3, h4 { font-family: var(--font-display); font-weight: 600; margin: 0 0 var(--space-4); line-height: 1.12; letter-spacing: -0.01em; }
p { margin: 0 0 var(--space-4); }

.container { max-width: var(--max-width); margin: 0 auto; padding: 0 var(--space-6); }
@media (max-width: 640px) { .container { padding: 0 var(--space-4); } }

.visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

.skip-link {
  position: absolute; left: -9999px; top: 0; background: var(--selo-ink);
  color: var(--selo-text-on-dark); padding: var(--space-3) var(--space-4);
  z-index: 1000; border-radius: 0 0 var(--radius-sm) 0;
}
.skip-link:focus { left: 0; }

:focus-visible { outline: 2px solid var(--selo-gold); outline-offset: 2px; }

/* ---------- botões ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2);
  padding: 0.85rem 1.6rem; border-radius: var(--radius-sm); border: 1px solid transparent;
  font-size: var(--fs-small); font-weight: 600; letter-spacing: 0.02em; text-transform: uppercase;
  transition: background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.btn:active { transform: translateY(1px); }
.btn-primary { background: var(--selo-ink); color: var(--selo-text-on-dark); }
.btn-primary:hover { background: var(--selo-ink-soft); }
.btn-gold { background: var(--selo-gold); color: var(--selo-ink); }
.btn-gold:hover { background: var(--selo-gold-dim); }
.btn-outline { background: transparent; border-color: currentColor; color: var(--selo-ink); }
.btn-outline:hover { background: var(--selo-ink); color: var(--selo-text-on-dark); }
.btn-ghost { background: transparent; color: var(--selo-ink); text-transform: none; font-weight: 500; }
.btn-ghost:hover { color: var(--selo-gold-dim); }
.btn-block { width: 100%; }
.btn[disabled] { opacity: 0.45; pointer-events: none; }
.btn-sm { padding: 0.55rem 1rem; font-size: var(--fs-micro); }

/* ---------- header ---------- */
.site-header {
  position: sticky; top: 0; z-index: var(--z-header);
  background: var(--selo-cream); border-bottom: 1px solid var(--selo-line-on-cream);
}
.site-header__bar { display: flex; align-items: center; justify-content: space-between; padding-top: var(--space-4); padding-bottom: var(--space-4); gap: var(--space-6); }
.site-header__logo img { height: 30px; width: auto; }
.site-header__nav { display: flex; gap: var(--space-8); }
.site-header__nav a { font-size: var(--fs-small); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 600; }
.site-header__nav a[aria-current="page"] { color: var(--selo-gold-dim); }
.site-header__actions { display: flex; align-items: center; gap: var(--space-4); }
.cart-pill {
  display: inline-flex; align-items: center; gap: var(--space-2); border: 1px solid var(--selo-ink);
  border-radius: 999px; padding: 0.4rem 0.9rem; font-size: var(--fs-small); font-weight: 600;
  transition: background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.cart-pill:hover { background: var(--selo-ink); color: var(--selo-text-on-dark); }
.nav-toggle { display: none; background: none; border: 0; padding: var(--space-2); }
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after {
  content: ""; display: block; width: 22px; height: 2px; background: var(--selo-ink); position: relative;
  transition: transform var(--dur-base) var(--ease-out), opacity var(--dur-base) var(--ease-out);
}
.nav-toggle span::before { position: absolute; top: -7px; }
.nav-toggle span::after { position: absolute; top: 7px; }

@media (max-width: 860px) {
  .site-header__nav { position: fixed; inset: 0 0 0 auto; width: min(82vw, 340px); height: 100vh; z-index: var(--z-header);
    background: var(--selo-ink); color: var(--selo-text-on-dark); flex-direction: column; justify-content: center;
    padding: var(--space-8); gap: var(--space-6); transform: translateX(100%);
    transition: transform var(--dur-base) var(--ease-out); }
  .site-header__nav.is-open { transform: translateX(0); }
  .site-header__nav a { color: var(--selo-text-on-dark); font-size: var(--fs-h3); }
  .nav-toggle { display: block; }
  .nav-scrim {
    position: fixed; inset: 0; background: rgba(31, 29, 34, 0.55); z-index: calc(var(--z-header) - 1);
    opacity: 0; pointer-events: none; transition: opacity var(--dur-base) var(--ease-out);
  }
  .nav-scrim.is-open { opacity: 1; pointer-events: auto; }
}
@media (min-width: 861px) { .nav-scrim { display: none; } }

/* ---------- footer ---------- */
.site-footer { background: var(--selo-ink); color: var(--selo-text-on-dark); padding: var(--space-16) 0 var(--space-8); margin-top: var(--space-32); }
.site-footer a:hover { color: var(--selo-gold); }
.site-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: var(--space-8); padding-bottom: var(--space-12); border-bottom: 1px solid var(--selo-line); }
.site-footer__brand img { height: 26px; margin-bottom: var(--space-4); filter: brightness(0) invert(1); }
.site-footer__manifesto { color: var(--selo-muted); font-size: var(--fs-small); max-width: 32ch; }
/* era h4 — rótulo de grupo de links do footer, não título de seção do
   conteúdo da página (páginas diferentes chegam no footer em profundidades
   de heading distintas, então nenhum nível fixo de heading funciona pra
   todas — a11y QA 25/09/2026, heading-order). Vira <p> + <nav aria-label>
   por grupo, padrão recomendado pra rótulo de navegação de rodapé. */
.site-footer__heading { font-family: var(--font-body); font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: 0.08em; color: var(--selo-muted); margin-bottom: var(--space-4); }
.site-footer li { margin-bottom: var(--space-2); font-size: var(--fs-small); }
.site-footer__bottom { display: flex; justify-content: space-between; align-items: center; padding-top: var(--space-6); font-size: var(--fs-micro); color: var(--selo-muted-2); flex-wrap: wrap; gap: var(--space-2); }
@media (max-width: 760px) { .site-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .site-footer__grid { grid-template-columns: 1fr; } }

/* ---------- hero / home ---------- */
.hero {
  background: var(--selo-ink); color: var(--selo-text-on-dark);
  padding: var(--space-32) 0 var(--space-24); position: relative; overflow: clip;
}
.hero__grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: var(--space-12); align-items: end; }
.hero__eyebrow { text-transform: uppercase; letter-spacing: 0.18em; font-size: var(--fs-micro); color: var(--selo-gold); font-weight: 700; margin-bottom: var(--space-6); }
.hero h1 { font-size: var(--fs-hero); color: #fff; max-width: 14ch; }
.hero__lede { color: var(--selo-muted); max-width: 42ch; font-size: 1.1rem; margin: var(--space-6) 0 var(--space-8); }
.hero__actions { display: flex; gap: var(--space-4); flex-wrap: wrap; }
.hero__figure { aspect-ratio: 3 / 4; border-radius: var(--radius-lg); overflow: hidden; background: var(--selo-ink-soft); border: 1px solid var(--selo-line); }
.hero__figure img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 860px) { .hero__grid { grid-template-columns: 1fr; } .hero { padding: var(--space-24) 0 var(--space-16); } .hero__figure { order: -1; aspect-ratio: 16/10; } }

.section { padding: var(--space-24) 0; }
.section--tight { padding: var(--space-16) 0; }
.section__head { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--space-6); margin-bottom: var(--space-8); }
.section__head h2 { max-width: 20ch; }
.section__kicker { text-transform: uppercase; letter-spacing: 0.14em; font-size: var(--fs-micro); font-weight: 700; color: var(--selo-gold-dim); margin-bottom: var(--space-3); display: block; }

/* categorias em destaque */
.category-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-6); }
.category-card { position: relative; border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 4/5; background: var(--selo-ink-soft); }
.category-card img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--dur-base) var(--ease-out); }
.category-card:hover img { transform: scale(1.03); }
.category-card__overlay { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(31,29,34,0.88) 0%, rgba(31,29,34,0.1) 55%); display: flex; flex-direction: column; justify-content: flex-end; padding: var(--space-8); color: #fff; }
.category-card__overlay p { color: var(--selo-muted); margin-bottom: var(--space-3); font-size: var(--fs-small); }
.category-card--soon .category-card__overlay { background: linear-gradient(0deg, rgba(31,29,34,0.92) 10%, rgba(31,29,34,0.5) 100%); }
.badge-soon { display: inline-block; align-self: flex-start; margin-bottom: var(--space-3); background: var(--selo-gold); color: var(--selo-ink); font-size: var(--fs-micro); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; padding: 0.2rem 0.6rem; border-radius: 999px; }
@media (max-width: 700px) { .category-grid { grid-template-columns: 1fr; } }

/* prova social / manifesto curto */
.strip { background: var(--selo-cream-soft); border-top: 1px solid var(--selo-line-on-cream); border-bottom: 1px solid var(--selo-line-on-cream); }
.strip__row { display: flex; gap: var(--space-12); justify-content: space-between; padding: var(--space-12) 0; flex-wrap: wrap; }
.strip__item { flex: 1 1 220px; }
.strip__item h3 { font-size: var(--fs-h3); margin-bottom: var(--space-2); }
.strip__item p { color: var(--selo-text-muted); font-size: var(--fs-small); margin: 0; }

/* ---------- listagem de coleção ---------- */
.collection-head { padding: var(--space-16) 0 var(--space-8); border-bottom: 1px solid var(--selo-line-on-cream); }
.collection-head h1 { margin-bottom: var(--space-3); }
.collection-head p { color: var(--selo-text-muted); max-width: 60ch; }
.product-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-6) var(--space-6); padding: var(--space-12) 0; }
@media (max-width: 900px) { .product-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .product-grid { grid-template-columns: 1fr; } }
.product-card__figure { aspect-ratio: 4/5; border-radius: var(--radius-md); overflow: hidden; background: var(--selo-cream-soft); margin-bottom: var(--space-3); }
.product-card__figure img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--dur-base) var(--ease-out); }
.product-card:hover .product-card__figure img { transform: scale(1.04); }
.product-card__name { font-family: var(--font-display); font-size: 1.05rem; margin-bottom: var(--space-1); }
.product-card__price { color: var(--selo-text-muted); font-size: var(--fs-small); }
.empty-state { text-align: center; padding: var(--space-24) 0; color: var(--selo-text-muted); }
/* era h3 (pulava do h1 da página direto pro h3 — falha de heading-order,
   a11y QA 25/09/2026); promovido a h2 mantendo o tamanho visual com
   --fs-h3, mesmo padrão já usado em .pdp__context h2/.summary-card h2. */
.empty-state h2 { color: var(--selo-ink); font-size: var(--fs-h3); }
.skeleton { background: linear-gradient(90deg, var(--selo-cream-soft) 25%, #e3d8c4 37%, var(--selo-cream-soft) 63%); background-size: 400% 100%; animation: skeleton-loading 1.4s ease infinite; border-radius: var(--radius-md); }
@keyframes skeleton-loading { 0% { background-position: 100% 50%; } 100% { background-position: 0 50%; } }
@media (prefers-reduced-motion: reduce) { .skeleton { animation: none; background: var(--selo-cream-soft); } }

/* ---------- PDP ---------- */
.pdp { padding: var(--space-12) 0 var(--space-24); }
.pdp__grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: var(--space-16); align-items: start; }
.pdp__gallery-main { aspect-ratio: 4/5; border-radius: var(--radius-lg); overflow: hidden; background: var(--selo-cream-soft); margin-bottom: var(--space-3); }
.pdp__gallery-main img { width: 100%; height: 100%; object-fit: cover; }
.pdp__thumbs { display: flex; gap: var(--space-3); }
.pdp__thumbs button { width: 72px; aspect-ratio: 4/5; border-radius: var(--radius-sm); overflow: hidden; border: 2px solid transparent; padding: 0; background: var(--selo-cream-soft); }
.pdp__thumbs button[aria-current="true"] { border-color: var(--selo-gold); }
.pdp__thumbs img { width: 100%; height: 100%; object-fit: cover; }
.pdp__info { position: sticky; top: 96px; }
.pdp__category { text-transform: uppercase; letter-spacing: 0.1em; font-size: var(--fs-micro); font-weight: 700; color: var(--selo-gold-dim); }
.pdp__info h1 { margin-top: var(--space-2); }
.pdp__price { font-family: var(--font-display); font-size: 1.6rem; margin: var(--space-3) 0 var(--space-6); }
.pdp__desc { color: var(--selo-text-muted); margin-bottom: var(--space-6); }
.field-group { margin-bottom: var(--space-6); }
.field-group__label { display: block; font-size: var(--fs-small); font-weight: 600; margin-bottom: var(--space-2); }
.swatch-row { display: flex; gap: var(--space-2); flex-wrap: wrap; }
.swatch { border: 1px solid var(--selo-line-on-cream); background: #fff; border-radius: var(--radius-sm); padding: 0.55rem 1rem; font-size: var(--fs-small); font-weight: 600; transition: border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out); }
.swatch[aria-pressed="true"] { border-color: var(--selo-ink); background: var(--selo-ink); color: var(--selo-text-on-dark); }
.swatch[disabled] { opacity: 0.35; text-decoration: line-through; pointer-events: none; }
.stock-note { font-size: var(--fs-small); margin: var(--space-3) 0; }
.stock-note--low { color: var(--selo-danger); }
.stock-note--ok { color: var(--selo-success); }
.pdp__context { margin-top: var(--space-12); padding-top: var(--space-8); border-top: 1px solid var(--selo-line-on-cream); }
.pdp__context h2 { font-size: var(--fs-h3); }
.pdp__context p { color: var(--selo-text-muted); }
@media (max-width: 860px) { .pdp__grid { grid-template-columns: 1fr; } .pdp__info { position: static; } }

/* ---------- carrinho / checkout (clareza > espetáculo) ---------- */
.commerce-page { padding: var(--space-12) 0 var(--space-24); }
.commerce-page h1 { margin-bottom: var(--space-8); }

/* Reserva de altura pros containers preenchidos via JS (skeleton -> dado real OU
   estado vazio) — sem isso, catálogo vazio (estado de hoje, antes do 1º produto
   cadastrado) faz o layout colapsar do tamanho do skeleton pro tamanho de 2 linhas
   de texto, gerando CLS crítico (medido: até 0,999 em /colecoes/vestuario/, achado
   real da auditoria wq-performance/Lighthouse). min-height não limita conteúdo
   maior (checkout preenchido, carrinho com item) — só evita o colapso quando o
   conteúdo final é pequeno (estado vazio, formulário curto). */
#product-grid, #cart-root, #pdp-root, #checkout-root, #conta-root { min-height: 60vh; }
#product-grid:has(.empty-state), #cart-root:has(.empty-state), #checkout-root:has(.empty-state) {
  display: flex; align-items: center; justify-content: center;
}
.cart-layout, .checkout-layout { display: grid; grid-template-columns: 1.5fr 1fr; gap: var(--space-12); align-items: start; }
@media (max-width: 900px) { .cart-layout, .checkout-layout { grid-template-columns: 1fr; } }

.cart-line { display: grid; grid-template-columns: 88px 1fr auto; gap: var(--space-4); padding: var(--space-6) 0; border-bottom: 1px solid var(--selo-line-on-cream); align-items: center; }
.cart-line__figure { width: 88px; aspect-ratio: 4/5; border-radius: var(--radius-sm); overflow: hidden; background: var(--selo-cream-soft); }
.cart-line__figure img { width: 100%; height: 100%; object-fit: cover; }
.cart-line__name { font-family: var(--font-display); font-size: 1.05rem; margin-bottom: var(--space-1); }
.cart-line__meta { font-size: var(--fs-small); color: var(--selo-text-muted); margin-bottom: var(--space-2); }
.qty-stepper { display: inline-flex; align-items: center; border: 1px solid var(--selo-line-on-cream); border-radius: var(--radius-sm); }
.qty-stepper button { width: 32px; height: 32px; background: none; border: 0; font-size: 1rem; }
.qty-stepper input { width: 36px; text-align: center; border: 0; background: none; font: inherit; }
.cart-line__price { text-align: right; font-weight: 600; }
.cart-line__remove { display: block; margin-top: var(--space-2); font-size: var(--fs-micro); color: var(--selo-text-muted); text-decoration: underline; text-underline-offset: 3px; }

.summary-card { background: var(--selo-cream-soft); border-radius: var(--radius-lg); padding: var(--space-8); position: sticky; top: 96px; }
.summary-card h2 { font-size: var(--fs-h3); }
.summary-row { display: flex; justify-content: space-between; font-size: var(--fs-small); padding: var(--space-2) 0; }
.summary-row--total { font-size: 1.15rem; font-family: var(--font-display); border-top: 1px solid var(--selo-line-on-cream); margin-top: var(--space-3); padding-top: var(--space-4); }
.summary-note { font-size: var(--fs-micro); color: var(--selo-text-muted); margin-top: var(--space-4); }

/* stepper de checkout */
.checkout-steps { display: flex; gap: var(--space-6); margin-bottom: var(--space-8); font-size: var(--fs-small); font-weight: 600; color: var(--selo-text-muted); flex-wrap: wrap; }
.checkout-steps li { display: flex; align-items: center; gap: var(--space-2); }
.checkout-steps li.is-active { color: var(--selo-ink); }
.checkout-steps li .num { width: 22px; height: 22px; border-radius: 50%; border: 1px solid currentColor; display: inline-flex; align-items: center; justify-content: center; font-size: var(--fs-micro); }
.checkout-steps li.is-active .num { background: var(--selo-gold); border-color: var(--selo-gold); color: var(--selo-ink); }

.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
.form-grid .span-2 { grid-column: 1 / -1; }
@media (max-width: 560px) { .form-grid { grid-template-columns: 1fr; } .form-grid .span-2 { grid-column: auto; } }
.field { display: flex; flex-direction: column; gap: var(--space-2); margin-bottom: var(--space-4); }
.field label { font-size: var(--fs-small); font-weight: 600; }
.field input, .field select, .field textarea {
  font: inherit; padding: 0.75rem 0.9rem; border: 1px solid var(--selo-line-on-cream); border-radius: var(--radius-sm);
  background: #fff; color: var(--selo-ink); transition: border-color var(--dur-fast) var(--ease-out);
}
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--selo-gold-dim); }
.field-error { color: var(--selo-danger); font-size: var(--fs-micro); min-height: 1em; }
.field.has-error input, .field.has-error select { border-color: var(--selo-danger); }
.checkout-panel { background: #fff; border: 1px solid var(--selo-line-on-cream); border-radius: var(--radius-lg); padding: var(--space-8); margin-bottom: var(--space-6); }
.shipping-options { display: flex; flex-direction: column; gap: var(--space-3); }
.shipping-option { display: flex; justify-content: space-between; align-items: center; border: 1px solid var(--selo-line-on-cream); border-radius: var(--radius-sm); padding: var(--space-4); cursor: pointer; }
.shipping-option[data-selected="true"] { border-color: var(--selo-gold-dim); background: var(--selo-cream-soft); }
.review-line { display: flex; justify-content: space-between; padding: var(--space-2) 0; font-size: var(--fs-small); }
.alert { border-radius: var(--radius-sm); padding: var(--space-4); font-size: var(--fs-small); margin-bottom: var(--space-4); }
.alert-error { background: #f7e2dc; color: #7a2f1e; }
.alert-success { background: #e3ead8; color: #3a4f2c; }
.alert-pending { background: #f3e6c9; color: #6b511b; }
.spinner { width: 18px; height: 18px; border-radius: 50%; border: 2px solid rgba(255,255,255,0.35); border-top-color: currentColor; animation: spin 700ms linear infinite; display: inline-block; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .spinner { animation-duration: 1.4s; } }

/* ---------- página de status do pedido ---------- */
.order-status { text-align: center; padding: var(--space-32) 0; }
.order-status__icon { width: 64px; height: 64px; border-radius: 50%; margin: 0 auto var(--space-6); display: flex; align-items: center; justify-content: center; font-size: 1.6rem; }
.order-status__icon--ok { background: var(--selo-success); color: #fff; }
.order-status__icon--falhou { background: var(--selo-danger); color: #fff; }
.order-status__icon--pendente { background: var(--selo-gold); color: var(--selo-ink); }
.order-status h1 { margin-bottom: var(--space-3); }
.order-status p { color: var(--selo-text-muted); max-width: 46ch; margin: 0 auto var(--space-8); }

/* ---------- sobre / contato ---------- */
/* .prose fica só pra composição inline (ex. dentro de .contact-card); pra
   envolver um .container inteiro (ex. /sobre/), usar .manifesto-prose —
   evitar empilhar .container + .prose no mesmo nó (os dois disputam
   max-width com a mesma especificidade, resultado dependia de ordem no
   arquivo; achado do vv-design 25/09). */
.prose { max-width: 68ch; }
.prose p { color: var(--selo-text-muted, #6b6558); font-size: 1.05rem; }
.manifesto-prose { max-width: 68ch; margin: 0 auto; }
.manifesto-page .manifesto-prose p { font-size: 1.15rem; line-height: 1.7; color: #4a463c; }
.manifesto-page h1 { margin-bottom: var(--space-8); }

.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-12); }
@media (max-width: 760px) { .contact-grid { grid-template-columns: 1fr; } }
.contact-card { background: var(--selo-ink); color: var(--selo-text-on-dark); border-radius: var(--radius-lg); padding: var(--space-8); }
.contact-card a { color: var(--selo-gold); font-weight: 600; }

/* ---------- conta ---------- */
.order-row { display: grid; grid-template-columns: auto 1fr auto auto; gap: var(--space-4); align-items: center; padding: var(--space-4) 0; border-bottom: 1px solid var(--selo-line-on-cream); font-size: var(--fs-small); }
.status-chip { padding: 0.25rem 0.7rem; border-radius: 999px; font-size: var(--fs-micro); font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; background: var(--selo-cream-soft); }
.status-chip--pago, .status-chip--enviado, .status-chip--entregue { background: #e3ead8; color: #3a4f2c; }
.status-chip--cancelado { background: #f7e2dc; color: #7a2f1e; }

/* placeholder de asset pendente (Regra 3 — nunca redesenhar logo em código).
   --selo-text-muted é calibrado pra fundo CLARO (4.94:1 AA); em fundo
   ESCURO (.site-footer) usa --selo-muted-2 (4.65:1 AA) — ver tokens.css.
   perf/a11y QA 25/09/2026: token errado no footer dava só 2.88:1, falha AA. */
.asset-pending {
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px dashed var(--selo-text-muted); color: var(--selo-text-muted);
  font-size: var(--fs-micro); text-transform: uppercase; letter-spacing: 0.05em;
  padding: var(--space-2) var(--space-3); border-radius: var(--radius-sm);
}
.site-footer .asset-pending { border-color: var(--selo-muted-2); color: var(--selo-muted-2); }
