/* МОЙ ПЛИНТУС: стиль поверх Tabler 1.7.0 и cms/assets/base.css. Палитру задают переменные Tabler. */
:root, [data-bs-theme=light] {
  --tblr-font-sans-serif: Roboto, system-ui, -apple-system, "Segoe UI", sans-serif;
  --tblr-primary: #ffcc33; --tblr-primary-rgb: 255, 204, 51; --tblr-primary-fg: #1a1a1a;
  --tblr-primary-lt: #fff6d6; --tblr-primary-lt-rgb: 255, 246, 214;
  --tblr-link-color: #1a1a1a; --tblr-link-color-rgb: 26, 26, 26; --tblr-link-hover-color: #000;
  --tblr-border-radius: .75rem; --tblr-border-radius-lg: 1rem;
  --tblr-secondary-bg: #f4f4f4; --tblr-bg-surface-tertiary: #f4f4f4;
}
body { letter-spacing: 0; }
a { text-decoration: none; }
a:hover { text-decoration: none; }
.fw-black { font-weight: 900; }
.text-red { color: #e5322d !important; }
.text-primary-emph { color: #e0a800 !important; }
.btn { border-radius: .75rem; }
.btn-primary { --tblr-btn-color: #1a1a1a; --tblr-btn-hover-color: #1a1a1a; --tblr-btn-active-color: #1a1a1a; --tblr-btn-bg: #ffcc33; --tblr-btn-hover-bg: #f5bf1a; --tblr-btn-active-bg: #f5bf1a; --tblr-btn-border-color: #ffcc33; --tblr-btn-hover-border-color: #f5bf1a; --tblr-btn-active-border-color: #f5bf1a; }
.form-control:focus, .form-select:focus { border-color: #ffcc33; box-shadow: 0 0 0 3px rgba(255, 204, 51, .3); }
.form-check-input:checked { background-color: #ffcc33; border-color: #ffcc33; }
.form-check-input:checked[type=checkbox] { --tblr-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%231a1a1a' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"); }
.progress-bar { background-color: #ffcc33; }
.nav-pills .nav-link.active, .nav-pills .show > .nav-link, .list-group-item.active, .dropdown-item.active { background: #ffcc33; color: #1a1a1a; }
.card { border-color: #ececec; }

/* Шапка */
.shop-top { background: #f4f4f4; padding: .45rem 0; }
.shop-top a { color: #555; }
.shop-top a:hover { color: #000; }
.shop-top a.is-active { color: #000; font-weight: 700; }
.shop-head { background: #fff; position: sticky; top: 0; z-index: 1030; }
.shop-logo { font-weight: 900; font-size: 1.5rem; letter-spacing: .02em; color: #1a1a1a; white-space: nowrap; line-height: 1; }
.shop-logo:hover { text-decoration: none; }
.shop-logo img { height: 1.5rem; width: auto; border-radius: 4px; }
.shop-search { gap: .5rem; }
.shop-search .form-control { border: 2px solid #ffcc33; }
.shop-icons a { display: flex; flex-direction: column; align-items: center; min-width: 4rem; padding: .25rem .5rem; color: #1a1a1a; font-size: .75rem; line-height: 1.2; }
.shop-icons a i { font-size: 1.5rem; }
.shop-icons a:hover { color: #000; }
.shop-icons a.is-active { color: #000; font-weight: 700; }
.shop-icons a.is-active i { color: #e0a800; }
.shop-nav { border-top: 1px solid #f0f0f0; padding: .35rem 0 0; font-size: .95rem; box-shadow: inset 0 -1px #e4e4e4; }
.shop-nav a { color: #1a1a1a; white-space: nowrap; padding: .55rem 0 .7rem; border-bottom: 3px solid transparent; }
.shop-nav a:hover { border-bottom-color: #ffe08a; }
.shop-nav a.is-active { font-weight: 700; border-bottom-color: #ffcc33; }
.shop-nav a.text-red { color: #e5322d; }
.shop-nav nav::-webkit-scrollbar { display: none; }

/* Отступы страниц и заголовки */
.page-body { margin-top: 0; padding-top: 1.75rem; }
.page-body h1 { font-weight: 900; letter-spacing: -.01em; }
.page-body .breadcrumb { margin-bottom: 1rem; }

/* Главная */
.shop-tile { transition: box-shadow .15s, border-color .15s; }
.shop-tile { border: 0; }
.shop-cat-img { flex: none; width: 8rem; height: 8rem; padding: .5rem; background: #fff; border-radius: 1rem; display: flex; align-items: center; justify-content: center; }
.shop-cat-img img { width: 100%; height: 100%; object-fit: contain; }
.shop-swatch { display: flex; gap: .3rem; height: 100%; align-items: stretch; }
.shop-swatch i { flex: 1; border-radius: .4rem; }
.shop-brand { height: 6.5rem; }
.shop-brand img { max-width: 80%; max-height: 3rem; object-fit: contain; }
.shop-tile:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0, 0, 0, .08); }

/* Подвал */
.shop-foot { background: #f4f4f4; margin-top: 2rem; }
.shop-foot a { color: #1a1a1a; }
.shop-foot a:hover { color: #000; text-decoration: underline; text-decoration-color: #ffcc33; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.shop-foot a.is-active { font-weight: 700; text-decoration: underline; text-decoration-color: #ffcc33; text-decoration-thickness: 2px; text-underline-offset: 3px; }

@media (max-width: 767.98px) {
  .shop-logo { font-size: 1.2rem; }
  .shop-logo img { height: 1.2rem; }
}

/* Ссылки в тексте страниц подчёркнуты: иначе не видны на чёрном */
.page-body p a:not(.btn), .page-body li a:not(.btn) { text-decoration: underline; text-underline-offset: 2px; text-decoration-color: #ffcc33; text-decoration-thickness: 2px; }

/* Каталог */
.shop-card { transition: box-shadow .15s, border-color .15s; }
.shop-card:hover { border-color: #ffcc33; box-shadow: 0 6px 18px rgba(0, 0, 0, .06); }
.shop-card-img { display: flex; align-items: center; justify-content: center; aspect-ratio: 1; background: #f4f4f4; border-radius: var(--tblr-card-border-radius) var(--tblr-card-border-radius) 0 0; overflow: hidden; }
.shop-card-img img { width: 100%; height: 100%; object-fit: contain; }
.shop-gallery-main { display: flex; align-items: center; justify-content: center; aspect-ratio: 1; background: #f4f4f4; border-radius: var(--tblr-card-border-radius); overflow: hidden; }
.shop-gallery-main img { width: 100%; height: 100%; object-fit: contain; }
.shop-thumb { width: 64px; height: 64px; padding: 0; border: 2px solid transparent; border-radius: .5rem; background: #f4f4f4; overflow: hidden; }
.shop-thumb.active { border-color: #ffcc33; }
.shop-thumb img { width: 100%; height: 100%; object-fit: cover; }
.shop-text img { max-width: 100%; height: auto; }
.shop-text a { text-decoration: underline; }

/* Фильтр */
.shop-filter { background: #f7f7f7; border: 1px solid #ececec; border-radius: 1rem; }
.shop-fgroup { border-bottom: 1px solid #e8e8e8; }
.shop-fgroup:last-of-type { border-bottom: 0; }
.shop-fgroup > a { color: #1a1a1a; }
.shop-fgroup .ti-chevron-down { transition: transform .15s; color: #888; }
.shop-fgroup > a:not(.collapsed) .ti-chevron-down { transform: rotate(180deg); }
.shop-facet { max-height: 15rem; overflow-y: auto; padding: .1rem .1rem .6rem; }
.shop-filter .form-selectgroup { gap: .4rem; }
.shop-filter .form-selectgroup-item { margin: 0 !important; }
.shop-filter .form-selectgroup-label { background: #fff; border: 1px solid #e3e3e3; border-radius: 2rem !important; padding: .3rem .75rem; font-size: .9rem; color: #1a1a1a; transition: border-color .12s, background .12s; }
.shop-filter .form-selectgroup-label:hover { border-color: #ffcc33; background: #fffbea; color: #1a1a1a; }
.shop-filter .form-selectgroup-input:checked + .form-selectgroup-label { background: #ffcc33; border-color: #ffcc33; color: #1a1a1a; font-weight: 700; z-index: 1; }
.shop-filter .form-selectgroup-input:checked + .form-selectgroup-label .text-secondary { color: #5c4a00 !important; }
.shop-filter .form-selectgroup-input:disabled + .form-selectgroup-label { opacity: .4; background: transparent; border-style: dashed; }
.shop-filter .form-selectgroup-input:focus-visible + .form-selectgroup-label { box-shadow: 0 0 0 3px rgba(255, 204, 51, .4); }
.shop-chip { background: #fff3c4; color: #1a1a1a; border: 1px solid #ffe08a; }
.shop-chip:hover { background: #ffe9a0; color: #000; }
.shop-tile, .shop-tile .fw-black { color: #1a1a1a; }

/* Фильтр в стиле маркетплейса */
.shop-opts { overflow: hidden; transition: max-height .3s ease; }
.shop-opt { display: flex; align-items: center; gap: .6rem; padding: .3rem 0; margin: 0; cursor: pointer; line-height: 1.3; }
.shop-opt:hover .shop-opt-t { color: #000; }
.shop-opt .form-check-input { flex: none; }
.shop-opt-t { flex: 1; color: #1a1a1a; }
.shop-opt-n { color: #9a9a9a; font-size: .85rem; }
.shop-opt.is-off { opacity: .45; cursor: default; }
.shop-more { color: #1a1a1a; text-decoration: underline; text-decoration-color: #ffcc33; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.shop-more:hover { text-decoration-color: #e0a800; }
.shop-fgroup { padding-bottom: .5rem; margin-bottom: .5rem; }
.shop-range { position: relative; height: 1.5rem; margin: 0 .5rem; }
.shop-range-track { position: absolute; left: 0; right: 0; top: 50%; height: 4px; margin-top: -2px; background: #e3e3e3; border-radius: 2px; }
.shop-range-fill { position: absolute; top: 0; bottom: 0; background: #ffcc33; border-radius: 2px; }
.shop-range input[type=range] { position: absolute; left: -.5rem; width: calc(100% + 1rem); top: 0; height: 1.5rem; margin: 0; background: none; pointer-events: none; -webkit-appearance: none; appearance: none; }
.shop-range input[type=range]::-webkit-slider-thumb { pointer-events: auto; -webkit-appearance: none; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: #fff; border: 2px solid #ffcc33; box-shadow: 0 1px 4px rgba(0, 0, 0, .2); cursor: pointer; }
.shop-range input[type=range]::-moz-range-thumb { pointer-events: auto; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: #fff; border: 2px solid #ffcc33; box-shadow: 0 1px 4px rgba(0, 0, 0, .2); cursor: pointer; }
.shop-range input[type=range]::-webkit-slider-runnable-track { background: none; }
.shop-range input[type=range]::-moz-range-track { background: none; }

/* Страницы инструментов: серый фон, белые карточки с тенью */
body:has(.tool-bg) { background: #f3f3ef; }
body:has(.tool-bg) .card { border: 0; box-shadow: 0 2px 14px rgba(0, 0, 0, .07); }
body:has(.tool-bg) .card > .card-body > h2.h3, body:has(.tool-bg) .card > .card-body > form > h2.h3 { border-left: 4px solid #ffcc33; padding-left: .7rem; }
body:has(.tool-bg) .shop-foot { background: #fff; border-top: 1px solid #e6e6e0; }
body:has(.tool-bg) .form-control, body:has(.tool-bg) .form-select { background-color: #fafaf8; }
.shop-tabs .nav-link { background: #fff; color: #1a1a1a; border: 1px solid #e6e6e0; font-weight: 600; margin: 0 .25rem; }
.shop-tabs .nav-link.active { background: #ffcc33; border-color: #ffcc33; color: #1a1a1a; box-shadow: 0 4px 12px rgba(0, 0, 0, .12); }
.shop-tabs .nav-item { flex: 1 1 0; } .shop-tabs .nav-link { text-decoration: none; justify-content: center; margin: 0 .25rem; }

.card.bg-primary-lt, .card.bg-primary-lt *, .tool-note, .tool-note * { color: #1a1a1a !important; }

/* Карточка товара: крупные отступы между секциями */
.shop-section { margin-top: 4.5rem; }
@media (max-width: 767.98px) { .shop-section { margin-top: 3rem; } }
