/* ОРИЕНТИР: общая оболочка — шапка, точка-меню, меню, дуги в углу, подвал.
   Подключается на главной и на всех внутренних страницах. Все классы с префиксом o-,
   чтобы не пересекаться с base.css / variant-a.css. Концепция: CONCEPT-GLAVNAYA.md.
   CSP запрещает инлайн-стили, поэтому все стили здесь; динамику JS пишет через CSSOM. */

/* ---- Шрифты: Source Sans 3 (вариативный, ось wght: настоящие 400 и 600) и Cormorant Garamond SemiBold 600.
   woff2, полная русская кириллица + латиница, font-display:swap. Других гарнитур на сайте нет. ---- */
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;
  src:url("../fonts/o-sourcesans3-cyrillic.woff2") format("woff2");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:200 900;font-display:swap;
  src:url("../fonts/o-sourcesans3-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* 500 — только для названия в надписи-кнопке меню */
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500;font-display:swap;
  src:url("../fonts/cormorant-garamond-500-cyrillic.woff2") format("woff2");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500;font-display:swap;
  src:url("../fonts/cormorant-garamond-500-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:600;font-display:swap;
  src:url("../fonts/cormorant-garamond-600-cyrillic.woff2") format("woff2");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:600;font-display:swap;
  src:url("../fonts/cormorant-garamond-600-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

:root{
  /* ---- Палитра «Белый · дымчатый · тёмно-синий». Только эти три цвета и их прозрачные производные. ---- */
  --o-white:#FCFDFE;
  --o-white-rgb:252,253,254;
  --o-mist:#E7EBF0;
  --o-mist-rgb:231,235,240;
  --o-navy:#1D2F46;
  --o-navy-rgb:29,47,70;

  /* Поверхности (баланс ≈ 70% белого, 20% дымчатого, 10% тёмно-синего) */
  --o-bg:var(--o-white);                          /* фон страниц, шапки */
  --o-bg-rgb:var(--o-white-rgb);
  --o-surface:var(--o-white);                     /* светлые карточки, поля */
  --o-surface-alt:var(--o-mist);                  /* второстепенные секции, инфокарточки, раскрытые ответы */
  --o-surface-dark:var(--o-navy);                 /* подвал */
  /* Текст. Дымчатый для текста на белом не используется. */
  --o-heading:var(--o-navy);
  --o-text:var(--o-navy);
  --o-text-muted:rgba(var(--o-navy-rgb),.78);     /* второстепенный текст, на белом ≈ 7:1 */
  --o-on-dark:var(--o-white);
  --o-on-dark-rgb:var(--o-white-rgb);
  /* Акцент — тот же тёмно-синий: кнопки, ссылки, точки, маркеры */
  --o-accent:var(--o-navy);
  --o-accent-rgb:var(--o-navy-rgb);
  --o-accent-hover:rgba(var(--o-navy-rgb),.86);
  --o-on-accent:var(--o-white);
  /* Линии и декор */
  --o-border:rgba(var(--o-navy-rgb),.16);         /* тонкие обводки карточек и фото */
  --o-border-strong:rgba(var(--o-navy-rgb),.55);  /* поля формы, контуры кнопок-выборов */
  --o-deco:rgba(var(--o-navy-rgb),.45);           /* внутреннее кольцо, пунктир */
  --o-deco-soft:rgba(var(--o-navy-rgb),.22);      /* внешнее кольцо */
  --o-hover-bg:var(--o-mist);                     /* мягкая подложка при наведении */
  --o-press-bg:rgba(var(--o-navy-rgb),.12);       /* нажатие */
  --o-focus:var(--o-navy);
  --o-shadow-rgb:var(--o-navy-rgb);
  /* Световые пятна: мягкий переход белый → дымчатый */
  --o-glow-rgb:var(--o-mist-rgb);
  --o-glow-a:2;

  /* ---- Типографика: два семейства, два начертания текста, одна шкала ---- */
  --o-font-display:"Cormorant Garamond",Georgia,"Times New Roman",serif;  /* 600: логотип, заголовки */
  --o-font-text:"Source Sans 3",Arial,Helvetica,sans-serif;              /* 400 текст, 600 кнопки/подписи */
  --o-fw-regular:400;
  --o-fw-semibold:600;
  /* размеры: мобильные значения, настольные — в @media ниже */
  --o-fs-logo:28px;
  --o-fs-h1:38px;
  --o-fs-h2:30px;
  --o-fs-h3:25px;       /* заголовки карточек */
  --o-fs-h4:22px;       /* вопросы FAQ, мелкие заголовки */
  --o-fs-body:17px;
  --o-fs-ui:16px;       /* кнопки, навигация, поля */
  --o-fs-sm:15px;       /* второстепенный текст, подписи полей */
  --o-fs-caption:14px;  /* служебные подписи */
  --o-fs-over:13px;     /* надзаголовки капсом */
  --o-lh-display:1.1;
  --o-lh-card:1.2;
  --o-lh-ui:1.25;
  --o-lh-body:1.55;
  --o-ease:cubic-bezier(.22,1,.36,1);
}
@media (min-width:720px){
  :root{
    --o-fs-logo:30px;
    --o-fs-h1:54px;
    --o-fs-h2:40px;
    --o-fs-h3:28px;
    --o-fs-h4:24px;
    --o-fs-body:18px;
    --o-fs-ui:17px;
  }
}
/* Без искусственного утолщения и наклона; <strong> — настоящий SemiBold */
body{font-synthesis:none;}
:where(strong,b){font-weight:var(--o-fw-semibold);}
/* Переносы по ширине экрана: заголовки выравниваются по строкам, длинные слова не вылезают */
:where(h1,h2,h3,.o-footer-title){text-wrap:balance;overflow-wrap:break-word;}
:where(p,li,dd){text-wrap:pretty;}

/* Тёмный фон: точки, кольца и линии белые, основная кнопка белая с тёмно-синим текстом */
.o-on-dark,.o-footer{
  --o-accent:var(--o-white);
  --o-accent-rgb:var(--o-white-rgb);
  --o-accent-hover:rgba(var(--o-white-rgb),.86);
  --o-on-accent:var(--o-navy);
  --o-heading:var(--o-white);
  --o-text:var(--o-white);
  --o-text-muted:rgba(var(--o-white-rgb),.78);
  --o-border:rgba(var(--o-white-rgb),.18);
  --o-border-strong:rgba(var(--o-white-rgb),.6);
  --o-deco:rgba(var(--o-white-rgb),.5);
  --o-deco-soft:rgba(var(--o-white-rgb),.25);
  --o-hover-bg:rgba(var(--o-white-rgb),.1);
  --o-press-bg:rgba(var(--o-white-rgb),.18);
  --o-focus:var(--o-white);
}

/* ---- Общие мелочи ---- */
.o-skip{position:absolute;left:-9999px;top:8px;z-index:500;background:var(--o-accent);color:var(--o-on-accent);
  padding:10px 16px;border-radius:8px;font:var(--o-fw-semibold) var(--o-fs-ui) var(--o-font-text);}
.o-skip:focus{left:8px;}
.o-header a,.o-header button,.o-menu a,.o-menu button,.o-footer a{-webkit-tap-highlight-color:transparent;}
.o-header :focus-visible,.o-menu :focus-visible,.o-footer :focus-visible,
.o-home :focus-visible{outline:2px solid var(--o-focus);outline-offset:3px;border-radius:6px;}
html.o-lock,html.o-lock body{overflow:hidden;}
html{scrollbar-gutter:stable;}

/* ---- Точка (SVG 44×44) ---- */
.o-dot{position:relative;display:block;width:var(--d,44px);height:var(--d,44px);padding:0;border:0;background:none;
  font:inherit;color:inherit;overflow:visible;}
.o-dot svg{display:block;width:100%;height:100%;overflow:visible;max-width:none;}
.o-ring{fill:none;stroke-width:1.5px;transform-box:fill-box;transform-origin:center;}
.o-ring-out{stroke:var(--o-deco-soft);}
.o-ring-in{stroke:var(--o-deco);}
.o-core{fill:var(--o-accent);transform-box:fill-box;transform-origin:center;}
@keyframes o-breathe{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.18);opacity:.5}}
/* Кольца точки: два круга-слоя. Анимация transform/opacity идёт на композиторе,
   а не перерисовкой SVG на главном потоке (так плавнее на телефонах). Круги SVG остаются только у точки заставки. */
.o-dot .o-ring{display:none;}
.o-dot::before,.o-dot::after{content:"";position:absolute;left:50%;top:50%;box-sizing:border-box;
  width:var(--w);height:var(--w);margin:calc(var(--w) / -2) 0 0 calc(var(--w) / -2);border:1.5px solid;border-radius:50%;
  pointer-events:none;will-change:transform,opacity;animation:o-breathe 2.2s ease-in-out infinite;}
.o-dot::before{--w:calc(var(--d,44px) * .8977);border-color:var(--o-deco-soft);}
.o-dot::after{--w:calc(var(--d,44px) * .5795);border-color:var(--o-deco);}
html.o-paused .o-dot::before,html.o-paused .o-dot::after,
.o-dot.is-off::before,.o-dot.is-off::after{animation-play-state:paused;}
html.o-paused .o-ring,.is-off .o-ring{animation-play-state:paused;}

/* Волна: круг 1.5px, толщина линии не масштабируется */
.o-wave{position:absolute;pointer-events:none;overflow:visible;max-width:none;will-change:transform,opacity;}
.o-wave *{fill:none;stroke:var(--o-accent);stroke-width:1.5px;vector-effect:non-scaling-stroke;}
.o-ripple-layer{position:fixed;left:0;top:0;width:0;height:0;z-index:300;pointer-events:none;}

/* ---- Шапка: статичная, фиксирована сверху, никогда не прячется ----
   Фон шапки — отдельный слой под меню (z 90), сама шапка прозрачная и лежит над меню (z 120),
   чтобы надпись-кнопка оставалась поверх открытого меню. */
:root{--o-header-h:60px;--o-pad-x:20px;}
body{padding-top:var(--o-header-h);}
html{scroll-padding-top:calc(var(--o-header-h) + 50px);}
.o-header-bg{position:fixed;left:0;right:0;top:0;height:var(--o-header-h);z-index:90;background:var(--o-bg);pointer-events:none;}
/* Растворение: полоса 50px под шапкой, прозрачность 0 → 1 за первые 40px прокрутки (JS), без размытия */
.o-header-fade{position:fixed;left:0;right:0;top:var(--o-header-h);height:50px;z-index:89;pointer-events:none;opacity:0;
  background:linear-gradient(to bottom,var(--o-bg),rgba(var(--o-bg-rgb),0));}
.o-header{position:fixed;left:0;right:0;top:0;z-index:120;height:var(--o-header-h);font-family:var(--o-font-text);
  display:flex;align-items:center;justify-content:space-between;pointer-events:none;
  padding:0 calc(var(--o-pad-x) + env(safe-area-inset-right,0px)) 0 calc(var(--o-pad-x) + env(safe-area-inset-left,0px));}
.o-header > *{pointer-events:auto;}
.o-contacts{display:flex;align-items:center;margin-right:-12px;transition:opacity .25s var(--o-ease);}
.o-contacts a{display:grid;place-items:center;width:44px;height:44px;margin-left:-11px;color:var(--o-text);border-radius:50%;}
.o-contacts a:first-child{margin-left:0;}
.o-contacts a{transition:background-color .18s var(--o-ease);}
.o-contacts a:hover{background:var(--o-hover-bg);}
.o-contacts a:active{background:var(--o-press-bg);}
.o-contacts .o-fill{fill:currentColor;stroke:none;}
.o-contacts svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;max-width:none;}
/* в шапке только телефон; от 600px рядом с трубкой виден номер */
.o-contacts a{text-decoration:none;}
.o-head-call-num{display:none;font:var(--o-fw-semibold) var(--o-fs-ui)/1 var(--o-font-text);white-space:nowrap;}
@media (min-width:600px){
  .o-contacts a.o-head-call{display:inline-flex;align-items:center;gap:8px;width:auto;padding:0 14px 0 12px;border-radius:999px;}
  .o-head-call-num{display:inline;}
}
html.o-menu-open .o-contacts{opacity:0;pointer-events:none;}

