/* ============================================
   СИСТЕМА-ІНВЕСТ — Головна сторінка
   ============================================ */

@font-face {
  font-family: 'Gilroy';
  src: url('../fonts/Gilroy-Regular.woff2') format('woff2'),
       url('../fonts/Gilroy-Regular.woff') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Gilroy';
  src: url('../fonts/Gilroy-Medium.woff2') format('woff2'),
       url('../fonts/Gilroy-Medium.woff') format('woff');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Gilroy';
  src: url('../fonts/Gilroy-Semibold.woff2') format('woff2'),
       url('../fonts/Gilroy-Semibold.woff') format('woff');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Gilroy';
  src: url('../fonts/Gilroy-Bold.woff2') format('woff2'),
       url('../fonts/Gilroy-Bold.woff') format('woff');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Gilroy';
  src: url('../fonts/Gilroy-Extrabold.woff2') format('woff2'),
       url('../fonts/Gilroy-Extrabold.woff') format('woff');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

:root {
  --color-bg: #f2f3f7;
  --color-card: #f7fbff;
  --color-navy: #002343;
  --color-teal: #0192a4;
  --color-teal-light: #3db6b4;
  --color-white: #ffffff;
  --font-display: 'Gilroy', 'Inter', sans-serif;
  --font-body: 'Inter', sans-serif;
  --container-width: 1180px;
  --radius-xl: 20px;
  --radius-lg: 20px;
  --radius-md: 10px;
  --radius-sm: 6px;
  --transition: 0.25s ease;
  --shadow-card: 1px 2px 6px rgba(0,35,67,0.08);
  --shadow-card-hover: 0 20px 40px rgba(0,35,67,0.12);
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; overflow-x: hidden; }

body {
  margin: 0;
  overflow-x: hidden;
  font-family: var(--font-body);
  color: var(--color-navy);
  background: var(--color-bg);
  line-height: 1.5;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; margin: 0; padding: 0; }
button { font: inherit; }

h1, h2, h3 {
  font-family: var(--font-display);
  font-weight: 700;
  line-height: 1.15;
  margin: 0;
  overflow-wrap: break-word;
}

/* Двоколірний акцент (формат «Акцент» → <span class="accent">) — teal у БУДЬ-ЯКОМУ
   заголовку/підзаголовку. Раніше teal мали лише .kt-h2 .accent і
   .contact-cta-copy h2 .accent, тож в інших блоках акцент не фарбувався. [bugfix] */
.accent { color: var(--color-teal); }

/* Посилання в тексті — підкреслені, hover → акцентний (без підкреслення). [bugfix 3]
   Скоуп p/li всередині #content: контентна проза підкреслюється, а кнопки/стрілки/
   заголовки-картки/меню (не в <p>/<li> або поза #content) лишаються без підкреслення. */
#content p a,
#content li a {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  transition: color var(--transition);
}
#content p a:hover,
#content li a:hover { color: var(--color-teal); text-decoration: none; }

p { margin: 0; }

.container {
  width: 100%;
  max-width: var(--container-width);
  margin: 0 auto;
  padding: 0 24px;
}

/* ============================================================
   Стандартні блоки Gutenberg у контенті сторінки (проза контент-менеджера).
   [bugfix global] Best practice для кастомної теми:
   • ширину прямих ядрових блоків тримаємо в контейнері (не full-bleed);
   • наші секційні блоки (.wp-block-systema-invest-*) керують шириною самі → виняток;
   • повертаємо ядровим блокам відступи/списки/таблиці, бо глобальні ресети
     (p{margin:0}, ul{list-style:none}) їх знімають (і на фронті, і в редакторі).
   Таргетимо .wp-block-*-класи → наші блоки (власні класи) не зачіпаються.
   ⚠️ Свідомо НЕ задаємо color/font-size на .wp-block-paragraph — інакше зламався б
   білий текст у наших темних блоках (spec на navy). Вони успадковуються.
   Ширину (contentSize/wideSize) у РЕДАКТОРІ задає theme.json.
   ============================================================ */

/* 1) Ширина: прямі діти #content — у контейнер; наші секції / alignfull — на всю ширину. */
#content > * {
  max-width: var(--container-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: 24px;
  padding-right: 24px;
}
/* Full-bleed блоки (наші секції / hero / метрика) + breadcrumb + alignfull — на всю ширину.
   ⚠️ НЕ по [class*="wp-block-systema-invest-"] — бо серед наших блоків є й контейнерні
   (callout), які тоді хибно ставали full-bleed. Опт-аут — лише за реальними full-bleed-класами. */
#content > .section,
#content > .hero,
#content > .metrics,
#content > .breadcrumb-bar,
#content > .alignfull {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}
#content > .alignwide { max-width: 1360px; }
/* Callout — контейнерний бокс (не full-bleed): лишаємо його власну ширину/паддінги
   (глобальна обгортка вище їх збивала → блок «розпирало»). */
#content > .callout {
  max-width: min(780px, calc(100% - 40px));
  margin-left: auto;
  margin-right: auto;
  padding-left: 40px;
  padding-right: 40px;
}

/* 2) Типографіка ядрових блоків (лише структура; колір/розмір — успадковані).
   Наші блоки перекривають власними правилами (вища специфічність + пізніший файл). */
