/**
 * SBQR marketing UI — mobile-first, BEM (.site-*).
 * Aligns with DESIGN_SYSTEM.md (tokens, spacing 4px grid, Inter).
 */

:root {
  --site-color-text: #111111;
  --site-color-text-muted: rgb(17 17 17 / 0.62);
  --site-color-bg: #f9fafb;
  --site-color-surface: #ffffff;
  --site-color-accent: #e55146;
  --site-color-accent-hover: #d14338;
  --site-color-highlight: #ffd136;
  --site-radius-card: 12px;
  --site-radius-control: 8px;
  --site-shadow-soft: 0 4px 6px -1px rgb(0 0 0 / 0.1);
  --site-space-1: 4px;
  --site-space-2: 8px;
  --site-space-3: 16px;
  --site-space-4: 24px;
  --site-space-5: 32px;
  --site-space-6: 48px;
  --site-font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --site-header-height: 56px;
  --site-container-max: 72rem;
  --site-transition: all 0.2s ease-in-out;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body.site-page {
  margin: 0;
  font-family: var(--site-font);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--site-color-text);
  background-color: var(--site-color-bg);
  padding-top: var(--site-header-height);
}

body.site-page img {
  max-width: 100%;
  height: auto;
}

/* Bootstrap 3 navbar bridge (keep markup & collapse behavior) */
body.site-page .navbar-fixed-top {
  border: none;
  box-shadow: 0 4px 12px rgb(0 0 0 / 0.35);
  background-color: #111111 !important;
  font-family: var(--site-font);
  min-height: var(--site-header-height);
}

body.site-page .navbar-default .navbar-brand {
  color: #f9fafb !important;
  font-weight: 700;
  letter-spacing: -0.02em;
  padding-block: var(--site-space-2);
}

body.site-page .navbar-default .navbar-brand:hover,
body.site-page .navbar-default .navbar-brand:focus {
  color: var(--site-color-highlight) !important;
}

body.site-page .navbar-default .navbar-nav > li > a {
  color: rgb(249 250 251 / 0.88);
  font-weight: 500;
  border-radius: var(--site-radius-control);
  transition: var(--site-transition);
}

body.site-page .navbar-default .navbar-nav > li > a:hover,
body.site-page .navbar-default .navbar-nav > li > a:focus {
  color: #fff;
  background-color: rgb(255 255 255 / 0.1);
}

@media (max-width: 767px) {
  body.site-page .navbar-default .navbar-collapse {
    border-color: rgb(255 255 255 / 0.12);
  }
}

body.site-page .navbar-toggle {
  border: none;
  border-radius: var(--site-radius-control);
  margin-block: var(--site-space-1);
  transition: var(--site-transition);
}

body.site-page .navbar-default .navbar-toggle:hover,
body.site-page .navbar-default .navbar-toggle:focus {
  background-color: rgb(255 255 255 / 0.12);
}

body.site-page .navbar-default .navbar-toggle .icon-bar {
  background-color: #f9fafb;
}

/* Одна линия пунктов меню на desktop: без «выпадания» второй строки из-за float */
@media (min-width: 768px) {
  body.site-page nav.navbar > .container {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    max-width: var(--site-container-max);
  }

  body.site-page .navbar-header {
    float: none;
    flex: 0 0 auto;
  }

  body.site-page .navbar-collapse {
    float: none !important;
    flex: 1 1 auto;
    min-width: 0;
    display: flex !important;
    justify-content: flex-end;
    align-items: center;
    border: none;
    box-shadow: none;
    padding-left: var(--site-space-2);
    padding-right: 0;
  }

  body.site-page .navbar-collapse.collapse {
    height: auto !important;
    overflow: visible !important;
  }

  body.site-page .navbar-nav {
    float: none !important;
    margin: 0;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
  }

  body.site-page .navbar-nav > li {
    float: none !important;
  }

  body.site-page .navbar-default .navbar-nav > li > a {
    padding: 14px 10px;
    white-space: nowrap;
  }
}

/* Landing hero (Agency theme header) */
body.site-page header {
  display: grid;
  place-items: center;
  text-align: center;
  min-height: min(72vh, 620px);
  padding: var(--site-space-6) var(--site-space-3);
  background: linear-gradient(
    165deg,
    var(--site-color-surface) 0%,
    rgb(255 209 54 / 0.2) 42%,
    var(--site-color-bg) 100%
  );
  font-family: var(--site-font);
}

body.site-page header .intro-text {
  max-width: 42rem;
}

