/* ============================================================================
   eShop v2 — thème « Grafik » (handoff Claude Design).
   Tokens : fond #F5F6F8, surface #FFF, encre #171A20, muted #6A7280, ligne #E4E7EC,
   rayons 12/9px, police Schibsted Grotesk. L'accent (--accent) est injecté au runtime
   depuis la couleur de marque du magasin (fallback #166A4F).
   ============================================================================ */

.eshop-body { margin: 0; padding: 0; background: #F5F6F8; }

.eshop-root {
	--accent: #166A4F;
	--bg: #F5F6F8;
	--surface: #FFFFFF;
	--ink: #171A20;
	--mut: #6A7280;
	--line: #E4E7EC;
	--rad: 12px;
	--rad-s: 9px;
	--err: #A3271A;
	--err-bg: #FAE9E5;
	--warn: #8A5600;
	--warn-bg: #FAF0DC;
	--ok: #1B6B45;
	--ok-bg: #E4F2E9;
	--font: 'Schibsted Grotesk', system-ui, -apple-system, sans-serif;
	font-family: var(--font);
	background: var(--bg);
	color: var(--ink);
	min-height: 100vh;
	min-height: 100dvh;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
.eshop-root *, .eshop-root *::before, .eshop-root *::after { box-sizing: border-box; }
.eshop-root button { font-family: inherit; }
.eshop-root input, .eshop-root select, .eshop-root textarea { font-family: inherit; accent-color: var(--accent); }
.eshop-root input::placeholder, .eshop-root textarea::placeholder { color: #9AA1AC; }
.eshop-root a { color: inherit; }
.eshop-root img { max-width: 100%; }

@keyframes eshop-spin { to { transform: rotate(360deg); } }
@keyframes eshop-fadeUp { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes eshop-fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes eshop-sheetUp { from { transform: translateY(100%); } to { transform: none; } }

/* ── Écrans plein-page (chargement / introuvable / code client) ─────────── */
.eshop-screen { position: fixed; inset: 0; z-index: 100; background: var(--bg); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; padding: 24px; }
.eshop-loader { display: flex; flex-direction: column; align-items: center; gap: 18px; font: 500 13px var(--font); color: var(--mut); }
.eshop-spin { width: 34px; height: 34px; border-radius: 50%; border: 3px solid var(--line); border-top-color: var(--accent); animation: eshop-spin .8s linear infinite; }
.eshop-minispin { display: inline-block; width: 11px; height: 11px; border-radius: 50%; border: 2px solid var(--line); border-top-color: var(--accent); animation: eshop-spin .7s linear infinite; flex: none; }

.eshop-notfound { max-width: 420px; display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; }
.eshop-notfound-q { width: 64px; height: 64px; border-radius: 50%; background: rgba(23, 26, 32, .06); display: flex; align-items: center; justify-content: center; font: 700 26px var(--font); color: var(--mut); }
.eshop-notfound h1 { margin: 0; font: 700 26px var(--font); color: var(--ink); }
.eshop-notfound p { margin: 0; font: 400 14px/1.6 var(--font); color: var(--mut); }

.eshop-gate { width: 100%; max-width: 380px; padding: 30px 28px; display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; }
.eshop-gate-lock { display: flex; flex-direction: column; align-items: center; }
.eshop-gate-lockarc { width: 18px; height: 13px; border: 3px solid var(--accent); border-bottom: none; border-radius: 9px 9px 0 0; }
.eshop-gate-lockbody { width: 34px; height: 23px; background: var(--accent); border-radius: 6px; }
.eshop-gate-title { margin: 0 0 4px; font: 700 21px var(--font); color: var(--ink); }
.eshop-gate-txt { margin: 0; font: 400 13px/1.55 var(--font); color: var(--mut); }
.eshop-gate-input { text-align: center; letter-spacing: .14em; text-transform: uppercase; font-weight: 600; background: var(--bg); }
.eshop-gate-btn { width: 100%; letter-spacing: .06em; padding: 13px; font-weight: 700; }
.eshop-gate-form { display: flex; flex-direction: column; align-items: center; gap: 14px; width: 100%; }
.eshop-gate-form .eshop-input { width: 100%; }
.eshop-gate-input--email { text-transform: none; letter-spacing: 0; }

/* ── Layout ─────────────────────────────────────────────────────────────── */
.eshop-main { display: flex; gap: 22px; align-items: flex-start; max-width: 1280px; margin: 0 auto; padding: 22px 26px 70px; }
.eshop-content { flex: 1; min-width: 0; }
.eshop-h2 { margin: 0 0 16px; font: 700 27px var(--font); color: var(--ink); letter-spacing: -.01em; }
.eshop-intro { padding: clamp(22px, 4vw, 40px); margin-bottom: 28px; border-radius: var(--rad); background: var(--accent); color: #fff; }
.eshop-intro h1 { margin: 0 0 12px; font-size: clamp(26px, 3vw, 38px); line-height: 1.15; letter-spacing: -.035em; }
.eshop-intro p { margin: 0; max-width: 64ch; font-size: 14px; line-height: 1.75; white-space: pre-line; }

.eshop-grid { display: grid; grid-template-columns: repeat(var(--eshop-cols, 3), 1fr); gap: 16px; }
.eshop-prodgrid--compact { grid-template-columns: 1fr; gap: 10px; }
/* Ligne dense (articles logistiques) : nom · réf | prix | quantité + Ajouter sur une seule ligne */
.eshop-prodgrid--rows { gap: 6px; }
.eshop-prodgrid--rows .eshop-cardbody { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; grid-template-areas: "head price foot" "stock stock stock" "sheet sheet sheet" "plat plat plat"; align-items: center; gap: 4px 14px; padding: 8px 12px; }
.eshop-prodgrid--rows .eshop-cardbody > .eshop-kicker { display: none; }
.eshop-prodgrid--rows .eshop-prodhead { display: contents; }
.eshop-prodgrid--rows .eshop-packmeta { grid-area: stock; }
.eshop-prodgrid--rows .eshop-prodname { grid-area: head; font-size: 13.5px; }
.eshop-prodgrid--rows .eshop-prodname::after { content: attr(data-ref); font: 400 10.5px var(--font); color: var(--mut); margin-left: 4px; }
.eshop-prodgrid--rows .eshop-prodhead .eshop-price { grid-area: price; }
.eshop-prodgrid--rows .eshop-cardfoot { grid-area: foot; margin: 0; padding: 0; }
.eshop-prodgrid--rows .eshop-stock { grid-area: stock; }
.eshop-prodgrid--rows .eshop-sheet { grid-area: sheet; }
.eshop-prodgrid--rows .eshop-plat { grid-area: plat; }

/* ── Atomes ─────────────────────────────────────────────────────────────── */
.eshop-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--rad); }

.eshop-btn { border: none; border-radius: var(--rad-s); font: 600 12.5px var(--font); padding: 10px 18px; cursor: pointer; letter-spacing: .02em; transition: filter .12s ease, border-color .12s ease; }
.eshop-btn:disabled { cursor: not-allowed; }
.eshop-btn--primary { background: var(--accent); color: #fff; }
.eshop-btn--primary:hover:not(:disabled) { filter: brightness(1.08); }
.eshop-btn--primary:disabled { background: var(--line); color: var(--mut); }
.eshop-btn--ghost { background: var(--surface); color: var(--ink); border: 1px solid var(--line); }
.eshop-btn--ghost:hover { border-color: var(--ink); }
.eshop-btn--dark { background: var(--ink); color: var(--bg); font-size: 11.5px; white-space: nowrap; }
.eshop-btn--dark:hover { filter: brightness(1.15); }
.eshop-btn--outline-accent { align-self: flex-start; border: 1px solid var(--accent); border-radius: 999px; background: transparent; color: var(--accent); font: 600 11px var(--font); padding: 6px 13px; }
.eshop-btn--outline-accent:hover { background: rgba(0, 0, 0, .04); background: color-mix(in oklab, var(--accent) 8%, transparent); }
.eshop-btn--pillghost { border: 1px solid var(--line); border-radius: 999px; background: var(--bg); color: var(--ink); font: 600 11px var(--font); padding: 7px 13px; }
.eshop-btn--pillghost:hover { border-color: var(--accent); color: var(--accent); }

.eshop-kicker { font: 600 9.5px var(--font); letter-spacing: .13em; text-transform: uppercase; color: var(--mut); }
.eshop-kicker--accent { color: var(--accent); }

.eshop-price { white-space: nowrap; font: 700 20px var(--font); color: var(--ink); }
.eshop-price sup { font: 700 11.5px var(--font); }
.eshop-price--sm { font-size: 16.5px; }
.eshop-price--sm sup { font-size: 10px; }
.eshop-price-tax { font: 500 11px var(--font); color: var(--mut); }
.eshop-price--sm .eshop-price-tax { font-size: 10px; }

.eshop-chip { padding: 8px 13px; border-radius: 999px; font: 500 12.5px var(--font); cursor: pointer; border: 1px solid var(--line); background: var(--surface); color: var(--ink); }
.eshop-chip.is-on { border-color: var(--ink); background: var(--ink); color: var(--bg); }
.eshop-chiprow { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }

.eshop-input, .eshop-select, .eshop-textarea { width: 100%; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--rad-s); font: 400 13px var(--font); background: var(--surface); color: var(--ink); outline: none; }
.eshop-select { font-weight: 500; font-size: 12.5px; padding: 10px 11px; cursor: pointer; }
.eshop-textarea { line-height: 1.5; resize: vertical; }
.eshop-input:focus, .eshop-select:focus, .eshop-textarea:focus { border-color: var(--accent); }
.eshop-input.is-err { border-color: #C0392B; }

.eshop-field { display: flex; flex-direction: column; gap: 6px; }
.eshop-field--wide { grid-column: 1 / -1; }
.eshop-field--narrow { max-width: 320px; }
.eshop-field-label { display: flex; align-items: center; gap: 6px; font: 600 11.5px var(--font); color: var(--ink); }
.eshop-field-hint { font: 400 10.5px/1.5 var(--font); color: var(--mut); }
.eshop-field-err { font: 500 11px var(--font); color: var(--err); }
.eshop-req { font: 600 10px var(--font); color: var(--err); font-style: normal; text-transform: none; letter-spacing: 0; }
.eshop-opt { font: 400 10px var(--font); color: var(--mut); font-style: normal; text-transform: none; letter-spacing: 0; }

.eshop-stepper { display: flex; align-items: center; border: 1px solid var(--line); border-radius: var(--rad-s); overflow: hidden; background: var(--surface); flex: none; }
.eshop-stepper button { width: 31px; height: 33px; border: none; background: none; font: 600 15px var(--font); color: var(--ink); cursor: pointer; }
.eshop-stepper button:hover { background: rgba(23, 26, 32, .06); }
.eshop-stepper-input { width: 44px; border: none; background: none; text-align: center; font: 600 13px var(--font); color: var(--ink); padding: 0; -moz-appearance: textfield; appearance: textfield; }
.eshop-stepper-input::-webkit-outer-spin-button, .eshop-stepper-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.eshop-stepper-input:focus { outline: none; background: rgba(23, 26, 32, .04); }
.eshop-stepper--lg button { width: 36px; height: 38px; font-size: 16px; }
.eshop-stepper--lg .eshop-stepper-input { width: 52px; font: 700 14px var(--font); }
.eshop-packnote { font: 500 10.5px var(--font); color: var(--mut); }

.eshop-pill { display: inline-flex; align-items: center; gap: 4px; font: 500 10.5px var(--font); color: var(--ink); background: rgba(23, 26, 32, .06); border-radius: 999px; padding: 3px 8px; }
.eshop-pill-img { width: 15px; height: 15px; object-fit: contain; flex: none; }
.eshop-linkbtn { flex: none; border: none; background: none; font: 500 11px var(--font); color: var(--accent); cursor: pointer; text-decoration: underline; padding: 2px; }

.eshop-seg { display: flex; gap: 4px; background: rgba(23, 26, 32, .05); border-radius: var(--rad-s); padding: 4px; }
.eshop-seg--wrap { flex-wrap: wrap; }
.eshop-seg-btn { flex: 1; padding: 9px 10px; border-radius: calc(var(--rad-s) - 2px); font: 600 12.5px var(--font); cursor: pointer; border: none; background: transparent; color: var(--ink); white-space: nowrap; }
.eshop-seg-btn.is-on { background: var(--accent); color: #fff; }

.eshop-closebtn { flex: none; width: 32px; height: 32px; border: none; border-radius: 9px; background: rgba(23, 26, 32, .06); color: var(--ink); font: 600 13px var(--font); cursor: pointer; }

.eshop-empty { margin-top: 22px; border: 1.5px dashed var(--line); border-radius: var(--rad); padding: 38px 20px; text-align: center; font: 400 13.5px var(--font); color: var(--mut); }
.eshop-poweredby { font: 400 10px var(--font); color: var(--mut); letter-spacing: .05em; text-decoration: none; }
.eshop-poweredby:hover { color: var(--ink); }
.eshop-poweredby-logo { height: 14px; vertical-align: -3px; margin-left: 3px; opacity: .65; }
.eshop-poweredby:hover .eshop-poweredby-logo { opacity: 1; }
.eshop-poweredby--side { text-align: center; padding: 2px 0 4px; }

/* ── Catalogue : menus & produits ───────────────────────────────────────── */
.eshop-catalog { display: flex; flex-direction: column; gap: 34px; }
.eshop-menucard, .eshop-prodcard { overflow: hidden; display: flex; flex-direction: column; }

.eshop-cardimg { position: relative; cursor: zoom-in; }
.eshop-cardimg img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.eshop-imgbadge { position: absolute; left: 10px; bottom: 10px; background: rgba(10, 12, 11, .78); color: #fff; font: 600 10px var(--font); letter-spacing: .1em; text-transform: uppercase; padding: 5px 9px; border-radius: 6px; }
.eshop-imgbadge--inline { position: static; display: inline-block; align-self: flex-start; }

.eshop-cardbody { padding: 12px 14px 13px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.eshop-menucard .eshop-cardbody { padding: 15px 16px 16px; gap: 6px; }
.eshop-cardtitle { margin: 0; font: 700 16.5px var(--font); color: var(--ink); }
.eshop-cardtext { margin: 0; font: 400 12.5px/1.55 var(--font); color: var(--mut); }
.eshop-cardfoot { display: flex; align-items: center; gap: 8px; justify-content: space-between; margin-top: auto; padding-top: 10px; }

.eshop-prodhead { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.eshop-prodname { display: flex; align-items: flex-start; gap: 6px; border: none; background: none; padding: 0; text-align: left; cursor: pointer; font: 600 14.5px var(--font); color: var(--ink); }
.eshop-info-i { flex: none; width: 15px; height: 15px; border-radius: 50%; border: 1.5px solid var(--mut); color: var(--mut); font: 600 9.5px var(--font); display: inline-flex; align-items: center; justify-content: center; margin-top: 2px; }

.eshop-stock { display: flex; align-items: center; gap: 6px; font: 500 11.5px var(--font); border-radius: 7px; padding: 5px 9px; width: fit-content; }
.eshop-stock-char { font-weight: 700; }
.eshop-stock--mut { color: var(--mut); background: rgba(23, 26, 32, .06); }
.eshop-stock--err { color: var(--err); background: var(--err-bg); }
.eshop-stock--warn { color: var(--warn); background: var(--warn-bg); }
.eshop-stock--ok { color: var(--ok); background: var(--ok-bg); }

.eshop-sheet { border-top: 1px solid var(--line); padding-top: 10px; display: flex; flex-direction: column; gap: 8px; animation: eshop-fadeUp .22s ease; }
.eshop-sheet-img { display: block; width: 100%; max-width: 340px; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--rad-s); cursor: zoom-in; }
.eshop-sheet-desc { margin: 0; font: 400 12.5px/1.6 var(--font); color: var(--ink); }
.eshop-sheet-row { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }
.eshop-sheet-mut { font: 400 11.5px/1.5 var(--font); color: var(--mut); }
.eshop-sheet-note { margin: 0; font: 400 11.5px/1.5 var(--font); color: var(--mut); }
.eshop-sheet-strong { font-weight: 600; color: var(--ink); }
.eshop-sheet-stock { font: 500 11.5px/1.6 var(--font); color: var(--ink); background: rgba(0, 0, 0, .04); background: color-mix(in oklab, var(--accent) 8%, transparent); border-radius: 7px; padding: 6px 9px; }
.eshop-sheet-perstock { display: inline-block; margin-left: 8px; font-weight: 400; color: var(--mut); }
.eshop-plat { display: flex; }
.eshop-addbtn { margin-left: auto; padding: 9px 16px; }

.eshop-group { margin-top: 4px; }
.eshop-group-title { margin: 0 0 13px; padding-bottom: 9px; border-bottom: 1px solid var(--line); font: 600 12px var(--font); letter-spacing: .16em; text-transform: uppercase; color: var(--mut); }
/* Sous-groupes par famille (option du magasin) */
.eshop-subgroup-title { margin: 14px 0 9px; font: 600 11px var(--font); letter-spacing: .12em; text-transform: uppercase; color: var(--ink); opacity: .75; }
.eshop-group .eshop-prodgrid + .eshop-prodgrid { margin-top: 10px; }

/* ── Barre de filtres ───────────────────────────────────────────────────── */
.eshop-filterbar { padding: 12px; display: flex; flex-direction: column; gap: 11px; margin-bottom: 26px; }
.eshop-filtertools { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; border-top: 1px solid var(--line); padding-top: 11px; }
.eshop-compo { position: relative; }
.eshop-compo-btn { display: flex; align-items: center; gap: 7px; padding: 8px 12px; }
.eshop-caret { font-size: 8px; color: var(--mut); }
.eshop-compo-panel { position: absolute; top: calc(100% + 6px); left: 0; z-index: 30; background: var(--surface); border: 1px solid var(--line); border-radius: var(--rad-s); box-shadow: 0 10px 30px rgba(0, 0, 0, .12); padding: 8px; display: flex; flex-direction: column; gap: 2px; min-width: 210px; }
.eshop-compo-opt { display: flex; align-items: center; gap: 9px; padding: 7px 9px; border-radius: 7px; font: 500 12.5px var(--font); color: var(--ink); cursor: pointer; }
.eshop-compo-opt:hover { background: rgba(23, 26, 32, .05); }
.eshop-compo-opt input { width: 15px; height: 15px; margin: 0; }
.eshop-compo-hint { font: 400 10.5px var(--font); color: var(--mut); padding: 6px 9px 3px; border-top: 1px solid var(--line); margin-top: 4px; }
.eshop-clickcatch { position: fixed; inset: 0; z-index: 25; }

.eshop-range-wrap { display: flex; align-items: center; gap: 12px; flex: 1; min-width: 230px; max-width: 330px; }
.eshop-range-label { font: 500 12px var(--font); color: var(--mut); white-space: nowrap; }
.eshop-range { position: relative; flex: 1; height: 28px; }
.eshop-range-track { position: absolute; left: 0; right: 0; top: 12px; height: 4px; border-radius: 2px; background: var(--line); }
.eshop-range-fill { position: absolute; top: 12px; height: 4px; border-radius: 2px; background: var(--accent); left: var(--fill-l, 0%); right: var(--fill-r, 0%); }
.eshop-range-input { -webkit-appearance: none; appearance: none; background: transparent; pointer-events: none; position: absolute; left: 0; right: 0; width: 100%; margin: 0; height: 28px; }
.eshop-range-input::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 16px; height: 16px; border-radius: 50%; background: var(--surface); border: 2px solid var(--accent); cursor: pointer; pointer-events: auto; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); }
.eshop-range-input::-moz-range-thumb { width: 14px; height: 14px; border-radius: 50%; background: var(--surface); border: 2px solid var(--accent); cursor: pointer; pointer-events: auto; }

.eshop-search { display: flex; align-items: center; gap: 9px; border: 1px solid var(--line); border-radius: var(--rad-s); padding: 0 12px; background: var(--bg); }
.eshop-search-ico { font: 600 14px var(--font); color: var(--mut); }
.eshop-search input { flex: 1; border: none; background: transparent; padding: 11px 0; font: 400 13px var(--font); color: var(--ink); outline: none; }

/* ── Sidebar ────────────────────────────────────────────────────────────── */
.eshop-aside { width: 326px; flex: none; position: sticky; top: 18px; max-height: calc(100vh - 36px); overflow: auto; display: flex; flex-direction: column; gap: 12px; scrollbar-width: thin; }
.eshop-identity { display: flex; align-items: center; gap: 11px; padding: 2px 2px 0; flex-wrap: wrap; }
.eshop-identity-logo { max-width: 150px; max-height: 56px; object-fit: contain; }
.eshop-identity-initials { width: 42px; height: 42px; border-radius: 12px; background: rgba(0, 0, 0, .06); background: color-mix(in oklab, var(--accent) 12%, white); display: flex; align-items: center; justify-content: center; font: 700 15px var(--font); color: var(--accent); flex: none; }
.eshop-identity-initials--sm { width: 38px; height: 38px; border-radius: 11px; font-size: 14px; }
.eshop-identity-client { flex: 0 0 100%; max-width: 220px; max-height: 64px; object-fit: contain; object-position: left; margin-bottom: 4px; }
.eshop-identity--cobrand .eshop-identity-logo { max-width: 110px; max-height: 36px; }
.eshop-identity--cobrand .eshop-identity-initials { width: 34px; height: 34px; border-radius: 10px; font-size: 13px; }
.eshop-identity-txt { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.eshop-identity-name { font: 700 15.5px var(--font); color: var(--ink); }

.eshop-langsw { margin-left: auto; display: flex; gap: 3px; background: rgba(23, 26, 32, .05); border-radius: 999px; padding: 3px; flex: none; }
.eshop-langsw button { border: none; background: transparent; color: var(--mut); font: 700 10px var(--font); letter-spacing: .04em; padding: 4px 8px; border-radius: 999px; cursor: pointer; }
.eshop-langsw button.is-on { background: var(--surface); color: var(--ink); box-shadow: 0 1px 3px rgba(0, 0, 0, .12); }
.eshop-langsw--head { margin-left: auto; }

.eshop-sidecard { padding: 14px; display: flex; flex-direction: column; gap: 10px; }
.eshop-sidecard-head { display: flex; align-items: center; justify-content: space-between; }
.eshop-sidecard-title { margin: 0; font: 700 14.5px var(--font); color: var(--ink); }
.eshop-sidecard-count { font: 600 10.5px var(--font); color: var(--mut); }
.eshop-params { gap: 15px; }

.eshop-cart-empty { margin: 0; padding: 12px 0; text-align: center; font: 400 12.5px var(--font); color: var(--mut); }
.eshop-cartline { display: flex; gap: 8px; align-items: flex-start; border-top: 1px solid var(--line); padding-top: 10px; }
.eshop-cartline-del { flex: none; width: 22px; height: 22px; border: none; border-radius: 6px; background: rgba(23, 26, 32, .05); color: var(--mut); font: 500 10px var(--font); cursor: pointer; margin-top: 1px; }
.eshop-cartline-del:hover { background: var(--err-bg); color: var(--err); }
.eshop-cartline-qty { flex: none; width: 42px; padding: 3px 2px; text-align: center; border: 1px solid var(--line); border-radius: 6px; font: 600 12px var(--font); color: var(--ink); background: var(--surface); outline: none; }
.eshop-cartline-qty:focus { border-color: var(--accent); }
.eshop-cartline-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.eshop-cartline-name { font: 600 12.5px/1.35 var(--font); color: var(--ink); }
.eshop-cartline-sub { font: 400 11px/1.4 var(--font); color: var(--mut); padding-left: 9px; border-left: 2px solid var(--line); }
.eshop-cartline-plat { font: 400 11px/1.4 var(--font); color: var(--accent); padding-left: 9px; border-left: 2px solid var(--line); }
.eshop-cartline-total { flex: none; font: 600 12.5px var(--font); color: var(--ink); }
.eshop-cartline-qty--ro { background: transparent; border-style: dashed; color: var(--mut); }
.eshop-cartline-edit { align-self: flex-start; padding-left: 9px; font-size: 10.5px; }

.eshop-cart-delivery { border-top: 1px solid var(--line); padding-top: 10px; display: flex; flex-direction: column; gap: 3px; }
.eshop-cart-feerow { display: flex; justify-content: space-between; font: 500 12px var(--font); color: var(--ink); }
.eshop-cart-feemut { font: 400 10.5px/1.5 var(--font); color: var(--mut); }
/* Remises négociées de la fiche client */
.eshop-cart-discounts { border-top: 1px solid var(--line); padding-top: 10px; display: flex; flex-direction: column; gap: 3px; }
.eshop-cart-feerow--disc { gap: 10px; color: var(--ok); }
.eshop-cart-feerow--disc span:last-child { white-space: nowrap; }
.eshop-cartline-disc { font: 400 11px/1.4 var(--font); color: var(--ok); padding-left: 9px; border-left: 2px solid var(--line); }
.eshop-cart-total { border-top: 1.5px solid var(--ink); padding-top: 10px; display: flex; justify-content: space-between; align-items: baseline; }
.eshop-cart-totallabel { font: 700 12px var(--font); letter-spacing: .08em; color: var(--ink); }
.eshop-cart-totalval { font: 700 20px var(--font); color: var(--ink); }

/* Calendrier */
.eshop-cal { border: 1px solid var(--line); border-radius: var(--rad-s); padding: 10px; }
.eshop-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 7px; }
.eshop-cal-nav { width: 26px; height: 26px; border: none; border-radius: 7px; background: rgba(23, 26, 32, .05); color: var(--ink); cursor: pointer; font: 600 13px var(--font); }
.eshop-cal-label { font: 600 12.5px var(--font); color: var(--ink); text-transform: capitalize; }
.eshop-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
.eshop-cal-grid--head { margin-bottom: 3px; }
.eshop-cal-dayhead { text-align: center; font: 600 9px var(--font); color: var(--mut); }
.eshop-cal-day { height: 30px; border-radius: 7px; font: 500 11.5px var(--font); display: flex; align-items: center; justify-content: center; border: none; padding: 0; background: rgba(23, 26, 32, .04); color: var(--ink); cursor: pointer; }
.eshop-cal-day.is-blank { background: transparent; cursor: default; }
.eshop-cal-day.is-off { background: transparent; color: var(--mut); opacity: .4; cursor: not-allowed; text-decoration: line-through; }
.eshop-cal-day.is-sel { background: var(--accent); color: #fff; font-weight: 700; }
.eshop-cal-foot { display: block; margin-top: 7px; font: 400 10.5px var(--font); color: var(--mut); }

/* Points de retrait */
.eshop-pointcard { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: var(--rad-s); text-align: left; font-family: var(--font); cursor: pointer; border: 1px solid var(--line); background: var(--surface); }
.eshop-pointcard.is-sel { border-color: var(--accent); background: color-mix(in oklab, var(--accent) 7%, var(--surface)); box-shadow: inset 0 0 0 1px var(--accent); }
.eshop-pointcard.is-off { cursor: not-allowed; opacity: .45; }
.eshop-pointcard-name { font: 600 12.5px var(--font); color: var(--ink); }
.eshop-pointcard-addr { font: 400 11px/1.4 var(--font); color: var(--mut); }
.eshop-pointcard-closed { font: 500 10.5px var(--font); color: var(--err); }
.eshop-pointinfo { background: rgba(0, 0, 0, .04); background: color-mix(in oklab, var(--accent) 6%, transparent); border-radius: var(--rad-s); padding: 10px 11px; display: flex; flex-direction: column; gap: 4px; font: 400 11.5px/1.5 var(--font); color: var(--ink); }
.eshop-pointinfo a { font: 500 11.5px/1.4 var(--font); color: var(--accent); text-decoration: underline; }
.eshop-pointinfo span:last-child { font: 500 11px var(--font); color: var(--mut); }

/* CTA */
.eshop-cta { border-radius: var(--rad); font: 700 13.5px var(--font); letter-spacing: .06em; padding: 16px; box-shadow: 0 6px 18px rgba(0, 0, 0, .15); box-shadow: 0 6px 18px color-mix(in oklab, var(--accent) 35%, transparent); }
.eshop-ctahint { border: 1.5px dashed var(--line); border-radius: var(--rad); padding: 13px 14px; text-align: center; font: 500 12.5px/1.5 var(--font); color: var(--mut); background: rgba(23, 26, 32, .03); }

/* Commandes récentes */
.eshop-recent { border: 1px solid var(--line); border-radius: var(--rad-s); padding: 10px 11px; display: flex; flex-direction: column; gap: 6px; }
.eshop-recent-head { display: flex; justify-content: space-between; align-items: baseline; }
.eshop-recent-num { font: 700 11.5px var(--font); color: var(--ink); }
.eshop-recent-date { font: 500 10.5px var(--font); color: var(--mut); }
.eshop-recent-lines { display: flex; flex-direction: column; gap: 2px; font: 400 11px/1.4 var(--font); color: var(--mut); }
.eshop-recent-more { font-weight: 500; }
/* Détail des quantités par produit d'un menu réparti */
.eshop-recent-detail, .eshop-reorder-detail { display: block; font: 400 10.5px/1.4 var(--font); color: var(--mut); padding-left: 9px; }

/* Aide */
.eshop-help { gap: 9px; }
.eshop-help-line { font: 500 12.5px var(--font); color: var(--ink); text-decoration: none; display: flex; align-items: center; gap: 8px; word-break: break-all; }
.eshop-help-ico { color: var(--accent); font-weight: 700; flex: none; }
.eshop-help-legal { border: none; background: none; padding: 8px 0 0; border-top: 1px solid var(--line); text-align: left; font: 500 11.5px/1.4 var(--font); color: var(--mut); cursor: pointer; text-decoration: underline; }

/* ── Checkout ───────────────────────────────────────────────────────────── */
.eshop-checkout { display: flex; flex-direction: column; gap: 16px; max-width: 720px; }
.eshop-recap { margin: 4px 0 0; font: 500 12.5px var(--font); color: var(--mut); }
.eshop-block { padding: 18px 16px; display: flex; flex-direction: column; gap: 13px; }
.eshop-block-title { margin: 0; font: 700 15.5px var(--font); color: var(--ink); }
.eshop-block-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.eshop-block-label { font: 600 13.5px var(--font); color: var(--ink); }
.eshop-codeblock { padding: 16px; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px; }
.eshop-coderow { display: flex; gap: 8px; flex: 1; min-width: 260px; }
.eshop-input--code { flex: 1; min-width: 0; font: 600 12.5px var(--font); letter-spacing: .08em; text-transform: uppercase; background: var(--bg); }
.eshop-input--email { flex: 1.4; min-width: 0; background: var(--bg); }
.eshop-formgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.eshop-fixedaddr { display: flex; flex-direction: column; gap: 4px; background: var(--bg); border-radius: var(--rad-s); padding: 11px 13px; }
.eshop-fixedaddr-txt { font: 600 13px/1.5 var(--font); color: var(--ink); }

.eshop-lock { display: inline-flex; flex-direction: column; align-items: center; }
.eshop-lock-arc { width: 6px; height: 5px; border: 1.5px solid var(--mut); border-bottom: none; border-radius: 4px 4px 0 0; }
.eshop-lock-body { width: 10px; height: 7px; background: var(--mut); border-radius: 2px; }

.eshop-zoneblocked { background: var(--err-bg); border-radius: var(--rad-s); padding: 11px 13px; font: 600 12px/1.5 var(--font); color: var(--err); }
.eshop-payinfo { font: 400 12px/1.55 var(--font); color: var(--mut); }
.eshop-payrow { display: flex; flex-wrap: wrap; gap: 10px; }
.eshop-paycard { flex: 1; min-width: 170px; display: flex; flex-direction: column; gap: 3px; padding: 12px 14px; border-radius: var(--rad-s); text-align: left; font-family: var(--font); cursor: pointer; border: 1px solid var(--line); background: var(--surface); }
.eshop-paycard.is-sel { border-color: var(--accent); background: color-mix(in oklab, var(--accent) 7%, var(--surface)); box-shadow: inset 0 0 0 1px var(--accent); }
.eshop-paycard.is-off { cursor: not-allowed; opacity: .5; }
.eshop-paycard-name { font: 700 13px var(--font); color: var(--ink); }
.eshop-paycard-desc { font: 400 11.5px/1.4 var(--font); color: var(--mut); }
.eshop-paycard-note { font: 500 10.5px var(--font); color: var(--err); }
.eshop-cardbox { border: 1px solid var(--line); border-radius: var(--rad-s); padding: 14px; display: flex; flex-direction: column; gap: 10px; background: var(--bg); }

.eshop-terms { display: flex; gap: 10px; align-items: flex-start; font: 400 12.5px/1.55 var(--font); color: var(--ink); cursor: pointer; padding: 0 2px; }
.eshop-terms input { width: 16px; height: 16px; margin: 2px 0 0; flex: none; }
.eshop-terms a { color: var(--accent); text-decoration: underline; cursor: pointer; }
.eshop-submitrow { display: flex; flex-wrap: wrap; gap: 10px; }
.eshop-submit { flex: 1; min-width: 220px; font: 700 13px var(--font); letter-spacing: .05em; padding: 14px 18px; }

/* ── Confirmation ───────────────────────────────────────────────────────── */
.eshop-confirmwrap { display: flex; justify-content: center; padding: 28px 0 10px; }
.eshop-confirm { max-width: 460px; width: 100%; padding: 34px 28px; display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; animation: eshop-fadeUp .3s ease; }
.eshop-confirm-check { width: 64px; height: 64px; border-radius: 50%; background: rgba(0, 0, 0, .06); background: color-mix(in oklab, var(--accent) 12%, white); color: var(--accent); display: flex; align-items: center; justify-content: center; font: 700 30px var(--font); }
.eshop-confirm-title { margin: 0; font: 700 26px var(--font); color: var(--ink); }
.eshop-confirm-txt { margin: 0; font: 400 13.5px/1.6 var(--font); color: var(--mut); }
.eshop-confirm-box { width: 100%; border: 1px solid var(--line); border-radius: var(--rad-s); padding: 12px; display: flex; flex-direction: column; gap: 3px; }
.eshop-confirm-box--accent { background: color-mix(in oklab, var(--accent) 8%, white); border-color: color-mix(in oklab, var(--accent) 30%, white); }
.eshop-confirm-val { font: 700 19px var(--font); color: var(--ink); }
.eshop-confirm-val--accent { color: var(--accent); }
.eshop-confirm-note { font: 400 11.5px/1.5 var(--font); color: var(--ink); }
.eshop-confirm-payref { font: 400 11.5px var(--font); color: var(--mut); word-break: break-all; }
.eshop-confirm-back { width: 100%; font: 700 13px var(--font); letter-spacing: .05em; padding: 14px; }

/* ── CGV ────────────────────────────────────────────────────────────────── */
.eshop-cgv { max-width: 720px; display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.eshop-cgv-body { width: 100%; padding: 22px 20px; font: 400 13px/1.7 var(--font); color: var(--ink); overflow-wrap: break-word; }

/* ── Modales ────────────────────────────────────────────────────────────── */
.eshop-overlay { position: fixed; inset: 0; z-index: 80; background: rgba(10, 12, 11, .5); display: flex; align-items: center; justify-content: center; padding: 14px; animation: eshop-fadeIn .18s ease; }
.eshop-modal { width: 100%; max-width: 640px; max-height: 92vh; max-height: 92dvh; overflow: auto; background: var(--bg); border-radius: var(--rad); display: flex; flex-direction: column; animation: eshop-fadeUp .22s ease; }
.eshop-reorder { max-width: 520px; }
.eshop-modal-head { position: sticky; top: 0; z-index: 2; background: var(--bg); padding: 16px 18px 12px; border-bottom: 1px solid var(--line); display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.eshop-modal-headtxt { display: flex; flex-direction: column; gap: 3px; }
.eshop-modal-title { margin: 0; font: 700 20px var(--font); color: var(--ink); }
.eshop-modal-desc { margin: 0; font: 400 12px/1.5 var(--font); color: var(--mut); }
.eshop-modal-validity { font: 500 10.5px var(--font); color: var(--mut); }
.eshop-modal-body { padding: 14px 18px; display: flex; flex-direction: column; gap: 14px; }
.eshop-modal-foot { position: sticky; bottom: 0; background: var(--bg); border-top: 1px solid var(--line); padding: 12px 18px; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.eshop-modal-foot--right { justify-content: flex-end; }
.eshop-modal-add { margin-left: auto; font: 700 12.5px var(--font); letter-spacing: .04em; padding: 13px 20px; }

/* Étapes de menu */
.eshop-step { background: var(--surface); border: 1px solid var(--line); border-radius: var(--rad-s); overflow: hidden; }
.eshop-step-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 13px; background: rgba(23, 26, 32, .03); }
.eshop-step-headtxt { display: flex; flex-direction: column; gap: 1px; }
.eshop-step-name { font: 700 13.5px var(--font); color: var(--ink); }
.eshop-step-need { font: 500 11px var(--font); color: var(--mut); }
.eshop-step-comment { font: italic 400 10.5px var(--font); color: var(--mut); }
.eshop-steppill { flex: none; font: 500 11px var(--font); color: var(--mut); background: rgba(23, 26, 32, .06); border-radius: 999px; padding: 5px 10px; }
.eshop-steppill--done { display: flex; align-items: center; gap: 5px; font-weight: 600; color: var(--ok); background: var(--ok-bg); }
.eshop-steppill--warn { font-weight: 600; color: var(--warn); background: var(--warn-bg); }
.eshop-steppill--sm { font-size: 10.5px; padding: 4px 9px; }
.eshop-step-opts { display: flex; flex-direction: column; }
.eshop-step-optwrap { border-top: 1px solid var(--line); display: flex; flex-direction: column; }
.eshop-step-opt { display: flex; align-items: center; gap: 11px; padding: 10px 13px; cursor: pointer; }
.eshop-step-opt.is-sel { background: rgba(0, 0, 0, .03); background: color-mix(in oklab, var(--accent) 6%, transparent); }
.eshop-step-opt input { width: 16px; height: 16px; margin: 0; flex: none; }
/* Répartition des quantités par menu : nombre de menus en tête, en-têtes de type, pas de curseur cliquable */
.eshop-step-opt--qty { cursor: default; }
.eshop-step-opt--qty input { width: auto; height: auto; }
.eshop-menuqty { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding: 11px 13px; border: 1px solid var(--line); border-radius: var(--rad-s); background: var(--surface); }
.eshop-menuqty-label { font: 600 9.5px var(--font); letter-spacing: .13em; text-transform: uppercase; color: var(--mut); }
.eshop-menuqty-hint { flex: 1; min-width: 160px; text-align: right; font: 400 11px var(--font); color: var(--mut); }
.eshop-step-grouphead { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 13px; border-top: 1px solid var(--line); background: rgba(23, 26, 32, .02); }
.eshop-step-groupname { font: 600 11px var(--font); letter-spacing: .1em; text-transform: uppercase; color: var(--ink); }
/* Sous-titre de catégorie sous une nature : plus discret que l'en-tête qui porte la pastille */
/* Platerie imposée par la fiche menu : lue, pas choisie */
.eshop-platfixed { padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; background: rgba(23, 26, 32, .03); font: 600 13px var(--font); color: var(--ink); }
.eshop-step-subhead { padding: 7px 13px 3px; font: 600 10px var(--font); letter-spacing: .09em; text-transform: uppercase; color: var(--mut); }
.eshop-stepper--sm button { width: 26px; height: 28px; font-size: 13px; }
.eshop-stepper--sm .eshop-stepper-input { width: 38px; font-size: 12.5px; }
.eshop-stepper button:disabled { opacity: .35; cursor: not-allowed; }
.eshop-step-thumb { width: 44px; height: 44px; border-radius: 9px; object-fit: cover; flex: none; }
.eshop-step-opttxt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.eshop-step-optname { font: 600 12.5px var(--font); color: var(--ink); }
.eshop-step-optdesc { font: 400 11px/1.4 var(--font); color: var(--mut); }
/* Quantité réellement commandée d'un produit (menus × coefficient de la formule) */
.eshop-step-optqty { flex: none; font: 600 11.5px var(--font); color: var(--ink); background: rgba(23, 26, 32, .06); border-radius: 999px; padding: 4px 9px; }
.eshop-step-detail { padding: 0 13px 11px 40px; display: flex; flex-wrap: wrap; gap: 5px; align-items: center; }

/* Recommander */
.eshop-reorder-loading { display: flex; align-items: center; gap: 8px; font: 500 12px var(--font); color: var(--mut); padding: 6px 0; }
.eshop-reorder-table { background: var(--surface); border: 1px solid var(--line); border-radius: var(--rad-s); overflow: hidden; }
.eshop-reorder-row { display: grid; grid-template-columns: 1fr 44px 56px; gap: 8px; align-items: center; padding: 9px 12px; border-top: 1px solid var(--line); font: 500 12px var(--font); color: var(--ink); }
.eshop-reorder-row--head { border-top: none; background: rgba(23, 26, 32, .04); font: 600 9.5px var(--font); letter-spacing: .1em; text-transform: uppercase; color: var(--mut); }
.eshop-reorder-row.is-off { color: var(--mut); }
.eshop-reorder-qty { text-align: center; font-weight: 600; }
.eshop-reorder-ok { text-align: center; font: 700 13px var(--font); color: var(--ok); }
.eshop-reorder-bad { text-align: center; font: 700 13px var(--font); color: var(--err); cursor: help; }
.eshop-warnbanner { background: var(--warn-bg); border-radius: var(--rad-s); padding: 10px 12px; font: 500 11.5px/1.5 var(--font); color: var(--warn); }
/* Horaires de prise de commande : bandeau en tête du catalogue */
.eshop-closed { font-size: 12.5px; margin-bottom: -14px; }

/* Lightbox */
.eshop-lightbox { position: fixed; inset: 0; z-index: 90; background: rgba(8, 10, 9, .82); display: flex; align-items: center; justify-content: center; padding: 20px; cursor: zoom-out; animation: eshop-fadeIn .15s ease; }
.eshop-lightbox-inner { display: flex; flex-direction: column; gap: 10px; align-items: center; max-width: min(920px, 94vw); }
.eshop-lightbox-img { width: min(920px, 92vw); height: 72vh; border-radius: 14px; background-position: center; background-size: contain; background-repeat: no-repeat; }
.eshop-lightbox-name { font: 600 13px var(--font); color: #fff; }

/* ── Chrome : header mobile, FAB, backdrop, cookies, toasts ─────────────── */
.eshop-mobilehead { position: sticky; top: 0; z-index: 50; display: flex; align-items: center; gap: 11px; padding: 12px 16px; background: var(--surface); border-bottom: 1px solid var(--line); }
.eshop-mobilehead-logo { max-height: 38px; max-width: 130px; object-fit: contain; flex: none; }
.eshop-mobilehead-client { max-height: 34px; max-width: 120px; object-fit: contain; flex: none; }
.eshop-mobilehead--cobrand .eshop-mobilehead-logo { max-height: 26px; max-width: 84px; }
.eshop-mobilehead-txt { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.eshop-mobilehead-name { font: 700 15px var(--font); color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.eshop-backdrop { position: fixed; inset: 0; z-index: 65; background: rgba(10, 12, 11, .45); animation: eshop-fadeIn .2s ease; }
.eshop-fab { position: fixed; left: 14px; right: 14px; bottom: 14px; z-index: 60; border: none; border-radius: 14px; background: var(--accent); color: #fff; font: 700 13.5px var(--font); letter-spacing: .03em; padding: 16px; cursor: pointer; box-shadow: 0 10px 30px rgba(0, 0, 0, .28); }

.eshop-aside-mobilehead { display: flex; align-items: center; justify-content: space-between; }
.eshop-aside-mobiletitle { font: 700 15px var(--font); color: var(--ink); }

/* z-index sous les modales (80) : la barre ne doit jamais masquer un footer d'action */
.eshop-cookiewrap { position: fixed; left: 14px; right: 14px; bottom: 14px; z-index: 75; display: flex; justify-content: center; pointer-events: none; }
.eshop-cookie { max-width: 560px; width: 100%; background: var(--ink); color: var(--bg); border-radius: 14px; padding: 14px 16px; display: flex; align-items: center; gap: 14px; box-shadow: 0 12px 34px rgba(0, 0, 0, .3); animation: eshop-fadeUp .3s ease; pointer-events: auto; }
.eshop-cookie p { margin: 0; flex: 1; font: 400 12px/1.5 var(--font); }
.eshop-cookie a { color: inherit; text-decoration: underline; cursor: pointer; }
.eshop-cookie button { flex: none; border: none; border-radius: 9px; background: var(--bg); color: var(--ink); font: 700 12px var(--font); padding: 10px 16px; cursor: pointer; }

/* ── Multi-sites (artStocks) : récap de ventilation au checkout + confirmation ── */
.eshop-planblock { gap: 8px; }
.eshop-planrow { display: flex; align-items: baseline; gap: 10px; font: 500 13px/1.5 var(--font); }
.eshop-planrow-name { font-weight: 700; }
.eshop-planrow-detail { color: var(--mut); font-size: 12px; }
.eshop-planrow-fee { margin-left: auto; font-variant-numeric: tabular-nums; }
.eshop-planrow--total { border-top: 1px solid var(--line); padding-top: 8px; margin-top: 4px; }
.eshop-planblock--err { border-color: var(--err); }
.eshop-planerr { font: 500 12.5px/1.5 var(--font); color: var(--err); margin: 0; }
.eshop-planerr-hint { font: 400 12px/1.5 var(--font); color: var(--mut); margin: 4px 0 0; }
.eshop-confirm-multisite { font: 500 12.5px/1.5 var(--font); color: var(--mut); margin: 0; }

.eshop-toasts { position: fixed; top: 14px; right: 14px; z-index: 110; display: flex; flex-direction: column; gap: 8px; align-items: flex-end; pointer-events: none; }
.eshop-toast { pointer-events: auto; font: 500 12.5px/1.45 var(--font); padding: 11px 14px; border-radius: 10px; box-shadow: 0 6px 20px rgba(0, 0, 0, .18); max-width: 320px; animation: eshop-fadeUp .25s ease; }
.eshop-toast--ok { background: var(--ink); color: var(--bg); }
.eshop-toast--warn { background: var(--warn); color: #fff; }
.eshop-toast--err { background: var(--err); color: #fff; }

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media (max-width: 879px) {
	.eshop-main { display: block; padding: 0; }
	.eshop-content { padding: 14px 14px 120px; max-width: 540px; margin: 0 auto; }
	.eshop-h2 { font-size: 24px; }
	.eshop-formgrid { grid-template-columns: 1fr; }
	.eshop-filtertools { display: none; }
	.eshop-prodgrid--rows .eshop-cardbody { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "head price" "stock stock" "sheet sheet" "plat plat" "foot foot"; }
	.eshop-aside { display: none; }
	.eshop-aside--open { display: flex; position: fixed; left: 0; right: 0; bottom: 0; top: 9vh; top: 9dvh; z-index: 70; width: auto; max-height: none; background: var(--bg); border-radius: 20px 20px 0 0; overflow: auto; padding: 14px 14px 30px; animation: eshop-sheetUp .28s ease; box-shadow: 0 -12px 40px rgba(0, 0, 0, .25); }
	.eshop-submitrow { flex-direction: column; }
	.eshop-coderow { flex-direction: column; }
	.eshop-coderow .eshop-btn--dark { padding: 12px 14px; }
	.eshop-lightbox-img { height: 56vh; }
}