.wp-block-paragraph { margin: 0 0 1em; }
.wp-block-heading { margin: 1.4em 0 0.5em; line-height: 1.2; }
.wp-block-heading:first-child { margin-top: 0; }
.wp-block-list { list-style: disc; padding-left: 1.4em; margin: 0 0 1em; }
ol.wp-block-list { list-style: decimal; }
.wp-block-list ul { list-style: circle; }
.wp-block-list li { margin-bottom: 0.4em; line-height: 1.6; }
.wp-block-quote { margin: 0 0 1em; padding-left: 1em; border-left: 3px solid var(--color-teal); font-style: italic; }
.wp-block-quote cite { display: block; margin-top: 0.5em; font-style: normal; font-size: 0.9em; opacity: 0.8; }
.wp-block-table { margin: 0 0 1em; }
.wp-block-table table { border-collapse: collapse; width: 100%; }
.wp-block-table th, .wp-block-table td { border: 1px solid rgba(0,35,67,0.15); padding: 10px 14px; text-align: left; vertical-align: top; }
.wp-block-table th { background: var(--color-card); font-weight: 700; }
.wp-block-image { margin: 0 0 1em; }
.wp-block-image img { height: auto; border-radius: 10px; }
.wp-block-buttons { margin: 0 0 1em; }
.wp-block-separator { margin: 1.5em auto; border: 0; border-top: 1px solid rgba(0,35,67,0.15); }