/* ---- Надпись-кнопка меню: «ОРИЕНТИР» / линия / «РЕАБИЛИТАЦИОННЫЙ ЦЕНТР» ----
   Кнопка слева в шапке, иконки справа. Размеры в em от --o-mark (18px на телефоне, 21.6px на ПК = ×1.2). Ширина названия зарезервирована под
   максимальную разрядку, хвостовая разрядка после последней буквы компенсирована отрицательным отступом,
   поэтому буквы расходятся симметрично от центра, а подпись и линия не двигаются. */
.o-mark{--o-mark:18px;position:relative;display:flex;align-items:center;gap:8px;
  min-width:44px;min-height:44px;margin:0 0 0 -6px;padding:4px 6px;border:0;border-radius:8px;background:none;
  color:var(--o-heading);font-size:var(--o-mark);line-height:1;cursor:pointer;overflow:visible;}
.o-mark-text{display:flex;flex-direction:column;align-items:center;justify-content:center;}
/* точка справа от надписи — та же пульсирующая точка, что была в центре шапки; вместе с надписью это одна кнопка меню */
/* точка меню и подпись под ней («Меню» / «Закрыть»): ширина под длинное слово, чтобы ничего не сдвигалось */
.o-mark-menu{display:flex;flex-direction:column;align-items:center;flex:none;width:48px;}
.o-mark-dot{--d:36px;flex:none;}
.o-mark-label{margin-top:1px;font:var(--o-fw-semibold) 8.5px/1 var(--o-font-text);letter-spacing:.12em;text-transform:uppercase;
  color:var(--o-text-muted);white-space:nowrap;}
