@charset "UTF-8";
/* Tema CATÁLOGO — "instrumento de precisão".
   McMaster-Carr moderno com acabamento Linear/Stripe-docs: hairlines, chips monoespaçados
   de canto vivo, números tabulares, malha blueprint em CSS puro. Movimento snappy:
   120–180ms, easing sharp cubic-bezier(.3,.7,.3,1) — nada flutua, tudo encaixa.
   Skin 100% escopada em .ec-shared.ec-theme-catalogo. Keyframes prefixados ecCat*. */

.ec-shared.ec-theme-catalogo {
    --ec-shell: 1380px;
    --ec-cat-ink: color-mix(in srgb, var(--ec-primary) 74%, #0a1626);
    --ec-cat-line: color-mix(in srgb, var(--ec-primary) 16%, var(--ec-border));
    --ec-cat-soft: color-mix(in srgb, var(--ec-primary) 6%, #ffffff);
    --ec-cat-glow: color-mix(in srgb, var(--ec-primary) 22%, transparent);
    --ec-cat-mono: 'JetBrains Mono', Consolas, 'Courier New', monospace;
    --ec-cat-ease: cubic-bezier(.3, .7, .3, 1);
    --ec-cat-fast: 140ms;
    --ec-cat-med: 200ms;
    font-family: var(--ec-font-body, Inter), Arial, sans-serif;
}

/* Tipografia técnica: títulos compactos, números que alinham como planilha. */
.ec-shared.ec-theme-catalogo :is(h1, h2, h3) { letter-spacing: -.025em; }
.ec-shared.ec-theme-catalogo :is(.ec-product-card__price, .ec-price strong, .ec-catalog-tools__count, .ec-summary dd, .ec-summary__total, .ec-cart-item strong, [data-ec-mobile-buy-dock] strong, .ec-order-card > strong) {
    font-variant-numeric: tabular-nums;
    font-feature-settings: 'tnum' 1;
}

/* Foco nítido de ferramenta (endurece o halo do core dentro do tema). */
.ec-shared.ec-theme-catalogo :where(a, button):focus-visible {
    outline: 2px solid var(--ec-primary);
    outline-offset: 2px;
    border-radius: 2px;
}

/* Hairlines azuladas — o que separa painel profissional de card genérico. */
.ec-shared.ec-theme-catalogo :is(.ec-product-card, .ec-category-card, .ec-gallery, .ec-buybox, .ec-summary, .ec-cart-list, .ec-cart-tools, .ec-form, .ec-payment, .ec-address-card, .ec-contact-card, .ec-order-timeline, .ec-auth__card, .ec-order-card, .ec-post-card) { border-color: var(--ec-cat-line); }
.ec-shared.ec-theme-catalogo .ec-section--accent { background: linear-gradient(180deg, color-mix(in srgb, var(--ec-primary) 4%, #fff), #eaf0f5); }

/* ---------- Barra de anúncio: etiqueta técnica ---------- */
.ec-shared.ec-theme-catalogo .ec-announcement {
    min-height: 30px;
    background: #0e355e;
    font-family: var(--ec-cat-mono);
    font-size: 11px;
    letter-spacing: .08em;
    box-shadow: inset 0 -1px 0 rgba(255, 255, 255, .12);
}

/* ---------- Header: sticky compressível (desktop) ---------- */
.ec-shared.ec-theme-catalogo .ec-header { box-shadow: 0 2px 10px rgba(20, 45, 75, .06); transition: box-shadow 180ms ease; }
.ec-shared.ec-theme-catalogo .ec-header__main { min-height: 80px; gap: 22px; transition: min-height 180ms var(--ec-cat-ease); }
@media (min-width: 1024px) {
    .ec-shared.ec-theme-catalogo .ec-header { position: sticky; top: 0; }
    .ec-shared.ec-theme-catalogo .ec-header.is-scrolled .ec-header__main { min-height: 64px; }
    .ec-shared.ec-theme-catalogo .ec-header.is-scrolled { box-shadow: 0 1px 0 var(--ec-cat-line), 0 10px 24px rgba(10, 32, 58, .10); }
}
.ec-shared.ec-theme-catalogo .ec-brand { font-size: 22px; letter-spacing: -.02em; }

/* Busca protagonista: anel forte + botão com sheen. */
.ec-shared.ec-theme-catalogo .ec-search {
    min-height: 48px;
    border: 2px solid var(--ec-cat-line);
    border-radius: 4px;
    background: #fff;
    transition: border-color 120ms ease, box-shadow 120ms ease;
}
.ec-shared.ec-theme-catalogo .ec-search:focus-within { border-color: var(--ec-primary); box-shadow: 0 0 0 3px var(--ec-cat-glow); }
.ec-shared.ec-theme-catalogo .ec-search input { font-size: 15px; }
.ec-shared.ec-theme-catalogo .ec-search button {
    position: relative;
    overflow: hidden;
    min-width: 108px;
    background: linear-gradient(180deg, color-mix(in srgb, var(--ec-primary) 92%, #fff), var(--ec-cat-ink));
    font-size: 12px;
    letter-spacing: .04em;
    text-transform: uppercase;
    transition: filter 120ms ease, transform 100ms var(--ec-cat-ease);
}
.ec-shared.ec-theme-catalogo .ec-search button::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, .30) 50%, transparent 65%);
    transform: translateX(-130%);
    pointer-events: none;
}
.ec-shared.ec-theme-catalogo .ec-search button:active { transform: scale(.97); }

.ec-shared.ec-theme-catalogo .ec-primary-nav { border-top: 0; background: var(--ec-primary); color: #fff; }
.ec-shared.ec-theme-catalogo .ec-primary-nav .ec-shell { min-height: 44px; justify-content: flex-start; gap: 28px; font-size: 12px; }
.ec-shared.ec-theme-catalogo .ec-primary-nav a:hover { color: #ffe09b; }
@media (min-width: 1024px) {
    .ec-shared.ec-theme-catalogo .ec-primary-nav a { position: relative; padding-block: 13px; }
    .ec-shared.ec-theme-catalogo .ec-primary-nav a::after {
        content: '';
        position: absolute;
        left: 0;
        right: 0;
        bottom: 8px;
        height: 2px;
        background: #ffe09b;
        transform: scaleX(0);
        transform-origin: left;
        transition: transform var(--ec-cat-fast) var(--ec-cat-ease);
    }
    .ec-shared.ec-theme-catalogo .ec-primary-nav a:hover::after,
    .ec-shared.ec-theme-catalogo .ec-primary-nav a:focus-visible::after { transform: scaleX(1); }
}
/* preview-banner fica com o par do core (#ee9d01/#241804, contraste testado) —
   sobre var(--ec-accent) o texto escuro reprovava AA. */

/* ---------- HERO: painel data-driven com malha blueprint ---------- */
.ec-shared.ec-theme-catalogo .ec-hero,
.ec-shared.ec-theme-catalogo .ec-hero__slide,
.ec-shared.ec-theme-catalogo .ec-hero__content,
.ec-shared.ec-theme-catalogo .ec-hero__fallback { min-height: 370px; }
.ec-shared.ec-theme-catalogo .ec-hero { position: relative; overflow: clip; touch-action: pan-y; background: #0b2c50; }
.ec-shared.ec-theme-catalogo .ec-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        repeating-linear-gradient(0deg, rgba(255, 255, 255, .05) 0 1px, transparent 1px 34px),
        repeating-linear-gradient(90deg, rgba(255, 255, 255, .05) 0 1px, transparent 1px 34px);
}
.ec-shared.ec-theme-catalogo .ec-hero__slide { isolation: isolate; }
.ec-shared.ec-theme-catalogo .ec-hero__slide > picture img,
.ec-shared.ec-theme-catalogo .ec-hero__slide > img { opacity: 1; }
.ec-shared.ec-theme-catalogo .ec-hero__slide.has-copy::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(90deg, rgba(5, 25, 48, .94), rgba(8, 40, 72, .55) 43%, rgba(8, 40, 72, .05) 72%);
}
.ec-shared.ec-theme-catalogo .ec-hero__content { position: relative; z-index: 2; padding-right: min(52vw, 700px); }
.ec-shared.ec-theme-catalogo .ec-hero__fallback { position: relative; z-index: 2; }
/* Régua lateral estilo spec-sheet (desktop). */
@media (min-width: 1024px) {
    .ec-shared.ec-theme-catalogo .ec-hero__content::before {
        content: '';
        position: absolute;
        left: -18px;
        top: 44px;
        bottom: 44px;
        width: 2px;
        background: linear-gradient(180deg, var(--ec-accent), transparent);
    }
}
/* Entrada seca e rápida: metade da duração dos temas de varejo. */
@keyframes ecCatRise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes ecCatHeroImg { from { opacity: .4; transform: scale(1.015); } to { opacity: 1; transform: scale(1); } }
.ec-shared.ec-theme-catalogo .ec-hero__slide.is-active .ec-hero__content > *,
.ec-shared.ec-theme-catalogo .ec-hero__fallback > * { animation: ecCatRise 320ms var(--ec-cat-ease) both; }
.ec-shared.ec-theme-catalogo .ec-hero__slide.is-active .ec-hero__content > *:nth-child(2),
.ec-shared.ec-theme-catalogo .ec-hero__fallback > *:nth-child(2) { animation-delay: 70ms; }
.ec-shared.ec-theme-catalogo .ec-hero__slide.is-active .ec-hero__content > *:nth-child(3),
.ec-shared.ec-theme-catalogo .ec-hero__fallback > *:nth-child(3) { animation-delay: 140ms; }
.ec-shared.ec-theme-catalogo .ec-hero__slide.is-active > picture img,
.ec-shared.ec-theme-catalogo .ec-hero__slide.is-active > img { animation: ecCatHeroImg 360ms var(--ec-cat-ease) both; }
/* Eyebrow como legenda de planta: quadradinho de referência. */
.ec-shared.ec-theme-catalogo .ec-hero p {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #ffd06a;
    font-family: var(--ec-cat-mono);
    font-size: 11px;
    letter-spacing: .15em;
}
.ec-shared.ec-theme-catalogo .ec-hero p::before { content: ''; width: 8px; height: 8px; border: 2px solid #ffd06a; }
.ec-shared.ec-theme-catalogo .ec-hero h1 { max-width: 700px; margin-block: 9px 22px; font-size: clamp(36px, 4.4vw, 58px); line-height: 1.03; }
.ec-shared.ec-theme-catalogo .ec-hero .ec-button--primary {
    min-height: 46px;
    /* âmbar fixo (não o accent): #241804 sobre #ffd06a = ~9.6:1; sobre accent reprovava AA */
    border-color: #ffd06a;
    border-radius: 4px;
    background: #ffd06a;
    color: #241804;
    font-size: 13px;
    letter-spacing: .03em;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .28);
}
.ec-shared.ec-theme-catalogo .ec-hero__controls { z-index: 3; }
.ec-shared.ec-theme-catalogo .ec-hero__controls button {
    border-radius: 4px;
    transition: background 140ms ease, border-color 140ms ease, transform 140ms var(--ec-cat-ease);
}
.ec-shared.ec-theme-catalogo .ec-hero__controls button:hover { background: var(--ec-primary); border-color: var(--ec-primary); transform: scale(1.06); }

/* ---------- Benefits: linha de specs numerada ---------- */
.ec-shared.ec-theme-catalogo .ec-benefits { background: #fff; border-bottom: 1px solid var(--ec-cat-line); }
.ec-shared.ec-theme-catalogo .ec-benefits__grid { counter-reset: ecCatBen; }
.ec-shared.ec-theme-catalogo .ec-benefits__grid > div {
    position: relative;
    min-height: 70px;
    padding: 13px 20px;
    border-right-color: var(--ec-cat-line);
    counter-increment: ecCatBen;
    transition: background 140ms ease;
}
.ec-shared.ec-theme-catalogo .ec-benefits__grid > div::before {
    content: counter(ecCatBen, decimal-leading-zero);
    position: absolute;
    top: 10px;
    right: 14px;
    color: color-mix(in srgb, var(--ec-primary) 34%, transparent);
    font-family: var(--ec-cat-mono);
    font-size: 11px;
    font-weight: 700;
}
.ec-shared.ec-theme-catalogo .ec-benefits__grid > div:hover { background: var(--ec-cat-soft); }
.ec-shared.ec-theme-catalogo .ec-benefits strong { color: var(--ec-primary); font-size: 12px; }
.ec-shared.ec-theme-catalogo .ec-benefits span { font-size: 12px; }

/* ---------- Seções: régua que se desenha ---------- */
.ec-shared.ec-theme-catalogo .ec-section,
.ec-shared.ec-theme-catalogo .ec-page { padding-block: 50px; }
.ec-shared.ec-theme-catalogo .ec-section__head { margin-bottom: 22px; }
.ec-shared.ec-theme-catalogo .ec-section__head small,
.ec-shared.ec-theme-catalogo .ec-page__head small { color: var(--ec-cat-ink); font-family: var(--ec-cat-mono); font-size: 10px; letter-spacing: .13em; }
.ec-shared.ec-theme-catalogo .ec-section__head h2,
.ec-shared.ec-theme-catalogo .ec-page__head h1 { font-size: clamp(29px, 3.4vw, 43px); }
.ec-shared.ec-theme-catalogo .ec-section__head h2::after,
.ec-shared.ec-theme-catalogo .ec-page__head h1::after {
    content: '';
    display: block;
    width: 56px;
    height: 3px;
    margin-top: 12px;
    background: linear-gradient(90deg, var(--ec-primary), var(--ec-accent));
    transition: width 300ms var(--ec-cat-ease) 120ms;
}
.ec-js .ec-shared.ec-theme-catalogo .ec-section__head h2::after { width: 0; }
.ec-js .ec-shared.ec-theme-catalogo .ec-section__head.ec-inview h2::after { width: 56px; }
.ec-shared.ec-theme-catalogo .ec-section__head > a {
    min-height: 38px;
    padding: 8px 12px;
    border: 1px solid var(--ec-cat-line);
    border-radius: 4px;
    background: #fff;
    font-size: 12px;
    font-weight: 800;
    transition: border-color 140ms ease, color 140ms ease, background 140ms ease;
}
.ec-shared.ec-theme-catalogo .ec-section__head > a:hover { border-color: var(--ec-primary); color: var(--ec-cat-ink); background: var(--ec-cat-soft); }

/* ---------- Categorias: ficha técnica com seta ---------- */
.ec-shared.ec-theme-catalogo .ec-category-grid { gap: 14px; }
.ec-shared.ec-theme-catalogo .ec-category-card { min-height: 220px; overflow: hidden; border-radius: var(--ec-radius, 6px); }
.ec-shared.ec-theme-catalogo .ec-category-card img,
.ec-shared.ec-theme-catalogo .ec-category-card .ec-media-placeholder { height: 168px; object-fit: cover; transition: transform var(--ec-cat-med) var(--ec-cat-ease); }
/* Categorias mostram a peça inteira, inclusive PNGs recortados de produtos. */
.ec-shared.ec-theme-catalogo .ec-category-card img {
    object-fit: contain;
    object-position: center;
    padding: 8px 12px;
}
.ec-shared.ec-theme-catalogo .ec-category-card strong {
    position: relative;
    z-index: 1; /* a img zoomando vira layer GPU e pintaria por cima da legenda */
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 12px 14px;
    background: var(--ec-card);
    font-size: 15px;
}
.ec-shared.ec-theme-catalogo .ec-category-card strong::after {
    content: '\2192';
    color: var(--ec-primary);
    opacity: 0;
    transform: translateX(-4px);
    transition: transform 140ms var(--ec-cat-ease), opacity 140ms ease;
}
/* Categoria SEM imagem: a faixa de nome é uma barra clara (background: var(--ec-card)) e o
   core força texto branco no is-empty → nome branco sobre barra branca sumia ("Encontre o que
   procura" ilegível). Aqui o campo vira uma malha "blueprint" clara e a faixa ganha fundo da
   marca com texto no on-color, garantindo leitura em qualquer paleta do lojista. */
.ec-shared.ec-theme-catalogo .ec-category-card.is-empty {
    display: flex;
    flex-direction: column;
    background: var(--ec-card);
}
.ec-shared.ec-theme-catalogo .ec-category-card.is-empty::before {
    content: '';
    flex: 1 1 auto;
    min-height: 120px;
    background:
        repeating-linear-gradient(0deg, var(--ec-cat-line) 0 1px, transparent 1px 24px),
        repeating-linear-gradient(90deg, var(--ec-cat-line) 0 1px, transparent 1px 24px);
    border-bottom: 1px solid var(--ec-cat-line);
}
.ec-shared.ec-theme-catalogo .ec-category-card.is-empty strong {
    margin-top: auto;
    background: var(--ec-primary);
    color: var(--ec-on-primary, #fff);
}
.ec-shared.ec-theme-catalogo .ec-category-card.is-empty strong::after { color: var(--ec-on-primary, #fff); }
/* Categoria cadastrada SEM imagem (ramo @else → <span.ec-media-placeholder>, que NÃO ganha a
   classe is-empty): mesmo acabamento das de imagem 404, para não destoar na mesma grade.
   Bloco :has separado do .is-empty acima — se o navegador não suportar :has, cai no estilo
   legível padrão do core em vez de derrubar a regra .is-empty. */
.ec-shared.ec-theme-catalogo .ec-category-card:has(.ec-media-placeholder) {
    display: flex;
    flex-direction: column;
    background: var(--ec-card);
}
.ec-shared.ec-theme-catalogo .ec-category-card:has(.ec-media-placeholder) .ec-media-placeholder {
    flex: 1 1 auto;
    height: auto;
    min-height: 120px;
    background:
        repeating-linear-gradient(0deg, var(--ec-cat-line) 0 1px, transparent 1px 24px),
        repeating-linear-gradient(90deg, var(--ec-cat-line) 0 1px, transparent 1px 24px),
        var(--ec-card);
    border-bottom: 1px solid var(--ec-cat-line);
}
.ec-shared.ec-theme-catalogo .ec-category-card:has(.ec-media-placeholder) strong {
    margin-top: auto;
    background: var(--ec-primary);
    color: var(--ec-on-primary, #fff);
}
.ec-shared.ec-theme-catalogo .ec-category-card:has(.ec-media-placeholder) strong::after { color: var(--ec-on-primary, #fff); }

/* ---------- Product card: denso e nítido ---------- */
.ec-shared.ec-theme-catalogo .ec-product-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.ec-shared.ec-theme-catalogo .ec-product-card { position: relative; border-radius: var(--ec-radius, 6px); box-shadow: none; }
.ec-shared.ec-theme-catalogo .ec-product-card__media { aspect-ratio: var(--ec-product-ratio, 1/1); border-bottom: 1px solid var(--ec-cat-line); background: #f7f9fb; }
.ec-shared.ec-theme-catalogo .ec-product-card__media img { padding: 10px; object-fit: contain; }
.ec-shared.ec-theme-catalogo .ec-product-card__body { padding: 12px; }
.ec-shared.ec-theme-catalogo .ec-product-card__body > small { color: var(--ec-cat-ink); font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.ec-shared.ec-theme-catalogo .ec-product-card__reference {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    min-height: 24px;
    align-items: center;
    margin-top: 6px;
    overflow: hidden;
    border-radius: 2px;
    padding: 3px 6px;
    background: #edf2f7;
    color: #41556b;
    font-family: var(--ec-cat-mono);
    font-size: 10px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
    transition: background 140ms ease, color 140ms ease, box-shadow 140ms ease;
}
.ec-shared.ec-theme-catalogo .ec-product-card h3 { min-height: 43px; margin-block: 6px 9px; font-size: 14px; line-height: 1.35; }
.ec-shared.ec-theme-catalogo .ec-product-card__pricing { min-height: 49px; }
.ec-shared.ec-theme-catalogo .ec-product-card__price { color: var(--ec-cat-ink); font-size: 18px; letter-spacing: -.01em; }
.ec-shared.ec-theme-catalogo .ec-product-card__actions { grid-template-columns: minmax(0, 1fr) 38px; gap: 6px; margin-top: 11px; }
.ec-shared.ec-theme-catalogo .ec-product-card__actions .ec-button { min-height: 38px; border-radius: var(--ec-control-radius, 4px); padding: 7px 9px; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
.ec-shared.ec-theme-catalogo .ec-product-card__favorite {
    width: 38px;
    height: 38px;
    border-radius: 4px;
    color: var(--ec-primary);
    transition: transform 120ms var(--ec-cat-ease), color 120ms ease, border-color 120ms ease, background 120ms ease;
}

/* ---------- Botões: cliques de ferramenta ---------- */
.ec-shared.ec-theme-catalogo .ec-button {
    border-radius: 4px;
    transition: transform 120ms var(--ec-cat-ease), box-shadow 140ms ease, border-color 140ms ease, color 140ms ease, background 140ms ease, filter 140ms ease;
}
.ec-shared.ec-theme-catalogo .ec-button:active { transform: scale(.98); }
.ec-shared.ec-theme-catalogo .ec-button--primary { background: linear-gradient(180deg, color-mix(in srgb, var(--ec-primary) 92%, #fff), var(--ec-cat-ink)); border-color: var(--ec-cat-ink); }
.ec-shared.ec-theme-catalogo .ec-button--primary:hover { filter: brightness(1.06); }
.ec-shared.ec-theme-catalogo .ec-button:not(.ec-button--primary):not(.ec-button--danger):hover { border-color: var(--ec-primary); color: var(--ec-cat-ink); }

/* ---------- Ferramentas do catálogo: instrumento que assume ao rolar ---------- */
.ec-shared.ec-theme-catalogo .ec-catalog-tools {
    position: sticky;
    top: 12px;
    z-index: 12;
    min-height: 64px;
    padding: 10px 12px;
    border: 1px solid var(--ec-cat-line);
    border-top: 2px solid var(--ec-primary);
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(18, 50, 83, .08);
    transition: box-shadow 180ms ease;
}
@media (min-width: 1024px) {
    /* header sticky comprimido = announcement (30, fica DENTRO do header) + main (64) + nav (44) */
    .ec-shared.ec-theme-catalogo .ec-catalog-tools { top: 150px; }
    .ec-shared.ec-theme-catalogo .ec-header.is-scrolled ~ main .ec-catalog-tools { box-shadow: 0 10px 26px rgba(10, 32, 58, .12); }
    /* O resumo do carrinho/checkout também é sticky (core top:20) — limpa o header. */
    .ec-shared.ec-theme-catalogo .ec-summary { top: 150px; }
    /* Sem barra de anúncio (frete grátis desativado) o header encolhe ~30px; encosta os sticky
       sem folga exagerada (108 do header + respiro). :has degrada sem regressão. */
    .ec-shared.ec-theme-catalogo .ec-header:has(.ec-announcement[hidden]) ~ main .ec-catalog-tools,
    .ec-shared.ec-theme-catalogo .ec-header:has(.ec-announcement[hidden]) ~ main .ec-summary { top: 120px; }
}
.ec-shared.ec-theme-catalogo .ec-catalog-tools span { font-size: 13px; font-weight: 700; }
.ec-shared.ec-theme-catalogo .ec-catalog-tools__count {
    display: inline-flex;
    min-height: 34px;
    align-items: center;
    border-radius: 3px;
    padding: 6px 10px;
    background: #e9f0f7;
    color: var(--ec-primary);
    font-family: var(--ec-cat-mono);
    font-size: 12px;
    font-weight: 800;
    animation: ecCatTick 600ms ease-out 300ms 1 both;
}
@keyframes ecCatTick { 0% { box-shadow: 0 0 0 0 var(--ec-cat-glow); } 100% { box-shadow: 0 0 0 10px transparent; } }
.ec-shared.ec-theme-catalogo .ec-catalog-tools select { min-height: 44px; border-color: var(--ec-cat-line); border-radius: 4px; font-size: 13px; transition: border-color 120ms ease, box-shadow 120ms ease; }
.ec-shared.ec-theme-catalogo .ec-catalog-tools select:focus { outline: none; border-color: var(--ec-primary); box-shadow: 0 0 0 3px var(--ec-cat-glow); }
.ec-shared.ec-theme-catalogo .ec-pagination { margin-top: 24px; }

/* ---------- Página de produto: spec-sheet ---------- */
.ec-shared.ec-theme-catalogo .ec-product-detail { grid-template-columns: minmax(0, 1.05fr) minmax(370px, .95fr); gap: 30px; }
.ec-shared.ec-theme-catalogo .ec-gallery,
.ec-shared.ec-theme-catalogo .ec-buybox { border-radius: var(--ec-radius, 6px); box-shadow: none; }
.ec-shared.ec-theme-catalogo .ec-gallery { padding: 18px; }
.ec-shared.ec-theme-catalogo .ec-gallery__thumbs button { border-radius: 4px; transition: border-color 140ms ease, transform 140ms var(--ec-cat-ease); }
.ec-shared.ec-theme-catalogo .ec-gallery__thumbs button:hover { border-color: var(--ec-primary); transform: translateY(-2px); }
.ec-shared.ec-theme-catalogo .ec-gallery__thumbs button[aria-pressed="true"] { border-color: var(--ec-primary); box-shadow: inset 0 0 0 2px var(--ec-cat-glow); }
.ec-shared.ec-theme-catalogo .ec-buybox { padding: 24px; border-top: 3px solid var(--ec-primary); }
.ec-shared.ec-theme-catalogo .ec-buybox > small { font-size: 11px; text-transform: uppercase; }
.ec-shared.ec-theme-catalogo .ec-product-reference {
    display: inline-flex;
    width: fit-content;
    margin-bottom: 12px;
    border: 1px solid #cbd8e5;
    border-radius: 2px;
    padding: 5px 8px;
    background: #f2f6fa;
    color: #36536f;
    font-family: var(--ec-cat-mono);
    font-size: 12px;
    font-weight: 800;
}
.ec-shared.ec-theme-catalogo .ec-buybox h1 { font-size: clamp(29px, 3.5vw, 44px); }
.ec-shared.ec-theme-catalogo .ec-price strong { color: var(--ec-cat-ink); font-size: 30px; }
.ec-shared.ec-theme-catalogo .ec-product-detail .ec-buybox { position: sticky; top: 18px; }
@media (min-width: 1024px) {
    /* limpa o header sticky comprimido (30 announcement + 64 main + 44 nav + respiro) */
    .ec-shared.ec-theme-catalogo .ec-product-detail .ec-buybox { top: 156px; }
    .ec-shared.ec-theme-catalogo .ec-header:has(.ec-announcement[hidden]) ~ main .ec-product-detail .ec-buybox { top: 126px; }
}
.ec-shared.ec-theme-catalogo .ec-product-description { padding-block: 16px; border-block: 1px solid var(--ec-cat-line); font-size: 15px; line-height: 1.65; }
.ec-shared.ec-theme-catalogo .ec-buybox input,
.ec-shared.ec-theme-catalogo .ec-buybox select { border-radius: 4px; transition: border-color 120ms ease, box-shadow 120ms ease; }
.ec-shared.ec-theme-catalogo .ec-buybox input:focus,
.ec-shared.ec-theme-catalogo .ec-buybox select:focus { outline: none; border-color: var(--ec-primary); box-shadow: 0 0 0 3px var(--ec-cat-glow); }

/* ---------- Carrinho / checkout ---------- */
.ec-shared.ec-theme-catalogo .ec-cart-list,
.ec-shared.ec-theme-catalogo .ec-cart-tools,
.ec-shared.ec-theme-catalogo .ec-summary,
.ec-shared.ec-theme-catalogo .ec-form,
.ec-shared.ec-theme-catalogo .ec-address-card,
.ec-shared.ec-theme-catalogo .ec-contact-card,
.ec-shared.ec-theme-catalogo .ec-payment,
.ec-shared.ec-theme-catalogo .ec-order-timeline,
.ec-shared.ec-theme-catalogo .ec-auth__card,
.ec-shared.ec-theme-catalogo .ec-order-card,
.ec-shared.ec-theme-catalogo .ec-post-card { border-radius: 6px; box-shadow: none; }
.ec-shared.ec-theme-catalogo .ec-cart-item { padding: 14px; }
.ec-shared.ec-theme-catalogo .ec-cart-item input { transition: border-color 120ms ease, box-shadow 120ms ease; }
.ec-shared.ec-theme-catalogo .ec-cart-item input:focus { outline: none; border-color: var(--ec-primary); box-shadow: 0 0 0 3px var(--ec-cat-glow); }
.ec-shared.ec-theme-catalogo .ec-summary,
.ec-shared.ec-theme-catalogo .ec-payment,
.ec-shared.ec-theme-catalogo .ec-form { padding: 22px; }
.ec-shared.ec-theme-catalogo .ec-summary { border-top: 4px solid var(--ec-primary); }
.ec-shared.ec-theme-catalogo .ec-summary dl > div { border-bottom-color: var(--ec-cat-line); }
.ec-shared.ec-theme-catalogo .ec-summary__total { color: var(--ec-cat-ink); font-size: 21px; }
.ec-shared.ec-theme-catalogo .ec-address-card label {
    min-height: 48px;
    padding: 10px;
    border: 1px solid var(--ec-cat-line);
    border-radius: 4px;
}
.ec-shared.ec-theme-catalogo .ec-address-card input { accent-color: var(--ec-primary); }
.ec-shared.ec-theme-catalogo .ec-account-nav a { border-radius: 4px; color: var(--ec-primary); }
.ec-shared.ec-theme-catalogo .ec-order-card { border-left: 4px solid var(--ec-primary); }
.ec-shared.ec-theme-catalogo [data-ec-checkout-current-label],
.ec-shared.ec-theme-catalogo [data-ec-mobile-buy-dock] { display: none; }
.ec-shared.ec-theme-catalogo .ec-checkout-steps li > strong { background: var(--ec-page); font-size: 12px; }
.ec-shared.ec-theme-catalogo .ec-checkout-steps li > span { transition: background 140ms ease, border-color 140ms ease, color 140ms ease, box-shadow 180ms ease; }
.ec-shared.ec-theme-catalogo .ec-checkout-steps li.is-current > span { box-shadow: 0 0 0 4px var(--ec-cat-glow); animation: ecCatStep 240ms ease-out both; }
@keyframes ecCatStep { 0% { box-shadow: 0 0 0 0 var(--ec-cat-glow); } 100% { box-shadow: 0 0 0 4px var(--ec-cat-glow); } }
.ec-shared.ec-theme-catalogo :is(.ec-form, .ec-form-grid) :is(input, select, textarea) { border-radius: 4px; transition: border-color 120ms ease, box-shadow 120ms ease; }
.ec-shared.ec-theme-catalogo :is(.ec-form, .ec-form-grid) :is(input, select, textarea):focus { outline: none; border-color: var(--ec-primary); box-shadow: 0 0 0 3px var(--ec-cat-glow); }
.ec-shared.ec-theme-catalogo .ec-payment__tabs { gap: 0; border: 1px solid var(--ec-cat-line); border-radius: 4px; overflow: hidden; }
.ec-shared.ec-theme-catalogo .ec-payment__tabs button { border: 0; border-right: 1px solid var(--ec-cat-line); transition: background var(--ec-cat-fast) ease, color var(--ec-cat-fast) ease, box-shadow var(--ec-cat-fast) ease; }
.ec-shared.ec-theme-catalogo .ec-payment__tabs button:last-child { border-right: 0; }
.ec-shared.ec-theme-catalogo .ec-payment__tabs button:hover { background: var(--ec-cat-soft); }
.ec-shared.ec-theme-catalogo .ec-payment__tabs button[aria-selected="true"] { background: var(--ec-cat-soft); color: var(--ec-cat-ink); box-shadow: inset 0 -2px 0 var(--ec-primary); }

/* ---------- Footer técnico: blueprint + filete de precisão ---------- */
.ec-shared.ec-theme-catalogo .ec-footer { position: relative; background: #0d2a49; border-top: 0; }
.ec-shared.ec-theme-catalogo .ec-footer::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 2;
    height: 2px;
    background: linear-gradient(90deg, var(--ec-primary), var(--ec-accent));
}
.ec-shared.ec-theme-catalogo .ec-footer::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        repeating-linear-gradient(0deg, rgba(255, 255, 255, .04) 0 1px, transparent 1px 34px),
        repeating-linear-gradient(90deg, rgba(255, 255, 255, .04) 0 1px, transparent 1px 34px);
}
.ec-shared.ec-theme-catalogo .ec-footer__grid { position: relative; z-index: 2; }
.ec-shared.ec-theme-catalogo .ec-footer__grid strong {
    color: #9fb3c8;
    font-family: var(--ec-cat-mono);
    font-size: 12px;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.ec-shared.ec-theme-catalogo .ec-footer a { transition: color 140ms ease, transform 140ms var(--ec-cat-ease); }
.ec-shared.ec-theme-catalogo .ec-footer a:hover { color: #fff; transform: translateX(3px); }

/* ---------- Revelação ao rolar: encaixe rápido (240ms, stagger 40ms) ----------
   Delays por variável (--ec-cat-d) só em opacity/transform — hover de borda/sombra
   NUNCA fica atrasado. Presa a html.ec-js: sem JS nada some. */
.ec-js .ec-shared.ec-theme-catalogo :is(.ec-product-card, .ec-category-card, .ec-benefits__grid > div, .ec-section__head, .ec-post-card, .ec-order-card) {
    transition:
        opacity 240ms ease var(--ec-cat-d, 0ms),
        transform 240ms var(--ec-cat-ease) var(--ec-cat-d, 0ms),
        border-color 140ms ease,
        box-shadow 140ms ease,
        background 140ms ease;
}
.ec-js .ec-shared.ec-theme-catalogo :is(.ec-product-card, .ec-category-card, .ec-benefits__grid > div, .ec-section__head, .ec-post-card, .ec-order-card):not(.ec-inview) {
    opacity: 0;
    transform: translateY(12px);
}
.ec-js .ec-shared.ec-theme-catalogo :is(.ec-product-grid, .ec-category-grid, .ec-benefits__grid) > :nth-child(2) { --ec-cat-d: 40ms; }
.ec-js .ec-shared.ec-theme-catalogo :is(.ec-product-grid, .ec-category-grid, .ec-benefits__grid) > :nth-child(3) { --ec-cat-d: 80ms; }
.ec-js .ec-shared.ec-theme-catalogo :is(.ec-product-grid, .ec-category-grid, .ec-benefits__grid) > :nth-child(4) { --ec-cat-d: 120ms; }
.ec-js .ec-shared.ec-theme-catalogo :is(.ec-product-grid, .ec-category-grid) > :nth-child(5) { --ec-cat-d: 160ms; }
.ec-js .ec-shared.ec-theme-catalogo :is(.ec-product-grid, .ec-category-grid) > :nth-child(6) { --ec-cat-d: 40ms; }
.ec-js .ec-shared.ec-theme-catalogo :is(.ec-product-grid, .ec-category-grid) > :nth-child(7) { --ec-cat-d: 80ms; }
.ec-js .ec-shared.ec-theme-catalogo :is(.ec-product-grid, .ec-category-grid) > :nth-child(8) { --ec-cat-d: 120ms; }

/* ---------- Hovers de precisão (ponteiro fino + motion ok) ---------- */
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
    /* Card: levanta a INFORMAÇÃO, não o card. */
    .ec-shared.ec-theme-catalogo .ec-product-card:hover,
    .ec-shared.ec-theme-catalogo .ec-category-card:hover { transform: none; }
    .ec-shared.ec-theme-catalogo .ec-product-card:hover {
        border-color: color-mix(in srgb, var(--ec-primary) 55%, var(--ec-border));
        box-shadow: 0 6px 16px rgba(10, 32, 58, .10), 0 1px 0 var(--ec-cat-line);
    }
    .ec-shared.ec-theme-catalogo .ec-product-card__media img { transition: transform 180ms var(--ec-cat-ease); }
    .ec-shared.ec-theme-catalogo .ec-product-card:hover .ec-product-card__media img { transform: scale(1.03); }
    .ec-shared.ec-theme-catalogo .ec-product-card:hover .ec-product-card__reference {
        background: var(--ec-cat-soft);
        color: var(--ec-cat-ink);
        box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ec-primary) 30%, transparent);
    }
    .ec-shared.ec-theme-catalogo .ec-product-card:hover .ec-product-card__actions .ec-button--primary {
        transform: translateY(-1px);
        box-shadow: 0 4px 10px var(--ec-cat-glow);
    }
    /* Favorito: pop 1.06 → .88 (contraste rápido = clique de ferramenta). */
    .ec-shared.ec-theme-catalogo .ec-product-card__favorite:hover {
        color: var(--ec-danger);
        border-color: color-mix(in srgb, var(--ec-danger) 45%, var(--ec-border));
        background: color-mix(in srgb, var(--ec-danger) 7%, #fff);
        transform: scale(1.06);
    }
    .ec-shared.ec-theme-catalogo .ec-product-card__favorite:active { transform: scale(.88); transition-duration: 80ms; }
    /* Categoria: zoom técnico + seta que chega. */
    .ec-shared.ec-theme-catalogo .ec-category-card:hover {
        border-color: color-mix(in srgb, var(--ec-primary) 48%, var(--ec-border));
        box-shadow: 0 8px 22px rgba(20, 58, 94, .09);
    }
    .ec-shared.ec-theme-catalogo .ec-category-card:hover img { transform: scale(1.04); }
    .ec-shared.ec-theme-catalogo .ec-category-card:hover strong::after { opacity: 1; transform: none; }
    /* Sheen do botão de busca: só na ida, nunca "des-varre". */
    .ec-shared.ec-theme-catalogo .ec-search button:hover::after { transform: translateX(130%); transition: transform 450ms ease-out; }
}

@media (max-width: 1199px) {
    .ec-shared.ec-theme-catalogo .ec-product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 1023px) {
    .ec-shared.ec-theme-catalogo .ec-header { z-index: 60; }
    .ec-shared.ec-theme-catalogo .ec-header__main { min-height: 0; }
    .ec-shared.ec-theme-catalogo .ec-header__main { position: relative; z-index: 4; }
    .ec-shared.ec-theme-catalogo .ec-menu-trigger {
        display: grid;
        width: 46px;
        height: 46px;
        place-items: center;
        border-color: #cad7e4;
        background: #fff;
        color: var(--ec-cat-ink); /* tinta escura do tema (não --ec-primary cru): X legível mesmo com primária clara */
        box-shadow: 0 6px 16px rgba(16, 52, 88, .09);
    }
    .ec-shared.ec-theme-catalogo .ec-menu-trigger__icon { display: inline-grid; width: 22px; gap: 5px; }
    .ec-shared.ec-theme-catalogo .ec-menu-trigger__icon i {
        display: block;
        width: 100%;
        height: 2px;
        background: currentColor;
        transform-origin: center;
        transition: transform .2s ease, opacity .16s ease;
    }
    .ec-shared.ec-theme-catalogo .ec-menu-trigger[aria-expanded="true"] .ec-menu-trigger__icon i:first-child { transform: translateY(7px) rotate(45deg); }
    .ec-shared.ec-theme-catalogo .ec-menu-trigger[aria-expanded="true"] .ec-menu-trigger__icon i:nth-child(2) { opacity: 0; }
    .ec-shared.ec-theme-catalogo .ec-menu-trigger[aria-expanded="true"] .ec-menu-trigger__icon i:last-child { transform: translateY(-7px) rotate(-45deg); }
    .ec-shared.ec-theme-catalogo .ec-menu-backdrop {
        position: fixed;
        inset: 0;
        z-index: 1;
        background: rgba(4, 22, 42, .5);
        backdrop-filter: blur(2px);
    }
    .ec-shared.ec-theme-catalogo .ec-menu-backdrop.is-open { display: block; }
    .ec-shared.ec-theme-catalogo .ec-primary-nav {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        z-index: 2;
        display: block;
        width: min(100%, 440px);
        padding-top: calc(var(--ec-menu-header-h, 150px) + 6px);
        overflow-y: auto;
        border: 0;
        background: #fff;
        color: var(--ec-text);
        box-shadow: -22px 0 48px rgba(7, 34, 62, .22);
        opacity: 0;
        pointer-events: none;
        transform: translateX(104%);
        visibility: hidden;
        transition: transform .22s cubic-bezier(.2, .8, .25, 1), opacity .18s ease, visibility .22s step-end;
    }
    .ec-shared.ec-theme-catalogo .ec-primary-nav.is-open {
        display: block;
        opacity: 1;
        pointer-events: auto;
        transform: translateX(0);
        visibility: visible;
        transition: transform .22s cubic-bezier(.2, .8, .25, 1), opacity .18s ease;
    }
    .ec-shared.ec-theme-catalogo .ec-primary-nav .ec-shell { min-height: 100%; align-items: stretch; justify-content: flex-start; gap: 0; padding: 14px 22px 32px; }
    .ec-shared.ec-theme-catalogo .ec-primary-nav a { min-height: 50px; padding: 15px 8px; border-bottom: 1px solid #dce5ee; color: var(--ec-cat-ink); }
    .ec-shared.ec-theme-catalogo .ec-product-detail { grid-template-columns: minmax(0, 1fr); }
    .ec-shared.ec-theme-catalogo .ec-product-detail .ec-buybox { position: static; }
    .ec-shared.ec-theme-catalogo .ec-gallery,
    .ec-shared.ec-theme-catalogo .ec-buybox { min-width: 0; }
    .ec-shared.ec-theme-catalogo .ec-product-grid,
    .ec-shared.ec-theme-catalogo .ec-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 639px) {
    /* Compensação do buy-dock fixo SÓ na página de produto (o dock só existe lá). */
    .ec-shared.ec-theme-catalogo .ec-product-page { padding-bottom: 84px; }
    .ec-shared.ec-theme-catalogo .ec-announcement { min-height: 26px; padding-block: 4px; font-size: 9px; }
    .ec-shared.ec-theme-catalogo .ec-header__main { gap: 8px 10px; padding-block: 9px 11px; }
    .ec-shared.ec-theme-catalogo .ec-brand { min-height: 42px; font-size: 18px; }
    .ec-shared.ec-theme-catalogo .ec-mobile-cart,
    .ec-shared.ec-theme-catalogo .ec-menu-trigger { min-height: 44px; border-radius: 4px; }
    .ec-shared.ec-theme-catalogo .ec-search { min-height: 48px; }
    .ec-shared.ec-theme-catalogo .ec-search input { padding-inline: 12px; }
    .ec-shared.ec-theme-catalogo .ec-search button { min-width: 88px; padding-inline: 12px; }
    .ec-shared.ec-theme-catalogo .ec-preview-banner { padding-block: 7px; font-size: 11px; }

    .ec-shared.ec-theme-catalogo .ec-hero,
    .ec-shared.ec-theme-catalogo .ec-hero__slide,
    .ec-shared.ec-theme-catalogo .ec-hero__content,
    .ec-shared.ec-theme-catalogo .ec-hero__fallback { min-height: 390px; }
    .ec-shared.ec-theme-catalogo .ec-hero__slide > picture img,
    .ec-shared.ec-theme-catalogo .ec-hero__slide > img { object-fit: cover; }
    .ec-shared.ec-theme-catalogo .ec-hero__slide.has-copy::after { background: linear-gradient(180deg, rgba(5, 25, 48, .26), rgba(5, 25, 48, .9)); }
    .ec-shared.ec-theme-catalogo .ec-hero__content { justify-content: flex-end; padding: 32px 14px 68px 0; }
    .ec-shared.ec-theme-catalogo .ec-hero h1 { max-width: 330px; margin-block: 8px 18px; font-size: 36px; }
    .ec-shared.ec-theme-catalogo .ec-hero__controls { bottom: 14px; }

    .ec-shared.ec-theme-catalogo .ec-benefits { padding-block: 10px; overflow: hidden; }
    .ec-shared.ec-theme-catalogo .ec-mobile-benefit-rail {
        display: flex;
        width: min(calc(100% - 28px), var(--ec-shell));
        gap: 9px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }
    .ec-shared.ec-theme-catalogo .ec-mobile-benefit-rail::-webkit-scrollbar { display: none; }
    .ec-shared.ec-theme-catalogo .ec-mobile-benefit-rail > div {
        flex: 0 0 min(78vw, 290px);
        min-height: 66px;
        scroll-snap-align: start;
        border: 1px solid var(--ec-cat-line);
        border-radius: 6px;
        padding: 10px 13px;
    }
    .ec-shared.ec-theme-catalogo .ec-section,
    .ec-shared.ec-theme-catalogo .ec-page { padding-block: 40px; }
    .ec-shared.ec-theme-catalogo .ec-section__head { gap: 10px; margin-bottom: 18px; }
    .ec-shared.ec-theme-catalogo .ec-section__head h2,
    .ec-shared.ec-theme-catalogo .ec-page__head h1 { font-size: 30px; }
    .ec-shared.ec-theme-catalogo .ec-section__head > a { min-height: 44px; }

    .ec-shared.ec-theme-catalogo .ec-category-grid { gap: 10px; }
    .ec-shared.ec-theme-catalogo .ec-category-card { min-height: 178px; }
    .ec-shared.ec-theme-catalogo .ec-category-card img,
    .ec-shared.ec-theme-catalogo .ec-category-card .ec-media-placeholder { height: 128px; }
    .ec-shared.ec-theme-catalogo .ec-category-card strong { padding: 10px; font-size: 13px; }
    .ec-shared.ec-theme-catalogo .ec-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .ec-shared.ec-theme-catalogo .ec-product-card__body { padding: 9px; }
    .ec-shared.ec-theme-catalogo .ec-product-card__body > small { font-size: 9px; }
    .ec-shared.ec-theme-catalogo .ec-product-card__reference { max-width: 100%; margin-top: 4px; font-size: 9px; }
    .ec-shared.ec-theme-catalogo .ec-product-card h3 { min-height: 39px; margin-block: 5px 7px; font-size: 12px; }
    .ec-shared.ec-theme-catalogo .ec-product-card__pricing { min-height: 43px; }
    .ec-shared.ec-theme-catalogo .ec-product-card__price { font-size: 16px; }
    .ec-shared.ec-theme-catalogo .ec-product-card__actions { grid-template-columns: minmax(0, 1fr) 44px; gap: 5px; }
    .ec-shared.ec-theme-catalogo .ec-product-card__actions .ec-button { min-height: 44px; padding-inline: 7px; font-size: 10px; }
    .ec-shared.ec-theme-catalogo .ec-product-card__favorite { display: grid; width: 44px; height: 44px; }

    .ec-shared.ec-theme-catalogo .ec-catalog-tools { align-items: stretch; padding: 10px; top: 8px; }
    .ec-shared.ec-theme-catalogo .ec-catalog-tools__count { order: -1; width: fit-content; }
    .ec-shared.ec-theme-catalogo .ec-catalog-tools select { width: 100%; min-height: 48px; }
    .ec-shared.ec-theme-catalogo .ec-gallery,
    .ec-shared.ec-theme-catalogo .ec-buybox { padding: 14px; }
    .ec-shared.ec-theme-catalogo .ec-gallery__main { width: 100%; height: auto; min-height: 0; aspect-ratio: 1 / 1; }
    .ec-shared.ec-theme-catalogo .ec-buybox h1 { font-size: 30px; }
    .ec-shared.ec-theme-catalogo .ec-buybox #ec-product-purchase-form > .ec-button--primary { display: none; }
    .ec-shared.ec-theme-catalogo [data-ec-mobile-buy-dock] {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 50;
        display: flex;
        min-height: 72px;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
        border-top: 2px solid var(--ec-primary);
        background: #fff;
        box-shadow: 0 -8px 24px rgba(17, 50, 84, .13);
    }
    /* Entrada só com JS ativo (mesmo padrão do editorial): sem JS o dock nasce visível. */
    .ec-js .ec-shared.ec-theme-catalogo [data-ec-mobile-buy-dock] { animation: ecCatDockUp 260ms var(--ec-cat-ease) 150ms both; }
    .ec-shared.ec-theme-catalogo [data-ec-mobile-buy-dock] > div { display: grid; min-width: 0; }
    .ec-shared.ec-theme-catalogo [data-ec-mobile-buy-dock] small { color: var(--ec-muted); font-size: 10px; text-transform: uppercase; }
    .ec-shared.ec-theme-catalogo [data-ec-mobile-buy-dock] strong { overflow: hidden; color: var(--ec-cat-ink); font-size: 18px; text-overflow: ellipsis; white-space: nowrap; }
    .ec-shared.ec-theme-catalogo [data-ec-mobile-buy-dock] .ec-button { min-width: 132px; min-height: 48px; }

    .ec-shared.ec-theme-catalogo .ec-checkout-steps { overflow: visible; }
    .ec-shared.ec-theme-catalogo [data-ec-checkout-current-label] {
        display: block;
        margin: 0 0 10px;
        color: var(--ec-primary);
        font-family: var(--ec-cat-mono);
        font-size: 12px;
        font-weight: 850;
        text-transform: uppercase;
    }
    .ec-shared.ec-theme-catalogo .ec-checkout-steps ol { grid-template-columns: repeat(4, minmax(0, 1fr)); min-width: 0; }
    .ec-shared.ec-theme-catalogo .ec-checkout-steps li { min-width: 0; min-height: 40px; justify-content: center; }
    .ec-shared.ec-theme-catalogo .ec-checkout-steps li > strong { display: none; }
    .ec-shared.ec-theme-catalogo .ec-checkout-steps li > span { width: 30px; height: 30px; flex-basis: 30px; }
    .ec-shared.ec-theme-catalogo .ec-checkout-steps li::after { right: -8px; left: calc(50% + 15px); }
    .ec-shared.ec-theme-catalogo .ec-cart-item { grid-template-columns: 72px minmax(0, 1fr); gap: 11px; padding: 12px; }
    .ec-shared.ec-theme-catalogo .ec-cart-item input { min-height: 46px; }
    .ec-shared.ec-theme-catalogo .ec-cart-tools,
    .ec-shared.ec-theme-catalogo .ec-form,
    .ec-shared.ec-theme-catalogo .ec-summary,
    .ec-shared.ec-theme-catalogo .ec-payment { padding: 16px; }
    .ec-shared.ec-theme-catalogo .ec-form-grid,
    .ec-shared.ec-theme-catalogo .ec-payment .ec-form-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .ec-shared.ec-theme-catalogo .ec-form input,
    .ec-shared.ec-theme-catalogo .ec-form select,
    .ec-shared.ec-theme-catalogo .ec-form textarea,
    .ec-shared.ec-theme-catalogo .ec-form-grid input,
    .ec-shared.ec-theme-catalogo .ec-form-grid select,
    .ec-shared.ec-theme-catalogo .ec-form-grid textarea { min-height: 48px; }
    .ec-shared.ec-theme-catalogo .ec-payment .ec-form-grid input,
    .ec-shared.ec-theme-catalogo .ec-payment .ec-form-grid select,
    .ec-shared.ec-theme-catalogo .ec-payment .ec-form-grid textarea { min-height: 48px; }
    .ec-shared.ec-theme-catalogo .ec-payment__tabs { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); }
    .ec-shared.ec-theme-catalogo .ec-payment__tabs button { padding-inline: 8px; }
    .ec-shared.ec-theme-catalogo .ec-address-form > button,
    .ec-shared.ec-theme-catalogo .ec-payment form > button { width: 100%; min-height: 48px; }
    .ec-shared.ec-theme-catalogo .ec-account-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .ec-shared.ec-theme-catalogo .ec-account-nav a { display: grid; min-height: 44px; place-items: center; padding: 7px; text-align: center; }
    .ec-shared.ec-theme-catalogo .ec-footer { padding-block: 40px 96px; }
}
@keyframes ecCatDockUp { from { transform: translateY(100%); } to { transform: none; } }

@media (max-width: 349px) {
    .ec-shared.ec-theme-catalogo .ec-product-grid { grid-template-columns: 1fr; }
}

/* ---------- Reduced motion: neutralização total ---------- */
@media (prefers-reduced-motion: reduce) {
    .ec-shared.ec-theme-catalogo .ec-primary-nav,
    .ec-shared.ec-theme-catalogo .ec-menu-trigger__icon i { transition: none; }
    .ec-shared.ec-theme-catalogo .ec-hero__slide.is-active .ec-hero__content > *,
    .ec-shared.ec-theme-catalogo .ec-hero__fallback > *,
    .ec-shared.ec-theme-catalogo .ec-hero__slide.is-active > picture img,
    .ec-shared.ec-theme-catalogo .ec-hero__slide.is-active > img,
    .ec-shared.ec-theme-catalogo .ec-catalog-tools__count,
    .ec-shared.ec-theme-catalogo .ec-checkout-steps li.is-current > span,
    .ec-shared.ec-theme-catalogo [data-ec-mobile-buy-dock] { animation: none !important; }
    .ec-shared.ec-theme-catalogo .ec-checkout-steps li.is-current > span { box-shadow: 0 0 0 4px var(--ec-cat-glow); }
    .ec-js .ec-shared.ec-theme-catalogo :is(.ec-product-card, .ec-category-card, .ec-benefits__grid > div, .ec-section__head, .ec-post-card, .ec-order-card):not(.ec-inview) {
        opacity: 1;
        transform: none;
        transition: none;
    }
    .ec-js .ec-shared.ec-theme-catalogo .ec-section__head h2::after { width: 56px; transition: none; }
    .ec-shared.ec-theme-catalogo .ec-search button::after { display: none; }
}

/* Barra de compartilhar: separador (paridade com vitrine/editorial) */
.ec-shared.ec-theme-catalogo .ec-product-share { border-top: 1px solid var(--ec-cat-line); padding-top: 18px; }

/* Banner so-arte (sem texto): imagem inteira, sem overlay escuro nem corte (paridade com vitrine) */
.ec-shared.ec-theme-catalogo .ec-hero__slide.is-art-only > picture img,
.ec-shared.ec-theme-catalogo .ec-hero__slide.is-art-only > img { object-fit: contain; }
