/* Customer discovery and product decisions. These scopes leave Feed, Stories,
   navigation geometry and the role applications on their established styles. */
.lumi-discovery-directory,
.lumi-discovery-collection { color:var(--customer-text); }
.lumi-discovery-directory .lumi-shop-directory-header { padding-inline:16px; }
.lumi-discovery-directory :is(.lumi-shop-filter-action,.lumi-shop-location-action) { min-width:44px; min-height:44px; }
.lumi-discovery-directory .lumi-shop-filter-action > .lumi-shop-action-label { min-width:0; padding:0; background:transparent; color:inherit; font:inherit; }
.lumi-discovery-directory .lumi-shop-editorial-heading { padding-inline:16px; }
.lumi-discovery-directory .lumi-shop-curated-rail { padding-inline:16px; scroll-padding-inline:16px; }
.lumi-discovery-directory .lumi-shop-featured-body { padding:16px; }
.lumi-discovery-directory .lumi-shop-open-line { padding-top:13px; font-weight:600; }
.lumi-discovery-directory .lumi-shop-identity-name { letter-spacing:-.02em; }
.lumi-discovery-directory .lumi-shop-meta { gap:6px 12px; }
.lumi-discovery-section-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 16px 4px; }
.lumi-discovery-section-heading h2 { margin:0; font:650 calc(19px + var(--lumi-font-delta,0px))/1.25 var(--font-vi); letter-spacing:-.035em; }
.lumi-discovery-section-heading p { margin:5px 0 0; color:var(--customer-muted); font:400 calc(12px + var(--lumi-font-delta,0px))/1.5 var(--font-vi); }
.lumi-discovery-section-heading > span { flex:none; color:var(--customer-muted); font:500 13px/1 var(--font-vi); font-variant-numeric:tabular-nums; }
.lumi-discovery-directory .lumi-food-discovery-list.is-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 12px; padding:14px 16px 24px; }
.lumi-discovery-product-card .lumi-food-discovery-media { aspect-ratio:4 / 5; border-radius:14px; }
.lumi-discovery-product-card .lumi-food-discovery-copy { gap:3px; padding:9px 1px 0; }
.lumi-discovery-product-card .lumi-food-discovery-name { order:1; color:var(--customer-text); font-weight:600; line-height:1.4; letter-spacing:-.015em; }
.lumi-discovery-product-card .lumi-food-discovery-price { order:2; gap:4px 6px; }
.lumi-discovery-product-card .lumi-food-discovery-price strong { font-weight:650; font-variant-numeric:tabular-nums; }
.lumi-discovery-product-card .lumi-food-discovery-shop { order:3; text-transform:none; letter-spacing:0; font-weight:450; margin:0; }
.lumi-customer-column[data-font-size] .lumi-discovery-product-card .lumi-food-discovery-shop { font-size:calc(11px + var(--lumi-font-delta)) !important; }
.lumi-discovery-product-card .lumi-food-discovery-shop-name { width:100%; gap:4px; }
.lumi-discovery-product-card .lumi-food-discovery-meta { margin-top:0; }
.lumi-discovery-product-action { order:5; min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; margin-top:7px; padding:10px 12px; border:1px solid var(--customer-line); border-radius:11px; background:var(--customer-surface); color:var(--customer-text); font:550 calc(12px + var(--lumi-font-delta,0px))/1.35 var(--font-vi); text-align:left; transition:background 160ms ease,transform 160ms ease; }
.lumi-discovery-product-action > svg { flex:none; }
.lumi-discovery-directory .lumi-food-discovery-list.is-list { padding-inline:16px; }
.lumi-discovery-directory .lumi-food-discovery-list.is-list .lumi-food-discovery-copy { min-height:130px; padding-top:0; }
.lumi-discovery-directory .lumi-food-discovery-list.is-list .lumi-discovery-product-action { margin-top:5px; }

.lumi-collection-context { margin:0; padding:14px 16px 4px; color:var(--customer-muted); font:400 calc(12px + var(--lumi-font-delta,0px))/1.5 var(--font-vi); }
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"] { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 12px; padding:14px 16px 24px; }
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"] .lumi-favorite-profile-tile { overflow:visible; border:0; border-radius:0 !important; background:transparent; box-shadow:none; }
.lumi-discovery-collection .lumi-favorite-product-media { aspect-ratio:4 / 5; overflow:hidden; border-radius:10px; background:var(--customer-soft); }
.lumi-discovery-collection .lumi-favorite-product-copy { gap:3px; padding:9px 1px 0; border:0; }
.lumi-discovery-collection .lumi-favorite-product-copy > strong { order:1; font-weight:600; }
.lumi-discovery-collection .lumi-favorite-product-copy > span { order:2; font-size:calc(15px + var(--lumi-font-delta,0px)); font-weight:650; font-variant-numeric:tabular-nums; }
.lumi-discovery-collection .lumi-favorite-product-copy > small { order:3; }
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"].is-list { grid-template-columns:minmax(0,1fr); gap:0; }
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"].is-list .lumi-favorite-profile-tile { border-bottom:1px solid var(--customer-line); border-radius:0 !important; }
.lumi-discovery-collection .lumi-favorite-shop-list { padding-inline:16px; }
.lumi-discovery-collection .lumi-favorite-shop-card { margin:0; padding:14px 0; border-width:0 0 1px; border-radius:0; box-shadow:none; background:transparent; }

