/*
Theme Name: Альтернатива - электролаборатория
Description: Тема сайта электролаборатории ООО «Альтернатива».
Version: 0.6.195
Text Domain: energo
*/
:root {
  --green: #00963F;
  --green-dark: #00762F;
  --yellow: #FFED00;
  --ink: #1A1A18;
  --gray-700: #6A6A69;
  --gray-300: #AEAEAD;
  --gray-100: #E2E2E2;
  --bg: #FFFFFF;
  --bg-soft: #F7F8F6;
  --rule: rgba(26, 26, 24, 0.10);
  --rule-soft: rgba(0, 150, 63, 0.16);
  --space-section: clamp(56px, 7vw, 88px);
  --space-section-tight: clamp(40px, 5vw, 56px);
  --fs-h1: clamp(1.85rem, 3.2vw + 0.4rem, 2.65rem);
  --fs-h2: clamp(1.35rem, 1.6vw + 0.6rem, 1.75rem);
  --fs-lead: 1.125rem;
  --fs-body: 1.02rem;
  --measure: 62ch;
  --measure-narrow: 48ch;
  --mobile-cta-h: 64px;
  --brand-hatch: url("assets/icons/brand-hatch.svg");
  --site-header-h: 7.25rem; /* sticky header clearance (top bar + logo row) */
  --landing-jump-h: 2.85rem;
}
* { box-sizing: border-box; }
html {
  scroll-behavior: smooth;
  overflow-x: clip;
  scroll-padding-top: calc(var(--site-header-h) + var(--landing-jump-h) + 8px);
}
body {
  margin: 0;
  font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  color: var(--ink);
  background: var(--bg);
  font-size: var(--fs-body);
  line-height: 1.6;
  overflow-x: clip;
}

/* Content-column body prose: justify site-wide (not UI chrome) */
.page-body p,
.page-body li,
.prose-lead,
.pull-quote,
.section-lead,
.landing-intro__lead,
.landing-intro__copy p,
.landing-benefits p,
.landing-benefits li,
.landing-scope li,
.landing-deliverables li,
.landing-process__steps p,
.landing-objects li,
.landing-instruments p,
.periodicity__lead,
.periodicity__cta p,
.faq__answer,
.process-steps__text,
.path__steps p,
.proof__intro .section-lead,
.proof__list span,
.objects-home .section-lead,
.objects-home__grid span,
.priority-services .section-lead,
.priority-card__lead,
.cross-links .section-lead,
.cross-links li,
.consultation__intro p,
.instruments__item p,
.deliverables__list li {
  text-align: justify;
  text-justify: inter-word;
}

/* Keep short hero / trust / offer / controls left (or as designed) */
.hero__lead,
.hero__trust,
.hero__eyebrow,
.hero__services,
.page-hero__lead,
.page-hero__trust,
.page-hero__eyebrow,
.page-hero__badge,
.priority-card__eyebrow,
.landing-offer__eyebrow,
.landing-offer__item,
.landing-offer__item p,
.landing-offer__item span,
.price-list,
.price-list p,
.btn,
label,
.ea-cookie__text,
.site-nav,
.site-footer p {
  text-align: left;
  text-justify: auto;
}

img { max-width: 100%; height: auto; display: block; }
a { color: var(--green-dark); }
.container { max-width: 1180px; margin: 0 auto; padding: 0 20px; }

/* Soft brand atmosphere — hatch + green wash, never a card wall */
.band-soft {
  background-color: var(--bg-soft);
  background-image: var(--brand-hatch);
  background-size: 48px 48px;
  background-repeat: repeat;
}
.band-white { background: #fff; }
.band-rule {
  border-block: 1px solid var(--rule);
}

/* Header — sticky for always-reachable phone / заявка */
.site-header {
  background: var(--green);
  color: #fff;
  position: sticky;
  top: 0;
  z-index: 40;
}
.site-header a { color: #fff; text-decoration: none; }
.site-header__top {
  background: var(--green-dark);
  font-size: 0.875rem;
  padding: 6px 0;
}
.site-header__top-inner {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 20px;
  justify-content: space-between;
  align-items: center;
}
.site-header__address { margin: 0; color: rgba(255,255,255,.85); }
.site-header__address a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-color: rgba(255,255,255,.35);
}
.site-header__address a:hover,
.site-header__address a:focus-visible { color: var(--yellow); text-decoration-color: var(--yellow); }
.site-header__contacts {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
}
.site-header__contacts a { font-weight: 600; }
.site-header__contacts a:hover { color: var(--yellow); }
.site-header__main { padding: 10px 0; }
.site-header__cta { flex: 0 0 auto; }
.site-header__cta .btn {
  padding: 8px 14px;
  font-size: 0.88rem;
  white-space: nowrap;
}
@media (max-width: 900px) {
  .site-header__cta { display: none; }
}
.site-header__main-inner {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 16px;
  align-items: center;
  justify-content: space-between;
}
.site-logo {
  flex: 0 1 auto;
  max-width: min(100%, 520px);
}
.site-logo img {
  width: min(480px, 92vw);
  max-width: 100%;
  height: auto;
}
.site-nav__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
}
.site-nav__list a { font-weight: 600; }
.site-nav__list a:hover { color: var(--yellow); }
.site-nav__item { position: relative; }
.site-nav__sub {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 260px;
  margin: 0;
  padding: 8px 0;
  list-style: none;
  background: #fff;
  color: var(--ink);
  border: 1px solid var(--gray-100);
  border-radius: 4px; /* match .btn soft corners */
  box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
  overflow: hidden;
  z-index: 40;
}
.site-nav__sub a {
  display: block;
  padding: 8px 14px;
  color: var(--ink) !important;
  font-weight: 600;
  white-space: nowrap;
}
.site-nav__sub a:hover,
.site-nav__sub a:focus-visible {
  background: var(--bg-soft);
  color: var(--green-dark) !important;
}
.site-nav__sub a:focus {
  outline: none;
}
.site-nav__sub a:focus-visible {
  box-shadow: inset 0 0 0 2px rgba(0, 150, 63, .45);
}
.site-nav__item--has-children:hover > .site-nav__sub,
.site-nav__item--has-children:focus-within > .site-nav__sub {
  display: block;
}

/* Buttons */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 18px;
  border-radius: 4px;
  border: 2px solid transparent;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  line-height: 1.2;
}
.btn--accent {
  background: var(--yellow);
  color: var(--ink) !important;
  border-color: var(--yellow);
}
.btn--accent:hover { filter: brightness(0.97); }
.btn--primary {
  background: var(--green);
  color: #fff;
  border-color: var(--green);
}
.btn--primary:hover { background: var(--green-dark); }
.btn--ghost {
  background: transparent;
  color: var(--green-dark);
  border-color: var(--gray-300);
}
.btn--ghost-light {
  background: transparent;
  color: #fff !important;
  border-color: rgba(255,255,255,.55);
}

/* Hero — denser above-the-fold stack on large screens; mobile keeps air */
.hero {
  background:
    linear-gradient(135deg, rgba(0,118,47,.92), rgba(0,150,63,.78)),
    repeating-linear-gradient(
      -18deg,
      rgba(255,237,0,.06) 0 2px,
      transparent 2px 14px
    ),
    #005c26;
  color: #fff;
  padding: 28px 0 36px;
}
/* Homepage hero: full-bleed underlay, subject flush right (photo track closed) */
.hero--photo {
  position: relative;
  overflow: hidden;
  background: #005c26;
  padding: 36px 0 44px;
  min-height: clamp(420px, 48vh, 560px);
}
.hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}
.hero__media picture,
.hero__media img {
  display: block;
  width: 100%;
  height: 100%;
}
.hero__media img {
  object-fit: cover;
  object-position: 100% 50%;
  transform: none;
}
.hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(105deg, rgba(0, 92, 38, .92) 0%, rgba(0, 100, 40, .78) 34%, rgba(0, 90, 40, .42) 62%, rgba(0, 80, 35, .28) 100%),
    linear-gradient(180deg, rgba(0, 60, 25, .18) 0%, transparent 40%, rgba(0, 50, 20, .28) 100%);
}
.hero--photo .hero__inner {
  position: relative;
  z-index: 1;
}
@media (max-width: 640px) {
  .hero--photo {
    padding: 36px 0 44px;
    min-height: clamp(380px, 58vh, 520px);
  }
  .hero__media img {
    object-position: 100% 50%;
  }
  .hero__media::after {
    background:
      linear-gradient(180deg, rgba(0, 92, 38, .88) 0%, rgba(0, 100, 40, .7) 45%, rgba(0, 80, 35, .55) 100%),
      linear-gradient(90deg, rgba(0, 92, 38, .55) 0%, transparent 70%);
  }
}

