/* Shared v4 component contracts for the four redesign prototypes.
   Loaded after each page stylesheet so header, navigation, buttons,
   footer and the scroll-to-top control behave as one system. */

:root{
  --accent:#B94725;
  --accent-ink:#A33F29;
  --terra:#B94725;
  --green:#254D3E;
  --ink:#20382F;
  --muted:#59665E;
  --quiet:#53645A;
  --line:#D8E1D6;
  --line-strong:#AEBDAF;
  --bg:#F7F8F4;
  --paper:#FFFFFF;
  --card:#FFFFFF;
  --r-btn:12px;
  --r-card:22px;
}

body.home-page,
body.services-page,
body.cases-v49,
body.about-v50{
  font-family:Onest,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:18px;
  line-height:1.65;
  color:var(--ink);
  background:var(--bg);
}

/* header */
body.home-page .site-header,
body.services-page .site-header,
body.cases-v49 .site-header,
body.about-v50 .site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(247,248,244,.95)!important;
  border-bottom:1px solid var(--line)!important;
  box-shadow:none!important;
  backdrop-filter:blur(16px);
}
body.home-page .header-inner,
body.services-page .header-inner,
body.cases-v49 .header-inner,
body.about-v50 .header-inner{
  min-height:70px!important;
  gap:24px!important;
}
body.home-page .wordmark,
body.services-page .wordmark,
body.cases-v49 .wordmark,
body.about-v50 .wordmark{
  display:flex!important;
  align-items:center!important;
  height:44px!important;
  font-size:20px!important;
  font-weight:800!important;
  letter-spacing:-.055em!important;
  color:var(--ink)!important;
}
body.home-page .header-nav,
body.services-page .desktop-nav,
body.cases-v49 .desktop-nav,
body.about-v50 .desktop-nav{
  gap:24px!important;
  font-size:13px!important;
}
body.home-page .header-nav a,
body.services-page .desktop-nav a,
body.cases-v49 .desktop-nav a,
body.about-v50 .desktop-nav a{
  color:var(--muted)!important;
  font-size:13px!important;
}
body.home-page .header-nav a:hover,
body.services-page .desktop-nav a:hover,
body.cases-v49 .desktop-nav a:hover,
body.about-v50 .desktop-nav a:hover{
  color:var(--ink)!important;
}
body.home-page .header-cta,
body.services-page .header-cta,
body.cases-v49 .header-cta,
body.about-v50 .header-cta{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:44px!important;
  padding:0 18px!important;
  border:1px solid var(--line-strong)!important;
  border-radius:12px!important;
  background:transparent!important;
  color:var(--green)!important;
  font-size:13px!important;
  white-space:nowrap;
}
body.home-page .header-cta:hover,
body.services-page .header-cta:hover,
body.cases-v49 .header-cta:hover,
body.about-v50 .header-cta:hover{
  background:var(--green)!important;
  border-color:var(--green)!important;
  color:#fff!important;
}

/* page navigation / in-page jump bar */
body.services-page .page-nav,
body.cases-v49 .page-nav,
body.about-v50 .page-nav{
  position:sticky;
  top:70px;
  z-index:30;
  background:rgba(247,248,244,.96)!important;
  border-bottom:1px solid var(--line)!important;
  box-shadow:0 10px 24px -22px rgba(32,56,47,.45)!important;
  font-size:13px!important;
}
body.services-page .page-nav__inner,
body.cases-v49 .page-nav__inner,
body.about-v50 .page-nav__inner{
  min-height:54px!important;
  gap:28px!important;
}
body.services-page .page-nav a,
body.cases-v49 .page-nav a,
body.about-v50 .page-nav a{
  font-size:13px!important;
  color:var(--muted)!important;
}
body.services-page .page-nav a:hover,
body.cases-v49 .page-nav a:hover,
body.about-v50 .page-nav a:hover{
  color:var(--ink)!important;
}
body.home-page .jump{
  position:sticky;
  top:70px;
  z-index:30;
  background:rgba(247,248,244,.96)!important;
  border-bottom:1px solid var(--line)!important;
}
body.home-page .jump-inner{
  min-height:54px!important;
  gap:28px!important;
}
body.home-page .jump a{
  font-size:13px!important;
  color:var(--muted)!important;
  padding:4px 0!important;
}

