/* Веб-шрифты (SIL OFL 1.1). Файлы кладёт в /assets/fonts/ скрипт setup.php или scripts/fetch-fonts.py. */
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 500; font-display: swap; src: url(/assets/fonts/cormorant-garamond-500-cyrillic.woff2) format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 500; font-display: swap; src: url(/assets/fonts/cormorant-garamond-500-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 600; font-display: swap; src: url(/assets/fonts/cormorant-garamond-600-cyrillic.woff2) format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 600; font-display: swap; src: url(/assets/fonts/cormorant-garamond-600-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url(/assets/fonts/inter-400-cyrillic.woff2) format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url(/assets/fonts/inter-400-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url(/assets/fonts/inter-500-cyrillic.woff2) format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 500; font-display: swap; src: url(/assets/fonts/inter-500-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url(/assets/fonts/inter-600-cyrillic.woff2) format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 600; font-display: swap; src: url(/assets/fonts/inter-600-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* Mexico Migration — стили сайта. Значения по «Website style 1.0». */

:root {
  --mm-bg: #FAF9F6;
  --mm-surface: #FFFFFF;
  --mm-soft: #F2F0EB;
  --mm-heading: #132B46;
  --mm-text: #344454;
  --mm-muted: #596773;
  --mm-line: #DEDCD6;
  --mm-field: #7E8993;
  --mm-link: #245EC7;
  --mm-focus: #245EC7;
  --mm-green: #006847;
  --mm-red: #CE1126;
  --mm-btn: #132B46;
  --mm-btn-hover: #203F60;
  --mm-btn-active: #0C1D30;
  --mm-ok-bg: #EEF6F1;

  --mm-serif: "Cormorant Garamond", "Cormorant", Georgia, "Times New Roman", serif;
  --mm-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

  --mm-r-btn: 6px;
  --mm-r-card: 8px;
  --mm-r-photo: 12px;
  --mm-gutter: 40px;
  --mm-section: 104px;
  --mm-t: 160ms ease;
}
@media (max-width: 767px) {
  :root { --mm-gutter: 20px; --mm-section: 56px; }
}

/* ---- база ---- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 24px; }
body {
  margin: 0; background: var(--mm-bg); color: var(--mm-text);
  font: 400 17px/28px var(--mm-sans);
  font-feature-settings: "cv11", "ss01";
  -webkit-font-smoothing: antialiased;
  overflow-wrap: break-word;
}
@media (max-width: 767px) { body { font-size: 16px; line-height: 26px; } }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
p { margin: 0 0 20px; }
ul, ol { margin: 0 0 20px; }
main:focus { outline: none; }
[hidden] { display: none !important; }

h1, h2, h3, h4 { font-family: var(--mm-serif); color: var(--mm-heading); font-weight: 500; margin: 0; text-wrap: balance; }
h1 { font-size: 64px; line-height: 69px; letter-spacing: -0.01em; }
h2 { font-size: 44px; line-height: 51px; }
h3 { font-size: 30px; line-height: 36px; font-weight: 600; }
h4 { font-size: 22px; line-height: 28px; font-weight: 600; }
@media (max-width: 767px) {
  h1 { font-size: 40px; line-height: 43px; }
  h2 { font-size: 32px; line-height: 37px; }
  h3 { font-size: 26px; line-height: 31px; }
}

:focus-visible { outline: 2px solid var(--mm-focus); outline-offset: 4px; border-radius: 2px; }

.mm-vh { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.mm-muted { color: var(--mm-muted); }
.mm-skip { position: absolute; left: 16px; top: -100px; z-index: 100; background: var(--mm-btn); color: #fff; padding: 12px 16px; border-radius: var(--mm-r-btn); text-decoration: none; }
.mm-skip:focus { top: 16px; }

.mm-container { width: 100%; max-width: calc(1200px + 2 * var(--mm-gutter)); margin: 0 auto; padding: 0 var(--mm-gutter); }
.mm-container--narrow { max-width: calc(800px + 2 * var(--mm-gutter)); }

.mm-icon { width: 24px; height: 24px; flex: none; }
.mm-icon--arrow { width: 22px; height: 22px; transition: transform var(--mm-t); }

/* ---- кнопки и ссылки ---- */
.mm-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 12px 24px; border-radius: var(--mm-r-btn);
  font: 500 16px/22px var(--mm-sans); text-decoration: none; text-align: center;
  border: 1px solid transparent; cursor: pointer;
  transition: background-color var(--mm-t), border-color var(--mm-t), color var(--mm-t);
}
.mm-btn--primary { background: var(--mm-btn); color: #fff; }
.mm-btn--primary:hover { background: var(--mm-btn-hover); }
.mm-btn--primary:active { background: var(--mm-btn-active); }
.mm-btn--secondary { background: var(--mm-surface); color: var(--mm-heading); border-color: var(--mm-heading); }
.mm-btn--secondary:hover { background: var(--mm-soft); }
.mm-btn--secondary:active { background: #E7E4DC; }
.mm-btn[disabled], .mm-btn[aria-disabled="true"] { background: #E9E7E1; color: #6B7580; border-color: #CFCCC4; cursor: not-allowed; }
.mm-btn--missing { border-style: dashed; font-size: 14px; }
.mm-btn .mm-icon { width: 20px; height: 20px; }

.mm-link { color: var(--mm-heading); font-weight: 500; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.mm-link:hover { text-decoration-thickness: 2px; }

.mm-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 32px 0 0; }
.mm-actions .mm-link { margin-left: 16px; }
@media (max-width: 767px) {
  .mm-actions { flex-direction: column; align-items: stretch; }
  .mm-actions .mm-btn { width: 100%; }
  .mm-actions .mm-link { margin: 8px 0 0; align-self: flex-start; }
}

.mm-tricolor { display: block; width: 120px; height: 3px; background: linear-gradient(90deg, var(--mm-green) 0 33.33%, transparent 33.33% 66.66%, var(--mm-red) 66.66%); }

/* ---- шапка ---- */
.mm-header { border-bottom: 1px solid var(--mm-line); background: var(--mm-bg); }
.mm-header__inner { display: flex; align-items: center; gap: 24px; min-height: 88px; }
.mm-logo { flex: none; display: block; padding: 8px 0; margin-right: auto; }
.mm-logo img { width: 210px; height: auto; }
.mm-nav { display: flex; align-items: center; gap: 28px; }
.mm-nav__list { display: flex; gap: 28px; list-style: none; margin: 0; padding: 0; }
.mm-nav__list a, .mm-lang a { font: 500 15px/20px var(--mm-sans); color: var(--mm-heading); text-decoration: none; padding: 8px 0; border-bottom: 1px solid transparent; }
.mm-nav__list a:hover, .mm-nav__list a[aria-current="page"] { border-bottom-color: var(--mm-heading); }
.mm-nav__extra { display: none; }
.mm-lang { display: flex; list-style: none; margin: 0; padding: 0 0 0 28px; border-left: 1px solid var(--mm-line); gap: 4px; }
.mm-lang a { display: inline-flex; min-width: 36px; min-height: 36px; align-items: center; justify-content: center; padding: 0 6px; border: 1px solid transparent; border-radius: var(--mm-r-btn); color: var(--mm-muted); font-size: 14px; }
.mm-lang a:hover { color: var(--mm-heading); }
.mm-lang a[aria-current="true"] { color: var(--mm-heading); border-color: var(--mm-line); background: var(--mm-surface); }
.mm-header__cta { min-height: 44px; padding: 10px 20px; }
.mm-menu-btn, .mm-nav__top { display: none; }

@media (max-width: 1099px) {
  .mm-header__inner { min-height: 72px; }
  .mm-logo img { width: 168px; }
  .mm-menu-btn {
    display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 12px;
    background: none; border: 1px solid var(--mm-line); border-radius: var(--mm-r-btn);
    color: var(--mm-heading); font: 500 15px/20px var(--mm-sans); cursor: pointer;
  }
  .mm-nav {
    position: fixed; inset: 0 0 0 auto; z-index: 50; width: min(380px, 100%);
    flex-direction: column; align-items: stretch; gap: 24px;
    background: var(--mm-bg); border-left: 1px solid var(--mm-line);
    padding: 16px var(--mm-gutter) 32px; overflow-y: auto;
    transform: translateX(100%); visibility: hidden;
    transition: transform var(--mm-t), visibility 0s linear 160ms;
  }
  .mm-nav.is-open { transform: none; visibility: visible; transition: transform var(--mm-t); }
  .mm-nav__top { display: flex; justify-content: flex-end; }
  .mm-menu-close { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; background: none; border: 1px solid var(--mm-line); border-radius: var(--mm-r-btn); color: var(--mm-heading); cursor: pointer; }
  .mm-nav__list { flex-direction: column; gap: 0; }
  .mm-nav__list li { border-bottom: 1px solid var(--mm-line); }
  .mm-nav__list a { display: block; padding: 14px 0; font: 500 28px/34px var(--mm-serif); border: 0; }
  .mm-nav__extra { display: block; }
  .mm-lang { border-left: 0; padding: 0; }
  .mm-header__cta { width: 100%; }
  body.mm-menu-open { overflow: hidden; }
  .mm-scrim { position: fixed; inset: 0; z-index: 40; background: rgba(19, 43, 70, .28); }
}

/* ---- крошки, заголовки страниц ---- */
.mm-crumbs ol { display: flex; flex-wrap: wrap; list-style: none; margin: 0; padding: 20px 0 0; font-size: 14px; line-height: 21px; color: var(--mm-muted); }
.mm-crumbs li + li::before { content: "/"; margin: 0 10px; color: var(--mm-line); }
.mm-crumbs a { color: var(--mm-muted); text-underline-offset: 3px; }
.mm-crumbs a:hover { color: var(--mm-heading); }

.mm-lead { font-size: 20px; line-height: 32px; color: var(--mm-text); margin: 24px 0 0; max-width: 640px; }
@media (max-width: 767px) { .mm-lead { font-size: 18px; line-height: 28px; } }
.mm-meta { display: flex; flex-wrap: wrap; gap: 4px 24px; font-size: 14px; line-height: 21px; color: var(--mm-muted); margin: 24px 0 0; }

.mm-page-head { padding: 40px 0 56px; border-bottom: 1px solid var(--mm-line); }
.mm-page-head--photo { display: grid; grid-template-columns: minmax(0, 1fr) 480px; gap: 56px; align-items: center; }
@media (max-width: 1023px) { .mm-page-head--photo { grid-template-columns: 1fr; gap: 32px; } }
.mm-article__head { padding: 40px 0 32px; }

/* ---- фото ---- */
.mm-photo { margin: 0; }
.mm-photo img { width: 100%; height: auto; object-fit: cover; border-radius: var(--mm-r-photo); background: var(--mm-soft); }
.mm-photo--hero img, .mm-photo--head img { aspect-ratio: 1 / 1; }
.mm-photo--hero picture, .mm-photo--head picture { display: block; position: relative; }
.mm-photo--hero picture::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -9px; height: 3px;
  background: linear-gradient(90deg, var(--mm-green) 0 33.33%, transparent 33.33% 66.66%, var(--mm-red) 66.66%);
}
.mm-credit { font-size: 13px; line-height: 20px; color: var(--mm-muted); margin-top: 16px; }
.mm-credit a { color: var(--mm-muted); text-underline-offset: 3px; }
@media (max-width: 767px) {
  .mm-photo--hero img, .mm-photo--head img, .mm-photo--about img, .mm-photo--wide img { aspect-ratio: 4 / 3 !important; }
}

/* ---- секции ---- */
.mm-section { padding: var(--mm-section) 0 0; }
.mm-section::before { content: ""; display: block; width: calc(100% - 2 * var(--mm-gutter)); max-width: 1200px; margin: 0 auto calc(var(--mm-section) * .5); border-top: 1px solid var(--mm-line); }
.mm-section > .mm-container > h2, .mm-split__intro h2, .mm-section__head h2 { margin-bottom: 40px; }
.mm-section__head { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; flex-wrap: wrap; }
.mm-section__head h2 { margin-bottom: 40px; }

/* hero */
.mm-hero { padding: 56px 0 0; }
.mm-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.mm-hero__text h1 { max-width: 560px; }
.mm-hero__lead { font-size: 21px; line-height: 33px; color: var(--mm-text); margin: 28px 0 0; max-width: 500px; }
@media (max-width: 1023px) {
  .mm-hero__grid { grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 767px) {
  .mm-hero { padding-top: 32px; }
  .mm-hero__lead { font-size: 18px; line-height: 28px; margin-top: 20px; }
}

/* сетки карточек */
.mm-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 24px; }
.mm-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mm-grid--dirs { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.mm-grid--dirs > li { grid-column: span 2; }
.mm-grid--dirs > li:nth-child(n+4) { grid-column: span 3; }
@media (max-width: 1023px) {
  .mm-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mm-grid--dirs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mm-grid--dirs > li, .mm-grid--dirs > li:nth-child(n+4) { grid-column: span 1; }
  .mm-grid--dirs > li:last-child { grid-column: span 2; }
}
@media (max-width: 767px) {
  .mm-grid--3, .mm-grid--dirs { grid-template-columns: 1fr; }
  .mm-grid--dirs > li:last-child { grid-column: span 1; }
}

.mm-card { position: relative; background: var(--mm-surface); border: 1px solid var(--mm-line); border-radius: var(--mm-r-card); padding: 28px; }
@media (max-width: 767px) { .mm-card { padding: 24px; } }
.mm-card h3 { font-size: 30px; line-height: 36px; margin: 20px 0 10px; }
.mm-card p { color: var(--mm-muted); font-size: 16px; line-height: 25px; margin: 0; }
.mm-card__icon { display: inline-flex; width: 64px; height: 64px; border-radius: 50%; background: var(--mm-soft); color: var(--mm-heading); align-items: center; justify-content: center; }
.mm-card__icon .mm-icon { width: 30px; height: 30px; }
.mm-card__link { text-decoration: none; }
.mm-card__link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.mm-card__link:focus-visible { outline: none; }
.mm-card:has(.mm-card__link:focus-visible) { outline: 2px solid var(--mm-focus); outline-offset: 4px; }
.mm-card:hover { border-color: #C9C6BE; }
.mm-card:hover .mm-icon--arrow { transform: translateX(4px); }
.mm-card__more { display: inline-flex; align-items: center; gap: 10px; margin-top: 20px; color: var(--mm-heading); font-weight: 500; font-size: 15px; }
.mm-card--dir { display: flex; flex-direction: column; }
.mm-card--dir .mm-card__more { margin-top: auto; padding-top: 20px; }
.mm-card--article h3 { font-size: 26px; line-height: 31px; margin-top: 0; }
.mm-card--article .mm-row__meta { margin-top: 16px; }

/* ситуации */
.mm-split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; }
@media (max-width: 1023px) { .mm-split { grid-template-columns: 1fr; gap: 0; } }
.mm-split__intro p { color: var(--mm-muted); max-width: 420px; }
.mm-situations { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--mm-line); }
.mm-situations li { border-bottom: 1px solid var(--mm-line); }
.mm-situations a { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 20px 4px; text-decoration: none; color: var(--mm-heading); }
.mm-situations__q { font-size: 18px; line-height: 27px; }
.mm-situations__a { flex: none; display: inline-flex; align-items: center; gap: 10px; font-family: var(--mm-serif); font-size: 22px; font-weight: 600; }
.mm-situations a:hover .mm-situations__q { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.mm-situations a:hover .mm-icon--arrow { transform: translateX(4px); }
@media (max-width: 767px) {
  .mm-situations a { flex-direction: column; align-items: flex-start; gap: 6px; padding: 16px 0; }
  .mm-situations__q { font-size: 17px; }
  .mm-situations__a { font-size: 20px; }
}

/* этапы */
.mm-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mm-steps li { display: grid; grid-template-columns: 56px 1fr; gap: 20px; padding: 0 28px; border-left: 1px solid var(--mm-line); }
.mm-steps li:first-child { padding-left: 0; border-left: 0; }
.mm-steps__n { width: 56px; height: 56px; border-radius: 50%; background: var(--mm-soft); display: inline-flex; align-items: center; justify-content: center; font: 500 24px/1 var(--mm-serif); color: var(--mm-heading); }
.mm-steps h3 { font-size: 26px; line-height: 31px; margin: 8px 0 12px; }
.mm-steps p { color: var(--mm-muted); font-size: 16px; line-height: 25px; margin: 0; }
@media (max-width: 1023px) {
  .mm-steps { grid-template-columns: 1fr; gap: 28px; }
  .mm-steps li, .mm-steps li:first-child { padding: 0; border-left: 0; }
}

/* о компании */
.mm-about { display: grid; grid-template-columns: 480px minmax(0, 1fr); gap: 56px; align-items: start; }
.mm-photo--about img { aspect-ratio: 4 / 5; }
.mm-about__text h2 { margin-bottom: 28px; }
@media (max-width: 1023px) { .mm-about { grid-template-columns: 1fr; gap: 32px; } .mm-about .mm-photo { max-width: 560px; } }

.mm-facts { margin: 28px 0; border-top: 1px solid var(--mm-line); }
.mm-facts > div { display: grid; grid-template-columns: 200px 1fr; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--mm-line); }
.mm-facts dt { color: var(--mm-muted); font-size: 15px; }
.mm-facts dd { margin: 0; color: var(--mm-heading); }
@media (max-width: 767px) { .mm-facts > div { grid-template-columns: 1fr; gap: 2px; } }
.mm-people { list-style: none; padding: 0; margin: 28px 0; display: grid; gap: 24px; }
.mm-person { display: flex; gap: 20px; align-items: flex-start; }
.mm-person img { border-radius: 50%; width: 96px; height: 96px; object-fit: cover; }
.mm-person h3 { font-size: 24px; line-height: 30px; }

/* панорама */
.mm-panorama::before { display: none; }
.mm-photo--wide img { aspect-ratio: 21 / 9; }

/* ---- списки материалов ---- */
.mm-rows { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--mm-line); }
.mm-row { padding: 24px 0; border-bottom: 1px solid var(--mm-line); }
.mm-row__title { font-family: var(--mm-serif); font-size: 28px; line-height: 34px; font-weight: 600; color: var(--mm-heading); margin: 0 0 8px; }
.mm-row__title a { text-decoration: none; }
.mm-row__title a:hover { text-decoration: underline; text-underline-offset: 5px; text-decoration-thickness: 1px; }
.mm-row p { margin: 0; color: var(--mm-muted); }
.mm-row__meta { font-size: 14px; line-height: 21px; margin-top: 8px !important; }
.mm-tags { display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: 15px; color: var(--mm-muted); margin: 0 0 24px; }
.mm-tags a { color: var(--mm-heading); text-underline-offset: 4px; }
.mm-pager ul { display: flex; gap: 8px; list-style: none; padding: 0; margin: 32px 0 0; }
.mm-pager a { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; border: 1px solid var(--mm-line); border-radius: var(--mm-r-btn); text-decoration: none; color: var(--mm-heading); }
.mm-pager a[aria-current="page"] { background: var(--mm-btn); color: #fff; border-color: var(--mm-btn); }

/* ---- страница услуги ---- */
.mm-layout { display: grid; grid-template-columns: minmax(0, 720px) 320px; justify-content: space-between; gap: 56px; padding-top: 48px; }
.mm-aside { position: relative; }
.mm-aside__card { position: sticky; top: 24px; background: var(--mm-surface); border: 1px solid var(--mm-line); border-radius: var(--mm-r-card); padding: 28px; }
.mm-aside__card .mm-actions { flex-direction: column; align-items: stretch; margin-top: 20px; }
.mm-aside__card .mm-btn { width: 100%; }
.mm-aside__card p { font-size: 16px; line-height: 25px; color: var(--mm-muted); margin: 0; }
.mm-aside__title { font: 600 24px/30px var(--mm-serif) !important; color: var(--mm-heading) !important; margin: 0 0 10px !important; }
.mm-aside__nav { margin-top: 32px; }
.mm-aside__nav ul { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--mm-line); }
.mm-aside__nav li { border-bottom: 1px solid var(--mm-line); }
.mm-aside__nav a { display: block; padding: 12px 0; color: var(--mm-heading); text-decoration: none; font-weight: 500; }
.mm-aside__nav a:hover { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 1023px) {
  .mm-layout { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .mm-aside__card { position: static; }
}

/* оглавление */
.mm-toc { border-top: 1px solid var(--mm-line); border-bottom: 1px solid var(--mm-line); padding: 20px 0; margin: 0 0 16px; }
.mm-toc__title { font: 600 15px/21px var(--mm-sans); color: var(--mm-heading); margin: 0 0 10px; }
.mm-toc ol { margin: 0; padding-left: 20px; columns: 2; column-gap: 40px; }
.mm-toc li { break-inside: avoid; padding: 3px 0; font-size: 16px; line-height: 24px; }
.mm-toc a { color: var(--mm-link); text-underline-offset: 3px; }
@media (max-width: 767px) { .mm-toc ol { columns: 1; } }

/* ---- длинный текст ---- */
.mm-prose { font-size: 18px; line-height: 31.5px; max-width: 720px; }
@media (max-width: 767px) { .mm-prose { font-size: 17px; line-height: 29.75px; } }
.mm-prose > :first-child { margin-top: 0; }
.mm-prose h2 { margin: 48px 0 20px; }
.mm-prose h3 { margin: 32px 0 16px; }
.mm-prose p, .mm-prose ul, .mm-prose ol { margin: 0 0 20px; }
.mm-prose ul, .mm-prose ol { padding-left: 24px; }
.mm-prose li { margin: 0 0 8px; padding-left: 4px; }
.mm-prose li::marker { color: var(--mm-muted); }
.mm-prose a { color: var(--mm-link); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.mm-prose a:hover { text-decoration-thickness: 2px; }
.mm-prose strong { color: var(--mm-heading); font-weight: 600; }
.mm-callout { background: var(--mm-soft); border-left: 2px solid var(--mm-green); border-radius: 0 var(--mm-r-card) var(--mm-r-card) 0; padding: 20px 24px; margin: 28px 0; font-size: 17px; line-height: 28px; }
.mm-callout p { margin: 0; }
.mm-callout__title { font: 600 20px/26px var(--mm-serif) !important; color: var(--mm-heading); margin: 0 0 6px !important; }
.mm-table-wrap { overflow-x: auto; margin: 0 0 24px; border: 1px solid var(--mm-line); border-radius: var(--mm-r-card); background: var(--mm-surface); }
.mm-table-wrap table { border-collapse: collapse; width: 100%; min-width: 520px; font-size: 16px; line-height: 24px; }
.mm-table-wrap th, .mm-table-wrap td { text-align: left; vertical-align: top; padding: 12px 16px; border-bottom: 1px solid var(--mm-line); }
.mm-table-wrap th { background: var(--mm-soft); color: var(--mm-heading); font-weight: 600; }
.mm-table-wrap tr:last-child td { border-bottom: 0; }

/* FAQ */
.mm-faq { margin-top: 56px; }
.mm-faq h2 { margin-bottom: 24px; }
.mm-faq--home { margin-top: 0; }
.mm-faq__item { border-top: 1px solid var(--mm-line); }
.mm-faq__item:last-child { border-bottom: 1px solid var(--mm-line); }
.mm-faq__item summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 20px 0; cursor: pointer; font: 600 22px/29px var(--mm-serif); color: var(--mm-heading); }
.mm-faq__item summary::-webkit-details-marker { display: none; }
.mm-faq__item summary .mm-icon { flex: none; width: 36px; height: 36px; padding: 8px; border-radius: 50%; background: var(--mm-soft); transition: transform var(--mm-t); }
.mm-faq__item[open] summary .mm-icon { transform: rotate(45deg); }
.mm-faq__a { padding: 0 56px 20px 0; }
.mm-faq__a p { margin: 0; }
.mm-faq__a a { color: var(--mm-link); text-underline-offset: 3px; }
@media (max-width: 767px) { .mm-faq__item summary { font-size: 20px; line-height: 26px; } .mm-faq__a { padding-right: 0; } }

.mm-sources { margin-top: 48px; font-size: 16px; line-height: 25px; }
.mm-sources h2 { font-size: 30px; line-height: 36px; margin-bottom: 16px; }
.mm-sources ul { padding-left: 20px; margin: 0; }
.mm-sources li { margin-bottom: 6px; }
.mm-sources a { color: var(--mm-link); text-underline-offset: 3px; }

.mm-cta { margin: 56px 0 0; padding: 32px; background: var(--mm-soft); border-radius: var(--mm-r-card); }
.mm-cta__title { font-size: 32px; line-height: 38px; margin: 0 0 12px; }
.mm-cta p { color: var(--mm-text); }
.mm-cta .mm-actions { margin-top: 20px; }
.mm-cta__more { margin: 20px 0 0 !important; font-size: 15px; }
.mm-cta__more a { color: var(--mm-link); }
@media (max-width: 767px) { .mm-cta { padding: 24px 20px; } }

/* ---- контакты и форма ---- */
.mm-contact { padding-bottom: var(--mm-section); }
.mm-contact__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: start; }
@media (max-width: 1023px) { .mm-contact__grid { grid-template-columns: 1fr; gap: 32px; } }
.mm-contact__intro h2 { margin-bottom: 20px; }
.mm-contact__intro > p { color: var(--mm-muted); max-width: 440px; }
.mm-contact-list { list-style: none; padding: 0; margin: 24px 0; }
.mm-contact-list li { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--mm-line); flex-wrap: wrap; }
.mm-contact-list li:first-child { border-top: 1px solid var(--mm-line); }
.mm-contact-list .mm-icon { color: var(--mm-heading); width: 20px; height: 20px; }
.mm-contact-list a { color: var(--mm-heading); font-weight: 500; text-underline-offset: 4px; }
.mm-missing-note { color: var(--mm-red); font-size: 15px; }
.mm-card--form { padding: 32px; }
@media (max-width: 767px) { .mm-card--form { padding: 24px 20px; } }

.mm-form { display: grid; gap: 22px; }
.mm-field { display: grid; gap: 8px; margin: 0; border: 0; padding: 0; min-width: 0; }
.mm-field > label, .mm-field legend { font-weight: 500; color: var(--mm-heading); font-size: 16px; line-height: 22px; padding: 0; }
.mm-field legend { margin-bottom: 8px; }
.mm-field input[type="text"], .mm-field input[type="email"], .mm-field input[type="tel"], .mm-field textarea {
  width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid var(--mm-field); border-radius: var(--mm-r-btn);
  background: var(--mm-surface); color: var(--mm-heading); font: 400 16px/24px var(--mm-sans);
  transition: border-color var(--mm-t);
}
.mm-field textarea { min-height: 132px; resize: vertical; }
.mm-field input:hover, .mm-field textarea:hover { border-color: var(--mm-heading); }
.mm-field input:focus-visible, .mm-field textarea:focus-visible { outline: 2px solid var(--mm-focus); outline-offset: 4px; border-color: var(--mm-heading); }
.mm-field__hint { font-size: 14px; line-height: 21px; color: var(--mm-muted); margin: 0; }
.mm-field__hint:empty { display: none; }
.mm-field__error { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; line-height: 21px; color: var(--mm-red); margin: 0; font-weight: 500; }
.mm-field__error::before { content: "!"; flex: none; width: 18px; height: 18px; margin-top: 1px; border-radius: 50%; background: var(--mm-red); color: #fff; font: 700 12px/18px var(--mm-sans); text-align: center; }
.mm-field.is-invalid input, .mm-field.is-invalid textarea { border-color: var(--mm-red); border-width: 2px; padding: 11px 13px; }

.mm-choices { display: flex; flex-wrap: wrap; gap: 8px; }
.mm-choice { position: relative; }
.mm-choice input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.mm-choice span { display: inline-flex; align-items: center; min-height: 44px; padding: 10px 16px; border: 1px solid var(--mm-field); border-radius: var(--mm-r-btn); background: var(--mm-surface); color: var(--mm-heading); font-size: 15px; cursor: pointer; transition: background-color var(--mm-t), border-color var(--mm-t); }
.mm-choice span::before { content: ""; width: 10px; height: 10px; margin-right: 10px; border-radius: 50%; border: 1px solid var(--mm-field); }
.mm-choice input:checked + span { border-color: var(--mm-heading); background: var(--mm-soft); font-weight: 500; }
.mm-choice input:checked + span::before { background: var(--mm-heading); border-color: var(--mm-heading); box-shadow: inset 0 0 0 2px var(--mm-soft); }
.mm-choice input:focus-visible + span { outline: 2px solid var(--mm-focus); outline-offset: 4px; }

.mm-check { display: flex; gap: 12px; align-items: flex-start; font-size: 15px; line-height: 23px; color: var(--mm-text); cursor: pointer; }
.mm-check input { flex: none; width: 22px; height: 22px; margin: 0; accent-color: var(--mm-heading); }
.mm-check a { color: var(--mm-link); text-underline-offset: 3px; }
.mm-field--consent.is-invalid .mm-check input { outline: 2px solid var(--mm-red); outline-offset: 2px; }
.mm-hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.mm-form__foot .mm-btn { min-width: 240px; }
@media (max-width: 767px) { .mm-form__foot .mm-btn { width: 100%; } }
.mm-form__status { border-radius: var(--mm-r-card); padding: 16px 20px; font-size: 16px; line-height: 24px; display: flex; gap: 12px; align-items: flex-start; }
.mm-form__status:focus { outline: none; }
.mm-form__status.is-ok { background: var(--mm-ok-bg); border: 1px solid #9CC9AF; color: #0B4F35; }
.mm-form__status.is-error { background: #FDF1F2; border: 1px solid #E7A1AA; color: #8E0B1C; }
.mm-form__status strong { display: block; }
.mm-form.is-sent .mm-field, .mm-form.is-sent .mm-form__foot { display: none; }

/* ---- подвал ---- */
.mm-footer { margin-top: var(--mm-section); border-top: 1px solid var(--mm-line); padding: 56px 0 40px; font-size: 15px; line-height: 23px; }
.mm-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 0.8fr; gap: 40px; }
.mm-footer__brand .mm-tricolor { margin: 20px 0 8px; }
.mm-footer__brand .mm-contact-list { margin: 16px 0 0; }
.mm-footer__h { font: 600 15px/21px var(--mm-sans); color: var(--mm-heading); margin: 0 0 12px; }
.mm-footer ul { list-style: none; padding: 0; margin: 0; }
.mm-footer nav li { padding: 4px 0; }
.mm-footer nav a { color: var(--mm-text); text-decoration: none; }
.mm-footer nav a:hover { color: var(--mm-heading); text-decoration: underline; text-underline-offset: 4px; }
.mm-footer__legal { margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--mm-line); color: var(--mm-muted); font-size: 14px; line-height: 21px; }
.mm-footer__legal p { margin: 0 0 8px; max-width: 860px; }
.mm-footer__legal a { color: var(--mm-muted); text-underline-offset: 3px; }
@media (max-width: 1023px) { .mm-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px) { .mm-footer__grid { grid-template-columns: 1fr; gap: 28px; } }
.mm-page-home .mm-footer, .mm-page-service .mm-footer, .mm-page-section .mm-footer, .mm-page-intl .mm-footer { margin-top: 0; }

.mm-404 { padding-bottom: 40px; }
.mm-404 h1 { padding-top: 56px; }
.mm-404 .mm-rows { margin: 32px 0; }

.mm-review-banner { margin: 0; padding: 10px var(--mm-gutter); background: #FFF6D6; border-bottom: 1px solid #E7D48A; color: #5A4800; font-size: 14px; text-align: center; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}
@media print {
  .mm-header, .mm-footer, .mm-aside, .mm-contact, .mm-cta, .mm-actions { display: none !important; }
  body { background: #fff; }
}

/* Photo collection — October 2026 */
.mm-photo--hero { width:100%; max-width:480px; justify-self:end; }
.mm-photo--hero img { aspect-ratio:3/4 !important; }
.mm-photo--card { margin:-28px -28px 24px; overflow:hidden; border-radius:12px 12px 0 0; }
.mm-photo--card img { display:block; aspect-ratio:4/3 !important; border-radius:0; }
.mm-card--dir, .mm-card--article { overflow:hidden; }
.mm-photo-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin:48px 0; }
.mm-photo-pair img { display:block; aspect-ratio:4/3 !important; }
.mm-photo--article { margin:32px 0 40px; }
.mm-photo--contact { margin:32px 0; }
.mm-photo--contact img { max-height:360px; }
@media(max-width:767px) {
 .mm-photo--hero { max-width:480px; justify-self:center; }
 .mm-photo--hero img { aspect-ratio:3/4 !important; }
 .mm-photo-pair { gap:16px; margin:32px 0; }
 .mm-photo--card { margin:-24px -24px 24px; }
}
@media(max-width:480px) { .mm-photo-pair { grid-template-columns:1fr; } }

.mm-contact-list li { overflow-wrap:anywhere; }
.mm-contact-list li > svg { flex-shrink:0; }
.mm-form__status a { display:block; margin-top:12px; text-decoration:underline; }

/* Published reviews: this fragment is also refreshed by the PHP module. */
.mm-home-reviews{background:var(--mm-soft)}.mm-home-reviews .mm-lead{max-width:760px}.mm-review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:32px 0}.mm-review-card{display:flex;flex-direction:column;gap:18px;overflow-wrap:anywhere}.mm-review-card h3{font-size:29px;line-height:1.2}.mm-review-card h3 a{text-decoration:none}.mm-review-card p{margin:0}.mm-review-top{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:13px;color:var(--mm-green)}.mm-review-top strong{white-space:nowrap}.mm-review-author{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-top:auto;padding-top:16px;border-top:1px solid var(--mm-line);font-size:14px}.mm-review-empty{max-width:780px;padding:28px 30px;border:1px solid var(--mm-line);border-radius:8px;background:var(--mm-surface)}.mm-review-empty p{margin:0}@media(max-width:1023px){.mm-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.mm-review-grid{grid-template-columns:1fr}.mm-review-empty{padding:24px}}

/* Additional photo collection: preserve the full frame. */
.mm-extra-photos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:center; gap:24px; margin:40px 0; }
.mm-extra-photos .mm-photo { margin:0; min-width:0; }
.mm-extra-photos img { display:block; width:100%; height:auto; }
.mm-extra-photos--single { grid-template-columns:1fr; }
@media(max-width:480px) { .mm-extra-photos { grid-template-columns:1fr; gap:16px; margin:32px 0; } }
