@import url('https://fonts.googleapis.com/css2?family=Heebo:wght@100..900&display=swap');

/* --- Variables --- */
:root {
    --nd-color-text: #000000;
    --nd-color-text-alt: #050505;
    --nd-color-accent: #00736F;
    --nd-color-bg: #FFFDF7;
    --nd-color-bg-dark: #0C8076;
    --nd-color-bg-alt: #E8EEEA;
    --nd-color-white: #FFFFFF;
    --nd-color-border: #E4E4E4;
    --nd-color-gray: #D5D5D5;
    --nd-font-main: 'Heebo', sans-serif;
    --nd-container-width: 1440px;
    --nd-padding-pc: 50px;
    --nd-padding-mob: 22px;
    --nd-transition: all 0.3s ease;
}

*,
*::before,
*::after {
    box-sizing: border-box !important;
}

#toTop {
    display: none !important;
}

/* --- Global Reset --- */
.nd-header * {
    box-sizing: border-box;
}

.accessibility-location-left .accessability_container {
    z-index: 999999 !important;
}

body.accessibility-location-left .aicon_link {
    width: 30px;
    height: 30px;
}

body {
    background-color: var(--nd-color-bg);
    font-family: var(--nd-font-main);
    margin: 0;
    overflow: unset;
}

body.home {
    background-color: var(--nd-color-bg) !important;
}

@media (max-width: 991px) {
    body {
        overflow-x: hidden;
        padding-top: 70px;
        background-color: #FFFDF7;
    }

    body.accessibility-location-left .aicon_link {
        top: unset;
        bottom: 100px;
        width: 45px;
        height: 45px;
    }
}

@media (max-width: 600.98px) {
    body {
        padding-top: 0;
    }
}

html,
p,
h1,
h2,
h3,
h4,
h5,
h6,
span,
li,
strong,
a {
    font-family: var(--nd-font-main);
}

a,
a:hover,
a:focus,
a:active {
    text-decoration: none !important;
}

ul {
    list-style: disc;
}

ul li::marker {
    color: #00524F;
}

.row p a,
.row li a {
    color: #064A48 !important;
    text-decoration: underline !important;
}

a:hover {
    color: var(--nd-color-bg-dark) !important;
}

/* --- Layout --- */
.nd-container {
    max-width: var(--nd-container-width);
    margin: 0 auto;
    padding-left: var(--nd-padding-pc);
    padding-right: var(--nd-padding-pc);
}

/* FIXED Header */
.nd-header {
    position: sticky;
    top: calc(0px - 102px);
    z-index: 9999;
    box-shadow: 0px 9px 12px -8px #44444433;
    background-color: var(--nd-color-bg);
}

body.admin-bar .nd-header {
    top: calc(32px - 102px);
}

/* --- Header Top Row --- */
.nd-header__top {
    padding: 30px 0;
}

.nd-header__top-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: relative;
}

/* Logo Centering */
.nd-header__logo-wrap {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 225px;
}

.nd-header__logo img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* Logo Centering */
.nd-mobile-menu__logo-wrap {
    width: 112px;
}

.nd-mobile-menu__logo img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* CTA Button Desktop */
.nd-header__actions {
    margin-right: auto;
}

.nd-header__cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--nd-color-accent);
    background-color: transparent;
    padding: 8px 19px;
    border-radius: 5px;
    border: 1px solid var(--nd-color-accent);
    text-decoration: none;
    font-weight: 700;
    font-size: 16px;
    line-height: 1.5;
    font-family: var(--nd-font-main);
    transition: var(--nd-transition);
}

.nd-header__cta:hover {
    background-color: var(--nd-color-accent);
    color: var(--nd-color-white) !important;
    border-color: var(--nd-color-accent);
}

/* --- Header Bottom (Desktop Menu) --- */
.nd-header__bottom {
    border-top: 1px solid var(--nd-color-border);
    background-color: var(--nd-color-bg);
}

.nd-nav {
    display: flex;
    justify-content: center;
    padding: 22px 0;
}

.nd-nav__list {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 35px;
}

.nd-nav__list>li {
    position: relative;
    padding-bottom: 22px;
    margin-bottom: -22px;
}

.nd-nav__list>li>a {
    color: var(--nd-color-text-alt);
    font-family: var(--nd-font-main);
    font-size: 18px;
    font-weight: 500;
    text-decoration: none;
    line-height: 100%;
    transition: var(--nd-transition);
    position: relative;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    /* Выравнивание текста: center или flex-start */
    justify-content: center;
    box-sizing: border-box;
}

.nd-nav__list>li>a::after {
    content: attr(data-title);
    /* Берет текст из атрибута data-title */
    font-weight: 700;
    /* Жирность как при ховере! */
    height: 0;
    /* Схлопываем высоту, чтобы не ломать верстку */
    visibility: hidden;
    /* Делаем невидимым */
    overflow: hidden;
    user-select: none;
    pointer-events: none;
}

.nd-nav__list>li:hover>a,
.nd-nav__list>li.current-menu-item>a {
    color: var(--nd-color-accent);
    font-weight: 700;
}

.nd-nav__list>li.current-menu-item>a {
    font-weight: 700;
}

/* --- Desktop Dropdown --- */
.nd-nav__list .sub-menu {
    position: absolute;
    top: 100%;
    right: 0;
    /* RTL alignment */
    background-color: var(--nd-color-white);
    min-width: 220px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
    border-radius: 0 0 5px 5px;
    border-top: 3px solid var(--nd-color-accent);
    list-style: none;
    margin: 0;
    padding: 10px 0;
    text-align: right;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px);
    transition: all 0.3s ease;
    z-index: 100;
}

.nd-nav__list>li:hover .sub-menu,
.nd-nav__list>li:focus-within .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.nd-nav__list .sub-menu li {
    display: block;
    border: none;
    padding: 0;
    margin: 0;
}

.nd-nav__list .sub-menu a {
    display: block;
    padding: 10px 20px;
    font-size: 16px;
    font-weight: 400;
    color: var(--nd-color-text);
    white-space: nowrap;
    transition: background 0.2s, color 0.2s;
}

.nd-nav__list .sub-menu a:hover {
    background-color: var(--nd-color-bg-alt);
    color: var(--nd-color-accent);
}

/* --- Mobile Hidden Elements --- */
.nd-header__burger,
.nd-header__mobile-search-trigger,
.nd-mobile-menu,
.nd-mobile-overlay {
    display: none;
}

/* --- Mobile Styles --- */
@media (max-width: 991px) {
    .nd-container {
        padding-left: var(--nd-padding-mob);
        padding-right: var(--nd-padding-mob);
    }

    .nd-header__top {
        padding: 15px 0;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    }

    /* Mobile Layout Reorder */
    .nd-header__logo-wrap {
        position: static;
        transform: none;
        width: 160px;
        margin: 0;
    }

    .nd-header__actions,
    .nd-header__bottom {
        display: none;
    }

    /* Burger */
    .nd-header__burger {
        display: flex;
        flex-direction: column;
        justify-content: space-around;
        width: 28px;
        height: 24px;
        background: transparent;
        border: none;
        cursor: pointer;
        padding: 0;
        z-index: 100;
    }

    .nd-header__burger span {
        width: 100%;
        height: 2px;
        background: var(--nd-color-text-alt);
        border-radius: 2px;
    }

    /* Mobile Overlay */
    .nd-mobile-overlay {
        display: block;
        position: fixed;
        inset: 0;
        /* top/right/bottom/left: 0 */
        background-color: #00000080;
        z-index: 10000;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s ease;
    }

    .nd-mobile-overlay.is-active {
        opacity: 1;
        visibility: visible;
    }

    /* Mobile Menu Drawer */
    .nd-mobile-menu {
        display: flex;
        flex-direction: column;
        position: fixed;
        top: 0;
        left: 0;
        /* ВЫЕЗЖАЕТ СЛЕВА */
        width: 300px;
        max-width: 85%;
        height: 100vh;
        background: var(--nd-color-bg);
        z-index: 10001;
        /* Поверх оверлея */
        transform: translateX(-100%);
        /* Спрятано влево */
        transition: transform 0.3s ease-in-out;
        box-shadow: 0px 4px 4px 0px #00000040;
        overflow-y: auto;
    }

    .nd-mobile-menu.is-open {
        transform: translateX(0);
    }

    /* Mobile Header (Close Button) */
    .nd-mobile-menu__header {
        padding: 20px 25px 15px 17px;
        display: flex;
        justify-content: space-between;
        /* Кнопка слева (в RTL это end, но если направление ltr то flex-start) */
        /* Так как сайт RTL, flex-end прижмет влево. Если нет - используй float: left или direction: ltr */
    }

    .nd-mobile-menu__close {
        background: none;
        border: none;
        padding: 0;
        cursor: pointer;
        display: flex;
    }

    .nd-mobile-menu__close svg {
        display: block;
    }

    /* Search inside Mobile Menu */
    .nd-mobile-menu__search {
        padding: 10px 25px;
        border-bottom: 1px solid var(--nd-color-gray);
        border-top: 1px solid var(--nd-color-gray);
    }

    /* Стилизация стандартного поиска WP внутри меню */
    .nd-mobile-menu__search form {
        position: relative;
        width: 100%;
        margin: 0;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
    }

    .nd-mobile-menu__search input[type="search"] {
        height: auto;
        background: unset;
        box-shadow: unset !important;
        outline: none;
        max-width: 100%;
        margin: 0;
        padding: 0;
        font-size: 16px;
        line-height: 1.5;
        border: none !important;
        color: var(--nd-color-text);
    }

    .nd-mobile-menu__search input[type="search"]::placeholder {
        color: #8D8D8DCC;
    }

    .nd-mobile-menu__search button {
        background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 32 32' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns:sketch='http://www.bohemiancoding.com/sketch/ns' fill='%23000000'%3E%3Cg id='SVGRepo_bgCarrier' stroke-width='0'%3E%3C/g%3E%3Cg id='SVGRepo_tracerCarrier' stroke-linecap='round' stroke-linejoin='round'%3E%3C/g%3E%3Cg id='SVGRepo_iconCarrier'%3E%3Ctitle%3Esearch%3C/title%3E%3Cdesc%3ECreated with Sketch Beta.%3C/desc%3E%3Cdefs%3E%3C/defs%3E%3Cg id='Page-1' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd' sketch:type='MSPage'%3E%3Cg id='Icon-Set' sketch:type='MSLayerGroup' transform='translate(-256.000000, -1139.000000)' fill='%23000000'%3E%3Cpath d='M269.46,1163.45 C263.17,1163.45 258.071,1158.44 258.071,1152.25 C258.071,1146.06 263.17,1141.04 269.46,1141.04 C275.75,1141.04 280.85,1146.06 280.85,1152.25 C280.85,1158.44 275.75,1163.45 269.46,1163.45 L269.46,1163.45 Z M287.688,1169.25 L279.429,1161.12 C281.591,1158.77 282.92,1155.67 282.92,1152.25 C282.92,1144.93 276.894,1139 269.46,1139 C262.026,1139 256,1144.93 256,1152.25 C256,1159.56 262.026,1165.49 269.46,1165.49 C272.672,1165.49 275.618,1164.38 277.932,1162.53 L286.224,1170.69 C286.629,1171.09 287.284,1171.09 287.688,1170.69 C288.093,1170.3 288.093,1169.65 287.688,1169.25 L287.688,1169.25 Z' id='search' sketch:type='MSShapeGroup'%3E%3C/path%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
        background-position: center;
        background-size: contain;
        background-repeat: no-repeat;
        background-color: transparent;
        width: 22px;
        height: 22px;
        border: none;
        padding: 0;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .nd-mobile-menu__search button i {
        display: none !important;
    }

    /* Mobile Content (Menu Items) */
    .nd-mobile-menu__content {
        flex: 1;
        padding: 0;
    }

    .nd-mobile-nav__list {
        list-style: none;
        padding: 0;
        margin: 0;
    }

    .nd-mobile-nav__list>li {
        border-bottom: 1px solid var(--nd-color-gray);
        position: relative;
        text-align: start;
        padding: 0 25px 0 48px;
    }

    .nd-mobile-nav__list li a {
        display: block;
        padding: 15px 0;
        font-family: var(--nd-font-main);
        font-size: 18px;
        line-height: 26px;
        font-weight: 500;
        color: var(--nd-color-text);
        text-decoration: none;
    }

    /* Mobile Footer (CTA + Socials) */
    .nd-mobile-menu__footer {
        padding: 20px 25px 28px;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 28px;
    }

    .nd-mobile-cta {
        display: block;
        width: auto;
        text-align: center;
        background-color: transparent;
        border: 1px solid var(--nd-color-accent);
        color: var(--nd-color-accent);
        padding: 6px 19px;
        border-radius: 5px;
        font-weight: 700;
        font-size: 16px;
        transition: 0.3s;
    }

    .nd-mobile-cta:hover {
        background-color: var(--nd-color-accent);
        color: var(--nd-color-white);
    }

    .nd-mobile-socials {
        display: flex;
        justify-content: space-between;
        gap: 15px;
        width: 100%;
    }

    .nd-social-icon {
        display: flex;
        align-items: center;
        flex-direction: column;
        gap: 7px;
        font-family: var(--nd-font-main);
    }

    .nd-social-icon svg {
        width: 24px;
        height: 24px;
        display: block;
    }

    .nd-social-icon span {
        font-weight: 400;
        font-size: 12px;
        line-height: 14px;
        color: #000000CC;
    }

    /* Mobile Dropdown Logic (Accordion) */
    .nd-mobile-nav__list .sub-menu {
        display: none;
        list-style: none;
        padding: 0;
        margin: 0;
    }

    /* .nd-mobile-nav__list .sub-menu li {
        border-bottom: 1px solid var(--nd-color-gray);
    }

    .nd-mobile-nav__list .sub-menu li:last-child {
        border-bottom: none;
    } */

    .nd-mobile-nav__list .sub-menu a {
        font-size: 18px;
        line-height: 26px;
        padding: 0 0 18px;
        color: var(--nd-color-text);
    }

    /* Arrow for Dropdown */
    .nd-mobile-menu-toggle {
        position: absolute;
        left: 0;
        top: 0;
        right: 0;
        height: 56px;
        display: flex;
        align-items: flex-start;
        justify-content: flex-end;
        cursor: pointer;
        color: var(--nd-color-text);
        z-index: 10;
        padding: 23px 25px 0 30px;
    }

    .nd-mobile-menu-toggle.is-active {
        transform: scaleY(-1);
    }

    .nd-mobile-nav__list li.menu-item-has-children.is-open>.sub-menu {
        display: block;
    }

    .nd-header {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        z-index: 9999;
        box-shadow: 0px 9px 12px -8px #44444433;
        background-color: var(--nd-color-bg);
        transition: top 0.3s ease;
    }

    body.admin-bar .nd-header {
        top: 32px;
    }
}

@media (max-width: 782.98px) {
    body.admin-bar .nd-header {
        top: 46px;
    }
}

@media (max-width: 600.98px) {
    body.admin-bar .nd-header {
        top: 0;
    }
}

/* =========================================
   Block 1: News Grid & Banner
   ========================================= */

.nd-news-grid-section {
    padding-top: 60px;
    padding-bottom: 46px;
    direction: rtl;
    /* Гарантируем RTL для корректного порядка грида */
}

/* --- The Grid Container --- */
.nd-news-grid {
    display: grid;
    /* 3 колонки: Боковая (1fr) - Главная (2fr) - Боковая (1fr) */
    grid-template-columns: 1fr 2fr 1fr;
    gap: 30px;
    align-items: center;
    /* Центрируем карточки по вертикали */
    margin-bottom: 46px;
    /* Отступ до баннера */
}

/* --- News Card Generic --- */
.nd-news-card {
    position: relative;
    display: flex;
    flex-direction: column;
}

.nd-news-card__link {
    display: block;
    color: inherit;
}

.nd-news-card__img-wrap {
    width: 100%;
    aspect-ratio: 1.65 / 1;
    /* Фиксированное соотношение сторон */
    overflow: hidden;
    background-color: #f0f0f0;
}

.nd-news-card__img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}

.nd-news-card:hover .nd-news-card__img-wrap img {
    transform: scale(1.03);
}

.nd-news-card__content {
    margin-top: 0;
    /* Отступы зададим индивидуально */
}

.nd-news-card__title {
    font-family: var(--nd-font-main);
    color: var(--nd-color-text);
    margin: 0;
    padding: 0;
}

.nd-news-card__meta {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--nd-font-main);
    color: #666666;
    margin: 0;
}

/* --- MAIN Card Styles (Desktop) --- */
.nd-news-card--main {
    /* Ставим главный пост в центральную колонку (2-я колонка) */
    grid-column: 2;
    grid-row: 1;
}

.nd-news-card--main .nd-news-card__title {
    margin-top: 15px;
    margin-bottom: 15px;

    font-weight: 600;
    font-size: 35px;
    /* ~34.67px */
    line-height: 1.19;
}

.nd-news-card--main .nd-news-card__meta {
    font-weight: 400;
    font-size: 15.5px;
    /* ~15.43px */
    line-height: 1;
}

/* --- SIDE Card Styles (Desktop) --- */
.nd-news-card--side {
    /* Боковые посты занимают свободные места */
    /* Так как Main занял grid-column: 2, остальные встанут в 1 и 3 */
}