.lumi-discovery-feedback { display:flex; flex-direction:column; align-items:center; gap:0; padding:44px 24px 52px; text-align:center; }
.lumi-discovery-feedback .lumi-collection-state-icon { width:76px; height:76px; margin-bottom:18px; border:1px solid var(--customer-line); border-radius:24px; background:var(--customer-soft); color:var(--customer-accent); box-shadow:none; }
.lumi-discovery-feedback .lumi-collection-state-title { max-width:340px; margin:0 auto 9px; font:650 calc(20px + var(--lumi-font-delta,0px))/1.3 var(--font-vi); letter-spacing:-.025em; }
.lumi-discovery-feedback .lumi-collection-state-copy { max-width:320px; margin:0 auto; color:var(--customer-muted); font:400 calc(13px + var(--lumi-font-delta,0px))/1.6 var(--font-vi); }
.lumi-discovery-feedback-action { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:46px; max-width:100%; margin-top:22px; padding:12px 18px; border:1px solid var(--customer-line); border-radius:13px; background:var(--customer-primary-fill); color:var(--customer-primary-ink); font:600 calc(13px + var(--lumi-font-delta,0px))/1.35 var(--font-vi); transition:transform 160ms ease,opacity 160ms ease; }
.lumi-discovery-feedback-action svg { flex:none; }
.lumi-discovery-feedback.is-compact { flex-direction:row; align-items:center; flex-wrap:wrap; gap:10px 12px; margin:12px 16px; padding:14px; border:1px solid var(--customer-line); border-radius:14px; background:var(--customer-soft); text-align:left; }
.lumi-discovery-feedback.is-compact .lumi-collection-state-icon { width:34px; height:34px; flex:none; margin:0; border:0; border-radius:0; }
.lumi-discovery-feedback.is-compact > div { flex:1; min-width:140px; }
.lumi-discovery-feedback.is-compact .lumi-collection-state-title { max-width:none; margin:0 0 3px; font-size:calc(13px + var(--lumi-font-delta,0px)); letter-spacing:-.01em; }
.lumi-discovery-feedback.is-compact .lumi-collection-state-copy { max-width:none; margin:0; font-size:calc(11px + var(--lumi-font-delta,0px)); }
.lumi-discovery-feedback.is-compact .lumi-discovery-feedback-action { margin:0; min-height:44px; padding:9px 11px; font-size:12px; }
/* The skeleton has to be the same shape as what replaces it, or the grid
   visibly re-cuts itself the moment data lands. The tile carries its text on
   the picture now, so the placeholder lines under each block go with it. */
.lumi-discovery-loading { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; padding:12px 6px; }
.lumi-discovery-loading > div { min-width:0; }
.lumi-discovery-loading-media { aspect-ratio:3 / 4; width:100%; margin-bottom:0; border-radius:6px; }
.lumi-discovery-loading:not(.is-shops) > div > :not(.lumi-discovery-loading-media) { display:none; }
.lumi-discovery-loading.is-shops { grid-template-columns:minmax(0,1fr); }
.lumi-discovery-loading.is-shops > div { display:flex; align-items:center; gap:14px; }
.lumi-discovery-loading.is-shops .lumi-discovery-loading-media { width:64px; height:64px; flex:none; aspect-ratio:1; margin:0; border-radius:50%; }
.lumi-discovery-loading.is-shops > div > span { flex:1; }

.lumi-discovery-search-products { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 12px; padding:0 16px 24px; }
.lumi-discovery-search-products > button { display:grid; align-content:start; min-width:0; padding:0; border:0; border-radius:13px; background:transparent; color:var(--customer-text); text-align:left; }
.lumi-discovery-search-media { display:block; width:100%; aspect-ratio:4 / 5; overflow:hidden; border-radius:13px; background:var(--customer-soft); }
.lumi-discovery-search-media > :is(img,video,[role="img"]) { width:100% !important; height:100% !important; object-fit:cover !important; }
.lumi-discovery-search-copy { display:grid; align-content:start; gap:4px; padding:9px 1px 0; }
.lumi-discovery-search-copy > strong { display:-webkit-box; overflow:hidden; -webkit-line-clamp:2; -webkit-box-orient:vertical; font:600 calc(13px + var(--lumi-font-delta,0px))/1.4 var(--font-vi); }
.lumi-discovery-search-copy > span { font:650 calc(15px + var(--lumi-font-delta,0px))/1.3 var(--font-vi); font-variant-numeric:tabular-nums; }
.lumi-discovery-search-copy > small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--customer-muted); font:450 calc(11px + var(--lumi-font-delta,0px))/1.4 var(--font-vi); }

