/*
Theme Name: Вершина ЭКСПЕРТ — Строительная лаборатория
Theme URI: https://vershina.expert
Author: Вершина ЭКСПЕРТ
Author URI: https://vershina.expert
Description: Тема для аккредитованной строительной лаборатории «Вершина ЭКСПЕРТ». Спокойная подача с крупной типографикой и воздухом, цены и сроки на виду, палитра графит / тёплый серый / сигнальный жёлтый. Фирменный знак — геодезический пункт на вершине. Иерархические услуги, объекты, отзывы-письма, сотрудники, прайс, акции, аккредитация, карта-футер, формы-модалки. JSON-LD, Open Graph. Без jQuery.
Version: 2.2.1
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: vershina
Tags: business, custom-menu, custom-logo, translation-ready
*/

/* ==========================================================================
   1. Токены
   ========================================================================== */
:root{
  --bg:#FFFFFF;             /* основной фон */
  --bg-2:#F3F2EE;           /* тёплый светло-серый: плитки, полосы */
  --bg-3:#E6E5E0;           /* плейсхолдеры, подложки картинок */
  --ink:#131516;            /* графит: текст, кнопки, тёмные блоки */
  --ink-2:#5A5F61;          /* вторичный текст */
  --ink-3:#75797B;          /* подписи */
  --line:#DCDBD5;           /* разделители */
  --line-2:#EFEEEA;         /* разделители внутри таблиц */
  --dark:#131516;           /* тёмные блоки */
  --dark-2:#1F2325;         /* поля и подложки на тёмном */
  --dark-line:#3A3F41;
  --on-dark:#F3F2EE;
  --on-dark-2:#A6ABAD;
  --signal:#FFCC00;         /* сигнальный жёлтый: только действие и отклонение */
  --signal-hover:#FFD633;

  /* Совместимость со старыми переменными — их используют вставленные вручную страницы */
  --snow:var(--bg);
  --snow-2:var(--bg-2);
  --pine:var(--ink);
  --pine-deep:var(--dark);
  --pine-soft:var(--dark-2);
  --stone:var(--ink-3);
  --peak:var(--signal);
  --peak-deep:#E6B800;
  --glacier:var(--ink-2);
  --line-dark:rgba(255,255,255,.14);

  --font-display:-apple-system,BlinkMacSystemFont,'SF Pro Display','Onest','Helvetica Neue',sans-serif;
  --font-body:-apple-system,BlinkMacSystemFont,'SF Pro Text','Onest','Helvetica Neue',sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;

  --container:1180px;
  --container-wide:1416px;
  --gutter:22px;
  --radius:22px;
  --radius-lg:28px;
  --radius-sm:12px;
  --pill:980px;
  --shadow:0 30px 80px -24px rgba(19,21,22,.22);
  --shadow-sm:0 10px 30px -14px rgba(19,21,22,.22);
  --t:.24s cubic-bezier(.32,.72,0,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --brand:#1C3A2E;          /* цвет знака в логотипе — как в прежней версии */
  --font-logo:'Fraunces',Georgia,serif;
  --peak-clip:polygon(0 12%,50% 0,100% 12%,100% 100%,0 100%);
}

/* ==========================================================================
   2. База
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;font-family:var(--font-body);font-size:17px;line-height:1.55;
  color:var(--ink);background:var(--bg);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  font-feature-settings:"tnum" 0;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none;transition:color var(--t),opacity var(--t)}
a:hover{color:var(--ink)}
h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;line-height:1.08;margin:0 0 .5em;letter-spacing:-.025em;text-wrap:balance}
h1{font-size:clamp(2.6rem,6vw,5.4rem);letter-spacing:-.03em}
h2{font-size:clamp(2rem,4.2vw,3.5rem)}
h3{font-size:clamp(1.2rem,1.8vw,1.5rem);letter-spacing:-.015em}
h4{font-size:1.1rem}
p{margin:0 0 1.1em}
ul,ol{padding-left:1.3em}
strong,b{font-weight:600}
::selection{background:var(--signal);color:var(--ink)}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:4px}
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden}
.skip-link:focus{position:fixed!important;clip:auto;width:auto;height:auto;top:12px;left:12px;z-index:300;background:var(--ink);color:#fff;padding:.7em 1.2em;border-radius:var(--pill)}
.num,.tnum{font-variant-numeric:tabular-nums}

.container{max-width:calc(var(--container) + var(--gutter)*2);margin:0 auto;padding:0 var(--gutter);width:100%}
.container-wide{max-width:calc(var(--container-wide) + 24px);margin:0 auto;padding:0 12px;width:100%}
.section{padding:clamp(72px,10vw,140px) 0}
.section-sm{padding:clamp(40px,6vw,80px) 0}
.section-soft{background:var(--bg-2)}
.muted{color:var(--ink-2)}

/* Знак вершины: треугольник с точкой (геодезический пункт) */
.peak-mark{display:inline-block;flex:none;width:1.1em;height:1em;vertical-align:-.1em}
.peak-mark path{fill:none;stroke:currentColor;stroke-width:2.2;stroke-linejoin:round}
.peak-mark circle{fill:var(--signal)}
.peak-mark--solid path{fill:var(--signal);stroke:var(--signal)}
.peak-mark--solid circle{fill:var(--ink)}

/* Надзаголовок секции: знак + короткий текст */
.eyebrow{
  display:inline-flex;align-items:center;gap:.55em;
  font-family:var(--font-body);font-size:clamp(.95rem,1.4vw,1.1rem);font-weight:600;letter-spacing:-.005em;
  color:var(--ink);margin:0 0 .9rem;
}
.eyebrow::before{
  content:"";width:15px;height:14px;flex:none;
  background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 22'%3E%3Cpath d='M12 2.5 22 20H2Z' fill='%23FFCC00' stroke='%23FFCC00' stroke-width='2' stroke-linejoin='round'/%3E%3Ccircle cx='12' cy='14' r='2.4' fill='%23131516'/%3E%3C/svg%3E");
}
.section-head{max-width:860px;margin:0 auto clamp(40px,5vw,64px);text-align:center}
.section-head h2{margin-bottom:.25em}
.section-head .lead,.lead{font-size:clamp(1.1rem,1.8vw,1.4rem);color:var(--ink-2);line-height:1.42;letter-spacing:-.005em}
.section-head .lead{margin:0 auto;max-width:34em}

/* ==========================================================================
   3. Кнопки и ссылки
   ========================================================================== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-family:var(--font-body);font-size:1rem;font-weight:500;letter-spacing:-.005em;
  padding:.82em 1.55em;border-radius:var(--pill);min-height:44px;
  border:1.5px solid transparent;cursor:pointer;line-height:1.1;white-space:nowrap;
  transition:background var(--t),color var(--t),border-color var(--t),opacity var(--t);
}
.btn svg{width:1.05em;height:1.05em}
.btn-primary,.btn-pine{background:var(--ink);color:#fff}
.btn-primary:hover,.btn-pine:hover{background:#000;color:#fff}
.btn-peak{background:var(--signal);color:var(--ink);font-weight:600}
.btn-peak:hover{background:var(--signal-hover);color:var(--ink)}
.btn-ghost{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-ghost:hover{background:var(--ink);color:#fff}
.btn-light{border-color:rgba(255,255,255,.4);color:#fff;background:transparent}
.btn-light:hover{background:#fff;color:var(--ink);border-color:#fff}
.btn-lg{font-size:1.06rem;padding:.92em 1.8em}
.btn-sm{font-size:.82rem;padding:.5em 1.05em;min-height:32px}

.link-arrow,.svc-more{display:inline-flex;align-items:center;gap:.3em;font-weight:500;color:var(--ink)}
.link-arrow:hover,.svc-more:hover{text-decoration:underline;text-underline-offset:3px;color:var(--ink)}
.link-arrow span,.svc-more span{display:none}
.link-arrow::after,.svc-more::after{content:"›";font-size:1.15em;line-height:1}
.on-dark .link-arrow,.on-dark .svc-more{color:var(--signal)}


/* ==========================================================================
   4. Шапка
   ========================================================================== */
.topbar{display:none}
.site-header{position:sticky;top:0;z-index:90;background:rgba(255,255,255,.86);-webkit-backdrop-filter:saturate(180%) blur(18px);backdrop-filter:saturate(180%) blur(18px);border-bottom:1px solid rgba(19,21,22,.08)}
.header-inner{display:flex;align-items:center;gap:28px;min-height:64px}
.site-header > .container{max-width:calc(var(--container-wide) + var(--gutter)*2)}
.site-header.is-stuck{box-shadow:0 10px 30px -22px rgba(19,21,22,.45)}
.brand-link{display:inline-flex;align-items:center;gap:12px;color:var(--ink)}
.brand-link:hover{color:var(--ink)}
.brand-mark{display:inline-flex;width:40px;height:32px;flex:none;color:var(--brand)}
.brand-mark svg{width:100%;height:100%;overflow:visible}
.brand-text{display:flex;flex-direction:column;line-height:1}
.brand-title{font-family:var(--font-logo);font-weight:600;font-size:1.32rem;letter-spacing:-.01em;color:var(--ink)}
.brand-sub{display:block;white-space:nowrap;font-family:var(--font-mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);margin-top:4px}
.custom-logo{max-height:48px;width:auto}

.main-nav{margin:0 auto}
.main-nav-list{display:flex;gap:1.7em;list-style:none;margin:0;padding:0;align-items:center}
.main-nav-list a{font-size:.86rem;color:var(--ink);opacity:.84;padding:8px 0;display:block;white-space:nowrap}
.main-nav-list a:hover,.main-nav-list .current-menu-item > a,.main-nav-list .current-menu-ancestor > a{opacity:1}
.main-nav-list li{position:relative}
.main-nav-list .sub-menu{
  position:absolute;top:100%;left:-16px;min-width:260px;background:rgba(255,255,255,.98);
  border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);
  list-style:none;margin:6px 0 0;padding:8px;opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity var(--t),transform var(--t),visibility var(--t);z-index:20;
}
.main-nav-list li:hover > .sub-menu,.main-nav-list li:focus-within > .sub-menu{opacity:1;visibility:visible;transform:none}
.main-nav-list .sub-menu a{padding:.6em .8em;border-radius:8px;font-size:.88rem;opacity:1}
.main-nav-list .sub-menu a:hover{background:var(--bg-2)}

