@charset "UTF-8";
/* Tema EDITORIAL — "revista impressa que respira".
   Skin 100% escopada em .ec-shared.ec-theme-editorial sobre as views compartilhadas.
   Direção: Aesop (calma, hairlines), COS (grid seco), Jacquemus (tipografia ousada).
   Movimento: curva editorial cubic-bezier(.16,1,.3,1), durações longas (600–900ms).
   Keyframes prefixados ecEd* (keyframes são globais — o prefixo evita colisão). */

.ec-shared.ec-theme-editorial {
    --ec-shell: 1320px;
    --ec-ed-ink: #2c201d;
    --ec-ed-paper: #efe7dc;
    --ec-ed-gold: #e4c99e;
    --ec-ed-cream: #f3e6d3;
    --ec-ed-ease: cubic-bezier(.16, 1, .3, 1);
    --ec-ed-ease-out: cubic-bezier(.22, .61, .36, 1);
    --ec-ed-hairline: color-mix(in srgb, var(--ec-border) 82%, transparent);
    --ec-ed-tint: color-mix(in srgb, var(--ec-primary) 55%, #2c201d);
    font-family: var(--ec-font-body, Inter), Arial, sans-serif;
    counter-reset: ec-ed-sec;
}

.ec-shared.ec-theme-editorial :where(h1, h2, h3, .ec-brand) {
    font-family: var(--ec-font-display, Georgia), Georgia, serif;
    font-weight: 500;
}

/* Seleção de texto e "filme" quente nas fotos de ambiente (não nas fotos de produto —
   produto precisa de cor fiel para venda). O hover revela a cor real. */
.ec-shared.ec-theme-editorial ::selection { background: var(--ec-ed-gold); color: var(--ec-ed-ink); }
/* Só em imagem estática: filter + Ken Burns na mesma img re-filtra todo frame (caro). */
.ec-shared.ec-theme-editorial .ec-category-card img { filter: saturate(.88) sepia(.07) contrast(1.02); }

/* ---------- Grain de papel (SVG inline — sem host externo) ----------
   z-index explícito: imagem animada (Ken Burns) vira layer de GPU e pintaria por cima
   de pseudo-elemento com z-index auto (armadilha conhecida do projeto). */
/* Grain em PNG estático de propósito: SVG feTurbulence inline re-rasteriza o filtro
   por tile e TRAVA o raster thread em máquina fraca (visto no staging); PNG de 6KB
   rasteriza uma vez. Sem mix-blend-mode pelo mesmo motivo. */
.ec-shared.ec-theme-editorial .ec-hero,
.ec-shared.ec-theme-editorial .ec-footer { position: relative; }
.ec-shared.ec-theme-editorial .ec-hero::before,
.ec-shared.ec-theme-editorial .ec-footer::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    opacity: .05;
    background-image: url('/ecommerce_themes/img/grain.png');
    background-size: 128px 128px;
}

