:root{
  color-scheme:light;
  --brand:#80152d;
  --accent:#521b18;
  --hero-top:#54101b;
  --hero-bottom:#3f1412;
  --text:#0f1012;
  --muted:#5b5f66;
  --bg:#ffffff;
  --card:#ffffff;
  --border:rgba(15,16,18,.12);
  --shadow:0 18px 40px rgba(0,0,0,.10);
  --radius:0;
  /* Высота шапки (navbar + вертикальные отступы) — для sticky-элементов под header */
  --site-header-height:73px;
  /* Запас под 2 строки в sticky-меню и чуть крупный кегль */
  --site-header-height-mobile:64px;
  --mobile-nav-pad-x:max(1rem, calc(var(--bs-gutter-x, 1.5rem) * 0.5));
  --mobile-nav-link-indent:1rem;
}

html{
  scroll-behavior:smooth;
  /* hidden на html даёт новый containing block и ломает position:fixed у шапки/баннеров в части WKWebView (в т.ч. встроенный браузер Telegram на iOS) */
  overflow-x:visible;
}

body{
  font-family:"Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, "Noto Sans", "Liberation Sans", sans-serif;
  color:var(--text);
  background:var(--bg);
  font-weight:300;
  /* Не задавать overflow-x на body: в iOS Safari это ломает position:fixed у шапки */
  overflow-x:visible;
  max-width:100%;
  min-width:0;
  padding-top:var(--site-header-height);
}
@media (max-width: 991.98px){
  body{
    padding-top:var(--site-header-height-mobile);
  }
}
/* Главная с hero: без отступа сверху — иначе при скрытой шапке (над hero) и после закрытия offcanvas на мгновение видна белая полоса (фон body). */
body.has-hero-section{
  padding-top:0;
}

/* Дополнительно режем переполнение у основных колонок контента */
main,
.site-footer{
  max-width:100%;
  overflow-x:clip;
}
@supports not (overflow:clip){
  main,
  .site-footer{
    overflow-x:hidden;
  }
}

@media (max-width: 991.98px){
  .site-footer .footer-actions__buttons{
    display:none !important;
  }
}

img{
  max-width:100%;
  height:auto;
}

/* Lucide icons: thinner stroke */
svg.lucide{
  stroke-width:1.5 !important;
}
svg.lucide-chevron-right{
  width:16px !important;
  height:16px !important;
}
i[data-lucide="chevron-right"]{
  width:16px;
  height:16px;
  display:inline-grid;
  place-items:center;
  flex:0 0 16px;
}

a{
  text-underline-offset:.18em;
}

/* Без left:-9999px — иначе в части браузеров появляется горизонтальная прокрутка */
.skip-link{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
  border:0;
}
.skip-link:focus{
  position:fixed;
  left:1rem;
  top:1rem;
  width:auto;
  height:auto;
  margin:0;
  padding:.75rem 1rem;
  overflow:visible;
  clip-path:none;
  background:#fff;
  color:#000;
  z-index:9999;
  box-shadow:var(--shadow);
}

/* Header */
.site-header{
  position:fixed;
  top:0;
  left:0;
  right:0;
  width:100%;
  z-index:1020;
  max-width:100%;
  overflow-x:clip;
  /* Слой композитинга — стабильнее fixed в мобильном Safari */
  -webkit-transform:translateZ(0);
  transform:translateZ(0);
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
  background:#4d1519;
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,.20);
  box-shadow:none;
  transition:background .42s ease, border-color .42s ease, box-shadow .42s ease;
}
.site-header::before{
  content:none;
}
.site-header > *{
  position:relative;
  z-index:1;
}
.site-header.is-scrolled{
  background:#4d1519;
  border-bottom-color:rgba(255,255,255,.20);
  box-shadow:none;
}
.site-header.sticky-top{
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  width:100% !important;
  z-index:1020 !important;
}
.site-header.is-hidden-desktop{
  transform:translate3d(0, -110%, 0);
  opacity:0;
  pointer-events:none;
}
@media (max-width: 991.98px){
  .site-header.is-hidden-mobile{
    transform:translate3d(0, -110%, 0);
    opacity:0;
    pointer-events:none;
  }
}
@supports not (overflow:clip){
  .site-header{
    overflow-x:hidden;
  }
}
.navbar{
  padding:.9rem 0;
}
.navbar-brand{
  color:#fff;
  text-decoration:none;
}
.navbar-brand:hover{
  color:#fff;
  opacity:.95;
}
/* Bootstrap задаёт тёмный цвет ссылки при :focus/:active — оставляем светлую шапку */
.site-header .navbar-brand,
.site-header .navbar-brand:visited{
  color:#fff !important;
}
.site-header .navbar-brand:hover,
.site-header .navbar-brand:focus,
.site-header .navbar-brand:focus-visible,
.site-header .navbar-brand:active{
  color:#fff !important;
  opacity:.95;
}
.site-header .navbar-brand .brand-text,
.site-header .navbar-brand .brand-title,
.site-header .navbar-brand .brand-title__top,
.site-header .navbar-brand .brand-title__bottom{
  color:inherit !important;
}
.brand-shield{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:0;
  background:transparent;
}
.brand-shield svg{
  width:22px;
  height:22px;
  display:block;
}
.brand-shield img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
}
.brand-shield--sm{
  width:34px;
  height:34px;
}
.brand-shield--sm svg{
  width:20px;
  height:20px;
}
.brand-title{
  font-weight:300;
  letter-spacing:.02em;
  line-height:1.05;
  display:block;
}
.brand-phone-link{
  display:none;
  color:inherit;
  text-decoration:none;
  font-weight:400;
  letter-spacing:.01em;
  line-height:1.1;
}
.brand-phone-link__phone{
  display:block;
  font-weight:400;
  white-space:nowrap;
}
.brand-phone-link__address{
  display:block;
  margin-top:.14rem;
  font-size:.72em;
  line-height:1.2;
  opacity:.9;
  font-weight:300;
}
.brand-title__top,
.brand-title__bottom{
  display:block;
}
.brand-title__bottom{
  font-weight:300;
  opacity:.92;
  letter-spacing:.01em;
}