.header-cta{display:flex;align-items:center;gap:16px;margin-left:auto}
.header-phone{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}
.header-phone-label{display:none}
.header-phone-num{font-weight:500;font-size:.86rem;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.header-cta .btn{font-size:.8rem;padding:.55em 1.1em;min-height:32px}

.nav-toggle{display:none;width:44px;height:44px;border:0;background:transparent;cursor:pointer;position:relative;flex:none;margin-right:-10px}
.nav-toggle span,.nav-toggle span::before{content:"";position:absolute;left:13px;right:13px;height:1.6px;background:var(--ink);border-radius:2px;transition:transform var(--t)}
.nav-toggle span{top:18px}
.nav-toggle span::before{top:7px;left:0;right:0}
body.nav-open .nav-toggle span{transform:translateY(3.5px) rotate(45deg);background:#fff}
body.nav-open .nav-toggle span::before{transform:translateY(-7px) rotate(-90deg);background:#fff}

/* ==========================================================================
   5. Первый экран главной
   ========================================================================== */
.hero{text-align:center;padding:clamp(56px,8vw,104px) 0 0;background:var(--bg)}
.hero-badge{display:inline-flex;align-items:center;gap:.55em;font-size:clamp(1rem,1.6vw,1.2rem);font-weight:600;margin:0 0 .9rem}
.hero-badge .peak-mark{width:17px;height:16px}
.hero-title{font-size:clamp(2.6rem,6.4vw,5.6rem);line-height:1.02;letter-spacing:-.035em;max-width:11.5em;margin:0 auto .3em}
.hero-lead{font-size:clamp(1.15rem,2vw,1.45rem);line-height:1.42;color:var(--ink-2);max-width:31em;margin:0 auto}
.hero-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:2rem}
.hero-phone{display:inline-flex;align-items:center;gap:.5em;font-weight:500;color:var(--ink);padding:.6em .4em}
.hero-phone-ico{display:none}
.hero-media{max-width:var(--container-wide);margin:clamp(48px,6vw,72px) auto 0;padding:0 12px}
.hero-media picture,.hero-media img{display:block;width:100%}
.hero-media img{aspect-ratio:16/8.4;object-fit:cover;clip-path:var(--peak-clip);border-radius:0 0 var(--radius-lg) var(--radius-lg)}

/* Полоса фактов */
.facts-band{background:var(--bg-2);margin-top:clamp(72px,9vw,120px);padding:clamp(64px,8vw,104px) 0}
.facts-band h2{text-align:center;max-width:14em;margin:0 auto}
.facts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:40px 24px;text-align:center;margin-top:clamp(44px,6vw,72px)}
.fact-big-num{margin:0;font-family:var(--font-display);font-weight:700;font-size:clamp(2.8rem,4.6vw,4rem);letter-spacing:-.035em;line-height:1;font-variant-numeric:tabular-nums}
.fact-big-label{margin:.6em 0 0;color:var(--ink-2);font-size:1.05rem;line-height:1.4}

/* Старые элементы героя — на случай дочерних шаблонов */
.hero-topo,.adv-topo,.promo-card-topo,.akc-hero-topo{display:none}
.hero-stats{display:none}
.vstat{text-align:center}
.vstat-num{margin:0;font-family:var(--font-display);font-weight:700;font-size:clamp(2.4rem,4vw,3.6rem);letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums}
.vstat-u{margin-left:.04em}
.vstat-label{margin-top:.5em;color:var(--ink-2);font-size:1rem}

/* ==========================================================================
   6. Флагманская плитка и тёмные блоки
   ========================================================================== */
.on-dark{background:var(--dark);color:var(--on-dark)}
.on-dark h1,.on-dark h2,.on-dark h3{color:var(--on-dark)}
.on-dark .lead,.on-dark .muted{color:var(--on-dark-2)}
.tag-new{display:inline-block;font-size:.82rem;font-weight:600;background:var(--signal);color:var(--ink);padding:.28em .8em;border-radius:var(--pill);letter-spacing:0}

.flagship{border-radius:var(--radius-lg);padding:clamp(48px,6vw,76px) 24px 0;text-align:center;overflow:hidden}
.flagship h2{font-size:clamp(2.2rem,4.4vw,3.6rem);margin:.4em 0 .25em}
.flagship .lead{max-width:26em;margin:0 auto}
.flagship-price{margin:1.1em 0 0;font-size:1.06rem}
.flagship .hero-actions{margin-top:1.4rem}
.flagship-media{max-width:960px;margin:44px auto 0}
.flagship-media img{width:100%;aspect-ratio:16/7;object-fit:cover;border-radius:18px 18px 0 0}
.flagship-media-ph{aspect-ratio:16/7;background:var(--dark-2);border-radius:18px 18px 0 0}

.section-dark{background:var(--dark);color:var(--on-dark-2);position:relative;overflow:hidden}
.section-dark h2,.section-dark h3{color:var(--on-dark)}
.section-dark .eyebrow{color:var(--on-dark)}
.section-dark .lead{color:var(--on-dark-2)}

/* ==========================================================================
   7. Таблицы цен и направлений
   ========================================================================== */
.table-card{background:var(--bg-2);border-radius:var(--radius-lg);padding:clamp(24px,4vw,48px)}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.dir-table,.price-table{width:100%;border-collapse:collapse;font-size:1rem}
.dir-table{min-width:780px}
.dir-table th,.price-table thead th{text-align:left;font-family:var(--font-mono);font-weight:400;font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);padding:0 16px 14px 0;border-bottom:1px solid var(--ink);vertical-align:bottom}
.dir-table td,.price-table td{padding:20px 16px 20px 0;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.45}
.dir-table tr:last-child td,.price-table tr:last-child td{border-bottom:0}
.dir-table td:first-child a{font-weight:600;font-size:1.15rem;letter-spacing:-.01em}
.dir-table td:first-child a::after{content:"›";margin-left:.3em}
.dir-table td:first-child a:hover{text-decoration:underline;text-underline-offset:3px}
.dir-table .dir-desc{color:var(--ink-2)}
.dir-table .dir-price,.price-table td.num{font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink)}
.dir-table .dir-time{white-space:nowrap}
.price-table th.ta-r,.price-table td.num{text-align:right;padding-right:0}
.price-table td a{font-weight:500;color:var(--ink)}
.price-table td a:hover{text-decoration:underline;text-underline-offset:3px}
.price-unit{color:var(--ink-2);font-size:.92rem}
.price-block{margin-bottom:clamp(40px,5vw,64px)}
.price-block-title{font-size:clamp(1.5rem,2.4vw,2rem);margin-bottom:1rem}
.price-note{font-size:.92rem;line-height:1.6;color:var(--ink-2);max-width:62em;margin-top:1.5rem}

