@font-face {
    font-family: 'PT Root UI';
    src: url('../fonts/PTRootUI/PTRootUI-Light.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'PT Root UI';
    src: url('../fonts/PTRootUI/PTRootUI-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'PT Root UI';
    src: url('../fonts/PTRootUI/PTRootUI-Medium.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'PT Root UI';
    src: url('../fonts/PTRootUI/PTRootUI-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

/* Secondary font: IBM Plex Mono (from artstal) — opt-in via .ibm only, trying it out */
@font-face {
    font-family: 'IBM Plex Mono';
    src: url('../fonts/IBMplexMono/IBMPlexMono-Thin.woff2') format('woff2');
    font-weight: 100;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'IBM Plex Mono';
    src: url('../fonts/IBMplexMono/IBMPlexMono-ExtraLight.woff2') format('woff2');
    font-weight: 200;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'IBM Plex Mono';
    src: url('../fonts/IBMplexMono/IBMPlexMono-Light.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'IBM Plex Mono';
    src: url('../fonts/IBMplexMono/IBMPlexMono.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'IBM Plex Mono';
    src: url('../fonts/IBMplexMono/IBMPlexMono-Medium.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'IBM Plex Mono';
    src: url('../fonts/IBMplexMono/IBMPlexMono-SemiBold.woff2') format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'IBM Plex Mono';
    src: url('../fonts/IBMplexMono/IBMPlexMono-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

html {
    overflow-x: hidden;
}

body {
    overflow: clip;
}

/* Wider gutter than Cassiopeia's own 1em default below md — desktop reverts
   this in the breakpoints section at the top. */
html .container,
html .container-fluid {
    --gutter-x: 2.5rem;
}

/* ==========================================================================
   Breakpoints (Bootstrap 5 grid, already used by this project) — mobile-first.
   Prefer Bootstrap's own responsive utility classes in the markup first
   (d-none, d-lg-block, col-lg-*, text-lg-end, gap-*, etc.). Only when a
   custom rule truly needs a breakpoint, add it here — keep every @media in
   this one place, ordered smallest to largest, instead of scattering them
   through the file. Base (unmedia'd) rules elsewhere already hold the
   mobile value; these blocks only contain the "grow" overrides.
     sm: >=576px   md: >=768px   lg: >=992px   xl: >=1200px   xxl: >=1400px
   ========================================================================== */

/* Non-standard breakpoint (contact modal only) — kept as a documented
   exception rather than folded into sm, since 480px doesn't line up with
   any Bootstrap tier. */
@media (min-width: 349px) {
    .com-content-article__body .table-params td {
        padding: .2rem .1rem;
        border-bottom: 1px solid var(--tdzapad-border);
    }
}

@media (min-width: 480.02px) {
    html .tdzapad-modal .modal-header {
        padding: 1.75rem 1.75rem 0;
    }

    html .tdzapad-modal .modal-body {
        padding: 1.25rem 1.75rem 1.75rem;
    }

    html .tdzapad-form-submit {
        align-self: flex-start;
    }


}

@media (min-width: 576px) {
    html .tdzapad-product-page__perks {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    html .tdzapad-search-results {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    html .tdzapad-component:has(.tdzapad-category-hero) .mod-breadcrumbs__wrapper {
        max-width: 540px;
    }

    .tdzapad-product-page__field-content .table-params td,

}

@media (min-width: 768px) {

    .tdzapad-product-page__field-content .table-params td,
    .com-content-article__body .table-params td {
        padding: .8rem 1rem;
        border-bottom: 1px solid var(--tdzapad-border);
    }

    html .tdzapad-req-block {
        padding: 1.5rem 1.75rem;
        background: #fff;
        border: 1px solid var(--tdzapad-border);
        border-radius: var(--tdzapad-radius);
    }

    /* 5 cards in a 3-col wrap = a lone 2-card second row; center it. Needs
       flex-grow:0 (not the mobile 2-col rule's 1) — otherwise the 2
       leftover cards stretch to fill the row instead of leaving space for
       justify-content to center into. */
    html .tdzapad-advantages {
        justify-content: center;
    }

    html .tdzapad-advantages__item {
        flex: 0 1 calc(33.333% - .667rem);
    }

    /* Reveal the 5th card again from md up. Matches the base hide rule's
       :last-child so it can out-specificity it via the "html " prefix. */
    html .tdzapad-advantages__item:last-child {
        display: flex;
    }

    /* 3-col grid: undo the base 2-col rule's divider removal on even items
       first (out-specificities it via "html "), then remove it again only
       on the actual last column of each row — the 3rd card (end of row 1)
       and the last card (lone 2nd card of row 2). */
    html .tdzapad-advantages__item:nth-child(2n) {
        padding-right: 1rem;
        border-right: 1px solid var(--tdzapad-border);
    }

    html .tdzapad-advantages__item:nth-child(3n),
    html .tdzapad-advantages__item:last-child {
        padding-right: 0;
        border-right: 0;
    }

    html .tdzapad-about-home__process {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    html .tdzapad-article-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    html .container,
    html .container-fluid {
        --gutter-x: 1em;
    }

    html .tdzapad-catalog__header {
        gap: 1.25rem;
    }

    html .tdzapad-catalog__columns {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 1.5rem;
    }

    html .tdzapad-catalog__column {
        border-top: 0;
    }

    html .tdzapad-catalog__column a {
        font-size: .9375rem;
    }

    html .tdzapad-category-page__categories {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .75rem 1.5rem;
    }

    html .tdzapad-category-page__category {
        min-height: 4.5rem;
        font-size: 1rem;
    }

    html .tdzapad-category-page__intro {
        font-size: clamp(1rem, 1.35vw, 1.125rem);
        line-height: 1.55;
    }

    html .tdzapad-category-page__product {
        grid-template-columns: 2.75rem minmax(0, 1fr) auto;
        gap: 1rem;
        padding: 1.25rem;
    }

    html .tdzapad-category-page__product-diagram {
        width: 2.5rem;
        height: 2.5rem;
    }

    html .tdzapad-category-page__product-diagram::before {
        inset: .34rem;
    }

    html .tdzapad-category-page__product-diagram::after {
        width: .32rem;
        height: .32rem;
        box-shadow: -.48rem -.48rem 0 rgba(236, 31, 36, .65), .48rem -.48rem 0 rgba(236, 31, 36, .65), -.48rem .48rem 0 rgba(236, 31, 36, .65), .48rem .48rem 0 rgba(236, 31, 36, .65);
    }

    html .tdzapad-category-page__product-diagram i {
        width: .16rem;
        height: .16rem;
    }

    html .tdzapad-category-page__product-diagram i:nth-child(1) {
        top: .72rem;
        left: 1.17rem;
    }

    html .tdzapad-category-page__product-diagram i:nth-child(2) {
        top: 1.17rem;
        left: .72rem;
    }

    html .tdzapad-category-page__product-diagram i:nth-child(3) {
        right: .72rem;
        bottom: .72rem;
    }

    html .tdzapad-category-page__product h3 {
        font-size: 1.125rem;
    }

    html .tdzapad-category-page__product-link {
        justify-self: auto;
        gap: .75rem;
        font-size: .8rem;
    }

    html .tdzapad-consultation .tdzapad-form-actions {
        align-items: flex-start;
        flex-direction: row;
    }

    html .tdzapad-consultation .tdzapad-form-submit {
        align-self: auto;
        width: auto;
    }

    html .tdzapad-stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 2rem;
        text-align: inherit;
    }

    html .tdzapad-component:has(.tdzapad-category-hero) .mod-breadcrumbs__wrapper {
        max-width: 720px;
    }
}

@media (min-width: 992px) {
    html .tdzapad-product-page__perks {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    /* Reverts the <lg full-width fix above — back to the normal col-lg-3
       quarter now that the two link columns are visible again. */
    html .tdzapad-footer-main .row>div:has(.tdzapad-footer-contacts) {
        width: 25%;
    }

    html .tdzapad-footer-main>.row>[class*="col-"]+[class*="col-"] {
        padding-left: 2.5rem;
        border-left: 1px solid rgba(255, 255, 255, .12);
    }

    html .tdzapad-advantages {
        flex-wrap: nowrap;
    }

    html .tdzapad-advantages__item {
        flex: 1 1 0;
        min-width: 0;
        padding-right: 1rem;
        border-right: 1px solid var(--tdzapad-border);
    }

    /* Undo the md 3-col grid's divider removal on the 3rd card — at lg all
       5 sit in a single row, so it's a middle item again, not row-end. */
    html .tdzapad-advantages__item:nth-child(3n) {
        padding-right: 1rem;
        border-right: 1px solid var(--tdzapad-border);
    }

    html .tdzapad-advantages__item:last-child {
        padding-right: 0;
        border-right: 0;
    }

    html .tdzapad-about-home__video {
        min-height: 0;
    }

    html .tdzapad-about-home__grid {
        grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
        align-items: start;
    }

    html .tdzapad-about-home__process {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        counter-reset: tdzapad-about-step;
        padding-bottom: 1.875rem;
    }

    html .tdzapad-about-home__process::after {
        position: absolute;
        right: 1.5rem;
        bottom: .75rem;
        left: 1.5rem;
        z-index: 0;
        content: '';
        border-top: 1px solid rgba(16, 34, 70, .08);
    }

    html .tdzapad-about-home__process-item {
        counter-increment: tdzapad-about-step;
    }

    html .tdzapad-about-home__process-item::after {
        position: absolute;
        top: 100%;
        left: 1.4375rem;
        z-index: 0;
        width: 1px;
        height: .375rem;
        content: '';
        background: color-mix(in srgb, var(--tdzapad-accent) 25%, transparent);
    }

    html .tdzapad-about-home__process-item::before {
        position: absolute;
        top: 100%;
        left: 1.5rem;
        z-index: 1;
        display: grid;
        width: 1.25rem;
        height: 1.25rem;
        margin-top: 1.125rem;
        color: var(--tdzapad-accent);
        background: #fff;
        border: 1px solid color-mix(in srgb, var(--tdzapad-accent) 35%, transparent);
        border-radius: 50%;
        content: counter(tdzapad-about-step);
        font-size: .625rem;
        font-weight: 700;
        place-items: center;
        transform: translate(-50%, -50%);
    }

    /* Logo/mega-menu only need to shrink in the 992-1199 window — the xl
       block below hands them back to their default size. */
    html .tdzapad-logo img {
        width: 160px;
    }

    html .tdzapad-nav .mod-menu>li.item-102>.mod-menu__sub {
        columns: 3;
    }

    html .tdzapad-article-cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    html .tdzapad-search-results {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    html .tdzapad-catalog__column a {
        white-space: nowrap;
    }

    html h1 {
        font-size: 2.25rem;
    }

    html .knopka,
    html .knopka2 {
        padding: 0.75rem 1.5rem;
        font-size: 1rem;
        gap: 0.5rem;
    }

    html .ar-arrow {
        width: 14px;
        height: 14px;
    }

    html .ar-arrow::before {
        width: 10px;
        height: 10px;
    }

    html .tdzapad-hero__actions {
        gap: 0.75rem;
    }

    /* Homepage hero's subtitle is a short one-liner and reads fine at the
       shared 1.25rem — only the category hero's full-sentence subtitle
       needs the smaller size below this (see the base rule). */
    html .tdzapad-category-hero .tdzapad-hero__subtitle {
        font-size: 1.25rem;
    }

    html .tdzapad-hero {
        background-position: center;
    }

    html .tdzapad-consultation__grid {
        grid-template-columns: minmax(0, .95fr) minmax(20rem, .8fr);
        gap: clamp(2rem, 4vw, 4.5rem);
    }

    html .container-top-c {
        background-image: url('../images/backgrounds/consultation-blueprint.webp');
    }

    html .tdzapad-consultation__form-card {
        max-width: none;
    }

    /* From lg up the catalogue sits in its normal columns again: nomenclature
       rows go back to their full size. */
    html .tdzapad-product-page__nomenclature-list .item-abc li {
        grid-template-columns: auto minmax(0, 1fr) auto;
        gap: 1rem;
        min-height: 4.75rem;
        padding: 1rem 1.5rem;
        font-size: 1rem;
    }

    html .tdzapad-product-page__nomenclature-list .item-abc li::before {
        width: .55rem;
        height: .55rem;
        margin-right: .75rem;
    }

    html .tdzapad-product-page__nomenclature-action {
        min-width: 11.5rem;
        min-height: 2.5rem;
        padding: .625rem 1.125rem;
        font-size: 1rem;
    }

    html .tdzapad-product-page__nomenclature-action .ar-arrow {
        width: 14px;
        height: 14px;
    }

    html .tdzapad-component:has(.tdzapad-category-hero) .mod-breadcrumbs__wrapper {
        max-width: 960px;
    }

    html .tdzapad-contact-map {
        min-height: 400px;
    }

    html .tdzapad-contact-map iframe {
        min-height: 400px;
    }

    /* The consultation form card is narrowest right at lg (widens again from
       xl up — see the revert below): the "Прикрепить файл" + "Отправить
       заявку" pair doesn't fit at the default size and the submit button's
       text+arrow visibly overflow its own box. */
    html .tdzapad-consultation .tdzapad-form-actions .tdzapad-form-submit {
        padding: .5rem .5rem;
        gap: .25rem;
        font-size: .6875rem;
    }

    html .tdzapad-consultation .tdzapad-form-actions .tdzapad-form-upload__button {
        padding: .5rem .625rem;
        gap: .375rem;
        font-size: .75rem;
    }
}

@media (min-width: 1200px) {

    /* From xl up the card has room again — revert the lg-only shrink. */
    html .tdzapad-consultation .tdzapad-form-actions .tdzapad-form-submit {
        padding: .625rem .875rem;
        gap: .5rem;
        font-size: 1rem;
    }

    html .tdzapad-consultation .tdzapad-form-actions .tdzapad-form-upload__button {
        padding: .625rem .75rem;
        gap: .5rem;
        font-size: .875rem;
    }

    .mlt {
        margin-left: 0%;
    }

    html .tdzapad-about-home__grid {
        grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
    }

    html .tdzapad-related-products {
        margin-bottom: -2.5rem;
    }

    /* Reverts the 992-1199 lg-only shrink above. */
    html .tdzapad-logo img {
        width: 170px;
    }

    html .tdzapad-nav .mod-menu>li.item-102>.mod-menu__sub {
        columns: 4;
    }

    /* The nomenclature/request cards only sit side by side from xl up (see
       col-xl-8/col-xl-4 in katalog.php) — below that they stack, so only
       here does .tdzapad-product-page__request need to match the
       nomenclature card's fixed height (both settle back to the shared
       height:34rem base at xxl, see below). */
    html .tdzapad-product-page__nomenclature,
    html .tdzapad-product-page__request {
        height: 35rem;
    }

    html .tdzapad-component:has(.tdzapad-category-hero) .mod-breadcrumbs__wrapper {
        max-width: 1140px;
    }
}

@media (min-width: 1400px) {
    .mlt {
        margin-left: 9%;
    }

    html .tdzapad-catalog__column a {
        font-size: 1rem;
    }

    html .tdzapad-about-home__video {
        min-height: 0;
    }

    /* Only wide enough (xxl) to show both phone and e-mail side by side
       without the phone number wrapping — everywhere else just the phone
       chip shows, full width (see .tdzapad-product-page__direct-contact-chip--mail below). */
    html .tdzapad-product-page__direct-contact {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    html .tdzapad-product-page__direct-contact-chip--mail {
        display: inline-flex;
    }

    html .tdzapad-product-page__nomenclature,
    html .tdzapad-product-page__request {
        height: 34rem;
    }

    html .tdzapad-component:has(.tdzapad-category-hero) .mod-breadcrumbs__wrapper {
        max-width: 1320px;
    }
}

/* Primary font: PT Root UI (same as argo) — used site-wide */

/* Compact site-wide section headings. Exceptions can use a utility class
   when a component genuinely needs a different semantic scale. */
h2 {
    color: var(--tdzapad-ink);
    margin-bottom: 2rem;
    font-size: clamp(1.4rem, 2.25vw, 2.1rem);
    line-height: 1.08;
    letter-spacing: -.025em;
}


:root {
    --hue: 214;
    --template-bg-light: #f0f4fb;
    --template-text-dark: #495057;
    --template-text-light: #ffffff;
    --template-special-color: #001b4c;
    --cassiopeia-font-family-body: 'PT Root UI', sans-serif;
    --cassiopeia-font-family-headings: 'PT Root UI', sans-serif;
    font-family: 'PT Root UI', sans-serif;

    --tdzapad-accent: #e50201;
    --tdzapad-accent-hover: #d61e34;
    --tdzapad-muted: rgb(102, 112, 133);
    --tdzapad-nav-bg: #f1f1f3;
    --tdzapad-ink: #102246;
    --tdzapad-radius: 0.375rem;
    --tdzapad-border: #e5e7eb;

    /* Override Cassiopeia's inherited unclassed-link and hover colours. */
    --link-color: var(--tdzapad-ink);
    --link-color-rgb: 16, 34, 70;
    --link-hover-color: var(--tdzapad-accent);
    --link-hover-color-rgb: 229, 2, 1;
    --template-link-color: var(--link-color);
    --tdzapad-section-space: clamp(2.5rem, 4vw, 5rem);
}

.ibm {
    font-family: 'IBM Plex Mono', monospace;
}

/* ---- Typography ---- */
/* Site-wide h1 size (overrides Cassiopeia's own fluid h1 sizing) — same
   value everywhere (hero, page titles, ...), not just this one block.
   Mobile-reduced variant lives in the breakpoints section at the top. */
h1 {
    font-size: 1.8rem;
}

/* ---- Header ---- */
.tdzapad-topbar {
    background: #fff;
}

.tdzapad-logo img {
    width: 170px;
    max-width: 100%;
    height: auto;
}

.tdzapad-topbar .tdzapad-logo {
    display: inline-block;
    margin-right: 1.5rem;
}

.tdzapad-clocks--divided {
    margin-left: 1.5rem;
    padding-left: 1.5rem;
    border-left: 1px solid var(--tdzapad-border);
}

.tdzapad-clock-card {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    flex: 0 0 auto;
    background: #fff;
    border: 1px solid var(--tdzapad-border);
    border-radius: var(--tdzapad-radius);
    padding: 0.25rem 0.625rem;
}

.tdzapad-clock-pin {
    display: flex;
    flex: 0 0 auto;
    color: var(--tdzapad-accent);
}

.tdzapad-clock-city {
    flex: 0 0 auto;
    font-size: 0.8125rem;
    color: var(--tdzapad-muted);
}

.tdzapad-clock-time {
    flex: 0 0 auto;
    margin-left: auto;
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--tdzapad-ink);
}

.tdzapad-slogan-icon {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--tdzapad-nav-bg);
    color: var(--tdzapad-ink);
}

.tdzapad-slogan {
    text-transform: uppercase;
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--tdzapad-muted);
}

.tdzapad-order {
    font-size: 0.875rem;
    color: var(--tdzapad-muted);
}

.tdzapad-order a {
    color: inherit;
}

.tdzapad-address {
    font-size: 0.875rem;
}

.tdzapad-address i {
    color: var(--tdzapad-muted);
    margin-right: 0.25rem;
}

.tdzapad-phone a {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--tdzapad-ink);
    text-decoration: none;
}

.tdzapad-phone a:hover {
    color: var(--tdzapad-accent-hover);
}

.tdzapad-hours {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--tdzapad-muted);
}

.tdzapad-nav {
    background: var(--tdzapad-nav-bg);
    height: 70px;
    display: flex;
    align-items: stretch;
}

.tdzapad-nav.sticky-top,
.tdzapad-mobilebar.sticky-top {
    top: 0;
    z-index: 1020;
}

.tdzapad-nav>.container {
    height: 100%;
}

.tdzapad-nav .mod-menu {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: stretch;
    align-self: stretch;
    margin: 0;
    padding: 0;
    list-style: none;
    color: var(--tdzapad-ink);
}

.tdzapad-nav .mod-list li,
.tdzapad-mobile-menu-nav .mod-list li {
    padding: 0;
}

.tdzapad-nav .mod-menu>li {
    display: flex;
    align-items: stretch;
    position: relative;
    flex: 0 0 auto;
    text-align: left;
}

.tdzapad-nav .mod-menu>li>a {
    display: flex;
    align-items: center;
    height: 100%;
    position: relative;
    color: var(--tdzapad-ink);
    text-decoration: none !important;
    text-transform: uppercase;
    font-size: 12px;
    font-weight: 500;
    padding: 0 12px;
}

.tdzapad-nav .mod-menu>li>a::after {
    content: "";
    position: absolute;
    top: 0;
    left: 12px;
    right: 12px;
    height: 3px;
    background: var(--tdzapad-accent);
    transform: scaleX(0);
    transition: transform .2s ease;
}

.tdzapad-nav .mod-menu>li>a:hover {
    color: var(--tdzapad-accent);
}

.tdzapad-nav .mod-menu>li>a:hover::after,
.tdzapad-nav .mod-menu>li.active>a::after {
    transform: scaleX(1);
}

/* Dropdown (desktop): parent items get a toggle button + chevron from core
   mod_menu markup — we style the chevron ourselves (core ships no glyph for
   it) and open the panel both on hover and via the existing click/keyboard
   toggle (aria-hidden/aria-expanded), so mouse, touch and keyboard all work. */
.tdzapad-nav .mod-menu__toggle-sub {
    display: flex;
    align-items: center;
    background: none;
    border: 0;
    padding: 0 12px 0 0;
    margin-left: -8px;
    color: inherit;
    cursor: pointer;
}

.tdzapad-nav .icon-chevron-down {
    position: relative;
    display: inline-block;
    width: 8px;
    height: 8px;
}

.tdzapad-nav .icon-chevron-down::before {
    content: "";
    position: absolute;
    top: 15%;
    left: 50%;
    width: 6px;
    height: 6px;
    margin: -3px 0 0 -3px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
}

.tdzapad-nav .mod-menu__toggle-sub .icon-chevron-down {
    transition: transform .2s ease;
}

.tdzapad-nav .mod-menu__sub {
    display: block;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1001;
    min-width: 14rem;
    margin: 0;
    padding: 0.5rem 0;
    background: #fff;
    border: 1px solid var(--tdzapad-border);
    border-radius: var(--tdzapad-radius);
    box-shadow: 0 12px 28px rgba(16, 34, 70, .14);
    list-style: none;
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    pointer-events: none;
    transition: opacity .2s ease, transform .2s ease, visibility .2s;
}

.tdzapad-nav .mod-menu__sub a {
    display: block;
    padding: 0.5rem 1rem;
    color: var(--tdzapad-ink);
    text-transform: none;
    font-size: 15px;
    font-weight: 500;
    text-decoration: none !important;
    white-space: nowrap;
}

.tdzapad-nav .mod-menu__sub a:hover,
.tdzapad-nav .mod-menu__sub li.active>a {
    background: var(--tdzapad-nav-bg);
}

/* Catalog mega-menu: its 26 product groups need a compact scan-friendly
   panel rather than one tall dropdown. The item id is stable in Joomla's
   mod_menu markup; other navigation dropdowns retain the regular treatment. */
.tdzapad-nav .mod-menu>li.item-102 {
    position: static;
}

.tdzapad-nav .mod-menu>li.item-102>.mod-menu__sub {
    left: 0;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    padding: 1rem max(1.5rem, calc((100vw - 1320px) / 2));
    columns: 4;
    column-gap: 2rem;
    column-rule: 1px solid rgba(20, 49, 92, .12);
    border-top: 3px solid var(--tdzapad-accent);
    border-radius: 0;
    transform: translateY(8px);
}

.tdzapad-nav .mod-menu>li.item-102>.mod-menu__sub>li {
    break-inside: avoid;
    margin: 0 0 .1rem;
}

.tdzapad-nav .mod-menu>li.item-102>.mod-menu__sub a {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    padding: .45rem .7rem;
    white-space: normal;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.25;
    transition: color .18s ease, background-color .18s ease;
}

.tdzapad-nav .mod-menu>li.item-102>.mod-menu__sub a::before {
    content: "";
    flex: 0 0 auto;
    margin-top: .5em;
}

.tdzapad-nav .mod-menu>li.item-102>.mod-menu__sub a::before,
.tdzapad-catalog__dot {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--tdzapad-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--tdzapad-accent) 11%, transparent);
    transition: transform .18s ease, box-shadow .18s ease;
}

.tdzapad-nav .mod-menu>li.item-102>.mod-menu__sub a:hover,
.tdzapad-nav .mod-menu>li.item-102>.mod-menu__sub li.active>a {
    color: var(--tdzapad-accent);
}

.tdzapad-nav .mod-menu>li.item-102>.mod-menu__sub a:hover::before,
.tdzapad-nav .mod-menu>li.item-102>.mod-menu__sub li.active>a::before,
.tdzapad-catalog__column a:hover .tdzapad-catalog__dot,
.tdzapad-catalog__column a:focus-visible .tdzapad-catalog__dot {
    transform: scale(1.35);
    box-shadow: 0 0 0 5px color-mix(in srgb, var(--tdzapad-accent) 14%, transparent);
}

.tdzapad-nav .mod-menu>li.item-102:hover>.mod-menu__sub,
.tdzapad-nav .mod-menu>li.item-102:focus-within>.mod-menu__sub,
.tdzapad-nav .mod-menu>li.item-102>.mod-menu__sub[aria-hidden="false"] {
    transform: translateY(0);
}

.tdzapad-nav .mod-menu>li.parent:hover>.mod-menu__sub,
.tdzapad-nav .mod-menu>li.parent:focus-within>.mod-menu__sub,
.tdzapad-nav .mod-menu__sub[aria-hidden="false"] {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.tdzapad-nav .mod-menu>li.parent:hover>.mod-menu__toggle-sub .icon-chevron-down,
.tdzapad-nav .mod-menu>li.parent:focus-within>.mod-menu__toggle-sub .icon-chevron-down,
.tdzapad-nav .mod-menu__toggle-sub[aria-expanded="true"] .icon-chevron-down {
    transform: rotate(180deg);
}

.tdzapad-search-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    border: 1.5px solid var(--tdzapad-muted);
    background: transparent;
    color: var(--tdzapad-muted);
    flex: 0 0 auto;
}

.tdzapad-search-toggle:hover {
    border-color: var(--tdzapad-ink);
    color: var(--tdzapad-ink);
}

.tdzapad-phone-pulse {
    background: var(--tdzapad-accent);
    border-color: var(--tdzapad-accent);
    color: #fff;
    animation: tdzapad-phone-pulse 2.2s ease-out infinite;
}

.tdzapad-phone-pulse:hover {
    background: var(--tdzapad-accent-hover);
    border-color: var(--tdzapad-accent-hover);
    color: #fff;
}

@keyframes tdzapad-phone-pulse {
    0% {
        box-shadow: 0 0 0 0 color-mix(in srgb, var(--tdzapad-accent) 55%, transparent);
    }

    70%,
    100% {
        box-shadow: 0 0 0 10px transparent;
    }
}

.offcanvas.offcanvas-top.tdzapad-search-offcanvas {
    height: 100px;
}

.tdzapad-search-offcanvas .btn-close {
    position: absolute;
    top: 50%;
    right: 1.5rem;
    transform: translateY(-50%);
}

.tdzapad-search-offcanvas .offcanvas-body {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 1.5rem;
    overflow: visible;
}

.tdzapad-search-offcanvas .mod-finder {
    width: 100%;
    max-width: 480px;
}

.tdzapad-search-offcanvas .mod-finder__search {
    display: flex;
}

.tdzapad-search-offcanvas .js-finder-search-query {
    border-radius: var(--tdzapad-radius) 0 0 var(--tdzapad-radius);
    border: 1.5px solid var(--tdzapad-border);
    border-right: 0;
    padding: 0.625rem 1.25rem;
}

.tdzapad-search-offcanvas .js-finder-search-query:focus {
    border-color: var(--tdzapad-border);
    box-shadow: none;
}

.tdzapad-search-offcanvas .mod-finder__search .btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    flex: 0 0 auto;
    border-radius: 0 var(--tdzapad-radius) var(--tdzapad-radius) 0;
    background: #fff;
    border: 1.5px solid var(--tdzapad-border);
    border-left: 0;
    color: var(--tdzapad-border);
}

.tdzapad-search-offcanvas .mod-finder__search .btn .icon-search {
    display: inline-block;
    transition: transform .2s ease;
}

.tdzapad-search-offcanvas .mod-finder__search .btn:hover .icon-search {
    transform: scale(1.25);
}

/* ---- Awesomplete search suggestions (Joomla core finder autocomplete) ---- */
.awesomplete>ul {
    background: #fff;
    border: 1px solid var(--tdzapad-border);
    border-radius: var(--tdzapad-radius);
    box-shadow: 0 .75rem 2rem rgba(16, 34, 70, .14);
}

.awesomplete>ul:before {
    display: none;
}

.awesomplete>ul>li {
    padding: .625rem .875rem;
    color: var(--tdzapad-ink);
    font-size: .9375rem;
    line-height: 1.4;
}

.awesomplete>ul>li:hover {
    color: var(--tdzapad-ink);
    background: var(--tdzapad-nav-bg);
}

.awesomplete>ul>li[aria-selected="true"] {
    color: #fff;
    background: var(--tdzapad-accent);
}

.awesomplete mark {
    color: inherit;
    background: transparent;
    font-weight: 700;
}

.awesomplete li[aria-selected="true"] mark {
    color: inherit;
    background: transparent;
}

/* ---- Mobile bar (logo + call/search/burger), shown <lg instead of the desktop topbar+nav ---- */
.tdzapad-mobilebar {
    background: #fff;
    border-top: 3px solid var(--tdzapad-accent);
    box-shadow: 0 .5rem 1.25rem rgba(16, 34, 70, .12);
    height: 80px;
    display: flex;
    align-items: center;
}

.tdzapad-mobilebar .tdzapad-logo img {
    width: 110px;
    max-width: 100%;
    height: auto;
}

.tdzapad-burger {
    position: relative;
    flex: 0 0 auto;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    border: 1.5px solid var(--tdzapad-ink);
    background: transparent;
}

.tdzapad-burger__line {
    position: absolute;
    left: 50%;
    width: 18px;
    height: 2px;
    background: var(--tdzapad-ink);
    border-radius: 2px;
    transform: translateX(-50%);
    transition: transform .25s ease, opacity .25s ease, top .25s ease;
}

.tdzapad-burger__line:nth-child(1) {
    top: 15px;
}

.tdzapad-burger__line:nth-child(2) {
    top: 19px;
}

.tdzapad-burger__line:nth-child(3) {
    top: 23px;
}

.tdzapad-burger:hover {
    border-color: var(--tdzapad-accent);
}

.tdzapad-burger:hover .tdzapad-burger__line {
    background: var(--tdzapad-accent);
}

.tdzapad-burger.is-open .tdzapad-burger__line:nth-child(1) {
    top: 19px;
    transform: translateX(-50%) rotate(45deg);
}

.tdzapad-burger.is-open .tdzapad-burger__line:nth-child(2) {
    opacity: 0;
}

.tdzapad-burger.is-open .tdzapad-burger__line:nth-child(3) {
    top: 19px;
    transform: translateX(-50%) rotate(-45deg);
}

/* ---- Mobile menu offcanvas ---- */
.tdzapad-mobile-menu-offcanvas {
    width: min(320px, 85vw);
}

.tdzapad-mobile-menu-offcanvas .offcanvas-header {
    border-bottom: 1px solid var(--tdzapad-border);
    padding: 1rem;
}

.tdzapad-mobile-menu-offcanvas .offcanvas-header .tdzapad-logo img {
    width: 140px;
    max-width: 100%;
    height: auto;
}

.tdzapad-mobile-menu-offcanvas .offcanvas-body {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: 1rem;
}

.tdzapad-mobile-menu-nav .mod-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.tdzapad-mobile-menu-nav .mod-menu>li {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    border-bottom: 1px solid var(--tdzapad-border);
}

.tdzapad-mobile-menu-nav .mod-menu>li:last-child {
    border-bottom: 0;
}

.tdzapad-mobile-menu-nav .mod-menu>li>a {
    display: block;
    flex: 1 1 auto;
    padding: 0.875rem 0.25rem;
    color: var(--tdzapad-ink);
    text-decoration: none !important;
    text-transform: uppercase;
    font-size: 14px;
    font-weight: 600;
}

.tdzapad-mobile-menu-nav .mod-menu>li.active>a,
.tdzapad-mobile-menu-nav .mod-menu>li>a:hover {
    color: var(--tdzapad-accent);
}

/* Dropdown (mobile, accordion): tap the chevron to slide the sub-items open
   in place, instead of the nearly-invisible white-on-white list core ships. */
.tdzapad-mobile-menu-nav .mod-menu__toggle-sub {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 2rem;
    height: 2rem;
    background: none;
    border: 0;
    color: var(--tdzapad-ink);
    cursor: pointer;
}

.tdzapad-mobile-menu-nav .icon-chevron-down {
    position: relative;
    display: inline-block;
    width: 8px;
    height: 8px;
}

.tdzapad-mobile-menu-nav .icon-chevron-down::before {
    content: "";
    position: absolute;
    top: 15%;
    left: 50%;
    width: 6px;
    height: 6px;
    margin: -3px 0 0 -3px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
}

.tdzapad-mobile-menu-nav .mod-menu__toggle-sub .icon-chevron-down {
    transition: transform .25s ease;
}

.tdzapad-mobile-menu-nav .mod-menu__toggle-sub[aria-expanded="true"] .icon-chevron-down {
    transform: rotate(180deg);
}

.tdzapad-mobile-menu-nav .mod-menu__sub {
    flex-basis: 100%;
    display: block;
    max-height: 0;
    overflow: hidden;
    margin: 0;
    padding: 0 0 0 1rem;
    list-style: none;
    transition: max-height .25s ease;
}

.tdzapad-mobile-menu-nav .mod-menu__sub[aria-hidden="false"] {
    /* Catalog has 26 entries. Keep the accordion open long enough for the
       off-canvas body to scroll through every item instead of clipping it. */
    max-height: 200rem;
}

.tdzapad-mobile-menu-nav .mod-menu__sub a {
    display: block;
    padding: 0.625rem 0.25rem;
    color: var(--tdzapad-muted);
    text-decoration: none !important;
    text-transform: none;
    font-size: 13px;
    font-weight: 500;
}

.tdzapad-mobile-menu-nav .mod-menu__sub a:hover,
.tdzapad-mobile-menu-nav .mod-menu__sub li.active>a {
    color: var(--tdzapad-accent);
}

.tdzapad-mobile-menu-contacts {
    padding-top: 1rem;
    border-top: 1px solid var(--tdzapad-border);
}

/* ---- Hero (banner position, "Шапка" mod_custom module) ---- */
.tdzapad-hero {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 420px;
    padding: 3rem 0;
    background: linear-gradient(90deg, rgba(6, 16, 41, .55), rgba(6, 16, 41, .1)), var(--tdzapad-hero-image, url('/images/bg2.webp')) 70% 50% / cover no-repeat;
}

.tdzapad-hero .mod-custom {
    max-width: 42rem;
}

.tdzapad-hero h1 {
    color: #fff;
    font-weight: 700;
    line-height: 1.25;
    text-transform: uppercase;
    margin: 0 0 0.75rem;
}

.tdzapad-hero__subtitle {
    margin: 0 0 0.75rem;
    padding-left: 0.75rem;
    border-left: 3px solid var(--tdzapad-accent);
    color: #fff;
    font-size: 1.25rem;
    text-transform: uppercase;
}

/* This hero's subtitle is a full sentence (unlike the homepage hero's
   short one-liner), so at the shared 1.25rem it reads oversized below lg.
   Kept deliberately less specific than the "html ..." desktop revert in the
   breakpoints section at the top, so that one wins regardless of source
   order — same specificity here would make source order decide instead. */
.tdzapad-category-hero .tdzapad-hero__subtitle {
    font-size: 0.625rem;
}

.tdzapad-hero__note {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0 0 1.5rem;
    color: rgba(255, 255, 255, .75);
    font-size: 0.875rem;
    text-transform: uppercase;
}

.tdzapad-hero__note::before {
    content: "";
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--tdzapad-accent);
}

.tdzapad-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.tdzapad-article-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .375rem 1.25rem;
    margin: 0 0 1.5rem;
}

.tdzapad-article-meta__item {
    display: inline-flex;
    align-items: center;
    gap: .4375rem;
    color: rgba(255, 255, 255, .75);
    font-size: .8125rem;
}

/* Category "blog" layout hero (e.g. Полезная информация): the component
   renders inside the normal .container, so break out to full viewport
   width here instead of relying on the site-grid full-width column. */
.tdzapad-category-hero {
    width: 100vw;
    margin-left: calc(50% - 50vw);
}

.tdzapad-category-hero::before {
    position: absolute;
    inset: 0;
    z-index: 0;
    content: '';
    background: var(--tdzapad-ink);
    opacity: .5;
    pointer-events: none;
}

.tdzapad-category-hero>.container {
    position: relative;
    z-index: 1;
}

/* Any page with our dark hero band (category or article — Полезная
   информация, О компании, Оплата и доставка, Контакты, ...): lift the
   breadcrumb out of the normal flow and overlay it on top of the hero, so
   both live in the same dark band instead of a plain white bar sitting
   above it. Scoped by the hero's own presence rather than a specific
   Itemid, so it applies automatically to every current and future page
   built on this hero pattern. */
.tdzapad-component:has(.tdzapad-category-hero) {
    position: relative;
}

.tdzapad-component:has(.tdzapad-category-hero) .mod-breadcrumbs__wrapper {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    z-index: 2;
    box-sizing: content-box;
    width: 100%;
    max-width: none;
    margin-inline: auto;
    /* Same formula Bootstrap's own .container uses for its gutter, so the
       breadcrumb strip lines up with the hero content below it at every
       width instead of just coincidentally matching at some breakpoints. */
    padding-inline: calc(var(--gutter-x) * .5);
}

.tdzapad-component:has(.tdzapad-category-hero) .mod-breadcrumbs__wrapper .mod-breadcrumbs {
    padding-inline: 0 !important;
}

.tdzapad-component:has(.tdzapad-category-hero) .mod-breadcrumbs__wrapper .pathway,
.tdzapad-component:has(.tdzapad-category-hero) .mod-breadcrumbs__wrapper .breadcrumb-item span,
.tdzapad-component:has(.tdzapad-category-hero) .mod-breadcrumbs__wrapper .divider {
    color: rgba(255, 255, 255, .8);
}

.tdzapad-component:has(.tdzapad-category-hero) .mod-breadcrumbs__wrapper .breadcrumb-item.active span {
    color: #fff;
}

.com-content-category-blog {
    margin-top: var(--tdzapad-section-space);
}

.tdzapad-article-cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

.tdzapad-article-cards .tdzapad-products__card {
    min-height: 0;
}

.knopka,
.knopka2 {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.5rem 0.875rem;
    border-radius: var(--tdzapad-radius);
    font-weight: 600;
    font-size: 0.8125rem;
    text-decoration: none !important;
    transition: background .2s ease, color .2s ease, border-color .2s ease;
}

.knopka {
    background: var(--tdzapad-accent);
    border: 1.5px solid var(--tdzapad-accent);
    color: #fff;
}

.knopka:hover {
    background: var(--tdzapad-accent-hover);
    border-color: var(--tdzapad-accent-hover);
    color: #fff;
}

.knopka2 {
    background: transparent;
    border: 1.5px solid rgba(255, 255, 255, .5);
    color: #fff;
}

.knopka2:hover {
    background: #fff;
    border-color: #fff;
    color: var(--tdzapad-ink);
}

/* Arrow (from artstal) — uses currentColor via mask, so it auto-follows
   whatever text color the button is in (matters for .knopka2, which flips
   from white to --tdzapad-ink text on hover). */
.ar-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 12px;
    height: 12px;
}

.ar-arrow::before {
    content: "";
    display: block;
    width: 8px;
    height: 8px;
    background-color: currentColor;
    -webkit-mask: url('../images/ico/arr.svg') center / contain no-repeat;
    mask: url('../images/ico/arr.svg') center / contain no-repeat;
    transition: transform .3s ease;
}

.knopka:hover .ar-arrow::before,
.knopka2:hover .ar-arrow::before {
    transform: rotate(45deg);
}

/* Ripple hover (from artstal) — the .ripple span itself is added by JS
   (see user.js) on mouseenter, positioned at the cursor. */
.ripple-hover {
    position: relative;
    overflow: hidden;
}

.ripple {
    position: absolute;
    border-radius: 50%;
    background: rgba(255, 255, 255, .35);
    transform: scale(0);
    animation: tdzapad-ripple .8s ease-out forwards;
    pointer-events: none;
}

@keyframes tdzapad-ripple {
    to {
        transform: scale(2);
        opacity: 0;
    }
}

.tdzapad-advantages-wrap {
    padding-top: 20px;
    padding-bottom: 20px;
}

.tdzapad-advantages {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem 1rem;
}

.tdzapad-advantages__item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    flex: 1 1 calc(50% - 0.5rem);
    padding-right: 1rem;
    border-right: 1px solid var(--tdzapad-border);
}

/* 2-col grid: only the left card of each pair (odd position) gets the
   divider — the right one is already at the row's edge. */
.tdzapad-advantages__item:nth-child(2n) {
    padding-right: 0;
    border-right: 0;
}

/* Below md there's only room for a clean 2x2 grid — the 5th (last) card
   would sit alone on its own row, so hide it there. Reappears at md, where
   it fits a 3+2 layout instead. */
.tdzapad-advantages__item:last-child {
    display: none;
}

.tdzapad-advantages__icon {
    flex: 0 0 auto;
    width: 50px;
    height: 50px;
}

.tdzapad-advantages__title,
.tdzapad-consultation__benefit strong {
    font-size: 0.5875rem;
    font-weight: 500;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.tdzapad-advantages__title {
    color: var(--tdzapad-muted);
}

.tdzapad-advantages__desc {
    margin-top: 0.125rem;
    font-size: 0.75rem;
    color: var(--tdzapad-muted);
}

/* ---- Product catalogue (top-b position, mod_articles_categories) ---- */
.container-top-b {
    padding: 0;
    background: #f7f8fa;
}

.tdzapad-catalog,
.tdzapad-consultation,
.tdzapad-about-home {
    padding-block: var(--tdzapad-section-space);
}

.tdzapad-catalog {
    position: relative;
    overflow: hidden;
    background: transparent;
}

.tdzapad-catalog::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: min(16vw, 14rem);
    content: '';
    opacity: .3;
    background: linear-gradient(135deg, transparent 45%, rgba(19, 48, 90, .07) 45% 47%, transparent 47%);
    pointer-events: none;
}

.tdzapad-catalog .container {
    position: relative;
}

.tdzapad-catalog__header {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: 3rem;
}

.tdzapad-catalog__header::after {
    flex: 1 1 auto;
    height: 1px;
    content: '';
    background: rgba(21, 48, 89, .14);
}

.tdzapad-catalog__header h2 {
    position: relative;
    margin: 0;
    color: var(--tdzapad-ink);
    text-transform: uppercase;
}

.tdzapad-catalog__header h2::after {
    position: absolute;
    top: calc(100% + .55rem);
    left: 0;
    width: 3.5rem;
    height: 3px;
    content: '';
    background: var(--tdzapad-accent);
}

.tdzapad-catalog__header strong {
    font-weight: 800;
}

.tdzapad-catalog__header span {
    color: var(--tdzapad-muted);
    font-weight: 300;
}

.tdzapad-catalog__columns {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

.tdzapad-catalog__column {
    margin: 0;
    padding: 0 1rem;
    list-style: none;
    border-top: 1px solid rgba(21, 48, 89, .12);
    border-left: 0;
}

.tdzapad-catalog__column:first-child {
    border-top: 0;
    border-left: 0;
}

.tdzapad-catalog__column li+li {
    border-top: 1px solid rgba(21, 48, 89, .09);
}

.tdzapad-catalog__column a {
    display: grid;
    grid-template-columns: .5rem minmax(0, 1fr) auto;
    gap: .8rem;
    align-items: center;
    min-height: 2.5rem;
    padding-block: .625rem;
    color: var(--tdzapad-ink);
    font-size: .875rem;
    font-weight: 500;
    line-height: 1.35;
    white-space: normal;
    text-decoration: none;
    transition: color .2s ease, background-color .2s ease;
}

.tdzapad-catalog__dot {
    flex: 0 0 auto;
}

/* At lg+ the link goes white-space:nowrap (see breakpoints section) so long
   category names can outrun the grid's minmax(0, 1fr) title column and
   overlap the arrow/next column — truncate with an ellipsis instead. */
.tdzapad-catalog__title {
    overflow: hidden;
    min-width: 0;
    text-overflow: ellipsis;
}

.tdzapad-catalog__arrow {
    width: 1rem;
    height: 1rem;
    color: rgba(21, 48, 89, .45);
}

.tdzapad-catalog__column a:hover,
.tdzapad-catalog__column a:focus-visible {
    color: var(--tdzapad-accent);
}

.tdzapad-catalog__column a:hover .tdzapad-catalog__arrow,
.tdzapad-catalog__column a:focus-visible .tdzapad-catalog__arrow {
    color: var(--tdzapad-accent);
}

.tdzapad-catalog__column a:hover .tdzapad-catalog__arrow::before,
.tdzapad-catalog__column a:focus-visible .tdzapad-catalog__arrow::before {
    transform: rotate(45deg);
}

/* ---- Consultation request (top-c position) ---- */
.container-top-c {
    background-color: #fff;
    background-image: none;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.tdzapad-consultation__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    align-items: start;
}

.tdzapad-consultation__eyebrow,
.tdzapad-about-home__eyebrow {
    margin-bottom: .8rem;
    color: var(--tdzapad-muted);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.tdzapad-consultation__title {
    position: relative;
    max-width: 34rem;
    margin-bottom: 2rem;
    text-transform: uppercase;
}

.tdzapad-consultation__title::after {
    position: absolute;
    top: calc(100% + .55rem);
    left: 0;
    width: 3.5rem;
    height: 3px;
    content: '';
    background: var(--tdzapad-accent);
}

.tdzapad-consultation__title strong {
    font-weight: 800;
}

.tdzapad-consultation__title span {
    color: var(--tdzapad-muted);
    font-weight: 300;
}

.tdzapad-consultation__lead {
    max-width: 34rem;
    margin: 0;
    color: var(--tdzapad-muted);
    font-size: 1rem;
    line-height: 1.6;
}

.tdzapad-consultation__contacts {
    display: grid;
    gap: .75rem;
    margin: 1.5rem 0;
}

.tdzapad-consultation__contact {
    display: flex;
    align-items: center;
    gap: .9rem;
    color: var(--tdzapad-ink);
    text-decoration: none;
    margin-bottom: 10px;
}

.tdzapad-consultation__contact:hover {
    color: var(--tdzapad-ink);
}

.tdzapad-consultation__contact-icon {
    display: grid;
    flex: 0 0 2.75rem;
    width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    color: var(--tdzapad-muted);
    border: 1px solid var(--tdzapad-border);
    border-radius: 50%;
}

.tdzapad-consultation__contact-icon svg {
    width: 1.15rem;
    height: 1.15rem;
}

.tdzapad-consultation__contact strong,
.tdzapad-consultation__contact small {
    display: block;
}

.tdzapad-consultation__contact strong {
    font-size: 1rem;
    font-weight: 700;
}

.tdzapad-consultation__contact small {
    margin-top: .15rem;
    color: var(--tdzapad-muted);
    font-size: .8rem;
}

.tdzapad-consultation__benefits {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .9rem 1.25rem;
    max-width: 34rem;
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--tdzapad-border);
}

.tdzapad-consultation__benefit {
    display: grid;
    grid-template-columns: 2.25rem minmax(0, 1fr);
    gap: .65rem;
    align-items: center;
}

.tdzapad-consultation__benefit-icon {
    width: 2.25rem;
    height: 2.25rem;
    background: var(--tdzapad-accent);
    opacity: 1;
    -webkit-mask: var(--tdzapad-benefit-icon) center / contain no-repeat;
    mask: var(--tdzapad-benefit-icon) center / contain no-repeat;
}

.tdzapad-consultation__benefit strong,
.tdzapad-consultation__benefit small {
    display: block;
}

.tdzapad-consultation__benefit strong {
    color: var(--tdzapad-ink);
    line-height: 1.2;
}

.tdzapad-consultation__benefit small {
    margin-top: .2rem;
    color: var(--tdzapad-muted);
    font-size: .75rem;
    line-height: 1.3;
}

.tdzapad-consultation__form-card {
    position: relative;
    max-width: 42rem;
    padding: clamp(1.25rem, 2vw, 2rem);
    background: #fff;
    border: 1px solid var(--tdzapad-border);
    border-radius: 1rem;
    box-shadow: 0 1.25rem 3rem rgba(16, 34, 70, .1);
}

/* Decorative cable photo, full card height, sitting flush against the
   card's left edge (touching, not overlapping — no z-index trick to fight
   with, so it can never end up rendered over the card's own content). */
.tdzapad-consultation__form-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: -5.5rem;
    width: 5.5rem;
    height: 100%;
    background: url('/images/cable.webp') left center / cover no-repeat;
    filter: drop-shadow(-.5rem 0 1rem rgba(16, 34, 70, .35));
}

.tdzapad-consultation__form-card h3 {
    margin: 0 0 .35rem;
    color: var(--tdzapad-ink);
    font-size: 1.35rem;
    font-weight: 800;
}

.tdzapad-consultation__form-card>p {
    margin-bottom: 1.5rem;
    color: var(--tdzapad-muted);
    font-size: .875rem;
}

.tdzapad-consultation .tdzapad-form {
    display: grid;
    gap: .75rem;
}

.tdzapad-consultation .tdzapad-form-field {
    margin: 0;
}

.tdzapad-consultation .tdzapad-form-input-wrap,
.tdzapad-consultation .tdzapad-form-input {
    background: #f4f6f9;
    border-color: transparent;
    border-radius: .75rem;
}

.tdzapad-consultation .tdzapad-form-field--textarea .tdzapad-form-input {
    min-height: 6.5rem;
}

.tdzapad-consultation .tdzapad-form-check {
    margin-top: .25rem;
}

.tdzapad-consultation .tdzapad-form-submit {
    align-self: stretch;
    width: 100%;
    margin-top: .5rem;
    background: var(--tdzapad-accent);
    border-color: var(--tdzapad-accent);
}

.tdzapad-consultation .tdzapad-form-submit:hover {
    background: var(--tdzapad-accent-hover);
    border-color: var(--tdzapad-accent-hover);
}

.tdzapad-consultation .tdzapad-form-actions {
    display: flex;
    gap: .75rem;
    align-items: stretch;
    flex-direction: column;
    flex-wrap: nowrap;
}

.tdzapad-consultation .tdzapad-form-actions .tdzapad-form-field {
    flex: 0 1 auto;
}

.tdzapad-consultation .tdzapad-form-actions .tdzapad-form-submit {
    flex: 1 1 auto;
    min-height: 42px;
    margin-top: 0;
    min-width: 0;
    padding: .625rem .875rem;
    white-space: nowrap;
    justify-content: space-between;
}

.tdzapad-consultation .tdzapad-form-actions .tdzapad-form-upload__button {
    flex: 0 1 auto;
    min-width: 0;
    min-height: 42px;
    padding: .625rem .75rem;
    white-space: nowrap;
}

.tdzapad-consultation .tdzapad-form-upload__button {
    color: var(--tdzapad-ink);
    background: var(--tdzapad-nav-bg);
    border-color: var(--tdzapad-border);
}

.tdzapad-consultation .tdzapad-form-upload__button:hover {
    background: #fff;
    border-color: var(--tdzapad-ink);
}

.tdzapad-consultation .tdzapad-form-upload__button svg {
    color: var(--tdzapad-muted);
}

.tdzapad-consultation .form-check-input:checked {
    background-color: var(--tdzapad-ink);
    border-color: var(--tdzapad-ink);
}

/* ---- About company (top-d position) ---- */
.container-top-d {
    background: #fff;
}

.tdzapad-about-home {
    position: relative;
    overflow: hidden;
}

/* ---- Product slider (top-d position, mod_articles:products) ---- */
.tdzapad-products {
    overflow: hidden;
    padding-block: var(--tdzapad-section-space);
    background: #f7f8fa;
}

.tdzapad-products__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 2rem;
}

.tdzapad-products__header h2 {
    margin-bottom: 0;
    text-transform: uppercase;
}

.tdzapad-products__header h2 span {
    color: var(--tdzapad-muted);
    font-weight: 300;
}

.tdzapad-products__eyebrow {
    margin-bottom: .625rem;
    color: var(--tdzapad-muted);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.tdzapad-products__all,
.tdzapad-products__more {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    color: var(--tdzapad-ink);
    font-size: .8125rem;
    font-weight: 700;
    text-decoration: none;
    text-transform: uppercase;
}

.tdzapad-products__all:hover,
.tdzapad-products__card:hover .tdzapad-products__more {
    color: var(--tdzapad-accent);
}

.tdzapad-products__slider {
    overflow: visible;
}

.tdzapad-products__slide {
    height: auto;
}

.tdzapad-products__card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 19rem;
    height: 100%;
    padding: 1.5rem;
    overflow: hidden;
    color: var(--tdzapad-ink);
    background: #fff;
    border: 1px solid var(--tdzapad-border);
    border-radius: var(--tdzapad-radius);
    text-decoration: none;
    transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}

.tdzapad-products__card:hover,
.tdzapad-products__card:focus-visible {
    color: var(--tdzapad-ink);
    border-color: var(--tdzapad-border);
    box-shadow: 0 1rem 2rem rgba(16, 34, 70, .14);
    transform: translateY(-.25rem);
}

.tdzapad-products__card:hover .tdzapad-products__more .ar-arrow::before,
.tdzapad-products__card:focus-visible .tdzapad-products__more .ar-arrow::before {
    transform: rotate(45deg);
}

.tdzapad-products__card--media {
    padding: 0;
}

.tdzapad-products__media {
    display: block;
    overflow: hidden;
    aspect-ratio: 16 / 10;
}

.tdzapad-products__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}

.tdzapad-products__card--media:hover .tdzapad-products__media img,
.tdzapad-products__card--media:focus-visible .tdzapad-products__media img {
    transform: scale(1.06);
}

.tdzapad-products__card-body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
    padding: 1.5rem;
}