/* Хак для порядка: 
   HTML: Main(1), Side(2), Side(3).
   CSS Desktop Grid (RTL):
   Col 1 (Right): Side(2)
   Col 2 (Center): Main(1)
   Col 3 (Left): Side(3)
*/
.nd-news-card--side:nth-of-type(2) {
    grid-column: 1;
    /* Правая колонка в RTL */
    grid-row: 1;
}

.nd-news-card--side:nth-of-type(3) {
    grid-column: 3;
    /* Левая колонка в RTL */
    grid-row: 1;
}

.nd-news-card--side .nd-news-card__title {
    margin-top: 22px;
    margin-bottom: 15px;

    font-weight: 600;
    font-size: 26px;
    /* ~26.04px */
    line-height: 1.19;
}

.nd-news-card--side .nd-news-card__meta {
    font-weight: 400;
    font-size: 14px;
    /* ~14.08px */
    line-height: 1;
}


/* --- Static Banner --- */
.nd-hero-banner {
    width: 100%;
}

.nd-hero-banner .mb-35,
.nd-hero-banner .mb-57 {
    margin-bottom: 0 !important;
}

.nd-hero-banner .mt-40 {
    margin-top: 0 !important;
}

.nd-hero-banner__img {
    width: 100%;
    display: block;
    background-color: var(--nd-color-gray);
    /* Серый фон заглушки */
}

.nd-hero-banner__img img {
    width: 100%;
    height: auto;
    display: block;
}

.nd-hero-banner__img--desktop {
    display: block;
    min-height: 180px;
    /* Минимум на ПК */
}

.nd-hero-banner__img--mobile {
    display: none;
}

.nd-hero-banner__img.is-empty {
    /* Если нет картинки, оставляем только высоту и серый фон */
}


/* =========================================
   Mobile / Responsive (max-width: 991px)
   ========================================= */
@media (max-width: 991px) {

    .nd-news-grid-section {
        padding-top: 40px;
        /* Чуть меньше на моб */
        padding-bottom: 25px;
    }

    .nd-news-grid {
        display: flex;
        flex-direction: column;
        /* Одна колонка */
        gap: 40px;
        margin-bottom: 25px;
        /* Отступ до баннера на моб */
    }

    /* Сбрасываем грид колонки, чтобы Flex работал по порядку HTML */
    .nd-news-card--main,
    .nd-news-card--side,
    .nd-news-card--side:nth-of-type(2),
    .nd-news-card--side:nth-of-type(3) {
        grid-column: auto;
        grid-row: auto;
        width: 100%;
    }

    .nd-news-card--main {
        width: calc(100% + 44px);
    }

    .nd-news-card--main .nd-news-card__content {
        padding-inline: 22px;
    }

    /* HTML Порядок: Main, Side, Side. Флекс покажет их так же сверху вниз. Идеально. */

    /* Typography Override for Mobile (Shared logic) */
    .nd-news-card__title {
        margin-top: 0 !important;
        margin-bottom: 17px !important;
        font-weight: 600 !important;
        line-height: 1.19 !important;
    }

    /* Main Card Mobile */
    .nd-news-card--main .nd-news-card__title {
        font-size: 22px;
        /* ~21.78px */
    }

    .nd-news-card--main .nd-news-card__meta {
        font-size: 15.2px;
        /* ~15.24px */
    }

    /* Side Card Mobile */
    .nd-news-card--side .nd-news-card__title {
        font-size: 20px;
    }

    .nd-news-card--side .nd-news-card__meta {
        font-size: 14px;
    }

    /* Banner Mobile */
    .nd-hero-banner__img--desktop {
        display: none;
    }

    .nd-hero-banner__img--mobile {
        display: block;
        min-height: 125px;
    }

    .nd-news-card__link .nd-news-card__img-wrap {
        margin-bottom: 8px;
    }

    .nd-news-grid-section .nd-news-card__link .nd-news-card__img-wrap {
        margin-bottom: 25px;
    }
}

/* =========================================
   Block 2: Recommended Articles
   ========================================= */

.nd-block-2 {
    background-color: var(--nd-color-bg-alt);
    /* #E8EEEA */
    padding-top: 50px;
    padding-bottom: 46px;
    direction: rtl;
}

/* --- Title --- */
.nd-block-title {
    font-family: var(--nd-font-main);
    font-weight: 600;
    font-size: 40px;
    line-height: 1.19;
    color: var(--nd-color-text);
    margin: 0 0 90px;
}

.nd-block-title a {
    color: inherit;
    display: flex;
    align-items: center;
}

/* --- Grid --- */
.nd-b2-grid {
    display: grid;
    /* 3 колонки одинаковой ширины */
    grid-template-columns: repeat(3, 1fr);
    /* Отступы: 80px между рядами, 24px между колонками */
    gap: 80px 24px;
    margin-bottom: 46px;
    /* Отступ до нижнего баннера */
}

/* --- Card Style B2 (Inherits basic structure, specific spacing) --- */
.nd-news-card--b2 .nd-news-card__img-wrap {
    aspect-ratio: 1.65 / 1;
    /* Как и в блоке 1 */
}

.nd-news-card--b2 .nd-news-card__title {
    margin-top: 36px;
    margin-bottom: 15px;

    font-weight: 600;
    font-size: 26px;
    /* Размер как у боковых в блоке 1 */
    line-height: 1.19;
}

.nd-news-card--b2 .nd-news-card__meta {
    font-weight: 400;
    font-size: 14px;
    line-height: 1;
    margin-bottom: 15px;
    color: #666666;
}

.nd-news-card__excerpt {
    font-family: var(--nd-font-main);
    font-weight: 400;
    font-size: 17.64px;
    line-height: 1;
    color: var(--nd-color-text);
}

/* --- Vertical Ad Cell --- */
.nd-b2-ad-cell {
    /* Рекламная ячейка */
    width: 100%;
    height: 100%;
    min-height: 400px;
    /* Чтобы не схлопнулась */
}

.nd-vertical-ad-placeholder,
.nd-b2-ad-cell .slick-slide img {
    width: 100%;
    /* Соотношение 432 / 518 ~ 0.83 */
    aspect-ratio: 432 / 524;
    background-color: var(--nd-color-gray);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 20px;
    font-weight: bold;
}

/* --- Bottom Banner Specific --- */
.nd-hero-banner--bottom {
    /* Паддинги внутри баннера по ТЗ (контролируется контейнером баннера или самим изображением) */
    /* Здесь просто используем тот же класс, что и в блоке 1, но с отступом сверху, который задан в гриде (margin-bottom: 100px) */
}


/* =========================================
   Mobile (Block 2)
   ========================================= */
@media (max-width: 991px) {

    .nd-block-2 {
        padding-top: 20px;
        padding-bottom: 20px;
    }

    /* Title Mobile */
    .nd-block-title {
        font-size: 25px;
        text-align: right !important;
        /* По ТЗ */
        margin-bottom: 32px;
    }

    .nd-block-title a {
        justify-content: space-between;
    }

    .nd-block-title a svg {
        width: 25px;
        height: 25px;
        padding: 7px;
        border-radius: 50%;
        background: #064A48;
        color: #fff;
        transform: rotate(45deg);
    }

    /* Grid Mobile */
    .nd-b2-grid {
        grid-template-columns: 1fr;
        /* 1 колонка */
        gap: 40px;
        /* Отступы между постами */
        margin-bottom: 32px;
    }

    /* Card Styles Mobile */
    .nd-news-card--b2 .nd-news-card__title {
        margin-top: 25px;
        /* Уменьшаем отступ от картинки на моб (как в блоке 1) */
        font-size: 20px;
    }

    .nd-news-card__excerpt {
        font-size: 16px;
        /* Чуть меньше на моб */
        line-height: 1.3;
    }

    /* Vertical Ad on Mobile */
    .nd-b2-ad-cell {
        min-height: auto;
    }

    .nd-vertical-ad-placeholder {
        max-width: 576px;
        margin: 0 auto;
    }

    .nd-b2-ad-cell .slick-slide img {
        aspect-ratio: unset;
    }
}

/* =========================================
   Block 3: Multi-Sections
   ========================================= */

.nd-section {
    padding: 50px 0;
    direction: rtl;
}

.nd-text-center {
    text-align: center;
}

/* --- Section A (White) & C (Gray) Styles --- */
.nd-section--a {
    background-color: #FFFCF9;
}

.nd-section--c {
    background-color: var(--nd-color-bg-alt);
    /* #E8EEEA */
}

/* List Grid: 2 Cols */
.nd-list-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 36px 24px;
    /* Row: 36, Col: 24 */
}

.nd-list-card {
    /* На ПК это горизонтальная карточка: Картинка - Текст */
    /* В ТЗ сказано "Каждая статья сама представляет грид". */
    /* Сделаем флекс */
}

.nd-list-card__link {
    display: flex;
    gap: 24px;
    align-items: flex-start;
    color: var(--nd-color-text);
}

.nd-list-card__img {
    flex: 0 0 50%;
    /* Фиксированная ширина картинки или % */
    width: 50%;
    aspect-ratio: 340 / 206;
    overflow: hidden;
}

.nd-list-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s;
}

.nd-list-card:hover .nd-list-card__img img {
    transform: scale(1.05);
}

.nd-list-card__content {
    flex: 1;
}

.nd-list-card__title {
    font-family: var(--nd-font-main);
    font-weight: 600;
    font-size: 26px;
    /* Примерно, в ТЗ не было точного размера для Секции 1/3, беру средний */
    line-height: 1.2;
    margin-top: 0;
    margin-bottom: 10px;
}

.nd-list-card__meta {
    font-size: 16px;
    color: #666;
}

.nd-list-card__meta .nd-author-link {
    color: #00524F;
}

/* Advertisement Cell */
.nd-list-card--ad {
    width: 100%;
    height: 100%;
    min-height: 140px;
}

.nd-ad-placeholder {
    width: 100%;
    height: 100%;
    background-color: var(--nd-color-gray);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
}

/* --- Section B (Green Cards) --- */
.nd-section--b {
    background-color: #CEDED6;
}

.nd-cards-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}

.nd-big-card {
    background-color: #fff;
    /* У карточки картинка сверху, текст снизу */
    display: flex;
    flex-direction: column;
}

.nd-big-card__link {
    display: flex;
    flex-direction: column;
    height: 100%;
    color: var(--nd-color-text);
}

.nd-big-card__img {
    width: 100%;
    aspect-ratio: 1.6/1;
    overflow: hidden;
}

.nd-big-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s;
}

.nd-big-card:hover .nd-big-card__img img {
    transform: scale(1.05);
}

.nd-big-card__content {
    padding: 30px 24px 80px 24px;
    /* По ТЗ */
    background: #FFFCF9;
    flex: 1;
}

.nd-big-card__title {
    font-family: var(--nd-font-main);
    font-weight: 600;
    font-size: 34.67px;
    line-height: 1.19;
    margin-top: 0;
    margin-bottom: 15px;
}

.nd-big-card__meta {
    font-family: var(--nd-font-main);
    font-weight: 400;
    font-size: 15.43px;
    color: #666;
}

/* --- Section D (Static Grid) --- */
.nd-section--d {
    background-color: #FFFDF7;
    padding-bottom: 70px;
}

.nd-section--d .nd-news-grid {
    margin-bottom: 40px;
}

.nd-btn-all {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 9px 16px;
    background-color: #064A48;
    color: #fff;
    border-radius: 4px;
    font-weight: 400;
    text-align: center;
    font-size: 20px;
    line-height: 29px;
    transition: all 0.3s ease;
    text-decoration: none;
}

.nd-btn-all:hover {
    background-color: var(--nd-color-bg-dark);
    color: #fff !important;
}

/* =========================================
   Mobile Styles (Block 3)
   ========================================= */
@media (max-width: 991px) {

    /* Section A/C Mobile */
    .nd-list-grid {
        grid-template-columns: 1fr;
        /* 1 col */
        gap: 24px;
    }

    .nd-list-card__link {
        /* На моб 60% картинка, 40% текст */
        display: flex;
        flex-direction: row;
        gap: 14px;
        align-items: flex-start;
    }

    .nd-list-card__img {
        width: 50%;
        flex: 0 0 50%;
        aspect-ratio: 1.65/1;
    }

    .nd-list-card__content {
        width: auto;
        flex: 1 1 auto;
    }

    .nd-list-card__title {
        font-size: 14px;
        /* Чуть меньше */
    }

    .nd-list-card__meta {
        font-size: 12px;
        line-height: 1.2;
    }

    .nd-ad-placeholder {
        min-height: 125px;
    }


    /* Section B Mobile */
    .nd-cards-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .nd-big-card__content {
        padding: 18px 14px 24px;
        /* По ТЗ */
    }

    .nd-big-card__title {
        font-size: 18.84px;
    }

    .nd-big-card__meta {
        font-size: 12px;
    }

    .nd-section--d {
        padding-bottom: 40px;
    }

    .nd-sidebar-recent .nd-list-card__content {
        width: 100%;
        flex: unset;
    }

    .nd-section,
    .nd-section--c,
    .nd-section--d,
    .nd-section--e,
    .nd-section--f {
        padding-block: 20px !important;
    }

    .nd-section--a {
        padding-block: 20px;
    }

    .nd-section--b {
        padding-top: 20px;
    }

    .nd-list-card--ad {
        min-height: unset;
    }

    .nd-list-card--ad .mb-35 {
        margin-bottom: 0 !important;
    }
}

/* =========================================
   Section E: About Grid (Gray) - Cleaned
   ========================================= */
.nd-section--e {
    background-color: var(--nd-color-bg-alt);
    /* #E8EEEA */
    padding: 50px 0;
}

.nd-about-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    align-items: stretch;
    margin-bottom: 46px;
}

/* --- Image Column --- */
.nd-about-img {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 300px;
    overflow: hidden;
    /* Теперь тут только <img>, никаких лишних паддингов */
}

.nd-about-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* Идеально растягивает */
    display: block;
}

/* --- Text Column --- */
.nd-about-text-wrap {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    /* Добавляем фон, если вдруг текст короче картинки */
}

.nd-about-content {
    width: 100%;
}

/* Так как мы вырезали inline-styles через PHP, теперь эти стили точно применятся */

.nd-about-content h2,
.nd-about-content h3,
.nd-about-content .block-title {
    font-family: var(--nd-font-main);
    font-weight: 700;
    font-size: 60px;
    line-height: 1.19;
    color: var(--nd-color-text);
    margin-top: 0;
    margin-bottom: 8px;
}

.nd-about-content p:not(:last-child),
.nd-about-content div:not(:last-child) {
    font-family: var(--nd-font-main);
    font-weight: 400;
    font-size: 18px;
    line-height: 30px;
    color: #2E2D2D;
    margin-bottom: 20px;
}

.nd-about-content a {
    color: #2E2D2D !important;
    text-decoration: underline !important;
    font-weight: 700;
}

.nd-about-content h2 a {
    text-decoration: none !important;
}

/* --- Mobile --- */
@media (max-width: 991px) {
    .nd-about-grid {
        display: flex;
        flex-direction: column-reverse;
        /* Текст сверху, Картинка снизу */
    }

    .nd-about-img {
        width: 100%;
        height: auto;
        min-height: 250px;
        aspect-ratio: 16/9;
    }

    .nd-about-content h2,
    .nd-about-content h3,
    .nd-about-content .block-title {
        font-size: 32px;
        margin-bottom: 20px;
    }

    .nd-about-content p {
        font-size: 16px;
        line-height: 1.5;
    }
}


/* =========================================
   Section F: Gallery (Green)
   ========================================= */
.nd-section--f {
    background-color: #CEDED6;
    padding-top: 50px;
    padding-bottom: 70px;
    overflow: hidden;
}

.nd-gallery-title {
    text-align: right;
    /* По ТЗ (image_5648bc показывает справа) */
    margin-bottom: 40px;
}

/* Full Width Slider Wrapper */
.nd-fw-slider-wrap {
    width: 100%;
    margin-bottom: 50px;
    /* Отступ до навигации */
}

/* Slide Item */
.nd-fw-slide {
    padding: 0 12px;
    /* 24px gap total (12+12) */
    outline: none;
}

.nd-fw-slide::after {
    display: none !important;
}

.nd-fw-slide__img {
    width: 100%;
    aspect-ratio: 708 / 430;
    /* Примерное соотношение для cover */
    overflow: hidden;
}

.nd-fw-slide__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
}

/* Эффект при наведении (опционально) */
.nd-fw-slide:hover img {
    transform: scale(1.03);
}


/* --- Controls --- */
.nd-gallery-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    position: relative;
}

/* Arrows */
.nd-gal-arrow {
    background: none;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 1;
    transition: opacity 0.3s;
}

.nd-gal-arrow:hover {
    opacity: 0.8;
}

/* Pagination Dots */
.nd-gal-dots {
    display: flex;
    gap: 8px;
    /* ТЗ */
}

/* Slick Dots Customization */
.nd-gal-dots .slick-dots {
    display: flex;
    padding: 0;
    margin: 0;
    list-style: none;
    gap: 8px;
    position: unset;
}