:focus-visible { outline: 2px solid var(--color-teal); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ---------- Logo ---------- */
.logo { display: flex; align-items: center; flex-shrink: 0; margin-right: auto; }
.logo-mark { height: 72px; width: auto; }   /* ⚠️ theme-only [bugfix 7]: було 58 (з атрибутів img) */
.logo-mark-light { filter: brightness(0) invert(1); }
.logo-footer .logo-mark-light { opacity: 0.95; }
.logo-footer-img { height: 80px; width: auto; display: block; }   /* ⚠️ theme-only [bugfix 7]: було 54 */

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  padding: 0 28px;
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 16px;
  border: none;
  cursor: pointer;
  transition: transform var(--transition), box-shadow var(--transition), background var(--transition);
  white-space: nowrap;
}
.btn:focus, .btn:focus-visible { outline: none; }   /* без teal-рамки при фокусі/тапі на кнопці */
.btn-primary { background: var(--color-teal); color: #fff; padding-left: 40px; padding-right: 40px; }
.btn-primary:hover { background: #017885; transform: translateY(-1px); box-shadow: 0 10px 24px rgba(1,146,164,0.3); }
.btn-outline { background: transparent; color: var(--color-navy); border: 1px solid var(--color-teal); }
.btn-outline:hover { background: rgba(1,146,164,0.08); }
.btn-dark { background: var(--color-navy); color: #fff; }
.btn-dark:hover { background: #01192e; transform: translateY(-1px); }

/* ---------- Header ---------- */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 200;
  background: rgba(247,251,255,0.35);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(255,255,255,0.15);
  transition: background var(--transition), box-shadow var(--transition), border-color var(--transition);
}
.site-header.is-scrolled {
  background: rgba(247,251,255,0.95);
  border-bottom-color: rgba(0,35,67,0.06);
  box-shadow: 0 4px 24px rgba(0,35,67,0.06);
}
.header-inner { display: flex; align-items: center; gap: 32px; height: 100px; }

/* Сторінки без hero: відсунути контент з-під фіксованої шапки, щоб крихти/H1 не «ховались».
   ⚠️ ТЕМА-ONLY (у статиці хедер не fixed поверх). */
.si-no-hero #content { padding-top: 100px; }

.main-nav { display: flex; align-items: center; gap: 26px; font-size: 15px; font-weight: 500; }
.main-nav a { white-space: nowrap; position: relative; padding: 4px 0; }
.main-nav a::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: -4px;
  height: 2px;
  background: var(--color-teal);
  transform: scaleX(0);
  transition: transform var(--transition);
}
.main-nav a:hover::after { transform: scaleX(1); }

/* ---- Випадаюче меню (Продукти: 2-й і 3-й рівні) ---- */
.main-nav { align-self: stretch; }   /* нав на всю висоту хедера → dropdown падає від низу шапки */
.nav-item { position: relative; display: flex; align-items: center; }
.nav-link { display: inline-flex; align-items: center; gap: 6px; }
.nav-caret { transition: transform var(--transition); flex-shrink: 0; }
.nav-item:hover .nav-caret,
.nav-item:focus-within .nav-caret { transform: rotate(180deg); }
.dropdown {
  position: absolute; top: 100%; left: -20px;
  min-width: 270px;
  background: #fff;
  border-radius: 0 0 14px 14px;
  box-shadow: 0 20px 44px rgba(0, 35, 67, 0.14);
  padding: 10px 0;
  opacity: 0; visibility: hidden; transform: translateY(10px);
  transition: opacity var(--transition), transform var(--transition), visibility var(--transition);
  z-index: 210;
}
.nav-item:hover .dropdown,
.nav-item:focus-within .dropdown { opacity: 1; visibility: visible; transform: translateY(0); }
.dropdown-group { padding: 10px 0; }
.dropdown-group + .dropdown-group { border-top: 1px solid rgba(0, 35, 67, 0.1); }
.dropdown a { display: block; white-space: nowrap; }
.dropdown a::after { display: none; }   /* без підкреслення, як у верхній навігації */
.dropdown .dropdown-l2 {
  padding: 8px 28px;
  font-family: var(--font-body); font-weight: 600; font-size: 16px;
  color: var(--color-navy); transition: color var(--transition);
}
.dropdown .dropdown-l3 {
  padding: 6px 28px 6px 44px;
  font-family: var(--font-body); font-weight: 500; font-size: 14px;
  color: var(--color-navy); transition: color var(--transition);
}
.dropdown .dropdown-l2:hover,
.dropdown .dropdown-l3:hover { color: var(--color-teal); }
.nav-mobile-extra { display: none; }   /* лише в мобільному драйвері */

.header-actions { display: flex; align-items: center; gap: 18px; flex-shrink: 0; }
.btn-header { height: 48px; padding: 0 40px; font-size: 15px; }
.btn-header-icon { display: none; flex-shrink: 0; }
/* Коли горизонтальне меню перестає влазити (до мобільного бургера на 960),
   CTA в шапці згортається в компактну кнопку-іконку, розміром як перемикач мов. */
@media (max-width: 1220px) and (min-width: 961px) {
  .btn-header { width: 44px; height: 44px; padding: 0; }
  .btn-header .btn-header-text { display: none; }
  .btn-header-icon { display: block; }
}

/* ⚠️ theme-only [bugfix 1]: компактна плашка як у дизайні (не кнопка 44px);
   дропдаун прилягає знизу, navy-рамка без тіні. */
.lang-switch { position: relative; }
.lang-toggle {
  display: flex; align-items: center; gap: 6px;
  background: var(--color-navy); color: #fff; border: none;
  border-radius: 6px; padding: 8px 10px;
  font-family: var(--font-display); font-weight: 600; font-size: 12px;
  line-height: 1; text-transform: uppercase; cursor: pointer;
}
.lang-switch.is-open .lang-toggle { border-radius: 6px 6px 0 0; }
.lang-options {
  position: absolute; top: 100%; left: 0; right: 0; z-index: 30;
  background: #fff; border: 1px solid var(--color-navy);
  border-radius: 0 0 6px 6px;
  overflow: hidden;
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity var(--transition), transform var(--transition), visibility var(--transition);
}
.lang-switch.is-open .lang-options { opacity: 1; visibility: visible; transform: translateY(0); }
.lang-options button,
.lang-options a {
  display: block; width: 100%; padding: 8px 10px; border: none; background: none;
  font-family: var(--font-display); font-weight: 600; font-size: 12px;
  text-transform: uppercase; cursor: pointer; color: var(--color-navy); text-align: left; text-decoration: none;
}
.lang-options button:hover,
.lang-options a:hover { background: var(--color-bg); color: var(--color-teal); }
.lang-options a::after { display: none; }   /* прибрати можливе підкреслення від .main-nav a */

.burger {
  display: none; flex-direction: column; justify-content: center; gap: 5px;
  width: 32px; height: 32px; background: none; border: none; cursor: pointer; padding: 0;
}
.burger span { display: block; height: 2px; width: 100%; background: var(--color-navy); border-radius: 2px; transition: transform var(--transition), opacity var(--transition); }
.burger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.burger.is-open span:nth-child(2) { opacity: 0; }
.burger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ---------- Hero ----------
   Figma: суцільне фонове фото на всю ширину (h≈800px) + копія оверлеєм зліва,
   рядок бейджів накладено на нижню частину фото. Без негативних маржинів:
   фон — окремий <img> з object-fit:cover, бейджі притиснуті margin-top:auto. */
.hero {
  position: relative;
  isolation: isolate;
  background: var(--color-bg);
}
.hero-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center right;
  z-index: -2;
}
.hero::after {                 /* світлий wash, щоб navy-текст лишався читабельним над фото */
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg,
    rgba(242,243,247,0.94) 0%,
    rgba(242,243,247,0.72) 34%,
    rgba(242,243,247,0.25) 58%,
    rgba(242,243,247,0) 74%);
}
.hero-inner {
  min-height: 800px;
  padding-top: 164px;   /* [hero fix] gap до H1 = 64px по дизайну (хедер fixed 100 + 64) */
  padding-bottom: 32px;
  display: flex;
  flex-direction: column;
}
.hero-copy { max-width: 860px; }   /* [hero fix] ширша область → H1 у 3 рядки як у дизайні (було 700) */
.hero-copy h1 {
  font-size: clamp(32px, 4vw, 60px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  margin-bottom: 20px;
}
.hero-subtitle {
  font-family: var(--font-body);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.2;
  max-width: 680px;
  color: var(--color-navy);
}
.hero-actions { display: flex; gap: 20px; flex-wrap: wrap; margin-top: 44px; }

/* ---------- Trust badges (оверлей над низом hero-фото) ---------- */
.badges {
  margin-top: auto;
  padding-top: 48px;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 20px;
}
.badge {
  background: var(--color-card);
  border-radius: var(--radius-md);
  min-height: 148px;
  padding: 22px 14px;
  text-align: center;
  font-size: 12px;
  font-weight: 500;
  color: var(--color-navy);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  box-shadow: 1px 2px 2px rgba(0,0,0,0.15);
  transition: transform var(--transition), box-shadow var(--transition);
}
.badge:hover { transform: translateY(-3px); box-shadow: var(--shadow-card-hover); }
.badge-icon {
  height: 52px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.badge-icon img { height: 100%; width: auto; display: block; }
.badge span:last-child { line-height: 1.3; }

/* ---------- Section generic ---------- */
.section { padding: 60px 0; }   /* ⚠️ ЗМЕНШЕНО В ТЕМІ (було 88) — уніфікація відступів між блоками */
.section-head { max-width: 640px; margin-bottom: 48px; }
.section-head.center { max-width: 720px; margin-left: auto; margin-right: auto; text-align: center; }
.eyebrow { color: var(--color-teal); font-weight: 500; font-family: var(--font-display); font-size: 16px; margin-bottom: 8px; }
.section h2 {
  font-size: clamp(30px, 4vw, 54px);   /* H2 = 54 (десктоп), уніфіковано */
  text-transform: uppercase;
  margin-bottom: 16px;
}
.section-lead { font-size: 16px; color: rgba(0,35,67,0.75); }

/* ---------- Products ----------
   Figma: 4-колонкова сітка — інтро-колонка (заголовок + лід + слоган + картка «100%»)
   та 3 картки продуктів. Інтро тягнеться на всю висоту ряду, картка «100%»
   притиснута донизу через margin-top:auto (як у макеті). */
.product-layout {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.product-intro { display: flex; flex-direction: column; }
.products .products-title {
  font-size: clamp(30px, 4vw, 54px);   /* H2 = 54 */
  text-transform: uppercase;
  margin-bottom: 32px;
}
.product-intro .section-lead { margin-bottom: 18px; }
.product-tagline {
  color: var(--color-teal);
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 16px;
  line-height: 1.4;
}
.quality-tag {
  align-self: flex-start;
  margin-top: 28px;
  background: var(--color-card);   /* ⚠️ theme-only [bugfix 3]: блакитна плитка як у дизайні (було біле) */
  border-radius: var(--radius-md);
  padding: 22px 30px;
  box-shadow: var(--shadow-card);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.quality-tag-img { height: 48px; width: auto; display: block; }
.quality-tag span { font-size: 13px; color: var(--color-navy); }

.product-card {
  background: var(--color-white);
  border-radius: var(--radius-md);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  padding-bottom: 24px;
  transition: transform var(--transition), box-shadow var(--transition);
}
.product-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-card-hover); }
.product-media {
  aspect-ratio: 280/216;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 22px 30px;
  background: var(--color-card);   /* ⚠️ theme-only [bugfix 2]: область під фото — #F7FBFF як у дизайні */
}
.product-media img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.product-card h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 20px;
  color: var(--color-teal);
  margin: 24px 24px 12px;
  text-transform: uppercase;
}
.product-card p { margin: 0 24px 16px; font-size: 16px; color: rgba(0,35,67,0.85); line-height: 1.5; flex: 1 1 auto; }   /* ⚠️ theme-only [bugfix 15] */
.link-arrow {
  display: inline-flex; align-items: center; gap: 8px; margin: 0 24px;
  color: var(--color-teal); font-family: var(--font-display); font-weight: 600; font-size: 14px;
  transition: gap var(--transition);
}
.link-arrow:hover { gap: 12px; }

/* ---------- Industries ---------- */
.industry-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 78px; }
.industry-card { position: relative; border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 550/346; }
.industry-photo { width: 100%; height: 100%; object-fit: cover; }
.industry-card::after {           /* легкий світлий wash знизу, щоб navy-підпис читався */
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(247,251,255,0.6) 0%, rgba(247,251,255,0) 42%);
}
.industry-overlay {
  position: absolute; left: 28px; bottom: 24px; z-index: 1;
  display: flex; flex-direction: column; gap: 10px;
}
.industry-icon { width: 44px; height: auto; }
.industry-label {
  color: var(--color-navy);
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase; font-size: clamp(20px, 2vw, 24px);
}
.industry-arrow {
  position: absolute; right: 24px; bottom: 24px; z-index: 1;
  width: 44px; height: 44px; border-radius: var(--radius-sm);
  background: var(--color-teal); color: #fff;
  display: flex; align-items: center; justify-content: center;
  transition: background var(--transition), transform var(--transition);
}
.industry-arrow:hover { background: #017885; transform: translateX(2px); }

/* ---------- 404 (тема-only, у статиці відсутня) ---------- */
.error-404 { text-align: center; }
.error-404-code {
  font-family: var(--font-display); font-weight: 800; color: var(--color-teal);
  font-size: clamp(72px, 14vw, 160px); line-height: 1; margin: 0;
}
.error-404-title {
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  color: var(--color-navy); font-size: clamp(24px, 3vw, 36px); margin: 8px 0 14px;
}
.error-404-text { color: var(--color-navy); font-size: 16px; max-width: 520px; margin: 0 auto 28px; }
.error-404-actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* Клікабельні фото + назва в картках products/industries (посилання на btnUrl).
   ⚠️ ДОДАНО В ТЕМІ понад статику — при синку не затерти. */
.product-media a { display: block; line-height: 0; }
.product-card h3 a,
.industry-label a { color: inherit; text-decoration: none; transition: opacity var(--transition); }
.product-card h3 a:hover,
.industry-label a:hover { opacity: 0.72; }
.industry-card::after { pointer-events: none; }   /* декор-wash не перехоплює кліки фото-лінка */
.industry-photo-link { display: block; width: 100%; height: 100%; }

/* ---------- CTA banner (text-only, за Figma — без фото/картки) ---------- */
.cta-banner { padding: 40px 0; }
.cta-inner { max-width: 780px; margin: 0 auto; }
.cta-inner h2 { font-size: clamp(30px, 4vw, 54px); text-transform: uppercase; margin-bottom: 20px; }   /* H2 = 54 */
.cta-inner h2 span { color: var(--color-teal); }
.cta-inner p { font-size: 16px; margin-bottom: 28px; color: rgba(0,35,67,0.8); max-width: 640px; }

/* ---------- Quality ---------- */
.quality-grid { display: grid; grid-template-columns: 1.12fr 0.88fr; gap: 64px; align-items: center; }
.quality-media { position: relative; }
.quality-media img { border-radius: var(--radius-lg); aspect-ratio: 580/384; object-fit: cover; }
.quality-badge {
  position: absolute; top: 20px; left: 20px;
  background: #e6eaf5; border-radius: 4px; padding: 8px 14px;
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-body); font-size: 11px; font-weight: 700;
  color: var(--color-teal); text-transform: uppercase;
}
.quality .eyebrow {   /* над-заголовок блоку Якість — H3-тір: Gilroy 700 · 24px */
  color: var(--color-navy); text-transform: uppercase; font-weight: 700;
  font-size: clamp(20px, 2vw, 24px); letter-spacing: 0.5px; margin-bottom: 12px;
}
.quality-copy h2 { font-size: clamp(30px, 4vw, 54px); text-transform: uppercase; margin-bottom: 24px; }
.quality-list { display: flex; flex-direction: column; gap: 8px; margin-bottom: 32px; }   /* ⚠️ theme-only [bugfix 4]: компактніший інтервал (було 14) */
.quality-list li { position: relative; padding-left: 22px; font-size: 16px; }
.quality-list li::before {
  content: ''; position: absolute; left: 0; top: 7px;
  width: 8px; height: 8px; border-radius: 2px; background: var(--color-teal);
}
/* слоган під кнопкою — bold navy, всередині текстової колонки (однаково на всіх сторінках) */
.quality-note { margin-top: 28px; font-family: var(--font-display); font-weight: 600; font-size: 20px; color: var(--color-navy); max-width: 560px; line-height: 1.4; }   /* ⚠️ theme-only [bugfix 5]: Gilroy SemiBold 20 (було Inter 700 18-22) */