.lumi-commerce-product-gallery-actions { position:absolute; inset:12px 12px auto; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:12px; pointer-events:none; }
.lumi-commerce-product-gallery-actions button { display:grid; place-items:center; width:44px; height:44px; border:1px solid rgba(255,255,255,.26); border-radius:50%; background:rgba(22,24,30,.66); color:white; backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); pointer-events:auto; }
.lumi-commerce-product-title-row { display:flex; align-items:flex-start; gap:14px; padding-top:6px; }
.lumi-commerce-product-title-row h2 { flex:1; min-width:0; text-wrap:pretty; }
.lumi-product-favorite-action { flex:none; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-width:58px; min-height:58px; max-width:85px; padding:8px 3px; border:0; border-radius:12px; background:transparent; color:var(--customer-text); }
.lumi-product-favorite-action > span { font:450 calc(10px + var(--lumi-font-delta,0px))/1.3 var(--font-vi); }
.lumi-product-favorite-action:disabled { opacity:.45; }
.lumi-commerce-product-price { flex-wrap:wrap; font-variant-numeric:tabular-nums; }
.lumi-commerce-product-body .lumi-product-sheet-stats { margin-top:16px; padding-block:12px; border-top:1px solid var(--customer-line); border-bottom:1px solid var(--customer-line); }
.lumi-commerce-product-description { padding-bottom:2px; text-wrap:pretty; }
.lumi-commerce-product-checkout { flex:none; padding-bottom:max(16px,var(--lumi-safe-bottom,0px)) !important; }
.lumi-commerce-product-checkout > button { min-height:52px; min-width:0; gap:10px; border-radius:14px !important; }
.lumi-commerce-product-checkout > button > span { min-width:0; line-height:1.3; }
.lumi-commerce-product-checkout > button > span:last-child { flex:none; font-variant-numeric:tabular-nums; }
.lumi-commerce-product-checkout > div { flex:none; }
.lumi-commerce-product-checkout > div button { min-width:36px; min-height:44px; color:var(--customer-text); }
.lumi-commerce-product-checkout > div button:disabled { opacity:.35; }
.lumi-commerce-product-sheet :is(button,input):focus-visible,
.lumi-discovery-directory button:focus-visible,
.lumi-discovery-collection button:focus-visible,
.lumi-discovery-search-products button:focus-visible,
.lumi-discovery-feedback-action:focus-visible { outline:2px solid var(--customer-accent); outline-offset:3px; }
@media (hover:hover) {
  .lumi-discovery-product-action:hover,.lumi-product-favorite-action:hover { background:var(--customer-soft); }
  .lumi-discovery-feedback-action:hover { opacity:.86; }
}
.lumi-discovery-product-action:active,.lumi-discovery-feedback-action:active { transform:scale(.98); }
@media (max-width:370px) {
  .lumi-discovery-directory .lumi-food-discovery-list.is-grid,
  .lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"],
  .lumi-discovery-search-products { gap:18px 9px; padding-inline:12px; }
  .lumi-commerce-product-checkout { flex-wrap:wrap; }
  .lumi-commerce-product-checkout > button { padding-inline:12px !important; font-size:calc(12px + var(--lumi-font-delta,0px)) !important; }
}
@media (prefers-reduced-motion:reduce) {
  .lumi-discovery-product-action,.lumi-discovery-feedback-action { transition:none; transform:none; }
}