body.site-page header .intro-heading {
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--site-color-text);
}

body.site-page header .intro-lead-in {
  color: var(--site-color-text-muted);
  font-size: clamp(1rem, 3vw, 1.125rem);
}

body.site-page .bg-light-gray {
  background: rgb(17 17 17 / 0.03) !important;
}

body.site-page section {
  font-family: var(--site-font);
}

body.site-page footer {
  padding: var(--site-space-5) 0;
  background: var(--site-color-surface);
  box-shadow: 0 -1px 0 rgb(17 17 17 / 0.06);
  font-family: var(--site-font);
}

body.site-page footer .copyright {
  color: var(--site-color-text-muted);
  font-size: 0.9375rem;
}

body.site-page footer .social-buttons {
  margin-bottom: 0;
}

body.site-page footer .social-buttons a {
  display: inline-flex;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  border-radius: var(--site-radius-control);
  color: var(--site-color-text);
  background: rgb(17 17 17 / 0.05);
  transition: var(--site-transition);
}

body.site-page footer .social-buttons a:hover,
body.site-page footer .social-buttons a:focus {
  color: var(--site-color-accent);
  background: rgb(229 81 70 / 0.1);
  text-decoration: none;
}

body.site-page footer .social-buttons a:active {
  transform: scale(0.98);
}

/* Legacy green submit / Tilda-style buttons */
body.site-page .t-btn.t142__submit,
body.site-page button.t-btn.t142__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: var(--site-space-2) var(--site-space-4);
  border: none !important;
  border-radius: var(--site-radius-control) !important;
  background: var(--site-color-accent) !important;
  color: #fff !important;
  font-family: var(--site-font);
  font-weight: 600;
  cursor: pointer;
  transition: var(--site-transition);
}

body.site-page .t-btn.t142__submit:hover:not(:disabled),
body.site-page button.t-btn.t142__submit:hover:not(:disabled) {
  background: var(--site-color-accent-hover) !important;
  color: #fff !important;
}

body.site-page .t-btn.t142__submit:focus-visible,
body.site-page button.t-btn.t142__submit:focus-visible {
  outline: 2px solid var(--site-color-accent);
  outline-offset: 3px;
}

body.site-page .t-btn.t142__submit:active:not(:disabled),
body.site-page button.t-btn.t142__submit:active:not(:disabled) {
  transform: scale(0.98);
}

/* Fa-stack icons on home services */
body.site-page .fa-stack.text-primary {
  color: var(--site-color-accent) !important;
}

body.site-page table {
  max-width: 100%;
}

body.site-page .spoiler-body table {
  width: 100%;
  border-collapse: collapse;
  margin: var(--site-space-3) 0;
  font-size: 0.9375rem;
}

body.site-page .spoiler-body table th,
body.site-page .spoiler-body table td {
  padding: var(--site-space-2) var(--site-space-3);
  border: 1px solid rgb(17 17 17 / 0.12);
}

body.site-page .spoiler-body table caption {
  caption-side: top;
  padding-bottom: var(--site-space-2);
  font-weight: 600;
  color: var(--site-color-text);
}

/* Skip link */
.site-skip-link {
  position: absolute;
  left: -9999px;
  z-index: 10000;
  padding: var(--site-space-2) var(--site-space-3);
  background: var(--site-color-surface);
  color: var(--site-color-accent);
  border-radius: var(--site-radius-control);
  transition: var(--site-transition);
}

.site-skip-link:focus {
  left: var(--site-space-3);
  top: var(--site-space-3);
  outline: 2px solid var(--site-color-accent);
  outline-offset: 2px;
}

/* Shell */
.site-container {
  width: 100%;
  max-width: var(--site-container-max);
  margin-inline: auto;
  padding-inline: var(--site-space-3);
}

@media (min-width: 768px) {
  .site-container {
    padding-inline: var(--site-space-4);
  }
}

.site-main {
  display: block;
}

/* Header */
.site-header {
  position: fixed;
  inset-block-start: 0;
  inset-inline: 0;
  z-index: 1000;
  background: var(--site-color-surface);
  box-shadow: var(--site-shadow-soft);
}

.site-header__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--site-space-2);
  min-height: var(--site-header-height);
  padding-block: var(--site-space-2);
}

.site-header__brand {
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--site-color-text);
  text-decoration: none;
  transition: var(--site-transition);
}

.site-header__brand:hover {
  color: var(--site-color-accent);
}

.site-header__brand:focus-visible {
  outline: 2px solid var(--site-color-accent);
  outline-offset: 4px;
  border-radius: var(--site-radius-control);
}