/* ---------- Модифікатори розкладки двоколонкових блоків [bugfix 2.1] ----------
   Дзеркалення колонок (direction:rtl зберігає пропорції треків, лише міняє сторони)
   + вертикальне вирівнювання (верх/центр/низ). Клас на секції ставить блок.
   Стосується: quality / result / capabilities / med-text. */
.is-reverse .quality-grid,
.is-reverse .result-layout,
.is-reverse .capabilities-grid,
.is-reverse .med-grid { direction: rtl; }
.is-reverse .quality-grid > *,
.is-reverse .result-layout > *,
.is-reverse .capabilities-grid > *,
.is-reverse .med-grid > * { direction: ltr; }

.is-valign-top .quality-grid,
.is-valign-top .result-layout,
.is-valign-top .capabilities-grid,
.is-valign-top .med-grid { align-items: start; }
.is-valign-center .quality-grid,
.is-valign-center .result-layout,
.is-valign-center .capabilities-grid,
.is-valign-center .med-grid { align-items: center; }
.is-valign-bottom .quality-grid,
.is-valign-bottom .result-layout,
.is-valign-bottom .capabilities-grid,
.is-valign-bottom .med-grid { align-items: end; }

/* ---------- News ---------- */
.news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.news-card { background: var(--color-white); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-card); transition: transform var(--transition), box-shadow var(--transition); }
.news-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-card-hover); }
.news-media { aspect-ratio: 380/204; overflow: hidden; }
.news-media img { width: 100%; height: 100%; object-fit: cover; }
.news-body { padding: 24px; display: flex; flex-direction: column; align-items: flex-start; }
.news-body time { font-size: 12px; color: var(--color-navy); opacity: 0.6; font-weight: 500; }
.news-body h3 { font-family: var(--font-body); font-weight: 600; text-transform: none; font-size: 16px; margin: 10px 0 14px; }
.news-body p { font-size: 16px; color: rgba(0,35,67,0.8); margin-bottom: 16px; line-height: 1.5; }   /* ⚠️ theme-only [bugfix 15] */
.news-body .link-arrow { align-self: flex-end; margin: 4px 0 0; }