.nd-gal-dots .slick-dots li {
    margin: 0;
    padding: 0;
    width: 14px;
    /* ТЗ */
    height: 14px;
    /* ТЗ */
}

.nd-gal-dots .slick-dots li button {
    font-size: 0;
    line-height: 0;
    display: block;
    width: 14px;
    height: 14px;
    padding: 5px;
    cursor: pointer;
    border: 0;
    outline: none;
    background: #A8A8A8;
    /* ТЗ */
    border-radius: 50%;
    /* Кружки */
    transition: background 0.3s;
}

.nd-gal-dots .slick-dots li button::before {
    display: none !important;
}

.nd-gal-dots .slick-dots li.slick-active button {
    background: #6C7070;
    /* ТЗ Активный */
}


/* =========================================
   Mobile Styles (Block 4)
   ========================================= */
@media (max-width: 991px) {


    /* Section F Mobile */
    .nd-section--f {
        padding-bottom: 40px;
    }

    .nd-fw-slider-wrap {
        margin-bottom: 30px;
        /* ТЗ: 30px на моб */
    }

    .nd-fw-slide {
        padding: 0 7px;
        /* 14px total gap (7+7) */
        /* Активный слайд 90% места + виден следующий.
           Это настраивается в JS через centerMode и padding. */
    }

    /* Mobile Dots */
    .nd-gal-dots .slick-dots {
        gap: 6px;
        /* ТЗ */
    }

    .nd-gal-dots .slick-dots li,
    .nd-gal-dots .slick-dots li button {
        width: 11px;
        /* ТЗ */
        height: 11px;
        /* ТЗ */
    }

    .nd-gallery-controls {
        justify-content: center;
    }

    .nd-gallery-controls button.slick-arrow,
    .nd-gal-arrow {
        display: none;
    }

    /* Разрешаем слайдам вылезать за границы, если нужно */
    .nd-fw-slider .slick-list {
        padding-right: 0;
        /* Убираем лишние отступы справа, чтобы прилипало к краю */
        overflow: visible;
        /* Важно, чтобы видеть кусок следующего */
    }

    /* Настройка ширины слайда */
    .nd-fw-slider .nd-fw-slide {
        /* 85vw = 85% ширины экрана. 
           Остальные 15% уйдут на отступ и кусочек следующего слайда.
        */
        width: 85vw;

        /* Отступ между слайдами. 
           В RTL margin-left — это отступ слева от картинки (между 1-й и 2-й) 
        */
    }

    /* Убираем отступ у последнего элемента, чтобы не ломать верстку */
    .nd-fw-slider .nd-fw-slide:last-child {
        margin-left: 0;
    }

    .nd-fw-slide__img {
        aspect-ratio: 347 / 210;
    }

    /* Картинка внутри на всю ширину слайда */
    .nd-fw-slider .nd-fw-slide img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }
}

/* =========================================
   Footer (New Design)
   ========================================= */

.nd-footer {
    background-color: #0C8076;
    /* Dark Green BG */
    color: #FFFFFF;
    padding-top: 80px;
    padding-bottom: 80px;
    direction: rtl;
    font-family: var(--nd-font-main);
}

.nd-footer a {
    color: #FFFFFF;
    text-decoration: none;
    transition: opacity 0.3s;
}

.nd-footer a:hover {
    opacity: 0.7;
}

/* --- TOP PART: Subscribe --- */
.nd-footer__top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 80px;
}

.nd-footer__subscribe-text {
    max-width: 460px;
    flex: 1;
}

.nd-footer__title {
    font-size: 40px;
    font-weight: 600;
    line-height: 1.19;
    color: #FFFFFF;
    margin-top: 0;
    margin-bottom: 17px;
}

.nd-footer__subtitle {
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    color: #FFFFFF;
    margin: 0;
}

/* Subscribe Form */
.nd-footer__form-wrap {
    flex: 1;
    max-width: 500px;
    /* Примерно */
    padding-right: 50px;
    /* Отступ от текста на ПК */
}

.nd-subscribe-form {
    width: 100%;
}

.nd-form-group {
    display: flex;
    align-items: center;
    gap: 18px;
}

.nd-form-group input[type="email"] {
    flex: 1;
    background: transparent;
    border: none;
    border-bottom: 1px solid #FFFFFF;
    outline: none;
    box-shadow: none;
    color: #FFFFFF;
    font-family: var(--nd-font-main);
    font-size: 16px;
    padding: 10px 0;
    margin: 0 !important;
    height: 36px;
    display: flex;
    align-items: center;
}

.nd-form-group input::placeholder {
    color: #fff !important;
}

.nd-form-group button {
    background-color: #FFFDF7;
    color: #033F3E;
    /* Dark text */
    border: none;
    height: 36px;
    padding: 0 30px;
    border-radius: 2px;
    font-family: var(--nd-font-main);
    font-weight: 700;
    font-size: 19.72px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 10px;
    /* Между текстом и стрелкой */
    white-space: nowrap;
    transition: background 0.3s;
}

.nd-form-group button:hover {
    background-color: #f0f0f0;
}

.nd-form-group button svg {
    display: block;
}

.nd-form-disclaimer {
    margin-top: 20px;
    font-size: 17.25px;
    font-weight: 500;
    color: #FFFFFF;
}

.nd-form-disclaimer a {
    text-decoration: underline !important;
}

.nd-form-disclaimer a:hover {
    color: #45FFBB !important;
}

/* --- SEPARATOR --- */
.nd-footer__sep {
    height: 1px;
    background-color: rgba(0, 0, 0, 0.1);
    /* Черная полупрозрачная полоска */
    width: 100%;
    margin-bottom: 80px;
}


/* --- MIDDLE PART: Grid Links --- */
.nd-footer__middle {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
    /* 5 columns: 1 logo fixed, 4 menus */
    gap: 20px;
    margin-bottom: 80px;

    display: flex;
    justify-content: space-between;
}

.nd-footer__col--logo {
    /* Logo column logic */
}

.nd-footer-logo {
    display: flex;
    max-width: 200px;
    width: 100%;
}

.nd-footer-logo img {
    max-width: 100%;
    width: 100%;
    height: auto;
    display: block;
}

/* Menu Titles */
.nd-footer__menu-title {
    font-size: 16px;
    font-weight: 700;
    color: #FFFFFF;
    margin: 0;
    min-height: 24px;
    /* Spacer if empty */
    margin-bottom: 10px;
}

/* Menus */
.nd-footer-menu {
    list-style: none;
    padding: 0;
    margin: 0;
}

.nd-footer-menu li {
    margin: 0;
    padding: 0;
}

.nd-footer-menu li a {
    display: block;
    height: 36px;
    /* Fixed height per item */
    line-height: 36px;
    font-size: 14px;
    font-weight: 400;
    color: #FFFFFF;
    text-decoration: none;
    transition: var(--nd-transition);
}

.nd-footer-menu li a:hover {
    color: #45FFBB !important;
}


/* --- BOTTOM PART: Copyright & Socials --- */
.nd-footer__bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    /* Тонкий разделитель для копирайта (опционально, если на макете есть) */
    padding-top: 30px;
    /* Если разделителя нет, можно убрать border и padding */
}

.nd-footer__copy {
    display: flex;
    gap: 20px;
    font-size: 14px;
    font-weight: 400;
}

.nd-footer__copy a {
    transition: var(--nd-transition);
}

.nd-footer__copy a:hover {
    color: #45FFBB !important;
}

.nd-footer__socials {
    display: flex;
    gap: 12px;
}

.nd-footer__socials a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    color: #FFFFFF;
    font-size: 16px;
    /* Icon size */
}

.nd-footer__socials a svg {
    width: 100%;
    height: 100%;
    object-fit: contain;
}


/* =========================================
   Mobile Footer
   ========================================= */
@media (max-width: 991px) {
    .nd-footer {
        padding-top: 50px;
        padding-bottom: 50px;
        text-align: center;
        /* На моб часто центрируют */
    }

    /* Top: Stacked */
    .nd-footer__top {
        flex-direction: column;
        gap: 30px;
        margin-bottom: 40px;
    }

    .nd-footer__form-wrap {
        padding-right: 0;
        width: 100%;
        max-width: 100%;
    }

    .nd-footer__title {
        font-size: 25px;
        text-align: start;
    }

    .nd-footer__subtitle {
        font-size: 12px;
        text-align: start;
    }

    .nd-form-group {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
    }

    .nd-form-group input[type="email"] {
        width: 100%;
    }

    .nd-form-group button {
        height: 44px;
        width: 100%;
        justify-content: center;
    }

    .nd-form-disclaimer {
        font-size: 12px;
        text-align: start;
        margin-top: 0;
        margin-bottom: 12px;
    }

    .nd-footer__sep {
        margin-bottom: 30px;
    }

    /* Grid: Stacked or 2 cols */
    .nd-footer__middle {
        display: grid;
        grid-template-columns: 1fr 1fr;
        text-align: start;
        gap: 40px 20px;
        margin-bottom: 40px;
    }

    .nd-footer__col--logo {
        grid-column: span 2;
    }

    /* Bottom: Stacked */
    .nd-footer__bottom {
        flex-direction: column-reverse;
        /* Соцсети сверху, копирайт снизу? Или наоборот */
        gap: 30px;
        padding-top: 0;
        border: none;
    }

    .nd-footer__socials {
        justify-content: space-between;
        width: 100%;
    }

    .nd-footer__socials a {
        width: 40px;
        height: 40px;
    }

    .nd-footer__copy {
        gap: 0;
        width: 100%;
        align-items: flex-start;
        flex-wrap: wrap;
        text-align: start;
        column-gap: 15px;
    }

    .nd-footer__copy span {
        width: 100%;
    }
}

/* =========================================
   Projects Page Template
   ========================================= */

.nd-projects-page {
    background-color: #FFFCF9;
    min-height: 100vh;
}

.nd-project-single {
    background-color: #FFFDF7;
}

/* --- Hero Section --- */
.nd-project-hero {
    position: relative;
    height: 600px;
    /* Высота героя на ПК */
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    text-align: center;
    color: #fff;
    padding: 80px 0
        /* Если нужно компенсировать паддинг body, иначе убери */
}

/* Gradient Overlay */
.nd-project-hero__overlay {
    position: absolute;
    inset: 0;
    /* Градиент из ТЗ: сверху светлый (??), снизу темный */
    /* ТЗ: linear-gradient(0deg, #FFFCF9, #FFFCF9), linear-gradient... 
       Это странно (белый поверх). Сделаем классическое затемнение + градиент снизу */
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.2) 0%, rgba(11, 9, 33, 0.8) 100%);
    z-index: 1;
}

.nd-project-hero__content {
    position: relative;
    z-index: 2;
    max-width: 800px;
    margin: 0 auto;
}

/* --- Hero Link Styles --- */
.nd-project-hero__link {
    text-decoration: none;
    color: inherit;
    /* Наследует белый цвет от родителя */
    display: block;
    /* Чтобы ссылка занимала весь блок */
    transition: opacity 0.3s, transform 0.3s;
}

.nd-project-hero__link:hover {
    opacity: 0.8;
    /* Легкая прозрачность при наведении */
    transform: scale(1.02);
    /* Небольшой подъем для интерактивности */
}

.nd-project-hero__title {
    font-family: var(--nd-font-main);
    font-weight: 600;
    font-size: 80px;
    line-height: 1.19;
    margin-bottom: 20px;
    color: #FFFFFF;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

.nd-project-hero__meta {
    font-family: var(--nd-font-main);
    font-weight: 400;
    font-size: 16px;
    color: #FFFFFF;
}


/* --- Grid Section --- */
.nd-projects-grid-sect {
    padding: 60px 0;
}

.nd-projects-intro {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.nd-projects-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px 24px;
    /* Row 30, Col 24 */
    direction: rtl;
}

/* Card */
.nd-proj-card {
    background: #FFFFFF;
    box-shadow: 0px 0px 7.3px 0px #0000000D;
    transition: transform 0.3s ease;
    display: flex;
    flex-direction: column;
}

.nd-proj-card__link {
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.nd-proj-card__img {
    width: 100%;
    aspect-ratio: 1.65 / 1;
    overflow: hidden;
}

.nd-proj-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s;
}

.nd-proj-card:hover .nd-proj-card__img img {
    transform: scale(1.05);
}

.nd-proj-card__body {
    padding: 16px 20px 35px;
    /* ТЗ */
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    /* Кнопка слева? Или справа в RTL? Start = право в RTL */
}

.nd-proj-card__title {
    font-family: var(--nd-font-main);
    font-weight: 600;
    font-size: 24px;
    line-height: 1.19;
    color: var(--nd-color-text);
    margin: 0 0 10px 0;
}

.nd-proj-card__meta {
    font-family: var(--nd-font-main);
    font-weight: 400;
    font-size: 15.43px;
    color: #666;
    /* Серый для меты */
    margin-bottom: 8px;
}

.nd-proj-card__excerpt {
    font-family: var(--nd-font-main);
    font-weight: 400;
    font-size: 17.64px;
    line-height: 1.5;
    color: var(--nd-color-text);
    margin-bottom: 30px;
    flex: 1;
    /* Чтобы кнопка прижалась вниз */
}

.nd-proj-btn {
    display: inline-block;
    background-color: #00524F;
    color: #FFFFFF;
    font-size: 16px;
    font-weight: 400;
    padding: 6px 14px;
    border-radius: 6px;
    transition: background 0.3s;
}

.nd-proj-card:hover .nd-proj-btn {
    background-color: var(--nd-color-bg-dark);
    /* #0C8076 */
}

/* --- Hero Section Fallback (No Image) --- */
.nd-project-hero--no-img {
    background-color: var(--nd-color-accent);
    /* #00736F */
    /* Можно добавить паттерн или градиент, чтобы было интереснее */
    background: linear-gradient(135deg, var(--nd-color-accent) 0%, var(--nd-color-bg-dark) 100%);
}

/* --- Card Placeholder (CSS Only) --- */
.nd-proj-placeholder {
    width: 100%;
    height: 100%;
    background-color: var(--nd-color-bg-alt);
    /* #E8EEEA - светло-серый фон */
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    box-sizing: border-box;
    text-align: center;
    transition: background-color 0.3s;
}

.nd-proj-placeholder span {
    font-family: var(--nd-font-main);
    font-weight: 700;
    font-size: 20px;
    line-height: 1.2;
    color: var(--nd-color-accent);
    /* Текст цветом бренда */
}

/* Ховер эффект для плейсхолдера */
.nd-proj-card:hover .nd-proj-placeholder {
    background-color: #dbe4df;
    /* Чуть темнее при наведении */
}

/* --- Mobile --- */
@media (max-width: 991px) {
    .nd-project-hero {
        height: 256px;
        padding: 28px 0;
    }

    .nd-project-hero__title {
        font-size: 35px;
        margin: 0 0 5px;
    }

    .nd-projects-grid-sect {
        padding: 22px 0;
    }

    .nd-projects-grid {
        grid-template-columns: 1fr;
        /* 1 колонка */
        gap: 24px;
    }

    .nd-proj-btn {
        padding-inline: 24px;
    }

    .nd-proj-card__body {
        padding: 16px 20px 22px;
    }
}

/* =========================================
   Contact Page (ND)
   ========================================= */

.nd-contact-page {
    padding-top: 40px;
    padding-bottom: 60px;
    direction: rtl;
    background-color: var(--nd-color-bg);
    /* #FFFDF7 */
}

.nd-contact-grid {
    display: grid;
    /* Col 1: Content (1fr), Col 2: Border (1px), Col 3: Sidebar (426px) */
    /* Гап 60px с каждой стороны от линии = 60+60 = 120 gap между контентом и сайдбаром */
    /* Мы сделаем 1fr 1px 426px и зададим gap 60px. Это даст по 60px отступа от центральной линии. */
    grid-template-columns: 1fr 1px 426px;
    gap: 60px;
    align-items: stretch;
}

/* --- Divider --- */
.nd-contact-divider {
    width: 1px;
    background-color: #B3B3B3;
    height: 100%;
}

/* --- Typography --- */
.nd-contact-title {
    font-family: var(--nd-font-main);
    font-weight: 600;
    font-size: 40px;
    line-height: 1.19;
    color: #000000;
    margin-top: 0;
    margin-bottom: 30px;
}

.nd-contact-text,
.nd-contact-intro-text p,
.nd-contact-form-intro {
    font-family: var(--nd-font-main);
    font-weight: 400;
    font-size: 18px;
    line-height: 1.19;
    color: #000000;
    margin-bottom: 30px;
}

.nd-contact-intro-text a {
    color: #000000;
    text-decoration: underline !important;
}

/* --- Socials Row --- */
.nd-contact-socials-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-top: 1px solid #B3B3B3;
    border-bottom: 1px solid #B3B3B3;
    padding: 18px 0;
    margin-bottom: 30px;
    gap: 40px;
}

.nd-socials-label {
    font-family: var(--nd-font-main);
    font-size: 18px;
    color: #000000;
}

.nd-contact-socials-icons {
    display: flex;
    gap: 40px;
}

.nd-contact-socials-icons a {
    display: block;
    width: 30px;
    height: 30px;
}

.nd-contact-socials-icons a svg {
    width: 100%;
    height: 100%;
}