/* primary actions */
body.home-page .btn,
body.services-page .button,
body.services-page .btn,
body.cases-v49 .button,
body.cases-v49 .btn,
body.about-v50 .button,
body.about-v50 .btn{
  min-height:48px!important;
  padding:0 20px!important;
  border-radius:12px!important;
  font-size:15px!important;
  font-weight:600!important;
  line-height:1.2!important;
  box-shadow:0 0 0 1px rgba(37,77,62,.16),0 0 26px -8px rgba(37,77,62,.28)!important;
}
body.home-page .btn:hover,
body.services-page .button:hover,
body.services-page .btn:hover,
body.cases-v49 .button:hover,
body.cases-v49 .btn:hover,
body.about-v50 .button:hover,
body.about-v50 .btn:hover{
  box-shadow:0 0 0 1px rgba(37,77,62,.22),0 0 30px -6px rgba(37,77,62,.38)!important;
}
body.home-page .btn--outline{
  box-shadow:none!important;
}
body.home-page .text-link,
body.services-page .text-link,
body.cases-v49 .text-link,
body.about-v50 .text-link{
  display:inline-flex!important;
  align-items:center!important;
  gap:7px!important;
  font-size:14px!important;
  font-weight:600!important;
  line-height:1.4!important;
  color:var(--green)!important;
  border-bottom:1px solid rgba(37,77,62,.35)!important;
  padding-bottom:2px!important;
  min-height:0!important;
}
body.home-page .text-link:hover,
body.services-page .text-link:hover,
body.cases-v49 .text-link:hover,
body.about-v50 .text-link:hover{
  color:var(--accent)!important;
  border-color:var(--accent)!important;
}

/* footer rhythm */
body.home-page .site-footer,
body.services-page .site-footer,
body.cases-v49 .site-footer,
body.about-v50 .site-footer{
  padding:56px 0 28px!important;
}

/* one scroll-to-top control everywhere, including the terracotta glow */
body.home-page .back-to-top,
body.services-page .back-to-top,
body.cases-v49 .back-to-top,
body.about-v50 .back-to-top{
  position:fixed!important;
  z-index:100!important;
  right:max(16px,env(safe-area-inset-right))!important;
  bottom:max(16px,env(safe-area-inset-bottom))!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:48px!important;
  height:48px!important;
  min-width:48px!important;
  min-height:48px!important;
  padding:0!important;
  border:1px solid var(--line-strong)!important;
  border-radius:12px!important;
  background:color-mix(in srgb,var(--green) 94%,transparent)!important;
  color:#fff!important;
  font-size:0!important;
  line-height:1!important;
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:opacity .18s ease,visibility .18s ease,transform .18s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease!important;
  backdrop-filter:blur(8px);
  cursor:pointer;
}
body.home-page .back-to-top[hidden],
body.services-page .back-to-top[hidden],
body.cases-v49 .back-to-top[hidden],
body.about-v50 .back-to-top[hidden]{
  display:none!important;
}
body.home-page .back-to-top.is-visible,
body.services-page .back-to-top.is-visible,
body.cases-v49 .back-to-top.is-visible,
body.about-v50 .back-to-top.is-visible{
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
  box-shadow:0 0 24px rgba(185,71,37,.22)!important;
}
body.home-page .back-to-top:hover,
body.services-page .back-to-top:hover,
body.cases-v49 .back-to-top:hover,
body.about-v50 .back-to-top:hover{
  background:var(--accent)!important;
  border-color:var(--accent)!important;
  box-shadow:0 0 30px rgba(185,71,37,.4)!important;
}
body.home-page .back-to-top span:first-child,
body.services-page .back-to-top span:first-child,
body.cases-v49 .back-to-top span:first-child,
body.about-v50 .back-to-top span:first-child{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  white-space:nowrap!important;
  border:0!important;
}
body.home-page .back-to-top span:last-child,
body.services-page .back-to-top span:last-child,
body.cases-v49 .back-to-top span:last-child,
body.about-v50 .back-to-top span:last-child{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  color:#fff!important;
  font-size:20px!important;
  line-height:1!important;
}