/* ---------- Barra de anúncio: gesto tipográfico (tracking assentando) ---------- */
.ec-shared.ec-theme-editorial .ec-announcement {
    min-height: 36px;
    background: color-mix(in srgb, var(--ec-primary) 88%, #241814);
    font-size: 11px;
    letter-spacing: .15em;
    text-transform: uppercase;
    animation: ecEdAnnounce .9s var(--ec-ed-ease) .1s both;
}
@keyframes ecEdAnnounce { from { opacity: 0; letter-spacing: .3em; } to { opacity: 1; letter-spacing: .15em; } }

/* ---------- Header: sticky com geometria estavel ao rolar ---------- */
.ec-shared.ec-theme-editorial .ec-header {
    position: sticky;
    top: 0;
    border-color: color-mix(in srgb, var(--ec-border) 82%, transparent);
    background: color-mix(in srgb, var(--ec-card) 96%, transparent);
    transition: background .35s var(--ec-ed-ease), box-shadow .35s var(--ec-ed-ease), border-color .35s var(--ec-ed-ease);
}
.ec-shared.ec-theme-editorial .ec-header.is-scrolled {
    /* Quase-opaco em vez de backdrop-filter: blur re-renderiza tudo embaixo a cada
       frame e trava máquina fraca junto com o Ken Burns do hero. */
    background: color-mix(in srgb, var(--ec-card) 96%, var(--ec-text));
    border-bottom-color: var(--ec-text);
    box-shadow: 0 1px 0 var(--ec-ed-hairline), 0 18px 40px rgba(44, 32, 29, .07);
}
/* A geometria do sticky precisa ficar estavel: reduzir a altura ao cruzar os 8px
   do core.js desloca o conteudo e pode reativar o scroll em ciclo perto do topo. */
.ec-shared.ec-theme-editorial .ec-header__main { min-height: 96px; }
.ec-shared.ec-theme-editorial .ec-brand { font-size: 25px; font-weight: 500; letter-spacing: -.035em; }
@media (min-width: 1024px) {
    /* Reserva o header inteiro, inclusive a faixa de anuncio quando visivel
       (announcement 36 + main 96 + nav 54), com respiro para carrinho/checkout. */
    .ec-shared.ec-theme-editorial .ec-summary { top: 196px; }
}

.ec-shared.ec-theme-editorial .ec-search { border-width: 0 0 1px; border-radius: 0; background: transparent; transition: border-color .25s var(--ec-ed-ease), box-shadow .25s var(--ec-ed-ease); }
.ec-shared.ec-theme-editorial .ec-search:focus-within { border-bottom-color: var(--ec-text); box-shadow: inset 0 -1px 0 var(--ec-text); }
.ec-shared.ec-theme-editorial .ec-search input { background: transparent; }
.ec-shared.ec-theme-editorial .ec-search button { min-width: 112px; letter-spacing: .04em; text-transform: uppercase; }
.ec-shared.ec-theme-editorial .ec-utilities { font-size: 12px; letter-spacing: .025em; }
.ec-shared.ec-theme-editorial .ec-primary-nav { border-color: var(--ec-border); }
.ec-shared.ec-theme-editorial .ec-primary-nav .ec-shell {
    min-height: 54px;
    justify-content: center;
    gap: 38px;
    font-size: 11px;
    letter-spacing: .14em;
    text-transform: uppercase;
}
/* Sublinhado que desliza (desktop; o off-canvas mobile tem lista própria). */
@media (min-width: 1024px) {
    .ec-shared.ec-theme-editorial .ec-primary-nav a {
        padding-block: 6px;
        background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 0% 1px;
        transition: background-size .35s var(--ec-ed-ease);
    }
    .ec-shared.ec-theme-editorial .ec-primary-nav a:hover,
    .ec-shared.ec-theme-editorial .ec-primary-nav a:focus-visible { background-size: 100% 1px; }
}

.ec-shared.ec-theme-editorial .ec-preview-banner { background: #b58a52; color: #21170d; }

/* ---------- HERO: cinema editorial ---------- */
.ec-shared.ec-theme-editorial .ec-hero { min-height: 640px; overflow: clip; touch-action: pan-y; background: #2c201d; }
.ec-shared.ec-theme-editorial .ec-hero__slide,
.ec-shared.ec-theme-editorial .ec-hero__content,
.ec-shared.ec-theme-editorial .ec-hero__fallback { min-height: 640px; }
.ec-shared.ec-theme-editorial .ec-hero__slide { isolation: isolate; }
.ec-shared.ec-theme-editorial .ec-hero__slide > picture img,
.ec-shared.ec-theme-editorial .ec-hero__slide > img { opacity: 1; }
.ec-shared.ec-theme-editorial .ec-hero__slide.has-copy::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(90deg, rgba(25, 14, 12, .9) 0%, rgba(38, 24, 21, .58) 42%, rgba(38, 24, 21, .05) 72%);
}
.ec-shared.ec-theme-editorial .ec-hero__content { position: relative; z-index: 2; padding-right: min(52vw, 680px); }
.ec-shared.ec-theme-editorial .ec-hero__fallback { position: relative; z-index: 2; }
/* Ken Burns somente com o zoom do banner ligado no construtor.
   Sem o guard, a arte (inclusive seu texto) se movia mesmo com data-ec-hero-zoom=0. */
@keyframes ecEdKenBurns { from { transform: scale(1.08) translateX(1.5%); } to { transform: scale(1) translateX(0); } }
.ec-shared.ec-theme-editorial[data-ec-hero-zoom="1"] .ec-hero__slide.is-active > picture img,
.ec-shared.ec-theme-editorial[data-ec-hero-zoom="1"] .ec-hero__slide.is-active > img { animation: ecEdKenBurns 7.5s var(--ec-ed-ease-out) both; }
/* Cascata tipográfica: eyebrow assenta o tracking, título e CTA sobem. */
@keyframes ecEdRise { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: none; } }
@keyframes ecEdTrack { from { opacity: 0; letter-spacing: .4em; } to { opacity: 1; letter-spacing: .23em; } }
.ec-shared.ec-theme-editorial .ec-hero__slide.is-active .ec-hero__content > *,
.ec-shared.ec-theme-editorial .ec-hero__fallback > * { animation: ecEdRise .9s var(--ec-ed-ease) both; }
.ec-shared.ec-theme-editorial .ec-hero__slide.is-active .ec-hero__content > p,
.ec-shared.ec-theme-editorial .ec-hero__fallback > p { animation: ecEdTrack 1.1s var(--ec-ed-ease) both; }
.ec-shared.ec-theme-editorial .ec-hero__slide.is-active .ec-hero__content > *:nth-child(2),
.ec-shared.ec-theme-editorial .ec-hero__fallback > *:nth-child(2) { animation-delay: .15s; }
.ec-shared.ec-theme-editorial .ec-hero__slide.is-active .ec-hero__content > *:nth-child(3),
.ec-shared.ec-theme-editorial .ec-hero__fallback > *:nth-child(3) { animation-delay: .3s; }
/* Moldura vertical de revista acompanhando a cascata (desktop). */
@keyframes ecEdRule { from { transform: scaleY(0); } to { transform: scaleY(1); } }
@media (min-width: 1024px) {
    .ec-shared.ec-theme-editorial .ec-hero__content { padding-left: 26px; }
    .ec-shared.ec-theme-editorial .ec-hero__content::before {
        content: '';
        position: absolute;
        left: 0;
        top: 48px;
        bottom: 48px;
        width: 1px;
        background: color-mix(in srgb, #f3e6d3 35%, transparent);
        transform-origin: top;
    }
    .ec-shared.ec-theme-editorial .ec-hero__slide.is-active .ec-hero__content::before { animation: ecEdRule 1.2s var(--ec-ed-ease) .2s both; }
}
.ec-shared.ec-theme-editorial .ec-hero p { color: #e4c99e; font-size: 11px; letter-spacing: .23em; }
.ec-shared.ec-theme-editorial .ec-hero h1 {
    max-width: 700px;
    margin-block: 14px 30px;
    font-size: clamp(48px, 6.2vw, 84px);
    font-weight: 400;
    line-height: .98;
    letter-spacing: -.045em;
}
.ec-shared.ec-theme-editorial .ec-hero .ec-button--primary {
    min-height: 50px;
    border-color: #f3e6d3;
    border-radius: 0;
    padding-inline: 25px;
    background: #f3e6d3;
    color: #2c201d;
    font-size: 11px;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.ec-shared.ec-theme-editorial .ec-hero__controls { z-index: 3; }
.ec-shared.ec-theme-editorial .ec-hero__controls button {
    border-radius: 0;
    background: rgba(27, 17, 15, .68);
    transition: background .3s var(--ec-ed-ease), color .3s var(--ec-ed-ease), border-color .3s var(--ec-ed-ease);
}
.ec-shared.ec-theme-editorial .ec-hero__controls button:hover { background: #f3e6d3; border-color: #f3e6d3; color: #2c201d; }
/* Dots viram traços de régua (fiéis ao radius 0). O traço visual tem 2px, mas o botão
   tem 26px de altura (padding + background-clip) para a área de toque não sumir. */
.ec-shared.ec-theme-editorial .ec-hero__controls .ec-hero__dot {
    width: 22px;
    height: 26px;
    padding: 12px 0;
    border-radius: 0;
    background-color: rgba(243, 230, 211, .4);
    background-clip: content-box;
    transition: background-color .3s var(--ec-ed-ease), width .3s var(--ec-ed-ease);
}
.ec-shared.ec-theme-editorial .ec-hero__controls .ec-hero__dot[aria-current="true"] { width: 44px; background-color: #f3e6d3; }
.ec-shared.ec-theme-editorial .ec-hero__controls .ec-hero__toggle { width: auto; }

/* ---------- Benefits: colofão de revista com índice romano ---------- */
.ec-shared.ec-theme-editorial .ec-benefits { border-block: 1px solid var(--ec-text); border-bottom-width: 1px; background: var(--ec-page); }
.ec-shared.ec-theme-editorial .ec-benefits__grid { counter-reset: ec-ed-ben; }
.ec-shared.ec-theme-editorial .ec-benefits__grid > div {
    min-height: 92px;
    padding-block: 22px;
    padding-inline: 28px;
    border-color: var(--ec-ed-hairline);
    counter-increment: ec-ed-ben;
}
.ec-shared.ec-theme-editorial .ec-benefits__grid > div::before {
    content: counter(ec-ed-ben, upper-roman);
    display: block;
    margin-bottom: 6px;
    font-family: var(--ec-font-display, Georgia), serif;
    font-style: italic;
    font-size: 12px;
    color: color-mix(in srgb, var(--ec-text) 40%, transparent);
}
.ec-shared.ec-theme-editorial .ec-benefits strong { font-family: var(--ec-font-display, Georgia), serif; font-size: 15px; font-weight: 500; text-transform: none; }
.ec-shared.ec-theme-editorial .ec-benefits span { margin-top: 3px; font-size: 12px; }

/* ---------- Seções: hairline dramática + eyebrow com traço + nº de série ---------- */
.ec-shared.ec-theme-editorial .ec-section { padding-block: 98px; }
.ec-shared.ec-theme-editorial .ec-page { padding-block: 74px 96px; }
.ec-shared.ec-theme-editorial .ec-section--accent { background: #efe7dc; }
.ec-shared.ec-theme-editorial .ec-section__head { position: relative; margin-bottom: 36px; padding-top: 22px; border-top: 1px solid var(--ec-text); }
.ec-shared.ec-theme-editorial .ec-section__head::after {
    content: '';
    position: absolute;
    top: -1px;
    left: 0;
    width: 72px;
    height: 3px;
    background: var(--ec-text);
    transform-origin: left;
}
.ec-shared.ec-theme-editorial .ec-page__head { padding-top: 22px; border-top: 1px solid var(--ec-text); }
.ec-shared.ec-theme-editorial .ec-section__head small,
.ec-shared.ec-theme-editorial .ec-page__head small {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    /* accent escurecido com tinta: o accent puro (#1f8a73) dá ~4.25:1 e reprova AA a 10px */
    color: color-mix(in srgb, var(--ec-accent) 70%, var(--ec-ed-ink));
    font-size: 10px;
    letter-spacing: .24em;
    text-transform: uppercase;
}
.ec-shared.ec-theme-editorial .ec-section__head small::before,
.ec-shared.ec-theme-editorial .ec-page__head small::before { content: ''; width: 36px; height: 1px; background: currentColor; }
.ec-shared.ec-theme-editorial .ec-home-categories,
.ec-shared.ec-theme-editorial .ec-home-featured,
.ec-shared.ec-theme-editorial .ec-home-promotions { counter-increment: ec-ed-sec; }
.ec-shared.ec-theme-editorial :is(.ec-home-categories, .ec-home-featured, .ec-home-promotions) .ec-section__head small::after {
    content: 'Nº ' counter(ec-ed-sec, decimal-leading-zero);
    margin-left: 2px;
    font-family: var(--ec-font-display, Georgia), serif;
    font-size: 11px;
    font-style: italic;
    letter-spacing: .06em;
    color: color-mix(in srgb, var(--ec-text) 45%, transparent);
    text-transform: none;
}
.ec-shared.ec-theme-editorial .ec-section__head h2,
.ec-shared.ec-theme-editorial .ec-page__head h1 { font-size: clamp(36px, 4.7vw, 62px); font-weight: 400; letter-spacing: -.04em; }
/* "Ver todas" com seta que chega + sublinhado que desliza. */
.ec-shared.ec-theme-editorial .ec-section__head > a {
    padding-bottom: 3px;
    border-bottom: 0;
    background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 100% 1px;
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
    transition: background-size .35s var(--ec-ed-ease), color .3s ease;
}
.ec-shared.ec-theme-editorial .ec-section__head > a::before {
    content: '\2192 ';
    display: inline-block;
    opacity: 0;
    transform: translateX(-6px);
    transition: opacity .3s ease, transform .3s var(--ec-ed-ease);
}
.ec-shared.ec-theme-editorial .ec-section__head > a:hover::before,
.ec-shared.ec-theme-editorial .ec-section__head > a:focus-visible::before { opacity: 1; transform: none; }

/* ---------- Categorias: grid editorial + legenda de foto ---------- */
.ec-shared.ec-theme-editorial .ec-category-grid { gap: 26px; }
.ec-shared.ec-theme-editorial .ec-home-categories { counter-reset: ec-ed-cat; }
.ec-shared.ec-theme-editorial .ec-category-card {
    min-height: 430px;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: #e9dfd2;
}
.ec-shared.ec-theme-editorial .ec-category-card::after {
    content: '';
    position: absolute;
    inset: 38% 0 0;
    z-index: 1;
    background: linear-gradient(transparent, color-mix(in srgb, var(--ec-ed-ink) 82%, transparent));
    pointer-events: none;
    transition: background .5s var(--ec-ed-ease);
}
.ec-shared.ec-theme-editorial .ec-home-categories .ec-category-card::before {
    content: counter(ec-ed-cat, decimal-leading-zero);
    counter-increment: ec-ed-cat;
    position: absolute;
    top: 16px;
    left: 18px;
    z-index: 2;
    font-family: var(--ec-font-display, Georgia), serif;
    font-style: italic;
    font-size: 13px;
    color: #f3e6d3;
    text-shadow: 0 1px 8px rgba(24, 15, 13, .5);
}
.ec-shared.ec-theme-editorial .ec-category-card img,
.ec-shared.ec-theme-editorial .ec-category-card .ec-media-placeholder { width: 100%; height: 430px; object-fit: cover; }
.ec-shared.ec-theme-editorial .ec-category-card strong {
    position: absolute;
    right: 22px;
    bottom: 22px;
    left: 22px;
    z-index: 2;
    padding: 0 0 14px;
    color: #fff;
    font-family: var(--ec-font-display, Georgia), serif;
    font-size: 25px;
    font-weight: 400;
}
.ec-shared.ec-theme-editorial .ec-category-card strong::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 38px;
    height: 1px;
    background: #f3e6d3;
    transition: width .45s var(--ec-ed-ease);
}
.ec-shared.ec-theme-editorial .ec-category-card.is-empty strong { color: #fff; }

/* ---------- Product card: contemplação ---------- */
.ec-shared.ec-theme-editorial .ec-product-grid { gap: 28px 22px; }
.ec-shared.ec-theme-editorial .ec-product-card {
    overflow: visible;
    border-width: 0 0 1px;
    border-radius: 0;
    border-color: color-mix(in srgb, var(--ec-border) 82%, transparent);
    background: transparent;
    box-shadow: none;
}
.ec-shared.ec-theme-editorial .ec-product-card__media { position: relative; overflow: hidden; aspect-ratio: var(--ec-product-ratio, 4/5); background: #eee6dc; }
.ec-shared.ec-theme-editorial .ec-product-card__media img { padding: 0; object-fit: cover; }
.ec-shared.ec-theme-editorial .ec-product-card__body { padding: 17px 4px 22px; }
.ec-shared.ec-theme-editorial .ec-product-card__body > small { font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.ec-shared.ec-theme-editorial .ec-product-card h3 { min-height: 52px; margin-block: 7px 10px; font-size: 19px; font-weight: 400; line-height: 1.28; }
.ec-shared.ec-theme-editorial .ec-product-card h3 a {
    background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 0% 1px;
    transition: background-size .45s var(--ec-ed-ease);
}
.ec-shared.ec-theme-editorial .ec-product-card__pricing { min-height: 50px; }
.ec-shared.ec-theme-editorial .ec-product-card__price { color: var(--ec-text); font-size: 19px; font-weight: 700; }
.ec-shared.ec-theme-editorial .ec-product-card__actions { grid-template-columns: 1fr 44px; }
.ec-shared.ec-theme-editorial .ec-product-card__actions .ec-button {
    border-radius: 0;
    background: var(--ec-text);
    border-color: var(--ec-text);
    color: #fff;
    font-size: 11px;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.ec-shared.ec-theme-editorial .ec-product-card__favorite { border-radius: 0; background: transparent; color: var(--ec-primary); }

/* ---------- Botões: caneta e tinta ---------- */
.ec-shared.ec-theme-editorial .ec-button {
    position: relative;
    z-index: 0;
    overflow: hidden;
    border-radius: 0;
    transition: color .3s var(--ec-ed-ease), border-color .3s var(--ec-ed-ease), background-color .3s var(--ec-ed-ease), letter-spacing .45s var(--ec-ed-ease);
}
.ec-shared.ec-theme-editorial .ec-button--primary {
    background: var(--ec-text);
    border-color: var(--ec-text);
    color: #fff;
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.ec-shared.ec-theme-editorial .ec-button--primary::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background: var(--ec-ed-tint);
    transform: translateY(101%);
    transition: transform .38s var(--ec-ed-ease);
}
.ec-shared.ec-theme-editorial .ec-button:not(.ec-button--primary) { background: transparent; border: 1px solid var(--ec-text); }
.ec-shared.ec-theme-editorial .ec-button--danger { border-color: var(--ec-danger); color: var(--ec-danger); }
.ec-shared.ec-theme-editorial .ec-button:active { transform: translateY(1px); }

/* ---------- Inputs: sublinhado que acende ---------- */
.ec-shared.ec-theme-editorial :is(.ec-form, .ec-form-grid, .ec-buybox, .ec-cart-tools) :is(input, select, textarea) {
    border-radius: 0;
    /* 55% da TINTA (não o hairline 82% da borda): com os próprios defaults do tema o campo ficava
       a 1,27:1 — caixa invisível. 55% entrega 3,6-4,6:1 nas três superfícies do tema. */
    border-color: color-mix(in srgb, var(--ec-text) 55%, transparent);
    background: transparent;
    transition: border-color .25s var(--ec-ed-ease), box-shadow .25s var(--ec-ed-ease);
}
.ec-shared.ec-theme-editorial :is(.ec-form, .ec-form-grid, .ec-buybox, .ec-cart-tools) :is(input, select, textarea):focus {
    outline: none;
    border-color: var(--ec-text);
    box-shadow: inset 0 -2px 0 var(--ec-text);
}

/* ---------- Catálogo / página de produto ---------- */
.ec-shared.ec-theme-editorial .ec-catalog-tools { padding: 14px 16px; border-block: 1px solid var(--ec-border); }
.ec-shared.ec-theme-editorial .ec-catalog-tools select { border-width: 0 0 1px; border-radius: 0; background-color: transparent; }
.ec-shared.ec-theme-editorial .ec-gallery,
.ec-shared.ec-theme-editorial .ec-buybox { border-radius: 0; box-shadow: none; }
.ec-shared.ec-theme-editorial .ec-gallery { background: #eee6dc; }
.ec-shared.ec-theme-editorial .ec-gallery__main { object-fit: contain; transition: opacity .25s ease; }
/* Thumbs como contact sheet: a escolhida acende. */
.ec-shared.ec-theme-editorial .ec-gallery__thumbs button {
    border-radius: 0;
    border-color: transparent;
    border-bottom: 2px solid transparent;
    opacity: .6;
    transition: border-color .3s var(--ec-ed-ease), opacity .3s ease;
}
.ec-shared.ec-theme-editorial .ec-gallery__thumbs button:hover,
.ec-shared.ec-theme-editorial .ec-gallery__thumbs button[aria-pressed="true"] { opacity: 1; }
.ec-shared.ec-theme-editorial .ec-gallery__thumbs button[aria-pressed="true"] { border-bottom-color: var(--ec-text); box-shadow: none; }
.ec-shared.ec-theme-editorial .ec-buybox > small {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    color: color-mix(in srgb, var(--ec-accent) 70%, var(--ec-ed-ink));
    letter-spacing: .12em;
    text-transform: uppercase;
}
.ec-shared.ec-theme-editorial .ec-buybox > small::before { content: ''; width: 36px; height: 1px; background: currentColor; }
.ec-shared.ec-theme-editorial .ec-buybox h1 { font-size: clamp(38px, 4vw, 58px); font-weight: 400; }
.ec-shared.ec-theme-editorial .ec-price del { font-family: var(--ec-font-display, Georgia), serif; font-style: italic; font-size: 14px; }
.ec-shared.ec-theme-editorial .ec-price strong {
    color: var(--ec-text);
    font-family: var(--ec-font-display, Georgia), serif;
    font-size: 38px;
    font-weight: 500;
    letter-spacing: -.02em;
}
.ec-shared.ec-theme-editorial .ec-product-page .ec-breadcrumb {
    padding-bottom: 14px;
    border-bottom: 1px solid var(--ec-border);
    letter-spacing: .04em;
}
.ec-shared.ec-theme-editorial .ec-product-detail .ec-gallery {
    position: sticky;
    top: 196px; /* header inteiro (anuncio 36 + main 96 + nav 54) + respiro */
}
.ec-shared.ec-theme-editorial .ec-product-detail .ec-buybox {
    border: 0;
    border-left: 1px solid var(--ec-border);
    padding: 18px 0 18px 38px;
}
.ec-shared.ec-theme-editorial .ec-product-description {
    max-width: 62ch;
    font-size: 15px;
    line-height: 1.8;
}
.ec-shared.ec-theme-editorial .ec-product-share { padding-top: 18px; border-top: 1px solid var(--ec-border); }
.ec-shared.ec-theme-editorial .ec-related { padding-top: 54px; border-top: 1px solid var(--ec-border); }
.ec-shared.ec-theme-editorial .ec-related > h2 { margin-bottom: 30px; font-size: clamp(32px, 4vw, 52px); font-weight: 400; }

/* ---------- Carrinho / checkout: tinta, não azul de sistema ---------- */
.ec-shared.ec-theme-editorial .ec-cart-list,
.ec-shared.ec-theme-editorial .ec-cart-tools,
.ec-shared.ec-theme-editorial .ec-summary,
.ec-shared.ec-theme-editorial .ec-form,
.ec-shared.ec-theme-editorial .ec-address-card,
.ec-shared.ec-theme-editorial .ec-contact-card,
.ec-shared.ec-theme-editorial .ec-payment,
.ec-shared.ec-theme-editorial .ec-order-timeline,
.ec-shared.ec-theme-editorial .ec-auth__card,
.ec-shared.ec-theme-editorial .ec-order-card,
.ec-shared.ec-theme-editorial .ec-post-card { border-radius: 0; box-shadow: none; }
.ec-shared.ec-theme-editorial .ec-cart-item { padding-block: 22px; transition: background .3s ease; }
.ec-shared.ec-theme-editorial .ec-cart-item:hover { background: color-mix(in srgb, var(--ec-ed-paper) 45%, transparent); }
.ec-shared.ec-theme-editorial .ec-summary { border-top: 3px double var(--ec-text); }
.ec-shared.ec-theme-editorial .ec-summary__total {
    font-family: var(--ec-font-display, Georgia), serif;
    font-size: 24px;
    font-weight: 500;
}
.ec-shared.ec-theme-editorial .ec-checkout-steps li > span {
    border-radius: 0;
    font-family: var(--ec-font-display, Georgia), serif;
    transition: background .35s var(--ec-ed-ease), border-color .35s var(--ec-ed-ease), color .35s var(--ec-ed-ease);
}
.ec-shared.ec-theme-editorial .ec-checkout-steps li.is-current > span { background: var(--ec-text); border-color: var(--ec-text); color: #fff; }
.ec-shared.ec-theme-editorial .ec-checkout-steps li.is-complete > span { background: transparent; border-color: var(--ec-text); color: var(--ec-text); }
.ec-shared.ec-theme-editorial .ec-checkout-steps li.is-complete::after { background: var(--ec-text); transition: background .5s ease; }
.ec-shared.ec-theme-editorial .ec-address-card label {
    min-height: 48px;
    align-items: flex-start;
    padding: 12px;
    border: 1px solid var(--ec-border);
}
.ec-shared.ec-theme-editorial .ec-address-card input { margin-top: 3px; accent-color: var(--ec-primary); }
.ec-shared.ec-theme-editorial .ec-order-result { padding-top: 28px; border-top: 1px solid var(--ec-border); }
.ec-shared.ec-theme-editorial .ec-account-nav a { border-radius: 0; }
.ec-shared.ec-theme-editorial [data-ec-checkout-current-label],
.ec-shared.ec-theme-editorial [data-ec-mobile-buy-dock] { display: none; }
.ec-shared.ec-theme-editorial .ec-payment__tabs button {
    font-family: var(--ec-font-display, Georgia), serif;
    font-size: 17px;
    font-weight: 500;
    transition: color .3s ease, border-color .3s ease, background .3s ease;
}
.ec-shared.ec-theme-editorial .ec-payment__tabs button[aria-selected="true"] { border-bottom-color: var(--ec-text); color: var(--ec-text); }
.ec-shared.ec-theme-editorial .ec-auth { background: #efe7dc; }

/* ---------- Footer: assinatura de marca + colofão ---------- */
.ec-shared.ec-theme-editorial .ec-footer { border-top: 1px solid var(--ec-ed-gold); background: #2b1d1a; }
.ec-shared.ec-theme-editorial .ec-footer .ec-shell { position: relative; z-index: 3; }
.ec-shared.ec-theme-editorial .ec-footer__grid > div:first-child > strong {
    font-family: var(--ec-font-display, Georgia), serif;
    font-size: clamp(26px, 3vw, 42px);
    font-weight: 400;
    letter-spacing: -.03em;
    line-height: 1.05;
    color: #f3e6d3;
}
.ec-shared.ec-theme-editorial .ec-footer__grid > div:not(:first-child) > strong {
    width: 100%;
    padding-bottom: 8px;
    margin-bottom: 4px;
    border-bottom: 1px solid rgba(243, 230, 211, .18);
    color: #b59d8a;
    font-size: 10px;
    letter-spacing: .2em;
    text-transform: uppercase;
}
.ec-shared.ec-theme-editorial .ec-footer a {
    color: #cbb9a6;
    background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 0% 1px;
    transition: color .3s ease, background-size .35s var(--ec-ed-ease);
}
.ec-shared.ec-theme-editorial .ec-footer a:hover,
.ec-shared.ec-theme-editorial .ec-footer a:focus-visible { color: #f3e6d3; background-size: 100% 1px; }
.ec-shared.ec-theme-editorial .ec-footer::after {
    content: '— fim —';
    display: block;
    margin-top: 40px;
    text-align: center;
    font-family: var(--ec-font-display, Georgia), serif;
    font-style: italic;
    font-size: 12px;
    color: rgba(243, 230, 211, .35);
}

/* ---------- Revelação ao rolar (classe .ec-inview posta pelo core.js) ----------
   Presas a html.ec-js: sem JS nada fica oculto. Ritmo de virar página: 800ms. */
.ec-js .ec-shared.ec-theme-editorial :is(.ec-product-card, .ec-category-card, .ec-benefits__grid > div, .ec-section__head, .ec-post-card, .ec-order-card) {
    opacity: 0;
    transform: translateY(28px);
    /* Delay do stagger via var SÓ em opacity/transform — transition-delay solto
       atrasaria também o border-color/background do hover. */
    transition:
        opacity .8s var(--ec-ed-ease) var(--ec-ed-d, 0s),
        transform .8s var(--ec-ed-ease) var(--ec-ed-d, 0s),
        border-color .4s var(--ec-ed-ease),
        background .3s ease;
}
.ec-js .ec-shared.ec-theme-editorial :is(.ec-product-card, .ec-category-card, .ec-post-card, .ec-order-card).ec-inview,
.ec-js .ec-shared.ec-theme-editorial .ec-benefits__grid > div.ec-inview,
.ec-js .ec-shared.ec-theme-editorial .ec-section__head.ec-inview { opacity: 1; transform: none; }
/* escadinha por coluna */
.ec-js .ec-shared.ec-theme-editorial :is(.ec-product-grid, .ec-category-grid, .ec-benefits__grid) > :nth-child(4n+2) { --ec-ed-d: .09s; }
.ec-js .ec-shared.ec-theme-editorial :is(.ec-product-grid, .ec-category-grid, .ec-benefits__grid) > :nth-child(4n+3) { --ec-ed-d: .18s; }
.ec-js .ec-shared.ec-theme-editorial :is(.ec-product-grid, .ec-category-grid, .ec-benefits__grid) > :nth-child(4n) { --ec-ed-d: .27s; }
/* A régua do section head "risca" da esquerda quando a seção entra. */
.ec-js .ec-shared.ec-theme-editorial .ec-section__head { border-top-color: transparent; }
.ec-js .ec-shared.ec-theme-editorial .ec-section__head::after { transform: scaleX(0); transition: transform .9s var(--ec-ed-ease) .15s; }
.ec-js .ec-shared.ec-theme-editorial .ec-section__head.ec-inview { border-top-color: var(--ec-text); transition: opacity .8s var(--ec-ed-ease), transform .8s var(--ec-ed-ease), border-top-color .6s ease .1s; }
.ec-js .ec-shared.ec-theme-editorial .ec-section__head.ec-inview::after { transform: scaleX(1); }

/* ---------- Hovers cinematográficos (só ponteiro fino + motion ok) ---------- */
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
    /* Foto do produto: zoom em câmera lenta + legenda que sobe + hairline acesa. */
    .ec-shared.ec-theme-editorial .ec-product-card__media img { transition: transform 1.2s var(--ec-ed-ease-out); }
    .ec-shared.ec-theme-editorial .ec-product-card:hover .ec-product-card__media img { transform: scale(1.06); }
    .ec-shared.ec-theme-editorial .ec-product-card__media::after {
        content: 'Ver produto \2192';
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 1;
        padding: 12px 14px;
        background: color-mix(in srgb, var(--ec-ed-ink) 88%, transparent);
        color: #f3e6d3;
        font-size: 10px;
        letter-spacing: .16em;
        text-transform: uppercase;
        transform: translateY(101%);
        transition: transform .45s var(--ec-ed-ease);
        pointer-events: none;
    }
    .ec-shared.ec-theme-editorial .ec-product-card:hover .ec-product-card__media::after { transform: translateY(0); }
    .ec-shared.ec-theme-editorial .ec-product-card:hover { transform: none; box-shadow: none; border-bottom-color: var(--ec-text); }
    .ec-shared.ec-theme-editorial .ec-product-card:hover h3 a { background-size: 100% 1px; }

    /* Categoria: zoom + cor real revelada + gradiente aprofunda + sublinhado cresce. */
    .ec-shared.ec-theme-editorial .ec-category-card img { transition: transform 1.3s var(--ec-ed-ease-out), filter .6s ease; }
    .ec-shared.ec-theme-editorial .ec-category-card:hover { transform: none; box-shadow: none; }
    .ec-shared.ec-theme-editorial .ec-category-card:hover img { transform: scale(1.05); filter: saturate(1) sepia(0) contrast(1.02); }
    .ec-shared.ec-theme-editorial .ec-category-card:hover::after { background: linear-gradient(transparent 30%, color-mix(in srgb, var(--ec-ed-ink) 90%, transparent)); }
    .ec-shared.ec-theme-editorial .ec-category-card:hover strong::after { width: 100%; }

    /* Botões: tinta sobe por trás do rótulo + tracking respira. */
    .ec-shared.ec-theme-editorial .ec-button--primary:hover::before { transform: translateY(0); }
    .ec-shared.ec-theme-editorial .ec-button--primary:hover { letter-spacing: .16em; border-color: var(--ec-ed-tint); }
    /* Texto do CTA do hero vira creme SÓ aqui, junto com a tinta que sobe — fora deste
       bloco (touch/reduce) o sweep não roda e creme-sobre-creme sumiria o rótulo. */
    .ec-shared.ec-theme-editorial .ec-hero .ec-button--primary:hover { color: #f3e6d3; border-color: var(--ec-ed-tint); }
    .ec-shared.ec-theme-editorial .ec-button:not(.ec-button--primary):hover { background: var(--ec-text); border-color: var(--ec-text); color: #fff; }
    .ec-shared.ec-theme-editorial .ec-button--danger:hover { background: var(--ec-danger); border-color: var(--ec-danger); color: #fff; }

    /* Favorito: batida única de coração. */
    .ec-shared.ec-theme-editorial .ec-product-card__favorite { transition: color .25s ease, border-color .25s ease; }
    .ec-shared.ec-theme-editorial .ec-product-card__favorite:hover { color: var(--ec-danger); border-color: currentColor; animation: ecEdPulse .5s var(--ec-ed-ease-out) 1; }
    .ec-shared.ec-theme-editorial .ec-product-card__favorite:active { transform: scale(.9); }
}
@keyframes ecEdPulse { 0% { transform: scale(1); } 35% { transform: scale(1.28); } 60% { transform: scale(.94); } 100% { transform: scale(1); } }

/* ---------- Grid editorial 12 colunas nas categorias da home ---------- */
@media (min-width: 1024px) {
    .ec-shared.ec-theme-editorial .ec-home-categories .ec-category-grid {
        grid-template-columns: repeat(12, minmax(0, 1fr));
        grid-auto-flow: dense;
        grid-auto-rows: 210px;
    }
    .ec-shared.ec-theme-editorial .ec-home-categories .ec-category-card {
        min-height: 0;
        grid-column: span 3;
    }
    .ec-shared.ec-theme-editorial .ec-home-categories .ec-category-card:first-child {
        grid-column: span 6;
        grid-row: span 2;
    }
    .ec-shared.ec-theme-editorial .ec-home-categories .ec-category-card:nth-child(n+6) {
        grid-column: span 4;
    }
    .ec-shared.ec-theme-editorial .ec-home-categories .ec-category-card img,
    .ec-shared.ec-theme-editorial .ec-home-categories .ec-category-card .ec-media-placeholder {
        height: 100%;
    }
}

@media (max-width: 1023px) {
    /* Header alto (2 linhas) não pode ficar grudado no celular — volta a rolar.
       relative (NÃO static): sem position o z-index é ignorado e o header deixa de ser
       stacking context — o menu off-canvas (z2 interno) perderia pro buy-dock (z50). */
    .ec-shared.ec-theme-editorial .ec-header { position: relative; z-index: 60; }
    .ec-shared.ec-theme-editorial .ec-header__main { min-height: 0; }
    .ec-shared.ec-theme-editorial .ec-header__main { position: relative; z-index: 4; }
    /* a faixa de anúncio também precisa ficar ACIMA do backdrop do menu (z1), senão o menu
       aberto escurece só ela e o topo do cabeçalho fica com aspecto "dividido". */
    .ec-shared.ec-theme-editorial .ec-announcement { position: relative; z-index: 5; }
    .ec-shared.ec-theme-editorial .ec-menu-trigger {
        display: grid;
        width: 46px;
        height: 46px;
        place-items: center;
        border-color: #d6c8b8;
        background: #fbf6ef;
        color: #35221d;
    }
    .ec-shared.ec-theme-editorial .ec-menu-trigger__icon { display: inline-grid; width: 22px; gap: 5px; }
    .ec-shared.ec-theme-editorial .ec-menu-trigger__icon i {
        display: block;
        width: 100%;
        height: 2px;
        background: currentColor;
        transform-origin: center;
        transition: transform .22s ease, opacity .18s ease;
    }
    .ec-shared.ec-theme-editorial .ec-menu-trigger[aria-expanded="true"] .ec-menu-trigger__icon i:first-child { transform: translateY(7px) rotate(45deg); }
    .ec-shared.ec-theme-editorial .ec-menu-trigger[aria-expanded="true"] .ec-menu-trigger__icon i:nth-child(2) { opacity: 0; }
    .ec-shared.ec-theme-editorial .ec-menu-trigger[aria-expanded="true"] .ec-menu-trigger__icon i:last-child { transform: translateY(-7px) rotate(-45deg); }
    .ec-shared.ec-theme-editorial .ec-menu-backdrop {
        position: fixed;
        inset: 0;
        z-index: 1;
        background: rgba(28, 17, 15, .48);
        backdrop-filter: blur(2px);
    }
    .ec-shared.ec-theme-editorial .ec-menu-backdrop.is-open { display: block; }
    .ec-shared.ec-theme-editorial .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: #fbf6ef;
        color: #35221d;
        box-shadow: -22px 0 48px rgba(28, 17, 15, .2);
        opacity: 0;
        pointer-events: none;
        transform: translateX(104%);
        visibility: hidden;
        transition: transform .26s cubic-bezier(.2, .8, .25, 1), opacity .2s ease, visibility .26s step-end;
    }
    .ec-shared.ec-theme-editorial .ec-primary-nav.is-open {
        display: block;
        opacity: 1;
        pointer-events: auto;
        transform: translateX(0);
        visibility: visible;
        transition: transform .26s cubic-bezier(.2, .8, .25, 1), opacity .2s ease;
    }
    .ec-shared.ec-theme-editorial .ec-primary-nav .ec-shell { min-height: 100%; align-items: stretch; justify-content: flex-start; gap: 0; padding: 14px 24px 34px; }
    .ec-shared.ec-theme-editorial .ec-primary-nav a { min-height: 50px; padding: 15px 4px; border-bottom: 1px solid #dfd2c3; }
    .ec-shared.ec-theme-editorial .ec-hero,
    .ec-shared.ec-theme-editorial .ec-hero__slide,
    .ec-shared.ec-theme-editorial .ec-hero__content,
    .ec-shared.ec-theme-editorial .ec-hero__fallback { min-height: 580px; }
    .ec-shared.ec-theme-editorial .ec-product-grid,
    .ec-shared.ec-theme-editorial .ec-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ec-shared.ec-theme-editorial .ec-product-detail .ec-gallery { position: static; }
    .ec-shared.ec-theme-editorial .ec-product-detail .ec-buybox { border-left: 0; padding: 24px; }
}

@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-editorial .ec-product-page { padding-bottom: 84px; }
    .ec-shared.ec-theme-editorial .ec-announcement { min-height: 28px; padding-block: 5px; font-size: 9px; }
    .ec-shared.ec-theme-editorial .ec-header__main { gap: 8px 10px; padding-block: 10px 12px; }
    .ec-shared.ec-theme-editorial .ec-brand { min-height: 42px; font-size: 19px; }
    .ec-shared.ec-theme-editorial .ec-mobile-cart,
    .ec-shared.ec-theme-editorial .ec-menu-trigger { min-height: 44px; border-radius: 0; }
    .ec-shared.ec-theme-editorial .ec-search { min-height: 48px; border: 1px solid var(--ec-border); }
    .ec-shared.ec-theme-editorial .ec-search button { min-width: 92px; padding-inline: 13px; }
    .ec-shared.ec-theme-editorial .ec-preview-banner { padding-block: 7px; font-size: 11px; }
    .ec-shared.ec-theme-editorial .ec-hero,
    .ec-shared.ec-theme-editorial .ec-hero__slide,
    .ec-shared.ec-theme-editorial .ec-hero__content,
    .ec-shared.ec-theme-editorial .ec-hero__fallback { min-height: 520px; }
    .ec-shared.ec-theme-editorial .ec-hero__slide > picture img,
    .ec-shared.ec-theme-editorial .ec-hero__slide > img { object-fit: cover; }
    .ec-shared.ec-theme-editorial .ec-hero__slide.has-copy::after { background: linear-gradient(180deg, rgba(28, 16, 14, .22), rgba(28, 16, 14, .82) 85%); }
    .ec-shared.ec-theme-editorial .ec-hero__content { justify-content: flex-end; padding: 40px 14px 82px 0; }
    .ec-shared.ec-theme-editorial .ec-hero h1 { max-width: 330px; margin-block: 10px 22px; font-size: clamp(39px, 12vw, 52px); }
    .ec-shared.ec-theme-editorial .ec-hero .ec-button--primary { min-height: 48px; }
    .ec-shared.ec-theme-editorial .ec-hero__controls { bottom: 20px; }

    .ec-shared.ec-theme-editorial .ec-benefits { padding-block: 12px; overflow: hidden; }
    .ec-shared.ec-theme-editorial .ec-mobile-benefit-rail,
    .ec-shared.ec-theme-editorial .ec-mobile-category-rail {
        display: flex;
        width: min(calc(100% - 28px), var(--ec-shell));
        gap: 10px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }
    .ec-shared.ec-theme-editorial .ec-mobile-benefit-rail::-webkit-scrollbar,
    .ec-shared.ec-theme-editorial .ec-mobile-category-rail::-webkit-scrollbar { display: none; }
    .ec-shared.ec-theme-editorial .ec-mobile-benefit-rail > *,
    .ec-shared.ec-theme-editorial .ec-mobile-category-rail > * { scroll-snap-align: start; }
    .ec-shared.ec-theme-editorial .ec-mobile-benefit-rail > div {
        flex: 0 0 min(82vw, 310px);
        min-height: 72px;
        border: 1px solid var(--ec-border);
        padding: 12px 16px;
    }
    .ec-shared.ec-theme-editorial .ec-section,
    .ec-shared.ec-theme-editorial .ec-page { padding-block: 54px; }
    .ec-shared.ec-theme-editorial .ec-section__head { gap: 13px; margin-bottom: 23px; }
    .ec-shared.ec-theme-editorial .ec-section__head h2,
    .ec-shared.ec-theme-editorial .ec-page__head h1 { font-size: 36px; }
    .ec-shared.ec-theme-editorial .ec-mobile-category-rail { width: 100%; }
    .ec-shared.ec-theme-editorial .ec-mobile-category-rail .ec-category-card { flex: 0 0 min(74vw, 286px); min-height: 370px; }
    .ec-shared.ec-theme-editorial .ec-mobile-category-rail .ec-category-card img,
    .ec-shared.ec-theme-editorial .ec-mobile-category-rail .ec-category-card .ec-media-placeholder { height: 370px; }

    .ec-shared.ec-theme-editorial .ec-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 10px; }
    .ec-shared.ec-theme-editorial .ec-product-card__body { padding: 12px 1px 16px; }
    .ec-shared.ec-theme-editorial .ec-product-card h3 { min-height: 43px; margin-block: 6px 8px; font-size: 15px; }
    .ec-shared.ec-theme-editorial .ec-product-card__pricing { min-height: 45px; }
    .ec-shared.ec-theme-editorial .ec-product-card__price { font-size: 17px; }
    .ec-shared.ec-theme-editorial .ec-product-card__actions { grid-template-columns: minmax(0, 1fr) 44px; gap: 6px; margin-top: 10px; }
    .ec-shared.ec-theme-editorial .ec-product-card__actions .ec-button { min-height: 44px; padding-inline: 8px; font-size: 9px; }
    .ec-shared.ec-theme-editorial .ec-product-card__favorite { display: grid; width: 44px; height: 44px; }

    .ec-shared.ec-theme-editorial .ec-gallery,
    .ec-shared.ec-theme-editorial .ec-buybox { padding: 16px; }
    .ec-shared.ec-theme-editorial .ec-gallery__main { width: 100%; height: auto; min-height: 0; aspect-ratio: 4 / 5; }
    .ec-shared.ec-theme-editorial .ec-buybox h1 { font-size: 35px; }
    .ec-shared.ec-theme-editorial .ec-buybox #ec-product-purchase-form > .ec-button--primary { display: none; }
    .ec-shared.ec-theme-editorial [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: 12px;
        padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
        border-top: 1px solid var(--ec-border);
        background: color-mix(in srgb, var(--ec-card) 97%, var(--ec-text));
        box-shadow: 0 -10px 30px rgba(45, 28, 23, .12);
    }
    .ec-js .ec-shared.ec-theme-editorial [data-ec-mobile-buy-dock] { animation: ecEdDockIn .6s var(--ec-ed-ease) .3s both; }
    .ec-shared.ec-theme-editorial [data-ec-mobile-buy-dock] > div { display: grid; min-width: 0; }
    .ec-shared.ec-theme-editorial [data-ec-mobile-buy-dock] small { color: var(--ec-muted); font-size: 10px; text-transform: uppercase; }
    .ec-shared.ec-theme-editorial [data-ec-mobile-buy-dock] strong {
        overflow: hidden;
        font-family: var(--ec-font-display, Georgia), serif;
        font-size: 20px;
        font-weight: 500;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .ec-shared.ec-theme-editorial [data-ec-mobile-buy-dock] .ec-button { min-width: 136px; min-height: 48px; border-radius: 0; }

    .ec-shared.ec-theme-editorial .ec-checkout-steps { overflow: visible; }
    .ec-shared.ec-theme-editorial [data-ec-checkout-current-label] {
        display: block;
        margin: 0 0 12px;
        color: var(--ec-primary);
        font-family: var(--ec-font-display, Georgia), serif;
        font-size: 15px;
    }
    .ec-shared.ec-theme-editorial .ec-checkout-steps ol { grid-template-columns: repeat(4, minmax(0, 1fr)); min-width: 0; }
    .ec-shared.ec-theme-editorial .ec-checkout-steps li { min-width: 0; min-height: 42px; justify-content: center; }
    .ec-shared.ec-theme-editorial .ec-checkout-steps li > strong { display: none; }
    .ec-shared.ec-theme-editorial .ec-checkout-steps li > span { width: 32px; height: 32px; flex-basis: 32px; }
    .ec-shared.ec-theme-editorial .ec-checkout-steps li::after { right: -9px; left: calc(50% + 16px); }
    .ec-shared.ec-theme-editorial .ec-cart-item { grid-template-columns: 72px minmax(0, 1fr); gap: 12px; padding: 14px; }
    .ec-shared.ec-theme-editorial .ec-cart-item input { min-height: 46px; }
    .ec-shared.ec-theme-editorial .ec-cart-tools,
    .ec-shared.ec-theme-editorial .ec-form,
    .ec-shared.ec-theme-editorial .ec-summary,
    .ec-shared.ec-theme-editorial .ec-payment { padding: 18px; }
    .ec-shared.ec-theme-editorial .ec-form-grid,
    .ec-shared.ec-theme-editorial .ec-payment .ec-form-grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
    .ec-shared.ec-theme-editorial .ec-form input,
    .ec-shared.ec-theme-editorial .ec-form select,
    .ec-shared.ec-theme-editorial .ec-form textarea,
    .ec-shared.ec-theme-editorial .ec-form-grid input,
    .ec-shared.ec-theme-editorial .ec-form-grid select,
    .ec-shared.ec-theme-editorial .ec-form-grid textarea { min-height: 48px; }
    .ec-shared.ec-theme-editorial .ec-payment__tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--ec-border); }
    .ec-shared.ec-theme-editorial .ec-payment__tabs button { border: 0; border-right: 1px solid var(--ec-border); }
    .ec-shared.ec-theme-editorial .ec-payment__tabs button:last-child { border-right: 0; }
    .ec-shared.ec-theme-editorial .ec-payment__tabs button[aria-selected="true"] { background: #efe7dc; }
    .ec-shared.ec-theme-editorial .ec-cart-item > label,
    .ec-shared.ec-theme-editorial .ec-cart-item > form,
    .ec-shared.ec-theme-editorial .ec-address-form > .ec-button,
    .ec-shared.ec-theme-editorial .ec-payment form > .ec-button { width: 100%; min-height: 48px; }
    .ec-shared.ec-theme-editorial .ec-account-nav {
        flex-direction: row;
        overflow-x: auto;
        scroll-snap-type: x proximity;
    }
    .ec-shared.ec-theme-editorial .ec-account-nav a {
        flex: 0 0 auto;
        min-height: 44px;
        scroll-snap-align: start;
    }
    .ec-shared.ec-theme-editorial .ec-auth { min-height: 520px; padding: 34px 14px; }
    .ec-shared.ec-theme-editorial .ec-auth__card { padding: 24px 20px; }
    .ec-shared.ec-theme-editorial .ec-footer { padding-block: 42px 96px; }
}
@keyframes ecEdDockIn { from { transform: translateY(110%); } to { transform: translateY(0); } }

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

/* ---------- Reduced motion: neutralização total (cinto triplo com core.css/core.js) ---------- */
@media (prefers-reduced-motion: reduce) {
    .ec-shared.ec-theme-editorial .ec-primary-nav,
    .ec-shared.ec-theme-editorial .ec-menu-trigger__icon i { transition: none; }
    .ec-shared.ec-theme-editorial .ec-announcement,
    .ec-shared.ec-theme-editorial .ec-hero__slide.is-active > picture img,
    .ec-shared.ec-theme-editorial .ec-hero__slide.is-active > img,
    .ec-shared.ec-theme-editorial .ec-hero__slide.is-active .ec-hero__content > *,
    .ec-shared.ec-theme-editorial .ec-hero__fallback > *,
    .ec-shared.ec-theme-editorial .ec-hero__slide.is-active .ec-hero__content::before,
    .ec-shared.ec-theme-editorial .ec-product-card__favorite,
    .ec-js .ec-shared.ec-theme-editorial [data-ec-mobile-buy-dock] { animation: none !important; }
    .ec-js .ec-shared.ec-theme-editorial :is(.ec-product-card, .ec-category-card, .ec-benefits__grid > div, .ec-section__head, .ec-post-card, .ec-order-card) {
        opacity: 1;
        transform: none;
        transition: none;
    }
    .ec-js .ec-shared.ec-theme-editorial .ec-section__head { border-top-color: var(--ec-text); }
    .ec-js .ec-shared.ec-theme-editorial .ec-section__head::after { transform: none; transition: none; }
    .ec-shared.ec-theme-editorial .ec-product-card__media::after { display: none; }
}

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