.nav-link{
  color:rgba(255,255,255,.88);
  font-weight:500;
  letter-spacing:.01em;
}
.site-header .nav-link{
  font-weight:300;
}
.site-header .nav-link-compact{
  font-weight:600;
}
.nav-link:hover,
.nav-link:focus{
  color:#fff;
}
@media (min-width: 992px){
  .site-header .navbar-nav .nav-link{
    transition:color .2s ease, font-size .2s ease;
  }
  .site-header .navbar-nav .nav-link:hover,
  .site-header .navbar-nav .nav-link:focus-visible{
    font-size:1.05rem;
  }
}
.site-header .nav-link:focus,
.site-header .nav-link:focus-visible,
.mobile-nav__link:focus,
.mobile-nav__link:focus-visible{
  outline:none !important;
  box-shadow:none !important;
}
.nav-link-compact{
  display:flex;
  align-items:center;
  gap:.45rem;
  white-space:nowrap;
}
.nav-sep{
  display:inline-block;
  width:1px;
  height:22px;
  background:rgba(255,255,255,.16);
  margin:0 .5rem;
}

.navbar-toggler{
  border:0;
  padding:.5rem;
  border-radius:0;
  background:transparent;
  -webkit-tap-highlight-color:transparent;
}
.navbar-toggler:focus{
  box-shadow:none;
  outline:none;
}
.navbar-toggler:focus-visible{
  outline:none;
  outline-offset:0;
  box-shadow:none;
}
@media (min-width: 992px){
  .site-header .navbar-toggler{
    display:none !important;
  }
  .header-mobile-sticky{
    display:none !important;
  }
  .site-header .navbar .navbar-collapse{
    display:flex !important;
    flex-basis:auto;
    flex-grow:0;
    align-items:center;
    width:auto;
  }
}
.toggler-icon svg{
  width:20px;
  height:20px;
  color:#fff;
}
.toggler-label{
  display:none;
  color:#fff;
  font-size:.68rem;
  font-weight:500;
  letter-spacing:.05em;
  text-transform:uppercase;
  line-height:1;
}
@media (max-width: 991.98px){
  body{
    padding-top:0;
  }
  .site-header{
    background:transparent;
    border:0;
    box-shadow:none;
    overflow:visible;
    pointer-events:auto;
  }
  .site-header::before{
    display:none;
  }
  .site-header .navbar.navbar-expand-lg{
    flex-direction:column;
    align-items:stretch;
    padding:0;
  }
  .site-header .container{
    padding:0;
    max-width:100%;
  }
  .site-header .navbar-brand,
  .site-header .navbar .navbar-collapse{
    display:none !important;
  }
  .header-mobile-sticky{
    display:none;
    align-items:center;
    grid-template-columns:auto minmax(0, 1fr) auto;
    column-gap:clamp(0.62rem, 2.05vw, 1.08rem);
    min-height:var(--site-header-height-mobile);
    width:100%;
    padding:calc(env(safe-area-inset-top, 0px) + .05rem) max(.45rem, env(safe-area-inset-left)) .32rem max(.2rem, calc(env(safe-area-inset-right, 0px) + .02rem));
    box-sizing:border-box;
    background:#4d1519;
    border-bottom:1px solid rgba(255,255,255,.22);
  }
  body.page-sub .site-header .header-mobile-sticky,
  body.page-home .site-header.is-past-hero .header-mobile-sticky{
    display:grid;
  }
  .header-mobile-sticky__logo{
    grid-column:1;
    justify-self:start;
    align-self:center;
    margin-left:.5rem;
    min-width:0;
    display:grid;
    place-items:center;
  }
  .header-mobile-sticky__logo-img{
    width:33px;
    height:33px;
    object-fit:contain;
    display:block;
  }
  .header-mobile-sticky__phone{
    grid-column:2;
    justify-self:start;
    align-self:center;
    min-width:0;
    display:block;
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    padding:0 .25rem 0 .14rem;
    text-align:left;
    text-decoration:none !important;
    color:rgba(255,255,255,.95);
    font-weight:300;
    letter-spacing:.015em;
    line-height:1.08;
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
    font-size:clamp(12px, 0.35rem + 2.3vw, 16px);
    -webkit-tap-highlight-color:transparent;
  }
  .header-mobile-sticky__name{
    display:block;
    font-size:clamp(13px, 0.5rem + 2.3vw, 17px);
    line-height:1.08;
    font-weight:300;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .header-mobile-sticky__meta{
    display:block;
    font-size:clamp(13px, 0.5rem + 2.3vw, 17px);
    line-height:1.08;
    opacity:.86;
    font-weight:300;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .header-mobile-sticky__phone:link,
  .header-mobile-sticky__phone:visited,
  .header-mobile-sticky__phone:active{
    color:rgba(255,255,255,.95);
    text-decoration:none !important;
  }
  .header-mobile-sticky__phone:hover,
  .header-mobile-sticky__phone:focus-visible{
    color:#fff;
    text-decoration:none !important;
  }
  .header-mobile-sticky .header-mobile-sticky__toggler{
    grid-column:auto;
    justify-self:auto;
    align-self:center;
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    margin:0;
    margin-right:0;
    margin-top:0;
    padding:.28rem .16rem .24rem .18rem;
  }
  .header-mobile-sticky__actions{
    grid-column:3;
    justify-self:end;
    align-self:center;
    margin-right:.9rem;
    display:inline-flex;
    align-items:center;
    gap:.42rem;
  }
  .header-mobile-sticky__call{
    width:32px;
    height:32px;
    border:1px solid rgba(255,255,255,.62);
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    text-decoration:none;
    -webkit-tap-highlight-color:transparent;
  }
  .header-mobile-sticky__call i{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    line-height:1;
  }
  .header-mobile-sticky__call svg{
    width:15px;
    height:15px;
    stroke-width:2.1;
  }
  .header-mobile-sticky__call:hover,
  .header-mobile-sticky__call:focus-visible{
    color:#fff;
    border-color:rgba(255,255,255,.8);
  }
  .header-mobile-sticky__divider{
    width:.5px;
    height:22px;
    margin-left:.14rem;
    background:rgba(255,255,255,.3);
  }
  .site-header.is-scrolled .navbar-brand .brand-title,
  .site-header.is-scrolled .navbar-brand .brand-phone-link,
  .site-header.is-scrolled .navbar-brand .brand-shield{
    display:none;
  }
  .site-header.is-hidden-mobile{
    pointer-events:none;
  }
}

/* Offcanvas — только мобильное меню (.mobile-nav) */
.offcanvas.mobile-nav{
  background:#4d1519;
  color:#fff;
  border:0;
  width:100%;
  max-width:100%;
  top:0;
  right:0;
  left:0;
  bottom:auto;
  height:auto !important;
  min-height:0;
  max-height:min(100dvh, 100vh);
  overflow-x:hidden;
  overflow-y:visible;
  overscroll-behavior:contain;
  z-index:1045;
  box-shadow:0 20px 48px rgba(15,16,18,.22), inset 0 1px 0 rgba(255,255,255,.14);
  -webkit-backdrop-filter:saturate(1.3) blur(24px);
  backdrop-filter:saturate(1.3) blur(24px);
  /* Плавнее стандартного Bootstrap .3s ease-in-out */
  transition:transform 0.44s cubic-bezier(0.22, 1, 0.36, 1) !important;
}
.offcanvas.mobile-nav::before{
  content:"";
  position:absolute;
  inset:-35% -15% auto -15%;
  height:140%;
  background:linear-gradient(180deg, rgba(255,255,255,.10) 0%, rgba(255,255,255,.03) 100%);
  transform:translateZ(0);
  pointer-events:none;
  z-index:0;
}
.mobile-nav .offcanvas-body.mobile-nav__body{
  position:relative;
  z-index:1;
  height:auto;
  min-height:0;
  max-height:none;
  overflow:visible;
  padding:0;
  padding-bottom:max(1rem, env(safe-area-inset-bottom));
  display:flex;
  flex-direction:column;
  flex-grow:0;
  transition:opacity 0.38s cubic-bezier(0.22, 1, 0.36, 1) 0.05s,
    transform 0.38s cubic-bezier(0.22, 1, 0.36, 1) 0.05s;
}
.offcanvas.mobile-nav:not(.show):not(.showing):not(.hiding) .mobile-nav__body{
  opacity:0;
  transform:translateY(10px);
}
.offcanvas.mobile-nav.showing .mobile-nav__body,
.offcanvas.mobile-nav.show .mobile-nav__body{
  opacity:1;
  transform:translateY(0);
}
.mobile-nav__close{
  position:fixed;
  z-index:1060;
  top:calc(env(safe-area-inset-top, 0px) + 0.9rem);
  right:var(--mobile-nav-pad-x);
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border:0;
  background:transparent;
  padding:0;
  line-height:1;
  -webkit-tap-highlight-color:transparent;
}
.mobile-nav__close:focus{
  box-shadow:none;
  outline:none;
}
.mobile-nav__close:focus-visible{
  outline:2px solid rgba(255,255,255,.45);
  outline-offset:2px;
}
.mobile-nav__close svg{
  width:22px;
  height:22px;
  color:#fff;
}
.mobile-nav__brand{
  display:none !important;
}
.mobile-nav__nav{
  position:relative;
  z-index:1;
  /* Отступ сверху под кнопку «Закрыть» (лого/бренд в моб. меню скрыты) */
  padding-top:calc(env(safe-area-inset-top, 0px) + .9rem);
  padding-left:calc(var(--mobile-nav-pad-x) + var(--mobile-nav-link-indent));
  padding-right:calc(var(--mobile-nav-pad-x) + 44px + 0.35rem);
}
.mobile-nav__list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:.15rem;
}
.mobile-nav__list--contact{
  margin-top:1rem;
  padding-top:1rem;
  border-top:1px solid rgba(255,255,255,.14);
}
.mobile-nav__link{
  display:block;
  padding:.5rem 0;
  color:rgba(255,255,255,.9);
  text-decoration:none;
  font-weight:300;
  font-size:.92rem;
  letter-spacing:.01em;
  transition:color .2s ease, opacity .2s ease, padding-left .2s ease, font-size .2s ease;
}
.mobile-nav__link:hover,
.mobile-nav__link:focus,
.mobile-nav__link:focus-visible{
  color:#fff;
  padding-left:.35rem;
  font-size:1rem;
}
.mobile-nav__list--contact .mobile-nav__link{
  font-weight:600;
  font-size:.86rem;
}
.mobile-nav__list--contact .mobile-nav__link:hover,
.mobile-nav__list--contact .mobile-nav__link:focus,
.mobile-nav__list--contact .mobile-nav__link:focus-visible{
  font-size:.94rem;
}
body.mobile-nav-open{
  padding-top:var(--site-header-height-mobile) !important;
}
/* На главной с hero не добавляем верхний отступ при открытии/закрытии offcanvas:
   иначе над hero появляется полоса высотой с header. */
body.has-hero-section.mobile-nav-open{
  padding-top:0 !important;
}
/* Затемнение: rgba вместо opacity — в мобильном Safari fade+opacity у backdrop часто не даёт видимого слоя */
.offcanvas-backdrop{
  position:fixed;
  inset:0;
  z-index:1040;
  width:100%;
  min-height:100%;
  min-height:-webkit-fill-available;
  background-color:rgba(0, 0, 0, 0);
  -webkit-transform:translateZ(0);
  transform:translateZ(0);
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}
.offcanvas-backdrop.fade{
  opacity:1 !important;
  transition:background-color 0.44s cubic-bezier(0.22, 1, 0.36, 1);
}
.offcanvas-backdrop.show{
  background-color:rgba(0, 0, 0, 0.72);
}
@media (prefers-reduced-motion: reduce){
  .offcanvas.mobile-nav{
    transition-duration: 0.01ms !important;
  }
  .offcanvas-backdrop.fade{
    transition-duration: 0.01ms;
  }
  .mobile-nav .offcanvas-body.mobile-nav__body{
    transition-duration: 0.01ms;
    transition-delay: 0s;
  }
  .offcanvas.mobile-nav:not(.show):not(.showing):not(.hiding) .mobile-nav__body,
  .offcanvas.mobile-nav.showing .mobile-nav__body,
  .offcanvas.mobile-nav.show .mobile-nav__body{
    opacity:1;
    transform:none;
  }
  .mobile-nav__link{
    transition-duration:0.01ms !important;
  }
}
@media (min-width: 992px) and (prefers-reduced-motion: reduce){
  .site-header .navbar-nav .nav-link{
    transition-duration:0.01ms !important;
  }
}

/* Hero — тот же базовый градиент и «стекло», что у .site-header, чтобы цвет совпадал у шапки и блока */
.hero-section{
  min-height:calc(100svh - 74px);
  display:flex;
  align-items:center;
  padding:4rem 0 3.25rem;
  background:linear-gradient(180deg, var(--hero-top) 0%, var(--hero-bottom) 100%);
  color:#fff;
  position:relative;
  overflow:hidden;
  -webkit-backdrop-filter:saturate(1.3) blur(20px);
  backdrop-filter:saturate(1.3) blur(20px);
  transition:background .28s ease, -webkit-backdrop-filter .28s ease, backdrop-filter .28s ease;
  -webkit-text-size-adjust:none;
  text-size-adjust:none;
}
#about.hero-section{
  min-height:0;
  align-items:flex-start;
  padding:2.75rem 0 3rem;
  /* iOS: rem у html растёт с «Крупным текстом»; em в hero считается от этого 16px, а не от корня страницы */
  font-size:16px !important;
  -webkit-text-size-adjust:none !important;
  text-size-adjust:none !important;
}
.hero-menu-trigger{
  display:none;
}
.hero-menu-trigger__label{
  display:none;
}
@media (min-width: 992px){
  #about.hero-section .hero-menu-trigger{
    position:absolute;
    /* Выравниваем кнопку с подзаголовком "Нотариальные услуги..." */
    top:calc(2.75rem + .1rem);
    right:max(2.6rem, calc(var(--bs-gutter-x, 1.5rem) * 0.5 + 1.25rem));
    display:inline-flex;
    align-items:center;
    gap:.45rem;
    border:0;
    background:transparent;
    color:#fff;
    z-index:2;
    padding:0;
    line-height:1;
  }
  #about.hero-section .hero-menu-trigger svg{
    width:21px;
    height:21px;
  }
  #about.hero-section .hero-menu-trigger__label{
    display:inline-block;
    font-size:.95rem;
    font-weight:400;
    letter-spacing:.04em;
    text-transform:uppercase;
  }
}
@media (min-width: 1200px){
  #about.hero-section .hero-copy{
    max-width:38em;
  }
}
@media (max-width: 991.98px){
  #about.hero-section .hero-menu-trigger{
    position:absolute;
    top:calc(env(safe-area-inset-top, 0px) + .1rem);
    right:max(1rem, calc(var(--bs-gutter-x, 1.5rem) * 0.5));
    width:48px;
    height:40px;
    border-radius:999px;
    border:0;
    background:transparent;
    box-shadow:none;
    display:grid;
    place-items:center;
    padding:0;
    color:#fff;
    z-index:2;
    -webkit-tap-highlight-color:transparent;
  }
  #about.hero-section .hero-menu-trigger:focus,
  #about.hero-section .hero-menu-trigger:focus-visible,
  #about.hero-section .hero-menu-trigger:active{
    outline:none !important;
    box-shadow:none !important;
  }
  #about.hero-section .hero-menu-trigger svg{
    width:21px;
    height:21px;
  }
  #about.hero-section .hero-menu-trigger__label{
    display:none;
  }
}
.hero-section .hero-copy{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
.hero-section > .container{
  min-width:0;
  position:relative;
  z-index:1;
}
.hero-section .row{
  min-width:0;
}
.hero-section .row > [class*="col-"]{
  min-width:0;
}
.hero-section::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(255,255,255,.16) 0%, rgba(255,255,255,.05) 30%, rgba(255,255,255,.01) 60%, rgba(255,255,255,0) 100%),
    radial-gradient(circle at 12% 0%, rgba(255,255,255,.14), transparent 34%),
    radial-gradient(circle at 88% 18%, rgba(255,255,255,.08), transparent 30%);
  opacity:.8;
  transition:opacity .28s ease, background .28s ease;
  transform:translateZ(0);
  z-index:0;
}
.hero-divider{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:1;
  height:1px;
  background:rgba(255,255,255,.14);
}
.hero-heading-stack{
  display:flex;
  flex-direction:column-reverse;
  width:100%;
  align-items:stretch;
}
.hero-kicker{
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:0.8125em;
  margin:0 0 1.35rem;
  max-width:100%;
  overflow-wrap:break-word;
}
@media (max-width: 991.98px){
  .hero-kicker__line{
    display:block;
  }
}
@media (min-width: 992px){
  .hero-kicker__line--sub::before{
    content:" ";
  }
}
.hero-title{
  line-height:1.08;
  letter-spacing:-.02em;
  font-weight:600;
  margin:0 0 1.65rem;
  max-width:100%;
  overflow-wrap:break-word;
}
.hero-title-logo{
  display:none;
  color:#fff;
}
.hero-title-text{
  display:block;
  min-width:0;
}
/* Заголовок hero: только em от #about (16px), без rem/vw — не реагирует на системный rem и ширину viewport */
#about.hero-section h1.hero-title{
  font-size:2.625em !important;
  line-height:1.08;
}
@media (max-width: 991.98px){
  /* Две строки как на десктопе: масштаб шрифта по ширине экрана, без переноса внутри строки */
  #about.hero-section h1.hero-title{
    display:flex;
    align-items:flex-start;
    flex-wrap:nowrap;
    gap:.48rem;
    width:fit-content;
    max-width:100%;
    font-size:clamp(0.8rem, 3.85vw + 0.55rem, 2.625em) !important;
    line-height:1;
  }
  #about.hero-section h1.hero-title .hero-title-logo{
    display:inline-flex;
    width:auto;
    height:2.12em;
    flex:0 0 auto;
    margin-top:.03em;
  }
  #about.hero-section h1.hero-title .hero-title-logo svg{
    display:block;
    width:auto;
    height:100%;
  }
  #about.hero-section h1.hero-title .hero-title-text{
    min-width:0;
    flex:1 1 auto;
  }
  /* <br> между двумя block-строками даёт лишний зазор — убираем, зазор задаём сами */
  #about.hero-section h1.hero-title br{
    display:none;
  }
  #about.hero-section h1.hero-title .hero-title__name,
  #about.hero-section h1.hero-title .hero-title--thin{
    display:block;
    white-space:nowrap;
    line-height:1.02;
  }
  #about.hero-section h1.hero-title .hero-title--thin{
    margin-top:0.12em;
  }
}
.hero-title__name{
  font-weight:500;
}
.hero-title--thin{
  font-weight:300;
}
.hero-tags{
  font-size:1em;
  font-weight:300;
  line-height:1.32;
  margin:0 0 1.6rem;
  max-width:100%;
  color:rgba(255,255,255,.78);
  overflow-wrap:break-word;
  word-wrap:break-word;
}
.hero-tags-wrap{
  display:block;
}
.hero-tags-logo{
  display:none;
}
.hero-tags-logo img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
}
.hero-tags{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  column-gap:0;
  row-gap:.12rem;
}
.hero-tags__item{
  display:inline-flex;
  align-items:center;
  min-width:0;
  max-width:100%;
  overflow-wrap:break-word;
}
.hero-tags__group{
  display:inline-flex;
  flex-wrap:nowrap;
  align-items:center;
  min-width:0;
  max-width:100%;
}
/* Разделитель после пары «доверенности • наследство» перед следующим пунктом */
.hero-tags__group--pair-trust::after{
  content:"·";
  opacity:.65;
  font-size:1.35em;
  line-height:1;
  padding:0 .35em;
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
}
@media (max-width: 767.98px){
  .hero-tags__group--pair-trust{
    flex-wrap:nowrap;
    white-space:nowrap;
  }
  .hero-tags__group--pair-trust .hero-tags__item{
    white-space:nowrap;
  }
}
.hero-tags__item:not(:last-child)::after{
  content:"·";
  opacity:.65;
  font-size:1.35em;
  line-height:1;
  padding:0 .35em;
  display:inline-flex;
  align-items:center;
}
@media (min-width: 992px){
  .hero-tags-wrap{
    display:flex;
    align-items:flex-start;
    gap:.65rem;
  }
  .hero-tags-logo{
    display:inline-block;
    width:42px;
    height:42px;
    flex:0 0 42px;
    margin-top:.08rem;
  }
  .hero-tags-wrap .hero-tags{
    margin-bottom:1.6rem;
  }
}
@media (max-width: 767.98px){
  .hero-tags{
    width:fit-content;
    max-width:100%;
  }
  .hero-tags{
    display:inline-flex;
  }
}
.hero-location{
  margin-top:0;
  display:grid;
  gap:.12rem;
}
.hero-cta{
  margin-top:2.35rem;
}
.hero-nearby{
  font-size:1em;
  font-weight:600;
  letter-spacing:.01em;
  line-height:1.32;
}
.hero-nearby__metro{
  font-weight:300;
}
.hero-address{
  display:block;
  max-width:100%;
  font-size:0.9375em;
  font-weight:500;
  line-height:1.32;
  color:rgba(255,255,255,.88);
  text-decoration:none;
  transition:color .2s ease, opacity .2s ease;
  -webkit-tap-highlight-color:transparent;
}
.hero-address__inner{
  display:inline-flex;
  align-items:flex-start;
  gap:.5rem;
  max-width:100%;
  min-width:0;
}
.hero-address__icon{
  flex:0 0 auto;
  display:none;
  place-items:center;
  margin-top:.12rem;
}
.hero-address__text{
  min-width:0;
  flex:1 1 auto;
}
.hero-address:hover{
  color:#fff;
}
.hero-address:focus-visible{
  color:#fff;
}
.hero-address:hover .hero-address__text,
.hero-address:focus-visible .hero-address__text{
  text-decoration:none;
}
.hero-address svg{
  width:18px;
  height:18px;
  flex-shrink:0;
}
.hero-contact-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  column-gap:.65rem;
  row-gap:.12rem;
  margin-top:1.1rem;
  margin-bottom:0;
}
@media (max-width: 399.98px){
  .hero-contact-row__sep{
    display:none;
  }
}
.hero-contact-row__sep{
  opacity:.55;
  line-height:1;
  user-select:none;
}
.hero-contact__link{
  font-size:0.9375em;
  font-weight:500;
  line-height:1.32;
  color:rgba(255,255,255,.9);
  text-decoration:none;
  -webkit-tap-highlight-color:transparent;
}
.hero-contact__link:hover,
.hero-contact__link:focus{
  color:#fff;
}

