/* ОБЪЕКТ — шапка и меню сайта (objn-*). Тёмная фиксированная шапка на всех страницах, панель «Услуги»,
   компактная шапка (<1280px) и мобильное меню-диалог. Цвета и шрифты — токены objekt-tokens.css.
   Переломы: ≥1600 — всё, включая подпись с регионом; 1280–1599 — без подписи; Telegram/MAX — кнопки с подписью (не хватает места — только знаки);
   <1280 — компактная шапка (логотип, трубка, бургер).
   main.css гасит рамку фокуса у всего (* { outline: none !important }) и сбрасывает отступы/рамки у .page * —
   поэтому селекторы здесь с весом двух классов, а у :focus-visible — !important. */

:root{
  --objn-h0:clamp(80px, 5vw, 100px);   /* высота шапки вверху страницы */
  --objn-hs:clamp(56px, 3.4vw, 64px);  /* высота после прокрутки (компактный вид ≥1280px; ниже — своя, см. медиазапрос) */
  --objn-top:var(--wp-admin--admin-bar--height, 0px);
  /* поля по бокам шапки — растут с экраном; на очень широких мониторах содержимое не шире 2400px.
     Эти же поля у текста первого экрана (objekt-hero.css): левый край текста = левый край логотипа */
  --objn-pad:max(clamp(24px, 3vw, 56px), calc(50% - 1200px));
}
@media (max-width:1279px){
  :root{--objn-h0:68px;--objn-hs:68px;--objn-pad:clamp(20px, 3vw, 32px);}
}
@media (max-width:767px){
  :root{--objn-pad:20px;}
}

/* старая обёртка <header class="header"> из шаблонов больше не рисует свою коробку — шапку целиком даёт .objn */
.page header.header,
header.header{display:contents !important;}
/* тема сдвигала страницу под свою липкую шапку на телефоне — теперь отступ даёт .objn-spacer */
body{padding-top:0 !important;}

/* якоря: заголовок секции не прячется под шапкой */
:where([id]){scroll-margin-top:calc(var(--objn-hs) + 16px);}