.site-header__menu-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: none;
  border-radius: var(--site-radius-control);
  background: transparent;
  color: var(--site-color-text);
  cursor: pointer;
  transition: var(--site-transition);
}

.site-header__menu-btn:hover {
  background: rgb(17 17 17 / 0.06);
}

.site-header__menu-btn:focus-visible {
  outline: 2px solid var(--site-color-accent);
  outline-offset: 2px;
}

.site-header__menu-btn:active {
  transform: scale(0.98);
}

.site-header__menu-icon {
  display: block;
  width: 22px;
  height: 2px;
  background: currentColor;
  border-radius: 1px;
  box-shadow: 0 -7px 0 currentColor, 0 7px 0 currentColor;
}

@media (min-width: 768px) {
  .site-header__menu-btn {
    display: none;
  }
}

.site-nav {
  flex-basis: 100%;
  display: none;
  flex-direction: column;
  gap: var(--site-space-1);
  padding-block: var(--site-space-3);
}

.site-nav.site-nav--open {
  display: flex;
}

@media (min-width: 768px) {
  .site-nav {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    flex-basis: auto;
    padding-block: 0;
    gap: var(--site-space-2);
  }
}

.site-nav__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--site-space-1);
}

@media (min-width: 768px) {
  .site-nav__list {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--site-space-2);
  }
}

.site-nav__link {
  display: block;
  padding: var(--site-space-2) var(--site-space-3);
  border-radius: var(--site-radius-control);
  color: var(--site-color-text);
  text-decoration: none;
  font-weight: 500;
  transition: var(--site-transition);
}

.site-nav__link:hover {
  color: var(--site-color-accent);
  background: rgb(229 81 70 / 0.08);
}

.site-nav__link:focus-visible {
  outline: 2px solid var(--site-color-accent);
  outline-offset: 2px;
}

.site-nav__link--accent {
  background: var(--site-color-highlight);
  color: var(--site-color-text);
}

.site-nav__link--accent:hover {
  filter: brightness(0.97);
  color: var(--site-color-text);
}

/* Hero (home) */
.site-hero {
  display: grid;
  place-items: center;
  text-align: center;
  min-height: min(70vh, 560px);
  padding: var(--site-space-6) var(--site-space-3);
  background: linear-gradient(
    165deg,
    var(--site-color-surface) 0%,
    rgb(255 209 54 / 0.18) 45%,
    var(--site-color-bg) 100%
  );
}

.site-hero__title {
  margin: 0 0 var(--site-space-4);
  font-size: clamp(1.75rem, 5vw, 2.75rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--site-color-text);
}

.site-hero__lead {
  margin: 0 auto var(--site-space-4);
  max-width: 36rem;
  color: var(--site-color-text-muted);
  font-size: 1.0625rem;
}

/* Sections */
.site-section {
  padding-block: var(--site-space-6);
}

.site-section--muted {
  background: rgb(17 17 17 / 0.03);
}

.site-section__header {
  text-align: center;
  max-width: 48rem;
  margin-inline: auto;
  margin-bottom: var(--site-space-5);
}

.site-section__title {
  margin: 0 0 var(--site-space-3);
  font-size: clamp(1.5rem, 4vw, 2rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--site-color-text);
}

.site-section__subtitle {
  margin: 0;
  color: var(--site-color-text-muted);
  font-size: 1rem;
  font-weight: 400;
}

/* Typography bridges (Bootstrap class names still in markup) */
body.site-page .section-heading {
  font-family: var(--site-font);
  letter-spacing: -0.02em;
}

body.site-page .text-muted {
  color: var(--site-color-text-muted) !important;
}

body.site-page .intro-heading,
body.site-page .intro-lead-in {
  font-family: var(--site-font);
}

/* Embeds */
.site-embed {
  position: relative;
  width: 100%;
  max-width: 960px;
  margin-inline: auto;
  margin-block: var(--site-space-4);
  border-radius: var(--site-radius-card);
  overflow: hidden;
  box-shadow: var(--site-shadow-soft);
  background: var(--site-color-text);
}

.site-embed--16x9 {
  aspect-ratio: 16 / 9;
}