/* ==========================================================================
   8. Протокол
   ========================================================================== */
.proto{text-align:center}
.proto-figure{max-width:720px;margin:clamp(40px,5vw,56px) auto 0}
.proto-figure img{width:100%;border-radius:18px;box-shadow:var(--shadow);border:1px solid var(--line)}
.proto-figure figcaption{font-size:.86rem;color:var(--ink-3);margin-top:16px}
.proto-sheet{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:clamp(24px,4vw,44px);text-align:left}
.proto-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:var(--font-mono);font-size:.72rem;color:var(--ink-2);border-bottom:1px solid var(--ink);padding-bottom:12px}
.proto-title{margin:22px 0 4px;font-weight:600;font-size:1.1rem;text-align:center}
.proto-sub{margin:0 0 20px;font-size:.84rem;color:var(--ink-2);text-align:center}
.proto-rows{list-style:none;margin:0;padding:0}
.proto-rows li{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line-2);font-size:.95rem}
.proto-rows li:last-child{border-bottom:0}
.proto-rows li span:last-child{color:var(--ink-2);text-align:right}
.proto-rows .is-flag span:last-child{background:var(--signal);color:var(--ink);padding:2px 8px;border-radius:6px;font-weight:600}

/* ==========================================================================
   9. Подъём к протоколу (этапы)
   ========================================================================== */
.ascent{list-style:none;margin:clamp(40px,5vw,56px) auto 0;padding:0;max-width:var(--container);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:0 12px;align-items:start;text-align:left}
.ascent-step{padding:22px 16px 0 0;position:relative}
.ascent-step::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--ink);transform-origin:left center}
.ascent-step:nth-child(1){margin-top:clamp(0px,6.6vw,96px)}
.ascent-step:nth-child(2){margin-top:clamp(0px,4.4vw,64px)}
.ascent-step:nth-child(3){margin-top:clamp(0px,2.2vw,32px)}
.ascent-mark{font-family:var(--font-mono);font-size:.8rem;color:var(--ink-2);margin:0}
.ascent-step h3{margin:.5em 0 .35em;font-size:1.45rem}
.ascent-step p{margin:0;color:var(--ink-2);line-height:1.45}
.ascent-step.is-summit::before{height:2px}
.ascent-step.is-summit .ascent-mark{color:var(--ink);font-weight:500}
.ascent-step.is-summit .peak-mark{position:absolute;top:-26px;left:0;width:28px;height:26px}
.ascent-step.is-summit .peak-mark path{fill:var(--signal);stroke:var(--ink);stroke-width:1.8}
.ascent-step.is-summit .peak-mark circle{fill:var(--ink)}
@media (max-width:620px){.ascent-step{margin-top:0!important;padding-bottom:24px}.ascent-step.is-summit{margin-top:28px!important}}

/* Старые этапы */
.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:0 12px;counter-reset:step}
.step-item{border-top:1px solid var(--ink);padding:22px 16px 0 0}
.step-num{font-family:var(--font-mono);font-size:.8rem;color:var(--ink-2)}
.step-item h3{margin:.5em 0 .35em;font-size:1.4rem}
.step-item p{margin:0;color:var(--ink-2)}

/* ==========================================================================
   10. Плитки и карточки
   ========================================================================== */
.services-head{display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap;text-align:left;max-width:none;margin-left:0;margin-right:0}
.services-head h2{margin:0}
.services-head-btn{flex:none}

.svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:16px}
.svc-grid-sub{margin-top:1.4rem}
.svc-card{background:var(--bg-2);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;position:relative;transition:background var(--t)}
.svc-card:hover{background:var(--bg-3)}
.svc-media{aspect-ratio:16/9;overflow:hidden;background:var(--bg-3);display:grid;place-items:center}
.svc-media img{width:100%;height:100%;object-fit:cover}
.svc-icon{width:56px;height:56px;color:var(--ink-3)}
.svc-icon svg{width:100%;height:100%}
.svc-body{padding:1.6rem 1.6rem 1.7rem;display:flex;flex-direction:column;flex:1}
.svc-index{display:none}
.svc-body h3{margin:0 0 .35em;font-size:1.35rem}
.svc-body h3 a::after{content:"";position:absolute;inset:0}
.svc-count{color:var(--ink-2);margin:0 0 1.2em;flex:1;font-size:.98rem}
.svc-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;flex-wrap:wrap}
.svc-price{font-weight:600;font-variant-numeric:tabular-nums}
.svc-price-unit{color:var(--ink-2);font-weight:400}

/* Объекты */
.objects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:24px}
.object-card{background:transparent}
.object-card-link{display:block;color:var(--ink)}
.object-thumb{aspect-ratio:4/3;overflow:hidden;background:var(--bg-3);border-radius:18px;display:grid;place-items:center}
.object-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--t)}
.object-card-link:hover .object-thumb img{transform:scale(1.03)}
.object-thumb-ph{width:56px;height:56px;color:var(--ink-3)}
.object-thumb-ph svg{width:100%;height:100%}
.object-body{padding:16px 2px 0}
.object-body h3{margin:0 0 .25em;font-size:1.2rem}
.object-body p{margin:0;color:var(--ink-2);font-size:.95rem}

/* Команда */
.staff-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:24px}
.staff-card{background:transparent}
.staff-photo{aspect-ratio:3/4;overflow:hidden;background:var(--bg-2);border-radius:18px;display:grid;place-items:center}
.staff-photo img{width:100%;height:100%;object-fit:cover;object-position:center top}
.staff-initials{width:80px;height:80px;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:#fff;font-weight:600;font-size:1.6rem}
.staff-meta{padding:14px 2px 0}
.staff-name{margin:0 0 .2em;font-size:1.08rem}
.staff-role{color:var(--ink-2);font-size:.92rem;line-height:1.4}

/* Отзывы-цитаты */
.reviews-home-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px}
.review-quote{background:var(--bg-2);border-radius:var(--radius);padding:2rem 1.9rem;margin:0}
.review-quote-mark{display:none}
.review-quote blockquote{margin:0 0 1.4em;font-size:1.08rem;line-height:1.55}
.review-quote figcaption{display:flex;flex-direction:column;gap:.15em;border-top:1px solid var(--line);padding-top:1em}
.review-quote-name{font-weight:600}
.review-quote-role{color:var(--ink-2);font-size:.9rem}