.hero__eyebrow {
  margin: 0 0 8px;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: clamp(0.78rem, 1.2vw, 0.88rem);
  color: rgba(255, 237, 0, .92);
  font-weight: 600;
}
.hero__title {
  margin: 0 0 12px;
  font-size: var(--fs-h1);
  line-height: 1.1;
  max-width: 16ch;
  font-weight: 800;
  letter-spacing: -.02em;
}
.hero__lead {
  margin: 0 0 14px;
  max-width: 42ch;
  color: rgba(255,255,255,.92);
  font-size: var(--fs-lead);
}
/* Compact 2-col checklist — scannable, not a comma dump or card grid */
.hero__services {
  list-style: none;
  margin: 0 0 10px;
  padding: 0;
  max-width: 720px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px 24px;
}
.hero__services li {
  position: relative;
  padding-left: 14px;
  font-size: 0.9rem;
  line-height: 1.3;
  font-weight: 600;
}
.hero__services li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .55em;
  width: 6px;
  height: 6px;
  border-radius: 1px;
  background: var(--yellow);
  opacity: .9;
}
.hero__services a {
  color: #fff !important;
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.hero__services a:hover,
.hero__services a:focus-visible {
  border-bottom-color: rgba(255, 237, 0, .65);
  color: var(--yellow) !important;
}
.hero__services a:focus { outline: none; }
.hero__note {
  margin: 0 0 14px;
  max-width: 48ch;
  color: rgba(255,255,255,.78);
  font-size: 0.92rem;
}
.hero__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.hero__trust,
.page-hero__trust {
  margin: 12px 0 0;
  max-width: 48ch;
  font-size: 0.88rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: rgba(255, 255, 255, 0.82);
}
.hero__trust span,
.page-hero__trust span {
  opacity: 0.55;
  font-weight: 500;
  padding: 0 6px;
}
@media (max-width: 640px) {
  .site-header__main { padding: 14px 0; }
  .hero { padding: 40px 0 48px; }
  .hero__eyebrow { margin: 0 0 10px; }
  .hero__title { margin: 0 0 12px; }
  .hero__lead { margin: 0 0 14px; }
  .hero__note { margin: 0 0 18px; }
  .hero__services {
    grid-template-columns: 1fr;
    gap: 8px;
    max-width: 100%;
    margin: 0 0 12px;
  }
}

/* Audience / proof / path (home) — open bands, no card fence */
.objects-home,
.proof,
.path { padding: var(--space-section) 0; }
.objects-home { background: #fff; }
.proof {
  background-color: var(--bg-soft);
  background-image: var(--brand-hatch);
  background-size: 48px 48px;
  border-block: 1px solid var(--rule);
}
.path { background: #fff; }
.section-lead {
  margin: 0 0 28px;
  color: var(--gray-700);
  max-width: var(--measure-narrow);
  font-size: var(--fs-lead);
  line-height: 1.55;
}
.objects-home h2,
.proof h2,
.path h2,
.services h2,
.priority-services h2,
.faq h2,
.landing-lab h2,
.landing-benefits h2,
.landing-scope h2,
.landing-deliverables h2,
.landing-process h2,
.landing-objects h2,
.landing-instruments h2,
.periodicity__header h2,
.cross-links h2,
.consultation h2,
.section-heading {
  margin: 0 0 12px;
  font-size: var(--fs-h2);
  letter-spacing: -0.02em;
  line-height: 1.2;
}
/* Short yellow highlight under section titles — brand mark, not a box */
.section-heading--mark::after,
.landing-benefits h2::after,
.landing-scope h2::after,
.landing-deliverables h2::after,
.landing-process h2::after,
.landing-objects h2::after,
.landing-instruments h2::after,
.faq h2::after,
.periodicity__header h2::after,
.cross-links h2::after,
.page-subheading::after {
  content: "";
  display: block;
  width: 2.75rem;
  height: 3px;
  margin-top: 10px;
  background: linear-gradient(90deg, var(--yellow), rgba(255, 237, 0, 0.15));
  border-radius: 1px;
}
/* Sparse lightning accents — section markers only */
.section-heading--bolt {
  display: flex;
  align-items: center;
  gap: 10px;
}
.section-heading--bolt::before {
  content: "";
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  background-color: var(--green);
  -webkit-mask: url("assets/icons/bolt.svg") center / contain no-repeat;
  mask: url("assets/icons/bolt.svg") center / contain no-repeat;
  opacity: .85;
}
.section-heading--bolt::after { display: none; }
.objects-home__grid {
  list-style: none;
  margin: 0 0 20px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 28px 40px;
  border: 0;
}
.objects-home__grid li {
  background: transparent;
  border: 0;
  padding: 0;
  display: grid;
  gap: 8px;
  align-content: start;
}
.objects-home__grid strong {
  color: var(--ink);
  font-size: 1.08rem;
  letter-spacing: -0.015em;
  padding-bottom: 4px;
  border-bottom: 0;
  box-shadow: inset 0 -2px 0 rgba(0, 150, 63, 0.18);
  justify-self: start;
}
.objects-home__grid span { color: var(--gray-700); font-size: 0.95rem; }

/* Lab block: intro + facts use empty right half — no card fence */
.proof__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 32px 48px;
  align-items: start;
}
.proof__intro .section-lead {
  max-width: 48ch;
  margin-bottom: 20px;
}
.proof__cta { margin: 0; }
.proof__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px 0;
  border: 0;
}
.proof__list li {
  background: transparent;
  border: 0;
  padding: 0 0 14px;
  display: grid;
  gap: 4px;
  align-content: start;
  box-shadow: inset 0 -1px 0 rgba(0, 150, 63, 0.12);
}
.proof__list li:last-child {
  padding-bottom: 0;
  box-shadow: none;
}
.proof__list strong {
  color: var(--ink);
  font-weight: 700;
  font-size: 1.02rem;
  letter-spacing: -0.01em;
}
.proof__list span {
  color: var(--gray-700);
  font-size: 0.95rem;
  line-height: 1.45;
}
@media (max-width: 800px) {
  .proof__layout {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .proof__intro .section-lead { max-width: none; }
}
.path__steps {
  list-style: none;
  margin: 0 0 24px;
  padding: 0;
  display: grid;
  gap: 22px;
  max-width: var(--measure);
  border: 0;
  position: relative;
}
.path__steps::before {
  content: "";
  position: absolute;
  left: 0.55rem;
  top: 0.4rem;
  bottom: 0.4rem;
  width: 2px;
  background: linear-gradient(180deg, var(--green), rgba(0, 150, 63, 0.12));
  border-radius: 1px;
}
.path__steps li {
  display: flex;
  gap: 18px;
  align-items: flex-start;
  padding: 0;
  border: 0;
  background: transparent;
  position: relative;
}
.path__steps p { margin: 4px 0 0; color: var(--gray-700); }
.path__num {
  flex: 0 0 auto;
  width: 1.65rem;
  height: 1.65rem;
  border-radius: 50%;
  background: #fff;
  color: var(--green-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 0.95rem;
  line-height: 1;
  padding: 0;
  outline: 2px solid var(--yellow);
  outline-offset: 0;
  position: relative;
  z-index: 1;
  font-variant-numeric: tabular-nums;
}
.path__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.text-link {
  font-weight: 700;
  color: var(--green-dark);
  text-decoration: none;
  border-bottom: 1px solid rgba(0, 118, 47, 0.35);
}
.text-link:hover { border-bottom-color: var(--green-dark); }

/* Priority services — open interactive list, not card stack */
.priority-services {
  padding: var(--space-section) 0;
  background-color: var(--bg-soft);
  background-image: var(--brand-hatch);
  background-size: 48px 48px;
  border-block: 1px solid var(--rule);
}
.priority-services__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 8px 36px;
  border-top: 0;
}
.priority-services__grid--six {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
.doc-preview-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px 40px;
  margin: 28px 0 8px;
  align-items: start;
}
.doc-preview {
  margin: 0;
  max-width: none;
  width: 100%;
}
.doc-preview img {
  width: 100%;
  border: 0;
  outline: 1px solid var(--rule);
  background: var(--bg-soft);
}
.doc-preview figcaption {
  margin-top: 10px;
  font-size: 0.9rem;
  color: var(--gray-700);
}
.process-steps {
  list-style: none;
  list-style-type: none;
  margin: 36px 0 16px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px 56px;
  border-top: 0;
  counter-reset: process-step;
}
.process-steps__item {
  display: grid;
  grid-template-columns: 2.5rem 1fr;
  gap: 10px 16px;
  align-items: start;
  margin: 0;
  padding: 0 0 0 0;
  background: transparent;
  border: 0;
  position: relative;
}
.process-steps__item:nth-child(2n) {
  padding-right: 0;
  padding-left: 0;
}
.process-steps__item::marker,
.process-steps__item::before {
  content: none;
  display: none;
}
.process-steps__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  border-radius: 50%;
  background: transparent;
  color: var(--green-dark);
  font-weight: 800;
  font-size: 1.05rem;
  line-height: 1;
  flex-shrink: 0;
  padding: 0;
  outline: 2px solid var(--yellow);
  font-variant-numeric: tabular-nums;
}
.process-steps__body {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding-top: 4px;
}
.process-steps__title {
  display: block;
  font-size: 1.12rem;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.3;
  letter-spacing: -0.015em;
}
.process-steps__text {
  margin: 0;
  color: var(--gray-700);
  font-size: 0.98rem;
  max-width: 42ch;
}

/* Как работаем only. Russian lines in a half-column or a 48–62ch
   measure cannot justify without hyphenation (Chrome does not hyphenate
   ru), so those blocks stay left. Wider body paragraphs keep justify. */
.page-kak-rabotaem .prose-lead,
.page-kak-rabotaem .pull-quote,
.page-kak-rabotaem .process-steps__text {
  text-align: left;
  text-justify: auto;
  hyphens: manual;
}
.page-kak-rabotaem .prose-lead {
  max-width: var(--measure) !important;
}

/* Service landings: narrow leads / intro column / 4-up offer cards open
   large word gaps under justify (no RU hyphenation). Full-width even
   blocks keep the site-wide justify rule above. */
.landing-offer .section-lead,
.landing-deliverables .section-lead,
.landing-scope .section-lead,
.landing-objects .section-lead,
.landing-benefits .section-lead,
.landing-process .section-lead,
.landing-instruments .section-lead,
.landing-offer__item,
.landing-offer__item span,
.landing-offer__item strong,
.landing-deliverables li,
.deliverables__list li,
/* Narrow benefit / process cards: justify opens word-gap rivers */
.landing-benefits__grid li,
.landing-benefits__grid strong,
.landing-benefits__grid span,
.landing-benefits p,
.landing-process__steps li,
.landing-process__steps p,
.landing-process__steps strong {
  text-align: left;
  text-justify: auto;
  hyphens: manual;
}
/* Beat site-wide `.landing-intro__copy p` justify (0,2,1). Intro column sits
   beside the photo (~50ch) — justify opens word-gap rivers on RU copy. */
.landing-intro__copy > p,
.landing-intro__copy > p.landing-intro__lead,
.landing-intro__copy > p.pull-quote {
  text-align: left;
  text-justify: auto;
  hyphens: manual;
}
.contacts-block__hours-note {
  color: var(--gray-700);
  margin-top: -0.35rem;
}
.contacts-map {
  margin: 8px 0 28px;
  width: 100%;
}
.contacts-map__frame {
  display: block;
  width: 100%;
  max-width: 100%;
  min-height: 480px;
  height: 560px;
  border: 1px solid var(--gray-100);
  background: var(--bg-soft);
}
.contacts-map__link {
  margin-top: 12px;
  font-size: 0.95rem;
}
.priority-card {
  display: grid;
  gap: 8px;
  background: transparent;
  border: 0;
  padding: 4px 8px 12px 0;
  text-decoration: none;
  color: inherit;
  min-height: 100%;
  transition: color .15s ease;
}
.priority-card:hover {
  background: transparent;
}
.priority-card:focus { outline: none; }
.priority-card:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 3px;
}
.priority-card__eyebrow {
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--green-dark);
}
.priority-card__title {
  font-size: 1.2rem;
  font-weight: 800;
  line-height: 1.25;
  color: var(--ink);
  letter-spacing: -0.015em;
}
.priority-card:hover .priority-card__title,
.priority-card:focus-visible .priority-card__title {
  color: var(--green-dark);
}
.priority-card__lead { color: var(--gray-700); }

/* Services */
.services { padding: var(--space-section) 0; background: #fff; }
.services__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 8px 32px;
  border-top: 0;
}
.service-card {
  position: relative;
  display: grid;
  gap: 8px;
  background: transparent;
  border: 0;
  padding: 4px 4px 14px 0;
  text-decoration: none;
  color: inherit;
  min-height: 100%;
  transition: color .15s ease;
}
.service-card--priority { background: transparent; }
.service-card:hover {
  outline: none;
  box-shadow: none;
  background: transparent;
}
.service-card:focus { outline: none; }
.service-card:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 3px;
}
.service-card__badge {
  justify-self: start;
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .05em;
  background: transparent;
  color: var(--green-dark);
  padding: 0;
  border-bottom: 2px solid var(--yellow);
}
.service-card__badge--muted {
  background: transparent;
  color: var(--gray-700);
  border-bottom-color: var(--gray-300);
}
.service-card__title { font-weight: 800; color: var(--ink); }
.service-card:hover .service-card__title,
.service-card:focus-visible .service-card__title {
  color: var(--green-dark);
}
.service-card__short { color: var(--gray-700); font-size: 0.92rem; }