.tdzapad-products__number {
    position: absolute;
    top: 1.25rem;
    right: 1.25rem;
    color: color-mix(in srgb, var(--tdzapad-ink) 22%, transparent);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .08em;
}

.tdzapad-products__diagram {
    position: relative;
    display: block;
    width: 5.5rem;
    height: 5.5rem;
    margin: .25rem 0 1.75rem;
    border: 1px solid color-mix(in srgb, var(--tdzapad-ink) 18%, transparent);
    border-radius: 50%;
}

.tdzapad-products__diagram::before,
.tdzapad-products__diagram::after,
.tdzapad-products__diagram i {
    position: absolute;
    display: block;
    content: '';
    border-radius: 50%;
}

.tdzapad-products__diagram::before {
    inset: .75rem;
    border: 1px solid color-mix(in srgb, var(--tdzapad-ink) 18%, transparent);
}

.tdzapad-products__diagram::after {
    top: 50%;
    left: 50%;
    width: .5rem;
    height: .5rem;
    background: var(--tdzapad-accent);
    box-shadow: -1rem -1rem 0 rgba(236, 31, 36, .65), 1rem -1rem 0 rgba(236, 31, 36, .65), -1rem 1rem 0 rgba(236, 31, 36, .65), 1rem 1rem 0 rgba(236, 31, 36, .65);
    transform: translate(-50%, -50%);
}