/* Письма заказчиков */
.letters-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:clamp(32px,5vw,80px);align-items:center}
.letters-strip-text h2{margin-bottom:.3em}
.letters-thumbs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.letters-thumbs a{display:block;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:#fff;aspect-ratio:210/297;transition:transform var(--t),box-shadow var(--t)}
.letters-thumbs a:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm)}
.letters-thumbs img{width:100%;height:100%;object-fit:cover;object-position:top}
.letters-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;margin-bottom:1rem}
.letter-item{margin:0;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:transform var(--t),box-shadow var(--t)}
.letter-item:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm)}
.letter-item img{aspect-ratio:9/16;object-fit:cover;width:100%;height:auto;display:block}
.letter-item figcaption{padding:.8em 1em;font-size:.86rem;color:var(--ink-2);text-align:center}

/* О компании (главная — старая разметка) */
.about-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:clamp(40px,6vw,90px);align-items:start}
.about-marks{display:grid;gap:12px}
.about-mark{display:grid;grid-template-columns:auto 1fr;gap:0 18px;padding:24px;background:var(--bg-2);border-radius:var(--radius)}
.about-mark-ico{width:40px;height:40px;color:var(--ink);grid-row:span 2}
.about-mark-ico svg{width:100%;height:100%}
.about-mark h3{margin:0 0 .3em;font-size:1.2rem}
.about-mark p{margin:0;color:var(--ink-2);grid-column:2}

/* Преимущества */
.adv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px}
.adv-item{background:var(--dark-2);border-radius:var(--radius);padding:clamp(1.6rem,3vw,2.2rem)}
.adv-num{font-family:var(--font-mono);font-size:.82rem;color:var(--signal)}
.adv-item h3{margin:.6em 0 .35em;font-size:1.3rem}
.adv-item p{margin:0;color:var(--on-dark-2)}

/* ==========================================================================
   11. Формы
   ========================================================================== */
.lead-form{position:relative}
.lead-form-head{margin-bottom:1.3rem}
.lead-form-head h3{margin-bottom:.3em;font-size:1.5rem}
.lead-form-head p{margin:0;color:var(--ink-2);font-size:.98rem}
.lead-field{margin-bottom:12px}
.lead-field label{display:block;font-size:.82rem;color:var(--ink-2);margin-bottom:6px}
.lead-field input,.lead-field textarea{width:100%;font:inherit;font-size:17px;color:var(--ink);padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;transition:border-color var(--t)}
.lead-field input:focus,.lead-field textarea:focus{outline:none;border-color:var(--ink)}
.lead-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.lead-submit{width:100%;margin-top:6px;font-weight:600}
.lead-form .btn-peak{background:var(--ink);color:#fff}
.lead-form .btn-peak:hover{background:#000}
.lead-consent{font-size:.78rem;color:var(--ink-3);margin:1rem 0 0;line-height:1.5;text-align:center}
.lead-consent a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.lead-result{margin:.8rem 0 0;font-size:.92rem;font-weight:600;text-align:center}
.lead-result.ok{color:var(--ink)}
.lead-result.err{color:#C9341A}

/* Форма на тёмной панели */
.form-panel{background:var(--dark);color:var(--on-dark);border-radius:var(--radius-lg);padding:clamp(56px,7vw,96px) var(--gutter);text-align:center}
.form-panel h2{color:var(--on-dark);max-width:12em;margin:0 auto .3em}
.form-panel .lead{color:var(--on-dark-2)}
.form-panel .lead a{color:var(--on-dark);font-weight:600}
.form-panel .lead-form{max-width:560px;margin:clamp(32px,4vw,44px) auto 0;text-align:left}
.form-panel .lead-form-head{display:none}
.form-panel .lead-field label{color:var(--on-dark-2)}
.form-panel .lead-field input,.form-panel .lead-field textarea{background:var(--dark-2);border-color:var(--dark-line);color:var(--on-dark)}
.form-panel .lead-field input:focus,.form-panel .lead-field textarea:focus{border-color:var(--signal)}
.form-panel .lead-form .btn-peak{background:var(--signal);color:var(--ink)}
.form-panel .lead-form .btn-peak:hover{background:var(--signal-hover)}
.form-panel .lead-consent{color:#8A8F91}
.form-panel .lead-result.ok{color:var(--signal)}
.form-panel .lead-result.err{color:#FF8A70}

/* ==========================================================================
   12. Страница услуги
   ========================================================================== */
.svc-subnav{position:sticky;top:64px;z-index:80;background:rgba(19,21,22,.94);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:var(--on-dark);border-bottom:1px solid var(--dark-line)}
.svc-subnav-inner{display:flex;align-items:center;gap:20px;min-height:52px}
.svc-subnav-title{font-weight:600;font-size:1.15rem;letter-spacing:-.01em;margin-right:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.svc-subnav-links{display:flex;gap:22px;font-size:.78rem}
.svc-subnav-links a{color:var(--on-dark);opacity:.84}
.svc-subnav-links a:hover{opacity:1;color:var(--on-dark)}

.svc-hero{text-align:center;padding:clamp(56px,8vw,104px) 0 0;overflow:hidden}
.svc-hero .breadcrumbs{justify-content:center;color:var(--on-dark-2)}
.svc-hero .breadcrumbs a:hover{color:var(--on-dark)}
.svc-hero h1{font-size:clamp(2.4rem,6vw,5rem);max-width:12em;margin:.35em auto .3em}
.svc-hero .breadcrumbs{margin-bottom:1.2rem}
.svc-hero .lead{max-width:30em;margin:0 auto}
.svc-hero-price{margin:1.2em 0 0;font-size:1.15rem;font-variant-numeric:tabular-nums}
.svc-hero-media{max-width:calc(var(--container) + var(--gutter)*2);margin:clamp(48px,6vw,80px) auto 0;padding:0 var(--gutter)}
.svc-hero-media img{width:100%;aspect-ratio:16/8.4;object-fit:cover;clip-path:var(--peak-clip)}
.svc-hero-pad{height:clamp(56px,8vw,96px)}

.service-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));max-width:var(--container);margin:0 auto;border-top:1px solid var(--ink)}
.fact{padding:20px 20px 0 0}
.fact-label{display:block;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);margin-bottom:.5em}
.fact-val{font-weight:600;font-size:1.4rem;letter-spacing:-.015em;font-variant-numeric:tabular-nums}
.fact-val small{font-size:.75em;color:var(--ink-2);font-weight:400}

.svc-content{max-width:820px;margin:0 auto}
.svc-children{max-width:var(--container);margin:clamp(56px,7vw,88px) auto 0}
.svc-children h2{font-size:clamp(1.8rem,3.4vw,2.6rem)}

/* Две колонки: текст + форма (FAQ, аккредитация, объект) */
.layout-sidebar{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:clamp(36px,5vw,64px);align-items:start}
.sidebar-sticky{position:sticky;top:76px;background:var(--bg-2);border-radius:var(--radius);padding:clamp(1.6rem,2.4vw,2.2rem)}
@media (max-width:1080px){
  .layout-sidebar{grid-template-columns:1fr}
  .sidebar-sticky{position:static;max-width:520px}
}

.prose.svc-content{max-width:820px}
/* Блоки, вставленные в текст услуги вручную (прежние страницы) — подгоняем под колонку */
.svc-content .s3d-steps{grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr))!important}
.svc-content .s3d-note,.svc-content .s3d-fact{border-radius:var(--radius-sm)}

/* ==========================================================================
   13. Текст страниц
   ========================================================================== */