.o-mark-name{display:flex;justify-content:center;width:7em;white-space:nowrap;
  font:500 1em/1.05 var(--o-font-display);text-transform:uppercase;color:var(--o-heading);}
.o-mark-name-in{display:inline-block;letter-spacing:.175em;margin-right:-.175em;
  animation:o-mark-breathe 3s cubic-bezier(.37,0,.63,1) infinite alternate;}
@keyframes o-mark-breathe{
  from{letter-spacing:.175em;margin-right:-.175em;}
  to{letter-spacing:.235em;margin-right:-.235em;}
}
.o-mark-line{display:block;width:1.3em;height:1px;margin:.3em 0 .32em;background:var(--o-text-muted);transform:scaleY(.75);}
/* подпись не мельче 11px: это единственное место в шапке, где сказано, что это за учреждение */
.o-mark-sub{display:block;white-space:nowrap;font:var(--o-fw-regular) 11px/1.1 var(--o-font-text);
  letter-spacing:.04em;margin-right:-.04em;text-transform:uppercase;color:var(--o-text-muted);}
.o-mark:focus-visible{outline:2px solid var(--o-focus);outline-offset:2px;}
html.o-paused .o-mark-name-in{animation-play-state:paused;}
/* «тише» (JS: OShell.setCalm): пока заполняется форма, дыхание колец и названия замирает */
html.o-calm .o-dot::before,html.o-calm .o-dot::after,html.o-calm .o-mark-name-in{animation-play-state:paused;}
@media (min-width:720px){
  :root{--o-pad-x:32px;}
  .o-mark{--o-mark:21.6px;}
  .o-mark-sub{letter-spacing:.08em;margin-right:-.08em;}
}
/* Узкие телефоны (<375px): иконки плотнее, чтобы надпись и иконки поместились */
@media (max-width:374px){
  :root{--o-pad-x:10px;}
  .o-mark{--o-mark:16px;gap:4px;}
  .o-mark-dot{--d:32px;}
  .o-contacts a{width:40px;margin-left:-12px;}
  .o-contacts{margin-right:-10px;}
}