.tdzapad-products__diagram i {
    width: .25rem;
    height: .25rem;
    background: color-mix(in srgb, var(--tdzapad-ink) 45%, transparent);
}

.tdzapad-products__diagram i:nth-child(1) {
    top: 1.55rem;
    left: 2.6rem;
}

.tdzapad-products__diagram i:nth-child(2) {
    top: 2.6rem;
    left: 1.55rem;
}

.tdzapad-products__diagram i:nth-child(3) {
    right: 1.55rem;
    bottom: 1.55rem;
}

.tdzapad-products__category {
    min-height: 2.2em;
    color: var(--tdzapad-muted);
    font-size: .6875rem;
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1.35;
    text-transform: uppercase;
}

.tdzapad-products__card h3 {
    margin: .625rem 0 .5rem;
    color: var(--tdzapad-ink);
    font-size: 1.25rem;
    font-weight: 700;
    line-height: 1.2;
}

.tdzapad-products__spec {
    color: var(--tdzapad-muted);
    font-size: .875rem;
    line-height: 1.45;
}

.tdzapad-products__more {
    margin-top: auto;
    padding-top: 1.25rem;
}

.tdzapad-products__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 1.5rem;
}

/* Product-page companion to the global "Популярные товары" module. It uses
   the same cards and carousel, but stays inside the product article so the
   following global module remains a clearly separate recommendation block. */