/* ---------- FAQ ---------- */
.faq-list { display: flex; flex-direction: column; gap: 16px; max-width: 800px; margin: 0 auto; }
/* ⚠️ theme-only [bugfix 6]: картка — лише питання; відповідь на фоні сторінки (як у дизайні) */
.faq-item { overflow: hidden; }
.faq-question {
  width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px;
  background: var(--color-card); border: none; border-radius: 8px;
  box-shadow: 1px 1px 2px rgba(0,0,0,0.08);
  text-align: left; padding: 20px 24px;
  font-family: var(--font-body); font-size: 16px; font-weight: 400; color: var(--color-navy); cursor: pointer;
}
.faq-icon {                        /* квадрат із + ; при відкритті вертикальна риска ховається → − */
  flex-shrink: 0; position: relative;
  width: 24px; height: 24px;
  border: 1.5px solid var(--color-teal); border-radius: 6px;
}
.faq-icon::before, .faq-icon::after {
  content: ''; position: absolute; left: 50%; top: 50%;
  background: var(--color-teal); border-radius: 1px;
  transform: translate(-50%, -50%);
  transition: opacity var(--transition), transform var(--transition);
}
.faq-icon::before { width: 11px; height: 2px; }
.faq-icon::after  { width: 2px; height: 11px; }
.faq-item.is-open .faq-icon::after { transform: translate(-50%, -50%) scaleY(0); opacity: 0; }
/* Розкриття: висоту (max-height) на відкритій відповіді задає JS = scrollHeight,
   тож ДОВГИЙ контент не обрізається (раніше був жорсткий max-height:300px).
   Колапс лише коли є JS (html.si-js) — без JS відповіді видимі повністю. [bugfix FAQ] */