/* Inner pages */
.page-hero {
  background:
    linear-gradient(135deg, rgba(0,118,47,.92), rgba(0,150,63,.78)),
    #005c26;
  color: #fff;
  padding: 36px 0 44px;
}
.page-hero--common { padding-bottom: 36px; }
.page-hero__inner { display: block; }
.page-hero--with-photo {
  padding: 32px 0 40px;
}
.page-hero--with-photo .page-hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: 28px 36px;
  align-items: center;
}
/* Service hero: full-bleed photo underlay (same pattern as homepage) */
.page-hero--photo-underlay {
  position: relative;
  overflow: hidden;
  background: #005c26;
  padding: 36px 0 44px;
  min-height: clamp(380px, 44vh, 540px);
}
.page-hero--photo-underlay .page-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}
.page-hero--photo-underlay .page-hero__media picture,
.page-hero--photo-underlay .page-hero__media img {
  display: block;
  width: 100%;
  height: 100%;
}
.page-hero--photo-underlay .page-hero__media img {
  object-fit: cover;
  object-position: 78% 55%;
}
.page-hero--photo-underlay .page-hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(105deg, rgba(0, 92, 38, .94) 0%, rgba(0, 100, 40, .82) 38%, rgba(0, 90, 40, .48) 68%, rgba(0, 80, 35, .32) 100%),
    linear-gradient(180deg, rgba(0, 60, 25, .2) 0%, transparent 42%, rgba(0, 50, 20, .3) 100%);
}
.page-hero--photo-underlay .page-hero__inner {
  position: relative;
  z-index: 1;
  display: block;
}

/* Petlya hero: keep Metrel screen readings in frame (bottom-right of work still) */
.page-hero--underlay-meter .page-hero__media img {
  object-position: 88% 92%;
}
@media (max-width: 640px) {
  .page-hero--underlay-meter .page-hero__media img {
    object-position: 80% 85%;
  }
}

/* Grounding hero: RIGHT panel only — solid brand green under text; photo in right slot */
.page-hero.page-hero--photo-underlay.page-hero--underlay-ground {
  background: #005c26;
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-ground .page-hero__media {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 50% !important;
  width: 50% !important;
  inset: auto 0 0 50% !important;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-ground .page-hero__media picture,
.page-hero.page-hero--photo-underlay.page-hero--underlay-ground .page-hero__media img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-ground .page-hero__media img {
  object-fit: cover;
  object-position: 55% 8%;
  transform: none;
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-ground .page-hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0, 92, 38, .65) 0%, rgba(0, 92, 38, .15) 18%, transparent 36%);
}
@media (max-width: 640px) {
  .page-hero.page-hero--photo-underlay.page-hero--underlay-ground .page-hero__media {
    left: 0 !important;
    width: 100% !important;
    inset: 0 !important;
  }
  .page-hero.page-hero--photo-underlay.page-hero--underlay-ground .page-hero__media img {
    object-position: 55% 10%;
  }
  .page-hero.page-hero--photo-underlay.page-hero--underlay-ground .page-hero__media::after {
    background:
      linear-gradient(180deg, rgba(0, 92, 38, .82) 0%, rgba(0, 100, 40, .38) 40%, rgba(0, 80, 35, .22) 100%);
  }
}

.page-hero--photo-underlay .page-hero__copy {
  max-width: min(40rem, 100%);
}
.page-hero--photo-underlay .page-hero__lead {
  max-width: 52ch;
}
@media (max-width: 640px) {
  .page-hero--photo-underlay {
    min-height: clamp(360px, 56vh, 500px);
  }
  .page-hero--photo-underlay .page-hero__media img {
    object-position: 78% 35%;
  }
  .page-hero--photo-underlay .page-hero__media::after {
    background:
      linear-gradient(180deg, rgba(0, 92, 38, .9) 0%, rgba(0, 100, 40, .72) 48%, rgba(0, 80, 35, .58) 100%),
      linear-gradient(90deg, rgba(0, 92, 38, .55) 0%, transparent 75%);
  }
}
/* Progruzka hero: right panel only, same slot as grounding. Bitmap is the right half. */
.page-hero.page-hero--photo-underlay.page-hero--underlay-uptr {
  background: #005c26;
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-uptr .page-hero__media {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 50% !important;
  width: 50% !important;
  height: auto !important;
  inset: 0 0 0 50% !important;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-uptr .page-hero__media picture,
.page-hero.page-hero--photo-underlay.page-hero--underlay-uptr .page-hero__media img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-uptr .page-hero__media img {
  object-fit: cover;
  object-position: 50% 50%;
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-uptr .page-hero__media::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -100%;
  width: 200%;
  background:
    linear-gradient(105deg, rgba(0, 92, 38, .94) 0%, rgba(0, 100, 40, .82) 38%, rgba(0, 90, 40, .48) 68%, rgba(0, 80, 35, .32) 100%),
    linear-gradient(180deg, rgba(0, 60, 25, .2) 0%, transparent 42%, rgba(0, 50, 20, .3) 100%);
}
@media (max-width: 640px) {
  .page-hero.page-hero--photo-underlay.page-hero--underlay-uptr .page-hero__media {
    left: 0 !important;
    width: 100% !important;
    inset: 0 !important;
  }
  .page-hero.page-hero--photo-underlay.page-hero--underlay-uptr .page-hero__media img {
    object-position: 50% 50%;
  }
  .page-hero.page-hero--photo-underlay.page-hero--underlay-uptr .page-hero__media::after {
    left: 0;
    width: auto;
    inset: 0;
    background:
      linear-gradient(180deg, rgba(0, 92, 38, .9) 0%, rgba(0, 100, 40, .72) 48%, rgba(0, 80, 35, .58) 100%),
      linear-gradient(90deg, rgba(0, 92, 38, .55) 0%, transparent 75%);
  }
}

/* Как работаем: norm sequence, short steps with a down-arrow between them.
   Left-aligned on purpose — these are short steps, not body prose. */
.norm-flow {
  list-style: none;
  margin: 14px 0 8px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  max-width: none;
}
.page-body .norm-flow,
.page-body .norm-flow li,
.page-body .norm-flow p {
  text-align: left;
  text-justify: auto;
}
.page-body .norm-flow .norm-flow__text {
  text-align: justify;
  text-justify: inter-word;
  hyphens: manual;
}
.page-kak-rabotaem .page-body .norm-flow .norm-flow__step:first-child .norm-flow__text {
  text-align: left;
}
.norm-flow__step {
  position: relative;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 12px 14px;
  align-items: start;
  margin: 0 0 28px;
  padding: 14px 16px 16px;
  background: #f3f7f4;
  border: 1px solid rgba(0, 92, 38, 0.14);
  border-radius: 12px;
}
.norm-flow__step:last-child { margin-bottom: 0; }
.norm-flow__step:not(:last-child)::after {
  content: "↓";
  position: absolute;
  left: 16px;
  width: 40px;
  bottom: -22px;
  text-align: center;
  color: #00963f;
  font-weight: 800;
  font-size: 1.15rem;
  line-height: 1;
}
.norm-flow__index {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 999px;
  background: #005c26;
  color: #ffed00;
  font-weight: 800;
  font-size: 1rem;
  line-height: 1;
}
.norm-flow__title {
  margin: 2px 0 4px;
  font-weight: 800;
  font-size: 1.02rem;
  line-height: 1.3;
  color: #005c26;
}
.norm-flow__text {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.45;
}
.norm-flow__links {
  margin: 8px 0 0;
  font-size: 0.92rem;
  line-height: 1.5;
}
.norm-flow__links a {
  color: #005c26;
  font-weight: 700;
  text-underline-offset: 2px;
}
.norm-flow__sep {
  margin: 0 6px;
  color: rgba(0, 92, 38, 0.45);
}

/* Quieter norms under the work-sequence arrows. Left on purpose: short lines. */
.norm-quiet {
  margin: 22px 0 4px;
  padding-top: 14px;
  border-top: 1px solid rgba(0, 92, 38, 0.14);
  max-width: 720px;
}
.page-body .norm-quiet,
.page-body .norm-quiet li,
.page-body .norm-quiet p {
  text-align: left;
  text-justify: auto;
}
.norm-quiet__label {
  margin: 0 0 4px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #5d6b63;
}
.norm-quiet__text {
  margin: 0 0 8px;
  font-size: 0.92rem;
  line-height: 1.45;
  color: #3e4a43;
}
.norm-quiet__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.norm-quiet__item {
  margin: 0;
  padding: 8px 0;
  border-bottom: 1px solid rgba(0, 92, 38, 0.08);
}
.norm-quiet__item:last-child { border-bottom: 0; }
.norm-quiet__title {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1.35;
  color: #243028;
}
.norm-quiet__note {
  margin: 2px 0 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: #3e4a43;
}
.norm-quiet__links {
  margin: 4px 0 0;
  font-size: 0.85rem;
  line-height: 1.45;
}
.norm-quiet__links a {
  color: #005c26;
  font-weight: 650;
  text-underline-offset: 2px;
}
.norm-quiet__sep {
  margin: 0 6px;
  color: rgba(0, 92, 38, 0.4);
}
.page-kak-rabotaem .check-list--wide a {
  color: #005c26;
  font-weight: 700;
  text-underline-offset: 2px;
}

.page-hero__copy { min-width: 0; }
.page-hero__photo {
  margin: 0;
  max-width: 440px;
  justify-self: end;
}
.page-hero__photo picture,
.page-hero__photo img {
  display: block;
  width: 100%;
  height: auto;
}
.page-hero__photo img {
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center 40%;
  /* thin brand edge — not a card */
  outline: 1px solid rgba(255, 237, 0, 0.45);
  outline-offset: 0;
}
.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 16px;
  font-size: 0.875rem;
  color: rgba(255,255,255,.8);
}
.breadcrumbs a { color: #fff; text-decoration: none; }
.breadcrumbs a:hover { color: var(--yellow); }
.page-hero__eyebrow {
  margin: 0 0 8px;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: 0.75rem;
  font-weight: 800;
  color: var(--yellow);
}
.page-hero__eyebrow--muted { color: rgba(255,255,255,.75); }
.page-hero__title {
  margin: 0 0 12px;
  font-size: clamp(1.65rem, 2.4vw + 0.85rem, 2.55rem);
  line-height: 1.18;
  max-width: min(34rem, 100%);
  letter-spacing: -0.02em;
  text-wrap: balance;
}
.page-hero__lead {
  margin: 0 0 20px;
  max-width: 48ch;
  color: rgba(255,255,255,.92);
  font-size: var(--fs-lead);
}
.page-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.page-hero__badge {
  display: inline-block;
  margin: 0;
  padding: 6px 10px;
  background: rgba(255,255,255,.12);
  font-weight: 700;
  font-size: 0.85rem;
}
.page-body { padding: var(--space-section) 0; }
.page-body__grid {
  display: grid;
  grid-template-columns: 1.5fr 0.9fr;
  gap: 36px;
  align-items: start;
}
.page-body__narrow { max-width: var(--measure); }
.page-body__wide { max-width: 1100px; }
.page-body__wide > p,
.page-body__wide > .prose-lead,
.page-body__wide > .pull-quote {
  max-width: var(--measure);
}
.page-body__main p { margin: 0 0 16px; max-width: var(--measure); }
.page-body__wide > p { margin: 0 0 16px; }
.prose-lead {
  margin: 0 0 22px !important;
  font-size: var(--fs-lead);
  line-height: 1.55;
  color: var(--ink);
  font-weight: 500;
  max-width: var(--measure-narrow) !important;
}
.pull-quote {
  margin: 8px 0 28px !important;
  padding: 4px 0 4px 18px;
  border-left: 3px solid var(--yellow);
  color: var(--ink);
  font-size: 1.12rem;
  font-weight: 650;
  line-height: 1.45;
  letter-spacing: -0.015em;
  max-width: 46ch !important;
}
.page-body__note {
  margin-top: 22px !important;
  padding: 14px 0 0;
  background: transparent;
  border: 0;
  border-top: 1px solid var(--rule);
  color: var(--gray-700);
  font-size: 0.92rem;
}
.aside-card {
  background: transparent;
  border: 0;
  border-top: 3px solid var(--green);
  padding: 18px 0 0;
  display: grid;
  gap: 12px;
  margin-bottom: 12px;
}
.aside-card--soft { background: transparent; }
.aside-card__label {
  margin: 0;
  font-size: 0.75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--green-dark);
}
.aside-card p { margin: 0; color: var(--gray-700); }
.aside-card__links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.aside-card__links a {
  font-weight: 700;
  color: var(--green-dark);
  text-decoration: none;
}
.aside-card__links a:hover { text-decoration: underline; }
.faq {
  padding: var(--space-section) 0;
  background-color: var(--bg-soft);
  background-image: var(--brand-hatch);
  background-size: 48px 48px;
  border-block: 1px solid var(--rule);
}
.faq__list {
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0;
  border: 0;
  max-width: 72ch;
}
.faq__item {
  background: transparent;
  border: 0;
  border-left: 2px solid rgba(0, 150, 63, 0.28);
  border-bottom: 1px solid var(--rule);
  padding: 0;
}
.faq__item:last-child { border-bottom: 0; }
.faq__question {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  list-style: none;
  cursor: pointer;
  font-weight: 800;
  letter-spacing: -0.015em;
  font-size: 1.05rem;
  color: var(--ink);
  padding: 18px 4px 18px 16px;
  margin: 0;
  user-select: none;
}
.faq__question::-webkit-details-marker { display: none; }
.faq__question::marker { content: ""; }
.faq__question-text {
  flex: 1;
  min-width: 0;
}
.faq__chevron {
  flex: 0 0 auto;
  width: 0.7em;
  height: 0.7em;
  margin-top: 0.35em;
  border-right: 2px solid var(--green-dark);
  border-bottom: 2px solid var(--green-dark);
  transform: rotate(45deg);
  transition: transform 0.18s ease;
}
.faq__item[open] > .faq__question .faq__chevron {
  transform: rotate(225deg);
  margin-top: 0.55em;
}
.faq__question:hover .faq__question-text,
.faq__question:focus-visible .faq__question-text {
  color: var(--green-dark);
}
.faq__question:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 2px;
}
.faq__answer {
  padding: 0 16px 18px;
  color: var(--gray-700);
  max-width: var(--measure);
  line-height: 1.55;
}
.faq__answer p {
  margin: 0;
}
/* Price list — full content width, stacks on narrow viewports (no table overflow) */
.price-list {
  margin: 28px 0 8px;
  max-width: 100%;
  overflow-x: visible;
}
.price-list__head {
  display: none;
  gap: 16px 24px;
  padding: 0 0 10px;
  border-bottom: 1px solid var(--rule);
  margin-bottom: 4px;
}
.price-list__label {
  font-size: 0.85rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--gray-700);
  font-weight: 700;
}
.price-list__label--price {
  text-align: right;
  flex: 0 0 auto;
}
.price-list__items {
  list-style: none;
  margin: 0;
  padding: 0;
}
.price-list__row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px 24px;
  padding: 14px 0;
  border-bottom: 1px solid var(--rule);
}
.price-list__name {
  flex: 1 1 14rem;
  min-width: 0;
  max-width: 100%;
}
.price-list__name a {
  font-weight: 650;
  text-decoration: underline;
  text-underline-offset: 0.15em;
  color: var(--green-dark);
}
.price-list__name a:hover {
  color: var(--green);
}
.price-list__price {
  flex: 0 0 auto;
  font-weight: 800;
  color: var(--ink);
  letter-spacing: -0.02em;
  white-space: nowrap;
  max-width: 100%;
}
.price-list__price--note {
  white-space: normal;
  font-weight: 650;
  color: var(--gray-700);
  text-align: left;
  flex: 1 1 100%;
}
.price-list__min {
  margin: 18px 0 0;
  font-weight: 700;
  max-width: none !important;
}
@media (min-width: 720px) {
  .price-list__head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
  }
  .price-list__row {
    flex-wrap: nowrap;
  }
  .price-list__price {
    text-align: right;
    min-width: 7.5rem;
  }
  .price-list__price--note {
    flex: 0 1 18rem;
    text-align: right;
  }
}
.price-from {
  display: inline-block;
  font-weight: 800;
  color: var(--green-dark);
  letter-spacing: -0.02em;
}
.page-hero .price-from,
.page-hero--photo-underlay .price-from {
  color: var(--yellow);
  font-size: 1.15rem;
}
.priority-card__price,
.cross-links__together {
  list-style: none;
  margin: 0 0 22px;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 20px;
}
.cross-links__together a {
  font-weight: 700;
  color: var(--green-dark);
  text-decoration: none;
  border-bottom: 2px solid rgba(255, 237, 0, 0.55);
}
.cross-links__together a:hover { color: var(--green); }
.cross-links__price {
  display: block;
  margin-top: 6px;
  font-weight: 800;
  color: var(--green-dark);
  font-size: 0.95rem;
}
.contacts-block {
  background: transparent;
  border: 0;
  border-top: 3px solid var(--green);
  padding: 16px 0 8px;
  margin-bottom: 24px;
}
.contacts-block__phones {
  list-style: none;
  margin: 8px 0 12px;
  padding: 0;
  display: grid;
  gap: 6px;
}
.contacts-block__phones a {
  font-weight: 700;
  color: var(--green-dark);
  text-decoration: none;
}
.cta-strip {
  padding: 32px 0;
  background: #fff;
  border-top: 1px solid var(--rule);
}
.cta-strip__inner {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: center;
  justify-content: space-between;
}
.cta-strip p {
  margin: 0;
  font-weight: 700;
  font-size: 1.05rem;
}
.cta-strip--strong {
  background: linear-gradient(135deg, var(--green-dark), var(--green));
  color: #fff;
  border-top: 0;
}
.cta-strip--strong .cta-strip__title {
  font-size: 1.25rem;
  margin: 0 0 6px;
}
.cta-strip--strong .cta-strip__text {
  margin: 0;
  font-weight: 400;
  color: rgba(255,255,255,.9);
}