/* --- Form Styles (Overrides CF7) --- */
.nd-contact-form-wrapper .wpcf7-form {
    margin-top: 70px;
    direction: rtl;
}

.nd-contact-form-wrapper .wpcf7-form p {
    color: #000000 !important;
    font-size: 18px !important;
    font-weight: 400 !important;
    line-height: 1.19 !important;
    margin-bottom: 0 !important;
}

/* Reset basics */
.nd-contact-form-wrapper .wpcf7-form input[type="text"],
.nd-contact-form-wrapper .wpcf7-form input[type="email"],
.nd-contact-form-wrapper .wpcf7-form input[type="tel"],
.nd-contact-form-wrapper .wpcf7-form textarea {
    background: transparent !important;
    border: none !important;
    border-bottom: 1px solid #B3B3B3 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    width: 100% !important;
    padding: 10px 0 !important;
    margin-bottom: 30px !important;

    font-family: var(--nd-font-main) !important;
    font-weight: 400 !important;
    font-size: 18px !important;
    line-height: 1 !important;
    color: #000000 !important;
    direction: rtl !important;
}

.nd-contact-form-wrapper .wpcf7-form .wpcf7-not-valid-tip {
    transform: translateY(-20px);
}

.nd-contact-form-wrapper .wpcf7-form textarea {
    height: 130px;
}

.nd-contact-form-wrapper .wpcf7-form input::placeholder,
.nd-contact-form-wrapper .wpcf7-form textarea::placeholder {
    color: #000000 !important;
}

.nd-contact-form-wrapper .wpcf7-form input:focus,
.nd-contact-form-wrapper .wpcf7-form textarea:focus {
    border-bottom-color: var(--nd-color-accent) !important;
}

/* Submit Button */
.nd-contact-form-wrapper .wpcf7-form input[type="submit"] {
    background-color: #00524F !important;
    color: #FFFFFF !important;
    border: none !important;
    font-family: var(--nd-font-main) !important;
    font-weight: 400 !important;
    font-size: 16px !important;
    cursor: pointer !important;
    border-radius: 6px !important;
    transition: background 0.3s !important;
    margin-inline-start: auto;
    display: block;
    padding: 12px 30px !important;
}

.nd-contact-form-wrapper .wpcf7-form input[type="submit"]:hover {
    background-color: var(--nd-color-bg-dark) !important;
}

/* --- Sidebar --- */
.nd-contact-sidebar {
    display: flex;
    flex-direction: column;
    gap: 45px;
}

.nd-contact-sidebar>div {
    margin-bottom: 0 !important;
}

.nd-contact-ad {
    width: 100%;
    aspect-ratio: 3 / 4;
    background-color: #D9D9D9;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: bold;
}

/* Info Box */
.nd-contact-info-box {
    background-color: #E8EEEA;
    padding: 32px;
}

.nd-info-box-title {
    font-family: var(--nd-font-main);
    font-weight: 700;
    font-size: 20px;
    line-height: 1.4;
    color: #074338;
    margin-top: 0;
    margin-bottom: 20px;
}

.nd-info-box-text {
    font-family: var(--nd-font-main);
    font-weight: 400;
    font-size: 16px;
    line-height: 1;
    color: #074338;
    margin-bottom: 20px;
    padding-bottom: 5px;
    /* Space for border */
    border-bottom: 1px solid #00736F;
    display: inline-block;
    /* To wrap border to text length */
    width: 100%;
    /* Or auto if you want short border */
}

.nd-info-box-text a {
    color: inherit;
    text-decoration: none;
}

.nd-info-box-btn {
    width: 100px;
    height: 30px;
    background-color: #00524F;
    color: #fff;
    border: none;
    border-radius: 2px;
    font-family: var(--nd-font-main);
    font-weight: 400;
    font-size: 16px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-bottom: 20px;
}

.nd-info-box-btn svg {
    display: block;
}

.nd-info-box-subtext {
    font-family: var(--nd-font-main);
    font-weight: 500;
    font-size: 14px;
    line-height: 1;
    color: #074338;
    margin-bottom: 20px;
}

.nd-info-box-socials {
    display: flex;
    gap: 20px;
}

.nd-info-box-socials a {
    display: block;
    width: 30px;
    height: 30px;
}

.nd-info-box-socials a svg {
    width: 100%;
    height: 100%;
}


/* =========================================
   Mobile / Responsive (Contact Page)
   ========================================= */
@media (max-width: 991px) {
    .nd-contact-page {
        /* На моб отступы не указаны, оставляем 60 или уменьшаем по вкусу, оставил как на пк по ТЗ "Сверху снизу по 60px" */
    }

    .nd-contact-grid {
        grid-template-columns: 1fr;
        gap: 0;
        /* Отступ между блоками на моб */
    }

    .nd-contact-divider {
        display: none;
    }

    .nd-contact-sidebar {
        max-width: 576px;
        margin-inline: auto;
        width: 100%;
        overflow-x: hidden;
    }

    /* Typography Mobile */
    .nd-contact-title {
        font-size: 35px;
    }

    .nd-contact-text,
    .nd-contact-intro-text p,
    .nd-contact-form-intro {
        font-size: 17px;
    }

    .nd-contact-form-wrapper .wpcf7-form input[type="text"],
    .nd-contact-form-wrapper .wpcf7-form input[type="email"],
    .nd-contact-form-wrapper .wpcf7-form input[type="tel"],
    .nd-contact-form-wrapper .wpcf7-form textarea {
        font-size: 17px;
    }

    /* Buttons & Inputs width */
    .nd-contact-form-wrapper .wpcf7-form input[type="submit"] {
        width: 100%;
        display: block;
    }
}

/* =========================================
   Single Project Page (ND) - High Park
   ========================================= */

/* --- Block 1: Logo Top Bar --- */
.nd-proj-top-bar {
    padding-top: 60px;
    padding-bottom: 40px;
}

.nd-proj-logo {
    width: 300px;
    margin: 0 auto;
}

.nd-proj-logo img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* --- Block 2: Hero --- */
.nd-proj-hero {
    width: 100%;
    height: 700px;
    max-height: 700px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: #eee;
    margin-bottom: 80px;
}

/* --- Block 3 & 5: Grid Sections (Intro & Developer) --- */
.nd-section-intro,
.nd-section-developer {
    background-color: #E8EEEA;
    padding-top: 80px;
    padding-bottom: 60px;
    direction: rtl;
}

.nd-proj-grid {
    display: grid;
    /* Col 1 (315px) - Gap (130px) - Col 2 (1fr) */
    grid-template-columns: 315px 1fr;
    gap: 130px;
}

.nd-proj-grid__main>*:first-child {
    margin-top: 0;
}

/* Typography & Content Updates */

/* Заголовки и основные элементы */
.nd-proj-title {
    font-family: var(--nd-font-main);
    font-weight: 600;
    font-size: 40px;
    line-height: 49px;
    color: #000;
    margin: 0 0 20px 0;
}

.nd-content-body hr {
    display: none;
}

.nd-content-body h2,
.nd-content-body h3,
.nd-content-body h4,
.nd-content-body h5,
.nd-content-body h6 {
    font-family: var(--nd-font-main);
    font-weight: 600;
    font-size: 24px;
    line-height: 38px;
    margin-top: 30px;
    /* Увеличил отступ сверху для читаемости */
    margin-bottom: 10px;
    color: #000;
}

.nd-content-body p,
.nd-content-body li {
    font-family: var(--nd-font-main);
    font-weight: 400;
    font-size: 18px;
    line-height: 30px;
    color: #000;
    margin-bottom: 20px;
}

.nd-content-body strong {
    font-weight: 700;
}

/* Списки (ul, ol) */
.nd-content-body ul,
.nd-content-body ol {
    margin: 0 0 25px 0;
    padding-inline-start: 25px;
}

.nd-content-body ul {
    list-style-type: disc;
}

.nd-content-body ol {
    list-style-type: decimal;
}

.nd-content-body li {
    margin-bottom: 10px;
    /* Меньший отступ между пунктами списка */
}

.nd-content-body li>ul,
.nd-content-body li>ol {
    margin-top: 10px;
    margin-bottom: 0;
}

/* Ссылки */
.nd-content-body a {
    color: #000;
    text-decoration: underline;
    transition: opacity 0.2s ease;
}

.nd-content-body a:hover {
    opacity: 0.7;
}

/* Цитаты (Blockquote) */
.nd-content-body blockquote {
    margin: 30px 0;
    padding-left: 20px;
    border-left: 3px solid #000;
    font-style: italic;
}

.nd-content-body blockquote p {
    margin-bottom: 0;
}

/* Фигуры и подписи (WP default) */
.nd-content-body figure {
    margin: 25px 0;
}

.nd-content-body figcaption {
    font-size: 14px;
    line-height: 20px;
    color: #666;
    margin-top: 8px;
    text-align: center;
}

/* --- Developer Block Extras --- */
.nd-dev-title {
    font-family: var(--nd-font-main);
    font-weight: 600;
    font-size: 40px;
    /* Как главный заголовок */
    line-height: 1.1;
    color: #000;
    margin: 0 0 5px;
    text-transform: uppercase;
    word-break: break-word;
    /* На случай длинных названий в узкой колонке */
}

.nd-dev-subtitle {
    font-family: var(--nd-font-main);
    font-weight: 600;
    font-size: 40px;
    /* Как главный заголовок */
    line-height: 1.1;
    color: #000;
    margin: 0 0 5px;
    text-transform: uppercase;
    word-break: break-word;
}

.nd-dev-logo-wrap {
    width: 100%;
    /* Заполняет колонку 135px */
    margin-top: 20px;
    max-width: 200px;
}

.nd-dev-logo-wrap img {
    width: 100%;
    height: auto;
    display: block;
}

/* --- Block 4: Tabs & Gallery --- */
.nd-section-gallery {
    background-color: #FFFDF7;
    padding: 80px 0;
    direction: rtl;
    overflow: hidden;
}

.nd-gallery-header {
    text-align: center;
    max-width: var(--nd-container-width);
    margin: 0 auto 60px;
}

.nd-gallery-sect-title {
    font-family: var(--nd-font-main);
    font-weight: 600;
    font-size: 40px;
    line-height: 1.2;
    color: #000000;
    margin-top: 0;
    margin-bottom: 30px;
}

/* Tabs Navigation */
.nd-tabs-nav {
    display: flex;
    justify-content: center;
    gap: 30px;
    position: relative;
    width: fit-content;
    margin: 0 auto;
    /* Черная линия под всеми табами */
    box-shadow: 0 -1px 0 0 #000 inset;
    padding-bottom: 0;
}

.nd-tab-btn {
    background: none;
    border: none;
    font-family: var(--nd-font-main);
    font-weight: 600;
    font-size: 20px;
    line-height: 1;
    color: #000000;
    cursor: pointer;
    padding: 10px 15px;
    position: relative;
    border-bottom: 3px solid transparent;
    /* Резерв места */
    margin-bottom: 0;
}

.nd-tab-btn.is-active {
    font-weight: 800;
    border-bottom: 3px solid #000000;
    /* Активная жирная линия */
}

/* Tabs Content Styles */
.nd-tab-pane {
    display: none;
    opacity: 0;
    transition: opacity 0.3s;
    width: 100%;
}

.nd-tab-pane.is-active {
    display: block;
    opacity: 1;
}

/* =========================================
   Swiper Slider Styles (Replacing Slick)
   ========================================= */

.nd-proj-swiper {
    width: 100%;
    padding-top: 0;
    padding-bottom: 60px;
    /* Место под пагинацию */
    overflow: hidden;
    position: relative;
}

.swiper-wrapper {
    align-items: center;
}

.swiper-slide {
    /* Ширина слайда на ПК: 60%, чтобы по бокам оставалось по 20% для соседних */
    width: 60%;
    height: 500px;
    transition: transform 0.3s ease, opacity 0.3s ease;
    opacity: 0.5;
    transform: scale(0.9);
}

.swiper-slide-active {
    opacity: 1;
    transform: scale(1);
}

.swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 2px;
}

/* --- Custom Navigation Buttons --- */
.nd-swiper-btn-prev,
.nd-swiper-btn-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background-color: #FFFFFF;
    box-shadow: 9px 5px 10.1px -8px #00000040;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    margin-top: -30px;
    /* Корректировка из-за паддинга снизу */
}

/* В режиме RTL Swiper меняет логику: prev (влево) это "вперед" по контенту */
.nd-swiper-btn-next {
    right: calc(25% - 22px);
}

.nd-swiper-btn-prev {
    left: calc(25% - 22px);
}

.nd-swiper-btn-prev:hover,
.nd-swiper-btn-next:hover {
    background-color: #f5f5f5;
}

/* --- Pagination (Dots) --- */
.nd-proj-swiper .swiper-pagination {
    bottom: 0;
}

.nd-proj-swiper .swiper-pagination-bullet {
    width: 18px;
    height: 18px;
    background: #D9D9D9;
    opacity: 1;
    margin: 0 9px !important;
    /* Gap 18px */
    border-radius: 50%;
    transition: background 0.3s;
}

.nd-proj-swiper .swiper-pagination-bullet-active {
    background: #000000;
}

/* --- Mobile Gallery Logic (Stacked) --- */
.nd-mobile-tab-title {
    display: none;
    /* Скрыто на ПК */
}

/* --- Mobile Responsive --- */
@media (max-width: 991px) {
    .nd-proj-logo {
        width: 200px;
        margin: 0 auto;
    }

    .nd-proj-hero {
        height: 300px;
        margin-bottom: 40px;
    }

    .nd-section-intro,
    .nd-section-developer {
        padding-top: 40px;
        padding-bottom: 40px;
    }

    .nd-proj-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .nd-proj-grid__side {
        text-align: start;
        display: grid;
    }

    .nd-dev-title,
    .nd-dev-subtitle {
        font-size: 30px;
        order: 1;
    }

    .nd-dev-logo-wrap {
        margin-inline-end: auto;
        width: 120px;
        margin-top: 0;
        margin-bottom: 20px;
    }

    /* Slider Mobile */
    .nd-proj-swiper {
        padding-top: 10px;
        padding-bottom: 40px;
    }

    .swiper-slide {
        width: 85%;
        height: auto;
        aspect-ratio: 3 / 2;
    }

    .nd-swiper-btn-next {
        right: 10px;
        display: none;
    }

    .nd-swiper-btn-prev {
        left: 10px;
        display: none;
    }

    .nd-gallery-sect-title {
        font-size: 30px;
        line-height: 1.2;
    }

    .nd-proj-swiper .swiper-pagination-bullet {
        width: 10px;
        height: 10px;
        margin: 0 5px !important;
    }

    /* Скрываем кнопки переключения табов */
    .nd-tabs-nav {
        display: none !important;
    }

    /* Показываем ВСЕ вкладки (игнорируем display:none от JS/классов) */
    .nd-tab-pane {
        display: block !important;
        opacity: 1 !important;
        margin-bottom: 30px;
        /* Отступ между галереями */
    }

    /* Убираем отступ у последней галереи */
    .nd-tab-pane:last-child {
        margin-bottom: 0;
    }

    /* Показываем и стилизуем заголовки на мобильном */
    .nd-mobile-tab-title {
        display: block;
        text-align: center;
        font-family: var(--nd-font-main);
        font-weight: 700;
        font-size: 24px;
        margin-top: 0;
        margin-bottom: 10px;
        /* Отступ до слайдера */
        color: #000;
    }
}

/* =========================================
   Block 6: Project Contact Bar (Green)
   ========================================= */
/* --- Base Styles --- */
.nd-project-contact {
    background-color: #02615D;
    padding: 40px 0;
    direction: rtl;
    color: #FFFFFF;

    /* УБРАЛИ position: sticky и bottom: 0 отсюда */
    position: relative;
    z-index: 10;
    /* transition убрали, так как position не анимируется через transition, 
       будем использовать animation при добавлении класса */
}

.nd-contact-bar {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 40px;
}

/* ... (Остальные стили заголовков, инпутов, чекбоксов оставляем как есть) ... */
.nd-contact-bar__header {
    flex: 0 0 auto;
}

.nd-contact-bar__title {
    font-family: var(--nd-font-main);
    font-weight: 700;
    font-size: 24px;
    line-height: 1.2;
    color: #FFFFFF;
    margin: 0;
    text-align: right;
}

.nd-contact-bar__form {
    flex: 1;
}