.site-embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* Grid cards (services / portfolio) */
.site-grid {
  display: grid;
  gap: var(--site-space-4);
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .site-grid--3 {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 992px) {
  .site-grid--3 {
    grid-template-columns: repeat(3, 1fr);
  }
}

.site-card {
  background: var(--site-color-surface);
  border-radius: var(--site-radius-card);
  padding: var(--site-space-4);
  box-shadow: var(--site-shadow-soft);
  transition: var(--site-transition);
}

.site-card:hover {
  box-shadow: 0 12px 24px -8px rgb(0 0 0 / 0.12);
}

.site-card__title {
  margin: 0 0 var(--site-space-2);
  font-size: 1.125rem;
  font-weight: 600;
  letter-spacing: -0.02em;
}

.site-card__text {
  margin: 0;
  color: var(--site-color-text-muted);
  font-size: 0.9375rem;
}

.site-card__media {
  margin: calc(-1 * var(--site-space-4));
  margin-bottom: var(--site-space-3);
  border-radius: var(--site-radius-card) var(--site-radius-card) 0 0;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: var(--site-color-bg);
}

.site-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Service icons row */
.site-feature {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--site-space-3);
  text-align: center;
  padding: var(--site-space-4);
  background: var(--site-color-surface);
  border-radius: var(--site-radius-card);
  box-shadow: var(--site-shadow-soft);
}

.site-feature__icon {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: var(--site-radius-card);
  background: rgb(229 81 70 / 0.12);
  color: var(--site-color-accent);
  font-size: 1.5rem;
}

/* Portfolio legacy → card links */
body.site-page .portfolio-item {
  margin-bottom: var(--site-space-4);
}

body.site-page .portfolio-link {
  display: block;
  border-radius: var(--site-radius-card);
  overflow: hidden;
  box-shadow: var(--site-shadow-soft);
  transition: var(--site-transition);
  text-decoration: none;
}

body.site-page .portfolio-link:hover,
body.site-page .portfolio-link:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px -8px rgb(0 0 0 / 0.14);
  outline: none;
}

body.site-page .portfolio-link:focus-visible {
  outline: 2px solid var(--site-color-accent);
  outline-offset: 4px;
}

body.site-page .portfolio-hover {
  display: none;
}

body.site-page .portfolio-caption {
  padding: var(--site-space-3);
  background: var(--site-color-surface);
  border-radius: 0 0 var(--site-radius-card) var(--site-radius-card);
}

body.site-page .portfolio-caption h4 {
  margin-top: 0;
  font-size: 1.0625rem;
  font-weight: 600;
  letter-spacing: -0.02em;
}

/* Timeline */
body.site-page .timeline {
  list-style: none;
  padding: 0;
  margin: 0;
}

body.site-page .timeline > li {
  margin-bottom: var(--site-space-5);
}

body.site-page .timeline-panel {
  background: var(--site-color-surface);
  border-radius: var(--site-radius-card);
  padding: var(--site-space-4);
  box-shadow: var(--site-shadow-soft);
}

body.site-page .timeline-image {
  border-radius: var(--site-radius-card);
  overflow: hidden;
}

body.site-page .timeline-image img {
  border-radius: var(--site-radius-card);
}

/* Reviews */
body.site-page .team-member {
  background: var(--site-color-surface);
  border-radius: var(--site-radius-card);
  padding: var(--site-space-4);
  box-shadow: var(--site-shadow-soft);
  height: 100%;
  margin-bottom: var(--site-space-4);
}

body.site-page .team-member h4 {
  margin-top: 0;
  letter-spacing: -0.02em;
}

/* Buttons */
.site-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--site-space-2);
  min-height: 44px;
  padding: var(--site-space-2) var(--site-space-4);
  border: none;
  border-radius: var(--site-radius-control);
  font-family: var(--site-font);
  font-weight: 600;
  font-size: 1rem;
  text-decoration: none;
  cursor: pointer;
  transition: var(--site-transition);
}

.site-btn:focus-visible {
  outline: 2px solid var(--site-color-accent);
  outline-offset: 3px;
}

.site-btn:active:not(:disabled) {
  transform: scale(0.98);
}

.site-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.site-btn--primary {
  background: var(--site-color-accent);
  color: #fff;
}

.site-btn--primary:hover:not(:disabled) {
  background: var(--site-color-accent-hover);
}

.site-btn--secondary {
  background: var(--site-color-highlight);
  color: var(--site-color-text);
}

.site-btn--secondary:hover:not(:disabled) {
  filter: brightness(0.96);
}

.site-btn--ghost {
  background: transparent;
  color: var(--site-color-accent);
  border: 2px solid rgb(229 81 70 / 0.35);
}

.site-btn--ghost:hover:not(:disabled) {
  background: rgb(229 81 70 / 0.08);
}

