/* Shared visual layer. Original page layout, data and routes are preserved. */
:root {
  --brand: #c82432;
  --brand-dark: #a31d2b;
  --ink: #222a36;
  --muted: #647080;
  --line: #e8eaf0;
  --ease: cubic-bezier(.22, 1, .36, 1);
  --header-height: 100px;
}
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 24px); }
body { color: var(--ink); line-height: 1.6; -webkit-font-smoothing: antialiased; }
::selection { background: #f4cbd0; color: #671621; }
.page-container { background: #f5f6f8; }
main { margin-top: var(--header-height); padding-bottom: 64px; }
:where(a, button, input, textarea, select, [tabindex]):focus-visible {
  outline: 3px solid #c82432 !important; outline-offset: 4px;
}
header {
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid rgba(34,42,54,.07);
  transition: background .3s ease, box-shadow .3s ease;
}
@supports (backdrop-filter: blur(16px)) {
  header { background: rgba(255,255,255,.88); backdrop-filter: blur(16px); }
}
header.is-scrolled { box-shadow: 0 6px 28px rgba(23,31,48,.08); }
.header.row { display: flex; flex-wrap: nowrap; padding: 0 24px; height: var(--header-height); }
.header-left { flex: 1 1 54%; max-width: 54%; padding: 0; }
.header-left .logo { padding: 0; flex: 0 0 64px; max-width: 64px; }
.header-left .logo img { width: 64px; height: auto; }
.header-left .company { flex: 1; max-width: none; padding: 0 0 0 14px; }
.header-left .company h1 { font-size: clamp(14px,1.3vw,19px); font-weight: 650; color: var(--brand); line-height: 1.5; margin-bottom: 3px; }
.header-left .company h5 { font-size: 10px; color: var(--muted); line-height: 1.5; letter-spacing: .1px; }
.header-nav { flex: 0 0 46%; max-width: 46%; padding: 0; }
.header-nav .main-menu { margin: 0; justify-content: flex-end; gap: clamp(3px,1vw,16px); line-height: 52px; }
.header-nav .main-menu > .menu-item > a { position: relative; padding: 0 10px; white-space: nowrap; font-size: 14px; font-weight: 500; }
.header-nav .main-menu a,
.header-nav .main-menu a:hover,
.header-nav .main-menu a:focus { text-decoration: none; }
.header-nav .main-menu > .menu-item > a:hover,
.header-nav .main-menu > .menu-item > a[aria-current="page"] { color: var(--brand); }
.header-nav .main-menu .submenu { border: 1px solid var(--line); padding: 8px; border-radius: 12px; box-shadow: 0 16px 40px #1d29301a; }
.header-nav .main-menu .menu-item:focus-within > .submenu { opacity: 1; visibility: visible; transform: translateY(0); }
.header-nav .main-menu .submenu > li { font-size: 14px; }
.header-nav .main-menu .submenu > li:hover { background: var(--brand); }
.scroll-progress { position: fixed; top: 0; left: 0; height: 3px; width: 100%; z-index: 110; background: linear-gradient(90deg,var(--brand-dark),#ed6670); transform: scaleX(0); transform-origin: left; pointer-events: none; }

/* Existing banner: restrained depth, softer crossfade and readable type. */
.home-slider { position: relative; max-height: none; background: #202c3e; overflow: hidden; }
.slider-item .slider-inner { display: block; padding: 0; height: clamp(340px,34vw,540px); }
.slider-item .slider-inner .slider-bg {
  max-height: none; background-size: cover; background-position: center;
  transform: translate3d(0,var(--hero-y,0px),0) scale(1.06);
}
.slider-bg::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(12,23,38,.7),rgba(12,23,38,.22) 57%,rgba(12,23,38,.03)); }
.slider-item .slider-inner .slider-bg .slider-content { left: max(6.25vw,calc((100vw - 1120px)/2)); bottom: 25%; padding: 0; max-width: 78%; }
.slider-item .slider-inner .slider-bg .slider-content p { font-size: clamp(36px,4.4vw,68px); font-weight: 650; letter-spacing: -.025em; line-height: 1.12; margin-bottom: 20px; text-shadow: 0 2px 20px #10203633; }
.slider-item .slider-inner .slider-bg .slider-content pre { font-family: inherit; font-size: clamp(16px,1.7vw,24px); line-height: 1.65; white-space: pre-wrap; }
.slick-active .slider-content { animation: banner-enter .85s var(--ease) both; }
@keyframes banner-enter { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
#slider-nav { position: relative; left: auto; bottom: auto; transform: none; justify-content: center; align-items: center; height: 40px; margin: -52px auto 12px; gap: 4px; width: max-content; max-width: calc(100% - 100px); }
#slider-nav li { display: block; width: auto; height: auto; border: 0; background: none; border-radius: 0; }
#slider-nav li button { display: block; position: relative; width: 28px; height: 36px; padding: 0; background: transparent; cursor: pointer; font-size: 0; transition: width .4s var(--ease); }
#slider-nav li button::after { content: ''; position: absolute; left: 8px; right: 8px; top: 16px; height: 4px; background: #ffffff80; border-radius: 4px; transition: background .3s ease; }
#slider-nav li.slick-active button { width: 52px; }
#slider-nav li.slick-active button::after { background: #fff; }
.slider-toggle { position: absolute; z-index: 12; bottom: 14px; right: 24px; min-width: 44px; min-height: 40px; padding: 8px 12px; color: #fff; border: 1px solid #ffffff66; background: #15203466; cursor: pointer; border-radius: 20px; font-size: 12px; }
.slider-toggle:hover { background: #152034bb; }
.home-nav { padding: 24px 14px 12px; align-items: stretch; flex-wrap: wrap; }
.home-nav > div { min-width: 0; max-width: none; margin-top: 20px; padding: 0 12px; }
.home-nav-item { position: relative; isolation: isolate; border: 1px solid #e4e7ed; border-radius: 14px; box-shadow: 0 4px 18px #202a3e05; overflow: hidden; transition: transform .45s var(--ease),box-shadow .45s var(--ease),border-color .3s; }
.home-nav-item::before { content: ''; pointer-events: none; position: absolute; inset: 0; z-index: -1; opacity: 0; background: radial-gradient(360px circle at var(--pointer-x,50%) var(--pointer-y,0%),#c824320c,transparent 72%); transition: opacity .35s; }
.home-nav-item .title { padding: 22px 24px 19px; font-size: 19px; border-color: var(--line); letter-spacing: .02em; }
.home-nav-item .title::before { content: ''; position: absolute; width: 3px; height: 18px; left: 0; top: 27px; border-radius: 0 3px 3px 0; background: var(--brand); }
.home-nav-item .title a { right: 22px; border: 0; color: var(--brand); font-size: 11px; letter-spacing: .03em; transition: transform .3s var(--ease); }
.home-nav-item .title a:hover { transform: translateX(3px); }
.home-nav-item .menu { padding: 12px 24px 22px; }
.home-nav-item .menu p { display: flex; align-items: center; padding: 12px 0; width: 100%; min-width: 0; margin: 0; border-bottom: 1px solid var(--line); font-size: 15px; }
.home-nav-item .menu p:last-child { border-bottom: 0; }
.home-nav-item .menu p i { width: 30px; height: 30px; line-height: 30px; border-radius: 8px; background: #c8243209; color: var(--brand); font-size: 14px; }
.home-nav-item .menu p a { flex: 1; margin-left: 12px; transition: color .25s,transform .3s var(--ease); }
.home-nav-item .menu p a:hover { color: var(--brand); transform: translateX(4px); }
.home-nav-item ul.menu { padding: 12px 24px 22px; }
.home-nav-item ul.menu li { border-bottom: 1px solid var(--line); padding: 12px 0; margin: 0; list-style: none; font-size: 13px; line-height: 1.8; }
.home-nav-item ul.menu a { transition: color .25s; }
.home-nav-item ul.menu a:hover { color: var(--brand); }

/* Internal pages keep their original sidebar/content arrangement. */
.main-header { height: 112px; line-height: 112px; font-size: 26px; font-weight: 600; letter-spacing: .09em; background: linear-gradient(115deg,#951e2a,#c82432 65%,#d33d47); position: relative; overflow: hidden; }
.main-header::after { content: ''; position: absolute; width: 230px; height: 230px; right: 12%; top: -95px; border: 1px solid #ffffff20; border-radius: 40px; transform: rotate(35deg); box-shadow: 0 0 0 32px #ffffff05,0 0 0 64px #ffffff04; pointer-events: none; }
.main-container { padding: 24px 32px 0; }
.breadcrumb,.main-breadcrumb { font-size: 13px; padding: 4px 2px 18px; margin-bottom: 0; line-height: 1.8; }
.breadcrumb a { color: var(--brand); }
.main-content-container { border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 8px 32px #202a3e04; }
.main-content-container .main-sidebar { padding: 0 12px; }
.main-content-container .main-content { padding: 12px 28px 28px; overflow-x: auto; }
.ns-vertical-menu-item,.ns-vertical-menu-submenu-title { height: auto; min-height: 42px; line-height: 1.6; padding-top: 10px; padding-bottom: 10px; padding-right: 12px; font-size: 14px; transition: color .25s,background .25s,box-shadow .25s; }
.ns-vertical-menu-item:hover,.ns-vertical-menu-submenu-title:hover { background: #fbedef; color: var(--brand); }
.ns-vertical-menu-item.active { background: var(--brand); color: #fff; box-shadow: 0 4px 12px #c8243220; }
.ns-vertical-menu-submenu-title::after { content: '+'; float: right; color: inherit; }
.ns-vertical-menu-submenu.opened > .ns-vertical-menu-submenu-title::after { content: '−'; }
.ns-vertical-menu-submenu > .ns-vertical-menu-sub { overflow: hidden; }
.ns-table { border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.ns-table thead tr th,.scheme-content table th { background: var(--brand); padding: 13px 10px; font-weight: 500; }
.ns-table tbody tr td { padding: 12px 10px; border-bottom: 1px solid #eef0f4; }
.ns-table tbody tr { transition: background .2s; }
.ns-table tbody tr:nth-of-type(odd) { background: #fafafb; }
.ns-table tbody tr:hover { background: #fff0f1; }
.about-content { padding: 12px 36px; }
.ns-block-item { border-bottom: 1px solid var(--line); margin-bottom: 36px; padding-bottom: 20px; }
.ns-block-item .title { border-bottom: 1px solid var(--line); padding: 0 0 18px; font-size: 22px; }
.ns-block-item .content { color: #586170; margin-top: 24px; padding-bottom: 16px; line-height: 2; }
.scheme-content .desc,.scheme-content ul li { color: #586170; }
.scheme-content h2,.sample-content h2 { font-size: 22px; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.scheme-content .images img { border-radius: 8px; }
.contact-box { background: #f9f6f6; border: 1px solid #f0e4e6; border-radius: 12px; padding: 28px; }
.contact-box strong { color: var(--brand); }
.news-list { padding: 0; margin: 0; }
.news-list li { padding: 20px 16px; border-bottom: 1px solid var(--line); border-radius: 6px; transition: background .25s,color .25s; }
.news-list li:hover { background: #fdf4f5; color: var(--brand); }
.news-article { padding-top: 52px; }
.news-article h4 { line-height: 1.6; }
.news-article .body { line-height: 1.95; }
.sample-content { padding: 16px 24px 32px; }
.form-group { margin-bottom: 22px; }
.form-group label { color: #465061; font-size: 13px; }
.form-group input,.form-group textarea,.form-group select { padding: 12px 14px; border-radius: 8px; background: #fafbfc; border-color: #dfe3e9; transition: background .2s,border-color .2s,box-shadow .2s; }
.form-group input:focus,.form-group textarea:focus,.form-group select:focus { background: #fff; border-color: var(--brand); box-shadow: 0 0 0 4px #c824320c; }
.submit-btn,button.primary,a.link { background: var(--brand); border-radius: 8px; transition: background .25s,transform .25s,box-shadow .25s; }
.submit-btn { padding: 13px 32px; }
.submit-btn:hover,button.primary:hover,a.link:hover { background: var(--brand-dark); box-shadow: 0 6px 18px #c8243226; transform: translateY(-2px); }
.back-btn,button.normal { border-radius: 7px; transition: background .25s,color .25s; }
.foot { background: #202631; color: #b7bfcc; margin-top: 0; padding: 30px 20px 24px; font-size: 12px; border-top: 3px solid #c82432; }
.foot a,.foot a p { color: #aeb7c7; }
.foot a:hover,.foot a:hover p { color: #fff; }
.foot > div { margin-top: 14px; }
.back-to-top { position: fixed; bottom: 28px; right: 24px; z-index: 90; width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--line); box-shadow: 0 4px 18px #20263114; background: #fff; color: var(--brand); font-size: 24px; line-height: 1; cursor: pointer; transition: background .25s,transform .25s; }
.back-to-top[hidden] { display: none; }
.back-to-top:hover { background: #fff3f4; transform: translateY(-3px); }
.reveal-pending { opacity: 0; transform: translateY(22px); }
.reveal-in { animation: section-enter .7s var(--ease) both; animation-delay: var(--reveal-delay,0ms); }
@keyframes section-enter { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: translateY(0); } }
@media (hover:hover) and (pointer:fine) {
  .home-nav-item:hover { transform: translateY(-6px); box-shadow: 0 16px 36px #202a3e0d; border-color: #dfb5bc; }
  .home-nav-item:hover::before { opacity: 1; }
}
@media (max-width: 991px) {
  :root { --header-height: 126px; }
  header { display: block; }
  .header.row { flex-wrap: wrap; align-content: center; gap: 4px; padding: 10px 20px; }
  .header-left { flex: 0 0 100%; max-width: 100%; }
  .header-left .logo { flex-basis: 44px; max-width: 44px; }
  .header-left .logo img { width: 44px; }
  .header-left .company h1 { font-size: 16px; }
  .header-left .company h5 { font-size: 9px; }
  .header-nav { flex: 0 0 100%; max-width: 100%; }
  .header-nav .main-menu { justify-content: space-between; line-height: 40px; gap: 0; }
  .header-nav .main-menu > .menu-item > a { font-size: 13px; padding: 0 8px; }
  .header-nav .main-menu .submenu { left: auto; right: 0; }
  .main-container { padding: 20px 20px 0; }
  .main-content-container .main-sidebar { float: none; width: 100%; height: auto; margin-bottom: 20px; }
  .main-content-container .main-content { margin-left: 0; padding: 12px 20px 24px; }
  .home-nav > div { padding: 0 7px; }
  .home-nav-item .title { padding-left: 16px; font-size: 17px; }
  .home-nav-item .title a { right: 12px; }
  .home-nav-item .menu,.home-nav-item ul.menu { padding-left: 16px; padding-right: 16px; }
}
@media (max-width: 600px) {
  :root { --header-height: 120px; }
  .header.row { padding: 8px 12px; }
  .header-left .company { padding-left: 10px; }
  .header-left .company h1 { font-size: 14px; }
  .header-left .company h5 { font-size: 8px; letter-spacing: 0; }
  .header-nav .main-menu > .menu-item > a { font-size: 12px; padding: 0 5px; }
  .slider-item .slider-inner { height: 340px; padding: 0; }
  .slider-item .slider-inner .slider-bg { display: block; background-position: center; }
  .slider-item .slider-inner .slider-bg .slider-content { position: absolute; left: 24px; bottom: 27%; margin: 0; max-width: calc(100% - 48px); }
  .slider-item .slider-inner .slider-bg .slider-content p { font-size: 38px; }
  .slider-item .slider-inner .slider-bg .slider-content pre { font-size: 16px; }
  .home-nav { padding: 16px 12px 0; }
  .home-nav > div { flex: 0 0 100%; width: 100%; padding: 0; margin-top: 16px; }
  .home-nav-item .title { padding-left: 24px; }
  .home-nav-item .menu,.home-nav-item ul.menu { padding-left: 24px; padding-right: 24px; }
  .main-header { height: 88px; line-height: 88px; font-size: 22px; }
  .main-container { padding: 16px 12px 0; }
  .about-content { padding: 8px 20px; }
  .sample-content { padding: 8px 20px 24px; }
  .main-content-container .main-content { padding: 8px 16px 24px; }
  .contact-box { padding: 18px; overflow-wrap: anywhere; }
  .ns-block-item .title { font-size: 20px; }
  .foot a { display: inline-flex; margin: 6px 5px; }
  .back-to-top { bottom: 18px; right: 14px; }
  main { padding-bottom: 40px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { animation-duration: .01ms !important; animation-delay: 0ms !important; transition-duration: .01ms !important; }
  .reveal-pending { opacity: 1; transform: none; }
  .slider-item .slider-inner .slider-bg { transform: none; }
}
@media print {
  header,.scroll-progress,.back-to-top,.slider-toggle { display: none; }
  main { margin-top: 0; }
  .reveal-pending { opacity: 1; transform: none; }
}

/* Catalog workspace: navigation stays put; each pane owns its scrolling. */
.catalog-page { height: 100vh; height: 100dvh; overflow: hidden; }
.catalog-page .page-container { display: flex; flex-direction: column; height: 100%; min-height: 0; padding-top: var(--header-height); }
.catalog-page main { flex: 1 1 0; display: flex; flex-direction: column; min-height: 0; height: auto; margin: 0; padding: 0; }
.catalog-page .main-header { flex: 0 0 auto; }
.catalog-page .main-container { flex: 1 1 0; display: flex; flex-direction: column; min-height: 0; height: auto; padding: 16px 32px; }
.catalog-page .breadcrumb { flex: 0 0 auto; padding-bottom: 14px; }
.catalog-page .main-content-container { flex: 1 1 0; display: grid; grid-template-columns: 260px minmax(0,1fr); min-height: 0; height: auto; padding: 0; overflow: hidden; }
.catalog-page .main-content-container .main-sidebar { float: none; width: auto; min-width: 0; height: 100%; min-height: 0; margin: 0; padding: 16px 10px; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; border-right: 1px solid var(--line); background: #fcfcfd; }
.catalog-page .main-content-container .main-content { position: relative; width: auto; min-width: 0; height: 100%; min-height: 0; margin: 0; padding: 0 20px 20px; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; scroll-padding-top: 88px; }
.catalog-page .main-sidebar,.catalog-page .main-content { scrollbar-width: thin; scrollbar-color: #c6cad3 transparent; }
.catalog-page .ns-table { overflow: visible; margin-top: 0; border-top: 0; }
.catalog-page .ns-table thead { position: sticky; top: 0; z-index: 4; background: var(--brand); box-shadow: 0 2px 0 #a31d2b; }
.catalog-page .ns-table thead tr th { background: var(--brand); }
.catalog-page .scheme-content > h2 { position: sticky; top: 0; z-index: 5; background: #fff; margin: 0 0 20px; padding: 18px 0; box-shadow: 0 1px 0 var(--line); }
.catalog-page .scheme-content .ns-table thead { top: 72px; }
.catalog-page .news-article { padding-top: 48px; }
.catalog-page .news-article h4 { position: sticky; top: 0; z-index: 4; padding: 14px 0; background: #fff; box-shadow: 0 1px 0 var(--line); }
.catalog-page .scheme-content,.catalog-page .news-article,.catalog-page .news-list { animation: none; transform: none; opacity: 1; }
.catalog-page footer { flex: 0 0 auto; }
.catalog-page .foot { padding: 6px 18px; border-top-width: 1px; font-size: 10px; line-height: 1.5; }
.catalog-page .foot a { vertical-align: middle; margin: 0 6px; }
.catalog-page .foot > div { display: inline-block; margin: 0 6px !important; line-height: 24px !important; }
.catalog-page .scroll-progress,.catalog-page .back-to-top { display: none; }
.ns-vertical-menu-submenu > .ns-vertical-menu-sub { display: none; transition: none; }
.ns-vertical-menu-submenu.opened > .ns-vertical-menu-sub { display: block; }
.ns-vertical-menu-submenu-title { display: flex; align-items: center; gap: 8px; text-align: left; background: transparent; font-family: inherit; }
.ns-vertical-menu-submenu-title::after { float: none; flex: 0 0 16px; margin-left: auto; text-align: center; }
.ns-vertical-menu-title { white-space: normal; overflow-wrap: anywhere; }
.catalog-page .ns-vertical-menu-item,.catalog-page .ns-vertical-menu-submenu-title { padding-left: calc(14px + var(--menu-depth,0) * 16px) !important; }
.category-icon { flex: 0 0 32px; display: inline-flex; width: 32px; height: 32px; align-items: center; justify-content: center; border-radius: 8px; background: #c8243209; }
.category-icon img { display: block; width: 21px; height: 21px; }
@media (max-width: 991px) {
  .catalog-page .main-container { padding: 12px 16px; }
  .catalog-page .main-content-container { grid-template-columns: 220px minmax(0,1fr); }
  .catalog-page .main-content-container .main-content { padding: 0 14px 16px; }
  .catalog-page .main-header { height: 80px; line-height: 80px; }
}
@media (max-width: 600px) {
  .catalog-page .main-container { padding: 10px 8px; }
  .catalog-page .main-content-container { grid-template-columns: minmax(110px,35%) minmax(0,1fr); }
  .catalog-page .main-content-container .main-sidebar { padding: 8px 2px; }
  .catalog-page .main-content-container .main-content { padding: 0 8px 12px; }
  .catalog-page .ns-vertical-menu-item,.catalog-page .ns-vertical-menu-submenu-title { font-size: 12px; padding-left: calc(6px + var(--menu-depth,0) * 7px) !important; padding-right: 6px; }
  .catalog-page .main-header { height: 56px; line-height: 56px; font-size: 20px; }
  .catalog-page .breadcrumb { font-size: 11px; padding-bottom: 8px; }
  .catalog-page .foot { padding: 3px 6px; font-size: 9px; }
  .catalog-page .foot a { margin: 0 3px; }
  .catalog-page .foot > div { line-height: 18px !important; }
  .catalog-page .scheme-content > h2 { font-size: 18px; }
}
@media (max-height: 640px) and (min-width: 601px) {
  .catalog-page .main-header { height: 56px; line-height: 56px; }
  .catalog-page .main-container { padding-top: 8px; padding-bottom: 8px; }
}
@media print {
  .catalog-page { height: auto; overflow: visible; }
  .catalog-page .page-container { height: auto; display: block; padding-top: 0; }
  .catalog-page main,.catalog-page .main-container,.catalog-page .main-content-container { height: auto; display: block; overflow: visible; }
  .catalog-page .main-content-container .main-content { height: auto; overflow: visible; }
  .catalog-page .main-content-container .main-sidebar { display: none; }
}

/* Visual finish: consistent surfaces, geometry and interaction states. */
:root {
  --brand: #bc2637;
  --brand-dark: #961d2e;
  --brand-soft: #f9e9ec;
  --brand-hover: #fcf2f4;
  --brand-line: #edc5ce;
  --ink: #28313e;
  --muted: #687381;
  --line: #e7e9ee;
  --radius-panel: 16px;
  --radius-card: 14px;
  --radius-control: 10px;
  --radius-item: 8px;
  --shadow-surface: 0 2px 4px #20293603, 0 10px 30px #20293606;
  --shadow-raised: 0 4px 8px #20293604, 0 18px 36px #2029360d;
}
body { text-rendering: optimizeLegibility; }
.page-container { background: #f6f7f9; }
::selection { color: #791a2a; background: #f2d4dc; }
:where(a,button,input,textarea,select,[tabindex]):focus-visible { outline: 2px solid var(--brand) !important; outline-offset: 3px; }
header { border-bottom-color: #e9e9ee; }
.header-left .company h1 { letter-spacing: .01em; }
.header-left .company h5 { color: #677383; }
.header-nav .main-menu > .menu-item > a { border-radius: var(--radius-control); line-height: 44px; transition: background-color .2s,color .2s; }
.header-nav .main-menu > .menu-item > a:hover { background: #f6f7f9; }
.header-nav .main-menu > .menu-item > a[aria-current="page"] { color: var(--brand-dark); background: var(--brand-hover); }
.header-nav .main-menu .submenu { padding: 6px; border-radius: 12px; box-shadow: var(--shadow-raised); }
.header-nav .main-menu .submenu > li { border-radius: var(--radius-item); margin: 3px; }
.header-nav .main-menu .submenu > li:hover,
.header-nav .main-menu .submenu > li:focus-within { background: var(--brand-hover); color: var(--brand-dark); }
.main-header { background: linear-gradient(112deg,#8e2131 0%,#b9263a 60%,#cc4051 100%); font-weight: 600; letter-spacing: .14em; text-shadow: 0 1px 2px #54101a14; }
.main-header::after { border-color: #ffffff16; box-shadow: 0 0 0 32px #ffffff04,0 0 0 64px #ffffff03; }
.breadcrumb,.main-breadcrumb { color: #687483; font-size: 12px; }
.breadcrumb a,.main-breadcrumb a { color: #6d7785; transition: color .18s; }
.breadcrumb a:hover,.main-breadcrumb a:hover { color: var(--brand); }
#breadcrumb-path a:last-child { color: var(--brand-dark); font-weight: 500; }
.main-content-container { border-radius: var(--radius-panel); border-color: var(--line); box-shadow: var(--shadow-surface); }

/* The parent, hovered item and selected leaf remain visually distinct. */
.catalog-page .main-content-container .main-sidebar { background: #fbfbfc; border-right-color: #e9ebef; }
.ns-vertical-menu-item,.ns-vertical-menu-submenu-title {
  position: relative; border: 1px solid transparent; border-radius: var(--radius-item);
  color: #566171; font-weight: 400; background: transparent;
  transition: color .18s,background-color .18s,border-color .18s,box-shadow .18s;
}
.ns-vertical-menu > .ns-vertical-menu-item,
.ns-vertical-menu > .ns-vertical-menu-submenu > .ns-vertical-menu-submenu-title { color: #343f4e; font-weight: 550; }
.ns-vertical-menu-item:hover,.ns-vertical-menu-submenu-title:hover { background: #f0f1f4; color: var(--ink); border-color: transparent; }
.ns-vertical-menu-submenu.opened > .ns-vertical-menu-submenu-title { color: #28313e; background: #f3f4f6; }
.ns-vertical-menu-submenu.contains-selection > .ns-vertical-menu-submenu-title { color: var(--brand-dark); }
.ns-vertical-menu-item.active,
.ns-vertical-menu-item.active:hover,
.ns-vertical-menu-item.active:focus-visible {
  color: var(--brand-dark); background: var(--brand-soft); border-color: var(--brand-line);
  font-weight: 600; box-shadow: inset 3px 0 0 var(--brand);
}
.ns-vertical-menu-item:active:not(.active),.ns-vertical-menu-submenu-title:active { background: #e9ebf0; }
.ns-vertical-menu-submenu-title::after {
  content: ''; flex: 0 0 6px; width: 6px; height: 6px; border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor; transform: rotate(-45deg); margin-right: 3px;
  opacity: .55; transition: transform .2s ease,opacity .2s;
}
.ns-vertical-menu-submenu.opened > .ns-vertical-menu-submenu-title::after { content: ''; transform: rotate(45deg); opacity: .9; }
.ns-vertical-menu-title { line-height: 1.65; }

/* Sticky table headers keep an opaque surface; no clipping wrapper is added. */
.ns-table { border-radius: var(--radius-control); border-color: #e5e8ee; border-spacing: 0; font-variant-numeric: tabular-nums; }
.ns-table thead tr th,.scheme-content table th,.catalog-page .ns-table thead tr th {
  background: #f1f3f6; color: #394557; font-weight: 600; padding: 14px 12px;
  border-right: 1px solid #e4e7ed; border-bottom: 1px solid #dce1e9; line-height: 1.6;
}
.catalog-page .ns-table thead { background: #f1f3f6; box-shadow: 0 2px 4px #20293608; }
.ns-table thead tr th:first-child { border-top-left-radius: var(--radius-control); border-start-start-radius: var(--radius-control); }
.ns-table thead tr th:last-child { border-top-right-radius: var(--radius-control); border-start-end-radius: var(--radius-control); border-right: 0; }
.ns-table thead tr th > div { color: #616d7b; font-size: 11px; font-weight: 400; letter-spacing: .015em; }
.ns-table tbody tr { background: #fff; }
.ns-table tbody tr:nth-of-type(odd) { background: #fafbfc; }
.ns-table tbody tr td { padding: 13px 12px; border-color: #eef0f4; color: #515d6e; transition: background-color .18s,color .18s,box-shadow .18s; }
.ns-table tbody tr td:first-child { font-weight: 600; color: #313e50; }
.ns-table tbody tr td:last-child { border-right: 0; }
.ns-table tbody tr:hover { background: #fcf1f4; }
.ns-table tbody tr:hover td:first-child { color: var(--brand-dark); box-shadow: inset 2px 0 0 var(--brand); }
.ns-table tbody tr:last-child td { border-bottom: 0; }
.ns-table tbody tr:last-child td:first-child { border-bottom-left-radius: var(--radius-control); }
.ns-table tbody tr:last-child td:last-child { border-bottom-right-radius: var(--radius-control); }
.ns-table tbody tr.is-empty { background: #fafbfc; }
.empty-text { color: #7d8795; font-size: 14px; }

/* Home cards: a clear title, quiet rows and consistent icon tiles. */
.home-nav-item { border-radius: var(--radius-card); border-color: var(--line); box-shadow: var(--shadow-surface); }
.home-nav-item .title { color: #303b4b; font-size: 18px; font-weight: 600; letter-spacing: .04em; border-color: #edf0f3; background: linear-gradient(180deg,#fff,#fdfdfe); }
.home-nav-item .title::before { height: 16px; top: 28px; width: 3px; }
.home-nav-item .title a { color: #7a5260; font-size: 11px; font-weight: 400; border-radius: 6px; padding: 2px 6px; line-height: 20px; margin-top: -12px; }
.home-nav-item .title a::after { content: ' →'; display: inline-block; transition: transform .2s; }
.home-nav-item .title a:hover { background: var(--brand-hover); color: var(--brand-dark); transform: none; }
.home-nav-item .title a:hover::after { transform: translateX(2px); }
.home-nav-item .menu p { padding: 9px 8px; border: 1px solid transparent; border-bottom-color: #eef0f4; border-radius: var(--radius-item); transition: background-color .2s,border-color .2s; }
.home-nav-item .menu p:last-child { border-bottom: 1px solid transparent; }
.home-nav-item .menu p:hover,.home-nav-item .menu p:focus-within { background: var(--brand-hover); border-color: #f4dfe5; }
.home-nav-item .menu p a { position: relative; padding: 4px 14px 4px 0; color: #465264; font-size: 14px; line-height: 1.7; transition: color .2s; }
.home-nav-item .menu p a:hover { transform: none; color: var(--brand-dark); }
.home-nav-item .menu p a::after { content: '›'; position: absolute; right: 0; top: 2px; color: #a2a9b4; font-size: 19px; transition: color .2s,transform .2s; }
.home-nav-item .menu p:hover a::after { color: var(--brand); transform: translateX(2px); }
.category-icon { border: 1px solid #f0dfe3; background: #faf0f3; border-radius: var(--radius-control); transition: background-color .2s,border-color .2s; }
.home-nav-item .menu p:hover .category-icon { background: #f4dce3; border-color: #e9bfc9; }
.home-nav-item ul.menu li { color: #536071; line-height: 1.8; border-bottom-color: #edf0f4; }
.home-nav-item ul.menu a { display: block; text-overflow: ellipsis; overflow: hidden; }
.home-nav-item ul.menu a:hover { color: var(--brand-dark); }
.slider-toggle { border-color: #ffffff50; background: #17243880; transition: background-color .2s,border-color .2s; }
.slider-toggle:hover { background: #172438cc; border-color: #ffffffaa; }
.slider-toggle:active { background: #172438; }
#slider-nav li button::after { transition: background .2s,box-shadow .2s; }
#slider-nav li button:hover::after { background: #fff; box-shadow: 0 0 0 3px #ffffff18; }

/* Forms, secondary actions and prose use the same corner and focus language. */
.form-group label { font-weight: 550; color: #475363; letter-spacing: .02em; }
.form-group input,.form-group textarea,.form-group select { border-color: #dfe3ea; border-radius: var(--radius-control); background: #fbfcfd; color: var(--ink); box-shadow: inset 0 1px 2px #25324903; }
.form-group input::placeholder,.form-group textarea::placeholder { color: #687583; font-size: 13px; }
.form-group input:hover,.form-group textarea:hover,.form-group select:hover { border-color: #bfc7d2; }
.form-group input:focus,.form-group textarea:focus,.form-group select:focus { border-color: var(--brand); background: #fff; box-shadow: 0 0 0 3px #bc26370d; }
.form-group input:focus-visible,.form-group textarea:focus-visible,.form-group select:focus-visible { outline: 0 !important; }
.form-group textarea { resize: vertical; min-height: 100px; }
.submit-btn,button.primary,a.link { border: 1px solid #a52132; border-radius: var(--radius-control); background: linear-gradient(180deg,#c73143,#ad2335); box-shadow: 0 2px 3px #65142312,inset 0 1px 0 #ffffff16; font-weight: 500; letter-spacing: .025em; }
.submit-btn:hover,button.primary:hover,a.link:hover { background: linear-gradient(180deg,#b8273a,#991d2e); box-shadow: 0 4px 12px #9e203225; transform: translateY(-1px); }
.submit-btn:active,button.primary:active,a.link:active { transform: translateY(0); background: var(--brand-dark); box-shadow: inset 0 2px 3px #64162420; }
.back-btn,button.normal { border: 1px solid #e2c4cc; border-radius: var(--radius-item); background: #fff; color: var(--brand-dark); padding: 7px 14px; }
.back-btn:hover,button.normal:hover,button.normal:focus { background: var(--brand-hover); border-color: #dca5b3; color: var(--brand-dark); }
button:disabled { cursor: not-allowed; opacity: .5; box-shadow: none; transform: none; }
.ns-block-item .title,.sample-content h2,.scheme-content h2 { color: #303d4e; font-weight: 600; letter-spacing: .025em; }
.ns-block-item .content,.scheme-content .desc { color: #626c7b; line-height: 2.05; }
.catalog-page .scheme-content > h2,.catalog-page .news-article h4 { border-bottom-color: var(--line); box-shadow: 0 1px 0 #e7e9ee; }
.scheme-content h3,.ns-block-item .content h3 { color: #3b4758; font-weight: 600; }
.scheme-content .images img { border: 1px solid #eceef2; border-radius: 12px; background: #fff; }
.contact-box { border-radius: 12px; border-color: #e8e2e6; background: linear-gradient(130deg,#fcf6f8,#fafbfc); box-shadow: inset 3px 0 0 #e2b5c0; }
.contact-box strong { color: #824455; font-weight: 600; }
.news-list li { border-radius: var(--radius-item); border-color: #edf0f4; margin: 3px 0; transition: background-color .18s,color .18s,box-shadow .18s; }
.news-list li:hover,.news-list li:focus-visible { background: var(--brand-hover); color: var(--brand-dark); box-shadow: inset 2px 0 0 #d27c91; }
.news-list li:active { background: var(--brand-soft); }
.news-article .date { color: #697584; font-size: 12px; letter-spacing: .02em; }
.back-to-top { border-radius: 12px; color: var(--brand); border-color: #e3e6ec; box-shadow: var(--shadow-surface); }
.back-to-top:hover { border-color: var(--brand-line); background: var(--brand-hover); }
.foot { background: #252d39; color: #b3bdcb; border-top-color: #aa2a3c; }
.foot a,.foot a p { color: #9eabba; transition: color .2s; }
.catalog-page .foot { background: #f2f4f7; color: #626f80; border-top-color: #e3e7ed; }
.catalog-page .foot a,.catalog-page .foot a p { color: #626f80; }
.catalog-page .foot a:hover,.catalog-page .foot a:hover p { color: #424f62; }
.catalog-page .main-sidebar,.catalog-page .main-content { scrollbar-color: #cbd0d9 transparent; }
.catalog-page .main-sidebar::-webkit-scrollbar,.catalog-page .main-content::-webkit-scrollbar { width: 7px; height: 7px; }
.catalog-page .main-sidebar::-webkit-scrollbar-thumb,.catalog-page .main-content::-webkit-scrollbar-thumb { background: #cbd0d9; border: 2px solid #fbfbfc; border-radius: 8px; }
.catalog-page .main-sidebar::-webkit-scrollbar-thumb:hover,.catalog-page .main-content::-webkit-scrollbar-thumb:hover { background: #aeb6c4; }
@media (hover:hover) and (pointer:fine) {
  .home-nav-item:hover { transform: translateY(-3px); border-color: #e5ccd4; box-shadow: var(--shadow-raised); }
}
@media (max-width:600px) {
  .header-nav .main-menu > .menu-item > a { line-height: 40px; border-radius: 7px; }
  .home-nav-item .title { font-size: 17px; }
  .catalog-page .main-content-container { border-radius: 12px; }
  .catalog-page .ns-vertical-menu-item,.catalog-page .ns-vertical-menu-submenu-title { border-radius: 6px; }
  .ns-table thead tr th,.scheme-content table th,.catalog-page .ns-table thead tr th { padding: 12px 10px; }
  .ns-table tbody tr td { padding: 12px 10px; }
}
@media (prefers-reduced-motion:reduce) {
  .home-nav-item:hover,.submit-btn:hover,button.primary:hover,a.link:hover,.back-to-top:hover { transform: none; }
}