.nd-proj-static-form {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.nd-proj-form__inputs {
    display: flex;
    gap: 20px;
}

.nd-input-group {
    flex: 1;
    position: relative;
}

.nd-input-group input {
    width: 100%;
    background: transparent;
    border: none;
    border-bottom: 1px solid #FFFFFF;
    color: #FFFFFF;
    font-family: var(--nd-font-main);
    font-size: 16px;
    padding: 10px 0;
    outline: none;
    border-radius: 0;
    box-shadow: none;
}

.nd-input-group input::placeholder {
    color: #FFFFFF !important;
    opacity: 1;
}

.nd-proj-form__checks {
    display: flex;
    gap: 30px;
    margin-top: 5px;
}

.nd-custom-check {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    font-size: 12px;
    user-select: none;
}

.nd-custom-check input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

.nd-checkmark {
    height: 14px;
    width: 14px;
    background-color: transparent;
    border: 1px solid #FFFFFF;
    border-radius: 2px;
    position: relative;
    flex-shrink: 0;
}

.nd-custom-check input:checked~.nd-checkmark {
    background-color: #FFFFFF;
}

.nd-custom-check input:checked~.nd-checkmark:after {
    display: block;
}

.nd-custom-check .nd-checkmark:after {
    content: "";
    position: absolute;
    display: none;
    left: 4px;
    top: 1px;
    width: 4px;
    height: 8px;
    border: solid #02615D;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.nd-check-text a {
    color: #FFFFFF;
    text-decoration: underline !important;
}

.nd-contact-bar__actions {
    flex: 0 0 210px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.nd-proj-submit-btn {
    width: 100%;
    height: 44px;
    background-color: #84FEC1;
    color: #074338;
    border: none;
    border-radius: 4px;
    font-family: var(--nd-font-main);
    font-weight: 700;
    font-size: 18px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    transition: background 0.3s;
}

.nd-proj-submit-btn:hover {
    background-color: #6efbbe;
}

.nd-proj-submit-btn svg {
    display: block;
}

.nd-proj-nav {
    display: flex;
    justify-content: flex-end;
    gap: 25px;
    font-size: 16px;
    font-weight: 500;
    margin-top: 50px;
}

.nd-nav-link {
    color: #FFFFFF;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 5px;
    transition: opacity 0.3s;
}

.nd-nav-link:hover {
    opacity: 0.8;
    color: #fff !important;
}

.nd-nav-link.disabled {
    opacity: 0.3;
    pointer-events: none;
}

.nd-proj-nav .nd-nav-arrow svg {
    width: 7px;
    height: auto;
}

/* --- Mobile / Responsive --- */
@media (max-width: 991px) {
    .nd-project-contact {
        padding: 40px 0;
    }

    .nd-contact-bar {
        display: grid;
        grid-template-columns: 100%;
        gap: 20px;
    }

    .nd-contact-bar__form,
    .nd-proj-static-form,
    .nd-contact-bar__actions {
        display: contents;
    }

    .nd-contact-bar__header {
        text-align: center;
        width: 100%;
    }

    .nd-contact-bar__title {
        text-align: center;
        font-size: 24px;
    }

    .nd-proj-form__inputs {
        order: 2;
        display: flex;
        flex-direction: column;
        gap: 20px;
        width: 100%;
    }

    .nd-input-group input {
        text-align: right;
    }

    .nd-proj-submit-btn {
        order: 3;
        width: 100%;
        margin-bottom: 0;
    }

    .nd-proj-form__checks {
        order: 4;
        display: flex;
        flex-direction: column;
        gap: 15px;
        align-items: flex-start;
        margin-top: 0;
    }

    .nd-proj-nav {
        order: 5;
        width: 100%;
        margin-top: 10px;
        display: flex;
        justify-content: space-between;
    }
}

/* --- Mobile Sticky Teaser --- */
.nd-mobile-sticky-teaser {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background-color: #02615D;
    color: #FFFFFF;
    padding: 19px 0;
    z-index: 999;
    cursor: pointer;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
    transform: translateY(100%);
    transition: transform 0.3s ease-in-out;
    display: none;
}

.nd-mobile-sticky-teaser .nd-container {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    direction: rtl;
}

.nd-teaser-text {
    font-family: var(--nd-font-main, sans-serif);
    font-weight: 700;
    font-size: 20px;
}

.nd-mobile-sticky-teaser.is-visible {
    transform: translateY(0);
}

/* --- Desktop Sticky Form Logic --- */
.nd-sticky-spacer {
    display: none;
    width: 100%;
    /* Высота ставится JS-ом */
}

/* Этот класс добавляется JS-ом ТОЛЬКО когда мы проскроллили Hero и не дошли до футера */
.nd-project-contact.is-desktop-sticky {
    position: fixed !important;
    bottom: 0;
    left: 0;
    width: 100%;
    z-index: 990;
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.15);
    animation: slideUpContact 0.4s ease-out;
    padding: 30px 0 15px;
}

@keyframes slideUpContact {
    from {
        transform: translateY(100%);
    }

    to {
        transform: translateY(0);
    }
}

@media (max-width: 991px) {
    .nd-mobile-sticky-teaser {
        display: block;
    }

    /* Гарантируем, что на мобильных форма всегда статична */
    .nd-project-contact.is-desktop-sticky {
        position: relative !important;
        box-shadow: none !important;
        animation: none !important;
    }

    .nd-sticky-spacer {
        display: none !important;
    }
}

/* =========================================
   New News/Ajax Page Styles
   ========================================= */
.nd-news-hero {
    display: block;
}

.nd-news-hero .nd-container {
    position: relative;
}

/* --- 1. News Hero Section --- */
.nd-news-hero-section {
    padding-bottom: 50px;
    /* Отступ до баннера */
    position: relative;
}

.nd-news-hero {
    position: relative;
    width: 100%;
    height: 600px;
    /* Высота главного блока */
    overflow: hidden;
    margin-bottom: 0;
}

.nd-news-hero__bg {
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    position: relative;
    display: block;
}

.nd-page-wrapper {
    background-color: var(--nd-color-bg);
}

/* Затемнение, чтобы текст читался */
.nd-news-hero__bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.6) 100%);
}

.nd-news-hero__content {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding-bottom: 60px;
    /* Отступ снизу */
    z-index: 2;
    color: #FFFFFF;
    text-align: right;
    /* RTL */
    pointer-events: none;
}

.nd-news-hero__title {
    font-family: 'Heebo', sans-serif;
    font-weight: 600;
    font-size: 55px;
    line-height: 1.19;
    letter-spacing: 0;
    margin: 0 0 15px 0;
    color: #FFFFFF;
}

.nd-news-hero__title a {
    color: #FFFFFF !important;
    text-decoration: none;
    transition: opacity 0.3s;
    pointer-events: auto;
}

.nd-news-hero__title a:hover {
    opacity: 0.8;
}

.nd-news-hero__meta {
    font-family: 'Heebo', sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1;
    letter-spacing: 0;
    color: #FFFFFF;
    opacity: 0.9;
}

/* --- 2. Featured Section (4 items) --- */
.nd-news-featured {
    background-color: #FFFDF7;
    /* Фон секции по ТЗ */
    padding: 50px 0;
}

/* Используем существующий .nd-list-grid из nd-styles.css, но он там 1fr 1fr */


/* --- 3. Main Grid (White Cards) --- */
.nd-news-main-section {
    background-color: #FFFDF7;
    padding-top: 80px;
    padding-bottom: 80px;
}

/* Модификатор для карточки: белый фон + тень + паддинги */
.nd-news-card--white {
    background-color: #FFFFFF;
    box-shadow: 0px 0px 7.3px 0px #0000000D;
    height: 100%;
    /* Чтобы тянулась */
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.nd-news-card--white:hover {
    transform: translateY(-5px);
    box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.1);
}

.nd-news-card--white .nd-news-card__img-wrap {
    width: 100%;
    aspect-ratio: 1.65 / 1;
}

.nd-news-card--white .nd-news-card__content {
    padding: 40px 30px 25px;
    /* ТЗ: 40 30 25 */
    display: flex;
    flex-direction: column;
    flex: 1;
}

.nd-news-card--white .nd-news-card__title {
    font-size: 24px;
    font-weight: 600;
    margin-bottom: 15px;
    line-height: 1.2;
}

.nd-news-card--white .nd-news-card__meta {
    font-size: 14px;
    color: #666;
    margin-top: auto;
    /* Прижимаем дату вниз, если надо */
}

/* Мобильная адаптация */
@media (max-width: 991px) {
    .nd-news-hero {
        height: auto;
    }

    .nd-news-hero-section {
        padding-bottom: 0;
    }

    .nd-news-hero-section~.nd-container {
        margin-bottom: 20px !important;
    }

    .nd-news-hero__bg {
        height: auto;
        aspect-ratio: 390 / 235;
    }

    .nd-news-hero__content {
        position: unset;
        color: #000;
        padding-block: 21px;
    }

    .nd-news-hero__title {
        font-size: 20px;
    }

    .nd-news-hero__title a {
        font-size: 20px;
        color: #000 !important;
    }

    .nd-news-hero__meta {
        color: #000000CC;
        font-size: 14px;
    }

    .nd-news-card--white .nd-news-card__content {
        padding: 20px 15px;
    }

    .nd-news-main-section {
        padding-top: 40px;
        padding-bottom: 0;
    }

    .nd-news-card__img-wrap {
        margin-bottom: 24px;
    }

    .nd-news-card--white .nd-news-card__title {
        font-size: 20px;
    }
}

/* =========================================
   Updates for Ajax/News Page (Static Version)
   ========================================= */

/* --- 1. Featured Section Updates --- */
/* Фон секции */
.nd-news-featured.nd-section--c {
    background-color: #E8EEEA;
}

/* Белая подложка для горизонтальных карточек */
.nd-news-featured .nd-list-card {
    background-color: #FFFFFF;
    box-shadow: 0px 0px 7.3px 0px #0000000D;
    height: 100%;
    transition: transform 0.3s ease;
}

/* Убираем стандартный gap у ссылки, так как будем использовать паддинги */
.nd-news-featured .nd-list-card__link {
    gap: 0;
    align-items: stretch;
    height: 100%;
}

.nd-news-featured .nd-list-card__link .nd-list-card__img {
    aspect-ratio: unset;
}