/* Landing jump — Direct sitelink / in-page CTA targets */
.landing-jump {
  position: sticky;
  /* below main site-header (z-index 40), never under it */
  top: var(--site-header-h);
  z-index: 35;
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid var(--rule);
  backdrop-filter: blur(6px);
}
.landing-jump__inner {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  align-items: center;
  padding: 10px 20px;
  font-size: 0.92rem;
}
.landing-jump a {
  color: var(--ink);
  text-decoration: none;
  font-weight: 650;
  border-bottom: 2px solid transparent;
  padding: 2px 0;
}
.landing-jump a:hover,
.landing-jump a:focus-visible {
  color: var(--green-dark);
  border-bottom-color: var(--yellow);
}
.landing-jump__cta {
  margin-left: auto;
  color: var(--green-dark) !important;
  border-bottom-color: var(--yellow) !important;
}
@media (max-width: 800px) {
  .landing-jump {
    position: static;
  }
  .landing-jump__cta {
    margin-left: 0;
  }
}

/* Offer strip — ad-landing scannable pillars, not a card fence */
.landing-offer {
  padding: var(--space-section) 0;
  background-color: var(--bg-soft);
  background-image: var(--brand-hatch);
  background-size: 48px 48px;
  border-bottom: 1px solid var(--rule);
}
.landing-offer__eyebrow {
  margin: 0 0 6px;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--green-dark);
}
.landing-offer__header h2 {
  margin: 0 0 12px;
  font-size: var(--fs-h2);
  letter-spacing: -0.02em;
}
.landing-offer__header h2::after {
  content: "";
  display: block;
  width: 2.75rem;
  height: 3px;
  margin-top: 10px;
  background: linear-gradient(90deg, var(--yellow), rgba(255, 237, 0, 0.15));
}
.landing-offer__grid {
  list-style: none;
  margin: 8px 0 28px;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px 32px;
}
.landing-offer__item {
  display: grid;
  gap: 8px;
  align-content: start;
  padding: 0;
  border: 0;
  background: transparent;
}
.landing-offer__mark {
  width: 1.75rem;
  height: 1.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 0.85rem;
  color: var(--green-dark);
  outline: 2px solid var(--yellow);
  border-radius: 50%;
  font-variant-numeric: tabular-nums;
}
.landing-offer__item strong {
  font-size: 1.02rem;
  letter-spacing: -0.015em;
  padding-bottom: 4px;
  border-bottom: 0;
  box-shadow: inset 0 -2px 0 rgba(255, 237, 0, 0.55);
  justify-self: start;
}
.landing-offer__item span:last-child {
  color: var(--gray-700);
  font-size: 0.95rem;
  line-height: 1.45;
  max-width: 36ch;
}
.landing-offer__grid--tight {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.landing-offer__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
@media (max-width: 900px) {
  .landing-offer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 560px) {
  .landing-offer__grid {
    grid-template-columns: 1fr;
    gap: 22px;
  }
}

/* Priority landings */
.landing-intro { padding: var(--space-section) 0; background: #fff; }
.landing-intro__inner {
  display: grid;
  grid-template-columns: 1.5fr 0.9fr;
  gap: 40px;
  align-items: start;
}
.landing-intro__inner--solo {
  grid-template-columns: 1fr;
  max-width: 72ch;
}
.landing-intro__heading {
  margin: 0 0 14px;
  font-size: var(--fs-h2);
  letter-spacing: -0.02em;
}
.landing-intro__heading::after {
  content: "";
  display: block;
  width: 2.75rem;
  height: 3px;
  margin-top: 10px;
  background: linear-gradient(90deg, var(--yellow), rgba(255, 237, 0, 0.15));
}
.landing-intro__copy { min-width: 0; }
.landing-intro__photo {
  margin: 0;
  max-width: 100%;
  justify-self: end;
}
.landing-intro__photo picture,
.landing-intro__photo img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 320px;
  margin-left: auto;
}
.landing-intro__photo img {
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center 40%;
}
/* Sense photo fills text column height — no dead space beside long intro */
.landing-intro__inner--fill-photo {
  align-items: stretch;
}
.landing-intro__photo--fill {
  display: flex;
  height: 100%;
  max-width: 420px;
  margin: 0;
  justify-self: end;
}
.landing-intro__photo--fill picture {
  display: block;
  height: 100%;
  width: 100%;
}
.landing-intro__photo--fill img {
  width: 100%;
  height: 100%;
  max-width: none;
  aspect-ratio: auto;
  object-fit: cover;
  /* owner sense: Metrel on gravel (zazemlenie-metrel-gravel) */
  object-position: center 45%;
  transform: none;
  margin-left: 0;
}
@media (max-width: 800px) {
  .landing-intro__photo--fill {
    max-width: 100%;
    height: auto;
    min-height: 220px;
  }
  .landing-intro__photo--fill picture,
  .landing-intro__photo--fill img {
    height: auto;
    min-height: 220px;
    max-height: 360px;
    aspect-ratio: 5 / 4;
  }
}

/* Grounding sense: full frame visible (owner) — natural height + contain, no cover crop */
.landing-intro__inner--fill-photo:has(.landing-intro__photo--contain) {
  align-items: start;
}
.landing-intro__photo--fill.landing-intro__photo--contain {
  display: block;
  height: auto !important;
  max-width: 420px;
  align-self: start;
  background: #0d3d24;
  border-radius: 2px;
  overflow: hidden;
}
.landing-intro__photo--fill.landing-intro__photo--contain picture {
  display: block;
  width: 100%;
  height: auto !important;
}
.landing-intro__photo--fill.landing-intro__photo--contain img {
  display: block;
  width: 100% !important;
  height: auto !important;
  max-width: none;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center center;
  transform: none;
  margin: 0;
}
@media (max-width: 800px) {
  .landing-intro__photo--fill.landing-intro__photo--contain {
    max-width: 100%;
    height: auto !important;
    min-height: 0 !important;
  }
  .landing-intro__photo--fill.landing-intro__photo--contain picture,
  .landing-intro__photo--fill.landing-intro__photo--contain img {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    object-fit: contain !important;
  }
}


@media (max-width: 800px) {
  .landing-intro__photo img {
    max-width: 100%;
    aspect-ratio: 5 / 4;
  }
}

/* UZO info: whole landscape frame, person and open board both visible */
.landing-intro__photo--full {
  justify-self: stretch;
  width: 100%;
  max-width: none;
}
.landing-intro__photo--full picture,
.landing-intro__photo--full img {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  margin-left: 0;
}
.landing-intro__photo--full img {
  aspect-ratio: auto;
  object-fit: contain;
  object-position: center center;
}
@media (max-width: 800px) {
  .landing-intro__photo--full picture,
  .landing-intro__photo--full img {
    max-width: 100%;
    height: auto;
    max-height: none;
    aspect-ratio: auto;
    object-fit: contain;
  }
}
.landing-intro__copy { min-width: 0; }
.landing-intro p { margin: 0 0 16px; max-width: var(--measure); color: var(--gray-700); }
.landing-intro__lead {
  margin: 0 0 20px !important;
  font-size: var(--fs-lead);
  line-height: 1.55;
  color: var(--ink) !important;
  font-weight: 500;
  max-width: var(--measure-narrow) !important;
}
.landing-intro .pull-quote {
  margin: 4px 0 22px !important;
}
.landing-intro__note {
  margin: 0 !important;
  padding-top: 14px;
  border-top: 1px solid var(--rule);
  font-size: 0.95rem;
  max-width: var(--measure) !important;
}

/* Periodic measurements (App E) — laconic strip + risk explainer */
.periodicity {
  padding: var(--space-section) 0;
  background: #fff;
  border-block: 1px solid var(--rule-soft);
}
.periodicity__inner { max-width: 920px; margin-inline: auto; width: 100%; }
.periodicity__eyebrow {
  margin: 0 0 6px;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--green-dark);
}
.periodicity__lead,
.periodicity__nuance {
  margin: 0 0 10px;
  max-width: 68ch;
  color: var(--gray-700);
}
.periodicity__nuance { font-size: 0.95rem; }
.periodicity__grid {
  list-style: none;
  margin: 32px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px 48px;
  border: 0;
}
.periodicity__item {
  padding: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  display: grid;
  gap: 6px;
  align-content: start;
}
.periodicity__item:last-child {
  padding-right: 0;
}
.periodicity__months {
  display: block;
  font-size: clamp(2rem, 3vw, 2.45rem);
  font-weight: 800;
  line-height: 1;
  color: var(--ink);
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
}
.periodicity__months small {
  margin-left: 4px;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--gray-700);
  letter-spacing: 0;
}
.periodicity__risks {
  display: block;
  margin-top: 2px;
  font-weight: 700;
  color: var(--green-dark);
  font-size: 0.98rem;
}
.periodicity__note {
  display: block;
  margin-top: 0;
  font-size: 0.9rem;
  color: var(--gray-700);
}
.periodicity__risk {
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid rgba(0, 150, 63, 0.15);
}
.periodicity__risk h3 {
  margin: 0 0 10px;
  font-size: 1.15rem;
}
.periodicity__risk p {
  margin: 0 0 10px;
  max-width: 68ch;
  color: var(--gray-700);
}
.periodicity__examples {
  margin: 0 0 12px;
  padding-left: 1.15rem;
  max-width: 68ch;
  color: var(--gray-700);
}
.periodicity__examples li { margin: 0 0 6px; }
.periodicity__how { font-size: 0.95rem; }
.periodicity__cta {
  margin-top: 22px;
  display: flex;
  flex-wrap: wrap;
  gap: 14px 20px;
  align-items: center;
}
.periodicity__bullets {
  margin: 22px 0 0;
  max-width: 68ch;
}
.periodicity--lightning .periodicity__bullets li {
  margin-bottom: 8px;
}
.periodicity__table-wrap {
  margin-top: 28px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.periodicity__table {
  width: 100%;
  min-width: 520px;
  border-collapse: collapse;
  font-size: 0.95rem;
}
.periodicity__table th,
.periodicity__table td {
  text-align: left;
  vertical-align: top;
  padding: 12px 16px 12px 0;
  border-bottom: 1px solid var(--rule-soft);
}
.periodicity__table th {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--green-dark);
}
.periodicity__table td:nth-child(2) {
  font-weight: 600;
  color: var(--ink);
  min-width: 12rem;
}
.periodicity__table td:nth-child(3) {
  color: var(--gray-700);
  white-space: nowrap;
}
.periodicity--grounding .periodicity__nuance {
  margin-top: 18px;
}
.periodicity--metal .periodicity__bullets li {
  margin-bottom: 8px;
}