#about.hero-section .hero-cta .btn{
  font-size:0.9375em !important;
  -webkit-tap-highlight-color:transparent;
}
#about.hero-section .hero-cta .hero-cta-route{
  min-width:320px;
  max-width:100%;
  box-sizing:border-box;
  font-size:1.05em !important;
  font-weight:400;
  text-transform:uppercase;
  letter-spacing:.04em;
  background-color:transparent !important;
  border-color:rgba(255,255,255,.36) !important;
  color:#fff !important;
}
@media (max-width: 991.98px){
  #about.hero-section .hero-cta .hero-cta-route{
    min-width:0;
    width:100%;
  }
}
@media (max-width: 380px){
  #about.hero-section .hero-cta .hero-cta-route{
    font-size:0.95em !important;
    letter-spacing:.03em;
    padding-left:0.7rem;
    padding-right:0.7rem;
  }
}
@media (min-width: 992px){
  #about.hero-section .hero-cta .hero-cta-route{
    min-width:380px;
  }
}
#about.hero-section .hero-cta .hero-cta-route svg{
  color:#fff;
  stroke:#fff;
}
#about.hero-section .hero-cta .hero-cta-route .hero-cta-route__icon{
  width:1.56em;
  height:1.56em;
  display:inline-block;
  fill:none;
  stroke:currentColor;
  stroke-width:1;
  stroke-linecap:round;
  stroke-linejoin:round;
}
#about .hero-address:focus,
#about .hero-contact__link:focus,
#about .hero-cta .btn:focus{
  outline:none !important;
  box-shadow:none !important;
}