/* Паддинг для текстовой части */
.nd-news-featured .nd-list-card__content {
    padding: 25px 20px;
    /* Сверху/снизу 25, сбоку 20 */
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* --- 2. Main Section Updates --- */

/* Отключаем подъем карточки вверх */
.nd-news-card--white:hover {
    transform: none !important;
    box-shadow: 0px 0px 7.3px 0px #0000000D;
    /* Тень не меняется или меняется минимально */
}

/* Оставляем увеличение картинки */
.nd-news-card--white:hover .nd-news-card__img-wrap img {
    transform: scale(1.05);
}

/* Стили для краткого текста (excerpt) */
.nd-news-card__excerpt {
    font-family: 'Heebo', sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 1.5;
    color: #000000;
    margin-top: 15px;
    /* Отступ от меты */
    display: -webkit-box;
    -webkit-line-clamp: 5;
    /* Ограничение в 5 строк */
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Мобильная адаптация */
@media (max-width: 991px) {
    .nd-news-featured {
        padding-block: 35px
    }

    .nd-news-featured .nd-list-card__content {
        padding: 15px;
        flex: unset;
    }

    .nd-news-featured .nd-list-card__link {
        flex-direction: row;
    }

    .nd-news-featured .nd-list-card__img {
        width: 53%;
        flex: 0 0 auto;
    }
}

/* =========================================
   Single Post - New Design
   ========================================= */

/* Hero Option 1: Full Width */
.nd-post-hero-fw {
    height: 600px;
    background-size: cover;
    background-position: center;
    position: relative;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 80px;
    background-color: var(--nd-color-bg);
}

.nd-post-hero-fw::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
}

.nd-post-hero-fw__title {
    position: relative;
    z-index: 2;
    color: #fff;
    font-family: 'Heebo', sans-serif;
    font-weight: 600;
    font-size: 80px;
    line-height: 1.19;
    text-align: center;
    margin: 0;
}

.nd-post-hero-fw__subtitle {
    position: relative;
    z-index: 2;
    color: #fff;
    font-family: 'Heebo', sans-serif;
    font-weight: 400;
    font-size: 16px;
    line-height: 24px;
    text-align: center;
    margin: 18px 0 0;
}

/* Hero Option 2: Big Image */
.nd-post-hero-big {
    padding: 80px 0 30px;
    text-align: center;
    background-color: var(--nd-color-bg);
}

.nd-post-hero-big__title {
    font-size: 55px;
    font-weight: 600;
    line-height: 1.19;
    margin-bottom: 60px;
    text-align: center;
    margin-top: 0;
    max-width: 1100px;
    margin-inline: auto;
}

.nd-post-hero-big__img img {
    width: 100%;
    height: auto;
    display: block;
}

.nd-contact-main {
    overflow-x: hidden;
}

.nd-contact-main .nd-post-hero-big__title {
    text-align: start;
    margin-bottom: 30px;
}

/* Typography Inside Article */
.nd-post-meta {
    font-size: 16px;
    color: #000;
    font-weight: 400;
}

.nd-post-author,
.nd-post-author a {
    font-size: 18px;
    line-height: 1;
    color: #00524F;
    pointer-events: auto;
    /* Включаем клик обратно */
    position: relative;
    /* На всякий случай поднимаем контекст */
    z-index: 10;
}

.nd-post-separator {
    margin-inline-start: 8px;
    margin-inline-end: 6px;
    font-size: 18px;
}

.nd-post-date {
    font-size: 18px;
}

.nd-article-content {
    margin-top: 30px;
}

.nd-article-content h1,
.nd-article-content h2 {
    font-weight: 600;
    font-size: 24px;
    line-height: 38px;
    margin-bottom: 30px;
}

.nd-article-content h3,
.nd-article-content h4 {
    font-family: var(--nd-font-main);
    font-weight: 600;
    line-height: 1.2;
    color: var(--nd-color-text);
    margin-top: 30px;
    margin-bottom: 15px;
}

.nd-article-content h3 {
    font-size: 24px;
}

.nd-article-content h4 {
    font-size: 21px;
}

.nd-article-content p {
    font-weight: 400;
    font-size: 18px;
    line-height: 32px;
    margin-bottom: 30px;
    color: #000;
}

.nd-article-content a {
    text-decoration: underline !important;
    color: #064A48;
}

.nd-article-content figure {
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: 30px;
}

.nd-article-content figure figcaption {
    width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
    text-align: start;
}

.nd-article-content img {
    width: 100%;
    height: auto;
    margin-bottom: 6px;
}

/* Alt text for images */
.nd-article-content .wp-caption-text {
    font-size: 16px;
    margin-bottom: 30px;
    color: #000;
}

/* Quote styling */
.nd-article-content blockquote {
    border-top: 1px solid #B3B3B3;
    border-bottom: 1px solid #B3B3B3;
    padding: 30px 0;
    margin: 40px 0;
    text-align: center;
    border-left: none;
}

.nd-article-content blockquote p {
    font-size: 36px;
    line-height: 51px;
    font-weight: 600;
    color: #064A48;
    margin-bottom: 0;
}

.nd-sidebar-recent .sidebar-excerpt {
    font-family: 'Heebo', sans-serif;
    /* */
    font-weight: 400;
    font-size: 18px;
    line-height: 1.4;
    color: #000;
    margin-top: 5px;

    /* Магия обрезания строк */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    /* Ровно 2 строки */
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}

.nd-post-hero-big__socials-row {
    display: none;
}

/* Responsive */
@media (max-width: 991px) {
    .nd-post-hero-fw {
        height: 250px;
        padding: 20px;
    }

    .nd-post-hero-fw__title {
        font-size: 35px;
    }

    body.single .nd-post-hero-big {
        padding: 20px 0 0;
    }

    body.single .nd-post-hero-big~.nd-contact-page {
        padding-top: 0 !important;
    }

    body.single .nd-post-hero-big~.nd-contact-page .nd-contact-socials-row {
        display: none;
    }

    body.single .nd-post-hero-big .nd-post-hero-big__title {
        margin-bottom: 12px;
    }

    body.single .nd-post-hero-big__img {
        margin-inline: -20px;
    }

    .nd-post-hero-big__socials-row {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        margin-bottom: 20px;
        gap: 20px;
    }

    .nd-post-hero-big__socials-row .nd-post-author,
    .nd-post-hero-big__socials-row .nd-post-author a,
    .nd-post-hero-big__socials-row .nd-post-separator,
    .nd-post-hero-big__socials-row .nd-post-date {
        font-size: 14px;
        line-height: 1.5;
        color: #000000CC;
    }

    .nd-post-hero-big__socials-row .jssocials-shares {
        gap: 20px;
    }

    .nd-post-hero-big__socials-row .nd-contact-socials-icons a {
        width: 24px;
        height: 24px;
    }

    .nd-post-hero-big__title {
        font-size: 30px;
        text-align: start;
    }

    .nd-sidebar-recent {
        margin-top: 40px;
    }

    .nd-article-ad .nd-ad-placeholder {
        min-height: 125px !important;
    }

    .nd-sidebar-recent .sidebar-excerpt {
        font-size: 15px;
    }

    .nd-article-content blockquote p {
        font-size: 30px;
        line-height: 40px;
    }

    .nd-article-content .wp-caption-text {
        font-size: 14px;
        margin-top: 8px;
    }
}

/* =========================================
   CF7 Override for Project Contact Bar
   ========================================= */
.nd-contact-bar__form .wpcf7-form .form-col {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    position: relative;
    margin: 0;
}

.nd-contact-bar__form .wpcf7-form .wpcf7-form-control-wrap[data-name="newsletter"],
.nd-contact-bar__form .wpcf7-form .wpcf7-form-control-wrap[data-name="privacypolicy"] {
    position: absolute;
    top: calc(100% + 50px);
    font-weight: 400;
    font-size: 13px;
    line-height: 17.31px;
    color: #fff;
}

.nd-contact-bar__form .wpcf7-form .wpcf7-form-control-wrap[data-name="newsletter"] label,
.nd-contact-bar__form .wpcf7-form .wpcf7-form-control-wrap[data-name="privacypolicy"] label {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.nd-contact-bar__form .wpcf7-form .wpcf7-form-control-wrap[data-name="newsletter"] label input,
.nd-contact-bar__form .wpcf7-form .wpcf7-form-control-wrap[data-name="privacypolicy"] label input {
    margin: 0;
    width: 14px;
    height: 14px;
    border-radius: 2px;
    border: none;
    background-color: #E8EEEA;
}

.nd-contact-bar__form .wpcf7-form .wpcf7-list-item {
    margin: 0;
}

/* 1. Сброс оберток CF7 для сохранения Flex-структуры */
.nd-contact-bar__form .wpcf7-form p {
    display: contents;
    /* Игнорируем P, чтобы дети участвовали во Flex */
    margin: 0;
}

.nd-contact-bar__form .wpcf7-form br {
    display: none;
    /* Убираем лишние переносы строк */
}

/* 2. Настройка контейнера формы (как ряд) */
.nd-contact-bar__form .wpcf7-form {
    display: flex;
    align-items: flex-end;
    /* Выравниваем по низу (инпуты и кнопка) */
    gap: 36px;
    /* Отступы между полями */
    width: 100%;
    position: relative;
}

.nd-contact-bar__form .wpcf7-response-output {
    position: absolute;
    top: 50%;
    /* display: none; */
    color: #fff !important;
    left: 50%;
    transform: translate(-50%, -50%);
}

/* 3. Стилизация оберток инпутов (аналог .nd-input-group) */
.nd-contact-bar__form .wpcf7-form-control-wrap {
    flex: 1;
    /* Растягиваем поля равномерно */
    position: relative;
    min-width: 0;
    /* Фикс для Flexbox */
}

/* 4. Стилизация полей ввода (Name, Email, Phone) */
.nd-contact-bar__form input.wpcf7-text,
.nd-contact-bar__form input.wpcf7-tel,
.nd-contact-bar__form input.wpcf7-email {
    width: 100%;
    background: transparent;
    border: none;
    border-bottom: 1px solid #FFFFFF;
    color: #FFFFFF;
    font-family: var(--nd-font-main);
    font-size: 14px;
    padding: 0 0 10px;
    outline: none;
    border-radius: 0;
    box-shadow: none;
    margin: 0;
    height: 36px;
    direction: rtl !important;
}

.nd-contact-bar__form input::placeholder {
    color: #FFFFFF !important;
    opacity: 1;
}

/* Стили при фокусе (опционально, как в оригинале) */
body .nd-contact-bar__form input:focus {
    border: none !important;
    border-bottom: 1px solid #84FEC1 !important;
    /* Цвет акцента при клике */
}

/* 5. Стилизация кнопки отправки (аналог .nd-proj-submit-btn) */
.nd-contact-bar__form input.wpcf7-submit {
    flex: 0 0 125px;
    height: 36px;
    background-color: #84FEC1 !important;
    background-image: url("data:image/svg+xml,%3Csvg width='15' height='12' viewBox='0 0 15 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.5625 6.27295C13.9767 6.27295 14.3125 5.93716 14.3125 5.52295C14.3125 5.10874 13.9767 4.77295 13.5625 4.77295L13.5625 5.52295L13.5625 6.27295ZM0.220521 4.99262C-0.0723725 5.28551 -0.0723724 5.76039 0.220521 6.05328L4.99349 10.8263C5.28639 11.1191 5.76126 11.1191 6.05415 10.8263C6.34705 10.5334 6.34705 10.0585 6.05415 9.76559L1.81151 5.52295L6.05415 1.28031C6.34704 0.987416 6.34704 0.512542 6.05415 0.219649C5.76126 -0.0732444 5.28638 -0.0732443 4.99349 0.219649L0.220521 4.99262ZM13.5625 5.52295L13.5625 4.77295L0.750851 4.77295L0.750851 5.52295L0.750851 6.27295L13.5625 6.27295L13.5625 5.52295Z' fill='%23033F3E'/%3E%3C/svg%3E%0A") !important;
    background-position: left 30px center !important;
    background-repeat: no-repeat !important;
    background-size: 15px 12px !important;
    color: #074338 !important;
    border: none;
    border-radius: 2px;
    font-family: var(--nd-font-main);
    font-weight: 700;
    font-size: 20px;
    cursor: pointer;
    transition: background 0.3s;
    margin: 0;
    -webkit-appearance: none;
    padding: 0 0 0 22px !important;
    margin-inline-start: 50px;
}

.nd-contact-bar__form input.wpcf7-submit:hover {
    background-color: #6efbbe;
}

/* Спиннер загрузки (CF7 5.7+) */
.nd-contact-bar__form .wpcf7-spinner {
    position: absolute;
    margin: 0;
    bottom: 12px;
    left: -30px;
    /* В RTL спиннер слева от кнопки */
}

/* 6. Сообщения об ошибках/успехе */
.nd-contact-bar__form .wpcf7-not-valid-tip {
    color: #ff9999;
    font-size: 12px;
    position: absolute;
    top: 100%;
    right: 0;
}

.nd-contact-bar__form .wpcf7-response-output {
    flex-basis: 100%;
    /* Сообщение на всю ширину снизу */
    margin: 10px 0 0 !important;
    padding: 0 !important;
    border: none !important;
    color: #fff;
    font-size: 14px;
    text-align: right;
}

/* 7. Мобильная адаптация */
@media (max-width: 991px) {
    .nd-contact-bar__form .wpcf7-form {
        flex-direction: column;
        /* В столбик */
        gap: 30px;
        position: relative;
        padding-bottom: 125px;
    }

    .nd-contact-bar__form .wpcf7-form-control-wrap {
        width: 100%;
    }

    .nd-contact-bar__form input.wpcf7-text,
    .nd-contact-bar__form input.wpcf7-tel,
    .nd-contact-bar__form input.wpcf7-email {
        text-align: right;
        /* Выравнивание текста */
        font-size: 18px;
        line-height: 30px;
    }

    .nd-contact-bar__form input.wpcf7-submit {
        width: 100%;
        flex: 0 0 auto;
        margin: 12px 0 0;
        background-position: left calc(50% - 15px) center !important;
        padding: 0 0 0 35px !important;
        height: 44px !important;
        min-height: 44px;
    }

    .nd-contact-bar__form .wpcf7-form .form-col {
        width: 100%;
        position: unset;
    }

    .nd-contact-bar__form .wpcf7-form .form-col br {
        display: none !important;
    }

    .nd-contact-bar__form .wpcf7-form .wpcf7-form-control-wrap[data-name="newsletter"],
    .nd-contact-bar__form .wpcf7-form .wpcf7-form-control-wrap[data-name="privacypolicy"] {
        top: unset;
        bottom: 0;
        font-size: 16px;
        line-height: 1;
    }

    .nd-contact-bar__form .wpcf7-form .wpcf7-form-control-wrap[data-name="newsletter"] {
        bottom: 50px;
    }

    .nd-contact-bar__form .wpcf7-form .wpcf7-form-control-wrap[data-name="privacypolicy"] {
        bottom: 0;
    }

    .nd-contact-bar__form .wpcf7-form .wpcf7-form-control-wrap[data-name="newsletter"] label,
    .nd-contact-bar__form .wpcf7-form .wpcf7-form-control-wrap[data-name="privacypolicy"] label {
        gap: 12px;
        font-size: 16px;
        line-height: 1;
    }

    .nd-contact-bar__form .wpcf7-form .wpcf7-form-control-wrap[data-name="newsletter"] label input,
    .nd-contact-bar__form .wpcf7-form .wpcf7-form-control-wrap[data-name="privacypolicy"] label input {
        width: 25px;
        height: 25px;
        min-height: unset;
    }
}

/* -----------------------------------------------------------
   Custom Checkbox for Contact Form 7
   ----------------------------------------------------------- */

/* 1. Настраиваем контейнер Label */
.nd-contact-bar__form .wpcf7-list-item label {
    display: flex;
    align-items: center;
    cursor: pointer;
    position: relative;
    gap: 10px;
    /* Расстояние между квадратиком и текстом */
}

.nd-contact-bar__form .wpcf7-list-item label span {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* 2. Скрываем стандартный чекбокс браузера */
.nd-contact-bar__form .wpcf7-list-item input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    z-index: -1;
}

/* 3. Рисуем "Коробочку" (фон чекбокса) используя ::before у спана */
.nd-contact-bar__form .wpcf7-list-item-label::before {
    content: '';
    display: inline-block;
    flex-shrink: 0;
    /* Чтобы квадрат не сжимался, если текст длинный */

    /* Размеры для ПК */
    width: 14px;
    height: 14px;

    /* Стилизация */
    background-color: #E8EEEA;
    border-radius: 2px;
    border: none;
    /* Без бордера, как просил */
    transition: all 0.2s ease;
}

/* 4. Рисуем "Галочку" используя ::after у спана */
.nd-contact-bar__form .wpcf7-list-item-label::after {
    content: '';
    position: absolute;
    display: none;
    /* Скрыта по умолчанию */

    /* Цвет галочки */
    border: solid #074338;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);

    /* Позиционирование галочки внутри 14px квадрата */
    /* (нужно подгонять визуально, но эти значения обычно работают для 14px) */
    right: 5px;
    /* Для RTL (если сайт LTR, то left: 5px) */
    top: 50%;
    width: 4px;
    height: 8px;
    margin-top: -5px;
    /* Центровка по вертикали */
}

/* --- СОСТОЯНИЕ ACTIVE (CHECKED) --- */

/* Меняем фон коробочки при выборе */
.nd-contact-bar__form .wpcf7-list-item input[type="checkbox"]:checked+.wpcf7-list-item-label::before {
    background-color: #84FEC1;
}

/* Показываем галочку при выборе */
.nd-contact-bar__form .wpcf7-list-item input[type="checkbox"]:checked+.wpcf7-list-item-label::after {
    display: block;
}


/* -----------------------------------------------------------
   MOBILE VERSION (max-width: 767px)
   ----------------------------------------------------------- */
@media (max-width: 767px) {

    .nd-contact-bar__form .wpcf7-list-item label span::before {
        margin-inline-end: 7px;
    }

    /* Увеличиваем коробочку до 25px */
    .nd-contact-bar__form .wpcf7-list-item-label::before {
        width: 25px;
        height: 25px;
        border-radius: 4px;
        /* Чуть скруглим сильнее для большого размера */
    }

    /* Подгоняем галочку под размер 25px */
    .nd-contact-bar__form .wpcf7-list-item-label::after {
        width: 6px;
        height: 12px;
        border-width: 0 3px 3px 0;
        /* Галочка чуть жирнее */

        /* Поправляем позицию для 25px */
        right: 9px;
        margin-top: -7px;
    }
}

/* =========================================
   Article Bottom Navigation & Ad Section
   ========================================= */

.nd-article-bottom-section {
    display: flex;
    flex-direction: column;
    margin-top: 50px;
    border-top: 1px solid #B3B3B3;
    /* Верхняя линия навигации */
}

/* --- 1. Navigation Links (Desktop) --- */
.nd-article-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 22px 0;
    border-bottom: 1px solid #B3B3B3;
    /* Нижняя линия навигации */
    margin-bottom: 40px;
    /* Отступ до рекламы */
}

.nd-nav-link {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    max-width: 45%;
    transition: opacity 0.3s;
}

.nd-nav-link:hover {
    opacity: 0.7;
}

.nd-nav-content {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

/* RTL Specifics:
   .nd-nav-prev (Previous/Right side): Content then Arrow
   .nd-nav-next (Next/Left side): Arrow then Content
*/
.nd-nav-prev {
    text-align: right;
}

.nd-nav-next {
    text-align: left;
}

.nd-nav-label {
    font-family: var(--nd-font-main);
    font-weight: 700;
    font-size: 18px;
    color: #074338;
    line-height: 1.5;
}

.nd-nav-title {
    font-family: var(--nd-font-main);
    font-weight: 400;
    font-size: 16px;
    color: #666;
    line-height: 1.2;
    /* Ограничим длину заголовка */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.nd-nav-arrow svg {
    display: block;
    width: 24px;
    height: 24px;
}

.nd-nav-empty {
    flex: 1;
}

/* --- 2. Mobile Comments Row (Hidden on Desktop) --- */
.nd-mobile-comments-row {
    display: none;
    /* Скрыто на ПК */
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
}

.nd-comments-count {
    font-family: var(--nd-font-main);
    font-weight: 500;
    font-size: 16px;
    color: #000;
}

.nd-comments-btn {
    display: flex;
    align-items: center;
    gap: 10px;
    background-color: #00524F;
    color: #fff;
    padding: 4px 16px;
    border-radius: 4px;
    font-weight: 400;
    font-size: 13px;
    text-decoration: none;
    transition: background 0.3s;
}

.nd-comments-btn:hover {
    background-color: var(--nd-color-bg-dark) !important;
    color: #fff !important;
}

/* --- 3. Ad Block --- */
.nd-article-bottom-ad {
    width: 100%;
    height: 200px;
    /* Высота рекламы на ПК */
    background-color: #D9D9D9;
    /* Серый фон */
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: bold;
    font-size: 20px;
    margin-bottom: 30px;
}

/* =========================================
   Mobile Adaptation (Reordering)
   ========================================= */
@media (max-width: 991px) {
    .nd-article-bottom-section {
        border-top: none;
        /* Убираем верхнюю границу контейнера, она будет у навигации */
        margin-top: 30px;
        margin-bottom: 40px;
    }

    /* Включаем кнопку комментариев */
    .nd-mobile-comments-row {
        display: flex;
        order: 2;
        /* Второе место */
        padding: 15px 0;
        justify-content: flex-start;
        gap: 20px;
    }

    /* Реклама идет первой */
    .nd-article-bottom-ad {
        order: 1;
        /* Первое место */
        height: 125px;
        /* Высота на моб */
        margin-bottom: 0;
    }

    /* Навигация идет последней */
    .nd-article-nav {
        order: 3;
        /* Третье место */
        border-top: 1px solid #B3B3B3;
        /* Линия сверху навигации */
        border-bottom: 1px solid #B3B3B3;
        /* Линия снизу навигации */
        margin-top: 10px;
        margin-bottom: 0;
        padding: 15px 0;
        gap: 15px;
    }

    /* Уменьшаем шрифты на моб */
    .nd-nav-label {
        font-size: 14px;
    }

    .nd-nav-title {
        font-size: 14px;
    }

    /* Стрелки чуть меньше? Оставим 24px для удобства тача */
}

/* =========================================
   Additional Articles & Comments Logic
   ========================================= */

/* --- Visibility Helpers --- */
.nd-desktop-only {
    display: block;
}

.nd-mobile-only {
    display: none;
}

/* --- Section Title --- */
.nd-section-title {
    font-family: var(--nd-font-main);
    font-weight: 700;
    font-size: 40px;
    /* Большой заголовок */
    line-height: 1.2;
    color: #000;
    margin-bottom: 30px;
    margin-top: 50px;
    text-align: right;
    /* RTL */
}

/* --- Additional Articles Grid (Desktop) --- */
.nd-more-articles-wrap {
    margin-bottom: 50px;
}

.nd-more-articles-wrap .nd-section-title {
    font-weight: 600;
    margin-bottom: 50px;
}

.nd-more-articles-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    /* 2 колонки */
    gap: 40px 24px;
    /* Отступы: Row 40, Col 24 */
}

.nd-more-card {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    transition: transform 0.3s;
    background-color: #fff;
    box-shadow: 0px 0px 7.3px 0px #0000000D;
}

.nd-more-card:hover {
    /* transform: translateY(-5px); */
}

.nd-more-card__img {
    width: 100%;
    aspect-ratio: 363 / 215;
    overflow: hidden;
    margin-bottom: 15px;
    background-color: #eee;
}

.nd-more-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: var(--nd-transition);
}

.nd-more-card:hover .nd-more-card__img img {
    transform: scale(1.05);
}

.nd-more-card__content {
    padding: 25px 20px 40px;
}

.nd-more-card__title {
    font-family: var(--nd-font-main);
    font-weight: 600;
    font-size: 22px;
    line-height: 1.3;
    color: #000;
    margin: 0 0 10px 0;
}

.nd-more-card__meta {
    font-family: var(--nd-font-main);
    font-weight: 400;
    font-size: 16px;
    color: #666;
}

/* --- Comments Section Styling --- */
.nd-comments-section {
    margin-top: 30px;
    margin-bottom: 50px;
}

/* Обертка для Facebook плагина или WP комментов */
.nd-comments-wrapper {
    width: 100%;
    /* Если это iframe от FB, он сам растянется, но можно задать min-height */
    min-height: 100px;
}

/* =========================================
   Mobile Logic
   ========================================= */
@media (max-width: 991px) {

    /* Скрываем десктопные блоки */
    .nd-desktop-only {
        display: none !important;
    }

    /* Показываем мобильные блоки */
    .nd-mobile-only {
        display: block !important;
    }

    /* Стили для мобильного блока комментариев в сайдбаре */
    .nd-contact-sidebar .nd-comments-section {
        margin-top: 40px;
        padding-top: 30px;
        border-top: 1px solid #B3B3B3;
        /* Разделитель перед комментами на моб */
    }

    body.page-template-default .nd-comments-section {
        display: none !important;
    }

    .nd-section-title {
        font-size: 30px;
        /* Чуть меньше на моб */
        margin-top: 0;
    }
}

/* =========================================
   Typography Only (Scoped to Bootstrap Columns)
   ========================================= */

/* --- Основной текст --- */
.nd-container .col-xs-12 p {
    font-family: var(--nd-font-main);
    font-size: 18px;
    line-height: 1.6;
    color: var(--nd-color-text);
    margin-bottom: 24px;
}

/* --- Ссылки в тексте --- */
.nd-container .col-xs-12 p a {
    color: var(--nd-color-accent);
    /* #00736F */
    text-decoration: underline;
    font-weight: 600;
    transition: opacity 0.3s;
}

.nd-container .col-xs-12 p a:hover {
    opacity: 0.8;
    text-decoration: none;
}

/* --- Заголовки (H1 - H6) --- */
.nd-container .col-xs-12 h1,
.nd-container .col-xs-12 h2,
.nd-container .col-xs-12 h3,
.nd-container .col-xs-12 h4,
.nd-container .col-xs-12 h5,
.nd-container .col-xs-12 h6 {
    font-family: var(--nd-font-main);
    color: var(--nd-color-text);
    margin-top: 0;
    margin-bottom: 20px;
    line-height: 1.2;
}

/* Специфичные размеры заголовков */
.nd-container .col-xs-12 h1 {
    font-weight: 700;
    font-size: 42px;
    margin-top: 0;
}

.nd-container .col-xs-12 h3 {
    font-weight: 600;
    font-size: 28px;
}

.nd-container .col-xs-12 h4 {
    font-size: 20px;
    font-weight: 500;
}

/* Ссылки внутри заголовков (CTA) */
.nd-container .col-xs-12 h4 a {
    color: var(--nd-color-text-alt);
    text-decoration: none;
}

.nd-container .col-xs-12 h4 a:hover {
    color: var(--nd-color-accent);
}

/* --- Списки (UL, OL) --- */
.nd-container .col-xs-12 ul,
.nd-container .col-xs-12 ol {

    /* Исключаем списки слайдеров и меню, если они вдруг попадут */
    &:not(.slick-dots):not(.slick-slider) {
        margin-bottom: 24px;
        padding-inline-start: 20px;
        font-family: var(--nd-font-main);
        font-size: 18px;
        color: var(--nd-color-text);
    }
}

.nd-container .col-xs-12 li {
    margin-bottom: 10px;
    line-height: 1.6;
}

/* --- Сайдбар (меньший шрифт) --- */
.nd-container .col-sm-4 p {
    font-size: 16px;
}

/* --- Мобильная адаптация текстов --- */
@media (max-width: 768px) {
    .nd-container .col-xs-12 h1 {
        font-size: 32px;
    }

    .nd-container .col-xs-12 h3 {
        font-size: 24px;
    }

    .nd-container .col-xs-12 p,
    .nd-default-page-content p {
        font-size: 18px;
        line-height: 30px;
    }
}

/* =========================================
   Interactive Map Page Styling (Scoped)
   ========================================= */

/* Ограничиваем стили только этой страницей */

.page-template-page-map .nd-map-page {
    background-color: var(--nd-color-bg);
    padding-bottom: 60px;
    padding-top: 20px;
    direction: rtl;
}

/* --- Layout Structure --- */
.page-template-page-map .wrapMap {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 30px;
    position: relative;
}

/* --- 1. Right Side (Sidebar Filters) --- */
.page-template-page-map .right-side.nd-map-sidebar {
    width: 300px !important;
    flex: 0 0 300px;
    background-color: #FFFFFF;
    box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.05);
    border-radius: 8px;
    padding: 25px;
    order: 1;
    position: unset !important;
    top: 100px;
    z-index: 90;
}

