/* Каталог на едро (edro.php, wholesale/views.php): its own layout, nothing from the shop's stylesheets. */
:root {
    --er-black: #121212; --er-ink: #161616; --er-red: #e3173e; --er-red-dark: #c2102f; --er-bg: #f4f2ef; --er-card: #ffffff; --er-line: #e3dfda; --er-line-dark: #cfc9c2;
    --er-muted: #6a6560; --er-green: #138a3e; --er-green-soft: #e5f4ea; --er-amber: #a65b00; --er-head: #f1efec;
    --er-radius: 12px; --er-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; }
body.er { margin: 0; min-height: 100vh; background: var(--er-bg); color: var(--er-ink); font: 15px/1.45 var(--er-font); }
.er a { color: inherit; }
.er img { max-width: 100%; }
.er-icon { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.er-main { padding-bottom: 96px; }
.er-auth-page .er-main { padding-bottom: 40px; }
.er-wrap { max-width: 1560px; margin: 0 auto; padding: 22px 20px 0; }
.er-narrow { max-width: 820px; }
.er-muted { color: var(--er-muted); }
.er-pre { white-space: pre-line; }
.er-title { margin: 0 0 18px; font-size: 30px; font-weight: 800; letter-spacing: -.01em; }
.er-link { color: var(--er-red); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.er-link:hover { color: var(--er-red-dark); }
:focus-visible { outline: 3px solid rgba(227, 23, 62, .4); outline-offset: 2px; }

/* ---------------------------------------------------------------- header and bottom bar */
.er-header { position: sticky; top: 0; z-index: 30; background: var(--er-black); color: #fff; }
.er-header-in { display: flex; align-items: center; gap: 16px; max-width: 1560px; min-height: 58px; margin: 0 auto; padding: 0 20px; }
.er-brand { flex: 1 1 auto; min-width: 0; color: #fff !important; font-size: 24px; font-weight: 800; letter-spacing: -.01em; text-decoration: none; white-space: nowrap; }
.er-nav { display: flex; align-items: center; }
.er-nav a { position: relative; display: inline-flex; align-items: center; gap: 8px; padding: 8px 18px; color: #fff; font-size: 16px; font-weight: 500; text-decoration: none; white-space: nowrap; }
.er-nav a + a { border-left: 1px solid rgba(255, 255, 255, .35); }
.er-nav a:hover { color: #ffd2db; }
.er-nav .er-icon { display: none; }
.er-count { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px; background: var(--er-red); color: #fff; font-size: 12px; font-weight: 800; }

.er-bar { position: fixed; right: 0; bottom: 0; left: 0; z-index: 30; background: var(--er-black); color: #fff; box-shadow: 0 -4px 18px rgba(0, 0, 0, .18); }
.er-bar-in { display: flex; align-items: center; gap: 0; max-width: 1560px; min-height: 66px; margin: 0 auto; padding: 8px 20px; }
.er-bar-icon .er-icon { width: 30px; height: 30px; }
.er-bar-title { padding: 0 26px; margin-left: 20px; border-left: 1px solid rgba(255, 255, 255, .35); font-size: 21px; font-weight: 800; white-space: nowrap; }
.er-bar-item { padding: 0 26px; border-left: 1px solid rgba(255, 255, 255, .35); font-size: 17px; white-space: nowrap; }
.er-bar-item b { font-weight: 700; }
.er-bar-total b { font-weight: 800; }
.er-bar-go { display: inline-flex; align-items: center; gap: 10px; margin-left: auto; padding: 11px 22px; border-radius: 8px; background: #fff; color: var(--er-ink) !important;
    font-size: 18px; font-weight: 800; text-decoration: none; white-space: nowrap; }
.er-bar-go:hover { background: #f1efec; }
.er-bar.er-bump .er-bar-total b { animation: er-bump .6s ease-out; }
@keyframes er-bump { 0% { color: #ffb3c2; } 100% { color: #fff; } }

.er-toast { position: fixed; bottom: 86px; left: 50%; z-index: 40; max-width: calc(100% - 32px); padding: 11px 18px; border-radius: 8px; background: #fff; color: var(--er-ink);
    box-shadow: 0 8px 28px rgba(0, 0, 0, .2); font-weight: 700; transform: translateX(-50%); }
.er-toast.er-toast-error { background: var(--er-red); color: #fff; }

/* ---------------------------------------------------------------- buttons, fields, alerts */
.er-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 10px 22px; border: 2px solid transparent; border-radius: 8px;
    font: 700 16px/1.2 var(--er-font); text-decoration: none; cursor: pointer; }
.er-btn:disabled { opacity: .5; cursor: not-allowed; }
.er-btn-red { background: var(--er-red); color: #fff !important; }
.er-btn-red:hover:not(:disabled) { background: var(--er-red-dark); }
.er-btn-dark { background: var(--er-black); color: #fff !important; }
.er-btn-dark:hover { background: #333; }
.er-btn-outline { border-color: var(--er-red); background: #fff; color: var(--er-red) !important; }
.er-btn-outline:hover { background: #fff2f4; }
.er-btn-block { display: flex; width: 100%; }
.er-field { display: grid; gap: 6px; margin-bottom: 14px; }
.er-field label { font-size: 15px; font-weight: 700; }
.er-input { width: 100%; min-height: 48px; padding: 11px 14px; border: 1.5px solid #9f9a94; border-radius: 7px; background: #fff; color: var(--er-ink); font: 16px/1.3 var(--er-font); }
.er-input:focus { border-color: var(--er-ink); outline: 0; box-shadow: 0 0 0 3px rgba(18, 18, 18, .12); }
textarea.er-input { resize: vertical; }
.er-invalid .er-input { border-color: var(--er-red); }
.er-error { color: var(--er-red); font-size: 13.5px; font-weight: 600; }
.er-password { position: relative; }
.er-password .er-input { padding-right: 52px; }
.er-eye { position: absolute; top: 50%; right: 6px; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 0; border-radius: 6px;
    background: none; color: var(--er-ink); cursor: pointer; transform: translateY(-50%); }
.er-eye .er-icon { width: 24px; height: 24px; }
.er-eye[aria-pressed="true"] { color: var(--er-red); }
.er-alert { margin: 0 0 16px; padding: 11px 14px; border-radius: 8px; font-weight: 600; }
.er-alert-error { background: #fde8ec; color: #a40d2b; }
.er-alert-ok { background: var(--er-green-soft); color: #0d6b2f; }
.er-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.er-row-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
.er-row-firm { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); }
.er-center { margin: 16px 0 0; text-align: center; }

/* ---------------------------------------------------------------- sign-in and request */
.er-auth { display: grid; grid-template-columns: minmax(0, 43%) minmax(0, 57%); max-width: 1180px; margin: 44px auto 0; overflow: hidden; border: 1px solid var(--er-line);
    border-radius: 18px; background: #fff; box-shadow: 0 10px 40px rgba(0, 0, 0, .06); }
.er-auth-wide { grid-template-columns: minmax(0, 37%) minmax(0, 63%); }
.er-auth-panel { position: relative; min-height: 560px; padding: 56px 46px; overflow: hidden; background: #141414; color: #fff; }
.er-auth-panel h2 { position: relative; margin: 0 0 18px; font-size: 46px; font-weight: 800; line-height: 1.1; letter-spacing: -.02em; }
.er-auth-panel p { position: relative; max-width: 330px; margin: 0; color: #d7d3cf; font-size: 21px; line-height: 1.45; }
.er-steps { position: relative; margin: 0; padding-left: 26px; color: #e6e2de; font-size: 21px; line-height: 1.75; }
.er-steps-short { display: none; }
.er-auth-lines { position: absolute; inset: 0; pointer-events: none; }
/* A red diagonal and thin lines, as the printed catalog has them. */
.er-auth-lines::before { content: ""; position: absolute; top: 49%; left: -10%; width: 130%; height: 4px; background: var(--er-red); transform: rotate(-24deg); transform-origin: center; }
.er-auth-lines::after { content: ""; position: absolute; inset: 0;
    background:
        linear-gradient(155deg, transparent 0 calc(50% - 1px), rgba(255, 255, 255, .13) calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)) 70% -30% / 60% 40% no-repeat,
        linear-gradient(28deg, transparent 0 calc(50% - 1px), rgba(255, 255, 255, .1) calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)) -20% 78% / 70% 30% no-repeat,
        linear-gradient(-30deg, transparent 0 calc(50% - 1px), rgba(255, 255, 255, .1) calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)) 120% 92% / 60% 30% no-repeat; }
.er-b2b { position: absolute; bottom: -38px; left: 30px; color: rgba(255, 255, 255, .12); font-size: 230px; font-style: italic; font-weight: 900; line-height: 1; letter-spacing: -.04em;
    pointer-events: none; -webkit-user-select: none; user-select: none; }
.er-auth-form { padding: 52px 54px; }
.er-auth-form h1 { margin: 0 0 4px; font-size: 44px; font-weight: 800; line-height: 1.1; letter-spacing: -.02em; }
.er-sub { margin: 0 0 22px; font-size: 18px; }
.er-forgot { display: block; margin: -4px 0 22px; text-align: right; }
.er-divider { margin: 26px 0; border: 0; border-top: 1px solid var(--er-line); }
.er-group { margin: 0 0 6px; padding: 0 0 6px; border: 0; border-bottom: 1px solid var(--er-line); }
.er-group:last-of-type { border-bottom: 0; }
.er-group legend { padding: 0; margin: 0 0 4px; font-size: 19px; font-weight: 800; }
.er-group .er-field label { font-weight: 500; }
.er-auth-wide .er-auth-form h1 { font-size: 40px; }
.er-done { display: grid; justify-items: start; gap: 6px; padding: 40px 0; }
.er-done .er-icon { width: 54px; height: 54px; color: var(--er-green); }

/* ---------------------------------------------------------------- catalog */
.er-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; margin: 0 0 18px; }
.er-toolbar h1 { flex: 0 0 auto; margin: 0 18px 0 0; font-size: 36px; font-weight: 800; letter-spacing: -.02em; }
.er-search { position: relative; flex: 1 1 320px; max-width: 420px; }
.er-search .er-icon { position: absolute; top: 50%; left: 14px; color: var(--er-muted); transform: translateY(-50%); }
.er-search input { width: 100%; min-height: 46px; padding: 10px 14px 10px 44px; border: 1.5px solid var(--er-line-dark); border-radius: 8px; background: #fff; font: 16px var(--er-font); }
.er-toolbar select { flex: 1 1 170px; max-width: 240px; min-height: 46px; padding: 10px 40px 10px 16px; border: 1.5px solid var(--er-line-dark); border-radius: 8px;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23161616' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 16px center;
    color: var(--er-ink); font: 16px var(--er-font); -webkit-appearance: none; appearance: none; }
.er-search input:focus, .er-toolbar select:focus { border-color: var(--er-ink); outline: 0; }
.er-empty { padding: 48px 20px; border: 1px dashed var(--er-line-dark); border-radius: var(--er-radius); background: #fff; color: var(--er-muted); font-size: 17px; text-align: center; }

/* Every row uses the list's columns (subgrid): photo, name, pack, sizes, price, buy line up from row to row. */
.er-list { display: grid; grid-template-columns: 116px fit-content(210px) max-content minmax(max-content, 1fr) max-content max-content; gap: 10px 0; margin: 0; padding: 0; list-style: none; }
.er-item { display: grid; grid-column: 1 / -1; grid-template-columns: subgrid; align-items: center; min-height: 118px; padding: 8px 14px 8px 10px; border: 1px solid var(--er-line);
    border-radius: var(--er-radius); background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .03); }
.er-item-photo { display: flex; align-items: center; justify-content: center; width: 100px; height: 100px; overflow: hidden; }
.er-item-photo img { width: 100%; height: 100%; object-fit: contain; }
.er-item-name { display: grid; gap: 4px; align-self: stretch; align-content: center; padding: 0 14px; border-left: 1px solid var(--er-line); }
.er-item-name a { text-decoration: none; }
.er-item-name strong { font-size: 20px; font-weight: 800; letter-spacing: -.01em; }
.er-item-name span { font-size: 15px; }

.er-pack-form { display: grid; grid-template-columns: max-content minmax(max-content, 1fr) max-content max-content; grid-template-rows: auto auto; align-items: center;
    column-gap: 0; align-self: stretch; }
.er-item > .er-pack-form { grid-column: 3 / -1; grid-template-columns: subgrid; }
.er-pack-form > *, .er-pack, .er-pack-info { min-width: 0; }
.er-pack, .er-pack-info { display: contents; }
.er-pack-form:has([data-er-pack][value="box"]:checked) .er-pack[data-pack="series"],
.er-pack-form:has([data-er-pack][value="series"]:checked) .er-pack[data-pack="box"] { display: none; }
.er-pack-pick { display: flex; flex-wrap: nowrap; align-items: center; gap: 6px; grid-area: 1 / 1; align-self: end; padding: 0 14px 4px; border-left: 1px solid var(--er-line); white-space: nowrap; }
.er-label { font-size: 14px; font-weight: 700; }
.er-pill { position: relative; margin: 0; cursor: pointer; }
.er-pill input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.er-pill span { display: inline-block; padding: 2px 9px; border: 1.5px solid var(--er-red); border-radius: 6px; color: var(--er-red); font-size: 14px; font-weight: 700; }
.er-pill input:checked + span { background: var(--er-red); color: #fff; }
.er-pill input:focus-visible + span { outline: 3px solid rgba(227, 23, 62, .4); outline-offset: 2px; }
.er-pill:only-of-type span { cursor: default; }
.er-composition { display: flex; flex-direction: column; gap: 2px; grid-area: 2 / 1; align-self: start; padding: 4px 14px 0; border-left: 1px solid var(--er-line); font-size: 14.5px; white-space: nowrap; }
.er-free b { font-weight: 800; }
.er-pack-form .er-sizes { grid-area: 1 / 2 / 3 / 3; justify-self: start; margin: 0 14px 0 0; }
.er-sizes { border-collapse: separate; border-spacing: 0; overflow: hidden; border: 1px solid var(--er-line-dark); border-radius: 6px; font-size: 14.5px; }
.er-sizes th, .er-sizes td { min-width: 36px; padding: 5px 7px; border-left: 1px solid var(--er-line); text-align: center; }
.er-sizes th { padding: 5px 12px; border-left: 0; background: var(--er-head); font-weight: 700; text-align: left; white-space: nowrap; }
.er-sizes tr:first-child td { background: var(--er-head); font-weight: 700; }
.er-sizes tr + tr th, .er-sizes tr + tr td { border-top: 1px solid var(--er-line); }
.er-pack-price { grid-area: 1 / 3 / 3 / 4; align-self: stretch; display: flex; flex-direction: column; justify-content: center; gap: 2px; padding: 0 14px; border-left: 1px solid var(--er-line);
    font-size: 16px; white-space: nowrap; }
.er-pack-price strong { margin-right: 5px; font-size: 21px; font-weight: 800; }
.er-per-pair { color: var(--er-muted); font-size: 15px; }
.er-buy { display: flex; align-items: center; gap: 12px; grid-area: 1 / 4 / 3 / 5; align-self: stretch; padding-left: 14px; border-left: 1px solid var(--er-line); }
.er-qty { display: inline-flex; align-items: center; height: 42px; border: 1.5px solid var(--er-line-dark); border-radius: 8px; background: #fff; }
.er-qty button { width: 34px; height: 100%; border: 0; background: none; color: var(--er-ink); font-size: 22px; line-height: 1; cursor: pointer; }
.er-qty button:hover { color: var(--er-red); }
.er-qty input { width: 44px; height: 100%; border: 0; background: none; color: var(--er-ink); font: 700 18px var(--er-font); text-align: center; -moz-appearance: textfield; }
.er-qty input::-webkit-inner-spin-button, .er-qty input::-webkit-outer-spin-button { margin: 0; -webkit-appearance: none; }
.er-add { min-height: 46px; padding: 10px 20px; font-size: 17px; }

/* ---------------------------------------------------------------- product */
.er-back { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 14px; color: var(--er-muted); font-weight: 600; text-decoration: none; }
.er-back:hover { color: var(--er-ink); }
.er-product-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 28px; align-items: start; }
.er-gallery { position: sticky; top: 76px; }
.er-gallery-main { display: flex; align-items: center; justify-content: center; aspect-ratio: 1; overflow: hidden; border: 1px solid var(--er-line); border-radius: var(--er-radius); background: #fff; }
.er-gallery-main img { width: 100%; height: 100%; object-fit: contain; }
.er-gallery-thumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.er-gallery-thumbs button { width: 72px; height: 72px; padding: 3px; overflow: hidden; border: 1.5px solid var(--er-line); border-radius: 8px; background: #fff; cursor: pointer; }
.er-gallery-thumbs button[aria-current="true"] { border-color: var(--er-ink); }
.er-gallery-thumbs img { width: 100%; height: 100%; object-fit: contain; }
.er-product-info h1 { margin: 0 0 16px; font-size: 34px; font-weight: 800; letter-spacing: -.02em; }
.er-details { display: grid; gap: 6px; margin: 0 0 18px; }
.er-details > div { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 10px; }
.er-details dt { color: var(--er-muted); }
.er-details dd { margin: 0; font-weight: 600; }
.er-description { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--er-line); color: #3a3632; }
.er-product-packs { padding: 16px; border: 1px solid var(--er-line); border-radius: var(--er-radius); background: #fff; }

/* Packs stacked: on the product page and on narrow screens. */
.er-product-packs .er-pack-form { grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: none; row-gap: 12px; }
.er-product-packs .er-pack-pick { grid-area: auto / 1 / auto / -1; padding: 0; border: 0; }
.er-product-packs .er-composition { flex-direction: row; flex-wrap: wrap; column-gap: 16px; grid-area: auto / 1 / auto / -1; padding: 0; border: 0; }
.er-product-packs .er-sizes { grid-area: auto / 1 / auto / -1; margin: 0; }
.er-product-packs .er-pack-price { grid-area: auto / 1 / auto / -1; flex-direction: row-reverse; align-items: baseline; justify-content: space-between; padding: 0; border: 0; }
.er-product-packs .er-buy { grid-area: auto / 1 / auto / -1; padding: 0; border: 0; }
.er-product-packs .er-add { flex: 1 1 auto; }

/* ---------------------------------------------------------------- cart, orders, profile */
.er-cart { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 22px; align-items: start; }
.er-cart-lines { display: grid; gap: 10px; }
.er-line { display: grid; grid-template-columns: 100px minmax(0, 1fr) 120px auto 140px 34px; align-items: center; gap: 16px; padding: 12px 14px; border: 1px solid var(--er-line);
    border-radius: var(--er-radius); background: #fff; }
.er-line-static { grid-template-columns: 100px minmax(0, 1fr) 120px 140px; }
.er-line .er-item-photo { width: 90px; height: 90px; }
.er-line-error { border-color: #f2a8b6; background: #fff7f8; }
.er-line-name { display: grid; justify-items: start; gap: 4px; min-width: 0; }
.er-line-name strong { font-size: 19px; font-weight: 800; }
.er-line-name .er-sizes { margin-top: 4px; font-size: 13px; }
.er-line-name .er-sizes th, .er-line-name .er-sizes td { padding: 3px 7px; min-width: 32px; }
.er-pill-static { display: inline-block; padding: 2px 10px; border-radius: 6px; background: var(--er-red); color: #fff; font-size: 13.5px; font-weight: 700; }
.er-line-msg { color: var(--er-red); font-weight: 700; }
.er-line-price, .er-line-total { display: grid; justify-items: end; text-align: right; }
.er-line-price span { font-weight: 700; }
.er-line-price small, .er-line-total small { color: var(--er-muted); }
.er-line-total strong { font-size: 19px; font-weight: 800; white-space: nowrap; }
.er-remove { width: 34px; height: 34px; border: 0; border-radius: 50%; background: #f3f1ee; color: var(--er-ink); font-size: 22px; line-height: 1; cursor: pointer; }
.er-remove:hover { background: #fde8ec; color: var(--er-red); }
.er-summary { position: sticky; top: 76px; padding: 18px 20px 20px; border: 1px solid var(--er-line); border-radius: var(--er-radius); background: #fff; }
.er-summary h2 { margin: 0 0 12px; font-size: 21px; font-weight: 800; }
.er-summary dl { display: grid; gap: 6px; margin: 0 0 16px; }
.er-summary dl > div { display: flex; justify-content: space-between; gap: 12px; }
.er-summary dt { color: var(--er-muted); }
.er-summary dd { margin: 0; font-weight: 700; text-align: right; }
.er-summary-total { margin-top: 4px; padding-top: 10px; border-top: 1px solid var(--er-line); }
.er-summary-total dt, .er-summary-total dd { color: var(--er-ink); font-size: 21px; font-weight: 800; }
.er-order-info { padding-top: 12px; border-top: 1px solid var(--er-line); }
.er-order-info > div { display: grid !important; gap: 2px; }
.er-order-info dd { text-align: left; font-weight: 600; }
.er-checkout .er-muted { margin: 0 0 12px; font-size: 14px; }
.er-placed { display: flex; align-items: center; gap: 14px; margin: 0 0 18px; padding: 16px 18px; border-radius: var(--er-radius); background: var(--er-green-soft); color: #0d5a28; }
.er-placed .er-icon { width: 36px; height: 36px; }
.er-placed div { display: grid; }
.er-placed strong { font-size: 19px; }
.er-order-head { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 18px; }
.er-order-head .er-title { margin: 0; }
.er-status { display: inline-block; padding: 3px 11px; border-radius: 14px; background: #eeebe7; font-size: 13.5px; font-weight: 700; white-space: nowrap; }
.er-status-new { background: #e7eefc; color: #1d4fb8; }
.er-status-confirmed { background: #efe9fe; color: #5b32b4; }
.er-status-shipped { background: #ddf5f2; color: #0e766e; }
.er-status-completed { background: var(--er-green-soft); color: #0d6b2f; }
.er-table-wrap { overflow-x: auto; border: 1px solid var(--er-line); border-radius: var(--er-radius); background: #fff; }
.er-table { width: 100%; border-collapse: collapse; }
.er-table th { padding: 12px 14px; background: var(--er-head); font-size: 14px; text-align: left; white-space: nowrap; }
.er-table td { padding: 12px 14px; border-top: 1px solid var(--er-line); }
.er-num { text-align: right !important; white-space: nowrap; }
.er-panel { margin-bottom: 18px; padding: 22px; border: 1px solid var(--er-line); border-radius: var(--er-radius); background: #fff; }
.er-panel h2 { margin: 0 0 14px; font-size: 21px; font-weight: 800; }
.er-company { margin-bottom: 22px; padding-bottom: 16px; border-bottom: 1px solid var(--er-line); }
.er-logout { margin: 0 0 30px; }
.er-message { max-width: 640px; margin: 60px auto; padding: 0 20px; text-align: center; }
.er-message h1 { margin: 0 0 20px; font-size: 30px; }

/* ---------------------------------------------------------------- narrower screens */
@media (max-width: 1480px) {
    /* The price above the buttons in the last column. */
    .er-list { grid-template-columns: 110px fit-content(180px) max-content minmax(max-content, 1fr) max-content; }
    .er-pack-form { grid-template-columns: max-content minmax(max-content, 1fr) max-content; row-gap: 8px; }
    .er-pack-price { grid-area: 1 / 3 / 2 / 4; align-self: end; }
    .er-buy { grid-area: 2 / 3 / 3 / 4; align-self: start; justify-content: flex-end; padding-right: 0; }
}
@media (max-width: 1100px) {
    .er-bar-title { display: none; }
    .er-bar-item { padding: 0 16px; font-size: 15px; }
    .er-bar-icon { margin-right: 6px; }
    .er-cart { grid-template-columns: minmax(0, 1fr); }
    .er-summary { position: static; }
    .er-auth, .er-auth-wide { grid-template-columns: minmax(0, 38%) minmax(0, 62%); margin-top: 24px; }
    .er-auth-panel { padding: 40px 30px; }
    .er-auth-panel h2 { font-size: 36px; }
    .er-auth-form { padding: 40px 34px; }
    .er-auth-form h1 { font-size: 34px; }
}
@media (max-width: 1180px) {
    .er-list { grid-template-columns: minmax(0, 1fr); }
    .er-item { grid-template-columns: 96px minmax(0, 1fr); gap: 10px 0; padding: 12px; }
    .er-item-photo { width: 86px; height: 86px; }
    .er-item-name { padding: 0 0 0 14px; }
    .er-pack-form, .er-item > .er-pack-form { grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: none; row-gap: 10px; padding-top: 10px; border-top: 1px solid var(--er-line); }
    .er-pack-pick, .er-composition { grid-area: auto / 1 / auto / -1; padding: 0; border: 0; }
    .er-composition { flex-direction: row; flex-wrap: wrap; column-gap: 16px; }
    .er-pack-form .er-sizes { grid-area: auto / 1 / auto / -1; justify-self: start; margin: 0; }
    .er-pack-price { grid-area: auto / 1 / auto / -1; flex-direction: row-reverse; align-items: baseline; justify-content: space-between; padding: 0; border: 0; }
    .er-buy { grid-area: auto / 1 / auto / -1; padding: 0; border: 0; }
    .er-add { flex: 1 1 auto; }
}
@media (max-width: 900px) {
    .er-product-grid { grid-template-columns: minmax(0, 1fr); }
    .er-gallery { position: static; }
    /* Cart and order lines: photo and name, then the quantity and the total; the size table scrolls in its line. */
    .er-line, .er-line-static { position: relative; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 10px 12px; padding: 12px; }
    .er-line { padding-right: 46px; }
    .er-line .er-item-photo { width: 64px; height: 64px; grid-area: 1 / 1; align-self: start; }
    .er-line-name { grid-area: 1 / 2 / 2 / 4; }
    .er-line-name .er-sizes { display: block; max-width: 100%; overflow-x: auto; }
    .er-line-price { display: none; }
    .er-line .er-qty { grid-area: 2 / 1 / 3 / 3; justify-self: start; }
    .er-line-total { grid-area: 2 / 3; }
    .er-line-static .er-line-total { grid-area: 2 / 1 / 3 / 4; justify-items: end; }
    .er-remove { position: absolute; top: 8px; right: 8px; }
}
@media (max-width: 720px) {
    .er-header-in { min-height: 52px; padding: 0 12px; gap: 6px; }
    .er-brand { font-size: 19px; }
    .er-nav a { padding: 8px 9px; }
    .er-nav a + a { border-left: 0; }
    .er-nav span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    .er-nav .er-icon { display: block; width: 24px; height: 24px; }
    .er-nav .er-count { position: absolute; top: 0; right: -2px; min-width: 18px; height: 18px; padding: 0 5px; font-size: 11px; }
    .er-wrap { padding: 16px 16px 0; }
    .er-title { font-size: 25px; }
    .er-toolbar { gap: 10px; }
    .er-toolbar h1 { flex: 1 1 100%; margin: 0; font-size: 27px; }
    .er-search { flex: 1 1 100%; max-width: none; }
    .er-toolbar select { flex: 1 1 calc(50% - 5px); min-width: 0; max-width: none; padding: 10px 30px 10px 12px; background-position: right 12px center; font-size: 15px; }
    .er-toolbar select:first-of-type { flex-basis: 100%; }
    .er-item-name strong { font-size: 19px; }
    /* Six sizes fit a phone; more scroll inside the row. */
    .er-pack-form .er-sizes { display: block; width: max-content; max-width: 100%; overflow-x: auto; }
    .er-pack-form .er-sizes th { padding: 5px 8px; }
    .er-pack-form .er-sizes td { min-width: 32px; padding: 5px 4px; }
    /* The bar: packs and the total, and the cart's button. */
    .er-bar-in { min-height: 58px; padding: 8px 12px; gap: 0; }
    .er-bar-icon { display: none; }
    .er-bar-item { padding: 0 10px; border-left: 0; font-size: 14px; }
    .er-bar-packs { padding-left: 0; }
    .er-bar-pairs { display: none; }
    .er-bar-total { border-left: 1px solid rgba(255, 255, 255, .3); }
    .er-bar-total { font-size: 15px; }
    .er-bar-go { padding: 9px 12px; font-size: 15px; }
    .er-bar-go .er-icon { display: none; }
    .er-row-2, .er-row-firm { grid-template-columns: minmax(0, 1fr); }
    .er-details > div { grid-template-columns: 130px minmax(0, 1fr); }
    .er-product-info h1 { font-size: 27px; }
    .er-table thead { display: none; }
    .er-table, .er-table tbody, .er-table tr, .er-table td { display: block; width: 100%; }
    .er-table tr { padding: 10px 14px; border-top: 1px solid var(--er-line); }
    .er-table tr:first-child { border-top: 0; }
    .er-table td { display: flex; justify-content: space-between; gap: 12px; padding: 3px 0; border: 0; text-align: right; }
    .er-table td::before { content: attr(data-label); color: var(--er-muted); text-align: left; }

    /* Sign-in and request: the dark panel becomes a banner over the form. */
    body.er-auth-page { background: #f4f2ef; }
    .er-auth, .er-auth-wide { display: block; margin: 14px 12px 0; border-radius: 14px; }
    .er-auth-panel { min-height: 0; height: 160px; padding: 22px 20px; }
    .er-auth-panel h2 { margin: 0 0 6px; font-size: 26px; }
    .er-auth-panel p { display: none; }
    .er-steps { display: none; }
    .er-steps-short { display: block; position: relative; font-size: 15px !important; }
    .er-b2b { top: 50%; right: 14px; bottom: auto; left: auto; font-size: 92px; transform: translateY(-50%); }
    .er-auth-page .er-auth-lines::before { top: 62%; }
    .er-auth-form { padding: 22px 18px 26px; }
    .er-auth-form h1, .er-auth-wide .er-auth-form h1 { font-size: 29px; }
    .er-sub { font-size: 16px; }
    .er-group legend { font-size: 17px; }
    .er-forgot { text-align: left; }
}
@media (prefers-reduced-motion: reduce) { .er-bar.er-bump .er-bar-total b { animation: none; } }