/* The marketplace has a seller identity, a real catalog and a clear next step. */
.lumi-discovery-directory .lumi-shop-directory-header { grid-template-columns:minmax(0,1fr); gap:12px; align-items:center; padding-block:calc(var(--lumi-safe-top,0px) + 18px) 12px; }
.lumi-discovery-directory .lumi-shop-directory-title-row { display:block; }
.lumi-discovery-eyebrow { display:block; margin-bottom:3px; color:var(--customer-muted); font-size:11px; font-weight:550; }
.lumi-discovery-directory .lumi-shop-directory-title-row h1 { font-size:calc(22px + var(--lumi-font-delta,0px)) !important; line-height:1.15; letter-spacing:-.035em; }
.lumi-discovery-directory .lumi-shop-directory-tools { box-sizing:border-box; width:100%; min-width:0; max-width:100%; display:grid; grid-template-columns:minmax(0,1fr) 44px auto; gap:6px; overflow:visible; }
.lumi-directory-search { display:flex; align-items:center; gap:7px; flex:1; min-width:60px; min-height:44px; padding:0 10px; border:1px solid var(--customer-line); border-radius:12px; color:var(--customer-muted); background:var(--customer-soft); }
.lumi-directory-search svg { flex:none; }
.lumi-directory-search input { width:100%; min-width:0; border:0; padding:10px 0; background:transparent; color:var(--customer-text); outline:0; font:400 calc(13px + var(--lumi-font-delta,0px))/1.4 var(--font-vi); }
.lumi-directory-search:focus-within { outline:2px solid var(--customer-accent); outline-offset:2px; }
.lumi-discovery-directory .lumi-shop-directory-tools .lumi-shop-location-action { width:44px; padding:0; flex:none; font-size:0; }
.lumi-discovery-directory .lumi-shop-directory-tools .lumi-layout-toggle { margin-left:0; flex:none; }
.lumi-discovery-directory .lumi-shop-directory-tools .lumi-shop-filter-action { flex:none; }
.lumi-discovery-directory .lumi-shop-editorial-intro { padding:0; margin:0; }
.lumi-discovery-directory .lumi-shop-kind-tabs { margin:0 16px; padding:4px; gap:4px; border:1px solid var(--customer-line); border-radius:14px; background:var(--customer-soft); }
.lumi-discovery-directory .lumi-shop-kind-tabs button { min-height:44px; border-radius:10px; font-weight:600; }
.lumi-discovery-directory .lumi-shop-kind-tabs button[aria-selected="true"] { background:var(--customer-surface); box-shadow:0 2px 6px #171b2610; }
.lumi-discovery-directory .lumi-shop-kind-tabs button::after { display:none; }
.lumi-discovery-directory .lumi-shop-editorial-heading { align-items:flex-start; padding-block:20px 12px; }
.lumi-shop-editorial-heading h2 { font-size:20px; letter-spacing:-.035em; }
.lumi-shop-editorial-heading p:not(.lumi-shop-editorial-count) { margin:6px 0 0; max-width:32ch; font-size:12px; line-height:1.5; color:var(--customer-muted); }
.lumi-discovery-directory :is(.lumi-shop-featured-card,.lumi-shop-row-card) { margin:0 16px 16px; border:1px solid var(--customer-line); border-radius:20px; background:var(--customer-surface); overflow:hidden; box-shadow:none; }
.lumi-discovery-directory .lumi-shop-list { padding:0; }
.lumi-discovery-directory .lumi-shop-featured-media { aspect-ratio:16/9; border-radius:0; }
.lumi-discovery-directory .lumi-shop-row-card > button { padding:16px; }
.lumi-shop-catalog-preview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:16px 0 12px; }
.lumi-shop-catalog-preview > span { display:block; min-width:0; text-align:left; }
.lumi-shop-catalog-preview > span > :first-child { display:block; width:100% !important; height:auto !important; aspect-ratio:4/5; object-fit:cover; overflow:hidden; border-radius:10px; background:var(--customer-soft); }
.lumi-shop-catalog-preview > span > span:last-child { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; margin-top:6px; font-size:11px; color:var(--customer-muted); }
.lumi-shop-catalog-preview[data-count="1"] { grid-template-columns:minmax(0,1fr); }
.lumi-shop-catalog-preview[data-count="1"] > span > :first-child { aspect-ratio:16/9; }
.lumi-shop-catalog-preview[data-count="2"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
.lumi-discovery-directory .lumi-shop-open-line { margin-top:12px; border-top:1px solid var(--customer-line); color:var(--customer-text); }
.lumi-discovery-product-author { display:flex; align-items:center; gap:6px; width:100%; min-height:44px; padding:5px 1px 9px; text-align:left; color:var(--customer-text); }
.lumi-discovery-product-author > span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; font-weight:550; }
.lumi-discovery-product-author > :not(span) { flex:none; }
.lumi-discovery-product-card .lumi-food-discovery-price strong { font-size:18px; letter-spacing:-.04em; }
.lumi-discovery-product-card { min-width:0; }
.lumi-discovery-product-card .lumi-food-discovery-media { box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--customer-line) 52%,transparent); }
.lumi-discovery-product-card .lumi-discovery-product-action { display:none; }
.lumi-food-discovery-list.is-list .lumi-discovery-product-author { grid-column:1/-1; padding-bottom:0; }
/* 38px of vertical padding around a 24px title made an 82px band, and these
   screens carry no compact top bar above it, so the first thing on the screen
   was a large empty stripe. The 44px control still sets the row's floor, so the
   touch target is unchanged; only the dead space goes. */