.page-template-page-map .nd-sidebar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    border-bottom: 1px solid var(--nd-color-border);
    padding-bottom: 15px;
}

.page-template-page-map .nd-sidebar-header h3 {
    font-family: var(--nd-font-main);
    font-weight: 700;
    font-size: 20px;
    color: var(--nd-color-text);
    margin: 0;
}

/* Список фильтров */
.page-template-page-map #mapMenu {
    list-style: none;
    padding: 0;
    margin: 0;
}

.page-template-page-map #mapMenu li {
    font-family: var(--nd-font-main);
    font-size: 16px;
    color: var(--nd-color-text);
    padding: 10px 0;
    cursor: pointer;
    border-bottom: 1px solid #f0f0f0;
    transition: color 0.3s;
    display: flex;
    align-items: center;
    gap: 10px;
}

.page-template-page-map #mapMenu li:last-child {
    border-bottom: none;
}

.page-template-page-map #mapMenu li:hover {
    color: var(--nd-color-accent);
}

.page-template-page-map #mapMenu li input[type="checkbox"] {
    accent-color: var(--nd-color-accent);
    width: 18px;
    height: 18px;
    cursor: pointer;
}

/* Кнопка закрытия сайдбара */
.page-template-page-map .right-side .close {
    display: none;
    position: absolute;
    left: 15px;
    top: 15px;
    font-size: 20px;
    color: #000;
    cursor: pointer;
}

/* --- 2. Left Side (The Map) --- */
.page-template-page-map .left-side {
    flex: 1;
    position: relative;
    background-color: #f9f9f9;
    border-radius: 8px;
    overflow: hidden;
    min-height: 600px;
    order: 2;
}

.page-template-page-map .mapSize,
.page-template-page-map .MapHide {
    width: 100%;
    height: auto;
    display: block;
}

/* Подсказка Info */
.page-template-page-map .info-alt {
    position: absolute;
    top: 20px;
    right: 20px;
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 10px;
}

.page-template-page-map .info-alt i {
    background: #fff;
    border-radius: 50%;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.page-template-page-map .info-alt-text {
    background-color: rgba(0, 0, 0, 0.8);
    color: #fff;
    padding: 5px 12px;
    border-radius: 4px;
    font-family: var(--nd-font-main);
    font-size: 14px;
    opacity: 0;
    transition: opacity 0.3s;
    pointer-events: none;
}

.page-template-page-map .info-alt:hover .info-alt-text {
    opacity: 1;
}

/* --- 3. Popover --- */
.page-template-page-map .popover.nd-map-popover {
    position: absolute;
    z-index: 100;
    width: 320px;
    background-color: #FFFFFF;
    box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.15);
    border-radius: 8px;
    padding: 20px;
    border: none;
    font-family: var(--nd-font-main);
    display: none;
    top: 50%;
    left: 50%;
    z-index: 1000;
}

.page-template-page-map .popover-title {
    font-weight: 700;
    font-size: 22px;
    color: var(--nd-color-accent);
    margin: 0 0 15px 0;
    border-bottom: none;
    background: transparent;
    padding: 0;
}

.page-template-page-map .popover-content {
    font-size: 16px;
    color: var(--nd-color-text);
    margin-bottom: 15px;
    line-height: 1.5;
}

.page-template-page-map .closePopover {
    position: absolute;
    top: 15px;
    left: 15px;
    font-size: 18px;
    color: #999;
    cursor: pointer;
    transition: color 0.3s;
}

.page-template-page-map .closePopover:hover {
    color: #000;
}

.page-template-page-map .popover-img img {
    max-width: 100%;
    height: auto;
    border-radius: 4px;
    margin-bottom: 15px;
}

.page-template-page-map a.readMore {
    display: inline-block;
    color: var(--nd-color-accent);
    font-weight: 700;
    text-decoration: underline;
    font-size: 16px;
}

.page-template-page-map a.readMore:hover {
    color: var(--nd-color-bg-dark);
}

/* --- 4. Mobile Controls --- */
.page-template-page-map .wrapNavOpen {
    display: none;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.page-template-page-map .navOpen {
    background: #FFFFFF;
    border: 1px solid var(--nd-color-border);
    border-radius: 4px;
    padding: 8px 15px;
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    font-family: var(--nd-font-main);
    font-weight: 600;
    font-size: 16px;
    color: var(--nd-color-text);
}

.page-template-page-map .info-alt-mobile-text {
    display: none;
    background: #fff;
    position: absolute;
    top: 60px;
    right: 20px;
    left: 20px;
    padding: 15px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
    z-index: 101;
    border-radius: 4px;
    text-align: center;
}

/* --- Responsive / Mobile --- */
@media (max-width: 991px) {
    .page-template-page-map .wrapMap {
        flex-direction: column;
    }

    .page-template-page-map .right-side.nd-map-sidebar {
        display: none;
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        width: 80%;
        max-width: 320px;
        height: 100vh;
        z-index: 1000;
        overflow-y: auto;
        border-radius: 0;
        flex: unset;
        width: 100vw !important;
        position: fixed !important;
        max-width: 100%;
    }

    .nd-map-page #mapMenu h3.titleMenu {
        position: unset !important;
    }

    .nd-map-page .right-side .close {
        background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='SVGRepo_bgCarrier' stroke-width='0'%3E%3C/g%3E%3Cg id='SVGRepo_tracerCarrier' stroke-linecap='round' stroke-linejoin='round'%3E%3C/g%3E%3Cg id='SVGRepo_iconCarrier'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M12 22C7.28595 22 4.92893 22 3.46447 20.5355C2 19.0711 2 16.714 2 12C2 7.28595 2 4.92893 3.46447 3.46447C4.92893 2 7.28595 2 12 2C16.714 2 19.0711 2 20.5355 3.46447C22 4.92893 22 7.28595 22 12C22 16.714 22 19.0711 20.5355 20.5355C19.0711 22 16.714 22 12 22ZM8.96965 8.96967C9.26254 8.67678 9.73742 8.67678 10.0303 8.96967L12 10.9394L13.9696 8.96969C14.2625 8.6768 14.7374 8.6768 15.0303 8.96969C15.3232 9.26258 15.3232 9.73746 15.0303 10.0303L13.0606 12L15.0303 13.9697C15.3232 14.2625 15.3232 14.7374 15.0303 15.0303C14.7374 15.3232 14.2625 15.3232 13.9696 15.0303L12 13.0607L10.0303 15.0303C9.73744 15.3232 9.26256 15.3232 8.96967 15.0303C8.67678 14.7374 8.67678 14.2626 8.96967 13.9697L10.9393 12L8.96965 10.0303C8.67676 9.73744 8.67676 9.26256 8.96965 8.96967Z' fill='%23000'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");
        width: 30px;
        height: 30px;
        opacity: 1;
        margin: 0 !important;
        left: 20px;
        float: unset !important;
        right: unset !important;
        display: block !important;
    }

    .nd-map-page .right-side .close::before {
        display: none;
    }

    .page-template-page-map .right-side.active,
    .page-template-page-map .right-side.open {
        display: block;
    }

    .page-template-page-map .right-side .close {
        display: block;
    }

    .page-template-page-map .wrapNavOpen {
        display: flex;
    }

    .page-template-page-map .left-side {
        min-height: 300px;
    }

    .page-template-page-map .popover.nd-map-popover {
        width: 90%;
        left: 5% !important;
        top: 20% !important;
        position: fixed;
    }
}

/* =========================================
   Force Grid Layout for Final Tiles Gallery
   ========================================= */

/* 1. Ломаем контейнер плагина и делаем CSS Grid */
.nd-container .ftg-items {
    display: grid !important;
    /* Создаем колонки: минимум 280px, максимум 1 фракция. 
       Это создаст адаптивную сетку (3-4 в ряд на ПК, 1-2 на моб) */
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
    gap: 20px !important;
    /* Отступы между картинками */

    /* Сбрасываем высоту, которую высчитал скрипт */
    height: auto !important;
    min-height: auto !important;
}

/* 2. Сбрасываем позиционирование плиток */
.nd-container .tile {
    /* Отключаем absolute от плагина */
    position: relative !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    /* Убираем смещение JS */

    /* Задаем фиксированную высоту и ширину на всю ячейку */
    width: 100% !important;
    height: 250px !important;
    /* <-- ВЫСОТА КАРТИНКИ. Меняй это число, если нужно выше/ниже */

    margin: 0 !important;
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    opacity: 1 !important;
    display: block !important;
}

/* Ховер эффект для плитки */
.nd-container .tile:hover {
    transform: translateY(-5px) !important;
    /* Легкий подъем */
    box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.15);
    z-index: 5 !important;
}

/* 3. Заставляем картинку заполнять блок красиво (Object Fit) */
.nd-container .tile .item {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    /* Обрезает лишнее, сохраняя пропорции */
    display: block;
    transition: transform 0.5s ease;
}

.nd-container .tile:hover .item {
    transform: scale(1.05);
}

/* 4. Стиль подписи (Caption) - как в прошлом варианте */
.nd-container .caption-block {
    position: absolute;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    padding: 20px 15px !important;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0) 100%) !important;
    opacity: 0;
    transition: all 0.3s ease;
    display: flex;
    align-items: flex-end;
    pointer-events: none;
}

.nd-container .tile:hover .caption-block {
    opacity: 1 !important;
}

.nd-container .caption-block .text {
    font-family: var(--nd-font-main) !important;
    font-size: 16px !important;
    color: #fff !important;
    text-align: right;
    width: 100%;
}

/* 5. Убираем лишние элементы плагина */
.nd-container .ftg-social,
.nd-container .loading-bar {
    display: none !important;
}

/* =========================================
   Mobile Grid Adjustments
   ========================================= */
@media (max-width: 768px) {
    .nd-container .ftg-items {
        /* На мобильном можно 2 колонки или 1 */
        grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)) !important;
        gap: 15px !important;
    }

    .nd-container .tile {
        height: 180px !important;
        /* На мобильном чуть ниже */
    }

    /* Всегда показываем текст на мобильном */
    .nd-container .caption-block {
        opacity: 1 !important;
        padding: 10px !important;
    }

    .nd-container .caption-block .text {
        font-size: 14px !important;
    }
}

/* =========================================
   Legacy School Page Specifics
   ========================================= */

/* --- 1. Typography & Spacing --- */

/* Заголовки школ (H2) */
.nd-container .col-xs-12 h2 {
    font-family: var(--nd-font-main);
    font-weight: 700;
    font-size: 32px;
    color: var(--nd-color-accent);
    /* Делаем заголовки школ зелеными */
    /* margin-top: 50px; */
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--nd-color-border);
    /* Подчеркивание вместо HR */
}

/* Скрываем старые HR, так как мы добавили бордер к заголовкам */
.nd-container .col-xs-12 h2+hr {
    display: none;
}

/* Заголовки секций "כתבות רלוונטיות" (H4) */
.nd-container .col-xs-12 h4 {
    font-family: var(--nd-font-main);
    font-weight: 700;
    font-size: 24px;
    color: var(--nd-color-text);
    margin-top: 30px;
    margin-bottom: 15px;
}

/* --- 2. WordPress Native Gallery Overrides --- */
/* Переписываем стили для [gallery], чтобы убрать старые рамки и сделать красиво */

.nd-container .gallery {
    display: flex !important;
    flex-wrap: wrap;
    gap: 15px;
    margin-bottom: 30px !important;
    width: 100% !important;
}

/* Сбрасываем старые флоאты и ширину */
.nd-container .gallery .gallery-item {
    float: none !important;
    margin: 0 !important;
    width: calc(33.333% - 10px) !important;
    /* 3 колонки с учетом gap */
    text-align: center;
    border: none !important;
}

/* Картинки в галерее */
.nd-container .gallery img {
    border: none !important;
    /* Убираем старую серую рамку */
    border-radius: 4px;
    width: 100% !important;
    height: 150px !important;
    /* Фиксируем высоту для ровности */
    object-fit: cover;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
    transition: transform 0.3s ease;
}

.nd-container .gallery img:hover {
    transform: scale(1.05);
}

/* Подписи в галерее (скрываем или стилизуем, здесь они дублируют контент часто, лучше скрыть для чистоты, либо стилизовать) */
.nd-container .gallery .gallery-caption {
    display: none;
}

/* --- 3. Sidebar (Info Column) Styling --- */

/* Заголовок "מידע כללי" (H5) */
.nd-container .col-sm-4 h5 {
    font-family: var(--nd-font-main);
    font-weight: 700;
    font-size: 18px;
    color: var(--nd-color-text);
    background-color: var(--nd-color-bg-alt);
    /* Светло-серый фон */
    padding: 10px 15px;
    border-radius: 4px;
    margin-bottom: 15px;
    margin-top: 0;
}

/* Списки контактов в сайдбаре */
.nd-container .col-sm-4 ul {
    list-style: none !important;
    padding: 0 !important;
    margin-bottom: 30px;
}