.tdzapad-related-products {
    padding: 0;
    margin-top: var(--tdzapad-section-space);
    margin-bottom: 0;
    max-width: 100%;
    overflow: hidden;
    background: transparent;
}

.tdzapad-related-products .tdzapad-products__card {
    background: #f7f8fa;
}

.tdzapad-related-products .tdzapad-products__slider {
    overflow: hidden;
    /* The viewport must clip the off-screen slides, but reserve enough room
       above them for the shared card hover lift and its shadow. */
    padding-top: .5rem;
}

.tdzapad-products__pagination {
    display: flex;
    gap: .375rem;
}

.tdzapad-products__pagination .swiper-pagination-bullet {
    width: .5rem;
    height: .5rem;
    margin: 0 !important;
    background: var(--tdzapad-ink);
    opacity: .2;
}

.tdzapad-products__pagination .swiper-pagination-bullet-active {
    width: 1.5rem;
    border-radius: 1rem;
    background: var(--tdzapad-accent);
    opacity: 1;
}

.tdzapad-products__controls {
    display: flex;
    gap: .5rem;
}

.tdzapad-products__controls button {
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    color: var(--tdzapad-ink);
    background: #fff;
    border: 1px solid var(--tdzapad-border);
    border-radius: 50%;
    transition: color .2s ease, background-color .2s ease, border-color .2s ease;
}