/* Buttons */
.btn-rect{
  border-radius:var(--radius) !important;
  padding:.85rem 1.05rem;
  font-weight:600;
  letter-spacing:.01em;
  transition:transform .18s ease, filter .18s ease, background-color .18s ease, color .18s ease, border-color .18s ease;
}
.btn-rect:hover{
  transform:translateY(-1px);
  filter:saturate(1.05);
}
.btn-equal{
  min-width:240px;
}
@media (max-width: 575.98px){
  .btn-equal{
    width:100%;
    min-width:unset;
  }
}
.btn-primary{
  --bs-btn-bg:var(--brand);
  --bs-btn-border-color:var(--brand);
  --bs-btn-hover-bg:#6f1127;
  --bs-btn-hover-border-color:#6f1127;
  --bs-btn-active-bg:#621022;
  --bs-btn-active-border-color:#621022;
}

/* Thin borders for outline buttons */
.btn-outline-light{
  border-width:1px;
  border-color:rgba(255,255,255,.40);
}
.btn-outline-light:hover,
.btn-outline-light:focus{
  border-color:rgba(255,255,255,.55);
}
.btn-outline-dark{
  border-width:1px;
  border-color:rgba(15,16,18,.22);
}
.btn-outline-dark:hover,
.btn-outline-dark:focus{
  border-color:rgba(15,16,18,.35);
}

