:root {
    color-scheme: light;
    --navy-950: #07142f;
    --navy-900: #0b2b63;
    --navy-800: #124c91;
    --navy-700: #1768b3;
    --gold-700: #a24600;
    --gold-600: #c45c00;
    --gold-500: #e28a00;
    --gold-400: #ffc400;
    --gold-200: #ffe6a1;
    --gold-100: #fff6db;
    --ivory-100: #f8f6ef;
    --ivory-200: #f1eee5;
    --surface: #fff;
    --surface-soft: #fbfaf6;
    --ink: #191925;
    --muted: #686773;
    --border: #dedbd1;
    --border-strong: #cbc6ba;
    --success: #19704d;
    --success-bg: #e8f5ee;
    --warning: #8a5b08;
    --warning-bg: #fff3d6;
    --danger: #b42318;
    --danger-bg: #feeceb;
    --violet-bg: #efecff;
    --radius-sm: 10px;
    --radius-md: 14px;
    --radius-lg: 18px;
    --radius-xl: 26px;
    --shadow-sm: 0 1px 2px rgb(15 14 56 / 5%);
    --shadow-card: 0 10px 30px rgb(15 14 56 / 8%);
    --shadow-float: 0 16px 40px rgb(15 14 56 / 14%);
    --container: 1360px;
    --font-display: Georgia, "Times New Roman", serif;
    --font-ui: "Segoe UI", Arial, sans-serif;
    --header-height: 0px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ivory-100); }
