/* === BBC Shop — Luxury Catalog === */
:root {
    --shop-bg:        #fafaf7;
    --shop-surface:   #ffffff;
    --shop-text:      #1a1a1a;
    --shop-muted:     #888;
    --shop-soft:      #f3efe7;
    --shop-border:    #e6e1d6;
    --shop-line:      #ebe7dd;
    --shop-accent:    #a07c2c;
    --shop-accent-dk: #7c5e1d;
    --shop-accent-soft: #d4b275;
    --shop-danger:    #b4513f;
    --shop-success:   #5a7a4e;
    --shop-shadow-sm: 0 1px 3px rgba(0,0,0,0.04);
    --shop-shadow:    0 4px 24px rgba(0,0,0,0.06);
    --shop-shadow-lg: 0 20px 60px rgba(0,0,0,0.08);

    --shop-radius:    2px;
    --shop-radius-md: 6px;

    --shop-font-head: 'Oswald', 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
    --shop-font-body: 'Poppins', system-ui, -apple-system, 'Helvetica Neue', Arial, sans-serif;
    --shop-ease:      cubic-bezier(0.4, 0, 0.2, 1);
}

/* RESET / BASE */
.shop-main { background: var(--shop-bg); color: var(--shop-text); font-family: var(--shop-font-body); min-height: 60vh; padding-bottom: 80px; font-size: 15px; line-height: 1.5; letter-spacing: 0.01em; }
.shop-main *, .shop-header * { box-sizing: border-box; }
/* Глобально убираем native spinner у всех input[type=number] в shop */
.shop-main input[type=number],
.shop-header input[type=number] { -moz-appearance: textfield; appearance: textfield; }
.shop-main input[type=number]::-webkit-outer-spin-button,
.shop-main input[type=number]::-webkit-inner-spin-button,
.shop-header input[type=number]::-webkit-outer-spin-button,
.shop-header input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.shop-main a, .shop-header a { color: var(--shop-text); text-decoration: none; transition: color .25s var(--shop-ease), opacity .25s var(--shop-ease); }
.shop-main a:hover, .shop-header a:hover { color: var(--shop-accent); }
.shop-container { max-width: 1440px; margin: 0 auto; padding: 0 40px; }
/* Подавление глобальных bullet'ов icomoon из BBC styles */
.shop-main ul, .shop-header ul, .shop-footer ul { list-style: none; padding: 0; margin: 0; }
.shop-main li, .shop-header li, .shop-footer li { list-style: none; }
.shop-main li::before, .shop-main li::after,
.shop-header li::before, .shop-header li::after,
.shop-footer li::before, .shop-footer li::after { content: none !important; display: none !important; }

/* Базовый стиль li только в rich-контенте (описания, табы, статьи) */
.shop-product__story-body li,
.shop-tabs-pane li,
.shop-overview__rich li,
.shop-specs__rich li,
.shop-specs__desc-text li,
.shop-cat-desc li,
.shop-product__short li {
    position: relative;
    padding-left: 1rem;
    margin: 5px 0;
    line-height: 1.4;
    font-size: 18px;
}
.shop-i { width: 1em; height: 1em; display: inline-block; vertical-align: -0.12em; flex-shrink: 0; }
.shop-i--lg { width: 18px; height: 18px; }
.shop-i--md { width: 16px; height: 16px; }
.shop-i--sm { width: 12px; height: 12px; }