.lumi-discovery-collection .lumi-collection-title-row { padding-block:9px 7px; }
.lumi-discovery-collection .lumi-collection-title-row h1 { font-size:calc(22px + var(--lumi-font-delta,0px)) !important; letter-spacing:-.035em; }
.lumi-discovery-collection .lumi-favorite-tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; border-bottom:1px solid var(--customer-line); }
.lumi-discovery-collection .lumi-favorite-tabs button { display:flex; gap:8px; justify-content:center; align-items:center; min-height:56px; padding:10px 4px; border:0; border-bottom:2px solid transparent; border-radius:0; text-align:left; background:transparent; color:var(--customer-muted); }
.lumi-discovery-collection .lumi-favorite-tabs button.is-active { border-bottom-color:var(--customer-text); color:var(--customer-text); background:transparent; }
.lumi-discovery-collection .lumi-favorite-tabs button::after { display:none; }
.lumi-discovery-collection .lumi-favorite-tabs button > svg { width:18px; height:18px; flex:none; }
.lumi-discovery-collection .lumi-favorite-tabs button > span { font-size:calc(13px + var(--lumi-font-delta,0px)); white-space:nowrap; }
.lumi-discovery-collection .lumi-favorite-tabs button > strong { font-size:calc(12px + var(--lumi-font-delta,0px)); font-weight:550; font-variant-numeric:tabular-nums; }
.lumi-favorite-share { position:relative; display:flex; align-items:center; justify-content:center; gap:6px; min-height:44px; width:100%; padding:8px; border:0; border-top:1px solid var(--customer-line); border-radius:0; background:transparent; color:var(--customer-muted); text-align:center; font:500 calc(11px + var(--lumi-font-delta,0px))/1.4 var(--font-vi); }
.lumi-favorite-share svg { flex:none; }
.lumi-favorite-profile-grid.is-list .lumi-favorite-share { grid-column:2; width:auto; justify-content:flex-start; }
.lumi-collection-suggestions { margin-top:8px; border-top:1px solid var(--customer-line); }
.lumi-collection-suggestions-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 12px; padding:12px 16px 24px; }
.lumi-collection-suggestions-grid > article { min-width:0; }
.lumi-collection-suggestions-grid .lumi-food-discovery-media { display:block; width:100%; overflow:hidden; }
.lumi-collection-suggestions-grid .lumi-food-discovery-copy { display:flex; flex-direction:column; }
.lumi-discovery-collection > .lumi-discovery-feedback:not(.is-compact) { display:grid; grid-template-columns:52px minmax(0,1fr); align-items:start; gap:12px; margin:18px 16px 24px; padding:20px; text-align:left; border:1px solid var(--customer-line); border-radius:20px; background:var(--customer-surface); box-shadow:var(--customer-shadow-rest); }
.lumi-discovery-collection > .lumi-discovery-feedback:not(.is-compact) .lumi-collection-state-icon { width:52px; height:52px; border-radius:50%; margin:0; }
.lumi-discovery-collection > .lumi-discovery-feedback:not(.is-compact) .lumi-collection-state-title { font-size:calc(17px + var(--lumi-font-delta,0px)); margin:0 0 6px; }
.lumi-discovery-collection > .lumi-discovery-feedback:not(.is-compact) .lumi-discovery-feedback-action { grid-column:2; justify-self:start; margin-top:2px; }
.lumi-discovery-collection .lumi-favorite-unlike { min-width:44px; min-height:44px; }
.lumi-commerce-product-body { padding:20px !important; }
.lumi-commerce-product-title-row h2 { font-size:26px !important; line-height:1.2 !important; letter-spacing:-.045em; }
.lumi-commerce-product-price > :first-child { font-size:30px !important; letter-spacing:-.05em; }
.lumi-product-shop-row { padding:12px !important; border:1px solid var(--customer-line); border-radius:14px; background:var(--customer-surface); margin-bottom:16px; }
.lumi-commerce-product-checkout { background:var(--customer-surface) !important; }
.lumi-commerce-product-gallery > [role="region"] { max-height:42dvh; }
.lumi-commerce-product-gallery [role="region"] > button { max-height:42dvh; }
.lumi-product-shop-row > button:first-child { min-width:0; flex:1; min-height:44px; }
.lumi-product-shop-row > button:first-child > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lumi-product-shop-row .lumi-product-shop-rating { flex:none; max-width:42%; text-align:right; }
@media (max-width:370px) {
 .lumi-discovery-directory .lumi-shop-directory-tools { grid-template-columns:minmax(0,1fr) 44px 44px; gap:4px; }
 .lumi-discovery-directory .lumi-shop-directory-tools .lumi-shop-filter-action { width:44px; padding:0; justify-content:center; }
 .lumi-discovery-directory .lumi-shop-directory-tools .lumi-shop-filter-action .lumi-shop-action-label { display:none; }
 .lumi-discovery-collection .lumi-favorite-tabs button { gap:5px; }
 .lumi-commerce-product-body { padding:16px !important; }
 .lumi-discovery-collection > .lumi-discovery-feedback:not(.is-compact) { grid-template-columns:minmax(0,1fr); padding:18px; }
 .lumi-discovery-collection > .lumi-discovery-feedback:not(.is-compact) .lumi-discovery-feedback-action { grid-column:1; }
}

/* Keep search usable on narrow phones; view density belongs beside the title. */
.lumi-discovery-directory .lumi-shop-directory-title-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2px 12px; }
.lumi-discovery-directory .lumi-discovery-eyebrow { grid-column:1; margin:0; }
.lumi-discovery-directory .lumi-shop-directory-title-row h1 { grid-column:1; }
.lumi-discovery-directory .lumi-shop-directory-title-row .lumi-layout-toggle { grid-column:2; grid-row:1 / 3; align-self:center; }