.prose{max-width:780px}
.prose > *:first-child{margin-top:0}
.prose p,.prose li{font-size:1.06rem;line-height:1.6}
.prose h2{margin:2.2em 0 .6em;font-size:clamp(1.7rem,3vw,2.4rem)}
.prose h3{margin:1.7em 0 .5em;font-size:1.35rem}
.prose ul,.prose ol{margin:0 0 1.3em}
.prose li{margin-bottom:.45em}
.prose ul li::marker{color:var(--ink-3)}
.prose a{text-decoration:underline;text-underline-offset:3px}
.prose img{border-radius:var(--radius);margin:1.6em 0}
.prose blockquote{margin:1.6em 0;padding:1.2em 1.5em;background:var(--bg-2);border-radius:var(--radius-sm)}
.prose table{width:100%;border-collapse:collapse;margin:1.6em 0;font-size:1rem}
.prose th,.prose td{text-align:left;padding:14px 14px 14px 0;border-bottom:1px solid var(--line);vertical-align:top}
.prose thead th{font-family:var(--font-mono);font-weight:400;font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2);border-bottom:1px solid var(--ink);background:none}
.prose tbody tr:last-child td{border-bottom:0}
.prose td.num,.prose th.ta-r{text-align:right;padding-right:0}
.prose td.num{font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink)}

.legal-updated{font-family:var(--font-mono);font-size:.82rem;color:var(--ink-2);margin:0}
.legal-prose{max-width:820px;margin:0 auto}
.legal-prose h2{font-size:1.5rem;margin-top:2em}
.legal-prose h3{font-size:1.15rem}
.legal-prose ol,.legal-prose ul{margin:0 0 1.3em}
.legal-prose li{margin-bottom:.6em}
.legal-prose p{color:var(--ink-2)}

/* Шапка внутренних страниц */
.page-hero{background:var(--bg);padding:clamp(56px,7vw,96px) 0 clamp(36px,4vw,56px);text-align:center}
.page-hero h1{margin:.2em auto .25em;max-width:16ch;font-size:clamp(2.4rem,5.4vw,4.4rem)}
.page-hero .lead{max-width:34em;margin:0 auto}
.page-hero .breadcrumbs{justify-content:center}
.page-hero + .section{padding-top:clamp(32px,4vw,56px)}

.breadcrumbs{display:flex;font-size:.84rem;color:var(--ink-2);margin:0 0 .6rem}
.breadcrumbs ol{list-style:none;display:flex;flex-wrap:wrap;justify-content:inherit;gap:.45em;margin:0;padding:0}
.breadcrumbs li:not(:last-child)::after{content:"›";margin-left:.45em;opacity:.6}
.breadcrumbs a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}

/* ==========================================================================
   14. FAQ
   ========================================================================== */
.faq-block{margin-top:clamp(56px,7vw,88px)}
.faq-block h2{font-size:clamp(1.8rem,3.4vw,2.6rem);margin-bottom:.6em}
.faq-group{margin-bottom:clamp(40px,5vw,56px)}
.faq-group-title{font-size:clamp(1.4rem,2.4vw,1.8rem);margin-bottom:.5em}
.faq-item{border-bottom:1px solid var(--line);background:none}
.faq-block .faq-item:first-of-type,.faq-group .faq-item:first-of-type{border-top:1px solid var(--ink)}
.faq-item summary{cursor:pointer;list-style:none;position:relative;padding:22px 44px 22px 0;font-weight:600;font-size:1.12rem;letter-spacing:-.01em}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";position:absolute;right:2px;top:50%;transform:translateY(-52%);font-size:1.7rem;font-weight:300;color:var(--ink-2)}
.faq-item[open] summary::after{content:"−"}
.faq-item p{margin:0;padding:0 0 22px;color:var(--ink-2);max-width:44em;line-height:1.55}

/* ==========================================================================
   15. Карта-футер, CTA, подвал
   ========================================================================== */
.footer-map{position:relative;min-height:clamp(520px,58vh,640px);overflow:hidden;background:var(--bg-2)}
.footer-map-bg{position:absolute;inset:0;z-index:0}
.footer-map-bg iframe{width:100%!important;height:100%!important;border:0;display:block;filter:grayscale(1) contrast(1.05) brightness(1.03)}
.footer-map .container{position:relative;z-index:2;height:100%;display:flex;align-items:center;padding-top:60px;padding-bottom:60px}
.footer-map-card{width:min(420px,100%);background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(1.8rem,3vw,2.4rem)}
.footer-map-card h3{margin:0 0 1rem;font-size:1.7rem}
.fm-phone{display:block;font-weight:700;font-size:1.45rem;letter-spacing:-.015em;font-variant-numeric:tabular-nums;line-height:1.3}
.fm-phone-2{font-size:1.1rem;font-weight:500;color:var(--ink-2)}
.fm-link{display:inline-flex;margin:1em 0 0;background:none;border:0;cursor:pointer;padding:0;font:inherit;font-weight:500;color:var(--ink)}
.fm-link:hover{text-decoration:underline;text-underline-offset:3px}
.fm-divider{border-top:1px solid var(--line);margin:1.4rem 0}
.fm-mail{font-weight:500}
.fm-address,.fm-hours{margin:.5em 0 0;color:var(--ink-2);font-size:.95rem}
.fm-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:1.4rem}
.fm-chip{display:inline-flex;align-items:center;min-height:36px;border:1px solid var(--line);border-radius:var(--pill);font-size:.86rem;padding:.4em 1em;transition:border-color var(--t),background var(--t)}
.fm-chip:hover{background:var(--ink);border-color:var(--ink);color:#fff}

.cta-band{padding:0 12px clamp(12px,2vw,24px)}
.cta-inner{max-width:var(--container-wide);margin:0 auto;background:var(--dark);color:var(--on-dark);border-radius:var(--radius-lg);padding:clamp(48px,6vw,80px) var(--gutter);display:flex;flex-direction:column;align-items:center;text-align:center;gap:24px}
.cta-text .eyebrow{color:var(--on-dark)}
.cta-text h2{color:var(--on-dark);margin:0 auto .25em;max-width:14em}
.cta-sub{margin:0 auto;color:var(--on-dark-2);max-width:32em;font-size:1.15rem}
.cta-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:20px}
.cta-phone{font-weight:700;font-size:clamp(1.5rem,2.4vw,2rem);color:var(--on-dark);letter-spacing:-.015em;font-variant-numeric:tabular-nums}
.cta-phone:hover{color:var(--signal)}
.cta-actions .btn-light{background:var(--signal);border-color:var(--signal);color:var(--ink);font-weight:600}
.cta-actions .btn-light:hover{background:var(--signal-hover);border-color:var(--signal-hover)}

.site-footer{background:var(--bg-2);color:var(--ink-2);font-size:.86rem;padding-top:clamp(40px,5vw,56px);border-top:1px solid var(--line)}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:32px;padding-bottom:28px}
.footer-brand .brand-link{margin-bottom:.9rem}
.site-footer .brand-mark{width:44px;height:35px}
.footer-name{display:none}
.footer-tagline{margin:0;max-width:30em;line-height:1.55}
.footer-col-title{font-weight:600;color:var(--ink);margin:0 0 .9em;font-size:.9rem}
.footer-menu-list{list-style:none;margin:0;padding:0;display:grid;gap:.55em}
.footer-menu-list a,.footer-contacts a{color:var(--ink-2)}
.footer-menu-list a:hover,.footer-contacts a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.footer-contacts a{display:block;margin-bottom:.45em;font-variant-numeric:tabular-nums}
.footer-contacts p{margin:.7em 0 0;line-height:1.5}
.footer-contacts .footer-col-title{margin:0 0 .9em}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px 24px;flex-wrap:wrap;padding-block:18px 26px;font-size:.8rem;color:var(--ink-3);background:linear-gradient(var(--line),var(--line)) center top/calc(100% - var(--gutter)*2) 1px no-repeat}
.footer-bottom p{margin:0}
.footer-legal{display:flex;gap:1.4em;flex-wrap:wrap}
.footer-legal a{color:var(--ink-2)}
.footer-legal a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.footer-req{font-variant-numeric:tabular-nums}