@media(max-width:760px){
  body.home-page .back-to-top,
  body.services-page .back-to-top,
  body.cases-v49 .back-to-top,
  body.about-v50 .back-to-top{
    display:flex!important;
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    min-height:44px!important;
    right:14px!important;
    bottom:14px!important;
  }
}

/* shared section typography */
body.home-page main h2,
body.services-page main h2,
body.cases-v49 main h2,
body.about-v50 main h2{
  font-size:clamp(32px,3.9vw,56px)!important;
  line-height:1.06!important;
  letter-spacing:-.045em!important;
  font-weight:500!important;
}
body.home-page main .label,
body.services-page main .eyebrow,
body.cases-v49 main .eyebrow,
body.about-v50 main .eyebrow,
body.about-v50 main .about-chapter{
  font-size:12px!important;
  font-weight:600!important;
  letter-spacing:.06em!important;
  color:var(--accent-ink)!important;
}

@media(max-width:760px){
  body.home-page .header-inner,
  body.services-page .header-inner,
  body.cases-v49 .header-inner,
  body.about-v50 .header-inner{
    gap:12px!important;
  }
  body.home-page .header-cta,
  body.services-page .header-cta,
  body.cases-v49 .header-cta,
  body.about-v50 .header-cta{
    min-height:40px!important;
    padding:0 12px!important;
    border-radius:10px!important;
    font-size:12px!important;
  }
}

@media(max-width:760px){
  body.cases-v49 .page-nav__inner,
  body.about-v50 .page-nav__inner{
    gap:2px 6px!important;
  }
  body.cases-v49 .page-nav a,
  body.about-v50 .page-nav a{
    font-size:10px!important;
    line-height:1.15!important;
    white-space:normal!important;
    overflow-wrap:anywhere;
  }
  body.services-page .page-nav__inner{
    display:flex!important;
    gap:18px!important;
  }
  body.services-page .page-nav a{
    font-size:11px!important;
    white-space:nowrap!important;
  }
  body.home-page .jump-inner{gap:20px!important}
  body.home-page .jump a{font-size:12px!important}
}

/* cases labels use the same terracotta accent as the rest of the system */
body.cases-v49 main .eyebrow{
  color:var(--accent-ink)!important;
  font-size:12px!important;
  letter-spacing:.06em!important;
  text-transform:none!important;
}
body.cases-v49 .feature--green .eyebrow{
  color:#E4A38E!important;
}
body.services-page.has-picked .back-to-top{display:none!important}
body.home-page main h1{white-space:normal!important;max-width:680px}