.periodicity__cta p {
  margin: 0;
  flex: 1 1 280px;
  max-width: 52ch;
  font-weight: 600;
  color: var(--ink);
}

.aside-card__related {
  margin: 8px 0 0 !important;
  font-size: 0.9rem;
}
.aside-card__related a {
  font-weight: 700;
  color: var(--green-dark);
}
.landing-benefits,
.landing-objects,
.landing-scope,
.landing-deliverables,
.landing-process,
.landing-lab { padding: var(--space-section) 0; }
/* Section rhythm: alternate soft bands so blocks don't feel identical */
.landing-benefits {
  background-color: var(--bg-soft);
  background-image: var(--brand-hatch);
  background-size: 48px 48px;
  border-block: 0;
}
.landing-objects { background: #fff; }
.landing-scope {
  background: #fff;
  border-block: 0;
}
.landing-deliverables {
  background-color: var(--bg-soft);
  background-image: var(--brand-hatch);
  background-size: 48px 48px;
}
.landing-process {
  background: #fff;
  border-block: 0;
}
.landing-lab {
  background: #fff;
  border-top: 0;
}
.landing-objects__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 36px 48px;
}
.landing-lab__scope-label {
  margin: 20px 0 10px;
  font-weight: 700;
}
.landing-lab__pdf { margin-top: 18px; }
.check-list--wide { max-width: 80ch; }
.landing-benefits__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 28px 48px;
  border: 0;
  counter-reset: benefit;
}
.landing-benefits__grid li {
  background: transparent;
  border: 0;
  padding: 0;
  display: grid;
  gap: 8px;
  counter-increment: benefit;
}
.landing-benefits__grid li:last-child {
  padding-right: 0;
}
.landing-benefits__grid li::before {
  content: counter(benefit, decimal-leading-zero);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: var(--green-dark);
  font-variant-numeric: tabular-nums;
}
.landing-benefits__grid strong {
  font-size: 1.08rem;
  letter-spacing: -0.015em;
  padding-bottom: 4px;
  border-bottom: 0;
  box-shadow: inset 0 -2px 0 rgba(255, 237, 0, 0.55);
  justify-self: start;
}
.landing-benefits__grid span { color: var(--gray-700); font-size: 0.95rem; }
/* Open check-lists — green dots, no per-item boxes */
.check-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
  border: 0;
}
.check-list li {
  position: relative;
  padding: 0 0 0 18px;
  background: transparent;
  border: 0;
  line-height: 1.45;
}
.check-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--green);
}
.deliverables__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
  max-width: 70ch;
  border: 0;
}
.deliverables__list li {
  position: relative;
  background: transparent;
  border: 0;
  padding: 0 0 0 14px;
  font-weight: 600;
  line-height: 1.45;
}
.deliverables__list li::before {
  content: "–";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--green-dark);
  font-weight: 700;
}
.landing-process__steps {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 22px;
  border: 0;
  max-width: var(--measure);
  position: relative;
}
.landing-process__steps::before {
  content: "";
  position: absolute;
  left: 0.55rem;
  top: 0.45rem;
  bottom: 0.45rem;
  width: 2px;
  background: linear-gradient(180deg, var(--green), rgba(0, 150, 63, 0.12));
  border-radius: 1px;
}
.landing-process__steps li {
  display: flex;
  gap: 18px;
  align-items: flex-start;
  background: transparent;
  border: 0;
  padding: 0;
  position: relative;
}
.landing-process__steps p {
  margin: 4px 0 0;
  color: var(--gray-700);
}
.landing-process__steps strong {
  letter-spacing: -0.015em;
  font-size: 1.05rem;
}
/* Full-width step→step flow with arrows (reuse on other service pages) */
.landing-process__steps--flow {
  max-width: none;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px 20px;
  align-items: stretch;
}
.landing-process__steps--flow::before {
  display: none;
}
.landing-process__steps--flow li {
  flex-direction: column;
  gap: 12px;
  padding-right: 28px;
  position: relative;
}
.landing-process__steps--flow li:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 2px;
  top: 1.1rem;
  width: 18px;
  height: 18px;
  border-top: 2px solid var(--green);
  border-right: 2px solid var(--green);
  transform: rotate(45deg);
  opacity: 0.55;
}
.landing-process__steps--flow .path__num {
  margin: 0;
}
.landing-process__steps--flow p {
  font-size: 0.95rem;
  line-height: 1.5;
}
.landing-related {
  margin-top: 36px;
  padding-top: 22px;
  border-top: 1px solid var(--rule);
}
.landing-related__title {
  margin: 0 0 12px;
  font-size: 1.05rem;
  letter-spacing: -0.015em;
}
.landing-related__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
}
.landing-related__list a {
  font-weight: 700;
  color: var(--green-dark);
  text-decoration: none;
  border-bottom: 2px solid rgba(255, 237, 0, 0.55);
}
.landing-related__list a:hover {
  color: var(--green);
}
@media (max-width: 900px) {
  .landing-process__steps--flow {
    grid-template-columns: 1fr 1fr;
  }
  .landing-process__steps--flow li:nth-child(2n)::after {
    display: none;
  }
}
@media (max-width: 600px) {
  .landing-process__steps--flow {
    grid-template-columns: 1fr;
  }
  .landing-process__steps--flow li {
    padding-right: 0;
  }
  .landing-process__steps--flow li::after {
    display: none !important;
  }
}