/* ---- Меню: круг панели растёт из центра надписи (clip-path, JS), пункты проявляются снизу вверх ---- */
.o-menu{position:fixed;inset:0;z-index:100;visibility:hidden;font-family:var(--o-font-text);}
.o-menu.is-open{visibility:visible;}
.o-menu-bg{position:absolute;inset:0;background:var(--o-surface-alt);clip-path:circle(0px at 50% 0px);}
.o-menu-fx{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none;}
.o-menu .o-item{opacity:0;transform:translateY(10px);}
.o-menu.is-shown .o-item{opacity:1;transform:none;
  transition:opacity .5s ease-out var(--do,0s),transform .5s cubic-bezier(.4,0,.2,1) var(--do,0s);}
.o-menu.is-leaving .o-item{opacity:0;transform:none;transition:opacity .25s linear;}
/* prefers-reduced-motion: без колец и круга, меню просто проявляется */
.o-menu.is-fade{opacity:0;transition:opacity .3s linear;}
.o-menu.is-fade.is-shown{opacity:1;}
.o-menu.is-fade .o-menu-bg{clip-path:none;}
.o-menu.is-fade .o-item,.o-menu.is-fade.is-shown .o-item{opacity:1;transform:none;transition:none;}
.o-menu-col{position:absolute;inset:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  padding:90px 24px 48px;}
.o-menu-list{list-style:none;margin:0 auto;padding:0;max-width:420px;display:flex;flex-direction:column;
  align-items:center;gap:11px;text-align:center;}