/* ============================================================
   The lookbook tile — shop grid and Favourites
   ------------------------------------------------------------
   Owner's call after three rejected attempts: the picture is the whole tile
   and the words sit on it. Nothing prints outside the image, so the grid reads
   as one continuous sheet of photography rather than a list of things with
   captions underneath.

   That direction also solves a problem the earlier ones could not. These
   photographs are phone snaps from sellers, not studio product shots, so their
   lighting, framing and backgrounds are all over the place. A bare grid put
   that inconsistency on display. A scrim across the bottom of every tile gives
   all of them the same dark foot, which is the one thing that makes a wall of
   uncontrolled photography look deliberate.

   The product name stays. The chosen sketch showed only the seller and the
   price, but "15.000 d from CU DUONG" does not say what is being sold, and on
   a food marketplace that is the one thing a reader needs. Three lines fit on
   the scrim comfortably; the rating and distance do not, and they are on the
   product page.
   ============================================================ */
.lumi-discovery-directory .lumi-food-discovery-list.is-grid,
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"]:not(.is-list),
.lumi-collection-suggestions-grid {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px;
  padding:12px 6px 28px;
}

/* The tile IS the photograph: one block, one radius, everything else inside
   it. Radius stays small so the sheet reads as prints laid side by side. */
.lumi-discovery-directory .lumi-food-discovery-list.is-grid .lumi-discovery-product-card,
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"]:not(.is-list) .lumi-favorite-profile-tile,
.lumi-collection-suggestions-grid > .lumi-food-discovery-card {
  position:relative;
  display:block;
  min-width:0;
  aspect-ratio:3 / 4;
  overflow:hidden;
  padding:0;
  border:0;
  border-radius:6px !important;
  background:color-mix(in srgb,var(--customer-soft) 62%,var(--customer-surface));
  box-shadow:none;
  isolation:isolate;
}

.lumi-discovery-directory .lumi-food-discovery-list.is-grid .lumi-food-discovery-media,
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"]:not(.is-list) .lumi-favorite-product-media,
.lumi-collection-suggestions-grid .lumi-food-discovery-media {
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  aspect-ratio:auto;
  overflow:hidden;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.lumi-discovery-directory .lumi-food-discovery-list.is-grid .lumi-food-discovery-media > :is(img,video,[role="img"]),
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"]:not(.is-list) .lumi-favorite-product-media > :is(img,video,[role="img"]),
.lumi-collection-suggestions-grid .lumi-food-discovery-media > :is(img,video,[role="img"]) {
  transition:transform 420ms cubic-bezier(.16,1,.3,1);
}
.lumi-discovery-directory .lumi-food-discovery-list.is-grid .lumi-food-discovery-media:active > :is(img,video,[role="img"]),
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"]:not(.is-list) .lumi-favorite-product-media:active > :is(img,video,[role="img"]) { transform:scale(1.04); }

/* The scrim. One gradient, no blur: a backdrop-filter over a grid of images
   is repainted on every scroll frame for no visible gain. */
.lumi-discovery-directory .lumi-food-discovery-list.is-grid .lumi-discovery-product-card::after,
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"]:not(.is-list) .lumi-favorite-profile-tile::after,
.lumi-collection-suggestions-grid > .lumi-food-discovery-card::after {
  content:"";
  position:absolute;
  inset:38% 0 0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(180deg,transparent 0%,rgba(8,6,14,.16) 42%,rgba(8,6,14,.62) 74%,rgba(8,6,14,.88) 100%);
}

/* Name, price, then the house.
   ------------------------------------------------------------
   The seller signs the foot of the picture instead of heading it. Reading a
   tile should start with what the thing is and what it costs; the shop is who
   to thank for it, which is a footer, not a headline.

   The avatar and its verified tick come off the picture entirely. A 15px
   photograph inside a photograph is mud at that size, and the tick is a bright
   blue on a page whose only accent is Imperial Violet, so it pulled the eye
   away from the price for no information the shop's own name does not already
   carry. Both are on the shop page and in the list view. */
.lumi-discovery-directory .lumi-food-discovery-list.is-grid .lumi-discovery-product-author,
.lumi-collection-suggestions-grid .lumi-discovery-product-author {
  position:absolute;
  right:10px;
  bottom:7px;
  left:10px;
  z-index:2;
  /* The base rule sizes this row at width:100%, which against left/right
     offsets pushes it ten pixels past the tile's right edge. */
  width:auto;
  /* Not the 44px control floor: this is a line of type, and 24px is the WCAG
     2.2 minimum target the rest of this screen already holds it to. */
  min-height:24px !important;
  gap:0;
  margin:0;
  padding:0;
  border:0;
}
.lumi-discovery-directory .lumi-food-discovery-list.is-grid .lumi-discovery-product-author .lumi-avatar,
.lumi-collection-suggestions-grid .lumi-discovery-product-author .lumi-avatar,
.lumi-discovery-directory .lumi-food-discovery-list.is-grid .lumi-discovery-product-author > svg,
.lumi-collection-suggestions-grid .lumi-discovery-product-author > svg,
.lumi-discovery-directory .lumi-food-discovery-list.is-grid .lumi-discovery-product-author .lumi-verified-badge,
.lumi-collection-suggestions-grid .lumi-discovery-product-author .lumi-verified-badge { display:none !important; }
.lumi-discovery-directory .lumi-food-discovery-list.is-grid .lumi-discovery-product-author > span,
.lumi-collection-suggestions-grid .lumi-discovery-product-author > span,
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"]:not(.is-list) .lumi-favorite-product-copy > small {
  /* Last in the block: the signature under the work. */
  order:3;
  color:rgba(255,255,255,.88);
  font-size:calc(10px + var(--lumi-font-delta,0px));
  font-weight:700;
  line-height:1.3;
  letter-spacing:.085em;
  text-transform:uppercase;
  text-shadow:0 1px 3px rgba(0,0,0,.6);
}
.lumi-discovery-directory .lumi-food-discovery-list.is-grid .lumi-discovery-product-author > svg,
.lumi-collection-suggestions-grid .lumi-discovery-product-author > svg { width:11px; height:11px; color:rgba(255,255,255,.9); }

