/* MixGranit 2.0 — базовые компоненты (R1). Всё под body.mg2, чтобы включаться флагом. */
body.mg2{background:var(--mg-bg);color:var(--mg-text);font-size:var(--mg-fs-body);line-height:var(--mg-lh);-webkit-font-smoothing:antialiased}
/* контейнер 1360 / media 1480 / чтение 800 */
body.mg2 .container,body.mg2 .container-xl,body.mg2 .container-lg{max-width:var(--mg-container);width:100%;padding-left:var(--mg-pad-mobile);padding-right:var(--mg-pad-mobile);min-width:0!important}
@media (min-width:768px){body.mg2 .container,body.mg2 .container-xl,body.mg2 .container-lg{padding-left:var(--mg-pad-tablet);padding-right:var(--mg-pad-tablet)}}
@media (min-width:1200px){body.mg2 .container,body.mg2 .container-xl,body.mg2 .container-lg{padding-left:var(--mg-pad-desktop);padding-right:var(--mg-pad-desktop)}}
body.mg2 .mg-media{max-width:var(--mg-media);margin-inline:auto}
body.mg2 .mg-read{max-width:var(--mg-read)}
body.mg2 .mg-section{padding:clamp(40px,6vw,88px) 0}
body.mg2 .mg-section--stone{background:var(--mg-stone)} body.mg2 .mg-section--dark{background:var(--mg-dark);color:#fff}
/* типографика (заголовки без заливки красным по умолчанию) */
body.mg2 h1,body.mg2 .h1{font-size:var(--mg-fs-h1);line-height:1.12;font-weight:700;color:var(--mg-text)}
body.mg2 h2,body.mg2 .h2{font-size:var(--mg-fs-h2);line-height:1.2;font-weight:700;color:var(--mg-text)}
body.mg2 h3,body.mg2 .h3{font-size:var(--mg-fs-h3);line-height:1.25;font-weight:600;color:var(--mg-text)}
body.mg2 .mg-lead{font-size:var(--mg-fs-lead);line-height:1.5;color:var(--mg-text-2);max-width:var(--mg-read)}
body.mg2 small,body.mg2 .small{font-size:var(--mg-fs-small)}
body.mg2 p{max-width:none} body.mg2 .mg-prose p,body.mg2 .mg-prose li{max-width:var(--mg-read)}
body.mg2 a{color:var(--mg-red)} body.mg2 a:hover{color:var(--mg-red-hover)}
/* кнопки: основной CTA красный, вторичный контурный */
body.mg2 .mg-btn,body.mg2 .btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:var(--mg-tap);padding:0 24px;border-radius:var(--mg-radius-sm);font-weight:600;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s}
body.mg2 .mg-btn--primary,body.mg2 .btn-primary{background:var(--mg-red);border:1px solid var(--mg-red);color:#fff}
body.mg2 .mg-btn--primary:hover,body.mg2 .btn-primary:hover{background:var(--mg-red-hover);border-color:var(--mg-red-hover);color:#fff}
body.mg2 .mg-btn--ghost{background:transparent;border:1px solid var(--mg-text);color:var(--mg-text)}
body.mg2 .mg-btn--ghost:hover{background:var(--mg-text);color:#fff}
/* карточки */
body.mg2 .mg-card{background:var(--mg-white);border:1px solid var(--mg-border);border-radius:var(--mg-radius);box-shadow:none;overflow:hidden}
body.mg2 .mg-grid{display:grid;gap:var(--mg-gap);grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr))}
/* формы: поля 48px, подписи, ошибки под полем */
body.mg2 input[type=text],body.mg2 input[type=tel],body.mg2 input[type=email],body.mg2 input[type=search],body.mg2 select,body.mg2 textarea,body.mg2 .form-control{min-height:var(--mg-tap);border:1px solid var(--mg-border);border-radius:var(--mg-radius-sm);background:var(--mg-white);font-size:16px;padding:10px 14px}
body.mg2 textarea{min-height:120px} body.mg2 .mg-error{color:var(--mg-red);font-size:var(--mg-fs-small);margin-top:6px}
/* доступность: видимый фокус, цели нажатия, пропуск навигации, reduced motion */
body.mg2 :focus-visible{outline:none;box-shadow:var(--mg-focus);border-radius:4px}
body.mg2 .mg-skip{position:absolute;left:-9999px;top:8px;background:var(--mg-white);padding:12px 16px;border-radius:var(--mg-radius-sm);z-index:10000}
body.mg2 .mg-skip:focus{left:8px}
body.mg2 a,body.mg2 button{touch-action:manipulation}
@media (prefers-reduced-motion:reduce){body.mg2 *,body.mg2 *::before,body.mg2 *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* изображения не ломают сетку */
body.mg2 img{max-width:100%;height:auto}
body.mg2 .mg-dialog{border:0;border-radius:var(--mg-radius);padding:0;max-width:min(92vw,960px);width:100%;box-shadow:0 20px 60px rgba(0,0,0,.25)}
body.mg2 .mg-dialog::backdrop{background:rgba(24,26,29,.55)}

/* заголовки и текст внутри баннеров на фото и тёмных блоков остаются светлыми (legacy-баннеры не должны получать тёмный цвет заголовков) */
body.mg2 .sp-banner h1,body.mg2 .sp-banner h2,body.mg2 .sp-banner h3,body.mg2 .sp-banner p,body.mg2 .sp-banner li,body.mg2 .sp-banner a{color:#fff}
body.mg2 .mg-section--dark h1,body.mg2 .mg-section--dark h2,body.mg2 .mg-section--dark h3,body.mg2 .mg-section--dark p{color:#fff}

/* ===== Единое гранитное полотно (фон сайта) =====
   Один общий слой на всю страницу: fixed-псевдоэлемент (не background-attachment: fixed), тёплый светлый цвет + едва заметная каменная текстура.
   Интенсивность: --mg-tex (вариант B по умолчанию). Тест вариантов: ?bg=a | ?bg=b | ?bg=c */
:root{--mg-tex:.16}
body.mg2[data-bg="a"]{--mg-tex:.16} body.mg2[data-bg="b"]{--mg-tex:.30} body.mg2[data-bg="c"]{--mg-tex:.46}
body.mg2{background-color:var(--mg-bg);position:relative}
body.mg2::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:var(--mg-tex);
  background:url("/local/templates/monumentpro_main/img/granite-bg.webp") center top/cover no-repeat;
  background-image:image-set(url("/local/templates/monumentpro_main/img/granite-bg.avif") type("image/avif"),url("/local/templates/monumentpro_main/img/granite-bg.webp") type("image/webp"))}
@media (max-width:767.98px){body.mg2::before{background:url("/local/templates/monumentpro_main/img/granite-bg-m.webp") center top/cover no-repeat}}

/* секции — прозрачные (полотно видно между элементами); белые поверхности — только осознанные карточки/формы/шапка */
body.mg2 .mp-howto,body.mg2 .mp-akcii__wrap,body.mg2 .mp-reviews,body.mg2 .mp-why,body.mg2 .mp-products,body.mg2 .mp-services,body.mg2 .mp-faq,body.mg2 section.sp-section,body.mg2 .sp-seo,body.mg2 .bg-white:not(.mg-card):not(.mg-main):not(.modal-content){background-color:transparent!important}
body.mg2 .mp-akcii__card,body.mg2 .mp-reviews__stats,body.mg2 .mg-card,body.mg2 #content .main.row,body.mg2 .light-block{background-color:rgba(255,255,255,.92)!important}
body.mg2 .mg-header{background:rgba(255,255,255,.94)} body.mg2 .mg-main{background:transparent}
body.mg2 .mg-dialog,body.mg2 .modal-content{background:#fff}
/* фон-полотно: отключается при forced-colors и экономии трафика */
@media (forced-colors:active){body.mg2::before{content:none}}
@media (prefers-reduced-data:reduce){body.mg2::before{content:none}}

/* Hero-баннер (иллюстрация 2:1, светлая стена слева под текст). Desktop ≥1100: текст поверх стены слева; ниже — текст сверху, картинка под ним (на мобиле кадр смещён к памятнику). */
body.mg2 .mg-hb__pic{display:block;margin-top:20px}
body.mg2 .mg-hb__pic img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;object-position:80% 50%;border-radius:var(--mg-radius);background:var(--mg-stone);box-shadow:0 18px 50px rgba(24,26,29,.14)}
@media (min-width:768px){body.mg2 .mg-hb__pic img{aspect-ratio:2/1;object-position:50% 50%}}
@media (min-width:1100px){
  body.mg2 .mg-hb{position:relative;display:flex;align-items:center;border-radius:var(--mg-radius);overflow:hidden;overflow:clip;background:var(--mg-stone);box-shadow:0 18px 50px rgba(24,26,29,.14);aspect-ratio:2/1}
  body.mg2 .mg-hb::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(247,245,241,.8) 0,rgba(247,245,241,.6) 40%,rgba(247,245,241,0) 58%)}
  body.mg2 .mg-hb__pic{position:absolute;inset:0;margin:0}
  body.mg2 .mg-hb__pic img{width:100%;height:100%;aspect-ratio:auto;border-radius:0;box-shadow:none}
  body.mg2 .mg-hb__body{position:relative;z-index:2;max-width:49%;padding:clamp(24px,3vw,48px)}
}

/* Текст hero-баннера по макету владельца: серифный заголовок, бордовая линия, две кнопки. Бордовый — токен --mg-red (контраст с белым текстом ≥ 6:1). */
body.mg2 .mg-hb__title{font-family:Georgia,"PT Serif","Times New Roman",serif;font-weight:700;font-size:clamp(32px,3.4vw,50px);line-height:1.1;letter-spacing:-.005em;margin:0 0 14px;color:var(--mg-text)}
body.mg2 .mg-hb__lead{font-size:clamp(18px,1.6vw,22px);line-height:1.4;color:#2b2e32;margin:0 0 16px;max-width:30em}
body.mg2 .mg-hb__rule{display:block;width:44px;height:2px;background:var(--mg-red);margin:0 0 16px}
body.mg2 .mg-hb__line{margin:0 0 14px;color:#3f4348;font-size:var(--mg-fs-body);max-width:34em}
body.mg2 .mg-hb__points{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 22px;padding:0;list-style:none;color:#3f4348;font-size:var(--mg-fs-small)}
body.mg2 .mg-hb__points li{display:flex;align-items:center;gap:18px}
body.mg2 .mg-hb__points li+li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--mg-red)}
body.mg2 .mg-hb__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
body.mg2 .mg-hb__points+.mg-hb__cta{margin-top:0}
body.mg2 .mg-hb__cta .mg-btn--ghost{background:rgba(255,255,255,.78)}
@media (max-width:575.98px){body.mg2 .mg-hb__cta .mg-btn{width:100%}}
@media (min-width:1100px){body.mg2 .mg-hb__body{max-width:50%}}
@media (min-width:1100px){
  body.mg2 .mg-hb__title{font-size:clamp(30px,2.8vw,40px)}
  body.mg2 .mg-hb__lead{font-size:clamp(17px,1.45vw,20px)}
  body.mg2 .mg-hb__cta .mg-btn{padding:0 18px;font-size:15px}
}
body.mg2 .mg-hb .mg-hb__points{margin:0 0 22px;gap:4px 12px}
body.mg2 .mg-hb .mg-hb__points li{gap:12px;white-space:nowrap}
body.mg2 .mg-hb .mg-hb__cta{margin-top:0}
body.mg2 .mg-hb .mg-hb__line{max-width:none}