.o-menu-list li{margin:0;padding:0;}
.o-menu-list a{position:relative;display:inline-block;color:var(--o-text);text-decoration:none;
  font:var(--o-fw-semibold) 23px/1.15 var(--o-font-display);}
.o-menu-list a::after{content:"";position:absolute;inset:-9px -14px;}
.o-menu-list a{text-decoration-line:underline;text-decoration-thickness:1.5px;text-underline-offset:6px;
  text-decoration-color:transparent;transition:text-decoration-color .18s var(--o-ease);}
.o-menu-list a:hover{text-decoration-color:var(--o-deco);}
.o-menu-list a:active{text-decoration-color:var(--o-accent);}
.o-menu-list a[aria-current="page"]{color:var(--o-accent);text-decoration-color:var(--o-accent);}
.o-menu-list .o-m-dir a{font-size:27px;}
.o-menu-list .o-m-gap{margin-top:10px;}
/* телефон и заявка стоят первыми в меню */
.o-menu-phone-wrap{display:flex;flex-direction:column;align-items:center;margin:0 auto 26px;max-width:420px;}
.o-menu-apply{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin-top:12px;padding:10px 18px;
  border:1px solid var(--o-accent);border-radius:999px;color:var(--o-accent);text-decoration:none;
  font:var(--o-fw-semibold) var(--o-fs-ui)/var(--o-lh-ui) var(--o-font-text);transition:background-color .18s var(--o-ease);}
.o-menu-apply:hover{background:var(--o-hover-bg);}
.o-menu-apply:active{background:var(--o-press-bg);}
.o-menu-phone{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:10px 18px;border-radius:999px;
  background:var(--o-accent);color:var(--o-on-accent);text-decoration:none;font:var(--o-fw-semibold) var(--o-fs-ui)/var(--o-lh-ui) var(--o-font-text);
  transition:background-color .18s var(--o-ease),box-shadow .18s var(--o-ease);}