/* Hero «Позвонить»: hover #491c1c; контакты e-mail: hover #7e162d */
#about .hero-cta .btn-hover-accent:hover,
#about .hero-cta .btn-hover-accent:focus-visible{
  background-color:#fff !important;
  border-color:#fff !important;
  color:var(--text) !important;
}
#contacts .btn-hover-accent:hover,
#contacts .btn-hover-accent:focus-visible{
  background-color:#7e162d !important;
  border-color:#7e162d !important;
  color:#fff !important;
}
#about .hero-cta .btn-hover-accent:hover svg,
#about .hero-cta .btn-hover-accent:focus-visible svg,
#contacts .btn-hover-accent:hover svg,
#contacts .btn-hover-accent:focus-visible svg{
  color:currentColor;
  stroke:currentColor;
}

/* Контакты: кнопка с телефоном — hover белый фон, тёмный текст */
#contacts .btn-primary[href^="tel:"]:hover,
#contacts .btn-primary[href^="tel:"]:focus-visible{
  background-color:#fff !important;
  border-color:rgba(15,16,18,.2) !important;
  color:var(--text) !important;
}
#contacts .btn-primary[href^="tel:"]:hover svg,
#contacts .btn-primary[href^="tel:"]:focus-visible svg{
  color:var(--text);
  stroke:var(--text);
}