/* approved pages use the same light/dark token contract as the rest of the site */
body.home-page,
body.services-page,
body.cases-v49,
body.about-v50{
  color-scheme:light;
  --bg:#F7F8F4;
  --paper:#FFFFFF;
  --card:#FFFFFF;
  --soft:#EDF2E9;
  --surface:#DBE2D8;
  --surface-soft:#F1F5EE;
  --surface-deep:#F0F2E9;
  --warm:#F6EFE9;
  --surface-warm:#F6EFE9;
  --ink:#20382F;
  --text:#244438;
  --muted:#59665E;
  --quiet:#53645A;
  --green:#254D3E;
  --accent:#B94725;
  --accent-ink:#A33F29;
  --terra:#B94725;
  --line:#D8E1D6;
  --line-strong:#AEBDAF;
  background:var(--bg);
  color:var(--ink);
}
html[data-theme-effective="dark"] body.home-page,
html[data-theme-effective="dark"] body.services-page,
html[data-theme-effective="dark"] body.cases-v49,
html[data-theme-effective="dark"] body.about-v50{
  color-scheme:dark;
  --bg:#171713;
  --paper:#1D211C;
  --card:#1D211C;
  --soft:#20261F;
  --surface:#20261F;
  --surface-soft:#20261F;
  --surface-deep:#111410;
  --warm:#241F1B;
  --surface-warm:#241F1B;
  --ink:#E9EEE7;
  --text:#E9EEE7;
  --muted:#A6B1A8;
  --quiet:#8B978D;
  --green:#2F5C49;
  --accent:#D27655;
  --accent-ink:#E3A08A;
  --terra:#D27655;
  --line:#354037;
  --line-strong:#4F5D50;
  background:var(--bg);
  color:var(--ink);
}
html[data-theme-effective="dark"] body.home-page .site-header,
html[data-theme-effective="dark"] body.services-page .site-header,
html[data-theme-effective="dark"] body.cases-v49 .site-header,
html[data-theme-effective="dark"] body.about-v50 .site-header{
  background:rgba(23,23,19,.95)!important;
  border-color:var(--line)!important;
}
html[data-theme-effective="dark"] body.about-v50 .about-hero{
  background:linear-gradient(180deg,#151A16 0%,#171713 92%)!important;
}
html[data-theme-effective="dark"] body.home-page .site-footer,
html[data-theme-effective="dark"] body.services-page .site-footer,
html[data-theme-effective="dark"] body.cases-v49 .site-footer,
html[data-theme-effective="dark"] body.about-v50 .site-footer{
  background:#111410!important;
  color:var(--text)!important;
}
/* opened mobile navigation must be visible in Safari and other mobile browsers */
body.home-page .site-header.is-open .mobile-nav,
body.home-page .mobile-nav:not([hidden]),
body.services-page .site-header.is-open .mobile-nav,
body.services-page .mobile-nav:not([hidden]),
body.cases-v49 .site-header.is-open .mobile-nav,
body.cases-v49 .mobile-nav:not([hidden]),
body.about-v50 .site-header.is-open .mobile-nav,
body.about-v50 .mobile-nav:not([hidden]){
  display:block!important;
}

/* readable mobile menu on every approved page */
body.home-page .mobile-nav,
body.services-page .mobile-nav,
body.cases-v49 .mobile-nav,
body.about-v50 .mobile-nav{
  background:var(--surface-deep)!important;
  color:var(--text)!important;
  border-top:1px solid var(--line)!important;
  border-bottom:1px solid var(--line)!important;
  box-shadow:0 18px 35px -24px rgba(32,56,47,.45)!important;
  padding:12px 20px 24px!important;
  max-height:calc(100dvh - 70px)!important;
  overflow-y:auto!important;
}
body.home-page .mobile-nav a,
body.services-page .mobile-nav a,
body.cases-v49 .mobile-nav a,
body.about-v50 .mobile-nav a{
  display:flex!important;
  align-items:center!important;
  min-height:48px!important;
  padding:10px 0!important;
  color:var(--text)!important;
  border-bottom:1px solid var(--line)!important;
  font-size:18px!important;
  line-height:1.3!important;
}
body.home-page .mobile-nav a:hover,
body.services-page .mobile-nav a:hover,
body.cases-v49 .mobile-nav a:hover,
body.about-v50 .mobile-nav a:hover{
  color:var(--accent-ink)!important;
}

@media(max-width:59.99rem){
  body.home-page .menu-toggle,
  body.services-page .menu-toggle,
  body.cases-v49 .menu-toggle,
  body.about-v50 .menu-toggle{
    display:grid!important;
    width:44px!important;
    height:44px!important;
    margin-left:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    color:var(--text)!important;
    place-content:center!important;
    gap:6px!important;
  }
  body.home-page .menu-toggle::before,
  body.home-page .menu-toggle::after,
  body.services-page .menu-toggle::before,
  body.services-page .menu-toggle::after,
  body.cases-v49 .menu-toggle::before,
  body.cases-v49 .menu-toggle::after,
  body.about-v50 .menu-toggle::before,
  body.about-v50 .menu-toggle::after{display:none!important}
  body.home-page .menu-toggle span:not(.sr-only),
  body.services-page .menu-toggle span:not(.sr-only),
  body.cases-v49 .menu-toggle span:not(.sr-only),
  body.about-v50 .menu-toggle span:not(.sr-only){
    display:block!important;
    width:23px!important;
    height:1px!important;
    background:currentColor!important;
  }
}
@media(min-width:60rem){
  body.home-page .menu-toggle,
  body.services-page .menu-toggle,
  body.cases-v49 .menu-toggle,
  body.about-v50 .menu-toggle{display:none!important}
}

/* dark theme: shared components follow the same hierarchy as blog.html */
html[data-theme-effective="dark"] body.home-page,
html[data-theme-effective="dark"] body.services-page,
html[data-theme-effective="dark"] body.cases-v49,
html[data-theme-effective="dark"] body.about-v50{
  --sage:#20261F;
}
html[data-theme-effective="dark"] body.home-page .header-cta,
html[data-theme-effective="dark"] body.services-page .header-cta,
html[data-theme-effective="dark"] body.cases-v49 .header-cta,
html[data-theme-effective="dark"] body.about-v50 .header-cta{
  color:var(--ink)!important;
  border-color:var(--accent)!important;
  background:transparent!important;
}
html[data-theme-effective="dark"] body.home-page .header-cta:hover,
html[data-theme-effective="dark"] body.services-page .header-cta:hover,
html[data-theme-effective="dark"] body.cases-v49 .header-cta:hover,
html[data-theme-effective="dark"] body.about-v50 .header-cta:hover{
  background:var(--accent)!important;
  border-color:var(--accent)!important;
  color:#171713!important;
}
html[data-theme-effective="dark"] body.home-page .button,
html[data-theme-effective="dark"] body.home-page .btn,
html[data-theme-effective="dark"] body.services-page .button,
html[data-theme-effective="dark"] body.services-page .btn,
html[data-theme-effective="dark"] body.cases-v49 .button,
html[data-theme-effective="dark"] body.cases-v49 .btn,
html[data-theme-effective="dark"] body.about-v50 .button,
html[data-theme-effective="dark"] body.about-v50 .btn{
  background:var(--accent)!important;
  border-color:var(--accent)!important;
  color:#171713!important;
  box-shadow:0 0 26px -8px rgba(210,118,85,.5)!important;
}
html[data-theme-effective="dark"] body.home-page .btn--outline{
  background:transparent!important;
  border-color:var(--line-strong)!important;
  color:var(--ink)!important;
  box-shadow:none!important;
}
html[data-theme-effective="dark"] body.home-page .text-link,
html[data-theme-effective="dark"] body.services-page .text-link,
html[data-theme-effective="dark"] body.cases-v49 .text-link,
html[data-theme-effective="dark"] body.about-v50 .text-link{
  color:var(--ink)!important;
  border-color:var(--line-strong)!important;
}
html[data-theme-effective="dark"] body.services-page .page-nav,
html[data-theme-effective="dark"] body.cases-v49 .page-nav,
html[data-theme-effective="dark"] body.about-v50 .page-nav{
  background:rgba(23,23,19,.96)!important;
  border-color:var(--line)!important;
}
html[data-theme-effective="dark"] body.cases-v49 .case-hero{
  background:linear-gradient(180deg,#151A16 0%,#171713 92%)!important;
}
html[data-theme-effective="dark"] body.cases-v49 .case-card:not(:has(.project-row__proof)) .project-row__metrics{
  background:linear-gradient(145deg,#20261F,#1B211B)!important;
  border-color:var(--line)!important;
}
html[data-theme-effective="dark"] body.cases-v49 .case-card:hover .project-row__proof{
  background:#20261F!important;
  border-color:var(--line-strong)!important;
}
html[data-theme-effective="dark"] body.cases-v49 .timeline-table tbody tr:hover,
html[data-theme-effective="dark"] body.cases-v49 .timeline-table tbody tr.is-peak{
  background:#20261F!important;
}
html[data-theme-effective="dark"] body.cases-v49 .contact-form input,
html[data-theme-effective="dark"] body.cases-v49 .contact-form textarea,
html[data-theme-effective="dark"] body.about-v50 .contact-form input,
html[data-theme-effective="dark"] body.about-v50 .contact-form textarea,
html[data-theme-effective="dark"] body.home-page .contact-form input,
html[data-theme-effective="dark"] body.home-page .contact-form textarea,
html[data-theme-effective="dark"] body.services-page .contact-form input,
html[data-theme-effective="dark"] body.services-page .contact-form textarea{
  background:#111410!important;
  border-color:var(--line-strong)!important;
  color:var(--ink)!important;
}
html[data-theme-effective="dark"] body.home-page .portrait,
html[data-theme-effective="dark"] body.home-page .contact-card,
html[data-theme-effective="dark"] body.home-page .journal-section .editorial-cover{
  background:var(--paper)!important;
  border-color:var(--line)!important;
}
html[data-theme-effective="dark"] body.home-page .portrait figcaption,
html[data-theme-effective="dark"] body.home-page .portrait figcaption strong{
  color:var(--ink)!important;
}
html[data-theme-effective="dark"] body.home-page .facts strong,
html[data-theme-effective="dark"] body.home-page .hero-facts strong,
html[data-theme-effective="dark"] body.about-v50 .about-facts strong,
html[data-theme-effective="dark"] body.about-v50 .scale-ledger__number,
html[data-theme-effective="dark"] body.about-v50 .career-timeline time{
  color:var(--accent-ink)!important;
}

html[data-theme-effective="dark"] body.home-page .hero-stats strong,
html[data-theme-effective="dark"] body.home-page .experience-band strong{color:var(--accent-ink)!important}

html[data-theme-effective="dark"] body.home-page .jump{background:rgba(23,23,19,.96)!important;border-color:var(--line)!important}
@media(max-width:59.99rem){
  body.home-page .menu-toggle::before,body.home-page .menu-toggle::after,
  body.services-page .menu-toggle::before,body.services-page .menu-toggle::after,
  body.cases-v49 .menu-toggle::before,body.cases-v49 .menu-toggle::after,
  body.about-v50 .menu-toggle::before,body.about-v50 .menu-toggle::after{content:none!important;display:none!important}
}

/* ─── Контраст текста: AA 4.5:1 ───
   Этот слой красил .text-link в --green, а .label в --accent-ink через
   !important — на светлом фоне это верно, на тёмных поверхностях давало
   1.0–1.6:1 (PageSpeed: «Цвета фона и переднего плана недостаточно
   контрастны»). Ниже для каждой тёмной поверхности заданы оба цвета пары,
   поэтому результат не зависит от того, какие токены подставит страница.
   Для светлых блоков вторичный текст затемнён: прежние --quiet #75837A и
   --quiet #6F7F75 давали 3.4–4.2:1 на белом и sage. */

/* 1. Кейсы — тёмная секция и карточки внутри неё */
body.home-page .cases{background:#1E342C!important;color:#F7F8F4!important}
body.home-page .cases :is(h2,h3,strong){color:#FFFFFF!important}
body.home-page .cases .section-head p,
body.home-page .case-teaser p{color:#E7EFE8!important}
body.home-page :is(.case-small,.case-main){color:#F7F8F4!important}
body.home-page :is(.cases,.case-small,.case-main) .text-link{
  color:#F0B09B!important;
  border-bottom-color:#8A6C60!important;
}
body.home-page :is(.cases,.case-small,.case-main) :is(.label,.eyebrow),
body.home-page :is(.case-small,.case-main) .case-main__k{color:#E7EFE8!important}

/* 2. Карточка бесплатного аудита — зелёный фон (--green в тёмной теме
   другой, поэтому фон фиксируем только в светлой) */
html:not([data-theme-effective="dark"]) body.home-page .audit-card{background:#254D3E!important}
body.home-page .audit-card{color:#FFFFFF!important}
/* h3 в карточке красился в --card: в тёмной теме это #1D211C на зелёном. */
body.home-page .audit-card :is(h2,h3){color:#FFFFFF!important}
body.home-page .audit-card .label{color:#E7EFE8!important}
body.home-page .audit-card p,
body.home-page .audit-card__meta{color:#D7E3D8!important}

/* 2б. Цена услуги: --green в тёмной теме (#2F5C49) на карточке #1D211C
   даёт 2.1:1. В светлой теме та же пара — 8.9:1, её не трогаем. */
html[data-theme-effective="dark"] body.home-page .service__price{color:#A9D8C0!important}

/* 3. Панель процесса: в светлой теме --sage светлый, в тёмной — тёмный.
   Обе пары зафиксированы явно, иначе один цвет не читается на обоих фонах. */
html:not([data-theme-effective="dark"]) body.home-page .process-panel{background:#EAF0E8!important;color:#20382F!important}
html:not([data-theme-effective="dark"]) body.home-page .process-panel :is(h2,h3){color:#20382F!important}
html:not([data-theme-effective="dark"]) body.home-page .process-panel p{color:#4F6057!important}
html:not([data-theme-effective="dark"]) body.home-page .process-panel .label{color:#A33F29!important}
html:not([data-theme-effective="dark"]) body.home-page .step__n{color:#A33F29!important;border-color:#A33F29!important}
html[data-theme-effective="dark"] body.home-page .process-panel{color:#E9EEE7!important}
html[data-theme-effective="dark"] body.home-page .process-panel :is(h2,h3){color:#E9EEE7!important}
html[data-theme-effective="dark"] body.home-page .process-panel p{color:#C2CDC4!important}
html[data-theme-effective="dark"] body.home-page .process-panel .label{color:#E3A08A!important}
html[data-theme-effective="dark"] body.home-page .step__n{color:#E3A08A!important;border-color:#E3A08A!important}

/* 4. Карточка контакта: в светлой теме белая, в тёмной — --paper. */
html:not([data-theme-effective="dark"]) body.home-page .contact-card{color:#20382F!important}
html:not([data-theme-effective="dark"]) body.home-page .contact-card>p,
html:not([data-theme-effective="dark"]) body.home-page .contact-note,
html:not([data-theme-effective="dark"]) body.home-page .contact-form label{color:#4F6057!important}
html[data-theme-effective="dark"] body.home-page .contact-card{color:#E9EEE7!important}
html[data-theme-effective="dark"] body.home-page .contact-card>p,
html[data-theme-effective="dark"] body.home-page .contact-note,
html[data-theme-effective="dark"] body.home-page .contact-form label{color:#C2CDC4!important}

/* 5. Светлый текст на светлой плашке в тёмной теме: элементы красились
   в #fff, а фон брали из --ink/--surface, который в тёмной теме светлый. */
html[data-theme-effective="dark"] :is(.svc-picked,
  .case-report__modes button[aria-pressed="true"],
  .case-filter button.is-active){
  background:var(--accent,#D27655)!important;
  border-color:var(--accent,#D27655)!important;
  color:#171713!important;
}
html[data-theme-effective="dark"] :is(.svc-picked,
  .case-report__modes button[aria-pressed="true"],
  .case-filter button.is-active) :is(span,b,strong){color:#171713!important}
html[data-theme-effective="dark"] .svc-picked>button:not([data-picked-compare]){color:#171713!important;border-color:rgba(23,23,19,.5)!important}

/* 6. --green как цвет текста на тёмной поверхности: в тёмной теме это #2F5C49,
   на карточке #20261F — 2:1. В светлой теме те же селекторы не трогаем. */
html[data-theme-effective="dark"] body.cases-v49 .timeline-table thead th,
html[data-theme-effective="dark"] body.cases-v49 .timeline-table tbody tr.is-peak th,
html[data-theme-effective="dark"] body.cases-v49 .compare-table thead th{
  color:#C2CDC4!important;
}
html[data-theme-effective="dark"] body.services-page .svc-free-mini a{
  color:#A9D8C0!important;
}