.o-menu-phone:hover{background:var(--o-accent-hover);}
.o-menu-phone:active{background:var(--o-accent);box-shadow:0 0 0 4px var(--o-press-bg);}
.o-menu-note{margin:8px 0 0;text-align:center;font:var(--o-fw-regular) var(--o-fs-caption)/1.4 var(--o-font-text);color:var(--o-text-muted);}
/* кольца от надписи: линия 1px при любом масштабе */
.o-wave.o-wave--thin *{stroke:var(--o-heading);stroke-width:1px;}

/* ---- Подвал: тёмно-синий фон, белый текст (переменные тёмного фона заданы выше в .o-footer) ---- */
.o-footer{background:var(--o-surface-dark);color:var(--o-text);font:var(--o-fw-regular) var(--o-fs-ui)/1.6 var(--o-font-text);padding:48px 20px 32px;text-align:center;}
.o-footer a{color:var(--o-text);text-decoration:none;}
.o-footer a:hover{text-decoration:underline;text-underline-offset:4px;}
.o-footer-in{max-width:1040px;margin:0 auto;}
.o-footer-cta{display:flex;flex-direction:column;align-items:center;gap:16px;padding-bottom:36px;
  border-bottom:1px solid var(--o-border);}
.o-footer .o-footer-title{margin:0;font:var(--o-fw-semibold) var(--o-fs-h2)/var(--o-lh-display) var(--o-font-display);color:var(--o-heading);}
/* основная кнопка на тёмном фоне: белая с тёмно-синим текстом */
.o-footer a.o-footer-btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 26px;
  border:1px solid var(--o-accent);border-radius:999px;font:var(--o-fw-semibold) var(--o-fs-ui)/var(--o-lh-ui) var(--o-font-text);
  background:var(--o-accent);color:var(--o-on-accent);transition:background-color .18s var(--o-ease),box-shadow .18s var(--o-ease);}
.o-footer a.o-footer-btn:hover{background:var(--o-accent-hover);text-decoration:none;}
.o-footer a.o-footer-btn:active{background:var(--o-accent);box-shadow:0 0 0 4px var(--o-press-bg);}
.o-footer-groups{display:grid;grid-template-columns:1fr;gap:32px;padding:36px 0;}
.o-footer .o-footer-h{margin:0 0 12px;font:var(--o-fw-semibold) var(--o-fs-over)/1.3 var(--o-font-text);letter-spacing:.14em;text-transform:uppercase;color:rgba(var(--o-on-dark-rgb),.66);}
.o-footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0;}
/* зона нажатия ссылок не меньше 44px по высоте */
.o-footer li a{display:inline-flex;align-items:center;min-height:44px;padding:0;}
.o-footer-addr{margin:0;font-style:normal;color:var(--o-text-muted);font-size:var(--o-fs-sm);}
.o-footer-legal{padding-top:28px;border-top:1px solid var(--o-border);font-size:var(--o-fs-caption);line-height:1.55;color:rgba(var(--o-on-dark-rgb),.66);}
.o-footer-legal p{margin:0 0 4px;}

@media (min-width:760px){
  .o-footer{text-align:left;padding:64px 32px 36px;}
  .o-footer-cta{flex-direction:row;justify-content:space-between;}
  .o-footer-groups{grid-template-columns:repeat(4,1fr);gap:24px;}
  .o-footer-legal{text-align:left;}
}

/* ---- Уменьшение движения ---- */
@media (prefers-reduced-motion:reduce){
  .o-dot::before,.o-dot::after{animation:none;}
  .o-mark-name-in{animation:none;}
}

