/* =========================================================================
 * main.css — наши допълнения върху vendor.css (компилирания CSS на макета).
 * vendor.css е READ-ONLY (като bootstrap.min.css в salex) — всички корекции
 * се правят тук.
 * ========================================================================= */

/* --- Reveal анимации (замяна на framer-motion от оригинала) -------------- */
/* Скриваме елементите само когато JS работи (html.js), за да няма
 * невидимо съдържание при изключен JavaScript. */
.js [data-reveal] {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.js [data-reveal].revealed {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .js [data-reveal] { opacity: 1; transform: none; transition: none; }
}

/* --- Залепващ хедър -------------------------------------------------------
 * Страниците вмъкват хедъра с <header th:include="/partials/layout/header">,
 * а th:include ЗАПАЗВА външния <header>. Истинският <header class="sticky
 * top-0"> (partials/layout/acm/header.html) остава затворен в обвивка, висока
 * точно колкото него — sticky няма накъде да се движи и хедърът се скролва.
 * display:contents маха кутията на обвивката, така sticky се отнася към
 * цялата страница. Важи само за новия дизайн (старият няма вложен .sticky).
 * z-index 35: над падащия панел на филтрите (.v5-fpanel.is-one, 30), под
 * демо превключвателя (40) и модалите (1000). */
header:has(> header.sticky) { display: contents; }
header > header.sticky { z-index: 35; }

/* --- Utility класове, липсващи в компилирания vendor.css ------------------ */
/* (vendor.css съдържа само класовете, реално ползвани в оригиналния макет) */
.bg-orange-deep { background-color: var(--color-orange-deep); }
.h-20  { height: 5rem; }
.py-12 { padding-top: 3rem; padding-bottom: 3rem; }
.p-10  { padding: 2.5rem; }
/* И-16: каталогът раздели вертикалния отстъп на <main> между секцията с
 * банера (горе) и самото <main> (долу) — компилираният vendor.css има само
 * py-*, не и pt-*/pb-*. Стойностите са по скалата на Tailwind (--spacing). */
.pt-6    { padding-top: calc(var(--spacing) * 6); }
.pb-6    { padding-bottom: calc(var(--spacing) * 6); }
.gap-x-3 { column-gap: calc(var(--spacing) * 3); }
@media (min-width: 48rem) {
  .md\:pt-8 { padding-top: calc(var(--spacing) * 8); }
  .md\:pb-8 { padding-bottom: calc(var(--spacing) * 8); }
}

/* =========================================================================
 * ВИЗИИ (И-6) — демонстрационни теми за избор от клиента.
 * Цветовете/радиусите в vendor.css са CSS променливи в :root, затова всяка
 * визия е чист override върху html[data-theme=...]. Атрибутът се слага от
 * inline скрипта в head (преди рендер) + theme.js (превключвателя).
 * В1 „Класик" = без атрибут (сегашната визия, никакви промени).
 * ========================================================================= */

/* --- В2 „Бизнес" — корпоративна: тъмносиньо, златен акцент, изчистени ръбове */
html[data-theme="pro"] {
  --color-brand-green: #5588b3;
  --color-green-deep: #1f4e79;
  --color-green-tint: #edf3f8;
  --color-brand-orange: #e3a73c;
  --color-orange-deep: #c58a1e;
  --color-ink: #17212b;
  --color-muted: #4e5a66;
  --color-faint: #82909d;
  --color-surface-2: #f4f6f8;
  --color-border: #dce2e8;
  --radius-control: 6px;
  --radius-card: 10px;
}

/* В2 — структура: делови СПИСЪК вместо грид, банкерски бутони, боксирани
 * филтри. Продуктовата карта става хоризонтален ред: снимка | инфо | поръчка. */
html[data-theme="pro"] .radius-signature { border-radius: 4px; border-top-right-radius: 4px; }
html[data-theme="pro"] [data-add] { background-color: var(--color-green-deep); color: #fff; }
html[data-theme="pro"] [data-add]:hover { background-color: #17405f; }
html[data-theme="pro"] #catalog-grid { grid-template-columns: 1fr; gap: 10px; }
html[data-theme="pro"] #catalog-grid .group.rounded-card:hover { transform: none; box-shadow: 0 1px 4px rgba(23, 33, 43, 0.08); }
@media (min-width: 640px) {
  html[data-theme="pro"] #catalog-grid .group.rounded-card { flex-direction: row; }
  html[data-theme="pro"] #catalog-grid .group.rounded-card > a { flex-direction: row; flex: 1 1 auto; min-width: 0; }
  html[data-theme="pro"] #catalog-grid .group.rounded-card > a > div:first-child {
    width: 180px; min-width: 180px; aspect-ratio: auto; min-height: 100%;
    border-right: 1px solid var(--color-border);
  }
  html[data-theme="pro"] #catalog-grid .group.rounded-card > a > div:nth-child(2) { padding: 14px 20px; gap: 4px; }
  html[data-theme="pro"] #catalog-grid .group.rounded-card > a h3 { min-height: 0; font-size: 17px; }
  html[data-theme="pro"] #catalog-grid .group.rounded-card > div.mt-auto {
    margin: 0; padding: 14px 20px; border-left: 1px solid var(--color-border);
    justify-content: center; min-width: 230px; background-color: var(--color-surface-2);
  }
}
html[data-theme="pro"] #catalog-sidebar h2 { text-transform: uppercase; letter-spacing: 0.05em; font-size: 12px; color: var(--color-muted); }
html[data-theme="pro"] #catalog-filters details,
html[data-theme="pro"] #catalog-filters-mobile details {
  border: 1px solid var(--color-border); border-radius: 6px;
  background-color: var(--color-surface); margin-bottom: 8px; padding: 2px 12px;
}
html[data-theme="pro"] #catalog-filters details summary,
html[data-theme="pro"] #catalog-filters-mobile details summary {
  text-transform: uppercase; letter-spacing: 0.04em; font-size: 12px;
}
html[data-theme="pro"] #catalog-quicknav button { border-radius: 6px; padding: 10px 14px; min-width: 0; }
html[data-theme="pro"] #catalog-quicknav button > span:first-child { display: none; }
/* В2 — начална страница: всички зелени CTA стават плътно тъмносини; лентата
 * със статистиките става тъмносин банер със златни числа. */
html[data-theme="pro"] .bg-brand-green { background-color: var(--color-green-deep); color: #fff; }
html[data-theme="pro"] .bg-brand-green:hover { background-color: #17405f; }
html[data-theme="pro"] main > section.border-y { background-color: var(--color-ink); border-color: var(--color-ink); }
html[data-theme="pro"] main > section.border-y .text-green-deep { color: var(--color-brand-orange); }
html[data-theme="pro"] main > section.border-y .text-muted { color: rgba(255, 255, 255, 0.65); }
html[data-theme="pro"] main > section.border-y .md\:border-l { border-color: rgba(255, 255, 255, 0.15); }

/* --- В3 „Изчистена" — семпла и стилна: монохромен графит, premium-minimal - */
html[data-theme="clean"] {
  --color-brand-green: #a8ada6;
  --color-green-deep: #2c2f2c;
  --color-green-tint: #f2f2ef;
  --color-brand-orange: #d9903f;
  --color-orange-deep: #b5772a;
  --color-ink: #1c1e1c;
  --color-muted: #5f645f;
  --color-faint: #979b97;
  --color-surface-2: #fbfbfa;
  --color-border: #ececea;
  --radius-control: 8px;
  --radius-card: 12px;
}
html[data-theme="clean"] header { box-shadow: none !important; }

/* В3 — структура: ГАЛЕРИЯ без рамки. Картите губят кутията си (само снимка
 * на бял пласт + центриран текст), скрити са арт. №, чипове и подкатегория —
 * минимум информация, максимум въздух. Търсачката е само долна линия. */
html[data-theme="clean"] .radius-signature { border-radius: 6px; border-top-right-radius: 6px; }
html[data-theme="clean"] .group.rounded-card {
  border: 0; box-shadow: none; background: transparent; overflow: visible;
}
html[data-theme="clean"] .group.rounded-card:hover { transform: none; box-shadow: none; border: 0; }
html[data-theme="clean"] .group.rounded-card > a > div:first-child {
  border: 1px solid var(--color-border); border-radius: 12px; background-color: var(--color-surface);
}
html[data-theme="clean"] .group.rounded-card:hover > a > div:first-child { border-color: var(--color-ink); }
html[data-theme="clean"] #catalog-grid { gap: 32px 28px; }
html[data-theme="clean"] #catalog-grid .group.rounded-card > a > div:nth-child(2) { align-items: center; text-align: center; padding: 14px 4px 6px; }
html[data-theme="clean"] #catalog-grid .group.rounded-card > a > div:nth-child(2) > p:first-child { display: none; }   /* подкатегория */
html[data-theme="clean"] #catalog-grid .group.rounded-card > a > div:nth-child(2) > p:nth-child(3) { display: none; } /* арт. № */
html[data-theme="clean"] #catalog-grid .group.rounded-card > a > div:nth-child(2) > div:nth-child(4) { display: none; } /* чипове кашон/пале */
html[data-theme="clean"] #catalog-grid .group.rounded-card > a h3 { min-height: 0; font-weight: 500; }
html[data-theme="clean"] #catalog-grid .group.rounded-card [role="group"] { justify-content: center; }
html[data-theme="clean"] #catalog-grid .group.rounded-card > div.mt-auto { padding: 0 4px 4px; align-items: center; }
html[data-theme="clean"] #catalog-grid .group.rounded-card > div.mt-auto > div:first-child { align-self: center; }
html[data-theme="clean"] [data-add] { background: transparent; border: 1px solid var(--color-ink); color: var(--color-ink); }
html[data-theme="clean"] [data-add]:hover { background-color: var(--color-ink); color: #fff; }
html[data-theme="clean"] #search-input, html[data-theme="clean"] #mobile-search-input {
  border: 0; border-bottom: 1px solid var(--color-border); border-radius: 0; background: transparent;
}
html[data-theme="clean"] #search-input:focus, html[data-theme="clean"] #mobile-search-input:focus {
  box-shadow: none; border-bottom-color: var(--color-ink);
}
html[data-theme="clean"] #catalog-quicknav button {
  border: 0; background: transparent; border-radius: 0; padding: 8px 4px; min-width: 0;
  border-bottom: 2px solid transparent; box-shadow: none;
}
html[data-theme="clean"] #catalog-quicknav button:hover { transform: none; box-shadow: none; }
html[data-theme="clean"] #catalog-quicknav button[aria-pressed="true"] { border-bottom-color: var(--color-ink); background: transparent; color: var(--color-ink); }
html[data-theme="clean"] #catalog-quicknav button > span:first-child { display: none; }
html[data-theme="clean"] #catalog-filters summary,
html[data-theme="clean"] #catalog-filters-mobile summary { font-weight: 500; }
html[data-theme="clean"] #catalog-filters label span.tnum,
html[data-theme="clean"] #catalog-filters-mobile label span.tnum { display: none; }
html[data-theme="clean"] #catalog-sidebar h2 { font-weight: 500; }
/* В3 — начална страница: тънка типография (заглавия 500 вместо bold), CTA са
 * плътно черни, баджът „Добре дошли" е чист текст, статистиките — монохром. */
html[data-theme="clean"] .bg-brand-green { background-color: var(--color-ink); color: #fff; }
html[data-theme="clean"] .bg-brand-green:hover { background-color: #000; }
html[data-theme="clean"] main h1 { font-weight: 500; letter-spacing: -0.01em; }
html[data-theme="clean"] main h2 { font-weight: 500; }
html[data-theme="clean"] main > section:first-of-type .rounded-full.border {
  background: transparent; border-color: transparent; padding-left: 0; color: var(--color-muted);
}
html[data-theme="clean"] main > section:first-of-type .rounded-full.border > span { display: none; }
html[data-theme="clean"] main > section.border-y .text-green-deep { color: var(--color-ink); font-weight: 500; }
html[data-theme="clean"] main .uppercase.text-green-deep { color: var(--color-faint); }

/* --- В4 „Свежа" — закачлива, но стилна: тюркоаз, коралов акцент, меки форми */
html[data-theme="fresh"] {
  --color-brand-green: #2cc0b4;
  --color-green-deep: #0e8c82;
  --color-green-tint: #e5f6f4;
  --color-brand-orange: #ff8a5f;
  --color-orange-deep: #e56a3d;
  --color-ink: #1b3a3d;
  --color-muted: #4f6a6c;
  --color-faint: #7e9496;
  --color-surface-2: #f7faf6;
  --color-border: #e3eae1;
  --radius-control: 14px;
  --radius-card: 22px;
}

/* В4 — структура: едри ПЛОЧКИ (2 колони), пилюлни бутони и ПИЛЮЛНИ ФИЛТРИ
 * (чекбоксовете стават чипове), градиентна горна лента, коралов акцент. */
html[data-theme="fresh"] .radius-signature { border-radius: 999px; border-top-right-radius: 999px; }
html[data-theme="fresh"] [data-add] { background-color: var(--color-brand-orange); color: #fff; }
html[data-theme="fresh"] [data-add]:hover { background-color: var(--color-orange-deep); }
html[data-theme="fresh"] header .bg-ink { background: linear-gradient(90deg, var(--color-green-deep), var(--color-brand-green)); }
html[data-theme="fresh"] #search-input, html[data-theme="fresh"] #mobile-search-input { border-radius: 999px; padding-left: 44px; }
html[data-theme="fresh"] .group.rounded-card {
  border: 0; box-shadow: 0 6px 20px rgba(14, 140, 130, 0.12); border-radius: 22px;
}
html[data-theme="fresh"] .group.rounded-card:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(14, 140, 130, 0.2); }
html[data-theme="fresh"] .group.rounded-card > a > div:first-child {
  background: linear-gradient(160deg, var(--color-green-tint), var(--color-surface) 70%);
}
@media (min-width: 1024px) {
  html[data-theme="fresh"] #catalog-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
}
html[data-theme="fresh"] #catalog-grid .group.rounded-card > a > div:nth-child(2) > div:nth-child(4) span {
  background-color: var(--color-green-tint); border: 0; color: var(--color-green-deep); font-weight: 500;
}
html[data-theme="fresh"] #catalog-grid .group.rounded-card > div.mt-auto > div:first-child { border-radius: 999px; }
html[data-theme="fresh"] #catalog-quicknav button { border: 0; background-color: var(--color-green-tint); border-radius: 18px; }
html[data-theme="fresh"] #catalog-quicknav button[aria-pressed="true"] { background-color: var(--color-green-deep); color: #fff; }
html[data-theme="fresh"] #catalog-filters .pb-3, html[data-theme="fresh"] #catalog-filters-mobile .pb-3 {
  display: flex; flex-wrap: wrap; gap: 6px; padding-top: 4px;
}
html[data-theme="fresh"] #catalog-filters label, html[data-theme="fresh"] #catalog-filters-mobile label {
  display: inline-flex; min-height: 0; width: auto; align-items: center; gap: 6px;
  border: 1px solid var(--color-border); border-radius: 999px; padding: 6px 14px;
  background-color: var(--color-surface); transition: border-color 0.15s, background-color 0.15s;
}
html[data-theme="fresh"] #catalog-filters label:hover, html[data-theme="fresh"] #catalog-filters-mobile label:hover { border-color: var(--color-green-deep); }
html[data-theme="fresh"] #catalog-filters label:has(input:checked), html[data-theme="fresh"] #catalog-filters-mobile label:has(input:checked) {
  background-color: var(--color-green-tint); border-color: var(--color-green-deep);
}
html[data-theme="fresh"] #catalog-filters label input[type="checkbox"], html[data-theme="fresh"] #catalog-filters-mobile label input[type="checkbox"] { display: none; }
html[data-theme="fresh"] #catalog-filters label span.tnum, html[data-theme="fresh"] #catalog-filters-mobile label span.tnum {
  font-size: 11px; color: var(--color-green-deep);
}

/* --- Елементи, съществуващи само в дадена визия (И-8) --------------------
 * Markup-ът носи и двата варианта (span.acm-v5-hide / span.acm-v5-only);
 * CSS показва правилния според активната тема. */
html:not([data-theme="modern"]) .acm-v5-only { display: none !important; }
html[data-theme="modern"] .acm-v5-hide { display: none !important; }

/* --- В5 „Модерна" — по предоставения дизайн (И-7): крем/хартия, горско
 * зелено + оранжев акцент, Arial, тъмен футър, цветни категорийни плочки.
 * Референция: doc/reference/modern-vision/ ------------------------------- */
