/* Clean Clinic — общие компоненты: шапка, мобильное меню, sticky-CTA, футер,
   модалки, курсор, типографика-примитивы, реакции на скролл.
   Подключается на каждой странице вместе с tokens.css. */

@keyframes spin{to{transform:rotate(360deg)}}
@keyframes ccwing{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.8)}}

/* ---- custom cursor (desktop only) ---- */

#ccWrap{position:fixed;top:0;left:0;width:0;height:0;z-index:9999;pointer-events:none;opacity:0;transition:opacity .3s}
#ccCore{position:fixed;top:0;left:0;width:7px;height:7px;box-sizing:border-box;border-radius:50%;background:#0071FC;border:1px solid transparent;transform:translate3d(var(--x,0),var(--y,0),0) translate(-50%,-50%);transition:width .28s cubic-bezier(.2,.7,.2,1),height .28s cubic-bezier(.2,.7,.2,1),background .28s,border-color .28s}
#ccCore.hover{width:34px;height:34px;background:transparent;border-color:#0071FC}
#ccCore.down{transition:width .12s,height .12s,transform .12s;transform:translate3d(var(--x,0),var(--y,0),0) translate(-50%,-50%) scale(.78)}
#ccBird{position:fixed;top:0;left:0;transform:translate3d(var(--x,0),var(--y,0),0) translate(-50%,-50%);transition:opacity .3s}
#ccBird .ccrot{transform:rotate(var(--r,0deg));transform-origin:50% 50%}
#ccBird.hovering svg{animation:ccwing .12s linear infinite;transform-origin:50% 50%}
#ccCaret{position:fixed;top:0;left:0;width:2px;height:22px;border-radius:1px;background:#0071FC;box-shadow:0 0 0 1.5px rgba(255,255,255,.4);transform:translate3d(var(--x,0),var(--y,0),0) translate(-50%,-50%);opacity:0;transition:opacity .22s}

/* ---- layout / typography primitives ---- */
.wrap{max-width:1240px;margin:0 auto;padding:0 40px}

.eyebrow{font-family:var(--disp);letter-spacing:.24em;text-transform:uppercase;font-size:13px;color:var(--blue)}
.h2{font-family:var(--disp);font-weight:400;text-transform:uppercase;line-height:.98;letter-spacing:.01em;font-size:clamp(34px,5vw,64px)}
.lead{color:var(--slate);font-size:17px;max-width:560px}
.arrowlink{display:inline-flex;align-items:center;gap:9px;font-family:var(--disp);letter-spacing:.08em;text-transform:uppercase;font-size:14px;color:var(--ink)}
.arrowlink:hover{color:var(--blue)}
.navlink{color:var(--ink);position:relative}
.navlink:hover{color:var(--blue)}
.navlink.cur{color:var(--blue)}
.crumbs a:hover{color:var(--blue)}

