/* ============================================================================
   Páginas de comércio — ficha de produto e carrinho de compras.
   Complementa landing.css/landing-v2.css. Lei de cor do design system:
   somente tokens (--m50ui-* com fallback --m50-*), nunca hex em `color`.
   ========================================================================== */

/* ─── Ficha de produto ──────────────────────────────────────────────────── */

.site-produto__grade {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
    gap: clamp(24px, 4vw, 56px);
    align-items: start;
}

@media (max-width: 860px) {
    .site-produto__grade { grid-template-columns: 1fr; }
}

.site-produto__midia { position: relative; }

.site-produto__selo {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 1;
    padding: 4px 12px;
    border-radius: var(--m50-radius-full, 999px);
    background: var(--m50ui-primary, var(--m50-primary));
    color: var(--m50ui-on-primary, var(--m50-text-inverse));
    font-size: var(--m50ui-fs-sm, 0.85rem);
    font-weight: 600;
}

.site-produto__selo:empty { display: none; }

.site-produto__imagem {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: var(--m50-radius-2xl, 24px);
    background: var(--m50ui-surface, var(--m50-surface-elevated));
}

.site-produto__miniaturas {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
    gap: var(--m50ui-sp-sm, 8px);
    margin-top: var(--m50ui-sp-sm, 8px);
}

.site-produto__miniaturas img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: var(--m50-radius-md, 8px);
}

.site-produto__nome { font-size: clamp(1.6rem, 3.2vw, 2.4rem); line-height: 1.15; margin: 0; }

.site-produto__sku {
    display: inline-block;
    margin-top: var(--m50ui-sp-xs, 4px);
    font-size: var(--m50ui-fs-sm, 0.85rem);
    color: var(--m50ui-text-secondary, var(--m50-text-secondary));
    letter-spacing: 0.04em;
}

.site-produto__precos {
    display: flex;
    align-items: baseline;
    gap: var(--m50ui-sp-md, 12px);
    margin-top: var(--m50ui-sp-lg, 16px);
}

.site-produto__preco {
    font-size: clamp(1.4rem, 2.6vw, 2rem);
    font-weight: 700;
    color: var(--m50ui-primary, var(--m50-primary));
}

.site-produto__preco-antigo {
    color: var(--m50ui-text-secondary, var(--m50-text-secondary));
    font-size: var(--m50ui-fs-md, 1rem);
}

.site-produto__disponibilidade {
    display: inline-block;
    margin-top: var(--m50ui-sp-xs, 4px);
    font-size: var(--m50ui-fs-sm, 0.85rem);
    color: var(--m50ui-success, var(--m50-success, var(--m50ui-text-secondary)));
    font-weight: 600;
}

.site-produto__descricao {
    margin-top: var(--m50ui-sp-lg, 16px);
    color: var(--m50ui-text-secondary, var(--m50-text-secondary));
    line-height: 1.6;
    white-space: pre-line; /* a descrição é texto corrido com quebras do autor */
}

.site-produto__adicionado {
    margin-top: var(--m50ui-sp-lg, 16px);
    padding: var(--m50ui-sp-md, 12px) var(--m50ui-sp-lg, 16px);
    border-radius: var(--m50-radius-lg, 12px);
    background: var(--m50ui-surface, var(--m50-surface-elevated));
    border: 1px solid var(--m50ui-border, var(--m50-border));
    display: flex;
    gap: var(--m50ui-sp-md, 12px);
    align-items: baseline;
    flex-wrap: wrap;
}

.site-produto__compra { margin-top: var(--m50ui-sp-xl, 24px); }

.site-produto__compra-campos {
    display: flex;
    align-items: end;
    gap: var(--m50ui-sp-md, 12px);
    border: 0;
    padding: 0;
    margin: 0;
    flex-wrap: wrap;
}

.site-produto__qtd {
    display: grid;
    gap: var(--m50ui-sp-xs, 4px);
    font-size: var(--m50ui-fs-sm, 0.85rem);
    color: var(--m50ui-text-secondary, var(--m50-text-secondary));
}

.site-produto__qtd input {
    width: 84px;
    padding: 10px 12px;
    border-radius: var(--m50-radius-md, 8px);
    border: 1px solid var(--m50ui-border, var(--m50-border));
    background: var(--m50ui-surface, var(--m50-surface-elevated));
    color: inherit;
    font: inherit;
}

.site-produto__specs { margin-top: clamp(32px, 5vw, 64px); }

.site-produto__specs-titulo { font-size: var(--m50ui-fs-xl, 1.35rem); margin-bottom: var(--m50ui-sp-lg, 16px); }

.site-produto__specs-lista {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: var(--m50ui-sp-sm, 8px) var(--m50ui-sp-xl, 24px);
    margin: 0;
}

.site-produto__spec {
    display: flex;
    justify-content: space-between;
    gap: var(--m50ui-sp-md, 12px);
    padding: 10px 0;
    border-bottom: 1px solid var(--m50ui-border, var(--m50-border));
}

