/* Source-backed articles, news, reference, price and door pages. */
body.category .xoo-wsc-markup,
body.category .xoo-wsc-markup-notices,
body.single-post .xoo-wsc-markup,
body.single-post .xoo-wsc-markup-notices { display: none !important; }

.useful-archive { background: #f5f6f6; }
.useful-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.useful-card { display: flex; min-width: 0; min-height: 100%; flex-direction: column; border: 1px solid #dfe2e2; background: #fff; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.useful-card:hover { border-color: var(--nort-yellow); box-shadow: 0 18px 42px rgba(11,13,13,.11); transform: translateY(-3px); }
.useful-card__media { display: block; overflow: hidden; background: #1b1d1d; }
.useful-card__media img,
.useful-card__placeholder { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .42s ease; }
.useful-card:hover .useful-card__media img { transform: scale(1.035); }
.useful-card__placeholder { background: linear-gradient(135deg, #121414, #333737); }
.useful-card__body { display: flex; flex: 1; flex-direction: column; padding: 25px; }
.useful-card time { color: #b17800; font-size: 12px; font-weight: 700; letter-spacing: .06em; }
.useful-card h2 { margin: 13px 0 14px; font-size: 21px; font-weight: 500; line-height: 1.28; }
.useful-card h2 a { color: #1d2020; text-decoration: none; }
.useful-card h2 a:hover { color: #9f6b00; }
.useful-card p { margin: 0 0 24px; color: #666a6b; font-size: 14px; line-height: 1.65; }
.useful-card__more { display: inline-flex; align-items: center; gap: 7px; width: fit-content; margin-top: auto; color: #171919; font-size: 13px; font-weight: 700; text-decoration: none; }
.useful-card__more .dashicons { color: #c88700; font-size: 17px; transition: transform .2s ease; }
.useful-card__more:hover .dashicons { transform: translateX(3px); }
.useful-pagination { margin-top: 44px; }
.useful-pagination ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.useful-pagination a,
.useful-pagination .current { display: flex; width: auto; min-width: 42px; height: 42px; align-items: center; justify-content: center; padding-inline: 14px; white-space: nowrap; border: 1px solid #d9dddd; background: #fff; color: #333737; font-weight: 700; text-decoration: none; }
.useful-pagination .current { border-color: #171919; background: #171919; color: #fff; }

.knowledge-single { padding-block: clamp(54px, 7vw, 92px); background: #fff; }
.knowledge-single__layout { max-width: 1020px; }
.knowledge-article__meta { margin-bottom: 24px; color: #b17800; font-size: 13px; font-weight: 700; letter-spacing: .06em; }
.knowledge-article__cover { width: 100%; margin: 0 0 46px; padding: 0; overflow: hidden; border: 0; background: #eef0f0; cursor: zoom-in; }
.knowledge-article__cover img { display: block; width: 100%; max-height: 590px; object-fit: cover; }
.knowledge-source-content { color: #4f5354; font-size: 17px; line-height: 1.75; }
.knowledge-source-content > :first-child { margin-top: 0; }
.knowledge-source-content > :last-child { margin-bottom: 0; }
.knowledge-source-content h2,
.knowledge-source-content h3,
.knowledge-source-content h4 { margin: 42px 0 18px; color: #191b1b; font-weight: 500; line-height: 1.2; }
.knowledge-source-content h2 { font-size: clamp(28px, 3vw, 40px); }
.knowledge-source-content h3 { font-size: clamp(23px, 2.2vw, 31px); }
.knowledge-source-content h4 { font-size: 21px; }
.knowledge-source-content p { margin: 0 0 20px; }
.knowledge-source-content ul,
.knowledge-source-content ol { margin: 20px 0 28px; padding-left: 24px; }
.knowledge-source-content li + li { margin-top: 9px; }
.knowledge-source-content img { max-width: 100%; height: auto; }
.knowledge-source-content a { color: #a66f00; text-decoration-color: var(--nort-yellow); text-underline-offset: 3px; }
.knowledge-source-content blockquote { margin: 34px 0; padding: 24px 28px; border-left: 3px solid var(--nort-yellow); background: #f3f4f4; color: #313535; }
.knowledge-source-content > h4:first-child { margin-top: 0; font-size: clamp(23px, 2.4vw, 30px); }
.knowledge-source-content > h4:first-child + h4 { margin-top: 0; }
.knowledge-source-content .article__item { margin: 0 0 24px; }
.knowledge-source-content .article__item:empty { display: none; }
.knowledge-source-content p:has(> a[data-project-image]) { display: flex; flex-wrap: wrap; gap: 18px; margin: 30px 0; }
.knowledge-source-content a[data-project-image] { display: inline-block; overflow: hidden; background: #eef0f0; cursor: zoom-in; }
.knowledge-source-content a[data-project-image] img { display: block; width: auto; height: 300px; max-width: 100%; object-fit: cover; transition: transform .3s ease; }
.knowledge-source-content a[data-project-image]:hover img { transform: scale(1.025); }
.knowledge-source-content .gallery { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin: 0 0 40px !important; }
.knowledge-source-content .gallery .gallery-item { width: auto !important; margin: 0 !important; float: none !important; }
.knowledge-source-content .gallery .gallery-icon { height: 100%; }
.knowledge-source-content .gallery a[data-project-image],
.knowledge-source-content .gallery img { width: 100%; height: 100%; }
.knowledge-source-content .gallery img { aspect-ratio: 4 / 3; object-fit: cover; }

.reference-page { background: #f5f6f6; }
.reference-index { display: grid; grid-template-columns: 1fr; gap: 0; border-top: 1px solid #dce0e0; counter-reset: reference; }
.reference-card { position: relative; min-height: 0; display: grid; grid-template-columns: 64px minmax(0, 1fr); padding: 27px 30px; border: 0; border-bottom: 1px solid #dce0e0; background: #fff; counter-increment: reference; }
.reference-card::before { content: counter(reference, decimal-leading-zero); display: block; margin: 4px 0 0; color: #d29200; font-size: 13px; font-weight: 700; letter-spacing: .08em; }
.reference-card h2 { margin: 0; color: #1c1f1f; font-size: 21px; font-weight: 500; line-height: 1.3; }
.reference-card h2 strong { font-weight: inherit; }
.reference-card h2 span { color: inherit !important; }
.reference-card a { color: inherit !important; text-decoration: none; }
.reference-card h2 a:hover { color: #9f6b00 !important; }
.reference-card ul { grid-column: 2; display: grid; gap: 10px; margin: 20px 0 0; padding: 18px 0 0; border-top: 1px solid #e3e6e6; list-style: none; }
.reference-card li { position: relative; padding-left: 18px; color: #5f6465; }
.reference-card li::before { content: ""; position: absolute; top: .72em; left: 0; width: 7px; height: 1px; background: var(--nort-yellow); }
.reference-card h5 { margin: 0; font-size: 14px; font-weight: 500; line-height: 1.45; }
.reference-card h5 span { color: inherit !important; }

.pricing-page { background: #fff; }
.pricing-summary { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 44px; padding: 25px 28px; border-left: 3px solid var(--nort-yellow); background: #f3f4f4; }
.pricing-summary h2 { margin: 0 0 8px; color: #1b1e1e; font-size: clamp(24px, 2.4vw, 34px); font-weight: 500; line-height: 1.25; }
.pricing-summary p { margin: 0; color: #626667; font-size: 15px; }
.pricing-download { display: inline-flex; min-height: 50px; flex: 0 0 auto; align-items: center; justify-content: center; padding: 12px 22px; border: 1px solid var(--nort-yellow); background: var(--nort-yellow); color: #111; font-size: 13px; font-weight: 700; text-decoration: none; text-transform: uppercase; transition: background-color .2s ease; }
.pricing-download:hover { background: #fff; color: #111; }
.pricing-heading { margin: 0 0 22px; color: #1b1e1e; font-size: clamp(22px, 2.2vw, 30px); font-weight: 500; line-height: 1.3; }
.pricing-table-wrap { max-width: 100%; overflow-x: auto; border: 1px solid #dfe2e2; }
.pricing-table { width: 100%; min-width: 760px; margin: 0; border-collapse: collapse; color: #3f4344; font-size: 14px; line-height: 1.45; }
.pricing-table th,
.pricing-table td { padding: 14px 16px; border: 1px solid #e0e3e3; text-align: left; vertical-align: top; }
.pricing-table thead th { background: #181a1a; color: #fff; font-weight: 600; }
.pricing-table tbody .pricing-table__category th { padding: 16px; border-color: #181a1a; background: #eef0f0; color: #1b1e1e; font-size: 16px; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; }
.pricing-table tbody tr:nth-child(even) { background: #f7f8f8; }
.pricing-table tbody th { width: 48%; color: #242727; font-weight: 600; }
.pricing-table tbody th a { color: inherit; text-decoration: none; }
.pricing-table tbody th a:hover { color: #9f6b00; }
.pricing-table__price { width: 150px; color: #9f6800; font-weight: 700; white-space: nowrap; }
.pricing-note { margin: 34px 0 0; padding: 24px 28px; border-left: 3px solid var(--nort-yellow); background: #f3f4f4; color: #444849; font-size: 16px; line-height: 1.65; }
.pricing-source-content > p { margin: 0; }
.pricing-source-content .lead-block { margin: 0 0 32px; padding: 22px 26px; border-left: 3px solid var(--nort-yellow); background: #f3f4f4; }
.pricing-source-content .lead-block h2 { display: none; }
.pricing-source-content .lead-block p { margin: 0; color: #555a5b; font-size: 16px; }
.pricing-source-content .tabbed { margin: 0; }
.pricing-source-content ul.tabs { display: flex; margin: 0 0 20px; padding: 0; border: 0; list-style: none; }
.pricing-source-content ul.tabs li { margin: 0; padding: 0; }
.pricing-source-content ul.tabs a { display: block; color: #1b1e1e; font-size: clamp(20px, 2.2vw, 28px); font-weight: 500; line-height: 1.3; pointer-events: none; text-decoration: none; }
.pricing-source-content ul.tabs i { display: none; }
.pricing-source-content .tab-content { margin: 0; }
.pricing-source-content .btn.large.red { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; margin: 0 0 32px; padding: 12px 22px; border: 1px solid var(--nort-yellow); background: var(--nort-yellow); color: #111; font-size: 13px; font-weight: 700; text-decoration: none; }
.pricing-source-content .btn.large.red:hover { background: #fff; }
.pricing-source-content .btn i { display: none; }
.pricing-source-content .table { max-width: 100%; overflow-x: auto; border: 1px solid #dfe2e2; }
.pricing-source-content table { width: 100%; min-width: 980px; margin: 0; border-collapse: collapse; color: #3f4344; font-size: 13px; line-height: 1.45; }
.pricing-source-content th { padding: 15px 13px; background: #181a1a; color: #fff; font-weight: 600; text-align: left; }
.pricing-source-content td { padding: 13px; border: 1px solid #e0e3e3; vertical-align: top; }
.pricing-source-content tbody tr:nth-child(even) { background: #f7f8f8; }
.pricing-source-content td a { color: #8d6000; font-weight: 600; }
.pricing-source-content blockquote { margin-top: 34px; }

.doors-page { background: #fff; }
.doors-source-content { color: #55595a; font-size: 16px; line-height: 1.7; }
.doors-source-content > .columns:first-child { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-bottom: 68px; }
.doors-source-content > .columns:first-child .col3 { display: flex; min-width: 0; min-height: 100%; flex-direction: column; border: 1px solid #dfe2e2; background: #fff; transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.doors-source-content > .columns:first-child .col3:hover { border-color: var(--nort-yellow); box-shadow: 0 18px 40px rgba(11,13,13,.1); transform: translateY(-3px); }
.doors-source-content > .columns:first-child .col3 > p:first-child { margin: 0; overflow: hidden; background: #eef0f0; }
.doors-source-content > .columns:first-child .col3 img { display: block; width: 100%; height: auto; aspect-ratio: 5 / 3; object-fit: cover; transition: transform .4s ease; }
.doors-source-content > .columns:first-child .col3:hover img { transform: scale(1.035); }
.doors-source-content > .columns:first-child .col3 h3 { margin: 0; padding: 22px 22px 10px; color: #1b1e1e; font-size: 20px; font-weight: 500; line-height: 1.3; }
.doors-source-content > .columns:first-child .col3 h3 strong { font-weight: 600; }
.doors-source-content > .columns:first-child .col3 > p:last-child { margin: 0; padding: 0 22px 24px; color: #686c6d; font-size: 14px; }
.doors-source-content > .columns:not(:first-child) { width: 100%; max-width: none; margin-inline: 0; }
.doors-source-content > .columns:not(:first-child) h2 { margin: 0 0 30px; color: #191b1b; font-size: clamp(30px, 3.3vw, 46px); font-weight: 400; text-align: left !important; }
.doors-source-content > .columns:not(:first-child) h3 { margin: 42px 0 18px; color: #191b1b; font-size: 27px; font-weight: 500; }
.doors-source-content > .columns:not(:first-child) p { margin: 0 0 22px; }
.doors-source-content > .columns:not(:first-child) ul { margin: 22px 0 30px; padding: 26px 30px 26px 50px; background: #f4f5f5; }
.doors-source-content > .columns:not(:first-child) li + li { margin-top: 10px; }
.doors-source-content span { color: inherit !important; }

.source-detail-page { background: #fff; }
.source-detail-page .knowledge-source-content { max-width: 1080px; margin-inline: auto; }
.source-detail-page .vc_row,
.source-detail-page .columns { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 30px; }
.source-detail-page .vc_row { width: 100% !important; margin-inline: 0 !important; }
.source-detail-page .wpb_column,
.source-detail-page .col { width: auto !important; min-width: 0; }
.source-detail-page .vc_column-inner { padding: 0 !important; }
.source-detail-page .wpb_wrapper > :first-child { margin-top: 0; }
.source-detail-page .wpb_wrapper > :last-child { margin-bottom: 0; }
.source-detail-page .wpb_single_image { margin: 0 0 24px; }
.source-detail-page .wpb_single_image img { width: 100%; }
.source-detail-page--spravochnik .knowledge-source-content { max-width: none; }
.source-detail-page--spravochnik .vc_row,
.source-detail-page--spravochnik .columns { display: block; width: 100% !important; margin: 0 0 34px !important; }
.source-detail-page--spravochnik .wpb_column,
.source-detail-page--spravochnik .col { width: 100% !important; margin: 0 0 26px !important; float: none !important; }
.source-detail-page--spravochnik .wpb_column:last-child,
.source-detail-page--spravochnik .col:last-child { margin-bottom: 0 !important; }
.source-detail-page--spravochnik table { width: 100%; max-width: 100%; }
.source-detail-page--dverinort .knowledge-source-content { width: 100%; max-width: none; margin-inline: 0; }
.source-detail-page--dverinort .vc_row::before,
.source-detail-page--dverinort .vc_row::after { display: none; }
.source-detail-page--dverinort .vc_row > .vc_col-sm-12,
.source-detail-page--dverinort .vc_row > .vc_col-sm-8,
.source-detail-page--dverinort .vc_row > .vc_col-sm-8 ~ .vc_col-sm-4 {
  width: 100% !important;
  grid-column: 1 / -1;
  float: none !important;
}

@media (max-width: 900px) {
  .useful-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .doors-source-content > .columns:first-child { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .useful-grid,
  .reference-index,
  .doors-source-content > .columns:first-child { grid-template-columns: 1fr; }
  .useful-grid { gap: 20px; }
  .useful-card__body { padding: 21px; }
  .useful-card h2 { font-size: 19px; }
  .knowledge-article__cover { margin-bottom: 32px; }
  .knowledge-source-content { font-size: 16px; line-height: 1.7; }
  .knowledge-source-content .gallery { grid-template-columns: 1fr; gap: 14px; }
  .knowledge-source-content a[data-project-image] img { width: 100%; height: auto; max-height: 430px; }
  .reference-card { min-height: auto; grid-template-columns: 44px minmax(0, 1fr); padding: 23px 18px; }
  .reference-card ul { grid-column: 1 / -1; margin-left: 44px; }
  .pricing-source-content .table { margin-inline: -16px; }
  .pricing-summary { align-items: stretch; flex-direction: column; margin-bottom: 34px; padding: 22px 20px; }
  .pricing-download { align-self: flex-start; }
  .pricing-table-wrap { margin-inline: -16px; }
  .pricing-table { min-width: 680px; }
  .pricing-table th,
  .pricing-table td { padding: 12px; }
  .pricing-note { padding: 21px 20px; }
  .doors-source-content > .columns:first-child { gap: 18px; margin-bottom: 48px; }
  .doors-source-content > .columns:not(:first-child) ul { padding: 22px 20px 22px 40px; }
  .source-detail-page .vc_row,
  .source-detail-page .columns { grid-template-columns: 1fr; }
}