/* scroll-reveal */
.reveal{transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.has-js .reveal{opacity:0;transform:translateY(26px)}
.reveal.in{opacity:1;transform:none}

/* oversized translucent section watermark ("типографика-подложка") */
.wm{position:absolute;font-family:var(--disp);font-weight:400;text-transform:uppercase;line-height:.8;white-space:nowrap;pointer-events:none;user-select:none;z-index:0;letter-spacing:.01em;color:#101E2C;opacity:.028;font-size:clamp(150px,24vw,380px)}

/* fade at the trailing edge of a horizontally-scrolling card rail (doctors, related articles, ...) */
.doc-railwrap::after{content:"";position:absolute;top:0;right:0;bottom:8px;width:96px;background:linear-gradient(90deg,rgba(238,233,222,0),var(--sand));pointer-events:none;z-index:2}

/* ---- header capsule ---- */
#siteHeader{padding:18px 20px 0;position:fixed;top:0;left:0;right:0;z-index:56;transition:transform .4s cubic-bezier(.2,.7,.2,1)}
#siteHeader.hdr-hidden{transform:translateY(-130%)}
#pageShell{padding-top:var(--hdr-h,100px)}
#siteHeader .cap{position:relative;border-radius:100px;background:rgba(246,242,234,.62);-webkit-backdrop-filter:blur(48px) saturate(150%);backdrop-filter:blur(48px) saturate(150%);box-shadow:0 34px 90px -46px rgba(16,32,46,.24),inset 0 1px 0 rgba(255,255,255,.5);padding:10px 30px}
@supports not ((backdrop-filter:blur(2px)) or (-webkit-backdrop-filter:blur(2px))){#siteHeader .cap{background:rgba(246,242,234,.94)}}
#siteHeader .cap::after{content:"";position:absolute;left:26px;right:26px;bottom:2px;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(0,113,252,.34) 50%,transparent 100%);pointer-events:none}
#siteHeader .logo{height:22px}

.mobonly{display:none}
.dev-link{display:none}
.sticky-cta{display:none}

/* ---- infusion line (left gutter, desktop only; JS toggles #infusion
   display/top/height and drives .inf-node/#infFill state — see js/main.js) ---- */
#infusion{position:absolute;left:20px;top:0;width:1px;height:0;z-index:3;pointer-events:none;display:none}
#infusion .inf-track{position:absolute;inset:0;width:1px;background:#8FA6C0;opacity:.12}
#infFill{position:absolute;left:0;top:0;width:1px;height:0;background:#0071FC;opacity:.35;transition:height .2s ease-out}
.inf-node{position:absolute;left:0;top:0;width:6px;height:6px;border-radius:50%;background:#0071FC;opacity:.28;transform:translate(-50%,-50%) scale(1);box-shadow:0 0 0 3px rgba(0,113,252,.10);transition:transform .6s ease,opacity .6s ease,box-shadow .6s ease}

/* ---- mobile menu ---- */
.mobile-menu{position:fixed;inset:0;z-index:70;background:#0E1B2E;color:#fff;flex-direction:column;padding:26px 24px calc(30px + env(safe-area-inset-bottom));visibility:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;clip-path:inset(0% 42% 100% 42% round 260px 260px 0px 0px);will-change:clip-path}
.mm-item{opacity:0;transform:translateY(16px)}
.mm-link:hover{color:#fff}

/* ---- buttons / cards interaction ---- */
.dcard{transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
.dcard:hover{transform:translateY(-6px);box-shadow:0 34px 60px -34px rgba(16,32,46,.5)}
.dcard:hover .darr{background:var(--blue);color:#fff;border-color:var(--blue)}
.prim:hover{background:var(--blue-deep)!important;border-color:var(--blue-deep)!important;transform:translateY(-2px);box-shadow:0 16px 34px -14px rgba(0,113,252,.6)}
.ghost:hover{border-color:var(--blue)!important;color:var(--blue)!important}
.sec:hover{border-color:var(--blue)!important;color:var(--blue)!important}

/* ---- form fields (consult modal, question modal, subscribe...) ---- */
.qm-field{width:100%;border:1px solid var(--line);border-radius:12px;padding:13px 16px;font-family:Raleway;font-size:15px;color:var(--ink);background:#fff;transition:border-color .25s;box-sizing:border-box}
.qm-field:focus{outline:none;border-color:var(--blue)}
.qm-field::placeholder{color:#9aa3ad}
.qm-submit[disabled]{opacity:.4;pointer-events:none}
select.qm-field{cursor:pointer;padding-right:42px}

/* ---- consult modal ---- */
.cm-overlay{position:fixed;inset:0;z-index:130;display:flex;align-items:center;justify-content:center;padding:24px;overflow-y:auto;background:rgba(14,27,46,.5);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;visibility:hidden;transition:opacity .35s,visibility .35s}
.cm-overlay.open{opacity:1;visibility:visible}
.cm-panel{width:min(900px,100%);margin:auto;overflow:hidden;background:var(--paper);border-radius:24px;box-shadow:0 50px 100px -40px rgba(16,32,46,.6);transform:translateY(22px) scale(.985);opacity:0;transition:transform .4s cubic-bezier(.2,.7,.2,1),opacity .4s;display:grid;grid-template-columns:.8fr 1.2fr}
.cm-overlay.open .cm-panel{transform:none;opacity:1}

.cm-aside{position:relative;padding:34px 30px 30px;background:var(--navy);color:#fff;display:flex;flex-direction:column;overflow:hidden}
.cm-photo{position:relative;border-radius:16px;overflow:hidden;background:linear-gradient(155deg,#31465f,#1a2c42 62%,#243a54);aspect-ratio:4/5;margin-bottom:24px}
.cm-lab{display:block;font-family:var(--disp);text-transform:uppercase;letter-spacing:.16em;font-size:12px;color:var(--slate);margin:0 0 9px}
.cm-seg{display:flex;gap:8px;flex-wrap:wrap}
.cm-seg label{cursor:pointer}
.cm-seg input{position:absolute;opacity:0;width:0;height:0}
.cm-seg span{display:inline-flex;align-items:center;padding:10px 17px;border:1px solid var(--line);border-radius:100px;font-family:Raleway;font-weight:600;font-size:13.5px;color:var(--ink);background:#fff;transition:.2s;white-space:nowrap}
.cm-seg input:checked+span{border-color:var(--blue);background:#EAF2FF;color:var(--blue)}
.cm-seg input:focus-visible+span{outline:2px solid var(--blue);outline-offset:2px}

/* ---- question modal ("Задать вопрос") ---- */
.qm-overlay{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:24px;overflow-y:auto;background:rgba(14,27,46,.5);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}
.qm-overlay.open{opacity:1;visibility:visible}
.qm-panel{width:min(520px,100%);margin:auto;background:var(--paper);border-radius:22px;padding:clamp(26px,4vw,38px);box-shadow:0 50px 100px -40px rgba(16,32,46,.6);transform:translateY(22px) scale(.98);opacity:0;transition:transform .4s cubic-bezier(.2,.7,.2,1),opacity .4s}
.qm-overlay.open .qm-panel{transform:none;opacity:1}

/* ============================================================
   Классы ниже — механический перенос инлайн-style с элементов
   общих блоков (шапка/мобильное меню/sticky-cta/футер/обе модалки).
   !important — намеренно: инлайн-style в оригинале всегда побеждал
   по специфичности любой class-стиль на том же элементе; чтобы при
   переносе в класс визуально ничего не сдвинулось и не переопределилось
   в обратную сторону — используется !important на каждом свойстве.
   ============================================================ */
.b1{display:flex!important;align-items:center!important;gap:28px!important}
.b2{flex:none!important;display:flex!important}
.b3{height:26px!important;width:auto!important}
.b4{display:flex!important;justify-content:center!important;gap:26px!important;flex:1!important;font-size:14px!important;font-weight:500!important}
.b5{display:flex!important;align-items:center!important;gap:20px!important;flex:none!important}
.b6{font-family:var(--disp)!important;letter-spacing:.06em!important;font-size:17px!important;white-space:nowrap!important}
.b7{display:inline-flex!important;align-items:center!important;gap:10px!important;border:1px solid var(--blue)!important;background:var(--blue)!important;color:#fff!important;border-radius:100px!important;padding:12px 22px!important;font-family:Raleway!important;font-weight:600!important;font-size:13px!important;letter-spacing:.04em!important;text-transform:uppercase!important;transition:.25s!important}
.b8{width:20px!important;height:20px!important;border-radius:50%!important;background:rgba(255,255,255,.22)!important;display:grid!important;place-items:center!important;font-size:11px!important}
.b9{width:44px!important;height:44px!important;border:1px solid var(--line)!important;border-radius:50%!important;display:none;place-items:center!important;background:#fff!important;cursor:pointer!important;flex:none!important;align-items:center!important;justify-content:center!important}
.b10{display:flex!important;flex-direction:column!important;gap:4px!important}
.b11{width:16px!important;height:1.6px!important;background:var(--ink)!important;display:block!important}
.b12{display:flex!important;align-items:center!important;justify-content:space-between!important}
.b13{height:24px!important;width:auto!important;filter:brightness(0) invert(1)!important}
.b14{width:46px!important;height:46px!important;border-radius:50%!important;border:1px solid rgba(255,255,255,.2)!important;display:grid!important;place-items:center!important;color:#fff!important;font-size:22px!important;cursor:pointer!important}
.b15{flex:1!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:36px!important;text-align:center!important}
.b16{display:flex!important;flex-direction:column!important;align-items:stretch!important;width:max-content!important;margin:0 auto!important}
.b17{color:#fff!important;font-family:var(--disp)!important;text-transform:uppercase!important;letter-spacing:.03em!important;font-size:27px!important;line-height:1!important;padding:14px 34px!important;border-bottom:1px solid rgba(255,255,255,.12)!important}
.b17-last{color:#fff!important;font-family:var(--disp)!important;text-transform:uppercase!important;letter-spacing:.03em!important;font-size:27px!important;line-height:1!important;padding:14px 34px!important}
.b18{display:flex!important;flex-direction:column!important;align-items:center!important;gap:6px!important}
.b19{color:#fff!important;font-family:var(--disp)!important;letter-spacing:.06em!important;font-size:34px!important;line-height:1!important}
.b20{font-size:13px!important;color:rgba(255,255,255,.55)!important;letter-spacing:.02em!important}
.b21{font-size:13.5px!important;color:rgba(255,255,255,.7)!important}
.b22{display:flex!important;gap:14px!important;justify-content:center!important}
.b23{width:48px!important;height:48px!important;border-radius:50%!important;border:1px solid rgba(255,255,255,.2)!important;display:grid!important;place-items:center!important;color:#fff!important}
.b24{position:fixed!important;left:0!important;right:0!important;bottom:0!important;z-index:55!important;gap:12px!important;padding:11px 16px calc(11px + env(safe-area-inset-bottom))!important;background:#fff!important;border-top:1px solid var(--line)!important;box-shadow:0 -12px 30px -14px rgba(16,32,46,.28)!important}
.b25{flex:none!important;width:52px!important;height:52px!important;border-radius:50%!important;border:1px solid var(--line)!important;display:grid!important;place-items:center!important;color:var(--ink)!important}
.b26{flex:1!important;min-width:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;border:1px solid var(--blue)!important;background:var(--blue)!important;color:#fff!important;border-radius:100px!important;padding:16px 20px!important;font-family:Raleway!important;font-weight:600!important;font-size:15px!important;letter-spacing:.04em!important;text-transform:uppercase!important}
.b27{flex:none!important;width:22px!important;height:22px!important;border-radius:50%!important;background:rgba(255,255,255,.22)!important;display:grid!important;place-items:center!important;font-size:12px!important}
/* footer */
footer{background:var(--navy);color:#fff}
.b30{padding-top:72px!important;padding-bottom:40px!important}
.b31{display:grid!important;grid-template-columns:1.6fr 1fr 1fr 1fr 1.3fr!important;gap:32px!important;padding-bottom:40px!important;border-bottom:1px solid rgba(255,255,255,.1)!important}
.b32{height:24px!important;width:auto!important;filter:brightness(0) invert(1)!important;margin-bottom:18px!important}
.b33{font-size:13.5px!important;line-height:1.6!important;margin:0!important;color:rgba(255,255,255,.6)!important;max-width:260px!important}
.b34{font-family:var(--disp)!important;letter-spacing:.08em!important;text-transform:uppercase!important;font-size:14px!important;color:#fff!important;margin:0 0 16px!important}
.b35{display:block!important;font-size:13.5px!important;padding:5px 0!important;color:rgba(255,255,255,.7)!important}
.b36{display:block!important;font-size:14px!important;color:#fff!important;padding:4px 0!important}
.b37{display:block!important;font-size:13px!important;color:rgba(255,255,255,.6)!important;padding:4px 0!important}
.b38{display:flex!important;gap:10px!important;margin-top:16px!important}
.b39{width:40px!important;height:40px!important;border-radius:50%!important;background:rgba(255,255,255,.08)!important;display:grid!important;place-items:center!important;color:#fff!important;transition:.25s!important}
.b39:hover{background:var(--blue)!important}
.b40{display:none;gap:12px!important;padding-top:28px!important}
.b41{width:44px!important;height:44px!important;border-radius:50%!important;background:rgba(255,255,255,.08)!important;display:grid!important;place-items:center!important;color:#fff!important}
.b42{display:flex!important;justify-content:space-between!important;flex-wrap:wrap!important;gap:12px!important;padding-top:24px!important;font-size:12.5px!important;color:rgba(255,255,255,.5)!important}
.b43{color:rgba(255,255,255,.5)!important}
/* consult modal */
.b50{position:absolute!important;inset:0!important;background:radial-gradient(120% 80% at 30% 12%,rgba(255,255,255,.16),transparent 60%)!important}
.b51{margin-top:auto!important}
.b52{font-family:var(--disp)!important;text-transform:uppercase!important;letter-spacing:.02em!important;font-size:22px!important;line-height:1.08!important;color:#fff!important}
.b53{font-size:13px!important;line-height:1.55!important;color:rgba(255,255,255,.62)!important;margin:14px 0 20px!important}
.b54{display:block!important;font-family:var(--disp)!important;letter-spacing:.05em!important;font-size:19px!important;color:#fff!important;margin-bottom:12px!important}
.b55{display:flex!important;gap:9px!important}
.b56{width:40px!important;height:40px!important;border-radius:50%!important;background:rgba(255,255,255,.08)!important;display:grid!important;place-items:center!important;color:#fff!important;transition:.25s!important}
.b56:hover{background:var(--blue)!important}
.b57{padding:clamp(26px,3.4vw,40px)!important;position:relative!important}
.b58{position:absolute!important;top:18px!important;right:18px!important;flex:none!important;width:44px!important;height:44px!important;border-radius:50%!important;border:1px solid var(--line)!important;background:#fff!important;display:grid!important;place-items:center!important;color:var(--ink)!important;font-size:20px!important;cursor:pointer!important;z-index:2!important}
.b59{margin-top:10px!important;font-size:clamp(28px,3.6vw,40px)!important}
.b60{font-size:14.5px!important;color:var(--slate)!important;margin:14px 0 22px!important;line-height:1.55!important;max-width:400px!important}
.b61{display:flex!important;flex-direction:column!important;gap:16px!important}
.b63{display:flex!important;align-items:flex-start!important;gap:11px!important;cursor:pointer!important;font-size:13px!important;color:var(--slate)!important;line-height:1.45!important;margin-top:2px!important}
.b64{flex:none!important;width:18px!important;height:18px!important;margin-top:1px!important;accent-color:var(--blue)!important;cursor:pointer!important}
.b65{margin-top:4px!important;align-self:flex-start!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:12px!important;border:1px solid var(--blue)!important;background:var(--blue)!important;color:#fff!important;border-radius:100px!important;padding:16px 30px!important;font-family:Raleway!important;font-weight:600!important;font-size:14px!important;letter-spacing:.03em!important;cursor:pointer!important;transition:opacity .25s,background .25s!important}
.b66{display:none;text-align:center!important;padding:44px 10px 30px!important}
.b67{display:inline-grid!important;place-items:center!important;width:66px!important;height:66px!important;border-radius:50%!important;background:#EAF2FF!important;color:var(--blue)!important;margin-bottom:18px!important}
.b68{font-family:var(--disp)!important;text-transform:uppercase!important;letter-spacing:.02em!important;font-size:28px!important;color:var(--ink)!important;line-height:1.05!important}
.b69{font-size:15px!important;color:var(--slate)!important;margin:12px auto 24px!important;max-width:320px!important}
.b70{display:inline-flex!important;align-items:center!important;gap:10px!important;border:1px solid var(--line)!important;background:transparent!important;color:var(--ink)!important;border-radius:100px!important;padding:14px 26px!important;font-family:Raleway!important;font-weight:600!important;font-size:14px!important;letter-spacing:.03em!important;cursor:pointer!important;transition:.25s!important}
/* question modal */
.b80{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:20px!important}
.b81{margin-top:10px!important;font-size:clamp(30px,4vw,42px)!important}
.b82{margin-top:22px!important}
.b83{font-size:14.5px!important;color:var(--slate)!important;margin:0 0 20px!important;line-height:1.5!important}
.b84{display:flex!important;flex-direction:column!important;gap:14px!important}
.b85{resize:vertical!important;min-height:104px!important}
.b86{margin-top:6px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:12px!important;border:1px solid var(--blue)!important;background:var(--blue)!important;color:#fff!important;border-radius:100px!important;padding:16px 26px!important;font-family:Raleway!important;font-weight:600!important;font-size:14px!important;letter-spacing:.03em!important;cursor:pointer!important;transition:opacity .25s,background .25s!important}
.b87{display:none;text-align:center!important;padding:28px 10px 12px!important}
.b88{font-size:15px!important;color:var(--slate)!important;margin:12px 0 24px!important}

@media(min-width:900px){html.cc-on,html.cc-on *{cursor:none!important}}
@media(max-width:899px){#ccWrap{display:none!important}}
@media(max-width:900px){.wrap{padding:0 24px}}
@media(max-width:640px){.wrap{padding:0 20px}}
@media(max-width:900px){.wm{font-size:18vw}}
@media(max-width:640px){.wm{display:none!important}}
@media(max-width:640px){.doc-railwrap::after{width:52px!important}}
@media(max-width:640px){#siteHeader{padding:12px 14px 0}#siteHeader .cap{padding:8px 16px}#siteHeader .cap::after{left:16px;right:16px}#siteHeader .logo{height:20px}}
@media(max-width:1150px){
  .desknav,.deskphone,.header-cta{display:none!important}
  .mobonly{display:flex!important}
  #siteHeader .wrap{justify-content:space-between}
}
@media(max-width:640px){
  .footer-top{grid-template-columns:1fr 1fr!important;gap:30px 20px!important;padding-bottom:32px!important}
  .footer-top>div:first-child{grid-column:1/-1!important}
  .footer-social-desk{display:none!important}
  .footer-social-mob{display:flex!important}
  .foot-copy{display:none!important}
  .footer-bottom{gap:8px 16px!important}
  .dev-link{display:inline!important}
  .sticky-cta{display:flex!important}
  body{padding-bottom:96px}
}
@media(prefers-reduced-motion:reduce){
  .spin{animation:none!important}
  .reveal,.has-js .reveal{transition:none;opacity:1;transform:none}
  .mobile-menu{clip-path:none!important}
  #siteHeader{transition:none!important}
}
@media(prefers-reduced-motion:reduce){.cm-panel,.cm-overlay{transition:opacity .25s}}
@media(max-width:760px){.cm-panel{grid-template-columns:1fr}.cm-aside{padding:26px 22px}.cm-photo{display:none}}
@media(prefers-reduced-motion:reduce){.qm-panel{transition:opacity .25s}}