body.site-page .btn-xl,
body.site-page .btn-primary {
  border-radius: var(--site-radius-control);
  transition: var(--site-transition);
  font-family: var(--site-font);
}

body.site-page .btn-xl {
  background: var(--site-color-accent);
  border-color: var(--site-color-accent);
  color: #fff;
}

body.site-page .btn-xl:hover,
body.site-page .btn-primary:hover {
  background: var(--site-color-accent-hover);
  border-color: var(--site-color-accent-hover);
  color: #fff;
}

body.site-page .btn-xl:active,
body.site-page .btn-primary:active {
  transform: scale(0.98);
}

body.site-page a.choice__submit,
body.site-page a.btn-xl {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: var(--site-space-2);
  padding: var(--site-space-2) var(--site-space-4);
  min-height: 44px;
  border-radius: var(--site-radius-control);
}

body.site-page a.choice__submit {
  background: var(--site-color-highlight);
  color: var(--site-color-text);
  font-weight: 600;
  text-decoration: none;
  transition: var(--site-transition);
}

body.site-page a.choice__submit:hover {
  filter: brightness(0.96);
  color: var(--site-color-text);
}

body.site-page a.choice__submit:focus-visible {
  outline: 2px solid var(--site-color-accent);
  outline-offset: 3px;
}

body.site-page a.choice__submit:active {
  transform: scale(0.98);
}

/* CTA stack */
.site-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--site-space-3);
  margin-top: var(--site-space-4);
}

.site-cta--start {
  justify-content: flex-start;
}

/* Footer */
.site-footer {
  padding: var(--site-space-5) 0;
  background: var(--site-color-surface);
  box-shadow: 0 -1px 0 rgb(17 17 17 / 0.06);
}

.site-footer__inner {
  display: grid;
  gap: var(--site-space-4);
  place-items: center;
  text-align: center;
}

@media (min-width: 768px) {
  .site-footer__inner {
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    text-align: start;
  }

  .site-footer__inner > :last-child {
    justify-self: end;
    text-align: end;
  }
}

.site-footer__copy {
  margin: 0;
  color: var(--site-color-text-muted);
  font-size: 0.9375rem;
}

.site-social {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: var(--site-space-2);
  margin: 0;
  padding: 0;
  justify-content: center;
}

.site-social__link {
  display: inline-flex;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  border-radius: var(--site-radius-control);
  color: var(--site-color-text);
  background: rgb(17 17 17 / 0.05);
  transition: var(--site-transition);
  text-decoration: none;
}

.site-social__link:hover {
  color: var(--site-color-accent);
  background: rgb(229 81 70 / 0.1);
}

.site-social__link:focus-visible {
  outline: 2px solid var(--site-color-accent);
  outline-offset: 2px;
}

.site-social__link:active {
  transform: scale(0.98);
}

/* Align legacy Bootstrap containers with shell width */
body.site-page .container {
  max-width: var(--site-container-max);
}

/* Forms & tables (inner pages) */
body.site-page .form-control {
  border-radius: var(--site-radius-control);
  border: 1px solid rgb(17 17 17 / 0.12);
  padding: var(--site-space-2) var(--site-space-3);
  font-family: var(--site-font);
  transition: var(--site-transition);
}

body.site-page .form-control:focus {
  border-color: var(--site-color-accent);
  box-shadow: 0 0 0 3px rgb(229 81 70 / 0.2);
  outline: none;
}

body.site-page table[border="0"] {
  width: 100%;
  border-collapse: collapse;
}

body.site-page table[border="0"] td {
  display: block;
  width: 100% !important;
  padding: var(--site-space-2) 0;
  text-align: start !important;
}

@media (min-width: 768px) {
  body.site-page table[border="0"] tr {
    display: table-row;
  }

  body.site-page table[border="0"] td {
    display: table-cell;
    width: auto !important;
    vertical-align: top;
    padding: var(--site-space-2) var(--site-space-3);
  }

  body.site-page table[border="0"] td:first-child {
    white-space: nowrap;
    padding-right: var(--site-space-4);
  }
}

body.site-page .button-example {
  margin: var(--site-space-1);
  padding: var(--site-space-1) var(--site-space-3);
  border-radius: var(--site-radius-control);
  border: 1px solid rgb(17 17 17 / 0.15);
  background: var(--site-color-surface);
  cursor: pointer;
  font-family: var(--site-font);
  transition: var(--site-transition);
}

body.site-page .button-example:hover {
  border-color: var(--site-color-accent);
  color: var(--site-color-accent);
}