.lumi-discovery-directory .lumi-food-discovery-list.is-grid .lumi-food-discovery-copy,
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"]:not(.is-list) .lumi-favorite-product-copy,
.lumi-collection-suggestions-grid .lumi-food-discovery-copy {
  position:absolute;
  right:10px;
  /* Clears the seller line sitting at the foot of the picture. */
  bottom:31px;
  left:10px;
  z-index:2;
  display:flex;
  flex-direction:column;
  min-height:0;
  gap:2px;
  margin:0;
  padding:0;
  border:0;
  text-align:left;
}
/* Favourites carries all three lines in one block, so the seller goes to the
   foot from inside it rather than as a separate row. */
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"]:not(.is-list) .lumi-favorite-product-copy { bottom:9px; gap:2px; }
/* Name above price. Both white on the scrim, hierarchy carried by weight. */
.lumi-discovery-directory .lumi-food-discovery-list.is-grid .lumi-food-discovery-name,
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"]:not(.is-list) .lumi-favorite-product-copy > strong,
.lumi-collection-suggestions-grid .lumi-food-discovery-name {
  order:1;
  display:block;
  overflow:hidden;
  color:rgba(255,255,255,.94);
  font-size:calc(12.5px + var(--lumi-font-delta,0px));
  font-weight:500;
  line-height:1.3;
  letter-spacing:-.006em;
  text-overflow:ellipsis;
  white-space:nowrap;
  text-shadow:0 1px 4px rgba(0,0,0,.62);
  -webkit-line-clamp:unset;
}
.lumi-discovery-directory .lumi-food-discovery-list.is-grid .lumi-food-discovery-price,
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"]:not(.is-list) .lumi-favorite-product-copy > span,
.lumi-collection-suggestions-grid .lumi-food-discovery-price {
  order:2;
  min-height:0;
  gap:2px 7px;
  color:#fff;
  font-variant-numeric:tabular-nums;
  text-shadow:0 1px 4px rgba(0,0,0,.62);
}
.lumi-discovery-directory .lumi-food-discovery-list.is-grid .lumi-food-discovery-price strong,
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"]:not(.is-list) .lumi-favorite-product-copy > span,
.lumi-collection-suggestions-grid .lumi-food-discovery-price strong {
  color:#fff;
  font-size:calc(16px + var(--lumi-font-delta,0px));
  font-weight:700;
  line-height:1.2;
  letter-spacing:-.032em;
}
.lumi-discovery-directory .lumi-food-discovery-list.is-grid .lumi-food-discovery-price del,
.lumi-collection-suggestions-grid .lumi-food-discovery-price del {
  color:rgba(255,255,255,.62);
  font-size:calc(11px + var(--lumi-font-delta,0px));
  font-weight:450;
}
/* Rating and distance do not fit on a picture without turning it into a
   dashboard. They stay on the product page. */
.lumi-discovery-directory .lumi-food-discovery-list.is-grid .lumi-food-discovery-meta,
.lumi-collection-suggestions-grid .lumi-food-discovery-meta { display:none; }

/* Discount moves to the top corner, clear of the scrim. */
.lumi-discovery-directory .lumi-food-discovery-list.is-grid .lumi-food-discovery-flag,
.lumi-collection-suggestions-grid .lumi-food-discovery-flag {
  inset:8px auto auto 8px;
  z-index:2;
  padding:4px 7px;
  border-radius:3px;
  background:var(--customer-accent);
  color:#fff;
  font:700 10px/1 var(--font-vi);
  letter-spacing:.01em;
  box-shadow:0 2px 8px rgba(0,0,0,.35);
}

/* Favourites keeps its two controls as bare glyphs in the top corners, so the
   picture stays a picture: unlike on the right, share on the left. */
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"]:not(.is-list) .lumi-favorite-unlike {
  top:0;
  right:0;
  z-index:3;
  filter:drop-shadow(0 1px 3px rgba(0,0,0,.5)) drop-shadow(0 4px 12px rgba(0,0,0,.32));
}
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"]:not(.is-list) .lumi-favorite-unlike::before { content:none; }
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"]:not(.is-list) .lumi-favorite-unlike > svg { width:21px; height:21px; }
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"]:not(.is-list) .lumi-favorite-share {
  position:absolute;
  top:0;
  left:0;
  z-index:3;
  justify-content:center;
  width:40px;
  min-height:40px;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  color:#fff;
  filter:drop-shadow(0 1px 3px rgba(0,0,0,.5)) drop-shadow(0 4px 12px rgba(0,0,0,.32));
}
/* The label is carried by aria-label; printing it on the picture is clutter. */
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"]:not(.is-list) .lumi-favorite-share > span { display:none; }
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"]:not(.is-list) .lumi-favorite-share svg { width:18px; height:18px; }

