:root { --ink: #15203b; --text: #15203b; --paper: #f7f7f4; --panel: #ffffff; --line: #e3e1da; --accent: #ff6a3d; --accent-ink: #5a1f0c; --teal: #0e7c7b; --danger: #dc2626; --muted: #6b7280; --shadow: rgba(21,32,59,.08); --input-bg: #ffffff; --input-text: #15203b; --thumb-bg: #eeeeee; --hover-bg: #fafaf8; --container-max: 1400px; --content-max: 820px; --header-logo-height: 78px; --topbar-padding-y: 14px; --header-padding-y: 14px; --layout-gap: 32px; --sidebar-width: 280px; --grid-min: 210px; --grid-gap: 18px; --card-padding: 14px; --card-gap: 8px; --card-name-size: 14px; --font-size-base: 15px; --line-height-base: 1.55; --heading-h1: 24px; --heading-h2: 20px; --spacing-section: 28px; --radius: 10px; --display: 'Space Grotesk', sans-serif; --body: 'Inter', sans-serif; --mono: 'JetBrains Mono', monospace; } [data-theme="dark"] { --text: #e5e7ef; --paper: #0b0f19; --panel: #151b29; --line: #2a3449; --ink: #101626; --accent: #ff835c; --accent-ink: #ffd6c8; --teal: #2fc5c4; --danger: #f87171; --muted: #8b94a8; --shadow: rgba(0,0,0,.25); --input-bg: #1c2433; --input-text: #e5e7ef; --thumb-bg: #1c2433; --hover-bg: #1a2230; --topbar-padding-y: 14px; } [data-theme="dark"] .alert.ok { background: #1b3d24; color: #a5e6ae; } [data-theme="dark"] .alert.error { background: #4a1e16; color: #f5b9ab; } [data-theme="dark"] .badge.on { background: #1b3d24; color: #a5e6ae; } [data-theme="dark"] .badge.off { background: #2a3449; color: var(--muted); } html[data-skin="sportli"] { --ink: #0d1117; --text: #0d1117; --paper: #f8f9fa; --panel: #ffffff; --line: #e5e7eb; --accent: #e31937; --accent-ink: #5c0a16; --teal: #d92020; --muted: #6b7280; --shadow: rgba(13,17,23,.1); --input-bg: #ffffff; --input-text: #0d1117; --thumb-bg: #f0f0f0; --hover-bg: #f9fafb; } html[data-skin="sportli"][data-theme="dark"] { --text: #e8eaed; --paper: #0b0e11; --panel: #151b21; --line: #2d3742; --ink: #080b0e; --accent: #ff4d6d; --accent-ink: #ffd6dd; --teal: #ff4d6d; --muted: #9aa3b2; --shadow: rgba(0,0,0,.28); --input-bg: #1c242e; --input-text: #e8eaed; --thumb-bg: #1c242e; --hover-bg: #1a222b; } html[data-skin="forest"] { --ink: #0f291e; --text: #0f291e; --paper: #f8faf7; --panel: #ffffff; --line: #dde6d9; --accent: #3a9b4f; --accent-ink: #1a4d25; --teal: #2d8a3e; --muted: #5f6f5b; --shadow: rgba(15,41,30,.08); --input-bg: #ffffff; --input-text: #0f291e; --thumb-bg: #eef4ec; --hover-bg: #f4f8f3; } html[data-skin="forest"][data-theme="dark"] { --text: #e5efe8; --paper: #0b120f; --panel: #121d16; --line: #243529; --ink: #050a07; --accent: #6ccf7a; --accent-ink: #d9ffe0; --teal: #6ccf7a; --muted: #8ea392; --shadow: rgba(0,0,0,.28); --input-bg: #1c2a22; --input-text: #e5efe8; --thumb-bg: #1c2a22; --hover-bg: #1a2820; } html[data-skin="ocean"] { --ink: #0a2540; --text: #0a2540; --paper: #f5f9ff; --panel: #ffffff; --line: #d6e4f0; --accent: #0066ff; --accent-ink: #003366; --teal: #0b76b7; --muted: #5b6e7e; --shadow: rgba(10,37,64,.08); --input-bg: #ffffff; --input-text: #0a2540; --thumb-bg: #eaf3fb; --hover-bg: #f0f7ff; } html[data-skin="ocean"][data-theme="dark"] { --text: #e3eef9; --paper: #07131f; --panel: #0d1b2a; --line: #1b3345; --ink: #03070b; --accent: #4da3ff; --accent-ink: #cce5ff; --teal: #4da3ff; --muted: #8fa4b8; --shadow: rgba(0,0,0,.28); --input-bg: #142636; --input-text: #e3eef9; --thumb-bg: #142636; --hover-bg: #122433; } html[data-skin="berry"] { --ink: #2a0a2a; --text: #2a0a2a; --paper: #faf5ff; --panel: #ffffff; --line: #eadcf5; --accent: #9333ea; --accent-ink: #4d002e; --teal: #b0006d; --muted: #6f5c7e; --shadow: rgba(42,10,42,.08); --input-bg: #ffffff; --input-text: #2a0a2a; --thumb-bg: #f5eef9; --hover-bg: #fbf5ff; } html[data-skin="berry"][data-theme="dark"] { --text: #f2e3ff; --paper: #16071c; --panel: #210d29; --line: #3d1f4b; --ink: #08030b; --accent: #d946ef; --accent-ink: #ffe0ff; --teal: #d946ef; --muted: #a58bb8; --shadow: rgba(0,0,0,.28); --input-bg: #2a1a33; --input-text: #f2e3ff; --thumb-bg: #2a1a33; --hover-bg: #281830; } html[data-skin="light"] { --ink: #1f2937; --text: #1f2937; --paper: #fafafa; --panel: #ffffff; --line: #e5e7eb; --accent: #f97316; --accent-ink: #7c2d12; --teal: #0d9488; --muted: #6b7280; --shadow: rgba(31,41,55,.08); --input-bg: #ffffff; --input-text: #1f2937; --thumb-bg: #f3f4f6; --hover-bg: #f9fafb; --container-max: 1440px; --sidebar-width: 300px; --grid-min: 230px; --grid-gap: 20px; --header-logo-height: 52px; --layout-gap: 36px; --radius: 12px; } html[data-skin="light"][data-theme="dark"] { --text: #e5e7eb; --paper: #111827; --panel: #1f2937; --line: #374151; --ink: #030712; --accent: #fb923c; --accent-ink: #ffedd5; --teal: #2dd4bf; --muted: #9ca3af; --shadow: rgba(0,0,0,.28); --input-bg: #1f2937; --input-text: #e5e7eb; --thumb-bg: #1f2937; --hover-bg: #27354f; } html[data-skin="midnight"] { --ink: #0f172a; --text: #0f172a; --paper: #f1f5f9; --panel: #ffffff; --line: #cbd5e1; --accent: #3b82f6; --accent-ink: #1e3a8a; --teal: #2563eb; --muted: #64748b; --shadow: rgba(15,23,42,.1); --input-bg: #ffffff; --input-text: #0f172a; --thumb-bg: #e2e8f0; --hover-bg: #f8fafc; --container-max: 1440px; --sidebar-width: 300px; --grid-min: 220px; --grid-gap: 18px; --header-logo-height: 52px; --layout-gap: 36px; } html[data-skin="midnight"][data-theme="dark"] { --text: #e2e8f0; --paper: #0b1120; --panel: #111827; --line: #1e293b; --ink: #020617; --accent: #60a5fa; --accent-ink: #dbeafe; --teal: #60a5fa; --muted: #94a3b8; --shadow: rgba(0,0,0,.3); --input-bg: #1e293b; --input-text: #e2e8f0; --thumb-bg: #1e293b; --hover-bg: #172033; } html[data-skin="sport"] { --ink: #111111; --text: #111111; --paper: #fafafa; --panel: #ffffff; --line: #e5e5e5; --accent: #e31937; --accent-ink: #5a0a16; --teal: #e31937; --muted: #737373; --shadow: rgba(0,0,0,.1); --input-bg: #ffffff; --input-text: #111111; --thumb-bg: #f2f2f2; --hover-bg: #f7f7f7; --container-max: 1520px; --sidebar-width: 300px; --grid-min: 240px; --grid-gap: 20px; --header-logo-height: 58px; --layout-gap: 36px; --card-name-size: 15px; } html[data-skin="sport"][data-theme="dark"] { --text: #f3f4f6; --paper: #0a0a0a; --panel: #171717; --line: #262626; --ink: #000000; --accent: #ff4d6d; --accent-ink: #ffe0e6; --teal: #ff4d6d; --muted: #a3a3a3; --shadow: rgba(0,0,0,.35); --input-bg: #171717; --input-text: #f3f4f6; --thumb-bg: #171717; --hover-bg: #202020; } html[data-skin="modern"] { --ink: #18181b; --text: #18181b; --paper: #f4f4f5; --panel: #ffffff; --line: #e4e4e7; --accent: #0ea5e9; --accent-ink: #083344; --teal: #52525b; --muted: #71717a; --shadow: rgba(0,0,0,.06); --input-bg: #ffffff; --input-text: #18181b; --thumb-bg: #f4f4f5; --hover-bg: #fafafa; --container-max: 1520px; --sidebar-width: 320px; --grid-min: 240px; --grid-gap: 24px; --header-logo-height: 55px; --layout-gap: 40px; --radius: 14px; --font-size-base: 16px; --card-padding: 16px; --card-name-size: 15px; } html[data-skin="modern"][data-theme="dark"] { --text: #f4f4f5; --paper: #09090b; --panel: #18181b; --line: #27272a; --ink: #000000; --accent: #38bdf8; --accent-ink: #0f172a; --teal: #a1a1aa; --muted: #a1a1aa; --shadow: rgba(0,0,0,.35); --input-bg: #27272a; --input-text: #f4f4f5; --thumb-bg: #27272a; --hover-bg: #202023; } html[data-skin="minimal"] { --ink: #0f172a; --text: #334155; --paper: #ffffff; --panel: #ffffff; --line: #e2e8f0; --accent: #0ea5e9; --accent-ink: #0c4a6e; --teal: #0ea5e9; --muted: #64748b; --shadow: rgba(15,23,42,.04); --input-bg: #ffffff; --input-text: #0f172a; --thumb-bg: #f8fafc; --hover-bg: #f8fafc; --container-max: 1200px; --sidebar-width: 260px; --grid-min: 180px; --grid-gap: 14px; --header-logo-height: 40px; --layout-gap: 24px; --radius: 6px; --font-size-base: 14px; --card-padding: 12px; --card-name-size: 13px; } html[data-skin="minimal"][data-theme="dark"] { --text: #e2e8f0; --paper: #0f172a; --panel: #0f172a; --line: #1e293b; --ink: #020617; --accent: #38bdf8; --accent-ink: #e0f2fe; --teal: #38bdf8; --muted: #94a3b8; --shadow: rgba(0,0,0,.25); --input-bg: #1e293b; --input-text: #e2e8f0; --thumb-bg: #1e293b; --hover-bg: #1e293b; } html[data-skin="wide"] { --ink: #15203b; --text: #15203b; --paper: #f7f7f4; --panel: #ffffff; --line: #e3e1da; --accent: #ff6a3d; --accent-ink: #5a1f0c; --teal: #0e7c7b; --muted: #6b7280; --shadow: rgba(21,32,59,.08); --input-bg: #ffffff; --input-text: #15203b; --thumb-bg: #eeeeee; --hover-bg: #fafaf8; --container-max: 1600px; --sidebar-width: 300px; --grid-min: 230px; --grid-gap: 20px; --header-logo-height: 55px; --layout-gap: 36px; } html[data-skin="wide"][data-theme="dark"] { --text: #e5e7ef; --paper: #0b0f19; --panel: #151b29; --line: #2a3449; --ink: #101626; --accent: #ff835c; --accent-ink: #ffd6c8; --teal: #2fc5c4; --muted: #8b94a8; --shadow: rgba(0,0,0,.25); --input-bg: #1c2433; --input-text: #e5e7ef; --thumb-bg: #1c2433; --hover-bg: #1a2230; } :root { --on-accent: var(--ink); --accent-text: var(--accent-ink); --teal-text: var(--teal); } html[data-skin="sportli"]:not([data-theme="dark"]), html[data-skin="ocean"]:not([data-theme="dark"]), html[data-skin="berry"]:not([data-theme="dark"]), html[data-skin="sport"]:not([data-theme="dark"]) { --on-accent: #ffffff; } html[data-skin="forest"]:not([data-theme="dark"]) { --on-accent: #0a2413; } html[data-skin="modern"][data-theme="dark"] { --accent-text: #7dd3fc; } html[data-skin="light"]:not([data-theme="dark"]) { --teal-text: #0f766e; } html[data-skin="minimal"]:not([data-theme="dark"]) { --teal-text: #0369a1; } html[data-skin="forest"]:not([data-theme="dark"]) { --teal-text: #26762f; } * { box-sizing: border-box; } html { scroll-behavior: smooth; } body { margin: 0; background: var(--paper); color: var(--text); font-family: var(--body); font-size: var(--font-size-base); line-height: var(--line-height-base); } a { color: inherit; text-decoration: none; } img { max-width: 100%; display: block; } picture { display: block; } .thumb picture, .product-detail .thumb picture { width: 100%; height: 100%; } button, input, select { font-family: inherit; font-size: inherit; } h1, h2, h3 { font-family: var(--display); font-weight: 700; margin: 0 0 .4em; letter-spacing: -0.01em; } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } .site-header { position: sticky; top: 0; z-index: 50; background: #ffffff; color: var(--ink); border-bottom: 1px solid var(--line); box-shadow: 0 2px 8px rgba(21,32,59,.06); padding: var(--header-padding-y) 0; transition: padding .35s ease; } .topbar { display: flex; align-items: center; gap: 16px 32px; max-width: var(--container-max); margin: 0 auto; padding: var(--topbar-padding-y) 28px; transition: padding .35s ease; background: #ffffff; color: var(--ink); position: relative; flex-wrap: wrap; } .topbar .brand { font-family: var(--display); font-weight: 700; font-size: 19px; display: flex; align-items: center; gap: 8px; flex-shrink: 0; } .topbar .brand .site-logo { height: var(--header-logo-height); width: auto; max-width: 320px; object-fit: contain; transition: transform .35s ease; transform: scale(1.2); transform-origin: center center; } .topbar .brand .dot { width: 9px; height: 9px; border-radius: 50%; background: var(--accent); display: inline-block; } .topbar form { flex: 1; display: flex; justify-content: center; min-width: 0; } .topbar .search-wrap { position: relative; flex: 1; max-width: 760px; min-width: 0; display: flex; transition: transform .35s ease; transform-origin: center center; } .topbar input[type="text"] { position: relative; z-index: 1; flex: 1; width: 100%; height: 48px; padding: 0 48px 0 16px; border: 1px solid var(--line); border-radius: 10px; outline: none; background: var(--input-bg); color: var(--ink); font-size: 16px; box-shadow: inset 0 1px 2px rgba(0,0,0,.04); transition: border-color .15s, box-shadow .15s; } .search-wrap.is-empty input[type="text"] { background: transparent; } .topbar input[type="text"]:focus { border-color: var(--accent); outline: 2px solid var(--accent); outline-offset: 2px; } .topbar button.search-btn { position: absolute; right: 2px; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; background: var(--accent); color: var(--on-accent); border: none; border-radius: 8px; cursor: pointer; z-index: 2; } .topbar button.search-btn svg { width: 18px; height: 18px; } .topbar button.search-btn:hover { filter: brightness(0.92); } .topbar button.search-btn:focus-visible { outline: 2px solid var(--on-accent); outline-offset: 2px; } .search-placeholder { position: absolute; left: 16px; top: 0; bottom: 0; right: 48px; display: flex; align-items: center; gap: 6px; pointer-events: none; color: #6b7280; font-size: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; opacity: 0; transition: opacity .25s ease; z-index: 0; } .search-placeholder .search-placeholder-dynamic { color: #15203b; } .search-wrap.is-empty .search-placeholder { opacity: 1; } .search-wrap.is-fading .search-placeholder { opacity: 0; } @media (prefers-reduced-motion: reduce) { .search-placeholder { transition: none; } } .site-header { --topbar-padding-y: 14px; --header-padding-y: 14px; } .site-header.header--scrolled { --topbar-padding-y: 4px; --header-padding-y: 4px; } .site-header.header--scrolled .site-logo { transform: scale(0.984); transform-origin: center center; } .site-header.header--scrolled .search-wrap { transform: scale(0.92); } @media (max-width: 860px) { .site-header, .site-header.header--scrolled { --topbar-padding-y: 8px; --header-padding-y: 8px; } .topbar .brand .site-logo, .site-header.header--scrolled .site-logo { transform: none; } .site-header.header--scrolled .search-wrap { transform: none; } } @media (prefers-reduced-motion: reduce) { .site-header, .topbar, .site-logo, .search-wrap { transition: none !important; } } .search-toggle-btn { display: none; } .main-nav { background: var(--panel); border-bottom: 1px solid var(--line); padding: 0; } .nav-list { list-style: none; display: flex; align-items: center; gap: 2px; margin: 0 auto; padding: 0 28px; max-width: var(--container-max); } .nav-list > li { position: relative; } .nav-list > li > a { display: block; padding: 11px 16px; color: var(--text); font-weight: 500; font-size: 14px; border-radius: 8px; } .nav-list > li > a:hover { background: var(--hover-bg); } .nav-list > li > a.active { color: var(--accent-text); } .has-mega { position: relative; } .mega-menu { display: none; position: absolute; left: 0; top: 100%; background: var(--panel); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 30px var(--shadow); padding: 0; overflow: hidden; width: min(760px, calc(100vw - 56px)); z-index: 30; } .has-mega:hover .mega-menu, .has-mega:focus-within .mega-menu { display: flex; } .mega-rail { flex: 0 0 190px; border-right: 1px solid var(--line); padding: 10px 0; max-height: 440px; overflow-y: auto; background: color-mix(in srgb, var(--accent) 4%, var(--panel)); } .mega-rail-item { display: flex; align-items: center; gap: 10px; padding: 8px 18px; font-size: 14px; color: var(--text); border-left: 2px solid transparent; } .mega-rail-icon { display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; flex: 0 0 30px; border-radius: 50%; background: color-mix(in srgb, var(--accent) 14%, transparent); } .mega-rail-icon svg { width: 16px; height: 16px; color: var(--accent); } .mega-rail-item:hover { background: color-mix(in srgb, var(--accent) 8%, var(--panel)); } .mega-rail-item.is-open { background: color-mix(in srgb, var(--accent) 12%, var(--panel)); border-left-color: var(--accent); font-weight: 600; color: var(--accent-text); } .mega-rail-item.is-open .mega-rail-icon { background: var(--accent); } .mega-rail-item.is-open .mega-rail-icon svg { color: var(--on-accent); } .mega-panels { flex: 1; min-width: 0; padding: 22px 24px; } .mega-panel-item { display: none; grid-template-columns: 1fr 190px; gap: 24px; } .mega-panel-item.is-open { display: grid; } .mega-sublist { column-count: 2; column-gap: 20px; } .mega-sublist a { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 5px 0; font-size: 13px; color: var(--text); break-inside: avoid; } .mega-sublist a:hover { color: var(--teal-text); } .mega-sublist a.active { color: var(--accent-text); font-weight: 600; } .mega-count { color: var(--teal-text); background: color-mix(in srgb, var(--teal) 14%, transparent); font-size: 11px; font-weight: 600; flex: 0 0 auto; padding: 1px 7px; border-radius: 20px; } .mega-promo { display: flex; flex-direction: column; border-radius: 10px; overflow: hidden; text-decoration: none; align-self: start; box-shadow: 0 1px 2px var(--shadow); } .mega-promo:hover { filter: brightness(1.04); } .mega-promo-img { height: 84px; background-size: cover; background-position: center; background-color: color-mix(in srgb, var(--teal) 16%, var(--panel)); } .mega-promo-icon { display: flex; align-items: center; justify-content: center; } .mega-promo-icon svg { width: 28px; height: 28px; color: var(--teal-text); } .mega-promo-body { padding: 10px 12px; background: var(--accent); } .mega-promo-body strong { display: block; font-size: 13px; color: var(--on-accent); margin-bottom: 2px; font-weight: 600; } .simple-mega-menu { display: none; position: absolute; left: 0; top: 100%; background: var(--panel); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 12px 30px var(--shadow); padding: 18px 22px; z-index: 30; width: min(640px, calc(100vw - 56px)); max-height: 70vh; overflow-y: auto; } .has-mega:hover .simple-mega-menu, .has-mega:focus-within .simple-mega-menu { display: block; } .simple-mega-menu .mega-sublist { column-count: 3; column-gap: 20px; } @media (max-width: 620px) { .simple-mega-menu .mega-sublist { column-count: 2; } } .mega-promo-body span { font-size: 12px; color: var(--on-accent); opacity: .85; } .nav-burger { display: none; } .mobile-drawer, .mobile-drawer-backdrop { display: none; } @media (max-width: 860px) { .topbar { flex-wrap: wrap; row-gap: 0; } .topbar form { order: 3; flex-basis: 100%; max-width: none; } .topbar .search-wrap { max-width: none; } .search-form { margin-top: 4px; max-height: 60px; opacity: 1; transition: max-height .25s ease, opacity .18s ease, margin-top .25s ease; } .site-header.header--search-hidden .search-form { max-height: 0; opacity: 0; margin-top: 0; overflow: hidden; pointer-events: none; } .search-toggle-btn { display: flex; margin-left: auto; flex: 0 0 auto; align-items: center; justify-content: center; width: 42px; height: 42px; border: none; border-radius: 8px; background: var(--accent); color: var(--on-accent); cursor: pointer; opacity: 0; transform: scale(.8); pointer-events: none; transition: opacity .2s ease, transform .2s ease; } .search-toggle-btn svg { width: 18px; height: 18px; } .site-header.header--search-hidden .search-toggle-btn { opacity: 1; transform: scale(1); pointer-events: auto; } @media (prefers-reduced-motion: reduce) { .search-form, .search-toggle-btn { transition: none; } } .main-nav { display: none; } .nav-burger { display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; flex: 0 0 auto; margin-right: 4px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); color: var(--text); cursor: pointer; } .nav-burger svg { width: 20px; height: 20px; } .mobile-drawer-backdrop { display: block; position: fixed; inset: 0; z-index: 90; background: rgba(0, 0, 0, .45); opacity: 0; transition: opacity .2s ease; } .mobile-drawer-backdrop.is-open { opacity: 1; } .mobile-drawer-backdrop[hidden] { display: none; } .mobile-drawer { display: flex; flex-direction: column; position: fixed; top: 0; left: 0; bottom: 0; z-index: 91; width: min(320px, 86vw); background: var(--panel); border-right: 1px solid var(--line); box-shadow: 4px 0 24px var(--shadow); overflow: hidden; transform: translateX(-100%); transition: transform .22s ease; } .mobile-drawer.is-open { transform: translateX(0); } .mobile-drawer[hidden] { display: none; } .md-head { display: flex; align-items: center; gap: 6px; padding: 14px 16px; border-bottom: 1px solid var(--line); background: var(--panel); z-index: 1; flex: 0 0 auto; } .md-title { flex: 1; min-width: 0; font-size: 12.5px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); } .md-title.is-cat { font-family: var(--display); font-weight: 700; font-size: 16px; text-transform: none; letter-spacing: -0.01em; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .md-back { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; margin-left: -6px; border: none; border-radius: 8px; background: none; color: var(--text); cursor: pointer; flex: 0 0 auto; } .md-back svg { width: 20px; height: 20px; } .md-back[hidden] { display: none; } .md-close { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: none; border-radius: 8px; background: none; color: var(--text); cursor: pointer; } .md-close svg { width: 20px; height: 20px; } .md-nav { display: flex; flex-direction: column; padding: 0 0 24px; } .md-nav a { padding: 12px 16px; font-size: 15px; font-weight: 500; color: var(--text); text-decoration: none; } .md-nav a.active { color: var(--accent-text); } .md-panes { flex: 1; position: relative; overflow: hidden; } .md-pane { position: absolute; inset: 0; overflow-y: auto; -webkit-overflow-scrolling: touch; background: var(--panel); transition: transform .26s ease; } .md-pane-sub { transform: translateX(100%); } .md-panes[data-level="1"] .md-pane-root { transform: translateX(-24%); } .md-panes[data-level="1"] .md-pane-sub { transform: translateX(0); box-shadow: -8px 0 20px var(--shadow); } @media (prefers-reduced-motion: reduce) { .md-pane { transition: none; } } .md-cats { padding: 6px 0 10px; } .md-cats-title { font-size: 12.5px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin: 8px 16px 4px; } .md-title-sep { border-top: 1px solid var(--line); padding-top: 14px; margin-top: 6px; } .md-cat-btn { display: flex; align-items: center; gap: 8px; width: 100%; padding: 12px 16px; background: none; border: 0; border-bottom: 1px solid var(--line); font-family: inherit; font-size: 14.5px; color: var(--text); text-align: left; cursor: pointer; } .md-cat-btn:last-child { border-bottom: 0; } .md-cat-name { flex: 1; min-width: 0; } .md-chev { color: var(--muted); font-size: 15px; flex: 0 0 auto; } .md-sublist { display: flex; flex-direction: column; padding: 2px 0 8px; background: var(--hover-bg); } .md-sublist a { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 9px 16px 9px 28px; font-size: 13.5px; color: var(--text); text-decoration: none; } .md-sublist a.active { color: var(--accent-text); font-weight: 600; } .md-all { font-weight: 600; } .md-pane-sub .md-sublist { padding: 0; background: var(--panel); } .md-pane-sub .md-sublist a { padding: 12px 16px; font-size: 14.5px; border-bottom: 1px solid var(--line); } .md-pane-sub .md-sublist a:last-child { border-bottom: 0; } .md-pane-sub .md-all { background: var(--hover-bg); color: var(--accent); } .md-count { font-family: var(--mono); font-size: 11px; color: var(--muted); flex: 0 0 auto; } } .layout { display: grid; grid-template-columns: var(--sidebar-width) minmax(0, 1fr); gap: var(--layout-gap); max-width: var(--container-max); margin: 0 auto; padding: 24px 28px 80px; min-width: 0; } .layout > aside, .layout > main { min-width: 0; } .layout > main:only-child { grid-column: 1 / -1; margin: 0 auto; width: 100%; } @media (max-width: 1100px) { .layout { grid-template-columns: 1fr; } } .sidebar { font-size: 13.5px; line-height: 1.45; } .sidebar h2 { font-size: 12.5px; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin-bottom: 12px; } .cat-tree ul { list-style: none; margin: 0; padding-left: 14px; } .cat-tree > ul { padding-left: 0; } .cat-tree li { margin: 2px 0; } .cat-tree a { display: flex; justify-content: space-between; gap: 6px; padding: 6px 10px; border-radius: 6px; color: var(--text); } .cat-tree a:hover { background: var(--panel); } .cat-tree a.active { background: var(--ink); color: #fff; } .cat-tree .count { color: var(--muted); font-family: var(--mono); font-size: 11px; } .cat-tree a.active .count { color: #c9cee0; } .sidebar .all-link { display: block; margin-bottom: 12px; font-weight: 600; } .sidebar > .mobile-filter-toggle { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 48px; padding: 0 20px; margin-bottom: 12px; box-sizing: border-box; } .cat-tree details.cat-node > summary { list-style: none; cursor: pointer; position: relative; } .cat-tree details.cat-node > summary::-webkit-details-marker { display: none; } .cat-tree details.cat-node > summary a { padding-right: 24px; } .cat-tree details.cat-node > summary::after { content: '▸'; position: absolute; right: 8px; top: 50%; transform: translateY(-50%); font-size: 10px; color: var(--muted); transition: transform .15s; } .cat-tree details.cat-node[open] > summary::after { transform: translateY(-50%) rotate(90deg); } .results-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 14px; } .results-head h1 { font-size: var(--heading-h1); margin-bottom: 2px; } .results-head .eyebrow { font-family: var(--mono); font-size: 12px; color: var(--muted); } @media (max-width: 1100px) { .results-head { flex-direction: column; align-items: flex-start !important; gap: 10px; } } @media (max-width: 640px) { .results-head { flex-wrap: wrap; gap: 10px; } } .category-header-full { grid-column: 1 / -1; } .category-header-full + main { grid-column: 1 / -1; } .recommend-row-full { grid-column: 1 / -1; margin-bottom: var(--spacing-section); } .category-header-block { margin-bottom: -18px; } .category-breadcrumb { margin-bottom: 6px; } .brand-category-links { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0; } .brand-category-links a { display: inline-flex; align-items: center; gap: 5px; padding: 6px 12px; border: 1px solid var(--line); border-radius: 999px; background: var(--panel); font-size: 13px; color: var(--text); text-decoration: none; } .brand-category-links a:hover { border-color: var(--accent); color: var(--accent); } .brand-category-links a.active { background: var(--accent); border-color: var(--accent); color: var(--on-accent); font-weight: 600; } .brand-category-count { font-size: 11px; color: var(--muted); } .brand-category-links a.active .brand-category-count { color: var(--on-accent); opacity: .8; } .brand-index-search { margin: 18px 0; max-width: 360px; } .brand-index-search input { width: 100%; height: 40px; padding: 0 14px; border: 1px solid var(--line); border-radius: 10px; background: var(--input-bg); color: var(--ink); font-size: 14px; } .brand-index-search input:focus { border-color: var(--accent); outline: 2px solid var(--accent); outline-offset: 2px; } .brand-index-toggle { display: flex; align-items: center; gap: 7px; margin: 0 0 18px; font-size: 13px; color: var(--muted); cursor: pointer; } .brand-index-toggle input { accent-color: var(--accent); width: 15px; height: 15px; cursor: pointer; } .brand-index-jump { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 24px; } .brand-index-jump a { display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 26px; padding: 0 4px; border-radius: 6px; font-size: 12px; font-weight: 600; color: var(--muted); text-decoration: none; } .brand-index-jump a:hover { background: var(--hover-bg); color: var(--accent); } .brand-index-group { margin-bottom: 22px; scroll-margin-top: 96px; } .brand-index-group h2 { font-size: 15px; color: var(--muted); border-bottom: 1px solid var(--line); padding-bottom: 6px; margin-bottom: 10px; } .glossary-intro { max-width: 620px; color: var(--muted); font-size: 14px; line-height: 1.6; margin: 2px 0 20px; } .glossary-search { margin: 0 0 18px; max-width: 360px; } .glossary-search input { width: 100%; height: 40px; padding: 0 14px; border: 1px solid var(--line); border-radius: 10px; background: var(--input-bg); color: var(--ink); font-size: 14px; } .glossary-search input:focus { border-color: var(--accent); outline: 2px solid var(--accent); outline-offset: 2px; } .glossary-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 0 28px; margin: 0; } .glossary-entry { display: block; position: relative; padding: 14px 0 14px 14px; border-bottom: 1px solid var(--line); border-left: 2px solid var(--accent); text-decoration: none; color: inherit; } .glossary-entry[href]:hover, .glossary-entry:hover { background: var(--hover-bg); } .glossary-term { font-weight: 700; font-size: 15px; color: var(--ink); margin: 0 0 4px; } .glossary-term a { color: inherit; text-decoration: none; } .glossary-term a::after { content: ''; position: absolute; inset: 0; } .glossary-entry:hover .glossary-term a { text-decoration: underline; } .glossary-definition { margin: 0; font-size: 13.5px; line-height: 1.55; color: var(--text); } .brand-index-count { color: var(--muted); font-size: 12px; } .category-header-inner { display: flex; align-items: flex-start; justify-content: space-between; gap: 22px; margin-bottom: 12px; } .category-header-main { flex: 1 1 auto; min-width: 0; } .category-header-main .category-title { font-size: var(--heading-h1); font-weight: 700; margin: 0 0 8px; } .category-title .category-count { display: inline-block; font-family: var(--mono); font-size: 13px; font-weight: 400; color: var(--muted); vertical-align: middle; margin-left: 8px; } .category-short-desc { font-size: 14px; font-weight: 700; line-height: 1.55; color: #145a32; max-width: 640px; margin: 0; display: -webkit-box; -webkit-line-clamp: 3; line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; } [data-theme="dark"] .category-short-desc { color: #a5e6ae; } .category-header-inner.has-banner { position: relative; border-radius: 16px; overflow: hidden; min-height: 210px; align-items: center; margin-bottom: 12px; } .category-header-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 20% 62%; z-index: 0; } .category-header-inner.has-banner::before { content: ''; position: absolute; inset: 0; background: linear-gradient(to right, #fdf0e2 0%, #fdf0e2 20%, rgba(253,240,226,.8) 40%, rgba(253,240,226,0) 62%); z-index: 1; } .category-header-inner.has-banner .category-header-main { position: relative; z-index: 2; padding: 30px 30px; max-width: 560px; } [data-theme="dark"] .category-header-inner.has-banner .category-title { color: #15203b; } [data-theme="dark"] .category-header-inner.has-banner .category-count { color: #6b5a4a; } .category-header-eyebrow { font-family: var(--mono); font-size: 12px; color: var(--muted); margin: 4px 0 0; } [data-theme="dark"] .category-header-inner.has-banner .category-header-eyebrow { color: #6b5a4a; } .catalog-toolbar { display: flex; align-items: center; flex-wrap: nowrap; gap: 10px 18px; min-height: 48px; padding: 0; margin-bottom: 12px; border-bottom: 1px solid var(--line); box-sizing: border-box; } .catalog-toolbar-form { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; flex: 1 1 auto; min-width: 0; } .toolbar-label { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--muted); white-space: nowrap; } .toolbar-label select { min-width: 130px; padding: 5px 8px; font-size: 13px; } .view-toggle-group { display: inline-flex; gap: 4px; margin-left: auto; } .view-toggle { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 6px; background: var(--panel); color: var(--muted); transition: border-color .15s, color .15s, background .15s; } .view-toggle:hover { border-color: var(--accent); color: var(--accent); } .view-toggle.active { border-color: var(--accent); color: var(--accent); background: var(--hover-bg); } .mobile-filter-toggle { display: none; align-items: center; gap: 6px; padding: 6px 12px; background: var(--panel); border: 1px solid var(--line); border-radius: 6px; color: var(--text); font-size: 13px; cursor: pointer; } .mobile-filter-toggle:hover { border-color: var(--accent); color: var(--accent-text); } .product-list { display: flex; flex-direction: column; gap: var(--grid-gap); } .product-list-item { position: relative; display: flex; gap: 18px; padding: 14px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 2px 8px var(--shadow); transition: box-shadow .15s; text-decoration: none; color: inherit; } .product-list-item:hover { box-shadow: 0 8px 20px var(--shadow); } .product-list-link { text-decoration: none; color: inherit; } .product-list-link::after { content: ''; position: absolute; inset: 0; z-index: 0; } .product-list-link:hover .name { color: var(--accent); } .product-list-item .card-size-pills, .product-list-actions .buy-btn { position: relative; z-index: 1; } .product-list-thumb { width: 140px; flex: 0 0 140px; aspect-ratio: 1 / 1; background: var(--thumb-bg); border-radius: 8px; overflow: hidden; position: relative; display: flex; align-items: center; justify-content: center; } .product-list-thumb img { width: 100%; height: 100%; object-fit: cover; } .product-list-thumb picture { display: contents; } .product-list-thumb .card-discount { top: 6px; left: 6px; } .product-detail .thumb picture { display: contents; } .product-list-body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 10px; justify-content: space-between; } .product-list-main { display: flex; flex-direction: column; gap: 6px; } .product-list-main .card-badges { margin-bottom: 0; } .product-list-main .name { font-size: 16px; font-weight: 600; line-height: 1.35; color: var(--text); } .product-list-main .short-desc { font-size: 13px; color: var(--muted); line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .product-list-main .card-rating { margin-top: 2px; } .product-list-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 12px; color: var(--muted); } .product-list-actions { min-width: 180px; flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: 10px; text-align: right; } .product-list-buttons { display: flex; align-items: center; gap: 8px; } .product-list-actions .buy-btn.card-cta { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 7px 14px; background: var(--accent); color: var(--on-accent); border: none; border-radius: 7px; font-size: 13px; font-weight: 700; text-decoration: none; white-space: nowrap; box-shadow: 0 4px 10px rgba(255,106,61,.35); transition: box-shadow .15s, transform .15s; } .product-list-actions .buy-btn.card-cta:hover { box-shadow: 0 6px 14px rgba(255,106,61,.45); transform: translateY(-1px); } .product-list-actions .buy-btn.card-cta svg { width: 1.15em; height: 1.15em; flex-shrink: 0; } .product-list-actions .price-row { justify-content: flex-end; } .product-list-actions .price { font-family: var(--display); font-size: 20px; font-weight: 700; } .product-list-actions .price-old { text-decoration: line-through; color: var(--muted); font-size: 13px; } .product-list-actions .card-detail-btn { margin-top: 0; width: auto; padding: 6px 14px; font-size: 13px; font-weight: 600; border: 1px solid var(--line); border-radius: 7px; color: var(--accent-text); background: var(--panel); white-space: nowrap; } .product-list-item:hover .card-detail-btn { border-color: var(--accent); } .active-filters { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 14px; } .active-filters:empty { display: none; } .catalog-loading #catalog-main, .catalog-loading .active-filters { opacity: .65; pointer-events: none; } .catalog-loading .catalog-toolbar::after { content: ''; display: inline-block; width: 16px; height: 16px; margin-left: auto; border: 2px solid var(--line); border-top-color: var(--primary); border-radius: 50%; animation: catalog-spin .8s linear infinite; } @keyframes catalog-spin { to { transform: rotate(360deg); } } .filter-chip-list { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; } .filter-chip { display: inline-flex; align-items: center; gap: 4px; padding: 5px 10px; background: #eef2f7; border: 1px solid var(--line); border-radius: 999px; font-size: 13px; color: var(--text); text-decoration: none; white-space: nowrap; } .filter-chip:hover { border-color: var(--accent); color: var(--accent); } .filter-chip .remove { display: inline-flex; align-items: center; justify-content: center; width: 14px; height: 14px; margin-left: 2px; border-radius: 50%; font-size: 15px; line-height: 1; color: var(--muted); } .filter-chip:hover .remove { color: var(--accent-text); } .filter-clear-all { display: inline-flex; align-items: center; gap: 4px; padding: 5px 10px; background: transparent; border: none; border-radius: 999px; font-size: 13px; font-weight: 600; color: var(--accent); cursor: pointer; white-space: nowrap; } .filter-clear-all:hover { text-decoration: underline; } .grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--grid-min)), 1fr)); gap: var(--grid-gap); } main > .grid, main > .product-list { padding-top: 2px; } .card { background: var(--panel); color: var(--text); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; transition: box-shadow .15s, transform .15s; min-width: 0; box-shadow: 0 2px 8px var(--shadow); } .card:hover { box-shadow: 0 8px 20px var(--shadow); transform: translateY(-2px); } .card .thumb { position: relative; aspect-ratio: 1/1; background: var(--panel); display: flex; align-items: center; justify-content: center; overflow: hidden; padding: 12px; box-sizing: border-box; } .card .thumb img { width: 100%; height: 100%; object-fit: cover; } .card .thumb picture { display: contents; } .card .thumb-link { display: flex; text-decoration: none; color: inherit; } .card .body { padding: var(--card-padding); display: flex; flex-direction: column; gap: var(--card-gap); flex: 1; } .card .cat-tag { font-family: var(--mono); font-size: 10.5px; color: var(--teal-text); text-transform: uppercase; letter-spacing: .04em; } .card-discount, .product-detail .thumb .card-discount { position: absolute; top: 8px; left: 8px; background: #c43c3c; color: #fff; font-size: 11.5px; font-weight: 700; padding: 5px 10px; border-radius: 6px; letter-spacing: .5px; z-index: 2; } .product-detail .thumb { position: relative; } .card-badges { display: flex; gap: 5px; flex-wrap: wrap; margin-bottom: -2px; } .card-badge { font-size: 11.5px; font-weight: 700; padding: 5px 10px; border-radius: 6px; text-transform: uppercase; letter-spacing: .5px; background: var(--teal); color: #fff; } .card-badge-doporucujeme { background: var(--accent); } .card-badge-tip { background: var(--teal); } .card .thumb .card-badges { position: absolute; top: 8px; right: 8px; z-index: 2; margin-bottom: 0; justify-content: flex-end; } .card-size-row { display: flex; flex-direction: column; gap: 6px; min-height: 38px; justify-content: center; } .card-size-axis { display: flex; flex-direction: column; gap: 4px; } .card-size-row .card-rating { text-align: center; } .card-verified { display: flex; align-items: center; justify-content: center; gap: 3px; font-size: 11px; color: #1f7a35; } [data-theme="dark"] .card-verified { color: #a5e6ae; } .price-verdict { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--line); } .price-verdict-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 9px; } .price-verdict-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border-radius: 999px; font-size: 12.5px; font-weight: 700; letter-spacing: .01em; } .price-verdict.good .price-verdict-badge { background: rgba(40,167,69,.13); color: #1f7a35; } .price-verdict.warn .price-verdict-badge { background: rgba(230,126,34,.16); color: #b5590a; } .price-verdict.bad .price-verdict-badge { background: rgba(220,53,69,.13); color: #c22636; } [data-theme="dark"] .price-verdict.good .price-verdict-badge { color: #a5e6ae; } [data-theme="dark"] .price-verdict.warn .price-verdict-badge { color: #f5b878; } [data-theme="dark"] .price-verdict.bad .price-verdict-badge { color: #f2a8ad; } .price-verdict-lastcheck { font-size: 12px; color: var(--muted); line-height: 1.5; text-align: right; } .price-verdict-lastcheck strong { color: var(--text); font-weight: 600; } .price-verdict-text { font-size: 13.5px; color: var(--text); margin: 0; line-height: 1.5; } .product-highlights { margin: 0 0 10px; padding: 16px 18px; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); } .ph-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; } .ph-col-title { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--text); margin-bottom: 9px; } .ph-list { display: flex; flex-direction: column; gap: 9px; } .ph-item { display: flex; gap: 7px; align-items: flex-start; } .ph-item-body { display: flex; flex-direction: column; gap: 2px; } .ph-item-text { font-size: 13.5px; line-height: 1.4; color: var(--text); } .ph-mark { font-weight: 700; flex-shrink: 0; line-height: 1.4; display: inline-flex; align-items: center; } .ph-mark-pro { color: #1f7a35; } .ph-mark-proti { color: #c22636; } .ph-mark-info { color: var(--teal-text); margin-top: 2px; } [data-theme="dark"] .ph-mark-pro { color: #a5e6ae; } [data-theme="dark"] .ph-mark-proti { color: #f2a8ad; } .ph-mark-svg { display: block; } .ph-source { font-family: var(--mono); font-size: 10px; color: var(--muted); } .ph-practical { border-top: 1px dashed var(--line); margin-top: 14px; padding-top: 12px; } @media (max-width: 600px) { .ph-grid { grid-template-columns: 1fr; gap: 12px; } } .ps-pc-avg i { background: var(--muted); } .ps-pricechart-legend { justify-content: center; } .ps-last-check-inline { margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--line); font-size: 13px; color: var(--muted); line-height: 1.5; text-align: center; } .ps-last-check-inline strong { color: var(--text); font-weight: 600; } .card-size-label { font-size: 10.5px; color: var(--muted); } .card-size-pills { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; } .size-pill { border: 1px solid var(--line); border-radius: 5px; font-size: 11px; padding: 3px 7px; color: var(--text); background: var(--panel); cursor: pointer; line-height: 1.3; } .size-pill:hover { border-color: var(--accent); } .size-pill.active { border-color: var(--accent); border-width: 1.5px; color: var(--accent-text); font-weight: 600; padding: 2.5px 6.5px; } .size-pill.is-soldout { color: var(--muted); text-decoration: line-through; } .size-pill-swatch { width: 20px; height: 20px; padding: 0; border-radius: 50%; box-sizing: border-box; position: relative; flex-shrink: 0; } .size-pill-swatch.active { padding: 0; border-color: var(--accent); border-width: 2px; box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 35%, transparent); } .size-pill-swatch.is-soldout { opacity: .45; } .size-pill-swatch.is-soldout::after { content: ''; position: absolute; top: 50%; left: -2px; right: -2px; height: 1.5px; background: rgba(0, 0, 0, .6); transform: rotate(-45deg); } .size-pill-swatch-fallback { display: inline-flex; align-items: center; gap: 5px; } .size-pill-swatch-dot.is-unknown { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; border: 1px solid var(--line); background: linear-gradient(135deg, #ddd 25%, #fff 25%, #fff 50%, #ddd 50%, #ddd 75%, #fff 75%); background-size: 5px 5px; } .list-size-row { display: flex; align-items: center; gap: 8px; margin-top: 2px; flex-wrap: wrap; } .stars { color: #f5a623; letter-spacing: 1px; font-size: 13px; } .stars-value { font-size: 11.5px; color: var(--muted); } .stars-count { font-size: 11px; color: var(--muted); } .card-meta { display: flex; gap: 8px; flex-wrap: wrap; font-size: 11px; color: var(--muted); align-items: center; } .card-shop { font-family: var(--mono); } .card-avail { font-weight: 600; padding: 1px 6px; border-radius: 5px; font-size: 10.5px; } .card-avail-ok { background: #e3f5e1; color: #1f7a35; } .card-avail-no { background: #fde6e1; color: #8a2c14; } .card-avail-low { background: #fff3cd; color: #856404; } .card-avail-unknown { background: var(--line); color: var(--text); } [data-theme="dark"] .card-avail-ok { background: #1b3d24; color: #a5e6ae; } [data-theme="dark"] .card-avail-no { background: #4a1e16; color: #f5b9ab; } .price-row { display: flex; align-items: baseline; gap: 8px; } .price-old { text-decoration: line-through; color: var(--muted); font-size: 13px; } .card-updated { font-size: 10.5px; color: var(--muted); margin-top: -2px; } .card .name { font-size: var(--card-name-size); font-weight: 700; line-height: 1.35; word-break: break-word; overflow-wrap: anywhere; color: var(--text); } .card .name-link { text-decoration: none; color: inherit; display: block; cursor: pointer; } .card .name-link:hover .name { color: var(--accent); } .card .short-desc { font-size: 12px; color: var(--muted); line-height: 1.35; flex: 1; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; word-break: break-word; overflow-wrap: anywhere; } .card-quick-info { display: flex; align-items: center; justify-content: center; gap: 6px; flex-wrap: wrap; font-size: 12px; color: var(--muted); min-height: 18px; } .card-quick-sep { color: var(--line); } .card-shop-line { text-align: center; font-size: 12px; color: var(--muted); } .card-avail-check { margin-right: 2px; } .card .price { font-family: var(--display); font-weight: 700; font-size: 20px; } .card .price-row { justify-content: center; } .card .buy-btn { margin-top: 4px; background: var(--accent); color: var(--on-accent); text-align: center; padding: 8px; border-radius: 7px; font-weight: 600; font-size: 13px; border: none; cursor: pointer; } .card .buy-btn:hover { background: #e5572a; } .card-body-bottom { display: flex; flex-direction: column; gap: 10px; } .card .buy-btn.card-cta { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; padding: 12px 16px; text-decoration: none; font-size: 16px; font-weight: 700; box-shadow: 0 4px 10px rgba(255,106,61,.35); transition: box-shadow .15s, transform .15s; } .card .buy-btn.card-cta:hover { box-shadow: 0 6px 14px rgba(255,106,61,.45); transform: translateY(-1px); } .card .buy-btn.card-cta svg { width: 1.2em; height: 1.2em; flex-shrink: 0; } .empty-state { padding: 60px 20px; text-align: center; color: var(--muted); } .pagination { display: flex; gap: 6px; margin-top: 28px; flex-wrap: wrap; } .pagination a, .pagination span { padding: 6px 11px; border-radius: 6px; border: 1px solid var(--line); font-family: var(--mono); font-size: 12.5px; background: var(--panel); } .pagination a.active, .pagination .current { background: var(--ink); color: #fff; border-color: var(--ink); } .product-detail { max-width: var(--container-max); margin: 0 auto; padding: 32px 28px 80px; display: grid; grid-template-columns: minmax(320px, 420px) 1fr; gap: 36px; } @media (max-width: 760px) { .product-detail { grid-template-columns: 1fr; } } .product-detail .thumb { border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; aspect-ratio: 1/1; background: var(--thumb-bg); } .product-detail .thumb img { width: 100%; height: 100%; object-fit: cover; } .product-detail .product-title { font-size: 24px; margin: 0 0 .3em; } .product-detail .product-description { color: var(--muted); font-size: 14px; line-height: 1.4; margin-top: 6px; } .product-detail .offer-row { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--line); gap: 8px; } .product-detail .offer-row > span { min-width: 0; word-break: break-word; overflow-wrap: anywhere; } .breadcrumb { font-size: 12.5px; color: var(--muted); margin-bottom: 16px; } .breadcrumb a:hover { text-decoration: underline; } .breadcrumb-sep { color: var(--muted); } .homepage-intro, .category-description, .category-tips { font-size: 14px; line-height: 1.6; color: var(--text); margin-bottom: 18px; max-width: var(--content-max); } .homepage-intro p, .category-description p, .category-tips p { margin: 0 0 .8em; } .category-tips { border-top: 1px solid var(--line); padding-top: 18px; margin-top: 28px; } .recommend-row { margin-bottom: var(--spacing-section); } .recommend-heading { font-size: var(--heading-h2); margin-bottom: 12px; } .grid-scroll { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--grid-min)), 1fr)); gap: var(--grid-gap); overflow: hidden; } .grid-scroll .card { flex: none; scroll-snap-align: none; } .catalog-filters { align-items: end; } .faq-block { margin-top: 32px; border-top: 1px solid var(--line); padding-top: 20px; max-width: var(--content-max); } .faq-block h2 { font-size: 17px; margin-bottom: 12px; } .faq-item { border-bottom: 1px solid var(--line); padding: 10px 0; } .faq-item summary { cursor: pointer; font-weight: 600; font-size: 13.5px; } .faq-answer { font-size: 13.5px; color: var(--muted); margin-top: 8px; line-height: 1.55; } .search-form { display: flex; flex: 1; min-width: 0; } .search-wrap { position: relative; flex: 1; } .search-wrap input[type="text"] { width: 100%; } .search-suggest { display: none; position: absolute; top: 100%; left: 0; right: 0; margin-top: 6px; background: var(--panel); border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 12px 30px var(--shadow); max-height: 360px; overflow-y: auto; z-index: 30; font-size: 14px; } .search-suggest.open { display: block; } .search-suggest-stock-toggle { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; gap: 6px; padding: 8px 10px; font-size: 12.5px; color: var(--text); background: var(--panel); border-bottom: 1px solid var(--line); cursor: pointer; user-select: none; } .search-suggest-stock-toggle input { margin: 0; accent-color: var(--accent); } .search-suggest-loading { padding: 14px 16px; font-size: 13.5px; color: var(--muted); } .search-suggest.is-loading .search-suggest-item, .search-suggest.is-loading .search-suggest-link { opacity: .45; transition: opacity .12s ease; } .search-suggest-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; font-size: 11.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; color: var(--muted); border-bottom: 1px solid var(--line); } .search-suggest-head a { color: var(--accent); text-transform: none; letter-spacing: 0; font-weight: 600; white-space: nowrap; } .search-suggest-head a:hover { text-decoration: underline; } .search-suggest-item { display: flex; align-items: center; gap: 10px; padding: 8px 10px; color: var(--text); } .search-suggest-item:hover { background: var(--hover-bg); } .search-suggest-item img { width: 40px; height: 40px; object-fit: cover; border-radius: 6px; background: var(--thumb-bg); flex-shrink: 0; } .search-suggest-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; } .search-suggest-name { font-size: 13px; line-height: 1.3; } .search-suggest-manufacturer { font-size: 11px; color: var(--muted); } .search-suggest-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; flex-shrink: 0; } .search-suggest-price-row { gap: 6px; } .search-suggest-price { font-family: var(--mono); font-size: 12.5px; font-weight: 600; color: var(--text); } .search-suggest-price-row .price-old { font-size: 11px; } .search-suggest-discount { font-family: var(--mono); font-size: 10.5px; font-weight: 700; color: #c43c3c; } .search-suggest-meta .card-avail { font-size: 10px; } .search-suggest-links { display: flex; flex-wrap: wrap; gap: 6px; padding: 8px 10px; } .search-suggest-link { display: inline-flex; align-items: center; gap: 4px; padding: 4px 10px; border: 1px solid var(--line); border-radius: 20px; font-size: 12.5px; color: var(--text); background: var(--panel); white-space: nowrap; } .search-suggest-link:hover { border-color: var(--accent); color: var(--accent); background: var(--hover-bg); } .search-suggest-link-count { color: var(--muted); font-family: var(--mono); font-size: 11px; } .site-footer-about { background: var(--panel); border-top: 1px solid var(--line); padding: 32px 28px; } .site-footer-about-inner { max-width: var(--container-max); margin: 0 auto; } .site-footer-about h2 { font-size: 15px; margin-bottom: 10px; } .footer-about-text { font-size: 13.5px; line-height: 1.6; color: var(--text); max-width: var(--content-max); } .footer-about-text p { margin: 0 0 .7em; } .footer-about-meta { font-size: 12px; color: var(--muted); margin-top: 10px; } .product-detail .price-big { font-family: var(--display); font-size: 34px; font-weight: 700; margin: 10px 0 18px; } .product-detail .buy-btn-lg { display: inline-block; background: var(--accent); color: var(--ink); padding: 13px 26px; border-radius: 9px; font-weight: 700; } .meta-table { margin-top: 24px; font-size: 13.5px; border-top: 1px solid var(--line); } .meta-table div { display: flex; justify-content: space-between; padding: 9px 0; border-bottom: 1px solid var(--line); } .meta-table .k { color: var(--muted); } .related h3 { margin-top: 40px; font-size: 16px; } .product-related-inner { max-width: var(--container-max); margin: 0 auto; } .product-related h3 { margin-top: 0; } @media (max-width: 860px) { .home-section.product-related { padding-left: 12px; padding-right: 12px; } } .admin-shell { display: grid; grid-template-columns: 220px 1fr; min-height: 100vh; } .admin-nav { background: var(--ink); color: #fff; padding: 18px 16px; position: sticky; top: 0; align-self: start; max-height: 100vh; overflow-y: auto; } .admin-nav .brand { font-family: var(--display); font-weight: 700; font-size: 17px; margin-bottom: 18px; display: flex; align-items: center; gap: 7px; } .admin-nav .brand .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); } .admin-nav a { display: block; padding: 6px 10px; border-radius: 7px; font-size: 13.5px; line-height: 1.3; color: #c9cee0; margin-bottom: 1px; } .admin-nav a:hover { background: rgba(255,255,255,.08); color: #fff; } .admin-nav a.active { background: var(--accent); color: #fff; } .admin-nav .back-to-shop { margin-top: 14px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.15); font-size: 12px; color: #8b93ad; } .admin-nav .nav-group-label { display: block; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #7d84a4; padding: 10px 10px 3px; } .admin-nav .nav-group-label:first-of-type { padding-top: 2px; } .admin-nav-toggle { display: none; } .admin-search-wrap { position: relative; margin: 14px 0 4px; } .admin-search-input { width: 100%; box-sizing: border-box; padding: 8px 12px; border-radius: 8px; border: 1px solid rgba(255,255,255,.15); background: rgba(255,255,255,.07); color: #fff; font-size: 13px; } .admin-search-input::placeholder { color: #8b93ad; } .admin-search-input:focus { outline: none; border-color: var(--accent); background: rgba(255,255,255,.1); } .admin-search-results { position: absolute; left: 0; width: 340px; top: calc(100% + 6px); z-index: 60; background: var(--panel); color: var(--text); border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 14px 34px rgba(0,0,0,.28); max-height: 70vh; overflow-y: auto; padding: 6px; } .admin-search-results[hidden] { display: none; } .admin-search-group-label { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); padding: 8px 10px 4px; } .admin-search-results .admin-search-item { display: flex; flex-direction: column; gap: 1px; padding: 7px 10px; border-radius: 7px; color: var(--text); text-decoration: none; cursor: pointer; margin-bottom: 0; } .admin-search-results .admin-search-item .si-main { display: block; font-size: 13.5px; font-weight: 500; color: var(--text); } .admin-search-results .admin-search-item .si-sub { display: block; font-size: 11.5px; color: var(--muted); } .admin-search-results .admin-search-item:hover, .admin-search-results .admin-search-item.is-active { background: var(--hover-bg, rgba(0,0,0,.06)); } .admin-search-results .admin-search-item:hover .si-main, .admin-search-results .admin-search-item.is-active .si-main { color: var(--text); } .admin-search-empty { padding: 14px 10px; font-size: 13px; color: var(--muted); } @media (max-width: 860px) { .admin-search-results { width: 100%; } } .admin-main { padding: 28px 32px 80px; max-width: 1180px; } .admin-main h1 { font-size: 22px; margin-bottom: 4px; } @media (max-width: 860px) { .admin-shell { display: block; } .admin-nav { position: static; max-height: none; overflow-y: visible; padding: 12px 16px; } .admin-nav .brand { margin-bottom: 0; } .admin-nav-toggle { display: inline-flex; align-items: center; gap: 6px; background: rgba(255,255,255,.1); color: #fff; border: none; border-radius: 7px; padding: 7px 12px; font-size: 13px; font-weight: 600; cursor: pointer; } .admin-nav-links { display: none; padding-top: 14px; } .admin-nav.is-open .admin-nav-links { display: block; } .admin-main { padding: 20px 18px 60px; } } .admin-sub { color: var(--muted); font-size: 13.5px; margin-bottom: 26px; } .stat-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px,1fr)); gap: 14px; margin-bottom: 28px; } .stat-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px; } .stat-card .num { font-family: var(--display); font-size: 26px; font-weight: 700; } .stat-card .label { font-size: 12px; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; } .stat-card .label .help-icon { text-transform: none; letter-spacing: 0; } .stat-card-link { display: block; text-decoration: none; color: inherit; transition: border-color .15s, box-shadow .15s, transform .1s; } .stat-card-link:hover { border-color: var(--accent); box-shadow: 0 2px 10px var(--shadow); transform: translateY(-1px); } .stat-card-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; } .stat-card-link.is-active { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); } .stat-card-link.is-active .num { color: var(--accent); } .panel { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 20px 22px; margin-bottom: 24px; } .panel h2 { font-size: 15px; margin-bottom: 14px; } .btn { display: inline-flex; align-items: center; gap: 6px; background: var(--ink); color: #fff; border: none; padding: 9px 16px; border-radius: 7px; font-weight: 600; font-size: 13px; cursor: pointer; } .btn:hover { opacity: .9; } .btn.accent { background: var(--accent); color: var(--ink); } .btn.ghost { background: transparent; color: var(--text); border: 1px solid var(--line); } .btn.danger { background: #c43c3c; } .btn.sm { padding: 5px 10px; font-size: 12px; } input[type=text], input[type=number], input[type=url], input[type=password], select, textarea { width: 100%; padding: 9px 11px; border: 1px solid var(--line); border-radius: 7px; background: var(--input-bg); color: var(--input-text); } textarea { font-family: var(--mono); font-size: 12.5px; } label { font-size: 12.5px; font-weight: 600; display: block; margin-bottom: 5px; color: var(--text); } .field { margin-bottom: 14px; } .field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; } .help-text { font-size: 12px; color: var(--muted); margin-top: 4px; } .help-icon { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; border-radius: 50%; background: var(--muted); color: #fff; font-size: 10px; font-weight: 700; cursor: pointer; margin-left: 6px; line-height: 1; vertical-align: middle; user-select: none; -webkit-user-select: none; } .help-icon:hover, .help-icon:focus { background: var(--primary, #3b82f6); outline: none; } .help-icon:focus-visible { box-shadow: 0 0 0 2px rgba(59,130,246,.4); } .admin-tooltip { position: fixed; z-index: 9999; max-width: 280px; padding: 8px 12px; background: var(--ink, #1f2937); color: #fff; font-size: 12.5px; line-height: 1.4; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,.2); opacity: 0; visibility: hidden; transform: translateY(4px); transition: opacity .15s, transform .15s, visibility .15s; pointer-events: none; } .admin-tooltip.visible { opacity: 1; visibility: visible; transform: translateY(0); } .admin-tooltip::after { content: ''; position: absolute; width: 0; height: 0; border: 6px solid transparent; } .admin-tooltip--top::after { bottom: 100%; left: 50%; margin-left: -6px; border-bottom-color: var(--ink, #1f2937); } .admin-tooltip--bottom::after { top: 100%; left: 50%; margin-left: -6px; border-top-color: var(--ink, #1f2937); } .settings-toolbar { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; margin: 18px 0 20px; } .settings-search { flex: 1 1 260px; min-width: 220px; padding: 9px 14px; border: 1px solid var(--line); border-radius: 8px; background: var(--input-bg); color: var(--input-text); font-size: 14px; } .settings-tabs { display: flex; flex-wrap: wrap; gap: 6px; } .settings-tab-btn { border: 1px solid var(--line); background: var(--panel); color: var(--muted); border-radius: 20px; padding: 7px 14px; font-size: 13px; font-weight: 600; cursor: pointer; } .settings-tab-btn:hover { color: var(--ink); } .settings-tab-btn.active { background: var(--accent); border-color: var(--accent); color: #fff; } .settings-tab-btn.tab-danger { color: #c0392b; border-color: #e0a89f; } .settings-tab-btn.tab-danger.active { background: #c0392b; border-color: #c0392b; color: #fff; } .settings-tab-heading { display: none; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--accent); margin: 22px 0 8px; } .settings-tab[hidden] { display: none; } #settings-tabs-container.is-searching .settings-tab-heading { display: block; } #settings-tabs-container.is-searching .settings-tab-btn { opacity: .5; } #settings-tabs-container.is-searching .settings-tab-btn.active { opacity: 1; } .settings-no-results { display: none; color: var(--muted); font-size: 14px; padding: 10px 0 20px; } .settings-no-results.show { display: block; } .panel.is-highlighted { outline: 2px solid var(--accent); outline-offset: 2px; transition: outline-color .3s; } .crop-preview { position: relative; width: 100%; max-width: 840px; aspect-ratio: 4/1; border: 1px solid var(--line); border-radius: 7px; overflow: hidden; background: var(--thumb-bg); cursor: crosshair; margin-top: 4px; } .crop-preview img { width: 100%; height: 100%; object-fit: cover; display: block; } .crop-crosshair { position: absolute; width: 16px; height: 16px; border: 2px solid #fff; border-radius: 50%; transform: translate(-50%, -50%); box-shadow: 0 0 0 1px rgba(0,0,0,.35); pointer-events: none; } .crop-hint { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--muted); font-size: 13px; pointer-events: none; } table.data { width: 100%; border-collapse: collapse; font-size: 13px; } table.data th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); padding: 8px 10px; border-bottom: 1px solid var(--line); } table.data td { padding: 8px 10px; border-bottom: 1px solid var(--line); vertical-align: middle; } table.data tr:hover td { background: var(--hover-bg); } .sticky-col { position: sticky; z-index: 1; background: var(--panel); } .sticky-left { left: 0; box-shadow: 2px 0 4px -2px rgba(0,0,0,.15); } .sticky-right { right: 0; box-shadow: -2px 0 4px -2px rgba(0,0,0,.15); } table.data tr:hover td.sticky-col { background: var(--hover-bg); } .thumb-sm { width: 38px; height: 38px; border-radius: 6px; object-fit: cover; background: var(--thumb-bg); } .badge { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 600; } .badge.on { background: #e3f5e1; color: #1f7a35; } .badge.off { background: #f1eee8; color: var(--muted); } .price-mono { font-family: var(--mono); } .cat-sort-link { color: inherit; text-decoration: none; cursor: pointer; white-space: nowrap; } .cat-sort-link:hover { color: var(--text); text-decoration: underline; } .cat-sort-link.active { color: var(--accent); font-weight: 700; } .filters { display: flex; gap: 10px; margin-bottom: 16px; flex-wrap: wrap; align-items: end; } .filters .field { margin-bottom: 0; min-width: 160px; } .catalog-filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); align-items: start; gap: 10px; max-width: 100%; margin-bottom: 12px; padding: 10px 12px; background: var(--panel); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 1px 4px rgba(0,0,0,.04); } .catalog-filters .filter-section { display: flex; flex-direction: column; gap: 6px; padding: 8px 10px; background: #fff; border: 1px solid var(--line); border-radius: 10px; min-width: 0; } .catalog-filters .filter-section.filter-actions { justify-content: center; } .catalog-filters .filter-section.filter-more { padding: 0; background: transparent; border: none; } .catalog-filters .filter-title { font-size: 11px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .4px; margin: 0; line-height: 1.2; } .catalog-filters .filter-title .price-range-values { float: right; font-weight: 600; color: var(--text); letter-spacing: 0; text-transform: none; } .price-slider { position: relative; width: 100%; height: 22px; margin: 4px 0; } .price-slider-track { position: absolute; top: 50%; left: 0; right: 0; transform: translateY(-50%); height: 5px; background: var(--line); border-radius: 3px; z-index: 0; } .price-slider-fill { position: absolute; top: 50%; transform: translateY(-50%); height: 5px; background: var(--accent); border-radius: 3px; z-index: 1; } .price-slider input[type="range"] { position: absolute; top: 0; left: 0; width: 100%; height: 100%; -webkit-appearance: none; appearance: none; background: transparent; margin: 0; padding: 0; pointer-events: none; z-index: 2; } .price-slider input[type="range"]:focus { z-index: 5; } .price-slider input[type="range"]::-webkit-slider-runnable-track { height: 5px; background: transparent; border: none; } .price-slider input[type="range"]::-moz-range-track { height: 5px; background: transparent; border: none; } .price-slider input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 16px; height: 16px; background: var(--accent); border: 2px solid #fff; border-radius: 50%; box-shadow: 0 1px 3px rgba(0,0,0,.2); pointer-events: auto; cursor: pointer; margin-top: -5.5px; position: relative; transition: transform .1s, box-shadow .1s; } .price-slider input[type="range"]::-moz-range-thumb { width: 16px; height: 16px; background: var(--accent); border: 2px solid #fff; border-radius: 50%; box-shadow: 0 1px 3px rgba(0,0,0,.2); pointer-events: auto; cursor: pointer; transition: transform .1s, box-shadow .1s; } .price-slider input[type="range"]::-webkit-slider-thumb:hover { transform: scale(1.1); } .price-slider input[type="range"]::-moz-range-thumb:hover { transform: scale(1.1); } .filter-options { display: block; } .filter-options .is-extra { display: none !important; } .filter-options.expanded .is-extra { display: flex !important; } .filter-swatches { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px 6px; justify-items: center; } .filter-swatch { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 4px 2px; cursor: pointer; font-size: 10px; color: var(--muted); width: 100%; min-width: 0; } .filter-swatch input { position: absolute; opacity: 0; pointer-events: none; top: 0; left: 0; } .filter-swatch .swatch { width: 24px; height: 24px; border-radius: 50%; border: 1px solid var(--line); background: #e5e5e5; box-shadow: inset 0 0 0 1px rgba(0,0,0,.05); position: relative; transition: transform .12s, box-shadow .12s; } .filter-swatch .swatch.all { background: linear-gradient(135deg, #ddd 25%, #fff 25%, #fff 50%, #ddd 50%, #ddd 75%, #fff 75%); background-size: 8px 8px; border-radius: 4px; } .filter-swatch:hover .swatch { transform: scale(1.08); } .filter-swatch.active .swatch { box-shadow: 0 0 0 2px var(--accent), inset 0 0 0 1px rgba(0,0,0,.05); } .filter-swatch .swatch-label { width: 100%; text-align: center; line-height: 1.1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 9.5px; } .filter-chips { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; } .filter-chip { display: flex; align-items: center; justify-content: center; gap: 4px; min-height: 28px; padding: 4px 8px; border: 1px solid var(--line); border-radius: 8px; background: #fff; cursor: pointer; font-size: 11px; font-weight: 500; color: var(--text); transition: background .12s, border-color .12s, color .12s, box-shadow .12s; width: 100%; min-width: 0; } .filter-chip span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .filter-chip input { position: absolute; opacity: 0; pointer-events: none; top: 0; left: 0; } .filter-chip:hover { border-color: var(--accent); color: var(--accent-text); } .filter-chip.active { background: var(--ink); color: #fff; border-color: var(--ink); box-shadow: 0 1px 3px rgba(0,0,0,.12); } .filter-chip.active:hover { background: var(--ink); color: #fff; } .filter-toggle-more { display: inline-flex; align-items: center; margin-top: 4px; padding: 3px 10px; border: 1px dashed var(--line); border-radius: 999px; background: transparent; cursor: pointer; font-size: 11px; font-weight: 500; color: var(--muted); transition: border-color .12s, color .12s, background .12s; white-space: nowrap; } .filter-toggle-more:hover { border-color: var(--accent); color: var(--accent-text); background: rgba(0,0,0,.02); } .filter-more { position: relative; } .filter-more-summary { padding: 8px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; font-size: 11px; font-weight: 600; cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: 6px; color: var(--text); transition: border-color .12s, color .12s, background .12s; } .filter-more-summary:hover { border-color: var(--accent); color: var(--accent-text); } .filter-more-summary::-webkit-details-marker { display: none; } .filter-more-summary::after { content: '▾'; font-size: 10px; color: var(--muted); } .filter-more[open] > .filter-more-summary::after { content: '▴'; } .filter-more[open] { grid-column: 1 / -1; } .filter-more-body { position: relative; top: auto; left: auto; width: 100%; max-width: none; max-height: 70vh; overflow-y: auto; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 12px; margin-top: 6px; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; box-shadow: 0 10px 30px rgba(0,0,0,.12); } .filter-more-body .filter-section { background: var(--panel); border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; } .catalog-filters .filter-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; } .catalog-filters .filter-actions .btn { padding: 6px 12px; font-size: 12px; border-radius: 8px; } @media (max-width: 768px) { .catalog-filters { padding: 10px; } .filter-section, .catalog-filters .filter-more { width: 100%; } .filter-more-summary { display: flex; width: 100%; justify-content: center; } .filter-more-body { position: relative; top: auto; left: auto; width: 100%; max-width: none; min-width: auto; box-shadow: none; border: 1px solid var(--line); border-radius: 10px; margin-top: 6px; padding: 10px; } .filter-more-body .filter-section { width: 100%; } .filter-chip { font-size: 12px; padding: 6px 10px; } .filter-swatch .swatch { width: 28px; height: 28px; } .filter-swatch .swatch-label { font-size: 11px; } .price-slider { height: 26px; } .price-slider input[type="range"]::-webkit-slider-thumb { width: 18px; height: 18px; margin-top: -6.5px; } .price-slider input[type="range"]::-moz-range-thumb { width: 18px; height: 18px; } } .color-map-preview { margin-top: 8px; } .color-map-preview h3 { font-size: 12px; margin: 10px 0 4px; color: var(--text); } .color-map-preview h3:first-child { margin-top: 0; } .color-map-preview .filter-swatch { cursor: default; } .color-map-list { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 6px; } .color-chip { display: inline-flex; align-items: center; gap: 5px; padding: 3px 6px; border: 1px solid var(--line); border-radius: 6px; background: var(--panel); font-size: 11px; color: var(--text); cursor: default; } .color-chip .color-dot { width: 15px; height: 15px; border-radius: 3px; border: 1px solid rgba(0,0,0,.15); box-shadow: inset 0 0 0 1px rgba(255,255,255,.3); flex-shrink: 0; } .color-chip .color-name small { color: var(--muted); margin-left: 4px; font-size: 11px; font-family: var(--mono); } .color-map-collapsible { margin-top: 6px; border: 1px solid var(--line); border-radius: 6px; padding: 6px 8px; background: var(--panel); } .color-map-collapsible summary { font-size: 12.5px; font-weight: 600; cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; color: var(--text); } .color-map-collapsible summary::-webkit-details-marker { display: none; } .color-map-collapsible summary::after { content: '▾'; font-size: 11px; color: var(--muted); } .color-map-collapsible[open] > summary::after { content: '▴'; } .alert { padding: 13px 16px; border-radius: 8px; font-size: 13.5px; margin-bottom: 18px; } .alert.ok { background: #e3f5e1; color: #1f5c2c; } .alert.error { background: #fde6e1; color: #8a2c14; } .import-tabs { display: flex; gap: 6px; margin-bottom: 18px; } .import-tabs button { background: var(--panel); border: 1px solid var(--line); padding: 8px 14px; border-radius: 7px; cursor: pointer; font-size: 13px; font-weight: 600; } .import-tabs button.active { background: var(--ink); color: #fff; border-color: var(--ink); } .tab-pane { display: none; } .tab-pane.active { display: block; } .cat-tree-admin ul { list-style: none; padding-left: 18px; margin: 0; } .cat-tree-admin > ul { padding-left: 0; } .cat-tree-admin li { padding: 4px 0; } .cat-tree-admin .row { display: flex; align-items: center; gap: 10px; } .cat-tree-admin .count { font-family: var(--mono); font-size: 11px; color: var(--muted); } .cookie-banner { position: fixed; bottom: 0; left: 0; right: 0; z-index: 50; background: var(--ink); color: #fff; padding: 14px 20px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; } .cookie-banner p { margin: 0; font-size: 13px; max-width: 640px; } .cookie-banner a { text-decoration: underline; } .cookie-banner-actions { display: flex; gap: 8px; flex-shrink: 0; } .site-footer { max-width: var(--container-max); margin: 0 auto; padding: 28px 28px 10px; display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; border-top: 1px solid var(--line); font-size: 12.5px; color: var(--muted); } .site-footer-links { display: flex; gap: 16px; flex-wrap: wrap; } .site-footer-links a:hover { color: var(--text); } .progress-bar { height: 10px; border-radius: 6px; background: var(--line); overflow: hidden; } .progress-bar-fill { height: 100%; width: 0; background: #2e7d32; transition: width 0.2s ease, background 0.2s ease; } .progress-bar-fill.indeterminate { background: repeating-linear-gradient(45deg, #2e7d32, #2e7d32 12px, #256a2a 12px, #256a2a 24px); animation: progress-stripes 1s linear infinite; } @keyframes progress-stripes { from { background-position: 0 0; } to { background-position: 34px 0; } } .import-mini-stats { display: flex; flex-wrap: wrap; align-items: baseline; margin-top: 8px; font-size: 12.5px; color: var(--muted); } .import-mini-stats .stat { display: inline-flex; align-items: baseline; gap: 4px; white-space: nowrap; } .import-mini-stats .stat-value { font-family: var(--mono); font-size: 14px; color: var(--text); } .import-mini-stats .stat-errors { color: #c0392b; } .import-mini-stats .stat-separator { color: var(--line); margin: 0 8px; } .import-log-panel { margin-top: 18px; } .import-log-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; font-size: 13px; } .import-log-filters { display: flex; flex-wrap: wrap; gap: 6px; } .import-log-filters button { padding: 4px 10px; border: 1px solid var(--line); border-radius: 14px; background: var(--panel); color: var(--muted); font-size: 12px; cursor: pointer; } .import-log-filters button:hover, .import-log-filters button.active { background: var(--accent); color: #fff; border-color: var(--accent); } .import-log { max-height: 320px; overflow-y: auto; border: 1px solid var(--line); border-radius: 8px; padding: 10px; background: var(--panel); font-family: var(--mono); font-size: 12px; line-height: 1.5; } .import-log-entry { display: flex; gap: 10px; padding: 2px 0; border-bottom: 1px solid var(--line); align-items: baseline; } .import-log-entry:last-child { border-bottom: none; } .import-log-entry .log-time { color: var(--muted); font-size: 11px; white-space: nowrap; min-width: 58px; } .import-log-entry .log-level { font-weight: 600; font-size: 11px; text-transform: uppercase; min-width: 78px; } .import-log-entry.level-error .log-level { color: #c0392b; } .import-log-entry.level-added .log-level { color: #2e7d32; } .import-log-entry.level-updated .log-level { color: #1976d2; } .import-log-entry.level-skipped .log-level { color: #888; } .import-log-entry.level-info .log-level { color: var(--muted); } .import-log-entry .log-message { flex: 1; min-width: 0; word-break: break-word; color: var(--text); } .thumb img.img-broken, img.img-broken { object-fit: contain; opacity: 0.5; } .thumb-zoomable { cursor: zoom-in; } .lightbox { display: none; position: fixed; inset: 0; z-index: 1000; background: rgba(0,0,0,0.9); flex-direction: column; } .lightbox.open { display: flex; } .lightbox-viewport { flex: 1 1 auto; min-height: 0; width: 100%; overflow: auto; display: flex; align-items: center; justify-content: center; } .lightbox img { object-fit: contain; box-shadow: 0 8px 40px rgba(0,0,0,0.5); border-radius: 4px; cursor: default; flex-shrink: 0; } .lightbox-close { position: absolute; top: 12px; right: 16px; color: #fff; font-size: 34px; line-height: 1; cursor: pointer; user-select: none; z-index: 1010; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,0.1); border-radius: 50%; } .lightbox-close:hover { background: rgba(255,255,255,0.25); } .lightbox-toolbar { flex: 0 0 auto; width: 100%; display: flex; align-items: center; justify-content: center; gap: 16px; background: rgba(0,0,0,0.95); padding: 12px 0 calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid rgba(255,255,255,0.1); } .lightbox-toolbar button { width: 48px; height: 48px; border-radius: 50%; border: none; background: rgba(255,255,255,0.12); color: #fff; font-size: 20px; font-weight: 600; cursor: pointer; display: flex; align-items: center; justify-content: center; } .lightbox-toolbar button:hover { background: rgba(255,255,255,0.28); } @media (max-width: 600px) { .lightbox-toolbar { gap: 22px; padding: 14px 0 calc(14px + env(safe-area-inset-bottom)); } .lightbox-toolbar button { width: 56px; height: 56px; font-size: 24px; } } .status-page { min-height: 100vh; display: flex; align-items: center; justify-content: center; text-align: center; padding: 24px; } .status-page .box { max-width: 480px; } .status-page h1 { font-size: 40px; margin-bottom: 12px; } .status-page p { color: var(--muted); margin-bottom: 20px; } @media (max-width: 600px) { .topbar { flex-wrap: wrap; padding: 8px 16px; } .topbar form { order: 3; flex-basis: 100%; max-width: none; } .results-head { flex-direction: column; align-items: flex-start !important; gap: 10px; } } .cookie-banner { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1000; background: var(--panel); color: var(--text); border-top: 1px solid var(--line); box-shadow: 0 -4px 20px rgba(0,0,0,.08); padding: 14px 20px; display: flex; gap: 16px; align-items: center; justify-content: center; flex-wrap: wrap; font-size: 14px; } .cookie-banner p { margin: 0; max-width: 760px; text-align: center; } .cookie-banner a { color: var(--accent-text); text-decoration: underline; } .cookie-banner-actions { display: flex; gap: 10px; } @media (min-width: 1440px) { :root { --grid-min: 230px; --container-max: 1480px; } } @media (min-width: 1600px) { :root { --grid-min: 240px; } } @media (max-width: 640px) { body { font-size: 14px; } .topbar { padding: 8px 16px; column-gap: 20px; } .topbar .brand { font-size: 16px; } .topbar .brand .site-logo { height: clamp(48px, 10vw, 56px); } .main-nav { padding: 0; } .nav-list { padding: 0 12px; } .layout { padding: 14px 12px 40px; } .product-detail { padding: 16px 12px 40px; gap: 20px; } .product-detail .price-big { font-size: clamp(24px, 8vw, 34px); } .product-detail h1.product-title { font-size: clamp(18px, 5vw, 24px); } .product-detail .product-description { font-size: 13.5px; } .product-detail .offer-row { flex-wrap: wrap; gap: 4px 10px; } .grid, .grid-scroll { grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr)); gap: 10px; } .card .body { padding: 9px 9px 11px; gap: 4px; } .card .name { font-size: 12.5px; } .card .short-desc { font-size: 11px; line-clamp: 2; -webkit-line-clamp: 2; } .card .price { font-size: 15px; } .card .buy-btn { padding: 7px; font-size: 12px; } .card .card-avail, .card .card-shop, .card .card-updated { font-size: 10px; } .pagination a, .pagination span { padding: 5px 8px; font-size: 12px; } .filters { gap: 8px; } .filters .field { min-width: 0; flex: 1 1 140px; } .filters label { font-size: 11.5px; } .filters input, .filters select { padding: 7px 9px; font-size: 13px; } .filters button { padding: 7px 12px; font-size: 12.5px; } .results-head { flex-direction: column; align-items: flex-start !important; gap: 8px; } .results-form { margin-left: 0; } .site-footer { padding: 20px 12px 10px; flex-direction: column; align-items: flex-start; gap: 10px; } .site-footer-links { gap: 10px 14px; } .homepage-intro, .category-description, .category-tips { font-size: 13.5px; } .meta-table div { flex-wrap: wrap; gap: 2px 8px; } } .product-sidebar { margin-top: 18px; display: flex; flex-direction: column; gap: 14px; } .ps-block { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 14px 16px; } .ps-block-center { text-align: center; } .ps-block-muted { background: transparent; border-style: dashed; } .ps-block-title { font-size: 12.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .45px; color: var(--muted); margin: 0 0 10px; } .ps-list { list-style: none; margin: 0; padding: 0; font-size: 13.5px; line-height: 1.35; } .ps-check { position: relative; padding-left: 20px; margin-bottom: 8px; display: flex; justify-content: space-between; gap: 8px; } .ps-check:last-child { margin-bottom: 0; } .ps-check::before { content: '✓'; position: absolute; left: 0; top: 0; color: var(--teal-text); font-weight: 700; } .ps-label { color: var(--text); } .ps-value { color: var(--muted); text-align: right; word-break: break-word; } .ps-stock-ok { color: #1f7a35; font-weight: 600; } .ps-stock-no { color: #8a2c14; font-weight: 600; } .ps-muted { color: var(--muted); } .ps-badges { display: flex; flex-wrap: wrap; gap: 6px; } .badge.product-badge { background: var(--accent); color: var(--on-accent); } .ps-price-change { font-size: 14px; font-weight: 600; padding: 8px 10px; border-radius: 8px; } .ps-price-change.ps-down { background: #e3f5e1; color: #1f7a35; } .ps-price-change.ps-up { background: #fde6e1; color: #8a2c14; } [data-theme="dark"] .ps-price-change.ps-down { background: #1b3d24; color: #a5e6ae; } [data-theme="dark"] .ps-price-change.ps-up { background: #4a1e16; color: #f5b9ab; } .ps-pricechart { position: relative; width: 100%; aspect-ratio: 320 / 130; margin: 8px 0 12px; } .ps-pricechart-svg { width: 100%; height: 100%; display: block; overflow: visible; } .ps-pricechart-area { transition: opacity .15s ease; } .ps-pricechart-line { stroke: var(--accent); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; } .ps-chart-guide { stroke: var(--line); stroke-width: 1; stroke-dasharray: 3 3; vector-effect: non-scaling-stroke; } .ps-chart-dot { fill: var(--panel); stroke: var(--accent); stroke-width: 1.6; vector-effect: non-scaling-stroke; transition: r .12s ease; } .ps-chart-dot-current { fill: var(--accent); } .ps-chart-dot-active { r: 6; } .ps-chart-hit { cursor: pointer; } .ps-chart-hit:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; } .ps-pricechart-tooltip { position: absolute; transform: translate(-50%, calc(-100% - 10px)); background: var(--ink); color: #fff; font-size: 12px; font-weight: 600; white-space: nowrap; padding: 5px 9px; border-radius: 6px; pointer-events: none; box-shadow: 0 4px 12px var(--shadow); z-index: 2; } .ps-pricechart-tooltip::after { content: ''; position: absolute; left: 50%; top: 100%; transform: translateX(-50%); border: 5px solid transparent; border-top-color: var(--ink); } [data-theme="dark"] .ps-pricechart-tooltip { background: #2a3449; } [data-theme="dark"] .ps-pricechart-tooltip::after { border-top-color: #2a3449; } .ps-pricechart-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 12px; color: var(--muted); } .ps-pc-item { display: inline-flex; align-items: center; gap: 6px; } .ps-pc-item i { width: 8px; height: 8px; border-radius: 50%; display: inline-block; flex: 0 0 auto; } .ps-pc-item b { color: var(--text); font-weight: 700; } .ps-pc-min i { background: var(--teal); } .ps-pc-max i { background: #c2410c; } .ps-pc-current i { background: var(--accent); } .ps-pc-current b { color: var(--accent); } .ps-last-check { font-size: 13px; color: var(--muted); line-height: 1.5; } .ps-last-check strong { color: var(--text); font-weight: 600; } .ps-qr-frame { width: 132px; height: 132px; margin: 0 auto; padding: 6px; border-radius: 14px; background: linear-gradient(135deg, var(--accent), var(--teal)); } .ps-qr { width: 100%; height: 100%; border-radius: 9px; background: #fff; display: block; } .ps-qr-hint { font-size: 12px; color: var(--muted); margin: 10px 0 0; text-align: center; } .ps-share-title-compact { display: none; } .ps-share { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; } .ps-share-btn { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px 7px 9px; border-radius: 999px; background: var(--panel); border: 1px solid var(--line); color: var(--text); font-size: 12px; font-weight: 600; text-decoration: none; cursor: pointer; transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease, color .15s ease; } .ps-share-btn svg { width: 15px; height: 15px; flex-shrink: 0; } .ps-share-btn:hover { transform: translateY(-1px); box-shadow: 0 4px 10px var(--shadow); } .ps-share-facebook svg { color: #1877F2; } .ps-share-facebook:hover { border-color: #1877F2; color: #1877F2; } .ps-share-x svg { color: var(--text); } .ps-share-x:hover { border-color: var(--ink); } .ps-share-whatsapp svg { color: #25D366; } .ps-share-whatsapp:hover { border-color: #25D366; color: #1a9c4c; } .ps-share-email svg, .ps-share-copy svg { color: var(--accent); } .ps-share-email:hover, .ps-share-copy:hover { border-color: var(--accent); color: var(--accent); } .panel.trust-box { margin: 18px 0 0; } .trust-box-title { font-size: 14px; font-weight: 700; margin: 0 0 10px; color: var(--text); } .trust-box-list { list-style: none; margin: 0; padding: 0; } .trust-box-list .ps-check { font-size: 13px; margin-bottom: 6px; } @media (max-width: 760px) { .product-sidebar { margin-top: 14px; } .ps-block { padding: 12px 14px; } .ps-qr-frame, .ps-qr-hint { display: none; } .ps-share-title-full { display: none; } .ps-share-title-compact { display: inline; } } .ps-badge { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 700; text-transform: uppercase; } .ps-badge-ok { background: #e3f5e1; color: #1f7a35; } .ps-badge-warn { background: #fff3cd; color: #856404; } .ps-brand { font-weight: 700; color: var(--text); text-decoration: underline; text-decoration-color: var(--accent); } .ps-category-row { align-items: flex-start; } .ps-category-links { display: flex; flex-wrap: wrap; gap: 4px 6px; align-items: center; } .ps-category-links a { color: var(--text); text-decoration: none; border-bottom: 1px solid var(--line); font-weight: 500; } .ps-category-links a:hover { border-color: var(--accent); } .ps-crumb-sep { color: var(--muted); font-size: 12px; } .badge.product-badge { display: inline-block; text-decoration: none; margin: 0 4px 4px 0; transition: transform .1s ease, background .15s ease; } .badge.product-badge:hover { transform: translateY(-1px); } .brand-card { background: var(--hover-bg); border: 1px solid var(--line); border-radius: var(--radius); padding: 12px 16px; margin: 10px 0 14px; max-width: 420px; } .brand-card-name { font-size: 16px; font-weight: 700; color: var(--text); text-transform: uppercase; letter-spacing: .3px; } .brand-card-desc { margin: 6px 0 0; font-size: 13px; color: var(--muted); line-height: 1.5; } .brand-card-link { display: inline-block; margin-top: 8px; font-size: 13px; font-weight: 600; color: var(--accent); text-decoration: none; } .product-description-block { max-width: 100%; } .product-summary { margin: 0; } .product-full-desc { position: relative; margin-top: 10px; line-height: 1.55; max-height: 7.75em; overflow: hidden; } .product-full-desc::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 1.2em; background: linear-gradient(to bottom, transparent, var(--panel)); pointer-events: none; } .product-full-desc.is-expanded { max-height: none; } .product-full-desc.is-expanded::after { display: none; } .ps-desc-toggle { display: none; margin-top: 10px; background: transparent; border: 1px solid var(--line); color: var(--accent-text); padding: 6px 12px; border-radius: 7px; cursor: pointer; font-size: 13px; font-weight: 600; } .ps-desc-toggle:hover { background: var(--hover-bg); } .product-section-title { font-size: 16px; margin: 30px 0 12px; color: var(--text); } .product-features { max-width: 100%; } .product-benefits { max-width: 760px; } .product-benefits-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: 14px; } .benefit-card { background: var(--panel); border: 1px solid var(--line); border-left: 3px solid var(--accent); border-radius: var(--radius); padding: 14px 16px; display: flex; flex-direction: column; gap: 6px; transition: transform .1s ease, box-shadow .15s ease; } .benefit-card:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,.05); } .benefit-heading { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; line-height: 1.3; } .benefit-label { font-size: 11px; text-transform: uppercase; letter-spacing: .4px; color: var(--muted); font-weight: 700; } .benefit-value { font-size: 15px; font-weight: 700; color: var(--text); } .benefit-text { font-size: 13px; line-height: 1.5; color: var(--muted); margin: 0; } .feature-tiles { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; max-width: 100%; } .feature-tile { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 14px 12px; text-align: center; display: flex; flex-direction: column; justify-content: center; gap: 4px; min-height: 90px; } .feature-name { font-size: 11px; text-transform: uppercase; letter-spacing: .4px; color: var(--muted); font-weight: 700; } .feature-value { font-size: 15px; font-weight: 700; color: var(--text); } .param-alt-size { font-size: 12.5px; font-weight: 400; color: var(--muted); white-space: nowrap; } .param-table a { color: var(--accent-text); text-decoration: none; border-bottom: 1px dashed var(--line); } .param-table a:hover { border-bottom-color: var(--accent); } .product-faq { max-width: 760px; margin-bottom: 22px; } .faq-item { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 12px 16px; margin-bottom: 8px; cursor: pointer; } .faq-item summary { font-weight: 600; font-size: 14px; color: var(--text); list-style: none; } .faq-item summary::-webkit-details-marker { display: none; } .faq-item[open] summary { color: var(--accent); } .ps-toast { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%) translateY(10px); background: var(--text); color: var(--paper); padding: 10px 18px; border-radius: 999px; font-size: 13px; font-weight: 600; box-shadow: 0 6px 20px rgba(0,0,0,.15); opacity: 0; transition: opacity .2s ease, transform .2s ease; z-index: 1000; } .ps-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); } .card .body { display: flex; flex-direction: column; justify-content: space-between; flex: 1 1 auto; } .card-body-top { flex: 0 1 auto; } .card-body-bottom { margin-top: auto; padding-top: 8px; } .card-detail-btn { display: block; width: 100%; text-align: center; margin-top: 10px; } .catalog-header { padding-bottom: 0; } .filter-panel { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 4px 14px; margin: 0 0 18px; font-size: 14px; } .filter-section { border-bottom: 1px solid var(--line); } .filter-section:last-child, .filter-section.filter-actions { border-bottom: none; } .filter-section-toggle { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 0; margin: 0; background: transparent; border: none; color: var(--text); font-size: 14px; font-weight: 600; text-align: left; cursor: pointer; } .filter-section-title-text { flex: 1; } .filter-value { font-size: 13px; color: var(--muted); font-weight: 500; font-family: var(--mono); } .filter-toggle-icon { width: 8px; height: 8px; border: solid var(--muted); border-width: 0 2px 2px 0; transform: rotate(45deg); transition: transform .2s; flex-shrink: 0; } .filter-section.is-open .filter-toggle-icon { transform: rotate(-135deg); } .filter-section-body { max-height: 0; overflow: hidden; transition: max-height .25s ease-out; } .filter-section.is-open .filter-section-body { max-height: 900px; padding: 0 4px 12px; } @media (prefers-reduced-motion: reduce) { .filter-section-body, .filter-toggle-icon { transition: none; } } .filter-options { --row-height: 2em; display: flex; flex-direction: column; } .filter-options-list { display: flex; flex-direction: column; gap: 1px; padding: 0 4px; max-height: calc(var(--row-height) * var(--visible-limit, 6)); overflow-y: auto; } .filter-options.expanded .filter-options-list { max-height: none; } .filter-options.searching .filter-options-list { max-height: none !important; } .filter-option { position: relative; display: flex; align-items: center; gap: 10px; padding: 2px 0; cursor: pointer; font-size: 14px; line-height: 1.25; color: var(--text); min-width: 0; } .filter-option-input { position: absolute; inset: 0; opacity: 0; width: 100%; height: 100%; cursor: pointer; z-index: 1; margin: 0; padding: 0; } .filter-option-indicator { width: 20px; height: 20px; border: 1px solid var(--line); border-radius: 50%; flex-shrink: 0; display: grid; place-items: center; background: var(--panel); transition: border-color .15s, background .15s; } input[type="radio"]:checked + .filter-option-indicator { border-color: var(--accent); } input[type="radio"]:checked + .filter-option-indicator::before { content: ''; width: 9px; height: 9px; border-radius: 50%; background: var(--accent); } input[type="checkbox"] + .filter-option-indicator { border-radius: 4px; } input[type="checkbox"]:checked + .filter-option-indicator { background: var(--accent); border-color: var(--accent); } input[type="checkbox"]:checked + .filter-option-indicator::after { content: '✓'; color: #fff; font-size: 12px; } .filter-option-swatch { width: 22px; height: 22px; border-radius: 4px; border: 1px solid var(--line); flex-shrink: 0; background: #e5e5e5; position: relative; box-sizing: border-box; overflow: hidden; } .filter-option-swatch.all { background: linear-gradient(135deg, #ddd 25%, #fff 25%, #fff 50%, #ddd 50%, #ddd 75%, #fff 75%); background-size: 8px 8px; } input:checked ~ .filter-option-swatch { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent); } input:checked ~ .filter-option-swatch::after { content: '✓'; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; line-height: 1; color: var(--fo-check, #000); pointer-events: none; } input:checked ~ .filter-option-label { font-weight: 600; color: var(--accent-text); } .filter-option-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; } .filter-option-count { color: var(--muted); font-size: 13px; font-family: var(--mono); } .filter-option:hover .filter-option-indicator, .filter-option:hover .filter-option-swatch { border-color: var(--accent); } .filter-option:focus-within { outline: 2px solid var(--accent); outline-offset: 1px; border-radius: 4px; } .filter-options .is-extra { display: none !important; } .filter-options.expanded .is-extra { display: flex !important; } .filter-options.searching .filter-option, .filter-options.searching.expanded .filter-option.is-extra { display: flex !important; } .filter-options.searching .filter-option.is-search-hidden, .filter-options.searching.expanded .filter-option.is-search-hidden { display: none !important; } .filter-options.searching .filter-toggle-more { display: none !important; } .filter-options.searching .filter-search-empty { display: block; } .filter-search { width: 100%; box-sizing: border-box; padding: 6px 10px; margin: 2px 0 6px; border: 1px solid var(--line); border-radius: 8px; font-size: 14px; font-family: inherit; background: var(--panel); color: var(--text); } .filter-search:focus { outline: 2px solid var(--accent); outline-offset: 1px; border-color: var(--accent); } .filter-search-empty { display: none; padding: 8px 0 4px; font-size: 13px; color: var(--muted); text-align: left; } .filter-toggle-more { display: inline-flex; align-self: flex-start; margin: 6px 0 2px; padding: 6px 10px; background: transparent; border: none; color: var(--accent-text); font-size: 13px; font-weight: 600; cursor: pointer; border-radius: 6px; } .filter-toggle-more:hover { background: var(--hover-bg); } .filter-sections-more { display: flex; flex-direction: column; margin-top: 4px; } .filter-sections-more-btn { display: inline-flex; align-self: flex-start; margin: 6px 0 2px; padding: 6px 10px; background: transparent; border: none; color: var(--accent-text); font-size: 13px; font-weight: 600; cursor: pointer; border-radius: 6px; } .filter-sections-more-btn:hover { background: var(--hover-bg); } .filter-extra-sections { display: none; } .filter-sections-more.expanded .filter-extra-sections { display: block; } .filter-actions { padding: 10px 0; } .price-filter-body { padding: 2px 0; } .price-histogram { display: flex; align-items: flex-end; justify-content: space-between; gap: 4px; height: 70px; margin-bottom: 12px; padding: 0 4px; position: relative; } .price-histogram-bar { flex: 0 0 clamp(4px, 6%, 12px); min-height: 2px; background: var(--accent); opacity: .85; border-radius: 2px 2px 0 0; cursor: pointer; position: relative; transition: opacity .15s, transform .12s; } .price-histogram-bar.is-empty { background: var(--line); opacity: .5; } .price-histogram-bar:hover { opacity: 1; transform: scaleY(1.03); } .price-histogram-tooltip { position: fixed; top: 0; left: 0; z-index: 1000; transform: translateX(-50%); background: var(--ink); color: #fff; font-size: 12px; padding: 5px 8px; border-radius: 6px; white-space: nowrap; pointer-events: none; opacity: 0; transition: opacity .15s; box-shadow: 0 4px 12px rgba(0,0,0,.2); } .price-histogram-tooltip.is-visible { opacity: 1; } .price-range-readout { font-size: 12px; color: var(--muted); text-align: center; margin-top: 4px; } .price-range-inputs { display: flex; align-items: flex-end; gap: 6px; margin-top: 10px; } .price-range-input-group { display: flex; flex-direction: column; gap: 3px; flex: 1 1 0; min-width: 0; } .price-range-input-label { font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: .03em; } .price-range-input { width: 100%; min-width: 0; padding: 6px 8px; border: 1px solid var(--line); border-radius: 7px; background: var(--panel); color: var(--text); font-size: 13px; font-variant-numeric: tabular-nums; box-sizing: border-box; } .price-range-input:focus { outline: none; border-color: var(--accent); } .price-range-input-sep { padding-bottom: 8px; color: var(--muted); font-size: 12px; } .price-range-input-currency { padding-bottom: 8px; color: var(--muted); font-size: 12px; white-space: nowrap; } .price-presets { display: flex; flex-direction: column; gap: 4px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); } .price-preset { position: relative; display: flex; align-items: center; gap: 10px; padding: 3px 0; cursor: pointer; font-size: 14px; color: var(--text); } .price-preset-input { position: absolute; inset: 0; opacity: 0; width: 100%; height: 100%; cursor: pointer; z-index: 1; margin: 0; padding: 0; } .price-preset-indicator { width: 18px; height: 18px; border: 1px solid var(--line); border-radius: 50%; flex-shrink: 0; display: grid; place-items: center; background: var(--panel); } .price-preset-input:checked + .price-preset-indicator { border-color: var(--accent); } .price-preset-input:checked + .price-preset-indicator::before { content: ''; width: 9px; height: 9px; border-radius: 50%; background: var(--accent); } .price-preset-input:checked ~ .price-preset-label { font-weight: 600; color: var(--accent); } .price-preset-reset { display: inline-flex; align-items: center; justify-content: center; align-self: stretch; margin-top: 8px; padding: 8px 12px; background: transparent; border: 1px solid var(--line); border-radius: 8px; color: var(--text); font-size: 13px; font-weight: 600; cursor: pointer; } .price-preset-reset:hover { border-color: var(--accent); color: var(--accent); } .price-preset-reset.is-hidden { display: none; } .cat-cb-row.ai-cat-auto { background: #e3f5e1; border-radius: 4px; transition: background 2.5s ease; } .mobile-filter-bar { display: none; padding: 10px 14px; background: var(--panel); border-bottom: 1px solid var(--line); } .mobile-filter-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: auto; background: var(--ink); border: none; padding: 8px 20px; border-radius: 8px; font-size: 14px; font-weight: 600; color: #fff; cursor: pointer; box-shadow: 0 2px 6px rgba(0,0,0,.12); white-space: nowrap; flex-shrink: 0; } .mobile-filter-toggle:hover { background: #1f2f55; } .mobile-filter-toggle svg { width: 16px; height: 16px; flex-shrink: 0; } .mobile-filter-overlay { position: fixed; inset: 0; z-index: 200; background: rgba(21, 32, 59, .45); opacity: 0; pointer-events: none; transition: opacity .25s; display: flex; justify-content: flex-end; } .mobile-filter-overlay.is-open { opacity: 1; pointer-events: auto; } .mobile-filter-panel { width: min(420px, 90vw); height: 100%; background: var(--panel); box-shadow: -8px 0 30px var(--shadow); display: flex; flex-direction: column; transform: translateX(100%); transition: transform .25s; max-width: 100%; } .mobile-filter-overlay.is-open .mobile-filter-panel { transform: translateX(0); } @media (prefers-reduced-motion: reduce) { .mobile-filter-overlay, .mobile-filter-panel { transition: none; } } .mobile-filter-header { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-bottom: 1px solid var(--line); flex-shrink: 0; } .mobile-filter-header h2 { font-size: 16px; margin: 0; } .mobile-filter-close { background: transparent; border: none; font-size: 26px; line-height: 1; color: var(--muted); cursor: pointer; padding: 0 4px; } .mobile-filter-body { flex: 1; overflow-y: auto; padding: 10px 18px; } .mobile-filter-form { margin: 0; border: none; background: transparent; border-radius: 0; padding: 0; flex: 1; display: flex; flex-direction: column; min-height: 0; } .mobile-filter-footer { display: flex; gap: 10px; padding: 14px 18px; border-top: 1px solid var(--line); background: var(--panel); flex-shrink: 0; } .mobile-filter-footer .btn { flex: 1; justify-content: center; } .subcat-bar { display: none; } @media (max-width: 1100px) { .sidebar .filter-panel { display: none; } .mobile-filter-bar { display: flex; justify-content: center; } .sidebar > h2, .sidebar > .cat-tree { display: none; } .subcat-bar { display: block; margin-top: -18px; margin-bottom: -18px; } .subcat-chips { display: flex; flex-wrap: wrap; gap: 6px; } .subcat-chips.is-clamped { max-height: var(--subcat-clamp, 96px); overflow: hidden; } .subcat-more { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; margin-top: 6px; padding: 0 12px; border: 1px dashed var(--line); border-radius: 999px; background: transparent; color: var(--accent-text); font: inherit; font-size: 13px; cursor: pointer; } .subcat-more[hidden] { display: none; } .subcat-chip { display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto; min-height: 40px; padding: 0 14px; border: 1px solid var(--line); border-radius: 999px; background: var(--panel); color: var(--text); font-size: 13.5px; line-height: 1.2; white-space: nowrap; text-decoration: none; } .subcat-chip-count { color: var(--muted); font-size: 12px; } .subcat-chip.is-active { border-color: var(--accent); background: var(--accent); color: var(--on-accent); font-weight: 600; } .subcat-chip.is-active .subcat-chip-count { color: inherit; opacity: .8; } } @media (max-width: 640px) { .results-head { flex-wrap: wrap; gap: 10px; } .results-form { margin-left: auto; } } .layout.homepage-layout { grid-template-columns: 1fr; padding-top: 0; } main.homepage { padding-top: 0; } .section-head { text-align: center; margin-bottom: 22px; } .section-head h2 { font-size: 28px; margin-bottom: 6px; } .section-subtitle { color: var(--muted); font-size: 15px; max-width: 640px; margin: 0 auto; } .home-section { padding: 46px 28px; } .home-section + .home-section { border-top: 1px solid var(--line); } .recently-viewed { border-top: 1px solid var(--line); } .recently-viewed-inner { max-width: var(--container-max); margin: 0 auto; } .hero-section { position: relative; overflow: hidden; outline: none; } .hero-slider { position: relative; width: 100%; --hero-duration: 400ms; } .hero-slider--slide { display: flex; transition: transform var(--hero-duration) ease; } .hero-slider--fade { display: block; aspect-ratio: 4/1; } .hero-slide { flex: 0 0 100%; width: 100%; position: relative; display: block; text-decoration: none; color: inherit; cursor: pointer; } .hero-slider--fade .hero-slide { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; transition: opacity var(--hero-duration) ease; pointer-events: none; z-index: 0; } .hero-slider--fade .hero-slide:not(.active) * { pointer-events: none; } .hero-slider--fade .hero-slide.active { opacity: 1; pointer-events: auto; z-index: 1; } .hero-slider--fade .hero-slide.active * { pointer-events: auto; } .hero-image { position: relative; width: 100%; aspect-ratio: 4/1; background: var(--thumb-bg); overflow: hidden; } .hero-slider--fade .hero-image { aspect-ratio: auto; width: 100%; height: 100%; } .hero-image img { width: 100%; height: 100%; object-fit: cover; } .hero-content { position: absolute; left: 0; right: 0; bottom: 0; padding: 60px 64px 36px; background: linear-gradient(to top, rgba(21,32,59,.85), transparent); color: #fff; } .hero-prev, .hero-next { position: absolute; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border: none; border-radius: 50%; background: rgba(255,255,255,.85); color: var(--text); font-size: 22px; font-weight: 700; cursor: pointer; z-index: 10; display: flex; align-items: center; justify-content: center; line-height: 1; box-shadow: 0 2px 6px rgba(0,0,0,.15); transition: background .15s; } .hero-prev:hover, .hero-next:hover { background: #fff; } .hero-prev { left: 12px; } .hero-next { right: 12px; } .hero-dots { position: absolute; bottom: 12px; left: 50%; transform: translateX(-50%); display: flex; gap: 8px; z-index: 10; } .hero-dot { width: 10px; height: 10px; border: none; border-radius: 50%; background: rgba(255,255,255,.55); cursor: pointer; padding: 0; transition: background .15s; } .hero-dot.active, .hero-dot[aria-current="true"] { background: #fff; } .hero-eyebrow { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; opacity: .85; margin-bottom: 6px; } .hero-title { font-size: clamp(22px, 4vw, 42px); line-height: 1.15; margin-bottom: 14px; max-width: 640px; } .hero-cta { display: inline-block; } @media (max-width: 860px) { .hero-content { padding: 40px 20px 24px; } .home-section { padding: 32px 20px; } } @media (max-width: 640px) { .hero-image { min-height: 240px; } .hero-content { padding: 20px 16px 16px; } .hero-eyebrow { font-size: 11px; margin-bottom: 4px; } .hero-title { font-size: clamp(19px, 5.5vw, 26px); margin-bottom: 10px; } .hero-prev, .hero-next { display: none; } } .hero-section--text { background: var(--ink); color: #fff; } .hero-slide--text { min-height: 260px; display: flex; align-items: center; justify-content: center; text-align: center; } .hero-slide--text .hero-content { position: static; background: transparent; padding: 60px 28px; } .home-products { background: var(--ink); color: #fff; } .home-products .section-head h2, .home-products .section-head .section-subtitle { color: #fff; } .home-products .section-subtitle { opacity: .8; } .category-grid, .tips-grid, .article-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 20px; } .cat-card, .tip-card, .article-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; text-decoration: none; color: var(--text); display: flex; flex-direction: column; transition: box-shadow .15s, transform .15s; } .cat-card:hover, .tip-card:hover, .article-card:hover { box-shadow: 0 8px 20px var(--shadow); transform: translateY(-2px); } .cat-card-image, .tip-card-image, .article-card-image { position: relative; aspect-ratio: 4/3; background: var(--thumb-bg); overflow: hidden; } .cat-card-image img, .tip-card-image img, .article-card-image img { width: 100%; height: 100%; object-fit: cover; } .cat-card-body, .tip-card-body, .article-card-body { padding: 18px; flex: 1; display: flex; flex-direction: column; gap: 8px; } .cat-card-body h3, .tip-card-body h3, .article-card-body h3 { font-size: 16px; } .cat-card-body p, .tip-card-body p, .article-card-body p { color: var(--muted); font-size: 13px; line-clamp: 2; -webkit-line-clamp: 2; -webkit-box-orient: vertical; display: -webkit-box; overflow: hidden; } .article-card-tag { font-family: var(--mono); font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--teal-text); } .home-categories--popular .category-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 16px; } .home-categories--popular .cat-card-image { aspect-ratio: 1/1; } .home-categories--popular .cat-card-body { padding: 14px; } .home-categories--popular .cat-card-body h3 { font-size: 14px; } .home-categories--popular .cat-card-body p { display: none; } .home-categories--trending .category-grid { display: flex; overflow-x: auto; gap: 12px; padding-bottom: 8px; scroll-snap-type: x mandatory; scrollbar-width: none; } .home-categories--trending .category-grid::-webkit-scrollbar { display: none; } .home-categories--trending .cat-card { flex: 0 0 110px; scroll-snap-align: start; } .home-categories--trending .cat-card-image { aspect-ratio: 1/1; } .home-categories--trending .cat-card-body { padding: 10px; text-align: center; } @media (max-width: 1100px) { .category-header-inner { gap: 14px; } .catalog-toolbar { gap: 10px; } .view-toggle-group { margin-left: 0; } .product-list-actions { min-width: 150px; } } @media (max-width: 640px) { .category-header-bg { display: none; } .category-header-inner.has-banner { min-height: 0; border-radius: 0; overflow: visible; } .category-header-inner.has-banner::before { display: none; } .category-header-inner.has-banner .category-header-main { padding: 0; max-width: none; } [data-theme="dark"] .category-header-inner.has-banner .category-title, [data-theme="dark"] .category-header-inner.has-banner .category-count { color: inherit; } .category-header-inner { flex-direction: column; gap: 12px; margin-bottom: 10px; } .category-short-desc { -webkit-line-clamp: 4; line-clamp: 4; } .mobile-filter-toggle { display: inline-flex; } .catalog-toolbar { flex-wrap: wrap; min-height: auto; padding: 8px 0; margin-bottom: 12px; gap: 8px 10px; } .catalog-toolbar-form { width: auto; flex: 1 1 auto; gap: 8px; flex-wrap: nowrap; } .toolbar-label { flex: 1 1 auto; min-width: 0; } .toolbar-label select { min-width: 0; flex: 1 1 auto; width: 100%; } .product-list-item { gap: 12px; padding: 12px; flex-wrap: wrap; } .product-list-thumb { width: 96px; flex-basis: 96px; } .product-list-body { flex: 1 1 0; } .product-list-actions { flex: 1 1 100%; width: auto; min-width: auto; flex-direction: row; align-items: center; justify-content: space-between; text-align: left; } .product-list-actions .price-row { justify-content: flex-start; } } .category-default-images-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px; margin-top: 8px; } .category-default-image { display: flex; flex-direction: column; gap: 6px; padding: 6px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); cursor: pointer; } .category-default-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; background: var(--thumb-bg); border-radius: 6px; } .default-image-meta { display: flex; align-items: center; gap: 4px; font-size: 12px; color: var(--text); } .home-categories--trending .cat-card-body h3 { font-size: 13px; } .home-categories--trending .cat-card-body p { display: none; } .home-categories--seasonal .cat-card { position: relative; } .home-trust { background: var(--panel); } .trust-list { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px; margin: 0; padding: 0; } .trust-item { display: flex; gap: 14px; align-items: flex-start; } .trust-icon { flex-shrink: 0; width: 48px; height: 48px; color: var(--accent); } .trust-icon img { width: 100%; height: 100%; object-fit: contain; } .trust-icon svg { width: 100%; height: 100%; } .trust-text { display: flex; flex-direction: column; gap: 4px; } .trust-text strong { font-size: 15px; } .trust-text span { color: var(--muted); font-size: 13px; } .home-newsletter { background: var(--ink); color: #fff; } .newsletter-inner { max-width: var(--container-max); margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; } .newsletter-text h2 { color: #fff; font-size: 28px; margin-bottom: 10px; } .newsletter-text p { opacity: .85; margin-bottom: 16px; } .newsletter-benefits { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 10px 24px; } .newsletter-benefits li { position: relative; padding-left: 20px; font-size: 14px; } .newsletter-benefits li::before { content: '✓'; position: absolute; left: 0; color: var(--accent); font-weight: 700; } .newsletter-form { display: flex; flex-direction: column; gap: 10px; } .newsletter-form input[type="email"] { padding: 14px 16px; border-radius: 10px; border: 1px solid var(--line); font-size: 16px; } .newsletter-form button { align-self: flex-start; } .newsletter-privacy { font-size: 12px; opacity: .7; margin: 0; } .newsletter-message { font-size: 13px; margin-top: 6px; } .newsletter-message.success { color: #a5e6ae; } .newsletter-message.error { color: #f5b9ab; } @media (max-width: 860px) { .newsletter-inner { grid-template-columns: 1fr; gap: 24px; } } .site-footer { background: var(--panel); border-top: 1px solid var(--line); padding: 40px 28px 24px; } .footer-columns { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(180px, 100%), 1fr)); gap: 28px; max-width: var(--container-max); margin: 0 auto; } .footer-columns-static { display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; max-width: var(--container-max); margin: 0 auto; } .footer-column h3 { font-size: 14px; margin-bottom: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--text); } .footer-column ul { list-style: none; padding: 0; margin: 0; } .footer-column li { margin: 6px 0; } .footer-column a { color: var(--muted); font-size: 13.5px; text-decoration: none; } .footer-column a:hover { color: var(--accent); } .site-footer-copy { text-align: center; color: var(--muted); font-size: 12.5px; margin-top: 34px; padding-top: 20px; border-top: 1px solid var(--line); } .product-tech-details > summary { cursor: pointer; font-size: 13px; color: var(--muted); padding: 10px 0; list-style: none; display: flex; align-items: center; gap: 6px; } .product-tech-details > summary::-webkit-details-marker { display: none; } .product-tech-details > summary::after { content: '▾'; font-size: 11px; transition: transform .15s; } .product-tech-details[open] > summary::after { transform: rotate(180deg); } @media (min-width: 761px) { .product-tech-details > summary { display: none; } } .product-sticky-cta { display: none; } @media (max-width: 760px) { .product-buy-row .product-buy-info { display: none; } .accordion-item.params-short[open] > summary { display: none; } .product-sticky-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: flex; align-items: center; gap: 12px; padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); background: var(--panel); border-top: 1px solid var(--line); box-shadow: 0 -4px 16px var(--shadow); } .product-sticky-cta[hidden] { display: none; } .psc-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; } .psc-price { font-family: var(--display); font-size: 19px; font-weight: 700; color: var(--text); line-height: 1.1; } .psc-avail { font-size: 11.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .psc-avail-ok, .psc-avail-low { color: #1f7a35; } .psc-btn { flex: 1 1 auto; display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 16px; border-radius: 10px; background: #dc3545; color: #fff; font-weight: 700; font-size: 15px; text-decoration: none; text-align: center; } .product-detail { padding-bottom: 90px; } } [data-theme="dark"] .psc-avail-ok, [data-theme="dark"] .psc-avail-low { color: #a5e6ae; } .alert { padding: 12px 16px; border-radius: 8px; margin-bottom: 16px; } .alert.error { background: #fde6e1; color: #8a2c14; } .alert.success { background: #e3f5e1; color: #1f7a35; } .drag-handle { cursor: grab; color: var(--muted); user-select: none; text-align: center; } [data-theme="dark"] .alert.error { background: #4a1e16; color: #f5b9ab; } [data-theme="dark"] .alert.success { background: #1b3d24; color: #a5e6ae; } .import-note { font-size: 12.5px; background: #eaf2ff; color: #1c4f9c; border-radius: 6px; padding: 6px 10px; margin: 0 0 8px; } [data-theme="dark"] .import-note { background: #16294a; color: #b9cdf2; } .status-ok { background: #e8f5e9; } .status-warning { background: #fff8e1; } .status-error { background: #ffebee; } [data-theme="dark"] .status-ok { background: #1b3d24; } [data-theme="dark"] .status-warning { background: #4a3a1c; } [data-theme="dark"] .status-error { background: #4a1e16; } .ai-action-row { display: flex; align-items: center; gap: 10px; margin-top: 6px; flex-wrap: wrap; } .ai-btn { display: inline-flex; align-items: center; gap: 6px; background: transparent; border: 1px solid var(--line); color: var(--text); padding: 6px 12px; border-radius: 6px; cursor: pointer; font-size: 13px; transition: background .15s, border-color .15s; } .ai-btn:hover { background: var(--panel); border-color: var(--muted); } .ai-btn:disabled { opacity: .5; cursor: not-allowed; } .ai-btn-primary { background: var(--accent); color: #fff; border-color: var(--accent); } .ai-btn-primary:hover { background: #4338ca; } .ai-suggestion { margin-top: 14px; padding: 14px; border: 1px dashed var(--line); border-radius: 8px; background: var(--panel); } .ai-suggestion h4 { margin: 0 0 10px; font-size: 14px; } .ai-suggestion textarea { width: 100%; min-height: 80px; border: 1px solid var(--line); border-radius: 6px; padding: 10px; font: inherit; font-size: 13.5px; background: #fff; box-sizing: border-box; resize: vertical; } .ai-actions { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; } .ai-status { font-size: 12.5px; color: var(--muted); } .ai-status.error { color: #c0392b; } .ai-status.ok { color: #2e7d32; } .product-detail { align-items: start; } .product-detail-right { min-width: 0; } .product-detail-rest { min-width: 0; } @media (min-width: 1100px) { .product-detail { grid-template-rows: auto 1fr; row-gap: 0; column-gap: 18px; } .product-detail-left { grid-column: 1; grid-row: 1; } .product-detail-right { grid-column: 2; grid-row: 1 / span 2; } .product-detail > .product-sidebar { grid-column: 1; grid-row: 2; } } @media (min-width: 761px) and (max-width: 1099px) { .product-detail { grid-template-columns: 1fr; } .product-detail-left .thumb { max-width: 420px; margin: 0 auto; } .product-detail > .product-sidebar { max-width: 420px; margin-left: auto; margin-right: auto; } } @media (max-width: 760px) { .product-detail-right, .product-sidebar { display: contents; } .product-detail > *, .product-detail-right > *, .product-sidebar > * { order: 20; min-width: 0; } .product-detail > .product-detail-left { order: 10; } .product-detail-right > .product-detail-card { order: 12; } .product-sidebar > .ps-block-pricechart { order: 14; } .product-detail-right > .product-detail-rest { order: 16; } .product-detail { row-gap: 16px; } .product-detail .breadcrumb-current, .product-detail .breadcrumb-sep-current { display: none; } } .product-detail .product-description { color: var(--text); font-size: 14px; line-height: 1.55; margin: 12px 0 16px; } .product-price-avail { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin: 16px 0 18px; } .product-buy-row { display: grid; grid-template-columns: 1fr 1.5fr 1.2fr; grid-template-rows: auto 1fr; grid-template-areas: "price-header shop-header shop-header" "price        cta         info"; gap: 10px; align-items: stretch; margin: 16px 0 10px; padding: 12px; border-radius: 18px; background: #e6f7ea; box-shadow: 0 6px 24px rgba(0,0,0,.13), 0 1px 2px rgba(0,0,0,.08); font-family: 'Inter', sans-serif; } .product-buy-col { position: relative; display: flex; flex-direction: column; min-width: 0; text-decoration: none; color: #fff; border-radius: 14px; transition: filter .12s ease, background .12s ease; } .product-buy-col:hover { filter: brightness(1.06); z-index: 1; } .pbh { display: flex; align-items: center; justify-content: center; padding: 12px 16px; font-size: 17px; font-weight: 700; text-transform: uppercase; letter-spacing: .6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border-radius: 999px; line-height: 1.2; text-decoration: none; } .pbh-price { grid-area: price-header; background: #1e7d34; color: #fff; } .pbh-price.is-discounted { background: #b45309; color: #fff; } .pbh-shop { grid-area: shop-header; background: #b45309; color: #fff; cursor: pointer; } .pbh-shop:hover { filter: brightness(1.05); } .product-buy-price { grid-area: price; background: #e6f7ea; color: #15203b; } .pbp-body { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 16px; text-align: center; } .pbp-price { font-size: 2.6rem; font-weight: 700; line-height: 1.1; color: #15203b; } .pbp-old-price { font-size: 1rem; color: #15203b; text-decoration: line-through; opacity: .7; } .pbp-saving { display: inline-block; background: #ffc107; color: #15203b; font-size: .75rem; font-weight: 700; padding: 3px 8px; border-radius: 999px; line-height: 1.2; } .pbp-sub { font-size: .95rem; color: #4b5563; opacity: 1; font-weight: 500; } .pbp-avail { display: inline-flex; align-items: center; gap: 6px; padding: 5px 10px; border-radius: 999px; background: rgba(255,255,255,.35); color: #15203b; font-size: .85rem; font-weight: 700; letter-spacing: .3px; } .pbp-avail .pbp-check { width: 20px; height: 20px; border-radius: 50%; background: #28a745; color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 11px; line-height: 1; } .pbp-avail-ok { background: rgba(255,255,255,.35); color: #197031; } .pbp-avail-no { background: #dc3545; color: #fff; } .pbp-avail-low { background: #e67e22; color: #fff; } .pbp-avail-unknown { background: #6c757d; color: #fff; } .pbp-avail-ok .pbp-check { background: #1e7e34; } .pbp-avail-no .pbp-check { background: #dc3545; } .pbp-avail-low .pbp-check { background: #e67e22; } .pbp-avail-unknown .pbp-check { background: #6c757d; } .pbp-verified { font-size: .75rem; color: #15203b; opacity: .75; text-decoration: underline dotted; } .pbp-divider { width: calc(100% + 32px); height: 1px; background: rgba(21,32,59,.12); margin: 6px -16px; border: none; } .product-buy-cta { grid-area: cta; align-items: center; justify-content: center; background: #dc3545; color: #fff; padding: 0 14px; } .pbc-text { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; text-align: center; } .pbc-label { display: block; font-family: 'Inter', sans-serif; font-size: 2rem; font-weight: 700; letter-spacing: .5px; line-height: 1.15; white-space: nowrap; text-shadow: 0 1px 0 rgba(0,0,0,.15); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .pbc-cart { display: inline-flex; width: 2.8rem; height: 2.8rem; } .pbc-cart svg { width: 100%; height: 100%; stroke-width: 2.5px; } .product-buy-info { grid-area: info; background: #e6f7ea; color: #15203b; } .product-buy-info:hover { filter: none; background: #d8ecda; } .pbi-list { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 10px; list-style: none; margin: 0; padding: 14px; } .pbi-item { display: flex; align-items: center; gap: 10px; min-width: 0; transition: transform .15s ease; } .pbi-item:hover { transform: translateX(2px); } .pbi-icon { width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 11px; font-weight: 700; } .pbi-icon-currency { background: #1e7e34; color: #fff; } .pbi-icon-currency span { font-size: 10px; letter-spacing: -0.3px; } .pbi-icon-check { background: #1e7e34; color: #fff; } .pbi-icon-check svg { width: 18px; height: 18px; } .pbi-icon-shield { background: #1e7e34; color: #fff; } .pbi-icon-shield svg { width: 18px; height: 18px; } .pbi-icon-arrow { background: #ffebee; color: #dc3545; } .pbi-icon-arrow svg { width: 18px; height: 18px; } .pbi-text { flex: 1; display: flex; flex-direction: column; line-height: 1.25; min-width: 0; overflow-wrap: anywhere; } .pbi-text strong { font-size: 15px; font-weight: 700; color: #1b7a43; } .pbi-text span { font-family: 'Inter', sans-serif; font-size: 12px; color: var(--muted, #6b7280); } .pbi-item-shop .pbi-text strong, .pbi-item-shop .pbi-text span { color: #dc3545; } @media (max-width: 760px) { .product-buy-row { grid-template-columns: 1fr; grid-template-areas: "price-header" "price" "shop-header" "cta"; } .pbp-price { font-size: 2rem; } .pbc-text { flex-direction: row; gap: 10px; } .pbc-label { font-size: 1.25rem; } .pbc-cart { width: 1.5rem; height: 1.5rem; } .product-buy-cta { min-height: 58px; padding: 12px 18px; border-radius: 999px; background: linear-gradient(135deg, #e8404f 0%, #dc3545 45%, #b81f2d 100%); box-shadow: 0 0 0 3px rgba(220, 53, 69, .16), 0 6px 18px rgba(220, 53, 69, .45), inset 0 1px 0 rgba(255, 255, 255, .28); } .product-buy-cta:active { transform: translateY(2px) scale(.99); box-shadow: 0 0 0 3px rgba(220, 53, 69, .16), 0 3px 10px rgba(220, 53, 69, .4), inset 0 1px 0 rgba(255, 255, 255, .2); } } .product-buy-cta { position: relative; overflow: hidden; } .product-buy-cta .pbc-text { position: relative; z-index: 1; } .product-buy-cta::after { content: ''; position: absolute; top: 0; bottom: 0; left: -70%; width: 45%; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .4), transparent); transform: skewX(-18deg); } .product-buy-cta.is-sheening::after { animation: pbcSheen 2s ease-in-out 2; } @keyframes pbcSheen { 0% { transform: translateX(0) skewX(-18deg); } 55%, 100% { transform: translateX(489%) skewX(-18deg); } } @media (prefers-reduced-motion: reduce) { .product-buy-cta::after, .product-buy-cta.is-sheening::after { animation: none; opacity: 0; } } @media (min-width: 761px) { .pbp-price { font-size: 2.7rem; } .pbc-label { font-size: 2rem; } } .buy-btn-lg { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: var(--fill-primary, var(--accent)); color: var(--ink, #fff); padding: 14px 28px; border-radius: 10px; font-weight: 700; font-size: 15px; text-decoration: none; text-align: center; margin: 8px 0 24px; transition: transform .1s ease, background .15s ease; } .buy-btn-lg:hover { transform: translateY(-1px); filter: brightness(1.05); } .variant-picker { margin: 16px 0 12px; } .variant-picker-axis { margin-bottom: 16px; } .variant-picker-label { font-size: 13px; color: var(--muted); margin-bottom: 6px; font-weight: 500; } .variant-select { position: relative; width: 100%; max-width: 340px; } .variant-select-trigger { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; background: #fff; border: 1px solid var(--accent); border-radius: var(--radius, 8px); font-size: 15px; color: var(--text); cursor: pointer; text-align: left; transition: border-color .15s ease; } .variant-select-trigger:hover, .variant-select.open .variant-select-trigger { border-color: var(--accent); } .variant-select.open .variant-select-trigger { border-bottom-left-radius: 0; border-bottom-right-radius: 0; border-bottom-color: transparent; } @media (prefers-reduced-motion: no-preference) { .variant-picker-highlight .variant-select-trigger { position: relative; } .variant-picker-highlight .variant-select-trigger::after { content: ''; position: absolute; inset: -1px; border-radius: inherit; border: 3px solid var(--accent); opacity: 0; pointer-events: none; animation: variant-select-pulse 1.6s ease-in-out; } } @keyframes variant-select-pulse { 0%, 100% { opacity: 0; transform: scale(1); } 30%, 70% { opacity: 1; transform: scale(1.02); } 50% { opacity: 1; transform: scale(1.035); } } .variant-select-value { flex: 1; } .variant-select-swatch { width: 18px; height: 18px; border-radius: 50%; border: 1px solid var(--line); flex-shrink: 0; box-sizing: border-box; } .variant-select-swatch.is-unknown { background: linear-gradient(135deg, #ddd 25%, #fff 25%, #fff 50%, #ddd 50%, #ddd 75%, #fff 75%); background-size: 6px 6px; } .variant-select-arrow { display: inline-block; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .2s ease; opacity: .7; margin-top: -3px; } .variant-select.open .variant-select-arrow { transform: rotate(-135deg); margin-top: 3px; } .variant-select-options { display: none; position: absolute; top: 100%; left: 0; right: 0; list-style: none; margin: 0; padding: 0; background: #fff; border: 1px solid var(--accent); border-top: none; border-bottom-left-radius: var(--radius, 8px); border-bottom-right-radius: var(--radius, 8px); box-shadow: 0 12px 30px rgba(0,0,0,.12); max-height: 280px; overflow-y: auto; z-index: 10; } .variant-select.open .variant-select-options { display: block; } .variant-select-option { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; font-size: 15px; cursor: pointer; border-bottom: 1px solid var(--line); background: #fff; } .variant-select-option:last-child { border-bottom: none; } .variant-select-option:hover, .variant-select-option:focus-visible, .variant-select-option.active { background: var(--panel); outline: none; } .variant-select-option.active { background: #eef6ff; } .variant-select-option.disabled, .variant-select-option.unavailable { opacity: .45; color: var(--muted); text-decoration: line-through; } .variant-select-option.disabled { cursor: pointer; } .variant-select-option.unavailable { cursor: not-allowed; } .variant-select-option.unavailable:hover, .variant-select-option.unavailable.active { background: #fff; } .variant-select-option.disabled:hover { background: var(--panel); } .variant-select-option.disabled.active { background: #eef6ff; } @media (max-width: 760px) { .related .grid { display: flex; gap: 12px; overflow-x: auto; -webkit-overflow-scrolling: touch; scroll-snap-type: x mandatory; padding: 2px 12px 10px; margin: 0 -12px; scrollbar-width: none; } .related .grid::-webkit-scrollbar { display: none; } .related .grid > .card { flex: 0 0 62%; scroll-snap-align: start; } } @media (max-width: 760px) { .variant-axis-compact .variant-select { max-width: none; } .variant-axis-compact .variant-select-trigger { display: none; } .variant-axis-compact .variant-select-options, .variant-axis-compact .variant-select.open .variant-select-options { display: flex; flex-wrap: wrap; gap: 8px; position: static; border: none; border-radius: 0; background: none; box-shadow: none; max-height: none; overflow: visible; } .variant-axis-compact .variant-select-option { flex: 0 0 auto; justify-content: center; gap: 2px; min-width: 52px; min-height: 46px; padding: 6px 12px; border: 1.5px solid var(--line); border-bottom: 1.5px solid var(--line); border-radius: 10px; font-weight: 600; } .variant-axis-compact .variant-select-option.active { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 12%, #fff); box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 30%, transparent); } .variant-axis-compact .variant-option-value { flex: 0 0 auto; } .variant-axis-compact .variant-option-avail, .variant-axis-compact .variant-option-price-diff, .variant-axis-compact .variant-option-hint { display: none; } .variant-picker-axis-color.variant-axis-compact .variant-select-option { flex-direction: column; gap: 4px; } .variant-picker-axis-color.variant-axis-compact .variant-option-swatch { width: 22px; height: 22px; } } .variant-option-swatch { width: 20px; height: 20px; border-radius: 50%; border: 1px solid var(--line); flex-shrink: 0; box-sizing: border-box; } .variant-option-swatch.is-unknown { background: linear-gradient(135deg, #ddd 25%, #fff 25%, #fff 50%, #ddd 50%, #ddd 75%, #fff 75%); background-size: 6px 6px; } .variant-select-option.active .variant-option-swatch { box-shadow: 0 0 0 2px var(--accent); } .variant-option-value { flex: 1; } .variant-option-price-diff { font-size: 13px; color: var(--muted); white-space: nowrap; margin-left: 6px; } .variant-option-avail { font-size: 13px; white-space: nowrap; color: var(--muted); } .variant-option-avail.ok { color: #2a9d3e; } .variant-option-avail.no { color: #d93025; } .variant-option-avail.unknown { color: #f59e0b; } .variant-option-hint { font-size: 13px; white-space: nowrap; color: var(--muted); } .product-accordions { max-width: 100%; margin: 24px 0 28px; } .accordion-item { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); margin-bottom: 10px; overflow: hidden; } .accordion-item summary { list-style: none; padding: 14px 18px; font-weight: 700; font-size: 15px; color: var(--text); cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 10px; } .accordion-item summary::-webkit-details-marker { display: none; } .accordion-item summary::after { content: '+'; font-size: 20px; color: var(--muted); line-height: 1; transition: transform .2s ease; } .accordion-item[open] summary::after { content: '−'; transform: rotate(0deg); } .accordion-body { padding: 0 18px 18px; font-size: 14px; line-height: 1.6; color: var(--text); } .accordion-body .param-table { margin: 0; } .accordion-item summary:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; } .faq-list .faq-item { border: 1px solid var(--line); border-radius: 8px; padding: 10px 14px; margin-bottom: 8px; background: var(--paper); } .faq-list .faq-item summary { font-weight: 600; font-size: 14px; padding: 0; } .faq-list .faq-item[open] summary { color: var(--accent); } .faq-list .faq-item p { margin: 8px 0 0; color: var(--muted); font-size: 13.5px; } .ps-block-info { border-left: 4px solid #a8a29e; } .ps-block-trust { border-left: 4px solid #22c55e; } .ps-block-tags { border-left: 4px solid #a855f7; } .ps-block-share { border-left: 4px solid #3b82f6; } .ps-block-pricechart { border-left: 4px solid var(--accent); } .ps-block-lastcheck { border-left: 4px solid var(--teal); } .feature-tiles { max-width: 100%; } .feature-tile { transition: transform .1s ease, box-shadow .15s ease; } .feature-tile:hover { transform: translateY(-2px); box-shadow: 0 4px 12px var(--shadow); } .feature-tile-more { text-decoration: none; background: var(--accent); border: 1px solid var(--accent); color: var(--on-accent); } .feature-tile-more .feature-name, .feature-tile-more .feature-value { color: var(--on-accent); } .feature-tile-more:hover { background: var(--on-accent); color: var(--accent); } .feature-tile-more:hover .feature-name, .feature-tile-more:hover .feature-value { color: var(--accent); } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; } @media (prefers-reduced-motion: reduce) { .feature-tile, .buy-btn-lg, .accordion-item summary::after { transition: none; } } @media (max-width: 1100px) { .feature-tiles { grid-template-columns: repeat(auto-fill, minmax(min(100%, 160px), 1fr)); } } @media (max-width: 760px) { .product-detail { padding: 16px 12px 40px; } .product-price-avail { flex-direction: column; align-items: flex-start; gap: 8px; } .buy-btn-lg { width: 100%; box-sizing: border-box; } .feature-tiles { grid-template-columns: repeat(auto-fill, minmax(min(100%, 140px), 1fr)); } .accordion-item summary { font-size: 14px; padding: 12px 14px; } .accordion-body { padding: 0 14px 14px; } } .product-detail-card { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 4px 20px rgba(0,0,0,.08); padding: 22px 24px 16px; margin-bottom: 24px; } .product-detail-card .breadcrumb { margin-bottom: 12px; } .product-badge-wrap { margin-bottom: 10px; } .product-badge-wrap:empty { display: none; } .product-badge { display: inline-block; padding: 5px 12px; border-radius: 6px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; color: #fff; } .badge-yellow { background: #ffc107; color: #212529; } .badge-orange { background: #ff9800; color: #fff; } .badge-red { background: #dc3545; color: #fff; } .badge-green { background: #28a745; color: #fff; } .badge-blue { background: #007bff; color: #fff; } .badge-dark { background: #343a40; color: #fff; } .product-manufacturer { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 12px; margin: 0 0 14px; font-size: 13.5px; color: var(--muted); } .product-detail-card .product-manufacturer { margin: 4px 0 8px; } .product-manufacturer-name { font-weight: 600; color: var(--text); } .product-manufacturer-link { color: var(--accent-text); font-weight: 600; text-decoration: none; white-space: nowrap; } .product-manufacturer-link:hover { text-decoration: underline; } .product-detail-card .product-title { margin-top: 0; } .price-tag { display: inline-flex; flex-direction: column; min-width: 180px; max-width: 100%; box-sizing: border-box; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 14px rgba(0,0,0,.12); margin: 8px 0 14px; } .price-tag .product-badge-wrap { margin: 0; } .price-tag .product-badge { display: block; text-align: center; border-radius: 0; padding: 6px 14px; } .price-tag-sale .product-badge { background: #ffc107; color: #b71c1c; text-transform: uppercase; letter-spacing: .5px; font-weight: 700; padding: 5px 12px; font-size: 12.5px; } .price-tag-body { padding: 14px 24px; text-align: center; color: #fff; } .price-tag-sale .price-tag-body { background: #c62828; } .price-tag-normal .price-tag-body { background: #28a745; } .price-tag-price { font-size: 2.1rem; font-weight: 700; line-height: 1.1; color: #fff; } .price-tag-old { font-size: 1rem; text-decoration: line-through; opacity: .85; margin-bottom: 3px; color: #fff; } .price-tag-sale .price-tag-old { display: none; } .price-tag-sub { font-size: .95rem; font-weight: 600; opacity: .92; margin-top: 4px; color: #fff; } .price-tag-sale .price-tag-sub { opacity: 1; font-size: 1rem; } .buy-btn-lg { display: inline-block; padding: 13px 26px; border-radius: 9px; font-weight: 700; text-decoration: none; transition: background .15s ease, transform .1s ease; } .buy-btn-lg:hover { transform: translateY(-1px); } .product-detail .buy-btn-lg.buy-btn-normal { background: #dc3545; color: #fff; } .product-detail .buy-btn-lg.buy-btn-normal:hover { background: #c82333; } .product-detail .buy-btn-lg.buy-btn-sale { background: #dc3545; color: #fff; } .product-detail .buy-btn-lg.buy-btn-sale:hover { background: #c82333; } @media (max-width: 760px) { .product-detail-card { padding: 16px 16px 14px; margin-bottom: 0; } .product-manufacturer { flex-direction: column; align-items: flex-start; gap: 2px; } } .filter-truncated-note { margin: 4px 0 0; font-size: 11.5px; color: var(--muted); } #mobile-filter-mount .filter-panel { margin: 0; border: none; background: transparent; border-radius: 0; padding: 0; display: flex; flex-direction: column; min-height: 0; } .search-suggest-link-parent { color: var(--muted); font-weight: 400; }