.faq-answer { overflow: hidden; }
html.si-js .faq-answer { max-height: 0; transition: max-height var(--transition); }

/* Тіло відповіді = InnerBlocks: абзаци / списки / таблиці / заголовки / цитати,
   з болд/італік/посиланнями. [bugfix FAQ: багатий контент] */
.faq-answer-inner { padding: 18px 24px 20px; }
.faq-answer-inner > :first-child { margin-top: 0; }
.faq-answer-inner > :last-child { margin-bottom: 0; }
.faq-answer-inner p { font-size: 16px; color: var(--color-navy); line-height: 1.5; margin: 0 0 12px; }
.faq-answer-inner h2, .faq-answer-inner h3, .faq-answer-inner h4 {
  color: var(--color-navy); margin: 4px 0 10px; line-height: 1.3;
}
.faq-answer-inner ul, .faq-answer-inner ol { margin: 0 0 12px; padding-left: 22px; }
.faq-answer-inner ul { list-style: disc; }      /* повертаємо маркери (глобально ul{list-style:none}) */
.faq-answer-inner ol { list-style: decimal; }
.faq-answer-inner li { margin-bottom: 4px; line-height: 1.5; color: var(--color-navy); }
.faq-answer-inner strong, .faq-answer-inner b { font-weight: 700; }
.faq-answer-inner em, .faq-answer-inner i { font-style: italic; }
.faq-answer-inner table { border-collapse: collapse; width: 100%; margin: 0 0 12px; font-size: 15px; }
.faq-answer-inner th, .faq-answer-inner td {
  border: 1px solid rgba(0,35,67,0.15); padding: 8px 12px; text-align: left; vertical-align: top; color: var(--color-navy);
}
.faq-answer-inner th { background: var(--color-card); font-weight: 700; }
.faq-answer-inner blockquote {
  margin: 0 0 12px; padding-left: 16px; border-left: 3px solid var(--color-teal); color: var(--color-navy);
}