/* The list layout is a different object and keeps ink on paper: a thumbnail
   beside its text, rows parted by one rule. An overlay makes no sense in a
   row, so none of the above applies here. */
.lumi-discovery-directory .lumi-food-discovery-list.is-list,
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"].is-list { grid-template-columns:minmax(0,1fr); gap:0; padding:0 16px 24px; }
.lumi-discovery-directory .lumi-food-discovery-list.is-list .lumi-food-discovery-card,
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"].is-list .lumi-favorite-profile-tile {
  grid-template-columns:104px minmax(0,1fr);
  grid-template-rows:auto minmax(0,1fr);
  align-items:start;
  gap:2px 14px;
  min-height:0;
  padding:14px 0;
  border:0;
  border-bottom:1px solid color-mix(in srgb,var(--customer-line) 76%,transparent);
  border-radius:0 !important;
  background:transparent;
  box-shadow:none;
}
.lumi-discovery-directory .lumi-food-discovery-list.is-list .lumi-food-discovery-card:last-child,
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"].is-list .lumi-favorite-profile-tile:last-child { border-bottom:0; }
.lumi-discovery-directory .lumi-food-discovery-list.is-list .lumi-food-discovery-media,
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"].is-list .lumi-favorite-product-media {
  grid-column:1;
  grid-row:1 / span 2;
  width:104px;
  aspect-ratio:1 / 1;
  border-radius:6px;
}
.lumi-discovery-directory .lumi-food-discovery-list.is-list .lumi-discovery-product-author {
  grid-column:2;
  grid-row:1;
  margin-top:1px;
  padding:0;
  border-bottom:0;
}
.lumi-discovery-directory .lumi-food-discovery-list.is-list .lumi-discovery-product-author > span {
  color:var(--customer-muted);
  font-size:calc(10.5px + var(--lumi-font-delta,0px));
  font-weight:700;
  letter-spacing:.085em;
  text-transform:uppercase;
}
.lumi-discovery-directory .lumi-food-discovery-list.is-list .lumi-food-discovery-copy,
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"].is-list .lumi-favorite-product-copy {
  grid-column:2;
  grid-row:2;
  display:flex;
  flex-direction:column;
  min-height:0;
  gap:3px;
  margin-top:4px;
  padding:0;
}
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"].is-list .lumi-favorite-product-copy { grid-row:1 / span 2; align-content:center; }
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"].is-list .lumi-favorite-product-copy > small { order:0; color:var(--customer-muted); font-size:calc(10.5px + var(--lumi-font-delta,0px)); font-weight:700; letter-spacing:.085em; text-transform:uppercase; }
.lumi-discovery-directory .lumi-food-discovery-list.is-list .lumi-food-discovery-name,
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"].is-list .lumi-favorite-product-copy > strong {
  order:1;
  color:var(--customer-text);
  font-size:calc(13px + var(--lumi-font-delta,0px));
  font-weight:500;
  line-height:1.35;
  white-space:normal;
}
.lumi-discovery-directory .lumi-food-discovery-list.is-list .lumi-food-discovery-price,
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"].is-list .lumi-favorite-product-copy > span {
  order:2;
  color:var(--customer-text);
  font-size:calc(15px + var(--lumi-font-delta,0px));
  font-weight:700;
  letter-spacing:-.03em;
  font-variant-numeric:tabular-nums;
}
.lumi-discovery-directory .lumi-food-discovery-list.is-list .lumi-food-discovery-meta { order:3; margin-top:2px; color:var(--customer-faint); font-size:calc(10.5px + var(--lumi-font-delta,0px)); }
.lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"].is-list .lumi-favorite-share { grid-column:2; grid-row:3; justify-content:flex-start; min-height:32px; margin-top:6px; padding:0; border:0; color:var(--customer-faint); font:500 calc(11px + var(--lumi-font-delta,0px))/1.4 var(--font-vi); }

@media (min-width:700px) {
  .lumi-discovery-directory .lumi-food-discovery-list.is-grid,
  .lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"]:not(.is-list),
  .lumi-collection-suggestions-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding-inline:12px; }
}
@media (prefers-reduced-motion:reduce) {
  .lumi-discovery-directory .lumi-food-discovery-list.is-grid .lumi-food-discovery-media > :is(img,video,[role="img"]),
  .lumi-discovery-collection .lumi-favorite-profile-grid[data-favorite-product-grid="true"]:not(.is-list) .lumi-favorite-product-media > :is(img,video,[role="img"]) { transition:none; }
}