/* ==========================================================================
   16. Модалка, наверх
   ========================================================================== */
.vershina-modal{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:20px;overflow-y:auto}
.vershina-modal[hidden]{display:none}
.vershina-modal-overlay{position:absolute;inset:0;background:rgba(19,21,22,.5);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.vershina-modal-window{position:relative;width:min(460px,100%);background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(1.8rem,3vw,2.4rem);animation:modal-in .3s var(--t)}
@keyframes modal-in{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
.vershina-modal-close{position:absolute;top:14px;right:14px;width:36px;height:36px;border:0;background:var(--bg-2);border-radius:50%;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--ink)}
.vershina-modal-close:hover{background:var(--bg-3)}
body.modal-open{overflow:hidden}

.scroll-top{position:fixed;right:20px;bottom:20px;z-index:80;width:44px;height:44px;display:grid;place-items:center;cursor:pointer;background:rgba(19,21,22,.86);color:#fff;border:0;border-radius:50%;opacity:0;transform:translateY(10px);transition:opacity var(--t),transform var(--t)}
.scroll-top.show{opacity:1;transform:none}
.scroll-top[hidden]{display:none}
.scroll-top:hover{background:var(--ink)}

/* ==========================================================================
   17. Служебные блоки внутренних страниц
   ========================================================================== */
.page-hero.deco-topo{position:static}
.page-hero.deco-topo::after{display:none}

.lead-promo{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:16px;margin-top:clamp(40px,6vw,64px)}
.lead-promo > div:first-child{background:var(--bg-2);border-radius:var(--radius);padding:clamp(1.6rem,3vw,2.4rem)}
.promo-card{background:var(--dark);color:var(--on-dark-2);border-radius:var(--radius);padding:clamp(1.6rem,3vw,2.4rem);display:flex;flex-direction:column;align-items:flex-start}
.promo-card .eyebrow{color:var(--on-dark)}
.promo-card h3{color:var(--on-dark);font-size:clamp(1.4rem,2.2vw,1.8rem);margin-bottom:1rem}
.promo-list{list-style:none;margin:0 0 1.8rem;padding:0;flex:1}
.promo-list li{padding:.85em 0;border-bottom:1px solid var(--dark-line)}
.promo-list li:last-child{border-bottom:0}
.promo-list b{color:var(--signal)}

.hint-box{background:var(--bg-2);border-radius:var(--radius-sm);padding:1.4rem 1.6rem;color:var(--ink-2);max-width:48em}
.hint-box p{margin:0}

/* Контакты */
.contacts-layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:clamp(32px,5vw,64px);align-items:start}
.contact-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px;margin-bottom:1.6rem}
.contact-card{background:var(--bg-2);border-radius:var(--radius);padding:1.6rem}
.contact-card-ico{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#fff;color:var(--ink);margin-bottom:1rem}
.contact-card-ico svg{width:20px;height:20px}
.contact-card-label{font-size:.84rem;color:var(--ink-2);margin:0 0 .4em}
.contact-card-val{display:block;font-size:1.1rem;font-weight:600;margin-bottom:.15em;font-variant-numeric:tabular-nums}
a.contact-card-val:hover{text-decoration:underline;text-underline-offset:3px}
.contact-chips{display:flex;gap:8px;flex-wrap:wrap}
.contacts-form{background:var(--bg-2);border-radius:var(--radius);padding:clamp(1.6rem,2.4vw,2.2rem)}

/* О компании */
.about-numbers{padding-top:clamp(48px,6vw,80px);padding-bottom:clamp(48px,6vw,80px)}
.about-numbers-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:32px 24px}
.about-numbers .vstat-num{color:var(--on-dark)}
.about-numbers .vstat-label{color:var(--on-dark-2)}
.values-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:12px}
.value-item{background:var(--bg-2);border-radius:var(--radius);padding:clamp(1.6rem,2.6vw,2.2rem)}
.value-ico{display:block;width:40px;height:40px;color:var(--ink);margin-bottom:1rem}
.value-ico svg{width:100%;height:100%}
.value-item h3{margin:0 0 .35em;font-size:1.3rem}
.value-item p{margin:0;color:var(--ink-2)}

/* Аккредитация */
.cert-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;margin-top:1.4rem}
.cert-item{margin:0;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;transition:transform var(--t),box-shadow var(--t)}
.cert-item:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm)}
.cert-item img{aspect-ratio:3/4;object-fit:contain;background:var(--bg-2);width:100%;height:auto;display:block}
.cert-item figcaption{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:.8em 1em;border-top:1px solid var(--line);font-size:.9rem}
.cert-code{font-family:var(--font-mono);font-size:.74rem;color:var(--ink-2)}

/* Акции */
.akc-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(24px,4vw,64px);align-items:center;background:var(--dark);color:var(--on-dark-2);border-radius:var(--radius-lg);padding:clamp(2rem,4.5vw,3.6rem);margin-bottom:16px}
.akc-hero-body{position:relative}
.akc-hero h2{color:var(--on-dark);font-size:clamp(1.8rem,3.4vw,2.8rem);margin:.5em 0 .4em}
.akc-hero p{max-width:40em;margin-bottom:1.6em}
.akc-tag{display:inline-block;font-size:.82rem;font-weight:600;background:var(--signal);color:var(--ink);border-radius:var(--pill);padding:.3em .9em}
.akc-hero-fig{font-weight:700;line-height:.85;font-size:clamp(5rem,14vw,10rem);color:var(--signal);letter-spacing:-.05em;white-space:nowrap}
.akc-hero-fig span{font-size:.45em;vertical-align:.2em}
.akc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:16px}
.akc-item{position:relative;background:var(--bg-2);border-radius:var(--radius);padding:2rem;display:flex;flex-direction:column;align-items:flex-start}
.akc-code{position:absolute;top:1.5rem;right:1.6rem;font-family:var(--font-mono);font-size:.74rem;color:var(--ink-3)}
.akc-fig{font-weight:700;font-size:clamp(2.6rem,4vw,3.4rem);line-height:1;letter-spacing:-.03em;margin-bottom:.35em}
.akc-fig span{font-size:.42em;color:var(--ink-2)}
.akc-item h3{font-size:1.3rem;margin-bottom:.45em}
.akc-item p{color:var(--ink-2);flex:1;margin-bottom:1.5em}

/* Почему мы */
.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:12px}
.why-card{position:relative;background:var(--bg-2);border-radius:var(--radius);padding:clamp(1.8rem,2.6vw,2.4rem)}
.why-num{position:absolute;top:1.6rem;right:1.8rem;font-family:var(--font-mono);font-size:.8rem;color:var(--ink-3)}
.why-ico{display:block;width:40px;height:40px;color:var(--ink);margin-bottom:1.1rem}
.why-ico svg{width:100%;height:100%}
.why-card h3{margin:0 0 .45em;font-size:1.35rem}
.why-card p{margin:0;color:var(--ink-2)}
.guarantee-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:12px}
.guarantee-item{background:var(--dark-2);border-radius:var(--radius);padding:clamp(1.6rem,2.8vw,2.2rem);display:flex;gap:16px;align-items:flex-start}
.guarantee-check{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--signal);color:var(--ink)}
.guarantee-check svg{width:20px;height:20px}
.guarantee-item h3{margin:0 0 .35em;font-size:1.2rem;color:var(--on-dark)}
.guarantee-item p{margin:0;color:var(--on-dark-2)}

