/* ДНК Фактори — фирменный стиль по файлу Figma «ДНК ФАКТОРИ».
   Заголовки: Forum (замена History Pro, SIL OFL), текст: Montserrat (SIL OFL). */

@font-face { font-family: 'DNK Forum'; font-weight: 400; font-display: swap; src: url(../fonts/dnk-forum-cyrillic-400-normal.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'DNK Forum'; font-weight: 400; font-display: swap; src: url(../fonts/dnk-forum-latin-400-normal.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'DNK Montserrat'; font-weight: 400; font-display: swap; src: url(../fonts/dnk-montserrat-cyrillic-400-normal.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'DNK Montserrat'; font-weight: 400; font-display: swap; src: url(../fonts/dnk-montserrat-latin-400-normal.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'DNK Montserrat'; font-weight: 500; font-display: swap; src: url(../fonts/dnk-montserrat-cyrillic-500-normal.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'DNK Montserrat'; font-weight: 500; font-display: swap; src: url(../fonts/dnk-montserrat-latin-500-normal.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'DNK Montserrat'; font-weight: 600; font-display: swap; src: url(../fonts/dnk-montserrat-cyrillic-600-normal.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'DNK Montserrat'; font-weight: 600; font-display: swap; src: url(../fonts/dnk-montserrat-latin-600-normal.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'DNK Montserrat'; font-weight: 700; font-display: swap; src: url(../fonts/dnk-montserrat-cyrillic-700-normal.woff2) format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'DNK Montserrat'; font-weight: 700; font-display: swap; src: url(../fonts/dnk-montserrat-latin-700-normal.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+20BD, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
    --dnk-brand: #27266b;
    --dnk-brand-hover: #1c1b52;
    --dnk-brand-light: #c6c9dd;
    --dnk-ink: #1f2430;
    --dnk-muted: #5c6070;
    --dnk-bg-muted: #f5f6fb;
    --dnk-chip: #e7e8f6;
    --dnk-tint: #eef0f9;
    --dnk-line: #d6d8eb;
    --dnk-wine: #8c0436;
    --dnk-white: #fff;
    --dnk-serif: 'DNK Forum', 'Forum', Georgia, serif;
    --dnk-sans: 'DNK Montserrat', 'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --dnk-radius: 28px;
    --dnk-radius-lg: 40px;
    --dnk-header-h: 76px;
    --dnk-container: 1200px;
    --dnk-gutter: clamp(20px, 4vw, 40px);
    --dnk-section: clamp(64px, 9vw, 112px);
    --dnk-shadow: 0 24px 60px -24px rgba(39, 38, 107, .22);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--dnk-header-h) + 16px); -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--dnk-sans); font-size: 16px; line-height: 1.6; color: var(--dnk-ink); background: var(--dnk-white); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--dnk-brand); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--dnk-brand-hover); }
:focus-visible { outline: 2px solid var(--dnk-brand); outline-offset: 3px; border-radius: 4px; }
strong { font-weight: 600; }

.dnk-skip { position: absolute; left: -9999px; top: 8px; z-index: 100; background: var(--dnk-brand); color: #fff; padding: 10px 16px; border-radius: 4px; }
.dnk-skip:focus { left: 8px; color: #fff; }

/* ---------- Buttons ---------- */
.dnk-btn,
.wp-block-button__link {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    min-height: 52px; padding: 14px 30px;
    font-family: var(--dnk-sans); font-size: 13px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; line-height: 1.2; text-align: center; text-decoration: none;
    color: #fff; background: var(--dnk-brand); border: 1px solid var(--dnk-brand); border-radius: 4px;
    cursor: pointer; transition: background-color .2s, color .2s, border-color .2s, transform .2s;
}
.dnk-btn:hover, .wp-block-button__link:hover { color: #fff; background: var(--dnk-brand-hover); border-color: var(--dnk-brand-hover); }
.dnk-btn:active, .wp-block-button__link:active { transform: translateY(1px); }
.dnk-btn--outline,
.wp-block-button.is-style-outline > .wp-block-button__link { color: var(--dnk-brand); background: transparent; border-color: var(--dnk-brand); }
.dnk-btn--outline:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:hover { color: #fff; background: var(--dnk-brand); }
.dnk-btn--small { min-height: 42px; padding: 10px 20px; font-size: 12px; }
.dnk-btn--wide { width: 100%; }
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.wp-block-buttons.dnk-center { justify-content: center; margin-top: 48px; }

/* ---------- Header ---------- */
.dnk-header { position: sticky; top: 0; z-index: 50; height: var(--dnk-header-h); background: rgba(255, 255, 255, .82); backdrop-filter: saturate(160%) blur(16px); -webkit-backdrop-filter: saturate(160%) blur(16px); border-bottom: 1px solid transparent; transition: border-color .2s, box-shadow .2s; }
.admin-bar .dnk-header { top: 32px; }
.dnk-header.is-scrolled { border-bottom-color: var(--dnk-line); box-shadow: 0 8px 24px -18px rgba(39, 38, 107, .35); }
.dnk-header__inner { max-width: 1320px; height: 100%; margin: 0 auto; padding: 0 var(--dnk-gutter); display: flex; align-items: center; gap: 32px; }
.dnk-header__logo { flex: none; display: block; }
.dnk-header__logo img { height: 22px; width: auto; }
.dnk-nav { flex: 1; display: flex; justify-content: center; }
.dnk-menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: clamp(16px, 2vw, 30px); }
.dnk-menu > li { position: relative; }
.dnk-menu a { display: block; padding: 8px 0; font-size: 14px; font-weight: 500; color: var(--dnk-ink); text-decoration: none; white-space: nowrap; transition: color .2s; }
.dnk-menu a:hover, .dnk-menu .current-menu-item > a, .dnk-menu .current-menu-ancestor > a, .dnk-menu .current_page_item > a, .dnk-menu .current_page_parent > a { color: var(--dnk-brand); }
.dnk-menu > .current-menu-item > a, .dnk-menu > .current-menu-ancestor > a { box-shadow: inset 0 -1px 0 var(--dnk-brand); }
.dnk-menu .menu-item-has-children > a::after, .dnk-menu .page_item_has_children > a::after { content: ''; display: inline-block; width: 6px; height: 6px; margin: 0 0 3px 8px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); }
.dnk-menu .sub-menu, .dnk-menu .children { list-style: none; position: absolute; top: 100%; left: -20px; min-width: 240px; margin: 0; padding: 10px; background: #fff; border: 1px solid var(--dnk-line); border-radius: 16px; box-shadow: var(--dnk-shadow); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .2s, transform .2s, visibility .2s; }
.dnk-menu li:hover > .sub-menu, .dnk-menu li:focus-within > .sub-menu, .dnk-menu li:hover > .children, .dnk-menu li:focus-within > .children { opacity: 1; visibility: visible; transform: none; }
.dnk-menu .sub-menu a, .dnk-menu .children a { padding: 10px 14px; border-radius: 10px; }
.dnk-menu .sub-menu a:hover, .dnk-menu .children a:hover { background: var(--dnk-bg-muted); }
.dnk-nav__mobile-contacts { display: none; }
.dnk-header__actions { flex: none; display: flex; align-items: center; gap: 20px; }
.dnk-header__phone { font-size: 15px; font-weight: 600; color: var(--dnk-brand); text-decoration: none; white-space: nowrap; }
.dnk-burger { display: none; width: 44px; height: 44px; padding: 12px 10px; background: none; border: 0; cursor: pointer; flex-direction: column; justify-content: space-between; }
.dnk-burger span { display: block; height: 1.5px; background: var(--dnk-brand); border-radius: 2px; transition: transform .25s, opacity .25s; }
.dnk-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(8.5px) rotate(45deg); }
.dnk-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.dnk-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8.5px) rotate(-45deg); }

/* ---------- Content resets ---------- */
.dnk-content :where(p, h1, h2, h3, h4, ul, ol, figure, details) { margin: 0; }
.dnk-content :where(.wp-block-group, .wp-block-columns, .wp-block-image, .wp-block-buttons) { margin: 0; }
.dnk-content .wp-block-image img { width: 100%; }
.dnk-content :where(h1, h2, h3) { font-weight: 400; }

.dnk-container, .dnk-content .dnk-container { width: 100%; max-width: calc(var(--dnk-container) + 2 * var(--dnk-gutter)); margin-inline: auto; padding: 0 var(--dnk-gutter); }
.dnk-hero--home > .dnk-container { flex: 1 1 auto; }

/* ---------- Typography ---------- */
.dnk-eyebrow { display: flex; align-items: center; gap: 12px; font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--dnk-muted); }
.dnk-eyebrow::before { content: ''; width: 28px; height: 1px; background: currentColor; opacity: .6; }
.dnk-title, .dnk-hero__title, .dnk-page__title, .dnk-cta__title, .dnk-form-card__title { font-family: var(--dnk-serif); font-weight: 400; text-transform: uppercase; letter-spacing: .01em; color: var(--dnk-brand); }
.dnk-title { font-size: clamp(30px, 3.6vw, 46px); line-height: 1.1; }
.dnk-title--xl { font-size: clamp(44px, 6.4vw, 84px); line-height: 1; }
.dnk-split .dnk-title--xl { font-size: clamp(36px, 4.8vw, 68px); }
.dnk-title, .dnk-hero__title, .dnk-page__title, .dnk-lines--display li { overflow-wrap: normal; word-break: normal; hyphens: manual; }
.dnk-lead { font-size: clamp(16px, 1.4vw, 19px); line-height: 1.55; color: var(--dnk-muted); }
.dnk-lead strong { color: var(--dnk-brand); }
.dnk-section-head { max-width: 800px; margin-bottom: clamp(36px, 5vw, 56px); display: flex; flex-direction: column; gap: 16px; }

/* ---------- Sections ---------- */
.dnk-section { position: relative; padding: var(--dnk-section) 0; }
.dnk-section.is-muted { background: var(--dnk-bg-muted); }
.dnk-section.is-tight { padding: clamp(40px, 6vw, 64px) 0; border-top: 1px solid var(--dnk-line); border-bottom: 1px solid var(--dnk-line); }
.dnk-section.is-narrow .dnk-container { max-width: 800px; display: flex; flex-direction: column; gap: 16px; }
.dnk-section.is-narrow h2 { margin-top: 24px; font-family: var(--dnk-serif); font-size: 28px; color: var(--dnk-brand); text-transform: uppercase; }
.dnk-section.is-molecules { overflow: hidden; background: linear-gradient(90deg, #fff 40%, rgba(255, 255, 255, 0) 75%), url(../img/molecules.webp) right center / auto 100% no-repeat; }
.dnk-section.is-dark { color: rgba(255, 255, 255, .82); background: linear-gradient(90deg, var(--dnk-brand) 38%, rgba(39, 38, 107, .78) 65%, rgba(39, 38, 107, .6)), url(../img/molecules.webp) right center / auto 120% no-repeat, var(--dnk-brand); overflow: hidden; }
.dnk-section.is-dark :is(.dnk-title, .dnk-card__title, .dnk-step__title, .dnk-stat__value) { color: #fff; }
.dnk-section.is-dark :is(.dnk-eyebrow, .dnk-lead, .dnk-card__text, .dnk-step__text, .dnk-stat__label) { color: rgba(255, 255, 255, .76); }
.dnk-section.is-dark :is(.dnk-lines li, .dnk-card, .dnk-stat, .dnk-step) { border-color: rgba(255, 255, 255, .22); }
.dnk-section.is-dark .dnk-lines li { color: #fff; }
.dnk-section.is-dark .dnk-step__num { color: var(--dnk-brand-light); }
.dnk-section.is-dark .wp-block-button__link { color: var(--dnk-brand); background: #fff; border-color: #fff; }
.dnk-section.is-dark .wp-block-button__link:hover { background: var(--dnk-chip); }
.dnk-section.is-dark .is-style-outline > .wp-block-button__link { color: #fff; background: transparent; border-color: rgba(255, 255, 255, .7); }

/* ---------- Hero ---------- */
.dnk-hero { position: relative; padding: clamp(48px, 8vw, 110px) 0; background: #eef0f6 url(../img/silk.webp) center / cover no-repeat; overflow: hidden; }
.dnk-hero--home { min-height: calc(100vh - var(--dnk-header-h)); min-height: calc(100svh - var(--dnk-header-h)); display: flex; align-items: center; }
.dnk-hero--molecules { background: linear-gradient(90deg, #f4f5fa 30%, rgba(244, 245, 250, .2) 70%), url(../img/molecules.webp) right center / cover no-repeat; }
.dnk-glass { position: relative; max-width: 780px; padding: clamp(32px, 5vw, 64px); display: flex; flex-direction: column; align-items: flex-start; gap: 20px; background: rgba(255, 255, 255, .55); border: 1px solid rgba(255, 255, 255, .8); border-radius: var(--dnk-radius-lg); box-shadow: 0 30px 80px -40px rgba(39, 38, 107, .35), inset 0 1px 0 rgba(255, 255, 255, .9); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); }
.dnk-hero__title { font-size: clamp(36px, 5.2vw, 68px); line-height: 1.04; }
.dnk-hero--home .dnk-hero__title { font-size: clamp(48px, 7.4vw, 96px); line-height: .95; }
.dnk-hero__lead { max-width: 620px; font-size: clamp(17px, 1.7vw, 22px); font-weight: 500; line-height: 1.45; color: var(--dnk-brand); }
.dnk-hero__buttons { margin-top: 8px; }
.dnk-hero__brand { margin-top: 12px; }
.dnk-hero__brand img { width: auto !important; height: 52px; }
.dnk-hero__brand--tall img { height: 96px; }
.dnk-pill { display: inline-block; max-width: 560px; padding: 14px 32px; font-family: var(--dnk-serif); font-size: clamp(16px, 1.7vw, 22px); line-height: 1.25; text-align: center; text-transform: uppercase; color: var(--dnk-brand); border: 1px solid var(--dnk-brand); border-radius: 48px; }
.dnk-chips { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.dnk-chips li { padding: 6px 14px; font-size: 13px; font-weight: 500; color: var(--dnk-brand); background: rgba(255, 255, 255, .6); border: 1px solid var(--dnk-brand-light); border-radius: 999px; }

.dnk-logos { display: flex; flex-wrap: wrap; align-items: center; gap: clamp(24px, 4vw, 48px); margin-top: 16px; }
.dnk-logos__item { display: block; opacity: .9; transition: opacity .2s, transform .2s; }
.dnk-logos__item:hover { opacity: 1; transform: translateY(-2px); }
.dnk-logos__item img { width: auto; height: 40px; }
.dnk-logos__item--nezhnel img { height: 74px; }

/* ---------- Split ---------- */
.dnk-split { display: flex; align-items: center; gap: clamp(32px, 6vw, 80px) !important; }
.dnk-split > .wp-block-column { flex: 1 1 0; min-width: 0; }
.dnk-split__text { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.dnk-split__text > .wp-block-buttons, .dnk-split__text > .dnk-steps, .dnk-split__text > .dnk-stats { margin-top: 12px; }
.dnk-split__text > p:not([class]) { color: var(--dnk-muted); }
.dnk-section.is-dark .dnk-split__text > p:not([class]) { color: rgba(255, 255, 255, .76); }
.dnk-photo img { border-radius: var(--dnk-radius-lg); aspect-ratio: 4 / 3; object-fit: cover; box-shadow: var(--dnk-shadow); }
.dnk-photo--tall img { aspect-ratio: 4 / 5; }
.dnk-split > .wp-block-column:has(> .dnk-photo--cutout) { align-self: flex-end; }
.dnk-photo--cutout img { aspect-ratio: auto; max-height: 600px; width: auto !important; margin: 0 auto calc(-1 * var(--dnk-section)); object-fit: contain; border-radius: 0; box-shadow: none; filter: drop-shadow(0 30px 40px rgba(0, 0, 0, .25)); }

/* ---------- Lines ---------- */
.dnk-lines { list-style: none; padding: 0; width: 100%; }
.dnk-lines li { padding: 14px 0; border-bottom: 1px solid var(--dnk-line); font-weight: 500; color: var(--dnk-brand); }
.dnk-lines li:first-child { border-top: 1px solid var(--dnk-line); }
.dnk-lines--display li { padding: 10px 0; font-family: var(--dnk-serif); font-size: clamp(24px, 2.8vw, 38px); font-weight: 400; line-height: 1.25; text-transform: uppercase; }

/* ---------- Cards ---------- */
.dnk-cards { display: grid; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); gap: 40px 32px; }
.dnk-cards--2 { --cols: 2; }
.dnk-cards--4 { --cols: 4; }
.dnk-card { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding-top: 24px; border-top: 1px solid var(--dnk-line); }
.dnk-card__num { padding: 4px 12px; font-size: 12px; font-weight: 600; letter-spacing: .04em; color: var(--dnk-brand); background: var(--dnk-chip); border-radius: 999px; }
.dnk-card__title { font-family: var(--dnk-sans) !important; font-size: 18px; font-weight: 600 !important; line-height: 1.35; color: var(--dnk-brand); }
.dnk-card__text { font-size: 15px; color: var(--dnk-muted); }
.dnk-card__text a { font-weight: 600; text-decoration: none; }
.dnk-section.is-dark .dnk-card__num { color: #fff; background: rgba(255, 255, 255, .14); }

/* ---------- Stats ---------- */
.dnk-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 32px; width: 100%; }
.dnk-stat { display: flex; flex-direction: column; gap: 8px; padding-left: 24px; border-left: 1px solid var(--dnk-line); }
.dnk-stat__value { font-family: var(--dnk-serif); font-size: clamp(36px, 4.4vw, 56px); line-height: 1; color: var(--dnk-brand); white-space: nowrap; }
.dnk-stat__label { font-size: 14px; line-height: 1.45; color: var(--dnk-muted); }
.dnk-stats--inline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dnk-stats--inline .dnk-stat__value { font-size: clamp(30px, 3.4vw, 44px); }
.dnk-stats--stack { grid-template-columns: 1fr; gap: 0; }
.dnk-stats--stack .dnk-stat { padding: 24px 0; border-left: 0; border-bottom: 1px solid var(--dnk-line); flex-direction: row; align-items: baseline; gap: 24px; }
.dnk-stats--stack .dnk-stat:first-child { border-top: 1px solid var(--dnk-line); }
.dnk-stats--stack .dnk-stat__value { min-width: 5.2ch; }

/* ---------- Steps ---------- */
.dnk-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 32px; counter-reset: step; }
.dnk-step { display: flex; flex-direction: column; gap: 10px; padding-top: 20px; border-top: 2px solid var(--dnk-brand); }
.dnk-step__num { font-family: var(--dnk-serif); font-size: 40px; line-height: 1; color: var(--dnk-brand-light); }
.dnk-step__title { font-family: var(--dnk-sans) !important; font-size: 17px; font-weight: 600 !important; line-height: 1.35; color: var(--dnk-brand); }
.dnk-step__text { font-size: 15px; color: var(--dnk-muted); }
.dnk-split .dnk-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dnk-section.is-dark .dnk-step { border-top-color: rgba(255, 255, 255, .5); }

/* ---------- Products ---------- */
.dnk-products { display: grid; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); gap: 20px; }
.dnk-products--4 { --cols: 4; }
.dnk-product { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 28px; background: #fff; border: 1px solid var(--dnk-line); border-radius: 20px; transition: border-color .2s, box-shadow .2s, transform .2s; }
.dnk-product:hover { border-color: var(--dnk-brand-light); box-shadow: var(--dnk-shadow); transform: translateY(-2px); }
.dnk-section:not(.is-muted) .dnk-product { background: var(--dnk-bg-muted); border-color: transparent; }
.dnk-product__cat { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--dnk-muted); }
.dnk-product__name { font-family: var(--dnk-sans) !important; font-size: 17px; font-weight: 600 !important; line-height: 1.35; color: var(--dnk-brand); }
.dnk-product__text { font-size: 14px; color: var(--dnk-muted); }
.dnk-product__tag { margin-top: auto !important; padding: 5px 12px; font-size: 13px; font-weight: 600; color: var(--dnk-brand); background: var(--dnk-chip); border-radius: 999px; }
.dnk-section:not(.is-muted) .dnk-product__tag { background: #fff; }

/* ---------- Brands ---------- */
.dnk-brands { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.dnk-brand { display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid var(--dnk-line); border-radius: var(--dnk-radius); transition: box-shadow .25s, transform .25s; }
.dnk-brand:hover { box-shadow: var(--dnk-shadow); transform: translateY(-4px); }
.dnk-brand__photo img { aspect-ratio: 4 / 3; object-fit: cover; }
.dnk-brand__body { flex: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; padding: 28px; }
.dnk-brand__logo { height: 74px; display: flex; align-items: center; }
.dnk-brand__logo img { width: auto !important; max-width: 220px; max-height: 40px; }
.dnk-brand__logo img[src*="nezhnel"] { max-height: 74px; }
.dnk-brand__tag { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--dnk-muted); }
.dnk-brand__text { font-size: 15px; color: var(--dnk-ink); }
.dnk-brand__buttons { margin-top: auto !important; padding-top: 8px; }

/* ---------- Promos ---------- */
.dnk-promos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.dnk-promo { display: flex; flex-direction: column; gap: 10px; padding-bottom: 28px; overflow: hidden; background: #fff; border: 1px solid var(--dnk-line); border-radius: var(--dnk-radius); }
.dnk-promo > :not(.wp-block-image) { padding: 0 28px; }
.dnk-promo .wp-block-image { margin-bottom: 14px !important; }
.dnk-promo .wp-block-image img { aspect-ratio: 2 / 1; object-fit: cover; }
.dnk-promo__tag { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--dnk-wine); }
.dnk-promo__title { font-family: var(--dnk-serif); font-size: clamp(26px, 2.6vw, 34px); line-height: 1.1; text-transform: uppercase; color: var(--dnk-brand); }
.dnk-promo__text { color: var(--dnk-muted); }

/* ---------- CTA ---------- */
.dnk-cta { position: relative; overflow: hidden; padding: clamp(40px, 6vw, 72px); color: rgba(255, 255, 255, .8); background: var(--dnk-brand); border-radius: var(--dnk-radius-lg); }
.dnk-cta::after { content: ''; position: absolute; inset: 0 -10% 0 45%; background: url(../img/molecules.webp) right center / cover no-repeat; opacity: .45; mix-blend-mode: screen; -webkit-mask-image: linear-gradient(90deg, transparent, #000 50%); mask-image: linear-gradient(90deg, transparent, #000 50%); pointer-events: none; }
.dnk-cta__body { position: relative; z-index: 1; max-width: 640px; display: flex; flex-direction: column; gap: 18px; }
.dnk-cta__title { font-size: clamp(32px, 4vw, 52px); line-height: 1.05; color: #fff; }
.dnk-cta__text { font-size: 18px; }
.dnk-cta__buttons { margin-top: 8px; }
.dnk-cta .wp-block-button__link { color: var(--dnk-brand); background: #fff; border-color: #fff; }
.dnk-cta .wp-block-button__link:hover { background: var(--dnk-chip); color: var(--dnk-brand); }
.dnk-cta .is-style-outline > .wp-block-button__link { color: #fff; background: transparent; border-color: rgba(255, 255, 255, .7); }
.dnk-cta .is-style-outline > .wp-block-button__link:hover { color: var(--dnk-brand); background: #fff; }

/* ---------- FAQ ---------- */
.dnk-faq { max-width: 900px; border-top: 1px solid var(--dnk-line); }
.dnk-faq .wp-block-details { border-bottom: 1px solid var(--dnk-line); }
.dnk-faq summary { position: relative; padding: 22px 48px 22px 0; font-size: 17px; font-weight: 600; color: var(--dnk-brand); cursor: pointer; list-style: none; }
.dnk-faq summary::-webkit-details-marker { display: none; }
.dnk-faq summary::after { content: ''; position: absolute; right: 6px; top: 50%; width: 14px; height: 14px; margin-top: -7px; background: linear-gradient(currentColor, currentColor) center / 14px 1.5px no-repeat, linear-gradient(currentColor, currentColor) center / 1.5px 14px no-repeat; transition: transform .25s; }
.dnk-faq details[open] summary::after { transform: rotate(45deg); }
.dnk-faq details > p { padding: 0 48px 24px 0; color: var(--dnk-muted); }

/* ---------- Form ---------- */
.dnk-section.is-form { background: var(--dnk-bg-muted) url(../img/silk.webp) center / cover no-repeat; }
.dnk-form-card { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 72px); padding: clamp(28px, 5vw, 64px); background: rgba(255, 255, 255, .72); border: 1px solid rgba(255, 255, 255, .9); border-radius: var(--dnk-radius-lg); box-shadow: var(--dnk-shadow); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); }
.dnk-form-card__intro { display: flex; flex-direction: column; gap: 16px; }
.dnk-form-card__intro > p { margin: 0; color: var(--dnk-muted); }
.dnk-form-card__title { margin: 0; font-size: clamp(30px, 3.4vw, 44px); line-height: 1.08; }
.dnk-form-card__contacts { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-direction: column; }
.dnk-form-card__contacts li { display: flex; flex-direction: column; padding: 14px 0; border-top: 1px solid var(--dnk-line); }
.dnk-form-card__contacts a { font-size: 18px; font-weight: 600; text-decoration: none; }
.dnk-form-card__contacts span { font-size: 13px; color: var(--dnk-muted); }
.dnk-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-content: start; }
.dnk-form > .dnk-check, .dnk-form > .dnk-btn, .dnk-form > .dnk-form__error, .dnk-field--wide { grid-column: 1 / -1; }
.dnk-field { display: flex; flex-direction: column; gap: 6px; }
.dnk-field > span { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--dnk-muted); }
.dnk-field em { font-style: normal; font-weight: 500; text-transform: none; letter-spacing: 0; opacity: .8; }
.dnk-field :is(input, select, textarea) { width: 100%; padding: 14px 16px; font: inherit; font-size: 16px; color: var(--dnk-ink); background: #fff; border: 1px solid var(--dnk-line); border-radius: 8px; transition: border-color .2s, box-shadow .2s; appearance: none; }
.dnk-field select { padding-right: 40px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5l5-5' stroke='%2327266b' stroke-width='1.5'/%3E%3C/svg%3E") right 16px center no-repeat; }
.dnk-field textarea { resize: vertical; min-height: 96px; }
.dnk-field :is(input, select, textarea):focus { outline: none; border-color: var(--dnk-brand); box-shadow: 0 0 0 3px rgba(39, 38, 107, .12); }
.dnk-check { display: flex; gap: 12px; align-items: flex-start; font-size: 13px; color: var(--dnk-muted); cursor: pointer; }
.dnk-check input { flex: none; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--dnk-brand); }
.dnk-form__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.dnk-form__error { margin: 0; padding: 12px 16px; font-size: 14px; color: #8a1c1c; background: #fdecec; border-radius: 8px; }
.dnk-form--done { display: flex; flex-direction: column; justify-content: center; gap: 8px; padding: 32px; background: #fff; border-radius: 20px; }
.dnk-form--done p { margin: 0; color: var(--dnk-muted); }
.dnk-form__done-title { font-family: var(--dnk-serif); font-size: 30px; text-transform: uppercase; color: var(--dnk-brand) !important; }

/* ---------- Page header (pages without own hero) ---------- */
.dnk-page__header { max-width: calc(var(--dnk-container) + 2 * var(--dnk-gutter)); margin: 0 auto; padding: clamp(40px, 6vw, 72px) var(--dnk-gutter) 0; display: flex; flex-direction: column; gap: 12px; }
.dnk-page__title { margin: 0; font-size: clamp(32px, 4.4vw, 56px); line-height: 1.05; }
.dnk-content--narrow { max-width: 800px; margin: 0 auto; padding: 40px var(--dnk-gutter) 96px; }
.dnk-posts { max-width: calc(var(--dnk-container) + 2 * var(--dnk-gutter)); margin: 0 auto; padding: 40px var(--dnk-gutter) 96px; display: grid; gap: 24px; }
.dnk-post-card { padding: 28px; background: var(--dnk-bg-muted); border-radius: 20px; }
.dnk-post-card h2 { margin: 8px 0; font-family: var(--dnk-serif); font-weight: 400; text-transform: uppercase; }
.dnk-post-card h2 a { text-decoration: none; }

/* ---------- 404 ---------- */
.dnk-404 { min-height: 70vh; display: grid; place-items: center; padding: 64px var(--dnk-gutter); background: url(../img/silk.webp) center / cover no-repeat; }
.dnk-404 h1 { margin: 0; font-family: var(--dnk-serif); font-weight: 400; font-size: clamp(36px, 5vw, 64px); text-transform: uppercase; color: var(--dnk-brand); }
.dnk-404 p { margin: 0; }
.dnk-404__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- Footer ---------- */
.dnk-footer { color: rgba(255, 255, 255, .72); background: #1d1c52; }
.dnk-footer a { color: #fff; text-decoration: none; }
.dnk-footer a:hover { color: var(--dnk-brand-light); }
.dnk-footer__inner { max-width: calc(var(--dnk-container) + 2 * var(--dnk-gutter)); margin: 0 auto; padding: 72px var(--dnk-gutter) 48px; display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 48px; }
.dnk-footer__brand p { max-width: 360px; margin: 24px 0 0; font-size: 14px; }
.dnk-footer__logo img { height: 26px; width: auto; filter: brightness(0) invert(1); }
.dnk-footer__title { margin: 0 0 16px; font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--dnk-brand-light); }
.dnk-footer__menu { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.dnk-footer__menu .children, .dnk-footer__menu .sub-menu { display: none; }
.dnk-footer__menu a { font-size: 15px; }
.dnk-footer__contacts { display: flex; flex-direction: column; gap: 10px; font-size: 15px; }
.dnk-footer__phone { font-family: var(--dnk-serif); font-size: 28px; line-height: 1.1; }
.dnk-footer__muted { margin: 0; font-size: 13px; }
.dnk-footer__bottom { max-width: calc(var(--dnk-container) + 2 * var(--dnk-gutter)); margin: 0 auto; padding: 24px var(--dnk-gutter) 32px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: 13px; border-top: 1px solid rgba(255, 255, 255, .12); }
.dnk-footer__bottom a { color: rgba(255, 255, 255, .72); }

/* ---------- Reveal on scroll ---------- */
@media (prefers-reduced-motion: no-preference) {
    .js .dnk-reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
    .js .dnk-reveal.is-visible { opacity: 1; transform: none; }
}

/* ---------- Responsive ---------- */
@media (max-width: 1140px) {
    :root { --dnk-header-h: 68px; }
    .dnk-burger { display: flex; }
    .dnk-nav { position: fixed; inset: var(--dnk-header-h) 0 0; z-index: 49; display: block; padding: 16px var(--dnk-gutter) 40px; overflow-y: auto; background: #fff; opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity .25s, transform .25s, visibility .25s; }
    .admin-bar .dnk-nav { top: calc(var(--dnk-header-h) + 46px); }
    .dnk-nav.is-open { opacity: 1; visibility: visible; transform: none; }
    .dnk-menu { flex-direction: column; align-items: stretch; gap: 0; }
    .dnk-menu > li { border-bottom: 1px solid var(--dnk-line); }
    .dnk-menu a { padding: 16px 0; font-size: 18px; }
    .dnk-menu > .current-menu-item > a, .dnk-menu > .current-menu-ancestor > a { box-shadow: none; }
    .dnk-menu .sub-menu, .dnk-menu .children { position: static; min-width: 0; padding: 0 0 12px 16px; border: 0; box-shadow: none; opacity: 1; visibility: visible; transform: none; }
    .dnk-menu .sub-menu a, .dnk-menu .children a { padding: 10px 0; font-size: 16px; }
    .dnk-menu .menu-item-has-children > a::after, .dnk-menu .page_item_has_children > a::after { display: none; }
    .dnk-nav__mobile-contacts { display: flex; flex-direction: column; gap: 16px; margin-top: 28px; }
    .dnk-nav__mobile-contacts > a:first-child { font-family: var(--dnk-serif); font-size: 28px; text-decoration: none; }
    .dnk-header__inner { justify-content: space-between; }
    body.dnk-menu-open { overflow: hidden; }
    .dnk-cards--4, .dnk-products--4 { --cols: 2; }
    .dnk-brands { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dnk-brands > :last-child { grid-column: 1 / -1; flex-direction: row; }
    .dnk-brands > :last-child .dnk-brand__photo { flex: 1; }
    .dnk-brands > :last-child .dnk-brand__photo img { height: 100%; }
    .dnk-brands > :last-child .dnk-brand__body { flex: 1; }
}

@media (max-width: 900px) {
    .dnk-products { --cols: 2; }
    .dnk-cards { --cols: 2; }
    .dnk-form-card { grid-template-columns: 1fr; }
    .dnk-footer__inner { grid-template-columns: 1fr 1fr; }
    .dnk-footer__brand { grid-column: 1 / -1; }
    .dnk-section.is-molecules { background: linear-gradient(180deg, rgba(255, 255, 255, .7), #fff 60%), url(../img/molecules.webp) right top / 130% auto no-repeat; }
}

@media (max-width: 781px) {
    .dnk-split { flex-direction: column; align-items: stretch; }
    .dnk-split.is-reversed { flex-direction: column-reverse; }
    .dnk-photo--cutout img { max-height: 440px; }
    .dnk-promos { grid-template-columns: 1fr; }
    .dnk-brands { grid-template-columns: 1fr; }
    .dnk-brands > :last-child { flex-direction: column; }
    .dnk-header__phone { display: none; }
}

@media (max-width: 600px) {
    body { font-size: 15px; }
    .dnk-cards, .dnk-products, .dnk-cards--4, .dnk-products--4 { --cols: 1; }
    .dnk-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
    .dnk-stat { padding-left: 14px; }
    .dnk-stat__value { white-space: normal; font-size: 32px; }
    .dnk-stats--stack { grid-template-columns: 1fr; }
    .dnk-split .dnk-steps { grid-template-columns: 1fr; }
    .dnk-form { grid-template-columns: 1fr; }
    .dnk-header__actions .dnk-btn { display: none; }
    .dnk-header__logo img { height: 18px; }
    .dnk-glass { border-radius: 28px; }
    .dnk-hero--home { min-height: 0; }
    .dnk-hero .wp-block-buttons, .dnk-cta .wp-block-buttons { flex-direction: column; align-items: stretch; width: 100%; }
    .dnk-logos__item img { height: 30px; }
    .dnk-logos__item--nezhnel img { height: 56px; }
    .dnk-pill { padding: 12px 20px; }
    .dnk-footer__inner { grid-template-columns: 1fr; gap: 36px; padding-top: 56px; }
}

@media (max-width: 782px) {
    .admin-bar .dnk-header { top: 46px; }
}