/* ---------- Footer ---------- */
.site-footer { background: var(--color-navy); color: #fff; padding: 80px 0 0; margin-top: 40px; }
.footer-grid { display: grid; grid-template-columns: 0.8fr 1.3fr; gap: 64px; }
.footer-about .logo { margin-right: 0; margin-bottom: 28px; }
.footer-info { display: flex; gap: 56px; }
.footer-contact-col { display: flex; flex-direction: column; }
.footer-contacts { margin: 0 0 24px; display: flex; flex-direction: column; gap: 10px; font-size: 16px; }
.footer-contacts .footer-email { margin-top: 14px; }   /* [footer] пошту нижче — візуально відділити від телефонів */
.footer-contacts a { opacity: 0.9; transition: opacity var(--transition); }
.footer-contacts a:hover { opacity: 1; }
.footer-social { display: flex; gap: 12px; margin-top: auto; }
.footer-social a {
  width: 42px; height: 42px; border-radius: 50%; background: var(--color-teal);
  display: flex; align-items: center; justify-content: center; transition: background var(--transition), transform var(--transition);
}
.footer-social a:hover { background: #017885; transform: translateY(-2px); }
.footer-nav { font-size: 16px; }
/* ⚠️ ТЕМА: WP-меню футера = <ul class="footer-nav-list"><li><a>; стрілка — CSS ::before
   (щоб і WP-меню, і фолбек мали однаковий вигляд заглушки). */
.footer-nav-list { display: flex; flex-direction: column; gap: 8px; }   /* [footer] компактніше на ПК (було 14; на моб повертається у медіа-запиті) */
.footer-nav a { display: flex; align-items: center; gap: 5px; opacity: 0.9; transition: opacity var(--transition); }
.footer-nav a:hover { opacity: 1; }
.footer-nav a::before {
  content: ""; width: 24px; height: 24px; flex-shrink: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M17.92 11.6202C17.8724 11.4974 17.801 11.3853 17.71 11.2902L12.71 6.29019C12.6168 6.19695 12.5061 6.12299 12.3842 6.07253C12.2624 6.02207 12.1319 5.99609 12 5.99609C11.7337 5.99609 11.4783 6.10188 11.29 6.29019C11.1968 6.38342 11.1228 6.49411 11.0723 6.61594C11.0219 6.73776 10.9959 6.86833 10.9959 7.00019C10.9959 7.26649 11.1017 7.52188 11.29 7.71019L14.59 11.0002H7C6.73478 11.0002 6.48043 11.1055 6.29289 11.2931C6.10536 11.4806 6 11.735 6 12.0002C6 12.2654 6.10536 12.5198 6.29289 12.7073C6.48043 12.8948 6.73478 13.0002 7 13.0002H14.59L11.29 16.2902C11.1963 16.3831 11.1219 16.4937 11.0711 16.6156C11.0203 16.7375 10.9942 16.8682 10.9942 17.0002C10.9942 17.1322 11.0203 17.2629 11.0711 17.3848C11.1219 17.5066 11.1963 17.6172 11.29 17.7102C11.383 17.8039 11.4936 17.8783 11.6154 17.9291C11.7373 17.9798 11.868 18.006 12 18.006C12.132 18.006 12.2627 17.9798 12.3846 17.9291C12.5064 17.8783 12.617 17.8039 12.71 17.7102L17.71 12.7102C17.801 12.6151 17.8724 12.5029 17.92 12.3802C18.02 12.1367 18.02 11.8636 17.92 11.6202Z' fill='%230192A4'/%3E%3C/svg%3E") no-repeat center / contain;
}

.footer-form-wrap h2 { font-size: clamp(22px, 2.4vw, 28px); text-transform: uppercase; margin-bottom: 16px; }
.footer-form-wrap > p { font-size: 16px; margin-bottom: 28px; opacity: 0.85; max-width: 520px; }
.footer-form {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  grid-template-areas:
    "name  company"
    "email message"
    "phone message"
    "btn   btn";
  gap: 14px 16px;
}
.ff-name { grid-area: name; }
.ff-company { grid-area: company; }
.ff-email { grid-area: email; }
.ff-phone { grid-area: phone; }
.ff-message { grid-area: message; }
.footer-form input, .footer-form textarea {
  background: #fff; border: none; border-radius: 6px;
  padding: 0 16px; height: 46px; width: 100%;
  font-family: var(--font-body); font-size: 14px; color: var(--color-navy);
}
.footer-form textarea { height: 100%; min-height: 108px; padding: 14px 16px; resize: vertical; }
.footer-form input::placeholder, .footer-form textarea::placeholder { color: rgba(0,35,67,0.45); }
.footer-form input:focus, .footer-form textarea:focus { outline: 2px solid var(--color-teal); }
.footer-form .btn { grid-area: btn; justify-self: end; align-self: start; margin-top: 6px; }

.footer-bottom-bar { background: #f7fbff; margin-top: 56px; }
.footer-bottom {
  display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap;
  padding: 20px 24px;
  font-size: 12px; color: var(--color-navy);
}
.footer-bottom p { font-weight: 300; }

/* ============================================
   RESPONSIVE
   ============================================ */

@media (max-width: 1100px) {
  .badges { grid-template-columns: repeat(3, 1fr); }
  .product-layout { grid-template-columns: repeat(2, 1fr); }
  .product-intro { grid-column: 1 / -1; }
  .quality-tag { margin-top: 24px; }
  .industry-grid { gap: 40px; }
  .footer-grid { grid-template-columns: 1fr; gap: 48px; }
}

@media (max-width: 960px) {
  /* ФІКС: backdrop-filter на .site-header робив containing block для position:fixed,
     тож драйвер «ловився» в межах шапки (bottom:0 = низ шапки → смужка). Вимикаємо на мобільному. */
  .site-header { backdrop-filter: none; -webkit-backdrop-filter: none; background: rgba(247,251,255,0.94); }

  .main-nav {
    position: fixed; top: 100px; left: 0; right: 0; bottom: 0;
    background: var(--color-bg); flex-direction: column; align-items: stretch;
    align-self: auto;
    padding: 6px 24px 40px; gap: 0; font-size: 17px;
    transform: translateX(100%); transition: transform var(--transition); overflow-y: auto;
  }
  .main-nav.is-open { transform: translateX(0); }
  .burger { display: flex; }
  .btn-header { display: none; }

  /* пункти верхнього рівня — на всю ширину, з роздільниками */
  /* .main-nav .nav-link (0-2-0) > .main-nav a (0-1-1) — інакше глобальне
     .main-nav a{padding:4px 0} з'їдало вертикальний padding «Продукти». */
  .main-nav > a,
  .main-nav .nav-link {
    display: flex; align-items: center; justify-content: space-between;
    padding: 18px 2px; font-weight: 600; color: var(--color-navy);
    border-bottom: 1px solid var(--color-teal);
  }
  /* розгорнутий «Продукти» — без лінії між пунктом і його підменю */
  .nav-item.is-open > .nav-link { border-bottom: 0; }
  .main-nav a::after { display: none; }   /* без hover-підкреслення для всіх пунктів меню */
  .nav-item { display: block; }
  .nav-caret { display: block; margin-left: auto; width: 14px; height: auto; color: var(--color-navy); transform: none; }

  /* мовний перемикач у топ-панелі ховаємо — він є внизу драйвера (УКР/ENG) */
  .lang-switch { display: none; }

  /* dropdown «Продукти» — ЗГОРНУТИЙ за замовчуванням, розкривається кліком (.is-open) */
  .dropdown {
    position: static; opacity: 1; visibility: visible; transform: none;
    box-shadow: none; background: transparent; min-width: 0; border-radius: 0; padding: 0;
    display: none;
  }
  .nav-item.is-open > .dropdown { display: block; border-bottom: 1px solid var(--color-teal); padding: 0 0 15px; }
  /* каретку крутить ЛИШЕ стан .is-open; десктопні hover/focus-within скидаємо,
     інакше після тапу focus-within залишає стрілку залиплою (не змінюється) */
  .nav-item:hover .nav-caret,
  .nav-item:focus-within .nav-caret { transform: none; }
  .nav-item.is-open .nav-caret { transform: rotate(180deg); }
  /* без ліній між пунктами дропдауна — лише одна teal-лінія закриває блок (вище) */
  .dropdown-group { padding: 0; border: 0; }
  /* Ієрархія відступів: L2 просторий (близько до top-level), L3 — тісніша група. */
  .dropdown a { color: var(--color-navy); }
  .dropdown .dropdown-l2 { padding: 15px 2px 15px 16px; font-weight: 600; font-size: 16px; color: var(--color-teal); }
  .dropdown .dropdown-l3 { padding: 9px 2px 9px 34px; font-weight: 500; font-size: 15px; }

  /* низ мобільного меню: мова / CTA / контакти / соцмережі */
  .nav-mobile-extra { display: block; padding-top: 26px; }
  .nav-mobile-lang { display: flex; gap: 10px; margin-bottom: 24px; }
  /* .main-nav .lang-pill (0-2-0) > .main-nav a (0-1-1) — інакше глобальне .main-nav a
     (padding:4px 0; display:block; ::after) ламає пілси (тепер це <a>, не <button>). */
  .main-nav .lang-pill {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 58px; padding: 9px 14px; border-radius: 4px;
    font-family: var(--font-display); font-weight: 600; font-size: 12px; text-transform: uppercase;
    cursor: pointer; border: 1px solid var(--color-navy); background: #fff; color: var(--color-navy); text-decoration: none;
  }
  .main-nav .lang-pill::after { display: none; }
  .main-nav .lang-pill.is-active { background: var(--color-navy); color: #fff; }
  /* .main-nav .nav-mobile-cta (0-2-0) — щоб .main-nav a{padding:4px 0} не з'їдав горизонтальний padding кнопки */
  .main-nav .nav-mobile-cta { display: inline-flex; margin-bottom: 26px; padding: 0 28px; }
  .nav-mobile-contacts { list-style: none; margin: 0 0 22px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
  .nav-mobile-contacts a { color: var(--color-navy); text-decoration: none; font-size: 16px; }
  .nav-mobile-social { list-style: none; margin: 0; padding: 0; display: flex; gap: 12px; }
  .nav-mobile-social a {
    width: 42px; height: 42px; border-radius: 50%; background: var(--color-teal);
    display: inline-flex; align-items: center; justify-content: center;
  }

  /* .hero .hero-inner (0-2-0) — щоб .container{padding:0 20px} (≤640) не скидав padding-top → hero не залазить під шапку */
  .hero .hero-inner { min-height: 0; padding-top: 124px; padding-bottom: 40px; }
  .hero-copy { max-width: 100%; }
  .hero::after {
    background: linear-gradient(180deg, rgba(242,243,247,0.82) 0%, rgba(242,243,247,0.9) 100%);
  }
  .badges { padding-top: 48px; }

  .quality-grid { grid-template-columns: 1fr; gap: 32px; }
  .quality-media { order: -1; }
}

@media (max-width: 640px) {
  .container { padding: 0 20px; }
  .section { padding: 44px 0; }   /* ⚠️ ЗМЕНШЕНО В ТЕМІ (було 64) */
  .header-inner { height: 76px; }
  .si-no-hero #content { padding-top: 76px; }
  .main-nav { top: 76px; }

  .badges { grid-template-columns: repeat(2, 1fr); }
  .product-layout { grid-template-columns: 1fr; }
  .industry-grid { grid-template-columns: 1fr; gap: 24px; }
  .news-grid { grid-template-columns: 1fr; }

  .footer-info { flex-direction: column; gap: 28px; }
  .footer-nav-list { gap: 14px; }   /* [footer] на моб лишаємо просторіше (на ПК — 8) */
  .footer-social { margin-top: 0; }
  .footer-form {
    grid-template-columns: 1fr;
    grid-template-areas: "name" "company" "email" "phone" "message" "btn";
  }
  .footer-form .ff-message { min-height: 120px; }
  .footer-form .btn { justify-self: start; }   /* ⚠️ theme-only [bugfix 22]: не розтягувати кнопку */
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 8px; }

  /* ⚠️ theme-only [bugfix 22]: кнопки НЕ на всю ширину — авто-ширина, зліва (як у дизайні) */
  .hero-actions { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 400px) {
  .badges { grid-template-columns: 1fr 1fr; }
}