body.site-page .button-example:focus-visible {
  outline: 2px solid var(--site-color-accent);
  outline-offset: 2px;
}

body.site-page .button-example:active {
  transform: scale(0.98);
}

/* Status list */
body.site-page .b-status__list {
  text-align: start;
  max-width: 42rem;
  margin-inline: auto;
  margin-bottom: var(--site-space-4);
  padding: var(--site-space-4);
  background: var(--site-color-surface);
  border-radius: var(--site-radius-card);
  box-shadow: var(--site-shadow-soft);
}

body.site-page .b-status__i {
  position: relative;
  padding-left: var(--site-space-5);
  margin-bottom: var(--site-space-3);
  color: var(--site-color-text-muted);
}

body.site-page .b-status__i:last-child {
  margin-bottom: 0;
}

body.site-page .b-status__i .check::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.35em;
  width: 10px;
  height: 18px;
  border: solid var(--site-color-accent);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

/* Spoilers (FAQ / tariff) */
.spoiler-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--site-space-3);
  width: 100%;
  padding: var(--site-space-3) var(--site-space-4);
  margin-bottom: var(--site-space-2);
  background: var(--site-color-surface);
  border-radius: var(--site-radius-card);
  box-shadow: var(--site-shadow-soft);
  cursor: pointer;
  font-weight: 600;
  color: var(--site-color-text);
  text-align: start;
  transition: var(--site-transition);
  border: none;
  font: inherit;
  line-height: 1.5;
}

.spoiler-title:hover {
  box-shadow: 0 8px 16px -6px rgb(0 0 0 / 0.12);
}

.spoiler-title:focus-visible {
  outline: 2px solid var(--site-color-accent);
  outline-offset: 2px;
}

.spoiler-title:active {
  transform: scale(0.995);
}

/* Плюс (свернуто) ↔ минус (развернуто): вертикальная линия SVG скрывается */
.spoiler-title .t585__lines svg path:last-of-type {
  transition: opacity 0.2s ease-in-out;
}

.spoiler-title.spoiler-title--open .t585__lines svg path:last-of-type {
  opacity: 0;
}

.spoiler-body {
  padding: 0 var(--site-space-4) var(--site-space-4);
  margin-bottom: var(--site-space-3);
  color: var(--site-color-text-muted);
}

.spoiler-body[hidden] {
  display: none !important;
}

.t585_title {
  margin: var(--site-space-5) 0 var(--site-space-3);
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  text-align: center;
}

/* FAQ: по ширине на desktop — сброс Bootstrap .text-center у колонки (иначе justify не действует) */
@media (min-width: 992px) {
  body.page-faq #services > .container > .row:first-child > .col-lg-12.text-center {
    text-align: start;
  }

  body.page-faq #services .section-heading {
    text-align: center;
  }

  body.page-faq #services #kmsf {
    text-align: center;
  }

  body.page-faq #services .spoiler-body {
    text-align: justify !important;
    hyphens: auto;
    -webkit-hyphens: auto;
    hyphenate-limit-chars: 6 3 3;
    overflow-x: auto;
    max-width: 100%;
    box-sizing: border-box;
  }

  body.page-faq #services .spoiler-body img {
    display: block;
    margin-inline: auto;
    max-width: 100%;
    height: auto;
  }

  body.page-faq #services .item-intro.text-muted {
    display: block;
    width: 100%;
    max-width: none;
    margin-inline: 0;
    text-align: justify !important;
    hyphens: auto;
    -webkit-hyphens: auto;
  }

  body.page-faq #services .spoiler-body td {
    text-align: justify;
  }

  body.page-faq #services .spoiler-body th {
    text-align: center;
  }

  body.page-faq #services .spoiler-body table caption {
    text-align: center;
  }
}

/* Modals — soften */
body.site-page .modal-content {
  border-radius: var(--site-radius-card);
  border: none;
  box-shadow: 0 24px 48px -12px rgb(0 0 0 / 0.25);
}

body.site-page .portfolio-modal .modal-body {
  font-family: var(--site-font);
}

/* Misc utilities */
.site-stack {
  display: flex;
  flex-direction: column;
  gap: var(--site-space-2);
}

.site-link-list a {
  color: var(--site-color-accent);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: var(--site-transition);
}

.site-link-list a:hover {
  color: var(--site-color-accent-hover);
}

.site-link-list a:focus-visible {
  outline: 2px solid var(--site-color-accent);
  outline-offset: 2px;
  border-radius: 2px;
}