/* Sections */
.section{
  padding:4.25rem 0;
}
.section-head{
  margin-bottom:2rem;
}
.section-title{
  font-size:clamp(1.6rem, 2.3vw, 2.15rem);
  line-height:1.12;
  letter-spacing:-.02em;
  font-weight:600;
  margin:0 0 1rem;
}
.section-title--thin{
  font-weight:300;
  font-size:.9em;
  color:var(--muted);
}
.section-rule{
  height:1px;
  background:var(--border);
}

.service-list--arrows{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:.55rem;
}
.service-list--arrows li{
  display:flex;
  align-items:flex-start;
  gap:.55rem;
  margin:0;
}
/* Lucide подменяет <i> на <svg> — стилизуем оба, пока иконка не инициализирована */
.service-list--arrows li > i{
  flex:0 0 auto;
  display:inline-grid;
  place-items:center;
  width:16px;
  height:16px;
  min-width:16px;
  min-height:16px;
  align-self:flex-start;
}
.service-list--arrows li svg{
  flex:0 0 16px;
  width:16px !important;
  height:16px !important;
  min-width:16px;
  min-height:16px;
  display:block;
  align-self:flex-start;
  color:var(--brand);
}
.service-list--arrows li span{
  display:block;
  color:inherit;
  min-width:0;
  flex:1 1 0%;
}
.service-list--arrows li a{
  color:inherit;
  text-decoration:none;
  overflow-wrap:anywhere;
  transition:color .2s ease, font-weight .15s ease;
}
.service-list--arrows li a:hover,
.service-list--arrows li a:focus-visible{
  color:var(--brand);
  font-weight:600;
}

