:root {
    --catalogo-ink: #29242a;
    --primary-contrast: #fff;
    --catalogo-muted: #716a70;
    --catalogo-canvas: #f8f5f1;
    --catalogo-paper: #fffdf9;
    --catalogo-line: rgba(41, 36, 42, .12);
    --catalogo-gold: #aa8b4d;
    --catalogo-danger: #a64040;
    --catalogo-success: #28735a;
    --catalogo-shadow: 0 18px 60px rgba(42, 30, 38, .10);
    --catalogo-shadow-soft: 0 8px 28px rgba(42, 30, 38, .07);
    --cart-bar-height: 0px;
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body.catalogo-page {
    min-height: 100vh;
    margin: 0;
    padding: 0 0 calc(5rem + var(--cart-bar-height));
    overflow-x: hidden;
    color: var(--catalogo-ink);
    background:
        linear-gradient(90deg, rgba(170,139,77,.025) 1px, transparent 1px) 0 0 / 40px 40px,
        var(--catalogo-canvas);
    font-family: 'Manrope', sans-serif;
    -webkit-font-smoothing: antialiased;
}

body.catalogo-modal-open { overflow: hidden; }

/* Vitrine editorial: a identidade pertence à loja, com imagens e compra em primeiro plano. */
body.catalogo-page { background:var(--vitrine-bg,#faf7f2); }
.vitrine-topbar { display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px max(24px,calc((100vw - 1180px)/2));background:#fffdfb;border-bottom:1px solid var(--catalogo-line); }
.vitrine-brand { display:flex;align-items:center;gap:12px;min-width:0;color:var(--catalogo-ink);text-decoration:none;font-family:'Cormorant Garamond',Georgia,serif;font-size:27px;font-weight:600;line-height:1.1; }
.vitrine-brand img { border-radius:50%;object-fit:contain;flex-shrink:0;border:1px solid var(--catalogo-line);background:white; }
.vitrine-brand span { overflow-wrap:anywhere; }
.vitrine-top-actions { display:flex;gap:10px;flex-shrink:0; }
.vitrine-top-actions button { display:flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--catalogo-ink);font-size:12px;font-weight:650;padding:11px 14px;border-radius:12px; }
.vitrine-top-actions button i { font-size:20px; }
.vitrine-top-actions .vitrine-cart { background:var(--primary-color);color:var(--primary-contrast); }
.vitrine-benefits { display:flex;flex-wrap:wrap;gap:16px 32px;padding:20px 0 24px;border-bottom:1px solid var(--catalogo-line);margin:0 0 22px;list-style:none;color:#51434e; }
.vitrine-benefit { display:flex;align-items:center;gap:12px;flex:1 1 200px;min-width:0; }
.vitrine-benefit i { display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border-radius:50%;background:color-mix(in srgb,var(--benefit-color,var(--primary-color)) 12%,white);color:var(--benefit-icon,var(--primary-ink));font-size:21px; }
.vitrine-benefit div { min-width:0;overflow-wrap:anywhere; }
.vitrine-benefit strong { display:block;font-size:12px;font-weight:650;line-height:1.5; }
.vitrine-benefit small { display:block;margin-top:2px;font-size:11px;line-height:1.6;color:var(--catalogo-muted); }
.vitrine-collection { margin:26px 0 36px; }
.collection-eyebrow { color:#746470;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em; }
.vitrine-collection .section-heading { margin-bottom:16px; }
.vitrine-collection .section-heading h2 { margin:4px 0 0; }
.vitrine-collection .section-heading a { color:#54404e;font-size:12px;font-weight:700;white-space:nowrap;text-decoration:none; }
.collection-track { display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 48px)/4);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px; }
.collection-card { min-width:0;overflow:hidden;border:1px solid var(--catalogo-line);border-radius:14px;background:#fff;scroll-snap-align:start;cursor:pointer; }
.collection-media { position:relative;aspect-ratio:1.12;overflow:hidden;background:#f4f0ee; }
.collection-media img { width:100%;height:100%;object-fit:cover;transition:transform .2s ease; }
.collection-card:hover .collection-media img { transform:scale(1.025); }
.collection-copy { padding:14px; }
.collection-copy h3 { font:600 12px/1.5 'Manrope',sans-serif;min-height:36px;margin:0 0 6px;overflow-wrap:anywhere; }
.collection-price { display:grid;gap:2px; }
.collection-price del { color:#777;font-size:11px; }
.collection-price strong { font-size:18px;color:#433243; }
.collection-action { display:flex;align-items:center;justify-content:center;gap:10px;margin-top:12px;background:color-mix(in srgb,var(--primary-color) 14%,white);color:#332536;border-radius:22px;padding:9px;font-size:12px;font-weight:700; }
.product-favorite { position:absolute;z-index:2;top:10px;right:10px;width:36px;height:36px;border:1px solid #e9e0e6;border-radius:50%;display:grid;place-items:center;background:#fff;color:#493748;box-shadow:0 2px 6px #00000008;font-size:18px; }
.product-favorite[aria-pressed="true"] { color:#873e6e;background:#fff1f7; }
.vitrine-whatsapp { position:fixed;z-index:800;right:22px;bottom:calc(26px + var(--cart-bar-height));width:58px;height:58px;display:grid;place-items:center;color:white;background:#087d45;border:4px solid white;box-shadow:0 6px 24px #0002;border-radius:50%;font-size:29px;text-decoration:none; }
.vitrine-whatsapp:hover { background:#056538;color:white; }
.vitrine-mobile-nav { display:none; }
.btn-topo { right:auto;left:20px; }
.product-variants fieldset { border:0;margin:18px 0;min-width:0; }
.product-variants legend { font-size:13px;font-weight:700;margin-bottom:9px; }
.variant-color-list,.variant-size-list { display:flex;flex-wrap:wrap;gap:8px; }
.variant-color,.variant-size { display:flex;align-items:center;gap:7px;min-height:42px;border:1px solid #c8bcc5;border-radius:9px;background:white;padding:8px 12px;font-size:12px;color:#40333f; }
.variant-color span { width:18px;height:18px;border-radius:50%;background:var(--swatch);border:1px solid #0002; }
.variant-color.is-selected,.variant-size.is-selected { border:2px solid #5f425b;padding:7px 11px;background:#f7eff5; }
.variant-size:disabled { background:#f5f3f4;color:#777;text-decoration:line-through;cursor:not-allowed; }
.cart-item-variant { display:block;color:#6f5c69;margin:4px 0;font-size:11px; }
.account-welcome { text-align:center;padding:6px 0 18px; }
.account-symbol { display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:color-mix(in srgb,var(--primary-color) 12%,white);color:#594050;margin:0 auto 14px;font-size:26px; }
.account-welcome h3,.account-greeting h3 { font-family:'Cormorant Garamond',Georgia,serif;font-size:32px;margin:4px 0 8px;font-weight:600; }
.account-welcome p,.account-hint { font-size:12px;color:#746570;line-height:1.7; }
.account-form { display:grid;gap:14px; }
.account-field { display:grid;gap:6px;font-size:12px;font-weight:650; }
.account-field input { width:100%;border:1px solid #ccbec8;border-radius:10px;min-height:46px;background:#fff;padding:11px 12px;font-weight:400;color:#2e2430; }
.account-consent { display:flex;align-items:flex-start;gap:10px;font-size:11px;color:#6b5c67;line-height:1.6; }
.account-consent input { flex-shrink:0;margin-top:4px;width:16px;height:16px; }
.account-primary { width:100%;border:0;border-radius:10px;padding:14px 16px;background:var(--primary-color);color:var(--primary-contrast);font-size:13px;font-weight:700; }
.account-primary:disabled { opacity:.65; }
.account-links { display:grid;gap:8px;padding:20px 0 4px;text-align:center; }
.account-links button,.account-quiet { border:0;background:transparent;color:#654a60;font-size:12px;text-decoration:underline;text-underline-offset:4px;padding:6px; }
.account-greeting { display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:15px; }
.account-greeting small { font-size:11px;color:#766571; }
.account-tabs { display:flex;gap:5px;overflow:auto;border-bottom:1px solid #e6dce3;padding-bottom:10px;margin-bottom:20px; }
.account-tabs button { flex-shrink:0;border:0;background:transparent;font-size:11px;font-weight:650;color:#786875;padding:10px 11px;border-radius:8px; }
.account-tabs button.is-active { background:#eee4ec;color:#473443; }
.account-balance { display:grid;gap:8px;background:#f4ecf2;color:#4c3345;border:1px solid #e4d5df;border-radius:14px;padding:24px; }
.account-balance small { font-size:12px; }
.account-balance strong { font-size:34px;letter-spacing:-.06em;font-weight:750; }
.account-balance span { font-size:11px;color:#70576a; }
.account-balance button { border:0;background:transparent;text-align:left;color:#4c3345;padding:6px 0;font-size:12px;font-weight:700; }
.account-shortcuts { display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0; }
.account-shortcuts button { display:grid;gap:8px;text-align:left;background:#fff;border:1px solid #e0d5dd;border-radius:12px;padding:18px;color:#4c3a47; }
.account-shortcuts i { font-size:22px; }.account-shortcuts strong { font-size:12px; }.account-shortcuts span { font-size:10px;color:#786675; }
.account-empty { color:#776573;line-height:1.7;font-size:13px;padding:24px 8px;text-align:center; }
.account-favorite { display:flex;gap:12px;align-items:center;border-bottom:1px solid #e4dbe1;padding:14px 0; }
.account-favorite img { width:64px;height:64px;object-fit:cover;border-radius:9px; }
.account-favorite button { display:grid;gap:6px;text-align:left;background:transparent;border:0;color:#513749;font-size:12px;padding:5px; }
.account-favorite button[data-account-product] { flex:1; }.account-favorite button[data-account-unfavorite] { font-size:18px; }
.account-order { border:1px solid #e3d6df;border-radius:10px;margin:12px 0;padding:14px; }
.account-order summary { display:flex;justify-content:space-between;gap:10px;cursor:pointer;font-size:13px; }
.account-order summary small { display:block;color:#7d6675;font-size:10px;margin-top:5px; }
.account-order ul { list-style:none;padding:0;font-size:12px; }.account-order li { padding:12px 0;border-bottom:1px solid #ede4e9; }.account-order li small { display:block;margin:4px 0;color:#776675; }.account-order li span { display:block;font-weight:700; }
.account-order p { font-size:11px; }.account-movement { display:flex;justify-content:space-between;gap:14px;padding:17px 0;border-bottom:1px solid #e9dfe6;font-size:12px; }
.account-movement small { display:block;margin-top:6px;font-size:10px;color:#75626f; }.account-movement .is-credit { color:#146547; }
.account-pagination { display:flex;justify-content:space-between;margin-top:18px; }.account-pagination button { background:#fff;border:1px solid #d9cbd5;border-radius:8px;padding:9px 16px;font-size:12px; }
.cashback-use { display:flex;gap:9px;font-size:12px; }
.vitrine-compacto .produto-catalogo-img { aspect-ratio:1.4; }.vitrine-compacto .collection-media { aspect-ratio:1.4; }
@media (max-width:767px) {
    body.catalogo-page { padding-bottom:calc(84px + var(--cart-bar-height) + env(safe-area-inset-bottom)); }
    .vitrine-topbar { padding:12px 16px;gap:12px; }.vitrine-brand { font-size:22px;gap:9px; }.vitrine-brand img { width:36px;height:36px; }.vitrine-top-actions { gap:0; }.vitrine-top-actions button { padding:10px; }.vitrine-top-actions button span { display:none; }.vitrine-top-actions button[data-open-account="pedidos"] { display:none; }
    .vitrine-benefits { gap:14px;padding:18px 0; }.vitrine-benefit { flex-basis:100%;gap:12px; }.vitrine-benefit i { width:36px;height:36px;font-size:18px; }
    .collection-track { grid-auto-columns:calc((100% - 12px)/2);gap:12px; }.collection-copy { padding:10px; }.collection-price strong { font-size:17px; }.vitrine-collection { margin:24px 0 28px; }.collection-eyebrow { font-size:9px; }.collection-copy h3 { font-size:11px;min-height:33px; }.collection-action { padding:8px; }
    .vitrine-collection .section-heading a { font-size:10px; }.vitrine-collection .section-heading h2 { font-size:27px; }.collection-media { aspect-ratio:1; }
    .vitrine-mobile-nav { display:flex;justify-content:space-around;align-items:center;position:fixed;bottom:0;left:0;right:0;z-index:900;background:#fffdfb;border-top:1px solid #e8dfe5;padding:8px 8px calc(8px + env(safe-area-inset-bottom)); }
    .vitrine-mobile-nav button,.vitrine-mobile-nav a { position:relative;display:grid;justify-items:center;gap:3px;padding:5px 6px;border:0;background:transparent;color:#56404f;font-size:9px;text-decoration:none;min-width:44px; }.vitrine-mobile-nav i { font-size:21px; }.vitrine-mobile-nav span { position:absolute;right:0;top:0;font-size:9px;background:#eee1e9;padding:1px 4px;border-radius:8px; }
    .cart-bar { bottom:calc(70px + env(safe-area-inset-bottom)); }.vitrine-whatsapp { right:14px;bottom:calc(90px + var(--cart-bar-height) + env(safe-area-inset-bottom));width:52px;height:52px;font-size:25px; }.btn-topo { bottom:calc(90px + var(--cart-bar-height) + env(safe-area-inset-bottom)); }
    .catalogo-toast-region { bottom:calc(90px + var(--cart-bar-height) + env(safe-area-inset-bottom)); }.catalogo-modal-open .vitrine-whatsapp,.catalogo-modal-open .vitrine-mobile-nav { visibility:hidden; }
    .product-favorite { width:32px;height:32px;right:8px;top:8px;font-size:16px; }.account-welcome h3 { font-size:29px; }
}
@media (min-width:768px) and (max-width:991px) {.collection-track { grid-auto-columns:calc((100% - 32px)/3); }}
@media (prefers-reduced-motion:reduce) {.collection-media img { transition:none; }}

button, input, select, textarea { font: inherit; }
button { -webkit-tap-highlight-color: transparent; }

:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--primary-color), white 25%);
    outline-offset: 3px;
}

[hidden] { display: none !important; }

.catalogo-page .container { max-width: 1180px; }

.header-loja {
    position: relative;
    min-height: clamp(280px, 31vw, 420px);
    display: grid;
    place-items: end center;
    padding: clamp(4rem, 8vw, 7.5rem) 1.25rem clamp(4.8rem, 8vw, 6.5rem);
    overflow: hidden;
    isolation: isolate;
    color: #fff;
    text-align: center;
    background: linear-gradient(135deg, color-mix(in srgb, var(--primary-color), #161218 35%), #161218);
}

.header-loja::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(20,15,21,.28), rgba(20,15,21,.05) 48%, rgba(20,15,21,.16)),
        linear-gradient(180deg, rgba(24,18,25,.06), rgba(24,18,25,.68));
}

.header-loja::after {
    content: '';
    position: absolute;
    inset: auto 0 0;
    height: 90px;
    z-index: -1;
    background: linear-gradient(180deg, transparent, rgba(20,16,21,.32));
}

.hero-banner-stage, .hero-banner, .hero-banner-fallback {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.hero-banner-stage { z-index: -2; overflow: hidden; background: #211b23; }
.hero-banner {
    object-fit: cover;
    object-position: var(--banner-focus-desktop, 50% 50%);
    opacity: 0;
    transform: scale(1.015);
    filter: saturate(.96) contrast(1.01);
    transition: opacity .9s ease, transform 7.2s cubic-bezier(.2,.7,.2,1);
}
.hero-banner.is-active { opacity: 1; transform: scale(1.055); }
.hero-banner-fallback { background: linear-gradient(135deg, color-mix(in srgb, var(--primary-color), #161218 35%), #161218); }

.header-loja__content { z-index: 1; max-width: 760px; }

.header-loja h1 {
    margin: 0 0 .65rem;
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(2.5rem, 7vw, 5.3rem);
    font-weight: 600;
    line-height: .9;
    letter-spacing: -.035em;
    text-wrap: balance;
    text-shadow: 0 4px 30px rgba(0,0,0,.28);
}

.loja-status {
    position: absolute;
    top: clamp(1rem, 3vw, 1.75rem);
    right: clamp(1rem, 4vw, 3rem);
    z-index: 2;
    display: inline-grid;
    grid-template-columns: 36px auto;
    align-items: center;
    gap: .7rem;
    margin: 0;
    padding: .48rem .9rem .48rem .48rem;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--primary-color), white 58%);
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(24,19,25,.72), rgba(24,19,25,.42));
    box-shadow: 0 10px 28px rgba(12,8,12,.22), inset 0 1px rgba(255,255,255,.12);
    backdrop-filter: blur(16px) saturate(1.2);
    text-align: left;
}

.loja-status::after {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    background: var(--primary-color);
}

.loja-status__icon {
    position: relative;
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 11px;
    color: var(--primary-contrast);
    background: var(--primary-color);
    font-size: .95rem;
}

.loja-status__pulse {
    position: absolute;
    right: -2px;
    bottom: -2px;
    width: 9px;
    height: 9px;
    border: 2px solid #282129;
    border-radius: 50%;
    background: #72dda7;
    box-shadow: 0 0 0 0 rgba(114,221,167,.42);
    animation: status-pulse 2.4s ease-out infinite;
}

.loja-status__copy { display: grid; gap: .08rem; }
.loja-status__copy strong { color: #fff; font-size: .7rem; font-weight: 850; letter-spacing: .075em; line-height: 1.1; text-transform: uppercase; }
.loja-status__copy small { color: rgba(255,255,255,.66); font-size: .58rem; font-weight: 600; letter-spacing: .015em; }
.loja-status.is-closed::after, .loja-status.is-closed .loja-status__icon { background: #8b7e87; }

.hero-banner-controls {
    position: absolute;
    right: clamp(1rem, 4vw, 3rem);
    bottom: clamp(4.5rem, 7vw, 5.5rem);
    z-index: 3;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .32rem;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 999px;
    background: rgba(24,19,25,.48);
    box-shadow: 0 8px 24px rgba(12,8,12,.18);
    backdrop-filter: blur(14px) saturate(1.15);
}
.hero-banner-arrow, .hero-banner-dot {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    padding: 0;
    border: 0;
    color: #fff;
    background: transparent;
}
.hero-banner-arrow { width: 28px; height: 28px; border-radius: 50%; font-size: .68rem; transition: background-color .2s, transform .2s; }
.hero-banner-arrow:hover { background: rgba(255,255,255,.13); transform: scale(1.06); }
.hero-banner-dots { display: flex; align-items: center; gap: .3rem; }
.hero-banner-dot { width: 17px; height: 28px; cursor: pointer; }
.hero-banner-dot span { display: block; width: 5px; height: 5px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.5); transition: width .3s ease, background-color .3s ease; }
.hero-banner-dot.is-active span { width: 17px; background: #fff; }

.catalogo-main { position: relative; z-index: 2; }

.loja-intro {
    display: grid;
    grid-template-columns: 72px minmax(0,1fr);
    align-items: center;
    gap: 1rem;
    max-width: none;
    margin: 1.5rem 0 1.25rem;
    padding: 0 0 1.25rem;
    border-bottom:1px solid var(--catalogo-line);
}

.logo-loja {
    width: 72px;
    height: 72px;
    padding: 6px;
    border: 1px solid var(--catalogo-line);
    border-radius: 18px;
    object-fit: contain;
    background: #fff;
    box-shadow: 0 3px 12px rgba(30,20,28,.04);
}

.loja-intro__copy {
    margin-top: 0;
    min-width:0;
    color: var(--catalogo-muted);
    font-size: .82rem;
    line-height: 1.7;
}

.loja-intro__copy h1 { margin:0 0 6px;color:var(--catalogo-ink);font-family:'Cormorant Garamond',Georgia,serif;font-size:30px;line-height:1.1;font-weight:600;overflow-wrap:anywhere; }
.loja-intro__copy p { margin: 0;max-width:75ch;overflow-wrap:anywhere;white-space:normal; }
.header-loja.header-loja--sem-banner { min-height:0;padding:12px max(16px,calc((100vw - 1180px)/2));place-items:center end;background:var(--vitrine-bg,#faf7f2);color:var(--catalogo-ink); }
.header-loja--sem-banner .hero-banner-stage,.header-loja--sem-banner::before,.header-loja--sem-banner::after { display:none; }
.header-loja--sem-banner .loja-status { position:static;background:#fffdfb;border-color:var(--catalogo-line);box-shadow:none;color:var(--catalogo-ink);backdrop-filter:none; }
.header-loja--sem-banner .loja-status small { color:var(--catalogo-muted); }
.catalogo-reserva-notice { padding:12px 16px;border:1px solid #d7ddd5;border-radius:12px;background:#f0f4ed;color:#354a37;font-size:12px;line-height:1.7; }

.catalogo-discovery {
    max-width: 900px;
    margin: 0 auto 1.55rem;
    padding: 0 .75rem;
}

.search-box {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 58px;
    border: 1px solid var(--catalogo-line);
    border-radius: 18px;
    background: var(--catalogo-paper);
    box-shadow: var(--catalogo-shadow-soft);
    transition: border-color .2s, box-shadow .2s, transform .2s;
}

.search-box:focus-within {
    border-color: color-mix(in srgb, var(--primary-color), white 45%);
    box-shadow: 0 12px 38px color-mix(in srgb, var(--primary-color), transparent 88%);
    transform: translateY(-1px);
}

.search-box i { margin-left: 1.2rem; color: var(--primary-color); font-size: 1.15rem; }

.search-box input {
    flex: 1;
    min-width: 0;
    height: 56px;
    padding: 0 1.1rem;
    border: 0;
    outline: 0;
    color: var(--catalogo-ink);
    background: transparent;
    font-size: .96rem;
}

.search-box input::placeholder { color: #938b91; }

.catalogo-filters {
    display: flex;
    align-items: center;
    gap: .55rem;
    margin-top: .85rem;
    overflow-x: auto;
    scrollbar-width: none;
}

.catalogo-filters::-webkit-scrollbar { display: none; }

.filter-button {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .56rem .9rem;
    border: 1px solid var(--catalogo-line);
    border-radius: 999px;
    color: var(--catalogo-muted);
    background: rgba(255,253,249,.72);
    font-size: .79rem;
    font-weight: 750;
    transition: .2s ease;
}

.filter-button:hover { color: var(--primary-color); border-color: color-mix(in srgb, var(--primary-color), white 50%); }
.filter-button.is-active { color: var(--primary-contrast); border-color: var(--primary-color); background: var(--primary-color); box-shadow: 0 6px 18px color-mix(in srgb, var(--primary-color), transparent 75%); }
.search-results { margin-left: auto; padding-left: .75rem; white-space: nowrap; color: var(--catalogo-muted); font-size: .75rem; }

.section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin: 2rem 0 1rem;
}

.section-heading__eyebrow {
    display: block;
    margin-bottom: .2rem;
    color: var(--catalogo-gold);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.section-heading h2, .categoria-titulo {
    margin: 0 !important;
    color: var(--catalogo-ink) !important;
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(1.75rem, 4vw, 2.35rem) !important;
    font-weight: 650 !important;
    line-height: 1;
    letter-spacing: -.02em !important;
    text-transform: none !important;
}

.promo-carousel { position: relative; }
.promo-scroll {
    display: flex;
    gap: 1rem;
    padding: .35rem .15rem 1.25rem;
    overflow-x: auto;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}
.promo-scroll::-webkit-scrollbar { display: none; }

.promo-card {
    position: relative;
    flex: 0 0 280px;
    max-width: 82vw;
    overflow: hidden;
    border: 1px solid var(--catalogo-line);
    border-radius: 20px;
    background: var(--catalogo-paper);
    box-shadow: var(--catalogo-shadow-soft);
    cursor: pointer;
    scroll-snap-align: start;
    transition: transform .25s ease, box-shadow .25s ease;
}

.promo-card:hover { transform: translateY(-5px); box-shadow: var(--catalogo-shadow); }
.promo-img-wrapper { position: relative; height: 210px; overflow: hidden; background: #f1eeea; }
.promo-img { width: 100%; height: 100%; padding: 10px; object-fit: contain; transition: transform .5s cubic-bezier(.2,.8,.2,1); }
.promo-card:hover .promo-img { transform: scale(1.055); }

.promo-badge, .produto-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .38rem .65rem;
    border: 0;
    border-radius: 999px;
    color: var(--primary-contrast);
    background: var(--primary-color);
    box-shadow: 0 4px 14px color-mix(in srgb, var(--primary-color), transparent 70%);
    font-size: .66rem;
    font-weight: 850;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.promo-card__content { padding: 1rem 1.05rem 1.15rem; }
.promo-card__content h3 { margin: 0 0 .55rem; overflow: hidden; color: var(--catalogo-ink); font-size: .9rem; font-weight: 750; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.price-old { display: block; margin-bottom: .15rem; color: var(--catalogo-muted); font-size: .72rem; text-decoration: line-through; }
.price-current { color: var(--catalogo-ink); font-size: 1rem; font-weight: 850; }
.price-current.is-offer { color: color-mix(in srgb, var(--primary-color), var(--catalogo-ink) 38%); }

.promo-nav, .cat-seta {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 1px solid var(--catalogo-line);
    border-radius: 50%;
    color: var(--catalogo-ink);
    background: rgba(255,253,249,.94);
    box-shadow: 0 4px 16px rgba(31,24,30,.12);
    transition: transform .2s, color .2s;
}
.promo-nav:hover, .cat-seta:hover { color: var(--primary-color); transform: scale(1.06); }
.promo-nav { position: absolute; top: 46%; z-index: 3; transform: translateY(-50%); }
.promo-nav:hover { transform: translateY(-50%) scale(1.06); }
.promo-nav-prev { left: -18px; }
.promo-nav-next { right: -18px; }

.cat-barra {
    top: 0;
    z-index: 50;
    margin: .3rem 0 1.8rem;
    padding: .7rem 0;
    border-bottom: 1px solid var(--catalogo-line);
    background: color-mix(in srgb, var(--catalogo-canvas), transparent 8%);
    backdrop-filter: blur(16px);
}
.cat-rail { display: flex; align-items: center; gap: .35rem; }
.cat-trilho { display: flex; flex: 1; gap: .5rem; min-width: 0; padding: .15rem; overflow-x: auto; scrollbar-width: none; }
.cat-trilho::-webkit-scrollbar { display: none; }
.cat-pill {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    flex: 0 0 auto;
    padding: .52rem .85rem;
    border: 1px solid var(--catalogo-line);
    border-radius: 999px;
    color: var(--catalogo-muted);
    background: var(--catalogo-paper);
    font-size: .76rem;
    font-weight: 750;
    text-decoration: none;
    transition: .2s ease;
}
.cat-pill:hover { color: var(--primary-color); border-color: color-mix(in srgb, var(--primary-color), white 50%); }
.cat-pill.ativa { color: var(--primary-contrast); border-color: var(--primary-color); background: var(--primary-color); }
.cat-pill-qtd { display: grid; place-items: center; min-width: 20px; height: 20px; padding: 0 .3rem; border-radius: 999px; background: rgba(40,35,40,.07); font-size: .64rem; }
.cat-pill.ativa .cat-pill-qtd { background: rgba(255,255,255,.2); }

.categoria-titulo { padding: 2.5rem .45rem 1rem !important; scroll-margin-top: 80px; }
.categoria-grupo { --bs-gutter-x: 1.15rem; --bs-gutter-y: 1.15rem; }

.produto-card {
    position: relative;
    height: 100%;
    padding: 0 !important;
    overflow: hidden;
    border: 1px solid var(--catalogo-line) !important;
    border-radius: 18px !important;
    background: var(--catalogo-paper);
    box-shadow: none !important;
    cursor: pointer;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.produto-card:hover { transform: translateY(-5px); border-color: color-mix(in srgb, var(--primary-color), white 62%) !important; box-shadow: var(--catalogo-shadow-soft) !important; }
.produto-card:focus-visible { outline-offset: 4px; }
.produto-media { position: relative; aspect-ratio: 4 / 4.15; overflow: hidden; background: #f1eeea; }
.produto-catalogo-img { width: 100%; height: 100% !important; margin: 0 !important; padding: 7px; border-radius: 0 !important; object-fit: contain; transition: transform .5s cubic-bezier(.2,.8,.2,1); }
.produto-card:hover .produto-catalogo-img { transform: scale(1.055); }
.produto-placeholder { display: grid; place-items: center; width: 100%; height: 100%; color: #aaa0a6; font-size: 2rem; }
.produto-card__body { display: flex; flex: 1; flex-direction: column; min-height: 126px; padding: .9rem .85rem 1rem !important; }
.produto-card__body h3 { margin: 0 0 .8rem; overflow: hidden; color: var(--catalogo-ink); font-size: .82rem; font-weight: 730; line-height: 1.42; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.produto-card__footer { display: flex; align-items: end; justify-content: space-between; gap: .45rem; margin-top: auto; }
.btn-add {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    color: var(--primary-contrast);
    background: var(--primary-color);
    box-shadow: 0 7px 18px color-mix(in srgb, var(--primary-color), transparent 72%);
    transition: transform .2s, filter .2s;
}
.produto-card:hover .btn-add { transform: rotate(90deg); }
.btn-add:hover { filter: brightness(.88); }
.stock-badge { align-self: center; color: var(--catalogo-danger); font-size: .65rem; font-weight: 800; }

.busca-vazia { padding: 4rem 1rem; text-align: center; }
.busca-vazia i { display: block; margin-bottom: .7rem; color: color-mix(in srgb, var(--primary-color), white 30%); font-size: 2.5rem; }
.busca-vazia button { padding: .65rem 1rem; border: 0; border-radius: 999px; color: var(--primary-contrast); background: var(--primary-color); font-size: .8rem; font-weight: 800; }

.loja-location { max-width: 650px; margin: 5rem auto 2rem; padding: 2rem; border: 1px solid var(--catalogo-line); border-radius: 22px; background: var(--catalogo-paper); text-align: center; }
.loja-location h2 { margin: 0 0 .75rem; font-family: 'Cormorant Garamond', serif; font-size: 1.8rem; font-weight: 650; }
.loja-location p { margin: 0 auto .9rem; color: var(--catalogo-muted); font-size: .83rem; line-height: 1.6; white-space: pre-wrap; }
.loja-location a { display: inline-flex; align-items: center; gap: .4rem; padding: .58rem .9rem; border: 1px solid var(--catalogo-line); border-radius: 999px; color: var(--catalogo-ink); font-size: .73rem; font-weight: 800; text-decoration: none; }

.cat-rodape { margin-top: 4rem; padding: 2.6rem 1rem calc(2.5rem + env(safe-area-inset-bottom)); border-top: 1px solid var(--catalogo-line); text-align: center; }
.cat-rodape-marca { display: inline-flex; align-items: center; gap: .6rem; color: var(--catalogo-muted); font-size: .75rem; text-decoration: none; opacity: .82; }
.cat-rodape-marca img { width: auto; height: 24px; filter: none; opacity: 1; }
.cat-rodape-site { margin: .4rem 0 0; color: #9a9298; font-size: .66rem; }

.cart-bar {
    position: fixed;
    right: max(1rem, env(safe-area-inset-right));
    bottom: max(1rem, env(safe-area-inset-bottom));
    left: max(1rem, env(safe-area-inset-left));
    z-index: 900;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    max-width: 620px;
    min-height: 72px;
    margin: auto;
    padding: .75rem .8rem .75rem 1rem;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 20px;
    color: #fff;
    background: rgba(35,30,35,.96);
    box-shadow: 0 20px 60px rgba(20,15,20,.3);
    backdrop-filter: blur(18px);
    opacity: 0;
    pointer-events: none;
    transform: translateY(120%);
    transition: opacity .25s, transform .35s cubic-bezier(.2,.8,.2,1);
}
.cart-bar.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }
.cart-bar__summary { display: flex; align-items: center; gap: .75rem; }
.cart-bar__icon { position: relative; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 14px; color: var(--catalogo-ink); background: #fff; }
.cart-count { position: absolute; top: -7px; right: -7px; display: grid; place-items: center; min-width: 22px; height: 22px; padding: 0 5px; border: 2px solid #262126; border-radius: 999px; color: var(--primary-contrast); background: var(--primary-color); font-size: .66rem; font-weight: 850; }
.cart-count.is-pulsing { animation: cart-pop .45s ease; }
.cart-bar small { display: block; margin-bottom: .1rem; color: rgba(255,255,255,.58); font-size: .61rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.cart-bar strong { font-size: 1rem; }
.cart-bar__button { display: inline-flex; align-items: center; gap: .55rem; padding: .78rem 1rem; border: 0; border-radius: 14px; color: var(--catalogo-ink); background: #fff; font-size: .76rem; font-weight: 850; }

.catalogo-toast-region { position: fixed; right: 1rem; bottom: calc(1.5rem + var(--cart-bar-height)); z-index: 1200; width: min(390px, calc(100vw - 2rem)); }
.catalogo-toast { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .7rem; padding: .85rem; border: 1px solid var(--catalogo-line); border-radius: 17px; background: var(--catalogo-paper); box-shadow: var(--catalogo-shadow); opacity: 0; transform: translateY(14px); transition: .25s ease; }
.catalogo-toast.is-visible { opacity: 1; transform: translateY(0); }
.catalogo-toast__icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: #fff; background: var(--catalogo-success); }
.catalogo-toast__copy { min-width: 0; }
.catalogo-toast__copy strong { display: block; overflow: hidden; font-size: .77rem; text-overflow: ellipsis; white-space: nowrap; }
.catalogo-toast__copy small { display: block; color: var(--catalogo-muted); font-size: .67rem; }
.catalogo-toast button { padding: .45rem .55rem; border: 0; color: var(--primary-color); background: transparent; font-size: .68rem; font-weight: 850; }

.modal {
    position: fixed;
    inset: 0;
    z-index: 1100;
    display: none;
    overflow: auto;
    padding: 1rem;
    background: rgba(25,20,25,.64);
    backdrop-filter: blur(8px);
    opacity: 0;
}
.modal.is-open { display: block; opacity: 1; }
.modal-dialog { width: min(960px, 100%); max-width: none; margin: max(1.5rem, 4vh) auto; transform: translateY(18px) scale(.985); transition: transform .28s cubic-bezier(.2,.8,.2,1); }
.modal.is-open .modal-dialog { transform: none; }
.modal-content { overflow: hidden; border: 1px solid rgba(255,255,255,.45) !important; border-radius: 26px !important; background: var(--catalogo-paper); box-shadow: 0 30px 100px rgba(15,10,15,.32); }
.modal-close {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 8;
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid var(--catalogo-line);
    border-radius: 50%;
    color: var(--catalogo-ink);
    background: rgba(255,253,249,.94);
    box-shadow: 0 6px 18px rgba(30,20,28,.12);
}

.product-modal-body { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(350px, .98fr); min-height: 610px; }
.produto-gallery { position: relative; min-height: 610px; overflow: hidden; background: #f0ece8; touch-action: pan-y; }
.produto-galeria-principal { width: 100%; height: 100%; padding: clamp(1rem, 4vw, 2.5rem); object-fit: contain; }
.produto-galeria-seta { position: absolute; top: 50%; z-index: 2; display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 1px solid var(--catalogo-line); border-radius: 50%; color: var(--catalogo-ink); background: rgba(255,255,255,.9); box-shadow: 0 5px 18px rgba(20,15,20,.12); transform: translateY(-50%); }
.produto-galeria-seta.anterior { left: 14px; }
.produto-galeria-seta.proxima { right: 14px; }
.produto-galeria-indicadores { position: absolute; right: 16px; bottom: 16px; left: 16px; z-index: 2; display: flex; justify-content: center; gap: .55rem; overflow-x: auto; }
.produto-thumb { flex: 0 0 auto; width: 58px; height: 58px; padding: 3px; overflow: hidden; border: 2px solid transparent; border-radius: 12px; background: #fff; opacity: .72; transition: .2s; }
.produto-thumb.active { border-color: var(--primary-color); opacity: 1; transform: translateY(-2px); }
.produto-thumb img { width: 100%; height: 100%; border-radius: 8px; object-fit: contain; }

.product-detail { display: flex; flex-direction: column; min-width: 0; max-height: 82vh; padding: 3.8rem 2rem 2rem; overflow-y: auto; text-align: left; }
.product-detail__eyebrow { margin: 0 0 .45rem; color: var(--catalogo-gold); font-size: .66rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.product-detail h2 { margin: 0 0 .75rem; font-family: 'Cormorant Garamond', serif; font-size: clamp(2rem, 4vw, 2.8rem); font-weight: 650; line-height: .98; letter-spacing: -.025em; }
.produto-estoque { display: inline-flex; align-items: center; gap: .5rem; width: fit-content; margin-bottom: 1rem; color: var(--catalogo-success); font-size: .7rem; font-weight: 800; }
.produto-estoque span { width: 7px; height: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 4px color-mix(in srgb, currentColor, transparent 85%); }
.produto-estoque.is-low { color: #a9692f; }
.product-description { margin-bottom: 1rem; padding-bottom: 1rem; border-bottom: 1px solid var(--catalogo-line); }
.product-description p { margin: 0; color: var(--catalogo-muted); font-size: .8rem; line-height: 1.7; white-space: pre-wrap; }
.product-price { display: flex; align-items: baseline; gap: .55rem; margin: .3rem 0 1.2rem; }
.product-price small { color: var(--catalogo-muted); font-size: .8rem; text-decoration: line-through; }
.product-price strong { color: var(--catalogo-ink); font-size: 1.35rem; font-weight: 850; }

.option-group { min-width: 0; margin: 0 0 1.2rem; padding: 0; border: 0; }
.option-group.is-invalid { padding: .75rem; border: 1px solid color-mix(in srgb, var(--catalogo-danger), transparent 45%); border-radius: 14px; background: color-mix(in srgb, var(--catalogo-danger), white 95%); }
.option-group legend { display: flex; align-items: center; justify-content: space-between; width: 100%; margin: 0; color: var(--catalogo-ink); font-size: .8rem; font-weight: 850; }
.option-group legend small { padding: .28rem .5rem; border-radius: 999px; color: var(--catalogo-muted); background: #eee9e5; font-size: .58rem; text-transform: uppercase; }
.option-group > p { margin: .18rem 0 .65rem; color: var(--catalogo-muted); font-size: .64rem; }
.option-grid { display: grid; gap: .5rem; }
.option-choice { position: relative; display: flex; align-items: center; gap: .7rem; min-height: 48px; padding: .62rem .75rem; border: 1px solid var(--catalogo-line); border-radius: 13px; cursor: pointer; transition: .2s; }
.option-choice:has(input:checked) { border-color: var(--primary-color); background: color-mix(in srgb, var(--primary-color), white 94%); }
.option-choice input { position: absolute; opacity: 0; pointer-events: none; }
.option-choice > span { display: flex; flex: 1; align-items: center; justify-content: space-between; gap: .5rem; }
.option-choice strong { font-size: .72rem; }
.option-choice small { color: var(--catalogo-muted); font-size: .63rem; }
.option-choice > i { display: grid; place-items: center; width: 22px; height: 22px; border: 1px solid var(--catalogo-line); border-radius: 50%; color: transparent; font-size: .7rem; }
.option-choice:has(input:checked) > i { color: var(--primary-contrast); border-color: var(--primary-color); background: var(--primary-color); }
.option-choice:has(input:disabled) { opacity: .46; cursor: not-allowed; }

.product-actions { margin-top: auto; padding-top: .5rem; }
.quantity-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .85rem; }
.quantity-row > span { color: var(--catalogo-muted); font-size: .7rem; font-weight: 750; }
.quantity-control { display: inline-grid; grid-template-columns: 38px 38px 38px; align-items: center; border: 1px solid var(--catalogo-line); border-radius: 999px; background: #fff; }
.quantity-control button { display: grid; place-items: center; height: 38px; padding: 0; border: 0; color: var(--catalogo-ink); background: transparent; }
.quantity-control span { text-align: center; font-size: .78rem; font-weight: 850; }
.product-note label { display: block; margin: 0 0 .4rem; color: var(--catalogo-muted); font-size: .67rem; font-weight: 750; }
.product-note input, .checkout-field input, .checkout-field select, #chkPagamento {
    width: 100%;
    min-height: 48px;
    padding: .7rem .85rem;
    border: 1px solid var(--catalogo-line) !important;
    border-radius: 13px !important;
    color: var(--catalogo-ink);
    background: #fff !important;
    outline: 0;
    font-size: .78rem;
}
.product-note input:focus, .checkout-field input:focus, #chkPagamento:focus { border-color: var(--primary-color) !important; box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary-color), transparent 88%); }
.gift-option { display:flex; align-items:center; gap:.75rem; padding:.8rem .9rem; border:1px solid var(--catalogo-line); border-radius:14px; cursor:pointer; background:color-mix(in srgb, var(--primary-color), white 97%); }
.gift-option:has(input:checked) { border-color:var(--primary-color); background:color-mix(in srgb, var(--primary-color), white 91%); }
.gift-option input { width:1.15rem; height:1.15rem; accent-color:var(--primary-color); }
.gift-option span { display:flex; flex:1; justify-content:space-between; gap:.65rem; align-items:center; }
.gift-option strong { font-size:.76rem; }
.gift-option small, .cart-item__gift { color:var(--primary-color) !important; font-weight:700; font-size:.66rem !important; }
.cart-item__gift-toggle { display:flex; align-items:center; gap:.4rem; width:100%; margin:.35rem 0 .15rem; padding:.45rem .6rem; border:1px dashed var(--catalogo-line); border-radius:10px; background:transparent; color:var(--catalogo-muted); font:inherit; font-size:.68rem; font-weight:700; text-align:left; cursor:pointer; }
.cart-item__gift-toggle span { flex:1; min-width:0; }
.cart-item__gift-toggle small { font-size:.62rem; text-decoration:underline; opacity:.85; }
.cart-item__gift-toggle.is-active { border-style:solid; border-color:color-mix(in srgb, var(--primary-color), transparent 55%); background:color-mix(in srgb, var(--primary-color), white 93%); color:var(--primary-color); }
.cart-item__gift-toggle:focus-visible { outline:3px solid color-mix(in srgb, var(--primary-color), transparent 60%); outline-offset:2px; }
.checkout-summary__gift { color:var(--primary-color) !important; font-weight:700; }
.checkout-summary__gift small { font-weight:600; opacity:.8; }
.product-add-button, .checkout-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    width: 100%;
    min-height: 54px;
    margin-top: .8rem;
    padding: .8rem 1rem;
    border: 0;
    border-radius: 15px;
    color: var(--primary-contrast);
    background: var(--primary-color);
    box-shadow: 0 10px 28px color-mix(in srgb, var(--primary-color), transparent 72%);
    font-size: .78rem;
    font-weight: 850;
}
.product-add-button:disabled, .checkout-submit:disabled { opacity: .72; }
.inline-message { margin: .6rem 0 0; padding: .65rem .8rem; border-radius: 10px; color: #832c2c; background: #f9e5e3; font-size: .68rem; font-weight: 700; }

#modalCarrinho { overflow: hidden; padding: 0; }
.checkout-dialog { width: min(610px, 100%); height: 100dvh; min-height: 0; margin: 0 0 0 auto; }
.checkout-dialog .modal-content { display: flex; height: 100dvh; min-height: 0; flex-direction: column; border-radius: 28px 0 0 28px !important; }
.checkout-header { position: relative; z-index: 5; display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; padding: 1.25rem 1.35rem; border-bottom: 1px solid var(--catalogo-line); background: rgba(255,253,249,.96); backdrop-filter: blur(15px); }
.checkout-header span { display: block; color: var(--catalogo-gold); font-size: .59rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.checkout-header h2 { margin: .12rem 0 0; font-family: 'Cormorant Garamond', serif; font-size: 2rem; font-weight: 650; }
.checkout-header .modal-close { position: static; }
.checkout-body { flex: 1 1 auto; min-height: 0; padding: 1.1rem 1.35rem 1.25rem; overflow-y: auto; overscroll-behavior: contain; background: var(--catalogo-canvas); scrollbar-gutter: stable; }
.checkout-section { margin-top: 1rem; padding: 1rem; border: 1px solid var(--catalogo-line); border-radius: 18px; background: var(--catalogo-paper); }
.checkout-section h3 { margin: 0 0 .8rem; font-size: .78rem; font-weight: 850; }
.cart-item { display: grid; grid-template-columns: 76px 1fr; gap: .8rem; padding: .85rem 0; border-bottom: 1px solid var(--catalogo-line); }
.cart-item:first-child { padding-top: 0; }
.cart-item:last-child { border-bottom: 0; }
.cart-item__image { display: grid; place-items: center; width: 76px; height: 86px; overflow: hidden; border-radius: 12px; color: #aaa0a6; background: #f0ece8; }
.cart-item__image img { width: 100%; height: 100%; padding: 4px; object-fit: contain; }
.cart-item__content { min-width: 0; }
.cart-item__heading { display: flex; align-items: start; justify-content: space-between; gap: .5rem; }
.cart-item h3 { margin: 0; font-size: .75rem; line-height: 1.4; }
.cart-item__heading button { flex: 0 0 auto; padding: .1rem; border: 0; color: var(--catalogo-danger); background: transparent; }
.cart-item p { margin: .3rem 0 0; color: var(--catalogo-muted); font-size: .63rem; line-height: 1.45; }
.cart-item__footer { display: flex; align-items: center; justify-content: space-between; margin-top: .65rem; }
.cart-item__footer > strong { font-size: .78rem; }
.quantity-control--small { grid-template-columns: 29px 30px 29px; }
.quantity-control--small button { height: 29px; }
.quantity-control--small span { font-size: .68rem; }
.cart-empty { display: grid; justify-items: center; gap: .35rem; padding: 2.5rem 1rem; color: var(--catalogo-muted); text-align: center; }
.cart-empty i { font-size: 2rem; }
.cart-empty strong { color: var(--catalogo-ink); font-size: .85rem; }
.cart-empty span { font-size: .7rem; }

.delivery-toggle { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
.delivery-toggle input { position: absolute; opacity: 0; }
.delivery-toggle label { display: flex; align-items: center; justify-content: center; gap: .45rem; min-height: 46px; padding: .65rem; border: 1px solid var(--catalogo-line); border-radius: 12px; color: var(--catalogo-muted); cursor: pointer; font-size: .7rem; font-weight: 800; }
.delivery-toggle input:checked + label { color: var(--primary-color); border-color: var(--primary-color); background: color-mix(in srgb, var(--primary-color), white 94%); }
.checkout-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; }
.checkout-field { min-width: 0; }
.checkout-field--full { grid-column: 1 / -1; }
.checkout-field label { display: block; margin: 0 0 .3rem; color: var(--catalogo-muted); font-size: .61rem; font-weight: 750; }
.field-status { display: block; margin-top: .35rem; font-size: .61rem; }
.field-status.is-loading { color: var(--catalogo-muted); }
.field-status.is-success { color: var(--catalogo-success); }
.field-status.is-error { color: var(--catalogo-danger); }
.pickup-box { padding: .8rem; border-radius: 12px; color: var(--catalogo-muted); background: #f1ede9; font-size: .7rem; line-height: 1.6; }
.pickup-box a { color: var(--primary-color); font-weight: 800; }
.checkout-summary { display: grid; gap: .45rem; }
.checkout-summary > div { display: flex; justify-content: space-between; color: var(--catalogo-muted); font-size: .72rem; }
.checkout-summary__total { margin-top: .35rem; padding-top: .7rem; border-top: 1px solid var(--catalogo-line); color: var(--catalogo-ink) !important; font-size: .88rem !important; font-weight: 850; }
.shipping-message { margin: .55rem 0 0; color: var(--catalogo-success); font-size: .64rem; font-weight: 750; }
.checkout-footer { position: relative; z-index: 6; flex: 0 0 auto; width: 100%; padding: .8rem 1.35rem calc(.8rem + env(safe-area-inset-bottom)); border-top: 1px solid var(--catalogo-line); background: rgba(255,253,249,.96); box-shadow: 0 -8px 26px rgba(35,28,34,.06); }
.checkout-submit { margin: 0; color: #fff; background: #1f7a55; box-shadow: 0 10px 28px rgba(31,122,85,.2); }

.btn-topo { position: fixed; right: 1rem; bottom: calc(1.2rem + var(--cart-bar-height)); z-index: 850; display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 0; border-radius: 50%; color: #fff; background: rgba(41,36,42,.9); box-shadow: 0 7px 20px rgba(20,15,20,.2); opacity: 0; pointer-events: none; transform: translateY(10px); transition: .2s; }
.btn-topo.visivel { opacity: 1; pointer-events: auto; transform: none; }
.catalogo-spinner { width: 16px; height: 16px; border: 2px solid color-mix(in srgb, currentColor, transparent 60%); border-top-color: currentColor; border-radius: 50%; animation: spin .75s linear infinite; }

@keyframes spin { to { transform: rotate(360deg); } }
@keyframes cart-pop { 0%,100% { transform: scale(1); } 45% { transform: scale(1.35) rotate(-7deg); } }
@keyframes status-pulse { 0% { box-shadow: 0 0 0 0 rgba(114,221,167,.38); } 65%,100% { box-shadow: 0 0 0 8px rgba(114,221,167,0); } }

@media (max-width: 991.98px) {
    .hero-banner-controls { top: clamp(1rem, 3vw, 1.75rem); right: auto; bottom: auto; left: clamp(1rem, 4vw, 3rem); }
}

@media (max-width: 767.98px) {
    body.catalogo-page { padding-bottom: calc(4rem + var(--cart-bar-height)); }
    .header-loja { min-height: clamp(280px, 78vw, 340px); padding-bottom: 5.3rem; }
    .hero-banner { object-position: var(--banner-focus-mobile, 50% 50%); }
    .header-loja h1 { font-size: clamp(2.65rem, 13vw, 4rem); }
    .loja-status { top: .8rem; right: .8rem; transform: scale(.92); transform-origin: top right; }
    .hero-banner-controls { top: .8rem; left: .8rem; padding: .22rem .42rem; }
    .hero-banner-arrow { display: none; }
    .loja-intro { grid-template-columns:60px minmax(0,1fr);align-items:start;gap:14px;margin-top:20px;margin-bottom:20px;padding-bottom:20px; }
    .logo-loja { width:60px;height:60px;border-radius:15px;padding:5px; }
    .loja-intro__copy { margin-top:0;font-size:12px;line-height:1.7; }
    .loja-intro__copy h1 { font-size:25px;line-height:1.15; }
    .search-box { min-height: 54px; border-radius: 16px; }
    .search-box input { height: 52px; font-size: .86rem; }
    .search-results { display: none; }
    .promo-nav, .cat-seta { display: none !important; }
    .promo-card { flex-basis: 248px; }
    .promo-img-wrapper { height: 185px; }
    .cat-barra { margin-right: -.75rem; margin-left: -.75rem; padding-right: .75rem; padding-left: .75rem; }
    .categoria-titulo { padding-top: 2rem !important; font-size: 1.8rem !important; }
    .categoria-grupo { --bs-gutter-x: .7rem; --bs-gutter-y: .7rem; }
    .produto-card { border-radius: 15px !important; }
    .produto-card__body { min-height: 120px; padding: .72rem .68rem .8rem !important; }
    .produto-card__body h3 { font-size: .74rem; }
    .price-current { font-size: .83rem; }
    .price-old { font-size: .61rem; }
    .btn-add { width: 34px; height: 34px; }
    .modal { padding: 0; }
    .modal-dialog { width: 100%; margin: 0; }
    #modalProduto { align-content: end; }
    #modalProduto.is-open { display: grid; }
    #modalProduto .modal-dialog { margin-top: 8vh; align-self: end; }
    #modalProduto .modal-content { max-height: 92vh; border-radius: 24px 24px 0 0 !important; }
    .product-modal-body { display: block; min-height: 0; overflow-y: auto; }
    .produto-gallery { min-height: 0; height: min(44vh, 390px); }
    .product-detail { max-height: none; padding: 2rem 1.15rem calc(1.3rem + env(safe-area-inset-bottom)); overflow: visible; }
    .product-detail h2 { padding-right: 2rem; font-size: 2rem; }
    .product-actions { margin-top: .6rem; padding: .8rem 0 calc(.2rem + env(safe-area-inset-bottom)); border-top: 1px solid var(--catalogo-line); }
    .checkout-dialog { height: 100dvh; margin: 0; }
    .checkout-dialog .modal-content { border-radius: 0 !important; }
    .checkout-body { padding: .9rem .85rem 1rem; }
    .checkout-header { padding: 1rem; }
    .checkout-footer { padding-right: .85rem; padding-left: .85rem; }
    .cart-bar { right: .65rem; bottom: max(.65rem, env(safe-area-inset-bottom)); left: .65rem; min-height: 66px; border-radius: 18px; }
    .cart-bar__button span { display: none; }
    .catalogo-toast-region { right: .65rem; bottom: calc(.9rem + var(--cart-bar-height)); width: calc(100vw - 1.3rem); }
    .loja-location { margin-top: 3.5rem; padding: 1.5rem 1rem; }
}

@media (max-width: 380px) {
    .checkout-grid { grid-template-columns: 1fr; }
    .checkout-field--full { grid-column: auto; }
    .produto-card__footer { align-items: center; }
    .btn-add { width: 32px; height: 32px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Pagamento PIX do pedido */
.pix-pay { text-align: center; }
.pix-pay__label { margin: 0; color: var(--catalogo-muted); font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.pix-pay__value { margin: .15rem 0 .9rem; color: var(--catalogo-ink); font-size: 1.7rem; font-weight: 850; font-variant-numeric: tabular-nums; }
.pix-pay__qr { display: grid; place-items: center; width: 212px; height: 212px; margin: 0 auto; padding: 10px; border: 1px solid var(--catalogo-line); border-radius: 16px; background: #fff; }
.pix-pay__qr img, .pix-pay__qr canvas { width: 190px !important; height: 190px !important; }
.pix-pay__qr-fallback { color: var(--catalogo-muted); font-size: .7rem; }
.pix-pay__receiver { margin: .8rem 0 0; color: var(--catalogo-muted); font-size: .72rem; overflow-wrap: anywhere; }
.pix-pay__receiver strong { color: var(--catalogo-ink); }
.pix-pay__hint { margin: .3rem 0 .6rem; color: var(--catalogo-muted); font-size: .72rem; }
.pix-pay__code { width: 100%; padding: .65rem .75rem; border: 1px solid var(--catalogo-line); border-radius: 12px; background: #fff; color: var(--catalogo-ink); font: 600 .68rem/1.45 ui-monospace, SFMono-Regular, Menlo, monospace; word-break: break-all; resize: none; }
.pix-pay__copy { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; width: 100%; min-height: 44px; margin-top: .6rem; border: 1px solid var(--primary-color); border-radius: 12px; background: transparent; color: var(--primary-color); font: inherit; font-size: .76rem; font-weight: 800; cursor: pointer; }
.pix-pay__copy.is-copied { border-color: #1f7a55; background: #1f7a55; color: #fff; }
.pix-steps ol { margin: 0; padding-left: 1.1rem; color: var(--catalogo-ink); font-size: .74rem; line-height: 1.55; }
.pix-steps li + li { margin-top: .3rem; }
.pix-actions { display: flex; flex-direction: column; gap: .5rem; }
.pix-actions .checkout-submit { display: flex; align-items: center; justify-content: center; gap: .5rem; text-decoration: none; }
.pix-actions__paid { background: var(--primary-color) !important; box-shadow: none !important; }
.pix-actions__later { align-self: center; padding: .25rem; color: var(--catalogo-muted); font-size: .7rem; font-weight: 700; }
.inline-message.is-ok { color: #1f5f45; background: #e3f3ea; }

/* Cupom de desconto — o aplicado vira um canhoto picotado na cor da loja */
.coupon-form { display: flex; gap: .5rem; }
.coupon-form[hidden] { display: none; }
.coupon-form input { flex: 1; min-width: 0; min-height: 48px; padding: .7rem .85rem; border: 1px dashed color-mix(in srgb, var(--primary-color), transparent 45%); border-radius: 13px; color: var(--catalogo-ink); background: #fff; outline: 0; font: 800 .8rem/1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .12em; text-transform: uppercase; }
.coupon-form input::placeholder { font-family: 'Manrope', sans-serif; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--catalogo-muted); }
.coupon-form input:focus { border-style: solid; border-color: var(--primary-color); box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary-color), transparent 88%); }
.coupon-form button { flex: none; min-height: 48px; padding: 0 1.1rem; border: 0; border-radius: 13px; color: var(--primary-contrast); background: var(--primary-color); font-size: .76rem; font-weight: 800; cursor: pointer; }
.coupon-form button:disabled { opacity: .65; cursor: progress; }

.coupon-ticket {
    --notch: 9px;
    position: relative;
    display: grid;
    grid-template-columns: 5.4rem 1fr auto;
    align-items: stretch;
    min-height: 68px;
    border-radius: 14px;
    background: color-mix(in srgb, var(--primary-color), white 93%);
    /* Dois recortes meia-lua na linha do picote, em cima e embaixo. */
    -webkit-mask: radial-gradient(circle var(--notch) at 5.4rem 0, #0000 98%, #000) top / 100% 51% no-repeat,
                  radial-gradient(circle var(--notch) at 5.4rem 100%, #0000 98%, #000) bottom / 100% 51% no-repeat;
            mask: radial-gradient(circle var(--notch) at 5.4rem 0, #0000 98%, #000) top / 100% 51% no-repeat,
                  radial-gradient(circle var(--notch) at 5.4rem 100%, #0000 98%, #000) bottom / 100% 51% no-repeat;
}
.coupon-ticket[hidden] { display: none; }
.coupon-ticket__stub {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    padding: .5rem .4rem;
    color: var(--primary-contrast);
    background: var(--primary-color);
    border-right: 2px dashed color-mix(in srgb, var(--primary-contrast), transparent 55%);
    text-align: center;
}
.coupon-ticket__stub span { font-family: 'Cormorant Garamond', serif; font-size: 1.45rem; font-weight: 700; line-height: 1; font-variant-numeric: lining-nums; white-space: nowrap; }
.coupon-ticket__stub small { margin-top: .15rem; font-size: .56rem; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; opacity: .85; }
.coupon-ticket__body { display: flex; flex-direction: column; justify-content: center; gap: .2rem; min-width: 0; padding: .55rem .85rem; }
.coupon-ticket__body strong { overflow: hidden; color: var(--catalogo-ink); font: 800 .8rem/1.1 ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .12em; text-overflow: ellipsis; white-space: nowrap; }
.coupon-ticket__body span { color: var(--catalogo-success); font-size: .68rem; font-weight: 750; }
.coupon-ticket.is-waiting .coupon-ticket__body span { color: var(--catalogo-muted); }
.coupon-ticket.is-waiting .coupon-ticket__stub { background: color-mix(in srgb, var(--primary-color), var(--catalogo-muted) 55%); }
.coupon-ticket__remove { align-self: center; display: grid; place-items: center; width: 44px; height: 44px; margin-right: .2rem; padding: 0; border: 0; border-radius: 50%; color: var(--catalogo-muted); background: transparent; cursor: pointer; }
.coupon-ticket__remove:hover { color: var(--catalogo-danger); background: rgba(166, 64, 64, .08); }
.coupon-ticket.is-applied { animation: coupon-stamp .5s cubic-bezier(.2, .9, .3, 1.3); }
@keyframes coupon-stamp { 0% { transform: scale(.94) rotate(-1.5deg); opacity: .4; } 100% { transform: none; opacity: 1; } }

.coupon-message { margin: .55rem 0 0; color: #832c2c; font-size: .68rem; font-weight: 700; }
.coupon-message[hidden] { display: none; }
.coupon-message.is-ok { color: var(--catalogo-success); }
.checkout-summary__discount { color: var(--catalogo-success) !important; font-weight: 700; }
.checkout-summary__discount small { font: 800 .64rem ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .08em; }
.checkout-summary__discount[hidden] { display: none !important; }

/* Regras finais prevalecem sobre os estilos legados de layout e barra fixa. */
.price-current,.product-price strong,.pickup-box a,.pix-pay__copy,.catalogo-toast button { color:var(--primary-ink,#4a3348); }
.gift-option small,.cart-item__gift,.checkout-summary__gift,.cart-item__gift-toggle.is-active,.delivery-toggle input:checked+label { color:var(--primary-ink,#4a3348) !important; }
.header-loja { min-height:270px;padding:65px 24px 70px; }
.header-loja h1 { font-size:clamp(38px,4.5vw,64px); }
.loja-intro { max-width:none; }
.loja-intro__copy { margin-top:0; }
.catalogo-discovery { max-width:none;padding:0; }
.btn-topo { right:auto;left:20px; }
@media (max-width:767.98px) {
    body.catalogo-page { padding-bottom:calc(84px + var(--cart-bar-height) + env(safe-area-inset-bottom)); }
    .header-loja { min-height:235px;padding:65px 20px 58px; }
    .header-loja h1 { font-size:38px; }
    .loja-intro { margin-bottom:20px; }
    .cart-bar { bottom:calc(70px + env(safe-area-inset-bottom)); }
    .btn-topo { bottom:calc(90px + var(--cart-bar-height) + env(safe-area-inset-bottom)); }
    .catalogo-toast-region { bottom:calc(90px + var(--cart-bar-height) + env(safe-area-inset-bottom)); }
}
.inline-message.is-success { background: #e7f4ed; color: #165936; }
.inline-message.is-warning { background: #fff2d8; color: #765006; }
.product-modal-head { display:flex;align-items:center;justify-content:space-between;gap:16px;flex-shrink:0;min-height:62px;padding:10px 20px;border-bottom:1px solid var(--catalogo-line); }
#modalProduto .product-modal-body:has(.produto-gallery[hidden]) { grid-template-columns:minmax(0,1fr); }
.product-modal-head>span { display:flex;align-items:center;gap:10px;font-size:.72rem;color:var(--catalogo-muted);overflow-wrap:anywhere; }
.product-modal-head .modal-close { position:static;box-shadow:none;flex-shrink:0; }
#modalProduto .produto-gallery { display:grid;grid-template-rows:auto minmax(0,1fr) auto; }
.product-gallery-toolbar { display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;font-size:.7rem;color:var(--catalogo-muted); }
.product-gallery-toolbar button { border:1px solid var(--catalogo-line);border-radius:24px;background:#fff;padding:7px 12px;font-size:.7rem;color:var(--catalogo-ink); }
.product-gallery-toolbar button[aria-pressed=true] { border-color:var(--primary-ink); }
.product-gallery-expand { position:relative;display:block;min-height:0;width:100%;border:0;padding:0;background:transparent;cursor:zoom-in; }
.product-gallery-expand .produto-galeria-principal { padding:0 12px; }
.product-gallery-expand>span { position:absolute;right:16px;bottom:10px;display:flex;align-items:center;gap:6px;border-radius:20px;background:rgba(255,255,255,.94);padding:8px 12px;color:var(--catalogo-ink);font-size:.7rem; }
#modProdImgIndicadores { position:static;justify-content:flex-start;margin:0;padding:10px 16px 14px;min-height:74px;scrollbar-width:thin; }
.product-specs { display:flex;flex-wrap:wrap;gap:8px 16px;margin:0 0 16px;color:var(--catalogo-muted); }
.product-specs div { display:flex;gap:5px;font-size:.68rem;min-width:0;overflow-wrap:anywhere; }
.product-specs dt { font-weight:500; }.product-specs dd { margin:0;font-weight:650;color:var(--catalogo-ink); }
#modalProduto .product-detail { padding-top:24px; }
.product-lightbox { width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:0;margin:0;padding:0;color:#fff;background:#17151a;overflow:hidden; }
.product-lightbox[open] { display:flex;flex-direction:column; }
.product-lightbox::backdrop { background:#17151a; }
.lightbox-header { display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px max(16px,env(safe-area-inset-right));flex-shrink:0;border-bottom:1px solid #ffffff25; }
.lightbox-header h2 { margin:4px 0 0;font-size:1rem;font-weight:600;line-height:1.4;overflow-wrap:anywhere; }
.lightbox-header small { color:#c6c0c9;font-size:.75rem; }
.lightbox-tools { display:flex;gap:8px;flex-shrink:0; }
.lightbox-tools button,.lightbox-arrow { display:grid;place-items:center;width:44px;height:44px;border:1px solid #ffffff35;border-radius:50%;color:#fff;background:#29252f; }
.lightbox-stage { position:relative;display:grid;place-items:center;flex:1;min-height:0;overflow:auto;touch-action:pan-y pinch-zoom; }
.lightbox-stage>img { display:block;width:100%;height:100%;min-height:0;object-fit:contain;padding:16px 60px; }
.lightbox-stage.is-zoomed { display:block; }
.lightbox-stage.is-zoomed>img { width:180%;height:180%;max-width:none;object-fit:contain;padding:0; }
.lightbox-arrow { position:fixed;top:48%;z-index:1;background:#29252fcc; }
.lightbox-arrow.anterior { left:14px; }.lightbox-arrow.proxima { right:14px; }
.lightbox-thumbs { display:flex;gap:10px;flex-shrink:0;overflow-x:auto;padding:12px 20px;scrollbar-width:thin; }
.lightbox-thumbs button { flex-shrink:0;width:64px;height:64px;padding:3px;border:2px solid transparent;border-radius:10px;background:#fff; }
.lightbox-thumbs button[aria-current=true] { border-color:var(--primary-color); }
.lightbox-thumbs img { width:100%;height:100%;object-fit:contain; }
.lightbox-hint { flex-shrink:0;text-align:center;margin:0;padding:0 16px calc(14px + env(safe-area-inset-bottom));font-size:.7rem;color:#c6c0c9; }
.checkout-tabs { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));flex-shrink:0;border-bottom:1px solid var(--catalogo-line);background:var(--catalogo-paper);padding:0 16px; }
.checkout-tabs button { display:flex;align-items:center;justify-content:center;gap:8px;min-height:54px;border:0;border-bottom:2px solid transparent;color:var(--catalogo-muted);background:transparent;font-size:.76rem;font-weight:650; }
.checkout-tabs button>span { display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#ece7e4;font-size:.65rem; }
.checkout-tabs button[aria-selected=true] { color:var(--primary-ink);border-bottom-color:var(--primary-color); }
.checkout-tabs button[aria-selected=true]>span { background:var(--primary-color);color:var(--primary-contrast); }
.checkout-panel>.checkout-section:first-child { margin-top:0; }
.checkout-continue-shopping { display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;width:100%;margin:12px 0 0;padding:8px;border:0;background:transparent;color:var(--catalogo-muted);font-size:.76rem; }
.checkout-next { background:var(--primary-color);color:var(--primary-contrast);box-shadow:none; }
.checkout-review { border:1px solid var(--catalogo-line);border-radius:16px;background:var(--catalogo-paper);margin-top:16px;padding:16px; }
.checkout-review h3 { margin:0 0 10px;font-size:.8rem; }.checkout-review p { font-size:.76rem;line-height:1.7;overflow-wrap:anywhere; }
.checkout-review button { border:0;background:transparent;color:var(--primary-ink);font-size:.74rem;text-decoration:underline;text-underline-offset:3px;margin:0 14px 0 0;padding:8px 0; }
@media (max-width:767.98px) {
    .lightbox-stage>img { padding:10px 16px; }.lightbox-header { padding-top:calc(12px + env(safe-area-inset-top)); }.lightbox-header h2 { font-size:.86rem; }
    .lightbox-tools { gap:6px; }.lightbox-tools button { width:40px;height:40px; }
    .lightbox-thumbs button { width:52px;height:52px; }
    .product-note input,.checkout-field input,#chkPagamento { font-size:16px; }
    .checkout-tabs { padding:0 8px; }.checkout-tabs button { font-size:.73rem;gap:5px; }
    #modalProduto .produto-gallery { height:min(56dvh,480px) !important; }
    .product-gallery-toolbar { padding:8px 12px;min-height:34px; }
    .product-gallery-expand .produto-galeria-principal { padding:0 8px; }
    #modProdImgIndicadores { padding:8px 12px;min-height:66px; }
    #modProdImgIndicadores .produto-thumb { width:50px;height:50px;border-radius:9px; }
}
.product-purchase-bar { display: flex; align-items: center; gap: 24px; flex-shrink: 0; padding: 18px 24px; border-top: 1px solid var(--catalogo-line); background: var(--catalogo-paper, #fffdfa); }
.product-purchase-bar p { flex: 1; margin: 0; font-size: .74rem; color: var(--catalogo-muted); }
.product-purchase-bar .product-add-button { width: auto; min-width: 290px; margin: 0; }
.product-description summary { display: flex; align-items: center; justify-content: space-between; padding: 12px 0; font-size: .78rem; font-weight: 700; cursor: pointer; list-style: none; }
.product-description[open] summary i { transform: rotate(180deg); }
.checkout-subtitle { margin: 4px 0 0; font-size: .75rem; color: var(--catalogo-muted); }
.checkout-final-total { display: flex; justify-content: space-between; align-items: center; padding-bottom: 12px; font-size: .8rem; }
.checkout-final-total strong { font-size: 1.2rem; }
#modalProduto .modal-content { display: flex; flex-direction: column; max-height: calc(100dvh - 48px); }
#modalProduto .product-modal-body { min-height: 0; height: min(640px,calc(100dvh - 160px)); flex: 1; }
#modalProduto .produto-gallery { min-height: 0; }
#modalProduto .product-detail { min-height: 0; max-height: none; overflow-y: auto; }
.cart-item-variant { display: inline-block; color: var(--catalogo-muted); background: #f4f0ec; border-radius: 6px; padding: 3px 7px; font-size: .7rem; }
.cart-item__heading { flex-wrap: wrap; padding-right: 28px; }
.cart-item__heading h3 { width: 100%; }
.cart-item__heading > button { position: absolute; top: 0; right: 0; }
.cart-item__content { position: relative; }
@media (max-width:767.98px) {
    #modalProduto .modal-dialog { margin: 0; height: 100dvh; width: 100%; }
    #modalProduto .modal-content { max-height: 100dvh; height: 100dvh; border-radius: 0 !important; }
    #modalProduto .product-modal-body { height: auto; min-height: 0; overflow-y: auto; }
    #modalProduto .produto-gallery { height: min(35dvh,300px); }
    #modalProduto .product-detail { overflow: visible; padding: 20px 20px 24px; }
    #modalProduto .product-detail h2 { font-size: 1.8rem; }
    .product-purchase-bar { display: block; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); }
    .product-purchase-bar p { margin-bottom: 8px; font-size: .7rem; }
    .product-purchase-bar .product-add-button { width: 100%; min-width: 0; min-height: 50px; }
    .checkout-final-total { padding-bottom: 9px; }
}

/* Vitrine ampla, identidade no topo e uma faixa compacta de boas-vindas. */
.catalogo-page .container { max-width: none; width: 100%; padding-inline: clamp(20px, 4.2vw, 72px); }
.vitrine-topbar { padding: 12px clamp(20px, 4.2vw, 72px); gap: 28px; }
.vitrine-brand { flex: 0 1 auto; }
.vitrine-brand img { width: 60px; height: 60px; padding: 4px; box-shadow: 0 3px 14px #00000007; }
.vitrine-brand h1 { margin: 0; font: inherit; overflow-wrap: anywhere; }
.vitrine-top-search { flex: 1; min-width: 180px; }
.vitrine-top-search .search-box { margin: 0; min-height: 48px; border-radius: 16px; box-shadow: 0 3px 14px #00000005; }
.vitrine-top-search .search-box input { height: 48px; font-size: .8rem; }
.header-loja::before, .header-loja::after { background: none; }
.hero-banner, .hero-banner.is-active { transform: none; filter: none; }
.header-loja { min-height: clamp(250px, 18vw, 360px); }
.vitrine-welcome { display: flex; align-items: center; gap: 32px; padding: 18px 0; margin-bottom: 16px; border-bottom: 1px solid var(--catalogo-line); }
.vitrine-welcome .loja-intro { flex: 1 1 45%; grid-template-columns: 96px minmax(0, 1fr); gap: 24px; margin: 0; padding: 0; border: 0; }
.logo-loja { width: 96px; height: 96px; padding: 8px; border-radius: 50%; box-shadow: 0 6px 20px #00000008; }
.loja-intro__copy { color: var(--catalogo-ink); font-size: .85rem; line-height: 1.65; }
.loja-intro__copy p::first-line { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 1.55rem; font-weight: 700; line-height: 1.5; }
.vitrine-welcome .vitrine-benefits { flex: 1 1 50%; flex-wrap: nowrap; gap: 24px; margin: 0; padding: 0 0 0 28px; border: 0; border-left: 1px solid var(--catalogo-line); overflow-x: auto; scrollbar-width: thin; }
.vitrine-welcome .vitrine-benefit { flex: 1 0 150px; gap: 10px; }
.vitrine-benefit strong { font-weight: 700; }
.vitrine-benefit small { line-height: 1.4; }
@media (max-width: 1199.98px) {
    .vitrine-topbar { gap: 18px; }
    .vitrine-top-actions { gap: 0; }
    .vitrine-top-actions button { padding: 10px; }
    .vitrine-top-actions button span { display: none; }
    .vitrine-welcome { gap: 22px; }
    .vitrine-welcome .vitrine-benefits { padding-left: 20px; }
}
@media (max-width: 991.98px) {
    .vitrine-top-search { display: none; }
    .vitrine-welcome { display: block; }
    .vitrine-welcome .vitrine-benefits { margin-top: 16px; padding: 14px 0 0; border-left: 0; border-top: 1px solid var(--catalogo-line); }
}
@media (max-width: 767.98px) {
    .catalogo-page .container { padding-inline: 16px; }
    .vitrine-topbar { padding: 10px 16px; gap: 8px; }
    .vitrine-brand { font-size: 23px; gap: 10px; }
    .vitrine-brand img { width: 48px; height: 48px; padding: 3px; }
    .vitrine-top-actions button { padding: 9px 7px; }
    .header-loja { min-height: clamp(170px, 44vw, 250px); padding: 30px 16px; }
    .hero-banner-controls { top: auto; bottom: 10px; }
    .vitrine-welcome { padding: 14px 0; margin-bottom: 16px; }
    .vitrine-welcome .loja-intro { grid-template-columns: 78px minmax(0, 1fr); gap: 16px; align-items: center; }
    .logo-loja { width: 78px; height: 78px; padding: 6px; border-radius: 50%; }
    .loja-intro__copy { font-size: 12px; line-height: 1.55; }
    .loja-intro__copy p::first-line { font-size: 22px; line-height: 1.5; }
    .vitrine-welcome .vitrine-benefits { flex-wrap: nowrap; gap: 0; margin-top: 12px; padding-top: 12px; padding-bottom: 4px; scroll-snap-type: x proximity; }
    .vitrine-welcome .vitrine-benefit { flex: 1 0 155px; padding-inline: 12px; gap: 8px; scroll-snap-align: start; }
    .vitrine-welcome .vitrine-benefit:first-child { padding-left: 0; }
    .vitrine-welcome .vitrine-benefit + .vitrine-benefit { border-left: 1px solid var(--catalogo-line); }
    .vitrine-benefit i { width: 34px; height: 34px; font-size: 17px; }
    .vitrine-benefit strong { font-size: 11px; }
    .vitrine-benefit small { font-size: 10px; }
}

/* Benefícios com títulos curtos e movimento contínuo, sem barra de rolagem. */
.benefits-carousel { flex: 1 1 50%; min-width: 0; overflow: hidden; border-left: 1px solid var(--catalogo-line); padding-block: 8px; }
.vitrine-welcome .benefits-carousel .vitrine-benefits { width: max-content; flex: none; padding: 0; margin: 0; border: 0; overflow: visible; gap: 0; }
.benefits-original-group, .benefits-copy { display: flex; align-items: center; gap: 24px; padding-inline: 24px; }
.benefits-original-group { list-style: none; }
.benefits-mirror-group { list-style: none; }
.benefits-carousel .vitrine-benefit, .benefits-carousel .vitrine-benefit-copy { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; min-width: 0; max-width: 260px; padding: 0; border: 0 !important; }
.vitrine-benefit-copy i { display: grid; place-items: center; flex-shrink: 0; width: 44px; height: 44px; border-radius: 50%; background: color-mix(in srgb,var(--benefit-color,var(--primary-color)) 12%,white); color: var(--benefit-icon,var(--primary-ink)); font-size: 21px; }
.benefits-carousel strong { display: block; font-size: 12px; font-weight: 650; line-height: 1.45; }
.benefits-carousel.has-loop .vitrine-benefits { animation: benefits-loop var(--benefits-duration,24s) linear infinite; will-change: transform; }
.benefits-carousel:hover .vitrine-benefits, .benefits-carousel:focus-within .vitrine-benefits, .benefits-carousel.is-paused .vitrine-benefits { animation-play-state: paused; }
@keyframes benefits-loop { to { transform: translateX(-50%); } }
@media (max-width:991.98px) {
    .benefits-carousel { margin-top: 12px; padding-top: 12px; border-left: 0; border-top: 1px solid var(--catalogo-line); }
}
@media (max-width:767.98px) {
    .benefits-original-group, .benefits-copy { gap: 18px; padding-inline: 9px; }
    .benefits-carousel .vitrine-benefit, .benefits-carousel .vitrine-benefit-copy { flex: 0 0 auto; max-width: 190px; gap: 8px; }
    .benefits-carousel strong { font-size: 11px; }
    .benefits-carousel i { width: 32px; height: 32px; font-size: 16px; }
}
@media (prefers-reduced-motion:reduce) {
    .benefits-carousel.has-loop .vitrine-benefits { animation: none; will-change: auto; }
    .benefits-carousel { overflow-x: auto; scrollbar-width: none; }
    .benefits-mirror-group { display: none; }
}

.benefits-carousel { position: relative; }
.benefits-original-group { display: block; padding: 0; }
.benefits-original-items, .benefits-copy { display: flex; align-items: center; gap: 24px; padding-inline: 24px; margin: 0; list-style: none; }
@media(max-width:767.98px){.benefits-original-items,.benefits-copy {gap:18px;padding-inline:9px;}}
@media(prefers-reduced-motion:reduce){}

/* A busca abre uma prévia sem deslocar a coleção que o cliente estava vendo. */
.vitrine-topbar { position:relative; z-index:32; }
.catalogo-search { position:relative; min-width:0; }
.search-preview { position:absolute; inset:calc(100% + 8px) 0 auto; z-index:1040; max-height:min(460px,60dvh); overflow-y:auto; overscroll-behavior:contain; padding:6px; border:1px solid var(--catalogo-line); border-radius:16px; background:var(--catalogo-paper); box-shadow:0 16px 44px #29202a26; }
.search-preview[hidden] { display:none; }
.search-preview-item { display:flex; align-items:center; gap:12px; width:100%; min-height:86px; padding:12px; border:0; border-bottom:1px solid var(--catalogo-line); background:transparent; color:var(--catalogo-ink); text-align:left; cursor:pointer; }
.search-preview-item:last-child { border-bottom:0; }
.search-preview-item:hover,.search-preview-item[aria-selected="true"] { background:color-mix(in srgb,var(--primary-color),transparent 94%); border-radius:10px; }
.search-preview-item:focus-visible { outline:2px solid var(--primary-color); outline-offset:-2px; }
.search-preview-item img,.search-preview-photo { width:54px; height:62px; flex-shrink:0; object-fit:contain; border:1px solid var(--catalogo-line); border-radius:9px; background:white; }
.search-preview-photo { display:grid; place-items:center; color:var(--catalogo-muted); }
.search-preview-copy { display:grid; gap:3px; min-width:0; flex:1; }
.search-preview-copy small { color:var(--catalogo-muted); font-size:.66rem; }
.search-preview-copy strong { font-size:.81rem; font-weight:600; overflow-wrap:anywhere; }
.search-preview-copy>span { color:var(--catalogo-muted); font-size:.68rem; }
.search-preview-copy>span.is-unavailable { color:#9d3445; }
.search-preview-price { flex-shrink:0; color:var(--primary-ink); font-size:.85rem; font-weight:700; }
.search-preview-empty { padding:16px; margin:0; color:var(--catalogo-muted); font-size:.85rem; }
@media(max-width:991px) { .catalogo-search:focus-within { z-index:1030; } .search-preview-item { gap:9px; padding:10px 8px; } .search-preview-price { font-size:.76rem; } }
/* Checkout e cobertura: controles confortáveis sem alterar a cor escolhida pela loja. */
.shipping-zone>p,.coupon-phone small{font-size:.85rem;color:var(--catalogo-muted);line-height:1.5}.shipping-zone-actions{display:flex;flex-wrap:wrap;gap:8px}.shipping-zone button{min-height:44px;border:1px solid var(--catalogo-line);border-radius:10px;padding:10px 12px;background:var(--catalogo-paper);color:var(--catalogo-ink);font:inherit;font-size:.83rem;cursor:pointer}.shipping-zone button:hover{border-color:var(--primary-color)}.shipping-zone button:disabled{opacity:.6;cursor:wait}.shipping-zone-results{display:grid;gap:6px;margin-top:12px}.shipping-zone-results button{text-align:left}.shipping-zone-map{height:300px;max-height:45dvh;border-radius:12px;isolation:isolate;z-index:0;margin-top:12px;background:#e9efeb}.shipping-zone-status{padding:12px;border-radius:10px;background:#eaf4ed;color:#285844!important;font-size:.85rem}.shipping-zone-status.is-error{background:#fceeea;color:#943e2f!important}.shipping-zone details{margin-top:12px}.shipping-zone summary{font-size:.85rem;cursor:pointer}.shipping-zone details>button{margin-top:10px}.coupon-phone{margin:12px 0}.coupon-phone small{display:block;margin-top:6px}.checkout-section h3{letter-spacing:-.025em}.checkout-field input:focus-visible,.shipping-zone button:focus-visible{outline:3px solid var(--primary-color);outline-offset:3px}.shipping-zone *{touch-action:manipulation}.checkout-body{overscroll-behavior:contain}.checkout-summary strong{font-variant-numeric:tabular-nums}
@media(max-width:575px){.shipping-zone-actions>button{flex:1;min-width:110px}.shipping-zone-map{height:260px}.checkout-grid{gap:12px}.checkout-field input{min-height:46px;font-size:16px}.coupon-form button{min-height:46px}.checkout-section{min-width:0}}
/* Endereço em etapas curtas, busca explícita e controles confortáveis no toque. */
.checkout-section-heading{display:flex;align-items:center;gap:12px;margin-bottom:16px}.checkout-section-heading h3{margin:0 0 4px}.checkout-section-heading p,.checkout-address-hint{font-size:.875rem;color:var(--text-secondary,#5b6574);margin:0;line-height:1.5}.checkout-section-icon{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border-radius:14px;background:var(--primary-light,#edf3fc);color:var(--primary,#155eb3);font-size:1.3rem}.shipping-search-label{display:block;font-size:.875rem;font-weight:600;margin-bottom:8px}.shipping-address-search{display:flex;gap:8px}.shipping-address-search input{min-width:0;flex:1;background:var(--surface,#fff);border:1px solid var(--border-color,#d2dce7);border-radius:12px;padding:12px;font-size:16px;color:inherit}.shipping-address-search button,.shipping-zone-actions button,.shipping-coordinates button{min-height:44px;border-radius:12px;padding:10px 14px;border:1px solid var(--border-color,#d2dce7);background:var(--surface,#fff);color:var(--text-primary,#16283f);font:inherit;font-weight:600}.shipping-address-search button{background:var(--primary,#155eb3);border-color:var(--primary,#155eb3);color:#fff;white-space:nowrap}.shipping-zone-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.shipping-location-help{display:block;margin-top:10px;line-height:1.5;color:var(--text-secondary,#5b6574)}.shipping-zone-results button{width:100%;min-height:48px;text-align:left;line-height:1.5;padding:12px;border-radius:12px;margin-top:8px}.shipping-coordinates{margin-top:12px}.shipping-coordinates summary{min-height:44px;display:list-item;padding:12px 0;color:var(--text-secondary,#5b6574);font-size:.875rem}.shipping-zone-status{padding:12px 14px;border-radius:12px;background:var(--primary-light,#edf3fc);line-height:1.5;font-size:.875rem}.shipping-zone-status.is-error{background:#fff1f1;color:#a51d2d}.checkout-address-hint{margin-bottom:16px}#enderecoEntregaContainer .checkout-field input{font-size:16px;min-height:46px}@media(max-width:380px){.shipping-zone-actions{grid-template-columns:1fr}.shipping-address-search button{padding:10px}.checkout-section-heading{align-items:flex-start}}

/* Entrega: mapa primeiro, GPS destacado e busca como alternativa. */
.shipping-zone-actions [data-zona-localizar]{flex:1 1 100%;background:var(--primary-color);color:var(--primary-contrast,#fff);border-color:var(--primary-color);font-weight:600;font-size:.95rem}
.shipping-zone-actions [data-zona-mapa-abrir]{flex:1;font-size:.85rem}
.shipping-zone-map{height:280px;min-height:220px;max-height:42dvh;overflow:hidden}
.shipping-zone-map .leaflet-control-zoom a{width:44px;height:44px;line-height:44px}
.shipping-zone-map .leaflet-container,.shipping-zone-map .leaflet-pane{touch-action:none}
.shipping-address-alternative{padding:12px 0;border-bottom:1px solid var(--catalogo-line)}
.shipping-address-alternative summary{font-weight:600;color:var(--catalogo-ink);min-height:28px}
.shipping-address-alternative[open] .shipping-search-label{margin-top:12px}
