/* ============================================================
   MOIC REDESIGN 2026-07 — дизайн-система за макетами юзера
   («дизайна сайта фулл» + модалка). Підключається ЛИШЕ на
   сторінках з мета-флагом moic_redesign=1 (пілот), при повній
   розкатці стане глобальним.
   Токени: Roboto, ч/б, акцент #ef8d1d, лінії rgba(208,208,208,.8),
   пілюлі-заголовки (чорний фон), кнопки-пілюлі (оранж, radius 25px).
   ============================================================ */

:root {
  --rd-accent: #ef8d1d;
  --rd-accent-hover: #d67a10;
  --rd-line: rgba(208, 208, 208, .8);
  --rd-line-soft: rgba(232, 232, 232, .9);
  --rd-ink: #111;
  --rd-text: #333;
  --rd-mute: #828282;
  --rd-faint: #999;
}

/* ---------- База ---------- */
body.rd-body {
  margin: 0;
  background: #fff;
  font-family: Roboto, Arial, sans-serif;
  color: var(--rd-ink);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  overflow-x: clip;
}
body.rd-body a { color: #1d1d1d; text-decoration: none; transition: opacity .15s linear; }
body.rd-body a:hover { opacity: .75; }
.rd-wrap { max-width: 1440px; margin: 0 auto; }
.rd-pad { margin: 0 48px; }

/* ---------- Хедер (sticky) ---------- */
.rd-header {
  position: sticky; top: 0; z-index: 800; background: #fff;
  /* full-bleed: тягнемо фон/тінь до країв вікна навіть усередині .rd-wrap (1440) */
  margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
  padding-bottom: 1px; /* білий зазор під розділювальною лінією — щоб її не з'їдала тінь */
  transition: box-shadow .2s ease;
}
.rd-header .rd-topbar { max-width: 1440px; margin: 0 auto; box-sizing: border-box; }
.rd-header .rd-navbar { width: calc(100% - 96px); max-width: 1344px; margin: 0 auto; }
.rd-header.rd-scrolled { box-shadow: 0 6px 24px rgba(0,0,0,.07); }
.rd-header.rd-scrolled .rd-tagline { display: none; }
.rd-header.rd-scrolled .rd-topbar { padding-top: 10px; padding-bottom: 10px; }
.rd-header.rd-scrolled .rd-topbar-left img { width: 132px; }
.rd-topbar-left img { transition: width .2s ease; }
.rd-topbar { transition: padding .2s ease; }
.rd-topbar { display: flex; align-items: center; justify-content: space-between; padding: 16px 48px; }
.rd-topbar-left { display: flex; align-items: flex-end; gap: 20px; }
.rd-topbar-left img { width: 180px; display: block; }
.rd-tagline { font-weight: 300; font-size: 16px; line-height: 1; color: var(--rd-mute); margin-bottom: -1.5px; }
.rd-topbar-right { display: flex; align-items: center; gap: 22px; }
.rd-phone-box { text-align: right; }
.rd-phone-box a { display: block; font-size: 17px; font-weight: 600; color: #1d1d1d; }
.rd-phone-box span { font-size: 12px; color: var(--rd-mute); }
.rd-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 12px 24px; border: none; border-radius: 25px;
  background: var(--rd-accent); color: #000;
  font-family: Roboto, Arial, sans-serif; font-size: 13px; font-weight: 600;
  letter-spacing: .05em; text-transform: uppercase; cursor: pointer;
  transition: background .15s linear;
}
.rd-btn:hover { background: var(--rd-accent-hover); opacity: 1; }
.rd-req-fab { border: none; padding: 0; cursor: pointer; }
.rd-navbar {
  margin: 0 48px; border-top: 1px solid var(--rd-line); border-bottom: 1px solid var(--rd-line);
  display: flex; align-items: center; justify-content: space-between;
}
.rd-nav { display: flex; align-items: center; gap: 56px; padding: 12px 0; }
.rd-nav a { font-size: 13px; text-transform: uppercase; letter-spacing: .04em; color: #1d1d1d; }
.rd-nav a.rd-active, .rd-nav a.current-menu-item { font-weight: 700; }
.rd-langs {
  display: flex; align-items: center; gap: 12px; border: 1px solid #000; border-radius: 25px;
  padding: 5px 20px; font-size: 12.5px; text-transform: uppercase; letter-spacing: .04em; margin: 5px 0;
}
.rd-langs a, .rd-langs span { color: #999; }
.rd-langs li { list-style: none; margin: 0; padding: 0; }
.rd-langs li::marker { content: ""; }
.rd-langs .rd-lang-cur, .rd-langs li.current-lang a { color: #000 !important; font-weight: 600; }
.rd-langs ul { display: flex; gap: 14px; list-style: none; margin: 0; padding: 0; }

/* ---------- Hero ---------- */
.rd-hero { margin: 0 48px; padding: 32px 0; border-bottom: 1px solid var(--rd-line); }
.rd-crumbs { font-size: 13px; color: var(--rd-mute); margin-bottom: 20px; }
.rd-crumbs a { color: var(--rd-mute); }
.rd-crumbs .rd-here { color: #1d1d1d; }
.rd-h1 {
  margin: 0 0 16px; font-weight: 300; font-size: 46px; line-height: 1.1;
  letter-spacing: -.015em; color: var(--rd-ink); max-width: 960px;
}
body.rd-body p.rd-lead {
  margin: 0 0 28px; max-width: 820px; font-size: 17px; line-height: 1.55; color: #444;
}
.rd-badges { display: flex; gap: 10px; flex-wrap: wrap; }
.rd-badge {
  display: inline-flex; align-items: center; padding: 7px 18px;
  border: 1px solid #000; border-radius: 18px; font-size: 13px; color: #000;
}
.rd-badge b { font-weight: 600; }
/* Стаття: рядок «Оновлено … · N хв читання» під крихтами */
.rd-artmeta { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; flex-wrap: wrap; }
.rd-artdate { font-size: 12.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--rd-accent); }
.rd-artread { font-size: 12.5px; color: var(--rd-mute); }
/* Стаття: (1) перша секція контенту врівень з верхом картки «Зміст» (колонки стартують на одній лінії, як сайдбар — 32px, а не 53px від ліда послуг);
           (2) тісніший зазор між лідом і нижньою лінією hero (у статті немає бейджів, тож дірка більша — стискаємо пропорційно 60→~42px). */
body.rd-article .rd-main { padding-top: 32px !important; }
body.rd-article .rd-hero { padding-bottom: 22px; }
body.rd-article p.rd-lead { margin-bottom: 20px; }

/* ---------- Двоколонник ---------- */
.rd-cols { margin: 0 48px; display: flex; align-items: flex-start; }
/* Старий CSS: .single-post.ast-single-post article { padding-top:200px; max-width:920px }
   бив по нашій колонці — пересилюємо точковими !important. */
body.rd-body .rd-main {
  width: 68% !important; max-width: none !important; margin: 0 !important;
  box-sizing: border-box; border-right: 1px solid var(--rd-line);
  padding: 53px 32px 32px 0 !important; min-width: 0; /* padding-right 32 = padding-left сайдбара: симетричні зазори навколо лінії */
}
/* padding-left = padding-top (32px): зазор від вертикальної лінії до ToC
   дорівнює зазору від верхньої лінії до верху «Зміст» — симетрія. */
.rd-side { width: 32%; box-sizing: border-box; padding: 32px 0 32px 32px; position: sticky; top: var(--rd-header-h, 0px); }

/* ---------- Контент (стилізація існуючих h2/p/ul записів) ---------- */
/* Заголовки секцій — за макетом (звичайний текст 24px/500).
   Legacy Customizer малює на записах чорні пілюлі з color:#fff!important —
   пересилюємо точковими !important у rd-скоупі. */
body.rd-body .rd-main h2 {
  scroll-margin-top: calc(var(--rd-header-h, 0px) + 20px);
  display: block !important; width: auto !important; background: transparent !important;
  color: var(--rd-ink) !important; padding: 0 !important; border-radius: 0 !important;
  margin: 36px 0 14px !important; font-size: 24px !important; font-weight: 500; line-height: 1.3 !important;
}
body.rd-body .rd-main h2:first-child { margin-top: 0 !important; }
body.rd-body .rd-main h3 {
  display: block !important; width: auto !important; background: transparent !important;
  color: var(--rd-ink) !important; padding: 0 !important; border-radius: 0 !important;
  margin: 24px 0 10px !important; font-size: 18px !important; font-weight: 600; line-height: 1.35 !important;
}
.rd-main p { margin: 0 0 16px; font-size: 15.5px; line-height: 1.7; color: var(--rd-text); }
.rd-main ul, .rd-main ol { margin: 0 0 24px; padding: 0; list-style: none; }
.rd-main ul > li, .rd-main ol > li { position: relative; padding-left: 26px; margin-bottom: 11px; font-size: 15px; line-height: 1.6; color: var(--rd-text); }
.rd-main ul > li::before {
  content: ""; position: absolute; top: 8px; left: 0;
  width: 15px; height: 5px; border-radius: 1px; background: #000;
}
/* Списки зі своєю розміткою (нормативка з «§» тощо — li з inline flex):
   без нашого маркера і без зсуву */
.rd-main ul > li[style*="flex"] { padding-left: 0; }
.rd-main ul > li[style*="flex"]::before { content: none; }
.rd-main ol { counter-reset: rdol; }
.rd-main ol > li { counter-increment: rdol; padding-left: 34px; }
.rd-main ol > li::before {
  content: counter(rdol, decimal-leading-zero); position: absolute; top: 0; left: 0;
  font-size: 12px; font-weight: 600; color: var(--rd-accent); letter-spacing: .04em;
}
.rd-main table { width: 100%; border-collapse: collapse; margin: 0 0 24px; border: 1px solid var(--rd-line); }
.rd-main table td, .rd-main table th { padding: 14px 20px; border-bottom: 1px solid var(--rd-line); font-size: 14.5px; text-align: left; }
.rd-main table tr:last-child td { border-bottom: none; }

/* ---------- CTA-вставка (в тексті) ---------- */
.rd-cta { border: 1px solid var(--rd-line); border-radius: 12px; padding: 26px 30px; margin: 0 0 32px; }
.rd-cta-kicker { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--rd-accent); margin-bottom: 8px; }
.rd-cta-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 20px; flex-wrap: wrap; }
.rd-cta-title { font-size: 18px; font-weight: 600; margin-bottom: 4px; color: var(--rd-ink); }
.rd-cta-sub { font-size: 14px; line-height: 1.5; color: var(--rd-mute); }
.rd-cta .rd-btn { flex: none; padding: 15px 32px; border-radius: 27px; }
.rd-cta-stats { display: flex; gap: 32px; border-top: 1px solid var(--rd-line); padding-top: 16px; flex-wrap: wrap; }
.rd-cta-stats > div > div:first-child { font-size: 20px; font-weight: 400; color: var(--rd-ink); }
.rd-cta-stats > div > div:last-child { font-size: 12px; color: var(--rd-mute); }

/* ---------- «Читайте також» ---------- */
.rd-also {
  display: flex; gap: 14px; align-items: baseline; flex-wrap: wrap;
  border-left: 3px solid var(--rd-accent); padding: 6px 0 6px 18px; margin: 0 0 8px;
}
.rd-also-kicker { flex: none; font-size: 12.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--rd-mute); }
.rd-also a { font-size: 16.5px; font-weight: 500; color: #1d1d1d; }
.rd-also a b, .rd-arrow { color: var(--rd-accent); font-weight: 700; }

/* ---------- Факт-бокс «важливо» ---------- */
.rd-note { background: #fafafa; border: 1px solid var(--rd-line); border-radius: 12px; padding: 20px 26px; margin: 0 0 36px; }
.rd-note-kicker { font-size: 11.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--rd-accent); margin-bottom: 8px; }
.rd-note p { margin: 0 !important; font-size: 14.5px !important; line-height: 1.6 !important; color: var(--rd-text) !important; }

/* ---------- Етапи (грід 2×2) ---------- */
.rd-steps { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--rd-line); border-radius: 12px; overflow: hidden; margin: 0 0 36px; }
.rd-step { padding: 20px 24px; box-sizing: border-box; border-bottom: 1px solid var(--rd-line); }
.rd-step:nth-child(odd) { border-right: 1px solid var(--rd-line); }
.rd-step:nth-last-child(-n+2) { border-bottom: none; }
.rd-step-num {
  display: inline-block; min-width: 40px; height: 28px; border-radius: 14px; background: #fff; color: #000;
  border: 1px solid #000; box-sizing: border-box; text-align: center; line-height: 26px; font-size: 14px; margin-bottom: 10px;
}
.rd-step-title { font-size: 15.5px; font-weight: 600; margin-bottom: 4px; color: var(--rd-ink); }
.rd-step-desc { font-size: 13.5px; line-height: 1.5; color: #777; }

/* ---------- Документи 2 колонки ---------- */
.rd-docs { display: flex; border: 1px solid var(--rd-line); border-radius: 12px; overflow: hidden; margin: 0 0 16px; }
.rd-docs > div { width: 50%; box-sizing: border-box; padding: 20px 24px; }
.rd-docs > div:first-child { border-right: 1px solid var(--rd-line); }
.rd-docs-kicker { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--rd-mute); margin-bottom: 12px; }

/* ---------- Таблиця вартості (список) ---------- */
.rd-price { border: 1px solid var(--rd-line); border-radius: 12px; overflow: hidden; margin: 0 0 16px; }
.rd-price-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 16px 24px; border-bottom: 1px solid var(--rd-line); }
.rd-price-row:last-child { border-bottom: none; }
.rd-price-name { font-size: 15px; font-weight: 500; color: var(--rd-ink); }
.rd-price-note { font-size: 13px; color: var(--rd-mute); }
.rd-price-val { flex: none; font-size: 15px; font-weight: 600; color: var(--rd-ink); }