/* Fixed shared header: named application button and social links. */
.home-arrow{display:inline-block;width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle;}
.o-header{background:var(--o-white);border-bottom:1px solid var(--o-border);}
.o-contacts{gap:10px;margin-right:0;flex:none;}
.o-contacts a,.o-contacts button{margin:0;}
.o-contacts a.home-head-address{display:flex;align-items:center;gap:10px;border-radius:0;width:auto;min-height:44px;padding:0 15px 0 0;border-right:1px solid var(--o-border);font-size:13px;font-weight:600;line-height:1.2;}
.home-head-address small{display:block;font-size:11px;font-weight:400;margin-top:3px;}
.pin-icon{font-size:22px;background:var(--o-mist);display:grid;place-items:center;border-radius:50%;width:30px;height:30px;}
.o-socials{display:flex;align-items:center;gap:0;}
.o-contacts .o-social{display:grid;place-items:center;width:44px;height:44px;min-width:44px;min-height:44px;margin:0;padding:0;border:0;border-radius:50%;background:transparent;color:var(--o-navy);text-decoration:none;}
.o-contacts .o-social svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;}
.o-contacts .o-social .o-fill{fill:currentColor;stroke:none;}
.o-contacts .o-social:hover{background:var(--o-mist);}
.o-contacts .o-social:disabled{opacity:.45;cursor:default;}
.o-contacts a.o-head-call{margin:0;flex:none;}
.o-contacts a.home-head-apply.header-request{display:flex;align-items:center;justify-content:center;gap:8px;width:auto;height:44px;min-height:44px;flex:none;padding:0 16px;margin:0;border:0;border-radius:999px;background:var(--o-navy);color:var(--o-white);font-size:14px;font-weight:600;white-space:nowrap;box-shadow:none;}
.o-contacts a.home-head-apply.header-request::before,.o-contacts a.home-head-apply.header-request::after{content:none;}
.home-head-apply-label{display:inline;}
.o-contacts a.home-head-apply.header-request .home-arrow{display:block;width:16px;height:16px;margin:0;stroke-width:1.8;transform:none;}
.o-contacts a.home-head-apply.header-request:hover{background:var(--o-accent-hover);}
@media(min-width:720px){:root{--o-header-h:80px;}.o-header{padding-inline:max(30px,calc((100vw - 1160px)/2));}}
@media(max-width:1199px){.o-contacts a.home-head-address{display:none;}}
@media(min-width:720px) and (max-width:999px){.o-head-call-num{display:none;}.o-contacts a.o-head-call{width:44px;height:44px;padding:0;display:grid;}}
@media(max-width:719px){
  :root{--o-header-h:110px;}
  html{scroll-padding-top:calc(var(--o-header-h) + env(safe-area-inset-top,0px) + 16px);}
  body,html.o-menu-open body{padding-top:calc(var(--o-header-h) + env(safe-area-inset-top,0px));}
  .o-header,html.o-menu-open .o-header{position:fixed;inset:0 0 auto;height:calc(var(--o-header-h) + env(safe-area-inset-top,0px));display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:54px 44px;row-gap:5px;align-items:center;padding:env(safe-area-inset-top,0px) calc(12px + env(safe-area-inset-right,0px)) 6px calc(12px + env(safe-area-inset-left,0px));}
  .o-header-bg,.o-header-fade{display:none;}
  .o-mark{grid-column:1;grid-row:1;justify-self:start;flex:none;width:max-content;gap:8px;}
  .o-mark-name{font-size:23px;}
  .o-mark-sub{font-size:8px;}
  .o-mark-menu{width:39px;}
  .o-mark-dot{--d:30px;}
  .o-mark-label{font-size:8px;}
  .o-contacts{display:contents;}
  .o-contacts .o-socials{grid-column:1;grid-row:2;justify-self:start;}
  .o-contacts a.o-head-call{grid-column:2;grid-row:1;justify-self:end;width:44px;height:44px;min-height:44px;padding:0;display:grid;}
  .o-head-call-num{display:none;}
  .o-contacts a.home-head-apply.header-request{grid-column:2;grid-row:2;justify-self:end;padding:0 12px;font-size:13px;}
  html.o-menu-open .o-contacts>*{visibility:hidden;pointer-events:none;}
  .o-menu-col{padding-top:calc(var(--o-header-h) + env(safe-area-inset-top,0px) + 24px);}
}
@media(max-width:374px){.o-mark{gap:4px;padding-right:6px;}.o-mark-name{font-size:21px;}.o-mark-menu{width:36px;}}