/*
  Встроенные браузеры (Telegram iOS и др.): у <a> color:inherit иногда срывается в синий UA-стиль.
  Явные hex + !important дублируют :root --text / --brand без зависимости от каскада inherit.
*/
#services.section-services{
  color:var(--text, #0f1012);
}
#services .service-list--arrows li a,
#services .service-list.service-list--arrows li a,
#services .service-list--arrows li a:any-link,
#services .service-list.service-list--arrows li a:any-link,
#services .service-list--arrows li a:-webkit-any-link,
#services .service-list.service-list--arrows li a:-webkit-any-link,
.section-tariff .tariff-toc .service-list.service-list--arrows li a{
  color:#0f1012 !important;
  -webkit-text-fill-color:#0f1012 !important;
  text-decoration:none !important;
  text-decoration-line:none !important;
}
#services .service-list--arrows li a:visited,
#services .service-list.service-list--arrows li a:visited,
.section-tariff .tariff-toc .service-list.service-list--arrows li a:visited{
  color:#0f1012 !important;
  -webkit-text-fill-color:#0f1012 !important;
}
#services .service-list--arrows li a:hover,
#services .service-list--arrows li a:focus-visible,
#services .service-list.service-list--arrows li a:hover,
#services .service-list.service-list--arrows li a:focus-visible,
.section-tariff .tariff-toc .service-list.service-list--arrows li a:hover,
.section-tariff .tariff-toc .service-list.service-list--arrows li a:focus-visible{
  color:#80152d !important;
  -webkit-text-fill-color:#80152d !important;
  font-weight:600;
}

.service-title{
  margin:0;
  font-size:1rem;
  font-weight:500;
  letter-spacing:.12em;
  text-transform:uppercase;
  line-height:1.25;
}
.service-divider{
  height:1px;
  margin:.9rem 0 1.05rem;
  background:linear-gradient(
    to right,
    rgba(15,16,18,.10) 0%,
    rgba(128,21,45,.22) 45%,
    rgba(15,16,18,.10) 100%
  );
}
.service-list{
  margin:0;
  padding-left:0;
  color:inherit;
}
.service-list li{
  margin:.3rem 0;
}