html[data-theme="modern"] {
  --color-brand-green: #a8c94a;
  --color-green-deep: #6e9f3a;
  --color-green-tint: #e7edda;
  --color-brand-orange: #ef762f;
  --color-orange-deep: #dc6526;
  --color-ink: #18231d;
  --color-muted: #69726c;
  --color-faint: #869089;
  --color-surface: #fffdf8;
  --color-surface-2: #f5f1e8;
  --color-border: #dedfd8;
  --radius-control: 10px;
  --radius-card: 16px;
}
html[data-theme="modern"] body { font-family: Arial, Helvetica, sans-serif; }
html[data-theme="modern"] .radius-signature { border-radius: 10px; border-top-right-radius: 10px; }
/* горна лента и футър: плътно горско зелено */
html[data-theme="modern"] header .bg-ink { background-color: #173e2c; }
html[data-theme="modern"] footer { background-color: #173e2c; border-color: #173e2c; }
html[data-theme="modern"] footer p, html[data-theme="modern"] footer span, html[data-theme="modern"] footer a { color: #dce7df; }
html[data-theme="modern"] footer a:hover, html[data-theme="modern"] footer span:hover { color: #fff; }
/* оранжеви CTA с бял текст (както .primary/.add-button в дизайна) */
html[data-theme="modern"] .bg-brand-green, html[data-theme="modern"] [data-add] {
  background-color: var(--color-brand-orange); color: #fff;
  box-shadow: 0 12px 26px rgba(239, 118, 47, 0.22);
}
html[data-theme="modern"] .bg-brand-green:hover, html[data-theme="modern"] [data-add]:hover { background-color: var(--color-orange-deep); }
html[data-theme="modern"] [data-add] { box-shadow: none; background-color: #173e2c; }
html[data-theme="modern"] [data-add]:hover { background-color: var(--color-brand-orange); }
/* заглавия: по-плътни и по-сбити (Arial 800, tight tracking) */
html[data-theme="modern"] main h1 { font-weight: 800; letter-spacing: -0.045em; }
html[data-theme="modern"] main h2 { font-weight: 800; letter-spacing: -0.03em; }
/* eyebrow етикетите стават оранжеви */
html[data-theme="modern"] main .uppercase.text-green-deep { color: var(--color-brand-orange); letter-spacing: 0.14em; font-weight: 700; }
/* статистики: числата в горско зелено */
html[data-theme="modern"] main > section.border-y .text-green-deep { color: #173e2c; }
/* карти: повдигане + мека сянка (както .product-card:hover) */
html[data-theme="modern"] .group.rounded-card { border-color: #e0e0da; }
html[data-theme="modern"] .group.rounded-card:hover { transform: translateY(-4px); box-shadow: 0 16px 35px rgba(27, 47, 35, 0.09); }
/* категорийните плочки на началната: панел „Бърз достъп" (И-8) — компактни
 * хоризонтални цветни карти: икона в контурен кръг вляво, заглавие + брой
 * продукти до нея, стрелка ↗ горе вдясно, декоративен кръг долу вдясно.
 * (структура: .grid > div[data-reveal] > a → цветът се избира по обвивката) */
html[data-theme="modern"] main .grid > div > a.rounded-card[href^="/catalog/"] {
  border: 0; position: relative;
  display: grid; grid-template-columns: auto 1fr; column-gap: 18px;
  align-content: center; align-items: center;
  min-height: 118px; padding: 16px 24px; border-radius: 24px;
}
html[data-theme="modern"] main .grid > div > a.rounded-card[href^="/catalog/"]::after {
  content: ""; position: absolute; width: 120px; height: 120px; border-radius: 50%;
  right: -30px; bottom: -58px; background: rgba(255, 255, 255, 0.1);
}
html[data-theme="modern"] main .grid > div > a.rounded-card[href^="/catalog/"]::before {
  content: "\2197"; position: absolute; top: 13px; right: 17px;
  font-size: 17px; line-height: 1; color: #fff; opacity: 0.9;
}
/* големият воден знак-икона и описанието отпадат — остават заглавие и брой */
html[data-theme="modern"] main .grid > div > a.rounded-card[href^="/catalog/"] > svg { display: none; }
html[data-theme="modern"] main .grid > div > a.rounded-card[href^="/catalog/"] > p { display: none; }
html[data-theme="modern"] main .grid > div:nth-child(1) > a.rounded-card[href^="/catalog/"] { background-color: #cf692f; }
html[data-theme="modern"] main .grid > div:nth-child(2) > a.rounded-card[href^="/catalog/"] { background-color: #5f8535; }
html[data-theme="modern"] main .grid > div:nth-child(3) > a.rounded-card[href^="/catalog/"] { background-color: #aa8b32; }
html[data-theme="modern"] main .grid > div:nth-child(4) > a.rounded-card[href^="/catalog/"] { background-color: #173e2c; }
html[data-theme="modern"] main .grid > div > a.rounded-card[href^="/catalog/"] :is(h3, p, span, small, strong) { color: #fff; }
html[data-theme="modern"] main .grid > div > a.rounded-card[href^="/catalog/"] svg { color: #fff; }
/* иконата: тънък контурен кръг с малка бяла икона, вляво през двата реда */
html[data-theme="modern"] main .grid > div > a.rounded-card[href^="/catalog/"] .rounded-2xl {
  background-color: transparent; border: 1px solid rgba(255, 255, 255, 0.45);
  width: 54px; height: 54px; border-radius: 50%; grid-row: 1 / 3;
}
html[data-theme="modern"] main .grid > div > a.rounded-card[href^="/catalog/"] .rounded-2xl svg { width: 22px; height: 22px; }
html[data-theme="modern"] main .grid > div > a.rounded-card[href^="/catalog/"] h3 { margin: 0; align-self: end; font-size: 18px; }
/* долният ред: „Разгледай →" отпада, броят продукти застава под заглавието */
html[data-theme="modern"] main .grid > div > a.rounded-card[href^="/catalog/"] > div {
  grid-column: 2; align-self: start; margin: 4px 0 0; padding: 0; border: 0; justify-content: flex-start;
}
html[data-theme="modern"] main .grid > div > a.rounded-card[href^="/catalog/"] > div > span:last-child { display: none; }
html[data-theme="modern"] main .grid > div > a.rounded-card[href^="/catalog/"] > div > span.tnum { color: #fff; opacity: 0.8; }
/* заглавието на секцията „Какво търсите днес?": по-едро, нормална плътност */
html[data-theme="modern"] .acm-v5-h2 { font-weight: 400; font-size: 1.18em; letter-spacing: -0.02em; }
/* каталог: бързата навигация вече е част от тъмния банер — виж И-16 най-долу */
/* търсачка: бяла, заоблена, с мека сянка */
html[data-theme="modern"] #search-input, html[data-theme="modern"] #mobile-search-input {
  background-color: #fff; border-radius: 12px; box-shadow: 0 7px 25px rgba(25, 47, 34, 0.04);
}
/* --- В5: продуктови карти по предоставения дизайн (И-7б) ------------------
 * Структура на картата (productCard): a > [визуал(бадж+img), инфо(подкат,
 * h3, арт№, чипове, цена, складове)] + div.mt-auto [брояч, Добави].
 * Редът на децата е договор — при промяна в JS тези правила се преглеждат. */
/* марка: сива пилюла без точка + „сърце" декорация вдясно */
html[data-theme="modern"] .group.rounded-card > a > div:first-child { background-color: var(--color-surface); }
html[data-theme="modern"] .group.rounded-card > a > div:first-child > span.absolute {
  background-color: #f2f3ef; box-shadow: none; backdrop-filter: none;
  font-size: 12px; font-weight: 700; color: #536058;
}
html[data-theme="modern"] .group.rounded-card > a > div:first-child > span.absolute > span.rounded-full { display: none; }
html[data-theme="modern"] .group.rounded-card > a > div:first-child::after {
  /* „сърцето" (любими) е СКРИТО ЗАСЕГА — няма такава опция.
   * За връщане: content: "\2661"; и махане на display: none. */
  content: none; display: none;
  position: absolute; right: 12px; top: 8px; font-size: 19px; color: #8c948e;
}
/* тип продукт: оранжев, разреден */
html[data-theme="modern"] .group.rounded-card > a > div:nth-child(2) > p:first-child,
html[data-theme="modern"] .group.rounded-card > a p.uppercase {
  color: var(--color-brand-orange); font-weight: 700; letter-spacing: 0.14em; font-size: 11px;
}
/* инфо блок: пренареждане — чиповете (кашон/пале) на един ред с арт. № */
html[data-theme="modern"] .group.rounded-card > a > div:nth-child(2) > p:nth-child(1) { order: 1; }
html[data-theme="modern"] .group.rounded-card > a > div:nth-child(2) > h3 { order: 2; }
html[data-theme="modern"] .group.rounded-card > a > div:nth-child(2) > p:nth-child(3) {
  order: 4; align-self: flex-end; margin-top: -27px; font-size: 12px;
}
/* И-10: чипът „пале" отпада (мострата показва само „кашон · …") —
 * арт. № винаги остава на реда на чипа */
html[data-theme="modern"] .group.rounded-card > a > div:nth-child(2) > div:nth-child(4) > span:nth-child(2) { display: none; }
html[data-theme="modern"] .group.rounded-card > a > div:nth-child(2) > div:nth-child(4) { order: 3; margin-top: 4px; }
html[data-theme="modern"] .group.rounded-card > a > div:nth-child(2) > div:nth-child(5) { order: 5; }
html[data-theme="modern"] .group.rounded-card > a > div:nth-child(2) > div:nth-child(6) { order: 6; }
/* чипове: беж правоъгълничета като в дизайна */
html[data-theme="modern"] .group.rounded-card > a > div:nth-child(2) > div:nth-child(4) span {
  background-color: #f2f2ec; border: 0; border-radius: 5px; color: var(--color-ink);
}
/* цена: „Цена на кашон" + едра цена, единичната цена долу вдясно */
html[data-theme="modern"] .group.rounded-card > a > div:nth-child(2) > div:nth-child(5) { display: flex; flex-direction: column; padding-bottom: 10px; border-bottom: 1px solid #e5e5df; }
html[data-theme="modern"] .group.rounded-card > a > div:nth-child(2) > div:nth-child(5) > p:nth-child(3) {
  align-self: flex-end; margin-top: -24px; font-size: 12px;
}
/* складове: цветни плочки с бял текст вместо точка+сива буква */
html[data-theme="modern"] .group.rounded-card [role="group"] button > span:first-child { display: none; }
html[data-theme="modern"] .group.rounded-card [role="group"] button > span:last-child {
  display: grid; place-items: center; width: 30px; height: 22px; border-radius: 5px;
  color: #fff; font-size: 10px; font-weight: 800; line-height: 1;
}
html[data-theme="modern"] .group.rounded-card [role="group"] { gap: 6px !important; }
html[data-theme="modern"] .group.rounded-card [role="group"] button:has(.bg-st-green)  > span:last-child { background-color: #77a342; }
html[data-theme="modern"] .group.rounded-card [role="group"] button:has(.bg-st-orange) > span:last-child { background-color: #d8a52c; }
html[data-theme="modern"] .group.rounded-card [role="group"] button:has(.bg-st-red)    > span:last-child { background-color: #c96a5a; }
html[data-theme="modern"] .group.rounded-card [role="group"] button:has(.bg-st-grey)   > span:last-child { background-color: #c3c8c3; }
/* ред за поръчка: брояч + „Добави" един до друг */
html[data-theme="modern"] .group.rounded-card > div.mt-auto { flex-direction: row; align-items: stretch; gap: 9px; }
html[data-theme="modern"] .group.rounded-card > div.mt-auto > div:first-child { align-self: auto; }
html[data-theme="modern"] .group.rounded-card > div.mt-auto [data-add] { flex: 1; width: auto; border-radius: 9px; }

/* --- В5: продуктови карти изцяло по мострата (И-10) -----------------------
 * Снимката се заменя с цветна плочка-буква (span.acm-v5-tile), а текстовите
 * разлики („Ваша цена", „кашон · 12 л", „115,00 € / л", „Добави") са дуални
 * span-ове .acm-v5-hide/.acm-v5-only. И двете добавя main.js:decorateV5Cards
 * върху всяка карта; каталогът ги добавя наново след всеки рендер. */
html[data-theme="modern"] .group.rounded-card > a > div:first-child img,
html[data-theme="modern"] .group.rounded-card > a > div:first-child > span.inset-0 { display: none; }
.acm-v5-tile {
  position: absolute; left: 50%; top: 45%; width: 86px; height: 108px;
  margin: -58px 0 0 -43px; display: grid; place-items: center;
  border-radius: 16px; color: #fff; font-size: 40px; font-weight: 800; line-height: 1;
  transform: rotate(var(--v5-rot, -5deg));
}
/* мека елипсовидна сянка „на пода" под плочката */
html[data-theme="modern"] .group.rounded-card > a > div:first-child::before {
  content: ""; position: absolute; left: 50%; bottom: 15%; width: 110px; height: 16px;
  margin-left: -55px; border-radius: 50%;
  background: radial-gradient(closest-side, rgba(24, 35, 29, 0.16), transparent);
}
/* „Добави": горско зелено → оранжево при hover, без плюс-иконата; важи и за
 * началната, където бутонът е .bg-brand-green без [data-add] */
html[data-theme="modern"] .group.rounded-card button.bg-brand-green {
  background-color: #173e2c; color: #fff; box-shadow: none;
}
html[data-theme="modern"] .group.rounded-card button.bg-brand-green:hover { background-color: var(--color-brand-orange); }
html[data-theme="modern"] .group.rounded-card button.bg-brand-green > svg,
html[data-theme="modern"] .group.rounded-card [data-add] > svg { display: none; }
/* броячът: компактен − 1 +, без вътрешни разделители и без единицата („каш.") */
html[data-theme="modern"] .group.rounded-card > div.mt-auto > div:first-child > button { width: 32px; border: 0; }
html[data-theme="modern"] .group.rounded-card > div.mt-auto > div:first-child input { width: 32px; }
html[data-theme="modern"] .group.rounded-card > div.mt-auto span.select-none { display: none; }

/* --- В5: височина на картата 1:1 с мострата (И-10 доп.) -------------------
 * В мострата картата е практически квадратна — при 3 колони на ~1400px тя е
 * 397 широка и ~410 висока, докато нашата беше 596. Пропорциите са свалени от
 * образеца и проверени с измерване в браузъра (визуал 296→166, инфо 236→~190,
 * футър 62→~52). Затова: по-нисък визуал с по-малка плочка, по-стегнати
 * отстъпи и по-ниски контроли. */
html[data-theme="modern"] .group.rounded-card > a > div:first-child {
  aspect-ratio: auto; height: 166px;
}
html[data-theme="modern"] .acm-v5-tile {
  width: 62px; height: 84px; margin: -46px 0 0 -31px; top: 50%;
  border-radius: 12px; font-size: 29px;
}
html[data-theme="modern"] .group.rounded-card > a > div:first-child::before {
  width: 78px; height: 12px; margin-left: -39px; bottom: 13%;
}
html[data-theme="modern"] .group.rounded-card > a > div:first-child::after { top: 10px; right: 12px; font-size: 17px; }
html[data-theme="modern"] .group.rounded-card > a > div:first-child > span.absolute { left: 12px; top: 12px; }
/* инфо блок: по-малки отстъпи; името е на един ред (мострата няма запазено
 * място за втори — при по-дълго име картата расте, а редът се изравнява) */
html[data-theme="modern"] .group.rounded-card > a > div:nth-child(2) { padding: 12px 14px; gap: 5px; }
html[data-theme="modern"] .group.rounded-card > a > div:nth-child(2) > h3 { min-height: 0; font-size: 17px; }
html[data-theme="modern"] .group.rounded-card > a > div:nth-child(2) > p:nth-child(3) { margin-top: -23px; }
html[data-theme="modern"] .group.rounded-card > a > div:nth-child(2) > div:nth-child(5) { padding-bottom: 7px; }
html[data-theme="modern"] .group.rounded-card > a > div:nth-child(2) > div:nth-child(5) > p:nth-child(2) { font-size: 19px; }
/* ред за поръчка: контроли ниски като в мострата (на тесен екран се връщат
 * на 44px — там мострата не важи, а пръстът има нужда от площ) */
html[data-theme="modern"] .group.rounded-card > div.mt-auto { padding: 0 14px 13px; }
/* броячът не се свива — иначе flex го стеснява и overflow-hidden отрязва „+" */
html[data-theme="modern"] .group.rounded-card > div.mt-auto > div:first-child { flex: none; }
html[data-theme="modern"] .group.rounded-card > div.mt-auto > div:first-child > button,
html[data-theme="modern"] .group.rounded-card > div.mt-auto > div:first-child input { height: 32px; }
html[data-theme="modern"] .group.rounded-card > div.mt-auto button.bg-brand-green {
  min-height: 32px; height: 32px; font-size: 14px;
}
@media (max-width: 639px) {
  html[data-theme="modern"] .group.rounded-card > div.mt-auto > div:first-child > button,
  html[data-theme="modern"] .group.rounded-card > div.mt-auto > div:first-child input { height: 44px; }
  html[data-theme="modern"] .group.rounded-card > div.mt-auto button.bg-brand-green { min-height: 44px; height: 44px; }
}
/* --- В5: продуктовата снимка се връща в картата (И-15) --------------------
 * И-10 замени снимката с цветна плочка-буква (така беше в подадената мостра).
 * Целта сега е клиентът да вижда самия продукт, затова снимката се показва
 * отново в пропорция 4:3 като при В1, а плочката-буква и „подовата" ѝ сянка
 * отпадат. Плочката си остава в DOM (main.js:decorateV5Cards я слага при
 * всеки рендер) — само е скрита, за да може да се върне с един ред.
 * Всичко останало от мострата (текстове, чипове, брояч, бутон) е непокътнато;
 * картата пораства от 407 на ~539px, защото визуалната зона става 166→298px. */
html[data-theme="modern"] .group.rounded-card > a > div:first-child {
  aspect-ratio: 4 / 3; height: auto;
}
html[data-theme="modern"] .group.rounded-card > a > div:first-child img { display: block; }
html[data-theme="modern"] .group.rounded-card > a > div:first-child > span.inset-0 { display: grid; }
html[data-theme="modern"] .acm-v5-tile,
html[data-theme="modern"] .group.rounded-card > a > div:first-child::before { display: none; }

/* И-24: продуктовите гридове „Най-поръчвани" (начална) и „Подобни продукти"
 * (продуктова) са отново по 4 карти на ред — както е в markup-а
 * (lg:grid-cols-4) и всичките 4 карти се показват.
 * (Отменя И-10 доп., което ги свиваше до 3 колони и скриваше 4-тата карта.)
 * Под 1024px гридът е 1–2 колони. Каталогът поначало е 3 колони. */
/* легенда за складовете в заглавието на секцията (има я само в каталога) */

/* --- И-25: панел „Пазарувайте по култура" със снимки ----------------------
 * Снимката влиза на мястото на кръглата иконка в картата (markup-ът се
 * подменя от tools/culture-images.ps1 в doc/reference/home.html):
 *   <img class="acm-culture-img" src="/cultures/<slug>.jpg" …>
 * Култура без снимка си остава с иконката — двата вида карти могат да
 * съществуват едновременно, затова правилата тук се закачат за самата
 * снимка (`:has(> .acm-culture-img)`), а не за целия панел.
 * Основното правило е без префикс на визия, за да не се разпада картата
 * при вътрешната сверка `?theme=classic`. */
.acm-culture-img {
  display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover;
  border-radius: 12px; background-color: var(--color-surface-2);
}
/* картата: снимката е почти до кантовете, името е по-плътно, кантът отпада
 * в полза на сянка — както е в подадената мостра */
html[data-theme="modern"] a.group:has(> .acm-culture-img) {
  padding: 10px; gap: 9px; border-color: transparent;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .07), 0 10px 22px -14px rgba(16, 24, 40, .22);
}
/* само при истинска мишка — на телефон :hover „залепва" след докосване */
@media (hover: hover) {
  html[data-theme="modern"] a.group:has(> .acm-culture-img):hover { border-color: var(--color-green-deep); }
}
/* Мобилно: при докосване Chrome/Safari слагат правоъгълно оцветяване върху
 * заоблената карта и рамката изглежда счупена, докато се зарежда новата
 * страница. Махаме го и даваме собствен, заоблен отклик. */
a.group:has(> .acm-culture-img) { -webkit-tap-highlight-color: transparent; }
a.group:has(> .acm-culture-img):active { transform: scale(0.97); }
html[data-theme="modern"] a.group:has(> .acm-culture-img) > span:last-child { gap: 3px; }
html[data-theme="modern"] a.group:has(> .acm-culture-img) span.text-\[14px\] {
  font-size: 15px; font-weight: 700;
}
html[data-theme="modern"] a.group:has(> .acm-culture-img) span.text-\[12px\] { font-size: 13px; }

/* --- В5: hero банер по предоставения дизайн (И-8) -------------------------
 * Markup: tools/templates/hero-v5.html, инжектиран от build.ps1 само на
 * началната страница, непосредствено СЛЕД стандартния hero. Вижда се
 * единствено при html[data-theme="modern"]; при останалите визии е скрит,
 * а при В5 скриваме стандартния hero и лентата статистики (числата са
 * вградени в самия банер). Скриването е с :has(+ .v5-hero) — така
 * правилата не закачат други страници, където банерът липсва. */
/* --hs (hero scale) — ЕДИНСТВЕНИЯТ регулатор за размера на банера.
 * 1 = точно както е в макета; 0.9 = всичко в банера с 10% по-малко.
 * Всички размери по-долу са calc(Npx * var(--hs, 1)) — шрифтове, отстъпи,
 * бутони, картите и илюстрацията, за да остават в същите пропорции.
 * Величините БЕЗ --hs са нарочно: рамки 1px, проценти и em-стойности
 * (подчертаването под „тук.", центрирането на картите) се движат сами.
 * Резервната 1 в var() пази бутоните .v5-btn-*, ако някой ден се ползват
 * извън банера, където --hs я няма. */
.v5-hero { display: none; --hs: 0.9; }
html[data-theme="modern"] main > section:has(+ .v5-hero) { display: none; }
html[data-theme="modern"] .v5-hero ~ section.border-y { display: none; }

/* --- И-7в: бърза лента на В5 (склад / поръчка / кредит / помощ) ----------- */
/* Инжектира се след hero-v5; вижда се само при В5 „Модерна". */
.v5-quick { display: none; }
html[data-theme="modern"] .v5-quick { display: block; background-color: #fff; border-bottom: 1px solid var(--color-border); }
.v5-quick-grid { display: grid; grid-template-columns: repeat(4, 1fr); min-height: 96px; }
.v5-quick-cell {
  display: flex; align-items: center; gap: 11px; padding: 18px 24px;
  border-right: 1px solid var(--color-border);
}
.v5-quick-cell:first-child { border-left: 1px solid var(--color-border); }
.v5-quick-icon {
  width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 auto;
  border-radius: 10px; background-color: #eff3e7; color: var(--color-green-deep);
}
.v5-quick-cell p { display: flex; flex-direction: column; margin: 0; min-width: 0; }
.v5-quick-cell small { color: var(--color-muted); font-size: 11px; margin-bottom: 4px; }
.v5-quick-cell strong { font-size: 14px; color: var(--color-ink); white-space: nowrap; }
.v5-quick-action {
  margin-left: auto; color: var(--color-green-deep); font-size: 12px; font-weight: 700;
  white-space: nowrap; cursor: pointer; transition: color 0.15s;
}
a.v5-quick-action:hover { color: var(--color-brand-orange); }
span.v5-quick-action { cursor: default; }
.v5-quick-badge {
  margin-left: auto; border-radius: 20px; padding: 4px 8px; white-space: nowrap;
  color: var(--color-green-deep); background-color: #edf4e6;
  font-size: 10px; text-transform: uppercase; font-weight: 800; letter-spacing: 0.04em;
}
@media (max-width: 1023px) { .v5-quick-grid { grid-template-columns: repeat(2, 1fr); } .v5-quick-cell { border-bottom: 1px solid var(--color-border); } }
@media (max-width: 639px) { .v5-quick-grid { grid-template-columns: 1fr; } }
html[data-theme="modern"] .v5-hero {
  display: flex; align-items: center; position: relative; overflow: hidden;
  /* Десният край е топлият кремав тон на самата картинка (#fbecd5), за да
   * няма видим шев там, където илюстрацията се слива с фона. */
  background: linear-gradient(100deg, #f5f1e8 46%, #f8f0e2 66%, #fbecd5);
}
/* Височината на банера. `38vw` е ЕДИНСТВЕНИЯТ регулатор — по-голямо число =
 * по-висок банер; `clamp` го държи между 400px и 715px.
 * [047] След преместването на границата кутията с картинката е по-широка
 * (65% вместо 50%), значи и по-„лежаща": при `cover` се реже малко повече
 * отгоре-отдолу. Иска ли се пак ЦЯЛАТА картинка — вдига се `38vw`.
 * Под lg правилото не важи — там илюстрацията е скрита и банерът е висок
 * колкото текста. */
@media (min-width: 1024px) {
  html[data-theme="modern"] .v5-hero { min-height: clamp(400px, 38vw, 715px); }
}
/* — илюстрация: банерът от админа (`homepage_baner_1`) —
 * ГРАНИЦАТА МЕЖДУ ТЕКСТА И КАРТИНКАТА Е ТУК — първото число: `65%` значи
 * „картинката започва на 35% от левия край". По-голям процент = картинката
 * идва по-наляво. [047] премести границата от 50% на 65% по указание.
 *
 * Другите две числа са предпазители, не дизайн:
 *   calc(100% - 460px) — текстовата колона никога не пада под 460px, за да не
 *                        я застигне картинката на по-тесен екран (под ~1300px);
 *   1220px             — таван, за да не се разлее картинката на много широк
 *                        монитор (над ~1880px).
 *
 * `object-fit: cover` с `object-position: 55% 50%` кадрира по средата. При
 * по-широка кутия се реже малко повече отгоре-отдолу — регулаторът е `38vw`
 * във височината по-горе.
 * Маската отляво разтваря картинката във фона, за да няма права граница
 * между илюстрацията и текстовата колона. */
.v5-hero-art { position: absolute; top: 0; right: 0; bottom: 0; width: min(65%, calc(100% - 460px), 1220px); overflow: hidden; }
.v5-hero-img {
  display: block; width: 100%; height: 100%;
  object-fit: cover; object-position: 55% 50%;
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 24%);
          mask-image: linear-gradient(to right, transparent 0, #000 24%);
}
/* Целият десен блок е кликаем, но САМО когато `homepage_baner_1.image_url`
 * е попълнен от админа. Плаващите карти са със z-index:3 — те остават над
 * връзката и си запазват собствените кликове. */
.v5-hero-art-link { position: absolute; inset: 0; z-index: 1; display: block; }
/* — лява колона — */
.v5-hero-wrap { position: relative; z-index: 2; padding-top: calc(40px * var(--hs, 1)); padding-bottom: calc(44px * var(--hs, 1)); }
.v5-hero-copy { max-width: calc(560px * var(--hs, 1)); }
.v5-hero-pill {
  display: inline-flex; align-items: center; gap: calc(8px * var(--hs, 1)); border-radius: 999px;
  background-color: #e9efdc; border: 1px solid rgba(23, 62, 44, 0.08);
  padding: calc(6px * var(--hs, 1)) calc(13px * var(--hs, 1));
  font-size: calc(12px * var(--hs, 1)); font-weight: 700; color: #2f5233;
}
.v5-hero-pill > span { width: calc(6px * var(--hs, 1)); height: calc(6px * var(--hs, 1)); border-radius: 50%; background-color: #6e9f3a; }
.v5-hero-kicker {
  margin-top: calc(20px * var(--hs, 1)); text-transform: uppercase; letter-spacing: 0.18em;
  font-weight: 800; font-size: calc(12px * var(--hs, 1)); color: var(--color-brand-orange);
}
.v5-hero-title {
  margin-top: calc(10px * var(--hs, 1)); font-size: calc(clamp(34px, 4.1vw, 54px) * var(--hs, 1)); line-height: 1.06;
  letter-spacing: -0.045em; font-weight: 800; color: var(--color-ink);
}
.v5-hero-accent { color: var(--color-green-deep); position: relative; display: inline-block; }
.v5-hero-accent svg { position: absolute; left: 2%; bottom: -0.22em; width: 96%; height: 0.16em; color: var(--color-brand-orange); }
.v5-hero-sub { margin-top: calc(18px * var(--hs, 1)); max-width: calc(460px * var(--hs, 1)); font-size: calc(16px * var(--hs, 1)); line-height: 1.6; color: #565e58; }
.v5-hero-cta { margin-top: calc(24px * var(--hs, 1)); display: flex; flex-wrap: wrap; gap: calc(10px * var(--hs, 1)); }
.v5-btn-primary {
  display: inline-flex; align-items: center; gap: calc(9px * var(--hs, 1));
  height: calc(44px * var(--hs, 1)); padding: 0 calc(22px * var(--hs, 1));
  border-radius: calc(9px * var(--hs, 1)); background-color: var(--color-brand-orange); color: #fff;
  font-weight: 700; font-size: calc(15px * var(--hs, 1)); box-shadow: 0 10px 22px rgba(239, 118, 47, 0.22);
  transition: background-color 0.15s, transform 0.15s;
}
.v5-btn-primary:hover { background-color: var(--color-orange-deep); }
.v5-btn-primary:active { transform: scale(0.98); }
.v5-btn-ghost {
  display: inline-flex; align-items: center; gap: calc(9px * var(--hs, 1));
  height: calc(44px * var(--hs, 1)); padding: 0 calc(20px * var(--hs, 1));
  border-radius: calc(9px * var(--hs, 1)); background-color: #fffdf8; border: 1px solid var(--color-border);
  color: var(--color-ink); font-weight: 700; font-size: calc(15px * var(--hs, 1)); transition: border-color 0.15s;
}
.v5-btn-ghost:hover { border-color: var(--color-ink); }
.v5-hero-cta svg { width: calc(17px * var(--hs, 1)); height: calc(17px * var(--hs, 1)); }
.v5-hero-stats { margin-top: calc(28px * var(--hs, 1)); padding-top: calc(20px * var(--hs, 1)); border-top: 1px solid #e0ddd0; display: flex; max-width: calc(460px * var(--hs, 1)); }
.v5-hero-stats > div { padding-right: calc(24px * var(--hs, 1)); }
.v5-hero-stats > div + div { border-left: 1px solid #e0ddd0; padding-left: calc(24px * var(--hs, 1)); }
.v5-hero-stats dt { font-size: calc(25px * var(--hs, 1)); font-weight: 800; letter-spacing: -0.02em; color: #173e2c; }
.v5-hero-stats dd { margin-top: calc(5px * var(--hs, 1)); font-size: calc(12px * var(--hs, 1)); color: var(--color-muted); }
/* — плаващи карти върху илюстрацията — */
.v5-hero-card {
  position: absolute; z-index: 3; border-radius: calc(13px * var(--hs, 1)); background-color: #fffdf8;
  box-shadow: 0 16px 35px rgba(27, 47, 35, 0.12);
}
.v5-hero-card-promo { top: calc(28px * var(--hs, 1)); right: calc(32px * var(--hs, 1)); padding: calc(14px * var(--hs, 1)) calc(17px * var(--hs, 1)); }
.v5-hero-card-kicker { font-size: calc(10px * var(--hs, 1)); font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; color: var(--color-brand-orange); }
.v5-hero-card-big { margin-top: calc(5px * var(--hs, 1)); font-size: calc(17px * var(--hs, 1)); font-weight: 800; color: var(--color-ink); }
.v5-hero-card-note { margin-top: calc(2px * var(--hs, 1)); font-size: calc(11px * var(--hs, 1)); color: var(--color-muted); }
/* Кампанийната оферта, когато идва от `homepage_promo_text`.
   Полето е HTML от CMS-а ([050]): `<p>` абзаци с `<b>`, `<i>` и
   `<span style="color:…">` вътре. ЦВЕТОВЕТЕ И ПОЛУЧЕРНИЯТ ШРИФТ ИДВАТ ОТТАМ —
   тук не се задават, за да няма борба с inline стила. Оттук са само размерът,
   отстоянията между абзаците и таванът на ширината, за да не покрие картата
   илюстрацията. Основната дебелина е 500, за да личи `<b>` вътре в текста. */
.v5-hero-card-text { max-width: calc(240px * var(--hs, 1)); font-size: calc(13px * var(--hs, 1)); font-weight: 500; line-height: 1.35; color: var(--color-ink); }
.v5-hero-card-text p { margin: 0; }
.v5-hero-card-text p + p { margin-top: calc(4px * var(--hs, 1)); }
.v5-hero-card-order { left: 55%; bottom: calc(34px * var(--hs, 1)); display: flex; align-items: center; gap: calc(11px * var(--hs, 1)); padding: calc(12px * var(--hs, 1)) calc(16px * var(--hs, 1)); }
.v5-hero-check {
  display: grid; place-items: center; width: calc(32px * var(--hs, 1)); height: calc(32px * var(--hs, 1)); border-radius: 50%;
  background-color: #e9efdc; color: #5f8535; flex-shrink: 0;
}
.v5-hero-check svg { width: calc(15px * var(--hs, 1)); height: calc(15px * var(--hs, 1)); }
.v5-hero-order-no { display: block; font-size: calc(11px * var(--hs, 1)); color: var(--color-muted); }
.v5-hero-order-status { display: block; margin-top: calc(2px * var(--hs, 1)); font-size: calc(14px * var(--hs, 1)); font-weight: 800; color: var(--color-ink); }
.v5-hero-order-when { margin-left: calc(13px * var(--hs, 1)); align-self: flex-start; font-size: calc(11px * var(--hs, 1)); font-weight: 700; color: var(--color-green-deep); }
/* — под lg: само текстовата колона върху крем фон — */
@media (max-width: 1023px) {
  .v5-hero-art, .v5-hero-card { display: none; }
  .v5-hero-wrap { padding-top: calc(32px * var(--hs, 1)); padding-bottom: calc(36px * var(--hs, 1)); }
}

/* --- Превключвател на визии (DEMO-ONLY UI на theme.js) -------------------- */
.acm-vision {
  position: fixed;
  bottom: 16px;
  left: 16px;
  z-index: 40;
  font-family: var(--font-sans);
}
.acm-vision-btn {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 9999px;
  border: 0;
  cursor: pointer;
  background-color: var(--color-green-deep);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  box-shadow: 0 2px 10px rgba(20, 24, 20, 0.25);
  transition: transform 0.15s cubic-bezier(0.22, 1, 0.36, 1);
}
.acm-vision-btn:hover { transform: scale(1.06); }
.acm-vision-panel {
  position: absolute;
  bottom: 54px;
  left: 0;
  min-width: 280px;
  overflow: hidden;
  border-radius: var(--radius-card);
  border: 1px solid var(--color-border);
  background-color: var(--color-surface);
  box-shadow: 0 8px 30px rgba(20, 24, 20, 0.18);
}
.acm-vision-panel p.acm-vision-title {
  padding: 10px 14px 8px;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.025em;
  color: var(--color-faint);
  border-bottom: 1px solid var(--color-border);
}
.acm-vision-opt {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  border: 0;
  cursor: pointer;
  background: none;
  padding: 10px 14px;
  font-size: 14px;
  text-align: left;
  color: var(--color-ink);
  transition: background-color 0.2s;
}
.acm-vision-opt:hover { background-color: var(--color-surface-2); }
.acm-vision-opt .acm-vision-dot {
  display: inline-block;
  width: 14px;
  height: 14px;
  border-radius: 9999px;
  flex-shrink: 0;
  border: 1px solid rgba(0, 0, 0, 0.12);
}
.acm-vision-opt[aria-checked="true"] {
  font-weight: 600;
  background-color: var(--color-green-tint);
}

/* --- Тостове -------------------------------------------------------------- */
.acm-toast {
  animation: acm-toast-in 0.2s cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes acm-toast-in {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: none; }
}

/* --- В5: панелът „Предимства" по мострата (И-11) ---------------------------
 * „Всичко под контрол / Повече време за полето." вляво + три номерирани
 * колони с оранжева горна черта вдясно. Дуалните текстове (надслов, заглавие,
 * описания) са в reference/home.html като span.acm-v5-hide / span.acm-v5-only;
 * номерата 01/02/03 са декоративни (CSS брояч), четвъртата карта отпада.
 * Hook: section.bg-green-tint съществува само на началната страница. */
html[data-theme="modern"] section.bg-green-tint { background-color: var(--color-surface); }
/* двуколонна подредба на широк екран: заглавен блок вляво, колоните вдясно */
@media (min-width: 1024px) {
  html[data-theme="modern"] section.bg-green-tint > div {
    display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    column-gap: 72px; align-items: start;
  }
  html[data-theme="modern"] section.bg-green-tint > div > .grid { margin-top: 0; }
}
/* заглавието: едро, нормална плътност (както в мострата) */
html[data-theme="modern"] section.bg-green-tint h2 {
  font-weight: 400; letter-spacing: -0.02em; font-size: 38px; line-height: 1.18; margin-top: 16px;
}
/* колоните: три равни, без кутии-карти */
html[data-theme="modern"] section.bg-green-tint > div > .grid {
  gap: 44px; counter-reset: acm-v5-benefit;
}
@media (min-width: 1024px) {
  html[data-theme="modern"] section.bg-green-tint > div > .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
html[data-theme="modern"] section.bg-green-tint > div > .grid > div { counter-increment: acm-v5-benefit; }
html[data-theme="modern"] section.bg-green-tint > div > .grid > div:nth-child(4) { display: none; }
/* картата губи кутията: оранжева черта горе + номер + заглавие + описание */
html[data-theme="modern"] section.bg-green-tint > div > .grid > div > div {
  background: transparent; box-shadow: none; border-radius: 0;
  padding: 22px 0 0; border-top: 2px solid var(--color-brand-orange);
}
html[data-theme="modern"] section.bg-green-tint > div > .grid > div > div::before {
  content: counter(acm-v5-benefit, decimal-leading-zero); display: block;
  color: var(--color-brand-orange); font-size: 13px; font-weight: 700; letter-spacing: 0.12em;
}
html[data-theme="modern"] section.bg-green-tint > div > .grid > div > div > span.rounded-2xl { display: none; }
html[data-theme="modern"] section.bg-green-tint > div > .grid > div > div > h3 {
  margin-top: 28px; font-weight: 400; font-size: 19px;
}
html[data-theme="modern"] section.bg-green-tint > div > .grid > div > div > p {
  margin-top: 12px; font-size: 14px; line-height: 1.6;
}

/* --- Слайдер „Най-нови продукти" на началната страница --------------------
 * Markup: partials/homepage/acm/main.html, поведение: acm-bridge.js
 * (initAcmSliders). Заменя секцията с категориите „Какво търсите днес?".
 *
 * Лентата е обикновено хоризонтално превъртане с прилепване (scroll-snap),
 * а НЕ transform-карусел. Три причини:
 *   1. на телефон плъзгането с пръст работи само по себе си, без код;
 *   2. клавиатурата и екранните четци се движат из картите нормално —
 *      браузърът сам довърта фокусираната карта;
 *   3. без JavaScript съдържанието не изчезва — стрелките се скриват, а
 *      лентата остава превъртаема (затова правилата за тях са под `.js`).
 *
 * Ширината на картата се задава ТУК, не в JavaScript; скриптът я отчита от
 * разметката, за да знае по колко карти да прелиства. Праговете
 * (900/1400/1700/2000/2350px) повтарят тези на решетките по-долу
 * („ШИРИНА НА СЪДЪРЖАНИЕТО"), за да е еднакво голяма картата в слайдера
 * и в останалите секции. Сменени с [040] заедно с решетките.
 * ------------------------------------------------------------------------- */
.acm-slider-frame { position: relative; }

.acm-slider-track {
  display: flex;
  gap: 20px;                    /* колкото `gap-5` на решетките наоколо */
  overflow-x: auto;
  overflow-y: hidden;           /* иначе повдигането при hover ражда вертикална лента */
  scroll-snap-type: x mandatory;
  padding: 8px 0 16px;          /* въздух за сянката и за hover `-translate-y` */
  scrollbar-width: none;              /* Firefox */
  -ms-overflow-style: none;           /* стар Edge */
}
.acm-slider-track::-webkit-scrollbar { display: none; }

.acm-slider-item { flex: 0 0 100%; scroll-snap-align: start; }
/* Праговете са СЪЩИТЕ като на продуктовите решетки ([040]) — лентата и
 * решетката под нея показват карти с една и съща ширина. Изваденото в calc()
 * е сборът на междините: (брой карти - 1) x 20px gap. */
@media (min-width:  640px) { .acm-slider-item { flex-basis: calc((100% -  20px) / 2); } }
@media (min-width:  900px) { .acm-slider-item { flex-basis: calc((100% -  40px) / 3); } }
@media (min-width: 1024px) { .acm-slider-item { flex-basis: calc((100% -  60px) / 4); } }
@media (min-width: 1400px) { .acm-slider-item { flex-basis: calc((100% -  80px) / 5); } }
@media (min-width: 1700px) { .acm-slider-item { flex-basis: calc((100% - 100px) / 6); } }
@media (min-width: 2000px) { .acm-slider-item { flex-basis: calc((100% - 120px) / 7); } }
@media (min-width: 2350px) { .acm-slider-item { flex-basis: calc((100% - 140px) / 8); } }

/* Културите на началната страница — по-малки карти, повече на ред.
 * На широк екран 8, колкото беше старата решетка `lg:grid-cols-8`. */
.acm-slider--cultures .acm-slider-track { gap: 16px; }
.acm-slider--cultures .acm-slider-item { flex-basis: calc((100% -  16px) / 2); }
@media (min-width:  480px) { .acm-slider--cultures .acm-slider-item { flex-basis: calc((100% -  32px) / 3); } }
@media (min-width:  768px) { .acm-slider--cultures .acm-slider-item { flex-basis: calc((100% -  48px) / 4); } }
@media (min-width: 1024px) { .acm-slider--cultures .acm-slider-item { flex-basis: calc((100% -  80px) / 6); } }
@media (min-width: 1280px) { .acm-slider--cultures .acm-slider-item { flex-basis: calc((100% - 112px) / 8); } }

/* Картите в лентата НЕ се появяват с reveal анимацията: те идват отстрани, а
 * анимацията ги вдига отдолу — при всяко прелистване се вижда прелитане. */
.js .acm-slider-track [data-reveal] { opacity: 1; transform: none; transition: none; }

/* --- Стрелки -------------------------------------------------------------- */
.acm-slider-nav { display: none; }
.js .acm-slider-nav {
  display: grid; place-items: center;
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 2;
  width: 44px; height: 44px;            /* 44px — минимумът за пръст, както бутоните в макета */
  border: 1px solid var(--color-border); border-radius: 999px;
  background-color: var(--color-surface); color: var(--color-ink);
  box-shadow: 0 2px 10px rgba(16, 24, 40, 0.12);
  cursor: pointer;
  transition: background-color 0.15s, border-color 0.15s, color 0.15s, box-shadow 0.15s;
}
.js .acm-slider-nav:hover {
  background-color: var(--color-green-deep); border-color: var(--color-green-deep); color: #fff;
  box-shadow: 0 4px 14px rgba(16, 24, 40, 0.18);
}
.js .acm-slider-nav:focus-visible { outline: 2px solid var(--color-green-deep); outline-offset: 2px; }
/* Излизат в отстъпа на контейнера (`px-4` = 16px), не върху картите. */
.acm-slider-prev { left: -22px; }
.acm-slider-next { right: -22px; }
@media (max-width: 767px) {
  .acm-slider-prev { left: -10px; }
  .acm-slider-next { right: -10px; }
}

/* --- Точки ---------------------------------------------------------------- */
.acm-slider-dots { display: flex; justify-content: center; gap: 7px; margin-top: 4px; }
.acm-slider-dot {
  width: 7px; height: 7px; padding: 0; border: 0; border-radius: 999px;
  background-color: var(--color-border); cursor: pointer;
  transition: width 0.15s, background-color 0.15s;
}
.acm-slider-dot.is-active { width: 22px; background-color: var(--color-green-deep); }

/* Всички карти се побират наведнъж — няма какво да се прелиства.
 * Класът се слага от acm-bridge.js и се преизчислява при промяна на ширината. */
.acm-slider.is-static .acm-slider-nav,
.acm-slider.is-static .acm-slider-dots { display: none; }

/* --- И-12: бял фон САМО на логото Universum в подвала ---------------------
 * Логото е син текст върху прозрачен PNG и се губи на тъмния футър на В5.
 * Бялата плочка е върху самата картинка (не върху линка „Изпълнено чрез");
 * content-box, за да не изяде padding-ът от 132px ширина на логото.
 * Върху белия футър на В1 плочката е невидима — правилото е общо за темите.
 *
 * ⚠️ Съвпадението е по ЧАСТ от адреса (`*=`), а не по целия. Картинката стои
 * на две различни места: в макета е `/assets/img/universum-logo.png`, а тук —
 * `/assets/acm/img/universum-logo.png` (`layout/acm/footer.html:89`). Правило,
 * закачено за целия адрес, важеше само в макета и на сайта плочката изобщо не
 * се появяваше. Виж changelog [024]. */
footer img[src*="universum-logo"] {
  background-color: #fff;
  border-radius: 6px;
  padding: 5px 8px;
  box-sizing: content-box;
}

/* =========================================================================
 * И-16: В5 „Модерна" — каталожна страница по предоставения дизайн
 * (тъмнозелен банер със заглавие и категории, филтри в бяла карта, брояч
 * на реда със сортирането, бадж „Договорена цена" върху картите).
 * Markup: tools/pages/catalog-main.html + добавките в catalog.js.
 * Всичко тук важи САМО при html[data-theme="modern"] — В1 „Класик" ползва
 * същия markup без тези стилове и остава непроменена.
 * ========================================================================= */

/* --- Тъмният банер (трохи + заглавие + категории) -------------------------
 * Секцията е извън <main>, затова фонът стига до ръбовете на екрана без
 * трикове с vw; вътрешната обвивка държи съдържанието в решетката на сайта. */
html[data-theme="modern"] .v5-cat-head {
  position: relative; overflow: hidden; color: #fff;
  background: linear-gradient(145deg, #173e2c 0%, #214d37 62%, #345f3b 100%);
}
/* декоративни концентрични кръгове горе вдясно */
html[data-theme="modern"] .v5-cat-head::after {
  content: ""; position: absolute; width: 430px; height: 430px; right: -120px; top: -230px;
  border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 50%;
  box-shadow: 0 0 0 55px rgba(255, 255, 255, 0.03), 0 0 0 110px rgba(255, 255, 255, 0.025);
  pointer-events: none;
}
html[data-theme="modern"] .v5-cat-head-inner { position: relative; z-index: 1; padding-bottom: 28px; }
/* трохите: светли върху тъмното */
html[data-theme="modern"] .v5-cat-head nav a { color: rgba(255, 255, 255, 0.62); }
html[data-theme="modern"] .v5-cat-head nav a:hover { color: #fff; }
html[data-theme="modern"] .v5-cat-head nav svg { color: rgba(255, 255, 255, 0.38); }
html[data-theme="modern"] .v5-cat-head #catalog-breadcrumb { color: #fff; }

/* --- Заглавен блок: текст вляво, брой продукти вдясно --------------------- */
.v5-cat-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin: 18px 0 14px; }
.v5-cat-kicker {
  text-transform: uppercase; letter-spacing: 0.16em; font-weight: 800;
  font-size: 12px; color: var(--color-brand-orange);
}
.v5-cat-h1 {
  margin-top: 12px; font-size: clamp(36px, 4.4vw, 60px); line-height: 0.98;
  letter-spacing: -0.05em; font-weight: 800; color: #fff;
}
.v5-cat-h1 span { color: #b6d35d; }
.v5-cat-sub { margin-top: 18px; font-size: 15px; color: rgba(255, 255, 255, 0.68); }
.v5-cat-stat {
  display: flex; align-items: center; gap: 13px; flex: 0 0 auto;
  border-left: 1px solid rgba(255, 255, 255, 0.2); padding: 8px 10px 8px 25px; margin-bottom: 5px;
}
.v5-cat-stat > span:first-child { font-size: 43px; font-weight: 800; line-height: 1; color: #b6d35d; }
.v5-cat-stat > span:last-child { display: flex; flex-direction: column; }
.v5-cat-stat strong { font-size: 13px; font-weight: 700; }
.v5-cat-stat small { margin-top: 5px; font-size: 11px; color: rgba(255, 255, 255, 0.55); }

/* --- Категорийните плочки в банера ----------------------------------------
 * Същите бутони като при В1 (рендерират се от catalog.js), но полупрозрачни
 * върху тъмното, с оранжева стрелка вдясно и бяла активна плочка.
 * „Всички продукти" (data-cat="") застава първа — само с order, за да не се
 * пипа масивът QUICKNAV в catalog.js (той важи и за В1). */
html[data-theme="modern"] #catalog-quicknav button[data-cat=""] { order: -1; }
html[data-theme="modern"] #catalog-quicknav button {
  min-height: 73px; border-radius: 12px; padding: 0 15px;
  border: 1px solid rgba(255, 255, 255, 0.14); background-color: rgba(255, 255, 255, 0.065);
  color: #fff; box-shadow: none;
}
html[data-theme="modern"] #catalog-quicknav button::after {
  content: "\2192"; margin-left: auto; padding-left: 10px; font-size: 15px; line-height: 1;
}
html[data-theme="modern"] #catalog-quicknav button > span:first-child {
  width: 37px; height: 37px; border-radius: 9px; border-top-right-radius: 9px;
  background-color: rgba(182, 211, 93, 0.18); color: #b6d35d;
}
html[data-theme="modern"] #catalog-quicknav button > span:first-child svg { width: 19px; height: 19px; }
html[data-theme="modern"] #catalog-quicknav button span.tnum { color: rgba(255, 255, 255, 0.55); font-size: 12px; }
/* активна и посочена плочка: бяла, с тъмен текст */
html[data-theme="modern"] #catalog-quicknav button:hover,
html[data-theme="modern"] #catalog-quicknav button[aria-pressed="true"] {
  background-color: #fff; border-color: #fff; color: var(--color-ink);
}
html[data-theme="modern"] #catalog-quicknav button:hover > span:first-child,
html[data-theme="modern"] #catalog-quicknav button[aria-pressed="true"] > span:first-child {
  background-color: #edf3df; color: var(--color-green-deep);
}
html[data-theme="modern"] #catalog-quicknav button:hover span.tnum,
html[data-theme="modern"] #catalog-quicknav button[aria-pressed="true"] span.tnum { color: var(--color-muted); }
html[data-theme="modern"] #catalog-quicknav button:hover::after,
html[data-theme="modern"] #catalog-quicknav button[aria-pressed="true"]::after { color: var(--color-brand-orange); }
/* Плочките в шаблона са <a> (не <button> като в макета) и носят Tailwind
 * `hover:-translate-y-0.5`. Лентата е `overflow-x-auto`, а това реже и
 * вертикално — повдигнатата плочка губеше горния си ръб, а мишката при
 * долния ръб я изпускаше и тя „трептеше" нагоре-надолу. Махаме само
 * повдигането; външният вид на плочката не се пипа.
 * Второто повдигане идва от В5 по-горе — `.group.rounded-card:hover`
 * (translateY(-4px) + сянка 16/35px) хваща и тези плочки, защото носят същите
 * класове. Сянката също се реже от лентата, затова и тя пада тук. */
#catalog-quicknav > a:hover { translate: none; transform: none; box-shadow: none; }

/* --- Табове: подсказка вдясно (само при таба „По категория") --------------- */
.v5-cat-tabhint { margin-left: auto; padding-right: 2px; font-size: 12px; color: var(--color-faint); }
html[data-theme="modern"] [role="tablist"]:has(#catalog-tab-culture[aria-selected="true"]) + .v5-cat-tabhint { display: none; }

/* --- Филтрите като бяла карта --------------------------------------------- */
html[data-theme="modern"] #catalog-sidebar > div {
  background-color: #fff; border: 1px solid #e1e1db; border-radius: 14px; overflow: hidden;
}
html[data-theme="modern"] #catalog-sidebar > div > h2 {
  margin: 0; padding: 17px 16px; border-bottom: 1px solid #e6e6e0; font-size: 15px;
}
html[data-theme="modern"] #catalog-filters { padding-right: 0; }
html[data-theme="modern"] #catalog-filters > details,
html[data-theme="modern"] #catalog-filters-mobile > details { padding: 0; border-bottom-color: #ecece7; }
html[data-theme="modern"] #catalog-filters summary,
html[data-theme="modern"] #catalog-filters-mobile summary {
  padding: 0 16px; min-height: 48px; font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.07em;
}
html[data-theme="modern"] #catalog-filters details > div,
html[data-theme="modern"] #catalog-filters-mobile details > div { padding: 0 16px 14px; }
html[data-theme="modern"] #catalog-filters label,
html[data-theme="modern"] #catalog-filters-mobile label { font-size: 13px; }
html[data-theme="modern"] #catalog-filters input[type="checkbox"],
html[data-theme="modern"] #catalog-filters-mobile input[type="checkbox"] { accent-color: var(--color-brand-orange); }
/* броячите: сиви пилюли вместо гол текст */
html[data-theme="modern"] #catalog-filters label > span.tnum,
html[data-theme="modern"] #catalog-filters-mobile label > span.tnum {
  min-width: 22px; padding: 3px 6px; text-align: center;
  border-radius: 8px; background-color: #f1f1ed; color: #6b746d; font-size: 11px;
}

/* --- Тулбар: броят продукти вляво, сортирането вдясно ---------------------- */
@media (min-width: 1024px) {
  html[data-theme="modern"] #catalog-chips { width: auto; order: -1; margin-right: auto; }
}
html[data-theme="modern"] #catalog-chips span.tnum:first-child { color: var(--color-ink); font-weight: 700; }

/* --- Продуктова карта: бадж „Договорена цена" + заглавен ред за складовете - */
.v5-cat-deal {
  position: absolute; right: 0; top: 9px; z-index: 1;
  padding: 5px 8px; border-radius: 8px 0 0 8px;
  background-color: #edf4e4; color: #5f8535;
  font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;
}
.v5-cat-stocktitle {
  display: flex; align-items: baseline; justify-content: space-between;
  margin-bottom: 7px; font-size: 11px; font-weight: 700; color: var(--color-ink);
}
.v5-cat-stocktitle small { font-size: 10px; font-weight: 400; color: var(--color-muted); }

/* =========================================================================
 * И-18: В2 „Модерна" — филтрите като хоризонтална лента над продуктите
 * Markup: #catalog-filterbar (tools/pages/catalog-main.html), съдържание от
 * catalog.js:renderFilterBar. Страничният панел се скрива, гридът остава
 * пълноширок. Само при html[data-theme="modern"] — В1 запазва колоната
 * вляво (нейните стилове от И-16 по-горе остават непокътнати).
 * ========================================================================= */

/* Страничната колона и мобилният бутон „Филтри" отпадат — лентата ги замества.
 * !important, защото catalog.js:renderTabs задава display по inline стил. */
html[data-theme="modern"] #catalog-sidebar,
html[data-theme="modern"] #catalog-filters-open { display: none !important; }
html[data-theme="modern"] #catalog-layout { display: block !important; }

/* --- Редът с пилюлите ------------------------------------------------------ */
.v5-fbar-row { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }
.v5-fchip {
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 42px; padding: 0 15px; border-radius: 999px;
  border: 1px solid #dedcd3; background-color: #fff;
  font-size: 14px; color: var(--color-ink); white-space: nowrap;
  transition: background-color .15s, border-color .15s, box-shadow .15s;
}
.v5-fchip:hover { border-color: var(--color-green-deep); background-color: #fbfbf7; }
.v5-fchip svg { color: var(--color-faint); transition: transform .18s, color .15s; }
.v5-fchip.is-active { background-color: #eef4e5; border-color: rgba(74, 111, 44, 0.45); font-weight: 600; }
.v5-fchip.is-active svg { color: var(--color-green-deep); }
.v5-fchip.is-open { border-color: var(--color-green-deep); box-shadow: 0 0 0 3px rgba(74, 111, 44, 0.13); }
.v5-fchip.is-open > svg:last-child { transform: rotate(180deg); }
/* „Филтри" — водеща пилюла с икона плъзгачи */
.v5-fchip-all { font-weight: 600; }
.v5-fchip-all svg { color: var(--color-ink); }
.v5-fchip-n {
  display: grid; place-items: center; min-width: 21px; height: 21px; padding: 0 6px;
  border-radius: 999px; background-color: var(--color-green-deep);
  color: #fff; font-size: 11.5px; font-weight: 700; line-height: 1;
}

/* --- Разгънатият панел ----------------------------------------------------- */
/* Лентата е отправната точка за падащото меню на отделната пилюла. */
.v5-fbar { position: relative; }
.v5-fpanel {
  margin-top: 12px; padding: 18px 20px 14px;
  border: 1px solid #e3e2da; border-radius: 16px; background-color: #fff;
  box-shadow: 0 14px 34px -22px rgba(23, 62, 44, 0.45);
}

/* „Филтри": всяка група е колона. Решетката е stretch, а списъкът в колоната
 * е flex:1 — така всички колони свършват на един ред, независимо че едната
 * има 4 опции, а другата 200. Оттам идва правоъгълникът. */
.v5-fpanel.is-all {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 20px 24px;
}
.v5-fpanel.is-all .v5-fcol { display: flex; flex-direction: column; min-width: 0; }
.v5-fpanel.is-all .v5-fopts { flex: 1 1 auto; min-height: 0; max-height: 300px; }

/* Една група: падащо меню, закачено под своята пилюла (позицията идва от JS,
 * защото зависи от това къде се е пренесла пилюлата в реда). */
.v5-fpanel.is-one {
  position: absolute; z-index: 30; width: 372px; max-width: 100%;
  margin-top: 0; padding: 14px 10px 12px 16px;
  box-shadow: 0 20px 44px -20px rgba(23, 62, 44, 0.5);
}
/* цялата глава на колоната е излишна: пилюлата отгоре вече казва коя е групата,
 * а „Изчисти" за групата е в подножието на менюто, до зеления бутон */
.v5-fpanel.is-one .v5-fcol-title { display: none; }
.v5-fpanel.is-one .v5-fcol-head { min-height: 0; margin-bottom: 0; }
.v5-fpanel.is-one .v5-fcol-clear { display: none; }
/* „Изчисти всички филтри" стои само в общия панел „Филтри" — в менюто на една
 * група той обърква: там има свой „Изчисти", който вади само нейните. */
.v5-fpanel.is-one .v5-fpanel-clearall { display: none !important; }
.v5-fpanel.is-one .v5-fopts { max-height: 296px; }   /* ≈ 8 реда, нататък скрол */
.v5-fpanel.is-one .v5-fpanel-foot { margin-right: 6px; }

/* Колона без пилюла („Цена") — стои в разметката само за да не се губи вече
 * приложен филтър при „Приложи" (виж коментара в шаблона), но не се показва
 * никъде: `!important`, защото `apply()` в acm-bridge.js вдига `hidden` на
 * колоните в режим „Филтри". */
.v5-fcol-off { display: none !important; }

/* Заглавие на колоната + „Изчисти" за същата група. В режим „едно падащо меню"
 * заглавието се крие (пилюлата вече казва коя е групата), но бутонът остава. */
.v5-fcol-head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 10px; margin-bottom: 6px; min-height: 16px;
}
.v5-fcol-title {
  font-size: 11px; font-weight: 700; color: var(--color-muted);
  text-transform: uppercase; letter-spacing: 0.07em;
}
.v5-fcol-clear {
  flex: none; font-size: 12px; color: var(--color-green-deep);
  text-decoration: underline; text-underline-offset: 3px;
}
.v5-fcol-clear:hover { color: #2f6a34; }

/* „Изчисти всички" — в подножието на панела и до избраните филтри */
.v5-fpanel-foot-l { display: flex; align-items: center; gap: 16px; }
.v5-fpanel-clearall {
  font-size: 13px; font-weight: 600; color: var(--color-green-deep);
  text-decoration: underline; text-underline-offset: 3px;
}
.v5-fpanel-clearall:hover { color: #2f6a34; }
.v5-chips-clearall {
  min-height: 30px; padding: 0 12px; border-radius: 999px;
  border: 1px dashed #c9c7bd; background-color: transparent;
  font-size: 13px; color: var(--color-muted); transition: color .15s, border-color .15s;
}
.v5-chips-clearall:hover { border-color: var(--color-green-deep); color: var(--color-ink); }

/* --- Списъкът с опциите ---------------------------------------------------- */
.v5-fopts {
  overflow-y: auto; overscroll-behavior: contain; padding-right: 8px;
  scrollbar-width: thin; scrollbar-color: #d9d7cd transparent;
}
.v5-fopts::-webkit-scrollbar { width: 10px; }
.v5-fopts::-webkit-scrollbar-thumb {
  border: 3px solid #fff; border-radius: 999px; background-color: #d9d7cd;
}
.v5-fsearch {
  display: block; width: 100%; height: 34px; margin-bottom: 7px; padding: 0 10px;
  border: 1px solid #e3e2da; border-radius: 9px; background-color: #fbfbf7;
  font-size: 13px; color: var(--color-ink);
}
.v5-fsearch:focus {
  outline: none; border-color: var(--color-green-deep);
  box-shadow: 0 0 0 3px rgba(74, 111, 44, 0.13);
}
/* Редът вече няма скрит submit в себе си (виж коментара в шаблона): чекбоксът
 * е контролът на <label>-а и щракването по реда просто го отмята. */
.v5-fopt {
  display: flex; align-items: center; gap: 10px; min-height: 34px;
  padding: 3px 7px 3px 5px; border-radius: 8px; cursor: pointer;
}
.v5-fopt:hover { background-color: #f6f7f1; }
.v5-fopt input[type="checkbox"] {
  flex: none; width: 16px; height: 16px; accent-color: var(--color-green-deep);
}
.v5-fopt-t { flex: 1 1 auto; min-width: 0; font-size: 13.5px; line-height: 1.35; color: var(--color-ink); }
.v5-fopt-n {
  flex: none; min-width: 22px; padding: 3px 6px; text-align: center;
  border-radius: 8px; background-color: #f1f1ed; color: #6b746d; font-size: 11px;
}
.v5-fnone { padding: 9px 5px; font-size: 13px; color: var(--color-faint); }

/* Търсачката и броячите крият с атрибута [hidden], а правилото на браузъра
 * (`[hidden]{display:none}`) е с по-ниска специфичност от класовете по-горе —
 * без това списъкът не се филтрира и празният брояч се вижда. */
.v5-fchip-n[hidden], .v5-fcol[hidden], .v5-fopt[hidden], .v5-fnone[hidden],
.v5-fcol-clear[hidden] { display: none !important; }

/* Същото и за скритите номера на страници (acm-bridge.js:initCatalogPagination) —
 * `inline-flex` на връзката бие `[hidden]`. */
#catalog-pagination a[hidden] { display: none !important; }

/* --- Долният ред: страниците в средата, „На страница" вдясно ---------------
 * Двете странични клетки са с еднакво `flex:1`, затова `<nav>`-ът остава точно
 * в средата на реда, а формата се долепя до десния ръб. Празната клетка вляво
 * е именно противотежестта — без нея страниците се изместват наляво.
 * Под 768px клетките нямат `flex`, редът се пренася и всичко е центрирано. */
.v5-catfoot {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
  gap: 14px 20px; margin-top: 32px;
}
.v5-catfoot-rpp { display: flex; justify-content: flex-end; }
.v5-catfoot-spacer { display: none; }
@media (min-width: 768px) {
  .v5-catfoot-spacer { display: block; }
  .v5-catfoot-spacer, .v5-catfoot-rpp { flex: 1 1 0; min-width: 0; }
}

/* Разделители между колоните — само когато всички се събират на един ред. */
@media (min-width: 1024px) {
  .v5-fpanel.is-all .v5-fcol + .v5-fcol { border-left: 1px solid #f1f0e9; padding-left: 24px; }
}
.v5-fpanel-foot {
  grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between;
  gap: 14px; margin-top: 12px; padding-top: 13px; border-top: 1px solid #eeeee7;
}
/* „Изчисти" за отворената група — изглежда като другите „Изчисти" в панела */
.v5-fpanel-clear {
  font-size: 13px; font-weight: 600; color: var(--color-green-deep);
  text-decoration: underline; text-underline-offset: 3px;
}
.v5-fpanel-clear:hover { color: #2f6a34; }
/* „Приложи" — същата форма като зеления бутон, който беше на негово място, но
 * с оранжевия акцент на дизайна. Показва се само когато има какво да приложи,
 * затова [hidden] трябва да бие класа. */
.v5-fpanel-apply {
  min-height: 42px; padding: 0 22px; border-radius: 11px;
  background-color: var(--color-brand-orange); color: #fff; font-size: 14px; font-weight: 600;
  transition: background-color .15s, transform .1s;
}
.v5-fpanel-apply:hover { background-color: var(--color-orange-deep); }
.v5-fpanel-apply:active { transform: scale(0.98); }
.v5-fpanel-clear[hidden], .v5-fpanel-clearall[hidden],
.v5-fpanel-apply[hidden] { display: none !important; }

/* --- Тесни екрани ---------------------------------------------------------- */
@media (max-width: 1023px) {
  .v5-cat-title { flex-direction: column; align-items: flex-start; gap: 18px; }
  .v5-cat-stat { border-left: 0; padding-left: 0; }
}
@media (max-width: 639px) {
  /* пилюлите не се пренасят, а се плъзгат — редът остава един */
  .v5-fbar-row {
    flex-wrap: nowrap; overflow-x: auto; margin: 0 -16px; padding: 2px 16px;
    scrollbar-width: none;
  }
  .v5-fbar-row::-webkit-scrollbar { display: none; }
  .v5-fpanel { padding: 16px; }
  .v5-fpanel.is-all { grid-template-columns: 1fr; }
  .v5-fpanel.is-all .v5-fopts { max-height: 244px; }
  /* на тесен екран падащото меню не виси под пилюлата, а застава под реда */
  .v5-fpanel.is-one { position: static; width: auto; margin-top: 12px; padding: 16px; }
  .v5-fpanel-foot { flex-direction: column-reverse; align-items: stretch; }
  .v5-fpanel-apply { width: 100%; }
  .v5-fpanel-clear, .v5-fpanel-clearall { text-align: center; min-height: 40px; }
}
@media (max-width: 767px) {
  html[data-theme="modern"] .v5-cat-head::after { display: none; }
  .v5-cat-h1 { font-size: 38px; }
  .v5-cat-sub { font-size: 14px; line-height: 1.5; }
  .v5-cat-tabhint { display: none; }
}

/* =========================================================================
 * И-19: В2 „Модерна" — продуктова страница по подадения дизайн
 * Markup: site/assets/js/product.js сглобява блока .v5-prod от данните на
 * продукта и го вмъква преди оригиналния (който получава .acm-v5-hide).
 * Всичко тук важи САМО при html[data-theme="modern"] — В1 „Класик" ползва
 * непроменения markup от doc/reference/products/ и остава каквато си беше.
 * Мащаб (И-19 доп. 2): цялата страница е смалена с ~15% спрямо първата
 * версия — типография, отстъпи и височини на контролите.
 * ========================================================================= */

/* трохите: разделителят „/" става „›" както в мострата */
html[data-theme="modern"] .v5-prod-crumbs { margin-bottom: 16px; }
html[data-theme="modern"] .v5-prod-crumbs li[aria-hidden] { font-size: 0; }
html[data-theme="modern"] .v5-prod-crumbs li[aria-hidden]::after {
  content: "\203A"; font-size: 13px; color: var(--color-faint);
}

/* --- Горната карта: снимка вляво | цена, наличност и поръчка вдясно ------- */
.v5-prod-hero {
  display: grid; grid-template-columns: minmax(0, 45fr) minmax(0, 55fr);
  background-color: var(--color-surface);
  border: 1px solid #e6e5dc; border-radius: 20px; overflow: hidden;
}

/* лявата половина: концентрични кръгове зад снимката (както в мострата) */
.v5-prod-gallery {
  position: relative; display: flex; flex-direction: column;
  padding: 22px 26px 16px; background-color: #f1eee4; border-right: 1px solid #eae7dc;
}
.v5-prod-gallery::before {
  content: ""; position: absolute; left: 50%; top: 46%;
  width: 170px; height: 170px; margin: -85px 0 0 -85px; border-radius: 50%;
  background-color: #fbf9f3;
  box-shadow: 0 0 0 54px rgba(255, 253, 248, 0.62), 0 0 0 108px rgba(255, 253, 248, 0.34),
              0 0 0 170px rgba(255, 253, 248, 0.18);
  pointer-events: none;
}
.v5-prod-deal {
  position: relative; z-index: 2; align-self: flex-start;
  padding: 7px 13px; border-radius: 999px; background-color: #e3eed7; color: #446c2b;
  font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.09em;
}
.v5-prod-fav {
  position: absolute; z-index: 2; right: 20px; top: 20px;
  display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%;
  border: 1px solid #e4e1d5; background-color: var(--color-surface); color: #8c948e;
  transition: color 0.15s, border-color 0.15s;
}
.v5-prod-fav:hover { color: var(--color-brand-orange); border-color: var(--color-brand-orange); }
.v5-prod-fav svg { width: 16px; height: 16px; }
/* снимката заема цялата свободна височина на панела — иначе при високата
 * дясна колона отдолу оставаше празен крем (min-height:0 е нужно, за да може
 * flex елементът да се свие под собствената височина на картинката) */
.v5-prod-img { position: relative; z-index: 1; flex: 1; min-height: 0; display: grid; place-items: center; padding: 8px 0 6px; }
/* мострените снимки носят собствен светъл фон; реалните (tools/images.ps1)
 * са на бял — и в двата случая се вписват в крема на панела.
 * cover (не contain): реже се празният кант на снимката, не продуктът. */
.v5-prod-img img { width: 100%; height: 100%; object-fit: cover; border-radius: 12px; }
.v5-prod-imgnote { position: relative; z-index: 1; text-align: center; font-size: 11px; color: var(--color-faint); }

/* дясната половина */
.v5-prod-main { padding: 26px 30px 24px; }
.v5-prod-eyebrow {
  color: var(--color-brand-orange); font-size: 11px; font-weight: 800;
  text-transform: uppercase; letter-spacing: 0.15em;
}
html[data-theme="modern"] .v5-prod-title {
  margin-top: 10px; font-size: clamp(26px, 2.5vw, 38px); line-height: 1.04;
  font-weight: 800; letter-spacing: -0.04em; color: var(--color-ink);
}
.v5-prod-meta { display: flex; flex-wrap: wrap; gap: 6px 20px; margin-top: 11px; font-size: 12px; color: var(--color-muted); }

/* ценовата кутия: договорена цена + цена за единица */
.v5-prod-price {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 20px;
  margin-top: 16px; padding: 16px 20px; border-radius: 14px; background-color: #f2efe4;
}
.v5-prod-price p { font-size: 12px; color: var(--color-muted); }
.v5-prod-price-main strong { display: block; margin-top: 4px; font-size: clamp(23px, 2.1vw, 30px); font-weight: 800; letter-spacing: -0.03em; }
.v5-prod-price-main small { display: block; margin-top: 4px; font-size: 11px; color: var(--color-faint); }
.v5-prod-price-unit { text-align: right; padding-left: 20px; border-left: 1px solid #e0dccd; }
.v5-prod-price-unit strong { display: block; margin-top: 4px; font-size: 16px; font-weight: 800; }
.v5-prod-price-unit small { display: block; margin-top: 4px; font-size: 10px; color: var(--color-faint); }

/* лента за наличността */
.v5-prod-avail {
  display: flex; align-items: center; gap: 9px; margin-top: 10px;
  padding: 11px 16px; border-radius: 12px; background-color: #e9f2e1; font-size: 13.5px;
}
.v5-prod-avail > i { width: 8px; height: 8px; border-radius: 50%; background-color: #5f8535; flex: 0 0 auto; }
.v5-prod-avail > span { margin-left: auto; font-size: 11px; color: var(--color-muted); }
.v5-prod-avail.is-orange { background-color: #fbf1de; }
.v5-prod-avail.is-orange > i { background-color: #d8a52c; }
.v5-prod-avail.is-red { background-color: #f9ecea; }
.v5-prod-avail.is-red > i { background-color: #c96a5a; }
.v5-prod-avail.is-grey { background-color: #eef1f3; }
.v5-prod-avail.is-grey > i { background-color: #8fa0ac; }

/* ред за поръчка: брояч + бутон */
.v5-prod-buy { display: flex; gap: 10px; margin-top: 12px; }
.v5-prod-stepper {
  display: grid; grid-template-columns: 42px minmax(0, 1fr) 42px; align-items: stretch;
  min-width: 164px; height: 50px; border: 1px solid #dedbcd; border-radius: 12px;
  background-color: var(--color-surface); overflow: hidden;
}
.v5-prod-stepper button { border: 0; background: transparent; font-size: 18px; color: var(--color-ink); }
.v5-prod-stepper button:hover:not(:disabled) { background-color: #f6f4ec; }
.v5-prod-stepper button:disabled { opacity: 0.35; cursor: default; }
.v5-prod-stepper > span { display: grid; place-content: center; justify-items: center; border-inline: 1px solid #ece9dd; }
.v5-prod-stepper input {
  width: 48px; border: 0; background: transparent; text-align: center;
  font-size: 15px; font-weight: 700; color: var(--color-ink);
  appearance: textfield; -moz-appearance: textfield;
}
.v5-prod-stepper input::-webkit-inner-spin-button, .v5-prod-stepper input::-webkit-outer-spin-button { appearance: none; margin: 0; }
.v5-prod-stepper input:focus { outline: 0; }
.v5-prod-stepper small { margin-top: 1px; font-size: 10px; color: var(--color-muted); }
.v5-prod-add {
  flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  height: 50px; border: 0; border-radius: 12px; background-color: #173e2c; color: #fff;
  font-size: 14.5px; font-weight: 700; transition: background-color 0.15s, transform 0.1s;
}
.v5-prod-add svg { width: 16px; height: 16px; }
.v5-prod-add:hover { background-color: var(--color-brand-orange); }
.v5-prod-add:active { transform: scale(0.99); }

/* редът с вторичните действия */
.v5-prod-links { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 12px; }
.v5-prod-links > * {
  display: inline-flex; align-items: center; gap: 6px; border: 0; background: transparent; padding: 0;
  font-size: 12px; color: var(--color-muted); transition: color 0.15s;
}
.v5-prod-links svg { width: 14px; height: 14px; }
.v5-prod-links > *:hover { color: var(--color-green-deep); }

/* наличност по складове — лента, която отваря отделно екранче (И-19 доп. 3) */
.v5-prod-stock { margin-top: 16px; border-top: 1px solid #ecebe2; padding-top: 16px; }
.v5-prod-stockbar {
  display: flex; align-items: center; gap: 10px; width: 100%; border: 0; text-align: left;
  padding: 11px 16px; border-radius: 12px; background-color: #eef4e6; color: var(--color-ink);
  transition: background-color 0.15s;
}
.v5-prod-stockbar:hover { background-color: #e5eeda; }
.v5-prod-stockbar > svg { color: var(--color-green-deep); flex: 0 0 auto; width: 15px; height: 15px; }
.v5-prod-stockbar strong { font-size: 13.5px; }
.v5-prod-stock-cta { margin-left: auto; display: inline-flex; align-items: center; gap: 8px; font-size: 11px; color: var(--color-muted); }
.v5-prod-stock-cta svg { width: 14px; height: 14px; transition: transform 0.15s; }
.v5-prod-stockbar:hover .v5-prod-stock-cta svg { transform: translateX(3px); }

/* --- Екранчето „Наличност по складове" (native <dialog>) ------------------ */
.v5-prod-modal {
  width: min(660px, calc(100% - 32px)); max-width: none; margin: auto; padding: 0;
  border: 0; border-radius: 20px; background-color: var(--color-surface); color: var(--color-ink);
  box-shadow: 0 30px 70px -20px rgba(20, 35, 26, 0.45);
  overflow: hidden;
}
.v5-prod-modal::backdrop { background-color: rgba(23, 35, 29, 0.45); backdrop-filter: blur(2px); }
.v5-prod-modal-head { position: relative; padding: 20px 24px 16px; }
html[data-theme="modern"] .v5-prod-modal-head h2 {
  margin-top: 8px; font-size: 25px; font-weight: 400; letter-spacing: -0.02em;
}
.v5-prod-modal-x {
  position: absolute; right: 18px; top: 18px; display: grid; place-items: center;
  width: 34px; height: 34px; border: 0; border-radius: 50%;
  background-color: #f1efe6; color: var(--color-muted); transition: background-color 0.15s, color 0.15s;
}
.v5-prod-modal-x:hover { background-color: #e7e4d8; color: var(--color-ink); }
.v5-prod-modal-prod {
  display: flex; align-items: center; gap: 12px; padding: 13px 24px;
  background-color: #eef4e6; border-top: 1px solid #e6ecdb;
}
.v5-prod-modal-tile {
  display: grid; place-items: center; flex: 0 0 auto; width: 38px; height: 38px;
  border-radius: 10px; color: #fff; font-size: 17px; font-weight: 800; line-height: 1;
}
.v5-prod-modal-prod p { display: flex; flex-direction: column; min-width: 0; }
.v5-prod-modal-prod small { font-size: 11px; color: var(--color-muted); }
.v5-prod-modal-prod strong { margin-top: 2px; font-size: 14px; }
.v5-prod-modal-list { max-height: min(46vh, 340px); overflow-y: auto; }
.v5-prod-modal-list li {
  display: flex; align-items: center; gap: 12px; padding: 12px 24px;
  border-bottom: 1px solid #f1efe6;
}
.v5-prod-modal-list li:last-child { border-bottom: 0; }
.v5-prod-wh-ic {
  display: grid; place-items: center; flex: 0 0 auto; width: 34px; height: 34px;
  border-radius: 10px; background-color: #eef4e6; color: var(--color-green-deep);
}
.v5-prod-modal-list p { display: flex; flex-direction: column; min-width: 0; }
.v5-prod-modal-list strong { font-size: 13.5px; }
.v5-prod-modal-list small { margin-top: 2px; font-size: 11px; color: var(--color-muted); }
.v5-prod-pill {
  margin-left: auto; flex: 0 0 auto; padding: 5px 11px; border-radius: 999px;
  font-size: 11.5px; font-weight: 700; white-space: nowrap;
}
.v5-prod-pill.is-green  { background-color: #e6f1dc; color: #4a7029; }
.v5-prod-pill.is-orange { background-color: #fbf0da; color: #8a6a15; }
.v5-prod-pill.is-red    { background-color: #fbe6e4; color: #a4443a; }
.v5-prod-pill.is-grey   { background-color: #eef1f3; color: #5c6b74; }
.v5-prod-modal-foot {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 13px 20px 13px 24px; background-color: #f4f2e9; border-top: 1px solid #ebe8dc;
}
.v5-prod-modal-foot > span { display: inline-flex; align-items: center; gap: 8px; font-size: 11.5px; color: var(--color-muted); }
.v5-prod-modal-foot > span > i { width: 7px; height: 7px; border-radius: 50%; background-color: #5f8535; }
.v5-prod-modal-done {
  height: 38px; padding: 0 20px; border: 0; border-radius: 10px;
  background-color: #173e2c; color: #fff; font-size: 13px; font-weight: 700;
  transition: background-color 0.15s;
}
.v5-prod-modal-done:hover { background-color: var(--color-brand-orange); }
/* фокусът при отваряне сяда тук — оранжев пръстен вместо зеления по подразбиране */
.v5-prod-modal-done:focus-visible { outline: 2px solid var(--color-brand-orange); outline-offset: 3px; }

/* трите плочки с условията */
.v5-prod-feats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.v5-prod-feat {
  display: flex; align-items: center; gap: 9px; padding: 10px 12px;
  border: 1px solid #eae8dd; border-radius: 12px; background-color: var(--color-surface);
}
.v5-prod-feat > svg { color: var(--color-brand-orange); flex: 0 0 auto; width: 15px; height: 15px; }
.v5-prod-feat p { display: flex; flex-direction: column; min-width: 0; }
.v5-prod-feat strong { font-size: 11.5px; line-height: 1.25; }
.v5-prod-feat small { margin-top: 2px; font-size: 10px; color: var(--color-muted); }

/* --- Долната карта: табове ------------------------------------------------ */
.v5-prod-tabs {
  margin-top: 18px; background-color: var(--color-surface);
  border: 1px solid #e6e5dc; border-radius: 20px; overflow: hidden;
}
.v5-prod-tabbar {
  display: flex; gap: 28px; padding: 0 26px; border-bottom: 1px solid #ecebe2;
  overflow-x: auto; scrollbar-width: none;
}
.v5-prod-tabbar::-webkit-scrollbar { display: none; }
.v5-prod-tab {
  padding: 17px 2px 14px; border: 0; border-bottom: 3px solid transparent; background: transparent;
  color: var(--color-muted); font-size: 13.5px; font-weight: 600; white-space: nowrap;
  transition: color 0.15s, border-color 0.15s;
}
.v5-prod-tab:hover { color: var(--color-ink); }
.v5-prod-tab.is-active { color: var(--color-ink); border-bottom-color: var(--color-brand-orange); }
.v5-prod-panel { padding: 26px 26px 24px; }
.v5-prod-kicker {
  color: var(--color-brand-orange); font-size: 11px; font-weight: 800;
  text-transform: uppercase; letter-spacing: 0.15em;
}
.v5-prod-panelhead { display: flex; align-items: baseline; justify-content: space-between; gap: 22px; margin-top: 9px; }
html[data-theme="modern"] .v5-prod-panelhead h2 {
  font-size: clamp(21px, 2vw, 29px); font-weight: 400; letter-spacing: -0.02em; line-height: 1.15;
}
.v5-prod-panelnote { text-align: right; font-size: 12px; color: var(--color-faint); }

/* таб „Дозировка и употреба" */
.v5-prod-dosegrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 20px; }
.v5-prod-dose { padding: 17px 19px; border: 1px solid #e9e7dc; border-radius: 14px; background-color: var(--color-surface); }
.v5-prod-dose h3 { font-size: 16.5px; font-weight: 500; letter-spacing: -0.01em; }
.v5-prod-dose dl { margin-top: 12px; display: grid; gap: 9px; }
.v5-prod-dose dl > div { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 10px; align-items: baseline; }
.v5-prod-dose dt { font-size: 12px; color: var(--color-muted); }
.v5-prod-dose dd { margin: 0; font-size: 13px; color: var(--color-ink); }
/* „Характеристики" (partials/product/acm/main.html): етикетът е широк колкото
   текста си — стои на един ред; пренася се само ако стане по-широк от 60% от реда */
.acm-har-row dt { min-width: 92px; max-width: 60%; }
.v5-prod-footnote { display: flex; align-items: center; gap: 7px; margin-top: 17px; font-size: 11.5px; color: var(--color-faint); }
.v5-prod-footnote svg { width: 14px; height: 14px; flex: 0 0 auto; }

/* таб „Характеристики" */
.v5-prod-specgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 13px; margin-top: 20px; }
.v5-prod-spec { padding: 16px 18px; border-radius: 13px; background-color: #f4f1e8; }
.v5-prod-spec p { font-size: 12px; color: var(--color-muted); }
.v5-prod-spec strong { display: block; margin-top: 7px; font-size: 16px; font-weight: 700; letter-spacing: -0.01em; }
.v5-prod-spec strong:has(.v5-prod-subst) { display: flex; flex-direction: column; gap: 6px; font-size: 13px; }
.v5-prod-subst { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; font-weight: 600; }
.v5-prod-subst b { font-weight: 600; color: var(--color-green-deep); }

/* таб „Документи" */
.v5-prod-docgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 13px; margin-top: 20px; max-width: 700px; }
.v5-prod-doc {
  display: flex; flex-direction: column; gap: 11px; padding: 16px 18px; text-align: left;
  border: 0; border-radius: 13px; background-color: #f4f1e8; transition: background-color 0.15s;
}
.v5-prod-doc:hover { background-color: #eee9db; }
.v5-prod-doc-type {
  display: inline-flex; align-items: center; gap: 6px; font-size: 10px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.09em; color: var(--color-muted);
}
.v5-prod-doc-title { display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 700; color: var(--color-ink); }
.v5-prod-doc svg { width: 14px; height: 14px; flex: 0 0 auto; }

/* таб „Описание" */
.v5-prod-desc { display: grid; grid-template-columns: minmax(0, 42fr) minmax(0, 58fr); gap: 36px; }
.v5-prod-desc p { font-size: 14.5px; line-height: 1.7; color: var(--color-muted); }

/* --- Тесни екрани ---------------------------------------------------------- */
@media (max-width: 1023px) {
  .v5-prod-hero { grid-template-columns: 1fr; }
  .v5-prod-gallery { border-right: 0; border-bottom: 1px solid #eae7dc; }
  .v5-prod-main { padding: 22px 20px 20px; }
  .v5-prod-desc { grid-template-columns: 1fr; gap: 16px; }
  .v5-prod-dosegrid { grid-template-columns: 1fr; }
  .v5-prod-panelhead { flex-direction: column; align-items: flex-start; gap: 8px; }
  .v5-prod-panelnote { text-align: left; }
}
@media (max-width: 639px) {
  .v5-prod-hero, .v5-prod-tabs { border-radius: 16px; }
  .v5-prod-gallery { padding: 18px 14px 14px; }
  .v5-prod-fav { right: 13px; top: 13px; }
  .v5-prod-main { padding: 20px 15px 18px; }
  .v5-prod-price { grid-template-columns: 1fr; gap: 13px; padding: 15px; }
  .v5-prod-price-unit { text-align: left; padding: 13px 0 0; border-left: 0; border-top: 1px solid #e0dccd; }
  .v5-prod-avail { flex-wrap: wrap; }
  .v5-prod-avail > span { margin-left: 0; width: 100%; }
  .v5-prod-buy { flex-direction: column; }
  .v5-prod-stepper { width: 100%; }
  .v5-prod-feats { grid-template-columns: 1fr; }
  .v5-prod-tabbar { gap: 18px; padding: 0 15px; }
  .v5-prod-panel { padding: 20px 15px 18px; }
  .v5-prod-modal { width: calc(100% - 20px); border-radius: 16px; }
  .v5-prod-modal-head { padding: 16px 16px 12px; }
  .v5-prod-modal-head h2 { font-size: 21px; }
  .v5-prod-modal-x { right: 12px; top: 12px; }
  .v5-prod-modal-prod, .v5-prod-modal-list li { padding-left: 16px; padding-right: 16px; }
  .v5-prod-modal-foot { padding: 12px 16px; }
}

/* =========================================================================
 * ШИРИНА НА СЪДЪРЖАНИЕТО — контейнерът следва екрана
 * -------------------------------------------------------------------------
 * Всяка секция на новия дизайн е обвита в `mx-auto … max-w-7xl px-4 md:px-6`.
 * `max-w-7xl` е 80rem = 1280px — на монитор 2560px това оставя по ~600px
 * празно от двете страни. Тук границата се отпуска: контейнерът заема цялата
 * ширина, а отстъпът встрани расте стъпаловидно с екрана.
 *
 * Защо тук, а не в шаблоните: `vendor.css` е компилиран от макета и съдържа
 * САМО класовете, ползвани в него — няма `xl:` / `2xl:` варианти, а самият
 * vendor.css е READ-ONLY. Затова се преодефинира готовият клас; така всички
 * страници (начало, каталог, продукт, кошница, профил, header, footer) се
 * разширяват наведнъж и разметката остава непокътната.
 *
 * Горната граница 2560px е предпазна — на ултраширок монитор редът иначе
 * става нечетимо дълъг.
 * ========================================================================= */
html[data-theme="modern"] .max-w-7xl { max-width: min(100%, 2560px); }

@media (min-width: 1440px) {
  html[data-theme="modern"] .max-w-7xl { padding-left: 32px; padding-right: 32px; }
}
@media (min-width: 1920px) {
  html[data-theme="modern"] .max-w-7xl { padding-left: 48px; padding-right: 48px; }
}

/* --- Колони при разширен контейнер ----------------------------------------
 * Без това по-широкият контейнер само разтяга картите: продуктовата карта е
 * с изображение 4:3 и при 700px ширина изглежда счупена. Затова на широките
 * екрани се добавят колони.
 * Праговете са по ширина на прозореца, а не по брой колони на Tailwind.
 *
 * [040] Целта беше карта 300–340px; сега е **255–310px** — картата се свива и
 * по ширина, не само по височина ([039]). Праговете са сметнати с реалната
 * ширина на съдържанието (контейнерът е с отстъп 24px до 1440px, 32px до
 * 1920px и 48px нагоре, междината е 20px):
 *
 *     ширина на прозореца   колони   ширина на картата
 *     ------------------------------------------------
 *      900 – 1149              3        271 … 354
 *     1150 – 1399              4        260 … 323
 *     1400 – 1699              5        254 … 311
 *     1700 – 1999              6        256 … 301
 *     2000 – 2349              7        255 … 305
 *     2350 и нагоре            8        264 … 291
 *
 * Горният край на всеки диапазон е точно преди следващия праг — там картата
 * е най-широка. Затова праговете не са кръгли числа: те са мястото, където
 * картата стига ~305px и е време за още една колона.
 * Изключение е първият ред: 3 колони се държат до 1150px (карта до 354px),
 * защото на таблет 4 колони биха дали неудобно тесни карти.
 * Под 900px остава разметката от макета: 2 колони (`md:`/`sm:`) и 1 на
 * телефон — там картата е широка, но екранът е тесен.
 *
 * От [054] таблицата важи за решетките на началната страница („най-поръчвани",
 * „подобни продукти") и за лентата-слайдер. Каталогът е изключение — по задание
 * стои на 5 колони на всяка ширина; виж бележката точно преди `#catalog-grid`. */

/* каталог — [054]: винаги 5 карти на ред. Базово 3 колони (`lg:grid-cols-3`,
 * от 1024px), от 900px също 3 — на таблет 5 карти биха били нечетимо тесни.
 * От 1150px са 5 и нагоре няма нов праг: колоните не се увеличават, картата
 * расте заедно с прозореца. Затова тук картата излиза извън рамките
 * 255–310px от таблицата по-горе:
 *
 *     ширина на прозореца   колони   ширина на картата
 *     ------------------------------------------------
 *      900 – 1149              3        271 … 354
 *     1150 – 1439              5        204 … 262
 *     1440 – 1919              5        259 … 355
 *     1920 и нагоре            5        349 … 477  (контейнерът спира на 2560px)
 */
@media (min-width:  900px) { #catalog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1150px) { #catalog-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); } }

/* начална страница и „подобни продукти“ — базово 4 колони (`lg:grid-cols-4`).
 * Селекторът е по стойност на атрибута, защото класът съдържа двоеточие и
 * иначе трябва екраниране; `~=` хваща точно тази дума от `class`, така че
 * `lg:grid-cols-8` на лентата с култури не се засяга.
 * Тези гридове тръгват от 4 колони на 1024px, затова нямат праг за 4 —
 * от 900px обаче стават 3 (иначе са 2 чак до 1024px). */
@media (min-width: 900px) {
  html[data-theme="modern"] [class~="lg:grid-cols-4"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  html[data-theme="modern"] [class~="lg:grid-cols-4"] { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (min-width: 1400px) {
  html[data-theme="modern"] [class~="lg:grid-cols-4"] { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (min-width: 1700px) {
  html[data-theme="modern"] [class~="lg:grid-cols-4"] { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
@media (min-width: 2000px) {
  html[data-theme="modern"] [class~="lg:grid-cols-4"] { grid-template-columns: repeat(7, minmax(0, 1fr)); }
}
@media (min-width: 2350px) {
  html[data-theme="modern"] [class~="lg:grid-cols-4"] { grid-template-columns: repeat(8, minmax(0, 1fr)); }
}

/* категорийните плочки в зеления банер — базово 4 (`md:grid-cols-4`);
 * те са ниски и тесни, затова понасят повече колони от продуктовите. */
@media (min-width: 1400px) { #catalog-quicknav { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
@media (min-width: 2100px) { #catalog-quicknav { grid-template-columns: repeat(8, minmax(0, 1fr)); } }


/* =========================================================================
 * СТРАНИЦА 404 / ГРЕШКА — partials/error/acm/main.html
 *
 * Само три неща, които не могат да се изразят с класове от vendor.css
 * (той е компилиран от макета и съдържа само ползваните в него класове):
 *
 *   1. Редът на колоните. В разметката картинката е първа, за да излиза
 *      отгоре на телефон; от 768px нагоре редът се обръща, така че текстът
 *      е ВЛЯВО, а картинката ВДЯСНО. `md:flex-row-reverse` във vendor.css
 *      няма, затова и самото `flex-direction: row` се задава тук.
 *
 *   2. Подравняването на текста. Има `text-center`, но НЯМА `md:text-left`.
 *
 * Фонът на илюстрацията вече не се пипа от CSS: `404_1.png` е с ПРОЗРАЧЕН
 * фон (изрязан е в самия файл, changelog [022]), затова отпадна и
 * `mix-blend-mode: multiply`, с който кремавият правоъгълник се прикриваше.
 * ========================================================================= */

@media (min-width: 768px) {
  #page-404 .p404-row  { flex-direction: row-reverse; }
  #page-404 .p404-text { text-align: left; }
}


/* =========================================================================
 * LIGHTBOX-ОВЕ ЗА ВХОД / ЗАБРАВЕНА ПАРОЛА / РЕГИСТРАЦИЯ — отворен въпрос В-8
 *
 * ПРОБЛЕМЪТ. Разметката на попъпите (`partials/popup/login/**`) е на
 * Bootstrap 3/5 класове. Правилото, което ги ДЪРЖИ СКРИТИ и ги вдига като
 * слой над страницата, е едно-единствено и идва от `assets/css/bootstrap.min.css`:
 *
 *     .modal { position: fixed; display: none; ... }
 *
 * На страница с новия дизайн Bootstrap НЕ се зарежда (виж Р-1 — Tailwind
 * preflight във vendor.css не е ограничен до [data-theme] и двата файла не
 * могат да съществуват заедно). Без това правило `.modal` е обикновен `div`
 * в потока → трите форми се изсипват едно под друго СЛЕД футъра и се виждат
 * постоянно. Точно това е съобщението от 2026-08-13.
 *
 * РЕШЕНИЕТО. Вариант (а) от В-8 — попъпите стават част от новия дизайн, но
 * САМО чрез CSS: нито един ред разметка, нито един Thymeleaf израз и нито
 * едно `onclick` не е пипано. Поведението (отваряне от менюто, затваряне с
 * ×, клик встрани, валидацията civem.js, `form_submit`) вече работи —
 * `partials/layout/acm/scripts.html` включва `form_common`, `show_alert` и
 * `popupAlert` непроменени. Липсваше единствено оформлението.
 *
 * Затова тук са пренесени — в цветовете и типографията на АСМ — само онези
 * правила от стария сайт, без които формите не работят или не се четат:
 *   `assets/css/bootstrap.min.css`  -> слоят `.modal` (fixed + display:none)
 *   `assets/main-style.css`         -> картата, полетата, `.form-error`,
 *                                      `.antiSpam-box`, `.userBtn`, `.modal label`
 *   `assets/css/main.css`           -> ширината на картата
 *
 * Обхватът е целият `.modal` — файлът се зарежда само от `layout/acm/head.html`,
 * тоест само на страници с новия дизайн. Старият дизайн не се засяга по никакъв
 * начин: там този файл изобщо не се сваля.
 *
 * Правилата са БЕЗ префикс на визия — попъпите изглеждат еднакво при В1…В5.
 * ========================================================================= */

/* --- Слоят над страницата ------------------------------------------------ */
/* `display: none` е редът, който липсваше. jQuery `.show()`/`.hide()` от
 * менюто и от `form_common` слагат inline `display`, така че превключването
 * работи както при стария дизайн. */
.modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: rgba(33, 37, 41, 0.55);
  padding: max(24px, 6vh) 16px 24px;
  scroll-padding: 3em;
}

/* --- Картата ------------------------------------------------------------- */
/* Ширината се задава тук само за login/restore. `register-modal.html` и
 * `afterRegisterWarning_modal.html` носят своя ширина в inline `style` —
 * inline стилът печели и те остават широки, както са били. */
.modal .modal-content.userModal,
.modal .modal-content.styleUserModal {
  position: relative;
  width: min(430px, 100%);
  max-width: 100%;
  margin: 0 auto;
  padding: 28px 24px 24px;
  background: var(--color-surface);
  color: var(--color-ink);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-card);
  box-shadow: 0 24px 48px rgba(33, 37, 41, 0.22);
}
/* „Запитване за цена" от количката (`partials/popup/zapitvane.html`) — [077].
 * Там картата е `styleUserModal` (тъмна карта 440px в main-style.css, който тук
 * не се зарежда). Тя е по-широка: в нея е само голямото поле за текста. */
.modal .modal-content.styleUserModal {
  width: min(560px, 100%);
}

/* Бутонът × горе вдясно. В `register-otc` той е `div`, в
 * `afterRegisterWarning_modal` — `button`; правилото хваща и двата. */
.modal .imgcontainer {
  position: absolute;
  top: 12px;
  right: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid var(--color-border);
  border-radius: 999px;
  background: var(--color-surface);
  color: var(--color-muted);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  transition: background-color 0.15s, color 0.15s;
}
.modal .imgcontainer:hover {
  background: var(--color-surface-2);
  color: var(--color-ink);
}

/* --- Заглавия и разделители ---------------------------------------------- */
/* Tailwind preflight нулира `h2` и маха рамката на `hr`, затова и двете се
 * задават изрично. Отстъпът вдясно пази заглавието от бутона ×. */
.modal .modal-title {
  margin: 0 40px 0 0;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--color-green-deep);
}
.modal hr {
  height: 0;
  margin: 14px 0 4px;
  border: 0;
  border-top: 1px solid var(--color-border);
}

/* --- Полета -------------------------------------------------------------- */
/* `.modal label { display: block }` е пренесено от main-style.css: без него
 * полетата в регистрацията се нареждат едно до друго. */
.modal label {
  display: block;
  margin-top: 14px;
  font-size: 14px;
  color: var(--color-ink);
}
/* `b` остава ИНЛАЙН — в `login.html` надписът е записан като `*<b>E-mail:</b>`
 * и звездичката пред него трябва да стои на същия ред. На нов ред слиза
 * самото поле (`display: block` по-долу). */
.modal label > b {
  font-weight: 500;
  color: var(--color-muted);
}

.modal input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.modal select,
.modal textarea {
  display: block;
  width: 100%;
  margin-top: 6px;
  padding: 10px 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  background: var(--color-surface);
  color: var(--color-ink);
  font-size: 15px;
  line-height: 1.3;
}
.modal input:focus,
.modal select:focus,
.modal textarea:focus {
  outline: none;
  border-color: var(--color-green-deep);
  box-shadow: 0 0 0 3px rgba(111, 154, 51, 0.16);
}

/* Отметките („Запомни ме", общите условия, бюлетинът) — квадратчето излиза от
 * потока, за да не разкъсва текста около него на редове. */
.modal label:has(> input[type="checkbox"]) {
  position: relative;
  padding-left: 26px;
}
.modal label:has(> input[type="checkbox"]) > b {
  color: var(--color-ink);
}
.modal label > input[type="checkbox"] {
  position: absolute;
  top: 2px;
  left: 0;
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: var(--color-green-deep);
}

/* Антиспам: надпис на цял ред, под него картинката и полето един до друг. */
.modal .antiSpam-box {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.modal .antiSpam-box > b {
  width: 100%; /* децата на flex контейнер са блокови -> надписът заема цял ред */
}
.modal .antiSpam-box .captcha-img {
  width: auto;
  height: 32px;
}
.modal .antiSpam-box .antiSpam_input {
  flex: 1 1 90px;
  min-width: 0;
  width: auto;
  margin-top: 0;
}

/* --- Съобщения за грешка под полето -------------------------------------- */
/* Пренесено 1:1 от main-style.css (редове 3271 и 3279–3280) — това е
 * ПОВЕДЕНИЕ на валидацията, не украса: `.form-error` е скрит и излиза само
 * когато полето е невалидно и вече е било напускано (`.notBlured`). */
.modal .form-error {
  display: none;
  margin-top: 4px;
  color: var(--color-danger);
  font-size: 13px;
  text-align: right;
}
html:not(.js-loading) .modal :not(.notBlured):not([type="checkbox"]):not([type="radio"]):invalid ~ .form-error {
  display: block;
  width: 100%;
}
html:not(.js-loading) .modal :enabled:is(:not(:focus), select):not(.notBlured):is(:invalid, .invalid) {
  border-color: var(--color-danger);
}

/* [072] Неактивно поле. „Град“ е `disabled`, докато не се избере „Област“, и се
 * заключва за миг, докато се зареждат градовете. В стария сайт това се виждаше
 * (main-style.css 3111–3128: прозрачност .6 + `not-allowed`); тук комбото
 * изглеждаше активно, а не се отваряше — „комботата стават неактивни“. */
.modal :is(input, select, textarea):disabled:not(.loading) {
  opacity: 0.6;
  cursor: not-allowed;
  background: var(--color-surface-2);
}
.modal .loading {
  cursor: progress;
  animation: acm-modal-loading 2s linear infinite;
}
@keyframes acm-modal-loading {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}

/* [072] Служебните полета `id_grad` / `ids_grad` (попълват се от JS при избор на
 * град) носят `.js-hidden` — правило от стария main-style.css 3566, което тук
 * липсваше. Без него в регистрацията стоеше празно поле „id_grad“, а след
 * избор на град в него излизаше вътрешен код от вида „SOF_-5071“.
 * `!important`, защото `.modal input:not(...)` по-горе е по-специфично и
 * връща `display: block`. */
html.js .js-hidden { display: none !important; }

/* --- Бутони -------------------------------------------------------------- */
.modal .userBtn {
  display: block;
  width: 100%;
  min-height: 44px;
  margin: 20px 0 0;
  padding: 10px 20px;
  border: 0;
  border-radius: var(--radius-control);
  background: var(--color-brand-green);
  color: var(--color-ink);
  font-size: 15px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: background-color 0.15s;
}
.modal .userBtn:hover { background: #93bd49; }
.modal .userBtn:active { transform: scale(0.99); }

/* „Изчисти" / „Регистрация" в дъното на регистрацията — `.d-flex` е клас на
 * Bootstrap и го няма във vendor.css, затова се дефинира тук. */
.modal .d-flex {
  display: flex;
  gap: 12px;
}
.modal .deleteAllBtn {
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  color: var(--color-muted);
}
.modal .deleteAllBtn:hover { background: #eef0ec; }

/* „Регистрация" и „Забравена парола" под формата за вход — текстови връзки. */
.modal .container-modal-btn {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 18px;
}
.modal .container-modal-btn .goReg,
.modal .container-modal-btn .getPsw {
  padding: 0;
  border: 0;
  background: none;
  color: var(--color-green-deep);
  font-size: 14px;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.modal .container-modal-btn .goReg:hover,
.modal .container-modal-btn .getPsw:hover { color: var(--color-orange-deep); }

/* --- Текст и връзки ------------------------------------------------------ */
.modal p {
  margin-top: 8px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--color-muted);
}
.modal p > b { color: var(--color-ink); }
.modal a {
  color: var(--color-green-deep);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.modal a:hover { color: var(--color-orange-deep); }

/* `x-sub-form` е потребителски елемент — без това е `inline` и подформите на
 * регистрацията (сертификат, фактура, доставка) се слепват. */
.modal x-sub-form { display: block; }
.modal .m-top1-ifnotempty:not(:empty) { margin-top: 1em; }

/* --- Съобщенията на show_alert ------------------------------------------- */
/* `show_alert` слага `.alert.alert-dismissible.alert-<тип>` и бутон
 * `.btn-close` — класове на Bootstrap. Тук получават вида на новия дизайн. */
.modal .alert {
  position: relative;
  margin-top: 12px;
  padding: 10px 36px 10px 12px;
  border-radius: var(--radius-control);
  font-size: 14px;
  line-height: 1.45;
}
.modal .alert-danger  { background: var(--color-danger-bg);  color: var(--color-danger); }
.modal .alert-success { background: var(--color-green-tint); color: var(--color-green-deep); }
.modal .alert-warning { background: var(--color-warn-bg);    color: var(--color-warn-text); }
.modal .alert-info    { background: var(--color-info-bg);    color: var(--color-info); }
.modal .alert .btn-close {
  position: absolute;
  top: 6px;
  right: 8px;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font-size: 18px;
  line-height: 1;
  opacity: 0.7;
  cursor: pointer;
}
.modal .alert .btn-close::before { content: "\00d7"; }
.modal .alert .btn-close:hover { opacity: 1; }

/* --- Телефон ------------------------------------------------------------- */
@media (max-width: 480px) {
  .modal { padding: 16px 12px; }
  .modal .modal-content.userModal { padding: 24px 16px 20px; }
}

/* =========================================================================
 * КОМПАКТНИ ПРОДУКТОВИ КАРТИ (виж 03-CHANGELOG.md [039])
 * Задание: „картите да изглеждат по-компактно".
 *
 * Картата беше ~430px висока при ~350px ширина — по-висока, отколкото широка,
 * защото визуалната зона е 4:3 (при 350px ширина това са 262px само за
 * снимката, а тя най-често е логото-заместител).
 *
 * Промените са САМО по вертикала — ширината идва от броя колони на грида и
 * не се пипа. Редът на децата (`nth-child`) не се променя: правилата тук само
 * преодефиняват размери върху вече описаната структура на картата (В5/И-10),
 * затова остават съвместими с всичко над тях.
 *
 * Разпределение на спестеното (при карта ~350px широка):
 *   визуал 262 → 180   (−82)   снимката е `object-contain` и не се реже
 *   инфо блок          (−12)   по-малки отстъпи, по-дребно заглавие и цена
 *   складове           (−7)    по-ниски плочки МО/СЗ/РУ/СФ
 *   транспорт          (−5)    празният ред отпада заедно с `gap`-а
 *   ред за поръчка     (−2)
 *   ≈ 430 → 320px, без да отпада каквото и да е съдържание.
 * ========================================================================= */

/* --- визуална зона: 3:2 с таван 180px ------------------------------------
 * Таванът е нужен, защото на едноколонен изглед (телефон) съотношението само
 * по себе си пак дава висока кутия. `aspect-ratio` остава заради тесните
 * екрани, където 3:2 е под тавана. */
html[data-theme="modern"] .group.rounded-card > a > div:first-child {
  aspect-ratio: 3 / 2;
  max-height: 180px;
}
/* значката „марка" и „сърцето" се доближават до ъглите на по-ниската кутия */
html[data-theme="modern"] .group.rounded-card > a > div:first-child > span.absolute {
  left: 10px; top: 10px; padding: 3px 8px; font-size: 11px;
}
html[data-theme="modern"] .group.rounded-card > a > div:first-child::after {
  top: 8px; right: 10px; font-size: 16px;
}

/* --- информационен блок ---------------------------------------------------
 * `gap`-ът НЕ се пипа: арт. № (nth-child(3)) и единичната цена се вдигат на
 * горния ред с отрицателен `margin-top`, изчислен спрямо него — промяна на
 * gap-а размества и двете. */
html[data-theme="modern"] .group.rounded-card > a > div:nth-child(2) { padding: 10px 12px; }
html[data-theme="modern"] .group.rounded-card > a > div:nth-child(2) > h3 { font-size: 16px; }
html[data-theme="modern"] .group.rounded-card > a > div:nth-child(2) > div:nth-child(5) > p:nth-child(2) { font-size: 18px; }
/* информацията за транспорт при торове е празна за почти всички продукти;
 * елементът остава в дървото (заради nth-child), но празен не заема ред */
html[data-theme="modern"] .group.rounded-card > a > div:nth-child(2) > div:nth-child(7):empty { display: none; }

/* --- складове: по-ниски плочки ------------------------------------------- */
html[data-theme="modern"] .group.rounded-card [role="group"] button { padding: 0; }
html[data-theme="modern"] .group.rounded-card [role="group"] button > span:last-child {
  width: 27px; height: 19px; font-size: 9px;
}

/* --- ред за поръчка ------------------------------------------------------- */
html[data-theme="modern"] .group.rounded-card > div.mt-auto { padding: 0 12px 11px; }

/* --- И-26: описанието на продуктовата страница, изравнено със снимката ----
 * Блокът стои в ДЯСНАТА колона, на мястото на махнатата „Наличност по
 * складове" ([055]).
 *
 * ТУК НЯМА НИТО ЕДНО ПРАВИЛО, КОЕТО РЕЖЕ ТЕКСТ САМО ПО СЕБЕ СИ. Свиването
 * се включва от `acm-bridge.js` (initAcmProductDesc) — той слага класа
 * `is-clamped` и `style.max-height`, защото докъде стига снимката се знае
 * едва при рендиране. Без JavaScript описанието се вижда цяло.
 * -------------------------------------------------------------------------- */
.acm-desc-body { position: relative; }
/* само по вертикала: широка таблица от CMS-а трябва да МОЖЕ да се превърти
 * настрани (`overflow-x-auto` в разметката), затова не се пише `overflow` */
.acm-desc.is-clamped .acm-desc-body { overflow-y: hidden; }
/* избледняване към долния ръб — личи, че текстът продължава.
 * Цветът е фонът на страницата: `body` е с `bg-surface-2` (product.html). */
.acm-desc.is-clamped .acm-desc-body::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 54px;
  background: linear-gradient(to bottom, rgba(245, 241, 232, 0), var(--color-surface-2));
  pointer-events: none;
}
.acm-desc-more:hover { text-decoration: underline; }
.acm-desc-more svg { transition: transform 0.15s; }
.acm-desc.is-open .acm-desc-more svg { transform: rotate(180deg); }
/* таблиците в описанието са с фиксирани ширини от CMS-а */
.acm-desc-body table { max-width: 100%; }

/* --- Падежи за отложено плащане (продуктовата страница) ------------------
 * Истинска решетка: линии между всички клетки, еднакво широки ценови колони
 * (`table-layout: fixed`), за да стоят стойностите точно под заглавието си.
 * Минималната ширина пуска хоризонтално превъртане на тесен екран
 * (`overflow-x-auto` на обвивката) вместо да смачква колоните.
 * -------------------------------------------------------------------------- */
.acm-padeji { border-collapse: collapse; table-layout: fixed; min-width: 640px; }
.acm-padeji th:first-child { width: 22%; }
.acm-padeji th,
.acm-padeji td { border: 1px solid var(--color-border); vertical-align: middle; }
/* външната рамка е на обвивката (rounded-card) — тук се махат крайните линии */
.acm-padeji tr > :first-child { border-left: 0; }
.acm-padeji tr > :last-child { border-right: 0; }
.acm-padeji thead tr:first-child > * { border-top: 0; }
.acm-padeji tbody tr:last-child > * { border-bottom: 0; }
.acm-padeji thead th { border-bottom-width: 2px; line-height: 1.3; }
.acm-padeji tbody tr:nth-child(even) { background: var(--color-surface-2); }
.acm-padeji tbody tr:hover { background: var(--color-green-tint); }

/* --- Етикет за наличност (продуктовата страница) --------------------------
 * Без фон, черен текст; цветната точка идва инлайн от color_hex_nal. */
.acm-nal { color: #000; }
.acm-nal-dot { width: 12px; height: 12px; }

/* =========================================================================
 * [063] „Моите покупки", детайл на поръчка, CMS страници, контакти,
 *       забравена парола — страниците, пренесени на новия дизайн.
 * ========================================================================= */

/* --- Прозорците на поръчката (popup-orig, popup-otgovor) -----------------
 * `.modal a` и `.modal p` по-горе правят връзките зелени и подчертани, а
 * текста сив и 14px — за формите за вход това е точно; за бутоните-връзки,
 * за продуктите в „Оригинална поръчка" и за въпроса „Сигурни ли сте…" — не. */
.modal a.acm-modal-btn,
.modal a.acm-modal-btn:hover { color: var(--color-ink); text-decoration: none; }
.modal p.acm-modal-q { margin: 0 44px 0 0; font-size: 16px; color: var(--color-ink); }
.modal .acm-order-rows a { color: var(--color-ink); text-decoration: none; }
.modal .acm-order-rows a:hover { color: var(--color-green-deep); }

/* --- Текст от CMS-а (pages_data_html) ------------------------------------
 * HTML-ът идва от администрацията. Tailwind preflight във vendor.css нулира
 * заглавията, списъците и отстъпите — тук им се връща четим вид. */
.acm-cms { font-size: 15px; line-height: 1.65; color: var(--color-ink); overflow-wrap: anywhere; }
.acm-cms h1, .acm-cms h2, .acm-cms h3, .acm-cms h4 { margin: 1.2em 0 0.5em; font-weight: 700; line-height: 1.3; }
.acm-cms h1 { font-size: 26px; }
.acm-cms h2 { font-size: 22px; }
.acm-cms h3 { font-size: 18px; }
.acm-cms h4 { font-size: 16px; }
.acm-cms .info-text > :first-child { margin-top: 0; }
.acm-cms p { margin: 0 0 0.9em; }
.acm-cms ul, .acm-cms ol { margin: 0 0 0.9em; padding-left: 1.4em; }
.acm-cms ul { list-style: disc; }
.acm-cms ol { list-style: decimal; }
.acm-cms li { margin-bottom: 0.3em; }
.acm-cms a { color: var(--color-green-deep); text-decoration: underline; text-underline-offset: 3px; }
.acm-cms a:hover { color: var(--color-orange-deep); }
.acm-cms img { max-width: 100%; height: auto; }
.acm-cms table { max-width: 100%; border-collapse: collapse; margin: 0 0 1em; }
.acm-cms th, .acm-cms td { border: 1px solid var(--color-border); padding: 6px 10px; }

/* --- Формата за контакти (.acm-form) -------------------------------------
 * Полетата, валидацията (.form-error) и show_alert — същото като в `.modal`
 * по-горе, защото това е същата логика от form_common / civem.js. */
.acm-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.acm-form textarea {
  display: block;
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-control);
  background: var(--color-surface);
  color: var(--color-ink);
  font-size: 16px;
}
.acm-form input::placeholder,
.acm-form textarea::placeholder { color: var(--color-faint); }
.acm-form input:focus,
.acm-form textarea:focus { outline: none; border-color: var(--color-green-deep); box-shadow: 0 0 0 2px rgba(111, 154, 51, 0.25); }
.acm-form .form-error {
  display: none;
  margin-top: 4px;
  color: var(--color-danger);
  font-size: 13px;
  text-align: right;
}
html:not(.js-loading) .acm-form :not(.notBlured):not([type="checkbox"]):not([type="radio"]):invalid ~ .form-error {
  display: block;
  width: 100%;
}
html:not(.js-loading) .acm-form :enabled:not(:focus):not(.notBlured):is(:invalid, .invalid) {
  border-color: var(--color-danger);
}
.acm-form .alert {
  position: relative;
  margin-top: 12px;
  padding: 10px 36px 10px 12px;
  border-radius: var(--radius-control);
  font-size: 14px;
  line-height: 1.45;
}
.acm-form .alert-danger  { background: var(--color-danger-bg);  color: var(--color-danger); }
.acm-form .alert-success { background: var(--color-green-tint); color: var(--color-green-deep); }
.acm-form .alert-warning { background: var(--color-warn-bg);    color: var(--color-warn-text); }
.acm-form .alert-info    { background: var(--color-info-bg);    color: var(--color-info); }
.acm-form .alert .btn-close {
  position: absolute;
  top: 6px;
  right: 8px;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font-size: 18px;
  line-height: 1;
  opacity: 0.7;
  cursor: pointer;
}
.acm-form .alert .btn-close::before { content: "\00d7"; }
.acm-form .alert .btn-close:hover { opacity: 1; }

/* --- Продуктови карти на ТЕЛЕФОН (под 640px) ------------------------------
 * На цял ред вертикалната карта беше прекалено разтеглена — снимката 4:3
 * заемаше половин екран. Под 640px картата остава по една на ред, но е
 * ХОРИЗОНТАЛНА: малка квадратна снимка вляво, текстът вдясно, а броячът и
 * „Добавяне" са на един ред най-долу, на цялата ширина.
 * Арт. № и единичната цена излизат от „залепването" с отрицателен margin —
 * в тясната текстова колона се застъпват с чипа и цената.
 * Над 640px нищо от това не важи. Префиксът html[data-theme] е, за да
 * надделее над правилата на визиите по-горе (същата специфичност, по-късно). */
@media (max-width: 639px) {
  html[data-theme] .group.rounded-card > a { flex-direction: row; align-items: flex-start; }

  /* снимка — отстъп 12px от трите канта; без долния квадратът опира в долния
   * кант на картата, когато текстът е по-нисък от него ([069]) */
  html[data-theme] .group.rounded-card > a > div:first-child {
    flex: none; width: 112px; height: 112px; aspect-ratio: auto;
    margin: 12px 0 12px 12px; border-radius: 10px; background-color: var(--color-surface-2);
  }
  html[data-theme] .group.rounded-card > a > div:first-child::after { top: 2px; right: 6px; font-size: 14px; }

  /* текст */
  html[data-theme] .group.rounded-card > a > div:nth-child(2) { flex: 1; min-width: 0; padding: 12px; gap: 3px; }
  /* категория (група, подгрупа): пренася се, но най-много на 2 реда —
   * иначе дълго име би издуло картата (виж 03-CHANGELOG [066]) */
  html[data-theme] .group.rounded-card > a > div:nth-child(2) > p:first-child {
    font-size: 10px; letter-spacing: 0.08em; line-height: 1.3;
    overflow: hidden; white-space: normal; overflow-wrap: anywhere;
    display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2;
  }
  html[data-theme] .group.rounded-card > a > div:nth-child(2) > h3 {
    min-height: 0; font-size: 15px; line-height: 1.25;
  }
  html[data-theme] .group.rounded-card > a > div:nth-child(2) > p:nth-child(3) {
    align-self: flex-start; margin-top: 0; font-size: 11px;
  }
  html[data-theme] .group.rounded-card > a > div:nth-child(2) > div:nth-child(4) { margin-top: 2px; }
  html[data-theme] .group.rounded-card > a > div:nth-child(2) > div:nth-child(4) span { font-size: 12px; padding: 1px 6px; }
  html[data-theme] .group.rounded-card > a > div:nth-child(2) > div:nth-child(5) { margin-top: 4px; padding-bottom: 0; border-bottom: 0; }
  html[data-theme] .group.rounded-card > a > div:nth-child(2) > div:nth-child(5) > p:nth-child(1) { font-size: 11px; }
  html[data-theme] .group.rounded-card > a > div:nth-child(2) > div:nth-child(5) > p:nth-child(2) { font-size: 18px; line-height: 1.2; }
  html[data-theme] .group.rounded-card > a > div:nth-child(2) > div:nth-child(5) > p:nth-child(n+3) {
    align-self: flex-start; margin-top: 0; font-size: 12px;
  }
  html[data-theme] .group.rounded-card > a > div:nth-child(2) > div:nth-child(6) { font-size: 12px; }

  /* брояч + „Добавяне" на един ред, с тънка линия отгоре */
  html[data-theme] .group.rounded-card > div.mt-auto {
    flex-direction: row; align-items: stretch; gap: 8px;
    margin: 0 12px; padding: 10px 0 12px; border-top: 1px solid var(--color-border);
  }
  html[data-theme] .group.rounded-card > div.mt-auto > div:first-child { flex: none; align-self: auto; }
  html[data-theme] .group.rounded-card > div.mt-auto > div:first-child > button { width: 40px; }
  html[data-theme] .group.rounded-card > div.mt-auto > div:first-child input { width: 40px; }
  html[data-theme] .group.rounded-card > div.mt-auto button.bg-brand-green { flex: 1; width: auto; padding: 0 10px; font-size: 15px; }
}

/* „Цена на л: —" — червеният маркер за липсващата единична цена за мярка
 * (продуктова карта и продуктова страница, клас .acm-unit-price).
 * СКРИТ ЗАСЕГА навсякъде — елементът остава в DOM; когато има backend
 * променлива, се трие това правило. */
.acm-unit-price { display: none !important; }

/* Количка, стъпка 2 — „Купи" и „Продължи с пазаруването": големи, центрирани.
 * Класовете px-5 / min-h-[48px] от разметката ги няма във vendor.css,
 * затова размерите се задават тук. На мобилно бутоните са един под друг,
 * на цялата ширина. */
.acm-cart-actions {
  display: flex; flex-wrap: wrap; justify-content: center; align-items: center;
  gap: 14px; margin: 28px 0 8px;
}
.acm-cart-actions > .btn-bottom {
  min-width: 260px; min-height: 58px; padding: 0 36px;
  border-radius: 12px; font-size: 18px; font-weight: 700; line-height: 1.2;
}
.acm-cart-actions > button.go-buy-products[type="submit"] {
  min-width: 300px; font-size: 20px; letter-spacing: 0.02em;
}
@media (max-width: 640px) {
  .acm-cart-actions { flex-direction: column; align-items: stretch; gap: 12px; }
  .acm-cart-actions > .btn-bottom,
  .acm-cart-actions > button.go-buy-products[type="submit"] { min-width: 0; width: 100%; min-height: 56px; }
}

/* Моят профил — „Запис на промените" (Акаунт) и „Промени паролата" (Парола):
 * px-5 / min-h-[44px] от разметката ги няма във vendor.css и текстът
 * опираше в краищата. */
.acm-profile-btn {
  min-height: 50px; padding: 0 32px; font-size: 17px; font-weight: 600;
}
@media (max-width: 640px) {
  .acm-profile-btn { width: 100%; }
}

/* Моят профил — централен прозорец „Успешна промяна" след смяна на паролата
 * (partials/profile/acm/main.html, #acm-pass-ok). Собствени класове, защото
 * vendor.css е предварително генериран и няма произволните Tailwind класове. */
.acm-success-overlay {
  position: fixed; inset: 0; z-index: 1000;
  display: flex; align-items: center; justify-content: center;
  padding: 16px; background: rgba(0, 0, 0, 0.45);
  animation: acm-success-fade 0.2s ease-out;
}
.acm-success-box {
  width: 100%; max-width: 380px; box-sizing: border-box;
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  padding: 28px 24px 24px; text-align: center;
  background: var(--color-surface, #fff); color: var(--color-ink, #1a1a1a);
  border-radius: 16px; box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
  animation: acm-success-pop 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}
.acm-success-icon {
  display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%;
  background: var(--color-green-tint, #eaf5e1); color: var(--color-green-deep, #2f6b1f);
}
.acm-success-title { margin: 6px 0 0; font-size: 22px; font-weight: 700; }
.acm-success-text { margin: 0; font-size: 15px; color: var(--color-muted, #666); }
.acm-success-btn {
  margin-top: 10px; min-width: 140px; min-height: 48px; padding: 0 28px;
  border: 0; font-size: 16px; font-weight: 600; cursor: pointer;
}
@media (max-width: 640px) {
  .acm-success-box { padding: 24px 18px 18px; }
  .acm-success-btn { width: 100%; }
}
@keyframes acm-success-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes acm-success-pop { from { opacity: 0; transform: scale(0.94); } to { opacity: 1; transform: scale(1); } }

/* --- Бутон „Търси" в полето за търсене (десктоп + мобилен ред) ----------
 * Стои вътре в полето, вдясно; полето получава място отдясно за него. */
#search-input-q, #mobile-search-input-q { padding-right: 104px; }
.acm-search-btn {
  position: absolute; top: 4px; right: 4px; bottom: 4px;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 0 16px; border: 0; border-radius: 8px; cursor: pointer;
  background-color: #173e2c; color: #fff;
  font-size: 15px; font-weight: 700; line-height: 1;
  transition: background-color 0.15s ease;
}
.acm-search-btn:hover { background-color: var(--color-brand-orange, #ef762f); }
.acm-search-btn:focus-visible { outline: 2px solid var(--color-brand-orange, #ef762f); outline-offset: 2px; }
@media (max-width: 400px) {
  #search-input-q, #mobile-search-input-q { padding-right: 52px; }
  .acm-search-btn { padding: 0 11px; }
  .acm-search-btn > span { display: none; }
}

/* --- Стрелки за смяна на изображението в продуктовата страница ---------
 * partials/product/acm/main.html — показват се само при повече от една
 * картинка. Активната миниатюра получава зелена рамка. */
.acm-gal-arrow {
  position: absolute; top: 50%; z-index: 2;
  display: grid; place-items: center;
  width: 44px; height: 44px; padding: 0;
  transform: translateY(-50%);
  border: 1px solid var(--color-border, #e5e0d6); border-radius: 9999px;
  background-color: rgba(255, 255, 255, 0.92); color: var(--color-ink, #1f2a22);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.acm-gal-prev { left: 12px; }
.acm-gal-next { right: 12px; }
.acm-gal-arrow:hover { background-color: #173e2c; border-color: #173e2c; color: #fff; }
.acm-gal-arrow:focus-visible { outline: 2px solid var(--color-brand-orange, #ef762f); outline-offset: 2px; }
.acm-thumb.is-active { border-color: var(--color-green-deep); box-shadow: 0 0 0 1px var(--color-green-deep); }
@media (max-width: 640px) {
  .acm-gal-arrow { width: 38px; height: 38px; }
  .acm-gal-prev { left: 8px; }
  .acm-gal-next { right: 8px; }
}

/* --- Миниатюрите на продукта — една лента (слайдерът от началната) -------
 * partials/product/acm/main.html. Същите .acm-slider-* класове, тук само
 * по-тесни междини и по-малки стрелки, които стоят върху краищата на лентата. */
.acm-thumbs .acm-slider-track { gap: 8px; padding: 2px 2px 6px; scroll-snap-type: x proximity; }
.acm-thumbs .acm-thumb { scroll-snap-align: start; }
.js .acm-thumbs .acm-slider-nav { width: 34px; height: 34px; margin-top: -2px; }
.acm-thumbs .acm-slider-prev { left: -8px; }
.acm-thumbs .acm-slider-next { right: -8px; }
.acm-thumbs .acm-slider-dots { margin-top: 2px; }