.tdzapad-products__controls button:hover:not(.swiper-button-disabled) {
    color: #fff;
    background: var(--tdzapad-ink);
    border-color: var(--tdzapad-ink);
}

.tdzapad-products__controls .swiper-button-disabled {
    opacity: .35;
    cursor: default;
}

.tdzapad-products__prev .ar-arrow {
    transform: rotate(180deg);
}

/* Catalogue component pages */
.tdzapad-component {
    grid-column: 1 / -1;
    width: 100%;
}

/* Breadcrumbs are one compact navigational row, shared by all component pages. */
.tdzapad-component>.mod-breadcrumbs__wrapper {
    margin: 1rem 0 0;
}

.tdzapad-component .mod-breadcrumbs {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
    padding: .75rem 0 !important;
    margin: 0;
    color: var(--tdzapad-muted, #74819a);
    font-size: .875rem;
    background: transparent;
    border-bottom: 1px solid rgba(15, 42, 82, .1);
}

.tdzapad-component .mod-breadcrumbs__here,
.tdzapad-component .mod-breadcrumbs__divider {
    display: none;
}

.tdzapad-component .breadcrumb-item {
    display: inline-flex;
    align-items: center;
}

.tdzapad-component .breadcrumb-item+.breadcrumb-item {
    padding-left: 0;
}

.tdzapad-component .breadcrumb-item+.breadcrumb-item::before {
    padding-right: .5rem;
    color: #a7b1c0;
    content: '›';
}

.tdzapad-component .breadcrumb-item a {
    color: var(--template-special-color);
    font-weight: 600;
    text-decoration: none;
}

.tdzapad-component .breadcrumb-item a:hover,
.tdzapad-component .breadcrumb-item a:focus-visible {
    color: var(--tdzapad-accent, #ed0808);
}

.tdzapad-component .breadcrumb-item.active {
    color: var(--tdzapad-muted, #74819a);
}

.tdzapad-category-page {
    padding-block: var(--tdzapad-section-space);
}

.view-category .tdzapad-category-page,
.view-album .tdzapad-category-page {
    padding-top: 2rem;
}

.view-album .tdzapad-category-page {
    border-bottom: 1px solid var(--tdzapad-border);
}

.tdzapad-category-page--with-process {
    padding-bottom: 0;
}

.tdzapad-category-page__header {

    margin-bottom: 2rem;
}

.tdzapad-category-page__eyebrow {
    margin: 0 0 .75rem;
    color: var(--tdzapad-muted, #74819a);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.tdzapad-category-page__header h1 {
    margin: 0;
    color: var(--template-special-color);
    font-size: clamp(2rem, 3.8vw, 3.5rem);
    font-weight: 700;
    line-height: 1.08;
}

.tdzapad-category-page__header h1::after {
    display: block;
    width: 4.75rem;
    height: .2rem;
    margin-top: 1rem;
    content: '';
    background: var(--tdzapad-accent, #ed0808);
}

.tdzapad-category-page__intro {
    max-width: 54rem;
    margin: 1.25rem 0 0;
    color: var(--tdzapad-muted, #74819a);
    font-size: .8rem;
    line-height: 1.5;
}

.tdzapad-category-page__description {
    margin-top: 1.25rem;
    color: var(--tdzapad-muted, #74819a);
}

.tdzapad-category-page__description> :last-child {
    margin-bottom: 0;
}

.tdzapad-category-page__section+.tdzapad-category-page__section {
    margin-top: 3rem;
}

.tdzapad-category-page__section h2 {
    margin-bottom: 2rem;
}

.tdzapad-category-page__categories {
    display: grid;
    grid-template-columns: 1fr;
    gap: .5rem;
}

.tdzapad-category-page__category {
    display: flex;
    align-items: center;
    min-width: 0;
    min-height: 3.75rem;
    padding: 1rem 1.125rem;
    color: var(--template-special-color);
    font-size: .9rem;
    font-weight: 600;
    line-height: 1.35;
    text-decoration: none;
    background: #fff;
    border: 1px solid rgba(15, 42, 82, .1);
    border-radius: .25rem;
    transition: color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.tdzapad-category-page__category:hover,
.tdzapad-category-page__category:focus-visible {
    color: var(--tdzapad-accent, #ed0808);
    border-color: rgba(237, 8, 8, .35);
    box-shadow: 0 .6rem 1.5rem rgba(16, 39, 74, .08);
    transform: translateY(-2px);
}

.tdzapad-category-page__dot {
    flex: 0 0 auto;
    width: .5rem;
    height: .5rem;
    margin-right: .875rem;
    background: var(--tdzapad-accent, #ed0808);
    border: .15rem solid #fff;
    border-radius: 50%;
    box-shadow: 0 0 0 .14rem rgba(237, 8, 8, .14);
    transition: transform .2s ease;
}

.tdzapad-category-page__category:hover .tdzapad-category-page__dot,
.tdzapad-category-page__category:focus-visible .tdzapad-category-page__dot {
    transform: scale(1.3);
}

.tdzapad-category-page__arrow {
    flex: 0 0 auto;
    margin-left: auto;
    color: #9ba8bb;
    transition: color .2s ease, transform .2s ease;
}

.tdzapad-category-page__category:hover .tdzapad-category-page__arrow,
.tdzapad-category-page__category:focus-visible .tdzapad-category-page__arrow {
    color: currentColor;
    transform: rotate(45deg);
}

.tdzapad-category-page__products {
    margin-top: 0;
}

.tdzapad-category-page__product {
    display: grid;
    grid-template-columns: 1.85rem minmax(0, 1fr) auto;
    gap: .75rem;
    align-items: center;
    min-height: 5.25rem;
    padding: 1rem;
    color: var(--tdzapad-ink);
    text-decoration: none;
    background: linear-gradient(90deg, rgba(16, 34, 70, .055), rgba(16, 34, 70, .012));
    background-repeat: no-repeat;
    background-size: 0 100%;
    border-bottom: 1px solid rgba(15, 42, 82, .1);
    transition: background-size .22s ease, border-color .22s ease;
}

.tdzapad-category-page__product-diagram {
    position: relative;
    display: block;
    width: 1.75rem;
    height: 1.75rem;
    border: 1px solid color-mix(in srgb, var(--tdzapad-ink) 18%, transparent);
    border-radius: 50%;
    transition: transform .22s ease, border-color .22s ease;
}

.tdzapad-category-page__product-diagram::before,
.tdzapad-category-page__product-diagram::after,
.tdzapad-category-page__product-diagram i {
    position: absolute;
    display: block;
    content: '';
    border-radius: 50%;
}

.tdzapad-category-page__product-diagram::before {
    inset: .24rem;
    border: 1px solid color-mix(in srgb, var(--tdzapad-ink) 18%, transparent);
}

.tdzapad-category-page__product-diagram::after {
    top: 50%;
    left: 50%;
    width: .24rem;
    height: .24rem;
    background: var(--tdzapad-accent);
    box-shadow: -.34rem -.34rem 0 rgba(236, 31, 36, .65), .34rem -.34rem 0 rgba(236, 31, 36, .65), -.34rem .34rem 0 rgba(236, 31, 36, .65), .34rem .34rem 0 rgba(236, 31, 36, .65);
    transform: translate(-50%, -50%);
}

.tdzapad-category-page__product-diagram i {
    width: .11rem;
    height: .11rem;
    background: color-mix(in srgb, var(--tdzapad-ink) 45%, transparent);
}

.tdzapad-category-page__product-diagram i:nth-child(1) {
    top: .5rem;
    left: .82rem;
}

.tdzapad-category-page__product-diagram i:nth-child(2) {
    top: .82rem;
    left: .5rem;
}

.tdzapad-category-page__product-diagram i:nth-child(3) {
    right: .5rem;
    bottom: .5rem;
}

.tdzapad-category-page__product:hover,
.tdzapad-category-page__product:focus-visible {
    color: var(--tdzapad-ink);
    background-size: 100% 100%;
    border-color: rgba(16, 34, 70, .2);
}

.tdzapad-category-page__product:hover .tdzapad-category-page__product-diagram,
.tdzapad-category-page__product:focus-visible .tdzapad-category-page__product-diagram {
    border-color: color-mix(in srgb, var(--tdzapad-accent) 45%, var(--tdzapad-border));
    transform: rotate(10deg);
}

.tdzapad-category-page__product h3 {
    margin: 0;
    font-size: .8rem;
    line-height: 1.3;
}

.tdzapad-category-page__product p {
    display: -webkit-box;
    max-width: 58rem;
    margin: .4rem 0 0;
    overflow: hidden;
    color: var(--tdzapad-muted, #74819a);
    font-size: .9rem;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.tdzapad-category-page__product-link {
    display: inline-flex;
    justify-self: end;
    gap: .5rem;
    align-items: center;
    color: var(--template-special-color);
    font-size: .625rem;
    font-weight: 700;
    text-decoration: none;
    text-transform: uppercase;
}

.tdzapad-category-page__product-link .ar-arrow {
    transition: transform .2s ease;
}

.tdzapad-category-page__product:hover .tdzapad-category-page__product-link,
.tdzapad-category-page__product:focus-visible .tdzapad-category-page__product-link {
    color: var(--tdzapad-ink);
}

.tdzapad-category-page__product:hover .tdzapad-category-page__product-link .ar-arrow,
.tdzapad-category-page__product:focus-visible .tdzapad-category-page__product-link .ar-arrow {
    transform: rotate(45deg);
}

.tdzapad-category-page__empty {
    max-width: 42rem;
    padding: 1.25rem 1.5rem;
    margin: 0;
    color: var(--tdzapad-muted, #74819a);
    background: #f4f6f9;
    border-left: .25rem solid var(--tdzapad-accent, #ed0808);
}

.tdzapad-category-page__pagination {
    display: flex;
    justify-content: center;
    padding: 2rem 0;
}

.tdzapad-category-page__pagination .pagination__wrapper {
    display: block;
}

.tdzapad-category-page__pagination .pagination {
    gap: .375rem;
    margin: 0 !important;
    padding: 0;
}

.tdzapad-category-page__pagination .page-link {
    display: grid;
    min-width: 2.5rem;
    height: 2.5rem;
    padding: 0 .625rem;
    color: var(--tdzapad-ink);
    background: #fff;
    border: 1px solid var(--tdzapad-border);
    border-radius: .25rem !important;
    font-size: .875rem;
    font-weight: 700;
    line-height: 1;
    place-items: center;
    transition: color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease;
}

.tdzapad-category-page__pagination .page-item:not(.disabled) .page-link:hover,
.tdzapad-category-page__pagination .page-item:not(.disabled) .page-link:focus-visible {
    color: #fff;
    background: var(--tdzapad-accent);
    border-color: var(--tdzapad-accent);
    transform: translateY(-1px);
}

.tdzapad-category-page__pagination .page-item.active .page-link {
    color: #fff;
    background: var(--tdzapad-ink);
    border-color: var(--tdzapad-ink);
}

.tdzapad-category-page__pagination .page-item.disabled .page-link {
    color: #a7b1c0;
    background: #f4f6f9;
    border-color: #edf0f4;
}

.tdzapad-category-page__process-wrap {
    position: relative;
    padding-block: 1.5rem;
    margin-top: 3rem;
    background: #f4f6f9;
    border-block: 1px solid rgba(15, 42, 82, .07);
    box-shadow: 0 0 0 100vmax #f4f6f9;
    clip-path: inset(0 -100vmax);
}

.tdzapad-category-page__process-wrap .tdzapad-about-home__process {
    width: 100%;
    padding-block: .375rem 1.875rem;
    margin: 0;
}

.tdzapad-category-page__process-wrap .tdzapad-about-home__process-icon {
    background: #fff;
    box-shadow: 0 .25rem .75rem rgba(16, 34, 70, .04);
}

/* Product page: catalogue fields are the source of truth. The layout makes
   the macro sizes scannable and turns them into a single, reusable quote flow. */
.tdzapad-product-page {
    padding: 1.25rem 0 var(--tdzapad-section-space);
}

.tdzapad-product-page__header {
    max-width: 70rem;
    margin-bottom: 2rem;
}

.tdzapad-product-page__request-diagram {
    position: relative;
    display: block;
    flex: 0 0 auto;
    width: 4.5rem;
    height: 4.5rem;
    border: 1px solid color-mix(in srgb, var(--tdzapad-ink) 18%, transparent);
    border-radius: 50%;
}

.tdzapad-product-page__request-diagram::before,
.tdzapad-product-page__request-diagram::after,
.tdzapad-product-page__request-diagram i {
    position: absolute;
    display: block;
    content: '';
    border-radius: 50%;
}

.tdzapad-product-page__request-diagram::before {
    inset: .65rem;
    border: 1px solid color-mix(in srgb, var(--tdzapad-ink) 18%, transparent);
}

.tdzapad-product-page__request-diagram::after {
    top: 50%;
    left: 50%;
    width: .42rem;
    height: .42rem;
    background: var(--tdzapad-accent);
    box-shadow: -.82rem -.82rem 0 rgba(236, 31, 36, .65), .82rem -.82rem 0 rgba(236, 31, 36, .65), -.82rem .82rem 0 rgba(236, 31, 36, .65), .82rem .82rem 0 rgba(236, 31, 36, .65);
    transform: translate(-50%, -50%);
}

.tdzapad-product-page__request-diagram i {
    width: .22rem;
    height: .22rem;
    background: color-mix(in srgb, var(--tdzapad-ink) 45%, transparent);
}

.tdzapad-product-page__request-diagram i:nth-child(1) {
    top: 1.25rem;
    left: 2.1rem;
}

.tdzapad-product-page__request-diagram i:nth-child(2) {
    top: 2.1rem;
    left: 1.25rem;
}

.tdzapad-product-page__request-diagram i:nth-child(3) {
    right: 1.25rem;
    bottom: 1.25rem;
}

.tdzapad-product-page__eyebrow {
    margin-bottom: .5rem;
    color: var(--tdzapad-muted);
    font-size: .6875rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.tdzapad-product-page__title {
    margin: 0;
    color: var(--tdzapad-ink);
    font-size: clamp(2rem, 3.8vw, 3.5rem);
    font-weight: 700;
    line-height: 1.08;
}

.tdzapad-product-page__title::after {
    display: block;
    width: 4.75rem;
    height: .2rem;
    margin-top: 1rem;
    content: '';
    background: var(--tdzapad-accent);
}

.tdzapad-product-page__intro {
    max-width: 58rem;
    margin: 1rem 0 0;
    color: var(--tdzapad-muted);
    font-size: 1rem;
    line-height: 1.6;
}

.tdzapad-product-page__standards {
    display: flex;
    flex-wrap: wrap;
    gap: .625rem;
    margin-top: 1.5rem;
}

.tdzapad-product-page__standard {
    display: inline-flex;
    gap: .375rem;
    align-items: center;
    padding: .375rem .5rem;
    color: var(--tdzapad-ink);
    background: #fff;
    border: 1px solid var(--tdzapad-border);
    border-radius: var(--tdzapad-radius);
    font-size: .5875rem;
    line-height: 1.25;
}

.tdzapad-product-page__standard span {
    color: var(--tdzapad-muted);
    font-size: .5625rem;
    font-weight: 700;
    letter-spacing: .05em;
}

.tdzapad-product-page__standard--available {
    padding: 0;
    color: #237a42;
    background: none;
    border: 0;
}

.tdzapad-product-page__standard-dot {
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    background: #237a42;
    border-radius: 50%;
}

.tdzapad-product-page__nomenclature {
    display: flex;
    flex-direction: column;
    height: 34rem;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--tdzapad-border);
    border-radius: var(--tdzapad-radius);
}

.tdzapad-product-page__section-heading {
    display: flex;
    gap: 1rem;
    align-items: end;
    justify-content: space-between;
    flex: 0 0 auto;
    padding: 1.125rem 1.5rem;
    border-bottom: 1px solid var(--tdzapad-border);
}

.tdzapad-product-page__section-heading h2,
.tdzapad-product-page__request h2 {
    margin: 0;
    color: var(--tdzapad-ink);
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.2;
}

.tdzapad-product-page__list-note,
.tdzapad-product-page__hint {
    color: var(--tdzapad-muted);
    font-size: .8125rem;
    line-height: 1.45;
}

.tdzapad-product-page__nomenclature-list .item-list,
.tdzapad-product-page__nomenclature-list .item-abc {
    padding: 0;
    margin: 0;
    list-style: none;
}

.tdzapad-product-page__nomenclature-list {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-color: rgba(16, 34, 70, .28) transparent;
    scrollbar-width: thin;
}

.tdzapad-product-page__nomenclature-list .item-abc li {
    position: relative;
    display: grid;
    grid-template-columns: 1.85rem minmax(0, 1fr) auto;
    gap: .75rem;
    align-items: center;
    min-height: 4rem;
    padding: .875rem 1rem;
    color: var(--tdzapad-ink);
    cursor: pointer;
    background: linear-gradient(90deg, rgba(16, 34, 70, .055), rgba(16, 34, 70, .01));
    background-repeat: no-repeat;
    background-size: 0 100%;
    border-bottom: 1px solid var(--tdzapad-border);
    font-size: .9rem;
    font-weight: 700;
    line-height: 1.35;
    transition: background-size .2s ease, color .2s ease;
}

.tdzapad-product-page__nomenclature-list .item-abc li:last-child {
    border-bottom: 0;
}

.tdzapad-product-page__nomenclature-list .item-abc li::before {
    width: .45rem;
    height: .45rem;
    margin-right: 0;
    content: '';
    background: var(--tdzapad-accent);
    border: .15rem solid #fff;
    border-radius: 50%;
    box-shadow: 0 0 0 .14rem rgba(229, 2, 1, .14);
}

.tdzapad-product-page__nomenclature-action {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    justify-self: end;
    min-width: 8.5rem;
    min-height: 2.25rem;
    padding: .5rem .75rem;
    font-size: .625rem;
    color: var(--tdzapad-ink);
    white-space: nowrap;
    pointer-events: none;
    background: #fff;
    border-color: var(--tdzapad-border);
    border-radius: calc(var(--tdzapad-radius) * .65);
}

.tdzapad-product-page__nomenclature-action .ar-arrow {
    width: .75rem;
    height: .75rem;
}

.tdzapad-product-page__nomenclature-list .item-abc li:hover,
.tdzapad-product-page__nomenclature-list .item-abc li:focus-visible {
    color: var(--tdzapad-ink);
    background-size: 100% 100%;
    outline: none;
}

.tdzapad-product-page__nomenclature-list .item-abc li:hover .tdzapad-product-page__nomenclature-action,
.tdzapad-product-page__nomenclature-list .item-abc li:focus-visible .tdzapad-product-page__nomenclature-action {
    color: #fff;
    background: var(--tdzapad-ink);
    border-color: var(--tdzapad-ink);
}

.tdzapad-product-page__nomenclature-list .item-abc li:hover .ar-arrow::before,
.tdzapad-product-page__nomenclature-list .item-abc li:focus-visible .ar-arrow::before {
    transform: rotate(45deg);
}

.tdzapad-product-page__hint {
    flex: 0 0 auto;
    padding: 1rem 1.5rem;
    background: #f8fafc;
}

.tdzapad-product-page__request {
    position: relative;
    min-height: 0;
    padding: 1.5rem;
    overflow: hidden;
    background: #f4f6f9;
    border: 1px solid var(--tdzapad-border);
    border-radius: var(--tdzapad-radius);
}

.tdzapad-product-page__request>p {
    position: relative;
    z-index: 1;
    margin: .75rem 0 1.25rem;
    color: var(--tdzapad-muted);
    font-size: .9375rem;
    line-height: 1.55;
}

.tdzapad-product-page__request .tdzapad-product-page__standards {
    position: relative;
    z-index: 1;
    margin: 0 0 1.125rem;
}

.tdzapad-product-page__request .tdzapad-product-page__eyebrow {
    position: relative;
    z-index: 1;
}

.tdzapad-product-page__request-button {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: space-between;
    width: 100%;
    margin-top: 1.5rem;
}

.tdzapad-product-page__direct-contact {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr;
    gap: .5rem;
    margin-top: .875rem;
}

.tdzapad-product-page__direct-contact-chip {
    display: inline-flex;
    align-items: center;
    gap: .4375rem;
    padding: .5rem .75rem;
    color: var(--tdzapad-ink);
    background: #fff;
    border: 1px solid var(--tdzapad-border);
    border-radius: var(--tdzapad-radius);
    font-size: .8125rem;
    font-weight: 700;
    text-decoration: none;
    transition: color .18s ease, border-color .18s ease;
}

.tdzapad-product-page__direct-contact-chip:hover {
    color: var(--tdzapad-accent);
    border-color: color-mix(in srgb, var(--tdzapad-accent) 45%, transparent);
}

.tdzapad-product-page__direct-contact-chip--mail {
    display: none;
}

.tdzapad-product-page__direct-contact-icon {
    flex: 0 0 14px;
    width: 14px;
    height: 14px;
    background-color: var(--tdzapad-accent);
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
}

.tdzapad-product-page__direct-contact-icon--phone {
    -webkit-mask-image: url('/images/ico/footer-phone.svg');
    mask-image: url('/images/ico/footer-phone.svg');
}

.tdzapad-product-page__direct-contact-icon--mail {
    -webkit-mask-image: url('/images/ico/footer-mail.svg');
    mask-image: url('/images/ico/footer-mail.svg');
}

.tdzapad-product-page__request-diagram {
    position: absolute;
    right: -1.5rem;
    bottom: -1.5rem;
    width: 10rem;
    height: 10rem;
    opacity: .2;
    transform: rotate(-18deg);
}

.tdzapad-product-page__request-diagram::before {
    inset: 1.45rem;
}

.tdzapad-product-page__request-diagram::after {
    width: .9rem;
    height: .9rem;
    box-shadow: -1.8rem -1.8rem 0 rgba(236, 31, 36, .65), 1.8rem -1.8rem 0 rgba(236, 31, 36, .65), -1.8rem 1.8rem 0 rgba(236, 31, 36, .65), 1.8rem 1.8rem 0 rgba(236, 31, 36, .65);
}

.tdzapad-product-page__request-diagram i {
    width: .5rem;
    height: .5rem;
}

.tdzapad-product-page__request-diagram i:nth-child(1) {
    top: 2.75rem;
    left: 4.75rem;
}

.tdzapad-product-page__request-diagram i:nth-child(2) {
    top: 4.75rem;
    left: 2.75rem;
}

.tdzapad-product-page__request-diagram i:nth-child(3) {
    right: 2.75rem;
    bottom: 2.75rem;
}

.tdzapad-product-page__benefits {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 1rem;
    padding-top: 1.5rem;
    margin-top: 1.5rem !important;
    border-top: 1px solid rgba(16, 34, 70, .1);
}

.tdzapad-product-page__benefits li {
    display: grid;
    grid-template-columns: 1.75rem minmax(0, 1fr);
    gap: .75rem;
    align-items: start;
}

.tdzapad-product-page__benefits li>span {
    display: grid;
    width: 1.75rem;
    height: 1.75rem;
    color: var(--tdzapad-accent);
    border: 1px solid color-mix(in srgb, var(--tdzapad-accent) 35%, transparent);
    border-radius: 50%;
    place-items: center;
}

.tdzapad-product-page__benefits li>span svg {
    width: 17px;
    height: 17px;
}

.tdzapad-product-page__benefits strong,
.tdzapad-product-page__benefits small {
    display: block;
}

.tdzapad-product-page__benefits strong {
    color: var(--tdzapad-ink);
    font-size: .8125rem;
}

.tdzapad-product-page__benefits small {
    margin-top: .15rem;
    color: var(--tdzapad-muted);
    font-size: .75rem;
    line-height: 1.4;
}

.tdzapad-product-page__perks {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.75rem 2rem;
    padding: 0;
    margin-block: var(--tdzapad-section-space);
}

.tdzapad-product-page__perks-item {
    display: flex;
    align-items: flex-start;
    gap: .875rem;
}

.tdzapad-product-page__perks-icon {
    display: grid;
    flex: 0 0 2.75rem;
    width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    color: var(--tdzapad-accent);
    background: #f5f8fb;
    border-radius: 50%;
}

.tdzapad-product-page__perks-icon svg {
    width: 1.375rem;
    height: 1.375rem;
}

.tdzapad-product-page__perks-body strong {
    display: block;
    color: var(--tdzapad-ink);
    font-size: .9375rem;
    font-weight: 700;
    line-height: 1.3;
}

.tdzapad-product-page__perks-body small {
    display: block;
    margin-top: .3rem;
    color: var(--tdzapad-muted);
    font-size: .8125rem;
    line-height: 1.45;
}

.tdzapad-product-page__details {
    margin-top: var(--tdzapad-section-space);
}

.tdzapad-product-page__perks+.tdzapad-product-page__details {
    margin-top: 0;
}

.tdzapad-product-page__tabs {
    gap: .25rem;
    border-bottom: 1px solid var(--tdzapad-border);
}

.tdzapad-product-page__tabs .nav-link {
    position: relative;
    padding: .875rem 1.25rem;
    color: var(--tdzapad-muted);
    background: transparent;
    border: 0;
    font-size: .875rem;
    font-weight: 700;
}

.tdzapad-product-page__tabs .nav-link::after {
    position: absolute;
    right: 1.25rem;
    bottom: -1px;
    left: 1.25rem;
    height: .2rem;
    content: '';
    background: transparent;
}

.tdzapad-product-page__tabs .nav-link.active,
.tdzapad-product-page__tabs .nav-link:hover,
.tdzapad-product-page__tabs .nav-link:focus-visible {
    color: var(--tdzapad-ink);
}

.tdzapad-product-page__tabs .nav-link.active::after {
    background: var(--tdzapad-accent);
}

.tdzapad-product-page__tab-content {
    padding-top: 2rem;
}

.tdzapad-product-page__accordion {
    --bs-accordion-border-color: var(--tdzapad-border);
    --bs-accordion-active-color: var(--tdzapad-accent);
    --bs-accordion-active-bg: transparent;
    --bs-accordion-btn-padding-x: 0;
    --bs-accordion-btn-padding-y: 1.125rem;
    --bs-accordion-body-padding-x: 0;
    --bs-accordion-body-padding-y: 0 0 1.375rem;
    --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23667085' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
    --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23e50201' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}

.tdzapad-product-page__accordion .accordion-item {
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--tdzapad-border);
}

.tdzapad-product-page__accordion .accordion-item:last-child {
    border-bottom: 0;
}

.tdzapad-product-page__accordion .accordion-button {
    color: var(--tdzapad-ink);
    font-size: .9375rem;
    font-weight: 700;
    box-shadow: none;
}

.tdzapad-product-page__accordion .accordion-button:focus {
    box-shadow: none;
}

.tdzapad-product-page__accordion .accordion-button:not(.collapsed) {
    color: var(--tdzapad-accent);
}

.tdzapad-product-page__field-content {
    color: var(--tdzapad-muted);
    font-size: .9375rem;
    line-height: 1.65;
}

.tdzapad-product-page__field-content a {
    color: var(--tdzapad-ink);
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    transition: color .18s ease;
}

.tdzapad-product-page__field-content a:hover {
    color: var(--tdzapad-accent);
}

.tdzapad-product-page__process-wrap {
    margin-top: 1.75rem;
    padding: .375rem 1.5rem 1.125rem;
    background: #f4f6f9;
    border: 1px solid var(--tdzapad-border);
    border-radius: var(--tdzapad-radius);
}

.tdzapad-product-page__process-wrap .tdzapad-about-home__process {
    width: 100%;
    margin: 0;
}

.tdzapad-product-page__process-wrap .tdzapad-about-home__process-icon {
    background: #fff;
}

.tdzapad-product-page__field-content .letters,
.tdzapad-product-page__field-content .just-symbol {
    display: inline-block;
    margin-right: .15rem;
    color: var(--tdzapad-ink);
    font-size: 1.5rem;
    font-weight: 700;
}

.tdzapad-product-page__field-content .item-decode-description {
    margin-top: 1rem;
}

.tdzapad-decode {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.tdzapad-decode__row {
    display: grid;
    grid-template-columns: minmax(3rem, auto) 1fr;
    gap: 1rem;
    align-items: center;
}

.tdzapad-decode__letter {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: .375rem .625rem;
    color: var(--tdzapad-ink);
    background: var(--tdzapad-nav-bg);
    border: 1px solid var(--tdzapad-border);
    border-radius: var(--tdzapad-radius);
    font-size: 1.0625rem;
    font-weight: 700;
    text-align: center;
}

.tdzapad-decode__desc {
    color: var(--tdzapad-muted);
    font-size: .9375rem;
    line-height: 1.5;
}

.tdzapad-article-container {
    margin-top: var(--tdzapad-section-space);
    padding-bottom: var(--tdzapad-section-space);
    border-bottom: 1px solid var(--tdzapad-border);
}

.com-content-article__body {
    color: var(--tdzapad-muted);
}

.com-content-article__body ul {
    display: grid;
    gap: .75rem;
    margin: 1rem 0 1.5rem;
    padding: 0;
    list-style: none;
    overflow: visible;
}

.com-content-article__body ul li {
    position: relative;
    padding-left: 1.5rem;
    line-height: 1.6;
}

.com-content-article__body ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: .55em;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--tdzapad-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--tdzapad-accent) 11%, transparent);
}

.tdzapad-accent-text {
    color: var(--tdzapad-accent);
}

.tdzapad-stats {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
    margin: 2rem 0;
    padding: 2rem 0;
    text-align: center;
    border-top: 1px solid var(--tdzapad-border);
    border-bottom: 1px solid var(--tdzapad-border);
}

.tdzapad-stats__number {
    display: block;
    color: var(--tdzapad-ink);
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    font-weight: 700;
    line-height: 1.1;
}

.tdzapad-stats__label {
    display: block;
    margin-top: .5rem;
    color: var(--tdzapad-muted);
    font-size: .9375rem;
}

.tdzapad-stats--compact {
    gap: 1rem;
    margin: 1.5rem 0;
    padding: 1.25rem;
    background: var(--tdzapad-nav-bg);
    border: 0;
    border-radius: var(--tdzapad-radius);
}

.tdzapad-stats--compact .tdzapad-stats__number {
    font-size: clamp(1.375rem, 2vw, 1.75rem);
}

.tdzapad-stats--compact .tdzapad-stats__label {
    margin-top: .25rem;
    font-size: .8125rem;
    line-height: 1.3;
}

.tdzapad-service-tiles {
    margin: 2rem 0 0;
}

.tdzapad-service-tile {
    display: flex;
    align-items: center;
    gap: 1rem;
    height: 100%;
    padding: 1.25rem 1.5rem;
    background: #fff;
    border: 1px solid var(--tdzapad-border);
    border-radius: var(--tdzapad-radius);
    color: var(--tdzapad-ink) !important;
    text-decoration: none !important;
    transition: transform .2s ease, box-shadow .2s ease;
}

.tdzapad-service-tile:hover,
.tdzapad-service-tile:focus-visible {
    transform: translateY(-3px);
    box-shadow: 0 1rem 2rem rgba(16, 34, 70, .14);
}

.tdzapad-service-tile:hover .ar-arrow::before,
.tdzapad-service-tile:focus-visible .ar-arrow::before {
    transform: rotate(45deg);
}

.tdzapad-service-tile__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    background: var(--tdzapad-nav-bg);
    color: var(--tdzapad-accent);
}

.tdzapad-service-tile__icon svg {
    width: 1.375rem;
    height: 1.375rem;
}

.tdzapad-service-tile__title {
    font-weight: 700;
    font-size: .9375rem;
    line-height: 1.3;
}

.tdzapad-about-row {
    margin: 2rem 0;
}

.tdzapad-video-embed {
    border-radius: 1.25rem;
    overflow: hidden;
    background: #000;
}

.tdzapad-video-embed video {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.tdzapad-product-page__field-content .table-params,
.com-content-article__body .table-params {
    width: 100%;
    border-collapse: collapse;
    margin: 1.5rem 0;
}



.tdzapad-product-page__field-content .table-params .param-name,
.com-content-article__body .table-params .param-name {
    width: 45%;
    color: var(--tdzapad-ink);
    font-weight: 700;
}

.tdzapad-about-home__grid {
    display: grid;
    gap: 2rem;
}

.tdzapad-about-home__intro {
    max-width: 32rem;
}

.tdzapad-about-home__title {
    max-width: 31rem;
    margin-bottom: 2rem;
    font-size: clamp(2rem, 3.1vw, 3rem);
    font-weight: 800;
    line-height: 1.12;
}

.tdzapad-about-home__lead {
    margin: 0;
    color: var(--tdzapad-muted);
    font-size: 1.125rem;
    line-height: 1.55;
}

.tdzapad-about-home__text {
    margin: .75rem 0 0;
    color: var(--tdzapad-muted);
    font-size: .9375rem;
    line-height: 1.7;
}

.tdzapad-about-home__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .875rem;
    margin-top: 1.625rem;
}

.tdzapad-about-home__actions .knopka2 {
    color: var(--tdzapad-ink);
    background: #fff;
    border-color: var(--tdzapad-border);
}

.tdzapad-about-home__actions .knopka2:hover {
    color: #fff;
    background: var(--tdzapad-ink);
    border-color: var(--tdzapad-ink);
}

.tdzapad-about-home__video {
    position: relative;
    display: block;
    min-height: 0;
    aspect-ratio: 2 / 1;
    overflow: hidden;
    border-radius: 1.25rem;
    background: transparent;
    box-shadow: none;
    color: #fff;
    text-decoration: none;
}

.tdzapad-about-home__video img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}

.tdzapad-about-home__play {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 1;
    display: grid;
    width: 5rem;
    height: 5rem;
    place-items: center;
    background: var(--tdzapad-accent);
    border-radius: 50%;
    box-shadow: 0 .75rem 1.5rem rgba(236, 31, 36, .28);
    transform: translate(-50%, -50%);
    transition: transform .25s ease, background-color .25s ease;
}

.tdzapad-about-home__play svg {
    width: 2rem;
    height: 2rem;
    margin-left: .2rem;
    fill: currentColor;
}

.tdzapad-about-home__video:hover img,
.tdzapad-about-home__video:focus-visible img {
    transform: scale(1.035);
}

.tdzapad-about-home__video:hover .tdzapad-about-home__play,
.tdzapad-about-home__video:focus-visible .tdzapad-about-home__play {
    background: var(--tdzapad-ink);
    transform: translate(-50%, -50%) scale(1.08);
    color: #fff;
}

.tdzapad-about-home__video:focus-visible {
    outline: .1875rem solid var(--tdzapad-accent);
    outline-offset: .25rem;
}

.tdzapad-about-home__process {
    position: relative;
    display: grid;
    gap: 1.5rem;
    margin-top: .75rem;
    padding-top: 1.875rem;
    padding-bottom: 1.625rem;
}

.tdzapad-about-home__process-item {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    min-width: 0;
}

.tdzapad-about-home__process-icon {
    display: grid;
    flex: 0 0 3rem;
    width: 3rem;
    height: 3rem;
    place-items: center;
    color: var(--tdzapad-accent);
    background: #f5f8fb;
    border-radius: 50%;
}

.tdzapad-about-home__process-icon svg {
    width: 1.25rem;
    height: 1.25rem;
}

.tdzapad-about-home__process-body,
.tdzapad-about-home__process-title,
.tdzapad-about-home__process-text {
    display: block;
}

.tdzapad-about-home__process-title {
    color: var(--tdzapad-ink);
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.25;
}

.tdzapad-about-home__process-text {
    margin-top: .375rem;
    color: var(--tdzapad-muted);
    font-size: .8125rem;
    line-height: 1.45;
}

/* ---- Contact modal (RadicalForm, "modal-form" position) — adapted from artstal ---- */
.tdzapad-modal .modal-content {
    border: 0;
    border-radius: calc(var(--tdzapad-radius) * 2);
    box-shadow: 0 32px 80px rgba(16, 34, 70, .22);
}

.tdzapad-modal .modal-header {
    align-items: flex-start;
    padding: 1.375rem 1.25rem 0;
    border-bottom: 0;
}

.tdzapad-modal__eyebrow {
    color: var(--tdzapad-muted);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.tdzapad-modal .modal-title {
    color: var(--tdzapad-ink);
    font-size: 1.75rem;
    font-weight: 800;
}

.tdzapad-modal .btn-close {
    opacity: .5;
    transition: opacity .2s ease, transform .2s ease;
}

.tdzapad-modal .btn-close:hover,
.tdzapad-modal .btn-close:focus-visible {
    opacity: 1;
    transform: rotate(90deg);
}

.tdzapad-modal .modal-body {
    padding: 1rem 1.25rem 1.375rem;
}

.tdzapad-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.tdzapad-form-input-wrap {
    position: relative;
}

.tdzapad-form-icon {
    position: absolute;
    top: 50%;
    left: 1rem;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    color: var(--tdzapad-muted);
    pointer-events: none;
    transition: color .2s ease;
}

.tdzapad-form-icon svg {
    width: 100%;
    height: 100%;
}

.tdzapad-form-input {
    width: 100%;
    min-height: 52px;
    padding: 0.875rem 1rem 0.875rem 2.875rem;
    background: var(--tdzapad-nav-bg);
    border: 1px solid transparent;
    border-radius: var(--tdzapad-radius);
    color: var(--tdzapad-ink);
    font-family: inherit;
    font-size: 0.9375rem;
    transition: background .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.tdzapad-form-field--textarea .tdzapad-form-input {
    min-height: 96px;
    padding-left: 1rem;
    resize: none;
}

.tdzapad-form-input::placeholder {
    color: var(--tdzapad-muted);
}

.tdzapad-form-input:focus {
    outline: none;
    background: #fff;
    border-color: var(--tdzapad-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--tdzapad-accent) 14%, transparent);
}

.tdzapad-form-field:focus-within .tdzapad-form-icon {
    color: var(--tdzapad-accent);
}

.tdzapad-form-input.is-invalid {
    border-color: #e5484d;
    background: color-mix(in srgb, #e5484d 6%, transparent);
}

.tdzapad-form-input.is-invalid~.invalid-feedback {
    display: block;
}

.invalid-feedback {
    display: none;
    margin-top: 0.375rem;
    color: #e5484d;
    font-size: 0.75rem;
}

.tdzapad-form-upload {
    display: grid;
    gap: 0.375rem;
}

.tdzapad-form-upload__control {
    position: relative;
    display: inline-flex;
    width: fit-content;
}

.tdzapad-form-upload__button {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 42px;
    padding: 0.625rem 0.875rem;
    border: 1px solid color-mix(in srgb, var(--tdzapad-accent) 28%, transparent);
    border-radius: var(--tdzapad-radius);
    color: var(--tdzapad-ink);
    background: color-mix(in srgb, var(--tdzapad-accent) 7%, transparent);
    cursor: pointer;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.2;
    transition: color .2s ease, background .2s ease, border-color .2s ease;
}

.tdzapad-form-upload__button svg {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    color: var(--tdzapad-accent);
}

.tdzapad-form-upload__button:hover {
    border-color: var(--tdzapad-accent);
    background: color-mix(in srgb, var(--tdzapad-accent) 12%, transparent);
}

.tdzapad-form-upload__control:focus-within .tdzapad-form-upload__button {
    outline: 0;
    border-color: var(--tdzapad-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--tdzapad-accent) 18%, transparent);
}

.tdzapad-form-upload__input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.tdzapad-form-upload__hint,
.tdzapad-form-upload__files {
    color: var(--tdzapad-muted);
    font-size: 0.75rem;
    line-height: 1.4;
}

.tdzapad-form-upload__files>div {
    display: flex;
    align-items: center;
    gap: 0.3125rem;
    margin-top: 0.25rem;
}

.tdzapad-form-upload__files .rf-button-delete {
    flex: 0 0 14px;
    width: 14px;
    height: 14px;
}

.tdzapad-form-check {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 0.625rem;
}

.tdzapad-form-check .form-check-input {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    margin-top: 0.125rem;
    border: 1px solid var(--tdzapad-border);
}

.tdzapad-form-check .form-check-input:checked {
    background-color: var(--tdzapad-accent);
    border-color: var(--tdzapad-accent);
}

.tdzapad-form-check .form-check-input:focus {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--tdzapad-accent) 20%, transparent);
}

.tdzapad-form-check .form-check-input.is-invalid~.invalid-feedback {
    display: block;
}

.tdzapad-form-check .form-check-label {
    color: var(--tdzapad-muted);
    font-size: 0.8125rem;
    line-height: 1.4;
}

.tdzapad-form-submit {
    align-self: stretch;
    margin-top: 0.25rem;
}

/* ---- Site map (bottom-c, before the footer) ---- */
.tdzapad-site-map__frame {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 400px;
}

.tdzapad-site-map__frame iframe {
    width: 100% !important;
    height: 100% !important;
}

/* ---- Footer ---- */
.container-footer.footer {
    background: var(--tdzapad-ink);
}

.tdzapad-footer-main {
    padding: clamp(40px, 5vw, 64px) 0 28px;
}

/* The two link columns are d-none below lg, leaving the contacts column
   sitting alone at Bootstrap's col-6 (50%) with the other half empty —
   there's no sibling left to pair with. Give it the full row below lg
   (reverted to the normal col-lg-3 25% once those columns reappear).
   Deliberately less specific than the "html ..." lg revert in the
   breakpoints section at the top, so that one wins regardless of source
   order — matching specificity here would let source order decide instead. */
.tdzapad-footer-main .row>div:has(.tdzapad-footer-contacts) {
    flex: none;
    width: 100%;
}

.tdzapad-footer-brand img {
    height: 48px;
    width: auto;
}

.tdzapad-footer-brand__text {
    max-width: 260px;
    margin: 0.75rem 0 0;
    color: rgba(255, 255, 255, 0.6);
    font-size: 13px;
    line-height: 1.5;
}

.tdzapad-footer-social {
    display: flex;
    gap: 10px;
    margin-top: 18px;
}

.tdzapad-social-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    color: #fff;
    border: 0;
    border-radius: 50%;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}

.tdzapad-social-btn img {
    display: block;
    width: 16px;
    height: 16px;
    object-fit: contain;
}

.tdzapad-social-btn--telegram {
    background: #26a5e4;
}

.tdzapad-social-btn--whatsapp {
    background: #25d366;
}

.tdzapad-social-btn:hover,
.tdzapad-social-btn:focus-visible {
    color: #fff;
    transform: translateY(-1px);
    filter: saturate(1.08);
}

.tdzapad-footer-col__title {
    margin-bottom: 16px;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.tdzapad-footer-col__list {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.tdzapad-footer-col__list a {
    color: rgba(255, 255, 255, 0.72);
    font-size: 14px;
    text-decoration: none;
    transition: color 0.18s ease;
}

.tdzapad-footer-col__list a:hover {
    color: #fff;
}

.tdzapad-footer-contacts {
    display: grid;
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.tdzapad-footer-contacts li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: rgba(255, 255, 255, 0.72);
    font-size: 14px;
    line-height: 1.4;
}

.tdzapad-footer-contacts a {
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
    transition: color 0.18s ease;
}

.tdzapad-footer-contacts a[href^="tel:"] {
    font-weight: 700;
}

.tdzapad-footer-contacts a:hover {
    color: #fff;
}

.tdzapad-footer-contacts__icon {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    margin-top: 2px;
    background-color: rgba(255, 255, 255, 0.55);
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
}

.tdzapad-footer-contacts__icon--pin {
    -webkit-mask-image: url('/images/ico/footer-pin.svg');
    mask-image: url('/images/ico/footer-pin.svg');
}

.tdzapad-footer-contacts__icon--phone {
    -webkit-mask-image: url('/images/ico/footer-phone.svg');
    mask-image: url('/images/ico/footer-phone.svg');
}

.tdzapad-footer-contacts__icon--mail {
    -webkit-mask-image: url('/images/ico/footer-mail.svg');
    mask-image: url('/images/ico/footer-mail.svg');
}

.tdzapad-footer-contacts__icon--clock {
    -webkit-mask-image: url('/images/ico/footer-clock.svg');
    mask-image: url('/images/ico/footer-clock.svg');
}

.tdzapad-footer-bottom {
    margin-top: clamp(28px, 4vw, 40px);
    padding-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.5);
    font-size: 12.5px;
}

.tdzapad-footer-legal {
    color: rgba(255, 255, 255, 0.5);
    text-decoration: none;
    transition: color 0.18s ease;
}

.tdzapad-footer-legal:hover {
    color: #fff;
}

.footer {
    color: #fff;
    background-color: var(--tdzapad-ink);
    background-image: none;
    margin-top: 0em;
}

/* ---- Search results page (com_finder) ---- */
.com-finder {
    padding: 1.25rem 0 var(--tdzapad-section-space);
}

.com-finder .tdzapad-category-page__header {
    margin-bottom: 2rem;
}

.com-finder__form fieldset {
    margin: 0;
    padding: 0;
    border: 0;
}

.com-finder__form .mod-finder__search {
    display: flex;
    flex-wrap: nowrap;
    max-width: 28rem;
}

.com-finder__form .js-finder-search-query {
    padding: .625rem 1.25rem;
    border: 1.5px solid var(--tdzapad-border);
    border-right: 0;
    border-radius: var(--tdzapad-radius) 0 0 var(--tdzapad-radius);
    font-size: .9375rem;
}

.com-finder__form .js-finder-search-query:focus {
    border-color: var(--tdzapad-border);
    box-shadow: none;
}

.com-finder__form .mod-finder__search .btn {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 3rem;
    color: #fff;
    background: var(--tdzapad-accent);
    border: 1.5px solid var(--tdzapad-accent);
    border-radius: 0 var(--tdzapad-radius) var(--tdzapad-radius) 0;
}

.com-finder__form .mod-finder__search .btn:hover {
    background: var(--tdzapad-accent-hover);
    border-color: var(--tdzapad-accent-hover);
}

.com-finder__explained {
    margin: 1.25rem 0;
    color: var(--tdzapad-muted);
    font-size: .9375rem;
}

.com-finder__explained a {
    color: var(--tdzapad-ink);
    font-weight: 700;
}

.com-finder__empty h2 {
    color: var(--tdzapad-ink);
    font-size: 1.25rem;
}

.com-finder__empty p {
    color: var(--tdzapad-muted);
}

.tdzapad-search-results {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
    margin: 1.5rem 0 0;
    padding: 0;
    list-style: none;
}

.tdzapad-search-results .tdzapad-products__card {
    min-height: 0;
}

.tdzapad-search-results .tdzapad-products__card h3 {
    margin-top: 0;
}

.tdzapad-search-results .tdzapad-products__more {
    padding-top: 1rem;
}

.tdzapad-search-results mark {
    background: transparent;
    color: inherit;
    font-weight: 700;
}

.com-finder__navigation {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 2rem;
}

.com-finder__navigation .pagination {
    gap: .375rem;
    margin: 0 !important;
    padding: 0;
}

.com-finder__navigation .page-link {
    display: grid;
    min-width: 2.5rem;
    height: 2.5rem;
    padding: 0 .625rem;
    color: var(--tdzapad-ink);
    background: #fff;
    border: 1px solid var(--tdzapad-border);
    border-radius: .25rem !important;
    font-size: .875rem;
    font-weight: 700;
    line-height: 1;
    place-items: center;
    transition: color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease;
}

.com-finder__navigation .page-item:not(.disabled) .page-link:hover,
.com-finder__navigation .page-item:not(.disabled) .page-link:focus-visible {
    color: #fff;
    background: var(--tdzapad-accent);
    border-color: var(--tdzapad-accent);
    transform: translateY(-1px);
}

.com-finder__navigation .page-item.active .page-link {
    color: #fff;
    background: var(--tdzapad-ink);
    border-color: var(--tdzapad-ink);
}

.com-finder__navigation .page-item.disabled .page-link {
    color: #a7b1c0;
    background: #f4f6f9;
    border-color: #edf0f4;
}

.com-finder__counter {
    color: var(--tdzapad-muted);
    font-size: .875rem;
}

.tdzapad-calc-main {
    margin: 1.5rem 0;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--tdzapad-border);
    border-radius: var(--tdzapad-radius);
}

.tdzapad-calc-main iframe {
    display: block;
    width: 100%;
    border: 0;
}

.tdzapad-calc-grid {
    margin: 1.5rem 0;
}

.tdzapad-calc-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    height: 100%;
    padding: 1.25rem;
    text-align: center;
    background: #fff;
    border: 1px solid var(--tdzapad-border);
    border-radius: var(--tdzapad-radius);
}

.tdzapad-calc-card__title {
    margin-bottom: 1rem;
    color: var(--tdzapad-ink);
    font-weight: 700;
    font-size: 1.0625rem;
}

.tdzapad-calc-card iframe {
    max-width: 100%;
    border: 0;
}

/* Below md there's no room for the card chrome (padding/border/background)
   without everything feeling cramped — just the heading plus plain table
   rows. Desktop reverts to the full card treatment (see the breakpoints
   section at the top). */
.tdzapad-req-block {
    padding: 0;
    margin: 0 0 1.5rem;
    background: none;
    border: 0;
    border-radius: 0;
}

.tdzapad-req-block__title {
    margin: 0 0 1rem;
    color: var(--tdzapad-ink);
    font-size: 1.125rem;
    font-weight: 700;
}

.tdzapad-req-block .table-params {
    margin: 0;
}

.tdzapad-req-block .table-params tr:last-child td {
    border-bottom: 0;
}

.tdzapad-req-bank {
    height: 100%;
    padding: 1.25rem;
    background: var(--tdzapad-nav-bg);
    border-radius: var(--tdzapad-radius);
}

.tdzapad-req-bank__title {
    margin: 0 0 .75rem;
    color: var(--tdzapad-ink);
    font-weight: 700;
    font-size: .9375rem;
}

.tdzapad-req-bank .table-params {
    margin: 0;
    background: transparent;
}

.noinfo .tdzapad-article-meta {
    display: none;
}

/* Dharma Gallery override: the shared component defaults crop everything
   to a 1:1 square, which mangles scanned документы (signatures/letterheads
   get cut off) and packs them edge-to-edge with no visual separation. */
.dharma-gallery .gallery-grid {
    gap: 1.25rem;
}

.dharma-gallery .gallery-grid__item {
    display: flex;
    aspect-ratio: auto;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--tdzapad-border);
    border-radius: var(--tdzapad-radius);
    box-shadow: 0 .25rem .75rem rgba(16, 34, 70, .06);
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease;
}

.dharma-gallery .gallery-grid__item:hover,
.dharma-gallery .gallery-grid__item:focus-visible {
    text-decoration: none;
}

.dharma-gallery .gallery-grid__item:hover {
    transform: translateY(-3px);
    box-shadow: 0 1rem 2rem rgba(16, 34, 70, .14);
}

.dharma-gallery .gallery-grid__thumb {
    display: block;
    aspect-ratio: 3 / 4;
    padding: .75rem;
    overflow: hidden;
}

.dharma-gallery .gallery-grid__thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: calc(var(--tdzapad-radius) - .125rem);
    transition: transform .3s ease;
}

.dharma-gallery .gallery-grid__item:hover .gallery-grid__thumb img {
    transform: scale(1.03);
}

.dharma-gallery .gallery-grid__caption {
    padding: 0 .875rem .875rem;
    color: var(--tdzapad-ink);
    font-size: .8125rem;
    font-weight: 600;
    line-height: 1.35;
    text-align: center;
    text-decoration: none;
}

.dharma-gallery .gallery-grid__item:hover .gallery-grid__caption,
.dharma-gallery .gallery-grid__item:focus-visible .gallery-grid__caption {
    color: var(--tdzapad-ink);
    text-decoration: none;
}

/* ---- Contacts page ---- */
.tdzapad-contact-card {
    height: 100%;
    padding: 2rem;
    background: #fff;
    border: 1px solid var(--tdzapad-border);
    border-radius: var(--tdzapad-radius);
}

.tdzapad-contact-card__eyebrow {
    margin: 0 0 .5rem;
    color: var(--tdzapad-accent);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.tdzapad-contact-card__title {
    margin: 0 0 1.5rem;
    color: var(--tdzapad-ink);
    font-size: 1.5rem;
    font-weight: 800;
}

.tdzapad-contact-card__row {
    padding: 1rem 0;
    border-top: 1px solid var(--tdzapad-border);
}

.tdzapad-contact-card__row:first-of-type {
    padding-top: 0;
    border-top: 0;
}

.tdzapad-contact-card__label {
    display: block;
    margin-bottom: .375rem;
    color: var(--tdzapad-muted);
    font-size: .875rem;
}

.tdzapad-contact-card__value {
    color: var(--tdzapad-ink);
    font-weight: 700;
    font-size: 1.0625rem;
}

.tdzapad-contact-card__value a {
    color: var(--tdzapad-ink);
    text-decoration: none;
}

.tdzapad-contact-card__value a:hover {
    color: var(--tdzapad-accent);
}

.tdzapad-contact-card__messengers-label {
    display: block;
    margin: 1.5rem 0 .75rem;
    color: var(--tdzapad-muted);
    font-size: .875rem;
}

.tdzapad-contact-card__messengers {
    display: flex;
    gap: .625rem;
}

.tdzapad-contact-card__cta {
    margin-top: 1.75rem;
}

.tdzapad-contact-map {
    position: relative;
    height: 100%;
    min-height: 320px;
    overflow: hidden;
    border-radius: var(--tdzapad-radius);
}

.tdzapad-contact-map iframe {
    width: 100% !important;
    height: 100% !important;
    min-height: 320px;
    border: 0;
}

.layout-blog .mod-breadcrumbs li:last-child {
    display: none;
}

/* ---- Error page (404/403/500) — standalone, no header/footer ---- */
.tdzapad-error-page {
    background: var(--tdzapad-ink);
}

.tdzapad-error {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    padding: 3rem 1.5rem;
    overflow: hidden;
    background: linear-gradient(160deg, #0e2555 0%, var(--tdzapad-ink) 55%, #060f24 100%);
}

.tdzapad-error::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url('/images/bg2.webp') center / cover no-repeat;
    opacity: .1;
    pointer-events: none;
}

.tdzapad-error__inner {
    position: relative;
    z-index: 1;
    max-width: 32rem;
    text-align: center;
}

.tdzapad-error__logo {
    display: inline-block;
    margin-bottom: 2.5rem;
}

.tdzapad-error__logo img {
    height: 44px;
    width: auto;
}

.tdzapad-error__code {
    margin: 0;
    color: var(--tdzapad-accent);
    font-size: clamp(4rem, 14vw, 7rem);
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.02em;
}

.tdzapad-error__title {
    margin: .75rem 0 1rem;
    color: #fff;
    font-size: clamp(1.375rem, 3vw, 1.875rem);
    font-weight: 700;
    text-transform: uppercase;
}

.tdzapad-error__text {
    margin: 0 0 2rem;
    color: rgba(255, 255, 255, .65);
    font-size: 1rem;
    line-height: 1.6;
}

.tdzapad-error__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: .75rem;
}

.tdzapad-error__detail {
    margin-top: 2.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(255, 255, 255, .15);
    color: rgba(255, 255, 255, .5);
    font-size: .8125rem;
    text-align: left;
    overflow-x: auto;
}

/* ---- Референс лист ---- */
.tdzapad-ref-grid {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    margin-top: 1.5rem;
}

.tdzapad-ref-row {
    display: grid;
    grid-template-columns: 11rem 1.3fr 1.3fr 8rem;
    gap: 1.25rem;
    align-items: center;
    padding: 1rem 1.25rem;
    background: #fff;
    border: 1px solid var(--tdzapad-border);
    border-radius: var(--tdzapad-radius);
}

.tdzapad-ref-row--head {
    padding: .625rem 1.25rem;
    background: var(--tdzapad-nav-bg);
    border: 0;
    color: var(--tdzapad-muted);
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.tdzapad-ref-row__label {
    display: none;
}

.tdzapad-ref-row__region {
    color: var(--tdzapad-muted);
    font-size: .8125rem;
    font-weight: 600;
}

.tdzapad-ref-row__project {
    color: var(--tdzapad-ink);
    font-size: .875rem;
    line-height: 1.4;
}

.tdzapad-ref-row__company {
    color: var(--tdzapad-ink);
    font-weight: 700;
    font-size: .9375rem;
    line-height: 1.35;
}

.tdzapad-ref-row__logo {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 60px;
    padding: .375rem;
    background: var(--tdzapad-nav-bg);
    border-radius: calc(var(--tdzapad-radius) - .125rem);
}

.tdzapad-ref-row__logo img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    mix-blend-mode: multiply;
}

@media (max-width: 991.98px) {
    .tdzapad-ref-row--head {
        display: none;
    }

    .tdzapad-ref-row {
        grid-template-columns: 1fr;
        gap: .625rem;
    }

    .tdzapad-ref-row__label {
        display: block;
        margin-bottom: .1875rem;
        color: var(--tdzapad-muted);
        font-size: .6875rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: .04em;
    }

    .tdzapad-ref-row__logo {
        justify-content: flex-start;
        height: auto;
        padding: 0;
        background: transparent;
    }

    .tdzapad-ref-row__logo img {
        max-height: 56px;
    }
}