/* Tariff page — шапка раздела и оглавление (видимая область) */
.section-tariff{
  --section-tariff-bg:#fff;
  background:var(--section-tariff-bg);
}
.section-privacy .h5.fw-semibold{
  margin:2.35rem 0 .9rem !important;
  font-size:1rem;
  font-weight:500 !important;
  letter-spacing:.12em;
  text-transform:uppercase;
  line-height:1.25;
}
.section-tariff .section-head{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.tariff-back-link{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  margin-bottom:.65rem;
  color:var(--brand);
  text-decoration:none;
  font-size:.89rem;
  font-weight:500;
  line-height:1.2;
  transition:color .2s ease;
}
.tariff-back-link:hover,
.tariff-back-link:focus-visible{
  color:#651127;
}
.tariff-intro a{
  color:var(--brand);
  font-weight:500;
  text-decoration:none;
}
.tariff-intro a:hover{
  text-decoration:underline;
}
.tariff-toc{
  border:0;
  padding:1.75rem 0 0;
  background:transparent;
}
.tariff-toc__title{
  margin-bottom:0;
}
.tariff-toc .service-divider{
  margin-top:.65rem;
}
/* Оглавление: одна колонка — сетка с ровным gap; десктоп — CSS columns, чтобы шаг между ссылками не «ломался» из-за выравнивания строк в grid */
.tariff-toc .service-list.service-list--arrows{
  margin:0;
  display:grid;
  gap:.65rem;
}
.tariff-toc .service-list.service-list--arrows > li{
  margin:0;
  padding:0;
}
@media (min-width: 992px){
  .tariff-toc .service-list.service-list--arrows{
    display:block;
    column-count:2;
    column-gap:1.75rem;
  }
  .tariff-toc .service-list.service-list--arrows > li{
    -webkit-column-break-inside:avoid;
    break-inside:avoid;
    margin:0 0 .65rem;
    padding:0;
  }
  .tariff-toc .service-list.service-list--arrows > li:last-child{
    margin-bottom:0;
  }
}
.tariff-toc a{
  color:var(--text);
  text-decoration:none;
  font-weight:300;
  transition:color .2s ease, font-weight .15s ease;
}
.tariff-toc a:hover,
.tariff-toc a:focus-visible{
  color:var(--brand);
  font-weight:600;
}
@media (max-width: 991.98px){
  .section-tariff{
    padding-top:5.25rem;
  }
  .section-tariff .section-head{
    margin-bottom:1.05rem;
  }
  .section-tariff .section-title{
    margin-bottom:.5rem;
  }
  .section-privacy .h5.fw-semibold{
    font-size:1.06rem;
  }
  .tariff-toc__title.service-title,
  .tariff-toc .service-title,
  .tariff-table-mobile-lead .service-title{
    font-size:1.06rem;
  }
  .tariff-table-mobile-lead{
    margin-bottom:.3rem;
  }
  .tariff-toc .service-list.service-list--arrows a{
    font-size:1.07rem;
  }
}

/* Скрытие до GSAP только с флагом; иначе при ошибке загрузки скриптов контент остаётся невидимым */
html.js-reveal-pending .reveal{
  opacity:0;
}

.cookie-consent{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:1050;
  background:linear-gradient(180deg, rgba(218,222,230,.45) 0%, rgba(208,212,220,.45) 100%);
  color:var(--text);
  border-top:1px solid rgba(15,16,18,.09);
  box-shadow:0 -6px 24px rgba(15,16,18,.07);
  backdrop-filter:saturate(1.08) blur(14px);
  -webkit-backdrop-filter:saturate(1.08) blur(14px);
  transform:translate3d(0, 100%, 0);
  opacity:0;
  visibility:hidden;
  transition:transform .26s ease, opacity .26s ease, visibility .26s ease;
}
.cookie-consent.is-visible{
  transform:translate3d(0, 0, 0);
  opacity:1;
  visibility:visible;
}
.cookie-consent__inner{
  display:flex;
  align-items:center;
  justify-content:center;
  padding-top:.85rem;
  padding-bottom:.85rem;
  box-sizing:border-box;
  /* горизонтальные поля и max-width как у .container на странице */
}
.cookie-consent__inner.container{
  padding-left:max(calc(var(--bs-gutter-x, 1.5rem) * 0.5), env(safe-area-inset-left, 0px));
  padding-right:max(calc(var(--bs-gutter-x, 1.5rem) * 0.5), env(safe-area-inset-right, 0px));
}
.cookie-consent__main{
  display:inline-flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:.4rem .55rem;
  flex:0 1 auto;
  min-width:0;
  max-width:100%;
}
.cookie-consent__text{
  margin:0;
  flex:0 1 auto;
  min-width:0;
  max-width:100%;
  text-align:left;
  font-size:1.08rem;
  font-weight:300;
  letter-spacing:-0.01em;
  line-height:1.5;
  color:var(--text);
}
.cookie-consent__line{
  display:inline;
}
.cookie-consent__text a{
  color:var(--brand);
  font-weight:500;
  margin-left:0.25em;
}
.cookie-consent__line--2 a:first-of-type{
  margin-left:0;
}
.cookie-consent__text a:hover,
.cookie-consent__text a:focus-visible{
  color:var(--accent);
}
.cookie-consent__ok{
  min-width:unset;
  padding:.5rem 1rem !important;
  font-size:1.02rem !important;
  line-height:1.3;
  white-space:nowrap;
  font-weight:500;
  letter-spacing:.02em;
}
@media (min-width: 768px){
  .cookie-consent__inner{
    justify-content:center;
    align-items:center;
  }
  .cookie-consent__main{
    display:inline-flex;
    flex-direction:row;
    flex-wrap:nowrap;
    align-items:center;
    justify-content:flex-start;
    gap:1rem 1.5rem;
    width:auto;
    max-width:100%;
  }
  .cookie-consent__text{
    flex:0 1 auto;
    min-width:0;
    max-width:min(46rem, calc(100vw - 8rem));
    text-align:left;
  }
  .cookie-consent__line--1{
    display:block;
  }
  .cookie-consent__line--2{
    display:block;
    margin-top:.2em;
  }
  .cookie-consent__ok{
    flex:0 0 auto;
    align-self:center;
  }
}
@media (min-width: 1200px){
  .cookie-consent__line--1{
    white-space:nowrap;
  }
}
@media (max-width: 767.98px){
  .cookie-consent__inner{
    flex-direction:column;
    align-items:center;
    gap:.5rem;
  }
  .cookie-consent__main{
    flex-direction:column;
    align-items:center;
    gap:.45rem;
    width:100%;
    max-width:28rem;
  }
  .cookie-consent__text{
    width:100%;
  }
  .cookie-consent__ok{
    width:auto;
    align-self:center;
  }
}