.nd-container .col-sm-4 ul li {
    font-size: 16px;
    margin-bottom: 8px;
    border-bottom: 1px solid #f0f0f0;
    padding-bottom: 8px;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.nd-container .col-sm-4 ul li strong {
    font-weight: 600;
    color: var(--nd-color-accent);
}

/* Логотипы школ */
.nd-container .col-sm-4 img {
    margin-bottom: 20px;
    /* max-height: 120px; */
    width: auto !important;
    object-fit: contain;
    display: block;
    margin-left: auto;
    margin-right: auto;
    /* max-width: 150px !important; */
}

/* Карты (маленькие картинки) */
.nd-container .col-sm-4 .wp-caption {
    background: none;
    border: none;
    width: 100% !important;
}

.nd-container .col-sm-4 .wp-caption img {
    width: 100% !important;
    height: auto;
    border-radius: 4px;
    border: 1px solid var(--nd-color-border);
    margin-bottom: 0;
}

.nd-container .col-sm-4 .wp-caption-text,
.wp-caption-text {
    font-size: 18px;
    color: #000000;
    text-align: start;
    font-family: "Heebo", sans-serif !important;
    font-style: unset;
    opacity: 1;
    padding: 0;
    margin-top: 5px !important;
}

/* --- 4. Main Content Lists (Relevant Articles) --- */

.nd-container .col-sm-8 ul {
    list-style: none;
    /* Убираем стандартные точки */
    padding-right: 0;
}

.nd-container .col-sm-8 ul li {
    position: relative;
    padding-right: 20px;
    /* Место под иконку */
    margin-bottom: 12px;
}

/* Добавляем кастомную стрелочку вместо точки */
.nd-container .col-sm-8 ul li::before {
    content: "•";
    /* Или можно поставить SVG стрелку */
    color: var(--nd-color-accent);
    font-weight: bold;
    font-size: 20px;
    position: absolute;
    right: 0;
    top: -2px;
    display: none;
}

.nd-container .col-sm-8 ul li a {
    font-weight: 500;
    text-decoration: none;
    color: var(--nd-color-text);
    transition: color 0.2s;
}

.nd-container .col-sm-8 ul li a:hover {
    color: var(--nd-color-accent);
    text-decoration: underline;
}

/* --- 5. Mobile Adjustments --- */
@media (max-width: 768px) {

    /* Галерея: 2 в ряд на мобильном */
    .nd-container .gallery .gallery-item {
        width: calc(50% - 8px) !important;
    }

    .nd-container .gallery img {
        height: 120px !important;
    }

    /* Заголовки */
    .nd-container .col-xs-12 h2 {
        font-size: 26px;
        /* margin-top: 30px; */
    }

    /* Отступ между контентом и сайдбаром */
    .nd-container .col-sm-4 {
        margin-top: 30px;
        padding-top: 20px;
        border-top: 1px dashed var(--nd-color-border);
    }

    .nd-container .col-sm-4 .wp-caption-text,
    .wp-caption-text {
        font-size: 14px;
        line-height: 26px;
    }
}

/* =========================================
   English / LTR Pages Adaptation
   ========================================= */

/* 1. Глобальный сброс для английских блоков */
/* Используем селектор по атрибуту, так как в HTML прописано dir="ltr" */
.nd-container div:not(.wpcf7) [dir="ltr"],
.nd-container div:not(.wpcf7) [dir="LTR"] {
    font-family: var(--nd-font-main);
    color: var(--nd-color-text);
    direction: rtl !important;
}

/* 2. Типографика (очистка от мусора p1, s1) */
.nd-container [dir="ltr"] p {
    font-size: 18px;
    line-height: 1.6;
    margin-bottom: 24px;
    color: var(--nd-color-text);
}

.nd-container [dir="ltr"] h1 {
    font-size: 42px;
    font-weight: 700;
    margin-bottom: 30px;
    line-height: 1.2;
    color: var(--nd-color-text);
}

.nd-container [dir="ltr"] h2 {
    font-size: 32px;
    font-weight: 600;
    margin-top: 40px;
    margin-bottom: 20px;
    color: var(--nd-color-text);
}

/* Заголовки-ссылки внизу (CTA) */
.nd-container [dir="ltr"] h4 {
    font-size: 20px;
    font-weight: 500;
    margin-bottom: 15px;
    color: var(--nd-color-text-alt) !important;
    /* Перебиваем inline style */
}

/* 3. Ссылки (Links) */
/* Обычные ссылки в тексте */
.nd-container [dir="ltr"] a {
    color: var(--nd-color-accent);
    text-decoration: none;
    font-weight: 600;
    transition: opacity 0.2s, color 0.2s;
    border-bottom: 1px solid transparent;
    /* Подчеркивание при наведении */
}

.nd-container [dir="ltr"] a:hover {
    color: var(--nd-color-bg-dark);
    border-bottom-color: var(--nd-color-bg-dark);
}

.nd-default-page-content a {
    color: var(--nd-color-accent);
}

/* Ссылки в верхней навигации (Contractor Apartments | ...) */
/* Они находятся в первом параграфе, стилизуем их как меню */
.nd-container [dir="ltr"] .nd-default-page-content p:first-of-type a,
.nd-container [dir="ltr"] p.p1 a {
    color: var(--nd-color-text);
    font-weight: 500;
    font-size: 16px;
    text-decoration: none;
    border-bottom: 1px solid var(--nd-color-border);
    /* Легкое подчеркивание */
}

.nd-container [dir="ltr"] p.p1 a:hover {
    color: var(--nd-color-accent);
    border-bottom-color: var(--nd-color-accent);
}

/* CTA ссылки в H4 (внизу страницы) */
.nd-container [dir="ltr"] h4 a {
    color: var(--nd-color-accent) !important;
    text-decoration: none !important;
    /* Убираем стандартное подчеркивание */
    position: relative;
}

.nd-container [dir="ltr"] h4 a::after {
    content: " →";
    /* Добавляем стрелочку для красоты */
    transition: margin-left 0.3s;
}

.nd-container [dir="ltr"] h4 a:hover::after {
    margin-left: 5px;
    /* Анимация стрелки */
}

/* 4. Списки (Lists) в LTR */
.nd-container [dir="ltr"] ul {
    padding-left: 20px;
    /* Отступ слева для буллитов */
    padding-right: 0;
    list-style-type: disc;
    margin-bottom: 24px;
}

.nd-container [dir="ltr"] li {
    margin-bottom: 10px;
    line-height: 1.5;
}

/* Вложенные списки */
.nd-container [dir="ltr"] li ul {
    margin-top: 10px;
    list-style-type: circle;
}

/* 5. Плавающие изображения (Figures) */
.nd-container [dir="ltr"] figure.alignright {
    float: right;
    margin-left: 30px;
    margin-bottom: 20px;
    max-width: 45%;
    /* Ограничиваем ширину */
}

.nd-container [dir="ltr"] figure.alignleft {
    float: left;
    margin-right: 30px;
    margin-bottom: 20px;
    max-width: 45%;
}

.nd-container [dir="ltr"] figure img {
    border-radius: 4px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
    height: auto;
    width: 100%;
}

/* Подписи к фото */
.nd-container [dir="ltr"] figcaption {
    font-size: 14px;
    color: #777;
    margin-top: 8px;
    font-style: italic;
    text-align: center;
    line-height: 1.4;
}

/* 6. Карта (Iframe) */
.nd-container [dir="ltr"] iframe {
    border-radius: 4px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    max-width: 100%;
    background-color: #eee;
    /* Заглушка пока грузится */
}

/* =========================================
   Mobile Adjustments for English Page
   ========================================= */
@media (max-width: 768px) {

    /* Отключаем обтекание картинок на мобильном */
    .nd-container [dir="ltr"] figure.alignright,
    .nd-container [dir="ltr"] figure.alignleft {
        float: none;
        margin: 20px auto;
        max-width: 100%;
        width: 100% !important;
        /* Перебиваем инлайн стили WP */
    }

    /* Сбрасываем ширину figure, заданную инлайн (style="width: 500px") */
    .nd-container [dir="ltr"] figure[style] {
        width: 100% !important;
    }

    .nd-container [dir="ltr"] h1 {
        font-size: 32px;
    }

    .nd-container [dir="ltr"] h2 {
        font-size: 26px;
    }
}

/* =========================================
   Legacy Content Adaptation (Bootstrap Grid Only)
   ========================================= */

/* --- Utilities --- */
.mb-35 {
    margin-bottom: 35px !important;
}

/* --- Typography: Content Column --- */
/* Используем .col-xs-12 как обертку, чтобы стилизовать текст только внутри контента */

.col-xs-12 p {
    font-family: 'Heebo', sans-serif;
    font-weight: 400;
    font-size: 18px;
    line-height: 1.6;
    color: #000000;
    margin-bottom: 24px;
}

/* Ссылки внутри текста */
.col-xs-12 p a {
    color: #000000;
    text-decoration: underline;
    font-weight: 600;
    transition: color 0.3s;
}

.col-xs-12 p a:hover {
    color: #00736F;
    /* Акцентный цвет */
}

/* --- Headings --- */
.col-xs-12 h1,
.col-xs-12 h1.p1 {
    font-family: 'Heebo', sans-serif;
    font-weight: 600;
    font-size: 40px;
    line-height: 1.2;
    color: #000000;
    margin-top: 0;
    margin-bottom: 20px;
}

.col-xs-12 h3 {
    font-family: 'Heebo', sans-serif;
    font-weight: 600;
    font-size: 24px;
    line-height: 1.4;
    color: #000000;
    margin-top: 30px;
    margin-bottom: 15px;
}

/* Заголовки-ссылки внизу (CTA) */
.col-xs-12 h4 {
    font-family: 'Heebo', sans-serif;
    font-weight: 600;
    font-size: 18px;
    margin-top: 15px;
    margin-bottom: 15px;
}

.col-xs-12 h4 a {
    color: #050505;
    text-decoration: none !important;
    transition: color 0.3s;
}

.col-xs-12 h4 a:hover {
    color: #00736F;
}

/* --- Lists --- */
/* Исключаем классы слайдеров (slick), чтобы не сломать их */
.col-xs-12 ul:not(.slick-dots):not(.slides) {
    padding-right: 20px;
    /* RTL отступ */
    margin-bottom: 24px;
    list-style-type: disc;
}

.col-xs-12 ul:not(.slick-dots):not(.slides) li {
    font-family: 'Heebo', sans-serif;
    font-size: 18px;
    line-height: 1.6;
    margin-bottom: 10px;
    color: #000;
}

/* --- Images --- */
.col-xs-12 img {
    max-width: 100%;
    height: auto;
    border-radius: 4px;
}

/* Отступы для картинок в узкой колонке (сайдбар) */
.col-sm-4 img {
    margin-bottom: 20px;
}

/* --- Visibility Helpers (Desktop/Mobile Toggle) --- */
.desktop_one {
    display: block;
}

.mobile_one {
    display: none;
}

/* --- Mobile Adaptation --- */
@media (max-width: 767px) {
    .desktop_one {
        display: none;
    }

    .mobile_one {
        display: block;
    }

    /* Адаптация шрифтов */
    .col-xs-12 h1,
    .col-xs-12 h1.p1 {
        font-size: 30px;
    }

    .col-xs-12 h3 {
        font-size: 22px;
    }

    .col-xs-12 p {
        font-size: 16px;
    }
}

/* =========================================
   Interactive Map Page Styling
   ========================================= */

/* Общий контейнер карты - задаем шрифт и направление */
.nd-map-page {
    font-family: 'Heebo', sans-serif;
    direction: rtl;
    background-color: #FFFDF7;
    /* Цвет фона из нового дизайна */
    padding-bottom: 50px;
}

/* --- Sidebar (Filters) --- */
.nd-map-page .right-side {
    background-color: #ffffff !important;
    box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.05);
    /* Легкая тень */
    border-radius: 8px;
    border: 1px solid #E4E4E4;
}

/* Заголовок фильтров */
.nd-map-page .nd-sidebar-header h3 {
    font-family: 'Heebo', sans-serif;
    font-weight: 700;
    font-size: 20px;
    color: #000000;
    margin: 15px 0;
}

/* Заголовки групп внутри списка (מוסדות ציבור, וכו) */
.nd-map-page #mapMenu h3.titleMenu {
    font-family: 'Heebo', sans-serif;
    font-weight: 700;
    font-size: 18px;
    color: #00736F;
    /* Акцентный цвет */
    margin-top: 20px;
    margin-bottom: 10px;
    border-bottom: 2px solid #00736F;
    padding-bottom: 5px;
}

/* Элементы списка фильтров */
.nd-map-page #mapMenu li {
    font-family: 'Heebo', sans-serif;
    font-size: 16px;
    color: #000000;
    padding: 8px 0;
    border-bottom: 1px solid #f0f0f0;
    display: flex;
    align-items: center;
}

.nd-map-page #mapMenu li label {
    font-weight: 400;
    cursor: pointer;
    margin-bottom: 0;
    margin-right: 8px;
    /* Отступ от чекбокса */
}

.nd-map-page #mapMenu li:hover {
    background-color: #f9f9f9;
}

/* --- Popover (Всплывающее окно) --- */
.nd-map-page .popover {
    font-family: 'Heebo', sans-serif;
    border: none;
    box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.15);
    border-radius: 8px !important;
    /* Перебиваем inline */
    overflow: hidden;
}

/* Заголовок попапа */
.nd-map-page .popover-title {
    font-family: 'Heebo', sans-serif;
    font-weight: 700;
    font-size: 18px;
    border-bottom: none;
    padding: 12px 15px;
}

/* Текст попапа */
.nd-map-page .popover-content {
    font-family: 'Heebo', sans-serif;
    font-size: 16px;
    line-height: 1.5;
    color: #000;
    padding: 15px;
    text-align: right !important;
}

/* Ссылка "לפרטים נוספים" в попапе */
.nd-map-page a.readMore {
    display: inline-block;
    margin: 0 15px 15px;
    /* Отступы */
    font-family: 'Heebo', sans-serif;
    font-weight: 700;
    font-size: 14px;
    color: #00736F;
    text-decoration: underline;
    transition: color 0.3s;
}

.nd-map-page a.readMore:hover {
    color: #050505;
}

/* --- Mobile Controls --- */
.nd-map-page .navOpen {
    font-family: 'Heebo', sans-serif;
    font-weight: 600;
    background-color: #fff;
    border: 1px solid #E4E4E4;
    color: #000;
    padding: 10px 20px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
}

.nd-map-page .info-alt-mobile-text {
    font-family: 'Heebo', sans-serif;
    font-size: 14px;
    background-color: #fff;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    border-radius: 4px;
    padding: 10px;
}

/* --- Mobile Responsiveness --- */
@media (max-width: 991px) {

    /* Сайдбар на мобильном (фиксированный оверлей) */
    .nd-map-page .right-side {
        position: fixed !important;
        top: 0 !important;
        right: 0 !important;
        height: 100vh !important;
        width: 80% !important;
        max-width: 320px;
        z-index: 9999;
        overflow-y: auto !important;
        border-radius: 0;
    }

    /* Кнопка закрытия сайдбара */
    .nd-map-page .right-side .close {
        float: left;
        font-size: 24px;
        margin: 10px;
        cursor: pointer;
    }

    /* Карта на мобильном */
    .nd-map-page .wrapMap {
        display: flex;
        flex-direction: column;
    }

    .nd-map-page .left-side {
        width: 100% !important;
        /* Перебиваем inline style 780px */
    }

    .nd-map-page img.mapSize,
    .nd-map-page img.MapHide {
        width: 100% !important;
        height: auto !important;
    }

    /* Адаптация попапа на моб */
    .nd-map-page .popover {
        left: 50% !important;
        top: 50% !important;
        transform: translate(-50%, -50%);
        max-width: 90% !important;
        min-width: 280px !important;
    }
}

/* =========================================
   Projects Page Hero Updates
   ========================================= */

/* 1. Настройки для секции Full Width, чтобы ссылка-оверлей не вылезала */
.nd-post-hero-fw {
    position: relative;
    overflow: hidden;
    /* Важно: обрезает всё лишнее при эффектах */
}

/* Ссылка поверх всего баннера */
.nd-hero-link-overlay {
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    /* Убираем эффекты трансформации, которые есть у обычной ссылки hero, 
       чтобы весь баннер не дрожал при наведении */
    transform: none !important;
}

/* Контейнер текста в Full Width, чтобы текст можно было выделить, 
   но клики вокруг проходили по ссылке */
.nd-hero-text-container {
    position: relative;
    z-index: 2;
    pointer-events: none;
    /* Пропускаем клики сквозь контейнер */
}

.nd-hero-text-container .nd-project-hero__content,
.nd-hero-text-container h1,
.nd-hero-text-container p {
    pointer-events: auto;
    /* Возвращаем клики тексту (для выделения) */
}

/* 2. Подзаголовок для Big Image (его не было в стилях поста) */
.nd-post-hero-big__subtitle {
    text-align: center;
    font-family: var(--nd-font-main);
    font-size: 18px;
    font-weight: 400;
    line-height: 1.5;
    margin-top: 30px;
    /* Подтягиваем ближе к заголовку */
    color: var(--nd-color-text);
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

/* Адаптив для подзаголовка */
@media (max-width: 991px) {
    .nd-post-hero-big__subtitle {
        font-size: 16px;
        text-align: start;
        /* Выравниваем влево, как и заголовок на моб */
        margin-top: -20px;
        margin-bottom: 30px;
    }
}

.nd-blog-title {
    padding: 54px 0 34px;
    font-size: 40px;
    font-weight: 600;
    line-height: 1.2;
    color: #000;
    background-color: var(--nd-color-bg);
}

@media (max-width: 991px) {
    .nd-blog-title {
        font-size: 25px;
        padding: 40px 0 35px;
    }
}