.objn{
  --objn-bg:var(--objekt-color-bg, #1C1A1A);
  --objn-cream:var(--objekt-color-cream, #F5F2ED);
  --objn-accent:var(--objekt-color-accent, #A9967D);
  --objn-accent-hover:var(--objekt-color-accent-hover, #B8A68E);
  --objn-line:var(--objekt-color-line, rgba(245,242,237,0.14));
  --objn-ease:cubic-bezier(.2,.7,.2,1);
  font-family:var(--objekt-font-body, 'Manrope', sans-serif);
  color:var(--objn-cream);
}
.objn *,
.objn *::before,
.objn *::after{box-sizing:border-box;}
.objn :where(ul, li, p){margin:0;padding:0;list-style:none;}
.objn li::before{content:none;}
.objn :where(a){text-decoration:none;}
.objn :where(button){margin:0;padding:0;border:0;background:none;font:inherit;color:inherit;cursor:pointer;-webkit-appearance:none;appearance:none;}
.objn svg{display:block;flex-shrink:0;}
.objn :where(a, button):focus-visible{outline:2px solid var(--objn-accent) !important;outline-offset:3px;}

.objn-spacer{height:var(--objn-h0);}

/* ================= полоса шапки ================= */
.objn .objn-bar{
  position:fixed;top:var(--objn-top);left:0;right:0;z-index:1000;
  height:var(--objn-h0);
  background:var(--objn-bg);
  border-bottom:1px solid transparent;
  transition:height .2s ease, border-color .2s ease, box-shadow .2s ease;
}
@media (min-width:1280px){
  .objn.is-scrolled .objn-bar{height:var(--objn-hs);border-bottom-color:var(--objn-line);box-shadow:0 6px 24px rgba(0,0,0,0.25);}
}
.objn .objn-wrap{
  display:flex;align-items:center;gap:clamp(16px, 1.5vw, 40px);
  height:100%;margin:0 auto;
  /* ширина — весь экран минус поля: содержимое шапки растёт вместе с размерами шрифтов и не наезжает друг на друга */
  padding:0 var(--objn-pad);
}

/* логотип и подпись с регионом */
.objn .objn-brand{display:flex;align-items:center;flex-shrink:0;}
.objn .objn-logo{display:inline-flex;align-items:center;color:var(--objn-cream);}
.objn .objn-logo:hover{color:var(--objn-cream);}
.objn .objn-logo__text{
  font-family:var(--objekt-font-heading, 'Playfair Display', serif);
  font-size:clamp(22px, 1.55vw, 30px);font-weight:400;line-height:1;
  letter-spacing:.3em;margin-right:-.3em;white-space:nowrap;
}
.objn .objn-logo__img{display:block;width:auto;height:clamp(26px, 1.9vw, 36px);max-width:none;}
.objn .objn-logo__m{display:none;}
/* фирменный логотип (знак + «ОБЪЕКТ»), подпись с регионом — текстом рядом */
.objn .objn-logo__img--brand{height:clamp(34px, calc(3.4vw - 8px), 46px);transition:height .2s ease;}
@media (min-width:1280px){ .objn .objn-brand{margin-right:clamp(10px, calc(3vw - 30px), 28px);} }
.objn .objn-region{
  display:none;flex-direction:column;gap:3px;
  margin-left:clamp(18px, 1.4vw, 28px);padding-left:clamp(18px, 1.4vw, 28px);
  border-left:1px solid var(--objn-line);
  font-size:clamp(10px, 0.58vw, 12px);line-height:1.35;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(245,242,237,0.6);white-space:nowrap;
}
.objn .objn-region-m{display:none;}
@media (min-width:1600px){
  .objn .objn-region{display:flex;}
}

/* навигация: левая часть (логотип) и правая (.objn-end: контакты + кнопка) растут одинаково от нулевой основы — меню
   оказывается ровно по центру страницы и в полной, и в компактной шапке (не уезжает при прокрутке). Когда места мало,
   края не уже своего содержимого — меню просто занимает оставшееся место. */
.objn .objn-nav{flex:0 1 auto;display:flex;justify-content:center;align-self:stretch;min-width:0;}
.objn .objn-end{display:flex;align-items:center;justify-content:flex-end;gap:inherit;flex:1 0 0;min-width:max-content;}
@media (min-width:1280px){ .objn .objn-brand{flex:1 0 0;min-width:max-content;margin-right:0;} }
.objn .objn-menu{display:flex;align-items:stretch;gap:clamp(18px, 1.75vw, 44px);}
.objn .objn-menu__item{display:flex;align-items:stretch;}
.objn .objn-menu__link{
  position:relative;display:inline-flex;align-items:center;align-self:stretch;gap:6px;
  font-size:clamp(14px, 0.82vw, 17px);font-weight:500;line-height:1.2;white-space:nowrap;
  color:rgba(245,242,237,0.85);
  transition:color .2s ease;
}
.objn .objn-menu__link::after{
  content:"";position:absolute;left:0;right:0;bottom:calc(50% - 1.2em);
  height:1px;background:var(--objn-accent);
  transform:scaleX(0);transform-origin:left center;transition:transform .2s ease;
}
.objn .objn-menu__link:hover,
.objn .objn-menu__link:focus-visible,
.objn .objn-menu__link[aria-expanded="true"]{color:var(--objn-cream);}
.objn .objn-menu__link:hover::after,
.objn .objn-menu__link[aria-expanded="true"]::after{transform:scaleX(1);}
/* текущая страница: линия толще и постоянно, текст 100% */
.objn .objn-menu__link.is-current{color:var(--objn-cream);}
.objn .objn-menu__link.is-current::after{height:2px;transform:scaleX(1);}
.objn .objn-menu__btn svg{width:14px;height:14px;transition:transform .2s ease;}
.objn .objn-menu__btn[aria-expanded="true"] svg{transform:rotate(180deg);}

/* контакты: крупный телефон, под ним Telegram и MAX — заметные кнопки с фирменными цветными знаками и подписью */
.objn .objn-contacts{display:flex;flex-direction:column;align-items:flex-start;gap:8px;flex-shrink:0;}
.objn .objn-phones{display:flex;flex-direction:column;gap:2px;}
.objn .objn-phone{
  display:inline-flex;align-items:baseline;gap:8px;
  font-size:clamp(16px, 1vw, 20px);font-weight:600;line-height:1.25;letter-spacing:.01em;white-space:nowrap;
  color:var(--objn-cream);transition:color .2s ease;
}
.objn .objn-phone:hover{color:var(--objn-accent);}
.objn .objn-phone__label{font-size:11px;font-weight:500;letter-spacing:.06em;color:rgba(245,242,237,0.55);}
.objn .objn-msgs{display:flex;align-items:center;gap:8px;}
.objn .objn-msg{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:34px;padding:0 14px 0 8px;
  border:1px solid rgba(245,242,237,0.28);border-radius:999px;
  font-size:14px;font-weight:500;line-height:1;white-space:nowrap;color:var(--objn-cream);
  transition:border-color .2s ease, background-color .2s ease;
}
.objn .objn-msg:hover,
.objn .objn-msg:focus-visible{border-color:var(--objn-accent);background:rgba(245,242,237,0.05);}
.objn .objn-msg .objn-msg__icon{display:flex;}
.objn .objn-msg .objn-msg__icon svg{width:22px;height:22px;}
.objn .objn-msg[aria-disabled="true"]{cursor:pointer;}
/* два номера: номера столбиком слева, Telegram и MAX — столбиком справа, с подписями */
.objn .objn-contacts--two{flex-direction:row;align-items:center;gap:14px;}
.objn .objn-contacts--two .objn-phones{gap:4px;}
.objn .objn-contacts--two .objn-phone{font-size:clamp(15px, 0.9vw, 18px);}
.objn .objn-contacts--two .objn-phone__label{display:none;}
.objn .objn-contacts--two .objn-msgs{flex-direction:column;align-items:stretch;gap:5px;}
/* тонкая акцентная линия между номерами и мессенджерами (как между знаком и словом в логотипе): Telegram и MAX —
   общие, а не «привязаны» каждый к своему номеру */
.objn .objn-contacts--two .objn-msgs{align-self:stretch;justify-content:center;padding-left:14px;border-left:1px solid var(--objn-accent);}
.objn .objn-contacts--two .objn-msg{height:30px;justify-content:flex-start;}
.objn .objn-contacts--two .objn-msg .objn-msg__icon svg{width:20px;height:20px;}
/* фирменные цвета знаков — во всех кнопках мессенджеров (шапка, компактная шапка, мобильное меню) */
.objn .objn-logo-tg circle{fill:#27A7E7;}
.objn .objn-logo-tg path{fill:#fff;}
.objn .objn-logo-max path{fill:url(#objn-max-grad);}

/* «Обсудить проект» */
.objn .objn-cta{
  display:inline-flex;align-items:center;justify-content:center;gap:12px;flex-shrink:0;
  height:clamp(44px, 2.9vw, 56px);padding:0 clamp(18px, 1.4vw, 30px);
  border:1px solid rgba(245,242,237,0.5);border-radius:2px;
  font-size:clamp(14px, 0.82vw, 17px);font-weight:500;white-space:nowrap;
  color:var(--objn-cream);
  transition:background-color .2s ease, border-color .2s ease, color .2s ease, height .2s ease;
}
.objn .objn-cta svg{width:20px;height:20px;transition:transform .2s ease;}
.objn .objn-cta:hover{background:var(--objn-accent);border-color:var(--objn-accent);color:var(--objn-bg);}
.objn .objn-cta:hover svg{transform:translateX(3px);}

/* звонок, Telegram, MAX и бургер — только в компактной шапке */
.objn .objn-quick{display:none;align-items:center;gap:8px;}
.objn .objn-call,
.objn .objn-burger{display:none;align-items:center;justify-content:center;width:44px;height:44px;color:var(--objn-cream);}
.objn .objn-call{border:1px solid var(--objn-line);border-radius:50%;transition:border-color .2s ease, color .2s ease;}
.objn .objn-call:hover{border-color:var(--objn-accent);color:var(--objn-accent);}
.objn .objn-call svg{width:20px;height:20px;}
.objn .objn-call--msg .objn-msg__icon{display:flex;}
.objn .objn-call--msg .objn-msg__icon svg{width:19px;height:19px;}
.objn .objn-burger svg{width:28px;height:28px;}

/* страховка в две ступени (классы ставит objekt-nav.js): пункты не помещаются — is-tight прячет подпись с регионом
   и сужает промежутки; всё ещё тесно — is-tight2 оставляет у Telegram/MAX только знаки */
.objn.is-tight .objn-region{display:none;}
.objn.is-tight2 .objn-msg .objn-msg__label{display:none;}
.objn.is-tight2 .objn-msg{width:34px;padding:0;}
.objn.is-tight2 .objn-contacts--two .objn-msg{width:30px;justify-content:center;}
.objn.is-tight .objn-menu{gap:clamp(14px, 1.2vw, 28px);}
.objn.is-tight .objn-wrap{gap:clamp(14px, 1.1vw, 28px);}
/* узкий ноутбук (~1280–1360) с двумя номерами: ещё плотнее; is-tight4 — последняя ступень, в шапке только основной
   мобильный номер (московский остаётся в мобильном меню, подвале и «Контактах») */
.objn.is-tight3 .objn-menu{gap:12px;}
.objn.is-tight3 .objn-wrap{gap:14px;}
.objn.is-tight3 .objn-brand{margin-right:6px;}
.objn.is-tight3 .objn-contacts--two{gap:10px;}
.objn.is-tight3 .objn-contacts--two .objn-phone{font-size:14.5px;}
.objn.is-tight3 .objn-cta{padding:0 16px;}
.objn.is-tight3 .objn-cta svg{display:none;}
.objn.is-tight4 .objn-contacts--two .objn-phone:not(.objn-phone--main){display:none;}

/* ================= компактный вид после прокрутки (≥1280px, класс is-scrolled — порог 80px в objekt-nav.js) ================
   Полоса ниже, логотип меньше, без подписи с регионом; один основной мобильный номер в строку, Telegram и MAX — круглые
   значки в линию справа от номера (подсказка — title/aria-label); «Обсудить проект» ниже и без стрелки. Пункты меню
   не меняются. Высота полосы, логотипа и кнопки меняются плавно (.2s). */
@media (min-width:1280px){
  .objn .objn-region{max-width:360px;transition:opacity .2s ease, max-width .2s ease, margin .2s ease, padding .2s ease, border-color .2s ease;}
  .objn.is-scrolled .objn-logo__img--brand{height:clamp(26px, 1.7vw, 32px);}
  .objn.is-scrolled .objn-region{opacity:0;max-width:0;margin-left:0;padding-left:0;border-left-color:transparent;overflow:hidden;}
  .objn.is-scrolled .objn-contacts,
  .objn.is-scrolled .objn-contacts--two{flex-direction:row;align-items:center;gap:12px;}
  .objn.is-scrolled .objn-phone:not(.objn-phone--main){display:none;}
  .objn.is-scrolled .objn-phone__label{display:none;}
  .objn.is-scrolled .objn-msgs,
  .objn.is-scrolled .objn-contacts--two .objn-msgs{flex-direction:row;align-items:center;gap:8px;}
  .objn.is-scrolled .objn-contacts--two .objn-msgs{align-self:center;height:32px;padding-left:12px;}
  .objn.is-scrolled .objn-msg,
  .objn.is-scrolled .objn-contacts--two .objn-msg{width:32px;height:32px;padding:0;gap:0;justify-content:center;}
  .objn.is-scrolled .objn-msg .objn-msg__label{display:none;}
  .objn.is-scrolled .objn-msg .objn-msg__icon svg{width:20px;height:20px;}
  .objn.is-scrolled .objn-cta{height:42px;}
  .objn.is-scrolled .objn-cta svg{display:none;}
}
@media (min-width:1280px) and (prefers-reduced-motion: reduce){
  .objn .objn-region,
  .objn .objn-logo__img--brand,
  .objn .objn-cta{transition:none;}
}

/* ================= компактная шапка (<1280px) ================= */
@media (max-width:1279px){
  .objn .objn-wrap{gap:12px;}
  .objn .objn-nav,
  .objn .objn-end,
  .objn .objn-contacts,
  .objn .objn-cta{display:none;}
  .objn .objn-brand{flex-direction:column;align-items:flex-start;gap:5px;margin-right:auto;}
  .objn .objn-logo__d{display:none;}
  .objn .objn-logo__m{display:inline-flex;}
  .objn .objn-logo__text{font-size:21px;}
  .objn .objn-logo__img{height:26px;}
  .objn .objn-logo__img--brand{height:32px;}
  .objn .objn-region-m{display:block;font-size:10.5px;line-height:1.2;letter-spacing:.02em;color:rgba(245,242,237,0.55);white-space:nowrap;}
  .objn .objn-quick{display:flex;}
  .objn .objn-call,
  .objn .objn-burger{display:inline-flex;}
  .objn .objn-burger{margin-right:-8px;}
}

@media (max-width:430px){
  .objn .objn-wrap{gap:10px;}
  .objn .objn-quick{gap:6px;}
  .objn .objn-call{width:40px;height:40px;}
  .objn .objn-region-m{white-space:normal;max-width:112px;font-size:10px;}
  .objn .objn-logo__img--brand{height:29px;}
}
@media (max-width:359px){
  .objn .objn-logo__text{font-size:19px;}
  .objn .objn-quick{gap:4px;}
  .objn .objn-call{width:36px;height:36px;}
  .objn .objn-call svg,
  .objn .objn-call--msg .objn-msg__icon svg{width:17px;height:17px;}
}

/* ================= панель «Услуги» ================= */
.objn .objn-shade{
  position:fixed;left:0;right:0;bottom:0;top:0;z-index:998;
  background:rgba(10,9,8,0.45);
  opacity:0;visibility:hidden;transition:opacity .2s ease, visibility .2s;
}
.objn .objn-panel{
  --objn-panel-top:calc(var(--objn-top) + var(--objn-h, var(--objn-h0)));
  position:fixed;top:var(--objn-panel-top);left:50%;z-index:999;
  width:min(1480px, calc(100vw - 2 * clamp(24px, 3vw, 56px)));
  max-height:calc(100vh - var(--objn-panel-top) - 24px);
  overflow:auto;overscroll-behavior:contain;
  background:var(--objn-bg);
  border:1px solid var(--objn-line);border-top:0;
  box-shadow:0 24px 60px rgba(0,0,0,0.45);
  opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%, -8px);
  transition:opacity .2s var(--objn-ease), transform .2s var(--objn-ease), visibility .2s;
}
.objn .objn-panel.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%, 0);}
.objn .objn-shade.is-open{opacity:1;visibility:visible;}
@media (max-width:1279px){
  .objn .objn-panel,
  .objn .objn-shade{display:none;}
}
.objn .objn-panel__in{
  display:grid;grid-template-columns:minmax(0, 36%) minmax(0, 1fr);
  padding:clamp(16px, 1.3vw, 26px);
}
/* список услуг */
.objn .objn-svcs{padding-right:clamp(16px, 1.6vw, 28px);border-right:1px solid var(--objn-line);}
.objn .objn-svcs li + li{border-top:1px solid var(--objn-line);}
.objn .objn-svc{
  display:grid;grid-template-columns:auto minmax(0, 1fr) auto;align-items:center;gap:clamp(16px, 1.4vw, 26px);
  padding:clamp(18px, 1.55vw, 30px) clamp(14px, 1.2vw, 24px);
  color:var(--objn-cream);
  transition:background-color .2s ease, box-shadow .2s ease, color .2s ease;
}
.objn .objn-svc__icon{display:flex;width:32px;height:32px;color:rgba(245,242,237,0.85);transition:color .2s ease;}
.objn .objn-svc__icon svg,
.objn .objn-svc__icon img{width:100%;height:100%;}
.objn .objn-svc__text{display:flex;flex-direction:column;gap:6px;min-width:0;}
.objn .objn-svc__title{
  font-family:var(--objekt-font-heading, 'Playfair Display', serif);
  font-size:clamp(19px, 1.25vw, 24px);font-weight:400;line-height:1.2;
  transition:color .2s ease;
}
.objn .objn-svc__sub{font-size:clamp(13px, 0.8vw, 15px);line-height:1.4;color:rgba(245,242,237,0.6);}
.objn .objn-svc__chev{display:flex;width:22px;height:22px;color:rgba(245,242,237,0.7);transition:color .2s ease, transform .2s ease;}
.objn .objn-svc__chev svg{width:100%;height:100%;}
/* активная строка: наведение или клавиатурный фокус */
.objn .objn-svc.is-active{background:rgba(245,242,237,0.05);box-shadow:inset 3px 0 0 var(--objn-accent);}
.objn .objn-svc.is-active .objn-svc__title,
.objn .objn-svc.is-active .objn-svc__icon,
.objn .objn-svc.is-active .objn-svc__chev{color:var(--objn-accent);}
.objn .objn-svc.is-active .objn-svc__chev{transform:translateX(3px);}

/* карточки проектов — все в одной ячейке сетки: высота не прыгает при смене услуги */
.objn .objn-projs{display:grid;padding-left:clamp(16px, 1.6vw, 28px);}
.objn .objn-proj{
  grid-area:1 / 1;display:flex;flex-direction:column;min-width:0;
  opacity:0;visibility:hidden;transition:opacity .18s ease, visibility .18s;
}
/* активная карточка видна только внутри открытой панели: visibility:visible у потомка перебивает скрытого родителя,
   и невидимая карточка ловила клики поверх первого экрана (ссылка на портфолио) */
.objn .objn-panel.is-open .objn-proj.is-active{opacity:1;visibility:visible;}
.objn .objn-proj__media{
  position:relative;display:block;aspect-ratio:16 / 9;overflow:hidden;
  border:1px solid var(--objn-line);
  background:#252220;
}
.objn .objn-proj__img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;transition:opacity .3s ease;}
.objn .objn-proj__img:not([src]){opacity:0;}
.objn .objn-proj__media.is-broken .objn-proj__img{display:none;}
.objn a.objn-proj__media:hover .objn-proj__img{opacity:.92;}
.objn .objn-proj__noimg{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;
  font-family:var(--objekt-font-heading, 'Playfair Display', serif);font-size:clamp(20px, 1.4vw, 28px);
  text-align:center;color:rgba(245,242,237,0.6);
}
.objn .objn-proj__foot{display:flex;align-items:stretch;gap:clamp(20px, 2vw, 40px);padding-top:clamp(14px, 1.2vw, 22px);}
.objn .objn-proj__info{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:6px;}
.objn .objn-proj__cat{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--objn-accent);}
.objn .objn-proj__title{
  font-family:var(--objekt-font-heading, 'Playfair Display', serif);
  font-size:clamp(22px, 1.6vw, 30px);font-weight:400;line-height:1.2;color:var(--objn-cream);
  transition:color .2s ease;
}
.objn a.objn-proj__title:hover{color:var(--objn-accent);}
.objn .objn-proj__loc{display:flex;align-items:center;gap:8px;font-size:14px;color:rgba(245,242,237,0.7);}
.objn .objn-proj__loc svg{width:17px;height:17px;}
.objn .objn-proj__more{
  display:inline-flex;align-items:center;gap:14px;flex-shrink:0;align-self:center;
  padding-left:clamp(24px, 3vw, 64px);
  border-left:1px solid var(--objn-line);
  font-size:15px;white-space:nowrap;color:var(--objn-cream);
  transition:color .2s ease;
}
.objn .objn-proj__more span{padding-bottom:3px;border-bottom:1px solid currentColor;}
.objn .objn-proj__more svg{width:22px;height:22px;transition:transform .2s ease;}
.objn .objn-proj__more:hover{color:var(--objn-accent);}
.objn .objn-proj__more:hover svg{transform:translateX(3px);}
/* нет ни фото, ни ссылки — компактная заглушка */
.objn .objn-proj--empty{justify-content:center;gap:24px;padding:clamp(24px, 3vw, 56px);border:1px solid var(--objn-line);}
.objn .objn-proj--empty .objn-proj__lead{
  font-family:var(--objekt-font-heading, 'Playfair Display', serif);
  font-size:clamp(24px, 1.9vw, 36px);line-height:1.25;color:rgba(245,242,237,0.85);
}
.objn .objn-proj--empty .objn-proj__more{align-self:flex-start;padding-left:0;border-left:0;}

/* ================= мобильное меню ================= */
.objn .objn-mobile{
  position:fixed;inset:0;z-index:100001; /* выше админ-панели WordPress (99999) */
  height:100vh;height:100dvh;
  overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  background:var(--objn-bg);
  opacity:0;transform:translateY(-12px);
  transition:opacity .22s var(--objn-ease), transform .22s var(--objn-ease);
}
.objn .objn-mobile[hidden]{display:none;}
.objn .objn-mobile.is-open{opacity:1;transform:none;}
.objn .objn-mobile__top{
  position:sticky;top:0;z-index:2;
  display:flex;align-items:center;justify-content:space-between;
  height:68px;padding:0 clamp(16px, 5vw, 32px);
  padding-top:env(safe-area-inset-top);
  background:var(--objn-bg);
}
.objn .objn-mobile__top .objn-logo__m{display:inline-flex;}
.objn .objn-mobile__top .objn-logo__text{font-size:21px;}
.objn .objn-close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin-right:-8px;color:var(--objn-cream);}
.objn .objn-close svg{width:28px;height:28px;}
.objn .objn-mobile__body{
  display:flex;flex-direction:column;
  min-height:calc(100vh - 68px);min-height:calc(100dvh - 68px);
  max-width:640px;margin:0 auto;
  padding:4px clamp(16px, 5vw, 20px) calc(28px + env(safe-area-inset-bottom));
}
.objn .objn-mlist__item{border-bottom:1px solid var(--objn-line);}
.objn .objn-mlink{
  display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:60px;
  padding:12px 0;text-align:left;
  font-family:var(--objekt-font-heading, 'Playfair Display', serif);
  font-size:clamp(22px, 6.4vw, 26px);font-weight:400;line-height:1.2;
  color:var(--objn-cream);
}
.objn .objn-mlink.is-current,
.objn .objn-mlink[aria-expanded="true"]{color:var(--objn-accent);}
.objn .objn-mlink__chev{display:flex;width:24px;height:24px;color:rgba(245,242,237,0.8);transition:transform .25s ease;}
.objn .objn-mlink__chev svg{width:100%;height:100%;}
.objn .objn-mlink[aria-expanded="true"] .objn-mlink__chev{transform:rotate(180deg);color:var(--objn-accent);}
/* вложенные услуги: раскрытие по высоте без скачка (0fr → 1fr) */
.objn .objn-msvc{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease;}
.objn .objn-mlist__item.is-open .objn-msvc{grid-template-rows:1fr;}
.objn .objn-msvc__in{min-height:0;overflow:hidden;visibility:hidden;transition:visibility .25s;}
.objn .objn-mlist__item.is-open .objn-msvc__in{visibility:visible;}
.objn .objn-msvc__in li{border-top:1px solid var(--objn-line);}
.objn .objn-msvc__row{
  display:grid;grid-template-columns:auto minmax(0, 1fr) auto;align-items:center;gap:14px;
  padding:14px 4px 14px 14px;color:var(--objn-cream);
}
.objn .objn-msvc__row .objn-svc__icon{width:30px;height:30px;}
.objn .objn-msvc__row .objn-svc__title{font-size:clamp(19px, 5.4vw, 22px);}
.objn .objn-msvc__row .objn-svc__sub{font-size:clamp(14px, 3.9vw, 16px);}
/* текущая услуга (мы на её странице) */
.objn .objn-msvc__row.is-current{background:rgba(245,242,237,0.06);box-shadow:inset 3px 0 0 var(--objn-accent);}
.objn .objn-msvc__row.is-current .objn-svc__title,
.objn .objn-msvc__row.is-current .objn-svc__icon{color:var(--objn-accent);}

.objn .objn-mobile__contacts{display:flex;flex-direction:column;margin-top:auto;padding-top:40px;}
.objn .objn-mphones{display:flex;flex-direction:column;gap:12px;}
.objn .objn-mgroup{display:flex;flex-direction:column;gap:12px;margin-top:28px;}
.objn .objn-mphone{
  display:flex;align-items:center;gap:16px;
  font-family:var(--objekt-font-heading, 'Playfair Display', serif);
  font-size:clamp(24px, 7vw, 30px);line-height:1.2;color:var(--objn-cream);
}
.objn .objn-mphone .objn-phone__icon{display:flex;width:28px;height:28px;color:rgba(245,242,237,0.85);}
.objn .objn-mphone .objn-phone__icon svg{width:100%;height:100%;}
.objn .objn-mphone .objn-phone__label{font-family:var(--objekt-font-body, 'Manrope', sans-serif);font-size:12px;}
.objn .objn-mphone .objn-phone__num{white-space:nowrap;}
.objn .objn-mphone:hover{color:var(--objn-accent);}
/* подпись над номером (а не слева): длинные подписи «Звонки и мессенджеры», «Многоканальный, Москва» не выталкивают номер за экран */
.objn .objn-mphone{display:grid;grid-template-columns:28px minmax(0, 1fr);column-gap:16px;row-gap:2px;align-items:center;}
.objn .objn-mphone .objn-phone__icon{grid-column:1;grid-row:1 / span 2;}
.objn .objn-mphone .objn-phone__label{grid-column:2;grid-row:1;color:rgba(245,242,237,0.55);}
.objn .objn-mphone .objn-phone__num{grid-column:2;grid-row:2;}
.objn .objn-mmsgs{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.objn .objn-mmsg{
  display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;
  border:1px solid rgba(245,242,237,0.5);border-radius:2px;
  font-size:16px;color:var(--objn-cream);
  transition:border-color .2s ease, color .2s ease;
}
.objn .objn-mmsg .objn-msg__icon svg{width:20px;height:20px;}
.objn .objn-mmsg:hover{border-color:var(--objn-accent);color:var(--objn-accent);}
.objn .objn-mcta{
  display:flex;align-items:center;justify-content:center;gap:14px;width:100%;min-height:56px;
  border-radius:2px;background:var(--objn-accent);
  font-size:17px;font-weight:500;color:var(--objn-bg);
  transition:background-color .2s ease;
}
.objn .objn-mcta svg{width:22px;height:22px;}
.objn .objn-mcta:hover{background:var(--objn-accent-hover);}
.objn .objn-msocial{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px;}
.objn .objn-msoc{
  display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;
  border:1px solid var(--objn-line);border-radius:2px;
  font-size:15px;color:rgba(245,242,237,0.8);
  transition:border-color .2s ease, color .2s ease;
}
.objn .objn-msoc .objn-msg__icon{display:flex;}
.objn .objn-msoc .objn-msg__icon svg{width:20px;height:20px;}
.objn .objn-msoc:hover{border-color:var(--objn-accent);color:var(--objn-accent);}
.objn .objn-mregion{
  display:flex;flex-direction:column;gap:4px;margin-top:20px;
  font-size:11px;line-height:1.4;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(245,242,237,0.55);
}

/* ================= без анимаций ================= */
@media (prefers-reduced-motion: reduce){
  .objn *,
  .objn .objn-bar,
  .objn .objn-panel,
  .objn .objn-mobile{transition:none !important;}
}
/* узкие телефоны: логотип меньше, чтобы кнопка меню не уходила за край */
@media (max-width:379px){ .objn .objn-logo__img--brand{height:21px;} }
/* телефон (решение Егора 01.10): логотип компактнее и по центру высоты с кнопками звонка, Telegram и MAX;
   подпись «Строительство и реконструкция» в шапке не показываем — она делала блок высоким и поднимала знак вверх */
@media (max-width:767px){
  .objn .objn-brand{flex-direction:row;align-items:center;align-self:center;}
  .objn .objn-region-m{display:none;}
  .objn .objn-logo{display:flex;align-items:center;}
  .objn .objn-logo__img--brand{height:24px;}
}
@media (max-width:379px){ .objn .objn-logo__img--brand{height:21px;} }