body { margin: 0; min-width: 320px; min-height: 100vh; color: var(--ink); background: var(--ivory-100); font-family: var(--font-ui); font-size: 16px; line-height: 1.55; -webkit-font-smoothing: antialiased; }
body.modal-open { overflow: hidden; }
img { display: block; max-width: 100%; }
button, input, select, textarea { color: inherit; font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { text-wrap: balance; }
[hidden] { display: none !important; }
.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.skip-link { position: fixed; z-index: 999; top: 10px; left: 10px; transform: translateY(-150%); padding: 11px 16px; color: white; background: var(--navy-900); border-radius: 10px; transition: transform .18s ease; }
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 3px solid var(--gold-400); outline-offset: 3px; }
.page { min-height: 55vh; }
.page-section { padding-block: 72px; }
.page-section--tight { padding-block: 44px; }
.section-kicker { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 10px; color: var(--gold-700); font-size: .76rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.section-kicker::before { content: ""; width: 28px; height: 2px; background: currentColor; }
.section-title { margin-bottom: 12px; color: var(--navy-950); font-family: var(--font-display); font-size: clamp(2rem, 3.7vw, 3.35rem); font-weight: 700; line-height: 1.06; letter-spacing: -.03em; }
.section-lead { max-width: 680px; margin-bottom: 0; color: var(--muted); font-size: 1.05rem; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.section-heading__copy { max-width: 720px; }
.eyebrow { display: inline-flex; align-items: center; gap: 9px; color: var(--gold-500); font-size: .76rem; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 30px; height: 2px; background: currentColor; }
.muted { color: var(--muted); }
.numeric { font-variant-numeric: tabular-nums; }

.topbar { position: relative; z-index: 45; color: #f8f6ef; background: var(--navy-950); font-size: .78rem; }
.topbar__inner { min-height: 32px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.topbar a { color: var(--gold-200); font-weight: 750; }
.store-location { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.store-location button { padding: 0; color: var(--gold-200); background: transparent; border: 0; text-decoration: underline; cursor: pointer; font-size: .76rem; }
.topbar__links { display: inline-flex; align-items: center; gap: 18px; }
.site-header { position: relative; z-index: 40; background: rgb(248 246 239 / 96%); border-bottom: 1px solid var(--border); backdrop-filter: blur(14px); }
.site-header__banner { display: block; height: 58px; color: white; background: linear-gradient(110deg, var(--navy-950), var(--navy-800) 62%, var(--navy-900)); border-bottom: 3px solid var(--gold-400); }
.site-header__banner-inner { min-height: 55px; display: flex; align-items: center; gap: 12px; }
.site-header__banner-inner img { width: 42px; height: 42px; object-fit: cover; border: 2px solid var(--gold-400); border-radius: 50%; }
.site-header__banner-inner span { min-width: 0; }
.site-header__banner-inner strong { display: block; font-family: var(--font-display); font-size: 1.35rem; line-height: .95; }
.site-header__banner-inner small { display: block; margin-top: 4px; color: var(--gold-200); font-size: .66rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.site-header__banner-inner b { margin-left: auto; color: var(--gold-200); font-size: .76rem; }
.site-header__main { min-height: 76px; display: grid; grid-template-columns: auto minmax(280px, 1fr) auto; align-items: center; gap: 14px; }
.menu-toggle { min-height: 42px; display: inline-flex; align-items: center; gap: 9px; padding: 0 12px; color: var(--navy-900); background: var(--gold-100); border: 1px solid var(--gold-200); border-radius: 11px; font-size: .78rem; font-weight: 800; }
.menu-toggle span { font-size: 1.25rem; line-height: 1; }
.menu-toggle:hover { background: var(--gold-200); }
.brand { display: inline-flex; align-items: center; gap: 10px; width: fit-content; color: var(--navy-900); }
.brand__mark { width: 48px; height: 48px; overflow: hidden; display: grid; place-items: center; background: white; border: 1px solid var(--gold-200); border-radius: 15px; box-shadow: var(--shadow-sm); }
.brand__mark img { width: 70px; max-width: none; height: 70px; object-fit: cover; }
.brand strong { display: block; font-family: var(--font-display); font-size: 1.38rem; line-height: .95; letter-spacing: -.03em; }
.brand small { display: block; margin-top: 3px; color: var(--gold-700); font-size: .65rem; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
.brand--text { display: none; }
.header-search { position: relative; height: 46px; }
.header-search input { width: 100%; height: 100%; padding: 0 96px 0 44px; border: 1px solid var(--border-strong); border-radius: 999px; background: var(--surface); box-shadow: inset 0 1px 0 rgb(15 14 56 / 2%); }
.header-search::before { content: "⌕"; position: absolute; z-index: 1; left: 17px; top: 8px; color: var(--navy-700); font-size: 1.4rem; line-height: 1; }
.header-search input:focus { border-color: var(--navy-700); outline: 3px solid var(--gold-200); }
.header-search button { position: absolute; right: 5px; top: 5px; height: 36px; padding-inline: 17px; color: white; background: var(--navy-900); border: 0; border-radius: 999px; font-size: .82rem; font-weight: 800; }
.header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 4px; grid-column: 3; grid-row: 1; }
.carvalho-only { display: block; }
.mode-switch { display: none !important; }
.header-cart > span:first-child { font-size: 1.05rem; }
.header-cart b { top: -4px; right: -4px; }
.mode-switch { display: inline-flex; padding: 3px; background: var(--ivory-200); border: 1px solid var(--border); border-radius: 999px; }
.mode-switch { grid-column: 1; grid-row: 1; }
.mode-switch button { min-width: 72px; height: 34px; padding-inline: 12px; color: var(--muted); background: transparent; border: 0; border-radius: 999px; font-size: .8rem; font-weight: 800; }
.mode-switch button.is-active { color: white; background: var(--navy-900); box-shadow: 0 4px 14px rgb(23 21 87 / 18%); }
.header-action { position: relative; min-width: 58px; min-height: 44px; display: grid; place-items: center; gap: 0; color: var(--navy-900); border-radius: 10px; font-size: .72rem; font-weight: 750; }
.header-action > span:first-child { font-size: 1rem; line-height: 1; }
.header-action:hover { background: var(--gold-100); }
.header-cart b { position: absolute; top: 0; right: 1px; min-width: 19px; height: 19px; display: grid; place-items: center; padding: 0 5px; color: var(--navy-950); background: var(--gold-400); border: 2px solid var(--ivory-100); border-radius: 99px; font-size: .65rem; }
.category-nav { border-top: 1px solid rgb(222 219 209 / 70%); background: var(--surface); }
.category-nav__track { min-height: 45px; display: flex; align-items: center; gap: 6px; overflow-x: auto; scrollbar-width: none; }
.category-nav__track::-webkit-scrollbar { display: none; }
.category-nav a { flex: 0 0 auto; padding: 8px 14px; color: #4e4d59; border-radius: 999px; font-size: .82rem; font-weight: 720; }
.category-nav a:hover, .category-nav a.is-active { color: var(--navy-900); background: var(--gold-100); }

.btn { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: 0 20px; border: 1px solid transparent; border-radius: 13px; font-weight: 820; transition: transform .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease; }
.btn:active { transform: scale(.98); }
.btn--primary { color: white; background: var(--navy-900); box-shadow: 0 8px 20px rgb(23 21 87 / 17%); }
.btn--primary:hover { background: var(--navy-800); box-shadow: 0 11px 26px rgb(23 21 87 / 23%); }
.btn--gold { color: var(--navy-950); background: var(--gold-400); }
.btn--gold:hover { background: #e3b442; }
.btn--ghost { color: var(--navy-900); background: transparent; border-color: var(--border-strong); }
.btn--ghost:hover { background: var(--surface); border-color: var(--navy-700); }
.btn--soft { color: var(--navy-900); background: var(--gold-100); }
.btn--danger { color: var(--danger); background: var(--danger-bg); border-color: #f5bbb5; }
.btn--whatsapp { color: white; background: #1b7b51; }
.btn--whatsapp:hover { background: #146440; }
.btn--small { min-height: 38px; padding-inline: 14px; border-radius: 10px; font-size: .82rem; }
.btn--block { width: 100%; }
.btn[disabled], button[disabled] { cursor: not-allowed; opacity: .55; box-shadow: none; }
.text-link { display: inline-flex; align-items: center; gap: 8px; color: var(--navy-800); font-weight: 800; }
.text-link:hover { color: var(--gold-700); }

.hero { position: relative; overflow: hidden; color: white; background: var(--navy-950); }
.hero::before { content: ""; position: absolute; inset: -40% -12% auto auto; width: 58%; height: 140%; background: radial-gradient(circle, rgb(201 148 34 / 25%), transparent 65%); pointer-events: none; }
.hero::after { content: ""; position: absolute; left: -5%; right: -5%; bottom: -54px; height: 96px; background: var(--gold-400); border-radius: 50% 50% 0 0 / 35% 35% 0 0; transform: rotate(-1deg); box-shadow: 0 -10px 0 var(--ivory-100); }
.hero__inner { position: relative; z-index: 1; min-height: 440px; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(390px, .95fr); align-items: center; gap: 64px; padding-block: 60px 90px; }
.hero__copy { max-width: 720px; }
.hero h1 { max-width: 760px; margin: 18px 0 20px; font-family: var(--font-display); font-size: clamp(2.8rem, 5.2vw, 5.1rem); font-weight: 700; line-height: .98; letter-spacing: -.055em; }
.hero h1 em { color: var(--gold-400); font-style: normal; }
.hero__copy p { max-width: 620px; color: rgb(255 255 255 / 76%); font-size: 1.08rem; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.hero .btn--ghost { color: white; border-color: rgb(255 255 255 / 30%); }
.hero .btn--ghost:hover { background: rgb(255 255 255 / 8%); border-color: white; }
.hero__visual { position: relative; min-height: 320px; display: grid; place-items: center; }
.hero-brand-card { position: relative; z-index: 2; width: min(82%, 350px); padding: 22px; background: var(--surface); border: 1px solid rgb(255 255 255 / 45%); border-radius: 30px; box-shadow: 0 28px 65px rgb(0 0 0 / 28%); transform: rotate(-2deg); }
.hero-brand-card img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 20px; }
.hero-mini-card { position: absolute; z-index: 3; max-width: 230px; padding: 15px 17px; color: var(--ink); background: rgb(255 255 255 / 94%); border: 1px solid var(--gold-200); border-radius: 16px; box-shadow: var(--shadow-float); backdrop-filter: blur(12px); }
.hero-mini-card strong { display: block; color: var(--navy-900); font-size: .95rem; }
.hero-mini-card span { color: var(--muted); font-size: .78rem; }
.hero-mini-card--one { left: 0; bottom: 30px; }
.hero-mini-card--two { right: -8px; top: 25px; }
.trust-strip { position: relative; z-index: 3; margin-top: -2px; background: var(--ivory-100); }
.trust-strip__inner { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--border); border-radius: 18px; background: var(--surface); box-shadow: var(--shadow-card); transform: translateY(-23px); }
.trust-item { min-height: 90px; display: flex; align-items: center; gap: 14px; padding: 18px 28px; }
.trust-item + .trust-item { border-left: 1px solid var(--border); }
.trust-icon { width: 42px; height: 42px; flex: 0 0 auto; display: grid; place-items: center; color: var(--navy-900); background: var(--gold-100); border-radius: 13px; font-size: 1.1rem; font-weight: 900; }
.trust-item strong { display: block; color: var(--navy-900); }
.trust-item span { color: var(--muted); font-size: .82rem; }

.category-showcase { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.category-tile { position: relative; min-height: 190px; overflow: hidden; display: flex; flex-direction: column; justify-content: end; padding: 24px; color: white; background: var(--navy-900); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); isolation: isolate; transition: transform .18s ease; }
.category-tile:nth-child(3n + 2) { background: #292570; }
.category-tile:nth-child(3n + 3) { color: var(--navy-950); background: var(--gold-200); }
.category-tile::before { content: ""; position: absolute; z-index: -1; width: 180px; height: 180px; right: -42px; top: -54px; border: 35px solid rgb(255 255 255 / 9%); border-radius: 50%; }
.category-tile::after { content: attr(data-initial); position: absolute; z-index: -1; right: 22px; top: 8px; color: rgb(255 255 255 / 12%); font-family: var(--font-display); font-size: 7rem; font-weight: 800; line-height: 1; }
.category-tile:nth-child(3n + 3)::after { color: rgb(23 21 87 / 10%); }
.category-tile:hover { transform: translateY(-3px); }
.category-tile small { opacity: .72; font-weight: 720; }
.category-tile strong { max-width: 90%; margin-top: 3px; font-family: var(--font-display); font-size: 1.75rem; line-height: 1.05; }
.category-tile span { margin-top: 18px; font-size: .82rem; font-weight: 800; }
.wholesale-block { position: relative; overflow: hidden; color: white; background: var(--navy-900); border-radius: 28px; box-shadow: var(--shadow-float); }
.wholesale-block::before, .wholesale-block::after { content: ""; position: absolute; right: -8%; border-radius: 50%; pointer-events: none; }
.wholesale-block::before { top: -90px; width: 430px; height: 210px; border: 35px solid rgb(201 148 34 / 24%); transform: rotate(-8deg); }
.wholesale-block::after { bottom: -125px; width: 620px; height: 240px; border: 42px solid rgb(255 255 255 / 6%); transform: rotate(8deg); }
.wholesale-block__inner { position: relative; z-index: 1; min-height: 340px; display: grid; grid-template-columns: 1.15fr .85fr; align-items: center; gap: 60px; padding: 52px 64px; }
.wholesale-block h2 { max-width: 680px; margin-bottom: 16px; font-family: var(--font-display); font-size: clamp(2.1rem, 4vw, 3.8rem); line-height: 1.03; letter-spacing: -.04em; }
.wholesale-block p { max-width: 630px; color: rgb(255 255 255 / 72%); }
.wholesale-list { display: grid; gap: 12px; }
.wholesale-list div { display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: rgb(255 255 255 / 8%); border: 1px solid rgb(255 255 255 / 13%); border-radius: 13px; }
.wholesale-list b { width: 26px; height: 26px; display: grid; place-items: center; color: var(--navy-950); background: var(--gold-400); border-radius: 50%; }
.how-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; counter-reset: steps; }
.how-item { position: relative; padding: 28px 24px 24px 70px; border-top: 1px solid var(--border-strong); counter-increment: steps; }
.how-item::before { content: "0" counter(steps); position: absolute; left: 0; top: 23px; color: var(--gold-600); font-family: var(--font-display); font-size: 2.2rem; font-weight: 700; }
.how-item h3 { margin-bottom: 7px; color: var(--navy-900); font-size: 1.05rem; }
.how-item p { margin: 0; color: var(--muted); font-size: .9rem; }

.catalog-hero { padding-block: 52px 32px; background: linear-gradient(180deg, var(--gold-100), transparent); border-bottom: 1px solid var(--border); }
.catalog-hero__inner { display: flex; align-items: end; justify-content: space-between; gap: 30px; }
.catalog-hero__copy { min-width: 0; }
.catalog-hero h1 { margin-bottom: 8px; color: var(--navy-950); font-family: var(--font-display); font-size: clamp(2.2rem, 4vw, 3.8rem); line-height: 1.02; letter-spacing: -.04em; }
.catalog-hero p { max-width: 680px; margin: 0; color: var(--muted); }
.catalog-hero--home { padding-block: 30px 26px; background: linear-gradient(105deg, var(--gold-100), var(--ivory-100) 58%, #eeebff); }
.catalog-hero--home .catalog-hero__inner { align-items: center; }
.catalog-hero--home .catalog-hero__copy { max-width: 720px; }
.catalog-hero--home h1 { margin-bottom: 7px; font-size: clamp(2.25rem, 4vw, 3.55rem); }
.marketplace-home { padding-block: 30px 10px; background: var(--surface); }
.marketplace-home__head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 16px; }
.marketplace-home__head h2 { margin: 0; color: var(--navy-950); font-family: var(--font-display); font-size: clamp(1.7rem, 3vw, 2.35rem); line-height: 1.05; }
.marketplace-departments { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.market-department { min-height: 116px; display: flex; align-items: center; gap: 11px; padding: 14px; color: var(--navy-900); background: #f3f5f8; border: 1px solid #e1e5ec; border-radius: 14px; transition: transform .18s ease, box-shadow .18s ease; }
.market-department:hover { transform: translateY(-2px); box-shadow: var(--shadow-card); }
.market-department__icon { width: 58px; height: 58px; flex: 0 0 auto; display: grid; place-items: center; background: white; border-radius: 12px; font-size: 2rem; box-shadow: inset 0 0 0 1px rgb(7 20 47 / 6%); }
.market-department span:nth-child(2) { min-width: 0; display: grid; gap: 4px; }
.market-department strong { font-size: .98rem; }
.market-department small { color: var(--muted); font-size: .72rem; line-height: 1.25; }
.market-department > b { margin-left: auto; color: var(--gold-600); font-size: 1.15rem; }
.marketplace-promos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 14px; }
.market-promo { min-height: 128px; display: grid; align-content: center; gap: 5px; padding: 22px 25px; overflow: hidden; border-radius: 15px; isolation: isolate; position: relative; }
.market-promo::after { content: ""; position: absolute; z-index: -1; width: 170px; height: 170px; right: -30px; top: -58px; border: 22px solid rgb(255 255 255 / 22%); border-radius: 50%; }
.market-promo span { font-size: .68rem; font-weight: 900; letter-spacing: .14em; }
.market-promo strong { max-width: 420px; font-family: var(--font-display); font-size: 1.55rem; line-height: 1.05; }
.market-promo small { font-weight: 750; }
.market-promo--yellow { color: var(--navy-950); background: linear-gradient(110deg, var(--gold-400), #ffdc57); }
.market-promo--blue { color: white; background: linear-gradient(110deg, var(--navy-900), var(--navy-700)); }
.is-storefront-home .catalog-hero--home, .is-storefront-home .catalog-toolbar, .is-storefront-home .catalog-shell { display: none !important; }
.storefront-hero { padding: 18px 0 0; background: #f2f4f8; }
.storefront-hero__banner { min-height: 300px; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr); align-items: center; overflow: hidden; padding: 42px 58px; color: white; background: linear-gradient(110deg, #0b2b63 0%, #1257a4 58%, #1883c8 100%); border-radius: 6px; position: relative; isolation: isolate; }
.storefront-hero__banner::before, .storefront-hero__banner::after { content: ""; position: absolute; z-index: -1; border-radius: 50%; border: 30px solid rgb(255 196 0 / 25%); }
.storefront-hero__banner::before { width: 360px; height: 360px; right: 80px; top: -180px; }
.storefront-hero__banner::after { width: 520px; height: 520px; right: -120px; bottom: -380px; border-color: rgb(255 255 255 / 10%); }
.storefront-hero__copy > span { color: var(--gold-400); font-size: .73rem; font-weight: 900; letter-spacing: .17em; }
.storefront-hero__copy h1 { max-width: 630px; margin: 12px 0 12px; font-family: var(--font-display); font-size: clamp(2.3rem, 4.5vw, 4rem); line-height: .98; letter-spacing: -.045em; }
.storefront-hero__copy p { max-width: 540px; margin-bottom: 22px; color: rgb(255 255 255 / 80%); font-size: 1rem; }
.storefront-hero__cta { min-height: 45px; display: inline-flex; align-items: center; gap: 20px; padding: 0 18px; color: var(--navy-950); background: var(--gold-400); border-radius: 6px; font-weight: 900; }
.storefront-hero__cta:hover { background: #ffd53b; }
.storefront-hero__visual { min-height: 220px; display: grid; place-items: center; position: relative; }
.storefront-basket { width: 180px; height: 180px; display: grid; place-items: center; color: var(--navy-900); background: rgb(255 255 255 / 92%); border: 10px solid var(--gold-400); border-radius: 50%; font-size: 5.6rem; box-shadow: 0 18px 35px rgb(0 0 0 / 20%); transform: rotate(-8deg); }
.storefront-bubble { position: absolute; padding: 9px 14px; color: var(--navy-950); background: white; border-radius: 7px; font-size: .75rem; font-weight: 850; box-shadow: 0 8px 20px rgb(0 0 0 / 15%); }
.storefront-bubble--one { left: 0; bottom: 18px; }
.storefront-bubble--two { right: 0; top: 16px; color: var(--navy-900); background: var(--gold-400); }
.storefront-services { display: grid; grid-template-columns: repeat(3, 1fr); overflow: hidden; margin: 14px 0 0; background: white; border: 1px solid #dfe4ec; border-radius: 6px; }
.storefront-services > div { min-height: 74px; display: flex; align-items: center; gap: 11px; padding: 12px 20px; }
.storefront-services > div + div { border-left: 1px solid #e6e9ef; }
.storefront-services b { width: 35px; height: 35px; display: grid; place-items: center; background: #eef2f8; border-radius: 50%; font-size: 1.05rem; }
.storefront-services span { display: grid; gap: 2px; }
.storefront-services strong { color: var(--navy-900); font-size: .82rem; }
.storefront-services small { color: var(--muted); font-size: .68rem; }
.home-shelf { padding: 31px 0 2px; background: var(--surface); }
.home-shelf + .home-shelf { padding-top: 24px; }
.home-shelf__head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 14px; }
.home-shelf__head h2 { margin: 0; color: var(--navy-950); font-family: var(--font-display); font-size: clamp(1.65rem, 3vw, 2.3rem); line-height: 1.04; }
.home-shelf__grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.home-shelf .product-card { border-radius: 7px; }
.topbar { color: #4c5562; background: #fff; border-bottom: 1px solid #e7e9ee; }
.topbar a { color: var(--navy-900); }
.topbar__inner { min-height: 42px; font-size: .78rem; }
.site-header { color: white; background: var(--navy-900); border-bottom: 0; backdrop-filter: none; }
.site-header__main { min-height: 90px; grid-template-columns: auto auto minmax(300px, 1fr) auto; gap: 18px; }
.menu-toggle { grid-column: 1; color: white; background: transparent; border-color: rgb(255 255 255 / 35%); }
.menu-toggle:hover { color: var(--navy-950); background: var(--gold-400); }
.brand--carvalho { grid-column: 2; color: white; gap: 8px; }
.brand--carvalho .brand__mark { width: 54px; height: 54px; border: 2px solid var(--gold-400); border-radius: 50%; }
.brand--carvalho .brand__mark img { width: 100%; height: 100%; object-fit: cover; }
.brand--carvalho strong { font-size: 1.35rem; }
.brand--carvalho small { color: var(--gold-400); }
.header-search { grid-column: 3; }
.header-search input { border: 0; border-radius: 5px; }
.header-search button { color: var(--navy-900); background: var(--gold-400); border-radius: 5px; }
.header-search button:hover { background: #ffd53b; }
.header-actions { grid-column: 4; }
.header-action { color: white; }
.header-action:hover { color: var(--navy-950); background: var(--gold-400); }
.header-cart b { border-color: var(--navy-900); }
.category-nav { background: white; border-top: 0; }
.category-nav a { color: #4b5664; border-radius: 0; font-size: .8rem; }
.category-nav a:hover, .category-nav a.is-active { color: var(--navy-900); background: #edf2f8; }
@media (max-width: 1180px) {
    .site-header__main { grid-template-columns: auto auto minmax(0, 1fr) auto; }
    .home-shelf__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .topbar__inner { min-height: 34px; }
    .site-header__main { min-height: 108px; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-rows: 58px 50px; gap: 0 8px; padding-block: 0 7px; }
    .menu-toggle { grid-column: 1; grid-row: 1; width: 44px; padding: 0; justify-content: center; }
    .menu-toggle b { display: none; }
    .brand--carvalho { grid-column: 2; grid-row: 1; }
    .brand--carvalho .brand__mark { width: 42px; height: 42px; }
    .brand--carvalho strong { font-size: 1.06rem; }
    .brand--carvalho small { font-size: .5rem; }
    .header-actions { grid-column: 3; grid-row: 1; }
    .header-search { grid-column: 1 / -1; grid-row: 2; width: 100%; height: 40px; }
    .site-header .category-nav { color: var(--ink); }
    .storefront-hero__banner { grid-template-columns: 1fr; min-height: 330px; padding: 34px 26px; }
    .storefront-hero__visual { display: none; }
    .storefront-services { grid-template-columns: 1fr; }
    .storefront-services > div { min-height: 58px; padding: 10px 15px; }
    .storefront-services > div + div { border-top: 1px solid #e6e9ef; border-left: 0; }
    .home-shelf__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
    .topbar__message { display: none; }
    .topbar__links { gap: 10px; }
    .store-location { font-size: .68rem; }
    .storefront-hero { padding-top: 10px; }
    .storefront-hero__banner { min-height: 300px; padding: 28px 20px; border-radius: 4px; }
    .storefront-hero__copy h1 { font-size: 2.35rem; }
    .storefront-hero__copy p { font-size: .88rem; }
    .storefront-services strong { font-size: .76rem; }
    .storefront-services small { font-size: .62rem; }
    .home-shelf { padding-top: 24px; }
    .home-shelf__head { align-items: flex-start; flex-direction: column; gap: 7px; }
    .home-shelf__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
}
.order-guide { flex: 0 0 auto; display: grid; grid-template-columns: repeat(3, auto); gap: 4px; padding: 6px; background: rgb(255 255 255 / 82%); border: 1px solid var(--border); border-radius: 16px; box-shadow: var(--shadow-sm); }
.order-guide span { min-height: 48px; display: flex; align-items: center; gap: 8px; padding: 8px 11px; color: var(--navy-900); font-size: .82rem; font-weight: 800; white-space: nowrap; }
.order-guide b { width: 27px; height: 27px; flex: 0 0 auto; display: grid; place-items: center; color: white; background: var(--navy-900); border-radius: 50%; font-size: .72rem; }
.catalog-toolbar { position: sticky; z-index: 20; top: 0; padding-block: 12px; background: rgb(248 246 239 / 93%); border-bottom: 1px solid var(--border); backdrop-filter: blur(12px); }
.catalog-toolbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.result-summary { color: var(--muted); font-size: .9rem; }
.result-summary strong { color: var(--navy-900); }
.toolbar-actions { display: flex; align-items: center; gap: 10px; }
.filter-toggle { display: none; }
.select { min-height: 42px; padding: 0 36px 0 13px; border: 1px solid var(--border-strong); border-radius: 11px; background: var(--surface); }
.catalog-shell { display: grid; grid-template-columns: 246px minmax(0, 1fr); align-items: start; gap: 28px; padding-block: 30px 72px; }
.filters { position: sticky; top: 192px; display: grid; gap: 8px; padding: 20px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.filters h2 { margin-bottom: 10px; color: var(--navy-900); font-size: 1rem; }
.filter-close { display: none; position: absolute; right: 16px; top: 13px; width: 38px; height: 38px; border: 0; border-radius: 10px; background: var(--ivory-200); font-size: 1.2rem; }
.filter-group { padding-block: 12px; border-top: 1px solid var(--border); }
.filter-group:first-of-type { border-top: 0; }
.filter-group h3 { margin-bottom: 9px; color: var(--muted); font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; }
.filter-option { display: flex; align-items: center; gap: 9px; min-height: 38px; padding: 5px 8px; border-radius: 9px; font-size: .86rem; }
.filter-option:hover { background: var(--gold-100); }
.filter-option input { width: 17px; height: 17px; accent-color: var(--navy-900); }
.filters .filter-option { min-height: 32px; padding-block: 3px; font-size: .8rem; }
.catalog-content { min-width: 0; }
.product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; }
.product-card { position: relative; min-width: 0; overflow: hidden; display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--border); border-radius: 17px; box-shadow: var(--shadow-sm); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.product-card:hover { transform: translateY(-2px); border-color: var(--gold-200); box-shadow: var(--shadow-card); }
.product-card.is-offer::before { content: ""; position: absolute; z-index: 4; inset: 0 0 auto; height: 3px; background: var(--gold-400); }
.product-card__media { position: relative; aspect-ratio: 1.08; overflow: hidden; display: grid; place-items: center; padding: 15px; background: #f4f1e8; }
.product-card__media img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; transition: transform .25s ease; }
.product-card:hover .product-card__media img { transform: scale(1.025); }
.product-placeholder { width: 76%; aspect-ratio: 1; display: grid; place-items: center; color: var(--navy-900); background: radial-gradient(circle at 35% 30%, white, var(--gold-100)); border: 1px solid var(--gold-200); border-radius: 50%; font-family: var(--font-display); font-size: 3.2rem; font-weight: 800; }
.product-badges { position: absolute; z-index: 2; top: 11px; left: 11px; display: flex; flex-wrap: wrap; gap: 5px; }
.badge { min-height: 25px; display: inline-flex; align-items: center; padding: 0 9px; border-radius: 999px; font-size: .67rem; font-weight: 850; letter-spacing: .03em; }
.badge--sale { color: var(--navy-950); background: var(--gold-400); }
.badge--wholesale { color: var(--navy-900); background: var(--gold-100); border: 1px solid var(--gold-200); }
.badge--out { color: #4e4d59; background: #e7e5df; }
.badge--review { color: var(--warning); background: var(--warning-bg); }
.product-card__body { flex: 1; display: flex; flex-direction: column; padding: 16px; }
.product-card__category { margin-bottom: 5px; color: var(--gold-700); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.product-card h3 { min-height: 2.75em; display: -webkit-box; margin-bottom: 6px; overflow: hidden; color: var(--navy-950); font-size: .94rem; font-weight: 770; line-height: 1.36; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.product-card__package { min-height: 1.45em; overflow: hidden; margin-bottom: 12px; color: var(--muted); font-size: .76rem; white-space: nowrap; text-overflow: ellipsis; }
.price-block { min-height: 55px; margin-top: auto; }
.price-block del { display: block; color: var(--muted); font-size: .72rem; }
.price-block strong { display: block; color: var(--navy-900); font-size: 1.28rem; font-weight: 850; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.price-block small { color: var(--muted); font-size: .7rem; }
.wholesale-rule { margin: 8px 0 11px; padding: 7px 9px; color: var(--navy-800); background: var(--gold-100); border-radius: 8px; font-size: .7rem; font-weight: 700; }
.product-card__action { margin-top: 11px; }
.add-button { width: 100%; min-height: 43px; color: white; background: var(--navy-900); border: 0; border-radius: 11px; font-weight: 800; }
.add-button:hover { background: var(--navy-800); }
.add-button:disabled { color: var(--muted); background: #e7e5df; }
.quantity-stepper { width: 100%; min-height: 43px; display: grid; grid-template-columns: 43px 1fr 43px; align-items: center; overflow: hidden; background: var(--gold-100); border: 1px solid var(--gold-200); border-radius: 11px; }
.quantity-stepper button { height: 100%; color: var(--navy-900); background: transparent; border: 0; font-size: 1.15rem; font-weight: 850; }
.quantity-stepper button:hover { background: var(--gold-200); }
.quantity-stepper output { text-align: center; color: var(--navy-900); font-weight: 850; font-variant-numeric: tabular-nums; }
.pagination { display: flex; justify-content: center; gap: 8px; margin-top: 32px; }
.pagination button { min-width: 42px; height: 42px; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); }
.pagination button.is-active { color: white; background: var(--navy-900); border-color: var(--navy-900); }
.empty-state { padding: 54px 28px; text-align: center; background: var(--surface); border: 1px dashed var(--border-strong); border-radius: var(--radius-lg); }
.empty-state__mark { width: 66px; height: 66px; display: grid; place-items: center; margin: 0 auto 17px; color: var(--navy-900); background: var(--gold-100); border-radius: 50%; font-size: 1.7rem; }
.empty-state h2 { color: var(--navy-900); font-family: var(--font-display); font-size: 1.8rem; }
.empty-state p { max-width: 520px; margin-inline: auto; color: var(--muted); }

.cart-page, .checkout-page, .order-page, .account-page { padding-block: 48px 80px; }
.breadcrumb { display: flex; align-items: center; gap: 8px; margin-bottom: 24px; color: var(--muted); font-size: .8rem; }
.breadcrumb a:hover { color: var(--navy-900); }
.page-title { margin-bottom: 8px; color: var(--navy-950); font-family: var(--font-display); font-size: clamp(2.1rem, 4vw, 3.7rem); line-height: 1.03; letter-spacing: -.04em; }
.page-subtitle { max-width: 700px; color: var(--muted); }
.cart-layout, .checkout-layout { display: grid; grid-template-columns: minmax(0, 1fr) 380px; align-items: start; gap: 26px; margin-top: 30px; }
.cart-list { display: grid; gap: 12px; }
.cart-item { display: grid; grid-template-columns: 100px minmax(0, 1fr) auto auto 38px; align-items: center; gap: 18px; padding: 16px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); }
.cart-item__media { width: 100px; height: 88px; display: grid; place-items: center; overflow: hidden; background: #f4f1e8; border-radius: 12px; }
.cart-item__media img { width: 100%; height: 100%; object-fit: contain; }
.cart-item__media .product-placeholder { width: 64px; font-size: 1.6rem; }
.cart-item h3 { margin-bottom: 4px; color: var(--navy-900); font-size: .95rem; }
.cart-item__meta { color: var(--muted); font-size: .78rem; }
.cart-item__price { min-width: 110px; text-align: right; font-weight: 850; font-variant-numeric: tabular-nums; }
.remove-button { width: 38px; height: 38px; color: var(--danger); background: transparent; border: 1px solid transparent; border-radius: 10px; }
.remove-button:hover { background: var(--danger-bg); }
.order-summary { position: sticky; top: 184px; overflow: hidden; color: white; background: var(--navy-900); border-radius: 21px; box-shadow: var(--shadow-float); }
.order-summary__top { padding: 25px; }
.order-summary h2 { margin-bottom: 20px; font-family: var(--font-display); font-size: 1.55rem; }
.summary-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-block: 8px; color: rgb(255 255 255 / 72%); font-size: .88rem; }
.summary-row strong { color: white; font-variant-numeric: tabular-nums; }
.summary-total { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-top: 14px; padding-top: 18px; border-top: 1px solid rgb(217 169 55 / 36%); }
.summary-total span { color: var(--gold-200); font-size: .8rem; font-weight: 800; text-transform: uppercase; }
.summary-total strong { font-size: 1.7rem; font-variant-numeric: tabular-nums; }
.order-summary__actions { display: grid; gap: 9px; padding: 0 25px 25px; }
.order-summary__note { padding: 14px 25px; color: rgb(255 255 255 / 65%); background: rgb(0 0 0 / 12%); font-size: .75rem; }
.order-summary .btn--ghost { color: white; border-color: rgb(255 255 255 / 30%); }
.order-summary .btn--ghost:hover { background: rgb(255 255 255 / 9%); border-color: white; }

.checkout-progress { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 30px 0 20px; }
.checkout-progress { scrollbar-width: none; }
.checkout-progress::-webkit-scrollbar { display: none; }
.checkout-progress button { position: relative; min-height: 54px; padding: 8px 10px; color: var(--muted); background: transparent; border: 0; border-bottom: 3px solid var(--border); text-align: left; font-size: .78rem; font-weight: 800; }
.checkout-progress button span { display: block; margin-bottom: 2px; font-size: .68rem; }
.checkout-progress button.is-active { color: var(--navy-900); border-color: var(--gold-400); }
.checkout-progress button.is-done { color: var(--success); border-color: var(--success); }
.form-card { padding: 26px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.form-card + .form-card { margin-top: 15px; }
.form-card h2 { margin-bottom: 7px; color: var(--navy-900); font-family: var(--font-display); font-size: 1.5rem; }
.form-card__lead { margin-bottom: 22px; color: var(--muted); font-size: .88rem; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px; }
.form-field { display: grid; gap: 7px; min-width: 0; }
.form-field--full { grid-column: 1 / -1; }
.form-field label, .field-label { color: #31303c; font-size: .82rem; font-weight: 770; }
.form-field input, .form-field select, .form-field textarea, .input { width: 100%; min-height: 50px; padding: 0 14px; border: 1px solid var(--border-strong); border-radius: 11px; background: var(--surface); }
.form-field textarea { min-height: 108px; padding-block: 12px; resize: vertical; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus, .input:focus { border-color: var(--navy-700); outline: 3px solid var(--gold-200); }
.form-field small { color: var(--muted); font-size: .72rem; }
.field-error { color: var(--danger) !important; }
.selection-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.selection-card { position: relative; min-height: 88px; display: grid; align-content: center; gap: 3px; padding: 15px 16px 15px 48px; border: 1px solid var(--border-strong); border-radius: 13px; background: var(--surface); cursor: pointer; }
.selection-card input { position: absolute; left: 17px; top: 24px; width: 19px; height: 19px; accent-color: var(--navy-900); }
.selection-card:has(input:checked) { border-color: var(--navy-700); background: var(--gold-100); box-shadow: 0 0 0 2px var(--gold-200); }
.selection-card strong { color: var(--navy-900); }
.selection-card span { color: var(--muted); font-size: .78rem; }
.form-actions { display: flex; justify-content: space-between; gap: 12px; margin-top: 22px; }
.review-panel { display: grid; gap: 16px; }
.review-block { padding: 17px; background: var(--surface-soft); border: 1px solid var(--border); border-radius: 13px; }
.review-block h3 { margin-bottom: 9px; color: var(--navy-900); font-size: .9rem; }
.review-block p { margin: 0; color: var(--muted); font-size: .84rem; white-space: pre-line; }
.check-row { display: flex; align-items: flex-start; gap: 10px; margin-top: 16px; padding: 13px; background: var(--gold-100); border-radius: 11px; font-size: .82rem; }
.check-row input { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 2px; accent-color: var(--navy-900); }

.order-receipt { overflow: hidden; margin-top: 28px; background: var(--surface); border: 1px solid var(--border); border-radius: 22px; box-shadow: var(--shadow-card); }
.order-receipt__header { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 28px 30px; color: white; background: var(--navy-900); }
.order-number small { display: block; color: var(--gold-200); font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.order-number strong { display: block; font-family: var(--font-display); font-size: 1.75rem; letter-spacing: -.03em; }
.status-chip { min-height: 30px; display: inline-flex; align-items: center; padding: 0 11px; border-radius: 999px; font-size: .72rem; font-weight: 820; white-space: nowrap; }
.status--draft { color: #484750; background: #eceae5; }
.status--sent, .status--awaiting_confirmation { color: var(--warning); background: var(--warning-bg); }
.status--customer_changed { color: var(--navy-800); background: var(--violet-bg); }
.status--confirmed, .status--packing { color: white; background: var(--navy-700); }
.status--ready_for_pickup, .status--out_for_delivery { color: white; background: #176878; }
.status--completed { color: var(--success); background: var(--success-bg); }
.status--cancelled { color: var(--danger); background: var(--danger-bg); }
.order-receipt__body { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 30px; padding: 30px; }
.receipt-items { display: grid; gap: 10px; }
.receipt-item { display: grid; grid-template-columns: 1fr auto; gap: 20px; padding: 13px 0; border-bottom: 1px solid var(--border); }
.receipt-item:last-child { border-bottom: 0; }
.receipt-item strong { display: block; font-size: .88rem; }
.receipt-item span { color: var(--muted); font-size: .76rem; }
.receipt-item b { color: var(--navy-900); font-variant-numeric: tabular-nums; }
.receipt-side { padding: 20px; background: var(--surface-soft); border-radius: 15px; }
.receipt-side h3 { margin-bottom: 13px; color: var(--navy-900); font-size: .9rem; }
.receipt-side .summary-row { color: var(--muted); }
.receipt-side .summary-row strong { color: var(--navy-900); }
.receipt-side .summary-total { border-color: var(--border-strong); }
.receipt-side .summary-total span { color: var(--gold-700); }
.receipt-side .summary-total strong { color: var(--navy-900); }
.receipt-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.timeline { position: relative; display: grid; gap: 0; margin-top: 28px; }
.timeline-item { position: relative; min-height: 65px; padding: 0 0 22px 34px; }
.timeline-item::before { content: ""; position: absolute; left: 9px; top: 10px; bottom: -5px; width: 1px; background: var(--border-strong); }
.timeline-item:last-child::before { display: none; }
.timeline-item::after { content: ""; position: absolute; left: 3px; top: 6px; width: 13px; height: 13px; background: var(--gold-400); border: 3px solid var(--ivory-100); border-radius: 50%; box-shadow: 0 0 0 1px var(--gold-500); }
.timeline-item strong { display: block; color: var(--navy-900); font-size: .86rem; }
.timeline-item span { color: var(--muted); font-size: .74rem; }
.edit-context { position: sticky; z-index: 39; top: 0; padding: 9px 20px; color: var(--navy-950); background: var(--gold-200); border-bottom: 1px solid var(--gold-400); text-align: center; font-size: .82rem; font-weight: 800; }
.edit-diff { display: grid; gap: 8px; margin: 18px 0; }
.diff-row { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 11px 13px; background: var(--surface-soft); border: 1px solid var(--border); border-radius: 10px; font-size: .8rem; }
.diff-row b { color: var(--navy-900); }

.auth-shell { min-height: 66vh; display: grid; place-items: center; padding: 58px 20px 80px; background: radial-gradient(circle at 20% 20%, var(--gold-100), transparent 44%); }
.auth-card { width: min(100%, 510px); padding: 32px; background: var(--surface); border: 1px solid var(--border); border-radius: 23px; box-shadow: var(--shadow-float); }
.auth-card__brand { margin-bottom: 24px; color: var(--navy-900); font-family: var(--font-display); font-size: 1.6rem; }
.auth-card h1 { color: var(--navy-950); font-family: var(--font-display); font-size: 2.25rem; letter-spacing: -.04em; }
.auth-card form { display: grid; gap: 15px; }
.auth-switch { margin: 20px 0 0; color: var(--muted); text-align: center; font-size: .84rem; }
.auth-switch a { color: var(--navy-800); font-weight: 800; }

.admin-shell { min-height: 100vh; display: grid; grid-template-columns: 256px minmax(0, 1fr); background: #f4f2eb; }
.admin-sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 24px 18px; color: white; background: var(--navy-950); }
.admin-brand { display: flex; align-items: center; gap: 10px; padding: 0 10px 24px; color: var(--gold-200); font-family: var(--font-display); font-size: 1.3rem; }
.admin-brand::before { content: "F"; width: 37px; height: 37px; display: grid; place-items: center; color: var(--navy-950); background: var(--gold-400); border-radius: 11px; font-weight: 900; }
.admin-nav { display: grid; gap: 4px; }
.admin-nav a { position: relative; min-height: 45px; display: flex; align-items: center; gap: 11px; padding: 0 13px; color: rgb(255 255 255 / 70%); border-radius: 10px; font-size: .85rem; font-weight: 720; }
.admin-nav a::before { content: attr(data-icon); width: 21px; color: var(--gold-400); text-align: center; }
.admin-nav a:hover { color: white; background: rgb(255 255 255 / 7%); }
.admin-nav a.is-active { color: white; background: rgb(255 255 255 / 10%); }
.admin-nav a.is-active::after { content: ""; position: absolute; left: -18px; top: 9px; bottom: 9px; width: 3px; background: var(--gold-400); border-radius: 0 5px 5px 0; }
.admin-user { margin-top: auto; padding: 16px 12px 0; border-top: 1px solid rgb(255 255 255 / 12%); }
.admin-user strong { display: block; font-size: .82rem; }
.admin-user span { color: rgb(255 255 255 / 56%); font-size: .72rem; }
.admin-main { min-width: 0; }
.admin-topbar { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 32px; background: white; border-bottom: 1px solid var(--border); }
.admin-topbar strong { color: var(--navy-900); }
.admin-content { padding: 30px 32px 60px; }
.admin-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.admin-heading h1 { margin-bottom: 4px; color: var(--navy-950); font-family: var(--font-display); font-size: 2.25rem; letter-spacing: -.04em; }
.admin-heading p { margin: 0; color: var(--muted); font-size: .88rem; }
.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.metric-card { min-height: 138px; padding: 20px; background: white; border: 1px solid var(--border); border-radius: 16px; box-shadow: var(--shadow-sm); }
.metric-card--accent { color: white; background: var(--navy-900); border-color: var(--navy-900); }
.metric-card span { color: var(--muted); font-size: .75rem; font-weight: 750; text-transform: uppercase; }
.metric-card--accent span { color: var(--gold-200); }
.metric-card strong { display: block; margin-top: 12px; color: var(--navy-900); font-size: 1.9rem; font-variant-numeric: tabular-nums; }
.metric-card--accent strong { color: white; }
.metric-card small { color: var(--muted); }
.admin-card { margin-top: 18px; overflow: hidden; background: white; border: 1px solid var(--border); border-radius: 17px; box-shadow: var(--shadow-sm); }
.admin-card__header { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 20px; border-bottom: 1px solid var(--border); }
.admin-card__header h2 { margin: 0; color: var(--navy-900); font-size: 1rem; }
.admin-toolbar { display: flex; align-items: center; gap: 10px; }
.admin-toolbar .input { width: min(340px, 42vw); min-height: 40px; }
.table-wrap { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; font-size: .82rem; }
.data-table th { padding: 11px 16px; color: var(--muted); background: #faf9f5; border-bottom: 1px solid var(--border); text-align: left; font-size: .68rem; letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; }
.data-table td { height: 58px; padding: 9px 16px; border-bottom: 1px solid #eeece6; vertical-align: middle; }
.data-table tbody tr:hover { background: var(--gold-100); }
.data-table tbody tr:last-child td { border-bottom: 0; }
.data-table a { color: var(--navy-800); font-weight: 800; }
.product-cell { min-width: 260px; display: flex; align-items: center; gap: 11px; }
.product-cell__image { width: 43px; height: 43px; flex: 0 0 auto; display: grid; place-items: center; overflow: hidden; background: var(--ivory-200); border-radius: 9px; }
.product-cell__image img { width: 100%; height: 100%; object-fit: contain; }
.product-cell strong { display: block; color: var(--navy-900); font-size: .78rem; }
.product-cell small { color: var(--muted); }
.admin-detail-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; align-items: start; gap: 18px; }
.admin-panel { padding: 20px; background: white; border: 1px solid var(--border); border-radius: 16px; }
.admin-panel h2 { color: var(--navy-900); font-size: 1rem; }
.admin-panel + .admin-panel { margin-top: 14px; }
.kv-list { display: grid; gap: 8px; }
.kv-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; padding: 9px 0; border-bottom: 1px solid var(--border); font-size: .8rem; }
.kv-row:last-child { border-bottom: 0; }
.kv-row span { color: var(--muted); }
.kv-row strong { max-width: 64%; text-align: right; }
.admin-form { display: grid; gap: 17px; }
.admin-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }
.toggle-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 48px; padding: 10px 0; border-bottom: 1px solid var(--border); }
.toggle { position: relative; width: 44px; height: 24px; flex: 0 0 auto; }
.toggle input { position: absolute; opacity: 0; }
.toggle span { position: absolute; inset: 0; background: #ccc9c0; border-radius: 999px; transition: .2s; }
.toggle span::after { content: ""; position: absolute; width: 18px; height: 18px; left: 3px; top: 3px; background: white; border-radius: 50%; box-shadow: 0 2px 5px #0002; transition: .2s; }
.toggle input:checked + span { background: var(--navy-800); }
.toggle input:checked + span::after { transform: translateX(20px); }

/* Painel de gestão */
.admin-topbar__actions { display: flex; align-items: center; gap: 8px; }
.admin-utility-link { padding: 7px 10px; color: var(--muted); border-radius: 8px; font-size: .74rem; font-weight: 750; }
.admin-utility-link:hover, .admin-utility-link.is-active { color: var(--navy-900); background: var(--gold-100); }
.admin-eyebrow, .modal__kicker { display: block; margin-bottom: 6px; color: var(--gold-700); font-size: .68rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.admin-tabs { width: fit-content; display: flex; align-items: center; gap: 4px; margin-bottom: 23px; padding: 4px; background: #e9e6dd; border-radius: 12px; }
.admin-tabs a { min-height: 36px; display: inline-flex; align-items: center; padding: 0 14px; color: var(--muted); border-radius: 9px; font-size: .76rem; font-weight: 800; }
.admin-tabs a.is-active { color: var(--navy-900); background: white; box-shadow: 0 2px 8px rgb(15 14 56 / 8%); }
.admin-shortcuts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 15px; }
.admin-shortcuts a { min-height: 92px; display: grid; grid-template-columns: 1fr auto; align-content: center; gap: 3px 14px; padding: 16px 17px; color: var(--navy-900); background: white; border: 1px solid var(--border); border-radius: 14px; box-shadow: var(--shadow-sm); }
.admin-shortcuts a:hover { transform: translateY(-1px); border-color: var(--gold-300); }
.admin-shortcuts strong { font-size: .82rem; }
.admin-shortcuts span { grid-column: 1; color: var(--muted); font-size: .7rem; line-height: 1.45; }
.admin-shortcuts b { grid-column: 2; grid-row: 1 / 3; align-self: center; color: var(--gold-700); font-size: 1.1rem; }
.admin-card__hint { display: block; margin-top: 4px; color: var(--muted); font-size: .7rem; }
.admin-toolbar--wrap { flex-wrap: wrap; justify-content: flex-end; }
.admin-toolbar--wrap .select { min-width: 145px; }
[data-inventory-filter] .input { width: min(270px, 28vw); }
.compact-date { display: grid; gap: 3px; color: var(--muted); font-size: .6rem; font-weight: 800; text-transform: uppercase; }
.compact-date input { width: 132px; min-height: 40px; padding: 0 8px; background: white; border: 1px solid var(--border-strong); border-radius: 9px; color: var(--text); font: inherit; font-size: .7rem; }
.product-cell--compact { min-width: 220px; }
.stock-state, .finance-status { min-height: 25px; display: inline-flex; align-items: center; padding: 0 9px; border: 1px solid transparent; border-radius: 999px; font-size: .66rem; font-weight: 820; white-space: nowrap; }
.stock-state--ok, .finance-status--paid { color: #166534; background: #ecfdf3; border-color: #bbf7d0; }
.stock-state--low, .finance-status--pending { color: #925d00; background: #fff8df; border-color: #f4dda0; }
.stock-state--out, .finance-status--overdue { color: #a2261e; background: #fff0ee; border-color: #f4c4be; }
.stock-state--untracked, .finance-status--cancelled { color: #66645f; background: #f1f0ec; border-color: #dfddd6; }
.movement-value { font-weight: 850; font-variant-numeric: tabular-nums; }
.movement-value.is-positive, .finance-amount--receivable { color: #187044; }
.movement-value.is-negative, .finance-amount--payable { color: #a2261e; }
.admin-empty-inline { min-height: 190px; display: grid; place-items: center; align-content: center; gap: 7px; padding: 34px 22px; color: var(--muted); text-align: center; }
.admin-empty-inline strong { color: var(--navy-900); }
.admin-empty-inline p { max-width: 500px; margin: 0; font-size: .8rem; }
.stock-current { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 18px; padding: 15px 17px; color: white; background: var(--navy-900); border-radius: 13px; }
.stock-current span { color: var(--gold-200); font-size: .72rem; font-weight: 780; text-transform: uppercase; }
.stock-current strong { font-size: 1.2rem; }
.readonly-field { min-height: 47px; display: flex; align-items: center; padding: 0 13px; color: var(--navy-800); background: #f0eee8; border: 1px solid var(--border); border-radius: 10px; font-weight: 800; }
.readonly-field + small a { color: var(--navy-800); font-weight: 800; text-decoration: underline; text-underline-offset: 2px; }
.admin-notice { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 13px; margin-top: 15px; padding: 13px 16px; color: #5d4a17; background: #fff9e9; border: 1px solid #ecdcae; border-radius: 12px; font-size: .75rem; }
.admin-notice strong { color: var(--navy-900); }
.row-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; }
.text-button { padding: 4px 2px; color: var(--navy-700); background: transparent; border: 0; font-size: .7rem; font-weight: 820; text-decoration: underline; text-decoration-color: rgb(15 14 56 / 24%); text-underline-offset: 3px; white-space: nowrap; }
.text-button:hover { color: var(--navy-950); }
.text-button--success { color: #187044; }
.text-button--danger { color: #a2261e; }
.finance-amount { font-variant-numeric: tabular-nums; white-space: nowrap; }
.admin-readonly { color: var(--muted); background: #faf9f5; }
.admin-readonly p { margin: 0; font-size: .8rem; }

.analytics-filter { display: flex; align-items: end; gap: 10px; margin: -7px 0 18px; padding: 13px 15px; background: white; border: 1px solid var(--border); border-radius: 14px; }
.analytics-filter .form-field { min-width: 145px; }
.analytics-filter .form-field:nth-child(3) { min-width: 190px; }
.analytics-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 15px; margin-top: 15px; }
.demo-banner { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 18px; padding: 22px 24px; color: var(--navy-900); background: linear-gradient(115deg, var(--gold-100), #fff 64%); border: 1px solid var(--gold-200); border-radius: var(--radius-lg); }
.demo-banner h1 { margin: 5px 0 7px; color: var(--navy-950); font-family: var(--font-display); font-size: clamp(1.55rem, 3vw, 2.2rem); line-height: 1.05; }
.demo-banner p { max-width: 720px; margin: 0; color: var(--muted); font-size: .88rem; }
.demo-banner__tag { flex: 0 0 auto; padding: 7px 10px; color: var(--gold-700); background: rgb(255 255 255 / 80%); border: 1px solid var(--gold-400); border-radius: 999px; font-size: .66rem; font-weight: 850; letter-spacing: .08em; }
.demo-kpis { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; padding: 20px; }
.demo-kpis div { padding: 13px; background: var(--surface-soft); border: 1px solid var(--border); border-radius: 12px; }
.demo-kpis span { display: block; color: var(--muted); font-size: .72rem; }
.demo-kpis strong { display: block; margin-top: 2px; color: var(--navy-900); font-size: 1.05rem; }
.analytics-panel { min-width: 0; }
.analytics-panel--wide { grid-column: 1 / -1; }
.panel-heading { display: flex; align-items: start; justify-content: space-between; gap: 18px; margin-bottom: 19px; }
.panel-heading h2 { margin: 0; }
.panel-heading p { margin: 3px 0 0; color: var(--muted); font-size: .72rem; }
.bar-chart { display: grid; gap: 11px; }
.bar-chart__row { display: grid; grid-template-columns: minmax(90px, 150px) minmax(100px, 1fr) 90px; align-items: center; gap: 12px; min-height: 30px; }
.bar-chart__row > span { overflow: hidden; color: var(--navy-900); font-size: .73rem; font-weight: 760; text-overflow: ellipsis; white-space: nowrap; }
.bar-chart__row > strong { color: var(--navy-800); font-size: .72rem; text-align: right; font-variant-numeric: tabular-nums; }
.bar-chart__track { height: 10px; overflow: hidden; background: #ece9e1; border-radius: 99px; }
.bar-chart__track i { height: 100%; display: block; background: linear-gradient(90deg, var(--gold-500), var(--gold-300)); border-radius: inherit; }
.chart-empty { min-height: 155px; display: grid; place-items: center; color: var(--muted); background: #faf9f5; border: 1px dashed var(--border-strong); border-radius: 12px; font-size: .78rem; text-align: center; }
.hour-heatmap { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 6px; }
.hour-heatmap > div { min-width: 0; display: grid; gap: 5px; text-align: center; }
.hour-heatmap i { aspect-ratio: 1; display: block; background: rgb(207 158 32 / var(--heat)); border: 1px solid rgb(170 124 15 / calc(var(--heat) + .05)); border-radius: 7px; }
.hour-heatmap span { color: var(--muted); font-size: .58rem; font-variant-numeric: tabular-nums; }
.rank-badge { width: 25px; height: 25px; display: grid; place-items: center; color: var(--navy-900); background: var(--gold-100); border-radius: 8px; font-size: .68rem; font-weight: 900; }

.team-summary { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 18px; padding: 16px 19px; color: white; background: var(--navy-900); border-radius: 15px; }
.team-summary div { display: flex; align-items: baseline; gap: 8px; }
.team-summary strong { color: var(--gold-300); font-size: 1.7rem; }
.team-summary span { font-size: .8rem; font-weight: 780; }
.team-summary p { margin: 0; color: rgb(255 255 255 / 66%); font-size: .73rem; text-align: right; }
.team-list { display: grid; }
.team-member { display: grid; grid-template-columns: 42px minmax(180px, 1.35fr) minmax(120px, .7fr) minmax(110px, .65fr) auto auto; align-items: center; gap: 14px; min-height: 76px; padding: 12px 18px; border-bottom: 1px solid var(--border); }
.team-member:last-child { border-bottom: 0; }
.team-member.is-inactive { opacity: .64; background: #faf9f5; }
.team-avatar { width: 39px; height: 39px; display: grid; place-items: center; color: var(--navy-900); background: var(--gold-200); border-radius: 12px; font-family: var(--font-display); font-size: 1.15rem; font-weight: 900; }
.team-member__identity strong, .team-member__role strong, .team-member__access strong { display: block; color: var(--navy-900); font-size: .78rem; }
.team-member__identity span, .team-member small { color: var(--muted); font-size: .67rem; }
.permissions-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 26px 0 12px; }
.permissions-heading h3 { margin: 0; color: var(--navy-900); font-size: 1rem; }
.permissions-heading p { margin: 2px 0 0; color: var(--muted); font-size: .72rem; }
.permission-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.permission-group { min-width: 0; padding: 13px; border: 1px solid var(--border); border-radius: 12px; }
.permission-group legend { padding: 0 6px; color: var(--gold-700); font-size: .66rem; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.permission-option { display: grid; grid-template-columns: 18px 1fr; align-items: start; gap: 9px; padding: 7px 4px; cursor: pointer; }
.permission-option input { margin-top: 2px; accent-color: var(--navy-800); }
.permission-option strong, .permission-option small { display: block; }
.permission-option strong { color: var(--navy-900); font-size: .72rem; }
.permission-option small { color: var(--muted); font-size: .64rem; }
.active-check { display: grid; grid-template-columns: 20px 1fr; align-items: start; gap: 10px; margin-top: 16px; padding: 14px; background: var(--gold-100); border: 1px solid var(--gold-200); border-radius: 12px; }
.active-check input { margin-top: 3px; accent-color: var(--navy-800); }
.active-check strong, .active-check small { display: block; }
.active-check strong { color: var(--navy-900); font-size: .78rem; }
.active-check small { color: var(--muted); font-size: .68rem; }

.product-detail__grid { display: grid; grid-template-columns: minmax(360px, .9fr) minmax(0, 1.1fr); align-items: center; gap: clamp(40px, 7vw, 90px); margin-top: 34px; }
.product-detail__media { min-height: 500px; display: grid; place-items: center; overflow: hidden; padding: 46px; background: linear-gradient(145deg, #fff, var(--gold-100)); border: 1px solid var(--gold-200); border-radius: 30px; box-shadow: var(--shadow-card); }
.product-detail__media img { width: 100%; height: 100%; max-height: 450px; object-fit: contain; mix-blend-mode: multiply; }
.product-detail__media .product-placeholder { max-width: 330px; }
.product-detail__copy { max-width: 660px; }
.product-detail__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 14px; margin: 28px 0 18px; }
.product-detail__price del { width: 100%; color: var(--muted); }
.product-detail__price strong { color: var(--navy-900); font-size: clamp(2rem, 4vw, 3rem); line-height: 1; }
.product-detail__price small { color: var(--muted); }
.product-detail__copy .product-card__action { max-width: 360px; }
.form-grid--spaced, .form-field--spaced { margin-top: 17px; }
.receipt-history-title { font-size: 1.8rem; }
.receipt-note { margin-top: 16px; font-size: .76rem; }
.cart-items { display: grid; gap: 12px; }
.cart-item { position: relative; }
.account-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 18px; }
.legal-copy { max-width: 920px; }
.legal-copy .form-card { margin-top: 30px; }
.legal-copy .form-card h2:not(:first-child) { margin-top: 28px; }
.admin-logout { margin-top: 13px; color: white; border-color: rgb(255 255 255 / 18%); }
.admin-auth { background: radial-gradient(circle at 18% 18%, var(--gold-100), transparent 42%), var(--navy-950); }
.admin-auth .auth-card { border-color: rgb(255 255 255 / 22%); }
.edit-catalog-grid { display: grid; gap: 8px; margin-top: 20px; }
.edit-product-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 11px 12px; border: 1px solid var(--border); border-radius: 12px; }
.edit-product-row:hover { background: var(--gold-100); border-color: var(--gold-200); }
.edit-details { margin-top: 18px; }
.edit-fieldset { min-width: 0; margin-top: 22px; padding: 0; border: 0; }
.edit-fieldset legend { margin-bottom: 10px; color: var(--navy-900); font-size: .86rem; font-weight: 800; }
.edit-locked-notice { margin-bottom: 20px; border-color: var(--gold-300); background: var(--gold-100); }
.review-block--total { color: white; background: var(--navy-900); border-color: var(--navy-900); }
.review-block--total h3 { color: var(--gold-200); }
.review-block--total p { color: white; font-size: .95rem; font-weight: 750; }
.metric-card--accent small { color: rgb(255 255 255 / 68%); }
.quantity-stepper strong { text-align: center; color: var(--navy-900); font-size: .95rem; }
.checkout-step[hidden], [data-company-fields][hidden], [data-address-fields][hidden] { display: none !important; }
.is-admin .cart-dock { display: none !important; }

.cart-dock { position: fixed; z-index: 50; right: 18px; bottom: max(18px, env(safe-area-inset-bottom)); width: auto; }
.cart-dock a { display: flex; flex-direction: column; align-items: center; gap: 5px; color: var(--navy-900); }
.cart-dock__icon { position: relative; width: 54px; height: 54px; display: grid; place-items: center; color: var(--navy-900); background: rgb(255 255 255 / 94%); border: 1px solid var(--gold-400); border-radius: 50%; box-shadow: 0 12px 28px rgb(15 14 56 / 20%); font-size: 1.45rem; }
.cart-dock__label { display: grid; gap: 1px; min-width: 70px; padding: 4px 8px; background: rgb(255 255 255 / 94%); border: 1px solid rgb(222 219 209 / 78%); border-radius: 9px; box-shadow: 0 6px 16px rgb(15 14 56 / 12%); text-align: center; }
.cart-dock b { display: block; color: var(--navy-900); font-size: .68rem; line-height: 1.1; }
.cart-dock strong { color: var(--gold-700); font-size: .72rem; font-variant-numeric: tabular-nums; line-height: 1.1; }
.cart-dock__icon.is-bouncing { animation: cart-bounce .58s cubic-bezier(.2,.8,.3,1); }
@keyframes cart-bounce { 0%, 100% { transform: scale(1); } 35% { transform: scale(1.18) rotate(-6deg); } 68% { transform: scale(.94) rotate(4deg); } }
.cart-fly-item { position: fixed; z-index: 1100; width: 46px; height: 46px; overflow: hidden; display: grid; place-items: center; padding: 5px; pointer-events: none; background: var(--surface); border: 2px solid var(--gold-400); border-radius: 50%; box-shadow: 0 10px 26px rgb(15 14 56 / 26%); opacity: 1; transition: transform .58s cubic-bezier(.2,.82,.28,1), opacity .58s ease; }
.cart-fly-item img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.toast-region { position: fixed; z-index: 1000; right: 20px; bottom: 22px; width: min(calc(100% - 40px), 390px); display: grid; gap: 9px; }
.toast { display: grid; grid-template-columns: 1fr auto; gap: 18px; padding: 14px 16px; color: white; background: var(--navy-950); border-left: 4px solid var(--gold-400); border-radius: 12px; box-shadow: var(--shadow-float); animation: toast-in .22s ease both; }
.toast--error { border-left-color: #f3645a; }
.toast button { color: var(--gold-200); background: transparent; border: 0; font-size: .78rem; font-weight: 850; }
@keyframes toast-in { from { opacity: 0; transform: translateY(10px); } }
.modal-root:not(:empty) { position: fixed; z-index: 900; inset: 0; display: grid; place-items: center; padding: 20px; background: rgb(15 14 56 / 62%); backdrop-filter: blur(6px); }
.modal { width: min(100%, 630px); max-height: min(88vh, 850px); overflow: auto; background: var(--surface); border: 1px solid rgb(255 255 255 / 40%); border-radius: 22px; box-shadow: 0 30px 80px rgb(0 0 0 / 33%); }
.modal--wide { width: min(100%, 920px); }
.modal__header { position: sticky; z-index: 2; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 22px; background: var(--surface); border-bottom: 1px solid var(--border); }
.modal__header h2 { margin: 0; color: var(--navy-900); font-family: var(--font-display); font-size: 1.55rem; }
.modal__close { width: 38px; height: 38px; border: 0; border-radius: 10px; background: var(--ivory-200); font-size: 1.2rem; }
.modal__body { padding: 22px; }
.modal__actions { display: flex; justify-content: flex-end; gap: 10px; padding: 17px 22px; border-top: 1px solid var(--border); }
.page-loader { min-height: 55vh; display: grid; place-items: center; align-content: center; gap: 4px; color: var(--muted); }
.loader-brand { color: var(--navy-900); font-family: var(--font-display); font-size: 2.2rem; font-weight: 800; animation: breathe 1.2s ease-in-out infinite alternate; }
@keyframes breathe { to { opacity: .45; transform: translateY(-2px); } }
.skeleton { position: relative; overflow: hidden; background: #eae7df; }
.skeleton::after { content: ""; position: absolute; inset: 0; transform: translateX(-100%); background: linear-gradient(90deg, transparent, rgb(255 255 255 / 55%), transparent); animation: shimmer 1.4s infinite; }
@keyframes shimmer { to { transform: translateX(100%); } }
.noscript { padding: 18px; color: white; background: var(--danger); text-align: center; }

.site-footer { position: relative; overflow: hidden; padding-top: 90px; color: rgb(255 255 255 / 70%); background: var(--navy-950); }
.site-footer__wave { position: absolute; top: -45px; left: -5%; width: 110%; height: 92px; background: var(--gold-400); border-radius: 0 0 50% 50% / 0 0 40% 40%; transform: rotate(.7deg); box-shadow: 0 11px 0 var(--ivory-100); }
.site-footer__grid { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 46px; padding-bottom: 48px; }
.footer-brand { color: white; font-family: var(--font-display); font-size: 1.8rem; font-weight: 800; }
.footer-brand span { color: var(--gold-400); font-family: var(--font-ui); font-size: .72rem; letter-spacing: .13em; text-transform: uppercase; }
.site-footer h2 { color: var(--gold-200); font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; }
.site-footer p { max-width: 330px; font-size: .84rem; }
.site-footer a { display: block; width: fit-content; margin: 8px 0; font-size: .84rem; }
.site-footer a:hover { color: var(--gold-200); }
.site-footer__bottom { min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid rgb(255 255 255 / 10%); font-size: .72rem; }

@media (min-width: 1500px) {
    .product-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

@media (max-width: 1180px) {
    .site-header__main { grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; }
    .mode-switch { position: static; transform: none; box-shadow: none; }
    .header-actions .mode-switch { display: inline-flex; }
    .hero__inner { gap: 32px; }
    .catalog-shell { grid-template-columns: 1fr; }
    .filters { position: fixed; z-index: 300; inset: auto 0 0; max-height: 85vh; overflow: auto; display: none; border-radius: 24px 24px 0 0; box-shadow: 0 -20px 60px rgb(15 14 56 / 25%); }
    .filters.is-open { display: grid; }
    .filters .filter-close { display: block; }
    .filter-toggle { display: inline-flex; }
    .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .metric-grid { grid-template-columns: repeat(2, 1fr); }
    .admin-shortcuts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .team-member { grid-template-columns: 42px minmax(180px, 1.2fr) minmax(110px, .7fr) auto auto; }
    .team-member__access { display: none; }
}

@media (max-width: 900px) {
    :root { --header-height: 155px; }
    .topbar__message { display: none; }
    .site-header { position: sticky; top: 0; }
    .category-nav { max-height: 0; overflow: hidden; transition: max-height .2s ease; border-top: 0; }
    .category-nav.is-expanded { max-height: 260px; border-top: 1px solid var(--border); }
    .site-header__main { min-height: 108px; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-rows: 58px 50px; gap: 0 8px; padding-block: 0 7px; }
    .menu-toggle { grid-column: 1; grid-row: 1; width: 44px; padding: 0; justify-content: center; }
    .menu-toggle b { display: none; }
    .brand--carvalho { grid-column: 2; grid-row: 1; }
    .brand--carvalho .brand__mark { width: 42px; height: 42px; }
    .brand--carvalho strong { font-size: 1.06rem; }
    .brand--carvalho small { font-size: .5rem; }
    .header-search { grid-column: 1 / -1; grid-row: 2; width: 100%; height: 40px; }
    .header-actions { grid-column: 3; grid-row: 1; }
    .header-actions .header-action:not(.header-cart) { display: none; }
    .header-cart { display: grid !important; min-width: 42px; }
    .header-action span:nth-child(2) { display: none; }
    .hero__inner { grid-template-columns: 1fr; min-height: 0; padding-block: 52px 90px; }
    .hero__visual { min-height: 280px; }
    .hero-brand-card { width: 270px; }
    .trust-strip__inner { grid-template-columns: 1fr; }
    .trust-item + .trust-item { border-left: 0; border-top: 1px solid var(--border); }
    .category-showcase { grid-template-columns: repeat(2, 1fr); }
    .wholesale-block__inner { grid-template-columns: 1fr; gap: 28px; padding: 44px; }
    .cart-layout, .checkout-layout { grid-template-columns: 1fr; }
    .order-summary { position: static; }
    .order-receipt__body { grid-template-columns: 1fr; }
    .admin-shell { grid-template-columns: 78px minmax(0, 1fr); }
    .admin-sidebar { padding-inline: 12px; }
    .admin-brand { justify-content: center; padding-inline: 0; font-size: 0; }
    .admin-nav a { justify-content: center; padding: 0; font-size: 0; }
    .admin-nav a::before { font-size: 1rem; }
    .admin-user { text-align: center; padding-inline: 0; }
    .admin-user strong, .admin-user span { display: none; }
    .admin-detail-grid { grid-template-columns: 1fr; }
    .site-footer__grid { grid-template-columns: repeat(2, 1fr); }
    .catalog-toolbar { top: var(--header-height); }
    .product-detail__grid { grid-template-columns: 1fr; }
    .product-detail__media { min-height: 390px; }
    .account-grid { grid-template-columns: 1fr; }
    .analytics-grid { grid-template-columns: 1fr; }
    .analytics-panel--wide { grid-column: auto; }
    .team-member { grid-template-columns: 42px minmax(160px, 1fr) auto auto; }
    .team-member__role { display: none; }
    .catalog-hero--home .catalog-hero__inner { align-items: flex-start; flex-direction: column; gap: 20px; }
    .order-guide { width: 100%; grid-template-columns: repeat(3, 1fr); }
    .order-guide span { justify-content: center; }
    .marketplace-departments { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
    :root { --header-height: 147px; }
    .container { width: min(calc(100% - 24px), var(--container)); }
    .topbar__inner { min-height: 29px; }
    .topbar { font-size: .7rem; }
    .site-header__banner { height: 52px; }
    .site-header__banner-inner { min-height: 49px; gap: 8px; }
    .site-header__banner-inner img { width: 34px; height: 34px; }
    .site-header__banner-inner strong { font-size: 1.05rem; }
    .site-header__banner-inner small { margin-top: 2px; font-size: .51rem; }
    .site-header__banner-inner b { display: none; }
    .site-header__main { min-height: 52px; gap: 3px 7px; }
    .brand__mark { width: 41px; height: 41px; }
    .brand__mark img { width: 61px; height: 61px; }
    .brand strong { font-size: 1.18rem; }
    .brand small { font-size: .55rem; }
    .header-action { min-width: 45px; }
    .mode-switch button { min-width: 53px; padding-inline: 8px; font-size: .69rem; }
    .header-search { height: 40px; }
    .header-search input { padding-left: 32px; padding-right: 43px; font-size: .78rem; }
    .header-search::before { left: 11px; top: 8px; font-size: 1.1rem; }
    .header-search button { width: 34px; height: 32px; right: 4px; top: 4px; padding: 0; font-size: 0; }
    .header-search button::after { content: "→"; font-size: 1rem; }
    .category-nav__track { min-height: 43px; }
    .category-nav a { padding-inline: 11px; font-size: .76rem; }
    .page-section { padding-block: 52px; }
    .section-heading { align-items: flex-start; flex-direction: column; }
    .hero__inner { padding-block: 45px 82px; }
    .hero h1 { font-size: clamp(2.55rem, 12.5vw, 3.85rem); }
    .hero__copy p { font-size: .98rem; }
    .hero__actions .btn { flex: 1 1 100%; }
    .hero__visual { min-height: 245px; }
    .hero-brand-card { width: 215px; padding: 14px; border-radius: 22px; }
    .hero-brand-card img { border-radius: 14px; }
    .hero-mini-card { max-width: 180px; padding: 11px 13px; }
    .hero-mini-card--one { left: 4px; bottom: 8px; }
    .hero-mini-card--two { right: 2px; top: 2px; }
    .trust-strip__inner { transform: translateY(-16px); }
    .trust-item { min-height: 76px; padding: 14px 17px; }
    .category-showcase { grid-template-columns: 1fr 1fr; gap: 10px; }
    .category-tile { min-height: 150px; padding: 17px; }
    .category-tile strong { font-size: 1.35rem; }
    .category-tile::after { font-size: 5rem; }
    .wholesale-block__inner { padding: 34px 24px; }
    .how-grid { grid-template-columns: 1fr; gap: 0; }
    .catalog-hero { padding-block: 35px 24px; }
    .catalog-hero--home { padding-block: 24px 20px; }
    .catalog-hero--home h1 { font-size: clamp(2.05rem, 10vw, 2.75rem); }
    .catalog-hero__inner { align-items: flex-start; flex-direction: column; }
    .marketplace-home { padding-block: 22px 4px; }
    .marketplace-home__head { align-items: flex-start; flex-direction: column; gap: 8px; }
    .marketplace-departments { gap: 8px; }
    .market-department { min-height: 94px; padding: 10px; gap: 8px; }
    .market-department__icon { width: 44px; height: 44px; font-size: 1.45rem; }
    .market-department strong { font-size: .84rem; }
    .market-department small { font-size: .64rem; }
    .marketplace-promos { grid-template-columns: 1fr; gap: 8px; }
    .market-promo { min-height: 108px; padding: 18px; }
    .market-promo strong { font-size: 1.25rem; }
    .order-guide { gap: 2px; padding: 5px; border-radius: 14px; }
    .order-guide span { min-height: 54px; flex-direction: column; gap: 4px; padding: 6px 3px; font-size: .72rem; line-height: 1.15; text-align: center; }
    .order-guide b { width: 24px; height: 24px; font-size: .66rem; }
    .catalog-toolbar { top: var(--header-height); padding-block: 8px; }
    .catalog-toolbar__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; }
    .toolbar-actions { flex-wrap: nowrap; justify-content: flex-end; gap: 5px; }
    .result-summary { max-width: none; margin: 0; font-size: .74rem; line-height: 1.2; }
    .toolbar-actions .select { width: 118px; min-height: 36px; max-width: 118px; padding-inline: 8px 25px; font-size: .72rem; }
    .filter-toggle { min-height: 36px; padding-inline: 10px; font-size: .74rem; }
    .catalog-shell { padding-block: 18px 60px; }
    .filters { gap: 2px; padding: 14px 16px; }
    .filters h2 { margin-bottom: 4px; }
    .filter-group { padding-block: 8px; }
    .filter-group h3 { margin-bottom: 5px; }
    .filter-option { min-height: 30px; padding-inline: 4px; font-size: .76rem; }
    .filter-option input { width: 15px; height: 15px; }
    .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .product-card__media { padding: 8px; }
    .product-card__body { padding: 12px; }
    .product-card h3 { min-height: 2.65em; font-size: .82rem; }
    .product-card__package { font-size: .68rem; }
    .price-block strong { font-size: 1.08rem; }
    .product-placeholder { font-size: 2.1rem; }
    .badge { min-height: 22px; padding-inline: 7px; font-size: .6rem; }
    .cart-page, .checkout-page, .order-page, .account-page { padding-block: 32px 68px; }
    .cart-item { grid-template-columns: 74px minmax(0, 1fr) auto; gap: 11px; padding: 12px; }
    .cart-item__media { width: 74px; height: 74px; }
    .cart-item .quantity-stepper { grid-column: 2 / -1; max-width: 160px; }
    .cart-item__price { min-width: 0; grid-column: 3; grid-row: 1; }
    .cart-item .remove-button { position: absolute; right: 13px; margin-top: 72px; }
    .form-card { padding: 20px 16px; }
    .form-grid, .selection-grid { grid-template-columns: 1fr; }
    .form-field--full { grid-column: auto; }
    .checkout-progress { overflow-x: auto; grid-template-columns: repeat(4, minmax(130px, 1fr)); }
    .form-actions { position: sticky; z-index: 10; bottom: 0; margin-inline: -16px; padding: 12px 16px max(12px, env(safe-area-inset-bottom)); background: rgb(255 255 255 / 96%); border-top: 1px solid var(--border); }
    .order-receipt__header { align-items: flex-start; flex-direction: column; padding: 22px; }
    .order-receipt__body { padding: 19px; }
    .receipt-actions .btn { flex: 1 1 100%; }
    .auth-card { padding: 25px 19px; }
    .admin-shell { display: block; }
    .admin-sidebar { position: fixed; z-index: 100; inset: auto 0 0; width: auto; height: 64px; flex-direction: row; align-items: center; padding: 7px 10px max(7px, env(safe-area-inset-bottom)); box-shadow: 0 -8px 26px rgb(15 14 56 / 18%); }
    .admin-brand, .admin-user { display: none; }
    .admin-nav { width: 100%; display: grid; grid-template-columns: repeat(auto-fit, minmax(48px, 1fr)); gap: 2px; }
    .admin-nav a { min-height: 48px; }
    .admin-nav a.is-active::after { inset: auto 9px -7px; width: auto; height: 3px; }
    .admin-topbar { min-height: 60px; padding-inline: 16px; }
    .admin-content { padding: 22px 13px 90px; }
    .admin-heading { align-items: flex-start; flex-direction: column; }
    .metric-grid { grid-template-columns: 1fr 1fr; gap: 9px; }
    .metric-card { min-height: 116px; padding: 15px; }
    .metric-card strong { font-size: 1.55rem; }
    .admin-card { border-radius: 13px; }
    .admin-card__header { align-items: flex-start; flex-direction: column; }
    .admin-toolbar { width: 100%; }
    .admin-toolbar .input { width: 100%; }
    .admin-form-grid { grid-template-columns: 1fr; }
    .admin-tabs { width: 100%; overflow-x: auto; }
    .admin-tabs a { flex: 1 0 auto; justify-content: center; }
    .admin-shortcuts { grid-template-columns: 1fr 1fr; }
    .admin-topbar__actions { gap: 4px; }
    .admin-utility-link { width: 34px; height: 34px; display: grid; place-items: center; padding: 0; font-size: 0; }
    .admin-utility-link::before { content: attr(data-icon); color: var(--navy-800); font-size: .9rem; }
    .analytics-filter { display: grid; grid-template-columns: 1fr 1fr; align-items: end; }
    .analytics-filter .form-field, .analytics-filter .form-field:nth-child(3) { min-width: 0; }
    .analytics-filter .form-field:nth-child(3), .analytics-filter .btn { grid-column: 1 / -1; }
    .bar-chart__row { grid-template-columns: 82px minmax(85px, 1fr) 75px; gap: 8px; }
    .hour-heatmap { grid-template-columns: repeat(8, minmax(0, 1fr)); }
    .team-summary { grid-template-columns: 1fr; gap: 2px; }
    .team-summary p { text-align: left; }
    .team-member { grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; }
    .team-member__role, .team-member__access { display: none; }
    .team-member > .stock-state { grid-column: 2; width: fit-content; }
    .team-member .row-actions { grid-column: 3; grid-row: 1 / 3; align-items: flex-end; flex-direction: column; }
    .permission-grid { grid-template-columns: 1fr; }
    .admin-notice { grid-template-columns: 1fr; }
    .site-footer { padding-top: 74px; }
    .site-footer__grid { grid-template-columns: 1fr; gap: 25px; }
    .site-footer__bottom { align-items: flex-start; flex-direction: column; justify-content: center; padding-block: 18px; }
    .cart-dock { right: 12px; bottom: max(77px, calc(env(safe-area-inset-bottom) + 64px)); }
    body:not(.is-admin) .cart-dock { bottom: max(13px, env(safe-area-inset-bottom)); }
    .toast-region { right: 12px; bottom: 86px; width: calc(100% - 24px); }
    .product-detail__media { min-height: 300px; padding: 24px; border-radius: 20px; }
    .product-detail__copy .product-card__action { max-width: none; }
    .edit-product-row { align-items: flex-start; }
}

@media (max-width: 480px) {
    .brand:not(.brand--text) > span:last-child { display: none; }
    .demo-banner { padding: 17px; flex-direction: column; }
    .demo-kpis { padding: 14px; gap: 8px; }
    .admin-shortcuts { grid-template-columns: 1fr; }
    .bar-chart__row { grid-template-columns: 72px minmax(70px, 1fr) 68px; }
    .hour-heatmap { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .permissions-heading { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 390px) {
    .product-grid { grid-template-columns: 1fr; }
    .product-card { display: grid; grid-template-columns: 132px minmax(0, 1fr); }
    .product-card__media { aspect-ratio: auto; min-height: 200px; }
    .product-card h3 { min-height: auto; }
    .category-showcase { grid-template-columns: 1fr; }
}

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

@media print {
    .topbar, .site-header, .site-footer, .cart-dock, .receipt-actions, .admin-sidebar, .admin-topbar { display: none !important; }
    body { background: white; }
    .order-receipt { box-shadow: none; }
}

/* Carvalho storefront v2 — supermarket campaign layout */
body:not(.is-admin) { background: #f5f6f8; }
body:not(.is-admin) .topbar { color: #536071; background: #fff; }
body:not(.is-admin) .topbar__inner { min-height: 34px; font-size: .73rem; }
body:not(.is-admin) .topbar__message { color: #263449; font-weight: 700; }
body:not(.is-admin) .topbar__links { display: flex; gap: 20px; font-weight: 750; }
body:not(.is-admin) .site-header { position: relative; z-index: 80; color: #fff; background: #071a4a; box-shadow: 0 3px 12px rgb(2 13 42 / 16%); }
body:not(.is-admin) .site-header__main { min-height: 92px; grid-template-columns: 136px 180px minmax(280px, 1fr) auto; gap: 18px; }
body:not(.is-admin) .menu-toggle { min-height: 46px; justify-content: center; gap: 9px; padding: 0 15px; border: 1px solid rgb(255 255 255 / 34%); border-radius: 5px; font-size: .79rem; }
body:not(.is-admin) .menu-toggle span { font-size: 1.4rem; line-height: 1; }
body:not(.is-admin) .brand--carvalho { min-width: 0; }
body:not(.is-admin) .brand--carvalho .brand__mark { width: 59px; height: 59px; flex: 0 0 auto; }
body:not(.is-admin) .brand--carvalho strong { font-family: var(--font-display); font-size: 1.42rem; line-height: 1; }
body:not(.is-admin) .brand--carvalho small { margin-top: 4px; font-size: .58rem; letter-spacing: .13em; }
body:not(.is-admin) .header-search { height: 48px; }
body:not(.is-admin) .header-search input { height: 48px; padding-inline: 46px 118px; border-radius: 5px; font-size: .9rem; }
body:not(.is-admin) .header-search::before { left: 17px; top: 11px; }
body:not(.is-admin) .header-search button { width: 104px; height: 40px; right: 4px; top: 4px; border-radius: 4px; }
body:not(.is-admin) .header-actions { gap: 8px; }
body:not(.is-admin) .header-actions .mode-switch { display: none !important; }
body:not(.is-admin) .header-action { min-width: 64px; min-height: 58px; padding-inline: 8px; border-radius: 5px; }
body:not(.is-admin) .header-cart { min-width: 78px; }
body:not(.is-admin) .category-nav { position: absolute; top: 100%; left: 0; right: 0; max-height: 0; overflow: hidden; background: #fff; border: 0; box-shadow: 0 18px 40px rgb(3 16 49 / 17%); transition: max-height .22s ease; }
body:not(.is-admin) .category-nav.is-expanded { max-height: 280px; border-top: 3px solid #f4c20d; }
body:not(.is-admin) .category-nav__track { min-height: 56px; padding-block: 5px; }

.is-storefront-home .catalog-hero--home,
.is-storefront-home .catalog-toolbar,
.is-storefront-home .catalog-shell { display: none !important; }
.is-storefront-home .page { background: #fff; }
.carvalho-showcase { background: #fff; }
.carvalho-carousel { position: relative; height: clamp(360px, 30vw, 440px); overflow: hidden; background: #05142f; }
.carvalho-slide { position: absolute; inset: 0; display: grid; align-items: center; opacity: 0; visibility: hidden; pointer-events: none; background-size: cover; background-position: center; transition: opacity .42s ease, visibility .42s ease; }
.carvalho-slide::after { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(90deg, rgb(2 13 37 / 91%) 0%, rgb(3 17 45 / 78%) 32%, rgb(3 16 42 / 25%) 58%, transparent 78%); }
.carvalho-slide.is-active { opacity: 1; visibility: visible; pointer-events: auto; }
.carvalho-slide--market { background-image: url('/assets/img/carvalho-campanha-mercado-v1.png'); }
.carvalho-slide--breakfast { background-image: url('/assets/img/carvalho-campanha-cafe-v1.png'); }
.carvalho-slide > .container { position: relative; z-index: 1; }
.carvalho-slide__copy { width: min(560px, 48vw); color: #fff; }
.carvalho-slide__copy > span { display: inline-flex; align-items: center; min-height: 28px; margin-bottom: 14px; padding: 0 11px; color: #071a4a; background: #f4c20d; border-radius: 2px; font-size: .7rem; font-weight: 900; letter-spacing: .14em; }
.carvalho-slide__copy h1,
.carvalho-slide__copy h2 { max-width: 550px; margin: 0 0 14px; color: #fff; font-family: var(--font-display); font-size: clamp(2.75rem, 4.25vw, 4.2rem); line-height: .98; letter-spacing: -.035em; text-wrap: balance; }
.carvalho-slide__copy p { max-width: 510px; margin: 0 0 24px; color: rgb(255 255 255 / 82%); font-size: 1rem; line-height: 1.55; }
.carvalho-slide__copy a { min-height: 48px; display: inline-flex; align-items: center; gap: 28px; padding: 0 20px; color: #071a4a; background: #f4c20d; border-radius: 4px; font-size: .86rem; font-weight: 900; }
.carvalho-slide__copy a:hover { background: #ffd433; transform: translateY(-1px); }
.carvalho-carousel__arrow { position: absolute; z-index: 5; top: 50%; width: 44px; height: 54px; margin-top: -27px; display: grid; place-items: center; color: #071a4a; background: rgb(255 255 255 / 92%); border: 0; border-radius: 4px; box-shadow: 0 8px 22px rgb(0 0 0 / 18%); font-size: 2rem; }
.carvalho-carousel__arrow:hover { background: #f4c20d; }
.carvalho-carousel__arrow--prev { left: 18px; }
.carvalho-carousel__arrow--next { right: 18px; }
.carvalho-carousel__dots { position: absolute; z-index: 6; left: 50%; bottom: 16px; display: flex; gap: 8px; transform: translateX(-50%); }
.carvalho-carousel__dots button { width: 9px; height: 9px; padding: 0; background: rgb(255 255 255 / 65%); border: 0; border-radius: 99px; transition: width .18s ease, background .18s ease; }
.carvalho-carousel__dots button.is-active { width: 27px; background: #f4c20d; }
.carvalho-showcase .storefront-services { position: relative; z-index: 4; margin: -1px 0 0; border: 0; border-radius: 0; box-shadow: 0 7px 22px rgb(8 25 57 / 9%); }
.carvalho-showcase .storefront-services > div { min-height: 83px; padding-inline: 32px; }
.carvalho-showcase .storefront-services b { width: 42px; height: 42px; color: #071a4a; background: #fff6c9; font-size: 1.18rem; }
.carvalho-showcase .storefront-services strong { font-size: .9rem; }
.carvalho-showcase .storefront-services small { font-size: .72rem; }

.marketplace-home--photo { padding: 54px 0 42px; background: #fff; }
.marketplace-home--photo .marketplace-home__head { margin-bottom: 24px; }
.marketplace-home--photo .marketplace-home__head h2,
.home-shelf__head h2 { font-family: var(--font-ui); font-size: clamp(1.75rem, 2.6vw, 2.35rem); font-weight: 850; letter-spacing: -.035em; }
.marketplace-home--photo .marketplace-departments { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.marketplace-home--photo .market-department { position: relative; min-height: 236px; overflow: hidden; display: block; padding: 0; background: #f4f5f7; border: 1px solid #e1e5eb; border-radius: 5px; box-shadow: none; isolation: isolate; }
.marketplace-home--photo .market-department::before { content: ""; position: absolute; inset: 0; z-index: -2; background-repeat: no-repeat; background-size: cover; background-position: center; transition: transform .35s ease; }
.marketplace-home--photo .market-department::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgb(255 255 255 / 92%) 0%, rgb(255 255 255 / 54%) 38%, rgb(255 255 255 / 4%) 72%); }
.marketplace-home--photo .market-department:hover { transform: translateY(-3px); box-shadow: 0 14px 28px rgb(7 26 74 / 13%); }
.marketplace-home--photo .market-department:hover::before { transform: scale(1.035); }
.market-department--meats::before { background-image: url('/assets/img/products-demo/carvalho-demo-157490.jpg'); background-size: 76% !important; background-position: 92% 86% !important; background-color: #f4f3ef; }
.market-department--cold-cuts::before { background-image: url('/assets/img/products-demo/carvalho-demo-100556.jpg'); background-size: 74% !important; background-position: 91% 85% !important; background-color: #f5f2e9; }
.market-department--produce::before { background-image: url('/assets/img/products-demo/carvalho-demo-19194.jpg'); background-size: 76% !important; background-position: 92% 85% !important; background-color: #eef5e9; }
.market-department--bakery::before { background-image: url('/assets/img/products-demo/carvalho-demo-56440.jpg'); background-size: 77% !important; background-position: 92% 84% !important; background-color: #fbf4e5; }
.market-department__copy { position: relative; z-index: 1; width: 100%; display: grid !important; gap: 3px !important; padding: 22px !important; }
.marketplace-home--photo .market-department strong { color: #071a4a; font-size: 1.32rem; font-weight: 900; }
.marketplace-home--photo .market-department small { color: #47576b; font-size: .78rem; }
.marketplace-home--photo .market-department b { width: fit-content; margin-top: 9px; color: #071a4a; font-size: .73rem; font-weight: 850; }

.pickup-campaign { padding-bottom: 40px; background: #fff; }
.pickup-campaign__inner { min-height: 150px; display: grid; grid-template-columns: 1.05fr 1fr auto; align-items: center; gap: 32px; padding: 25px 35px; overflow: hidden; color: #fff; background: linear-gradient(120deg, #071a4a 0%, #0c337a 72%, #c51222 72%); border-radius: 5px; }
.pickup-campaign__inner > div > span { color: #f4c20d; font-size: .68rem; font-weight: 900; letter-spacing: .15em; }
.pickup-campaign h2 { margin: 5px 0 4px; color: #fff; font-size: 1.45rem; line-height: 1.1; }
.pickup-campaign p { color: rgb(255 255 255 / 75%); font-size: .8rem; }
.pickup-campaign ol { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin: 0; padding: 0; list-style: none; }
.pickup-campaign li { display: flex; align-items: center; gap: 8px; color: rgb(255 255 255 / 88%); font-size: .72rem; font-weight: 750; }
.pickup-campaign li b { width: 31px; height: 31px; flex: 0 0 auto; display: grid; place-items: center; color: #071a4a; background: #f4c20d; border-radius: 50%; }
.pickup-campaign__inner > a { min-height: 46px; display: inline-flex; align-items: center; gap: 18px; padding: 0 17px; color: #071a4a; background: #f4c20d; border-radius: 4px; font-size: .77rem; font-weight: 900; white-space: nowrap; }

.home-shelf { padding: 46px 0 4px; background: #f5f6f8; }
.pickup-campaign + .home-shelf { padding-top: 50px; }
.home-shelf + .home-shelf { padding: 38px 0 58px; }
.home-shelf__head { align-items: center; margin-bottom: 22px; }
.home-shelf__actions { display: flex; align-items: center; gap: 7px; }
.home-shelf__actions > button { width: 38px; height: 38px; display: grid; place-items: center; color: #071a4a; background: #fff; border: 1px solid #dce1e8; border-radius: 50%; font-size: 1rem; }
.home-shelf__actions > button:hover { color: #fff; background: #071a4a; border-color: #071a4a; }
.home-shelf__actions .text-link { min-height: 38px; display: inline-flex; align-items: center; margin-left: 6px; padding: 0 13px; color: #071a4a; background: #fff; border: 1px solid #dce1e8; border-radius: 4px; font-size: .74rem; }
.home-shelf__track { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(190px, calc((100% - 70px) / 6)); gap: 14px; overflow-x: auto; overscroll-behavior-inline: contain; padding: 2px 2px 14px; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: #bcc5d2 transparent; }
.home-shelf__track .product-card { scroll-snap-align: start; border-radius: 5px; box-shadow: 0 2px 8px rgb(7 26 74 / 6%); }
.home-shelf__track .product-card:hover { border-color: #cfd6e1; box-shadow: 0 10px 24px rgb(7 26 74 / 12%); }
.home-shelf__track .product-card__media { aspect-ratio: 1.12; padding: 12px; background: #fff; }
.home-shelf__track .product-card__body { padding: 13px; }
.home-shelf__track .product-card h3 { min-height: 2.7em; font-size: .84rem; }
.home-shelf__track .product-card__package { margin-bottom: 8px; font-size: .68rem; }
.home-shelf__track .price-block { min-height: 51px; }
.home-shelf__track .price-block strong { font-size: 1.22rem; }
.home-shelf__track .add-button { min-height: 40px; color: #071a4a; background: #f4c20d; border-radius: 4px; font-size: .78rem; }
.home-shelf__track .add-button:hover { background: #ffd433; }
.home-shelf__track .quantity-stepper { min-height: 40px; border-radius: 4px; }

@media (max-width: 1180px) {
  body:not(.is-admin) .site-header__main { grid-template-columns: 52px 166px minmax(240px, 1fr) auto; gap: 12px; }
  body:not(.is-admin) .menu-toggle { width: 48px; padding: 0; }
  body:not(.is-admin) .menu-toggle b { display: none; }
  .home-shelf__track { grid-auto-columns: minmax(190px, calc((100% - 42px) / 4)); }
  .pickup-campaign__inner { grid-template-columns: 1fr 1.15fr; }
  .pickup-campaign__inner > a { grid-column: 1 / -1; width: fit-content; }
}

@media (max-width: 900px) {
  :root { --header-height: 112px; }
  body:not(.is-admin) .site-header { position: sticky; top: 0; }
  body:not(.is-admin) .site-header__main { min-height: 112px; grid-template-columns: 48px minmax(0, 1fr) 56px; grid-template-rows: 60px 45px; gap: 0 7px; padding-block: 0 7px; }
  body:not(.is-admin) .menu-toggle { grid-column: 1; grid-row: 1; }
  body:not(.is-admin) .brand--carvalho { grid-column: 2; grid-row: 1; }
  body:not(.is-admin) .brand--carvalho .brand__mark { width: 45px; height: 45px; }
  body:not(.is-admin) .brand--carvalho strong { font-size: 1.1rem; }
  body:not(.is-admin) .header-search { grid-column: 1 / -1; grid-row: 2; height: 42px; }
  body:not(.is-admin) .header-search input { height: 42px; padding-inline: 40px 48px; font-size: .8rem; }
  body:not(.is-admin) .header-search::before { left: 13px; top: 8px; }
  body:not(.is-admin) .header-search button { width: 36px; height: 34px; right: 4px; top: 4px; padding: 0; font-size: 0; }
  body:not(.is-admin) .header-search button::after { content: "→"; font-size: 1rem; }
  body:not(.is-admin) .header-actions { grid-column: 3; grid-row: 1; }
  body:not(.is-admin) .header-cart { min-width: 50px; }
  body:not(.is-admin) .category-nav { position: absolute; top: 100%; }
  .carvalho-carousel { height: 365px; }
  .carvalho-slide::after { background: linear-gradient(90deg, rgb(2 13 37 / 94%) 0%, rgb(3 17 45 / 77%) 55%, rgb(3 16 42 / 18%) 100%); }
  .carvalho-slide__copy { width: min(560px, 68vw); }
  .carvalho-carousel__arrow { width: 38px; height: 46px; }
  .marketplace-home--photo .marketplace-departments { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pickup-campaign__inner { grid-template-columns: 1fr; gap: 20px; background: linear-gradient(130deg, #071a4a 0%, #0c337a 86%, #c51222 86%); }
  .pickup-campaign__inner > a { grid-column: auto; }
  .home-shelf__track { grid-auto-columns: minmax(184px, calc((100% - 28px) / 3)); }
}

@media (max-width: 680px) {
  :root { --header-height: 106px; }
  body:not(.is-admin) .topbar { display: none; }
  body:not(.is-admin) .site-header__main { min-height: 106px; grid-template-rows: 56px 43px; }
  body:not(.is-admin) .brand--carvalho { gap: 6px; }
  body:not(.is-admin) .brand--carvalho .brand__mark { width: 41px; height: 41px; }
  body:not(.is-admin) .brand--carvalho strong { font-size: 1rem; }
  body:not(.is-admin) .brand--carvalho small { font-size: .46rem; }
  .carvalho-carousel { height: 335px; }
  .carvalho-slide { background-position: 62% center; }
  .carvalho-slide--breakfast { background-position: 66% center; }
  .carvalho-slide::after { background: linear-gradient(90deg, rgb(2 13 37 / 96%) 0%, rgb(3 17 45 / 84%) 56%, rgb(3 16 42 / 35%) 100%); }
  .carvalho-slide__copy { width: min(315px, 76vw); padding-left: 6px; }
  .carvalho-slide__copy > span { min-height: 24px; margin-bottom: 10px; padding-inline: 8px; font-size: .57rem; }
  .carvalho-slide__copy h1,
  .carvalho-slide__copy h2 { margin-bottom: 10px; font-size: clamp(2rem, 9vw, 2.6rem); }
  .carvalho-slide__copy p { margin-bottom: 17px; font-size: .76rem; line-height: 1.45; }
  .carvalho-slide__copy a { min-height: 42px; padding-inline: 15px; font-size: .74rem; }
  .carvalho-carousel__arrow { display: none; }
  .carvalho-carousel__dots { bottom: 11px; }
  .carvalho-showcase .storefront-services { grid-template-columns: repeat(3, 1fr); }
  .carvalho-showcase .storefront-services > div { min-height: 68px; justify-content: center; padding: 8px 5px; text-align: center; }
  .carvalho-showcase .storefront-services > div + div { border-top: 0; border-left: 1px solid #e6e9ef; }
  .carvalho-showcase .storefront-services b { width: 32px; height: 32px; flex: 0 0 auto; font-size: .9rem; }
  .carvalho-showcase .storefront-services small { display: none; }
  .carvalho-showcase .storefront-services strong { font-size: .62rem; line-height: 1.15; }
  .marketplace-home--photo { padding: 35px 0 26px; }
  .marketplace-home--photo .marketplace-home__head { align-items: flex-end; flex-direction: row; gap: 10px; margin-bottom: 16px; }
  .marketplace-home--photo .marketplace-home__head h2,
  .home-shelf__head h2 { font-size: 1.42rem; }
  .marketplace-home--photo .marketplace-home__head .text-link { max-width: 92px; font-size: .65rem; text-align: right; }
  .marketplace-home--photo .marketplace-departments { gap: 8px; }
  .marketplace-home--photo .market-department { min-height: 158px; }
  .market-department__copy { padding: 14px !important; }
  .marketplace-home--photo .market-department strong { font-size: 1rem; }
  .marketplace-home--photo .market-department small { font-size: .63rem; }
  .marketplace-home--photo .market-department b { display: none; }
  .pickup-campaign { padding-bottom: 28px; }
  .pickup-campaign__inner { padding: 22px 18px; }
  .pickup-campaign h2 { font-size: 1.25rem; }
  .pickup-campaign ol { gap: 7px; }
  .pickup-campaign li { align-items: flex-start; flex-direction: column; font-size: .59rem; line-height: 1.2; }
  .pickup-campaign__inner > a { min-height: 42px; font-size: .7rem; }
  .home-shelf { padding-top: 34px; }
  .home-shelf + .home-shelf { padding: 30px 0 44px; }
  .home-shelf__head { align-items: flex-end; flex-direction: row; gap: 8px; margin-bottom: 15px; }
  .home-shelf__head .section-kicker { font-size: .54rem; }
  .home-shelf__actions > button { display: none; }
  .home-shelf__actions .text-link { min-height: 32px; margin: 0; padding-inline: 9px; font-size: .64rem; }
  .home-shelf__track { width: calc(100% + 12px); grid-auto-columns: minmax(158px, 47%); gap: 9px; margin-right: -12px; padding-bottom: 10px; }
  .home-shelf__track .product-card__media { aspect-ratio: 1; padding: 8px; }
  .home-shelf__track .product-card__body { padding: 10px; }
  .home-shelf__track .product-card h3 { min-height: 2.65em; font-size: .74rem; }
  .home-shelf__track .product-card__category { font-size: .56rem; }
  .home-shelf__track .price-block strong { font-size: 1.05rem; }
  .home-shelf__track .add-button { min-height: 37px; font-size: .7rem; }
  .site-footer { padding-top: 64px; }
}

@media (max-width: 390px) {
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .product-grid .product-card,
  .home-shelf__track .product-card { display: flex; grid-template-columns: none; }
}