/* Блог */
.post-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:24px}
.post-card{background:transparent}
.post-card-link{display:block;color:var(--ink)}
.post-thumb{aspect-ratio:16/10;overflow:hidden;background:var(--bg-2);border-radius:18px;display:grid;place-items:center}
.post-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--t)}
.post-card:hover .post-thumb img{transform:scale(1.03)}
.post-thumb-ph{width:48px;height:48px;color:var(--ink-3)}
.post-card-body{padding:16px 2px 0}
.post-date{font-size:.84rem;color:var(--ink-3)}
.post-card-body h3{margin:.35em 0 .35em;font-size:1.25rem}
.post-card-body p{margin:0 0 .8em;color:var(--ink-2)}
.post-more{font-weight:500}
.post-more::after{content:"›";margin-left:.3em}
.single-cover{margin-top:2rem}
.single-cover img{border-radius:var(--radius);width:100%}
.post-meta{font-size:.9rem;color:var(--ink-2);margin:0}

.pagination{margin-top:3rem;display:flex;justify-content:center}
.pagination .nav-links{display:flex;gap:8px;flex-wrap:wrap}
.pagination .page-numbers{display:grid;place-items:center;min-width:44px;height:44px;padding:0 12px;border-radius:var(--pill);background:var(--bg-2);font-variant-numeric:tabular-nums;color:var(--ink)}
.pagination .page-numbers:hover,.pagination .page-numbers.current{background:var(--ink);color:#fff}

.search-form{display:flex;gap:10px;max-width:520px;margin:1.5rem auto 0}
.search-form input{flex:1;font:inherit;font-size:16px;padding:.8em 1.2em;border:1px solid var(--line);border-radius:var(--pill);background:#fff}
.search-form input:focus{outline:none;border-color:var(--ink)}
.error-404{text-align:center}

/* ==========================================================================
   18. Адаптив
   ========================================================================== */
@media (max-width:1280px){
  .header-phone{display:none}
  .main-nav-list{gap:1.3em}
}
@media (max-width:1080px){
  .main-nav-list a{font-size:.82rem}
  .main-nav-list{gap:1.05em}
}
@media (max-width:920px){
  .nav-toggle{display:block}
  .main-nav{position:fixed;inset:0;z-index:100;background:var(--dark);padding:84px 28px 40px;opacity:0;visibility:hidden;transition:opacity var(--t),visibility var(--t);overflow-y:auto;margin:0}
  body.nav-open .main-nav{opacity:1;visibility:visible}
  body.nav-open{overflow:hidden}
  body.nav-open .nav-toggle{position:fixed;top:10px;right:16px;z-index:101}
  .main-nav-list{flex-direction:column;align-items:stretch;gap:0}
  .main-nav-list a{color:var(--on-dark);opacity:1;font-size:1.6rem;font-weight:600;letter-spacing:-.02em;padding:.45em 0}
  .main-nav-list .sub-menu{position:static;opacity:1;visibility:visible;transform:none;background:transparent;border:0;box-shadow:none;padding:0 0 .6em;margin:0}
  .main-nav-list .sub-menu a{color:var(--on-dark-2);font-size:1.05rem;font-weight:400;padding:.35em 0}
  .main-nav-list .sub-menu a:hover{background:none;color:var(--on-dark)}
  .svc-subnav-links{display:none}
  .footer-map .container{padding-top:40px;padding-bottom:40px}
  .akc-hero{grid-template-columns:1fr}
  .akc-hero-fig{order:-1;font-size:clamp(4rem,18vw,7rem)}
}
@media (max-width:620px){
  body{font-size:16px}
  .brand-mark{width:34px;height:27px}
  .brand-title{font-size:1.15rem}
  .brand-sub{font-size:.54rem;letter-spacing:.12em}
  .hero-badge{font-size:.84rem;white-space:nowrap}
  .facts-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 12px}
  .fact-big-num{font-size:2.1rem}
  .fact-big-label{font-size:.92rem}
  .table-card{padding:6px 18px}
  .dir-table{min-width:0}
  .dir-table thead{display:none}
  .dir-table td:nth-child(2),.dir-table td:nth-child(4){display:none}
  .dir-table td{padding:16px 0}
  .dir-table td:first-child a{font-size:1.02rem}
  .dir-table .dir-price{text-align:right;font-size:.94rem}
  .dir-table tr:first-child td{border-top:0}
  .header-cta .btn{display:none}
  .hero-actions{flex-direction:column;align-items:center}
  .hero-media{padding:0 12px}
  .hero-media img{aspect-ratio:4/3.3}
  .svc-hero-media img{aspect-ratio:4/3.3}
  .letters-thumbs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-bottom{flex-direction:column;align-items:flex-start}
  .prose table{display:block;overflow-x:auto;white-space:nowrap}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .reveal{opacity:1;transform:none}
  html{scroll-behavior:auto}
}

/* ==========================================================================
   19. Анимации
   Всё отключается при «Уменьшить движение» в системе.
   ========================================================================== */
@keyframes rise-in{from{opacity:0;transform:translateY(22px);filter:blur(8px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes peak-up{from{clip-path:polygon(0 14%,50% 14%,100% 14%,100% 100%,0 100%)}to{clip-path:polygon(0 12%,50% 0,100% 12%,100% 100%,0 100%)}}
@keyframes img-settle{from{opacity:0;transform:scale(1.08)}to{opacity:1;transform:none}}
@keyframes dot-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.55)}}
@keyframes summit-pop{0%{opacity:0;transform:translateY(-14px) scale(.6)}70%{opacity:1;transform:translateY(2px) scale(1.06)}100%{opacity:1;transform:none}}
@keyframes logo-rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes snow-draw{from{stroke-dasharray:8;stroke-dashoffset:8}to{stroke-dasharray:8;stroke-dashoffset:0}}

/* Логотип: массив поднимается, снежные штрихи прорисовываются */
.js .site-header .brand-mark path:first-child{animation:logo-rise .7s .05s var(--ease-out) both}
.js .site-header .brand-mark path + path{animation:snow-draw .6s .55s var(--ease-out) both}

/* Первый экран: элементы по очереди «проявляются» */
.js .hero > .container > *,
.js .svc-hero > .container > *{animation:rise-in 1s var(--ease-out) both}
.js .hero > .container > :nth-child(1),.js .svc-hero > .container > :nth-child(1){animation-delay:.05s}
.js .hero > .container > :nth-child(2),.js .svc-hero > .container > :nth-child(2){animation-delay:.14s}
.js .hero > .container > :nth-child(3),.js .svc-hero > .container > :nth-child(3){animation-delay:.24s}
.js .hero > .container > :nth-child(4),.js .svc-hero > .container > :nth-child(4){animation-delay:.34s}
.js .hero > .container > :nth-child(5),.js .svc-hero > .container > :nth-child(5){animation-delay:.42s}
.js .hero > .container > :nth-child(6),.js .svc-hero > .container > :nth-child(6){animation-delay:.5s}
.js .hero > .container > :nth-child(n+7),.js .svc-hero > .container > :nth-child(n+7){animation-delay:.58s}
/* Фото: «вершина» поднимается из ровного края, кадр мягко садится на место */
.js .hero-media,.js .svc-hero-media{overflow:hidden}
.js .hero-media img,.js .svc-hero-media img{animation:peak-up 1.5s .45s var(--ease-out) both,img-settle 1.8s .3s var(--ease-out) both}
/* Точка в знаке вершины «дышит» пару раз */
.hero-badge .peak-mark circle,.ascent-step.is-summit .peak-mark circle{transform-box:fill-box;transform-origin:center}
.js .hero-badge .peak-mark circle{animation:dot-pulse 1.4s 1.3s ease-in-out 2}

/* Появление блоков при прокрутке (классы ставит main.js) */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out);transition-delay:calc(var(--i,0) * 70ms)}
.js .reveal.in{opacity:1;transform:none}