/* Consultation form — kept as interaction container (needed chrome) */
.consultation {
  padding: var(--space-section) 0 calc(var(--space-section) + 8px);
  background: #fff;
  border-top: 1px solid var(--rule);
}
.consultation__inner {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 40px;
  align-items: start;
}
.consultation h2 { margin: 0 0 10px; letter-spacing: -0.015em; }
.consultation__phones {
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.consultation__phones a {
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--green-dark);
  text-decoration: none;
}
.consultation__phones a:hover { text-decoration: underline; }
.consultation__form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  background: transparent;
  padding: 4px 0 0;
  border: 0;
  border-top: 2px solid var(--green);
}
.field { display: grid; gap: 6px; font-size: 0.92rem; }
.field span em { font-style: normal; color: var(--gray-700); font-weight: 400; }
.field--full { grid-column: 1 / -1; }
.consultation .field input,
.consultation .field textarea,
.consultation .field--consent {
  position: relative;
  z-index: 30;
}
.field input,
.field textarea {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--gray-300);
  border-radius: 4px;
  font: inherit;
  background: #fff;
}
.field input:focus,
.field textarea:focus {
  outline: 2px solid var(--green);
  outline-offset: 1px;
}
.consultation__actions {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.consultation__note {
  grid-column: 1 / -1;
  margin: 0;
  font-size: 0.85rem;
  color: var(--gray-700);
}
.consultation__thanks {
  background: transparent;
  border: 0;
  border-top: 3px solid var(--green);
  padding: 18px 0 0;
}
.consultation__error {
  grid-column: 1 / -1;
  background: transparent;
  border: 0;
  border-left: 3px solid #b42318;
  padding: 4px 0 4px 14px;
  margin-bottom: 12px;
}
.consultation__error p { margin: 0; }
.field--hp {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.field--consent {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 0.9rem;
  line-height: 1.45;
}
.field--consent input[type="checkbox"] {
  margin-top: 3px;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
.field--consent a { text-decoration: underline; }

/* Footer */
.site-footer {
  background: var(--ink);
  color: var(--gray-300);
  padding: 36px 0 20px;
  margin-top: 0;
}
.site-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover { color: var(--yellow); }
.site-footer__address a {
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-color: rgba(255,255,255,.35);
}
.site-footer__address a:hover,
.site-footer__address a:focus-visible {
  color: var(--yellow);
  text-decoration-color: var(--yellow);
}
.site-footer__grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1.4fr;
  gap: 28px;
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.site-footer__menu {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
}
.site-footer__menu a { font-weight: 600; }
.site-footer__name {
  margin: 0 0 6px;
  color: #fff;
  font-weight: 800;
  font-size: 1.1rem;
}
.site-footer__label {
  margin: 0 0 8px;
  color: var(--yellow);
  font-weight: 700;
  text-transform: uppercase;
  font-size: 0.75rem;
  letter-spacing: .06em;
}
.site-footer__phones {
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
  display: grid;
  gap: 6px;
}
.site-footer__phones a { font-weight: 700; }
.site-footer__hours { color: var(--gray-300); }
.site-footer__hours-note {
  color: var(--gray-300);
  font-size: 0.9rem;
  margin-top: 0.25rem;
  max-width: 28ch;
}
.site-footer__copy {
  padding-top: 16px;
  font-size: 0.85rem;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  align-items: center;
}
.site-footer__sep { opacity: 0.55; }

.legal-sections { margin-top: 8px; }
.legal-sections__item { margin-bottom: 8px; }
.legal-sections__item .page-subheading { margin-top: 28px; }

.content { padding: 36px 0; }

.priority-services__grid--seven {
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

.landing-instruments {
  padding: var(--space-section) 0;
  background: #fff;
  border-block: 1px solid var(--rule);
}
.instruments__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 28px 32px;
}
.instruments__grid--wide {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  width: 100%;
}
.instruments__item figure { margin: 0; }
.instruments__item img {
  width: 100%;
  height: 200px;
  object-fit: contain;
  background: transparent;
  border: 0;
  outline: 1px solid var(--rule);
  padding: 12px;
}
.instruments__item figcaption {
  display: grid;
  gap: 6px;
  margin-top: 12px;
}
.instruments__item figcaption strong { font-size: 1rem; }
.instruments__item figcaption span { color: var(--gray-700, #444); font-size: 0.95rem; }
.instruments__credit {
  font-size: 0.8rem;
  color: var(--gray-500, #777);
  font-style: normal;
}

.cross-links { padding: var(--space-section) 0 calc(var(--space-section) + 4px); }
.cross-links__grid {
  list-style: none;
  margin: 24px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 8px 36px;
  border-top: 0;
}
.cross-links__grid a {
  display: grid;
  gap: 6px;
  padding: 4px 4px 12px 0;
  border: 0;
  background: transparent;
  text-decoration: none;
  color: inherit;
  min-height: 100%;
  transition: color .15s ease;
}
.cross-links__grid a:hover {
  box-shadow: none;
  background: transparent;
}
.cross-links__grid strong { color: var(--green, #00963F); }
.cross-links__grid span { font-size: 0.92rem; color: var(--gray-700, #444); }

.page-list-block {
  margin: 40px 0 12px;
  padding-top: 8px;
}
.page-list-block .check-list {
  margin-top: 16px;
  max-width: var(--measure);
}
.page-subheading {
  margin: 44px 0 12px;
  font-size: var(--fs-h2);
  letter-spacing: -0.02em;
  line-height: 1.2;
}
.section-lead--flush { margin-top: 0; }
.works-list {
  list-style: none;
  margin: 20px 0 0;
  padding: 0;
  display: grid;
  gap: 18px;
  border: 0;
  max-width: var(--measure);
}
.works-list li {
  display: grid;
  gap: 6px;
  padding: 0 0 14px;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--rule);
}
.works-list li:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.works-list li strong {
  display: block;
  padding-left: 0;
  border: 0;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.works-list li span {
  padding-left: 0;
  color: var(--gray-700);
}
.partners-grid {
  list-style: none;
  margin: 20px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 8px 20px;
}
.partners-grid__item {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 64px;
  padding: 8px 4px;
  background: transparent;
  border: 0;
}
.partners-grid__item img {
  max-width: 100%;
  max-height: 64px;
  width: auto;
  height: auto;
  object-fit: contain;
}

.back-to-top {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 20;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 48px;
  height: 48px;
  padding: 0 14px;
  border-radius: 4px;
  background: var(--green, #00963F);
  color: #fff !important;
  font-weight: 700;
  font-size: 0.85rem;
  text-decoration: none;
  box-shadow: 0 6px 20px rgba(0,0,0,.18);
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity .2s ease, transform .2s ease;
}
.back-to-top.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.back-to-top:hover { filter: brightness(1.05); }

/* Thumb-friendly sticky contact bar (mobile) */
.mobile-cta {
  display: none;
}
@media (max-width: 900px) {
  .mobile-cta {
    display: grid;
    grid-template-columns: 1fr 1.15fr;
    gap: 8px;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 55;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, 0.96);
    border-top: 1px solid var(--rule);
    box-shadow: 0 -6px 24px rgba(0, 0, 0, 0.08);
  }
  .mobile-cta a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 12px;
    border-radius: 4px;
    font-weight: 800;
    font-size: 0.95rem;
    text-decoration: none;
    line-height: 1.2;
  }
  .mobile-cta__call {
    background: #fff;
    color: var(--green-dark) !important;
    border: 2px solid var(--green);
  }
  .mobile-cta__ask {
    background: var(--yellow);
    color: var(--ink) !important;
    border: 2px solid var(--yellow);
  }
  body {
    padding-bottom: calc(var(--mobile-cta-h) + env(safe-area-inset-bottom, 0px));
  }
  .back-to-top {
    bottom: calc(var(--mobile-cta-h) + 12px);
    right: 12px;
  }
}

@media (max-width: 900px) {
  .site-nav__item--has-children > .site-nav__sub {
    position: static;
    display: none;
    min-width: 0;
    box-shadow: none;
    border: 0;
    background: transparent;
    padding: 4px 0 4px 12px;
  }
  .site-nav__item--has-children:hover > .site-nav__sub,
  .site-nav__item--has-children:focus-within > .site-nav__sub {
    display: grid;
    gap: 4px;
  }
  .site-nav__sub a {
    color: #fff !important;
    padding: 4px 0;
    white-space: normal;
  }
  .site-nav__sub a:hover { background: transparent; color: var(--yellow) !important; }
}

@media (max-width: 800px) {
  .consultation__inner,
  .site-footer__grid,
  .consultation__form,
  .page-body__grid,
  .landing-intro__inner,
  .landing-objects__grid,
  .periodicity__grid,
  .page-hero--with-photo .page-hero__inner,
  .process-steps,
  .doc-preview-grid {
    grid-template-columns: 1fr;
  }
  .page-hero__photo {
    max-width: 360px;
    justify-self: center;
  }
  .site-header__main-inner { justify-content: flex-start; }
  .contacts-map__frame {
    min-height: 360px;
    height: 400px;
  }
  .path__steps::before,
  .landing-process__steps::before {
    display: none;
  }
}

/* Motion — presence, not noise */
@media (prefers-reduced-motion: no-preference) {
  .hero__title,
  .page-hero__title {
    animation: energo-rise 0.55s ease-out both;
  }
  .hero__lead,
  .page-hero__lead {
    animation: energo-rise 0.65s ease-out 0.08s both;
  }
  .hero__actions,
  .page-hero__actions {
    animation: energo-rise 0.7s ease-out 0.14s both;
  }
  .path__num,
  .process-steps__num,
  .landing-process__steps .path__num {
    transition: outline-color 0.2s ease, background-color 0.2s ease;
  }
  .priority-card__title,
  .service-card__title,
  .cross-links__grid strong {
    transition: color 0.15s ease;
  }
}
@keyframes energo-rise {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Confirmed right-rail fill (r4 KEEP + shared-v02) — soft, not card stacks */
.right-rail {
  display: grid;
  gap: 14px;
  margin: 0;
  max-width: 320px;
}
.right-rail__figure {
  margin: 0;
}
.right-rail__figure picture,
.right-rail__figure img {
  display: block;
  width: 100%;
  height: auto;
}
.right-rail__figure img {
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center 40%;
  outline: 1px solid var(--rule-soft);
  outline-offset: 0;
}
.right-rail__figure--secondary img {
  aspect-ratio: 5 / 4;
  object-position: center;
  opacity: 0.96;
}
.right-rail--intro {
  margin-bottom: 18px;
  max-width: none;
}
.right-rail--body {
  position: sticky;
  top: calc(var(--site-header-h) + var(--landing-jump-h) + 12px);
  justify-self: end;
  width: min(280px, 100%);
}
.right-rail--services {
  max-width: 220px;
  justify-self: end;
  align-self: end;
}
.path__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(180px, 0.55fr);
  gap: 32px 40px;
  align-items: end;
}
.path__main { min-width: 0; }
.right-rail--path {
  max-width: 260px;
  justify-self: end;
  align-self: center;
}
@media (max-width: 900px) {
  .path__layout {
    grid-template-columns: 1fr;
  }
  .right-rail--path {
    max-width: 220px;
    justify-self: start;
    order: -1;
  }
}
.landing-intro__rail {
  display: grid;
  gap: 18px;
  align-content: start;
}
.page-body--with-rail {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(200px, 0.7fr);
  gap: 36px 40px;
  align-items: start;
}
.page-body--with-rail.page-body__narrow,
.page-body--with-rail.page-body__wide {
  max-width: 1100px;
}
.page-body--with-rail > .page-body__main > p,
.page-body--with-rail > .page-body__main > .prose-lead,
.page-body--with-rail > .page-body__main > .pull-quote {
  max-width: var(--measure);
}
.priority-services__intro {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(160px, 0.55fr);
  gap: 28px 36px;
  align-items: end;
  margin-bottom: 28px;
}
.priority-services__intro .section-lead {
  margin-bottom: 0;
}
@media (max-width: 900px) {
  .page-body--with-rail,
  .priority-services__intro {
    grid-template-columns: 1fr;
  }
  .right-rail--body,
  .right-rail--services {
    position: static;
    max-width: 280px;
    justify-self: start;
  }
  .right-rail--services {
    order: -1;
    max-width: 200px;
  }
}
@media (prefers-reduced-motion: no-preference) {
  .right-rail__figure img {
    transition: outline-color 0.2s ease, transform 0.35s ease;
  }
  .right-rail__figure:hover img {
    outline-color: rgba(0, 150, 63, 0.35);
    transform: translateY(-2px);
  }
}

/* Brand omega watermark on text heroes without photos */
.page-hero--brand-mark .page-hero__inner {
  position: relative;
}
.page-hero--brand-mark .page-hero__inner::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: min(220px, 34vw);
  height: min(220px, 34vw);
  transform: translateY(-50%);
  background-color: rgba(255, 237, 0, 0.16);
  -webkit-mask: url("assets/icons/omega-mark.svg") center / contain no-repeat;
  mask: url("assets/icons/omega-mark.svg") center / contain no-repeat;
  pointer-events: none;
}
@media (max-width: 800px) {
  .page-hero--brand-mark .page-hero__inner::after {
    opacity: 0.45;
    width: 120px;
    height: 120px;
    top: auto;
    bottom: 8px;
    transform: none;
  }
}

/* Cookie consent — bottom bar + category settings (v0.6.51) */
.ea-cookie {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 10000;
  padding: 0 12px calc(12px + var(--mobile-cta-h, 64px));
  pointer-events: none;
}
.ea-cookie[hidden] {
  display: none !important;
}
.ea-cookie__bar {
  pointer-events: auto;
  width: min(1120px, 100%);
  margin: 0 auto;
  padding: 14px 16px 14px;
  background: var(--bg);
  border: 1px solid var(--rule);
  border-top: 3px solid var(--green);
  box-shadow: 0 -8px 28px rgba(26, 26, 24, 0.12);
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, auto);
  gap: 12px 20px;
  align-items: center;
}
.ea-cookie__title {
  margin: 0 0 4px;
  font-size: 0.98rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  color: var(--ink);
  text-align: left;
}
.ea-cookie__text {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.4;
  color: var(--gray-700);
  text-align: left;
  max-width: 62ch;
}
.ea-cookie__text a {
  color: var(--green-dark);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.ea-cookie__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
  align-items: center;
}
.ea-cookie__actions .btn {
  min-height: 40px;
  padding: 8px 14px;
  font-size: 0.9rem;
}
.ea-cookie__settings {
  grid-column: 1 / -1;
  display: grid;
  gap: 12px;
  padding-top: 10px;
  border-top: 1px solid var(--rule);
}
.ea-cookie__settings[hidden] {
  display: none !important;
}
.ea-cookie__cat {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.ea-cookie__cat-text {
  display: grid;
  gap: 2px;
  min-width: 0;
}
.ea-cookie__cat-text strong {
  font-size: 0.92rem;
  color: var(--ink);
}
.ea-cookie__cat-text span {
  font-size: 0.84rem;
  line-height: 1.35;
  color: var(--gray-700);
  text-align: left;
}
.ea-cookie__switch {
  position: relative;
  display: inline-flex;
  width: 44px;
  height: 26px;
  flex: 0 0 auto;
  cursor: pointer;
}
.ea-cookie__switch input {
  opacity: 0;
  width: 0;
  height: 0;
  position: absolute;
}
.ea-cookie__slider {
  position: absolute;
  inset: 0;
  background: var(--gray-100);
  border: 1px solid var(--rule);
  border-radius: 999px;
  transition: background 0.15s ease;
}
.ea-cookie__slider::before {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  left: 3px;
  top: 3px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0,0,0,.18);
  transition: transform 0.15s ease;
}
.ea-cookie__switch input:checked + .ea-cookie__slider {
  background: var(--green);
  border-color: var(--green-dark);
}
.ea-cookie__switch input:checked + .ea-cookie__slider::before {
  transform: translateX(18px);
}
.ea-cookie__switch input:disabled + .ea-cookie__slider {
  opacity: 0.85;
  cursor: not-allowed;
}
.ea-cookie__settings-actions {
  display: flex;
  justify-content: flex-end;
}
@media (min-width: 801px) {
  .ea-cookie {
    padding: 0 20px 18px;
  }
  .ea-cookie__bar {
    padding: 16px 20px;
  }
}
@media (max-width: 720px) {
  .ea-cookie__bar {
    grid-template-columns: 1fr;
  }
  .ea-cookie__actions {
    justify-content: stretch;
  }
  .ea-cookie__actions .btn {
    flex: 1 1 auto;
  }
}
/* Banner stays on screen; the next block starts below it. */
html.ea-cookie-open {
  overflow: auto;
}
html.ea-cookie-open body {
  padding-bottom: var(--ea-cookie-h, 0px);
}
html.ea-cookie-open .hero--photo {
  padding-bottom: calc(44px + var(--ea-cookie-h, 0px));
}


/* Anchor targets clear sticky header + jump nav */
.landing-offer,
.landing-intro,
.landing-deliverables,
.landing-scope,
.landing-objects,
.landing-benefits,
.landing-process,
.landing-instruments,
.periodicity,
.cross-links,
.faq,
.consultation {
  scroll-margin-top: calc(var(--site-header-h) + var(--landing-jump-h) + 10px);
}
@media (max-width: 800px) {
  :root { --site-header-h: 6.5rem; }
  html { scroll-padding-top: calc(var(--site-header-h) + 8px); }
}

/* DGU: intro like the other service pages. Text stays in the left column
   and is justified across that column. The photo stays on the right and
   is not hidden. Paragraphs do not run across the page past the photo.
   Hero photo is unchanged. Narrow cards stay left. */
.landing-dgu .landing-intro__copy > p,
.landing-dgu .landing-intro__copy > p.landing-intro__lead {
  text-align: justify;
  text-justify: inter-word;
  max-width: none !important;
  width: 100%;
  hyphens: manual;
}
/* Narrow offer and benefit cards: left, same as the other service pages.
   Justify in these columns opens word-gap holes. The meaning column above
   stays justified across its own width. */
.landing-dgu .landing-offer__item,
.landing-dgu .landing-offer__item span,
.landing-dgu .landing-offer__item strong,
.landing-dgu .landing-benefits__grid li,
.landing-dgu .landing-benefits__grid span,
.landing-dgu .landing-benefits__grid strong {
  text-align: left !important;
  text-justify: auto !important;
}
.landing-dgu .landing-process__steps li,
.landing-dgu .landing-process__steps p,
.landing-dgu .landing-process__steps strong {
  text-align: left;
  text-justify: auto;
}

/* Объекты, цены, документы, контакты (0.6.143).
   Абзацы информационного блока занимают ширину своей колонки и идут
   по ширине. Если справа уже лежит фото, текст колонку не перескакивает.
   Узкий акцент, короткие списки и карточки — по левому краю.
   Герои услуг этим блоком не затрагиваются. */
.page-fill .page-body__main > .prose-lead {
  max-width: var(--measure) !important;
  width: 100%;
  text-align: justify;
  text-justify: inter-word;
  hyphens: manual;
}
.page-fill .page-body--with-rail > .page-body__main > p:not(.pull-quote),
.page-fill .page-body--with-rail > .page-body__main > .prose-lead {
  max-width: none !important;
  width: 100%;
  text-align: justify;
  text-justify: inter-word;
  hyphens: manual;
}
.page-fill .pull-quote,
.page-fill .section-lead,
.page-fill .section-lead--flush,
.page-fill .check-list,
.page-fill .check-list li,
.page-fill .works-list,
.page-fill .works-list li,
.page-fill .works-list li span,
.page-fill .works-list li strong,
.page-fill .contacts-block,
.page-fill .contacts-block p,
.page-fill .contacts-block li,
.page-fill .contacts-map__link,
.page-fill .price-list,
.page-fill .price-list p,
.page-fill .price-list__name,
.page-fill .price-list__min,
.page-fill .cross-links li,
.page-fill .cross-links .section-lead,
.page-fill .partners-grid,
.page-fill .partners-grid__item,
.page-fill .doc-preview figcaption {
  text-align: left;
  text-justify: auto;
  hyphens: manual;
}
.page-fill .page-body--with-rail .section-lead,
.page-fill .page-body--with-rail .works-list,
.page-fill .page-body--with-rail .page-list-block .check-list {
  max-width: none;
}

/* Objects, prices, documents, contacts (0.6.146).
   The slot is the right half, like a service hero. The frame keeps the
   scale of the old card: height matches that card, so a wider slot shows
   more of the picture and does not zoom or squash it. Left side is solid
   brand green. The veil on the photo is the service-hero green. */
.page-hero.page-hero--photo-underlay.page-hero--underlay-half {
  background: #005c26;
  min-height: 560px;
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-half .page-hero__media {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 50% !important;
  width: 50% !important;
  height: auto !important;
  inset: 0 0 0 50% !important;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-half .page-hero__media::after {
  content: none;
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-half .page-hero__media picture {
  position: absolute;
  top: 0;
  display: block;
  height: 100%;
  width: auto;
  max-width: none;
  margin: 0;
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-half .page-hero__media--wide picture {
  left: 50%;
  transform: translateX(-50%);
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-half .page-hero__media--tall picture {
  left: 50%;
  right: auto;
  transform: translateX(-50%);
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-half .page-hero__media img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  object-fit: fill;
  object-position: center center;
  aspect-ratio: auto;
  outline: none;
  transform: none;
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-half .page-hero__media picture::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(105deg, rgba(0, 92, 38, .68) 0%, rgba(0, 90, 40, .48) 40%, rgba(0, 80, 35, .32) 100%),
    linear-gradient(180deg, rgba(0, 60, 25, .2) 0%, transparent 42%, rgba(0, 50, 20, .3) 100%);
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-half .page-hero__copy {
  max-width: min(38rem, 48%);
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-half .page-hero__lead {
  max-width: 48ch;
}
.price-sum {
  white-space: nowrap;
}
@media (max-width: 800px) {
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half {
    min-height: 0;
  }
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half .page-hero__media {
    position: relative !important;
    left: 0 !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    width: 100% !important;
    height: auto !important;
    inset: auto !important;
  }
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half .page-hero__media picture,
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half .page-hero__media--wide picture,
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half .page-hero__media--tall picture {
    position: relative;
    left: auto;
    right: auto;
    top: auto;
    width: 100%;
    height: auto;
    transform: none;
  }
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half .page-hero__media img {
    width: 100% !important;
    height: auto !important;
    object-fit: contain;
  }
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half .page-hero__copy,
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half .page-hero__lead {
    max-width: none;
  }
}

/* Objects hero: horizontal frame covers the whole right half.
   The centered portrait slot stays on the other half-heroes. */
.page-hero.page-hero--photo-underlay.page-hero--underlay-half .page-hero__media--cover picture {
  position: absolute;
  inset: 0;
  left: 0;
  right: 0;
  top: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  transform: none;
  aspect-ratio: auto !important;
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-half .page-hero__media--cover img {
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  object-fit: cover;
  object-position: center center;
  aspect-ratio: auto;
}
@media (max-width: 800px) {
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half .page-hero__media--cover picture {
    position: relative;
    inset: auto;
    left: auto;
    right: auto;
    top: auto;
    width: 100%;
    height: auto;
    transform: none;
    aspect-ratio: auto !important;
  }
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half .page-hero__media--cover img {
    width: 100% !important;
    height: auto !important;
    object-fit: contain;
    object-position: center center;
  }
}

/* Prices info block (text left, photo fills the right column). */
.page-info {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(0, 0.9fr);
  gap: 40px;
  align-items: start;
  margin: 0 0 8px;
}
.page-info__copy { min-width: 0; }
.page-fill .page-info__copy > .prose-lead,
.page-fill .page-info__copy > p:not(.pull-quote) {
  max-width: none;
  width: 100%;
  text-align: justify;
  text-justify: inter-word;
}
.page-info__photo {
  display: block;
  height: auto;
  margin: 0;
}
.page-info__photo picture {
  display: block;
  width: 100%;
  height: auto;
}
.page-info__photo img {
  display: block;
  width: 100%;
  height: auto;
  max-width: none;
  object-fit: contain;
  object-position: center center;
}
@media (max-width: 800px) {
  .page-info { grid-template-columns: 1fr; }
  .page-info__photo,
  .page-info__photo picture,
  .page-info__photo img {
    height: auto;
    max-height: none;
  }
  .page-info__photo img {
    aspect-ratio: auto;
    object-fit: contain;
  }
}

/* Kak-rabotaem hero: same fit as 0.6.163. Letterbox fill is transparent, image is not recropped. */
.page-kak-rabotaem .page-hero.page-hero--photo-underlay.page-hero--underlay-uptr {
  min-height: 0;
  overflow: hidden;
}
.page-kak-rabotaem .page-hero.page-hero--photo-underlay.page-hero--underlay-uptr .page-hero__media.page-hero__media--native {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 50% !important;
  width: 50% !important;
  height: auto !important;
  max-width: none !important;
  max-height: none !important;
  inset: 0 0 0 50% !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  background-color: transparent !important;
}
.page-kak-rabotaem .page-hero.page-hero--photo-underlay.page-hero--underlay-uptr .page-hero__media.page-hero__media--native picture,
.page-kak-rabotaem .page-hero.page-hero--photo-underlay.page-hero--underlay-uptr .page-hero__media.page-hero__media--native img {
  display: block !important;
  width: auto !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center center !important;
  transform: none !important;
  position: static !important;
  inset: auto !important;
  background: transparent !important;
  background-color: transparent !important;
}

/* Kak-rabotaem only: the gap left of the photo is the same green as the panel.
   The service veil stays on the picture, not on that gap. Image is not moved. */
.page-kak-rabotaem .page-hero.page-hero--photo-underlay.page-hero--underlay-uptr .page-hero__media.page-hero__media--native {
  background: #005c26 !important;
  background-color: #005c26 !important;
}
.page-kak-rabotaem .page-hero.page-hero--photo-underlay.page-hero--underlay-uptr .page-hero__media.page-hero__media--native::after {
  content: none !important;
}
.page-kak-rabotaem .page-hero.page-hero--photo-underlay.page-hero--underlay-uptr .page-hero__media.page-hero__media--native picture {
  position: relative !important;
  background: transparent !important;
}
.page-kak-rabotaem .page-hero.page-hero--photo-underlay.page-hero--underlay-uptr .page-hero__media.page-hero__media--native picture::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(105deg, rgba(0, 92, 38, .94) 0%, rgba(0, 100, 40, .82) 38%, rgba(0, 90, 40, .48) 68%, rgba(0, 80, 35, .32) 100%),
    linear-gradient(180deg, rgba(0, 60, 25, .2) 0%, transparent 42%, rgba(0, 50, 20, .3) 100%);
}

/* Kak-rabotaem info: whole frame in the placeholder column. Hero is unchanged. */
.page-kak-rabotaem .kak-info-photo {
  max-width: none;
  width: 100%;
  justify-self: stretch;
}
.page-kak-rabotaem .kak-info-photo picture,
.page-kak-rabotaem .kak-info-photo img {
  display: block;
  width: 100%;
  height: auto;
  max-width: none;
}
.page-kak-rabotaem .kak-info-photo img {
  aspect-ratio: auto;
  object-fit: contain;
  object-position: center center;
  outline: none;
}

/* Spasibo title only. Phones match the white header numbers on green.
   The frame fits the title and keeps the whole picture, not a cover crop. */
.page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--spasibo {
  min-height: 0;
}
.page-hero.page-hero--spasibo .page-hero__trust a {
  color: #fff;
  text-decoration: none;
}
.page-hero.page-hero--spasibo .page-hero__trust a:hover,
.page-hero.page-hero--spasibo .page-hero__trust a:focus-visible {
  color: var(--yellow);
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--spasibo .page-hero__media picture,
.page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--spasibo .page-hero__media--tall picture,
.page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--spasibo .page-hero__media--wide picture {
  position: absolute;
  top: 50%;
  bottom: auto;
  left: 50%;
  right: auto;
  height: 86%;
  width: auto;
  max-width: 92%;
  transform: translate(-50%, -50%);
  aspect-ratio: auto !important;
  margin: 0;
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--spasibo .page-hero__media img {
  width: auto !important;
  height: 100% !important;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  object-position: center center;
}
@media (max-width: 800px) {
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--spasibo .page-hero__media {
    display: flex;
    justify-content: center;
  }
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--spasibo .page-hero__media picture,
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--spasibo .page-hero__media--tall picture,
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--spasibo .page-hero__media--wide picture {
    position: relative;
    top: auto;
    bottom: auto;
    left: auto;
    height: auto;
    width: min(280px, 72%);
    max-width: 72%;
    transform: none;
  }
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--spasibo .page-hero__media img {
    width: 100% !important;
    height: auto !important;
    max-height: none;
    object-fit: contain;
  }
}

/* Policy title only. The plate fits the title height and stays whole. */
.page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--politika {
  min-height: 0;
  background: #005c26;
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--politika .page-hero__media picture,
.page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--politika .page-hero__media--tall picture,
.page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--politika .page-hero__media--wide picture {
  position: absolute;
  inset: 0;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  transform: none;
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--politika .page-hero__media img {
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  max-height: none;
  object-fit: contain !important;
  object-position: center center !important;
  transform: none;
}
@media (max-width: 800px) {
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--politika .page-hero__media {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    width: 100% !important;
    height: auto !important;
  }
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--politika .page-hero__media picture,
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--politika .page-hero__media--tall picture,
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--politika .page-hero__media--wide picture {
    position: relative;
    inset: auto;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    width: 100%;
    height: auto;
    transform: none;
  }
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--politika .page-hero__media img {
    width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
    object-position: center center !important;
  }
}

/* Электробезопасность: кадр на всю высоту правой половины, по центру. */
.page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--eb-fit {
  background: #005c26;
  min-height: 0;
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--eb-fit .page-hero__media {
  background: #005c26;
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--eb-fit .page-hero__media picture,
.page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--eb-fit .page-hero__media--wide picture,
.page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--eb-fit .page-hero__media--tall picture {
  position: absolute;
  inset: 0;
  left: 0;
  right: 0;
  top: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  transform: none;
  aspect-ratio: auto !important;
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--eb-fit .page-hero__media img {
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  object-fit: cover !important;
  object-position: center center;
  aspect-ratio: auto;
}
.page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--eb-fit .page-hero__media picture::after {
  content: "";
  position: absolute;
  inset: auto;
  top: 0;
  bottom: 0;
  left: -100%;
  right: auto;
  width: 200%;
  pointer-events: none;
  background:
    linear-gradient(105deg, rgba(0, 92, 38, .94) 0%, rgba(0, 100, 40, .82) 38%, rgba(0, 90, 40, .48) 68%, rgba(0, 80, 35, .32) 100%),
    linear-gradient(180deg, rgba(0, 60, 25, .2) 0%, transparent 42%, rgba(0, 50, 20, .3) 100%);
}
@media (max-width: 800px) {
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--eb-fit {
    min-height: 0;
  }
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--eb-fit .page-hero__media {
    position: relative !important;
    left: 0 !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    width: 100% !important;
    height: auto !important;
    inset: auto !important;
  }
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--eb-fit .page-hero__media picture,
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--eb-fit .page-hero__media--wide picture,
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--eb-fit .page-hero__media--tall picture {
    position: relative;
    inset: auto;
    left: auto;
    right: auto;
    top: auto;
    width: 100%;
    height: auto;
    transform: none;
  }
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--eb-fit .page-hero__media img {
    width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
    object-position: center center;
  }
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--eb-fit .page-hero__media picture::after {
    inset: 0;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: auto;
    background:
      linear-gradient(180deg, rgba(0, 92, 38, .9) 0%, rgba(0, 100, 40, .72) 48%, rgba(0, 80, 35, .58) 100%),
      linear-gradient(90deg, rgba(0, 92, 38, .55) 0%, transparent 75%);
  }
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--eb-fit .page-hero__copy,
  .page-hero.page-hero--photo-underlay.page-hero--underlay-half.page-hero--eb-fit .page-hero__lead {
    max-width: none;
  }
}
.page-elektro .page-body > .container.page-body__narrow {
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
}
.page-elektro .page-body .prose-lead,
.page-elektro .page-body .pull-quote,
.page-elektro .page-body p {
  max-width: none !important;
}
