/* === css/tokens.css === */
:root {
--color-primary: #023E8A;
--color-primary-hover: #03306E;
--color-primary-active: #022757;
--color-primary-light: #E5EBF5;
--color-primary-lighter: #F2F5FA;
--color-primary-text: #023E8A;
--color-accent: #FFB703;
--color-bg: #FFFFFF;
--color-bg-soft: #F7F9FC;
--color-bg-card: #FFFFFF;
--color-surface: #FFFFFF;
--color-surface-2: #F7F9FC;
--color-text: #1A2332;
--color-text-secondary: #4A5568;
--color-text-muted: #718096;
--color-text-subtle: #718096;
--color-border: #E2E8F0;
--color-border-strong: #CBD5E1;
--color-success: #16A34A;
--color-success-light: #D1FAE5;
--color-warning: #F59E0B;
--color-warning-light: #FFEDD5;
--color-danger: #DC2626;
--color-danger-light: #FEE2E2;
--color-price: #023E8A;
--color-old-price: #94A3B8;
--color-discount: #DC2626;
--font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
--font-size-xs: 12px;
--font-size-sm: 14px;
--font-size-base: 16px;
--font-size-lg: 18px;
--font-size-xl: 24px;
--font-size-2xl: 32px;
--font-size-3xl: 48px;
--font-weight-regular: 400;
--font-weight-medium: 500;
--font-weight-semibold: 600;
--font-weight-bold: 700;
--line-height-tight: 1.2;
--line-height-normal: 1.5;
--line-height-relaxed: 1.7;
--space-1: 4px;
--space-2: 8px;
--space-3: 12px;
--space-4: 16px;
--space-5: 20px;
--space-6: 24px;
--space-8: 32px;
--space-10: 40px;
--space-12: 48px;
--space-16: 64px;
--radius-sm: 6px;
--radius-md: 10px;
--radius-lg: 16px;
--radius-xl: 24px;
--radius-full: 9999px;
--shadow-sm: 0 1px 2px rgba(2, 62, 138, 0.04);
--shadow-md: 0 4px 12px rgba(2, 62, 138, 0.06);
--shadow-lg: 0 8px 24px rgba(2, 62, 138, 0.08);
--shadow-card-hover: 0 12px 32px rgba(2, 62, 138, 0.15);
--container-max: 1440px;
--container-padding: 24px;
--header-height: 72px;
--subheader-height: 56px;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
*, *::before, *::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
}
:focus { outline: none; }
:focus-visible {
outline: 2px solid var(--color-primary);
outline-offset: 2px;
border-radius: 2px;
}
button:focus-visible,
a:focus-visible {
outline-offset: 4px;
}
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
outline: none;
border-radius: inherit;
}
.skip-link {
position: absolute;
left: -9999px;
top: -9999px;
width: 1px;
height: 1px;
overflow: hidden;
background: var(--color-primary);
color: #fff;
padding: var(--space-2) var(--space-4);
border-radius: var(--radius-md);
z-index: 9999;
text-decoration: none;
font-weight: var(--font-weight-semibold);
}
.skip-link:focus,
.skip-link:focus-visible {
position: fixed;
left: 8px;
top: 8px;
width: auto;
height: auto;
overflow: visible;
}
.btn.is-loading,
.btn-primary.is-loading,
.btn-submit.is-loading {
pointer-events: none;
opacity: 0.7;
position: relative;
color: transparent !important;
}
.btn.is-loading::after,
.btn-primary.is-loading::after,
.btn-submit.is-loading::after {
content: '';
position: absolute;
width: 16px;
height: 16px;
top: 50%;
left: 50%;
margin: -8px 0 0 -8px;
border: 2px solid #fff;
border-right-color: transparent;
border-radius: 50%;
animation: qm-spin 0.6s linear infinite;
}
@keyframes qm-spin { to { transform: rotate(360deg); } }
.empty-state {
text-align: center;
padding: var(--space-12);
color: var(--color-text-secondary);
}
.empty-state__icon {
font-size: 48px;
opacity: 0.4;
margin-bottom: var(--space-3);
}
/* === css/main.css === */
:root {
--primary: #023E8A;
--primary-light: #2563EB;
--primary-dark: #03306E;
--accent: #00C9A7;
--accent2: #FF6B35;
--bg: #FFFFFF;
--white: #ffffff;
--dark: #022757;
--gray: #4A5568;
--gray-light: #E2E8F0;
--text: #1A2332;
--card-shadow: 0 4px 24px rgba(2, 62, 138,0.10);
--radius: 18px;
--radius-sm: 10px;
--max-width: 1600px;
--side-padding: 20px;
--blue: #023E8A;
--blue-dark: #03306E;
--blue-light: #E6EFFB;
--gray-50: #f8fafc;
--gray-100: #f1f5f9;
--gray-200: #e2e8f0;
--gray-300: #cbd5e1;
--gray-500: #64748b;
--gray-700: #334155;
--gray-900: #0f172a;
--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
--shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08);
--shadow-lg: 0 8px 30px rgba(0, 0, 0, 0.12);
--radius-md: 10px;
--radius-lg: 16px;
--transition: 0.2s ease;
}
@media (min-width: 641px) {
:root {
--side-padding: 32px;
}
}
@media (min-width: 1201px) {
:root {
--side-padding: 48px;
}
}
@media (min-width: 1441px) {
:root {
--side-padding: 64px;
}
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html {
font-size: 15px;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
scroll-behavior: smooth;
}
@media (min-width: 641px) {
html {
font-size: 16px;
}
}
body {
font-family: 'Inter', 'Manrope', 'Segoe UI', system-ui, -apple-system, sans-serif;
background: var(--bg);
color: var(--text);
overflow-x: hidden;
line-height: 1.6;
}
.site-header-shell {
position: sticky;
top: 0;
z-index: 1000;
transition: box-shadow 0.25s ease;
}
.site-header-shell.scrolled {
box-shadow: 0 10px 40px rgba(13, 27, 42, 0.12);
}
header.site-header,
.site-header {
position: relative; z-index: 10;
background: rgba(255,255,255,0.94);
backdrop-filter: blur(16px) saturate(1.5);
-webkit-backdrop-filter: blur(16px) saturate(1.5);
border-bottom: 1px solid var(--gray-light);
transition: background 0.3s;
}
.site-header-shell.scrolled .site-header {
background: rgba(255,255,255,0.99);
}
.header-inner {
display: flex;
align-items: center;
justify-content: space-between;
height: 72px;
gap: 16px;
max-width: 1600px;
margin: 0 auto;
padding: 0 24px;
}
.header-left {
display: flex;
align-items: center;
gap: 20px;
flex-shrink: 0;
min-width: 0;
}
.header-right {
display: flex;
align-items: center;
gap: 12px;
margin-left: auto;
flex: 0 1 auto;
min-width: 0;
}
.header-logo {
display: flex;
align-items: center;
gap: 10px;
text-decoration: none;
flex-shrink: 0;
color: inherit;
}
.logo-icon {
width: 42px; height: 42px;
background: linear-gradient(135deg, var(--primary), var(--accent));
border-radius: 12px;
display: flex; align-items: center; justify-content: center;
color: white; font-size: 22px;
}
.logo-img {
width: 42px;
height: 42px;
object-fit: contain;
display: block;
border-radius: 12px;
}
.header-brand {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 1px;
line-height: 1.15;
}
.header-brand-name {
font-weight: 800;
font-size: 16px;
color: var(--dark);
}
.header-brand-tag {
font-size: 11px;
font-weight: 600;
color: var(--primary);
}
.header-phone {
display: flex;
flex-direction: column;
align-items: flex-start;
text-decoration: none;
flex-shrink: 0;
}
.header-phone-number {
font-weight: 700;
font-size: 17px;
color: var(--primary);
letter-spacing: -0.3px;
}
.header-phone-label {
font-size: 11px;
color: var(--gray);
}
.header-actions {
display: flex;
align-items: center;
gap: 6px;
flex-shrink: 0;
}
.header-search-open {
display: none;
align-items: center;
justify-content: center;
width: 44px;
height: 44px;
padding: 0;
border: 1.5px solid #e0e0e0;
border-radius: 12px;
background: var(--bg);
color: var(--text);
font-size: 18px;
line-height: 1;
cursor: pointer;
flex-shrink: 0;
transition: border-color 0.2s, box-shadow 0.2s;
}
.header-search-open:hover {
border-color: var(--primary);
}
.header-search-overlay {
display: none;
position: absolute;
left: 0;
right: 0;
top: 100%;
z-index: 95;
padding: 10px var(--side-padding, 24px) 14px;
background: rgba(255, 255, 255, 0.98);
backdrop-filter: blur(12px);
border-bottom: 1px solid var(--gray-light);
box-shadow: 0 12px 28px rgba(13, 27, 42, 0.08);
}
.header-search-overlay.is-open {
display: block;
}
@media (min-width: 641px) {
.header-search-overlay {
display: none !important;
}
}
.header-search {
display: flex;
align-items: center;
position: relative;
width: 260px;
max-width: 100%;
min-width: 0;
flex-shrink: 1;
margin: 0;
}
.header-search--desktop {
width: 100%;
max-width: 260px;
flex: 0 1 auto;
}
@media (max-width: 1199px) {
.header-search--desktop {
max-width: 250px;
}
}
@media (max-width: 899px) {
.header-search--desktop {
max-width: 200px;
}
}
.header-search--overlay {
width: 100%;
max-width: none;
margin: 0;
flex: 1 1 auto;
}
.header-search-input {
width: 100%;
padding: 9px 14px 9px 36px;
border: 1.5px solid #e2e8f0;
border-radius: 8px;
font-size: 14px;
font-family: inherit;
color: var(--text);
background: var(--bg);
outline: none;
transition: border-color 0.2s, box-shadow 0.2s;
}
.header-search-input:focus {
border-color: #0D47A1;
box-shadow: 0 0 0 3px rgba(26, 115, 232, 0.1);
}
.header-search-input::placeholder { color: #9e9e9e; }
.header-search-icon {
position: absolute;
left: 12px;
top: 50%;
transform: translateY(-50%);
font-size: 14px;
color: #9e9e9e;
pointer-events: none;
line-height: 1;
}
@media (max-width: 640px) {
.header-search--desktop {
display: none !important;
}
.header-search-open {
display: flex;
}
.header-right .header-search {
margin: 0 0 0 8px;
}
}
.lang-switcher {
position: relative;
z-index: 999;
}
.lang-current {
display: inline-flex;
align-items: center;
gap: 5px;
background: rgba(255, 255, 255, 0.15);
border: 1.5px solid rgba(255, 255, 255, 0.35);
border-radius: 6px;
padding: 6px 12px;
color: white;
font-size: 13px;
font-weight: 600;
cursor: pointer;
font-family: inherit;
transition: background 0.2s, border-color 0.2s;
}
.lang-current:hover {
background: rgba(255, 255, 255, 0.25);
border-color: rgba(255, 255, 255, 0.5);
}
.lang-arrow {
font-size: 10px;
margin-left: 2px;
}
.lang-dropdown {
display: none;
position: absolute;
top: calc(100% + 8px);
right: 0;
background: white;
border-radius: 10px;
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.18);
min-width: 220px;
overflow: hidden;
z-index: 1000;
}
.lang-dropdown form {
margin: 0;
padding: 6px 0;
}
.lang-option {
display: flex;
align-items: center;
gap: 10px;
width: 100%;
padding: 12px 18px;
border: none;
background: none;
color: #334155;
font-size: 14px;
font-family: inherit;
cursor: pointer;
text-align: left;
transition: background 0.15s;
}
.lang-option:hover {
background: #f1f5f9;
}
.header-area .lang-current {
color: #334155;
background: rgba(255, 255, 255, 0.95);
border-color: #e2e8f0;
}
.header-area .lang-current:hover {
background: #fff;
border-color: #cbd5e1;
}
.auth-btns { display: flex; gap: 8px; }
.auth-btn {
padding: 8px 14px; border-radius: 9px;
font-size: 13px; font-weight: 600; cursor: pointer;
transition: all 0.2s; text-decoration: none; font-family: inherit;
}
.auth-btn-outline { border: 1.5px solid var(--primary); color: var(--primary); background: transparent; }
.auth-btn-outline:hover { background: var(--primary); color: white; }
.auth-btn-fill { background: var(--primary); color: white; border: 1.5px solid var(--primary); }
.auth-btn-fill:hover { background: var(--primary-dark); }
.auth-btn--compact { font-size: 12px; padding: 8px 10px; }
.header-icon-btn {
position: relative;
display: flex;
align-items: center;
justify-content: center;
width: 44px;
height: 44px;
border-radius: 12px;
background: var(--bg);
border: 2px solid var(--gray-light);
text-decoration: none;
color: var(--dark);
transition: border-color 0.2s, background 0.2s;
}
.header-icon-btn:hover {
border-color: var(--primary);
background: rgba(26, 115, 232, 0.06);
}
.header-icon-btn__glyph { font-size: 18px; line-height: 1; }
.header-icon-btn__badge {
position: absolute;
top: 4px;
right: 4px;
min-width: 18px;
height: 18px;
padding: 0 5px;
border-radius: 999px;
background: var(--accent2);
color: #fff;
font-size: 10px;
font-weight: 800;
display: inline-flex;
align-items: center;
justify-content: center;
line-height: 1;
transition: opacity 0.2s, transform 0.2s;
}
.header-icon-btn__badge.is-empty {
opacity: 0;
transform: scale(0.5);
pointer-events: none;
}
.header-menu-toggle {
display: none;
flex-direction: column;
justify-content: center;
gap: 5px;
width: 44px;
height: 44px;
padding: 0 10px;
border: none;
border-radius: 12px;
background: var(--primary);
cursor: pointer;
flex-shrink: 0;
}
.header-menu-toggle__bar {
display: block;
height: 2px;
background: #fff;
border-radius: 2px;
transition: transform 0.2s, opacity 0.2s;
}
.header-menu-toggle.is-active .header-menu-toggle__bar:nth-child(1) {
transform: translateY(7px) rotate(45deg);
}
.header-menu-toggle.is-active .header-menu-toggle__bar:nth-child(2) { opacity: 0; }
.header-menu-toggle.is-active .header-menu-toggle__bar:nth-child(3) {
transform: translateY(-7px) rotate(-45deg);
}
.hide-below-sm { display: flex; }
.hide-below-md { display: flex; }
@media (max-width: 640px) {
.hide-below-sm { display: none !important; }
}
@media (max-width: 900px) {
.hide-below-md { display: none !important; }
}
nav.site-nav,
.site-nav {
background: var(--primary-dark);
position: relative;
box-shadow: 0 4px 20px rgba(15, 79, 163, 0.28);
}
.nav-inner {
max-width: 1280px; margin: 0 auto; padding: 0 24px;
display: flex; gap: 0; align-items: stretch;
}
.nav-catalog-btn {
display: flex; align-items: center; gap: 8px;
background: var(--primary); color: white; border: none;
padding: 0 22px; font-size: 14px; font-weight: 700;
cursor: pointer; transition: background 0.2s;
font-family: inherit; white-space: nowrap;
}
.nav-catalog-btn:hover { background: #082C66; }
.nav-catalog-btn span { font-size: 18px; }
.nav-links { display: flex; gap: 0; }
.nav-item { position: relative; }
.nav-link {
display: flex; align-items: center; gap: 5px;
color: rgba(255,255,255,0.85); text-decoration: none;
padding: 14px 18px; font-size: 14px; font-weight: 600;
transition: all 0.2s; cursor: pointer; white-space: nowrap;
}
.nav-link:hover { color: white; background: rgba(255,255,255,0.07); }
.nav-link.active-nav { color: white; background: rgba(255,255,255,0.1); }
.nav-link .arrow { font-size: 10px; opacity: 0.6; }
.dropdown {
display: none; position: absolute; top: 100%; left: 0;
background: white; border-radius: 0 0 var(--radius-sm) var(--radius-sm);
box-shadow: 0 12px 40px rgba(0,0,0,0.13);
min-width: 220px; padding: 8px 0; z-index: 200;
}
.nav-item:hover .dropdown { display: block; }
.dropdown a {
display: block; padding: 10px 20px; color: var(--text);
text-decoration: none; font-size: 13.5px; transition: background 0.15s;
}
.dropdown a:hover { background: var(--bg); color: var(--primary); }
.nav-links--desktop {
display: flex;
gap: 0;
}
.nav-item--mega {
position: static;
}
.mega-menu {
position: absolute;
left: 0;
right: 0;
top: 100%;
background: var(--white);
border-top: 1px solid var(--gray-light);
box-shadow: 0 24px 48px rgba(13, 27, 42, 0.12);
z-index: 150;
display: none !important;
pointer-events: none;
}
@media (min-width: 1025px) {
.nav-item--mega:hover .mega-menu,
.nav-item--mega:focus-within .mega-menu {
display: block !important;
pointer-events: auto;
}
}
.mega-menu-inner {
max-width: 1120px;
margin: 0 auto;
padding: 32px 24px 24px;
}
.mega-menu-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 24px 40px;
}
.mega-col {
padding: 0;
}
.mega-col__head {
display: flex;
align-items: center;
gap: 10px;
font-weight: 700;
font-size: 14.5px;
color: var(--dark);
text-decoration: none;
margin-bottom: 10px;
padding-bottom: 8px;
border-bottom: 1px solid #eef2f7;
transition: color .15s, border-color .15s;
}
.mega-col__head-text {
line-height: 1.3;
}
.mega-col__head:hover {
color: var(--primary);
border-bottom-color: var(--primary);
}
.mega-col__list {
list-style: none;
margin: 0;
padding: 0;
}
.mega-col__list a {
display: block;
padding: 6px 0;
font-size: 13.5px;
color: var(--gray);
text-decoration: none;
transition: color .12s;
}
.mega-col__list a:hover {
color: var(--primary);
}
.mega-col__all {
font-weight: 600;
color: var(--primary) !important;
}
.mega-menu-foot {
margin-top: 20px;
padding-top: 16px;
border-top: 1px solid var(--gray-light);
text-align: center;
}
.mega-menu-all {
font-weight: 700;
font-size: 14px;
color: var(--primary);
text-decoration: none;
}
.mega-menu-all:hover {
text-decoration: underline;
}
.mega-empty {
grid-column: 1 / -1;
color: var(--gray);
font-size: 14px;
margin: 0;
}
.nav-mobile-backdrop {
display: none;
position: fixed;
inset: 0;
background: rgba(13, 27, 42, 0.45);
z-index: 1100;
}
.nav-mobile-backdrop.is-open {
display: block;
}
.nav-mobile-drawer {
position: fixed;
top: 0;
right: 0;
width: min(100%, 400px);
max-width: 100vw;
height: 100%;
height: 100dvh;
background: #fff;
z-index: 1110;
transform: translate3d(100%, 0, 0);
transition: transform 0.3s ease, visibility 0.3s ease, clip-path 0.3s ease;
display: flex;
flex-direction: column;
box-shadow: -8px 0 40px rgba(0, 0, 0, 0.15);
visibility: hidden;
pointer-events: none;
overflow: hidden;
clip-path: inset(0 0 0 100%);
}
.nav-mobile-drawer.is-open {
transform: translate3d(0, 0, 0);
visibility: visible;
pointer-events: auto;
clip-path: inset(0 0 0 0);
}
.nav-mobile-drawer__head {
display: flex;
align-items: center;
justify-content: space-between;
padding: 18px 20px;
border-bottom: 1px solid var(--gray-light);
flex-shrink: 0;
}
.nav-mobile-drawer__title {
font-weight: 800;
font-size: 16px;
color: var(--dark);
}
.nav-mobile-drawer__close {
border: none;
background: var(--bg);
width: 40px;
height: 40px;
border-radius: 10px;
font-size: 18px;
cursor: pointer;
line-height: 1;
}
.nav-mobile-drawer__body {
flex: 1;
overflow-y: auto;
padding: 16px 20px 32px;
-webkit-overflow-scrolling: touch;
}
.nav-mobile-auth {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-bottom: 16px;
}
.nav-mobile-auth__link {
padding: 10px 14px;
border-radius: 10px;
font-size: 14px;
font-weight: 700;
text-decoration: none;
border: 1px solid var(--gray-light);
color: var(--dark);
}
.nav-mobile-auth__link--primary {
background: var(--primary);
color: #fff;
border-color: var(--primary);
}
.nav-mobile-cat-btn {
width: 100%;
padding: 12px;
margin-bottom: 12px;
border-radius: 10px;
border: none;
background: var(--primary);
color: #fff;
font-weight: 700;
font-size: 14px;
cursor: pointer;
font-family: inherit;
}
.nav-mobile-link {
display: block;
padding: 12px 0;
font-size: 15px;
font-weight: 600;
color: var(--dark);
text-decoration: none;
border-bottom: 1px solid var(--gray-light);
}
.nav-mobile-link--bold {
font-weight: 800;
color: var(--primary);
border-bottom: none;
padding-bottom: 8px;
}
.nav-mobile-sep {
border: none;
border-top: 1px solid var(--gray-light);
margin: 16px 0;
}
.nav-mobile-acc {
border-bottom: 1px solid var(--gray-light);
}
.nav-mobile-acc summary {
padding: 14px 0;
font-weight: 700;
cursor: pointer;
list-style: none;
}
.nav-mobile-acc summary::-webkit-details-marker {
display: none;
}
.nav-mobile-acc__body {
padding-bottom: 12px;
display: flex;
flex-direction: column;
gap: 8px;
}
.nav-mobile-acc__body a {
font-size: 14px;
color: var(--gray);
text-decoration: none;
padding-left: 8px;
}
.nav-mobile-acc__body a:hover {
color: var(--primary);
}
@media (max-width: 1024px) {
.nav-links--desktop {
display: none;
}
.header-menu-toggle {
display: flex;
}
.nav-item--mega .mega-menu {
display: none !important;
}
}
.hero {
background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 50%, #2563EB 100%);
color: white; padding: 60px 24px;
position: relative; overflow: hidden;
}
.hero::before {
content: ''; position: absolute; top: -80px; right: -80px;
width: 400px; height: 400px;
background: rgba(0,201,167,0.12); border-radius: 50%;
}
.hero::after {
content: ''; position: absolute; bottom: -120px; left: 30%;
width: 300px; height: 300px;
background: rgba(255,255,255,0.05); border-radius: 50%;
}
.hero-inner {
max-width: 1280px; margin: 0 auto;
display: grid; grid-template-columns: 1fr 1fr;
gap: 60px; align-items: center; position: relative; z-index: 1;
}
.hero-badge {
display: inline-flex; align-items: center; gap: 8px;
background: rgba(0,201,167,0.2); border: 1px solid rgba(0,201,167,0.4);
border-radius: 50px; padding: 6px 16px;
font-size: 12px; font-weight: 600; color: #6EECD9; margin-bottom: 20px;
}
.hero h1 {
font-size: 48px; font-weight: 800;
line-height: 1.1; margin-bottom: 20px; letter-spacing: -1px;
}
.hero h1 span { color: #6EECD9; }
.hero-desc {
font-size: 17px; color: rgba(255,255,255,0.8);
line-height: 1.6; margin-bottom: 32px; max-width: 480px;
}
.hero-btns { display: flex; gap: 12px; flex-wrap: wrap; }
.hero-btn-primary {
background: var(--accent); color: white; border: none;
border-radius: 12px; padding: 14px 28px;
font-size: 15px; font-weight: 700; cursor: pointer;
transition: all 0.2s; font-family: inherit;
}
.hero-btn-primary:hover { background: #00a88d; transform: translateY(-2px); }
.hero-btn-secondary {
background: rgba(255,255,255,0.15); color: white;
border: 2px solid rgba(255,255,255,0.4); border-radius: 12px;
padding: 12px 24px; font-size: 15px; font-weight: 700;
text-decoration: none; transition: all 0.2s;
}
.hero-btn-secondary:hover { background: rgba(255,255,255,0.25); }
.hero-stats { display: flex; gap: 28px; margin-top: 36px; }
.hero-stat strong { font-size: 28px; font-weight: 800; color: white; display: block; }
.hero-stat span { font-size: 12px; color: rgba(255,255,255,0.65); }
.hero-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.hero-card {
background: rgba(255,255,255,0.1); backdrop-filter: blur(8px);
border: 1px solid rgba(255,255,255,0.15); border-radius: var(--radius);
padding: 20px; transition: transform 0.2s; cursor: pointer;
text-decoration: none; color: white;
}
.hero-card:hover { transform: translateY(-4px); background: rgba(255,255,255,0.15); }
.hero-card-icon { font-size: 32px; margin-bottom: 10px; }
.hero-card h3 { font-size: 15px; font-weight: 700; margin-bottom: 6px; }
.hero-card p { font-size: 12px; color: rgba(255,255,255,0.7); line-height: 1.4; }
.partners-band {
background: var(--white); padding: 28px 0;
border-bottom: 1px solid var(--gray-light);
overflow: hidden; position: relative;
}
.partners-band::before, .partners-band::after {
content: ''; position: absolute; top: 0; bottom: 0;
width: 140px; z-index: 2; pointer-events: none;
}
.partners-band::before { left: 0; background: linear-gradient(to right, var(--white), transparent); }
.partners-band::after  { right: 0; background: linear-gradient(to left, var(--white), transparent); }
.partners-label {
text-align: center; font-size: 11px; font-weight: 700;
letter-spacing: 0.15em; text-transform: uppercase;
color: var(--gray); margin-bottom: 18px;
}
.partners-track-wrap { overflow: hidden; }
.partners-track {
display: flex; align-items: center; width: max-content;
animation: scroll-partners 36s linear infinite;
}
.partners-track:hover { animation-play-state: paused; }
@keyframes scroll-partners {
0%   { transform: translateX(0); }
100% { transform: translateX(-50%); }
}
.partner-item {
display: flex; align-items: center; justify-content: center;
padding: 0 40px; flex-shrink: 0; opacity: 0.45; transition: opacity 0.25s;
}
.partner-item:hover { opacity: 1; }
.p-logo {
font-family: 'Manrope', sans-serif;
font-weight: 800;
color: var(--dark);
letter-spacing: -0.5px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
gap: 2px;
line-height: 1.15;
max-width: min(100%, 240px);
}
.p-logo__line { display: block; max-width: 100%; }
.p-logo__line--main { font-weight: 800; color: var(--dark); }
.p-logo__line--accent {
font-weight: 700;
color: var(--primary);
font-size: 0.88em;
}
.p-logo > span:not(.p-logo__line) {
display: block;
color: var(--primary);
font-weight: 700;
font-size: 0.88em;
}
[data-size="xl"] .p-logo { font-size: 26px; }
[data-size="lg"] .p-logo { font-size: 20px; }
[data-size="md"] .p-logo { font-size: 15px; }
[data-size="sm"] .p-logo {
font-size: 11px;
letter-spacing: 0.12em;
text-transform: uppercase;
font-weight: 700;
}
[data-size="sm"] .p-logo__line--accent,
[data-size="sm"] .p-logo > span:not(.p-logo__line) {
text-transform: none;
letter-spacing: -0.02em;
}
.partner-text {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
gap: 2px;
font-family: 'Manrope', sans-serif;
font-weight: 800;
color: var(--dark);
line-height: 1.15;
max-width: min(100%, 240px);
}
.partner-highlight {
display: block;
color: var(--primary);
font-weight: 700;
font-size: 0.88em;
}
.partner-divider { width: 1px; height: 24px; background: var(--gray-light); flex-shrink: 0; }
.partner-item img { height: 36px; width: auto; object-fit: contain; }
section { padding: 60px var(--side-padding); }
.section-inner { max-width: min(var(--max-width), 100%); margin: 0 auto; }
.section-header {
display: flex; justify-content: space-between; align-items: flex-end;
margin-bottom: 32px;
}
.section-label {
font-size: 12px; font-weight: 700; text-transform: uppercase;
letter-spacing: 2px; color: var(--primary); margin-bottom: 6px;
}
.section-title {
font-size: 32px; font-weight: 800; color: var(--dark);
letter-spacing: -0.5px; line-height: 1.15;
}
.view-all {
display: inline-flex; align-items: center; gap: 6px;
padding: 10px 18px;
color: var(--primary); font-weight: 600; font-size: 14px;
text-decoration: none;
border: 1.5px solid rgba(26, 115, 232, 0.22);
border-radius: 999px;
background: rgba(26, 115, 232, 0.04);
transition: background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
white-space: nowrap;
}
.view-all:hover {
color: #fff;
background: var(--primary);
border-color: var(--primary);
}
.view-all:focus-visible {
outline: 3px solid rgba(26, 115, 232, 0.35);
outline-offset: 2px;
}
.quick-cats { background: var(--white); }
.cats-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
gap: 14px;
}
.cat-card {
background: var(--bg); border-radius: var(--radius); padding: 22px 16px;
text-align: center; cursor: pointer; text-decoration: none; color: var(--text);
transition: all 0.2s; border: 2px solid transparent;
}
.cat-card:hover {
background: white; border-color: var(--primary);
transform: translateY(-3px); box-shadow: var(--card-shadow);
}
.cat-card-icon { font-size: 36px; margin-bottom: 10px; }
.cat-card h4 { font-size: 13px; font-weight: 700; line-height: 1.3; color: var(--dark); }
.services { background: var(--bg); }
.services-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.service-card {
background: var(--white); border-radius: var(--radius); padding: 32px;
box-shadow: var(--card-shadow); transition: transform 0.2s;
position: relative; overflow: hidden;
}
.service-card::before {
content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px;
background: linear-gradient(90deg, var(--primary), var(--accent));
}
.service-card:hover { transform: translateY(-4px); }
.service-icon {
width: 52px; height: 52px;
background: linear-gradient(135deg, var(--primary-light), var(--primary));
border-radius: 14px; display: flex; align-items: center; justify-content: center;
font-size: 24px; margin-bottom: 18px;
}
.service-card h3 { font-size: 19px; font-weight: 800; margin-bottom: 12px; color: var(--dark); }
.service-card ul { list-style: none; }
.service-card ul li {
padding: 6px 0; font-size: 13.5px; color: var(--gray);
border-bottom: 1px solid var(--gray-light);
display: flex; gap: 8px; align-items: flex-start;
}
.service-card ul li:last-child { border: none; }
.service-card ul li::before { content: '✓'; color: var(--accent); font-weight: 700; flex-shrink: 0; }
.service-btn {
display: inline-block; margin-top: 20px; background: var(--primary); color: white;
padding: 10px 20px; border-radius: 10px; font-size: 13px; font-weight: 700;
text-decoration: none; transition: background 0.2s;
}
.service-btn:hover { background: var(--primary-dark); }
.about { background: var(--white); }
.about-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.about-badge {
display: inline-flex; align-items: center; gap: 8px;
background: rgba(13,71,161,0.08); border-radius: 50px;
padding: 6px 16px; font-size: 12px; font-weight: 700; color: var(--primary); margin-bottom: 16px;
}
.about-text h2 { font-size: 36px; font-weight: 800; color: var(--dark); margin-bottom: 18px; line-height: 1.15; }
.about-text p { color: var(--gray); font-size: 15px; line-height: 1.7; margin-bottom: 14px; }
.about-text p strong { color: var(--primary); }
.about-cta {
display: inline-block; background: var(--primary); color: white;
padding: 13px 28px; border-radius: 12px; font-weight: 700; font-size: 14px;
text-decoration: none; margin-top: 10px; transition: background 0.2s;
}
.about-cta:hover { background: var(--primary-dark); }
.about-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.astat {
background: var(--bg); border-radius: var(--radius); padding: 28px 24px;
text-align: center; border-bottom: 3px solid var(--primary);
}
.astat strong { font-size: 38px; font-weight: 800; color: var(--primary); display: block; }
.astat span { font-size: 13px; color: var(--gray); margin-top: 6px; display: block; line-height: 1.3; }
.news { background: var(--bg); }
.news-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.news-card {
background: var(--white); border-radius: var(--radius); overflow: hidden;
box-shadow: var(--card-shadow); transition: transform 0.2s;
text-decoration: none; color: inherit; display: flex; flex-direction: column;
}
.news-card:hover { transform: translateY(-4px); }
.news-card-img {
height: 180px;
background: linear-gradient(135deg, var(--primary-dark), var(--primary-light));
display: flex; align-items: center; justify-content: center;
font-size: 48px; color: rgba(255,255,255,0.4); overflow: hidden;
}
.news-card-img img { width: 100%; height: 100%; object-fit: cover; }
.news-card-body { padding: 22px; flex: 1; display: flex; flex-direction: column; }
.news-date { font-size: 12px; color: var(--gray); margin-bottom: 10px; }
.news-card-body h3 { font-size: 15px; font-weight: 700; line-height: 1.4; flex: 1; margin-bottom: 16px; color: var(--dark); }
.news-arrow { color: var(--primary); font-weight: 700; font-size: 13px; }
.cta-banner {
background: linear-gradient(135deg, var(--primary-dark), var(--primary));
color: white; padding: 60px 24px;
}
.cta-inner {
max-width: 1280px; margin: 0 auto;
display: flex; justify-content: space-between; align-items: center;
gap: 40px; flex-wrap: wrap;
}
.cta-inner h2 { font-size: 34px; font-weight: 800; max-width: 500px; line-height: 1.2; }
.cta-inner p { color: rgba(255,255,255,0.75); margin-top: 10px; font-size: 15px; }
.cta-form { display: flex; gap: 10px; flex-wrap: wrap; }
.cta-input {
padding: 13px 18px; border-radius: 12px; border: none;
font-size: 14px; font-family: inherit; width: 240px;
background: rgba(255,255,255,0.15); color: white; outline: none;
}
.cta-input::placeholder { color: rgba(255,255,255,0.5); }
.cta-input:focus { background: rgba(255,255,255,0.25); }
.cta-submit {
background: var(--accent); color: white; border: none;
border-radius: 12px; padding: 13px 28px;
font-size: 15px; font-weight: 700; cursor: pointer;
transition: all 0.2s; font-family: inherit;
}
.cta-submit:hover { background: #00a88d; transform: translateY(-2px); }
.cta-actions { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.cta-actions .cta-submit {
display: inline-flex; align-items: center; justify-content: center;
background: #fff; color: var(--primary-dark); border: 2px solid #fff;
border-radius: 12px; padding: 12px 26px; min-height: 46px;
font-size: 15px; font-weight: 700; text-decoration: none;
transition: all 0.2s; cursor: pointer;
}
.cta-actions .cta-submit:hover { background: rgba(255,255,255,0.88); border-color: rgba(255,255,255,0.88); transform: translateY(-2px); }
.cta-actions .cta-submit-outline {
background: transparent; color: #fff; border: 2px solid rgba(255,255,255,0.55);
}
.cta-actions .cta-submit-outline:hover { background: rgba(255,255,255,0.12); border-color: #fff; }
footer { background: var(--dark); color: rgba(255,255,255,0.7); padding: 60px 24px 30px; }
.footer-inner {
max-width: 1280px; margin: 0 auto;
display: grid; grid-template-columns: 2fr 1fr 1fr 1fr;
gap: 40px; padding-bottom: 40px;
border-bottom: 1px solid rgba(255,255,255,0.1);
}
.footer-logo { margin-bottom: 18px; }
.footer-logo-icon {
width: 44px; height: 44px;
background: linear-gradient(135deg, var(--primary), var(--accent));
border-radius: 12px; display: flex; align-items: center; justify-content: center;
font-size: 22px; color: white; margin-bottom: 10px;
}
.footer-logo-name { font-weight: 800; font-size: 16px; color: white; }
.footer-logo-sub { font-size: 11px; color: rgba(255,255,255,0.5); }
.footer-desc { font-size: 13px; line-height: 1.6; color: rgba(255,255,255,0.55); margin-bottom: 18px; }
.footer-contacts a {
display: flex; align-items: center; gap: 8px; color: white;
text-decoration: none; font-size: 14px; font-weight: 600; margin-bottom: 8px;
}
.footer-contacts a:hover { color: #FFFFFF; }
.footer-col h4 {
font-size: 13px; font-weight: 800; text-transform: uppercase;
letter-spacing: 1.5px; color: white; margin-bottom: 18px;
}
.footer-col a {
display: block; color: rgba(255,255,255,0.55); text-decoration: none;
font-size: 13px; margin-bottom: 10px; transition: color 0.2s;
}
.footer-col a:hover { color: #FFFFFF; }
.footer-partner {
margin-top: 20px;
display: flex;
justify-content: flex-start;
}
.footer-partner img {
display: block;
max-width: 240px;
width: 100%;
height: auto;
border-radius: 4px;
background: #fff;
padding: 6px 8px;
opacity: 0.95;
transition: opacity 0.2s;
}
.footer-partner img:hover { opacity: 1; }
.footer-bottom {
max-width: 1280px; margin: 24px auto 0;
display: flex; justify-content: space-between;
font-size: 12px; color: rgba(255,255,255,0.35); flex-wrap: wrap; gap: 12px;
}
.footer-bottom a { color: rgba(255,255,255,0.35); text-decoration: none; }
.footer-bottom a:hover { color: rgba(255,255,255,0.7); }
footer.site-footer .site-footer__grid {
grid-template-columns: 1.35fr 1fr 1fr 1fr minmax(200px, 1.05fr);
gap: 32px 28px;
}
.footer-logo-link {
display: flex;
align-items: center;
gap: 14px;
text-decoration: none;
color: inherit;
margin-bottom: 16px;
}
.site-footer__logo-img {
width: 48px;
height: 48px;
object-fit: contain;
border-radius: 12px;
flex-shrink: 0;
}
.footer-logo-text {
display: flex;
flex-direction: column;
gap: 2px;
}
.site-footer__social {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-top: 16px;
}
.site-footer__social-btn {
width: 40px;
height: 40px;
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
font-size: 11px;
font-weight: 800;
letter-spacing: 0.02em;
color: #fff;
text-decoration: none;
background: rgba(255, 255, 255, 0.08);
border: 1px solid rgba(255, 255, 255, 0.15);
transition: background 0.2s, border-color 0.2s;
}
.site-footer__social-btn:hover {
background: var(--primary);
border-color: var(--primary);
color: #fff;
}
.site-footer__social-btn svg {
width: 20px;
height: 20px;
display: block;
}
.site-footer__social-btn--telegram  { background: #229ED9; border-color: #229ED9; }
.site-footer__social-btn--instagram { background: linear-gradient(135deg, #F58529, #DD2A7B 50%, #515BD4); border-color: transparent; }
.site-footer__social-btn--facebook  { background: #1877F2; border-color: #1877F2; }
.site-footer__social-btn--youtube   { background: #FF0000; border-color: #FF0000; }
.site-footer__social-btn--telegram:hover  { background: #1c8ec2; border-color: #1c8ec2; }
.site-footer__social-btn--instagram:hover { filter: brightness(1.08); background: linear-gradient(135deg, #F58529, #DD2A7B 50%, #515BD4); border-color: transparent; }
.site-footer__social-btn--facebook:hover  { background: #146fe0; border-color: #146fe0; }
.site-footer__social-btn--youtube:hover   { background: #e60000; border-color: #e60000; }
.footer-accordion__body a.site-footer__social-btn {
display: flex;
align-items: center;
justify-content: center;
color: #fff;
margin-bottom: 0;
}
.footer-address,
.footer-hours {
font-size: 13px;
line-height: 1.5;
color: rgba(255, 255, 255, 0.55);
margin: 8px 0 0;
}
.footer-muted {
font-size: 13px;
color: rgba(255, 255, 255, 0.35);
}
.site-footer__newsletter .newsletter-lead {
font-size: 13px;
line-height: 1.5;
color: rgba(255, 255, 255, 0.55);
margin-bottom: 12px;
}
.newsletter-form {
display: flex;
flex-direction: column;
gap: 10px;
}
.newsletter-input {
width: 100%;
padding: 12px 14px;
border-radius: 10px;
border: 1px solid rgba(255, 255, 255, 0.2);
background: rgba(255, 255, 255, 0.06);
color: #fff;
font-size: 14px;
font-family: inherit;
outline: none;
}
.newsletter-input::placeholder {
color: rgba(255, 255, 255, 0.35);
}
.newsletter-input:focus {
border-color: var(--primary-light);
}
.newsletter-btn {
padding: 12px 16px;
border: none;
border-radius: 10px;
background: var(--primary);
color: #fff;
font-weight: 700;
font-size: 14px;
cursor: pointer;
font-family: inherit;
transition: background 0.2s;
}
.newsletter-btn:hover {
background: var(--primary-light);
}
.newsletter-note {
font-size: 11px;
color: rgba(255, 255, 255, 0.35);
margin-top: 10px;
line-height: 1.4;
}
.footer-bottom-inner {
max-width: 1280px;
margin: 24px auto 0;
padding: 0 24px;
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 12px;
font-size: 12px;
color: rgba(255, 255, 255, 0.35);
}
.footer-bottom-links a {
color: rgba(255, 255, 255, 0.45);
text-decoration: none;
margin-left: 16px;
}
.footer-bottom-links a:hover {
color: #FFFFFF;
}
@media (max-width: 1100px) {
footer.site-footer .site-footer__grid {
grid-template-columns: 1fr 1fr;
}
.site-footer__newsletter {
grid-column: 1 / -1;
max-width: 420px;
}
}
@media (max-width: 600px) {
footer.site-footer .site-footer__grid {
grid-template-columns: 1fr;
}
}
.modal-overlay {
display: none; position: fixed; inset: 0;
background: rgba(13,27,42,0.65); backdrop-filter: blur(4px);
z-index: 1200; align-items: center; justify-content: center;
padding: 20px;
}
.modal-overlay.open { display: flex; }
.modal {
background: white; border-radius: 24px; padding: 40px;
max-width: 460px; width: 100%; margin: 20px; position: relative;
animation: modalIn 0.3s cubic-bezier(.34,1.56,.64,1);
}
.modal-box {
background: white;
border-radius: 20px;
padding: 32px 28px;
max-width: 460px;
width: 100%;
position: relative;
text-align: center;
box-shadow: 0 24px 64px rgba(0, 0, 0, 0.18);
animation: modalIn 0.3s cubic-bezier(.34,1.56,.64,1);
}
.modal-box .modal-icon {
font-size: 40px;
margin-bottom: 8px;
line-height: 1;
}
.modal-box h3 {
font-size: 22px;
font-weight: 800;
color: var(--dark, #1F2937);
margin: 0 0 6px;
}
.modal-box > p {
color: var(--gray, #6B7280);
font-size: 14px;
margin: 0 0 20px;
}
.modal-form {
display: flex;
flex-direction: column;
gap: 12px;
text-align: left;
}
.modal-form .form-input {
width: 100%;
border: 1.5px solid var(--gray-light, #E5E7EB);
border-radius: 12px;
padding: 12px 14px;
font-size: 14px;
font-family: inherit;
outline: none;
background: #FFFFFF;
color: var(--dark, #1F2937);
transition: border-color 0.15s, box-shadow 0.15s;
resize: vertical;
}
.modal-form .form-input:focus {
border-color: #023E8A;
box-shadow: 0 0 0 3px rgba(2, 62, 138, 0.12);
}
.modal-form .btn-submit {
width: 100%;
background: #1F2937;
color: #FFFFFF;
border: none;
border-radius: 12px;
padding: 14px 18px;
font-size: 15px;
font-weight: 700;
cursor: pointer;
transition: background 0.15s;
font-family: inherit;
margin-top: 4px;
}
.modal-form .btn-submit:hover { background: #111827; }
.modal-note {
margin: 14px 0 0;
font-size: 12px;
color: var(--gray, #9CA3AF);
}
@keyframes modalIn { from { opacity:0; transform:scale(0.85); } to { opacity:1; transform:scale(1); } }
.modal-close {
position: absolute; top: 16px; right: 16px;
background: var(--bg); border: none; border-radius: 50%;
width: 32px; height: 32px; font-size: 18px; cursor: pointer; color: var(--gray);
display: flex; align-items: center; justify-content: center;
}
.modal h2 { font-size: 24px; font-weight: 800; color: var(--dark); margin-bottom: 6px; }
.modal p { color: var(--gray); font-size: 14px; margin-bottom: 24px; }
.form-group { margin-bottom: 14px; }
.form-group label {
font-size: 12px; font-weight: 700; color: var(--gray);
margin-bottom: 5px; display: block; text-transform: uppercase; letter-spacing: 1px;
}
.form-group input, .form-group textarea {
width: 100%; border: 2px solid var(--gray-light); border-radius: 10px;
padding: 11px 14px; font-size: 14px; font-family: inherit;
outline: none; transition: border 0.2s; resize: none;
}
.form-group input:focus, .form-group textarea:focus { border-color: var(--primary); }
.form-submit {
width: 100%; background: var(--primary); color: white; border: none;
border-radius: 12px; padding: 14px; font-size: 15px; font-weight: 700;
cursor: pointer; font-family: inherit; transition: background 0.2s; margin-top: 4px;
}
.form-submit:hover { background: var(--primary-dark); }
.form-note { text-align: center; font-size: 11px; color: var(--gray); margin-top: 10px; }
.catalog-panel { display: none; position: fixed; inset: 0; z-index: 900; }
.catalog-panel.open { display: flex; }
.catalog-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.4); }
.catalog-drawer {
position: relative; background: white;
width: 860px; max-width: 95vw; height: 100vh;
display: flex; overflow: hidden; animation: slideIn 0.3s ease;
}
@keyframes slideIn { from { transform: translateX(-100%); } to { transform: translateX(0); } }
.catalog-sidebar-panel {
width: 260px; flex-shrink: 0; background: var(--dark);
padding: 20px 0; overflow-y: auto;
}
.catalog-sidebar-title {
padding: 10px 20px 16px; color: white; font-weight: 800; font-size: 16px;
border-bottom: 1px solid rgba(255,255,255,0.1); margin-bottom: 8px;
}
.cat-side-item {
padding: 11px 20px; color: rgba(255,255,255,0.7); font-size: 13px; cursor: pointer;
display: flex; align-items: center; gap: 10px; transition: all 0.15s;
}
.cat-side-item__text { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cat-side-item:hover, .cat-side-item.active { background: var(--primary); color: white; }
.catalog-panel-content { flex: 1; padding: 24px; overflow-y: auto; }
.catalog-close {
position: absolute; top: 16px; right: 16px;
background: var(--bg); border: none; border-radius: 50%;
width: 36px; height: 36px; font-size: 20px; cursor: pointer; color: var(--gray);
display: flex; align-items: center; justify-content: center; z-index: 1;
}
.catalog-section { display: none; }
.catalog-section.active { display: block; }
.catalog-section h3 { font-size: 20px; font-weight: 800; color: var(--dark); margin-bottom: 18px; }
.catalog-links { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.catalog-link {
background: var(--bg); border-radius: 10px; padding: 13px 15px;
text-decoration: none; color: var(--text); font-size: 13px; font-weight: 600;
transition: all 0.15s; display: flex; align-items: center; gap: 8px;
}
.catalog-link:hover { background: var(--primary); color: white; }
.catalog-link-icon { font-size: 18px; }
.scroll-top {
position: fixed; bottom: 28px; right: 28px;
background: var(--primary); color: white;
width: 44px; height: 44px; border-radius: 12px; border: none;
cursor: pointer; font-size: 20px;
display: flex; align-items: center; justify-content: center;
box-shadow: 0 4px 16px rgba(13,71,161,0.35);
transition: all 0.2s; z-index: 500; opacity: 0; pointer-events: none;
}
.scroll-top.visible { opacity: 1; pointer-events: auto; }
.scroll-top:hover { background: var(--primary-dark); transform: translateY(-2px); }
.toast {
position: fixed; bottom: 28px; left: 50%;
transform: translateX(-50%) translateY(120px);
display: inline-flex; align-items: center; gap: 10px;
background: #1A2332; color: #fff;
padding: 14px 18px;
border-radius: 14px;
border: 1px solid rgba(255,255,255,0.08);
font-size: 14px; font-weight: 600; line-height: 1.4;
box-shadow: 0 12px 40px rgba(2, 62, 138, 0.28),
0 4px 12px rgba(0,0,0,0.12);
z-index: 2000;
transition: transform 0.4s cubic-bezier(.34,1.56,.64,1),
opacity 0.25s ease;
pointer-events: none;
max-width: calc(100vw - 32px);
opacity: 0;
}
.toast.show {
transform: translateX(-50%) translateY(0);
opacity: 1;
pointer-events: auto;
}
.toast::before {
content: '';
flex: 0 0 22px; width: 22px; height: 22px;
border-radius: 50%;
background: rgba(255,255,255,0.18) center/14px no-repeat;
}
.toast.toast-success {
background: var(--color-success, #16A34A);
border-color: rgba(255,255,255,0.18);
}
.toast.toast-success::before {
background-color: rgba(255,255,255,0.22);
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
}
.toast.toast-error {
background: var(--color-danger, #DC2626);
}
.toast.toast-error::before {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");
}
.toast.toast-info {
background: var(--color-primary, #023E8A);
}
.toast.toast-info::before {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='16' x2='12' y2='12'/%3E%3Cline x1='12' y1='8' x2='12.01' y2='8'/%3E%3C/svg%3E");
}
.toast__close {
margin-left: 8px;
background: transparent; border: none; cursor: pointer;
color: inherit; opacity: 0.7; padding: 4px;
font-size: 16px; line-height: 1;
border-radius: 6px;
}
.toast__close:hover { opacity: 1; background: rgba(255,255,255,0.12); }
.toast__close:focus-visible { outline: 2px solid #fff; outline-offset: 1px; }
@media (max-width: 480px) {
.toast { font-size: 13px; padding: 12px 14px; border-radius: 12px; bottom: 16px; }
.toast::before { width: 20px; height: 20px; flex-basis: 20px; }
}
@media (prefers-reduced-motion: reduce) {
.toast { transition: opacity 0.2s; transform: translateX(-50%) translateY(0); }
}
.page-hero {
background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 60%, #2563EB 100%);
padding: 40px 0; position: relative; overflow: hidden;
}
.page-hero::before {
content: ''; position: absolute; top: -60px; right: -60px;
width: 280px; height: 280px;
background: rgba(0,201,167,0.12); border-radius: 50%;
}
.page-hero-inner { max-width: var(--max-width); margin: 0 auto; padding: 0 var(--side-padding); position: relative; z-index: 1; }
.breadcrumb {
display: flex; align-items: center; gap: 8px;
font-size: 13px; color: rgba(255,255,255,0.6); margin-bottom: 14px;
}
.breadcrumb a { color: rgba(255,255,255,0.6); text-decoration: none; }
.breadcrumb a:hover { color: white; }
.breadcrumb span { color: rgba(255,255,255,0.35); }
.page-hero h1 {
font-size: 36px; font-weight: 800; color: white;
letter-spacing: -0.5px; line-height: 1.15;
}
.page-hero p { font-size: 15px; color: rgba(255,255,255,0.75); margin-top: 8px; }
.categories-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
gap: 20px;
}
.cat-big-card {
background: var(--white); border-radius: var(--radius); padding: 32px 28px;
text-decoration: none; color: var(--text); box-shadow: var(--card-shadow);
transition: all 0.25s; border: 2px solid transparent;
position: relative; overflow: hidden;
}
.cat-big-card::after {
content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 3px;
background: linear-gradient(90deg, var(--primary), var(--accent));
transform: scaleX(0); transition: transform 0.25s;
}
.cat-big-card:hover { border-color: var(--primary); transform: translateY(-4px); box-shadow: 0 12px 40px rgba(13,71,161,0.15); }
.cat-big-card:hover::after { transform: scaleX(1); }
.cat-big-icon { font-size: 44px; margin-bottom: 16px; display: block; }
.cat-big-name { font-size: 18px; font-weight: 800; color: var(--dark); margin-bottom: 6px; line-height: 1.3; }
.cat-big-count {
display: inline-block; font-size: 12px; font-weight: 700;
background: rgba(13,71,161,0.08); color: var(--primary);
padding: 3px 10px; border-radius: 20px; margin-bottom: 12px;
}
.cat-big-desc { font-size: 13px; color: var(--gray); line-height: 1.5; }
.cat-big-arrow {
display: flex; align-items: center; gap: 6px;
font-size: 13px; font-weight: 700; color: var(--primary);
margin-top: 16px; opacity: 0; transition: opacity 0.2s;
}
.cat-big-card:hover .cat-big-arrow { opacity: 1; }
.catalog-layout {
display: grid; grid-template-columns: 260px 1fr;
gap: 28px; max-width: 1280px; margin: 0 auto; padding: 0 24px;
}
.catalog-sidebar-box { flex-shrink: 0; }
.sidebar-card {
background: var(--white); border-radius: var(--radius);
box-shadow: var(--card-shadow); overflow: hidden; margin-bottom: 20px;
}
.sidebar-card-head {
padding: 16px 20px; font-size: 13px; font-weight: 800; text-transform: uppercase;
letter-spacing: 1px; color: var(--dark);
border-bottom: 1px solid var(--gray-light);
display: flex; align-items: center; gap: 8px;
}
.sidebar-cat-list { padding: 8px 0; }
.sidebar-cat-item {
display: flex; align-items: center; justify-content: space-between;
padding: 10px 20px; text-decoration: none;
font-size: 14px; color: var(--text); font-weight: 500;
transition: all 0.15s; gap: 8px;
}
.sidebar-cat-item:hover { background: var(--bg); color: var(--primary); }
.sidebar-cat-item.active {
background: rgba(13,71,161,0.08); color: var(--primary); font-weight: 700;
border-left: 3px solid var(--primary);
}
.sidebar-cat-item .cat-icon { font-size: 18px; flex-shrink: 0; }
.sidebar-cat-item .cat-name { flex: 1; }
.sidebar-cat-item .cat-cnt {
font-size: 11px; background: var(--gray-light);
color: var(--gray); padding: 2px 7px; border-radius: 10px; font-weight: 700;
}
.sidebar-cat-item.active .cat-cnt { background: rgba(13,71,161,0.15); color: var(--primary); }
.sidebar-filter-list { padding: 12px 20px; }
.filter-check {
display: flex; align-items: center; gap: 10px; padding: 7px 0;
cursor: pointer; font-size: 14px; color: var(--text);
}
.filter-check input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--primary); cursor: pointer; }
.sidebar-cta {
background: linear-gradient(135deg, var(--primary-dark), var(--primary));
border-radius: var(--radius); padding: 24px 20px; color: white;
}
.sidebar-cta h4 { font-size: 16px; font-weight: 800; margin-bottom: 8px; }
.sidebar-cta p { font-size: 13px; color: rgba(255,255,255,0.75); margin-bottom: 16px; line-height: 1.5; }
.sidebar-cta-btn {
display: block; background: var(--accent); color: white; border: none;
border-radius: 10px; padding: 10px 16px; font-family: inherit;
font-size: 13px; font-weight: 700; cursor: pointer; text-align: center;
text-decoration: none; transition: background 0.2s;
}
.sidebar-cta-btn:hover { background: #00a88d; }
.catalog-toolbar {
display: flex; align-items: center; justify-content: space-between;
margin-bottom: 20px; gap: 12px; flex-wrap: wrap;
}
.catalog-toolbar-left { display: flex; align-items: center; gap: 10px; }
.results-count { font-size: 14px; color: var(--gray); }
.results-count strong { color: var(--dark); font-weight: 800; }
.sort-select {
border: 2px solid var(--gray-light); border-radius: 10px;
padding: 8px 14px; font-family: inherit; font-size: 13px;
background: var(--white); color: var(--text); cursor: pointer; outline: none;
}
.sort-select:focus { border-color: var(--primary); }
.view-toggle { display: flex; gap: 4px; }
.view-btn {
width: 36px; height: 36px; border-radius: 8px; border: 2px solid var(--gray-light);
background: var(--white); cursor: pointer; font-size: 16px;
display: flex; align-items: center; justify-content: center;
transition: all 0.2s; color: var(--gray);
}
.view-btn.active { border-color: var(--primary); background: rgba(13,71,161,0.08); color: var(--primary); }
.view-btn:hover { border-color: var(--primary); color: var(--primary); }
.products-grid {
display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px;
}
.products-grid.cols-2 { grid-template-columns: repeat(2, 1fr); }
.product-card {
background: var(--white); border-radius: var(--radius); overflow: hidden;
box-shadow: var(--card-shadow); transition: transform 0.2s, box-shadow 0.2s;
display: flex; flex-direction: column; text-decoration: none; color: inherit;
border: 2px solid transparent;
}
.product-card:hover {
transform: translateY(-5px); box-shadow: 0 16px 48px rgba(13,71,161,0.15);
border-color: rgba(13,71,161,0.15);
}
.product-card-img {
height: 260px; background: white;
display: flex; align-items: center; justify-content: center;
font-size: 64px; overflow: hidden; position: relative;
padding: 8px;
}
.product-card-img img { width: 100%; height: 100%; object-fit: contain; object-position: center; transition: transform 0.3s; }
.product-card:hover .product-card-img img { transform: scale(1.04); }
.product-card-badge {
position: absolute; top: 12px; left: 12px; font-size: 11px; font-weight: 700;
letter-spacing: 0.05em; text-transform: uppercase; padding: 4px 10px; border-radius: 6px;
}
.badge-new { background: var(--primary); color: white; }
.badge-hit { background: var(--accent2); color: white; }
.badge-sale { background: #16a34a; color: white; }
.product-card-body { padding: 18px; flex: 1; display: flex; flex-direction: column; }
.product-card-sku { font-size: 11px; color: var(--gray); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 6px; }
.product-card-name { font-size: 15px; font-weight: 700; color: var(--dark); line-height: 1.4; margin-bottom: 10px; flex: 1; }
.product-card-tags { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 14px; }
.product-tag {
font-size: 11px; background: var(--bg); color: var(--primary);
border: 1px solid rgba(13,71,161,0.2); padding: 3px 8px; border-radius: 6px; font-weight: 600;
}
.product-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.product-price { font-size: 20px; font-weight: 800; color: var(--dark); }
.product-price-unit { font-size: 11px; color: var(--gray); margin-top: 1px; }
.product-price-request { font-size: 13px; font-weight: 700; color: var(--primary); }
.btn-add {
background: var(--primary); color: white; border: none; border-radius: 10px;
padding: 9px 16px; font-family: inherit; font-size: 13px; font-weight: 700;
cursor: pointer; transition: background 0.2s; white-space: nowrap;
}
.btn-add:hover { background: var(--primary-dark); }
.products-list { display: flex; flex-direction: column; gap: 14px; }
.product-row {
background: var(--white); border-radius: var(--radius); box-shadow: var(--card-shadow);
display: flex; gap: 0; overflow: hidden; text-decoration: none; color: inherit;
border: 2px solid transparent; transition: all 0.2s;
}
.product-row:hover { border-color: rgba(13,71,161,0.2); transform: translateX(4px); }
.product-row-img {
width: 180px; flex-shrink: 0; background: var(--bg);
display: flex; align-items: center; justify-content: center; font-size: 52px; overflow: hidden;
}
.product-row-img img { width: 100%; height: 100%; object-fit: cover; }
.product-row-body { padding: 20px 24px; flex: 1; display: flex; align-items: center; gap: 24px; }
.product-row-info { flex: 1; }
.product-row-sku { font-size: 11px; color: var(--gray); text-transform: uppercase; margin-bottom: 4px; }
.product-row-name { font-size: 16px; font-weight: 700; color: var(--dark); margin-bottom: 8px; line-height: 1.3; }
.product-row-tags { display: flex; gap: 6px; flex-wrap: wrap; }
.product-row-price { text-align: right; flex-shrink: 0; }
.pagination {
display: flex; justify-content: center; align-items: center; gap: 6px; margin-top: 36px;
}
.page-btn {
width: 40px; height: 40px; border-radius: 10px;
border: 2px solid var(--gray-light); background: var(--white);
font-family: inherit; font-size: 14px; font-weight: 600;
cursor: pointer; color: var(--text); transition: all 0.2s;
display: flex; align-items: center; justify-content: center; text-decoration: none;
}
.page-btn:hover { border-color: var(--primary); color: var(--primary); }
.page-btn.active { background: var(--primary); border-color: var(--primary); color: white; }
.page-btn.disabled { opacity: 0.35; cursor: not-allowed; pointer-events: none; }
.product-detail-layout {
display: grid; grid-template-columns: 1fr 1fr; gap: 48px;
max-width: 1280px; margin: 0 auto; padding: 40px 24px; align-items: start;
}
.gallery-main {
background: var(--white); border-radius: var(--radius); box-shadow: var(--card-shadow);
height: 420px; display: flex; align-items: center; justify-content: center;
font-size: 100px; overflow: hidden; margin-bottom: 12px; position: relative;
}
.gallery-main img { width: 100%; height: 100%; object-fit: contain; padding: 20px; }
.gallery-main-badge { position: absolute; top: 16px; left: 16px; }
.gallery-thumbs { display: flex; gap: 10px; flex-wrap: wrap; }
.gallery-thumb {
width: 80px; height: 80px; border-radius: 10px; border: 2px solid var(--gray-light);
overflow: hidden; cursor: pointer; display: flex; align-items: center; justify-content: center;
font-size: 28px; background: var(--white); transition: border-color 0.15s;
}
.gallery-thumb:hover, .gallery-thumb.active { border-color: var(--primary); }
.gallery-thumb img { width: 100%; height: 100%; object-fit: cover; }
.product-info-sku { font-size: 12px; color: var(--gray); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 10px; }
.product-info-name { font-size: 28px; font-weight: 800; color: var(--dark); line-height: 1.2; margin-bottom: 14px; }
.product-info-tags { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 20px; }
.product-tag-lg {
font-size: 12px; font-weight: 700; background: rgba(13,71,161,0.08);
color: var(--primary); padding: 5px 12px; border-radius: 20px;
border: 1px solid rgba(13,71,161,0.2);
}
.availability-badge {
display: inline-flex; align-items: center; gap: 6px;
font-size: 13px; font-weight: 700; padding: 6px 14px;
border-radius: 20px; margin-bottom: 20px;
}
.avail-in_stock { background: rgba(0,201,167,0.1); color: #00a88d; }
.avail-on_order { background: rgba(255,107,53,0.1); color: var(--accent2); }
.avail-out_of_stock { background: rgba(107,122,141,0.1); color: var(--gray); }
.product-price-box {
background: var(--bg); border-radius: var(--radius); padding: 24px 28px; margin-bottom: 24px;
}
.product-main-price { font-size: 36px; font-weight: 800; color: var(--dark); }
.product-main-price-unit { font-size: 13px; color: var(--gray); margin-top: 2px; }
.product-main-price-request { font-size: 18px; font-weight: 700; color: var(--primary); }
.product-actions { display: flex; gap: 12px; margin-top: 16px; }
.btn-primary-lg {
flex: 1; background: var(--primary); color: white; border: none;
border-radius: 12px; padding: 14px 24px; font-family: inherit;
font-size: 15px; font-weight: 700; cursor: pointer; transition: all 0.2s;
}
.btn-primary-lg:hover { background: var(--primary-dark); transform: translateY(-1px); }
.btn-outline-lg {
background: transparent; color: var(--primary); border: 2px solid var(--primary);
border-radius: 12px; padding: 14px 20px; font-family: inherit;
font-size: 14px; font-weight: 700; cursor: pointer; transition: all 0.2s; white-space: nowrap;
}
.btn-outline-lg:hover { background: var(--primary); color: white; }
.specs-section { margin-bottom: 28px; }
.specs-title { font-size: 16px; font-weight: 800; color: var(--dark); margin-bottom: 14px; display: flex; align-items: center; gap: 8px; }
.specs-table { width: 100%; border-collapse: collapse; }
.specs-table tr { border-bottom: 1px solid var(--gray-light); }
.specs-table tr:last-child { border: none; }
.specs-table td { padding: 10px 0; font-size: 14px; vertical-align: top; }
.specs-table td:first-child { color: var(--gray); width: 45%; font-weight: 500; }
.specs-table td:last-child { color: var(--dark); font-weight: 600; }
.product-desc { font-size: 15px; color: var(--gray); line-height: 1.7; margin-bottom: 24px; }
.product-tabs { border-bottom: 2px solid var(--gray-light); margin-bottom: 24px; display: flex; gap: 0; }
.product-tab {
padding: 12px 20px; font-size: 14px; font-weight: 700;
color: var(--gray); cursor: pointer; border-bottom: 3px solid transparent;
margin-bottom: -2px; transition: all 0.2s; background: none;
border-top: none; border-left: none; border-right: none; font-family: inherit;
}
.product-tab.active { color: var(--primary); border-bottom-color: var(--primary); }
.product-tab:hover { color: var(--primary); }
.tab-content { display: none; }
.tab-content.active { display: block; }
.related-section {
background: var(--white); padding: 48px 24px;
border-top: 1px solid var(--gray-light);
}
.related-inner { max-width: 1280px; margin: 0 auto; }
.related-grid {
display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 24px;
}
.blog-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.blog-page { padding: 40px 0 80px; }
.blog-page-inner { max-width: var(--max-width); margin: 0 auto; padding-left: var(--side-padding); padding-right: var(--side-padding); }
.blog-cards-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
gap: 18px;
}
.blog-card-article {
margin: 0;
height: 100%;
}
.blog-card {
display: flex;
flex-direction: column;
height: 100%;
background: var(--white);
border-radius: var(--radius);
overflow: hidden;
box-shadow: var(--card-shadow);
text-decoration: none;
color: inherit;
transition: transform 0.2s, box-shadow 0.2s;
border: 1px solid var(--gray-light);
}
.blog-card:hover {
transform: translateY(-4px);
box-shadow: 0 12px 40px rgba(26, 115, 232, 0.12);
}
.blog-card__media {
position: relative;
aspect-ratio: 16 / 9;
background: linear-gradient(135deg, var(--primary-dark), var(--primary));
overflow: hidden;
}
.blog-card__media img {
width: 100%;
height: 100%;
object-fit: cover;
}
.blog-card__placeholder {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
min-height: 140px;
font-size: 48px;
color: rgba(255, 255, 255, 0.35);
}
.blog-card__body {
padding: 14px 16px 16px;
display: flex;
flex-direction: column;
flex: 1;
gap: 7px;
}
.blog-card__meta {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 8px 12px;
font-size: 12px;
}
.blog-card__tag {
display: inline-block;
background: rgba(26, 115, 232, 0.1);
color: var(--primary);
border-radius: 6px;
padding: 4px 10px;
font-weight: 700;
line-height: 1.2;
}
.blog-card__date {
color: var(--gray);
font-weight: 600;
}
.blog-card__title {
font-size: 15px;
font-weight: 800;
line-height: 1.3;
color: var(--dark);
margin: 0;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.blog-card__excerpt {
font-size: 13px;
color: var(--gray);
line-height: 1.5;
margin: 0;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
flex: 1;
}
.blog-card__cta {
font-size: 13px;
font-weight: 700;
color: var(--primary);
margin-top: auto;
padding-top: 4px;
}
.blog-card--compact .blog-card__media--sm {
aspect-ratio: 16 / 9;
max-height: 160px;
}
.blog-card--compact .blog-card__title {
font-size: 15px;
}
.blog-pagination {
margin-top: 40px;
flex-wrap: wrap;
}
.blog-pagination .page-btn {
width: auto;
min-width: 40px;
padding: 0 14px;
white-space: nowrap;
gap: 6px;
}
.post-detail-inner {
padding-left: 24px;
padding-right: 24px;
}
.post-article {
min-width: 0;
}
.post-header__meta {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px 12px;
font-size: 13px;
margin-bottom: 14px;
}
.post-header__date {
color: var(--gray);
font-weight: 600;
}
.post-header__dot {
color: var(--gray-light);
}
.post-header__author {
color: var(--gray);
}
.post-header__title {
font-size: clamp(26px, 4vw, 36px);
font-weight: 800;
line-height: 1.2;
color: var(--dark);
margin: 0 0 12px;
}
.post-featured-figure {
margin: 0 0 32px;
}
.post-featured-img {
border-radius: var(--radius);
overflow: hidden;
border: 1px solid var(--gray-light);
background: var(--bg);
max-width: 720px;
margin: 0 auto;
}
.post-featured-img img {
width: 100%;
height: auto;
max-height: 460px;
object-fit: contain;
display: block;
}
.post-footer-share {
margin-top: 40px;
padding-top: 28px;
border-top: 1px solid var(--gray-light);
}
.post-share-label {
font-size: 13px;
font-weight: 700;
color: var(--gray);
margin: 0 0 12px;
text-transform: uppercase;
letter-spacing: 0.04em;
}
.post-share-row {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.post-share-btn {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 10px 16px;
border-radius: 10px;
font-size: 13px;
font-weight: 700;
text-decoration: none;
border: 1px solid var(--gray-light);
background: var(--white);
color: var(--dark);
cursor: pointer;
font-family: inherit;
transition: border-color 0.15s, background 0.15s, color 0.15s;
}
.post-share-btn:hover {
border-color: var(--primary);
color: var(--primary);
background: rgba(26, 115, 232, 0.06);
}
.post-share-btn--tg:hover {
border-color: #0088cc;
color: #0088cc;
background: rgba(0, 136, 204, 0.08);
}
.post-share-btn--fb:hover {
border-color: #1877f2;
color: #1877f2;
background: rgba(24, 119, 242, 0.08);
}
.post-share-btn--tw:hover {
border-color: #000;
color: #000;
}
.blog-related-section {
margin-top: 56px;
padding-top: 48px;
border-top: 1px solid var(--gray-light);
}
.blog-related-section__title {
font-size: 22px;
font-weight: 800;
margin: 0 0 24px;
color: var(--dark);
}
.blog-cards-grid--related {
grid-template-columns: repeat(4, 1fr);
}
.post-related-mini {
list-style: none;
margin: 0;
padding: 0;
}
.post-related-mini li {
margin: 0;
}
.recent-post__title {
display: block;
font-size: 14px;
font-weight: 700;
color: var(--dark);
margin-top: 4px;
line-height: 1.35;
}
.blog-empty .btn-primary {
display: inline-block;
margin-top: 16px;
}
@media (max-width: 1024px) {
.blog-cards-grid {
grid-template-columns: repeat(2, 1fr);
}
.blog-cards-grid--related {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 768px) {
.blog-cards-grid,
.blog-cards-grid--related {
grid-template-columns: 1fr;
}
}
.page-hero-sm { padding: 36px 24px; }
.about-page { padding: 60px 24px; }
.about-mission { display: grid; grid-template-columns: 3fr 2fr; gap: 60px; align-items: center; }
.mission-text h2 { font-size: 32px; font-weight: 800; margin-bottom: 16px; }
.mission-text p { font-size: 15px; color: var(--gray); margin-bottom: 14px; line-height: 1.7; }
.mission-values { display: flex; flex-direction: column; gap: 16px; margin-top: 24px; }
.value-item { display: flex; gap: 14px; align-items: flex-start; }
.value-icon { font-size: 24px; flex-shrink: 0; width: 44px; height: 44px; background: rgba(13,71,161,0.08); border-radius: 10px; display: flex; align-items: center; justify-content: center; }
.value-item strong { display: block; font-size: 15px; margin-bottom: 4px; color: var(--dark); }
.value-item p { font-size: 14px; color: var(--gray); }
.mission-stats { display: flex; flex-direction: column; gap: 16px; }
.big-stat { background: rgba(13,71,161,0.06); border-radius: var(--radius); padding: 24px; text-align: center; border: 2px solid var(--primary); }
.big-stat strong { display: block; font-size: 40px; font-weight: 800; color: var(--primary); }
.big-stat span { font-size: 13px; color: var(--gray); font-weight: 600; }
.team-section { background: var(--bg); padding: 60px 24px; }
.about-team-photo { margin-top: 24px; border-radius: 16px; overflow: hidden; }
.about-team-photo img { display: block; width: 100%; height: auto; max-height: 540px; object-fit: cover; }
.about-team-photo__ph { width: 100%; aspect-ratio: 21 / 8; background: linear-gradient(135deg,#e2e8f0,#cbd5e1); display: grid; place-items: center; color: #64748b; font-weight: 700; font-size: 18px; border-radius: 16px; }
.team-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.team-card { background: var(--white); border-radius: var(--radius); padding: 28px; text-align: center; box-shadow: var(--card-shadow); }
.team-photo { width: 96px; height: 96px; border-radius: 50%; overflow: hidden; margin: 0 auto 16px; background: var(--bg); display: flex; align-items: center; justify-content: center; font-size: 40px; }
.team-photo img { width: 100%; height: 100%; object-fit: cover; }
.team-card h3 { font-size: 16px; font-weight: 800; margin-bottom: 6px; }
.team-card p { font-size: 14px; color: var(--gray); }
.about-page--story {
padding: 48px 24px 32px;
background: var(--white);
}
.about-page--stats {
padding: 32px 24px 48px;
background: var(--bg);
}
.about-page-inner {
max-width: 960px;
margin: 0 auto;
}
.about-team .about-page-inner {
max-width: 1280px;
}
.about-page__intro {
margin-bottom: 20px;
}
.about-page__badge {
display: inline-flex;
align-items: center;
gap: 8px;
font-size: 13px;
font-weight: 700;
color: var(--primary);
margin: 0 0 12px;
}
.about-page__title {
font-size: clamp(26px, 3vw, 34px);
font-weight: 800;
line-height: 1.2;
color: var(--dark);
margin: 0;
}
.about-page__prose {
font-size: 16px;
line-height: 1.75;
color: var(--dark);
}
.about-page__prose > p {
margin: 0 0 16px;
}
.about-mv-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 24px;
margin: 28px 0;
}
.about-mv-card {
background: var(--bg);
border: 1px solid var(--gray-light);
border-radius: var(--radius);
padding: 24px;
}
.about-mv-card__h {
font-size: 12px;
text-transform: uppercase;
letter-spacing: 0.06em;
color: var(--primary);
margin: 0 0 10px;
font-weight: 800;
}
.about-mv-card p {
margin: 0;
font-size: 15px;
color: var(--gray);
line-height: 1.65;
}
.about-page__cta-wrap {
margin-top: 28px;
}
.about-page__section-title {
font-size: 24px;
font-weight: 800;
margin: 0 0 24px;
text-align: center;
color: var(--dark);
}
.about-stats-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 20px;
max-width: 960px;
margin: 0 auto;
}
.about-page__section-head {
margin-bottom: 28px;
}
.about-page__section-lead {
font-size: 15px;
color: var(--gray);
margin-top: 8px;
max-width: 560px;
line-height: 1.5;
}
.about-team.team-section {
padding-top: 48px;
padding-bottom: 72px;
}
.contact-page-v2 {
padding: 48px 24px 80px;
}
.contact-page-inner {
max-width: 1280px;
margin: 0 auto;
}
.contact-info-v2 .contact-info-lead,
.contact-form-lead {
font-size: 15px;
color: var(--gray);
margin: -12px 0 24px;
line-height: 1.55;
}
.contact-form-v2 .form-field {
display: flex;
flex-direction: column;
gap: 8px;
margin-bottom: 18px;
}
.contact-form-v2 .form-field label {
font-size: 13px;
font-weight: 700;
color: var(--dark);
}
.contact-form-v2 .req {
color: #dc2626;
}
.field-error {
font-size: 13px;
color: #b91c1c;
margin-top: 4px;
}
.contact-messages {
margin-bottom: 24px;
}
.contact-map-section {
margin-top: 48px;
padding-top: 40px;
border-top: 1px solid var(--gray-light);
}
.contact-map-title {
font-size: 22px;
font-weight: 800;
margin: 0 0 16px;
color: var(--dark);
}
.contact-map-wrap {
position: relative;
border-radius: var(--radius);
overflow: hidden;
border: 1px solid var(--gray-light);
background: var(--bg);
aspect-ratio: 16 / 9;
max-height: 440px;
}
.contact-map-iframe {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
border: 0;
}
.contact-map-fallback {
font-size: 15px;
color: var(--gray);
padding: 24px;
background: var(--bg);
border-radius: var(--radius);
border: 1px dashed var(--gray-light);
line-height: 1.6;
}
.projects-page-v2 {
padding: 40px 24px 80px;
}
.projects-page-inner {
max-width: 1280px;
margin: 0 auto;
}
.projects-filter {
margin-bottom: 32px;
}
.projects-cards-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 20px;
}
.project-card {
background: var(--white);
border-radius: var(--radius);
overflow: hidden;
border: 1px solid var(--gray-light);
box-shadow: var(--card-shadow);
display: flex;
flex-direction: column;
transition: transform 0.2s, box-shadow 0.2s;
}
.project-card:hover {
transform: translateY(-3px);
box-shadow: 0 10px 36px rgba(26, 115, 232, 0.1);
}
.project-card__media {
position: relative;
aspect-ratio: 16 / 10;
background: linear-gradient(135deg, var(--primary-dark), var(--primary));
overflow: hidden;
}
.project-card__media img {
width: 100%;
height: 100%;
object-fit: cover;
}
.project-card__placeholder {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
min-height: 160px;
font-size: 56px;
color: rgba(255, 255, 255, 0.35);
}
.project-card__type {
position: absolute;
left: 10px;
bottom: 10px;
background: rgba(255, 255, 255, 0.96);
color: var(--primary);
font-size: 11px;
font-weight: 700;
padding: 5px 9px;
border-radius: 7px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
max-width: calc(100% - 60px);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.project-card__body {
padding: 16px;
flex: 1;
display: flex;
flex-direction: column;
gap: 8px;
}
.project-card__title {
font-size: 15px;
font-weight: 800;
margin: 0;
line-height: 1.3;
color: var(--dark);
}
.project-card__desc {
font-size: 13px;
color: var(--gray);
line-height: 1.55;
margin: 0;
flex: 1;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
}
.project-card__meta {
display: flex;
flex-wrap: wrap;
gap: 8px 12px;
font-size: 12px;
font-weight: 600;
color: var(--gray);
margin-top: auto;
}
.projects-empty .btn-primary {
margin-top: 16px;
display: inline-block;
}
a.project-card,
a.project-card:hover,
a.project-card:focus,
a.project-card:visited,
a.svc-card,
a.svc-card:hover,
a.svc-card:focus,
a.svc-card:visited {
text-decoration: none;
color: inherit;
}
a.project-card *,
a.svc-card * {
text-decoration: none;
}
.project-card__cta,
.svc-card__cta {
display: inline-block;
margin-top: 8px;
font-size: 14px;
font-weight: 700;
color: #023E8A;
text-decoration: none;
}
a.project-card:hover .project-card__cta,
a.svc-card:hover .svc-card__cta {
text-decoration: underline;
}
@media (max-width: 1280px) {
.projects-cards-grid {
grid-template-columns: repeat(3, 1fr);
}
}
@media (max-width: 1024px) {
.about-mv-grid {
grid-template-columns: 1fr;
}
.about-stats-grid {
grid-template-columns: repeat(2, 1fr);
}
.projects-cards-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (max-width: 768px) {
.about-stats-grid {
grid-template-columns: 1fr 1fr;
}
.projects-cards-grid {
grid-template-columns: 1fr;
}
}
.contact-page { padding: 60px 24px 80px; }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; }
.contact-info h2, .contact-form-wrap h2 { font-size: 24px; font-weight: 800; margin-bottom: 28px; }
.contact-item { display: flex; gap: 14px; margin-bottom: 20px; align-items: flex-start; }
.contact-icon { font-size: 20px; flex-shrink: 0; width: 44px; height: 44px; background: rgba(13,71,161,0.08); border-radius: 10px; display: flex; align-items: center; justify-content: center; }
.contact-item strong { display: block; font-size: 14px; font-weight: 700; margin-bottom: 4px; }
.contact-item a, .contact-item p { font-size: 15px; color: var(--gray); text-decoration: none; }
.contact-item a:hover { color: var(--primary); }
.social-link { display: inline-flex; align-items: center; gap: 8px; background: var(--bg); border: 2px solid var(--gray-light); border-radius: 50px; padding: 8px 16px; font-size: 14px; font-weight: 700; transition: all 0.2s; }
.social-link:hover { border-color: var(--primary); color: var(--primary); }
.contact-social { display: flex; gap: 12px; margin-top: 24px; }
.contact-form-wrap form { display: flex; flex-direction: column; gap: 16px; }
.contact-form-wrap .form-group { margin-bottom: 0; }
.contact-form-wrap .form-group label { font-size: 12px; font-weight: 700; color: var(--gray); margin-bottom: 6px; display: block; text-transform: uppercase; letter-spacing: 1px; }
.contact-form-wrap .form-group input, .contact-form-wrap .form-group textarea { width: 100%; border: 2px solid var(--gray-light); border-radius: 10px; padding: 11px 14px; font-size: 14px; font-family: inherit; outline: none; transition: border 0.2s; resize: none; }
.contact-form-wrap .form-group input:focus, .contact-form-wrap .form-group textarea:focus { border-color: var(--primary); }
.form-input {
width: 100%;
border: 2px solid var(--gray-light);
border-radius: 12px;
padding: 16px 18px;
font-size: 16px;
font-family: inherit;
outline: none;
background: white;
transition: border-color 0.2s, box-shadow 0.2s;
box-sizing: border-box;
display: block;
color: var(--dark);
}
.form-input:focus {
border-color: var(--primary);
box-shadow: 0 0 0 4px rgba(13,71,161,0.1);
}
.form-input::placeholder { color: #aab0bb; }
textarea.form-input { resize: vertical; min-height: 120px; }
.btn-submit {
width: 100%;
background: var(--primary);
color: white;
border: none;
border-radius: 12px;
padding: 16px;
font-size: 16px;
font-weight: 700;
cursor: pointer;
font-family: inherit;
transition: background 0.2s, transform 0.15s;
}
.btn-submit:hover { background: var(--primary-dark); transform: translateY(-1px); }
.contact-page-v2 { padding: 28px 24px 40px; }
.contact-page-v2 .contact-grid { gap: 44px; align-items: start; }
.contact-page-v2 .contact-info h2,
.contact-page-v2 .contact-form-wrap h2 { font-size: 21px; margin-bottom: 14px; }
.contact-page-v2 .contact-info-lead,
.contact-page-v2 .contact-form-lead { margin: -6px 0 16px; font-size: 14px; }
.contact-page-v2 .contact-items-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 20px; margin-bottom: 8px; }
.contact-page-v2 .contact-item { margin-bottom: 0; gap: 12px; }
.contact-page-v2 .contact-icon { width: 40px; height: 40px; color: var(--primary); font-size: 0; }
.contact-page-v2 .contact-form-v2 .form-field { margin-bottom: 10px; gap: 6px; }
.contact-page-v2 .form-input { padding: 11px 14px; font-size: 14px; border-radius: 10px; }
.contact-page-v2 textarea.form-input { min-height: 84px; }
.contact-page-v2 .btn-submit { padding: 12px; font-size: 15px; margin-top: 4px; }
.contact-page-v2 .contact-map-section { margin-top: 28px; padding-top: 22px; }
.contact-page-v2 .contact-map-title { font-size: 19px; margin-bottom: 12px; }
.contact-page-v2 .contact-map-wrap { aspect-ratio: auto; height: 300px; max-height: 300px; }
@media (max-width: 560px) {
.contact-page-v2 .contact-items-grid { grid-template-columns: 1fr; }
}
.projects-page { padding: 40px 24px 80px; }
.filter-bar { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 32px; }
.filter-btn { background: var(--white); border: 2px solid var(--gray-light); border-radius: 50px; padding: 8px 18px; font-size: 14px; font-weight: 700; color: var(--gray); transition: all 0.2s; text-decoration: none; cursor: pointer; font-family: inherit; }
.filter-btn.active, .filter-btn:hover { background: var(--primary); border-color: var(--primary); color: white; }
.projects-big-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.project-big-card { background: var(--white); border-radius: var(--radius); overflow: hidden; box-shadow: var(--card-shadow); }
.project-big-img { height: 240px; overflow: hidden; }
.project-big-img img { width: 100%; height: 100%; object-fit: cover; }
.project-big-body { padding: 24px; }
.project-type-badge { display: inline-block; background: rgba(13,71,161,0.08); color: var(--primary); border-radius: 6px; padding: 4px 10px; font-size: 12px; font-weight: 700; margin-bottom: 12px; }
.project-big-body h3 { font-size: 20px; font-weight: 800; margin-bottom: 10px; }
.project-big-body p { font-size: 14px; color: var(--gray); margin-bottom: 14px; }
.project-meta-row { display: flex; gap: 16px; font-size: 13px; color: var(--gray); font-weight: 600; }
.post-detail-page { padding: 40px 24px 80px; }
.post-layout { display: grid; grid-template-columns: 1fr 300px; gap: 48px; max-width: 1280px; margin: 0 auto; }
.post-header { margin-bottom: 28px; }
.post-excerpt { font-size: 18px; color: var(--gray); margin-top: 12px; line-height: 1.7; }
.post-hero-img { border-radius: var(--radius); overflow: hidden; margin-bottom: 32px; }
.post-hero-img img { width: 100%; max-height: 500px; object-fit: cover; }
.post-body { font-size: 16px; line-height: 1.8; color: var(--dark); }
.post-body h2, .post-body h3 { margin: 28px 0 12px; }
.post-body p { margin-bottom: 16px; }
.post-body img { max-width: 100%; height: auto; border-radius: 8px; }
.post-body a { color: var(--primary); }
.post-sidebar .sidebar-widget { background: var(--bg); border: 1px solid var(--gray-light); border-radius: var(--radius); padding: 20px; margin-bottom: 20px; }
.post-sidebar .sidebar-widget h3 { font-size: 16px; font-weight: 800; margin-bottom: 10px; }
.post-sidebar .sidebar-widget p { font-size: 14px; color: var(--gray); margin-bottom: 14px; }
.recent-post { display: block; padding: 12px 0; border-bottom: 1px solid var(--gray-light); text-decoration: none; color: inherit; }
.recent-post:last-child { border-bottom: none; }
.recent-post h4 { font-size: 14px; font-weight: 700; color: var(--dark); margin-top: 4px; }
.btn-sidebar { display: block; background: var(--primary); color: white; border: none; border-radius: 10px; padding: 10px 16px; font-family: inherit; font-size: 13px; font-weight: 700; cursor: pointer; text-align: center; transition: background 0.2s; }
.btn-sidebar:hover { background: var(--primary-dark); }
.empty-state { text-align: center; padding: 60px; color: var(--gray); }
.empty-state p { font-size: 18px; margin-bottom: 20px; }
@media (max-width: 1024px) {
.catalog-layout { grid-template-columns: 1fr; }
.product-detail-layout { grid-template-columns: 1fr; }
.related-grid { grid-template-columns: repeat(2,1fr); }
.products-grid { grid-template-columns: repeat(2,1fr); }
.footer-inner { grid-template-columns: 1fr 1fr; }
.about-mission { grid-template-columns: 1fr; }
.contact-grid { grid-template-columns: 1fr; }
.post-layout { grid-template-columns: 1fr; }
.team-grid { grid-template-columns: repeat(2, 1fr); }
.projects-big-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
.header-inner { flex-wrap: wrap; height: auto; padding: 12px 16px; min-height: 64px; }
.header-phone, .auth-btns { display: none; }
.products-grid { grid-template-columns: 1fr; }
.categories-grid { grid-template-columns: 1fr 1fr; }
.related-grid { grid-template-columns: 1fr 1fr; }
.cta-inner { flex-direction: column; }
.cta-form { flex-direction: column; }
.cta-input { width: 100%; }
.footer-inner { grid-template-columns: 1fr; }
.page-hero h1 { font-size: 26px; }
.services-grid { grid-template-columns: 1fr; }
.news-grid, .blog-grid, .blog-cards-grid, .blog-cards-grid--related { grid-template-columns: 1fr; }
.cats-grid { grid-template-columns: repeat(3, 1fr); }
.hero h1 { font-size: 32px; }
.hero-inner { grid-template-columns: 1fr; gap: 32px; }
.hero-cards { display: none; }
.about-inner { grid-template-columns: 1fr; }
.team-grid { grid-template-columns: 1fr 1fr; }
}
.catalog-page-wrap { padding: 32px 0; max-width: 1400px; margin: 0 auto; padding-left: 24px; padding-right: 24px; }
.catalog-layout { display: grid; grid-template-columns: 280px 1fr; gap: 28px; align-items: start; }
.catalog-sidebar-box { position: sticky; top: 80px; }
.sidebar-card { background: var(--bg); border: 1px solid var(--gray-light); border-radius: var(--radius); margin-bottom: 16px; overflow: hidden; }
.sidebar-card-head { padding: 14px 18px; font-weight: 800; font-size: 14px; background: var(--light); border-bottom: 1px solid var(--gray-light); }
.sidebar-cat-list { padding: 8px 0; }
.sidebar-cat-item { display: flex; align-items: center; gap: 8px; padding: 8px 16px; text-decoration: none; color: var(--dark); font-size: 14px; transition: background 0.15s; cursor: pointer; }
.sidebar-cat-item:hover, .sidebar-cat-item.active { background: var(--primary-bg); color: var(--primary); }
.sidebar-cat-item .cat-icon { font-size: 16px; }
.sidebar-cat-item .cat-name { flex: 1; }
.sidebar-cat-item .cat-cnt { font-size: 12px; color: var(--gray); }
.sidebar-cat-child { padding-left: 32px; font-size: 13px; }
.sidebar-price-filter { padding: 16px; }
.price-range-inputs { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.price-input { flex: 1; border: 1px solid var(--gray-light); border-radius: 8px; padding: 6px 10px; font-size: 13px; width: 80px; }
.btn-filter-apply { width: 100%; background: var(--primary); color: white; border: none; border-radius: 8px; padding: 8px; font-weight: 700; cursor: pointer; }
.sidebar-filter-list { padding: 12px 16px; display: flex; flex-direction: column; gap: 8px; }
.filter-check { display: flex; align-items: center; gap: 8px; font-size: 14px; cursor: pointer; }
.filter-check input { accent-color: var(--primary); }
.sidebar-cta { background: #F4F7FB; color: #1E2B3C; border: 1px solid #E5E9F0; border-radius: var(--radius); padding: 18px; margin-top: 4px; }
.sidebar-cta h4 { font-size: 15px; margin-bottom: 6px; color: #1E2B3C; font-weight: 700; }
.sidebar-cta p { font-size: 13px; color: #6b7280; margin-bottom: 14px; line-height: 1.45; }
.sidebar-cta-btn { width: 100%; background: #1E2B3C; color: #fff; border: none; border-radius: 8px; padding: 10px 14px; font-weight: 700; cursor: pointer; font-family: inherit; transition: background .15s ease; }
.sidebar-cta-btn:hover { background: #0F172A; }
.catalog-toolbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; padding: 12px 0; border-bottom: 1px solid var(--gray-light); }
.results-count { font-size: 14px; color: var(--gray); }
.toolbar-right { display: flex; align-items: center; gap: 12px; }
.sort-select { border: 1px solid var(--gray-light); border-radius: 8px; padding: 6px 12px; font-size: 14px; }
.view-toggle { display: flex; border: 1px solid var(--gray-light); border-radius: 8px; overflow: hidden; }
.view-btn { width: 36px; height: 36px; border: none; background: transparent; cursor: pointer; font-size: 16px; }
.view-btn.active { background: var(--primary); color: white; }
.products-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 20px; }
.products-list { display: flex; flex-direction: column; gap: 16px; }
.products-grid-sm { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.product-card { background: var(--bg); border: 1px solid var(--gray-light); border-radius: var(--radius); overflow: hidden; transition: box-shadow 0.2s, transform 0.2s; position: relative; }
.product-card:hover { box-shadow: 0 8px 24px rgba(0,0,0,0.1); transform: translateY(-2px); }
.product-card-link { text-decoration: none; color: inherit; display: block; }
.product-card-img { position: relative; height: 240px; background: white; display: flex; align-items: center; justify-content: center; overflow: hidden; padding: 8px; }
.product-card-img img { width: 100%; height: 100%; object-fit: contain; object-position: center; }
.product-no-img { font-size: 48px; }
.product-card-badges {
position: absolute;
top: 10px;
left: 10px;
z-index: 3;
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: center;
gap: 6px;
max-width: calc(100% - 20px);
pointer-events: none;
}
.product-badge { position: absolute; top: 10px; left: 10px; font-size: 11px; font-weight: 800; padding: 3px 8px; border-radius: 4px; color: white; }
.product-card-badges .product-badge {
position: relative;
flex-shrink: 0;
white-space: nowrap;
top: auto;
left: auto;
}
.badge-hit { background: #f59e0b; }
.badge-new { background: #10b981; }
.badge-sale { background: #ef4444; }
.product-card-body { padding: 12px; }
.product-card-sku { font-size: 11px; color: var(--gray); margin-bottom: 4px; }
.product-card-rating { font-size: 12px; color: #f59e0b; margin-bottom: 4px; }
.product-card-name { font-size: 14px; font-weight: 700; margin-bottom: 8px; line-height: 1.4; }
.product-card-tags { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 8px; }
.product-tag { background: var(--primary-bg); color: var(--primary); font-size: 10px; padding: 2px 6px; border-radius: 4px; }
.product-card-price-block { margin-top: 8px; }
.price-old { font-size: 12px; color: var(--gray); text-decoration: line-through; }
.price-main { font-size: 16px; font-weight: 800; color: var(--dark); }
.price-vat { font-size: 11px; color: var(--gray); }
.price-on-request { font-size: 13px; font-weight: 700; color: var(--primary); }
.product-card-actions { display: flex; gap: 8px; padding: 0 12px 12px; }
.btn-add-to-cart { flex: 1; background: var(--primary); color: white; border: none; border-radius: 8px; padding: 8px; font-size: 13px; font-weight: 700; cursor: pointer; transition: background 0.2s; }
.btn-add-to-cart:hover { background: var(--primary-dark); }
.btn-on-request { flex: 1; background: transparent; color: var(--primary); border: 1px solid var(--primary); border-radius: 8px; padding: 8px; font-size: 13px; font-weight: 700; cursor: pointer; }
.pagination { display: flex; justify-content: center; gap: 8px; margin-top: 32px; }
.page-btn { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 12px; border: 1px solid var(--gray-light); border-radius: 8px; text-decoration: none; color: var(--dark); font-size: 14px; transition: all 0.15s; }
.page-btn.active { background: var(--primary); color: white; border-color: var(--primary); }
.page-btn:hover:not(.active) { background: var(--primary-bg); border-color: var(--primary); }
.category-seo-text { margin-top: 48px; padding: 32px; background: var(--light); border-radius: var(--radius); font-size: 15px; line-height: 1.8; }
.empty-state { text-align: center; padding: 80px 40px; grid-column: 1/-1; }
.empty-icon { font-size: 64px; margin-bottom: 16px; }
.empty-state h3 { font-size: 22px; margin-bottom: 8px; }
.empty-state p { color: var(--gray); margin-bottom: 24px; }
.empty-state-sm { text-align: center; padding: 40px; }
.product-page-wrap { max-width: 1200px; margin: 0 auto; padding: 32px 24px; }
.product-top { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; margin-bottom: 48px; }
.product-gallery { }
.product-main-img { position: relative; border-radius: var(--radius); overflow: hidden; background: var(--light); height: 420px; display: flex; align-items: center; justify-content: center; margin-bottom: 12px; }
.product-main-img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.product-no-img-lg { font-size: 80px; }
.product-badges-stack { position: absolute; top: 12px; left: 12px; display: flex; flex-direction: column; gap: 6px; }
.product-thumbs { display: flex; gap: 8px; flex-wrap: wrap; }
.thumb { width: 72px; height: 72px; object-fit: cover; border-radius: 8px; cursor: pointer; border: 2px solid transparent; transition: border-color 0.15s; }
.thumb.active, .thumb:hover { border-color: var(--primary); }
.product-info { }
.product-sku { font-size: 13px; color: var(--gray); margin-bottom: 4px; }
.product-brand { font-size: 13px; color: var(--gray); margin-bottom: 8px; }
.product-rating-row { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.stars-big { color: #f59e0b; font-size: 18px; letter-spacing: 2px; }
.rating-num { font-weight: 700; }
.rating-link { font-size: 13px; color: var(--primary); }
.product-title { font-size: 26px; font-weight: 800; margin-bottom: 16px; line-height: 1.3; }
.product-short-desc { color: var(--gray); font-size: 15px; margin-bottom: 16px; line-height: 1.6; }
.product-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 20px; }
.product-price-block { margin-bottom: 20px; }
.price-old-lg { font-size: 18px; color: var(--gray); text-decoration: line-through; }
.price-main-lg { font-size: 32px; font-weight: 800; color: var(--dark); }
.price-on-request-lg { font-size: 22px; font-weight: 700; color: var(--primary); }
.price-note { font-size: 13px; color: var(--gray); margin-top: 4px; }
.discount-badge { display: inline-block; background: #ef4444; color: white; font-size: 13px; font-weight: 800; padding: 4px 10px; border-radius: 6px; margin-top: 6px; }
.product-availability { font-size: 14px; font-weight: 600; margin-bottom: 20px; }
.availability-in_stock { color: #10b981; }
.availability-on_order { color: #f59e0b; }
.availability-out_of_stock { color: #ef4444; }
.product-buy-row { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; flex-wrap: wrap; }
.qty-control { display: flex; align-items: center; border: 1px solid var(--gray-light); border-radius: 10px; overflow: hidden; }
.qty-control button { width: 36px; height: 42px; border: none; background: var(--light); cursor: pointer; font-size: 18px; transition: background 0.15s; }
.qty-control button:hover { background: var(--primary-bg); }
.qty-control input { width: 52px; height: 42px; border: none; border-left: 1px solid var(--gray-light); border-right: 1px solid var(--gray-light); text-align: center; font-size: 16px; font-weight: 700; }
.btn-buy { background: var(--primary); color: white; border: none; border-radius: 10px; padding: 0 24px; height: 42px; font-size: 15px; font-weight: 700; cursor: pointer; transition: background 0.2s; }
.btn-buy:hover { background: var(--primary-dark); }
.btn-request-lg { background: transparent; color: var(--primary); border: 2px solid var(--primary); border-radius: 10px; padding: 0 24px; height: 42px; font-size: 15px; font-weight: 700; cursor: pointer; }
.product-files { background: var(--light); border-radius: 10px; padding: 16px; }
.files-title { font-size: 14px; font-weight: 700; margin-bottom: 10px; }
.files-list { display: flex; flex-wrap: wrap; gap: 8px; }
.file-btn { background: white; border: 1px solid var(--gray-light); border-radius: 8px; padding: 6px 14px; font-size: 13px; text-decoration: none; color: var(--dark); transition: all 0.15s; }
.file-btn:hover { background: var(--primary-bg); border-color: var(--primary); color: var(--primary); }
.product-tabs-section { margin-bottom: 48px; }
.tabs-nav { display: flex; border-bottom: 2px solid var(--gray-light); margin-bottom: 24px; }
.tab-btn { padding: 12px 24px; border: none; background: transparent; font-size: 15px; font-weight: 600; cursor: pointer; color: var(--gray); border-bottom: 3px solid transparent; margin-bottom: -2px; transition: all 0.15s; }
.tab-btn.active { color: var(--primary); border-bottom-color: var(--primary); }
.tab-content { display: none; }
.tab-content.active { display: block; }
.product-description { font-size: 15px; line-height: 1.8; }
.specs-table { width: 100%; border-collapse: collapse; }
.specs-table tr:nth-child(even) { background: var(--light); }
.spec-key { padding: 10px 16px; font-weight: 600; width: 35%; border-right: 1px solid var(--gray-light); }
.spec-val { padding: 10px 16px; }
.reviews-list { margin-bottom: 32px; }
.review-item { padding: 20px; border: 1px solid var(--gray-light); border-radius: var(--radius); margin-bottom: 16px; }
.review-header { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.review-stars { color: #f59e0b; font-size: 16px; letter-spacing: 2px; }
.review-date { font-size: 13px; color: var(--gray); margin-left: auto; }
.review-text { font-size: 15px; line-height: 1.6; }
.no-reviews { color: var(--gray); margin-bottom: 24px; }
.review-form-wrap { background: var(--light); border-radius: var(--radius); padding: 28px; }
.review-form-wrap h3 { font-size: 18px; margin-bottom: 20px; }
.form-row { margin-bottom: 16px; }
.form-row label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 6px; }
.form-control { width: 100%; border: 1px solid var(--gray-light); border-radius: 8px; padding: 10px 14px; font-size: 14px; transition: border-color 0.15s; box-sizing: border-box; }
.form-control:focus { outline: none; border-color: var(--primary); }
.form-note { font-size: 12px; color: var(--gray); margin-top: 8px; }
.related-products { margin-top: 48px; }
.related-products h2 { font-size: 22px; font-weight: 800; margin-bottom: 24px; }
.cart-page-wrap { max-width: 1200px; margin: 0 auto; padding: 32px 24px; }
.cart-layout { display: grid; grid-template-columns: 1fr 360px; gap: 32px; align-items: start; }
.cart-item { display: grid; grid-template-columns: 80px 1fr 120px 130px 130px auto; gap: 16px; align-items: center; padding: 20px; border: 1px solid var(--gray-light); border-radius: var(--radius); margin-bottom: 16px; }
.cart-item-img { width: 80px; height: 80px; border-radius: 8px; overflow: hidden; background: var(--light); display: flex; align-items: center; justify-content: center; }
.cart-item-img img { width: 100%; height: 100%; object-fit: cover; }
.cart-item-name { font-size: 15px; font-weight: 600; text-decoration: none; color: var(--dark); display: block; margin-bottom: 4px; }
.cart-item-sku { font-size: 12px; color: var(--gray); }
.cart-item-avail { font-size: 12px; margin-top: 4px; }
.cart-item-avail.available { color: #10b981; }
.cart-item-avail.on-order { color: #f59e0b; }
.cart-item-unit-price { font-size: 14px; color: var(--gray); }
.cart-item-unit-price--ask,
.cart-item-subtotal--ask { font-size: 13px; color: #6b7280; font-weight: 500; font-style: italic; }
.cart-qty-input { width: 52px; height: 38px; border: 1px solid var(--gray-light); border-radius: 6px; text-align: center; font-size: 14px; font-weight: 700; padding: 0; -webkit-appearance: none; -moz-appearance: textfield; appearance: none; }
.cart-qty-input::-webkit-outer-spin-button,
.cart-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cart-item-subtotal { font-size: 16px; font-weight: 800; }
.cart-remove-btn {
display: inline-flex; align-items: center; gap: 6px;
background: transparent; border: 1px solid #E5E7EB; cursor: pointer;
padding: 6px 10px; border-radius: 8px; transition: all 0.15s;
color: var(--gray, #6b7280); font-size: 13px; font-weight: 500;
font-family: inherit; white-space: nowrap;
}
.cart-remove-btn:hover { background: #FEE2E2; border-color: #FCA5A5; color: #DC2626; }
.cart-remove-btn svg { flex-shrink: 0; }
.remove-btn { background: transparent; border: none; cursor: pointer; font-size: 18px; color: var(--gray); padding: 6px; border-radius: 6px; transition: all 0.15s; }
.remove-btn:hover { background: #fee2e2; color: #ef4444; }
.cart-summary-card { background: var(--bg); border: 1px solid var(--gray-light); border-radius: var(--radius); padding: 24px; margin-bottom: 16px; position: sticky; top: 90px; min-width: 0; max-width: 100%; box-sizing: border-box; overflow: hidden; }
.cart-summary-card h3 { font-size: 18px; font-weight: 800; margin-bottom: 20px; }
.summary-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px; font-size: 14px; margin-bottom: 12px; min-width: 0; word-break: break-word; }
.summary-row > span { min-width: 0; }
.summary-total { font-size: 18px; font-weight: 800; padding-top: 12px; border-top: 1px solid var(--gray-light); }
.cart-checkout-btn { display: block; width: 100%; text-align: center; margin-top: 20px; margin-bottom: 10px; }
.cart-continue-btn { display: block; width: 100%; text-align: center; }
.cart-help-card { background: var(--light); border-radius: var(--radius); padding: 20px; }
.cart-help-card h4 { font-size: 15px; font-weight: 700; margin-bottom: 8px; }
.cart-help-card p { font-size: 13px; color: var(--gray); margin-bottom: 12px; }
.cart-summary-ask { color: #6b7280; font-style: italic; font-weight: 600; }
.cart-summary-note {
margin: 12px 0 0;
padding: 10px 12px;
background: #F3F4F6;
border-radius: 8px;
font-size: 12px;
color: #4B5563;
line-height: 1.5;
}
.cart-mini-total--ask { color: #6b7280; font-style: italic; }
.checkout-wrap { max-width: 1100px; margin: 0 auto; padding: 32px 24px; }
.checkout-layout { display: grid; grid-template-columns: 1fr 360px; gap: 32px; align-items: start; }
.checkout-section { background: var(--bg); border: 1px solid var(--gray-light); border-radius: var(--radius); padding: 24px; margin-bottom: 20px; }
.checkout-section h3 { font-size: 17px; font-weight: 800; margin-bottom: 20px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-row-full { grid-column: 1 / -1; }
.payment-options { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.payment-option { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border: 2px solid var(--gray-light); border-radius: 10px; cursor: pointer; transition: all 0.15s; }
.payment-option:has(input:checked) { border-color: var(--primary); background: var(--primary-bg); }
.checkout-submit-btn { width: 100%; padding: 16px; font-size: 17px; }
.checkout-note { font-size: 12px; color: var(--gray); margin-top: 10px; text-align: center; }
.checkout-summary-card { background: var(--bg); border: 1px solid var(--gray-light); border-radius: var(--radius); padding: 24px; position: sticky; top: 90px; }
.checkout-summary-card h3 { font-size: 17px; font-weight: 800; margin-bottom: 20px; }
.checkout-item { display: flex; align-items: baseline; gap: 8px; margin-bottom: 12px; font-size: 14px; padding-bottom: 10px; border-bottom: 1px solid var(--gray-light); }
.checkout-item-name { flex: 1; font-weight: 600; }
.checkout-item-qty { color: var(--gray); }
.checkout-item-price { font-weight: 700; white-space: nowrap; }
.checkout-total { font-size: 18px; font-weight: 800; padding-top: 16px; }
.success-page-wrap { display: flex; justify-content: center; align-items: center; padding: 80px 24px; }
.success-card { background: var(--bg); border: 1px solid var(--gray-light); border-radius: 20px; padding: 48px; text-align: center; max-width: 480px; width: 100%; }
.success-icon { font-size: 64px; margin-bottom: 16px; }
.success-card h1 { font-size: 28px; margin-bottom: 12px; }
.success-info { background: var(--light); border-radius: 10px; padding: 16px; text-align: left; margin: 24px 0; font-size: 14px; display: flex; flex-direction: column; gap: 6px; }
.success-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-top: 8px; }
.btn-telegram { background: #0088cc !important; color: #fff !important; border: none; }
.btn-telegram:hover { background: #006da3 !important; }
.telegram-redirect-note { font-size: 13px; color: var(--gray); margin-top: 16px; animation: pulse-text 1.5s ease-in-out infinite; }
@keyframes pulse-text { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } }
.cart-empty {
display: flex; justify-content: center;
padding: 32px 24px 48px;
}
.cart-empty__hero {
background: linear-gradient(180deg, #F7F9FC 0%, #FFFFFF 100%);
border: 1px solid var(--color-border, #E2E8F0);
border-radius: 20px;
padding: 36px 32px;
max-width: 560px; width: 100%;
text-align: center;
}
.cart-empty__icon {
font-size: 44px; line-height: 1; margin-bottom: 14px;
display: inline-flex; align-items: center; justify-content: center;
width: 80px; height: 80px;
background: var(--color-primary-light, #E5EBF5);
border-radius: 50%;
}
.cart-empty__title {
font-size: 23px; font-weight: 800;
color: var(--color-text, #1A2332); margin: 0 0 6px;
}
.cart-empty__lead {
font-size: 15px; color: var(--color-text-secondary, #4A5568);
margin: 0 auto 22px; max-width: 420px; line-height: 1.5;
}
.cart-empty__actions {
display: inline-flex; gap: 12px; flex-wrap: wrap; justify-content: center;
}
.cart-empty__actions .btn-primary,
.cart-empty__actions .btn-outline {
min-width: 200px;
}
.btn-outline {
display: inline-flex; align-items: center; justify-content: center;
background: transparent; color: var(--color-primary, #023E8A);
border: 2px solid var(--color-primary, #023E8A);
border-radius: 10px; padding: 10px 22px;
font-size: 15px; font-weight: 700; cursor: pointer;
text-decoration: none; transition: all 0.2s;
}
.btn-outline:hover {
background: var(--color-primary, #023E8A); color: #fff;
}
.btn-lg { padding: 14px 28px; font-size: 16px; }
@media (max-width: 640px) {
.cart-empty { padding: 32px 12px; }
.cart-empty__hero { padding: 40px 20px; border-radius: 16px; }
.cart-empty__icon { width: 88px; height: 88px; font-size: 48px; }
.cart-empty__title { font-size: 22px; }
.cart-empty__actions { width: 100%; flex-direction: column; }
.cart-empty__actions .btn-primary,
.cart-empty__actions .btn-outline { width: 100%; min-width: 0; }
}
.auth-page-wrap { display: flex; justify-content: center; padding: 48px 24px; }
.auth-card { background: var(--bg); border: 1px solid var(--gray-light); border-radius: 20px; padding: 40px; width: 100%; max-width: 420px; }
.auth-card-wide { max-width: 680px; }
.auth-logo { font-size: 48px; margin-bottom: 8px; }
.auth-card h1 { font-size: 26px; font-weight: 800; margin-bottom: 4px; }
.auth-card p { color: var(--gray); font-size: 14px; margin-bottom: 28px; }
.auth-links { text-align: center; margin-top: 20px; font-size: 14px; }
.auth-links a { color: var(--primary); font-weight: 700; }
.form-grid-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-row-full { grid-column: 1 / -1; }
.field-error { color: #ef4444; font-size: 12px; margin-top: 4px; }
.req { color: #ef4444; margin-left: 2px; font-weight: 700; }
.btn-full { width: 100%; }
.auth-links--split { display: flex; justify-content: flex-end; margin-top: 8px; }
.auth-forgot { color: var(--gray); font-size: 13px; text-decoration: none; }
.auth-forgot:hover { color: var(--primary); text-decoration: underline; }
.pwd-field { position: relative; }
.pwd-field .form-control { padding-right: 44px; }
.pwd-toggle {
position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
width: 36px; height: 36px; min-width: 36px;
display: inline-flex; align-items: center; justify-content: center;
background: transparent; border: none; cursor: pointer; padding: 0;
border-radius: 8px; font-size: 18px; line-height: 1; color: var(--gray);
}
.pwd-toggle:hover { background: rgba(0,0,0,0.04); color: var(--dark); }
.pwd-toggle:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.pwd-hint { font-size: 12px; color: var(--gray); margin-top: 4px; }
.form-control.was-touched:invalid:not(:placeholder-shown) {
border-color: #ef4444;
}
.form-control.was-touched:valid:not(:placeholder-shown):required {
border-color: #16a34a;
}
.alert { padding: 12px 16px; border-radius: 8px; margin-bottom: 16px; font-size: 14px; }
.alert-success { background: #d1fae5; color: #065f46; }
.alert-error { background: #fee2e2; color: #991b1b; }
.dashboard-wrap { max-width: 1100px; margin: 0 auto; padding: 32px 24px; }
.dashboard-layout { display: grid; grid-template-columns: 220px 1fr; gap: 28px; }
.dashboard-nav { background: var(--bg); border: 1px solid var(--gray-light); border-radius: var(--radius); padding: 16px 0; position: sticky; top: 80px; height: fit-content; }
.dash-nav-link { display: block; padding: 12px 20px; text-decoration: none; color: var(--dark); font-size: 14px; font-weight: 600; transition: all 0.15s; }
.dash-nav-link:hover, .dash-nav-link.active { background: var(--primary-bg); color: var(--primary); }
.dash-nav-logout { color: #ef4444; }
.dashboard-profile-card { display: flex; align-items: center; gap: 20px; background: var(--bg); border: 1px solid var(--gray-light); border-radius: var(--radius); padding: 24px; margin-bottom: 28px; }
.avatar-img { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; }
.avatar-placeholder { width: 72px; height: 72px; border-radius: 50%; background: var(--primary); color: white; font-size: 24px; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.profile-info { flex: 1; font-size: 14px; display: flex; flex-direction: column; gap: 4px; }
.profile-info h3 { font-size: 18px; margin-bottom: 4px; }
.b2b-badge { display: inline-block; background: #fef3c7; color: #92400e; font-size: 12px; padding: 2px 8px; border-radius: 4px; font-weight: 700; }
.profile-edit-btn { align-self: flex-start; }
.dashboard-section h2 { font-size: 20px; font-weight: 800; margin-bottom: 16px; }
.orders-table-wrap { overflow-x: auto; }
.orders-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.orders-table th { background: var(--light); padding: 12px 16px; text-align: left; font-weight: 700; border-bottom: 2px solid var(--gray-light); }
.orders-table td { padding: 12px 16px; border-bottom: 1px solid var(--gray-light); }
.order-status { padding: 3px 10px; border-radius: 20px; font-size: 12px; font-weight: 700; }
.order-status-new { background: #dbeafe; color: #1d4ed8; }
.order-status-confirmed { background: #d1fae5; color: #065f46; }
.order-status-processing { background: #fef3c7; color: #92400e; }
.order-status-shipped { background: #ede9fe; color: #5b21b6; }
.order-status-delivered { background: #d1fae5; color: #065f46; }
.order-status-cancelled { background: #fee2e2; color: #991b1b; }
.cmp-page {
max-width: 1280px;
margin: 0 auto;
padding: 32px 24px 64px;
}
.cmp-scroll {
overflow-x: auto;
min-width: 0;
}
.cmp-grid {
display: grid;
gap: 0;
min-width: 500px;
}
.cmp-grid--cards {
gap: 12px;
margin-bottom: 24px;
align-items: stretch;
}
.cmp-corner { }
.cmp-product-card {
background: #fff;
border-radius: 14px;
border: 1px solid #e2e8f0;
padding: 20px 14px 18px;
text-align: center;
position: relative;
transition: box-shadow .2s;
}
.cmp-product-card:hover { box-shadow: 0 6px 20px rgba(0,0,0,.08); }
.cmp-remove {
position: absolute; top: 8px; right: 8px;
width: 26px; height: 26px; border-radius: 50%;
border: 1px solid #e2e8f0; background: #fff;
color: #94a3b8; font-size: 13px; cursor: pointer;
display: flex; align-items: center; justify-content: center;
transition: all .15s; line-height: 1;
}
.cmp-remove:hover { background: #fee2e2; color: #ef4444; border-color: #fca5a5; }
.cmp-product-img {
display: block; width: 130px; height: 130px;
margin: 0 auto 10px; border-radius: 10px;
overflow: hidden; background: #f8fafc; border: 1px solid #f1f5f9;
}
.cmp-product-img img { width: 100%; height: 100%; object-fit: contain; padding: 6px; }
.cmp-no-img {
width: 100%; height: 100%;
display: flex; align-items: center; justify-content: center;
font-size: 40px; background: #f1f5f9;
}
.cmp-product-name {
display: block; font-size: 13px; font-weight: 700;
color: var(--dark); text-decoration: none;
margin-bottom: 6px; line-height: 1.3;
}
.cmp-product-name:hover { color: var(--primary); }
.cmp-product-price { font-size: 15px; font-weight: 800; color: var(--primary); margin-bottom: 10px; }
.cmp-price-request { font-size: 12px; font-weight: 600; color: var(--gray); }
.cmp-cart-btn {
display: inline-block; padding: 8px 18px;
background: var(--primary); color: #fff; border: none;
border-radius: 8px; font-size: 12px; font-weight: 700;
cursor: pointer; font-family: inherit; transition: background .15s;
}
.cmp-cart-btn:hover { background: var(--primary-dark, #082C66); }
.cmp-cart-btn--secondary { background: transparent; color: var(--primary); border: 1.5px solid var(--primary); }
.cmp-cart-btn--secondary:hover { background: var(--primary); color: #fff; }
.cmp-grid--row { border-bottom: 1px solid #f1f5f9; align-items: center; }
.cmp-grid--alt { background: #f8fafc; }
.cmp-label {
padding: 13px 14px; font-size: 12px; font-weight: 700;
color: #64748b; text-transform: uppercase; letter-spacing: 0.04em;
}
.cmp-val { padding: 13px 14px; font-size: 13px; color: var(--dark); text-align: center; }
.cmp-stock--yes { color: #16a34a; font-weight: 600; }
.cmp-stock--wait { color: #d97706; font-weight: 600; }
.cmp-stock--no { color: #dc2626; font-weight: 600; }
@media (max-width: 640px) {
.cmp-product-img { width: 90px; height: 90px; }
.cmp-product-card { padding: 12px 8px; }
.cmp-label { font-size: 10px; padding: 10px 6px; }
.cmp-val { font-size: 11px; padding: 10px 6px; }
}
.cart-sidebar { position: fixed; inset: 0; z-index: 1100; pointer-events: none; }
.cart-sidebar.open { pointer-events: all; }
.cart-sidebar-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.4); opacity: 0; transition: opacity 0.3s; }
.cart-sidebar.open .cart-sidebar-backdrop { opacity: 1; }
.cart-sidebar-panel { position: absolute; right: 0; top: 0; bottom: 0; width: 380px; background: white; display: flex; flex-direction: column; transform: translateX(100%); transition: transform 0.3s; }
.cart-sidebar.open .cart-sidebar-panel { transform: translateX(0); }
.cart-sidebar-head { display: flex; align-items: center; justify-content: space-between; padding: 20px 24px; border-bottom: 1px solid var(--gray-light); }
.cart-sidebar-head h3 { font-size: 18px; font-weight: 800; }
.cart-sidebar-head button { background: transparent; border: none; font-size: 20px; cursor: pointer; }
.cart-sidebar-items { flex: 1; overflow-y: auto; padding: 16px; }
.cart-sidebar-footer { padding: 16px; border-top: 1px solid var(--gray-light); }
.cart-mini-item { display: flex; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--gray-light); }
.cart-mini-img { width: 60px; height: 60px; border-radius: 8px; overflow: hidden; background: var(--light); flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.cart-mini-img img { width: 100%; height: 100%; object-fit: cover; }
.cart-mini-info { flex: 1; }
.cart-mini-name a { font-size: 13px; font-weight: 600; text-decoration: none; color: var(--dark); display: block; margin-bottom: 4px; }
.cart-mini-price { font-size: 12px; color: var(--gray); margin-bottom: 6px; }
.cart-mini-controls { display: flex; align-items: center; gap: 6px; }
.qty-btn { width: 24px; height: 24px; border: 1px solid var(--gray-light); border-radius: 4px; background: transparent; cursor: pointer; font-size: 14px; }
.cart-mini-total { padding: 12px 0; font-size: 15px; font-weight: 700; text-align: right; border-top: 1px solid var(--gray-light); margin-top: 8px; }
.cart-mini-empty { text-align: center; padding: 40px; }
.cart-mini-empty p { color: var(--gray); margin: 12px 0; }
.btn-primary { display: inline-block; background: var(--primary); color: white; border: none; border-radius: 10px; padding: 12px 24px; font-size: 15px; font-weight: 700; cursor: pointer; text-decoration: none; transition: background 0.2s; text-align: center; }
.btn-primary:hover { background: var(--primary-dark); color: white; }
.btn-secondary { display: inline-block; background: transparent; color: var(--dark); border: 1px solid var(--gray-light); border-radius: 10px; padding: 12px 24px; font-size: 15px; font-weight: 700; cursor: pointer; text-decoration: none; transition: all 0.2s; text-align: center; }
.btn-secondary:hover { border-color: var(--primary); color: var(--primary); }
.btn-outline { display: inline-block; background: transparent; color: var(--primary); border: 2px solid var(--primary); border-radius: 10px; padding: 10px 20px; font-size: 14px; font-weight: 700; cursor: pointer; text-decoration: none; transition: all 0.2s; text-align: center; }
.btn-outline:hover { background: var(--primary); color: white; }
.btn-lg { padding: 14px 32px; font-size: 17px; }
.breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; font-size: 13px; margin-bottom: 12px; }
.breadcrumb a { color: rgba(255,255,255,0.8); text-decoration: none; }
.breadcrumb a:hover { color: white; }
.bc-sep { color: rgba(255,255,255,0.5); }
.bc-current { color: white; }
.messages-block { margin-bottom: 24px; }
.page-hero-sm { padding: 24px 0; }
.page-hero-sm .page-hero-inner { padding: 0 var(--side-padding); }
.page-hero-sm h1 { font-size: 28px; }
@media (max-width: 900px) {
.product-top { grid-template-columns: 1fr; }
.cart-layout, .checkout-layout { grid-template-columns: 1fr; }
.cart-item {
grid-template-columns: 72px 1fr;
grid-template-areas:
"img info"
"price price"
"qty subtotal"
"remove remove";
gap: 10px 14px;
padding: 14px;
}
.cart-item-img { grid-area: img; width: 72px; height: 72px; }
.cart-item-info { grid-area: info; min-width: 0; }
.cart-item-name { white-space: normal; overflow-wrap: anywhere; }
.cart-item-avail { width: fit-content; max-width: 100%; }
.cart-item-price-col { grid-area: price; align-self: start; }
.cart-item-unit-price { font-size: 14px; margin-top: 0; }
.cart-item-qty-col { grid-area: qty; justify-self: start; }
.cart-item-subtotal-col { grid-area: subtotal; justify-self: end; align-self: center; }
.cart-item-remove-col { grid-area: remove; justify-self: stretch; padding-top: 4px; }
.cart-item-remove-col .cart-remove-btn { width: 100%; justify-content: center; }
.dashboard-layout { grid-template-columns: 1fr; }
.dashboard-nav { position: static; display: flex; flex-wrap: wrap; }
.form-grid { grid-template-columns: 1fr; }
.form-grid-2col { grid-template-columns: 1fr; }
.payment-options { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
.catalog-layout { grid-template-columns: 1fr; }
.products-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
.products-grid { grid-template-columns: 1fr; }
.cart-sidebar-panel { width: 100%; }
}
.visually-hidden {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
.home-hero {
position: relative;
min-height: clamp(440px, 78vh, 760px);
display: flex;
align-items: center;
padding: 48px var(--side-padding) 56px;
color: #fff;
background-color: #082C66;
background-image:
linear-gradient(
110deg,
rgba(10, 35, 80, 0.94) 0%,
rgba(26, 115, 232, 0.78) 48%,
rgba(66, 133, 244, 0.55) 100%
),
url("data:image/svg+xml,%3Csvg width='60' height='60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M60 0H0v60' fill='none' stroke='%23ffffff' stroke-opacity='0.06'/%3E%3C/svg%3E");
background-size: cover, 60px 60px;
background-position: center, center;
}
.home-hero__overlay {
position: absolute;
inset: 0;
background: radial-gradient(ellipse 80% 60% at 70% 20%, rgba(255, 255, 255, 0.12), transparent 55%);
pointer-events: none;
}
.home-hero__inner {
position: relative;
z-index: 1;
width: 100%;
max-width: min(var(--max-width), 100%);
margin: 0 auto;
padding-left: var(--side-padding);
padding-right: var(--side-padding);
}
.home-hero__layout {
display: grid;
grid-template-columns: 1fr;
gap: 36px;
align-items: center;
}
@media (min-width: 1024px) {
.home-hero__layout {
grid-template-columns: 1fr 1fr;
gap: 40px 52px;
}
}
.home-hero__cards {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 14px;
}
@media (max-width: 1023px) {
.home-hero__cards {
grid-template-columns: 1fr;
max-width: 440px;
}
}
.home-hero-card {
display: block;
text-align: left;
text-decoration: none;
color: #fff;
background: rgba(255, 255, 255, 0.1);
-webkit-backdrop-filter: blur(8px);
backdrop-filter: blur(8px);
border: 1px solid rgba(255, 255, 255, 0.15);
border-radius: var(--radius);
padding: 18px 16px;
transition: transform 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}
.home-hero-card:hover {
transform: translateY(-4px);
background: rgba(255, 255, 255, 0.15);
color: #fff;
box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12);
}
.home-hero-card__icon {
font-size: 30px;
line-height: 1;
margin-bottom: 10px;
}
.home-hero-card__title {
font-size: 15px;
font-weight: 800;
margin: 0 0 6px;
line-height: 1.25;
}
.home-hero-card__text {
font-size: 12px;
color: rgba(255, 255, 255, 0.72);
line-height: 1.45;
margin: 0;
}
.home-hero .home-btn--primary {
background: var(--accent);
color: #fff;
border-color: transparent;
box-shadow: 0 8px 28px rgba(0, 201, 167, 0.35);
}
.home-hero .home-btn--primary:hover {
background: #00a88d;
color: #fff;
box-shadow: 0 12px 36px rgba(0, 201, 167, 0.4);
}
.home-hero__content {
max-width: 640px;
}
.home-hero__badge {
display: inline-flex;
align-items: center;
gap: 10px;
padding: 8px 18px;
border-radius: 999px;
font-size: 13px;
font-weight: 700;
background: rgba(255, 255, 255, 0.12);
border: 1px solid rgba(255, 255, 255, 0.22);
margin-bottom: 20px;
}
.home-hero__badge-icon { font-size: 1.1em; }
.home-hero__title {
font-size: clamp(1.85rem, 4vw, 3rem);
font-weight: 800;
line-height: 1.12;
letter-spacing: -0.03em;
margin-bottom: 18px;
}
.home-hero__title-accent {
display: block;
color: #aecbfa;
margin-top: 4px;
}
.home-hero__desc {
font-size: clamp(0.95rem, 2vw, 1.1rem);
line-height: 1.65;
color: rgba(255, 255, 255, 0.88);
margin-bottom: 28px;
}
.home-hero__actions {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-bottom: 36px;
}
.home-btn {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 48px;
padding: 0 26px;
border-radius: 12px;
font-family: inherit;
font-size: 15px;
font-weight: 700;
text-decoration: none;
border: 2px solid transparent;
cursor: pointer;
transition: transform 0.2s, box-shadow 0.2s, background 0.2s;
}
.home-btn:focus-visible {
outline: 3px solid #fff;
outline-offset: 3px;
}
.home-btn--primary {
background: #fff;
color: var(--primary-dark);
box-shadow: 0 8px 28px rgba(0, 0, 0, 0.15);
}
.home-btn--primary:hover {
transform: translateY(-2px);
box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2);
}
.home-btn--outline {
background: transparent;
color: #fff;
border-color: rgba(255, 255, 255, 0.55);
}
.home-btn--outline:hover {
background: rgba(255, 255, 255, 0.1);
border-color: #fff;
}
.home-hero__stats {
display: flex;
flex-wrap: wrap;
gap: clamp(16px, 4vw, 36px);
}
.home-hero__stat strong {
display: block;
font-size: clamp(1.4rem, 3vw, 1.85rem);
font-weight: 800;
}
.home-hero__stat span {
font-size: 12px;
font-weight: 600;
color: rgba(255, 255, 255, 0.7);
text-transform: uppercase;
letter-spacing: 0.06em;
}
.home-trust {
background: #fff;
border-bottom: 1px solid var(--gray-light);
padding: 28px 24px;
}
.home-trust__inner {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 20px 28px;
align-items: start;
}
.home-trust__item {
display: flex;
gap: 14px;
align-items: flex-start;
}
.home-trust__icon {
font-size: 28px;
line-height: 1;
flex-shrink: 0;
}
.home-trust__title {
display: block;
font-size: 15px;
font-weight: 800;
color: var(--dark);
margin-bottom: 4px;
}
.home-trust__sub {
font-size: 13px;
color: var(--gray);
line-height: 1.45;
margin: 0;
}
.home-partners.partners-band {
background: #f8fafc;
}
@media (prefers-reduced-motion: reduce) {
.partners-track {
animation: none;
flex-wrap: wrap;
justify-content: center;
width: 100% !important;
}
}
.home-cats-grid .cat-card {
text-align: left;
display: flex;
flex-direction: column;
align-items: flex-start;
}
.home-cats-grid .cat-card__name {
font-size: 14px;
font-weight: 800;
color: var(--dark);
margin: 0 0 6px;
}
.home-cats-grid .cat-card__hint {
font-size: 12px;
color: var(--gray);
line-height: 1.4;
margin: 0;
}
.home-empty {
grid-column: 1 / -1;
text-align: center;
color: var(--gray);
padding: 24px;
font-size: 15px;
}
.home-empty--center {
max-width: 480px;
margin: 0 auto;
}
.home-featured,
.home-reviews {
padding-top: 56px;
padding-bottom: 56px;
}
.home-carousel {
position: relative;
display: flex;
align-items: center;
gap: 8px;
margin-top: 8px;
}
.home-carousel__viewport {
flex: 1;
overflow-x: auto;
scroll-snap-type: x mandatory;
scroll-behavior: smooth;
scrollbar-width: thin;
-webkit-overflow-scrolling: touch;
}
.home-carousel__track {
display: flex;
gap: 18px;
list-style: none;
margin: 0;
padding: 8px 4px 16px;
}
.home-carousel__slide {
flex: 0 0 min(300px, 82vw);
scroll-snap-align: start;
}
.home-carousel--reviews .home-carousel__slide {
flex: 0 0 min(360px, 88vw);
}
.home-carousel__btn {
flex-shrink: 0;
width: 44px;
height: 44px;
border-radius: 12px;
border: 2px solid var(--gray-light);
background: #fff;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
font-size: 22px;
color: var(--primary);
transition: background 0.2s, border-color 0.2s;
}
.home-carousel__btn:hover {
background: rgba(26, 115, 232, 0.08);
border-color: var(--primary);
}
.home-carousel__btn:focus-visible {
outline: 3px solid var(--primary);
outline-offset: 2px;
}
.home-carousel__btn--prev::after { content: '‹'; line-height: 1; }
.home-carousel__btn--next::after { content: '›'; line-height: 1; }
@media (max-width: 640px) {
.home-carousel__btn {
display: none;
}
}
.home-product-card {
height: 100%;
background: #fff;
border-radius: var(--radius);
box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 2px 8px rgba(15, 23, 42, 0.04);
border: 1px solid rgba(15, 23, 42, 0.06);
overflow: hidden;
display: flex;
flex-direction: column;
transition:
box-shadow 0.28s cubic-bezier(0.22, 0.61, 0.36, 1),
transform 0.28s cubic-bezier(0.22, 0.61, 0.36, 1),
border-color 0.28s ease;
will-change: transform;
}
.home-product-card:hover {
transform: translateY(-2px);
border-color: rgba(15, 23, 42, 0.09);
box-shadow: 0 4px 12px rgba(15, 23, 42, 0.06), 0 16px 32px rgba(15, 23, 42, 0.08);
}
.home-product-card__media img {
transition: transform 0.45s cubic-bezier(0.22, 0.61, 0.36, 1);
}
.home-product-card:hover .home-product-card__media img {
transform: scale(1.03);
}
.home-product-card__link {
text-decoration: none;
color: inherit;
flex: 1;
display: flex;
flex-direction: column;
}
.home-product-card__media {
position: relative;
height: 200px;
background: var(--bg);
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
padding: 10px;
}
.home-product-card__media img {
width: 100%;
height: 100%;
object-fit: contain;
object-position: center;
}
.home-product-card__placeholder {
font-size: 56px;
opacity: 0.35;
}
.home-product-card__badges {
position: absolute;
top: 10px;
left: 10px;
z-index: 3;
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: center;
gap: 6px;
max-width: calc(100% - 20px);
pointer-events: none;
}
.home-product-card__badge {
position: relative;
flex-shrink: 0;
white-space: nowrap;
font-size: 10px;
font-weight: 800;
text-transform: uppercase;
letter-spacing: 0.05em;
padding: 4px 10px;
border-radius: 6px;
background: var(--primary);
color: #fff;
}
.home-product-card__badge--hit {
background: var(--accent2);
}
.home-product-card__body {
padding: 16px 18px;
flex: 1;
display: flex;
flex-direction: column;
}
.home-product-card__sku {
font-size: 11px;
color: var(--gray);
text-transform: uppercase;
letter-spacing: 0.04em;
margin-bottom: 6px;
}
.home-product-card__name {
font-size: 15px;
font-weight: 800;
line-height: 1.35;
color: var(--dark);
margin: 0 0 auto;
padding-bottom: 12px;
}
.home-product-card__meta {
margin-top: auto;
}
.home-product-card__price {
font-size: 17px;
font-weight: 800;
color: var(--dark);
}
.home-product-card__price--req {
font-size: 14px;
font-weight: 700;
color: var(--primary);
}
.home-product-card__cta {
margin: 0 18px 16px;
padding: 10px;
border: none;
border-radius: 10px;
background: var(--primary);
color: #fff;
font-family: inherit;
font-size: 13px;
font-weight: 700;
cursor: pointer;
transition: background 0.2s;
}
.home-product-card__cta:hover {
background: var(--primary-dark);
}
.home-product-card__cta:focus-visible {
outline: 3px solid var(--primary);
outline-offset: 2px;
}
.home-review-card {
margin: 0;
height: 100%;
padding: 24px;
background: #fff;
border-radius: var(--radius);
border: 1px solid var(--gray-light);
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
display: flex;
flex-direction: column;
}
.home-review-card__stars {
color: #f5a623;
font-size: 18px;
letter-spacing: 2px;
margin-bottom: 12px;
}
.home-review-card__text {
font-size: 15px;
line-height: 1.65;
color: var(--text);
flex: 1;
margin: 0 0 16px;
}
.home-review-card__footer {
border-top: 1px solid var(--gray-light);
padding-top: 14px;
}
.home-review-card__name {
display: block;
font-size: 14px;
font-weight: 800;
color: var(--dark);
margin-bottom: 4px;
}
.home-review-card__product {
font-size: 13px;
color: var(--primary);
font-weight: 600;
text-decoration: none;
}
.home-review-card__product:hover {
text-decoration: underline;
}
.home-cta.cta-banner {
background: linear-gradient(120deg, var(--primary-dark), var(--primary));
}
.home-map {
background: #fff;
padding: 56px 24px 72px;
border-top: 1px solid var(--gray-light);
}
.home-map__grid {
display: grid;
grid-template-columns: 1fr minmax(280px, 1.2fr);
gap: 36px;
align-items: stretch;
}
.home-map__title {
font-size: 26px;
font-weight: 800;
color: var(--dark);
margin-bottom: 14px;
}
.home-map__addr {
font-size: 15px;
color: var(--gray);
line-height: 1.6;
margin-bottom: 20px;
}
.home-map__contacts {
list-style: none;
margin: 0 0 20px;
padding: 0;
}
.home-map__contacts li {
margin-bottom: 8px;
}
.home-map__contacts a {
font-size: 16px;
font-weight: 700;
color: var(--primary);
text-decoration: none;
}
.home-map__contacts a:hover {
text-decoration: underline;
}
.home-map__social {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-bottom: 20px;
}
.home-map__social a {
display: inline-flex;
align-items: center;
padding: 8px 16px;
border-radius: 999px;
font-size: 13px;
font-weight: 700;
background: var(--bg);
border: 1px solid var(--gray-light);
color: var(--dark);
text-decoration: none;
transition: border-color 0.2s, color 0.2s;
}
.home-map__social a:hover {
border-color: var(--primary);
color: var(--primary);
}
.home-map__link {
font-size: 14px;
font-weight: 700;
color: var(--primary);
text-decoration: none;
}
.home-map__link:hover {
text-decoration: underline;
}
.home-map__frame-wrap {
border-radius: var(--radius);
overflow: hidden;
min-height: 280px;
border: 1px solid var(--gray-light);
box-shadow: var(--card-shadow);
}
.home-map__iframe {
width: 100%;
height: 100%;
min-height: 280px;
border: 0;
display: block;
}
@media (max-width: 900px) {
.home-map__grid {
grid-template-columns: 1fr;
}
}
@media (prefers-reduced-motion: reduce) {
.home-carousel__viewport {
scroll-behavior: auto;
}
.home-btn--primary:hover,
.home-product-card:hover {
transform: none;
}
}
.catalog-page-wrap {
position: relative;
padding: 32px 0 64px;
}
.catalog-mobile-toggle {
display: none;
width: calc(100% - 48px);
max-width: 400px;
margin: 0 auto 16px;
padding: 12px 18px;
border-radius: 12px;
border: 2px solid var(--primary);
background: #fff;
font-family: inherit;
font-size: 15px;
font-weight: 700;
color: var(--primary);
cursor: pointer;
align-items: center;
justify-content: center;
gap: 8px;
}
.catalog-mobile-backdrop {
position: fixed;
inset: 0;
background: rgba(13, 27, 42, 0.45);
z-index: 850;
}
.catalog-mobile-backdrop[hidden] {
display: none !important;
}
.catalog-mobile-backdrop:not([hidden]) {
display: block;
}
.catalog-sidebar-inner {
display: flex;
flex-direction: column;
gap: 0;
}
.catalog-sidebar-search {
padding: 12px 16px 16px;
}
.catalog-search-input {
width: 100%;
border: 2px solid var(--gray-light);
border-radius: 10px;
padding: 11px 14px;
font-size: 14px;
font-family: inherit;
outline: none;
transition: border-color 0.2s;
}
.catalog-search-input:focus {
border-color: var(--primary);
box-shadow: 0 0 0 3px rgba(26, 115, 232, 0.12);
}
.catalog-price-hint {
font-size: 11px;
color: var(--gray);
margin: 8px 0 10px;
}
.catalog-reset-filters {
width: calc(100% - 32px);
margin: 8px 16px 16px;
padding: 10px;
border-radius: 10px;
border: 1px solid var(--gray-light);
background: var(--bg);
font-family: inherit;
font-size: 13px;
font-weight: 700;
color: var(--gray);
cursor: pointer;
transition: border-color 0.2s, color 0.2s;
}
.catalog-reset-filters:hover {
border-color: var(--primary);
color: var(--primary);
}
.catalog-toolbar--top {
flex-wrap: wrap;
}
#catalogResults[aria-busy="true"] {
opacity: 0.55;
pointer-events: none;
transition: opacity 0.2s;
}
.catalog-seo {
margin-top: 48px;
}
.catalog-products.products-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 12px;
}
.catalog-products.products-list {
display: flex;
flex-direction: column;
gap: 14px;
}
.cat-pcard {
display: flex;
flex-direction: column;
background: var(--white);
border-radius: 8px;
border: 1px solid var(--color-border, #E2E8F0);
overflow: hidden;
transition: box-shadow 0.2s, border-color 0.2s, transform 0.2s;
font-size: 14px;
}
.cat-pcard:hover {
border-color: var(--color-primary, #023E8A);
box-shadow: 0 4px 12px rgba(2, 62, 138, 0.08);
transform: translateY(-2px);
}
.cat-pcard__media {
position: relative;
display: block;
aspect-ratio: 1 / 1;
background: var(--color-bg-soft, #F7F9FC);
overflow: hidden;
}
.cat-pcard__img {
width: 100%;
height: 100%;
object-fit: contain;
transition: transform 0.3s;
}
.cat-pcard:hover .cat-pcard__img { transform: scale(1.05); }
.cat-pcard__img--placeholder {
display: flex;
align-items: center;
justify-content: center;
font-size: 56px;
opacity: 0.35;
}
.cat-pcard__badge {
position: absolute;
top: 10px;
left: 10px;
z-index: 1;
font-size: 10px;
font-weight: 800;
text-transform: uppercase;
letter-spacing: 0.04em;
padding: 4px 10px;
border-radius: 6px;
color: #fff;
}
.cat-pcard__badge--new { background: var(--primary); }
.cat-pcard__badge--hit { background: var(--accent2); }
.cat-pcard__badge--sale { background: #16a34a; }
.cat-pcard__body {
padding: 8px 10px 10px;
display: flex;
flex-direction: column;
flex: 1;
gap: 4px;
}
.cat-pcard__title {
font-size: 13px;
font-weight: 500;
line-height: 1.3;
color: var(--color-text, #1A2332);
text-decoration: none;
margin: 0;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
min-height: 2.6em;
}
.cat-pcard__title:hover {
color: var(--primary);
}
.cat-pcard__brand {
font-size: 11px;
color: var(--gray);
margin: 0;
font-weight: 500;
}
.cat-pcard__sku {
font-size: 10px;
color: var(--gray);
text-transform: uppercase;
letter-spacing: 0.04em;
margin: 0;
}
.cat-pcard__price-block {
margin-top: 2px;
}
.cat-pcard__price {
font-size: 16px;
font-weight: 700;
color: var(--color-primary, #023E8A);
}
.cat-pcard__price-old {
display: block;
font-size: 12px;
color: var(--gray);
text-decoration: line-through;
margin-bottom: 2px;
}
.cat-pcard__price--request {
font-size: 14px;
font-weight: 700;
color: var(--primary);
}
.cat-pcard__actions {
display: flex;
flex-wrap: wrap;
gap: 4px;
margin-top: 8px;
}
.cat-pcard__btn {
flex: 1;
min-width: 0;
padding: 6px 10px;
border-radius: 6px;
border: none;
font-family: inherit;
font-size: 12px;
font-weight: 600;
cursor: pointer;
transition: background 0.2s, border-color 0.2s, color 0.2s;
}
@media (max-width: 640px) {
.cat-pcard__actions { display: none; }
.cat-pcard__body { padding: 6px 8px 8px; }
.cat-pcard__title { font-size: 12px; }
.cat-pcard__price { font-size: 14px; }
}
.cat-pcard__btn--cart {
background: var(--primary);
color: #fff;
}
.cat-pcard__btn--cart:hover {
background: var(--primary-dark);
}
.cat-pcard__btn--secondary {
background: var(--bg);
color: var(--primary);
border: 2px solid var(--primary);
}
.cat-pcard__btn:focus-visible {
outline: 3px solid var(--primary);
outline-offset: 2px;
}
.products-list .cat-pcard {
flex-direction: row;
flex-wrap: wrap;
align-items: stretch;
}
.products-list .cat-pcard__media {
width: 160px;
min-height: 140px;
height: auto;
flex-shrink: 0;
}
.products-list .cat-pcard__body {
flex: 1;
min-width: 200px;
padding: 16px 18px;
}
.products-list .cat-pcard__actions {
width: 100%;
flex-basis: 100%;
padding: 0 18px 16px;
margin-top: 0;
border-top: 1px solid var(--gray-light);
padding-top: 12px;
}
@media (min-width: 640px) {
.products-list .cat-pcard {
flex-wrap: nowrap;
}
.products-list .cat-pcard__actions {
width: auto;
flex-basis: auto;
flex-direction: column;
justify-content: center;
border-top: none;
border-left: 1px solid var(--gray-light);
padding: 16px 18px;
margin-top: 0;
min-width: 160px;
}
.products-list .cat-pcard__btn {
flex: none;
width: 100%;
}
}
.catalog-empty {
text-align: center;
padding: 48px 24px;
background: var(--bg);
border-radius: var(--radius);
}
.catalog-empty__icon {
font-size: 48px;
margin-bottom: 12px;
}
.catalog-empty__title {
font-size: 20px;
font-weight: 800;
color: var(--dark);
margin-bottom: 8px;
}
.catalog-empty__text {
color: var(--gray);
margin-bottom: 20px;
}
.catalog-pagination {
margin-top: 28px;
}
.catalog-pagination .page-btn {
font-family: inherit;
cursor: pointer;
}
.catalog-pagination .page-btn:disabled {
cursor: not-allowed;
}
@media (max-width: 900px) {
.catalog-mobile-toggle {
display: flex;
}
.catalog-sidebar-box {
position: fixed;
top: 0;
left: 0;
bottom: 0;
width: min(320px, 92vw);
max-width: 100%;
background: #fff;
z-index: 900;
transform: translateX(-100%);
transition: transform 0.3s ease;
overflow-y: auto;
box-shadow: 8px 0 32px rgba(0, 0, 0, 0.12);
}
.catalog-sidebar-box.is-open {
transform: translateX(0);
}
.catalog-layout {
grid-template-columns: 1fr;
}
}
.pd-page {
max-width: 1200px;
margin: 0 auto;
padding: 0 24px 72px;
}
.pd-top {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
gap: 40px;
align-items: start;
margin-bottom: 48px;
}
@media (max-width: 900px) {
.pd-top {
grid-template-columns: 1fr;
gap: 28px;
}
}
.pd-gallery__main {
position: relative;
border-radius: var(--radius);
background: var(--bg);
border: 1px solid var(--gray-light);
overflow: hidden;
min-height: 320px;
display: flex;
align-items: center;
justify-content: center;
}
.pd-gallery__img {
width: 100%;
max-width: 100%;
max-height: 480px;
object-fit: contain;
display: block;
}
.pd-gallery__placeholder {
font-size: 120px;
opacity: 0.25;
padding: 60px;
}
.pd-gallery__badges {
position: absolute;
top: 14px;
left: 14px;
z-index: 2;
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: center;
gap: 6px;
max-width: calc(100% - 28px);
}
.pd-badge {
font-size: 11px;
font-weight: 800;
text-transform: uppercase;
letter-spacing: 0.04em;
padding: 4px 10px;
border-radius: 6px;
color: #fff;
}
.pd-badge--hit { background: var(--accent2); }
.pd-badge--new { background: var(--primary); }
.pd-badge--sale { background: #16a34a; }
.pd-gallery__thumbs {
display: flex;
gap: 10px;
flex-wrap: wrap;
margin-top: 14px;
}
.pd-thumb {
padding: 0;
border: 2px solid var(--gray-light);
border-radius: 10px;
overflow: hidden;
cursor: pointer;
background: #fff;
flex: 0 0 auto;
transition: border-color 0.2s, box-shadow 0.2s;
}
.pd-thumb img {
width: 72px;
height: 72px;
object-fit: cover;
display: block;
}
.pd-thumb:hover,
.pd-thumb:focus-visible {
border-color: var(--primary);
outline: none;
}
.pd-thumb.is-active {
border-color: var(--primary);
box-shadow: 0 0 0 3px rgba(26, 115, 232, 0.2);
}
.pd-summary {
display: flex;
flex-direction: column;
gap: 12px;
}
.pd-sku {
font-size: 13px;
color: var(--gray);
margin: 0;
}
.pd-rating {
display: flex;
align-items: center;
gap: 8px;
flex-wrap: wrap;
}
.pd-rating__stars {
color: #f5a623;
letter-spacing: 2px;
}
.pd-rating__num {
font-weight: 800;
}
.pd-rating__link {
font-size: 14px;
font-weight: 600;
color: var(--primary);
text-decoration: none;
}
.pd-rating__link:hover {
text-decoration: underline;
}
.pd-title {
font-size: clamp(1.5rem, 3vw, 2rem);
font-weight: 800;
line-height: 1.2;
color: var(--dark);
margin: 0;
}
.pd-lead {
font-size: 15px;
line-height: 1.65;
color: var(--gray);
margin: 0;
}
.pd-tags {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.pd-tag {
font-size: 12px;
font-weight: 600;
padding: 4px 10px;
border-radius: 20px;
background: rgba(26, 115, 232, 0.08);
color: var(--primary);
border: 1px solid rgba(26, 115, 232, 0.2);
}
.pd-availability {
font-size: 14px;
font-weight: 700;
margin: 4px 0 0;
}
.pd-availability--in_stock { color: #0d9488; }
.pd-availability--on_order { color: #d97706; }
.pd-availability--out_of_stock { color: #dc2626; }
.pd-price-box {
padding: 20px 0;
border-top: 1px solid var(--gray-light);
border-bottom: 1px solid var(--gray-light);
}
.pd-price--request {
font-size: 1.25rem;
font-weight: 800;
color: var(--primary);
}
.pd-price-note {
font-size: 13px;
color: var(--gray);
margin: 8px 0 0;
}
.pd-price-old {
font-size: 16px;
color: var(--gray);
text-decoration: line-through;
margin-bottom: 4px;
}
.pd-price-current {
font-size: 2rem;
font-weight: 800;
color: var(--dark);
letter-spacing: -0.02em;
}
.pd-price-currency {
font-size: 1rem;
font-weight: 700;
}
.pd-price-vat {
font-size: 13px;
color: var(--gray);
margin: 6px 0 0;
}
.pd-discount-pill {
display: inline-block;
margin-top: 10px;
background: #fee2e2;
color: #b91c1c;
font-size: 12px;
font-weight: 800;
padding: 4px 12px;
border-radius: 20px;
}
.pd-buy {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 12px;
margin-top: 8px;
}
.pd-qty {
display: inline-flex;
align-items: center;
border: 2px solid var(--gray-light);
border-radius: 12px;
overflow: hidden;
}
.pd-qty__btn {
width: 44px;
height: 48px;
border: none;
background: var(--bg);
font-size: 20px;
cursor: pointer;
transition: background 0.15s;
}
.pd-qty__btn:hover {
background: rgba(26, 115, 232, 0.08);
}
.pd-qty__input {
width: 52px;
height: 48px;
border: none;
border-left: 1px solid var(--gray-light);
border-right: 1px solid var(--gray-light);
text-align: center;
font-size: 16px;
font-weight: 700;
font-family: inherit;
}
.pd-btn {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 48px;
padding: 0 22px;
border-radius: 12px;
font-family: inherit;
font-size: 15px;
font-weight: 700;
cursor: pointer;
border: 2px solid transparent;
transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.pd-btn--primary {
background: var(--primary);
color: #fff;
}
.pd-btn--primary:hover {
background: var(--primary-dark);
}
.pd-btn--outline {
background: #fff;
border-color: var(--gray-light);
color: var(--dark);
}
.pd-btn--outline:hover,
.pd-btn--outline.is-active {
border-color: var(--primary);
color: var(--primary);
background: rgba(26, 115, 232, 0.06);
}
.pd-stock-msg {
font-size: 14px;
color: var(--gray);
margin: 0;
}
.pd-files {
margin-top: 20px;
padding: 18px;
background: var(--bg);
border-radius: var(--radius);
border: 1px solid var(--gray-light);
}
.pd-files__title {
font-size: 14px;
font-weight: 800;
margin: 0 0 12px;
}
.pd-files__list {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.pd-file-link {
display: inline-flex;
padding: 8px 14px;
border-radius: 8px;
background: #fff;
border: 1px solid var(--gray-light);
font-size: 13px;
font-weight: 700;
color: var(--primary);
text-decoration: none;
}
.pd-file-link:hover {
border-color: var(--primary);
}
.pd-section {
margin-bottom: 48px;
}
.pd-section__title {
font-size: 1.35rem;
font-weight: 800;
color: var(--dark);
margin: 0 0 18px;
padding-bottom: 10px;
border-bottom: 2px solid var(--primary);
}
.pd-section__count {
font-weight: 600;
color: var(--gray);
}
.pd-prose {
font-size: 15px;
line-height: 1.75;
color: var(--text);
}
.pd-prose img {
max-width: 100%;
height: auto;
border-radius: 8px;
}
.pd-muted {
color: var(--gray);
font-size: 15px;
}
.pd-brand__card {
display: flex;
flex-wrap: wrap;
gap: 24px;
padding: 24px;
background: var(--white);
border: 1px solid var(--gray-light);
border-radius: var(--radius);
box-shadow: var(--card-shadow);
}
.pd-brand__logo {
max-width: 140px;
max-height: 80px;
object-fit: contain;
}
.pd-brand__name {
font-size: 1.2rem;
font-weight: 800;
margin: 0 0 8px;
}
.pd-brand__desc {
font-size: 14px;
color: var(--gray);
line-height: 1.55;
margin: 0 0 10px;
}
.pd-brand__web,
.pd-brand__more {
display: inline-block;
font-size: 14px;
font-weight: 700;
color: var(--primary);
text-decoration: none;
margin-right: 16px;
margin-top: 6px;
}
.pd-brand__web:hover,
.pd-brand__more:hover {
text-decoration: underline;
}
.pd-table-wrap {
overflow-x: auto;
border: 1px solid var(--gray-light);
border-radius: var(--radius);
}
.pd-specs-table {
width: 100%;
border-collapse: collapse;
font-size: 14px;
}
.pd-specs-table th,
.pd-specs-table td {
padding: 12px 18px;
text-align: left;
border-bottom: 1px solid var(--gray-light);
}
.pd-specs-table th {
width: 38%;
font-weight: 700;
color: var(--gray);
background: var(--bg);
}
.pd-specs-table tr:last-child th,
.pd-specs-table tr:last-child td {
border-bottom: none;
}
.pd-review-list {
list-style: none;
margin: 0 0 28px;
padding: 0;
display: flex;
flex-direction: column;
gap: 16px;
}
.pd-review {
padding: 20px;
background: var(--white);
border: 1px solid var(--gray-light);
border-radius: var(--radius);
}
.pd-review__head {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 10px;
margin-bottom: 10px;
}
.pd-review__name {
font-size: 15px;
}
.pd-review__stars {
color: #f5a623;
letter-spacing: 2px;
}
.pd-review__date {
margin-left: auto;
font-size: 13px;
color: var(--gray);
}
.pd-review__text {
margin: 0;
font-size: 15px;
line-height: 1.6;
color: var(--text);
}
.pd-review-form-wrap {
max-width: 520px;
padding: 24px;
background: var(--bg);
border-radius: var(--radius);
border: 1px solid var(--gray-light);
}
.pd-review-form__title {
font-size: 17px;
font-weight: 800;
margin: 0 0 18px;
}
.pd-form-row {
margin-bottom: 14px;
}
.pd-form-row label {
display: block;
font-size: 12px;
font-weight: 700;
color: var(--gray);
text-transform: uppercase;
letter-spacing: 0.04em;
margin-bottom: 6px;
}
.pd-review-form .form-control,
.pd-review-form input,
.pd-review-form select,
.pd-review-form textarea {
width: 100%;
border: 2px solid var(--gray-light);
border-radius: 10px;
padding: 10px 14px;
font-size: 14px;
font-family: inherit;
box-sizing: border-box;
}
.pd-review-form .form-control:focus,
.pd-review-form input:focus,
.pd-review-form select:focus,
.pd-review-form textarea:focus {
outline: none;
border-color: var(--primary);
}
.pd-form-note {
font-size: 12px;
color: var(--gray);
margin-top: 10px;
}
.pd-related-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
gap: 20px;
}
.pd-related-card .cat-pcard__actions {
margin-top: 12px;
}
.bc-current {
word-break: break-word;
max-width: 100%;
}
.nav-cat-icon {
width: 22px;
height: 22px;
border-radius: 5px;
object-fit: contain;
vertical-align: middle;
flex-shrink: 0;
}
.mega-col__head .nav-cat-icon {
width: 28px;
height: 28px;
padding: 2px;
background: #e3f2fd;
border-radius: 7px;
}
.sidebar-cat-img {
width: 20px;
height: 20px;
border-radius: 3px;
object-fit: cover;
margin-right: 6px;
flex-shrink: 0;
}
.sidebar-cat-placeholder {
width: 20px;
height: 20px;
border-radius: 3px;
background: #e3f2fd;
color: #0D47A1;
display: inline-flex;
align-items: center;
justify-content: center;
font-weight: 700;
font-size: 10px;
flex-shrink: 0;
margin-right: 6px;
}
.cat-card-img {
width: 100%;
aspect-ratio: 4/3;
object-fit: cover;
border-radius: 8px 8px 0 0;
}
.cat-card-placeholder {
width: 100%;
aspect-ratio: 4/3;
background: linear-gradient(135deg, #0D47A1 0%, #082C66 100%);
border-radius: 8px 8px 0 0;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 2rem;
font-weight: 700;
}
.cat-hero-img {
width: 48px;
height: 48px;
border-radius: 8px;
object-fit: cover;
vertical-align: middle;
margin-right: 8px;
}
.cat-hero-placeholder {
width: 48px;
height: 48px;
border-radius: 8px;
background: #e3f2fd;
color: #0D47A1;
display: inline-flex;
align-items: center;
justify-content: center;
font-weight: 700;
font-size: 20px;
vertical-align: middle;
margin-right: 8px;
}
.cat-panel-img {
width: 28px;
height: 28px;
border-radius: 4px;
object-fit: cover;
vertical-align: middle;
margin-right: 8px;
}
.dash-cat-thumb {
width: 40px;
height: 40px;
border-radius: 6px;
object-fit: cover;
}
.dash-cat-thumb-placeholder {
width: 40px;
height: 40px;
border-radius: 6px;
background: #f1f5f9;
display: flex;
align-items: center;
justify-content: center;
color: #94a3b8;
font-size: 18px;
}
.cat-big-card-img {
width: 100%;
height: 140px;
object-fit: cover;
border-radius: 12px 12px 0 0;
}
.cat-big-card-placeholder {
width: 100%;
height: 140px;
background: linear-gradient(135deg, #0D47A1 0%, #082C66 100%);
border-radius: 12px 12px 0 0;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 2.5rem;
font-weight: 700;
}
.cat-full-img {
width: 56px;
height: 56px;
border-radius: 10px;
object-fit: cover;
flex-shrink: 0;
}
.cat-full-placeholder {
width: 56px;
height: 56px;
border-radius: 10px;
background: linear-gradient(135deg, #0D47A1 0%, #082C66 100%);
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 1.5rem;
font-weight: 700;
flex-shrink: 0;
}
.dash-cat-img-preview {
max-width: 200px;
max-height: 150px;
border-radius: 8px;
object-fit: cover;
border: 2px solid #e2e8f0;
margin-bottom: 12px;
}
.home-catalog-sections {
padding: 64px 0;
background: #f8fafc;
}
.home-catalog-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 20px;
}
@media (max-width: 1024px) {
.home-catalog-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
.home-catalog-grid { grid-template-columns: repeat(2, 1fr); }
.home-catalog-sections { padding: 40px 0; }
}
@media (max-width: 480px) {
.home-catalog-grid { grid-template-columns: 1fr; }
}
.home-catalog-card {
display: flex;
align-items: center;
gap: 14px;
background: #fff;
border-radius: 12px;
padding: 16px;
text-decoration: none;
color: inherit;
box-shadow: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
transition: transform .2s, box-shadow .2s;
}
.home-catalog-card:hover {
transform: translateY(-3px);
box-shadow: 0 8px 24px rgba(0,0,0,.1);
}
.home-catalog-card__media {
width: 52px;
height: 52px;
border-radius: 10px;
overflow: hidden;
flex-shrink: 0;
background: linear-gradient(135deg, #0D47A1, #082C66);
display: flex;
align-items: center;
justify-content: center;
}
.home-catalog-card__media img {
width: 100%;
height: 100%;
object-fit: cover;
}
.home-catalog-card__letter {
color: #fff;
font-size: 1.3rem;
font-weight: 700;
}
.home-catalog-card__body {
flex: 1;
min-width: 0;
}
.home-catalog-card__name {
font-size: 15px;
font-weight: 600;
margin: 0;
line-height: 1.3;
color: var(--dark);
}
.home-catalog-card__count {
font-size: 12px;
color: var(--gray);
margin-top: 2px;
display: block;
}
.home-catalog-card__arrow {
font-size: 18px;
color: var(--gray-light);
flex-shrink: 0;
transition: color .2s, transform .2s;
}
.home-catalog-card:hover .home-catalog-card__arrow {
color: var(--primary);
transform: translateX(3px);
}
.home-catalog-cta {
text-align: center;
margin-top: 32px;
}
.home-catalog-cta__btn {
display: inline-block;
padding: 14px 36px;
background: var(--primary);
color: #fff;
border-radius: 10px;
font-weight: 600;
font-size: 15px;
text-decoration: none;
transition: background .2s, transform .15s;
}
.home-catalog-cta__btn:hover {
background: var(--primary-dark, #082C66);
transform: translateY(-1px);
}
.catidx-section {
padding: 48px 0 64px;
}
.catidx-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 24px;
}
@media (max-width: 768px) {
.catidx-grid { grid-template-columns: 1fr; }
.catidx-section { padding: 32px 0 48px; }
}
.catidx-card {
background: #fff;
border-radius: 14px;
box-shadow: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
overflow: hidden;
transition: box-shadow .2s;
}
.catidx-card:hover {
box-shadow: 0 8px 24px rgba(0,0,0,.1);
}
.catidx-card__main {
display: flex;
align-items: center;
gap: 18px;
padding: 20px;
text-decoration: none;
color: inherit;
transition: background .15s;
}
.catidx-card__main:hover {
background: #f8fafc;
}
.catidx-card__media {
width: 72px;
height: 72px;
border-radius: 12px;
overflow: hidden;
flex-shrink: 0;
background: linear-gradient(135deg, #0D47A1, #082C66);
display: flex;
align-items: center;
justify-content: center;
}
.catidx-card__media img {
width: 100%;
height: 100%;
object-fit: cover;
}
.catidx-card__letter {
color: #fff;
font-size: 1.8rem;
font-weight: 700;
}
.catidx-card__body {
flex: 1;
min-width: 0;
}
.catidx-card__name {
font-size: 17px;
font-weight: 700;
margin: 0 0 4px;
color: var(--dark);
}
.catidx-card__desc {
font-size: 13px;
color: var(--gray);
margin: 0 0 6px;
line-height: 1.4;
}
.catidx-card__count {
font-size: 12px;
color: var(--primary);
font-weight: 600;
}
.catidx-card__arrow {
font-size: 22px;
color: var(--gray-light);
flex-shrink: 0;
transition: color .2s, transform .2s;
}
.catidx-card__main:hover .catidx-card__arrow {
color: var(--primary);
transform: translateX(4px);
}
.catidx-children {
border-top: 1px solid #f1f5f9;
padding: 12px 20px 16px;
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.catidx-child {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 6px 12px;
background: #f8fafc;
border-radius: 8px;
text-decoration: none;
color: var(--dark);
font-size: 13px;
font-weight: 500;
transition: background .15s, color .15s;
}
.catidx-child:hover {
background: #e3f2fd;
color: var(--primary);
}
.catidx-child__img {
width: 18px;
height: 18px;
border-radius: 3px;
object-fit: cover;
}
.catidx-child__dot {
width: 6px;
height: 6px;
border-radius: 50%;
background: var(--primary);
opacity: .5;
flex-shrink: 0;
}
.catidx-child__name {
white-space: nowrap;
}
.catidx-child__count {
font-size: 11px;
color: var(--gray);
font-weight: 400;
}
.catidx-footer {
text-align: center;
margin-top: 40px;
}
.catidx-footer__btn {
display: inline-block;
padding: 14px 36px;
background: var(--primary);
color: #fff;
border-radius: 10px;
font-weight: 600;
font-size: 15px;
text-decoration: none;
transition: background .2s, transform .15s;
}
.catidx-footer__btn:hover {
background: var(--primary-dark, #082C66);
transform: translateY(-1px);
}
.container {
max-width: min(var(--max-width), 100%);
margin-left: auto;
margin-right: auto;
padding-left: var(--side-padding);
padding-right: var(--side-padding);
}
.topbar {
background: #023E8A;
color: rgba(255, 255, 255, 0.92);
font-size: 13px;
border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.topbar__inner {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
min-height: 36px;
padding-top: 6px;
padding-bottom: 6px;
flex-wrap: wrap;
}
.topbar__info-group,
.topbar__contact-group {
display: inline-flex;
align-items: center;
gap: 12px;
flex-wrap: wrap;
line-height: 1.2;
}
.topbar__info-item {
display: inline-flex;
align-items: center;
gap: 6px;
white-space: nowrap;
}
.topbar__info-item svg {
flex-shrink: 0;
opacity: 0.85;
}
.topbar__divider {
opacity: 0.45;
user-select: none;
}
.topbar__online {
font-weight: 600;
color: #fff;
}
.topbar__phone,
.topbar__email {
display: inline-flex;
align-items: center;
gap: 6px;
color: rgba(255, 255, 255, 0.92);
text-decoration: none;
white-space: nowrap;
transition: color 150ms ease;
}
.topbar__phone:hover,
.topbar__email:hover {
color: #fff;
text-decoration: underline;
text-underline-offset: 3px;
}
.topbar__phone svg {
flex-shrink: 0;
opacity: 0.85;
}
@media (max-width: 768px) {
.topbar__inner { gap: 8px; min-height: 32px; padding-top: 4px; padding-bottom: 4px; font-size: 12px; }
.topbar__hours { display: none; }
.topbar__divider { display: none; }
.topbar__email { display: none; }
}
@media (max-width: 480px) {
.topbar__online { font-size: 11.5px; }
.topbar__phone { font-size: 12px; }
}
.topbar-lang-btn.is-active {
background: transparent !important;
color: #fff !important;
text-decoration: underline;
text-underline-offset: 4px;
}
.site-header-shell {
transition: box-shadow var(--transition), min-height var(--transition);
}
.site-header-shell.scrolled {
box-shadow: var(--shadow-md);
}
.site-header.scrolled {
box-shadow: none;
}
.header-inner {
max-width: min(1320px, 100%);
padding-left: var(--side-padding);
padding-right: var(--side-padding);
min-height: 56px;
height: auto;
justify-content: space-between;
}
@media (min-width: 641px) {
.header-inner {
min-height: 72px;
}
}
.logo-img {
width: 40px;
height: 40px;
}
@media (min-width: 641px) {
.logo-img {
width: 44px;
height: 44px;
}
}
.header-brand-name {
font-size: clamp(0.85rem, 2vw, 1rem);
}
.header-icon-btn {
min-width: 44px;
min-height: 44px;
}
.nav-inner {
max-width: var(--max-width);
padding-left: var(--side-padding);
padding-right: var(--side-padding);
}
.nav-links--desktop {
gap: clamp(16px, 2.5vw, 32px);
}
.nav-link {
position: relative;
padding: 10px 0;
transition: color var(--transition);
}
.nav-item--mega:hover .nav-link,
.nav-item:hover > .nav-link,
.nav-links--desktop .nav-item > .nav-link:hover {
background: transparent;
}
.nav-links--desktop .nav-item > .nav-link::after {
content: "";
position: absolute;
left: 0;
right: 0;
bottom: 4px;
height: 2px;
background: var(--blue);
opacity: 0;
transform: scaleX(0.6);
transition: opacity var(--transition), transform var(--transition);
}
.nav-item:hover > .nav-link::after,
.nav-item--mega:hover .nav-link::after {
opacity: 1;
transform: scaleX(1);
}
.mega-menu {
animation: megaFade 0.25s ease;
}
@keyframes megaFade {
from {
opacity: 0;
transform: translateY(8px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.mega-menu-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 20px;
}
@media (max-width: 900px) {
.mega-menu-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 640px) {
.mega-menu-grid {
grid-template-columns: 1fr;
}
}
.nav-mobile-drawer {
max-width: min(400px, 92vw);
transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}
.home-hero__title {
font-size: clamp(1.75rem, 4vw, 3.25rem);
font-weight: 800;
line-height: 1.15;
letter-spacing: -0.02em;
}
.hero-title,
.home-hero__title {
font-size: clamp(1.75rem, 4vw, 3.25rem);
}
.home-hero__desc,
.hero-desc {
font-size: clamp(0.95rem, 1.5vw, 1.15rem);
max-width: 560px;
line-height: 1.65;
}
.home-hero__actions {
flex-direction: column;
align-items: stretch;
gap: 12px;
}
@media (min-width: 481px) {
.home-hero__actions {
flex-direction: row;
flex-wrap: wrap;
align-items: center;
}
}
.home-btn {
min-height: 44px;
display: inline-flex;
align-items: center;
justify-content: center;
padding: 12px 22px;
}
@media (max-width: 480px) {
.home-btn {
width: 100%;
justify-content: center;
}
}
.home-hero__layout {
gap: clamp(20px, 4vw, 48px);
}
.home-hero__cards {
grid-template-columns: 1fr;
}
@media (min-width: 641px) {
.home-hero__cards {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (min-width: 901px) {
.home-hero__cards {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
.partners-track-wrap {
overflow: hidden;
mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
}
.partners-track {
display: flex;
align-items: center;
gap: clamp(24px, 4vw, 40px);
width: max-content;
padding: 8px 0;
animation: scroll-partners 36s linear infinite;
}
.partners-track:hover {
animation-play-state: paused;
}
.partners-band--static .partners-track-wrap {
mask-image: none;
}
.partners-band--static .partners-track,
.partners-track[data-marquee="false"] {
animation: none !important;
width: 100%;
justify-content: center;
flex-wrap: wrap;
}
.partner-item {
flex: 0 0 auto;
flex-shrink: 0;
}
.partner-item img {
max-height: 40px;
width: auto;
filter: grayscale(1);
opacity: 0.85;
transition: filter var(--transition), opacity var(--transition), transform var(--transition);
}
.partner-item:hover img {
filter: none;
opacity: 1;
}
.cat-grid,
.home-catalog-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
gap: 20px;
}
@media (max-width: 900px) {
.cat-grid,
.home-catalog-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
}
@media (max-width: 640px) {
.cat-grid,
.home-catalog-grid {
grid-template-columns: repeat(2, 1fr);
gap: 12px;
}
}
.home-catalog-card {
transition: transform var(--transition), box-shadow var(--transition);
}
.home-catalog-card:hover {
transform: scale(1.02);
box-shadow: var(--shadow-lg);
}
.home-catalog-card__name {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.product-card {
border-radius: var(--radius-md);
overflow: hidden;
background: var(--white);
border: 1px solid var(--gray-200);
transition: transform var(--transition), box-shadow var(--transition);
display: flex;
flex-direction: column;
}
.product-card:hover {
transform: translateY(-2px);
box-shadow: var(--shadow-lg);
}
.product-card img {
aspect-ratio: 1;
object-fit: cover;
width: 100%;
}
.product-card__name {
font-size: clamp(0.85rem, 1.2vw, 1rem);
font-weight: 600;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.product-card__price {
font-size: clamp(1rem, 1.5vw, 1.25rem);
font-weight: 700;
color: var(--blue);
}
.products-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 20px;
}
@media (max-width: 1200px) {
.products-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
}
@media (max-width: 640px) {
.products-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
}
}
.services-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 24px;
align-items: stretch;
}
@media (min-width: 901px) {
.services-grid {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
}
@media (max-width: 900px) {
.services-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 640px) {
.services-grid {
grid-template-columns: 1fr;
}
}
.service-card {
display: flex;
flex-direction: column;
min-height: 100%;
height: 100%;
}
.service-card .service-btn {
margin-top: auto;
min-height: 44px;
}
.service-icon {
font-size: 48px;
line-height: 1;
}
.about-stats,
.home-hero__stats {
display: grid;
gap: 16px;
}
.about-stats {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (min-width: 901px) {
.about-stats {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
}
.astat strong,
.home-hero__stat strong {
font-size: clamp(1.5rem, 3vw, 2.5rem);
font-weight: 800;
color: var(--blue);
}
.home-carousel--reviews .home-carousel__slide {
flex: 0 0 100%;
}
@media (min-width: 641px) {
.home-carousel--reviews .home-carousel__slide {
flex: 0 0 calc(50% - 10px);
}
}
@media (min-width: 901px) {
.home-carousel--reviews .home-carousel__slide {
flex: 0 0 calc(33.333% - 14px);
}
}
.home-review-card__text {
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
}
.cta-inner {
max-width: var(--max-width);
padding-left: var(--side-padding);
padding-right: var(--side-padding);
flex-direction: column;
text-align: center;
gap: 24px;
}
@media (min-width: 641px) {
.cta-inner {
flex-direction: row;
text-align: left;
align-items: center;
justify-content: space-between;
}
}
.cta-form {
width: 100%;
max-width: 520px;
justify-content: center;
}
.cta-input {
flex: 1 1 200px;
min-width: 0;
width: auto;
}
.cta-submit {
min-height: 44px;
}
.footer-accordion {
border: none;
padding: 0;
margin: 0;
}
@media (min-width: 641px) {
.footer-accordion .footer-accordion__body {
display: block !important;
}
.footer-accordion__summary {
pointer-events: none;
}
}
.footer-accordion__summary {
list-style: none;
cursor: pointer;
font-size: 13px;
font-weight: 800;
text-transform: uppercase;
letter-spacing: 1.5px;
color: #fff;
margin-bottom: 14px;
padding: 8px 0;
position: relative;
}
.footer-accordion__summary::-webkit-details-marker {
display: none;
}
.footer-accordion__summary::after {
content: "";
display: none;
}
@media (max-width: 640px) {
.footer-accordion__summary::after {
display: inline-block;
float: right;
content: "+";
font-weight: 400;
opacity: 0.7;
}
.footer-accordion[open] .footer-accordion__summary::after {
content: "−";
}
}
.footer-accordion__body a {
display: block;
color: rgba(255, 255, 255, 0.55);
text-decoration: none;
font-size: 13px;
margin-bottom: 10px;
transition: color 0.2s;
}
.footer-accordion__body a:hover {
color: #FFFFFF;
}
footer.site-footer .site-footer__grid {
grid-template-columns: 1.35fr 1fr 1fr 1fr minmax(200px, 1.05fr);
}
@media (max-width: 1100px) {
footer.site-footer .site-footer__grid {
grid-template-columns: 1fr 1fr;
}
.site-footer__newsletter {
grid-column: 1 / -1;
}
}
@media (max-width: 640px) {
footer.site-footer .site-footer__grid {
grid-template-columns: 1fr;
gap: 0;
}
.site-footer__brand {
padding-bottom: 24px;
margin-bottom: 16px;
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.footer-accordion {
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
}
.site-footer__social-btn {
min-width: 36px;
min-height: 36px;
}
.footer-bottom-inner {
max-width: var(--max-width);
padding-left: var(--side-padding);
padding-right: var(--side-padding);
justify-content: center;
text-align: center;
}
@media (min-width: 641px) {
.footer-bottom-inner {
justify-content: space-between;
text-align: left;
}
}
.catalog-page-wrap {
max-width: min(1400px, 100%);
padding-left: var(--side-padding);
padding-right: var(--side-padding);
}
@media (max-width: 900px) {
.catalog-sidebar-box {
z-index: 900;
}
}
@media (max-width: 768px) {
.catalog-page-wrap {
padding-left: 12px;
padding-right: 12px;
}
}
.catalog-mobile-toggle {
position: fixed;
bottom: max(16px, env(safe-area-inset-bottom));
left: 50%;
transform: translateX(-50%);
z-index: 55;
margin: 0;
display: none;
align-items: center;
justify-content: center;
gap: 8px;
min-height: 48px;
padding: 0 22px;
border-radius: 999px;
border: none;
background: var(--primary);
color: #fff;
font-weight: 700;
font-size: 14px;
cursor: pointer;
box-shadow: var(--shadow-lg);
}
@media (max-width: 900px) {
.catalog-mobile-toggle {
display: flex;
}
}
.catalog-toolbar--sticky {
position: sticky;
top: calc(var(--header-sticky-offset, 0px) + 8px);
z-index: 40;
background: rgba(244, 247, 251, 0.92);
backdrop-filter: blur(10px);
margin: 0 0 16px;
padding: 12px 0;
border-bottom: 1px solid var(--gray-200);
}
@media (max-width: 900px) {
.pd-top {
grid-template-columns: 1fr;
}
}
@media (max-width: 768px) {
.pd-gallery__thumbs {
overflow-x: auto;
flex-wrap: nowrap;
scroll-snap-type: x mandatory;
padding-bottom: 6px;
scrollbar-width: none;
}
.pd-gallery__thumbs::-webkit-scrollbar {
display: none;
}
.pd-thumb {
scroll-snap-align: start;
}
}
.pd-buy-track {
min-height: 0;
}
@media (max-width: 640px) {
.pd-page {
padding-bottom: calc(100px + env(safe-area-inset-bottom));
}
.pd-buy-track {
min-height: 72px;
}
.pd-buy {
position: fixed;
left: 0;
right: 0;
bottom: 0;
z-index: 80;
margin: 0 !important;
padding: 12px var(--side-padding) calc(12px + env(safe-area-inset-bottom)) !important;
background: rgba(255, 255, 255, 0.96);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
border-top: 1px solid var(--gray-200);
box-shadow: 0 -8px 30px rgba(0, 0, 0, 0.08);
justify-content: center;
flex-wrap: nowrap;
gap: 8px;
}
.pd-btn {
flex: 1 1 auto;
min-width: 0;
font-size: 14px;
padding: 0 12px;
}
}
[data-animate] {
opacity: 0;
transform: translateY(20px);
transition: opacity 0.55s ease, transform 0.55s ease;
}
[data-animate].visible {
opacity: 1;
transform: translateY(0);
}
img[loading="lazy"] {
opacity: 0;
transition: opacity 0.35s ease;
}
img[loading="lazy"].img-loaded {
opacity: 1;
}
img[loading="eager"],
img:not([loading]) {
opacity: 1;
}
@media (min-width: 1921px) {
body {
background: linear-gradient(180deg, var(--gray-50) 0%, var(--bg) 120px);
}
}
@media (prefers-reduced-motion: reduce) {
[data-animate] {
opacity: 1 !important;
transform: none !important;
transition: none !important;
}
img[loading="lazy"] {
opacity: 1;
}
}
html:not(.js) [data-animate] {
opacity: 1 !important;
transform: none !important;
}
.catalog-sidebar-inner .sidebar-card:first-of-type {
border: 1px solid #E5E7EB;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.catalog-sidebar-inner .sidebar-card:first-of-type .sidebar-card-head {
background: #F9FAFB;
color: #1F2937;
border-bottom: 1px solid #E5E7EB;
border-radius: 0;
padding: 12px 16px;
font-size: 12px;
font-weight: 700;
letter-spacing: 0.5px;
text-transform: uppercase;
width: 100%;
box-sizing: border-box;
margin: 0;
position: static;
transform: none;
box-shadow: none;
}
.sidebar-cat-group {
margin-bottom: 0;
border-bottom: 1px solid var(--color-border, #E2E8F0);
}
.sidebar-cat-group:last-child { border-bottom: none; }
.sidebar-cat-parent {
display: flex;
align-items: center;
gap: 0;
background: #fff;
transition: background 0.15s;
}
.sidebar-cat-parent:hover {
background: var(--color-bg-soft, #F7F9FC);
}
.sidebar-cat-link {
display: flex;
align-items: center;
gap: 8px;
padding: 10px 14px;
color: var(--color-text, #1A2332);
text-decoration: none;
flex: 1;
min-width: 0;
font-size: 14px;
font-weight: 500;
transition: color 0.15s;
}
.sidebar-cat-link:hover {
color: var(--color-primary, #023E8A);
}
.sidebar-cat-link.active {
color: var(--color-primary, #023E8A);
font-weight: 600;
background: var(--color-primary-light, #E5EBF5);
}
.sidebar-cat-link .cat-name { flex: 1; line-height: 1.35; }
.sidebar-cat-link .cat-cnt {
font-size: 12px;
color: var(--color-text-subtle, #718096);
margin-left: 8px;
}
.sidebar-cat-toggle {
background: none;
border: none;
padding: 0 12px;
min-width: 36px;
min-height: 38px;
cursor: pointer;
flex-shrink: 0;
display: inline-flex;
align-items: center;
justify-content: center;
order: 2;
color: var(--color-text-subtle, #718096);
transition: color 0.2s;
}
.sidebar-cat-toggle:hover { color: var(--color-primary, #023E8A); }
.sidebar-cat-toggle:focus-visible {
outline: 2px solid var(--color-primary, #023E8A);
outline-offset: -2px;
border-radius: 4px;
}
.toggle-arrow {
display: inline-block;
transition: transform 0.25s ease;
font-size: 14px;
width: auto;
text-align: center;
line-height: 1;
}
.sidebar-cat-group.is-open .toggle-arrow {
transform: rotate(90deg);
color: var(--color-primary, #023E8A);
}
.sidebar-cat-group .sidebar-cat-children {
display: grid;
grid-template-rows: 0fr;
transition: grid-template-rows 0.25s ease;
background: var(--color-bg-soft, #F7F9FC);
}
.sidebar-cat-group .sidebar-cat-children > * {
overflow: hidden;
}
.sidebar-cat-group.is-open .sidebar-cat-children {
grid-template-rows: 1fr;
}
@supports not (grid-template-rows: 0fr) {
.sidebar-cat-group .sidebar-cat-children { display: none; padding-left: 0; }
.sidebar-cat-group.is-open .sidebar-cat-children { display: block; }
}
.sidebar-cat-child-link {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
padding: 8px 14px 8px 32px;
color: var(--color-text-secondary, #4A5568);
text-decoration: none;
font-size: 13px;
transition: background 0.15s, color 0.15s;
border-bottom: 1px solid rgba(2, 62, 138, 0.04);
}
.sidebar-cat-child-link:last-child { border-bottom: none; }
.sidebar-cat-child-link:hover {
background: var(--color-primary-light, #E5EBF5);
color: var(--color-primary, #023E8A);
}
.sidebar-cat-child-link.active {
background: var(--color-primary-light, #E5EBF5);
color: var(--color-primary, #023E8A);
font-weight: 600;
}
.sidebar-cat-child-link .cat-cnt {
font-size: 11px;
color: var(--color-text-subtle, #718096);
margin-left: auto;
}
.sidebar-cat-link .sidebar-cat-img,
.sidebar-cat-link .sidebar-cat-placeholder,
.sidebar-cat-child-link .sidebar-cat-img,
.sidebar-cat-child-link .sidebar-cat-placeholder {
display: none !important;
}
.sidebar-cat-link {
padding: 14px 16px;
min-height: 48px;
}
.sidebar-cat-group .sidebar-cat-children {
display: none;
grid-template-rows: none;
background: var(--color-bg-soft, #F7F9FC);
transition: none;
}
.sidebar-cat-group .sidebar-cat-children > * {
overflow: visible;
}
.sidebar-cat-group.is-open .sidebar-cat-children {
display: block;
grid-template-rows: none;
}
@supports not (grid-template-rows: 0fr) {
.sidebar-cat-group .sidebar-cat-children { display: none; padding-left: 0; }
.sidebar-cat-group.is-open .sidebar-cat-children { display: block; }
}
.sidebar-cat-child-link {
padding: 12px 16px 12px 28px;
min-height: 44px;
line-height: 1.45;
border-bottom: 1px solid rgba(2, 62, 138, 0.06);
}
.sidebar-cat-child-link .cat-name {
flex: 1;
min-width: 0;
white-space: normal;
overflow-wrap: anywhere;
}
@media (max-width: 768px) {
.sidebar-cat-link {
padding: 16px 16px;
min-height: 52px;
font-size: 15px;
}
.sidebar-cat-child-link {
padding: 14px 16px 14px 28px;
min-height: 48px;
font-size: 14px;
}
.sidebar-cat-group {
border-bottom: 1px solid var(--color-border, #E2E8F0);
}
}
.home-featured__footer {
display: flex;
justify-content: center;
margin-top: 28px;
}
.home-catalog-cta-wrap {
text-align: center;
margin: 24px 0 8px;
padding: 0;
}
.btn-catalog-link {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 10px;
padding: 17px 48px;
min-width: 260px;
background: linear-gradient(165deg, #1565C0 0%, #0D47A1 42%, #0D47A1 100%);
color: #fff;
border-radius: 14px;
font-size: 17px;
font-weight: 700;
letter-spacing: 0.02em;
text-decoration: none;
border: 1px solid rgba(255, 255, 255, 0.28);
box-shadow:
0 4px 6px rgba(13, 71, 161, 0.12),
0 12px 32px rgba(26, 115, 232, 0.38);
transition: transform 0.22s ease, box-shadow 0.22s ease, filter 0.22s ease;
}
.btn-catalog-link:hover {
background: linear-gradient(165deg, #1565C0 0%, #0D47A1 45%, #082C66 100%);
box-shadow:
0 8px 16px rgba(13, 71, 161, 0.18),
0 20px 44px rgba(26, 115, 232, 0.48);
transform: translateY(-3px);
filter: brightness(1.03);
}
.btn-catalog-link:active {
transform: translateY(-1px);
box-shadow:
0 3px 8px rgba(13, 71, 161, 0.2),
0 8px 20px rgba(26, 115, 232, 0.35);
}
.btn-catalog-link:focus-visible {
outline: 3px solid rgba(26, 115, 232, 0.55);
outline-offset: 4px;
}
@media (max-width: 480px) {
.home-featured__footer {
margin-top: 20px;
padding: 0 16px;
}
.home-catalog-cta-wrap {
margin: 20px 0 8px;
padding: 0 16px;
}
.btn-catalog-link {
width: 100%;
max-width: 360px;
min-width: 0;
padding: 16px 28px;
font-size: 16px;
}
}
@media (max-width: 768px) {
.topbar.site-topbar {
display: none;
}
}
@media (max-width: 768px) {
.header-inner {
height: 56px;
padding: 0 12px;
gap: 8px;
}
.logo-img,
.logo-icon {
width: 36px;
height: 36px;
}
.header-brand-name {
font-size: 14px;
}
.header-brand-tag {
font-size: 10px;
}
.header-logo {
gap: 8px;
}
.header-right {
gap: 6px;
}
.header-actions {
gap: 4px;
}
.header-icon-btn {
width: 38px;
height: 38px;
border-radius: 10px;
}
.header-icon-btn__glyph {
font-size: 16px;
}
.header-icon-btn__badge {
min-width: 16px;
height: 16px;
font-size: 9px;
top: 2px;
right: 2px;
}
.header-menu-toggle {
width: 38px;
height: 38px;
border-radius: 10px;
gap: 4px;
padding: 0 9px;
}
.header-search-open {
width: 38px;
height: 38px;
border-radius: 10px;
font-size: 16px;
}
#qmLangBtn {
padding: 4px 8px !important;
font-size: 12px !important;
}
}
@media (max-width: 480px) {
.header-inner {
height: 52px;
padding: 0 10px;
}
.header-brand {
display: none;
}
.logo-img,
.logo-icon {
width: 34px;
height: 34px;
}
.header-icon-btn {
width: 36px;
height: 36px;
}
.header-menu-toggle {
width: 36px;
height: 36px;
}
.header-search-open {
width: 36px;
height: 36px;
}
}
@media (max-width: 1024px) {
nav.site-nav,
.site-nav {
padding: 0;
}
.nav-inner {
display: none;
}
}
@media (max-width: 768px) {
.home-hero {
min-height: auto;
padding: 32px var(--side-padding) 36px;
}
.home-hero__inner {
padding-left: 0;
padding-right: 0;
}
.home-hero__layout {
gap: 24px;
}
.home-hero__content {
max-width: 100%;
}
.home-hero__title {
font-size: clamp(1.5rem, 6vw, 2rem);
margin-bottom: 12px;
}
.home-hero__desc {
font-size: 14px;
margin-bottom: 20px;
line-height: 1.55;
}
.home-hero__badge {
font-size: 11px;
padding: 6px 12px;
gap: 6px;
margin-bottom: 14px;
}
.home-hero__actions {
margin-bottom: 24px;
}
.home-btn {
min-height: 44px;
padding: 0 20px;
font-size: 14px;
border-radius: 10px;
}
.home-hero__stats {
gap: 20px;
}
.home-hero__stat strong {
font-size: 1.3rem;
}
.home-hero__stat span {
font-size: 11px;
}
.home-hero__cards {
grid-template-columns: 1fr 1fr;
max-width: 100%;
gap: 10px;
}
.home-hero-card {
padding: 14px 12px;
border-radius: 14px;
}
.home-hero-card__icon {
font-size: 24px;
margin-bottom: 8px;
}
.home-hero-card__title {
font-size: 13px;
margin-bottom: 4px;
}
.home-hero-card__text {
font-size: 11px;
line-height: 1.35;
}
}
@media (max-width: 480px) {
.home-hero {
padding: 24px 16px 28px;
}
.home-hero__title {
font-size: 1.4rem;
}
.home-hero__desc {
font-size: 13px;
}
.home-hero__actions {
flex-direction: column;
margin-bottom: 20px;
}
.home-hero__actions .home-btn {
width: 100%;
justify-content: center;
}
.home-hero__stats {
justify-content: space-between;
gap: 12px;
}
.home-hero__cards {
gap: 8px;
}
.home-hero-card {
padding: 12px 10px;
}
.home-hero-card__title {
font-size: 12px;
}
.home-hero-card__text {
font-size: 10px;
}
}
@media (max-width: 768px) {
.hero {
padding: 36px 16px;
}
.hero-inner {
grid-template-columns: 1fr;
gap: 28px;
}
.hero h1 {
font-size: 28px;
}
.hero-desc {
font-size: 14px;
}
.hero-cards {
grid-template-columns: 1fr 1fr;
gap: 10px;
}
.hero-stats {
gap: 16px;
}
.hero-stat strong {
font-size: 22px;
}
}
@media (max-width: 768px) {
.home-trust {
padding: 20px 16px;
}
.home-trust__inner {
grid-template-columns: 1fr 1fr;
gap: 14px;
}
.home-trust__icon {
font-size: 22px;
}
.home-trust__title {
font-size: 13px;
}
.home-trust__sub {
font-size: 11px;
}
}
@media (max-width: 480px) {
.home-trust__inner {
grid-template-columns: 1fr;
gap: 12px;
}
.home-trust__item {
gap: 10px;
}
}
@media (max-width: 768px) {
section {
padding: 36px var(--side-padding);
}
.section-title {
font-size: 22px;
}
.section-header {
flex-direction: column;
align-items: flex-start;
gap: 8px;
margin-bottom: 20px;
}
}
@media (max-width: 480px) {
section {
padding: 28px var(--side-padding);
}
.section-title {
font-size: 20px;
}
}
@media (max-width: 768px) {
.partners-band {
padding: 18px 0;
}
.partner-item {
padding: 0 20px;
}
.partner-item img {
height: 28px;
}
.partners-band::before,
.partners-band::after {
width: 60px;
}
}
@media (max-width: 640px) {
.checkout-wrap {
padding: 16px;
}
.checkout-section h3 {
font-size: 16px;
}
.checkout-submit-btn {
width: 100%;
font-size: 15px;
}
.checkout-summary-card {
padding: 16px;
}
}
@media (max-width: 640px) {
.success-page-wrap {
padding: 40px 16px;
}
.success-card {
padding: 28px 20px;
border-radius: 16px;
}
.success-icon {
font-size: 48px;
margin-bottom: 12px;
}
.success-card h1 {
font-size: 22px;
}
.success-actions {
flex-direction: column;
}
.success-actions a {
width: 100%;
text-align: center;
justify-content: center;
}
.btn-telegram {
padding: 14px 20px;
font-size: 15px;
}
}
@media (max-width: 640px) {
.auth-page-wrap {
padding: 24px 16px;
}
.auth-card {
padding: 24px 20px;
border-radius: 16px;
}
.auth-card h1 {
font-size: 22px;
}
}
@media (max-width: 640px) {
.blog-grid {
grid-template-columns: 1fr;
gap: 16px;
}
}
@media (max-width: 768px) {
.page-hero {
padding: 28px 16px;
}
.page-hero h1 {
font-size: 22px;
}
.page-hero-sm {
padding: 20px 16px;
}
.breadcrumb {
font-size: 12px;
}
}
@media (max-width: 1024px) {
.nav-mobile-drawer {
width: min(320px, 85vw);
}
.nav-mobile-drawer__head {
padding: 16px 20px;
}
.nav-mobile-drawer__body {
padding: 8px 20px 24px;
}
.nav-mobile-link {
padding: 12px 0;
font-size: 15px;
}
.nav-mobile-auth {
padding: 12px 0 16px;
}
.nav-mobile-auth__link {
padding: 10px 16px;
font-size: 14px;
border-radius: 10px;
}
.nav-mobile-cat-btn {
font-size: 14px;
padding: 12px 16px;
border-radius: 10px;
}
}
@media (max-width: 768px) {
.contact-grid {
grid-template-columns: 1fr;
gap: 20px;
}
}
@media (max-width: 768px) {
.about-grid,
.about-layout {
grid-template-columns: 1fr;
gap: 20px;
}
}
@supports (padding-bottom: env(safe-area-inset-bottom)) {
.site-footer {
padding-bottom: calc(24px + env(safe-area-inset-bottom));
}
.nav-mobile-drawer__body {
padding-bottom: calc(24px + env(safe-area-inset-bottom));
}
}
@media (max-width: 768px) {
.nav-mobile-link,
.nav-mobile-auth__link,
.dropdown a,
.mega-col__list a {
min-height: 44px;
display: flex;
align-items: center;
}
}
@media (max-width: 768px) {
html {
scroll-padding-top: 60px;
}
}
.currency-switcher {
display: flex;
align-items: stretch;
border-radius: 8px;
overflow: hidden;
border: 1px solid rgba(255,255,255,0.2);
}
.currency-btn {
background: transparent;
border: none;
color: #b8d4f8;
font-size: 11px;
font-weight: 800;
padding: 5px 10px;
cursor: pointer;
font-family: inherit;
letter-spacing: 0.06em;
border-right: 1px solid rgba(255,255,255,0.15);
transition: background .15s, color .15s;
}
.currency-btn:last-child {
border-right: none;
}
.currency-btn:hover {
color: #fff;
background: rgba(255,255,255,0.08);
}
.currency-btn.active {
background: rgba(255,255,255,0.18);
color: #fff;
}
@media (max-width: 480px) {
.currency-switcher { font-size: 10px; }
.currency-btn { padding: 4px 7px; font-size: 10px; }
}
.catidx-grid {
grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 900px) {
.catidx-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
.catidx-grid { grid-template-columns: 1fr; }
}
.catidx-card__media {
width: 80px;
height: 80px;
border-radius: 14px;
background: #f0f7ff;
border: 2px solid #e3f2fd;
}
.catidx-card__media img {
width: 100%;
height: 100%;
object-fit: contain;
padding: 8px;
}
.catidx-card__letter {
color: var(--primary);
font-size: 2rem;
}
.catidx-children {
gap: 6px 8px;
}
.catidx-child {
font-size: 12.5px;
padding: 5px 10px;
border: 1px solid #e2e8f0;
background: #fff;
}
.catidx-child:hover {
border-color: var(--primary);
background: #e3f2fd;
}
.telegram-redirect-note {
font-size: 14px;
color: var(--gray);
margin-top: 16px;
}
#countdownNum {
font-weight: 700;
color: var(--primary);
font-size: 18px;
}
.cat-pcard__media {
overflow: hidden;
}
.cat-pcard__img {
transition: transform .35s ease;
}
.cat-pcard:hover .cat-pcard__img {
transform: scale(1.08);
}
.cat-pcard {
transition: box-shadow .25s ease, transform .25s ease;
}
.cat-pcard:hover {
box-shadow: 0 12px 32px rgba(0,0,0,.12);
transform: translateY(-4px);
}
.product-card {
transition: box-shadow .25s ease, transform .25s ease;
}
.product-card:hover {
box-shadow: 0 12px 32px rgba(0,0,0,.12);
transform: translateY(-4px);
}
.product-card-img {
overflow: hidden;
}
.product-card-img img {
transition: transform .35s ease;
}
.product-card:hover .product-card-img img {
transform: scale(1.08);
}
.pd-color {
font-size: 14px;
color: var(--gray);
margin-bottom: 4px;
}
.pd-color strong {
color: var(--dark);
}
.pd-btn--quickbuy {
display: block;
width: 100%;
margin-top: 10px;
padding: 12px 20px;
background: transparent;
color: var(--primary);
border: 2px solid var(--primary);
border-radius: 10px;
font-size: 14px;
font-weight: 700;
cursor: pointer;
font-family: inherit;
transition: all .2s;
text-align: center;
}
.pd-btn--quickbuy:hover {
background: var(--primary);
color: #fff;
}
.pd-file-link--passport {
background: #fef3c7;
border-color: #f59e0b;
color: #92400e;
}
.pd-file-link--passport:hover {
background: #f59e0b;
color: #fff;
}
.pd-videos-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
gap: 20px;
}
.pd-video-embed {
position: relative;
padding-bottom: 56.25%;
height: 0;
overflow: hidden;
border-radius: 12px;
background: #0d1b2a;
}
.pd-video-embed iframe {
position: absolute;
top: 0; left: 0;
width: 100%; height: 100%;
border: 0;
}
.pd-video-title {
margin-top: 8px;
font-size: 13px;
font-weight: 600;
color: var(--dark);
}
.pd-bundle-subtitle {
font-size: 14px;
color: var(--gray);
margin-bottom: 16px;
}
.pd-bundle-list {
display: flex;
flex-direction: column;
gap: 0;
}
.pd-bundle-item {
display: flex;
align-items: center;
gap: 16px;
padding: 14px 0;
border-bottom: 1px solid #f1f5f9;
}
.pd-bundle-item:last-child {
border-bottom: none;
}
.pd-bundle-item__img {
width: 64px; height: 64px;
border-radius: 8px;
overflow: hidden;
flex-shrink: 0;
background: #f8fafc;
border: 1px solid #e2e8f0;
}
.pd-bundle-item__img img {
width: 100%; height: 100%;
object-fit: contain;
padding: 4px;
}
.pd-bundle-item__placeholder {
display: flex;
align-items: center;
justify-content: center;
width: 100%; height: 100%;
font-size: 24px;
}
.pd-bundle-item__info {
flex: 1;
min-width: 0;
}
.pd-bundle-item__name {
font-size: 14px;
font-weight: 700;
color: var(--dark);
text-decoration: none;
line-height: 1.3;
}
.pd-bundle-item__name:hover {
color: var(--primary);
}
.pd-bundle-item__desc {
font-size: 12px;
color: var(--gray);
margin-top: 2px;
}
.pd-bundle-item__sku {
font-size: 11px;
color: #94a3b8;
margin-top: 2px;
}
.pd-bundle-item__price {
font-size: 14px;
font-weight: 800;
color: var(--primary);
white-space: nowrap;
flex-shrink: 0;
}
.pd-bundle-item__request {
font-size: 12px;
color: var(--gray);
}
.pd-bundle-item__action {
flex-shrink: 0;
}
.pd-btn--sm {
padding: 6px 14px;
font-size: 12px;
font-weight: 700;
background: var(--primary);
color: #fff;
border: none;
border-radius: 6px;
cursor: pointer;
font-family: inherit;
transition: background .15s;
}
.pd-btn--sm:hover {
background: var(--primary-dark, #082C66);
}
@media (max-width: 640px) {
.pd-bundle-item {
flex-wrap: wrap;
gap: 10px;
}
.pd-bundle-item__price { width: auto; }
.pd-videos-grid { grid-template-columns: 1fr; }
}
.cookie-consent {
position: fixed;
bottom: 20px;
left: 20px;
right: 20px;
max-width: 760px;
margin: 0 auto;
background: #ffffff;
color: var(--text, #1E2B3C);
border-radius: 16px;
padding: 18px 22px;
z-index: 999;
box-shadow: 0 12px 40px rgba(2, 62, 138, 0.18), 0 2px 8px rgba(15, 23, 42, 0.06);
border: 1px solid rgba(2, 62, 138, 0.12);
font-size: 14px;
}
.cookie-consent[hidden] { display: none !important; }
.cookie-consent__inner {
display: flex;
align-items: center;
gap: 18px;
flex-wrap: wrap;
}
.cookie-consent__icon {
flex: 0 0 auto;
width: 48px;
height: 48px;
display: grid;
place-items: center;
font-size: 26px;
background: linear-gradient(135deg, #E6EFFB, #F4F7FB);
border-radius: 12px;
}
.cookie-consent__text {
flex: 1;
min-width: 220px;
}
.cookie-consent__text strong {
display: block;
margin-bottom: 4px;
font-size: 15px;
font-weight: 700;
color: var(--text, #1E2B3C);
}
.cookie-consent__text p {
margin: 0;
color: #64748B;
line-height: 1.5;
font-size: 13px;
}
.cookie-consent__actions {
display: flex;
gap: 8px;
flex: 0 0 auto;
}
.cookie-consent .btn {
border-radius: 999px;
padding: 10px 22px;
font-weight: 600;
font-size: 13px;
transition: all 0.2s ease;
border: 1.5px solid transparent;
cursor: pointer;
white-space: nowrap;
}
.cookie-consent .btn-primary {
background: var(--primary, #023E8A);
color: #fff;
border-color: var(--primary, #023E8A);
}
.cookie-consent .btn-primary:hover {
background: var(--primary-dark, #03306E);
border-color: var(--primary-dark, #03306E);
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(2, 62, 138, 0.25);
}
.cookie-consent .btn-secondary {
background: #ffffff;
color: var(--text, #1E2B3C);
border-color: #E2E8F0;
}
.cookie-consent .btn-secondary:hover {
border-color: var(--primary, #023E8A);
color: var(--primary, #023E8A);
background: #F8FAFC;
}
@media (max-width: 640px) {
.cookie-consent {
bottom: 12px;
left: 12px;
right: 12px;
padding: 16px;
border-radius: 14px;
}
.cookie-consent__inner { gap: 12px; }
.cookie-consent__icon { width: 40px; height: 40px; font-size: 22px; }
.cookie-consent__actions {
width: 100%;
flex-direction: column;
}
.cookie-consent__actions .btn { width: 100%; padding: 11px; }
.cookie-consent .btn-secondary { order: 2; }
.cookie-consent .btn-primary { order: 1; }
}
.about-cover {
padding: 24px 16px 0;
}
.about-cover .about-page-inner { max-width: 1200px; margin: 0 auto; }
.about-cover__frame {
margin: 0;
aspect-ratio: 16 / 9;
border-radius: 18px;
overflow: hidden;
background: #f4f7fb;
border: 1px solid #e5e9f0;
}
.about-cover__frame img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.about-page--extra {
background: #fff;
}
.about-page__rich {
font-size: 15.5px;
line-height: 1.7;
color: #1E2B3C;
max-width: 820px;
margin: 0 auto;
}
.about-page__rich p { margin: 0 0 14px; }
.about-page__rich ul,
.about-page__rich ol { margin: 0 0 14px 22px; padding: 0; }
.about-page__rich li { margin-bottom: 6px; }
.about-page__rich a {
color: var(--primary, #023E8A);
text-decoration: underline;
text-underline-offset: 3px;
}
.about-page__rich strong { color: #0F172A; }
.about-page__rich h2,
.about-page__rich h3 {
margin: 24px 0 12px;
letter-spacing: -0.01em;
}
.about-page--gallery {
background: #FAFBFC;
}
.about-gallery-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 16px;
margin-top: 20px;
}
.about-gallery-card {
margin: 0;
border: 1px solid #e5e9f0;
border-radius: 14px;
overflow: hidden;
background: #fff;
transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.about-gallery-card:hover {
border-color: var(--primary, #023E8A);
transform: translateY(-2px);
box-shadow: 0 12px 28px rgba(2, 62, 138, 0.08);
}
.about-gallery-card img {
width: 100%;
aspect-ratio: 4 / 3;
object-fit: cover;
display: block;
}
.about-gallery-card figcaption {
padding: 10px 14px;
font-size: 13.5px;
color: #4b5563;
border-top: 1px solid #f0f3f7;
}
@media (max-width: 1024px) {
.about-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
.about-gallery-grid { grid-template-columns: 1fr; gap: 12px; }
.about-cover { padding-top: 16px; }
.about-cover__frame { border-radius: 14px; }
}
.tel-input {
display: flex;
align-items: stretch;
position: relative;
width: 100%;
background: #fff;
border: 1px solid #E5E7EB;
border-radius: 8px;
transition: border-color 150ms ease, box-shadow 150ms ease;
}
.tel-input:hover { border-color: #D1D5DB; }
.tel-input:focus-within {
border-color: #023E8A;
box-shadow: 0 0 0 3px rgba(2, 62, 138, 0.15);
}
.tel-input input[type="tel"] {
flex: 1;
min-width: 0;
border: 0 !important;
outline: 0 !important;
box-shadow: none !important;
background: transparent !important;
padding: 10px 12px;
font-size: 16px;
color: #1F2937;
font-family: inherit;
border-radius: 0 8px 8px 0;
}
.tel-input__trigger {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 0 12px;
background: #F8FAFC;
border: 0;
border-right: 1px solid #E5E7EB;
border-radius: 8px 0 0 8px;
cursor: pointer;
font-family: inherit;
font-size: 14px;
color: #1F2937;
white-space: nowrap;
transition: background 150ms ease;
}
.tel-input__trigger:hover { background: #F1F5F9; }
.tel-input__flag {
display: inline-flex;
align-items: center;
justify-content: center;
line-height: 1;
}
.tel-input__flag .fi {
display: inline-block;
width: 22px;
height: 16px;
background-size: cover;
background-position: center;
background-repeat: no-repeat;
border-radius: 2px;
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.06);
}
.tel-input__dial { font-weight: 600; }
.tel-input__chev { color: #94A3B8; font-size: 10px; }
.tel-input__dd {
position: absolute;
top: calc(100% + 6px);
left: 0;
right: auto;
min-width: 300px;
max-width: 380px;
background: #fff;
border: 1px solid #E5E7EB;
border-radius: 10px;
box-shadow: 0 16px 48px rgba(0, 0, 0, 0.12);
z-index: 1100;
padding: 4px;
display: flex;
flex-direction: column;
max-height: 360px;
}
.tel-input__dd[hidden] { display: none; }
.tel-input__search {
width: 100%;
padding: 8px 10px;
margin-bottom: 4px;
border: 1px solid #E5E7EB;
border-radius: 6px;
font-size: 13px;
font-family: inherit;
color: #1F2937;
background: #F9FAFB;
outline: none;
box-sizing: border-box;
}
.tel-input__search:focus {
border-color: #023E8A;
background: #fff;
box-shadow: 0 0 0 2px rgba(2, 62, 138, 0.12);
}
.tel-input__list {
flex: 1;
overflow-y: auto;
min-height: 0;
}
.tel-input__opt {
display: flex;
align-items: center;
gap: 10px;
width: 100%;
padding: 9px 10px;
background: transparent;
border: 0;
border-radius: 6px;
cursor: pointer;
font-family: inherit;
font-size: 14px;
color: #1F2937;
text-align: left;
transition: background 120ms ease;
}
.tel-input__opt:hover { background: #F1F5F9; }
.tel-input__opt-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tel-input__opt-dial { color: #6B7280; font-size: 13px; font-weight: 500; flex-shrink: 0; }
@media (max-width: 480px) {
.tel-input__trigger { padding: 0 10px; gap: 4px; font-size: 13px; }
.tel-input__dial { font-size: 13px; }
.tel-input__dd {
min-width: 260px;
max-width: calc(100vw - 32px);
}
}
body .tel-input__opt,
body.layout-body .tel-input__opt {
color: #1F2937 !important;
}
/* === css/components.css === */
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: var(--space-2);
padding: var(--space-3) var(--space-6);
border-radius: var(--radius-full);
font-family: var(--font-family);
font-size: var(--font-size-base);
font-weight: var(--font-weight-semibold);
border: none;
cursor: pointer;
transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
text-decoration: none;
white-space: nowrap;
line-height: 1;
}
.btn-primary {
background: var(--color-primary);
color: #fff;
}
.btn-primary:hover { background: var(--color-primary-hover); }
.btn-secondary {
background: var(--color-surface);
color: var(--color-text);
border: 1px solid var(--color-border-strong);
}
.btn-secondary:hover { background: var(--color-surface-2); }
.btn-ghost {
background: transparent;
color: var(--color-primary);
}
.btn-ghost:hover { background: var(--color-primary-light); }
.btn-sm { padding: var(--space-2) var(--space-4); font-size: var(--font-size-sm); }
.btn-lg { padding: var(--space-4) var(--space-8); font-size: var(--font-size-lg); }
.tag {
display: inline-flex;
align-items: center;
padding: var(--space-1) var(--space-3);
background: var(--color-primary-light);
color: var(--color-primary-text);
border-radius: var(--radius-full);
font-size: var(--font-size-xs);
font-weight: var(--font-weight-semibold);
text-transform: uppercase;
letter-spacing: 0.5px;
}
.tag-success { background: var(--color-success-light); color: var(--color-success); }
.tag-warning { background: var(--color-warning-light); color: var(--color-warning); }
.tag-danger  { background: var(--color-danger-light);  color: var(--color-danger);  }
.badge-discount {
position: absolute;
top: var(--space-2);
right: var(--space-2);
background: var(--color-warning);
color: #fff;
padding: 4px 8px;
border-radius: var(--radius-sm);
font-size: var(--font-size-xs);
font-weight: var(--font-weight-bold);
}
.pill {
display: inline-flex;
align-items: center;
padding: var(--space-2) var(--space-4);
border-radius: var(--radius-full);
background: var(--color-surface-2);
color: var(--color-text);
text-decoration: none;
font-size: var(--font-size-sm);
font-weight: var(--font-weight-medium);
border: 1px solid transparent;
transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.pill:hover { background: var(--color-surface); border-color: var(--color-border); }
.pill-active { background: var(--color-primary); color: #fff; }
.pill-active:hover { background: var(--color-primary-hover); border-color: transparent; color: #fff; }
.pill-ghost { background: transparent; border-color: var(--color-border); }
.product-card {
position: relative;
background: var(--color-surface);
border-radius: var(--radius-lg);
overflow: hidden;
transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
text-decoration: none;
color: inherit;
display: flex;
flex-direction: column;
border: 1px solid var(--color-border);
}
.product-card:hover {
box-shadow: var(--shadow-card-hover);
transform: translateY(-2px);
border-color: transparent;
}
.product-card__image-wrap {
position: relative;
aspect-ratio: 4 / 5;
background: white;
overflow: hidden;
padding: 8px;
}
.product-card__image-wrap img {
width: 100%;
height: 100%;
object-fit: contain;
object-position: center;
}
.product-card__favorite {
position: absolute;
top: var(--space-2);
left: var(--space-2);
width: 32px;
height: 32px;
border-radius: var(--radius-full);
background: rgba(255, 255, 255, 0.9);
border: none;
cursor: pointer;
display: grid;
place-items: center;
}
.product-card__body { padding: var(--space-3); }
.product-card__price {
font-size: var(--font-size-lg);
font-weight: var(--font-weight-bold);
color: var(--color-price);
margin: 0 0 var(--space-1) 0;
}
.product-card__price-old {
font-size: var(--font-size-sm);
color: var(--color-old-price);
text-decoration: line-through;
margin-right: var(--space-2);
}
.product-card__discount {
font-size: var(--font-size-sm);
color: var(--color-discount);
font-weight: var(--font-weight-semibold);
}
.product-card__title {
font-size: var(--font-size-sm);
color: var(--color-text);
margin: var(--space-2) 0 0 0;
line-height: var(--line-height-tight);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/* === css/header.css === */
.alibar {
background: #ffffff;
position: sticky;
top: 0;
z-index: 100;
padding: 14px 0;
border-bottom: 1px solid #E5E7EB;
}
.alibar__inner {
display: flex;
align-items: center;
gap: 12px;
}
.alibar__logo {
color: #0a0a0a;
text-decoration: none;
font-size: 28px;
font-weight: 700;
letter-spacing: -0.5px;
white-space: nowrap;
margin-right: 8px;
display: inline-flex;
align-items: center;
flex-shrink: 0;
}
.alibar__logo span { font-weight: 400; }
.alibar__logo {
position: relative;
display: inline-flex;
align-items: center;
}
.alibar__logo-img {
display: block;
height: 56px;
width: auto;
max-width: 240px;
object-fit: contain;
transition: opacity 0.2s ease;
}
.alibar__logo-img--default { opacity: 1; }
.alibar__logo-img--scrolled {
position: absolute;
left: 0;
top: 50%;
transform: translateY(-50%);
opacity: 0;
pointer-events: none;
}
body.is-scrolled .alibar__logo-img--default { opacity: 0; }
body.is-scrolled .alibar__logo-img--scrolled { opacity: 1; }
.alibar__mini {
width: 40px;
height: 40px;
background: transparent;
border: none;
color: #1F2937;
cursor: pointer;
display: grid;
place-items: center;
border-radius: 8px;
transition: background 0.15s;
flex-shrink: 0;
font-family: inherit;
padding: 0;
}
.alibar__mini:hover { background: rgba(0, 0, 0, 0.06); }
.alibar__mini svg { display: block; }
.alibar__catalog {
display: inline-flex;
align-items: center;
gap: 8px;
background: #F1F3F5;
color: #1F2937;
text-decoration: none;
border: 1px solid #E5E7EB;
padding: 0 18px;
height: 48px;
border-radius: 999px;
font-size: 14px;
font-weight: 600;
cursor: pointer;
transition: background 0.15s, border-color 0.15s;
flex-shrink: 0;
font-family: inherit;
white-space: nowrap;
}
.alibar__catalog:hover {
background: #E9ECEF;
border-color: #D1D5DB;
color: #1F2937;
}
.alibar__catalog svg { display: block; flex-shrink: 0; }
.alibar__search {
flex: 1;
display: flex;
align-items: center;
background: white;
border: 1px solid #E5E7EB;
border-radius: 999px;
padding: 4px;
padding-left: 20px;
height: 48px;
min-width: 0;
}
.alibar__search input {
flex: 1;
border: none;
outline: none;
background: transparent;
font-size: 15px;
height: 100%;
min-width: 0;
padding: 0 12px 0 0;
color: var(--color-text);
font-family: inherit;
-webkit-appearance: none;
appearance: none;
border-radius: 0;
margin: 0;
box-shadow: none;
}
.alibar__search input::placeholder { color: var(--color-text-muted); }
.alibar__search input::-webkit-search-decoration,
.alibar__search input::-webkit-search-cancel-button,
.alibar__search input::-webkit-search-results-button,
.alibar__search input::-webkit-search-results-decoration {
-webkit-appearance: none;
display: none;
}
.alibar__search-btn {
background: #F1F3F5;
color: #1F2937;
border: 1px solid #E5E7EB;
height: 38px;
padding: 0 22px;
border-radius: 999px;
font-size: 14px;
font-weight: 600;
cursor: pointer;
transition: background 0.15s, border-color 0.15s;
font-family: inherit;
white-space: nowrap;
flex-shrink: 0;
}
.alibar__search-btn:hover {
background: #E9ECEF;
border-color: #D1D5DB;
}
.alibar__user {
position: relative;
flex-shrink: 0;
}
.alibar__action--btn {
background: transparent;
border: none;
cursor: pointer;
font-family: inherit;
}
.user-menu-dropdown {
position: absolute;
right: 0;
top: calc(100% + 8px);
min-width: 220px;
background: #FFFFFF;
border: 1px solid #E5E7EB;
border-radius: 12px;
box-shadow: 0 16px 48px rgba(0, 0, 0, 0.12);
padding: 6px;
z-index: 1000;
}
.user-menu-dropdown[hidden] { display: none; }
.user-menu-dropdown__form {
margin: 0;
border-top: 1px solid #F1F3F5;
margin-top: 4px;
padding-top: 4px;
}
.user-menu-dropdown__link {
display: flex;
align-items: center;
gap: 10px;
width: 100%;
padding: 10px 12px;
background: transparent;
border: none;
border-radius: 8px;
color: #1F2937;
text-decoration: none;
font-size: 14px;
font-weight: 500;
cursor: pointer;
text-align: left;
font-family: inherit;
transition: background 0.15s;
}
.user-menu-dropdown__link:hover {
background: #F1F3F5;
color: #1F2937;
}
.user-menu-dropdown__link--accent {
color: #023E8A;
font-weight: 600;
}
.user-menu-dropdown__link--logout {
color: #DC2626;
}
.user-menu-dropdown__link--logout:hover {
background: #FEE2E2;
color: #B91C1C;
}
.user-menu-dropdown__link svg {
flex-shrink: 0;
}
body .user-menu-dropdown a.user-menu-dropdown__link,
body.layout-body .alibar a.user-menu-dropdown__link,
body.layout-body.is-scrolled .alibar a.user-menu-dropdown__link {
color: #1F2937 !important;
}
body .user-menu-dropdown a.user-menu-dropdown__link--accent,
body.layout-body .alibar a.user-menu-dropdown__link--accent,
body.layout-body.is-scrolled .alibar a.user-menu-dropdown__link--accent {
color: #023E8A !important;
}
body .user-menu-dropdown .user-menu-dropdown__link--logout,
body.layout-body .alibar .user-menu-dropdown__link--logout,
body.layout-body.is-scrolled .alibar .user-menu-dropdown__link--logout {
color: #DC2626 !important;
}
body .user-menu-dropdown a.user-menu-dropdown__link:hover {
color: #1F2937 !important;
background: #F1F3F5 !important;
}
.alibar__action {
display: flex;
flex-direction: column;
align-items: center;
gap: 2px;
color: #1F2937;
text-decoration: none;
font-size: 13px;
font-weight: 600;
padding: 6px 12px;
border-radius: 8px;
min-width: 64px;
transition: background 0.15s, color 0.15s;
flex-shrink: 0;
}
.alibar__action:hover { background: rgba(0, 0, 0, 0.06); color: #0a0a0a; }
.alibar__action svg { display: block; }
@media (max-width: 1024px) {
.alibar__catalog span { display: none; }
.alibar__catalog { padding: 0 14px; }
.alibar__action span { display: none; }
.alibar__action { min-width: 44px; padding: 6px 8px; }
}
@media (max-width: 768px) {
.alibar { padding: 8px 0; }
.alibar__logo { font-size: 22px; }
.alibar__mini,
.alibar__catalog { display: none; }
.alibar__search { height: 40px; padding: 0; }
.alibar__search input { padding: 0 14px; }
.alibar__search-btn { padding: 0 18px; height: 100%; font-size: 14px; }
}
.alibar {
transition:
background-color 250ms ease,
border-bottom-color 250ms ease,
box-shadow 250ms ease;
}
.alibar__logo,
.alibar__logo span,
.alibar__catalog,
.alibar__action,
.alibar__mini,
.alibar__search {
transition:
background-color 250ms ease,
color 250ms ease,
border-color 250ms ease;
}
body:not(.is-scrolled) .alibar {
background: #FFFFFF;
border-bottom: none;
}
body:not(.is-scrolled) .alibar__logo,
body:not(.is-scrolled) .alibar__logo span {
color: var(--color-text);
}
body:not(.is-scrolled) .alibar__catalog {
background: #F1F3F5;
color: #1F2937;
border-color: #E5E7EB;
}
body:not(.is-scrolled) .alibar__catalog:hover {
background: #E9ECEF;
border-color: #D1D5DB;
}
body:not(.is-scrolled) .alibar__search {
background: #FFFFFF;
border: 1px solid #E5E7EB;
transition:
background-color 200ms ease,
border-color 200ms ease,
box-shadow 200ms ease;
}
body:not(.is-scrolled) .alibar__search:hover {
border-color: #D1D5DB;
}
body:not(.is-scrolled) .alibar__search:focus-within {
background: #FFFFFF;
border-color: #9CA3AF;
box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.05);
}
body:not(.is-scrolled) .alibar__search input {
color: var(--color-text);
}
.alibar__search input,
.alibar__search input:focus,
.alibar__search input:focus-visible,
.alibar__search input:active {
border: 0 !important;
outline: 0 !important;
box-shadow: none !important;
background: transparent !important;
-webkit-box-shadow: none !important;
}
.alibar__msearch-input,
.alibar__msearch-input:focus,
.alibar__msearch-input:focus-visible,
.alibar__msearch-input:active {
border: 0 !important;
outline: 0 !important;
box-shadow: none !important;
}
body:not(.is-scrolled) .alibar__action {
color: var(--color-text);
}
body:not(.is-scrolled) .alibar__action:hover {
background: var(--color-primary-light);
color: var(--color-text);
}
body:not(.is-scrolled) .alibar__mini {
color: var(--color-text);
}
body:not(.is-scrolled) .alibar__mini:hover {
background: var(--color-primary-light);
}
body.is-scrolled .alibar {
background: #ffffff;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
border-bottom: 1px solid #E5E7EB;
}
@media (prefers-reduced-motion: reduce) {
.alibar,
.alibar *,
.site-header-shell,
.site-header-shell * {
transition: none !important;
}
}
.subheader {
background: #F8F9FA;
border-top: none;
border-bottom: 2px solid #FFD23F;
position: relative;
z-index: 99;
transition: background-color 250ms ease;
}
.subheader__inner {
display: flex;
align-items: center;
justify-content: space-between;
height: 48px;
gap: 24px;
}
.mainnav {
display: flex;
list-style: none;
margin: 0;
padding: 0;
gap: 0;
flex: 0 1 auto;
}
.mainnav__item { margin: 0; padding: 0; }
.mainnav__link {
display: inline-flex;
align-items: center;
height: 48px;
padding: 0 18px;
color: #1F2937;
text-decoration: none;
font-size: 14px;
font-weight: 500;
letter-spacing: 0.2px;
border-bottom: 2px solid transparent;
transition: color 150ms ease, border-bottom-color 150ms ease, background 150ms ease;
}
.mainnav__link:hover {
color: #023E8A;
background: rgba(0, 0, 0, 0.04);
}
.mainnav__link--active {
color: #023E8A;
font-weight: 700;
}
.subheader__right {
display: flex;
align-items: center;
gap: 16px;
flex: 0 0 auto;
}
.subheader__contact {
display: inline-flex;
align-items: center;
gap: 6px;
color: #4B5563;
text-decoration: none;
font-size: 13px;
font-weight: 500;
white-space: nowrap;
padding: 4px 0;
transition: color 150ms ease;
}
.subheader__contact:hover { color: #023E8A; }
.subheader__contact svg {
flex-shrink: 0;
opacity: 0.85;
}
.subheader__contact:hover svg { opacity: 1; }
.subheader__info {
display: inline-flex;
align-items: center;
gap: 6px;
color: #4B5563;
font-size: 13px;
font-weight: 500;
white-space: nowrap;
padding: 4px 0;
cursor: default;
}
.subheader__info svg {
flex-shrink: 0;
opacity: 0.7;
}
.subheader__online {
color: #023E8A;
font-weight: 600;
}
.subheader__online svg { opacity: 1; }
.subheader-lang { position: relative; }
.subheader-lang__trigger {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 6px 10px;
background: #ffffff;
border: 1px solid #E5E7EB;
border-radius: 6px;
color: #1F2937;
font-size: 13px;
font-weight: 500;
font-family: inherit;
cursor: pointer;
transition: background 150ms ease, border-color 150ms ease;
}
.subheader-lang__trigger:hover {
background: #F8F9FA;
border-color: #C0C4C9;
}
.subheader-lang__flag {
font-size: 14px;
line-height: 0;
display: inline-flex;
align-items: center;
}
.subheader-lang__flag .lang-flag-img {
width: 18px;
height: 12px;
display: block;
border-radius: 2px;
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.12);
object-fit: cover;
}
.subheader-lang__code { font-weight: 600; letter-spacing: 0.5px; }
.subheader-lang__chevron {
opacity: 0.85;
transition: transform 200ms ease;
}
.subheader-lang__trigger[aria-expanded="true"] .subheader-lang__chevron {
transform: rotate(180deg);
}
.subheader-lang__menu {
position: absolute;
top: calc(100% + 6px);
right: 0;
list-style: none;
margin: 0;
padding: 6px;
background: white;
border: 1px solid var(--color-border);
border-radius: 10px;
box-shadow: 0 12px 32px rgba(2, 62, 138, 0.15);
min-width: 220px;
z-index: 1000;
}
.subheader-lang__menu[hidden] { display: none; }
.subheader-lang__item { margin: 0; padding: 0; }
.subheader-lang__item form { margin: 0; }
.subheader-lang__option {
display: flex;
align-items: center;
gap: 8px;
width: 100%;
padding: 10px 12px;
background: transparent;
border: none;
border-radius: 6px;
cursor: pointer;
font-size: 14px;
color: var(--color-text);
text-align: left;
font-family: inherit;
transition: background 100ms ease;
}
.subheader-lang__option:hover { background: var(--color-primary-light); }
.subheader-lang__item--active .subheader-lang__option {
background: var(--color-primary-light);
color: var(--color-primary);
font-weight: 500;
}
.subheader-lang__option-flag {
font-size: 18px;
line-height: 0;
flex-shrink: 0;
display: inline-flex;
align-items: center;
}
.subheader-lang__option-flag .lang-flag-img {
width: 22px;
height: 15px;
display: block;
border-radius: 2px;
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.12);
object-fit: cover;
}
.subheader-lang__option-code {
font-weight: 700;
letter-spacing: 0.5px;
font-size: 13px;
min-width: 22px;
}
.subheader-lang__option-sep {
color: var(--color-text-muted);
font-weight: 300;
}
.subheader-lang__option-name { flex: 1; }
.subheader-lang__option-check {
margin-left: auto;
color: var(--color-primary);
}
@media (max-width: 1280px) {
.subheader__hours { display: none; }
}
@media (max-width: 1024px) {
.subheader__contact--email .subheader__contact-text { display: none; }
.subheader__right { gap: 12px; }
.mainnav__link { padding: 0 14px; font-size: 13px; }
.subheader__online { display: none; }
}
@media (max-width: 768px) {
.subheader__inner {
height: auto;
flex-direction: column;
gap: 0;
padding-top: 0;
padding-bottom: 0;
}
.mainnav { display: none; }
.subheader__right {
width: 100%;
justify-content: space-between;
height: 40px;
padding: 0 4px;
}
.subheader__contact { font-size: 12px; }
.subheader-lang__menu { right: 0; min-width: 200px; }
}
@media (max-width: 480px) {
.subheader__contact--email { display: none; }
}
@media (prefers-reduced-motion: reduce) {
.subheader,
.mainnav__link,
.subheader-lang__chevron,
.subheader-lang__trigger,
.subheader__contact {
transition: none !important;
}
}
/* === css/header_aliexpress.css === */
.header {
background: #fff !important;
border-bottom: 1px solid #f0f0f0 !important;
}
.header .container,
.header .header-inner,
.header .nav-inner {
max-width: 1280px !important;
margin-left: auto !important;
margin-right: auto !important;
}
.header-inner {
display: flex !important;
align-items: center !important;
gap: 24px !important;
padding: 14px 20px !important;
}
.logo {
font-size: 26px;
font-weight: 800;
text-decoration: none;
white-space: nowrap;
letter-spacing: -0.5px;
display: inline-flex;
align-items: center;
flex-shrink: 0;
}
.logo-a { color: #f60; }
.logo-e { color: #111; }
.logo-img {
display: block;
height: 48px;
width: auto;
max-width: 200px;
object-fit: contain;
filter: brightness(0);
opacity: 0.95;
}
.search-box {
flex: 1 !important;
display: flex !important;
align-items: center !important;
border: 2px solid #111 !important;
border-radius: 30px !important;
padding: 2px 4px 2px 18px !important;
height: 42px !important;
max-width: 520px !important;
background: #fff !important;
position: relative;
}
.search-suggest {
position: absolute;
top: calc(100% + 8px); left: 0; right: 0;
background: #fff;
border: 1px solid #E2E8F0;
border-radius: 16px;
box-shadow: 0 12px 40px rgba(2, 62, 138, 0.18);
max-height: 480px;
overflow-y: auto;
z-index: 1000;
padding: 6px;
}
.search-suggest[hidden] { display: none !important; }
.search-suggest__item {
display: flex; align-items: center; gap: 12px;
padding: 8px 10px;
border-radius: 10px;
text-decoration: none;
color: #1A2332;
transition: background 0.12s;
}
.search-suggest__item:hover,
.search-suggest__item.is-active {
background: #F2F5FA;
}
.search-suggest__img {
flex: 0 0 48px; width: 48px; height: 48px;
object-fit: cover;
border-radius: 8px;
background: #F7F9FC;
border: 1px solid #E2E8F0;
}
.search-suggest__img--placeholder {
background: linear-gradient(135deg, #E5EBF5, #F7F9FC);
}
.search-suggest__body {
flex: 1; min-width: 0;
display: flex; flex-direction: column; gap: 2px;
}
.search-suggest__name {
font-size: 14px; font-weight: 600;
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.search-suggest__meta {
display: flex; gap: 8px; align-items: center;
font-size: 12px;
}
.search-suggest__cat { color: #718096; }
.search-suggest__price { color: #023E8A; font-weight: 700; }
.search-suggest__ask { color: #92400E; font-weight: 600; }
.search-suggest__empty {
padding: 24px;
text-align: center;
color: #718096;
font-size: 14px;
}
.search-suggest__all {
display: block;
text-align: center;
padding: 12px;
margin-top: 4px;
border-top: 1px solid #E2E8F0;
font-size: 13px; font-weight: 700;
color: #023E8A;
text-decoration: none;
border-radius: 0 0 10px 10px;
}
.search-suggest__all:hover { background: #F2F5FA; }
@media (max-width: 640px) {
.search-suggest {
border-radius: 12px;
max-height: 60vh;
}
.search-suggest__img { width: 40px; height: 40px; flex-basis: 40px; }
.search-suggest__name { font-size: 13px; }
}
.search-box input {
flex: 1;
border: none;
outline: none;
font-size: 13px;
color: #666;
background: transparent;
height: 100%;
padding: 0;
min-width: 0;
}
.search-box input::placeholder { color: #999; }
.search-box input:focus { outline: none; }
.cam-btn {
background: none;
border: none;
cursor: pointer;
padding: 4px 10px;
display: flex;
align-items: center;
color: #222;
flex-shrink: 0;
}
.cam-btn svg { display: block; stroke: #222; }
.search-btn {
background: #111 !important;
border: none !important;
border-radius: 50% !important;
width: 34px !important;
height: 34px !important;
cursor: pointer;
display: flex !important;
align-items: center !important;
justify-content: center !important;
flex-shrink: 0;
padding: 0 !important;
color: #fff !important;
}
.search-btn svg { display: block !important; stroke: #fff !important; }
.search-btn:hover { background: #000 !important; }
.header-item {
display: flex !important;
align-items: center !important;
gap: 8px !important;
cursor: pointer;
font-size: 13px;
color: #222 !important;
text-decoration: none !important;
flex-shrink: 0;
background: transparent !important;
border: none;
font-family: inherit;
padding: 0;
}
.header-item:hover { color: #000 !important; }
.header-item > svg { display: block; stroke: #222; flex-shrink: 0; }
.flag {
font-size: 22px;
display: inline-flex;
align-items: center;
}
.flag .lang-flag-img {
width: 24px;
height: 18px;
border-radius: 2px;
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.12);
object-fit: cover;
display: block;
}
.hi-text {
display: flex;
flex-direction: column;
line-height: 1.3;
text-align: left;
}
.hi-top {
font-size: 11px;
color: #999;
}
.hi-bottom {
font-size: 13px;
color: #222;
font-weight: 500;
white-space: nowrap;
}
.hi-bottom b { font-weight: 700; }
.arrow { font-size: 11px; }
.cart {
position: relative;
flex-direction: column !important;
gap: 0 !important;
align-items: center !important;
}
.cart-icon { position: relative; display: inline-flex; align-items: center; justify-content: center; }
.cart-icon svg { display: block; stroke: #222; }
.cart-badge {
position: absolute;
top: -6px;
right: -8px;
background: #f60 !important;
color: #fff !important;
border-radius: 50% !important;
font-size: 11px;
font-weight: 700;
width: 18px;
height: 18px;
display: flex !important;
align-items: center !important;
justify-content: center !important;
line-height: 1;
padding: 0;
border: none;
box-sizing: border-box;
}
.cart-badge.is-empty { background: #c0c4c9 !important; }
.cart-text {
font-size: 12px;
color: #666 !important;
margin-top: 2px;
}
.header .nav,
.nav {
border-bottom: 1px solid #f0f0f0 !important;
background: #fff !important;
}
.nav-inner {
display: flex !important;
align-items: center !important;
gap: 14px !important;
padding: 10px 20px !important;
min-width: 0;
}
.cats-btn {
background: #f5f5f5 !important;
border: none !important;
padding: 10px 22px !important;
border-radius: 30px !important;
font-size: 14px !important;
cursor: pointer;
font-weight: 500 !important;
color: #222 !important;
text-decoration: none !important;
display: inline-flex;
align-items: center;
white-space: nowrap;
font-family: inherit;
flex-shrink: 0;
}
.cats-btn:hover { background: #ececec !important; color: #000 !important; }
.burger { margin-right: 6px; }
.nav-list {
display: flex !important;
align-items: center !important;
gap: 22px !important;
list-style: none;
font-size: 14px;
color: #222;
margin: 0;
padding: 0;
}
.nav-list li {
cursor: pointer;
margin: 0;
padding: 0;
}
.nav-list li a {
color: #222 !important;
text-decoration: none !important;
font-size: 14px;
font-weight: 400;
display: inline-block;
}
.nav-list li a:hover { color: #f43f5e !important; }
.nav-list .active a,
.nav-list li.active a,
.nav-list .active {
color: #f43f5e !important;
font-weight: 700 !important;
}
.nav-list .nav-list__sale a,
.nav-list__sale .nav-sale-link {
display: inline-flex !important;
align-items: center !important;
gap: 6px !important;
color: #DC2626 !important;
font-weight: 600 !important;
white-space: nowrap !important;
line-height: 1 !important;
}
.nav-list .nav-list__sale a:hover {
color: #B91C1C !important;
}
.nav-list .nav-list__sale.active a {
color: #DC2626 !important;
font-weight: 800 !important;
}
.nav-sale-badge {
display: inline-flex !important;
align-items: center;
justify-content: center;
width: 18px;
height: 18px;
border-radius: 50%;
background: #DC2626;
color: #ffffff;
font-size: 11px;
font-weight: 800;
line-height: 1;
flex-shrink: 0;
}
.nav-list__sale .nav-sale-link > span:last-child {
display: inline-block;
white-space: nowrap;
}
.nav-contacts {
margin-left: auto;
display: flex;
align-items: center;
gap: 16px;
flex-shrink: 1;
min-width: 0;
}
.nav-contact {
display: inline-flex;
align-items: center;
gap: 6px;
color: #555 !important;
text-decoration: none !important;
font-size: 12.5px;
font-weight: 500;
white-space: nowrap;
transition: color 150ms ease;
}
.nav-contact--hours,
.nav-contact--phone,
.nav-contact--email { flex-shrink: 0; white-space: nowrap; }
.nav-contact:hover { color: #111 !important; }
.nav-contact svg { stroke: #888; flex-shrink: 0; }
.nav-contact:hover svg { stroke: #111; }
.nav-contact--online strong { color: #111; font-weight: 700; }
.subheader { display: none !important; }
.alibar__utility { display: none !important; }
.alibar { padding: 0 !important; background: #fff !important; }
.alibar__inner { display: none !important; }
.alibar__catalog { display: none !important; }
.hamburger { display: none; }
body.is-scrolled .header,
body.layout-body.is-scrolled .header {
background: #fff !important;
}
.lang-switcher { position: relative; }
.lang-trigger {
display: flex;
align-items: center;
gap: 8px;
background: transparent;
border: none;
cursor: pointer;
padding: 0;
font-family: inherit;
color: inherit;
font-size: 13px;
}
.lang-menu {
position: absolute;
top: calc(100% + 8px);
right: 0;
background: #fff;
border: 1px solid #e5e7eb;
border-radius: 10px;
box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12);
list-style: none;
margin: 0;
padding: 6px;
min-width: 220px;
z-index: 1000;
}
.lang-menu[hidden] { display: none; }
.lang-option-item { margin: 0; padding: 0; }
.lang-option-item form { margin: 0; }
.lang-option-btn {
display: flex;
align-items: center;
gap: 10px;
width: 100%;
padding: 10px 12px;
background: transparent;
border: none;
border-radius: 6px;
cursor: pointer;
font-size: 14px;
color: #222;
text-align: left;
font-family: inherit;
}
.lang-option-btn:hover { background: #f5f5f5; }
.lang-option-item.is-active .lang-option-btn { background: #fff5ec; color: #f60; font-weight: 600; }
.lang-option-flag { display: inline-flex; align-items: center; flex-shrink: 0; }
.lang-option-flag .lang-flag-img { width: 22px; height: 15px; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0,0,0,0.12); display: block; object-fit: cover; }
.lang-option-code { font-weight: 700; min-width: 24px; }
.lang-option-name { flex: 1; color: #444; }
.lang-option-check { color: #f60; font-weight: 700; }
.cats-wrap { position: relative; flex-shrink: 0; }
.cats-dropdown {
position: absolute;
top: calc(100% + 6px);
left: 0;
background: #fff;
border: 1px solid #e5e7eb;
border-radius: 10px;
box-shadow: 0 16px 40px rgba(0, 0, 0, 0.14);
min-width: 320px;
max-width: 360px;
max-height: 70vh;
overflow-y: auto;
padding: 8px;
opacity: 0;
visibility: hidden;
transform: translateY(-6px);
transition: opacity 150ms ease, transform 150ms ease, visibility 150ms ease;
z-index: 1000;
}
.cats-wrap:hover .cats-dropdown,
.cats-wrap:focus-within .cats-dropdown {
opacity: 1;
visibility: visible;
transform: translateY(0);
}
.cats-dropdown__list { list-style: none; margin: 0; padding: 0; }
.cats-dropdown__item { margin: 0; padding: 0; }
.cats-dropdown__link {
display: flex;
align-items: center;
gap: 10px;
padding: 10px 12px;
text-decoration: none;
color: #222 !important;
font-size: 14px;
font-weight: 600;
border-radius: 6px;
}
.cats-dropdown__link:hover { background: #f5f5f5; color: #f60 !important; }
.cats-dropdown__item--sale {
margin-bottom: 6px !important;
padding-bottom: 6px !important;
border-bottom: 1px solid #f3f4f6 !important;
}
.cats-dropdown__link--sale {
color: #DC2626 !important;
font-weight: 700 !important;
background: #FEF2F2;
}
.cats-dropdown__link--sale:hover {
background: #FEE2E2 !important;
color: #B91C1C !important;
}
.cats-dropdown__sale-badge {
display: inline-flex;
align-items: center;
justify-content: center;
width: 22px;
height: 22px;
border-radius: 50%;
background: #DC2626;
color: #ffffff;
font-size: 12px;
font-weight: 800;
line-height: 1;
flex-shrink: 0;
}
.cats-dropdown__icon { width: 20px; height: 20px; object-fit: contain; flex-shrink: 0; }
.cats-dropdown__sublist { list-style: none; margin: 0 0 4px 32px; padding: 0; }
.cats-dropdown__sublink {
display: block;
padding: 6px 12px;
text-decoration: none;
color: #555 !important;
font-size: 13px;
border-radius: 4px;
}
.cats-dropdown__sublink:hover { background: #fafafa; color: #f60 !important; }
@media (max-width: 1049.98px) {
body .alibar,
body:not(.is-scrolled) .alibar,
body.is-scrolled .alibar,
body.layout-body .alibar,
body.layout-body:not(.is-scrolled) .alibar,
body.layout-body.is-scrolled .alibar,
body .header.alibar,
body.layout-body .header.alibar,
body.layout-body.is-scrolled .header.alibar {
background: #ffffff !important;
border-bottom: 1px solid #f0f0f0 !important;
}
body:not(.is-scrolled) .logo,
body:not(.is-scrolled) .logo-a,
body:not(.is-scrolled) .logo-e { color: #111 !important; }
body:not(.is-scrolled) .logo-e { color: #111 !important; }
body:not(.is-scrolled) .alibar__logo-img--default,
body:not(.is-scrolled) .alibar__logo-img--scrolled { opacity: 1 !important; }
body:not(.is-scrolled) .hamburger { color: #222 !important; }
body:not(.is-scrolled) .hamburger span { background: #222 !important; }
.alibar__utility,
.alibar__mobile,
.alibar__msearch { display: none !important; }
}
@media (max-width: 1280px) {
.header-item:nth-of-type(2) .hi-text { display: none; }
}
@media (max-width: 1440px) {
.nav-contact--email { display: none; }
}
@media (max-width: 1280px) {
.nav-contact--hours { display: none; }
}
@media (max-width: 1024px) {
.header-inner { gap: 14px !important; padding: 12px 16px !important; }
.hi-text { display: none; }
.cart-text { display: none; }
.search-box { max-width: none !important; }
.lang-trigger .hi-text { display: none; }
.nav-contact--online { display: none; }
.nav-contacts { gap: 12px; }
}
@media (max-width: 768px) {
.header-inner {
display: flex !important;
flex-wrap: wrap !important;
align-items: center !important;
column-gap: 6px !important;
row-gap: 10px !important;
padding: 10px 14px 14px !important;
}
.logo {
flex-shrink: 0;
order: 1;
}
.logo-img { height: 44px !important; max-width: 150px !important; }
.search-box {
order: 99 !important;
flex-basis: 100% !important;
width: 100% !important;
max-width: 100% !important;
padding: 0 0 0 14px !important;
height: 44px !important;
border-width: 1px !important;
border-color: #E2E8F0 !important;
border-radius: 10px !important;
background: #F8FAFC !important;
overflow: hidden !important;
}
.search-box input {
font-size: 14px !important;
}
.search-btn {
width: 44px !important;
height: 44px !important;
border-radius: 0 !important;
margin: 0 !important;
background: var(--color-primary, #023E8A) !important;
flex-shrink: 0 !important;
}
.search-btn:hover { background: var(--color-primary-hover, #03306E) !important; }
.header-inner > .header-item.lang-switcher { order: 10; margin-left: auto; }
.header-inner > .hamburger { order: 12; }
.header-item:not(.lang-switcher) { display: none !important; }
.lang-switcher .flag {
display: inline-flex !important;
align-items: center;
flex-shrink: 0;
}
.lang-switcher .flag .lang-flag-img {
width: 20px;
height: 14px;
border-radius: 2px;
box-shadow: 0 0 0 1px rgba(0,0,0,0.1);
object-fit: cover;
display: block;
}
.lang-switcher .hi-text,
.lang-trigger .hi-text {
display: inline-flex !important;
flex-direction: row !important;
align-items: center;
gap: 4px;
}
.lang-switcher .hi-top { display: none !important; }
.lang-switcher .hi-bottom {
display: inline-flex !important;
align-items: center;
gap: 3px;
font-size: 13px;
font-weight: 700;
color: #222;
letter-spacing: 0.3px;
}
.lang-switcher .hi-bottom b { font-weight: 700; color: #222; }
.lang-switcher .arrow { display: inline; font-size: 10px; opacity: 0.6; }
.lang-switcher .arrow { font-size: 10px; opacity: 0.6; margin-left: 2px; }
.lang-switcher .lang-trigger {
gap: 4px;
padding: 8px 12px;
min-height: 44px;
min-width: 56px;
border-radius: 8px;
border: 1px solid #E2E8F0;
background: #F8FAFC;
}
.lang-switcher .lang-trigger:hover,
.lang-switcher .lang-trigger:focus-visible {
background: #F1F5F9;
border-color: #CBD5E1;
}
.cart {
min-width: 44px;
min-height: 44px;
padding: 6px 8px;
border-radius: 8px;
}
.cart-text { display: none; }
.lang-menu { right: 0; min-width: 200px; }
.hamburger,
body.is-scrolled .hamburger,
body:not(.is-scrolled) .hamburger,
body.layout-body .hamburger,
body.layout-body.is-scrolled .hamburger {
display: inline-flex !important;
align-items: center;
justify-content: center;
width: 44px !important;
height: 44px !important;
margin-left: 4px;
background: transparent !important;
border: none;
cursor: pointer;
border-radius: 8px;
flex-direction: column;
gap: 4px;
padding: 0;
color: #222 !important;
}
.hamburger:hover,
.hamburger:focus-visible {
background: rgba(0,0,0,0.05) !important;
outline: none;
}
.hamburger span,
body.is-scrolled .hamburger span,
body:not(.is-scrolled) .hamburger span,
body.layout-body .hamburger span,
body.layout-body.is-scrolled .hamburger span {
display: block !important;
width: 22px !important;
height: 2px !important;
background: #222 !important;
border-radius: 1px;
transition: transform 0.2s, opacity 0.2s;
opacity: 1 !important;
}
.hamburger.is-open span:nth-child(1) { transform: translateY(6px) rotate(45deg) !important; }
.hamburger.is-open span:nth-child(2) { opacity: 0 !important; }
.hamburger.is-open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg) !important; }
.header .nav {
display: none !important;
}
.header .nav-inner,
.cats-wrap,
.cats-btn,
.nav-list,
.nav-contacts {
display: none !important;
}
}
/* === css/home.css === */
.hero-banner {
padding: 24px 0 16px 0;
background: var(--color-bg);
}
.hero-banner__link {
display: block;
text-decoration: none;
border-radius: 24px;
overflow: hidden;
position: relative;
transition: transform 250ms ease, box-shadow 250ms ease;
cursor: pointer;
}
.hero-banner__link:hover {
transform: translateY(-2px);
box-shadow: 0 16px 40px rgba(2, 62, 138, 0.15);
}
.hero-banner__image {
display: block;
width: 100%;
height: auto;
aspect-ratio: 16 / 7;
object-fit: cover;
border-radius: 24px;
background: var(--color-surface-2);
}
.hero-banner__placeholder {
width: 100%;
aspect-ratio: 16 / 7;
background: linear-gradient(
135deg,
#E5E9F0 0%,
#C9D1DC 50%,
#E5E9F0 100%
);
border-radius: 24px;
position: relative;
}
.hero-banner__placeholder::after {
content: 'Banner rasmi yuklanmagan';
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
color: #94A3B8;
font-size: 14px;
font-weight: 500;
letter-spacing: 0.5px;
}
@media (max-width: 1024px) {
.hero-banner__image,
.hero-banner__placeholder {
border-radius: 20px;
aspect-ratio: 16 / 8;
}
}
@media (max-width: 768px) {
.hero-banner {
padding: 12px 0 10px 0;
}
.hero-banner__image {
border-radius: 16px;
aspect-ratio: auto;
width: 100%;
height: auto;
max-height: 60vh;
object-fit: contain;
background: var(--color-surface-2);
}
.hero-banner__placeholder {
border-radius: 16px;
aspect-ratio: 4 / 3;
}
.hero-banner__placeholder::after {
font-size: 12px;
}
}
@media (prefers-reduced-motion: reduce) {
.hero-banner__link { transition: none; }
.hero-banner__link:hover { transform: none; }
}
.stats { display: none; }
.featured-products {
padding: 32px 0 48px 0;
background: var(--color-bg);
}
.section-head {
display: flex;
justify-content: space-between;
align-items: flex-end;
gap: 24px;
margin-bottom: 32px;
flex-wrap: wrap;
}
.section-head--link-only {
justify-content: flex-end;
margin-bottom: 16px;
}
.section-head--split {
position: relative;
display: flex;
align-items: center;
justify-content: flex-end;
min-height: 56px;
flex-wrap: nowrap;
}
.section-head__spacer { display: none; }
.section-head__caption {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
margin: 0;
text-align: center;
font-weight: var(--font-weight-bold);
color: var(--color-text);
letter-spacing: -0.01em;
line-height: var(--line-height-tight);
pointer-events: none;
white-space: nowrap;
max-width: 80%;
}
.section-head--split .section-head__link {
position: relative;
z-index: 1;
}
.section-head__caption[data-size="sm"] { font-size: clamp(16px, 2vw, 20px); }
.section-head__caption[data-size="md"] { font-size: clamp(20px, 2.5vw, 26px); }
.section-head__caption[data-size="lg"] { font-size: clamp(24px, 3vw, 32px); }
.section-head__caption[data-size="xl"] { font-size: clamp(28px, 4vw, 42px); }
@media (max-width: 768px) {
.section-head--split {
flex-direction: column;
align-items: center;
min-height: 0;
gap: 12px;
}
.section-head__caption {
position: static;
transform: none;
max-width: 100%;
white-space: normal;
pointer-events: auto;
}
.section-head__caption[data-size="sm"] { font-size: 16px; }
.section-head__caption[data-size="md"] { font-size: 18px; }
.section-head__caption[data-size="lg"] { font-size: 20px; }
.section-head__caption[data-size="xl"] { font-size: 24px; }
}
.section-head__text {
display: flex;
flex-direction: column;
gap: 6px;
}
.section-head__title {
margin: 0;
font-size: 40px;
font-weight: 800;
line-height: 1.1;
color: var(--color-text);
letter-spacing: -0.02em;
}
.section-head__subtitle {
margin: 0;
font-size: 16px;
color: var(--color-text-muted);
font-weight: 400;
}
.section-head__link {
display: inline-flex;
align-items: center;
gap: 6px;
font-size: 16px;
font-weight: 600;
color: var(--color-primary);
text-decoration: none;
transition: color 200ms ease, gap 200ms ease;
white-space: nowrap;
padding: 8px 0;
}
.section-head__link:hover {
color: var(--color-primary-hover);
gap: 10px;
}
.section-head__arrow {
transition: transform 200ms ease;
display: inline-block;
}
.section-head__link:hover .section-head__arrow {
transform: translateX(2px);
}
.audience-badges {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: stretch;
gap: 16px;
margin: 0 0 28px;
}
.audience-badge {
display: flex;
align-items: center;
gap: 14px;
flex: 1 1 280px;
min-width: 240px;
max-width: 360px;
padding: 14px 18px;
background: #fff;
border: 1px solid var(--color-border, #e5e7eb);
border-radius: 12px;
text-decoration: none;
color: var(--color-text, #1E2B3C);
transition: border-color 200ms ease, color 200ms ease, transform 200ms ease, box-shadow 200ms ease;
}
.audience-badge:hover {
border-color: var(--color-primary, #023E8A);
color: var(--color-primary, #023E8A);
transform: translateY(-2px);
box-shadow: 0 8px 20px rgba(2, 62, 138, 0.10);
}
.audience-badge__icon {
flex: 0 0 auto;
width: 48px;
height: 48px;
display: grid;
place-items: center;
background: #E6EFFB;
color: var(--color-primary, #023E8A);
border-radius: 10px;
border: 1px solid #CFE0F5;
overflow: hidden;
padding: 8px;
transition: background 200ms ease, color 200ms ease, border-color 200ms ease;
}
.audience-badge__icon img,
.audience-badge__icon svg {
width: 100%;
height: 100%;
object-fit: contain;
display: block;
}
.audience-badge:hover .audience-badge__icon {
background: var(--color-primary, #023E8A);
color: #fff;
border-color: var(--color-primary, #023E8A);
}
.audience-badge__text {
font-size: 15px;
font-weight: 600;
line-height: 1.3;
letter-spacing: -0.005em;
}
.audience-badge--active {
border-color: var(--color-primary, #023E8A);
color: var(--color-primary, #023E8A);
}
.audience-badge--active .audience-badge__icon {
background: var(--color-primary, #023E8A);
color: #fff;
border-color: var(--color-primary, #023E8A);
}
.audience-badge:hover .audience-badge__icon img,
.audience-badge--active .audience-badge__icon img {
filter: brightness(0) invert(1);
}
.section-head--right { justify-content: flex-end; }
.section-head--right > span:empty { display: none; }
.audience-badges--with-link {
flex-wrap: nowrap;
justify-content: flex-start;
align-items: center;
}
.audience-badges__view-all {
margin-left: auto;
flex: 0 0 auto;
display: inline-flex;
align-items: center;
gap: 4px;
padding: 10px 4px;
font-size: 15px;
font-weight: 600;
color: var(--color-primary, #023E8A);
text-decoration: none;
white-space: nowrap;
transition: color 200ms ease, transform 200ms ease;
}
.audience-badges__view-all:hover {
color: var(--color-primary-dark, #03306E);
}
.audience-badges__view-all:hover .section-head__arrow {
transform: translateX(3px);
}
.audience-badges__view-all .section-head__arrow {
transition: transform 200ms ease;
}
@media (max-width: 768px) {
.audience-badges { gap: 10px; margin-bottom: 20px; }
.audience-badge { padding: 12px 14px; gap: 12px; min-width: 0; flex-basis: 100%; }
.audience-badge__icon { width: 42px; height: 42px; }
.audience-badge__icon svg { width: 24px; height: 24px; }
.audience-badge__text { font-size: 14px; }
.audience-badges--with-link { flex-wrap: wrap; }
.audience-badges__view-all { margin-left: 0; width: 100%; justify-content: flex-end; padding: 4px 0 0; }
}
.featured-products .product-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 12px;
}
.featured-products .product-grid--row5 {
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: 12px;
}
@media (max-width: 1100px) {
.featured-products .product-grid--row5 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
.featured-products .product-grid--row5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
.featured-products .product-grid--row5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.featured-products .product-grid--row6 {
grid-template-columns: repeat(6, minmax(0, 1fr));
gap: 10px;
}
@media (max-width: 1280px) {
.featured-products .product-grid--row6 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 1100px) {
.featured-products .product-grid--row6 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
.featured-products .product-grid--row6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
.featured-products .product-grid--row6 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
}
.product-grid__empty {
grid-column: 1 / -1;
text-align: center;
padding: 48px 16px;
color: var(--color-text-muted);
font-size: 16px;
}
.featured-products .product-card {
display: flex;
flex-direction: column;
background: white;
border: 1px solid var(--color-border, #E2E8F0);
border-radius: 8px;
overflow: hidden;
text-decoration: none;
color: inherit;
transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
position: relative;
font-size: 14px;
}
.featured-products .product-card:hover {
border-color: var(--color-primary);
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(2, 62, 138, 0.08);
}
.featured-products .product-card__image-wrap {
position: relative;
aspect-ratio: 1 / 1;
background: var(--color-bg-soft, #F7F9FC);
overflow: hidden;
border-radius: 8px 8px 0 0;
padding: 8px;
}
.product-card__image {
width: 100%;
height: 100%;
object-fit: contain;
object-position: center;
display: block;
transition: transform 350ms ease;
}
.featured-products .product-card:hover .product-card__image {
transform: scale(1.04);
}
.featured-products .product-card__placeholder {
width: 100%;
height: 100%;
display: grid;
place-items: center;
background: linear-gradient(135deg, var(--color-primary-light), var(--color-surface-2));
color: var(--color-primary);
font-weight: 600;
font-size: 14px;
text-align: center;
padding: 16px;
}
.product-card__badge {
position: absolute;
top: 12px;
right: 12px;
background: #F97316;
color: white;
padding: 6px 10px;
border-radius: 6px;
font-size: 13px;
font-weight: 700;
line-height: 1;
letter-spacing: 0.02em;
box-shadow: 0 2px 8px rgba(249, 115, 22, 0.25);
z-index: 2;
}
.featured-products .product-card__body {
padding: 8px 10px 10px;
display: flex;
flex-direction: column;
gap: 4px;
flex: 1;
}
.featured-products .product-card__price {
display: flex;
align-items: baseline;
gap: 6px;
font-size: 16px;
font-weight: 700;
color: var(--color-primary);
line-height: 1.2;
}
.featured-products .product-card__price-old {
font-size: 12px;
font-weight: 400;
color: var(--color-text-muted);
text-decoration: line-through;
}
.featured-products .product-card__title {
margin: 0;
font-size: 13px;
font-weight: 500;
color: var(--color-text);
line-height: 1.3;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
min-height: 2.6em;
}
@media (max-width: 1024px) {
.featured-products .product-grid {
grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
gap: 10px;
}
.section-head__title {
font-size: 32px;
}
}
@media (max-width: 768px) {
.featured-products {
padding: 32px 0;
}
.section-head {
margin-bottom: 20px;
}
.section-head__title { font-size: 24px; }
.section-head__subtitle { font-size: 14px; }
.section-head__link { font-size: 14px; }
.featured-products .product-grid {
grid-template-columns: repeat(2, 1fr);
gap: 8px;
}
.featured-products .product-card__body { padding: 6px 8px 8px; }
.product-card__badge {
font-size: 10px;
padding: 3px 6px;
top: 6px;
right: 6px;
}
.featured-products .product-card__price { font-size: 14px; }
.featured-products .product-card__title { font-size: 12px; min-height: 2.4em; }
}
@media (max-width: 480px) {
.section-head {
flex-direction: column;
align-items: flex-start;
gap: 12px;
}
.section-head__link {
align-self: flex-end;
}
}
.section { padding: var(--space-12) 0; background: var(--color-surface); }
.section--surface { background: var(--color-surface-2); }
.section__head {
display: flex;
justify-content: space-between;
align-items: flex-end;
margin-bottom: var(--space-8);
flex-wrap: wrap;
gap: var(--space-4);
}
.section-title {
font-size: var(--font-size-2xl);
font-weight: var(--font-weight-bold);
margin: 0 0 var(--space-1) 0;
color: var(--color-text);
line-height: 1.2;
}
.section-subtitle {
margin: 0;
color: var(--color-text-secondary);
font-size: var(--font-size-base);
}
.partners { padding: var(--space-10) 0; background: var(--color-surface); }
.partners .section-title,
.partners .section-subtitle { text-align: center; }
.partners__caption {
text-align: center;
font-size: clamp(22px, 3vw, 32px);
font-weight: var(--font-weight-bold);
color: var(--color-text);
margin: var(--space-6) 0 0;
letter-spacing: -0.5px;
line-height: var(--line-height-tight);
}
@media (max-width: 640px) {
.partners__caption {
font-size: clamp(18px, 5vw, 22px);
margin-top: var(--space-5);
padding: 0 var(--space-4);
}
}
.partners__marquee {
overflow: hidden;
position: relative;
margin-top: var(--space-6);
padding: var(--space-4) 0;
-webkit-mask-image: linear-gradient(90deg, transparent, black 10%, black 90%, transparent);
mask-image: linear-gradient(90deg, transparent, black 10%, black 90%, transparent);
}
.partners__track {
display: flex;
gap: var(--space-8);
align-items: center;
width: max-content;
animation: marquee 40s linear infinite;
}
.partners__marquee:hover .partners__track { animation-play-state: paused; }
@keyframes marquee {
from { transform: translateX(0); }
to   { transform: translateX(-50%); }
}
.partner-card {
flex-shrink: 0;
height: 80px;
min-width: 180px;
display: flex;
align-items: center;
justify-content: center;
gap: var(--space-3);
padding: var(--space-3) var(--space-5);
background: transparent;
border: 1px solid transparent;
border-radius: var(--radius-md);
transition: opacity 0.2s, transform 0.2s, filter 0.2s;
text-decoration: none;
color: var(--color-text);
}
.partner-card:hover {
background: transparent;
border-color: transparent;
box-shadow: none;
transform: translateY(-2px);
}
.partner-card--image img {
max-width: 140px;
max-height: 56px;
object-fit: contain;
filter: none;
opacity: 1;
transition: transform 0.2s ease;
}
.partner-card--image:hover img {
transform: scale(1.05);
}
.partner-card--text {
min-width: 200px;
}
.partner-card__text {
font-weight: var(--font-weight-bold);
font-size: var(--font-size-base);
text-transform: uppercase;
letter-spacing: 1px;
color: var(--color-text);
white-space: nowrap;
}
.partner-card--text:hover .partner-card__text {
color: var(--color-primary);
}
.partner-card--both {
min-width: 220px;
}
.partner-card--both img {
max-width: 40px;
max-height: 40px;
object-fit: contain;
}
.partner-card--both .partner-card__text {
font-size: var(--font-size-sm);
letter-spacing: 0.5px;
}
.product-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: var(--space-4);
}
.projects-carousel {
position: relative;
padding: 0;
}
.projects-carousel__empty {
text-align: center;
padding: 48px 16px;
color: var(--color-text-muted);
font-size: 14px;
}
.projects-carousel__viewport {
overflow-x: auto;
overflow-y: hidden;
scroll-behavior: smooth;
scroll-snap-type: x mandatory;
-webkit-overflow-scrolling: touch;
scrollbar-width: none;
margin: 0;
padding: var(--space-2) 0;
}
.projects-carousel__viewport::-webkit-scrollbar { display: none; }
.projects-carousel__track {
display: flex;
gap: 16px;
padding: 0;
user-select: none;
}
.project-slide {
flex: 0 0 calc((100% - 64px) / 5);
max-width: calc((100% - 64px) / 5);
background: white;
border-radius: var(--radius-md);
overflow: hidden;
text-decoration: none;
color: inherit;
border: 1px solid var(--color-border);
transition: all 0.2s;
display: flex;
flex-direction: column;
scroll-snap-align: start;
}
@media (max-width: 1024px) {
.project-slide {
flex: 0 0 calc((100% - 32px) / 3);
max-width: calc((100% - 32px) / 3);
}
}
@media (max-width: 768px) {
.project-slide {
flex: 0 0 calc((100% - 16px) / 2);
max-width: calc((100% - 16px) / 2);
}
}
@media (max-width: 480px) {
.project-slide {
flex: 0 0 86%;
max-width: 86%;
}
.project-slide__image { aspect-ratio: 5 / 3; }
.project-slide__title { font-size: 14px; }
.project-slide__desc { font-size: 13px; line-height: 1.5; }
}
.project-slide:hover {
transform: translateY(-2px);
box-shadow: var(--shadow-card-hover);
}
.project-slide__image {
aspect-ratio: 16 / 10;
overflow: hidden;
background: var(--color-surface-2);
position: relative;
}
.project-slide__flags {
position: absolute !important;
right: 8px !important;
bottom: 8px !important;
display: inline-flex !important;
flex-wrap: wrap !important;
gap: 4px !important;
justify-content: flex-end !important;
z-index: 2 !important;
pointer-events: none !important;
margin: 0 !important;
padding: 0 !important;
}
.project-slide__type {
position: absolute;
left: 10px;
bottom: 10px;
background: rgba(255, 255, 255, 0.96);
color: var(--color-primary, #023E8A);
font-size: 11px;
font-weight: 700;
padding: 5px 9px;
border-radius: 7px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
letter-spacing: 0.02em;
z-index: 2;
pointer-events: none;
max-width: calc(100% - 60px);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
@media (max-width: 600px) {
.project-slide__type {
font-size: 10px;
padding: 4px 7px;
}
}
.project-slide__flag {
display: inline-flex !important;
align-items: center !important;
gap: 4px !important;
padding: 2px 6px !important;
font-size: 9.5px !important;
font-weight: 800 !important;
letter-spacing: 0.04em !important;
text-transform: uppercase !important;
border-radius: 4px !important;
color: #ffffff !important;
line-height: 1.3 !important;
white-space: nowrap !important;
box-shadow: 0 1px 3px rgba(0,0,0,0.15) !important;
height: auto !important;
width: auto !important;
max-width: 100% !important;
}
.project-slide__flag-icon {
display: inline-block !important;
width: 12px !important;
height: 12px !important;
max-width: 12px !important;
max-height: 12px !important;
min-width: 0 !important;
min-height: 0 !important;
object-fit: contain !important;
flex-shrink: 0 !important;
vertical-align: middle !important;
border-radius: 0 !important;
}
.project-slide__badge-image {
display: inline-block !important;
width: 30px !important;
height: 30px !important;
max-width: 30px !important;
max-height: 30px !important;
object-fit: cover !important;
object-position: center !important;
border-radius: 8px !important;
background: transparent !important;
padding: 0 !important;
flex-shrink: 0 !important;
border: none !important;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18) !important;
transition: transform .2s ease;
}
.project-slide__badge-image--png {
background: #ffffff !important;
padding: 4px !important;
}
.project-slide:hover .project-slide__badge-image,
.project-card:hover .project-slide__badge-image {
transform: translateY(-1px) scale(1.03);
}
@media (max-width: 600px) {
.project-slide__badge-image {
width: 32px !important;
height: 32px !important;
max-width: 32px !important;
max-height: 32px !important;
}
}
.project-slide__flag--hit  { background: #DC2626 !important; }
.project-slide__flag--new  { background: #10B981 !important; }
.project-slide__flag--sale { background: linear-gradient(135deg, #F97316 0%, #EA580C 100%) !important; }
@media (max-width: 600px) {
.project-slide__flag { font-size: 8.5px !important; padding: 1px 5px !important; }
.project-slide__flag-icon { width: 10px !important; height: 10px !important; max-width: 10px !important; max-height: 10px !important; }
}
.project-slide__image img {
width: 100%;
height: 100%;
object-fit: cover;
pointer-events: none;
}
.project-slide__body {
padding: var(--space-4);
display: flex;
flex-direction: column;
gap: 6px;
aspect-ratio: 16 / 10;
box-sizing: border-box;
overflow: hidden;
}
.project-slide__location {
font-size: 11px;
line-height: 1.4;
text-transform: uppercase;
letter-spacing: 1px;
color: var(--color-primary);
font-weight: var(--font-weight-semibold);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
display: block;
}
.project-slide__title {
margin: 0;
font-size: 15px;
font-weight: var(--font-weight-semibold);
line-height: 1.3;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.project-slide__desc {
margin: 0;
color: var(--color-text-secondary);
font-size: 13px;
line-height: 1.5;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
flex: 1;
}
.projects-carousel__nav {
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 44px;
height: 44px;
border-radius: var(--radius-full);
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
border: 1px solid rgba(0, 0, 0, 0.08);
box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
cursor: pointer;
font-size: 22px;
font-weight: var(--font-weight-bold);
color: var(--color-primary);
display: grid;
place-items: center;
transition: all 0.15s;
z-index: 5;
line-height: 1;
}
.projects-carousel__nav:hover {
background: var(--color-primary);
color: white;
border-color: var(--color-primary);
}
.projects-carousel__nav--prev { left: 8px; }
.projects-carousel__nav--next { right: 8px; }
.projects-carousel__nav:disabled {
opacity: 0;
cursor: not-allowed;
pointer-events: none;
}
@media (max-width: 768px) {
.projects-carousel__nav { width: 36px; height: 36px; font-size: 18px; }
.projects-carousel__nav--prev { left: 4px; }
.projects-carousel__nav--next { right: 4px; }
}
.projects-carousel__dots {
display: flex;
justify-content: center;
gap: var(--space-2);
margin-top: var(--space-6);
}
.projects-carousel__dot {
width: 8px;
height: 8px;
border-radius: var(--radius-full);
background: var(--color-border-strong);
border: none;
cursor: pointer;
padding: 0;
transition: all 0.2s;
}
.projects-carousel__dot.is-active {
width: 24px;
background: var(--color-primary);
}
.product-card__placeholder {
width: 100%;
height: 100%;
display: grid;
place-items: center;
background: linear-gradient(135deg, var(--color-primary-light), var(--color-surface-2));
color: var(--color-primary);
font-weight: var(--font-weight-semibold);
font-size: var(--font-size-sm);
text-align: center;
padding: var(--space-4);
}
.showcase-grid {
display: grid;
grid-template-columns: repeat(5, 1fr);
gap: 16px;
}
@media (max-width: 1280px) {
.showcase-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 1024px) {
.showcase-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
.showcase-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
.showcase-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
}
.news-grid {
display: grid;
grid-template-columns: repeat(5, 1fr);
gap: 16px;
}
@media (max-width: 1280px) {
.news-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 1024px) {
.news-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
.news-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
.news-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
}
.news-card {
background: var(--color-surface);
border-radius: var(--radius-lg);
overflow: hidden;
text-decoration: none;
color: inherit;
border: 1px solid var(--color-border);
transition: all 0.2s;
display: flex;
flex-direction: column;
}
.news-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-card-hover); border-color: var(--color-primary); }
.news-card__image { aspect-ratio: 16 / 10; overflow: hidden; background: var(--color-surface-2); }
.news-card__image img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 480px) {
.news-card__image { aspect-ratio: 5 / 3; }
.news-card__title { font-size: 14px; }
.news-card__excerpt { font-size: 13px; line-height: 1.5; }
}
.news-card__body { padding: var(--space-4); }
.news-card__date {
font-size: var(--font-size-xs);
color: var(--color-text-muted);
}
.news-card__title {
margin: 6px 0;
font-size: 15px;
font-weight: var(--font-weight-semibold);
color: var(--color-text);
line-height: 1.3;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.news-card__excerpt {
margin: 0;
color: var(--color-text-secondary);
font-size: 13px;
line-height: 1.5;
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
}
.map-section {
display: grid;
grid-template-columns: 1.5fr 1fr;
gap: var(--space-8);
align-items: start;
}
.uz-map {
position: relative;
background: white;
border-radius: var(--radius-lg);
border: 1px solid var(--color-border);
padding: var(--space-5);
aspect-ratio: 1000 / 652;
overflow: hidden;
}
.uz-map__svg {
width: 100%;
height: 100%;
display: block;
pointer-events: none;
}
.uz-pin {
position: absolute;
transform: translate(-50%, calc(-100% + 7px));
background: transparent;
border: none;
cursor: pointer;
padding: 0;
z-index: 2;
display: flex;
flex-direction: column;
align-items: center;
gap: 6px;
}
.uz-pin__label {
position: relative;
background: var(--color-text);
color: #fff;
padding: 5px 10px;
border-radius: 6px;
font-size: 12px;
font-weight: 600;
line-height: 1.2;
white-space: nowrap;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
pointer-events: none;
order: 1;
}
.uz-pin__label::after {
content: '';
position: absolute;
bottom: -4px;
left: 50%;
transform: translateX(-50%) rotate(45deg);
width: 8px;
height: 8px;
background: var(--color-text);
}
.uz-pin__dot {
display: block;
width: 14px;
height: 14px;
border-radius: 50%;
background: var(--color-primary);
border: 3px solid #fff;
box-shadow: 0 2px 8px rgba(2, 62, 138, 0.5);
transition: transform 0.15s;
order: 2;
}
.uz-pin:hover .uz-pin__dot,
.uz-pin:focus .uz-pin__dot {
transform: scale(1.3);
}
.uz-pin--main .uz-pin__dot {
width: 18px;
height: 18px;
background: #FB923C;
animation: pulse-pin 2s infinite;
}
.uz-pin--main .uz-pin__label {
background: #FB923C;
}
.uz-pin--main .uz-pin__label::after {
background: #FB923C;
}
@keyframes pulse-pin {
0%, 100% { box-shadow: 0 2px 8px rgba(251, 146, 60, 0.5); }
50%      { box-shadow: 0 2px 20px rgba(251, 146, 60, 0.9); }
}
.map-section__list {
display: flex;
flex-direction: column;
gap: var(--space-3);
}
.map-section__list-title {
margin: 0 0 var(--space-2) 0;
font-size: var(--font-size-lg);
font-weight: var(--font-weight-semibold);
color: var(--color-text);
}
.branch-card {
padding: var(--space-4);
background: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: var(--radius-md);
transition: border-color 0.15s;
}
.branch-card:hover { border-color: var(--color-primary); }
.branch-card--main {
border-color: var(--color-warning);
background: var(--color-warning-light);
}
.branch-card h4 {
margin: var(--space-1) 0 var(--space-1) 0;
font-size: var(--font-size-base);
font-weight: var(--font-weight-semibold);
color: var(--color-text);
}
.branch-card p {
margin: 0 0 var(--space-1) 0;
font-size: var(--font-size-sm);
color: var(--color-text-secondary);
}
.text-muted { color: var(--color-text-muted); }
@media (max-width: 1024px) {
.hero__inner { grid-template-columns: 1fr; gap: var(--space-8); }
.hero__image { max-width: 520px; margin: 0 auto; }
.product-grid { grid-template-columns: repeat(3, 1fr); }
.project-slide { flex: 0 0 calc((100% - var(--space-5)) / 2); }
.map-section { grid-template-columns: 1fr; gap: var(--space-6); }
.uz-map { aspect-ratio: 1000 / 652; }
}
@media (max-width: 768px) {
.hero { padding: var(--space-8) 0; }
.hero__title { font-size: 36px; }
.hero__desc { font-size: var(--font-size-base); }
.hero__cta { flex-direction: column; align-items: stretch; }
.hero__cta .btn { width: 100%; justify-content: center; }
.hero__image { aspect-ratio: 4 / 3; margin-top: var(--space-6); }
.hero__stats { grid-template-columns: 1fr; gap: var(--space-4); }
.hero__stat-num { font-size: 32px; }
.section { padding: var(--space-8) 0; }
.section__head { flex-direction: column; align-items: flex-start; }
.product-grid { grid-template-columns: repeat(2, 1fr); gap: var(--space-3); }
.partner-card { height: 64px; min-width: 140px; padding: var(--space-2) var(--space-3); }
.partner-card--text,
.partner-card--both { min-width: 160px; }
.partners__track { gap: var(--space-5); }
.uz-pin__label {
opacity: 0;
visibility: hidden;
transition: opacity 150ms ease, visibility 150ms ease;
z-index: 5;
}
.uz-pin:hover .uz-pin__label,
.uz-pin:focus .uz-pin__label,
.uz-pin:focus-within .uz-pin__label,
.uz-pin.is-active .uz-pin__label {
opacity: 1;
visibility: visible;
}
.uz-pin--main .uz-pin__label {
opacity: 1;
visibility: visible;
}
.uz-pin__dot {
width: 16px;
height: 16px;
}
.uz-pin--main .uz-pin__dot {
width: 20px;
height: 20px;
}
}
@media (max-width: 640px) {
.project-slide { flex: 0 0 100%; }
.projects-carousel__nav { display: none; }
}
@media (max-width: 480px) {
.product-grid { grid-template-columns: 1fr 1fr; }
.product-card__price { font-size: var(--font-size-base); }
.product-card__title { font-size: var(--font-size-xs); }
}
.page-hero {
background: var(--color-surface);
border-bottom: 1px solid var(--color-border);
padding: 40px var(--container-padding);
}
.page-hero::before { display: none; }
.page-hero h1 { color: var(--color-text); }
.page-hero p,
.page-hero-desc { color: var(--color-text-secondary); }
.breadcrumb,
.page-hero .breadcrumb { color: var(--color-text-muted); }
.breadcrumb a,
.page-hero .breadcrumb a { color: var(--color-text-secondary); }
.breadcrumb a:hover,
.page-hero .breadcrumb a:hover { color: var(--color-primary); }
.breadcrumb span,
.page-hero .breadcrumb span { color: var(--color-text-muted); }
.page-hero-sm { padding: 28px var(--container-padding); }
.page-hero-sm h1 { color: var(--color-text); }
footer,
footer.site-footer {
background: var(--color-primary);
color: rgba(255, 255, 255, 0.85);
margin-top: 0;
}
.footer-contacts a:hover,
.footer-col a:hover,
footer a:hover { color: #fff; }
.footer-inner { border-bottom-color: rgba(255, 255, 255, 0.18) !important; }
.footer-desc,
.footer-logo-sub { color: rgba(255, 255, 255, 0.7); }
.footer-col h4 { color: rgba(255, 255, 255, 0.95); }
.footer-col a { color: rgba(255, 255, 255, 0.8); }
.site-footer__newsletter input[type="email"] {
background: #fff;
color: var(--color-text);
}
.layout-body > section:last-of-type,
.layout-body > div:last-of-type { margin-bottom: 0; }
.hero-slider {
position: relative;
border-radius: 24px;
overflow: hidden;
aspect-ratio: 16 / 7;
background: #1E2B3C;
box-shadow: 0 4px 16px rgba(15, 23, 42, 0.08);
}
.hero-slider__track {
position: relative;
width: 100%;
height: 100%;
}
.hero-slider__slide {
position: absolute;
inset: 0;
opacity: 0;
transition: opacity 0.7s ease;
pointer-events: none;
}
.hero-slider__slide.is-active {
opacity: 1;
z-index: 1;
pointer-events: auto;
}
.hero-slider__link {
display: block;
width: 100%;
height: 100%;
text-decoration: none;
color: inherit;
}
.hero-slider__media {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.hero-slider__media--video {
background: #000;
}
.hero-slider__media--iframe {
border: 0;
pointer-events: none;
}
.hero-slider__caption {
position: absolute;
bottom: 16%;
left: 6%;
max-width: 60%;
padding: 14px 22px;
background: rgba(15, 23, 42, 0.65);
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
color: #fff;
font-size: clamp(16px, 2.2vw, 24px);
font-weight: 700;
border-radius: 12px;
z-index: 2;
}
.hero-slider__nav {
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 48px;
height: 48px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.92);
border: none;
cursor: pointer;
font-size: 28px;
font-weight: 700;
line-height: 1;
color: var(--color-primary, #023E8A);
display: grid;
place-items: center;
z-index: 3;
transition: all 0.2s;
opacity: 0;
}
.hero-slider:hover .hero-slider__nav { opacity: 1; }
.hero-slider__nav:hover {
background: var(--color-primary, #023E8A);
color: #fff;
}
.hero-slider__nav--prev { left: 16px; }
.hero-slider__nav--next { right: 16px; }
.hero-slider__dots {
position: absolute;
bottom: 18px;
left: 50%;
transform: translateX(-50%);
display: flex;
gap: 8px;
z-index: 3;
}
.hero-slider__dot {
width: 10px;
height: 10px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.4);
border: 1px solid rgba(255, 255, 255, 0.7);
cursor: pointer;
padding: 0;
transition: all 0.2s;
}
.hero-slider__dot.is-active {
width: 28px;
border-radius: 999px;
background: #fff;
}
@media (max-width: 1024px) {
.hero-slider {
border-radius: 20px;
aspect-ratio: 16 / 8;
}
}
@media (max-width: 768px) {
.hero-slider {
border-radius: 16px;
aspect-ratio: 4 / 3;
}
.hero-slider__nav {
width: 38px;
height: 38px;
font-size: 22px;
opacity: 1;
}
.hero-slider__nav--prev { left: 8px; }
.hero-slider__nav--next { right: 8px; }
.hero-slider__caption {
font-size: 14px;
padding: 10px 14px;
max-width: 80%;
bottom: 14%;
}
}
@media (prefers-reduced-motion: reduce) {
.hero-slider__slide { transition: none; }
}
body.layout-body {
--color-primary: #023E8A !important;
--color-primary-hover: #03306E !important;
--color-primary-light: #E5EBF5 !important;
--color-primary-text: #023E8A !important;
--color-price: #023E8A !important;
--primary: #023E8A;
--primary-dark: #03306E;
--primary-light: #E5EBF5;
--accent: #023E8A;
}
body.layout-body .alibar {
background-color: #FFFFFF !important;
border-bottom: 1px solid #E5E9F0;
transition: background-color 0.18s ease;
will-change: background-color;
transform: translateZ(0);
}
body.layout-body .alibar a,
body.layout-body .alibar__catalog,
body.layout-body .alibar__action,
body.layout-body .alibar__mini {
color: #333333 !important;
}
body.layout-body .alibar__catalog {
background-color: #F4F6F8 !important;
color: #333333 !important;
border: 1px solid #E5E9F0;
}
body.layout-body .alibar__catalog:hover {
background-color: #ECEFF4 !important;
}
body.layout-body .alibar__search input {
background-color: #FFFFFF;
color: #333333;
}
body.layout-body.is-scrolled .alibar {
background-color: #FFFFFF !important;
border-bottom-color: #E5E9F0;
}
body.layout-body.is-scrolled .alibar a,
body.layout-body.is-scrolled .alibar__action,
body.layout-body.is-scrolled .alibar__mini {
color: #1F2937 !important;
}
body.layout-body .btn-primary,
body.layout-body button.btn-primary {
background-color: #023E8A !important;
border-color: #023E8A !important;
color: #FFFFFF !important;
}
body.layout-body .btn-primary:hover {
background-color: #03306E !important;
border-color: #03306E !important;
}
body.layout-body .btn-outline-primary {
color: #023E8A !important;
border-color: #023E8A !important;
}
body.layout-body .btn-outline-primary:hover {
background: #023E8A !important;
color: #FFFFFF !important;
}
body.layout-body .newsletter-btn {
background: #FFFFFF !important;
color: #2A2A2A !important;
border: 1px solid #FFFFFF;
font-weight: 700;
}
body.layout-body .newsletter-btn:hover {
background: #F0F0F0 !important;
color: #1A1A1A !important;
}
body.layout-body .newsletter-input:focus {
border-color: #FFFFFF;
box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.15);
}
body.layout-body .alibar,
body.layout-body .alibar__catalog,
body.layout-body .alibar__search-btn,
body.layout-body .nav-catalog-btn,
body.layout-body .btn-primary,
body.layout-body button.btn-primary,
body.layout-body .site-header-shell,
body.layout-body .site-subheader,
body.layout-body .alibar__search-btn:hover,
body.layout-body .alibar__search input:focus {
box-shadow: none !important;
}
body.layout-body.is-scrolled .alibar {
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
}
body.layout-body .alibar__search:focus-within {
box-shadow: 0 0 0 3px rgba(2, 62, 138, 0.12) !important;
}
body.layout-body .alibar__search input,
body.layout-body .alibar__search input:focus,
body.layout-body .alibar__search input:focus-visible {
box-shadow: none !important;
border: none !important;
outline: none !important;
background: transparent !important;
}
body.layout-body .pricing-card__btn.btn-primary,
body.layout-body #addToCart,
body.layout-body .btn-buy,
body.layout-body .btn-add-to-cart,
body.layout-body .cmp-cart-btn:not(.cmp-cart-btn--secondary),
body.layout-body .product-card__add-btn {
background-color: #023E8A !important;
border-color: #023E8A !important;
color: #FFFFFF !important;
box-shadow: 0 2px 8px rgba(2, 62, 138, 0.18) !important;
}
body.layout-body .pricing-card__btn.btn-primary:hover,
body.layout-body #addToCart:hover,
body.layout-body .btn-buy:hover,
body.layout-body .btn-add-to-cart:hover,
body.layout-body .cmp-cart-btn:not(.cmp-cart-btn--secondary):hover,
body.layout-body .product-card__add-btn:hover {
background-color: #03306E !important;
border-color: #03306E !important;
}
body.layout-body .pricing-card__btn.btn-secondary,
body.layout-body #buyNow,
body.layout-body .cmp-cart-btn--secondary {
background-color: #FFFFFF !important;
border: 2px solid #023E8A !important;
color: #023E8A !important;
}
body.layout-body .pricing-card__btn.btn-secondary:hover,
body.layout-body #buyNow:hover,
body.layout-body .cmp-cart-btn--secondary:hover {
background-color: #023E8A !important;
color: #FFFFFF !important;
}
body.layout-body .pricing-card__birja-btn {
background-color: #E6EFFB !important;
color: #023E8A !important;
border: 1px solid #C9DCF6 !important;
}
body.layout-body .pricing-card__birja-btn:hover {
background-color: #D6E4F8 !important;
}
body.layout-body .pricing-card__price-current,
body.layout-body .product-price__current,
body.layout-body .product-card__price-current,
body.layout-body .price-current,
body.layout-body .product-detail__price {
color: #023E8A !important;
}
body.layout-body .cart-checkout-btn,
body.layout-body .checkout-btn,
body.layout-body .order-submit-btn {
background-color: #023E8A !important;
border-color: #023E8A !important;
color: #FFFFFF !important;
}
body.layout-body .cart-checkout-btn:hover,
body.layout-body .checkout-btn:hover,
body.layout-body .order-submit-btn:hover {
background-color: #03306E !important;
border-color: #03306E !important;
}
.home-services { padding: 56px 0; background: #FAFBFC; }
.home-services .section-head { margin-bottom: 24px; }
.home-services__grid {
display: grid;
gap: 20px;
grid-template-columns: repeat(4, minmax(0, 1fr));
}
.svc-card {
background: #fff;
border: 1px solid var(--color-border, #E5E9F0);
border-radius: 16px;
overflow: hidden;
display: flex;
flex-direction: column;
transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.svc-card:hover {
border-color: var(--color-primary, #023E8A);
transform: translateY(-2px);
box-shadow: 0 12px 28px rgba(2, 62, 138, 0.10);
}
.svc-card__media {
aspect-ratio: 16 / 10;
overflow: hidden;
background: #f4f7fb;
position: relative;
}
.svc-card__media img,
.svc-card__media iframe {
width: 100%;
height: 100%;
display: block;
border: 0;
object-fit: cover;
}
.svc-card__media--video iframe {
position: absolute;
inset: 0;
}
.svc-card__media--placeholder img {
object-fit: cover;
}
.svc-card__media-icon {
position: absolute;
bottom: 12px;
right: 14px;
font-size: 56px;
line-height: 1;
text-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));
}
.svc-card__icon {
font-size: 56px;
line-height: 1;
padding: 24px 24px 0;
}
.svc-card__body {
padding: 18px 22px 22px;
display: flex;
flex-direction: column;
gap: 10px;
flex: 1;
}
.svc-card__title {
font-size: 18px;
font-weight: 700;
color: #1E2B3C;
margin: 0;
letter-spacing: -0.01em;
line-height: 1.3;
}
.svc-card__desc {
font-size: 14px;
line-height: 1.5;
color: #4b5563;
margin: 0;
}
.svc-card__items {
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
gap: 6px;
}
.svc-card__items li {
position: relative;
padding-left: 22px;
font-size: 14px;
line-height: 1.4;
color: #374151;
}
.svc-card__items li::before {
content: "✓";
position: absolute;
left: 0;
top: 0;
color: var(--color-primary, #023E8A);
font-weight: 800;
}
.svc-card__btn {
display: inline-flex;
align-items: center;
gap: 6px;
margin-top: auto;
align-self: flex-start;
padding: 10px 16px;
background: var(--color-primary, #023E8A);
color: #fff;
border-radius: 10px;
text-decoration: none;
font-weight: 700;
font-size: 14px;
transition: background .15s ease;
}
.svc-card__btn:hover { background: var(--color-primary-hover, #03306E); color: #fff; }
@media (max-width: 1024px) {
.home-services__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
.home-services { padding: 40px 0; }
.home-services__grid { grid-template-columns: 1fr; gap: 16px; }
.svc-card__title { font-size: 16px; }
.svc-card__desc { font-size: 13.5px; }
}
.home-stats {
padding: clamp(40px, 6vw, 80px) 0;
background: linear-gradient(180deg, transparent 0%, rgba(2, 62, 138, 0.03) 100%);
}
.home-stats__title {
text-align: center;
margin-bottom: clamp(24px, 4vw, 48px);
}
.home-stats__grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
gap: clamp(16px, 3vw, 32px);
max-width: 1100px;
margin: 0 auto;
}
.home-stat {
text-align: center;
padding: clamp(16px, 2.5vw, 28px) 16px;
background: #fff;
border: 1px solid rgba(2, 62, 138, 0.08);
border-radius: 16px;
transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.home-stat:hover {
transform: translateY(-3px);
box-shadow: 0 8px 24px rgba(2, 62, 138, 0.12);
border-color: rgba(2, 62, 138, 0.2);
}
.home-stat__value {
font-size: clamp(34px, 5vw, 52px);
font-weight: 800;
color: #023E8A;
line-height: 1;
margin-bottom: 8px;
font-family: 'Manrope', 'Inter', system-ui, sans-serif;
}
.home-stat__label {
font-size: clamp(13px, 1.6vw, 15px);
color: #4A5568;
line-height: 1.35;
}
@media (max-width: 640px) {
.home-stats__grid {
grid-template-columns: repeat(2, 1fr);
gap: 12px;
}
.home-stat { padding: 16px 8px; }
.home-stat__value { font-size: 28px; }
.home-stat__label { font-size: 12px; }
}
.adaptation-title {
font-size: clamp(22px, 3vw, 30px);
font-weight: var(--font-weight-bold);
color: var(--color-text);
letter-spacing: -0.01em;
margin: 0 0 24px;
}
.adaptation-intro { max-width: 820px; }
.adaptation-intro p {
font-size: var(--font-size-lg);
line-height: 1.7;
color: var(--color-text);
margin: 0 0 16px;
}
.adaptation-intro--split {
max-width: none;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 48px;
align-items: stretch;
}
.adaptation-intro--split .adaptation-intro__text {
display: flex;
flex-direction: column;
justify-content: center;
max-width: 560px;
}
.adaptation-intro--split .adaptation-intro__media {
display: flex;
}
.adaptation-intro--split .adaptation-intro__text p:first-child {
font-size: clamp(1.1rem, 1.4vw, 1.3rem);
font-weight: 500;
color: var(--color-heading, var(--color-text));
}
.adaptation-intro--split .adaptation-intro__text p:last-child { margin-bottom: 0; }
.adaptation-intro__media img {
width: 100%;
height: 100%;
aspect-ratio: 16 / 11;
min-height: 320px;
max-height: 460px;
object-fit: cover;
border-radius: var(--radius-xl);
box-shadow: 0 18px 44px -20px rgba(2, 38, 87, .45);
display: block;
}
@media (max-width: 768px) {
.adaptation-intro--split { grid-template-columns: 1fr; gap: 24px; }
.adaptation-intro--split .adaptation-intro__text { max-width: none; }
.adaptation-intro__media img { aspect-ratio: 16 / 10; max-height: 300px; }
}
.adaptation-tasks {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: 20px;
margin-top: 8px;
}
.adaptation-task {
background: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: var(--radius-lg);
padding: 24px;
box-shadow: var(--shadow-sm);
}
.adaptation-task__num {
display: inline-block;
font-size: 28px;
font-weight: 800;
color: var(--color-primary);
opacity: .35;
margin-bottom: 8px;
}
.adaptation-task p { margin: 0; line-height: 1.6; color: var(--color-text); }
.adaptation-zones {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
gap: 14px;
}
.adaptation-zone {
position: relative;
display: flex;
flex-direction: column;
justify-content: flex-end;
min-height: 210px;
padding: 16px;
border-radius: var(--radius-lg);
overflow: hidden;
background: linear-gradient(135deg, var(--color-primary), var(--color-primary-hover));
background-size: cover;
background-position: center;
color: #fff;
text-decoration: none;
box-shadow: var(--shadow-sm);
transition: box-shadow .2s ease, transform .2s ease;
}
.adaptation-zone:hover {
box-shadow: var(--shadow-card-hover);
transform: translateY(-3px);
}
.adaptation-zone__index {
position: absolute;
top: 12px;
left: 12px;
display: inline-flex;
align-items: center;
justify-content: center;
width: 30px;
height: 30px;
border-radius: 50%;
background: rgba(255, 255, 255, .92);
color: var(--color-primary);
font-weight: 700;
font-size: 14px;
box-shadow: var(--shadow-sm);
}
.adaptation-zone__body { position: relative; z-index: 1; }
.adaptation-zone__title {
font-size: var(--font-size-lg);
font-weight: var(--font-weight-bold);
margin: 0 0 6px;
color: #fff;
}
.adaptation-zone__text {
margin: 0;
font-size: var(--font-size-sm);
line-height: 1.45;
color: rgba(255, 255, 255, .9);
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
}
.adaptation-institutions__lead {
max-width: 720px;
margin: -6px 0 24px;
font-size: var(--font-size-md);
line-height: 1.6;
color: var(--color-text-muted);
}
.adaptation-institutions {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
gap: 14px;
}
.adaptation-institution {
position: relative;
display: flex;
flex-direction: column;
justify-content: flex-end;
min-height: 200px;
padding: 16px;
border-radius: var(--radius-lg);
overflow: hidden;
background: linear-gradient(135deg, var(--color-primary), var(--color-primary-hover));
background-size: cover;
background-position: center;
color: #fff;
box-shadow: var(--shadow-sm);
transition: box-shadow .2s ease, transform .2s ease;
}
.adaptation-institution:hover {
box-shadow: var(--shadow-card-hover);
transform: translateY(-3px);
}
.adaptation-institution__body { position: relative; z-index: 1; }
.adaptation-institution__title {
font-size: var(--font-size-lg);
font-weight: var(--font-weight-bold);
margin: 0 0 6px;
color: #fff;
}
.adaptation-institution__text {
margin: 0;
font-size: var(--font-size-sm);
line-height: 1.45;
color: rgba(255, 255, 255, .9);
display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
}
.adaptation-docs__lead {
max-width: 720px;
margin: -6px 0 24px;
font-size: var(--font-size-md);
line-height: 1.6;
color: var(--color-text-muted);
}
.adaptation-docs {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 14px;
}
.adaptation-doc {
display: flex;
gap: 14px;
padding: 20px;
background: var(--color-bg);
border: 1px solid var(--color-border);
border-radius: var(--radius-lg);
box-shadow: var(--shadow-sm);
}
.adaptation-doc__icon {
flex: 0 0 auto;
display: inline-flex;
align-items: center;
justify-content: center;
width: 48px;
height: 48px;
border-radius: var(--radius-md);
background: rgba(2, 62, 138, .08);
color: var(--color-primary);
}
.adaptation-doc__title {
font-size: var(--font-size-lg);
font-weight: var(--font-weight-bold);
margin: 0 0 6px;
}
.adaptation-doc__text {
margin: 0 0 14px;
font-size: var(--font-size-sm);
line-height: 1.55;
color: var(--color-text-muted);
}
.adaptation-doc__actions {
display: flex;
gap: 10px;
flex-wrap: wrap;
align-items: center;
}
.adaptation-doc__meta {
font-size: 12px;
font-weight: 400;
opacity: .85;
white-space: nowrap;
}
@media (max-width: 480px) {
.adaptation-doc { flex-direction: column; }
}
.zone-detail-empty {
text-align: center;
padding: 48px 20px;
color: var(--color-text-muted);
background: var(--color-surface);
border: 1px dashed var(--color-border);
border-radius: var(--radius-lg);
}
.zone-detail-empty p { margin: 0; font-size: var(--font-size-md); }
.adaptation-cta { text-align: center; max-width: 720px; }
.adaptation-cta h2 { margin: 0 0 12px; }
.adaptation-cta p { color: var(--color-text-muted); margin: 0 0 24px; line-height: 1.6; }
.adaptation-cta__actions { display: inline-flex; gap: 12px; flex-wrap: wrap; justify-content: center; }
.feature-cards {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 20px;
}
.feature-card {
display: flex;
flex-direction: column;
justify-content: flex-end;
min-height: 240px;
padding: 28px;
border-radius: var(--radius-xl);
background: linear-gradient(135deg, var(--color-primary), var(--color-primary-hover));
border: 1px solid transparent;
box-shadow: var(--shadow-sm);
text-decoration: none;
color: #fff;
overflow: hidden;
transition: box-shadow .2s ease, transform .2s ease;
}
.feature-card:hover {
box-shadow: var(--shadow-card-hover);
transform: translateY(-3px);
}
.feature-card--image {
background-size: cover;
background-position: center;
background-repeat: no-repeat;
}
.feature-card__title { font-size: 24px; font-weight: 700; margin: 0 0 8px; color: #fff; }
.feature-card__desc { font-size: var(--font-size-sm); line-height: 1.55; margin: 0 0 18px; color: rgba(255,255,255,.88); }
.feature-card__cta { font-weight: 600; color: #fff; }
@media (max-width: 720px) {
.feature-cards { grid-template-columns: 1fr; }
.adaptation-zones { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }
}
/* === css/header-mobile.css === */
.hamburger {
display: none;
width: 48px;
height: 48px;
background: transparent;
border: none;
cursor: pointer;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 4px;
border-radius: var(--radius-md);
padding: 0;
flex-shrink: 0;
font-family: inherit;
color: #222;
}
.hamburger:hover { background: rgba(255, 255, 255, 0.15); }
.hamburger:focus-visible { outline: 2px solid white; outline-offset: 2px; }
.hamburger span {
display: block;
width: 22px;
height: 2px;
background: currentColor;
border-radius: 1px;
transition: transform 0.2s, opacity 0.2s;
}
body:not(.is-scrolled) .hamburger { color: var(--color-text); }
body:not(.is-scrolled) .hamburger:hover { background: var(--color-primary-light); }
.hamburger.is-open span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.hamburger.is-open span:nth-child(2) { opacity: 0; }
.hamburger.is-open span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
.mobile-menu {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
height: 100dvh;
background: white;
z-index: 1100;
transform: translateX(100%);
transition: transform 0.3s ease;
overflow-y: auto;
padding: var(--space-6);
-webkit-overflow-scrolling: touch;
}
.mobile-menu[hidden] { display: block; pointer-events: none; }
.mobile-menu.is-open {
transform: translateX(0);
pointer-events: auto;
}
.mobile-menu__close {
position: absolute;
top: var(--space-4);
right: var(--space-4);
width: 44px;
height: 44px;
border: none;
background: var(--color-surface-2);
border-radius: var(--radius-full);
cursor: pointer;
font-size: 24px;
line-height: 1;
font-family: inherit;
color: var(--color-text);
}
.mobile-menu__close:hover { background: var(--color-border); }
.mobile-menu__brand {
display: flex;
align-items: center;
gap: var(--space-3);
margin-bottom: var(--space-6);
padding-bottom: var(--space-5);
border-bottom: 1px solid var(--color-border);
text-decoration: none;
color: inherit;
}
.mobile-menu__brand-mark {
width: 40px;
height: 40px;
border-radius: var(--radius-full);
background: var(--color-primary);
color: white;
display: grid;
place-items: center;
font-weight: var(--font-weight-bold);
flex-shrink: 0;
overflow: hidden;
}
.mobile-menu__brand-mark img { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.mobile-menu__brand-text strong { display: block; font-size: var(--font-size-base); color: var(--color-text); }
.mobile-menu__brand-text small { display: block; color: var(--color-text-secondary); font-size: var(--font-size-xs); }
.mobile-menu__nav {
margin-top: var(--space-2);
display: flex;
flex-direction: column;
gap: 0;
}
.mobile-menu__link {
display: block;
padding: var(--space-4) 0;
text-decoration: none;
color: var(--color-text);
font-size: var(--font-size-lg);
font-weight: var(--font-weight-semibold);
border-bottom: 1px solid var(--color-border);
}
.mobile-menu__link:hover { color: var(--color-primary); }
.mobile-menu__sublist {
padding: var(--space-1) 0 var(--space-3) var(--space-4);
display: flex;
flex-direction: column;
}
.mobile-menu__sublink {
display: block;
padding: var(--space-2) 0;
text-decoration: none;
color: var(--color-text-secondary);
font-size: var(--font-size-base);
}
.mobile-menu__sublink:hover { color: var(--color-primary); }
.mobile-menu__contact {
margin-top: var(--space-6);
padding: var(--space-5);
background: var(--color-surface-2);
border-radius: var(--radius-md);
}
.mobile-menu__phone {
display: block;
font-size: var(--font-size-xl);
font-weight: var(--font-weight-bold);
color: var(--color-primary);
text-decoration: none;
margin-bottom: var(--space-2);
}
.mobile-menu__email {
display: block;
color: var(--color-text-secondary);
text-decoration: none;
font-size: var(--font-size-sm);
}
.mobile-menu__email:hover { color: var(--color-primary); }
.mobile-menu__auth {
margin-top: var(--space-5);
display: flex;
flex-direction: column;
gap: var(--space-2);
}
.mobile-menu__auth .btn { width: 100%; justify-content: center; }
.mobile-menu__lang {
margin-top: var(--space-5);
padding-top: var(--space-4);
border-top: 1px solid var(--color-border);
}
.mobile-menu__lang-label {
margin: 0 0 var(--space-2);
font-size: var(--font-size-xs);
text-transform: uppercase;
letter-spacing: 0.05em;
color: var(--color-text-muted);
font-weight: var(--font-weight-semibold);
}
.mobile-menu__lang-buttons {
display: flex;
gap: 8px;
flex-wrap: wrap;
}
.mobile-menu__lang-form { margin: 0; }
.mobile-menu__lang-btn {
padding: 8px 14px;
border: 1px solid var(--color-border);
background: white;
color: var(--color-text);
border-radius: var(--radius-md);
font-family: inherit;
font-size: 13px;
font-weight: 600;
letter-spacing: 0.5px;
cursor: pointer;
transition: background 150ms ease, border-color 150ms ease, color 150ms ease;
min-height: 44px;
min-width: 56px;
}
.mobile-menu__lang-btn:hover {
border-color: var(--color-primary);
color: var(--color-primary);
}
.mobile-menu__lang-btn.is-active {
background: var(--color-primary);
border-color: var(--color-primary);
color: white;
}
.alibar__mobile {
display: none;
}
.alibar__utility {
display: none;
}
@media (max-width: 1049.98px) {
.alibar__utility,
body:not(.is-scrolled) .alibar__utility,
body.is-scrolled .alibar__utility,
.alibar:not(.is-scrolled) .alibar__utility,
.alibar.is-scrolled .alibar__utility {
display: block !important;
background: #082C66 !important;
color: #ffffff !important;
opacity: 1 !important;
backdrop-filter: none !important;
-webkit-backdrop-filter: none !important;
font-size: 13px;
line-height: 1.2;
position: relative;
z-index: 51;
}
.alibar__utility * { opacity: 1 !important; }
.alibar__utility-inner {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
padding: 6px 14px;
min-height: 30px;
}
.alibar__utility-phone,
body:not(.is-scrolled) .alibar__utility-phone,
body.is-scrolled .alibar__utility-phone {
display: inline-flex !important;
align-items: center;
gap: 7px;
color: #ffffff !important;
text-decoration: none !important;
font-weight: 600;
font-size: 13.5px;
letter-spacing: 0.2px;
white-space: nowrap;
padding: 2px 0;
flex: 0 1 auto;
min-width: 0;
opacity: 1 !important;
}
.alibar__utility-phone:hover,
body:not(.is-scrolled) .alibar__utility-phone:hover {
color: #cfe1ff !important;
opacity: 1 !important;
}
.alibar__utility-phone svg {
flex-shrink: 0;
opacity: 1 !important;
width: 14px;
height: 14px;
color: #ffffff !important;
stroke: currentColor !important;
}
.alibar__utility-phone span {
color: #ffffff !important;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
opacity: 1 !important;
font-variant-numeric: tabular-nums;
}
.alibar__utility-lang { position: relative; flex-shrink: 0; margin-left: auto; }
.alibar__utility-lang-btn,
body:not(.is-scrolled) .alibar__utility-lang-btn,
body.is-scrolled .alibar__utility-lang-btn {
display: inline-flex !important;
align-items: center;
gap: 5px;
padding: 5px 10px;
background: rgba(255, 255, 255, 0.16) !important;
border: 1px solid rgba(255, 255, 255, 0.28) !important;
border-radius: 6px;
color: #ffffff !important;
font-family: inherit;
font-size: 12.5px;
font-weight: 700;
letter-spacing: 0.5px;
cursor: pointer;
min-height: 24px;
opacity: 1 !important;
transition: background 150ms ease;
}
.alibar__utility-lang-btn:hover,
.alibar__utility-lang-btn[aria-expanded="true"],
body:not(.is-scrolled) .alibar__utility-lang-btn:hover,
body:not(.is-scrolled) .alibar__utility-lang-btn[aria-expanded="true"] {
background: rgba(255, 255, 255, 0.26) !important;
color: #ffffff !important;
}
.alibar__utility-lang-btn svg {
color: #ffffff !important;
stroke: currentColor !important;
opacity: 1 !important;
}
.alibar__utility-lang-btn span {
color: #ffffff !important;
opacity: 1 !important;
}
.alibar__utility-lang-code { letter-spacing: 0.5px; }
.alibar__utility-lang-menu {
position: absolute;
top: calc(100% + 4px);
right: 0;
min-width: 140px;
margin: 0;
padding: 4px;
list-style: none;
background: white;
color: var(--color-text);
border: 1px solid var(--color-border);
border-radius: 8px;
box-shadow: 0 8px 20px rgba(15, 23, 42, 0.18);
z-index: 200;
}
.alibar__utility-lang-menu[hidden] { display: none; }
.alibar__utility-lang-form { margin: 0; }
.alibar__utility-lang-option {
display: flex;
align-items: center;
gap: 8px;
width: 100%;
padding: 8px 10px;
background: transparent;
border: none;
border-radius: 6px;
cursor: pointer;
font-family: inherit;
font-size: 13px;
color: var(--color-text);
text-align: left;
transition: background 120ms ease;
min-height: 36px;
}
.alibar__utility-lang-option:hover {
background: var(--color-primary-light, #E6EFFB);
}
.alibar__utility-lang-option.is-active {
background: var(--color-primary, #023E8A);
color: white;
font-weight: 600;
}
.alibar__utility-lang-option-code {
font-weight: 700;
letter-spacing: 0.5px;
width: 24px;
flex-shrink: 0;
}
.alibar__utility-lang-option-name {
flex: 1;
color: inherit;
opacity: 0.85;
}
.alibar__utility-lang-option.is-active .alibar__utility-lang-option-name {
opacity: 1;
}
}
@media (max-width: 1024px) {
.alibar__inner { gap: var(--space-3); }
.alibar__catalog span { display: none; }
.alibar__action { min-width: 44px; padding: 6px 8px; }
.alibar__action span { display: none; }
}
@media (max-width: 1049.98px) {
.alibar { padding: 4px 0; }
.alibar__inner {
gap: var(--space-2);
flex-wrap: nowrap;
justify-content: space-between;
min-height: 52px;
}
.alibar__logo {
font-size: 20px;
letter-spacing: -0.3px;
flex-shrink: 1;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
}
.alibar__logo-img { height: 30px; max-width: 130px; }
.alibar__catalog,
.alibar__action,
.alibar__action.cart-trigger,
.alibar__search {
display: none !important;
}
.hamburger { display: flex; }
.hamburger { width: 40px; height: 40px; }
.alibar__mobile {
display: flex;
flex-direction: column;
gap: 6px;
padding-top: 4px;
padding-bottom: 4px;
}
.alibar__location {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 6px 4px;
color: rgba(255, 255, 255, 0.92);
font-size: 13px;
font-weight: 500;
text-decoration: none;
line-height: 1.2;
align-self: flex-start;
border-radius: 6px;
transition: color 150ms ease, background 150ms ease;
}
.alibar__location:hover { color: #fff; background: rgba(255,255,255,0.08); }
.alibar__location-text {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
max-width: 70vw;
}
.alibar__location-chev { opacity: 0.85; }
body:not(.is-scrolled) .alibar__location { color: var(--color-text-secondary); }
body:not(.is-scrolled) .alibar__location:hover {
color: var(--color-text);
background: var(--color-primary-light);
}
.alibar__msearch {
position: relative;
display: flex;
align-items: center;
height: 38px;
background: rgba(255, 255, 255, 0.95);
border-radius: 10px;
border: 1px solid transparent;
transition: background 200ms ease, border-color 200ms ease, box-shadow 200ms ease;
}
.alibar__msearch:focus-within {
background: #fff;
border-color: #fff;
box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.35);
}
.alibar__msearch-icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 36px;
height: 100%;
color: var(--color-text-muted, #6b7280);
flex-shrink: 0;
}
.alibar__msearch-icon svg { width: 16px; height: 16px; }
.alibar__msearch-input {
flex: 1;
height: 100%;
border: none;
outline: none;
background: transparent;
color: var(--color-text);
font-size: 16px;
font-family: inherit;
padding: 0 12px 0 0;
min-width: 0;
-webkit-appearance: none;
appearance: none;
border-radius: 0;
}
.alibar__msearch-input::placeholder {
color: var(--color-text-muted, #6b7280);
opacity: 1;
}
.alibar__msearch-input::-webkit-search-decoration,
.alibar__msearch-input::-webkit-search-cancel-button,
.alibar__msearch-input::-webkit-search-results-button,
.alibar__msearch-input::-webkit-search-results-decoration {
-webkit-appearance: none;
display: none;
}
body:not(.is-scrolled) .alibar__msearch {
background: var(--color-surface-2, #f4f7fb);
border-color: transparent;
}
body:not(.is-scrolled) .alibar__msearch:focus-within {
background: #fff;
border-color: var(--color-primary);
box-shadow: 0 0 0 3px rgba(2, 62, 138, 0.15);
}
}
@media (max-width: 480px) {
.alibar__logo {
font-size: 18px;
}
.alibar__logo-img { height: 30px; max-width: 120px; }
.alibar__location-text { max-width: 60vw; font-size: 12.5px; }
}
@media (max-width: 360px) {
.alibar__logo { font-size: 17px; }
.alibar__logo-img { max-width: 96px; }
}
@media (prefers-reduced-motion: reduce) {
.alibar__msearch,
.alibar__location,
.hamburger span,
.mobile-menu { transition: none !important; }
}
@media (max-width: 1049.98px) {
.alibar,
body:not(.is-scrolled) .alibar,
body.is-scrolled .alibar,
body.layout-body .alibar,
body.layout-body:not(.is-scrolled) .alibar,
body.layout-body.is-scrolled .alibar {
background: #082C66 !important;
border-bottom: none !important;
}
body:not(.is-scrolled) .alibar__logo-img--default {
opacity: 0 !important;
}
body:not(.is-scrolled) .alibar__logo-img--scrolled {
opacity: 1 !important;
}
.alibar__logo-img--default:only-of-type {
}
body:not(.is-scrolled) .alibar__logo,
body:not(.is-scrolled) .alibar__logo span {
color: #ffffff !important;
}
body:not(.is-scrolled) .hamburger { color: #ffffff !important; }
body:not(.is-scrolled) .hamburger:hover {
background: rgba(255, 255, 255, 0.12) !important;
}
body:not(.is-scrolled) .alibar__msearch {
background: rgba(255, 255, 255, 0.95) !important;
border-color: transparent !important;
}
body:not(.is-scrolled) .alibar__msearch:focus-within {
background: #ffffff !important;
border-color: #ffffff !important;
box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.35) !important;
}
body:not(.is-scrolled) .alibar__msearch-input { color: #1f2937 !important; }
body:not(.is-scrolled) .alibar__msearch-icon {
color: #6b7280 !important;
}
body:not(.is-scrolled) .alibar__location {
color: rgba(255, 255, 255, 0.92) !important;
}
body:not(.is-scrolled) .alibar__location:hover {
color: #ffffff !important;
background: rgba(255, 255, 255, 0.08) !important;
}
}
/* === css/cross_sell.css === */
.cross-sell {
padding: 48px 0;
background: var(--color-bg-soft, #FAFBFC);
border-top: 1px solid var(--color-border);
}
.cross-sell--no-bg {
background: transparent;
border-top: none;
}
.cross-sell .container { position: relative; }
.cross-sell__head {
display: flex;
justify-content: space-between;
align-items: flex-start;
margin-bottom: 24px;
gap: 16px;
}
.cross-sell__title {
margin: 0 0 4px 0;
font-size: 22px;
font-weight: 700;
color: var(--color-text);
letter-spacing: -0.01em;
}
.cross-sell__subtitle {
margin: 0;
font-size: 14px;
color: var(--color-text-muted);
}
.cross-sell__link {
color: var(--color-primary);
text-decoration: none;
font-size: 14px;
font-weight: 500;
white-space: nowrap;
transition: color 150ms ease;
}
.cross-sell__link:hover { color: var(--color-primary-hover); }
.cross-sell__wrap {
position: relative;
}
.cross-sell__strip {
display: flex;
gap: 16px;
overflow-x: auto;
scroll-behavior: smooth;
scroll-snap-type: x proximity;
-webkit-overflow-scrolling: touch;
padding-bottom: 8px;
scrollbar-width: none;
}
.cross-sell__strip::-webkit-scrollbar { display: none; }
.cross-sell-card {
flex: 0 0 220px;
display: flex;
flex-direction: column;
background: white;
border: none;
border-radius: 12px;
overflow: hidden;
scroll-snap-align: start;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.05);
transition: transform 200ms ease, box-shadow 200ms ease;
}
.cross-sell-card:hover {
border: none;
transform: translateY(-3px);
box-shadow: 0 10px 24px rgba(0, 0, 0, 0.14), 0 4px 10px rgba(0, 0, 0, 0.08);
}
.cross-sell-card__link {
display: flex;
flex-direction: column;
text-decoration: none;
color: inherit;
flex: 1;
}
.cross-sell-card__image-wrap {
position: relative;
aspect-ratio: 4 / 5;
background: white;
overflow: hidden;
padding: 10px;
}
.cross-sell-card__image {
width: 100%;
height: 100%;
object-fit: contain;
object-position: center;
display: block;
transition: transform 400ms ease;
}
.cross-sell-card:hover .cross-sell-card__image { transform: scale(1.05); }
.cross-sell-card__image--placeholder {
display: grid;
place-items: center;
font-size: 48px;
font-weight: 700;
color: var(--color-primary);
background: linear-gradient(135deg, var(--color-primary-light, #E6EFFB), white);
}
.cross-sell-card__discount {
position: absolute;
top: 8px;
left: 8px;
padding: 4px 8px;
background: #DC2626;
color: white;
border-radius: 4px;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.5px;
}
.cross-sell-card__body {
padding: 12px 14px;
display: flex;
flex-direction: column;
gap: 6px;
flex: 1;
}
.cross-sell-card__name {
margin: 0;
font-size: 13px;
font-weight: 500;
line-height: 1.4;
color: var(--color-text);
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
min-height: 36px;
}
.cross-sell-card:hover .cross-sell-card__name { color: #000; }
.cross-sell-card__price-row {
display: flex;
align-items: baseline;
gap: 8px;
margin-top: auto;
}
.cross-sell-card__price {
font-size: 16px;
font-weight: 700;
color: var(--color-text);
}
.cross-sell-card__price small {
font-size: 11px;
font-weight: 500;
color: var(--color-text-muted);
margin-left: 2px;
}
.cross-sell-card__price--ask {
font-size: 14px;
font-weight: 600;
color: var(--color-primary);
}
.cross-sell-card__price--sale {
color: var(--color-danger, #DC2626);
}
.cross-sell-card__price--sale small {
color: inherit;
opacity: 0.85;
}
.cross-sell-card__old-price {
font-size: 12px;
color: var(--color-text-muted);
font-weight: 400;
}
.cross-sell-card__cta {
margin: 0 12px 12px;
border: none;
border-radius: 8px;
padding: 10px 12px;
font-family: inherit;
font-size: 13px;
font-weight: 700;
cursor: pointer;
transition: background 0.15s ease, color 0.15s ease;
text-align: center;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.cross-sell-card__cta--cart {
background: var(--color-primary, #023E8A);
color: #fff;
}
.cross-sell-card__cta--cart:hover {
background: var(--color-primary-hover, #03306E);
}
.cross-sell-card__cta--ask {
background: #F4F7FB;
color: var(--color-primary, #023E8A);
border: 1.5px solid var(--color-primary, #023E8A);
}
.cross-sell-card__cta--ask:hover {
background: rgba(2, 62, 138, 0.06);
}
.cross-sell-card__cta:focus-visible {
outline: 3px solid var(--color-primary, #023E8A);
outline-offset: 2px;
}
.cross-sell__nav {
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 40px;
height: 40px;
background: white;
border: 1px solid var(--color-border);
border-radius: 50%;
font-size: 22px;
line-height: 1;
color: var(--color-text);
cursor: pointer;
display: grid;
place-items: center;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
transition: border-color 150ms ease, color 150ms ease, box-shadow 150ms ease;
z-index: 2;
font-family: inherit;
}
.cross-sell__nav:hover {
border-color: var(--color-primary);
color: var(--color-primary);
box-shadow: 0 4px 12px rgba(2, 62, 138, 0.15);
}
.cross-sell__nav--prev { left: -20px; }
.cross-sell__nav--next { right: -20px; }
.cross-sell__nav[hidden] { display: none; }
@media (max-width: 1024px) {
.cross-sell-card { flex: 0 0 200px; }
.cross-sell__nav { display: none !important; }
}
@media (max-width: 768px) {
.cross-sell { padding: 32px 0; }
.cross-sell__title { font-size: 18px; }
.cross-sell-card { flex: 0 0 170px; }
.cross-sell-card__body { padding: 10px 12px; }
.cross-sell-card__name { font-size: 12px; min-height: 32px; }
.cross-sell-card__price { font-size: 14px; }
.cross-sell__strip { gap: 12px; }
.cross-sell-card__cta { margin: 0 8px 8px; padding: 8px 10px; font-size: 12px; }
}
@media (max-width: 480px) {
.cross-sell-card { flex: 0 0 150px; }
}
@media (prefers-reduced-motion: reduce) {
.cross-sell-card,
.cross-sell-card__image,
.cross-sell__nav,
.cross-sell__strip {
transition: none !important;
scroll-behavior: auto !important;
}
.cross-sell-card:hover { transform: none !important; }
}
/* === css/product-card.css === */
.pcard {
display: flex;
flex-direction: column;
height: 100%;
background: #fff;
border: 1px solid #e5e7eb;
border-radius: 12px;
overflow: hidden;
transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
position: relative;
}
.pcard:hover {
transform: translateY(-2px);
border-color: var(--primary, #023E8A);
box-shadow: 0 8px 24px rgba(2, 62, 138, 0.12);
}
.pcard:hover .pcard__title {
color: var(--primary, #023E8A);
}
.pcard__media {
position: relative;
display: block;
aspect-ratio: 1 / 1;
background: #ffffff;
overflow: hidden;
}
.pcard__img {
display: block;
width: 100%;
height: 100%;
object-fit: contain;
object-position: center;
}
.pcard__slides {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
}
.pcard__slide {
position: absolute;
inset: 0;
opacity: 0;
transition: opacity 120ms ease;
}
.pcard__slide.is-active {
opacity: 1;
}
.pcard__media:not(.pcard__media--gallery) .pcard__slide {
opacity: 1;
}
.pcard__dots {
position: absolute;
left: 0;
right: 0;
bottom: 7px;
z-index: 3;
display: flex;
justify-content: center;
gap: 5px;
opacity: 0.45;
transition: opacity 160ms ease;
pointer-events: none;
}
.pcard__media--gallery:hover .pcard__dots {
opacity: 1;
}
.pcard__dot {
width: 5px;
height: 5px;
border-radius: 50%;
background: rgba(30, 43, 60, 0.28);
box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.6);
transition: background 160ms ease, transform 160ms ease;
}
.pcard__dot.is-active {
background: #1E2B3C;
transform: scale(1.35);
}
@media (hover: none) {
.pcard__dots { display: none; }
}
.pcard__placeholder {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 10px;
padding: 16px;
text-align: center;
background: linear-gradient(135deg, #E6EFFB 0%, #F4F7FB 100%);
}
.pcard__placeholder-icon {
font-size: 48px;
opacity: 0.5;
}
.pcard__placeholder-name {
font-size: 12px;
font-weight: 600;
color: var(--gray, #6b7280);
line-height: 1.3;
}
.pcard__badges {
position: absolute;
top: 10px;
left: 10px;
z-index: 2;
display: flex;
flex-direction: column;
gap: 6px;
align-items: flex-start;
pointer-events: none;
}
.pcard__badge {
display: inline-flex;
align-items: center;
gap: 4px;
font-size: 10px;
font-weight: 800;
text-transform: uppercase;
letter-spacing: 0.04em;
padding: 4px 9px;
border-radius: 6px;
color: #fff;
line-height: 1.2;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}
.pcard__badge--hit    { background: #F59E0B; }
.pcard__badge--sale   { background: #DC2626; }
.pcard__badge--new    { background: #10B981; }
.pcard__badge--birja  { background: #023E8A; }
.pcard__body {
padding: 14px 16px 16px;
display: flex;
flex-direction: column;
flex: 1;
gap: 8px;
}
.pcard__title {
font-size: 14px;
font-weight: 700;
line-height: 1.35;
color: #1E2B3C;
text-decoration: none;
margin: 0;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
min-height: 2.7em;
transition: color .2s ease;
}
.pcard__short {
font-size: 12px;
line-height: 1.4;
color: #6b7280;
margin: 0;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.pcard__meta {
font-size: 11px;
color: #9ca3af;
margin: 0;
letter-spacing: 0.02em;
}
.pcard__brand {
font-weight: 600;
color: #6b7280;
}
.pcard__sku {
text-transform: uppercase;
letter-spacing: 0.05em;
}
.pcard__price-block {
margin-top: auto;
padding-top: 8px;
display: flex;
flex-direction: column;
gap: 2px;
}
.pcard__old-row {
display: inline-flex;
align-items: center;
gap: 8px;
}
.pcard__price-old {
font-size: 12px;
color: #9ca3af;
text-decoration: line-through;
}
.pcard__discount-tag {
display: inline-block;
background: #FEE2E2;
color: #DC2626;
font-size: 10px;
font-weight: 800;
padding: 2px 6px;
border-radius: 4px;
letter-spacing: 0.02em;
}
.pcard__price {
font-size: 20px;
font-weight: 800;
color: #1E2B3C;
line-height: 1.2;
letter-spacing: -0.01em;
}
.pcard__price-unit {
font-size: 12px;
font-weight: 600;
color: #6b7280;
margin-left: 2px;
}
.pcard__price--request {
font-size: 14px;
font-weight: 700;
color: var(--primary, #023E8A);
}
.pcard__price-row {
display: flex; align-items: baseline; gap: 6px;
margin-bottom: 10px;
}
.pcard__cta {
display: inline-flex; align-items: center; justify-content: center;
gap: 8px;
width: 100%;
min-height: 42px;
padding: 10px 14px;
font-family: inherit;
font-size: 14px; font-weight: 700;
letter-spacing: -0.005em; line-height: 1;
border-radius: 10px; cursor: pointer;
text-decoration: none;
transition: background .18s ease, color .18s ease, border-color .18s ease,
transform .12s ease, box-shadow .18s ease;
margin-top: auto;
position: relative;
white-space: nowrap;
}
.pcard__cta:focus-visible {
outline: 2px solid var(--primary, #023E8A);
outline-offset: 3px;
}
.pcard__cta:active { transform: translateY(1px); }
.pcard__cta--primary {
background: #fff;
color: var(--primary, #023E8A);
border: 1.5px solid var(--primary, #023E8A);
}
.pcard__cta--primary:hover {
background: var(--primary, #023E8A);
color: #fff;
box-shadow: 0 6px 16px rgba(2, 62, 138, 0.22);
}
.pcard--hit .pcard__cta--primary {
background: var(--primary, #023E8A);
color: #fff;
border-color: var(--primary, #023E8A);
}
.pcard--hit .pcard__cta--primary:hover {
background: var(--color-primary-hover, #03306E);
border-color: var(--color-primary-hover, #03306E);
}
.pcard__cta--ask {
background: #FFF8E6;
color: #92400E;
border: 1.5px solid #FBBF24;
}
.pcard__cta--ask:hover {
background: #FBBF24;
color: #1A2332;
box-shadow: 0 6px 16px rgba(251, 191, 36, 0.32);
}
.pcard__cta.is-loading {
pointer-events: none;
color: transparent !important;
}
.pcard__cta.is-loading::after {
content: '';
position: absolute;
width: 16px; height: 16px;
top: 50%; left: 50%; margin: -8px 0 0 -8px;
border: 2px solid currentColor;
border-right-color: transparent;
border-radius: 50%;
animation: qm-spin 0.6s linear infinite;
color: var(--primary, #023E8A);
}
.pcard--hit .pcard__cta.is-loading::after,
.pcard__cta.is-added::after { color: #fff; }
.pcard__cta.is-added {
background: var(--color-success, #16A34A) !important;
color: #fff !important;
border-color: var(--color-success, #16A34A) !important;
pointer-events: none;
}
.pcard__cta-icon--check { display: none; }
.pcard__cta.is-added .pcard__cta-icon:not(.pcard__cta-icon--check) { display: none; }
.pcard__cta.is-added .pcard__cta-icon--check { display: inline-block; }
.pcard__cta-label--added { display: none; }
.pcard__cta.is-added .pcard__cta-label--idle { display: none; }
.pcard__cta.is-added .pcard__cta-label--added { display: inline; }
@media (max-width: 480px) {
.pcard__cta {
min-height: 38px;
font-size: 13px;
padding: 9px 10px;
border-radius: 8px;
}
.pcard__cta-icon { width: 16px; height: 16px; }
}
.pcard__vat {
font-size: 10px;
color: #9ca3af;
margin-top: 1px;
}
.pcard__trust {
list-style: none;
margin: 4px 0 0;
padding: 0;
display: flex;
flex-direction: column;
gap: 4px;
}
.pcard__trust-item {
display: flex;
align-items: center;
gap: 6px;
font-size: 11px;
font-weight: 600;
line-height: 1.3;
letter-spacing: 0.01em;
}
.pcard__trust-item span {
font-size: 12px;
line-height: 1;
display: inline-flex;
align-items: center;
justify-content: center;
}
.pcard__trust-item--ok   { color: #059669; }
.pcard__trust-item--warn { color: #B45309; }
.pcard__trust-item--info { color: var(--primary, #023E8A); }
.pcard__actions {
display: flex;
gap: 8px;
padding-top: 8px;
}
.pcard__actions--single .pcard__btn { flex: 1 1 100%; }
.pcard__btn--block { width: 100%; }
.pcard__btn--primary.pcard__btn--block {
background: var(--primary, #023E8A);
color: #fff;
}
.pcard__btn--primary.pcard__btn--block:hover {
background: var(--primary-dark, #03306E);
border-color: var(--primary-dark, #03306E);
}
.pcard__btn {
flex: 1;
min-width: 0;
padding: 10px 12px;
border: none;
border-radius: 8px;
font-family: inherit;
font-size: 13px;
font-weight: 700;
cursor: pointer;
transition: background .2s, border-color .2s, color .2s;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.pcard__btn--primary {
background: #F4F7FB;
color: var(--primary, #023E8A);
border: 1.5px solid var(--primary, #023E8A);
}
.pcard__btn--primary:hover {
background: rgba(2, 62, 138, 0.1);
}
.pcard__btn--quick {
background: var(--primary, #023E8A);
color: #fff;
}
.pcard__btn--quick:hover {
background: var(--primary-dark, #03306E);
}
.pcard__btn--secondary {
background: #F4F7FB;
color: var(--primary, #023E8A);
border: 1.5px solid var(--primary, #023E8A);
}
.pcard__btn-icon {
flex: 0 0 auto;
width: 38px;
height: 38px;
display: inline-flex;
align-items: center;
justify-content: center;
background: #fff;
color: #6b7280;
border: 1.5px solid #e5e7eb;
border-radius: 8px;
cursor: pointer;
font-size: 16px;
transition: all .2s;
}
.pcard__btn-icon:hover,
.pcard__btn-icon.is-active {
border-color: var(--primary, #023E8A);
color: var(--primary, #023E8A);
background: rgba(2, 62, 138, 0.06);
}
.pcard__btn:focus-visible,
.pcard__btn-icon:focus-visible {
outline: 3px solid var(--primary, #023E8A);
outline-offset: 2px;
}
.pcard--hit {
border-color: rgba(245, 158, 11, 0.35);
}
.products-list .pcard {
flex-direction: row;
flex-wrap: wrap;
align-items: stretch;
}
.products-list .pcard__media {
width: 220px;
flex-shrink: 0;
aspect-ratio: auto;
min-height: 200px;
}
.products-list .pcard__body {
flex: 1;
min-width: 240px;
}
@media (max-width: 768px) {
.products-grid {
grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
gap: 10px;
}
.products-list .pcard { flex-direction: column; }
.products-list .pcard__media { width: 100%; aspect-ratio: 1/1; }
.pcard {
border-radius: 10px;
}
.pcard:hover {
transform: none;
box-shadow: none;
}
.pcard__media {
aspect-ratio: 1 / 1;
padding: 6px;
}
.pcard__body {
padding: 8px 10px 10px;
gap: 4px;
}
.pcard__title {
font-size: 12.5px;
font-weight: 600;
line-height: 1.3;
min-height: 2.6em;
-webkit-line-clamp: 2;
}
.pcard__short,
.pcard__meta,
.pcard__vat {
display: none !important;
}
.pcard__price-block { margin-top: 2px; gap: 0; }
.pcard__price {
font-size: 15px;
font-weight: 800;
letter-spacing: -0.01em;
}
.pcard__price-unit {
font-size: 11px;
font-weight: 600;
}
.pcard__price--request {
font-size: 13px;
font-weight: 700;
}
.pcard__price-old { font-size: 11px; }
.pcard__discount-tag { font-size: 9px; padding: 1px 5px; }
.pcard__trust {
flex-direction: row;
flex-wrap: wrap;
gap: 4px;
margin-top: 2px;
}
.pcard__trust-item {
font-size: 10px;
font-weight: 500;
gap: 3px;
}
.pcard__trust-item span { font-size: 10px; }
.pcard__badges { top: 6px; left: 6px; gap: 4px; }
.pcard__badge {
font-size: 9px;
padding: 2px 6px;
border-radius: 4px;
letter-spacing: 0.02em;
}
.pcard__actions {
gap: 4px;
padding-top: 4px;
}
.pcard__btn {
font-size: 11px;
padding: 8px 6px;
font-weight: 600;
border-radius: 6px;
}
.pcard__btn-icon {
width: 32px;
height: 32px;
font-size: 14px;
}
}
@media (max-width: 380px) {
.products-grid { gap: 8px !important; }
.pcard__body { padding: 6px 8px 8px; }
.pcard__title { font-size: 12px; min-height: 2.4em; }
.pcard__price { font-size: 14px; }
.pcard__btn { font-size: 10.5px; padding: 7px 4px; }
}
.pcard__promo {
position: absolute;
left: 0;
right: 0;
bottom: 0;
display: flex;
align-items: center;
justify-content: center;
gap: 6px;
flex-wrap: wrap;
padding: 4px 8px;
background: linear-gradient(90deg, #FF4D6D 0%, #FF7A85 100%);
color: #fff;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.02em;
line-height: 1.3;
text-align: center;
pointer-events: none;
}
.pcard__promo > span {
display: inline-flex;
align-items: center;
gap: 4px;
white-space: nowrap;
}
.pcard__body {
padding: 8px 10px 10px;
gap: 4px;
}
.pcard__price-block {
margin-top: 0;
padding-top: 0;
}
.pcard__price-row {
display: flex;
align-items: baseline;
flex-wrap: wrap;
gap: 6px;
}
.pcard__price {
font-size: 17px;
font-weight: 800;
color: #DC2626;
line-height: 1.1;
}
.pcard__price-unit {
font-size: 12px;
font-weight: 600;
color: #DC2626;
}
.pcard__price-old {
font-size: 11px;
color: #9CA3AF;
text-decoration: line-through;
}
.pcard__discount-tag {
font-size: 10px;
font-weight: 700;
color: #DC2626;
background: transparent;
padding: 0;
}
.pcard__title-row {
display: flex;
align-items: center;
gap: 5px;
min-width: 0;
}
.pcard__choice-pill {
flex: 0 0 auto;
display: inline-flex;
align-items: center;
padding: 2px 6px;
background: #1F2937;
color: #fff;
font-size: 10px;
font-weight: 700;
border-radius: 3px;
line-height: 1.3;
text-transform: none;
letter-spacing: 0.01em;
white-space: nowrap;
}
.pcard__title {
font-size: 12.5px;
font-weight: 500;
line-height: 1.35;
color: #1E2B3C;
min-height: 0;
min-width: 0;
flex: 1 1 auto;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
}
.pcard__meta-row {
display: flex;
gap: 4px;
flex-wrap: wrap;
margin-top: 2px;
}
.pcard__meta-tag {
font-size: 10px;
font-weight: 600;
color: #6B7280;
background: #F3F4F6;
padding: 2px 6px;
border-radius: 3px;
line-height: 1.3;
white-space: nowrap;
}
.pcard__meta-tag--ok { color: #059669; background: #ECFDF5; }
.pcard__meta-tag--warn { color: #B45309; background: #FFFBEB; }
.pcard__meta-tag--free { color: #DC2626; background: #FEE2E2; }
.pcard__cta {
margin-top: 6px;
display: flex;
flex-direction: row;
gap: 6px;
}
.pcard .pcard__btn {
flex: 1 1 50%;
display: inline-flex;
align-items: center;
justify-content: center;
padding: 8px 8px;
border-radius: 6px;
font-size: 12px;
font-weight: 700;
font-family: inherit;
cursor: pointer;
border: 1px solid #023E8A;
transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
text-decoration: none;
white-space: nowrap;
line-height: 1.2;
}
.pcard .pcard__btn--primary {
background: #023E8A !important;
color: #ffffff !important;
border-color: #023E8A !important;
}
.pcard .pcard__btn--primary:hover {
background: #03306E !important;
border-color: #03306E !important;
}
.pcard .pcard__btn--secondary {
background: #ffffff !important;
color: #023E8A !important;
border-color: #023E8A !important;
}
.pcard .pcard__btn--secondary:hover {
background: #023E8A !important;
color: #ffffff !important;
}
@media (max-width: 600px) {
.pcard__cta { flex-direction: column; }
}
@media (max-width: 480px) {
.pcard__promo { font-size: 9px; padding: 3px 6px; gap: 4px; }
.pcard__body { padding: 6px 8px 8px; }
.pcard__price { font-size: 15px; }
.pcard__title { font-size: 11.5px; }
.pcard .pcard__btn { font-size: 11.5px; padding: 7px 8px; }
}
.pcard,
article.pcard {
border: none !important;
background: transparent !important;
box-shadow: none !important;
border-radius: 0 !important;
overflow: visible !important;
}
.pcard:hover,
article.pcard:hover {
transform: none !important;
border: none !important;
box-shadow: none !important;
}
.pcard .pcard__media {
position: relative !important;
border-radius: 10px !important;
overflow: hidden !important;
background: #ffffff !important;
border: none !important;
outline: none !important;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.10), 0 2px 4px rgba(0, 0, 0, 0.06) !important;
aspect-ratio: 1 / 1 !important;
transition: box-shadow 200ms ease, transform 200ms ease;
}
.pcard .pcard__img {
object-fit: contain !important;
border-radius: 10px;
width: 100% !important;
height: 100% !important;
padding: 0;
box-sizing: border-box;
background: transparent !important;
}
.pcard:hover .pcard__media {
box-shadow: 0 10px 24px rgba(0, 0, 0, 0.15), 0 4px 10px rgba(0, 0, 0, 0.08) !important;
transform: translateY(-3px);
}
.pcard .pcard__cart-fab {
position: absolute;
right: 8px;
bottom: 8px;
width: 32px;
height: 32px;
border-radius: 50%;
background: #ffffff;
color: #1E2B3C;
border: none;
display: inline-flex;
align-items: center;
justify-content: center;
cursor: pointer;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.18), 0 1px 2px rgba(0, 0, 0, 0.10);
transition: background 0.15s ease, color 0.15s ease, transform 0.12s ease;
z-index: 2;
padding: 0;
}
.pcard .pcard__cart-fab:hover {
background: #023E8A;
color: #ffffff;
transform: scale(1.08);
}
.pcard .pcard__cart-fab:active { transform: scale(0.95); }
.pcard .pcard__cart-fab-icon { display: block; }
.pcard .pcard__cart-fab-icon--check { display: none; }
.pcard .pcard__cart-fab.is-added {
background: #16A34A !important;
color: #ffffff !important;
pointer-events: none;
}
.pcard .pcard__cart-fab.is-added .pcard__cart-fab-icon { display: none; }
.pcard .pcard__cart-fab.is-added .pcard__cart-fab-icon--check { display: block; }
.pcard .pcard__cart-fab.is-loading {
pointer-events: none;
color: transparent !important;
}
.pcard .pcard__cart-fab.is-loading::after {
content: '';
position: absolute;
inset: 0;
margin: auto;
width: 14px;
height: 14px;
border: 2px solid #1E2B3C;
border-right-color: transparent;
border-radius: 50%;
animation: qm-spin 0.6s linear infinite;
}
.pcard,
article.pcard {
height: auto !important;
align-self: start !important;
}
.pcard .pcard__body {
padding: 8px 2px 0 !important;
display: flex !important;
flex-direction: column !important;
justify-content: flex-start !important;
flex: 0 0 auto !important;
gap: 4px !important;
background: transparent !important;
}
.pcard .pcard__title,
.pcard a.pcard__title {
font-size: 12.5px !important;
font-weight: 500 !important;
color: #222 !important;
line-height: 1.35 !important;
text-decoration: none !important;
display: -webkit-box !important;
-webkit-line-clamp: 2 !important;
-webkit-box-orient: vertical !important;
overflow: hidden !important;
margin: 0 !important;
min-height: 0 !important;
max-height: 2.7em !important;
}
.pcard:hover .pcard__title,
.pcard a.pcard__title:hover { color: #000 !important; }
.pcard .pcard__price-row {
display: flex !important;
align-items: baseline !important;
flex-wrap: wrap !important;
gap: 5px !important;
margin: 2px 0 0 !important;
padding: 0 !important;
}
.pcard .pcard__price,
.pcard .pcard__price.currency-price {
font-size: 16px !important;
font-weight: 800 !important;
color: #111 !important;
letter-spacing: -0.2px !important;
line-height: 1.15 !important;
}
.pcard .pcard__price-unit {
font-size: 12px !important;
font-weight: 600 !important;
color: inherit !important;
margin-left: 2px;
}
.pcard.pcard--sale .pcard__price,
.pcard.pcard--sale .pcard__price.currency-price {
color: #DC2626 !important;
}
.pcard.pcard--sale .pcard__price-unit {
color: #DC2626 !important;
}
.pcard .pcard__price-old {
display: inline !important;
font-size: 11px !important;
font-weight: 500 !important;
color: #9CA3AF !important;
text-decoration: line-through !important;
letter-spacing: 0 !important;
}
.pcard .pcard__discount-tag {
display: inline-block !important;
font-size: 11px !important;
font-weight: 700 !important;
color: #DC2626 !important;
background: transparent !important;
padding: 0 !important;
letter-spacing: 0 !important;
line-height: 1.2 !important;
}
.pcard .pcard__price.pcard__price--request {
font-size: 13px !important;
font-weight: 700 !important;
color: #023E8A !important;
letter-spacing: 0 !important;
}
.pcard .pcard__service {
display: inline-flex !important;
align-items: center !important;
gap: 3px !important;
margin: 3px 0 0 !important;
font-size: 10px !important;
font-weight: 500 !important;
color: #6B7280 !important;
line-height: 1.2 !important;
letter-spacing: 0 !important;
}
.pcard .pcard__service-icon {
width: 10px !important;
height: 10px !important;
color: #9CA3AF;
flex-shrink: 0;
stroke-width: 2 !important;
}
@media (max-width: 480px) {
.pcard .pcard__service { font-size: 9.5px !important; gap: 2px !important; }
.pcard .pcard__service-icon { width: 9px !important; height: 9px !important; }
}
.pcard .pcard__flags {
position: absolute !important;
left: 6px !important;
bottom: 6px !important;
right: 44px !important;
display: flex !important;
flex-wrap: wrap !important;
gap: 4px !important;
margin: 0 !important;
padding: 0 !important;
z-index: 2 !important;
pointer-events: none !important;
}
.pcard .pcard__flag {
display: inline-flex;
align-items: center;
gap: 4px;
padding: 2px 6px;
font-size: 9.5px;
font-weight: 800;
letter-spacing: 0.04em;
text-transform: uppercase;
border-radius: 4px;
color: #ffffff;
line-height: 1.3;
white-space: nowrap;
box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.pcard .pcard__flag-icon {
display: inline-block;
width: 12px;
height: 12px;
object-fit: contain;
flex-shrink: 0;
}
.pcard .pcard__flag--hit {
background: #DC2626;
}
.pcard .pcard__flag--new {
background: #10B981;
}
.pcard .pcard__flag--sale {
background: linear-gradient(135deg, #F97316 0%, #EA580C 100%);
}
@media (max-width: 480px) {
.pcard .pcard__flags { left: 4px !important; bottom: 4px !important; right: 36px !important; gap: 3px !important; }
.pcard .pcard__flag { font-size: 8.5px; padding: 1px 5px; }
}
.pcard .pcard__rating {
display: flex !important;
align-items: center !important;
gap: 5px !important;
margin: 3px 0 0 !important;
font-size: 11px !important;
line-height: 1 !important;
color: #6B7280 !important;
}
.pcard .pcard__stars {
position: relative;
display: inline-block;
font-size: 12px;
line-height: 1;
letter-spacing: 1px;
}
.pcard .pcard__stars-bg {
color: #E5E7EB;
}
.pcard .pcard__stars-fg {
position: absolute;
top: 0;
left: 0;
overflow: hidden;
white-space: nowrap;
color: #FBBF24;
width: var(--star-fill, 0%);
}
.pcard .pcard__rating-num {
font-weight: 700;
color: #1F2937;
font-size: 11px;
}
.pcard .pcard__rating-count {
color: #9CA3AF;
font-size: 10.5px;
}
@media (max-width: 480px) {
.pcard .pcard__rating { font-size: 10px !important; gap: 3px !important; }
.pcard .pcard__stars { font-size: 11px; }
.pcard .pcard__rating-num { font-size: 10px; }
}
.pcard .pcard__short-desc {
display: -webkit-box !important;
-webkit-line-clamp: 1 !important;
-webkit-box-orient: vertical !important;
font-size: 11.5px !important;
font-weight: 400 !important;
color: #6B7280 !important;
line-height: 1.35 !important;
margin: 0 !important;
padding: 0 !important;
overflow: hidden !important;
text-overflow: ellipsis !important;
}
.pcard .pcard__badges,
.pcard .pcard__badge,
.pcard .pcard__promo,
.pcard .pcard__cta,
.pcard .pcard__btn,
.pcard .pcard__title-row .pcard__choice-pill,
.pcard .pcard__choice-pill,
.pcard .pcard__meta-row,
.pcard .pcard__meta-tag,
.pcard .pcard__short,
.pcard .pcard__meta,
.pcard .pcard__vat,
.pcard .pcard__trust,
.pcard .pcard__actions {
display: none !important;
}
.pcard .pcard__title-row {
display: block !important;
margin: 0 !important;
}
@media (max-width: 768px) {
.pcard .pcard__title { font-size: 12px !important; }
.pcard .pcard__short-desc { font-size: 10.5px !important; }
.pcard .pcard__price { font-size: 14.5px !important; }
.pcard .pcard__price-unit { font-size: 11px !important; }
.pcard .pcard__price-old { font-size: 10px !important; }
.pcard .pcard__discount-tag { font-size: 10px !important; }
.pcard .pcard__cart-fab { width: 28px; height: 28px; right: 6px; bottom: 6px; }
}
@media (max-width: 480px) {
.pcard .pcard__title { font-size: 11.5px !important; }
.pcard .pcard__price { font-size: 13.5px !important; }
.pcard .pcard__body { padding: 6px 2px 0 !important; gap: 3px !important; }
}
@keyframes qm-spin {
to { transform: rotate(360deg); }
}
/* === css/recently_viewed.css === */
.rv-section {
padding: 40px 0;
background: #fff;
border-top: 1px solid var(--color-border, #e5e7eb);
}
.rv-section[hidden] {
display: none !important;
}
.rv-section .container {
position: relative;
}
.rv-section__head {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
gap: 16px;
}
.rv-section__title {
margin: 0;
font-size: 20px;
font-weight: 700;
color: var(--color-text, #1E2B3C);
letter-spacing: -0.01em;
display: flex;
align-items: center;
gap: 8px;
}
.rv-section__clear {
background: none;
border: 1px solid var(--color-border, #e5e7eb);
padding: 6px 14px;
border-radius: 6px;
font-size: 12px;
color: var(--color-text-muted, #6b7280);
cursor: pointer;
transition: all 150ms ease;
font-family: inherit;
}
.rv-section__clear:hover {
border-color: #DC2626;
color: #DC2626;
}
.rv-section__strip {
display: flex;
gap: 12px;
overflow-x: auto;
scroll-behavior: smooth;
scroll-snap-type: x proximity;
-webkit-overflow-scrolling: touch;
padding-bottom: 8px;
scrollbar-width: none;
}
.rv-section__strip::-webkit-scrollbar { display: none; }
.rv-card {
flex: 0 0 180px;
display: flex;
flex-direction: column;
background: #fff;
border: 1px solid var(--color-border, #e5e7eb);
border-radius: 10px;
overflow: hidden;
text-decoration: none;
color: inherit;
scroll-snap-align: start;
transition: all 200ms ease;
cursor: pointer;
}
.rv-card:hover {
border-color: var(--color-primary, #023E8A);
transform: translateY(-2px);
box-shadow: 0 6px 20px rgba(2, 62, 138, 0.10);
}
.rv-card__image-wrap {
position: relative;
aspect-ratio: 4 / 5;
background: white;
overflow: hidden;
padding: 8px;
}
.rv-card__image {
width: 100%;
height: 100%;
object-fit: contain;
object-position: center;
display: block;
transition: transform 300ms ease;
}
.rv-card:hover .rv-card__image {
transform: scale(1.04);
}
.rv-card__image--placeholder {
display: grid;
place-items: center;
font-size: 32px;
font-weight: 700;
color: var(--color-primary, #023E8A);
background: linear-gradient(135deg, #E6EFFB, #ffffff);
}
.rv-card__discount {
position: absolute;
top: 6px;
left: 6px;
padding: 2px 6px;
background: #DC2626;
color: #fff;
border-radius: 3px;
font-size: 10px;
font-weight: 700;
}
.rv-card__body {
padding: 10px 12px;
display: flex;
flex-direction: column;
gap: 4px;
flex: 1;
}
.rv-card__name {
margin: 0;
font-size: 12px;
font-weight: 500;
line-height: 1.4;
color: var(--color-text, #1E2B3C);
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
min-height: 32px;
}
.rv-card:hover .rv-card__name {
color: var(--color-primary, #023E8A);
}
.rv-card__price {
font-size: 14px;
font-weight: 700;
color: var(--color-text, #1E2B3C);
margin-top: auto;
}
.rv-card__price small {
font-size: 10px;
font-weight: 500;
color: var(--color-text-muted, #6b7280);
}
.rv-card__price--request {
font-size: 12px;
color: var(--color-primary, #023E8A);
}
.rv-card__old-price {
font-size: 11px;
color: var(--color-text-muted, #9ca3af);
font-weight: 400;
text-decoration: line-through;
}
.rv-section__loading {
display: flex;
gap: 12px;
padding-bottom: 8px;
}
.rv-skeleton {
flex: 0 0 180px;
height: 240px;
background: linear-gradient(90deg, #F3F4F6 25%, #E5E7EB 50%, #F3F4F6 75%);
background-size: 200% 100%;
border-radius: 10px;
animation: rvSkeletonShimmer 1.5s infinite;
}
@keyframes rvSkeletonShimmer {
0%   { background-position: 200% 0; }
100% { background-position: -200% 0; }
}
.rv-section__nav {
position: absolute;
top: 50%;
transform: translateY(-50%);
width: 36px;
height: 36px;
background: #fff;
border: 1px solid var(--color-border, #e5e7eb);
border-radius: 50%;
font-size: 18px;
color: var(--color-text, #1E2B3C);
cursor: pointer;
display: grid;
place-items: center;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
transition: all 150ms ease;
z-index: 2;
}
.rv-section__nav:hover {
border-color: var(--color-primary, #023E8A);
color: var(--color-primary, #023E8A);
box-shadow: 0 4px 12px rgba(2, 62, 138, 0.15);
}
.rv-section__nav--prev { left: -16px; }
.rv-section__nav--next { right: -16px; }
.rv-section__nav[hidden] { display: none; }
@media (max-width: 1024px) {
.rv-card { flex: 0 0 160px; }
.rv-skeleton { flex: 0 0 160px; }
.rv-section__nav { display: none !important; }
}
@media (max-width: 768px) {
.rv-section { padding: 28px 0; }
.rv-section__title { font-size: 16px; }
.rv-section__clear { font-size: 11px; padding: 4px 10px; }
.rv-card { flex: 0 0 140px; }
.rv-skeleton { flex: 0 0 140px; height: 200px; }
.rv-card__body { padding: 8px 10px; }
}
@media (max-width: 480px) {
.rv-card { flex: 0 0 130px; }
.rv-skeleton { flex: 0 0 130px; }
}
@media (prefers-reduced-motion: reduce) {
.rv-card,
.rv-section__strip,
.rv-section__nav,
.rv-skeleton {
transition: none !important;
scroll-behavior: auto !important;
animation: none !important;
}
.rv-card:hover { transform: none !important; }
}
/* === css/mobile-polish.css === */
html {
scroll-behavior: smooth;
-webkit-text-size-adjust: 100%;
text-size-adjust: 100%;
}
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
}
body {
-webkit-overflow-scrolling: touch;
overscroll-behavior-y: contain;
}
a, button, input, select, textarea, [role="button"] {
touch-action: manipulation;
-webkit-tap-highlight-color: rgba(2, 62, 138, 0.10);
}
@supports (padding: max(0px)) {
.alibar { padding-left: max(0px, env(safe-area-inset-left)); padding-right: max(0px, env(safe-area-inset-right)); }
body { padding-bottom: env(safe-area-inset-bottom); }
}
@media (max-width: 1049.98px) {
.subheader { display: none !important; }
}
@media (max-width: 768px) {
.hero-banner { padding: 32px 16px 16px !important; }
.hero-banner__link { border-radius: 14px; }
.page-hero { padding: 28px 16px !important; }
.page-hero-sm { padding: 20px 16px !important; }
.page-hero-inner { padding: 0 !important; }
.breadcrumb { font-size: 12px; margin-bottom: 10px; }
.page-hero h1 { font-size: 22px !important; line-height: 1.25; }
.page-hero p { font-size: 13px; margin-top: 6px; }
.hero-banner__image {
aspect-ratio: auto !important;
object-fit: contain;
height: auto;
border-radius: 14px;
background: var(--color-surface-2, #f4f7fb);
}
.hero-banner__placeholder {
aspect-ratio: 16 / 9;
border-radius: 14px;
}
.hero-slider {
aspect-ratio: 16 / 9;
border-radius: 14px;
}
.hero-slider__media,
.hero-slider__image {
object-fit: contain !important;
background: var(--color-surface-2, #f4f7fb);
}
.hero-slider__caption {
bottom: 10%;
left: 5%;
max-width: 86%;
padding: 10px 14px;
font-size: clamp(13px, 4vw, 16px);
border-radius: 10px;
}
.hero-slider__nav { opacity: 0.85; width: 36px; height: 36px; font-size: 22px; }
.hero-slider__nav--prev { left: 8px; }
.hero-slider__nav--next { right: 8px; }
}
@media (max-width: 480px) {
.hero-banner__link { border-radius: 12px; }
.hero-banner__image,
.hero-banner__placeholder {
border-radius: 12px;
}
}
@media (max-width: 768px) {
.header-item,
.cart,
.cart-trigger,
.lang-trigger,
.hamburger,
.lang-option-btn,
.search-btn {
min-height: 44px;
min-width: 44px;
}
.mainnav__link,
.nav-list li a,
.mobile-menu__link,
.mobile-menu__sublink,
.mobile-menu__lang-btn,
.mobile-menu__close {
min-height: 44px;
display: inline-flex;
align-items: center;
}
.mobile-menu__close { min-width: 44px; }
.footer-accordion__summary,
.footer-accordion__body a,
.footer-accordion__body summary,
.site-footer__social-btn,
.site-footer a[href^="tel:"],
.site-footer a[href^="mailto:"] {
min-height: 44px;
display: inline-flex;
align-items: center;
padding-top: 8px;
padding-bottom: 8px;
}
.site-footer__social-btn {
min-width: 44px;
justify-content: center;
}
.btn,
.btn-sm,
.btn-add,
.btn-submit,
.form-submit,
.pagination a,
.pagination button,
.product-card a,
.partner-card,
.subheader-lang__option,
.subheader-lang__trigger,
.alibar__action,
.breadcrumb a,
.social-link {
min-height: 44px;
}
.contact-item a,
.contact-item__link {
min-height: 44px;
display: inline-flex;
align-items: center;
}
.catidx-card,
.product-card { min-height: 44px; }
.hero__cta .btn,
.form-submit { width: 100%; min-height: 48px; font-size: 16px; }
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="search"],
input[type="password"],
input[type="number"],
textarea,
select {
font-size: 16px;
min-height: 44px;
}
textarea { min-height: 88px; }
}
@media (max-width: 640px) {
.footer__grid,
.footer-grid {
grid-template-columns: 1fr 1fr !important;
gap: 24px;
}
}
@media (max-width: 380px) {
.footer__grid,
.footer-grid { grid-template-columns: 1fr !important; }
}
.mobile-utility-bar { display: none; }
@media (max-width: 768px) {
.mobile-utility-bar {
display: flex;
align-items: center;
justify-content: center;
gap: 16px;
padding: 8px 14px;
background: #F8FAFC;
border-bottom: 1px solid #E2E8F0;
font-size: 13px;
line-height: 1.2;
flex-wrap: wrap;
}
.mobile-utility-bar__item {
display: inline-flex;
align-items: center;
gap: 6px;
color: #1F2937;
text-decoration: none;
font-weight: 500;
white-space: nowrap;
padding: 4px 2px;
transition: color 150ms ease;
}
.mobile-utility-bar__item:hover { color: var(--color-primary, #023E8A); }
.mobile-utility-bar__item svg {
flex-shrink: 0;
color: var(--color-primary, #023E8A);
}
}
@media (max-width: 359px) {
.mobile-utility-bar__item:nth-child(2) { display: none; }
}
.mobile-cta-bar { display: none; }
@media (max-width: 768px) {
.mobile-cta-bar {
display: flex;
position: fixed;
bottom: 0;
left: 0;
right: 0;
z-index: 90;
background: #FFFFFF;
border-top: 1px solid #E5E7EB;
box-shadow: 0 -2px 12px rgba(15, 23, 42, 0.08);
padding: 6px 8px;
padding-bottom: calc(6px + env(safe-area-inset-bottom));
gap: 6px;
transform: translateZ(0);
will-change: transform;
}
.mobile-cta-bar__item {
flex: 1 1 0;
position: relative;
display: inline-flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 3px;
min-height: 52px;
padding: 6px 4px;
border-radius: 10px;
font-size: 11px;
font-weight: 600;
color: #475569;
text-decoration: none;
background: transparent;
border: none;
cursor: pointer;
font-family: inherit;
line-height: 1.1;
transition: background 150ms ease, color 150ms ease;
}
.mobile-cta-bar__item svg {
width: 22px;
height: 22px;
display: block;
flex-shrink: 0;
}
.mobile-cta-bar__item:hover,
.mobile-cta-bar__item:focus-visible {
background: #F1F5F9;
color: var(--color-primary, #023E8A);
outline: none;
}
.mobile-cta-bar__item.is-active {
color: var(--color-primary, #023E8A);
background: #EFF6FF;
}
.mobile-cta-bar__badge {
position: absolute;
top: 4px;
right: calc(50% - 18px);
min-width: 18px;
height: 18px;
padding: 0 5px;
background: #DC2626;
color: #FFFFFF;
border-radius: 999px;
font-size: 10px;
font-weight: 700;
line-height: 18px;
text-align: center;
box-shadow: 0 0 0 2px #FFFFFF;
}
.mobile-cta-bar__item--catalog,
.mobile-cta-bar__item--cart {
color: var(--color-primary, #023E8A);
}
body {
padding-bottom: calc(64px + env(safe-area-inset-bottom)) !important;
}
.scroll-top {
bottom: calc(80px + env(safe-area-inset-bottom)) !important;
}
}
@media (prefers-reduced-motion: reduce) {
.mobile-cta-bar__item { transition: none; }
}
.bottom-tabs { display: none; }
@media (max-width: 768px) {
.bottom-tabs {
display: flex;
position: fixed;
bottom: 0; left: 0; right: 0;
z-index: 95;
background: #FFFFFF;
border-top: 1px solid var(--color-border, #E5E9F0);
box-shadow: 0 -2px 12px rgba(15, 23, 42, 0.06);
padding-bottom: env(safe-area-inset-bottom);
transform: translateZ(0);
will-change: transform;
}
.bottom-tabs__item {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 2px;
padding: 8px 4px;
min-height: 56px;
text-decoration: none;
color: var(--color-text-secondary, #5A6573);
font-size: 11px;
font-weight: 500;
position: relative;
transition: color 150ms ease;
}
.bottom-tabs__item:hover,
.bottom-tabs__item:focus-visible {
color: var(--color-primary, #023E8A);
outline: none;
}
.bottom-tabs__item--active {
color: var(--color-primary, #023E8A);
font-weight: 600;
}
.bottom-tabs__icon {
width: 22px;
height: 22px;
display: block;
}
.bottom-tabs__badge {
position: absolute;
top: 4px;
right: calc(50% - 18px);
background: #DC2626;
color: #fff;
font-size: 10px;
font-weight: 700;
min-width: 16px;
height: 16px;
line-height: 16px;
padding: 0 4px;
border-radius: 999px;
text-align: center;
}
.float-cta, .floating-consult { bottom: calc(80px + env(safe-area-inset-bottom)) !important; }
}
@media (prefers-reduced-motion: reduce) {
.bottom-tabs__item { transition: none; }
}
@media (max-width: 768px) {
.toast {
bottom: auto !important;
top: 50% !important;
transform: translate(-50%, -50%) scale(0.94) !important;
opacity: 0 !important;
visibility: hidden !important;
pointer-events: none !important;
transition: opacity 200ms ease, transform 200ms ease, visibility 200ms ease !important;
max-width: calc(100vw - 32px);
white-space: normal;
text-align: center;
line-height: 1.35;
padding: 14px 22px;
box-shadow: 0 12px 40px rgba(0, 0, 0, 0.25);
border-radius: 14px;
}
.toast.show,
.toast.visible {
transform: translate(-50%, -50%) scale(1) !important;
opacity: 1 !important;
visibility: visible !important;
}
}
@media (max-width: 480px) {
.section { padding: 28px 0; }
.section__title { font-size: 22px; line-height: 1.25; }
.section__sub { font-size: 14px; }
.container { padding-left: 16px; padding-right: 16px; }
}
img { max-width: 100%; height: auto; }
.product-card img,
.hero-banner__image,
.hero-slider__media {
transition: opacity 250ms ease;
}
.product-card img[loading="lazy"]:not([src]) { opacity: 0; }
@media (max-width: 480px) {
.featured-products .product-grid,
.products-grid {
grid-template-columns: repeat(2, 1fr) !important;
gap: 10px;
}
.product-card__title { font-size: 12px; line-height: 1.3; }
.product-card__price { font-size: 14px; }
}
@media (max-width: 640px) {
.product-card-footer {
flex-direction: column;
align-items: stretch;
gap: 8px;
}
.product-card-footer .product-price-block,
.product-card-footer .product-price-request {
width: 100%;
text-align: left;
}
.product-card-footer .btn-add {
width: 100%;
text-align: center;
padding: 10px 12px;
}
}
@media (max-width: 768px) {
.catidx-section { padding: 16px 0 32px; }
.catidx-grid { gap: 12px; }
.catidx-card {
border-radius: 12px;
box-shadow: 0 1px 2px rgba(0,0,0,.04);
border: 1px solid #E5E7EB;
}
.catidx-card__main {
padding: 16px 16px;
gap: 12px;
align-items: center;
min-height: 60px;
}
.catidx-card__media { display: none; }
.catidx-card__name {
font-size: 15px;
margin: 0 0 3px;
line-height: 1.35;
font-weight: 600;
}
.catidx-card__desc { display: none; }
.catidx-card__count {
font-size: 12px;
font-weight: 500;
color: var(--color-text-muted, #6b7280);
}
.catidx-card__arrow { font-size: 20px; }
.catidx-children {
padding: 8px 14px 14px;
gap: 8px;
border-top: 1px solid #F1F5F9;
}
.catidx-child {
font-size: 12px;
padding: 6px 10px;
border-radius: 8px;
}
.catidx-child__img { display: none; }
.catidx-child:nth-of-type(n+4) { display: none; }
.catidx-child__count { display: inline; font-size: 11px; opacity: 0.75; }
.catidx-footer { margin-top: 24px; }
.catidx-footer__btn { padding: 12px 28px; font-size: 14px; }
}
.page-btn--nav { gap: 4px; }
.page-btn__arr { line-height: 1; }
@media (max-width: 480px) {
.blog-pagination .page-btn--nav {
width: 40px;
min-width: 40px;
padding: 0;
}
.page-btn--nav .page-btn__lbl { display: none; }
.page-btn--nav .page-btn__arr { font-size: 18px; font-weight: 700; }
}
/* === css/quick_order.css === */
.qom {
position: fixed;
inset: 0;
z-index: 1000;
display: flex;
align-items: center;
justify-content: center;
padding: 16px;
animation: qom-fade 0.2s ease;
}
.qom[hidden] { display: none; }
.qom__backdrop {
position: absolute;
inset: 0;
background: rgba(15, 23, 42, 0.6);
backdrop-filter: blur(2px);
}
.qom__panel {
position: relative;
background: #fff;
border-radius: 14px;
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
width: 100%;
max-width: 460px;
max-height: calc(100vh - 32px);
overflow-y: auto;
padding: 28px 24px 24px;
animation: qom-slide-up 0.25s cubic-bezier(0.2, 0.9, 0.3, 1);
}
@keyframes qom-fade {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes qom-slide-up {
from { transform: translateY(20px); opacity: 0; }
to { transform: translateY(0); opacity: 1; }
}
.qom__close {
position: absolute;
top: 8px;
right: 12px;
width: 36px;
height: 36px;
border: none;
background: transparent;
font-size: 28px;
line-height: 1;
color: #6b7280;
cursor: pointer;
border-radius: 50%;
transition: background 0.15s;
}
.qom__close:hover { background: #f3f4f6; color: #111827; }
.qom__title {
font-size: 22px;
font-weight: 800;
margin: 0 0 6px;
color: #111827;
}
.qom__subtitle {
margin: 0 0 18px;
color: #6b7280;
font-size: 14px;
}
.qom__product {
display: flex;
gap: 12px;
align-items: center;
padding: 12px;
background: #f9fafb;
border-radius: 10px;
margin-bottom: 18px;
}
.qom__product-img {
width: 64px;
height: 64px;
object-fit: contain;
border-radius: 8px;
background: #fff;
flex-shrink: 0;
}
.qom__product-info { flex: 1; min-width: 0; }
.qom__product-name {
font-size: 14px;
font-weight: 600;
margin: 0 0 4px;
color: #111827;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
}
.qom__product-sku {
font-size: 12px;
color: #9ca3af;
margin: 0 0 4px;
}
.qom__product-price {
font-size: 14px;
font-weight: 700;
color: #023E8A;
margin: 0;
}
.qom__form { display: flex; flex-direction: column; gap: 14px; }
.qom__field { display: flex; flex-direction: column; gap: 4px; }
.qom__label {
font-size: 13px;
font-weight: 600;
color: #374151;
}
.qom__required { color: #DC2626; }
.qom__field input,
.qom__field textarea {
width: 100%;
padding: 10px 12px;
border: 1px solid #E5E7EB;
border-radius: 8px;
font-size: 15px;
font-family: inherit;
background: #fff;
transition: border-color 0.15s, box-shadow 0.15s;
box-sizing: border-box;
}
.qom__field input:focus,
.qom__field textarea:focus {
outline: none;
border-color: #023E8A;
box-shadow: 0 0 0 3px rgba(2, 62, 138, 0.12);
}
.qom__field--qty input {
max-width: 120px;
}
.qom__hint {
font-size: 12px;
color: #9ca3af;
margin-top: 2px;
}
.qom__submit {
margin-top: 6px;
padding: 14px 20px;
background: #023E8A;
color: #fff;
border: none;
border-radius: 10px;
font-size: 16px;
font-weight: 700;
font-family: inherit;
cursor: pointer;
transition: background 0.15s, transform 0.1s;
}
.qom__submit:hover:not(:disabled) { background: #03306E; }
.qom__submit:active { transform: scale(0.98); }
.qom__submit:disabled { background: #9ca3af; cursor: wait; }
.qom__terms {
font-size: 11px;
color: #9ca3af;
text-align: center;
margin: 4px 0 0;
}
.qom__icon {
font-size: 56px;
text-align: center;
margin-bottom: 8px;
}
.qom__success-id {
text-align: center;
font-size: 15px;
color: #4B5563;
margin: 0 0 16px;
}
.qom__success-id strong { color: #023E8A; }
.qom__success-info {
background: #ECFDF5;
border-radius: 10px;
padding: 12px 14px;
margin: 0 0 16px;
}
.qom__success-info p { margin: 4px 0; font-size: 14px; color: #065F46; }
.qom__telegram {
display: block;
text-align: center;
background: #0088CC;
color: #fff;
padding: 14px;
border-radius: 10px;
font-weight: 700;
text-decoration: none;
font-size: 15px;
margin-bottom: 8px;
transition: background 0.15s;
}
.qom__telegram:hover { background: #006699; color: #fff; }
.qom__close-btn,
.qom__retry {
display: block;
width: 100%;
padding: 12px;
background: transparent;
border: 1px solid #E5E7EB;
border-radius: 10px;
font-size: 14px;
font-weight: 600;
color: #4B5563;
cursor: pointer;
font-family: inherit;
transition: background 0.15s;
}
.qom__close-btn:hover,
.qom__retry:hover { background: #F3F4F6; }
.qom__error-msg {
text-align: center;
color: #DC2626;
font-size: 14px;
margin: 0 0 16px;
}
@media (max-width: 480px) {
.qom { padding: 0; align-items: flex-end; }
.qom__panel {
border-radius: 16px 16px 0 0;
max-height: 92vh;
padding: 24px 20px 20px;
}
}
/* === css/trust_badge.css === */
.trust-badge {
background: var(--color-primary);
color: #fff;
padding: 48px 0;
position: relative;
overflow: hidden;
}
.trust-badge::before {
content: '';
position: absolute;
inset: 0;
background: radial-gradient(circle at 30% 50%, rgba(255,255,255,0.06), transparent 50%);
pointer-events: none;
}
.trust-badge__content {
text-align: center;
max-width: 800px;
margin: 0 auto;
position: relative;
}
.trust-badge__title {
font-size: clamp(22px, 3.4vw, 34px);
font-weight: 800;
line-height: 1.18;
margin: 0 0 12px;
color: #fff;
letter-spacing: -0.3px;
}
.trust-badge__subtitle {
font-size: clamp(14px, 1.8vw, 17px);
line-height: 1.5;
opacity: 0.9;
margin: 0 0 28px;
}
.trust-badge__stats {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
max-width: 600px;
margin: 0 auto;
}
.trust-stat {
text-align: center;
}
.trust-stat__value {
font-size: clamp(28px, 5vw, 44px);
font-weight: 800;
color: var(--color-accent);
line-height: 1;
margin-bottom: 6px;
letter-spacing: -0.5px;
}
.trust-stat__label {
font-size: 13px;
opacity: 0.88;
line-height: 1.3;
}
@media (max-width: 640px) {
.trust-badge { padding: 32px 0; }
.trust-badge__stats { gap: 12px; }
.trust-stat__label { font-size: 12px; }
}
/* === css/hero_text.css === */
.hero-text {
background: linear-gradient(180deg, #FFFFFF 0%, var(--color-bg-soft) 100%);
color: var(--color-text);
padding: clamp(48px, 7vw, 88px) 0 clamp(56px, 8vw, 96px);
position: relative;
overflow: hidden;
}
.hero-text::before {
content: '';
position: absolute;
top: -200px;
right: -200px;
width: 600px;
height: 600px;
background: radial-gradient(circle, rgba(2, 62, 138, 0.06) 0%, transparent 60%);
border-radius: 50%;
pointer-events: none;
z-index: 0;
}
.hero-text::after {
content: '';
position: absolute;
bottom: -120px;
left: -120px;
width: 360px;
height: 360px;
background: radial-gradient(circle, rgba(2, 62, 138, 0.04) 0%, transparent 60%);
border-radius: 50%;
pointer-events: none;
z-index: 0;
}
.hero-text__content {
position: relative;
z-index: 1;
max-width: 760px;
}
.hero-text__badge {
display: inline-flex;
align-items: center;
gap: 8px;
padding: 8px 18px;
background: #fff;
border: 1.5px solid var(--color-primary);
border-radius: 999px;
color: var(--color-primary);
font-size: 14px;
font-weight: 600;
margin-bottom: 24px;
letter-spacing: 0.2px;
text-decoration: none;
transition: background 0.2s, color 0.2s;
}
.hero-text__badge:hover {
background: var(--color-primary);
color: #fff;
}
.hero-text__title {
font-size: clamp(34px, 6vw, 64px);
font-weight: 800;
line-height: 1.05;
letter-spacing: -1px;
margin: 0 0 24px;
color: var(--color-text);
}
.hero-text__highlight {
color: var(--color-primary);
display: inline-block;
}
.hero-text__desc {
font-size: clamp(16px, 1.6vw, 18px);
line-height: 1.6;
color: var(--color-text-secondary);
margin: 0 0 32px;
max-width: 580px;
}
.hero-text__cta {
display: flex;
flex-wrap: wrap;
gap: 14px;
margin-bottom: 48px;
}
.hero-text__cta .btn {
padding: 14px 28px;
font-size: 15px;
font-weight: 600;
border-radius: 12px;
text-decoration: none;
display: inline-flex;
align-items: center;
justify-content: center;
transition: transform 0.2s, background 0.2s, border-color 0.2s, box-shadow 0.2s, color 0.2s;
white-space: nowrap;
border: 1.5px solid transparent;
cursor: pointer;
}
.hero-text__cta .btn--accent {
background: var(--color-primary);
color: #fff;
border-color: var(--color-primary);
box-shadow: 0 4px 16px rgba(2, 62, 138, 0.22);
}
.hero-text__cta .btn--accent:hover {
background: var(--color-primary-hover);
border-color: var(--color-primary-hover);
transform: translateY(-1px);
box-shadow: 0 6px 20px rgba(2, 62, 138, 0.32);
}
.hero-text__cta .btn--outline-blue {
background: #fff;
color: var(--color-primary);
border-color: var(--color-primary);
}
.hero-text__cta .btn--outline-blue:hover {
background: var(--color-primary-light);
}
.hero-text__stats {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(140px, auto));
gap: clamp(20px, 4vw, 48px);
padding-top: 32px;
border-top: 1px solid var(--color-border);
max-width: 620px;
}
.hero-text-stat__value {
font-size: clamp(28px, 4vw, 42px);
font-weight: 800;
color: var(--color-text);
line-height: 1;
margin-bottom: 6px;
letter-spacing: -0.5px;
}
.hero-text-stat__label {
font-size: 13px;
color: var(--color-text-muted);
line-height: 1.3;
font-weight: 500;
}
@media (max-width: 640px) {
.hero-text { padding: 40px 0 48px; }
.hero-text__cta { flex-direction: column; align-items: stretch; gap: 10px; }
.hero-text__cta .btn { width: 100%; padding: 13px 20px; }
.hero-text__stats {
grid-template-columns: repeat(3, 1fr);
gap: 12px;
padding-top: 24px;
}
.hero-text-stat__value { font-size: 22px; }
.hero-text-stat__label { font-size: 11px; }
}
.hero-text--has-bg {
background-size: cover;
background-position: center;
background-repeat: no-repeat;
}
.hero-text--has-bg::before,
.hero-text--has-bg::after {
display: none;
}
.hero-text__overlay {
position: absolute;
inset: 0;
background: linear-gradient(
90deg,
rgba(255, 255, 255, 0.94) 0%,
rgba(255, 255, 255, 0.85) 45%,
rgba(255, 255, 255, 0.55) 80%,
rgba(255, 255, 255, 0.25) 100%
);
pointer-events: none;
z-index: 0;
}
.hero-text--has-bg .hero-text__content {
position: relative;
z-index: 1;
}
@media (max-width: 768px) {
.hero-text__overlay {
background: linear-gradient(
180deg,
rgba(255, 255, 255, 0.92) 0%,
rgba(255, 255, 255, 0.82) 100%
);
}
}
/* === css/home_v2.css === */
.hero-v3 {
background: #fafbfc;
padding: 16px 0 32px;
overflow: hidden;
}
.hero-v3-container {
max-width: 1320px;
margin: 0 auto;
padding: 0 24px;
}
.hero-v3-title {
text-align: center;
font-size: clamp(28px, 3.6vw, 52px);
font-weight: 800;
line-height: 1.1;
letter-spacing: -0.8px;
margin: 0 0 28px;
display: block;
color: #0a0a0a;
}
.hero-v3-title .title-line-1,
.hero-v3-title .title-line-2 {
display: block;
width: 100%;
color: inherit;
}
.hero-v3-title .title-line-1 {
margin-bottom: 6px;
}
.hero-v3-title .title-line-2 {
font-weight: 700;
}
.hero-v3-title .title-main,
.hero-v3-title .title-accent {
display: block;
width: 100%;
color: #0a0a0a !important;
}
.hero-v3-collage-wrapper {
width: 100%;
padding: 0;
}
.hero-v4-badge {
position: absolute;
bottom: calc(100% + 12px);
left: -20px;
right: -20px;
font-size: 15px;
font-weight: 800;
letter-spacing: 0.6px;
text-transform: uppercase;
color: #0a0a0a;
line-height: 1.35;
text-align: center;
padding: 0 4px;
margin: 0;
word-wrap: break-word;
hyphens: auto;
}
.hero-v4-badge--mobile {
display: none;
}
.hero-v3-collage {
display: flex;
align-items: center;
justify-content: center;
gap: 18px;
padding: 24px 16px;
margin: 0 auto;
max-width: 1200px;
width: 100%;
box-sizing: border-box;
}
.collage-col {
display: flex;
flex-direction: column;
gap: 18px;
min-width: 0;
position: relative;
}
.col-left-outer  .card { width: 180px; height: 270px; }
.col-left-double .card:first-child { width: 240px; height: 200px; }
.col-left-double .card:last-child  { width: 240px; height: 200px; }
.col-main        .card { width: 270px; height: 405px; }
.col-right-double .card:first-child { width: 240px; height: 200px; }
.col-right-double .card:last-child  { width: 240px; height: 200px; }
.col-right-outer .card { width: 180px; height: 270px; }
.col-left-outer,
.col-right-outer { min-width: 180px; }
.col-left-double { min-width: 220px; }
.col-right-double { min-width: 200px; }
.col-main { min-width: 270px; }
@keyframes cardEnter {
0% {
opacity: 0;
transform: translateY(40px) scale(0.96);
filter: blur(6px);
}
100% {
opacity: 1;
transform: translateY(0) scale(1);
filter: blur(0);
}
}
@keyframes badgeEnter {
0%   { opacity: 0; transform: translateY(-12px); }
100% { opacity: 1; transform: translateY(0); }
}
.hero-v3-collage .card {
animation: cardEnter 0.52s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.hero-v3-collage .hero-v4-badge {
animation: badgeEnter 0.4s ease-out 0.6s both;
}
.col-left-outer  .card { animation-delay: 0s; }
.col-left-double .card:first-child { animation-delay: 0.08s; }
.col-left-double .card:last-child  { animation-delay: 0.16s; }
.col-main        .card { animation-delay: 0.24s; }
.col-right-double .card:first-child { animation-delay: 0.32s; }
.col-right-double .card:last-child  { animation-delay: 0.40s; }
.col-right-outer .card { animation-delay: 0.48s; }
@media (prefers-reduced-motion: reduce) {
.hero-v3-collage .card,
.hero-v3-collage .hero-v4-badge {
animation: none !important;
}
}
.card {
border-radius: 16px;
overflow: hidden;
position: relative;
display: block;
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.card:hover {
transform: translateY(-4px);
box-shadow: 0 12px 24px rgba(8, 44, 102, 0.12);
}
.card a {
display: block;
width: 100%;
height: 100%;
text-decoration: none;
}
.card img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
display: block;
}
.card-label {
position: absolute;
top: 12px;
left: 12px;
background: rgba(255, 255, 255, 0.95);
color: #082C66;
padding: 4px 10px;
border-radius: 999px;
font-size: 11px;
font-weight: 700;
letter-spacing: 0.5px;
text-transform: uppercase;
}
.collage-empty {
border: 2px dashed #d1d5db;
background: transparent !important;
color: #6b7280;
font-size: 14px;
text-align: center;
padding: 16px;
}
.hero-v3-cta {
display: flex;
gap: 14px;
justify-content: center;
flex-wrap: wrap;
padding: 36px 24px 8px;
}
.btn-v3-primary,
.btn-v3-secondary {
padding: 14px 32px;
border-radius: 12px;
font-size: 15px;
font-weight: 600;
text-decoration: none;
transition: transform .2s, background .2s, color .2s, box-shadow .2s;
border: 1.5px solid transparent;
cursor: pointer;
display: inline-flex;
align-items: center;
justify-content: center;
white-space: nowrap;
min-width: 180px;
}
.btn-v3-primary {
background: #023E8A;
color: #fff;
}
.btn-v3-primary:hover {
background: #03306E;
transform: translateY(-1px);
box-shadow: 0 8px 18px rgba(2, 62, 138, 0.25);
}
.btn-v3-secondary {
background: #fff;
color: #023E8A;
border-color: #023E8A;
}
.btn-v3-secondary:hover {
background: #f3f4f6;
transform: translateY(-1px);
}
.stats-section {
padding: 36px 0 40px;
background: #fafbfc;
}
.stats-section__title {
font-size: clamp(18px, 1.8vw, 24px);
font-weight: 800;
color: #082C66;
text-align: center;
margin: 0 0 22px;
letter-spacing: -0.4px;
}
.stats-section__grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
gap: 14px;
max-width: 1100px;
margin: 0 auto;
padding: 0 24px;
}
.stats-section__card {
background: transparent;
border: none;
border-radius: 0;
padding: 12px 14px;
text-align: center;
}
.stats-section__value {
font-size: clamp(22px, 2.2vw, 30px);
font-weight: 900;
color: #082C66;
line-height: 1;
letter-spacing: -1px;
margin-bottom: 6px;
}
.stats-section__label {
font-size: clamp(12px, 0.9vw, 13px);
color: #4b5563;
font-weight: 500;
line-height: 1.35;
}
@media (max-width: 640px) {
.stats-section {
padding: 24px 0 32px;
}
.stats-section__title {
margin-bottom: 14px;
}
.stats-section__grid {
grid-template-columns: repeat(3, 1fr);
gap: 8px;
padding: 0 12px;
}
.stats-section__card {
padding: 8px 4px;
}
.stats-section__value {
font-size: 18px;
margin-bottom: 4px;
}
.stats-section__label {
font-size: 11px;
}
}
.partners {
background: #fff;
}
.partners .partner-card,
.partners .partner-card:hover {
background: transparent !important;
border: none !important;
box-shadow: none !important;
border-radius: 0 !important;
}
.partners .partner-card--image img {
filter: grayscale(20%);
opacity: 0.85;
transition: filter 0.3s ease, opacity 0.3s ease, transform 0.3s ease;
}
.partners .partner-card--image:hover img {
filter: grayscale(0%);
opacity: 1;
transform: translateY(-2px);
}
@media (max-width: 1280px) and (min-width: 1101px) {
.hero-v3-collage { gap: 14px; }
}
@media (max-width: 1100px) {
.hero-v3 {
padding: 12px 0 32px;
text-align: center;
}
.hero-v3 > * {
margin-left: auto;
margin-right: auto;
}
.hero-v3-container {
width: 100%;
margin: 0 auto;
}
.hero-v3-title {
font-size: clamp(24px, 5.5vw, 38px);
letter-spacing: -0.5px;
margin-bottom: 20px;
}
.col-single .hero-v4-badge {
display: none;
}
.hero-v4-badge--mobile {
display: block;
text-align: center;
max-width: 320px;
margin: 0 auto 16px;
}
.hero-v3-collage-wrapper {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
padding: 0 16px;
box-sizing: border-box;
}
.hero-v3-collage {
flex: 0 1 360px;
width: 100%;
max-width: 360px;
padding: 0;
margin: 0;
gap: 0;
transform: none;
position: relative;
aspect-ratio: 3/4;
height: auto;
display: block;
}
.hero-v3-collage .collage-col {
position: absolute;
inset: 0;
display: block !important;
width: 100% !important;
height: 100% !important;
margin: 0 !important;
padding: 0;
gap: 0;
}
.hero-v3-collage .card,
.hero-v3-collage .hero-v4-badge {
animation: none !important;
}
.hero-v3-collage .card {
width: 100% !important;
height: 100% !important;
max-width: 360px;
position: absolute !important;
inset: 0 !important;
margin: 0;
border-radius: 16px;
opacity: 0 !important;
transform: translateY(40px) scale(0.96) !important;
filter: blur(6px);
transition:
opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1),
transform 0.9s cubic-bezier(0.22, 1, 0.36, 1),
filter 0.9s cubic-bezier(0.22, 1, 0.36, 1) !important;
pointer-events: none;
will-change: transform, opacity, filter;
}
.hero-v3-collage .card.is-active {
opacity: 1 !important;
transform: translateY(0) scale(1) !important;
filter: blur(0);
pointer-events: auto;
z-index: 2;
box-shadow: 0 18px 40px rgba(8, 44, 102, 0.16), 0 6px 12px rgba(0, 0, 0, 0.06);
}
.hero-v3-collage .col-double .card:first-child,
.hero-v3-collage .col-double .card:last-child {
position: absolute;
inset: 0;
width: 100% !important;
height: 100% !important;
}
.hero-v3-cta {
flex-direction: column;
max-width: 320px;
margin: 0 auto;
padding: 24px 16px 4px;
}
.btn-v3-primary,
.btn-v3-secondary {
width: 100%;
}
}
@media (max-width: 480px) {
.hero-v3-title {
font-size: clamp(22px, 6.5vw, 32px);
}
.hero-v3-collage {
max-width: 100%;
}
.col-main .card {
aspect-ratio: 1 / 1;
border-radius: 14px;
}
.hero-v4-badge--mobile {
font-size: 10px;
letter-spacing: 1.1px;
}
}
/* === css/hero_banner.css === */
.hero-fallback {
position: relative;
overflow: hidden;
min-height: 480px;
display: flex; align-items: center;
color: #fff;
}
.hero-fallback__bg {
position: absolute; inset: 0;
background:
radial-gradient(circle at 15% 20%, rgba(255, 183, 3, 0.18) 0%, transparent 50%),
radial-gradient(circle at 90% 80%, rgba(2, 62, 138, 0.6) 0%, transparent 50%),
linear-gradient(135deg, #023E8A 0%, #03306E 60%, #021A3E 100%);
}
.hero-fallback__bg::after {
content: '';
position: absolute; inset: 0;
background-image:
linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
background-size: 48px 48px;
mask-image: radial-gradient(circle at center, #000 0%, transparent 75%);
-webkit-mask-image: radial-gradient(circle at center, #000 0%, transparent 75%);
}
.hero-fallback__inner {
position: relative; z-index: 1;
display: grid;
grid-template-columns: 1.6fr 1fr;
gap: 32px;
align-items: center;
padding: 64px 24px;
}
.hero-fallback__text { display: flex; flex-direction: column; gap: 18px; }
.hero-fallback__eyebrow {
display: inline-flex; align-items: center; gap: 6px;
padding: 6px 12px;
background: rgba(255, 183, 3, 0.18);
border: 1px solid rgba(255, 183, 3, 0.32);
border-radius: 999px;
font-size: 13px; font-weight: 700; color: #FFB703;
width: fit-content;
letter-spacing: 0.02em;
}
.hero-fallback__title {
font-size: clamp(28px, 4vw, 48px);
font-weight: 800;
line-height: 1.15;
margin: 0;
letter-spacing: -0.02em;
}
.hero-fallback__lead {
font-size: 16px;
line-height: 1.55;
color: rgba(255,255,255,0.85);
max-width: 560px;
margin: 0;
}
.hero-fallback__cta {
display: flex; gap: 12px; flex-wrap: wrap; margin-top: 8px;
}
.hero-fallback__btn {
display: inline-flex; align-items: center; gap: 6px;
padding: 14px 26px;
border-radius: 12px;
font-size: 15px; font-weight: 700;
text-decoration: none;
border: 2px solid transparent;
cursor: pointer;
transition: transform .15s, box-shadow .15s, background .15s, color .15s;
}
.hero-fallback__btn--primary { background: #FFB703; color: #1A2332; }
.hero-fallback__btn--primary:hover {
background: #FFC835; transform: translateY(-2px);
box-shadow: 0 10px 28px rgba(255, 183, 3, 0.35);
}
.hero-fallback__btn--ghost {
background: transparent; color: #fff;
border-color: rgba(255,255,255,0.4);
}
.hero-fallback__btn--ghost:hover {
background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.7);
}
.hero-fallback__usp {
list-style: none; padding: 0; margin: 16px 0 0;
display: flex; flex-wrap: wrap; gap: 16px 24px;
font-size: 14px; color: rgba(255,255,255,0.88);
}
.hero-fallback__usp li {
display: inline-flex; align-items: center; gap: 6px;
}
.hero-fallback__usp span {
display: inline-flex; align-items: center; justify-content: center;
width: 20px; height: 20px; border-radius: 50%;
background: var(--color-success, #16A34A);
color: #fff; font-size: 12px; font-weight: 700;
}
.hero-fallback__icon { display: flex; align-items: center; justify-content: center; }
.hero-fallback__icon svg { width: 100%; max-width: 280px; height: auto; }
@media (max-width: 768px) {
.hero-fallback { min-height: auto; }
.hero-fallback__inner {
grid-template-columns: 1fr;
padding: 40px 20px;
gap: 24px;
}
.hero-fallback__icon { order: -1; }
.hero-fallback__icon svg { max-width: 160px; }
.hero-fallback__lead { font-size: 15px; }
.hero-fallback__btn { flex: 1; justify-content: center; }
.hero-fallback__usp { gap: 10px 16px; font-size: 13px; }
}
.hero-banner {
padding: 18px 30px 0;
background: transparent;
}
.hero-banner .hero-banner__viewport,
.hero-banner--full .hero-banner__viewport {
position: relative;
width: 100%;
aspect-ratio: 32 / 7;
min-height: 255px;
max-height: 435px;
border-radius: 12px !important;
overflow: hidden;
background: #f5f5f5;
}
.hero-banner .hero-banner__image,
.hero-banner--full .hero-banner__image {
border-radius: 12px !important;
}
.hero-banner__picture {
display: contents;
}
.hero-banner__track {
position: absolute;
inset: 0;
}
.hero-banner__slide {
position: absolute;
inset: 0;
opacity: 0;
visibility: hidden;
transition: opacity 0.6s ease;
background: transparent;
}
.hero-banner__slide.is-active {
opacity: 1;
visibility: visible;
z-index: 1;
}
.hero-banner__image {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
}
.hero-banner__slide--contain .hero-banner__image {
object-fit: contain;
}
.hero-banner__slide-link {
position: absolute;
inset: 0;
z-index: 3;
text-indent: -9999px;
}
.hero-banner__dots {
position: absolute;
bottom: 14px;
left: 50%;
transform: translateX(-50%);
z-index: 4;
display: flex;
gap: 8px;
padding: 6px 12px;
background: rgba(255, 255, 255, 0.6);
backdrop-filter: blur(6px);
-webkit-backdrop-filter: blur(6px);
border-radius: 999px;
}
.hero-banner__dot {
width: 8px;
height: 8px;
border-radius: 50%;
border: none;
padding: 0;
background: rgba(0, 0, 0, 0.35);
cursor: pointer;
transition: background 0.2s ease, width 0.2s ease;
}
.hero-banner__dot:hover {
background: rgba(0, 0, 0, 0.55);
}
.hero-banner__dot.is-active {
background: #0a0a0a;
width: 22px;
border-radius: 999px;
}
@media (max-width: 900px) {
.hero-banner__viewport {
aspect-ratio: 16 / 9;
min-height: 180px;
max-height: 280px;
}
.hero-banner__dots {
bottom: 10px;
padding: 5px 10px;
}
}
@media (max-width: 768px) {
.hero-banner {
padding: 16px 14px 0;
}
.hero-banner__viewport {
aspect-ratio: 16 / 9;
min-height: 160px;
max-height: 260px;
background: var(--color-surface-2, #f4f7fb);
}
.hero-banner__image {
object-fit: contain;
object-position: center;
}
}
@media (max-width: 480px) {
.hero-banner {
padding: 14px 10px 0;
}
.hero-banner__viewport {
aspect-ratio: 16 / 9;
min-height: 140px;
max-height: 220px;
}
}
@media (max-width: 768px) {
.hero-banner--has-mobile .hero-banner__viewport {
aspect-ratio: 1 / 1;
min-height: 0;
max-height: 460px;
}
.hero-banner--has-mobile .hero-banner__image,
.hero-banner--has-mobile .hero-banner__slide--contain .hero-banner__image {
object-fit: cover;
}
}
@media (max-width: 480px) {
.hero-banner--has-mobile .hero-banner__viewport {
aspect-ratio: 1 / 1;
max-height: 400px;
}
}
/* === css/trust_and_partners.css === */
.partners--strip {
padding: var(--space-5) 0;
background: #fff;
}
.partners--strip .partners__marquee {
margin-top: 0;
padding: var(--space-2) 0;
}
.partners--strip .partners__track {
gap: var(--space-5);
}
.partners--strip .partner-card {
height: 56px;
min-width: 140px;
padding: var(--space-2) var(--space-3);
border-radius: 0;
}
.partners--strip .partner-card--image img,
.partners--strip .partner-card--both img {
border-radius: 0;
}
.partners--strip .partner-card--text {
min-width: 160px;
}
.partners--strip .partner-card--image img,
.partners--strip .partner-card--both img {
max-width: 110px;
max-height: 40px;
}
.partners--strip .partner-card__text {
font-size: 13px;
letter-spacing: 0.5px;
}
@media (max-width: 900px) {
.partners--strip .partner-card {
height: 48px;
min-width: 120px;
}
.partners--strip .partner-card--image img,
.partners--strip .partner-card--both img {
max-width: 90px;
max-height: 32px;
}
.partners--strip .partner-card__text {
font-size: 12px;
}
}
.partners--strip .partner-card--image img,
.partners--strip .partner-card--both img {
filter: none !important;
opacity: 1 !important;
transition: transform 0.3s ease;
}
.partners--strip .partner-card--image:hover img,
.partners--strip .partner-card--both:hover img {
transform: scale(1.06);
}
.partners--strip .partner-card--text .partner-card__text,
.partners--strip .partner-card--both .partner-card__text {
color: #1F2937;
transition: color 0.3s ease;
}
.partners--strip .partner-card--text:hover .partner-card__text,
.partners--strip .partner-card--both:hover .partner-card__text {
color: var(--color-text);
}
.partners--strip .partner-card {
transform: none;
}
.partners--strip .partner-card:hover {
transform: translateY(-2px);
}