/* HEADER */
.shop-header { background: var(--shop-surface); border-bottom: 1px solid var(--shop-line); position: relative; }
.shop-header__top { background: var(--shop-text); color: #d4d4d4; font-size: 12px; padding: 8px 0; letter-spacing: 0.04em; }
.shop-header__top-row { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.shop-header__lang a { color: rgba(255,255,255,0.55) !important; text-decoration: none !important; padding: 3px 10px; margin-right: 2px; letter-spacing: 0.12em; font-size: 11px; transition: all .2s; border-bottom: 1px solid transparent; }
.shop-header__lang a:hover { color: #fff !important; }
.shop-header__lang a.active { color: var(--shop-accent-soft) !important; border-bottom-color: var(--shop-accent-soft); font-weight: 500; }
.shop-header__contacts { display: flex; gap: 28px; }
.shop-header__contacts a { color: rgba(255,255,255,0.7); text-decoration: none; }
.shop-header__contacts a:hover { color: #fff; }
.shop-header__contacts i { margin-right: 8px; color: var(--shop-accent-soft); }

.shop-header__main { padding: 28px 0; }
.shop-header__main-row { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 50px; }
.shop-logo-bb { font-family: var(--shop-font-head); font-size: 30px; font-weight: 300; letter-spacing: 0.15em; color: var(--shop-text); text-decoration: none; text-transform: uppercase; }
.shop-logo-bb span { color: var(--shop-accent); font-weight: 500; }

.shop-search { display: flex; max-width: 560px; width: 100%; margin: 0 auto; border-bottom: 1px solid var(--shop-line); transition: border-color .25s; position: relative; }
.shop-search:focus-within { border-color: var(--shop-text); }
.shop-search input { flex: 1; padding: 12px 4px; border: 0; background: transparent; font-size: 14px; outline: none; letter-spacing: 0.02em; font-family: inherit; }
.shop-search input::placeholder { color: var(--shop-muted); }
.shop-search button { padding: 0 16px; background: transparent; border: 0; cursor: pointer; color: var(--shop-text); }
.shop-search button:hover { color: var(--shop-accent); }

/* Live-search dropdown */
.shop-search-dropdown { position: absolute; top: calc(100% + 8px); left: 0; right: 0; background: var(--shop-surface); border: 1px solid var(--shop-line); box-shadow: 0 20px 60px rgba(0,0,0,0.12); z-index: 100; max-height: 60vh; overflow-y: auto; }
.shop-search-dropdown[hidden] { display: none; }
.shop-search-dropdown__loading { padding: 24px; text-align: center; color: var(--shop-muted); font-size: 12px; letter-spacing: 0.15em; text-transform: uppercase; }
.shop-search-dropdown__empty { padding: 28px 20px; text-align: center; color: var(--shop-muted); font-size: 13px; }
.shop-search-dropdown__empty strong { color: var(--shop-text); }
.shop-search-dropdown__list { list-style: none; margin: 0; padding: 0; }
.shop-search-dropdown__list li { padding: 0; margin: 0; }
.shop-search-dropdown__list li::before { display: none !important; }
.shop-search-dropdown__item { display: grid; grid-template-columns: 56px 1fr auto; gap: 14px; padding: 12px 16px; align-items: center; text-decoration: none !important; color: var(--shop-text) !important; border-bottom: 1px solid var(--shop-line); transition: background .15s; }
.shop-search-dropdown__item:last-child { border-bottom: 0; }
.shop-search-dropdown__item:hover, .shop-search-dropdown__item.active { background: var(--shop-soft); color: var(--shop-text) !important; }
.shop-search-dropdown__img { width: 56px; height: 70px; object-fit: cover; background: var(--shop-soft); }
.shop-search-dropdown__body { min-width: 0; }
.shop-search-dropdown__name { font-size: 13px; font-weight: 500; line-height: 1.35; margin-bottom: 4px; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.shop-search-dropdown__name mark { background: rgba(160,124,44,0.18); color: inherit; font-weight: 600; padding: 0; }
.shop-search-dropdown__meta { font-size: 10px; color: var(--shop-muted); letter-spacing: 0.1em; text-transform: uppercase; }
.shop-search-dropdown__meta .dot { margin: 0 6px; }
.shop-search-dropdown__price { font-size: 14px; font-weight: 500; font-family: var(--shop-font-head); color: var(--shop-accent-dk); text-align: right; white-space: nowrap; }
.shop-search-dropdown__price--ask { font-size: 11px; color: var(--shop-muted); font-weight: 400; letter-spacing: 0.05em; text-transform: uppercase; font-family: var(--shop-font-body); }
.shop-search-dropdown__footer { display: flex; justify-content: center; padding: 12px; border-top: 1px solid var(--shop-line); background: var(--shop-soft); }
.shop-search-dropdown__footer a { font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--shop-text) !important; text-decoration: none !important; border-bottom: 1px solid currentColor; padding-bottom: 2px; }
.shop-search-dropdown__footer a:hover { color: var(--shop-accent) !important; }

@media (max-width: 600px) {
    .shop-search-dropdown { left: -16px; right: -16px; max-height: 70vh; }
    .shop-search-dropdown__item { grid-template-columns: 44px 1fr auto; gap: 10px; padding: 10px 14px; }
    .shop-search-dropdown__img { width: 44px; height: 56px; }
}

.shop-header__actions { display: flex; gap: 22px; }
.shop-header__action { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; color: var(--shop-text); font-size: 12px; position: relative; padding: 6px 0; letter-spacing: 0.08em; text-transform: uppercase; transition: color .25s; }
.shop-header__action i { font-size: 16px; color: var(--shop-text); transition: color .25s; }
.shop-header__action:hover, .shop-header__action:hover i { color: var(--shop-accent); }
.shop-cart-badge { background: var(--shop-accent); color: #fff; border-radius: 50%; min-width: 18px; height: 18px; font-size: 10px; line-height: 18px; text-align: center; padding: 0 4px; font-weight: 600; letter-spacing: 0; margin-left: 2px; }

.shop-header__nav { border-top: 1px solid var(--shop-line); border-bottom: 1px solid var(--shop-line); background: var(--shop-surface); }
.shop-nav__list { display: flex; column-gap: 0; row-gap: 0; list-style: none; margin: 0; padding: 6px 0; flex-wrap: wrap; justify-content: center; }
.shop-nav__list li a { display: inline-flex; align-items: center; gap: 6px; padding: 3px 14px; text-decoration: none; color: var(--shop-text); font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.12em; border-top: 2px solid transparent; border-bottom: 2px solid transparent; transition: all .25s var(--shop-ease); line-height: 1.4; }
.shop-nav__list li a:hover { color: var(--shop-accent); border-bottom-color: var(--shop-accent); }
.shop-nav__icon { width: 16px; height: 16px; object-fit: contain; filter: brightness(0); opacity: 0.8; transition: filter .25s, opacity .25s; }
.shop-nav__list li a:hover .shop-nav__icon { filter: brightness(0) saturate(100%) invert(48%) sepia(35%) saturate(800%) hue-rotate(11deg) brightness(91%) contrast(85%); opacity: 1; }

/* SECTIONS */
.shop-section { margin: 60px 0; }
.shop-section__title { font-family: var(--shop-font-head); font-size: 28px; font-weight: 300; margin: 0 0 32px; letter-spacing: 0.12em; text-transform: uppercase; text-align: center; }
.shop-section__title::after { content: ''; display: block; width: 40px; height: 1px; background: var(--shop-accent); margin: 16px auto 0; }
.shop-section__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 32px; flex-wrap: wrap; gap: 16px; }
.shop-section__head .shop-section__title { margin: 0; text-align: left; }
.shop-section__head .shop-section__title::after { margin-left: 0; }
.shop-section__more { color: var(--shop-text); text-decoration: none; font-size: 12px; letter-spacing: 0.15em; text-transform: uppercase; border-bottom: 1px solid currentColor; padding-bottom: 2px; transition: all .25s; }
.shop-section__more:hover { color: var(--shop-accent); }

/* HERO */
.shop-hero { background: linear-gradient(135deg, var(--shop-soft) 0%, var(--shop-bg) 100%); padding: 90px 40px; margin: 0 -40px 60px; text-align: center; position: relative; overflow: hidden; }
.shop-hero::before { content: ''; position: absolute; inset: 0; background-image: radial-gradient(circle at 20% 30%, rgba(160,124,44,0.04) 0%, transparent 50%), radial-gradient(circle at 80% 70%, rgba(160,124,44,0.05) 0%, transparent 50%); pointer-events: none; }
.shop-hero__inner { position: relative; max-width: 720px; margin: 0 auto; }
.shop-hero__eyebrow { color: var(--shop-accent); font-size: 11px; letter-spacing: 0.4em; text-transform: uppercase; margin-bottom: 16px; }
.shop-hero__title { font-family: var(--shop-font-head); font-size: 56px; font-weight: 300; margin: 0 0 20px; letter-spacing: 0.06em; text-transform: uppercase; line-height: 1.1; }
.shop-hero__title em { color: var(--shop-accent); font-style: normal; font-weight: 400; }
.shop-hero__sub { color: var(--shop-muted); font-size: 16px; max-width: 540px; margin: 0 auto; line-height: 1.6; letter-spacing: 0.02em; }

/* BREADCRUMBS */
.shop-breadcrumbs { padding: 24px 0; font-size: 11px; color: var(--shop-muted); letter-spacing: 0.12em; text-transform: uppercase; }
.shop-breadcrumbs a { color: var(--shop-muted); text-decoration: none; }
.shop-breadcrumbs a:hover { color: var(--shop-accent); }
.shop-breadcrumbs .current { color: var(--shop-text); }
.shop-breadcrumbs span { margin: 0 10px; color: var(--shop-border); }

/* CATEGORY CARDS (главная) */
.shop-cats-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 32px; }
.shop-cat-card { display: block; text-decoration: none; text-align: center; padding: 20px; background: var(--shop-surface); transition: all .35s var(--shop-ease); position: relative; }
.shop-cat-card::before { content: ''; position: absolute; inset: 0; border: 1px solid transparent; transition: border-color .35s; pointer-events: none; }
.shop-cat-card:hover::before { border-color: var(--shop-accent); }
.shop-cat-card__img, .shop-cat-card__icon { width: 130px; height: 130px; margin: 8px auto 20px; display: flex; align-items: center; justify-content: center; }
.shop-cat-card__img { background: var(--shop-soft); border-radius: 50%; overflow: hidden; }
.shop-cat-card__img img { width: 100%; height: 100%; object-fit: cover; color: transparent; font-size: 0; transition: transform .5s; }
.shop-cat-card:hover .shop-cat-card__img img { transform: scale(1.08); }
.shop-cat-card__icon { background: var(--shop-text); border-radius: 50%; transition: background .35s; }
.shop-cat-card__icon img { width: 50%; height: 50%; object-fit: contain; filter: brightness(0) invert(1); opacity: 0.9; transition: opacity .35s; }
.shop-cat-card__icon svg { width: 46%; height: 46%; color: #fff; opacity: 0.9; transition: opacity .35s, color .35s; }
.shop-cat-card--icon:hover .shop-cat-card__icon { background: var(--shop-accent); }
.shop-cat-card--icon:hover .shop-cat-card__icon img,
.shop-cat-card--icon:hover .shop-cat-card__icon svg { opacity: 1; }
.shop-cat-card__icon--placeholder { color: rgba(255,255,255,0.3); font-size: 36px; }
.shop-cat-card__name { color: var(--shop-text); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 500; }

/* SUBCATS — chips */
.shop-subcats { display: flex; gap: 10px; flex-wrap: wrap; margin: 16px 0 36px; }
.shop-subcat-card { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; padding: 10px 22px; border: 1px solid var(--shop-border); border-radius: 100px; background: var(--shop-surface); color: var(--shop-text); transition: all .25s; font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 500; }
.shop-subcat-card:has(.shop-subcat-card__icon) { padding-left: 10px; }
.shop-subcat-card:hover { border-color: var(--shop-text); background: var(--shop-text); color: #fff; }
.shop-subcat-card:hover .shop-subcat-card__icon { background: var(--shop-accent); }
.shop-subcat-card:hover .shop-subcat-card__icon img { filter: brightness(0) invert(1); }
.shop-subcat-card:hover .shop-subcat-card__icon svg { color: #fff; }
.shop-subcat-card__icon { width: 28px; height: 28px; flex: 0 0 28px; border-radius: 50%; overflow: hidden; background: var(--shop-soft); display: inline-flex; align-items: center; justify-content: center; transition: background .25s; }
.shop-subcat-card__icon img { width: 60%; height: 60%; object-fit: contain; filter: brightness(0); opacity: 0.85; transition: filter .25s, opacity .25s; }
.shop-subcat-card__icon svg { width: 60%; height: 60%; color: var(--shop-text); transition: color .25s; }

/* PRODUCT CARD (grid) */
.shop-products-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 36px 24px; }
.shop-card { background: transparent; display: flex; flex-direction: column; position: relative; transition: opacity .25s; }
.shop-card__img-wrap { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: var(--shop-soft); display: block; margin-bottom: 16px; }
.shop-card__img-wrap img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--shop-ease), opacity .25s; }
.shop-no-photo { width: 60%; height: 60%; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); opacity: 0.6; }
.shop-card__img-wrap .shop-no-photo { width: 50%; height: 50%; }
.shop-product__main-img .shop-no-photo { width: 40%; height: 40%; }
.shop-card:hover .shop-card__img-wrap img { transform: scale(1.04); }
.shop-badge { position: absolute; top: 14px; padding: 4px 10px; font-size: 10px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.15em; color: #fff; background: var(--shop-text); }
.shop-badge--new  { left: 14px; background: var(--shop-text); }
.shop-badge--sale { left: 14px; background: var(--shop-danger); }
.shop-badge--out  { right: 14px; background: rgba(0,0,0,0.7); }
.shop-card__body { padding: 0 4px; display: flex; flex-direction: column; flex: 1; text-align: center; }
.shop-card__title { font-size: 14px; font-weight: 500; color: var(--shop-text); text-decoration: none; line-height: 1.4; margin-bottom: 6px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.8em; letter-spacing: 0.02em; }
.shop-card__title:hover { color: var(--shop-accent); }
.shop-card__vol { font-size: 11px; color: var(--shop-muted); margin-bottom: 10px; letter-spacing: 0.1em; text-transform: uppercase; }
.shop-card__bottom { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: auto; }
.shop-card__price .price { font-size: 15px; font-weight: 500; color: var(--shop-text); font-family: var(--shop-font-body); letter-spacing: 0.04em; }
.shop-card__price .price--ask { font-size: 12px; color: var(--shop-muted); font-weight: 400; letter-spacing: 0.08em; }
.shop-btn--cart { background: transparent; border: 1px solid var(--shop-border); color: var(--shop-text); padding: 0; border-radius: 2px; width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: all .25s; }
.shop-btn--cart:hover { background: var(--shop-text); color: #fff !important; border-color: var(--shop-text); }
.shop-btn--cart .shop-i { width: 16px; height: 16px; }

/* BUTTONS */
.shop-btn { display: inline-flex !important; align-items: center; justify-content: center; gap: 10px; padding: 14px 28px; border: 1px solid var(--shop-text); background: transparent; color: var(--shop-text) !important; cursor: pointer; text-decoration: none !important; font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 500; transition: all .25s var(--shop-ease); font-family: inherit; line-height: 1; }
.shop-btn:hover { background: var(--shop-text); color: #fff !important; }
.shop-btn--primary { background: var(--shop-text); color: #fff !important; }
.shop-btn--primary:hover { background: var(--shop-accent); border-color: var(--shop-accent); color: #fff !important; }
.shop-btn--lg { padding: 18px 38px; font-size: 13px; }
.shop-btn--ok { background: var(--shop-success); color: #fff; border-color: var(--shop-success); }

/* LIST BAR */
.shop-list-bar { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding: 18px 0; border-top: 1px solid var(--shop-line); border-bottom: 1px solid var(--shop-line); margin-bottom: 40px; }
.shop-list-bar__count { font-size: 12px; color: var(--shop-muted); letter-spacing: 0.12em; text-transform: uppercase; }
.shop-list-bar__count strong { color: var(--shop-text); font-weight: 500; }
.shop-list-bar__sort label { font-size: 11px; color: var(--shop-muted); margin-right: 12px; letter-spacing: 0.15em; text-transform: uppercase; }
.shop-list-bar__sort select { padding: 6px 28px 6px 0; border: 0; background: transparent; font-size: 13px; cursor: pointer; font-family: inherit; color: var(--shop-text); border-bottom: 1px solid transparent; appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23888' stroke-width='1' fill='none'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right center; }
.shop-list-bar__sort select:hover { color: var(--shop-accent); }

/* PAGINATION */
.shop-pagination { display: flex; gap: 4px; justify-content: center; margin-top: 50px; flex-wrap: wrap; }
.shop-pagination a, .shop-pagination span { padding: 10px 16px; text-decoration: none; color: var(--shop-text); font-size: 13px; min-width: 40px; text-align: center; transition: all .25s; letter-spacing: 0.05em; }
.shop-pagination a:hover { color: var(--shop-accent); }
.shop-pagination .current { color: var(--shop-accent); border-bottom: 1px solid var(--shop-accent); font-weight: 500; }

/* EMPTY */
.shop-empty { text-align: center; padding: 80px 20px; }
.shop-empty p { color: var(--shop-muted); margin: 16px 0 28px; }

/* CATEGORY HEADER */
.shop-cat-header { padding: 30px 0 24px; text-align: center; }
.shop-cat-header h1 { font-family: var(--shop-font-head); font-size: 42px; font-weight: 300; margin: 0 0 12px; letter-spacing: 0.06em; text-transform: uppercase; display: inline-flex; align-items: center; justify-content: center; gap: 18px; }
.shop-cat-header__icon { width: 48px; height: 48px; object-fit: contain; filter: brightness(0) saturate(100%) invert(48%) sepia(35%) saturate(800%) hue-rotate(11deg) brightness(91%) contrast(85%); opacity: 0.95; }
.shop-cat-header__intro { color: var(--shop-muted); margin: 0 auto; max-width: 640px; line-height: 1.7; font-size: 14px; }
.shop-cat-desc { padding: 50px 0 0; max-width: 800px; margin: 50px auto 0; border-top: 1px solid var(--shop-line); line-height: 1.8; color: #444; font-size: 15px; }

/* === PRODUCT PAGE (luxury) === */
.shop-product-page { padding: 20px 0 60px; }
.shop-product__hero { display: grid; grid-template-columns: 1.2fr 1fr; gap: 80px; align-items: start; margin-bottom: 100px; }

/* GALLERY */
.shop-product__gallery { position: sticky; top: 30px; align-self: start; display: grid; grid-template-columns: 80px 1fr; gap: 16px; }
.shop-product__thumbs { display: flex; flex-direction: column; gap: 10px; max-height: 720px; overflow-y: auto; }
.shop-product__thumb { width: 80px; height: 100px; object-fit: cover; cursor: pointer; opacity: 0.55; transition: opacity .25s; background: var(--shop-soft); border: 1px solid transparent; }
.shop-product__thumb.active, .shop-product__thumb:hover { opacity: 1; border-color: var(--shop-text); }
.shop-product__main-img { aspect-ratio: 3 / 4; overflow: hidden; background: var(--shop-soft); position: relative; }
.shop-product__main-img a, .shop-product__main-img img { display: block; width: 100%; height: 100%; }
.shop-product__main-img img { object-fit: cover; transition: transform .5s; }
.shop-product__main-img:hover img { transform: scale(1.02); }

/* INFO */
.shop-product__info { padding-top: 10px; }
.shop-product__brand { font-size: 11px; color: var(--shop-accent); letter-spacing: 0.3em; text-transform: uppercase; margin-bottom: 14px; font-weight: 500; }
.shop-product__title { font-family: var(--shop-font-head); font-size: 38px; font-weight: 300; margin: 0 0 12px; line-height: 1.15; letter-spacing: 0.04em; text-transform: uppercase; color: var(--shop-text); }
.shop-product__meta { display: flex; gap: 24px; font-size: 12px; color: var(--shop-muted); letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 28px; flex-wrap: wrap; }
.shop-product__meta strong { color: var(--shop-text); font-weight: 500; }
.shop-product__short { font-size: 15px; line-height: 1.7; color: #555; margin-bottom: 32px; }
.shop-product__short p:first-child { margin-top: 0; }

.shop-product__price-block { padding: 24px 0; border-top: 1px solid var(--shop-line); border-bottom: 1px solid var(--shop-line); margin-bottom: 28px; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; }
.shop-product__price { font-family: var(--shop-font-head); font-size: 36px; font-weight: 400; color: var(--shop-text); letter-spacing: 0.03em; }
.shop-product__price--ask { font-size: 18px; color: var(--shop-muted); font-weight: 300; }
.shop-product__stock { display: inline-flex; align-items: center; gap: 8px; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; }
.shop-product__stock.in-stock { color: var(--shop-success); }
.shop-product__stock.out-stock { color: var(--shop-muted); }
.shop-product__stock i { font-size: 10px; }

.shop-product__actions { display: flex; gap: 14px; align-items: stretch; margin-bottom: 32px; }
.shop-product__qty { display: inline-flex; align-items: stretch; border: 1px solid var(--shop-border); background: var(--shop-surface); height: 48px; user-select: none; }
.shop-product__qty button { width: 46px; height: 100%; border: 0; background: transparent; cursor: pointer; font-size: 18px; color: var(--shop-text); transition: all .2s; font-family: inherit; padding: 0; display: inline-flex; align-items: center; justify-content: center; line-height: 1; }
.shop-product__qty button:hover { background: var(--shop-text); color: #fff; }
.shop-product__qty input { width: 56px; text-align: center; border: 0; border-left: 1px solid var(--shop-border); border-right: 1px solid var(--shop-border); background: transparent; font-size: 15px; font-weight: 500; outline: none; font-family: inherit; -moz-appearance: textfield; appearance: textfield; -webkit-appearance: none; padding: 0; color: var(--shop-text); }
.shop-product__qty input::-webkit-outer-spin-button,
.shop-product__qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.shop-product__qty--sm { height: 32px; }
.shop-product__qty--sm button { width: 32px; font-size: 14px; }
.shop-product__qty--sm input { width: 40px; font-size: 13px; }
.shop-product__actions .shop-btn { flex: 1; padding: 14px 28px; }

/* PARAMS QUICK LIST */
.shop-product__quick-params { list-style: none; padding: 0; margin: 0 0 28px; border-top: 1px solid var(--shop-line); }
.shop-product__quick-params li { display: flex; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid var(--shop-line); font-size: 13px; }
.shop-product__quick-params li > span:first-child { color: var(--shop-muted); letter-spacing: 0.08em; text-transform: uppercase; font-size: 11px; }
.shop-product__quick-params li > span:last-child { color: var(--shop-text); text-align: right; }

/* SECTIONS — Action / Usage / etc — clean alternating layout (NO dark boxes) */
.shop-product__story { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; margin: 80px 0; }
.shop-product__story--reverse > :first-child { order: 2; }
.shop-product__story--reverse > :last-child  { order: 1; }
.shop-product__story-img { aspect-ratio: 4 / 5; overflow: hidden; background: var(--shop-soft); }
.shop-product__story-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.shop-product__story-img:hover img { transform: scale(1.03); }
.shop-product__story-text { max-width: 460px; }
.shop-product__story-eyebrow { font-size: 11px; color: var(--shop-accent); letter-spacing: 0.4em; text-transform: uppercase; margin-bottom: 16px; }
.shop-product__story-title { font-family: var(--shop-font-head); font-size: 36px; font-weight: 300; margin: 0 0 24px; letter-spacing: 0.05em; text-transform: uppercase; line-height: 1.2; }
.shop-product__story-body { line-height: 1.8; color: #555; font-size: 15px; }
.shop-product__story-body p { margin: 0 0 14px; }
.shop-product__story-body p:last-child { margin-bottom: 0; }
.shop-product__story-body ul { padding-left: 18px; margin: 14px 0; }
.shop-product__story-body li { margin-bottom: 8px; }

/* TABS — minimal, centered */
.shop-product__details { padding: 80px 0; border-top: 1px solid var(--shop-line); margin-top: 60px; }
.shop-tabs-nav { display: flex; justify-content: center; gap: 0; margin-bottom: 50px; flex-wrap: wrap; }
.shop-tabs-nav__btn { padding: 14px 24px; border: 0; background: transparent; cursor: pointer; font-size: 11px; font-weight: 500; color: var(--shop-muted); letter-spacing: 0.2em; text-transform: uppercase; font-family: inherit; transition: color .25s; position: relative; }
.shop-tabs-nav__btn::after { content: ''; position: absolute; left: 50%; bottom: 4px; width: 0; height: 1px; background: var(--shop-accent); transition: all .3s; transform: translateX(-50%); }
.shop-tabs-nav__btn:hover { color: var(--shop-text); }
.shop-tabs-nav__btn.active { color: var(--shop-text); }
.shop-tabs-nav__btn.active::after { width: 30px; }
.shop-tabs-content { max-width: 760px; margin: 0 auto; }
.shop-tabs-pane { display: none; line-height: 1.8; color: #444; font-size: 15px; }
.shop-tabs-pane.active { display: block; animation: shopFade .35s var(--shop-ease); }
.shop-tabs-pane p { margin: 0 0 14px; }
.shop-tabs-pane p:first-child { margin-top: 0; }

@keyframes shopFade { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

/* CHARACTERISTICS TABLE */
.shop-spec-table { width: 100%; border-collapse: collapse; }
.shop-spec-table tr { border-bottom: 1px solid var(--shop-line); }
.shop-spec-table tr:last-child { border-bottom: 0; }
.shop-spec-table th { text-align: left; padding: 14px 24px 14px 0; font-weight: 500; color: var(--shop-muted); width: 40%; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; vertical-align: top; }
.shop-spec-table td { padding: 14px 0; color: var(--shop-text); font-size: 14px; }

/* CART */
.shop-cart__table { width: 100%; border-collapse: collapse; }
.shop-cart__table th { background: transparent; text-align: left; padding: 16px 0; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--shop-muted); font-weight: 500; border-bottom: 1px solid var(--shop-line); }
.shop-cart__table td { padding: 24px 0; border-bottom: 1px solid var(--shop-line); vertical-align: middle; }
.shop-cart__img { width: 80px; height: 100px; background: var(--shop-soft); display: inline-flex; align-items: center; justify-content: center; overflow: hidden; position: relative; }
.shop-cart__img img { width: 100%; height: 100%; object-fit: cover; }
.shop-cart__img .shop-no-photo { width: 70%; height: 70%; position: static; transform: none; opacity: 0.6; }
.shop-cart__vol { font-size: 11px; color: var(--shop-muted); letter-spacing: 0.1em; text-transform: uppercase; margin-top: 4px; }
.shop-cart__remove { background: transparent; border: 0; cursor: pointer; color: var(--shop-muted); font-size: 14px; padding: 6px; transition: color .2s; }
.shop-cart__remove:hover { color: var(--shop-danger); }
.shop-cart__total { display: flex; justify-content: flex-end; align-items: center; gap: 32px; margin-top: 40px; flex-wrap: wrap; }
.shop-cart__total-row { font-size: 14px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--shop-muted); }
.shop-cart__total-row strong { font-family: var(--shop-font-head); font-size: 26px; color: var(--shop-text); margin-left: 16px; font-weight: 400; letter-spacing: 0; text-transform: none; }

/* CHECKOUT */
.shop-checkout { display: grid; grid-template-columns: 1.6fr 1fr; gap: 60px; align-items: start; margin-top: 30px; }
.shop-checkout__form { background: var(--shop-surface); padding: 36px; border: 1px solid var(--shop-line); }
.shop-checkout__group { padding-bottom: 28px; margin-bottom: 28px; border-bottom: 1px solid var(--shop-line); }
.shop-checkout__group:last-of-type { border-bottom: 0; margin-bottom: 16px; }
.shop-checkout__h3 { font-family: var(--shop-font-head); font-size: 14px; letter-spacing: 0.25em; text-transform: uppercase; font-weight: 500; margin: 0 0 18px; color: var(--shop-text); }
.shop-form-row { margin-bottom: 14px; }
.shop-form-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 14px; }
.shop-checkout label { display: block; font-size: 12px; color: var(--shop-muted); letter-spacing: 0.1em; text-transform: uppercase; }
.shop-checkout label .req { color: var(--shop-danger); }
.shop-checkout input[type=text], .shop-checkout input[type=email], .shop-checkout input[type=tel], .shop-checkout textarea { width: 100%; margin-top: 6px; padding: 12px 14px; border: 1px solid var(--shop-border); background: #fff; font-family: inherit; font-size: 14px; color: var(--shop-text); letter-spacing: 0; text-transform: none; outline: none; transition: border-color .2s; }
.shop-checkout input:focus, .shop-checkout textarea:focus { border-color: var(--shop-text); }
.shop-checkout em.err { color: var(--shop-danger); font-style: normal; font-size: 11px; margin-top: 4px; display: inline-block; letter-spacing: 0.05em; }

.shop-form-radios { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 14px; }
.shop-form-radio { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid var(--shop-border); cursor: pointer; transition: all .2s; text-transform: none; letter-spacing: 0; font-size: 14px; color: var(--shop-text); }
.shop-form-radio:hover { border-color: var(--shop-text); }
.shop-form-radio input { accent-color: var(--shop-accent); }
.shop-form-radio input:checked + span { font-weight: 500; }
.shop-form-radio:has(input:checked) { border-color: var(--shop-text); background: var(--shop-soft); }

.shop-form-agree { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; padding: 16px 0; text-transform: none; letter-spacing: 0; font-size: 13px; color: var(--shop-text); }
.shop-form-agree input { margin-top: 3px; accent-color: var(--shop-accent); }

.shop-checkout__submit { margin-top: 10px; }
.shop-checkout__submit .shop-btn { width: 100%; }

.shop-alert { padding: 14px 18px; margin-bottom: 20px; border: 1px solid; font-size: 13px; letter-spacing: 0.04em; }
.shop-alert--err { background: #fdf2ef; border-color: var(--shop-danger); color: var(--shop-danger); }

.shop-checkout__summary { background: var(--shop-soft); padding: 30px; position: sticky; top: 20px; }
.shop-checkout__items { list-style: none; margin: 0 0 24px; padding: 0; }
.shop-checkout__items li { display: grid; grid-template-columns: 56px 1fr auto; gap: 14px; align-items: center; padding: 14px 0; border-bottom: 1px solid rgba(0,0,0,0.06); }
.shop-checkout__items li::before { display: none !important; }
.shop-checkout__items li:last-child { border-bottom: 0; }
.shop-checkout__item-img { width: 56px; height: 70px; background: #fff; overflow: hidden; }
.shop-checkout__item-img img, .shop-checkout__item-img .shop-no-photo { width: 100%; height: 100%; object-fit: cover; position: static; transform: none; opacity: 1; }
.shop-checkout__item-name { font-size: 13px; font-weight: 500; line-height: 1.3; color: var(--shop-text); }
.shop-checkout__item-meta { font-size: 11px; color: var(--shop-muted); margin-top: 4px; letter-spacing: 0.05em; }
.shop-checkout__item-sum { font-size: 14px; font-weight: 500; color: var(--shop-text); white-space: nowrap; }
.shop-checkout__totals { border-top: 1px solid rgba(0,0,0,0.1); padding-top: 18px; }
.shop-checkout__row { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; font-size: 13px; color: var(--shop-muted); letter-spacing: 0.05em; }
.shop-checkout__row strong { color: var(--shop-text); font-weight: 500; }
.shop-checkout__row--total { font-size: 14px; margin-top: 8px; padding-top: 14px; border-top: 1px solid rgba(0,0,0,0.08); text-transform: uppercase; letter-spacing: 0.15em; }
.shop-checkout__row--total strong { font-family: var(--shop-font-head); font-size: 24px; letter-spacing: 0; font-weight: 400; }

.shop-checkout__success { text-align: center; padding: 80px 20px; max-width: 560px; margin: 0 auto; }
.shop-checkout__success-icon { width: 64px; height: 64px; margin: 0 auto 24px; display: flex; align-items: center; justify-content: center; border: 2px solid var(--shop-success); border-radius: 50%; color: var(--shop-success); }
.shop-checkout__success-icon .shop-i { width: 32px; height: 32px; stroke-width: 2; }
.shop-checkout__success-title { font-family: var(--shop-font-head); font-size: 36px; font-weight: 300; letter-spacing: 0.06em; text-transform: uppercase; margin: 0 0 16px; }
.shop-checkout__success-num { font-size: 14px; color: var(--shop-muted); margin-bottom: 18px; letter-spacing: 0.05em; }
.shop-checkout__success-num strong { color: var(--shop-text); font-family: var(--shop-font-head); font-size: 18px; }
.shop-checkout__success-text { color: var(--shop-muted); line-height: 1.7; margin-bottom: 32px; }

/* FOOTER */
.shop-footer { background: var(--shop-text); color: rgba(255,255,255,0.7); padding: 60px 0 28px; margin-top: 80px; font-size: 13px; }
.shop-footer__cols { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 60px; }
.shop-footer__col h3 { color: #fff; font-family: var(--shop-font-head); font-size: 13px; letter-spacing: 0.25em; margin: 0 0 22px; text-transform: uppercase; font-weight: 400; }
.shop-footer__col ul { list-style: none; padding: 0; margin: 0; }
.shop-footer__col li { margin-bottom: 10px; }
.shop-footer__col a { color: rgba(255,255,255,0.6); text-decoration: none; transition: color .25s; }
.shop-footer__col a:hover { color: #fff; }
.shop-footer__col p { margin: 0 0 8px; line-height: 1.7; }
.shop-footer__col p i, .shop-footer__col li i { color: var(--shop-accent-soft); margin-right: 8px; width: 14px; }
.shop-footer__social { display: flex; gap: 10px; margin-top: 18px; }
.shop-footer__social a { display: inline-flex; width: 36px; height: 36px; border: 1px solid rgba(255,255,255,0.18); border-radius: 50%; align-items: center; justify-content: center; transition: all .25s; }
.shop-footer__social a:hover { border-color: var(--shop-accent-soft); color: var(--shop-accent-soft); }
.shop-footer__bottom { border-top: 1px solid rgba(255,255,255,0.08); padding-top: 24px; margin-top: 40px; text-align: center; color: rgba(255,255,255,0.4); font-size: 12px; letter-spacing: 0.08em; }

/* RESPONSIVE */
@media (max-width: 1100px) {
    .shop-container { padding: 0 24px; }
    .shop-product__hero { gap: 50px; }
    .shop-product__story { gap: 50px; margin: 60px 0; }
}
@media (max-width: 900px) {
    .shop-header__main-row { grid-template-columns: 1fr; gap: 16px; }
    .shop-search { max-width: 100%; }
    .shop-header__contacts { display: none; }
    .shop-header__actions { justify-content: center; }
    .shop-product__hero { grid-template-columns: 1fr; gap: 30px; }
    .shop-product__gallery { position: static; grid-template-columns: 1fr; }
    .shop-product__thumbs { flex-direction: row; max-height: none; overflow-x: auto; overflow-y: visible; }
    .shop-product__thumb { flex: 0 0 80px; }
    .shop-product__story { grid-template-columns: 1fr; gap: 30px; margin: 50px 0; }
    .shop-product__story--reverse > :first-child, .shop-product__story--reverse > :last-child { order: unset; }
    .shop-cart__table th:nth-child(3), .shop-cart__table td:nth-child(3) { display: none; }
    .shop-checkout { grid-template-columns: 1fr; gap: 32px; }
    .shop-checkout__summary { position: static; }
    .shop-form-radios { grid-template-columns: 1fr; }
    .shop-hero__title { font-size: 36px; }
    .shop-product__title, .shop-product__story-title { font-size: 28px; }
    .shop-cat-header h1 { font-size: 32px; }
    .shop-footer__cols { grid-template-columns: 1fr 1fr; gap: 32px; }
}
@media (max-width: 600px) {
    .shop-container { padding: 0 16px; }
    .shop-main { padding-bottom: 60px; font-size: 14px; }
    /* HEADER mobile */
    .shop-header__top { padding: 6px 0; }
    .shop-header__top-row { flex-wrap: wrap; justify-content: center; gap: 8px; }
    .shop-header__lang a { font-size: 10px; padding: 2px 6px; }
    .shop-header__main { padding: 16px 0; }
    .shop-header__main-row { grid-template-columns: 1fr auto; gap: 8px; align-items: center; }
    .shop-logo-bb { font-size: 22px; letter-spacing: 0.1em; }
    .shop-search { grid-column: 1 / -1; order: 3; }
    .shop-search input { padding: 10px 4px; }
    .shop-header__actions { gap: 14px; }
    .shop-header__action { padding: 4px; }
    .shop-header__action i, .shop-header__action .shop-i { font-size: 18px; width: 18px; height: 18px; }
    .shop-header__action span { display: none; }
    /* NAV mobile — горизонтальный скролл */
    .shop-nav__list { gap: 0; overflow-x: auto; flex-wrap: nowrap; justify-content: flex-start; padding: 0 8px; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
    .shop-nav__list::-webkit-scrollbar { display: none; }
    .shop-nav__list li a { white-space: nowrap; font-size: 11px; padding: 14px 10px; letter-spacing: 0.1em; }
    .shop-nav__icon { width: 16px; height: 16px; }
    /* HERO */
    .shop-hero { padding: 40px 16px; margin: 0 -16px 32px; }
    .shop-hero__title { font-size: 26px; letter-spacing: 0.04em; }
    .shop-hero__sub { font-size: 13px; }
    .shop-hero__eyebrow { font-size: 10px; }
    /* SECTIONS */
    .shop-section { margin: 36px 0; }
    .shop-section__title { font-size: 20px; margin-bottom: 22px; }
    .shop-section__head { flex-direction: column; align-items: flex-start; }
    /* CATEGORIES grid — 3 в ряд маленькие */
    .shop-cats-grid { grid-template-columns: repeat(3, 1fr); gap: 14px; }
    .shop-cat-card { padding: 12px 6px; }
    .shop-cat-card__icon, .shop-cat-card__img { width: 70px; height: 70px; margin-bottom: 10px; }
    .shop-cat-card__name { font-size: 10px; letter-spacing: 0.1em; line-height: 1.3; }
    /* SUBCATS */
    .shop-subcats { gap: 6px; margin: 12px 0 24px; }
    .shop-subcat-card { padding: 8px 14px; font-size: 10px; letter-spacing: 0.08em; gap: 8px; }
    .shop-subcat-card__icon { width: 22px; height: 22px; flex-basis: 22px; }
    /* PRODUCTS grid — 2 в ряд */
    .shop-products-grid { grid-template-columns: repeat(2, 1fr); gap: 22px 10px; }
    .shop-card__body { padding: 0; }
    .shop-card__title { font-size: 12px; min-height: 2.6em; }
    .shop-card__vol { font-size: 10px; }
    .shop-card__price .price { font-size: 13px; }
    .shop-btn--cart { width: 30px; height: 30px; padding: 4px; }
    /* LIST BAR */
    .shop-list-bar { padding: 12px 0; gap: 8px; }
    .shop-list-bar__count, .shop-list-bar__sort label { font-size: 10px; }
    /* CATEGORY HEADER */
    .shop-cat-header { padding: 16px 0; }
    .shop-cat-header h1 { font-size: 24px; letter-spacing: 0.04em; }
    .shop-cat-header__intro { font-size: 13px; }
    /* PRODUCT PAGE */
    .shop-product__title { font-size: 22px; letter-spacing: 0.03em; }
    .shop-product__price { font-size: 26px; }
    .shop-product__price-block { flex-direction: column; align-items: flex-start; gap: 10px; padding: 16px 0; }
    .shop-product__actions { flex-direction: column; gap: 10px; }
    .shop-product__actions .shop-btn { width: 100%; padding: 14px; }
    .shop-product__qty button { width: 48px; height: 48px; font-size: 20px; }
    .shop-product__qty input { width: 56px; font-size: 16px; }
    .shop-product__story-title { font-size: 22px; }
    .shop-product__story-body { font-size: 14px; }
    .shop-tabs-nav { gap: 0; }
    .shop-tabs-nav__btn { padding: 12px 14px; font-size: 10px; letter-spacing: 0.15em; }
    /* CART */
    .shop-cart__table { display: block; }
    .shop-cart__table thead { display: none; }
    .shop-cart__table tbody, .shop-cart__table tr { display: block; }
    .shop-cart__table tr { padding: 14px 0; border-bottom: 1px solid var(--shop-line); position: relative; }
    .shop-cart__table td { display: block; padding: 4px 0; border: 0; }
    .shop-cart__table td:first-child { float: left; margin-right: 14px; padding-top: 0; }
    .shop-cart__img { width: 70px; height: 90px; }
    .shop-cart__remove { position: absolute; top: 12px; right: 0; }
    .shop-cart__total { justify-content: center; flex-direction: column; gap: 16px; align-items: stretch; }
    .shop-cart__total .shop-btn { width: 100%; }
    /* CHECKOUT */
    .shop-checkout__form { padding: 20px; }
    .shop-form-grid-2 { grid-template-columns: 1fr; gap: 12px; }
    .shop-form-radios { grid-template-columns: 1fr; gap: 8px; }
    .shop-checkout__summary { padding: 20px; }
    .shop-checkout__success-title { font-size: 26px; }
    /* FOOTER */
    .shop-footer { padding: 36px 0 20px; }
    .shop-footer__cols { grid-template-columns: 1fr; gap: 32px; }
    /* BREADCRUMBS */
    .shop-breadcrumbs { padding: 12px 0; font-size: 10px; }
    .shop-breadcrumbs span { margin: 0 6px; }
    /* PAGINATION */
    .shop-pagination a, .shop-pagination span { padding: 8px 12px; font-size: 12px; min-width: 36px; }
    /* TOUCH-FRIENDLY */
    .shop-btn { min-height: 44px; padding: 12px 24px; }
    .shop-btn--lg { min-height: 50px; }
    button, a { -webkit-tap-highlight-color: rgba(160,124,44,0.2); }
}

/* iOS / Android web — fix viewport jump */
@supports (-webkit-touch-callout: none) {
    .shop-search input, .shop-checkout input, .shop-checkout textarea { font-size: 16px; }
}

/* DARK MODE (system preference) */
@media (prefers-color-scheme: dark) {
    /* пока оставляем светлую тему, override опционален */
}