.site-produto__spec dt { color: var(--m50ui-text-secondary, var(--m50-text-secondary)); }
.site-produto__spec dd { margin: 0; font-weight: 600; text-align: right; }

/* ─── Carrinho ──────────────────────────────────────────────────────────── */

.site-carrinho__selo-exemplo {
    display: inline-block;
    margin-left: var(--m50ui-sp-sm, 8px);
    padding: 2px 10px;
    border-radius: var(--m50-radius-full, 999px);
    background: var(--m50ui-surface, var(--m50-surface-elevated));
    border: 1px dashed var(--m50ui-border, var(--m50-border));
    color: var(--m50ui-text-secondary, var(--m50-text-secondary));
    font-size: var(--m50ui-fs-sm, 0.8rem);
    vertical-align: middle;
}

.site-carrinho__vazio {
    text-align: center;
    padding: clamp(24px, 5vw, 56px);
    display: grid;
    gap: var(--m50ui-sp-lg, 16px);
    justify-items: center;
    color: var(--m50ui-text-secondary, var(--m50-text-secondary));
}

.site-carrinho__confirmacao {
    text-align: center;
    padding: clamp(24px, 5vw, 56px);
    display: grid;
    gap: var(--m50ui-sp-md, 12px);
    justify-items: center;
    border-radius: var(--m50-radius-2xl, 24px);
    background: var(--m50ui-surface, var(--m50-surface-elevated));
}

.site-carrinho__codigo {
    font-family: var(--m50-font-mono, monospace);
    font-size: var(--m50ui-fs-xl, 1.35rem);
    letter-spacing: 0.08em;
    padding: 6px 16px;
    border-radius: var(--m50-radius-md, 8px);
    border: 1px dashed var(--m50ui-border, var(--m50-border));
}

.site-carrinho__itens {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: var(--m50ui-sp-lg, 16px);
}

.site-carrinho__itens th {
    text-align: left;
    font-size: var(--m50ui-fs-sm, 0.85rem);
    color: var(--m50ui-text-secondary, var(--m50-text-secondary));
    font-weight: 600;
    padding: 8px 10px;
    border-bottom: 1px solid var(--m50ui-border, var(--m50-border));
}

.site-carrinho__itens td {
    padding: 12px 10px;
    border-bottom: 1px solid var(--m50ui-border, var(--m50-border));
    vertical-align: middle;
}

.site-carrinho__item-nome a { color: inherit; font-weight: 600; }

.site-carrinho__item-sku {
    display: block;
    font-size: var(--m50ui-fs-sm, 0.8rem);
    color: var(--m50ui-text-secondary, var(--m50-text-secondary));
}

.site-carrinho__qtd fieldset,
.site-carrinho__itens form fieldset {
    display: flex;
    gap: var(--m50ui-sp-xs, 4px);
    align-items: center;
    border: 0;
    padding: 0;
    margin: 0;
}

.site-carrinho__qtd input {
    width: 64px;
    padding: 6px 8px;
    border-radius: var(--m50-radius-md, 8px);
    border: 1px solid var(--m50ui-border, var(--m50-border));
    background: var(--m50ui-surface, var(--m50-surface-elevated));
    color: inherit;
    font: inherit;
}

.site-carrinho__botao-mini {
    padding: 6px 10px;
    border-radius: var(--m50-radius-md, 8px);
    border: 1px solid var(--m50ui-border, var(--m50-border));
    background: transparent;
    color: var(--m50ui-text-secondary, var(--m50-text-secondary));
    font-size: var(--m50ui-fs-sm, 0.8rem);
    cursor: pointer;
}

.site-carrinho__botao-mini:hover { color: inherit; border-color: currentColor; }

.site-carrinho__subtotal { font-weight: 600; white-space: nowrap; }

.site-carrinho__remover {
    border: 0;
    background: transparent;
    color: var(--m50ui-text-secondary, var(--m50-text-secondary));
    cursor: pointer;
    font-size: 1rem;
    line-height: 1;
    padding: 6px;
    border-radius: var(--m50-radius-md, 8px);
}

.site-carrinho__remover:hover { color: var(--m50ui-danger, var(--m50-danger, currentColor)); }

.site-carrinho__itens tfoot td {
    border-bottom: 0;
    font-weight: 700;
}

.site-carrinho__total {
    text-align: right;
    font-size: var(--m50ui-fs-lg, 1.15rem);
    color: var(--m50ui-primary, var(--m50-primary));
}

.site-carrinho__continuar {
    display: inline-block;
    margin-bottom: var(--m50ui-sp-xl, 24px);
    color: var(--m50ui-text-secondary, var(--m50-text-secondary));
}

.site-carrinho__checkout {
    margin-top: var(--m50ui-sp-xl, 24px);
    padding-top: var(--m50ui-sp-xl, 24px);
    border-top: 1px solid var(--m50ui-border, var(--m50-border));
}

.site-carrinho__checkout-titulo { margin-bottom: var(--m50ui-sp-lg, 16px); }