/* Этапы: линии прочерчиваются по очереди, на «вершине» встаёт знак */
.js .ascent .ascent-step::before{transform:scaleX(0);transition:transform .8s var(--ease-out)}
.js .ascent .ascent-step > :not(.peak-mark){opacity:0;transform:translateY(12px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}
.js .ascent .ascent-step.is-summit .peak-mark{opacity:0}
.js .ascent.in .ascent-step::before{transform:scaleX(1)}
.js .ascent.in .ascent-step > :not(.peak-mark){opacity:1;transform:none}
.js .ascent .ascent-step:nth-child(1)::before{transition-delay:0s}
.js .ascent .ascent-step:nth-child(2)::before{transition-delay:.22s}
.js .ascent .ascent-step:nth-child(3)::before{transition-delay:.44s}
.js .ascent .ascent-step:nth-child(4)::before{transition-delay:.66s}
.js .ascent .ascent-step:nth-child(1) > *{transition-delay:.2s}
.js .ascent .ascent-step:nth-child(2) > *{transition-delay:.42s}
.js .ascent .ascent-step:nth-child(3) > *{transition-delay:.64s}
.js .ascent .ascent-step:nth-child(4) > *{transition-delay:.86s}
.js .ascent.in .ascent-step.is-summit .peak-mark{animation:summit-pop .8s 1.15s cubic-bezier(.34,1.56,.64,1) both}
.js .ascent.in .ascent-step.is-summit .peak-mark circle{animation:dot-pulse 1.2s 2s ease-in-out 2}

/* Флагман: картинка «приближается» вместе с прокруткой (Chrome, Edge, Safari 18+) */
.flagship-media{overflow:hidden;border-radius:18px 18px 0 0}
@supports (animation-timeline:view()){
  @keyframes flag-zoom{from{transform:scale(1.14) translateY(30px)}to{transform:none}}
  .flagship-media img{animation:flag-zoom linear both;animation-timeline:view();animation-range:entry 0% cover 50%}
}

/* Отклик на наведение и нажатие */
.btn{transition:background var(--t),color var(--t),border-color var(--t),opacity var(--t),transform .3s var(--ease-out),box-shadow .3s var(--ease-out)}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:scale(.97);transition-duration:.08s}
.btn-peak:hover{box-shadow:0 10px 24px -12px rgba(255,204,0,.75)}
.btn-primary:hover,.btn-pine:hover{box-shadow:0 10px 24px -14px rgba(19,21,22,.6)}
.link-arrow::after,.svc-more::after,.dir-table td:first-child a::after,.post-more::after{display:inline-block;transition:transform .3s var(--ease-out)}
.link-arrow:hover::after,.svc-more:hover::after,.svc-card:hover .svc-more::after,.dir-table tr:hover td:first-child a::after,.post-card:hover .post-more::after{transform:translateX(4px)}
.dir-table tbody tr{transition:background var(--t)}
.dir-table tbody tr:hover{background:rgba(255,255,255,.55)}
.svc-media img,.staff-photo img,.post-thumb img{transition:transform .8s var(--ease-out)}
.svc-card:hover .svc-media img,.staff-card:hover .staff-photo img{transform:scale(1.04)}
.faq-item summary::after{transition:transform .3s var(--ease-out)}
.faq-item[open] > p{animation:rise-in .5s var(--ease-out) both}
.fm-chip,.pagination .page-numbers{transition:background var(--t),color var(--t),border-color var(--t),transform .25s var(--ease-out)}
.fm-chip:active,.pagination .page-numbers:active{transform:scale(.96)}

/* Мобильное меню: пункты выезжают по очереди */
@media (max-width:920px){
  body.nav-open .main-nav-list > li{animation:rise-in .55s var(--ease-out) both}
  body.nav-open .main-nav-list > li:nth-child(2){animation-delay:.04s}
  body.nav-open .main-nav-list > li:nth-child(3){animation-delay:.08s}
  body.nav-open .main-nav-list > li:nth-child(4){animation-delay:.12s}
  body.nav-open .main-nav-list > li:nth-child(5){animation-delay:.16s}
  body.nav-open .main-nav-list > li:nth-child(6){animation-delay:.2s}
  body.nav-open .main-nav-list > li:nth-child(n+7){animation-delay:.24s}
}

/* Модалка: фон проявляется, окно выплывает */
@keyframes fade-in{from{opacity:0}to{opacity:1}}
.vershina-modal:not([hidden]) .vershina-modal-overlay{animation:fade-in .3s ease both}
.vershina-modal-window{animation:modal-in .45s var(--ease-out) both}

@media (prefers-reduced-motion:reduce){
  .js .reveal,.js .ascent .ascent-step > *,.js .ascent .ascent-step.is-summit .peak-mark{opacity:1!important;transform:none!important}
  .js .ascent .ascent-step::before{transform:none!important}
  .js .hero-media img,.js .svc-hero-media img{clip-path:var(--peak-clip)}
  .flagship-media img{animation:none!important}
}

/* ==========================================================================
   20. Доводка 2.2
   ========================================================================== */

/* Текст внутренних страниц — по центру, как и шапка страницы */
.section > .container > .prose,.section > .container > .legal-prose{margin-left:auto;margin-right:auto}

/* Маркеры списков — маленький знак вершины */
.prose ul{list-style:none;padding-left:0}
.prose ul > li{position:relative;padding-left:1.5em}
.prose ul > li::before{content:"";position:absolute;left:.1em;top:.52em;width:.62em;height:.56em;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 22'%3E%3Cpath d='M12 2.5 22 20H2Z' fill='%23131516'/%3E%3C/svg%3E");opacity:.8}
.on-dark .prose ul > li::before,.s3d-note li::before{filter:invert(1)}

/* Прайс: одинаковые колонки во всех таблицах */
.price-table{table-layout:fixed}
.price-table th:nth-child(2),.price-table td:nth-child(2){width:150px}
.price-table th:nth-child(3),.price-table td:nth-child(3){width:150px}
.price-block-title{display:flex;align-items:baseline;gap:.5em}
.price-table tbody tr{transition:background var(--t)}
.price-table tbody tr:hover{background:var(--bg-2)}
@media (max-width:620px){.price-table th:nth-child(2),.price-table td:nth-child(2){width:90px}.price-table th:nth-child(3),.price-table td:nth-child(3){width:100px}}

/* Карточки направлений: описание + цена и ссылка в одной строке */
.svc-card .svc-count{color:var(--ink-2)}
.svc-card .svc-foot{padding-top:1.1em;border-top:1px solid var(--line);margin-top:auto}
.svc-card .svc-price{font-size:1.02rem}

/* Цифры на тёмной полосе «О компании» / «Почему мы» */
.about-numbers .vstat-label{max-width:16em;margin-left:auto;margin-right:auto}

/* Фото проявляются, когда загрузились (ленивая подгрузка без серых вспышек) */
.js .svc-media img,.js .object-thumb img,.js .staff-photo img,.js .post-thumb img,.js .letters-thumbs img,.js .flagship-media img{opacity:0;transition:opacity .6s var(--ease-out),transform .8s var(--ease-out)}
.js .svc-media img.is-loaded,.js .object-thumb img.is-loaded,.js .staff-photo img.is-loaded,.js .post-thumb img.is-loaded,.js .letters-thumbs img.is-loaded,.js .flagship-media img.is-loaded{opacity:1}
.svc-media,.object-thumb,.staff-photo,.post-thumb{background:linear-gradient(110deg,var(--bg-3) 30%,#EEEDE8 50%,var(--bg-3) 70%) 0 0/250% 100%}
.js .svc-media:not(.has-img-loaded),.js .object-thumb:not(.has-img-loaded){animation:shimmer 1.6s linear infinite}
@keyframes shimmer{to{background-position:-150% 0}}
@media (prefers-reduced-motion:reduce){.js .svc-media,.js .object-thumb{animation:none!important}}