/* ---------- FAQ-акордеон ---------- */
.rd-faq { border: 1px solid var(--rd-line); border-radius: 12px; overflow: hidden; margin: 0 0 8px; }
.rd-faq-item { border-bottom: 1px solid var(--rd-line); }
.rd-faq-item:last-child { border-bottom: none; }
.rd-faq-q { display: flex; align-items: center; gap: 14px; padding: 16px 24px; cursor: pointer; }
.rd-faq-q > span:first-child { flex: 1; font-size: 15px; font-weight: 500; color: var(--rd-ink); }
.rd-faq-chev { flex: none; font-weight: 700; font-size: 18px; line-height: 1; color: var(--rd-mute); display: inline-block; transform: rotate(0deg); transition: transform .2s ease, color .2s ease; }
.rd-faq-item.rd-open .rd-faq-chev { transform: rotate(90deg); color: var(--rd-accent); }
.rd-faq-a { display: none; padding: 0 24px 18px; font-size: 14.5px; line-height: 1.65; color: #444; }
.rd-faq-item.rd-open .rd-faq-a { display: block; }

/* ---------- Сайдбар ---------- */
.rd-card { border: 1px solid var(--rd-line); border-radius: 10px; padding: 20px 24px; margin-bottom: 18px; }
.rd-pill-h {
  display: inline-block; margin: 0 0 16px; padding: 6px 16px; border-radius: 15px;
  background: #000; font-size: 14px; line-height: 1.2; color: #fff; font-weight: 400;
}
.rd-toc { padding: 22px 26px 16px; }
.rd-toc .rd-pill-h { margin-bottom: 8px; }
.rd-toc-list {
  display: flex; flex-direction: column;
}
.rd-toc-list a {
  display: flex; gap: 10px; padding: 7px 0 7px 12px; border-left: 2px solid transparent;
  font-size: 13.5px; line-height: 1.4; color: #555;
  transition: color .15s linear, border-color .15s linear;
}
.rd-toc-list a .rd-toc-num { flex: none; font-size: 11.5px; font-weight: 600; letter-spacing: .06em; color: var(--rd-accent); padding-top: 1px; }
.rd-toc-list a.rd-active { color: var(--rd-ink); font-weight: 600; border-left-color: var(--rd-accent); }
.rd-offer { display: flex; gap: 28px; margin-bottom: 12px; }
.rd-offer-label { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--rd-mute); margin-bottom: 4px; }
.rd-offer-val { font-size: 24px; font-weight: 300; color: var(--rd-ink); }
.rd-useful a { display: flex; align-items: center; gap: 10px; padding: 12px 0; border-bottom: 1px solid var(--rd-line); font-size: 14px; color: #1d1d1d; }
.rd-useful a:last-child { border-bottom: none; }
.rd-useful a span:first-child { flex: 1; }
.rd-useful .rd-chev { font-weight: 700; color: #c8c8c8; }
/* Стаття: картка-CTA повʼязаної послуги у сайдбарі */
.rd-side-cta-kicker { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--rd-accent); margin-bottom: 10px; }
.rd-side-cta-name { font-size: 16.5px; font-weight: 600; line-height: 1.35; color: var(--rd-ink); margin-bottom: 14px; }
.rd-side-cta .rd-offer { margin-bottom: 18px; }
.rd-side-cta-btn { width: 100%; padding: 14px 0; border-radius: 25px; margin-bottom: 10px; }
.rd-side-cta-more { display: block; text-align: center; font-size: 13px; font-weight: 500; }
.rd-side-cta-more .rd-chev { color: var(--rd-accent); font-weight: 700; }

/* ---------- Лістинг статей (архів /article/) ---------- */
.rd-artlist { margin: 0 48px; display: grid; grid-template-columns: repeat(3, 1fr); }
.rd-art-card {
  display: flex; flex-direction: column; box-sizing: border-box;
  padding: 28px 32px 24px; color: #1d1d1d;
  border-bottom: 1px solid var(--rd-line); border-right: 1px solid var(--rd-line);
  transition: background .15s linear;
}
.rd-art-card:nth-child(3n) { border-right: none; }
.rd-art-card:hover { background: #fafafa; opacity: 1; }
.rd-art-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.rd-art-date { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--rd-accent); }
.rd-art-read { font-size: 12px; color: var(--rd-mute); }
.rd-art-title { font-size: 18px; font-weight: 500; line-height: 1.35; margin-bottom: 10px; color: var(--rd-ink); }
.rd-art-excerpt {
  font-size: 13.5px; line-height: 1.55; color: #777; margin-bottom: 18px;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.rd-art-more { margin-top: auto; display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; color: #1d1d1d; }
.rd-art-more .rd-arrow { color: var(--rd-accent); font-weight: 700; }
.rd-artlist-empty { margin: 0 48px; padding: 48px 0; text-align: center; color: var(--rd-mute); }

/* Пагінація-пігулки */
.rd-pagination { margin: 0 48px; padding: 32px 0; display: flex; align-items: center; justify-content: center; gap: 10px; flex-wrap: wrap; }
.rd-pagination a, .rd-pagination span.current, .rd-pagination span.dots {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 40px; height: 40px; padding: 0 14px; border-radius: 20px;
  font-size: 14px; box-sizing: border-box; border: 1px solid #000; color: #000; background: #fff;
  transition: background .15s linear, color .15s linear;
}
.rd-pagination a:hover { background: #000; color: #fff; opacity: 1; }
.rd-pagination span.current { background: #000; color: #fff; }
.rd-pagination span.dots { border: none; }
.rd-pagination a.prev, .rd-pagination a.next { padding: 0 22px; }

/* ---------- Хаб «Усі послуги» ---------- */
.rd-hero-allsvc { display: flex; align-items: flex-end; justify-content: space-between; gap: 48px; }
.rd-hero-allsvc-text { max-width: 760px; }
.rd-hero-allsvc .rd-lead { margin-bottom: 0; }
.rd-hero-cta { flex: none; padding: 16px 36px; border-radius: 28px; font-size: 14px; }
/* десктоп: плоска сітка 4 колонки */
.rd-svc-grid { margin: 0 48px; display: grid; grid-template-columns: repeat(4, 1fr); }
.rd-svc-groups { display: none; }
.rd-svc-card {
  display: flex; flex-direction: column; box-sizing: border-box; padding: 24px 26px; color: #1d1d1d;
  border-bottom: 1px solid var(--rd-line); border-right: 1px solid var(--rd-line); transition: background .15s linear;
}
.rd-svc-card:nth-child(4n) { border-right: none; }
.rd-svc-card:hover { background: #fafafa; opacity: 1; }
.rd-svc-top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.rd-svc-num { font-size: 13px; font-weight: 600; letter-spacing: .1em; color: var(--rd-accent); }
.rd-svc-top .rd-svc-chev { font-weight: 700; font-size: 18px; line-height: 1; color: #c8c8c8; }
.rd-svc-title { font-size: 16px; font-weight: 500; line-height: 1.32; margin-bottom: 8px; color: var(--rd-ink); }
.rd-svc-desc { font-size: 13px; line-height: 1.5; color: #777; margin-bottom: 16px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.rd-svc-more { margin-top: auto; display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 500; color: #1d1d1d; }
.rd-svc-more .rd-arrow { color: var(--rd-accent); font-weight: 700; }
/* SEO-текст під списком */
.rd-svc-seo { margin: 0 48px; padding: 32px 0; }
.rd-svc-seo-cols { display: flex; gap: 40px; }
.rd-svc-seo-col { width: 50%; box-sizing: border-box; }
.rd-svc-seo-cols p { color: var(--rd-text); } /* кегль/інтерліньяж — з канонічного .rd-main p (єдина типографіка) */
.rd-svc-seo-col p:last-child { margin-bottom: 0; }
/* мобайл: акордеони-напрямки (reuse .rd-faq) */
.rd-svc-acc { margin: 0 16px; }
.rd-svc-acc .rd-faq-a { padding: 0; }
.rd-svc-count { flex: none; display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 22px; padding: 0 6px; border: 1px solid #000; border-radius: 11px; font-size: 12px; font-weight: 400; }
.rd-svc-accitem { display: flex; align-items: center; gap: 12px; padding: 14px 20px 14px 28px; border-top: 1px solid var(--rd-line); background: #fafafa; color: #1d1d1d; }
.rd-svc-accitem span:first-child { flex: 1; font-size: 14.5px; line-height: 1.35; }
.rd-svc-accitem .rd-svc-chev { flex: none; font-weight: 700; color: #c8c8c8; }

/* ============================================================
   ГОЛОВНА (rd-home)
   ============================================================ */
/* якорі секцій (меню /#services /#about /#institutions) — під липкий хедер */
body.rd-home section[id], #contacts { scroll-margin-top: calc(var(--rd-header-h, 0px) + 12px); }
/* HERO-слайдер */
.rd-hero-slider { margin: 0 48px; border-bottom: 1px solid var(--rd-line); }
.rd-hs-slide { display: none; }
.rd-hs-slide.rd-active { display: flex; align-items: stretch; }
.rd-hs-text { width: 50%; box-sizing: border-box; padding: 32px 56px 32px 0; display: flex; flex-direction: column; justify-content: space-between; min-height: 476px; }
.rd-hs-title { margin: 0 0 20px; font-weight: 300; font-size: 46px; line-height: 1.12; letter-spacing: -.015em; color: var(--rd-ink); }
.rd-hs-desc { font-size: 17px; line-height: 1.6; color: #444; max-width: 52ch; }
.rd-hs-desc p { margin: 0 0 12px; }
.rd-hs-desc p:last-child { margin-bottom: 0; }
.rd-hs-controls { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 28px; margin-top: 32px; flex-wrap: wrap; }
.rd-hs-controls .rd-btn { padding: 16px 40px; border-radius: 30px; font-size: 14px; }
.rd-hs-next { display: inline-flex; align-items: center; gap: 12px; height: 40px; padding: 0 22px; border: 1px solid #000; border-radius: 20px; background: #fff; color: #000; cursor: pointer; font-family: inherit; transition: background .15s linear, color .15s linear; }
.rd-hs-next:hover { background: #000; color: #fff; }
.rd-hs-arrow { font-weight: 700; font-size: 17px; line-height: 1; }
.rd-hs-counter { font-size: 15px; }
.rd-hs-img { width: 50%; position: relative; overflow: hidden; margin: 32px 0; }
.rd-hs-img img { display: block; width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }

/* Explorer послуг */
.rd-svc-explorer { margin: 0 48px; padding-bottom: 40px; }
.rd-se-head { display: flex; align-items: center; justify-content: space-between; padding: 32px 0; }
.rd-se-all { font-size: 14px; font-weight: 500; color: #1d1d1d; }
.rd-se-all .rd-arrow { color: var(--rd-accent); font-weight: 700; }
.rd-se-cols { display: flex; border-top: 1px solid var(--rd-line); }
/* фіксована висота колонок = рівно 8 послуг (8 × 68px); зайве скролиться всередині колонки */
.rd-se-list, .rd-se-mid, .rd-se-desc { height: 544px; box-sizing: border-box; }
.rd-se-list { width: 33.333%; border-right: 1px solid var(--rd-line); overflow-y: auto; }
.rd-se-item { display: flex; align-items: center; gap: 14px; min-height: 68px; box-sizing: border-box; padding: 10px 16px 10px 40px; position: relative; border-bottom: 1px solid var(--rd-line); cursor: pointer; color: #555; font-size: 15px; line-height: 1.35; transition: color .15s linear; }
.rd-se-item:last-child { border-bottom: none; }
.rd-se-item:hover { color: #000; }
.rd-se-num { position: absolute; left: 0; top: 50%; transform: translateY(-50%); color: var(--rd-mute); }
.rd-se-name { flex: 1; min-width: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rd-se-chev { flex: none; font-weight: 700; font-size: 24px; line-height: 1; color: var(--rd-accent); opacity: 0; transition: opacity .15s linear; }
.rd-se-item.rd-active { color: #000; font-weight: 600; }
.rd-se-item.rd-active .rd-se-num { color: var(--rd-accent); }
.rd-se-item.rd-active .rd-se-chev { opacity: 1; }
.rd-se-mid { width: 33.333%; border-right: 1px solid var(--rd-line); padding-left: 40px; }
.rd-se-panel { display: none; }
.rd-se-panel.rd-active { display: flex; flex-direction: column; }
.rd-se-points { max-height: 472px; overflow-y: auto; }
/* пункти абв: однакова висота рядків (симетрія), лейбл — до 2 рядків */
.rd-se-point { display: flex; align-items: center; gap: 14px; min-height: 68px; box-sizing: border-box; padding: 8px 26px 8px 0; border-bottom: 1px solid var(--rd-line); line-height: 1.35; cursor: pointer; font-size: 15px; }
.rd-se-letter { flex: none; width: 40px; height: 28px; border-radius: 14px; border: 1px solid #000; box-sizing: border-box; text-align: center; line-height: 26px; background: #fff; color: #000; }
.rd-se-plabel { flex: 1; min-width: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rd-se-point.rd-active .rd-se-letter { background: #000; color: #fff; }
.rd-se-parr { flex: none; font-weight: 700; font-size: 26px; line-height: 1; color: var(--rd-accent); display: none; }
.rd-se-point.rd-active .rd-se-parr { display: inline-block; }
.rd-se-open { flex: none; align-self: center; display: inline-flex; align-items: center; gap: 8px; margin: 20px 0 6px; padding: 10px 22px; border: 1px solid #000; border-radius: 50px; color: #000; font-size: 14px; transition: background .15s linear, color .15s linear; }
.rd-se-open:hover { background: #000; color: #fff; opacity: 1; }
.rd-se-open .rd-arrow { color: var(--rd-accent); font-weight: 700; }
.rd-se-desc { width: 33.333%; padding: 4px 0 8px 34px; overflow-y: auto; }
.rd-se-descpanel, .rd-se-dcontent { display: none; }
.rd-se-descpanel.rd-active { display: block; }
.rd-se-descpanel.rd-active .rd-se-dcontent.rd-active { display: block; }
.rd-se-dcontent p { margin: 0 0 12px; font-size: 15px; line-height: 1.6; color: var(--rd-text); }
.rd-se-dcontent ul { margin: 0 0 12px; padding: 0; list-style: none; }
.rd-se-dcontent li { position: relative; padding-left: 26px; margin-bottom: 10px; font-size: 15px; line-height: 1.55; color: var(--rd-text); }
.rd-se-dcontent li::before { content: ""; position: absolute; top: 8px; left: 0; width: 15px; height: 5px; border-radius: 1px; background: #000; }
.rd-se-cta { display: block; margin: 36px auto 0; padding: 16px 44px; border-radius: 29px; }

/* Про МОІЦ */
.rd-home-about { margin: 0 48px; border-top: 1px solid var(--rd-line); display: flex; }
.rd-ha-col { width: 50%; box-sizing: border-box; padding: 32px 40px 52px 0; }
.rd-ha-col + .rd-ha-col { border-left: 1px solid var(--rd-line); padding: 32px 0 52px 40px; }
.rd-ha-col .rd-pill-h { margin-bottom: 30px; }
.rd-ha-cols { display: flex; gap: 34px; }
.rd-ha-cols > div { width: 50%; }
.rd-ha-cols p { margin: 0 0 12px; font-size: 15px; line-height: 1.65; color: var(--rd-text); }
.rd-ha-cols p:last-child { margin-bottom: 0; }
.rd-ha-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.rd-ha-stat { border: 1px solid var(--rd-line); border-radius: 10px; padding: 18px 22px; }
.rd-ha-num { font-size: 28px; font-weight: 300; line-height: 1.1; color: var(--rd-ink); }
.rd-ha-lab { margin-top: 6px; font-size: 13px; line-height: 1.4; color: var(--rd-mute); }

/* Сертифікати */
.rd-home-certs { margin: 0 48px; border-top: 1px solid var(--rd-line); padding: 32px 0; }
.rd-hc-head { margin-bottom: 28px; }
.rd-hc-scroll { display: flex; gap: 24px; overflow-x: auto; padding: 8px 0 12px; }
.rd-hc-card { flex: none; width: 118px; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.rd-hc-thumb { width: 104px; height: 104px; border: 1px solid #000; border-radius: 10px; display: flex; align-items: center; justify-content: center; overflow: hidden; transition: transform .15s ease, box-shadow .15s ease; }
.rd-hc-card:hover .rd-hc-thumb { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(0,0,0,.1); }
.rd-hc-thumb img { max-width: 88px; max-height: 88px; object-fit: contain; filter: saturate(0); transition: filter .15s linear; }
.rd-hc-card:hover .rd-hc-thumb img { filter: saturate(1); }
.rd-hc-title { font-size: 12px; line-height: 1.35; color: #444; text-align: center; }

/* Нам довіряють */
.rd-home-trust { margin: 0 48px; border-top: 1px solid var(--rd-line); padding: 32px 0 6px; }
.rd-home-trust > .rd-pill-h { margin-bottom: 4px; }
.rd-tr-row { display: flex; align-items: stretch; }
.rd-tr-row + .rd-tr-row { border-top: 1px solid var(--rd-line); }
.rd-tr-label { flex: none; width: 220px; box-sizing: border-box; padding: 28px 24px 28px 0; display: flex; align-items: center; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--rd-mute); line-height: 1.5; }
.rd-tr-logos { flex: 1; min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 40px; padding: 26px 0; overflow-x: auto; }
.rd-tr-logos img { flex: 0 0 auto; height: 64px; width: auto; max-width: 170px; object-fit: contain; }
.rd-tr-logos--comm img { height: 100px; max-width: none; }
/* Пілюлі-заголовки: форсуємо білий текст (тема фарбує h2 у темний поверх .rd-pill-h) */
body.rd-body h2.rd-pill-h, body.rd-body h3.rd-pill-h { color: #fff !important; background: #000 !important; }
/* Меню на головній: не підсвічувати всі 4 anchor-пункти (current-menu-item) —
   активним робить лише scrollspy (.rd-active) для секції у полі зору */
body.rd-home .rd-nav a.current-menu-item { font-weight: 400; }
.rd-nav a.rd-active { font-weight: 700; }

/* ---------- Форми (CF7 у стилі макета) ---------- */
.rd-form label, .rd-form .rd-flabel {
  display: block; font-size: 12px; letter-spacing: .06em; text-transform: uppercase;
  color: var(--rd-mute); margin-bottom: 2px;
}
/* CF7 вставляє <br> між рядками форми — прибираємо, відступи задають поля */
.rd-form .wpcf7-form br { display: none; }
.rd-form .wpcf7-spinner { position: absolute; margin: 0; }
.rd-form .wpcf7-form { position: relative; }
.rd-form input[type="text"], .rd-form input[type="tel"], .rd-form input[type="email"], .rd-form textarea, .rd-form select {
  width: 100%; box-sizing: border-box; margin-bottom: 14px; padding: 8px 0;
  border: none; border-bottom: 1px solid #000; border-radius: 0;
  font-size: 16px; font-family: Roboto, Arial, sans-serif; outline: none; background: transparent;
  color: var(--rd-ink);
}
.rd-form textarea { min-height: 42px; resize: vertical; }
/* select — у стилі решти полів (лінія знизу, без рамок і системного вигляду) */
.rd-form select {
  -webkit-appearance: none; appearance: none;
  width: 100%; box-sizing: border-box; margin-bottom: 14px; padding: 8px 22px 8px 0;
  border: none; border-bottom: 1px solid #000; border-radius: 0;
  font-size: 16px; font-family: Roboto, Arial, sans-serif; color: var(--rd-ink);
  outline: none; background: transparent url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") no-repeat right center;
}
.rd-form fieldset { border: none; margin: 0; padding: 0; min-width: 0; }
.rd-form legend {
  display: block; font-size: 12px; letter-spacing: .06em; text-transform: uppercase;
  color: var(--rd-mute); margin-bottom: 2px; padding: 0;
}
/* компактна модалка: кнопка видна одразу, без скролу */
.rd-modal-body { padding: 20px 36px 26px; }
.rd-modal-head { padding: 18px 36px; }
.rd-modal .rd-form textarea { min-height: 48px; max-height: 96px; }
.rd-modal .rd-form input[type="text"], .rd-modal .rd-form input[type="tel"],
.rd-modal .rd-form input[type="email"], .rd-modal .rd-form select { margin-bottom: 10px; }
.rd-form input:focus, .rd-form textarea:focus { border-bottom-color: var(--rd-accent); }
.rd-form .wpcf7-submit, .rd-form .rd-submit {
  width: 100%; padding: 14px 0; border: none; border-radius: 25px;
  background: var(--rd-accent); color: #000; font-family: Roboto, Arial, sans-serif;
  font-size: 13px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; cursor: pointer;
  transition: background .15s linear;
}
.rd-form .wpcf7-submit:hover { background: var(--rd-accent-hover); }
.rd-form-hint { margin-top: 6px; font-size: 11px; line-height: 1.4; color: var(--rd-faint); }
.rd-form .wpcf7-not-valid-tip { font-size: 12px; color: #c0392b; margin: -12px 0 12px; }
.rd-form .wpcf7-response-output { border: 1px solid var(--rd-line); border-radius: 8px; margin: 12px 0 0; padding: 10px 14px; font-size: 13px; }
.rd-form p { margin: 0; }

/* ---------- Контакти (низ сторінки) ---------- */
.rd-contacts { margin: 0 48px; border-top: 1px solid var(--rd-line); display: flex; }
.rd-contacts-map { width: 46%; box-sizing: border-box; padding: 32px 0; display: flex; }
.rd-contacts-map iframe { flex: 1 1 auto; width: 100%; min-height: 360px; border: 0; display: block; }
.rd-contacts-col { width: 27%; box-sizing: border-box; border-left: 1px solid var(--rd-line); margin-left: 34px; padding: 32px 0 32px 34px; }
.rd-contacts-col .rd-tel { display: block; font-size: 20px; font-weight: 600; color: #1d1d1d; margin-bottom: 4px; }
.rd-contacts-col .rd-hours { font-size: 13px; color: var(--rd-mute); margin-bottom: 14px; }
.rd-contacts-col .rd-mail { display: block; font-size: 15px; margin-bottom: 28px; color: #1d1d1d; }
.rd-contacts-col address { font-style: normal; margin: 0; font-size: 15px; line-height: 1.6; color: var(--rd-text); }

/* ---------- Футер ---------- */
.rd-footer {
  margin: 0 48px; border-top: 1px solid var(--rd-line); padding: 24px 0;
  display: flex; align-items: center; justify-content: space-between; font-size: 13.5px; color: #555;
}
.rd-footer p { margin: 0; }
.rd-footer nav { display: flex; gap: 24px; }
.rd-footer a { color: #555; }

/* ---------- Модалка ---------- */
.rd-modal-overlay {
  position: fixed; inset: 0; background: rgba(17,17,17,.45); z-index: 9990;
  display: none;
}
.rd-modal-overlay.rd-open { display: block; }
.rd-modal {
  position: fixed; top: 50%; left: 50%; transform: translate(-50%,-50%);
  width: 560px; max-width: calc(100vw - 32px); max-height: calc(100vh - 48px); overflow-y: auto;
  background: #fff; box-shadow: 0 30px 80px rgba(0,0,0,.3); box-sizing: border-box; z-index: 9991;
  display: none;
}
.rd-modal.rd-open { display: block; }
.rd-modal-head { display: flex; align-items: center; justify-content: space-between; padding: 24px 36px; border-bottom: 1px solid var(--rd-line); }
.rd-modal-close { font-size: 30px; line-height: 1; font-weight: 300; color: #1d1d1d; cursor: pointer; background: none; border: none; padding: 0; }
.rd-modal-close:hover { color: var(--rd-mute); }
.rd-modal-body { padding: 28px 36px 36px; }
.rd-modal-body .rd-modal-intro { margin: 0 0 26px; font-size: 14px; line-height: 1.55; color: var(--rd-mute); }
.rd-modal-row { display: flex; gap: 28px; }
.rd-modal-row > * { flex: 1; min-width: 0; }
body.rd-modal-open { overflow: hidden; }

/* ============================================================
   МОБАЙЛ (≤ 900px)
   ============================================================ */
@media (max-width: 900px) {
  .rd-pad, .rd-navbar, .rd-hero, .rd-cols, .rd-contacts, .rd-footer { margin: 0 16px; }
  .rd-topbar { padding: 9px 16px 13px; }
  .rd-topbar-left img { width: 118px; }
  /* стабільна висота шапки при скролі на мобайлі — без стрибків/дергання в зоні hero */
  .rd-header.rd-scrolled .rd-topbar { padding: 9px 16px 13px; }
  .rd-header.rd-scrolled .rd-topbar-left img { width: 118px; }
  .rd-tagline { display: none; }
  .rd-phone-box { display: none; }
  .rd-topbar .rd-btn { display: none; }
  .rd-call-fab {
    display: inline-flex !important; align-items: center; justify-content: center;
    width: 44px; height: 44px; border-radius: 50%; background: var(--rd-accent);
  }
  .rd-burger { display: flex !important; }
  /* 2) full-bleed не потрібен (wrap = ширина екрана) — прибирає люфт вліво-вправо */
  .rd-header { margin-left: 0; margin-right: 0; }
  /* 3) розділювальна лінія — від лівого краю лого до правого краю бургера (поля 16px) */
  .rd-header .rd-navbar { width: calc(100% - 32px); max-width: none; }
  .rd-navbar { flex-direction: column; align-items: stretch; border-top: none; }
  .rd-nav { display: none; flex-direction: column; gap: 0; padding: 0; }
  .rd-nav.rd-open { display: flex; }
  .rd-nav a { padding: 13px 0; border-bottom: 1px solid var(--rd-line-soft); }
  /* 1) мова — всередині бургер-меню, внизу списку (під «Усі послуги») */
  .rd-langs { display: none; }
  .rd-nav.rd-open ~ .rd-langs { display: flex; align-self: flex-start; margin: 10px 0 12px; }
  .rd-h1 { font-size: 29px; line-height: 1.15; letter-spacing: -.01em; }
  .rd-lead { font-size: 14.5px; }
  .rd-hero { padding: 24px 0 22px; }
  .rd-hero .rd-btn-mob { display: block; width: 100%; margin-top: 18px; }
  body.rd-body .rd-main { width: 100% !important; border-right: none; padding: 22px 0 !important; }
  /* Мобайл: сайдбар «розпадається» на частини (display:contents) —
     ToC переїжджає НА ПОЧАТОК (після hero, перед першим абзацом),
     міні-форма ховається (внизу є «Швидка заявка»), «корисно» — після контенту. */
  .rd-side { display: contents; }
  .rd-cols { flex-direction: column; align-items: stretch; } /* сайдбарні картки (ToC, «корисно») на всю ширину, а не по контенту */
  .rd-card.rd-toc { order: -1; margin: 22px 0 6px; }
  .rd-main { order: 0; }
  .rd-card.rd-useful { order: 1; margin: 0 0 10px; }
  /* Стаття: картку-CTA послуги на мобайлі ховаємо — конверсію тримає CTA в тілі */
  .rd-card.rd-side-cta { display: none; }
  /* Лістинг статей: одна колонка */
  .rd-artlist { grid-template-columns: 1fr; margin: 0 16px; }
  .rd-art-card { border-right: none; padding: 20px 0; }
  .rd-art-card:nth-child(3n) { border-right: none; }
  .rd-art-excerpt { -webkit-line-clamp: 2; }
  .rd-pagination { margin: 0 16px; padding: 22px 0; gap: 8px; }
  .rd-artlist-empty { margin: 0 16px; }
  /* Хаб послуг: десктоп-сітку ховаємо, показуємо акордеони-напрямки */
  .rd-svc-grid { display: none; }
  .rd-svc-groups { display: block; }
  .rd-hero-allsvc { flex-direction: column; align-items: stretch; gap: 18px; }
  .rd-hero-cta { width: 100%; }
  .rd-svc-seo { margin: 0 16px; }
  .rd-svc-seo-cols { flex-direction: column; gap: 0; }
  .rd-svc-seo-col { width: 100%; }
  .rd-svc-seo-col:first-child p:last-child { margin-bottom: 16px; }
  /* Головна — мобайл */
  .rd-svc-explorer, .rd-home-about, .rd-home-certs, .rd-home-trust { margin: 0 16px; }
  /* HERO: фото на весь екран + темна плівка + білий контент знизу (як у макеті) */
  .rd-hero-slider { margin: 0; border-bottom: none; }
  .rd-hs-slide.rd-active { position: relative; display: block; min-height: calc(100vh - 78px); min-height: calc(100svh - 78px); overflow: hidden; }
  .rd-hs-slide.rd-active::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(to top, rgba(0,0,0,.82) 0%, rgba(0,0,0,.38) 52%, rgba(0,0,0,.12) 100%); }
  .rd-hs-img { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; z-index: 0; }
  .rd-hs-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  .rd-hs-text { position: relative; z-index: 2; width: 100%; min-height: calc(100vh - 78px); min-height: calc(100svh - 78px); box-sizing: border-box; padding: 24px 16px 28px; justify-content: flex-end; color: #fff; }
  .rd-hs-title { font-size: 30px; color: #fff !important; }
  .rd-hs-desc, .rd-hs-desc p { color: rgba(255,255,255,.92) !important; max-width: none; }
  .rd-hs-controls { padding-top: 20px; margin-top: 20px; }
  .rd-hs-next { background: transparent; border-color: rgba(255,255,255,.6); color: #fff; }
  .rd-hs-next:hover { background: #fff; color: #000; }
  /* CTA hero: ховаємо «професійну» на мобайлі → «Отримати консультацію» в один рядок */
  .rd-hs-btn-long { display: none; }
  /* ПОСЛУГИ: мобайл = картки-посилання з бордером і помаранчевим номером (як у макеті) */
  .rd-se-cols { flex-direction: column; }
  .rd-se-list { width: 100%; height: auto; border-right: none; max-height: none; overflow: visible; display: flex; flex-direction: column; gap: 10px; }
  .rd-se-mid, .rd-se-desc, .rd-se-cta { display: none; }
  .rd-se-item { display: flex; align-items: center; gap: 14px; min-height: 0; padding: 16px; border: 1px solid #e6e6e6; border-radius: 10px; color: #1d1d1d; font-weight: 400; }
  .rd-se-item:last-child { border-bottom: 1px solid #e6e6e6; }
  .rd-se-num { position: static; transform: none; flex: none; font-size: 12px; font-weight: 600; letter-spacing: .08em; color: var(--rd-accent); }
  .rd-se-name { font-size: 15px; font-weight: 500; line-height: 1.3; }
  .rd-se-chev { flex: none; opacity: 1; color: #1d1d1d; font-size: 18px; }
  .rd-se-item.rd-active { color: #1d1d1d; font-weight: 400; border-color: #e6e6e6; }
  .rd-se-item.rd-active .rd-se-num { color: var(--rd-accent); }
  .rd-se-item.rd-active .rd-se-chev { opacity: 1; color: #1d1d1d; }
  .rd-home-about { flex-direction: column; }
  .rd-ha-col, .rd-ha-col + .rd-ha-col { width: 100%; padding: 24px 0; border-left: none; }
  .rd-ha-col + .rd-ha-col { border-top: 1px solid var(--rd-line); }
  .rd-ha-cols { flex-direction: column; gap: 0; }
  .rd-ha-cols > div { width: 100%; }
  .rd-ha-cols > div:first-child p:last-child { margin-bottom: 12px; }
  .rd-tr-row { flex-direction: column; align-items: stretch; }
  .rd-tr-label { width: auto; padding: 20px 0 0; }
  /* логотипи переносяться в сітку — без «виглядаючих» половинок від горизонтального скролу */
  .rd-tr-logos { flex-wrap: wrap; overflow-x: visible; justify-content: center; padding: 18px 0; gap: 22px 28px; }
  .rd-tr-logos img { height: 52px; }
  .rd-tr-logos--comm img { height: 78px; }
  .rd-cols > aside .rd-card.rd-form, .rd-side .rd-card.rd-form { display: none; }
  .rd-main h2 { font-size: 20px; }
  .rd-steps { grid-template-columns: 1fr; }
  .rd-step:nth-child(odd) { border-right: none; }
  .rd-step:nth-last-child(-n+2) { border-bottom: 1px solid var(--rd-line); }
  .rd-step:last-child { border-bottom: none; }
  .rd-docs { flex-direction: column; }
  .rd-docs > div { width: 100%; }
  .rd-docs > div:first-child { border-right: none; border-bottom: 1px solid var(--rd-line); }
  .rd-cta { padding: 18px; }
  .rd-cta-row { margin-bottom: 14px; }
  .rd-cta .rd-btn { width: 100%; }
  .rd-contacts { flex-direction: column; }
  .rd-contacts-map { width: 100%; padding: 22px 0 0; }
  .rd-contacts-map iframe { height: 180px; }
  .rd-contacts-col { width: 100%; border-left: none; margin-left: 0; padding: 22px 0 0; }
  .rd-footer { flex-direction: column; gap: 10px; align-items: flex-start; padding: 18px 0 24px; }
  /* модалка → шторка знизу */
  .rd-modal {
    top: auto; left: 0; bottom: 0; transform: none;
    width: 100%; max-width: none; border-radius: 16px 16px 0 0;
    max-height: 92vh;
  }
  .rd-modal-head { padding: 18px 20px; }
  .rd-modal-body { padding: 20px 20px 28px; }
  .rd-modal-row { flex-direction: column; gap: 0; }
}
@media (min-width: 901px) {
  .rd-call-fab { display: none !important; }
  .rd-burger { display: none !important; }
}

/* =============================================================
   MOIC · Типографіка сторінок ПКД — варіант «Сдержанно»
   Додати в кінець: wp-content/themes/Moill-child/assets/css/redesign.css
   Змінюється ЛИШЕ текст (ритм, кегль ~+16%, міра рядка, переноси,
   баланс заголовків). Кольори, верстка й компоненти — без змін.
   Застосовується на сторінках rd-редизайну (moic_redesign=1).
   ============================================================= */

/* Основний текст: більший кегль, повітряніший інтерліньяж,
   обмежена міра рядка + м'які переноси.
   Той самий ритм застосовуємо і до SEO-тексту хаба «Усі послуги»
   (.rd-svc-seo-col p) — єдина типографіка по сайту. */
.rd-main p,
.rd-svc-seo-col p {
  font-size: 18px;
  line-height: 1.75;
  margin: 0 0 16px;
  text-wrap: pretty;                   /* без «сиріток» наприкінці абзацу */
  hyphens: none; -webkit-hyphens: none;
}

/* Списки */
.rd-main ul, .rd-main ol { margin: 0 0 22px; }
.rd-main ul > li,
.rd-main ol > li {
  font-size: 17px;
  line-height: 1.66;
  margin-bottom: 12px;
  hyphens: none; -webkit-hyphens: none;
}
.rd-main ul > li::before { top: 11px; }   /* маркер під новий кегль */

/* Ввідний рядок («… для:», «… необхідна:») тримається щільно
   до свого списку — читається як одне ціле, а не окремий абзац. */
.rd-main p:has(+ ul),
.rd-main p:has(+ ol) { margin-bottom: 8px; }

/* Заголовки секцій (!important — як і в базовому redesign.css,
   щоб перебити legacy-стилі Customizer). */
body.rd-body .rd-main h2 {
  font-size: 28px !important;
  line-height: 1.22 !important;
  margin: 40px 0 14px !important;
  letter-spacing: -.012em;
  text-wrap: balance;                  /* рівний баланс рядків заголовка */
}
body.rd-body .rd-main h2:first-child { margin-top: 0 !important; }
body.rd-body .rd-main h3 {
  font-size: 21px !important;
  line-height: 1.3 !important;
  margin: 30px 0 10px !important;
}

/* Лід у hero */
body.rd-body p.rd-lead {
  font-size: 20px;
  line-height: 1.5;
  text-wrap: pretty;
}

/* H1: розмір лишається (46px), додаємо лише гарний баланс переносу */
.rd-h1 { text-wrap: balance; }

/* Симетричні відступи навколо CTA-вставки в тексті */
.rd-main .rd-cta { margin: 24px 0; }

/* =============================================================
   Текст-читабельність «Сдержанно» — мобільна версія (пропорційно).
   ============================================================= */
@media (max-width: 900px) {
  /* Тіло тексту НЕ зменшуємо — читабельність важливіша за екран:
     кегль лишається як на десктопі (18px), знімаємо лише міру рядка. */
  .rd-main p { max-width: none; }
  .rd-main ul > li, .rd-main ol > li { max-width: none; }
  body.rd-body p.rd-lead { max-width: none; }
  /* Заголовки трохи адаптуємо під вузький екран (довгі слова не рвуть верстку),
     але вони лишаються більшими за початкові. */
  body.rd-body .rd-main h2 { font-size: 25px !important; line-height: 1.22 !important; margin: 34px 0 12px !important; }
  body.rd-body .rd-main h3 { font-size: 20px !important; line-height: 1.3 !important; margin: 28px 0 10px !important; }
}

/* =============================================================
   Правий блок (ToC + «Вам може бути корисно») — текст +10%.
   Scope .rd-side, щоб пілюлі-заголовки в контактах лишились без змін.
   Десктоп і мобайл однаково.
   ============================================================= */
.rd-side .rd-pill-h { font-size: 15.5px; }        /* 14 → +10% */
.rd-toc-list a { font-size: 15px; }               /* 13.5 → +10% */
.rd-toc-list a .rd-toc-num { font-size: 12.5px; } /* 11.5 → +10% */
.rd-useful a { font-size: 15.5px; }               /* 14 → +10% */

/* =============================================================
   Спеціалізовані напрями — картки-посилання (розширювана сітка).
   ============================================================= */
.rd-specs-intro { margin: 4px 0 14px; }
.rd-specs {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 14px; margin: 0 0 28px;
}
.rd-spec-card {
  display: flex; flex-direction: column; border: 1px solid var(--rd-line);
  border-radius: 12px; padding: 22px 24px; background: #fff;
  transition: border-color .15s linear, box-shadow .15s linear;
}
.rd-spec-card:hover { border-color: var(--rd-accent); opacity: 1; box-shadow: 0 6px 20px rgba(0,0,0,.06); }
.rd-spec-ico {
  width: 12px; height: 12px; border-radius: 3px; background: var(--rd-accent); margin-bottom: 16px;
}
.rd-spec-title { font-size: 18px; font-weight: 600; line-height: 1.25; color: var(--rd-ink); margin-bottom: 8px; }
.rd-spec-desc { font-size: 14.5px; line-height: 1.55; color: var(--rd-mute); margin: 0 0 16px; flex: 1; }
.rd-spec-more { font-size: 14px; font-weight: 600; color: var(--rd-accent); }
.rd-spec-more .rd-arrow, .rd-spec-more b { color: var(--rd-accent); }
@media (max-width: 900px) {
  .rd-specs { grid-template-columns: 1fr; }
}


/* =============================================================
   Єдиний відступ ЗВЕРХУ для контентних блоків — щоб не липли до
   тексту (таблиця цін, факт-бокси, картки, документи, етапи, FAQ).
   margin collapse із margin-bottom попереднього абзацу → чистий зазор.
   ============================================================= */
.rd-main .rd-cta,
.rd-main .rd-note,
.rd-main .rd-price,
.rd-main .rd-docs,
.rd-main .rd-steps,
.rd-main .rd-faq,
.rd-main .rd-specs,
.rd-main table { margin-top: 26px; }
/* Ввідний рядок перед картками спец-напрямів тримається близько до них */
.rd-main .rd-specs-intro { margin-top: 26px; margin-bottom: 14px; }
.rd-main .rd-specs { margin-top: 0; }
