/* Шрифты подключены локально (без Google Fonts): быстрее и без передачи данных посетителей третьим лицам */
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:300;font-display:swap;src:url(../fonts/cormorant-garamond-cyrillic-300-italic.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:300;font-display:swap;src:url(../fonts/cormorant-garamond-cyrillic-300-normal.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:italic;font-weight:400;font-display:swap;src:url(../fonts/cormorant-garamond-cyrillic-400-italic.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:400;font-display:swap;src:url(../fonts/cormorant-garamond-cyrillic-400-normal.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:italic;font-weight:500;font-display:swap;src:url(../fonts/cormorant-garamond-cyrillic-500-italic.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-cyrillic-500-normal.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:italic;font-weight:600;font-display:swap;src:url(../fonts/cormorant-garamond-cyrillic-600-italic.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-cyrillic-600-normal.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:italic;font-weight:300;font-display:swap;src:url(../fonts/cormorant-garamond-latin-300-italic.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,U+20BD}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/cormorant-garamond-latin-300-normal.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,U+20BD}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url(../fonts/cormorant-garamond-latin-400-italic.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,U+20BD}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/cormorant-garamond-latin-400-normal.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,U+20BD}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url(../fonts/cormorant-garamond-latin-500-italic.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,U+20BD}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/cormorant-garamond-latin-500-normal.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,U+20BD}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:600;font-display:swap;src:url(../fonts/cormorant-garamond-latin-600-italic.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,U+20BD}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/cormorant-garamond-latin-600-normal.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,U+20BD}
@font-face{font-family:'Manrope';font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/manrope-cyrillic-300-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/manrope-cyrillic-400-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Manrope';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/manrope-cyrillic-500-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/manrope-cyrillic-600-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/manrope-cyrillic-700-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Manrope';font-style:normal;font-weight:300;font-display:swap;src:url(../fonts/manrope-latin-300-normal.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,U+20BD}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/manrope-latin-400-normal.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,U+20BD}
@font-face{font-family:'Manrope';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/manrope-latin-500-normal.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,U+20BD}
@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/manrope-latin-600-normal.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,U+20BD}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/manrope-latin-700-normal.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,U+20BD}
@font-face{font-family:'Manrope';font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/manrope-cyrillic-800-normal.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Manrope';font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/manrope-latin-800-normal.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,U+20BD}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/cormorant-garamond-cyrillic-700-normal.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:700;font-display:swap;src:url(../fonts/cormorant-garamond-latin-700-normal.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,U+20BD}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:700;font-display:swap;src:url(../fonts/cormorant-garamond-cyrillic-700-italic.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:italic;font-weight:700;font-display:swap;src:url(../fonts/cormorant-garamond-latin-700-italic.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,U+20BD}


/* ============================================================
   ДИЗАЙН-СИСТЕМА — Стоматология Янины Дорофеевой
   ============================================================ */
:root{
  /* Палитра: премиальная сливово-лавандовая, взята из логотипа #544055 */
  --ink:        #241c29;
  --plum:       #544055;
  --plum-2:     #6b5570;
  --violet:     #6e4f86;
  --violet-dp:  #46315a;
  --lav-50:     #faf7fb;
  --lav-100:    #f2ecf5;
  --lav-200:    #e6dcec;
  --lav-300:    #d3c4dd;
  --clay:       #b9805f;
  --clay-soft:  #f0dfd2;
  --bone:       #fcfbfb;
  --paper:      #ffffff;
  --text:       #3b3341;
  --muted:      #7d7484;
  --line:       #e9e2ee;

  --serif: "Cormorant Garamond", "Times New Roman", Georgia, serif;
  --sans:  "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;

  --r-s: 12px; --r-m: 20px; --r-l: 28px; --r-xl: 40px;
  --shadow-s: 0 2px 10px rgba(84,64,85,.05);
  --shadow-m: 0 12px 40px -18px rgba(84,64,85,.28);
  --shadow-l: 0 40px 90px -40px rgba(84,64,85,.35);
  --wrap: 1240px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%}
body{
  margin:0; background:var(--bone); color:var(--text);
  font-family:var(--sans); font-size:17px; line-height:1.65;
  font-weight:400; letter-spacing:.005em;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img,svg,video{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
button{font:inherit; cursor:pointer; border:0; background:none; color:inherit}
[hidden]{display:none!important}

h1,h2,h3,h4{font-family:var(--serif); font-weight:400; color:var(--ink); margin:0; letter-spacing:-.01em; line-height:1.12}
h1{font-size:clamp(2.5rem,6vw,4.6rem)}
h2{font-size:clamp(2rem,4.2vw,3.35rem)}
h3{font-size:clamp(1.3rem,2.1vw,1.7rem); line-height:1.25}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}

.wrap{width:min(100% - 40px, var(--wrap)); margin-inline:auto}
.wrap-n{width:min(100% - 40px, 960px); margin-inline:auto}
section{position:relative}
.sec{padding:clamp(48px,4.6vw,72px) 0}
.sec-tight{padding:clamp(34px,3.2vw,50px) 0}
/* секции с собственным фоном — просторнее внутри полосы */
.consult,.founder,.stories,.docs,.tech,.path,.contacts,#voprosy{
  padding-block:clamp(64px,6vw,100px);
}

/* --- служебные --- */
.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-size:.72rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  color:var(--violet); margin-bottom:22px;
}
.eyebrow::before{content:""; width:28px; height:1px; background:var(--clay); flex:none}
.lead{font-size:clamp(1.05rem,1.5vw,1.22rem); color:var(--muted); line-height:1.7; max-width:62ch}
.muted{color:var(--muted)}
.serif-accent{font-family:var(--serif); font-style:italic; color:var(--plum)}
.hl{color:var(--violet)}

/* --- кнопки --- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:16px 30px; border-radius:100px; font-size:.95rem; font-weight:600;
  letter-spacing:.01em; transition:.4s var(--ease); position:relative; overflow:hidden;
  text-align:center;
}
.btn-primary{background:var(--violet); color:#fff; box-shadow:0 10px 30px -12px rgba(110,79,134,.7)}
.btn-primary:hover{background:var(--violet-dp); transform:translateY(-2px); box-shadow:0 18px 40px -14px rgba(110,79,134,.75)}
.btn-ghost{border:1px solid var(--lav-300); color:var(--plum); background:rgba(255,255,255,.6)}
.btn-ghost:hover{border-color:var(--violet); color:var(--violet); background:#fff}
.btn-light{background:#fff; color:var(--violet)}
.btn-light:hover{transform:translateY(-2px)}
.btn svg{flex:none}

/* ============================================================
   ШАПКА
   ============================================================ */
.topbar{
  background:var(--plum); color:rgba(255,255,255,.85);
  font-size:.8rem; letter-spacing:.02em;
}
.topbar .wrap{display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:38px; flex-wrap:wrap}
.topbar a:hover{color:#fff}
.topbar-l{display:flex; gap:22px; align-items:center}
.topbar-r{display:flex; gap:18px; align-items:center}

.hdr{
  position:sticky; top:0; z-index:200;
  background:rgba(252,251,251,.86); backdrop-filter:blur(18px) saturate(1.4);
  border-bottom:1px solid transparent; transition:.35s var(--ease);
}
.hdr.stuck{border-bottom-color:var(--line); background:rgba(252,251,251,.95); box-shadow:0 8px 30px -22px rgba(84,64,85,.5)}
.hdr .wrap{display:flex; align-items:center; justify-content:space-between; gap:24px; padding:14px 0; transition:padding .35s var(--ease)}
.hdr.stuck .wrap{padding:9px 0}

.brand{display:flex; align-items:center; gap:14px; flex:none}
.brand-mark{width:46px; height:46px; color:var(--plum); transition:.35s var(--ease); flex:none}
.hdr.stuck .brand-mark{width:38px; height:38px}
.brand-txt{line-height:1.15}
.brand-txt span{display:block; font-size:.63rem; letter-spacing:.19em; text-transform:uppercase; color:var(--muted); margin-bottom:1px}
.brand-txt b{display:block; font-family:var(--serif); font-size:1.16rem; font-weight:500; color:var(--ink); letter-spacing:.01em}

.nav{display:flex; align-items:center; gap:4px}
.nav > li{position:relative; list-style:none}
.nav a.nav-l{
  display:flex; align-items:center; gap:5px; padding:10px 11px; border-radius:10px;
  font-size:.88rem; font-weight:500; color:var(--text); white-space:nowrap;
  transition:.25s var(--ease);
}
.nav a.nav-l:hover{color:var(--violet); background:var(--lav-100)}
.nav ul{list-style:none; margin:0; padding:0}
.chev{width:9px; height:9px; opacity:.5; transition:.3s}
.nav li:hover .chev{transform:rotate(180deg); opacity:1}

.drop{
  position:absolute; top:calc(100% + 8px); left:50%; transform:translate(-50%,8px);
  background:#fff; border:1px solid var(--line); border-radius:var(--r-m);
  box-shadow:var(--shadow-l); padding:10px; min-width:290px;
  opacity:0; visibility:hidden; transition:.3s var(--ease);
}
.nav li:hover .drop{opacity:1; visibility:visible; transform:translate(-50%,0)}
.drop.wide{min-width:520px; display:grid; grid-template-columns:1fr 1fr; gap:2px}
.drop a{display:block; padding:9px 14px; border-radius:9px; font-size:.87rem; color:var(--text); transition:.2s}
.drop a:hover{background:var(--lav-100); color:var(--violet)}

.hdr-cta{display:flex; align-items:center; gap:14px; flex:none}
.hdr-phone{font-family:var(--serif); font-size:1.15rem; color:var(--ink); white-space:nowrap}
.hdr-phone:hover{color:var(--violet)}
.burger{display:none; width:44px; height:44px; border-radius:12px; align-items:center; justify-content:center; border:1px solid var(--line)}
.burger span{display:block; width:19px; height:1.5px; background:var(--ink); position:relative; transition:.3s}
.burger span::before,.burger span::after{content:""; position:absolute; left:0; width:19px; height:1.5px; background:var(--ink); transition:.3s}
.burger span::before{top:-6px} .burger span::after{top:6px}
body.menu-open .burger span{background:transparent}
body.menu-open .burger span::before{top:0; transform:rotate(45deg)}
body.menu-open .burger span::after{top:0; transform:rotate(-45deg)}

/* мобильное меню */
.mnav{
  position:fixed; inset:0; z-index:190; background:var(--bone);
  padding:96px 0 40px; overflow-y:auto;
  opacity:0; visibility:hidden; transform:translateY(-12px); transition:.4s var(--ease);
}
body.menu-open .mnav{opacity:1; visibility:visible; transform:none}
.mnav h4{font-size:.72rem; font-family:var(--sans); font-weight:600; letter-spacing:.15em; text-transform:uppercase; color:var(--violet); margin:26px 0 10px}
.mnav a{display:block; padding:11px 0; border-bottom:1px solid var(--line); font-size:1.02rem}
.mnav .mnav-top a{font-family:var(--serif); font-size:1.5rem; padding:13px 0}

/* ============================================================
   ПЕРВЫЙ ЭКРАН
   ============================================================ */
.hero{position:relative; overflow:hidden; padding:clamp(36px,4vw,60px) 0 clamp(44px,4.6vw,76px)}
.hero::before{
  content:""; position:absolute; top:-320px; right:-260px; width:900px; height:900px;
  background:radial-gradient(circle at 50% 50%, rgba(211,196,221,.55), rgba(211,196,221,0) 62%);
  pointer-events:none;
}
.hero::after{
  content:""; position:absolute; bottom:-200px; left:-220px; width:640px; height:640px;
  background:radial-gradient(circle at 50% 50%, rgba(240,223,210,.5), rgba(240,223,210,0) 65%);
  pointer-events:none;
}
.hero .wrap{position:relative; z-index:2}
.hero-grid{display:grid; grid-template-columns:1.06fr .94fr; gap:clamp(30px,5vw,76px); align-items:center}

.hero h1{margin-bottom:26px}
.hero h1 .ln{display:block; overflow:hidden}
.hero h1 .ln > span{display:block; transform:translateY(105%); opacity:0; animation:riseIn 1s var(--ease) forwards}
.hero h1 .ln:nth-child(1) > span{animation-delay:.12s}
.hero h1 .ln:nth-child(2) > span{animation-delay:.24s}
.hero h1 .ln:nth-child(3) > span{animation-delay:.36s}
@keyframes riseIn{to{transform:none; opacity:1}}

.hero-sub{font-size:clamp(1.02rem,1.4vw,1.16rem); color:var(--muted); max-width:54ch; margin-bottom:34px; opacity:0; animation:fadeUp .9s var(--ease) .55s forwards}
.hero-acts{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:38px; opacity:0; animation:fadeUp .9s var(--ease) .68s forwards}
@keyframes fadeUp{from{opacity:0; transform:translateY(18px)} to{opacity:1; transform:none}}

.hero-tags{display:flex; flex-wrap:wrap; gap:10px 8px; opacity:0; animation:fadeUp .9s var(--ease) .82s forwards}
.hero-tags li{
  list-style:none; font-size:.79rem; font-weight:500; letter-spacing:.02em;
  padding:7px 15px; border-radius:100px; background:rgba(255,255,255,.75);
  border:1px solid var(--lav-200); color:var(--plum-2); backdrop-filter:blur(6px);
}

.hero-media{position:relative; opacity:0; animation:fadeUp 1.1s var(--ease) .3s forwards}
.hero-photo{
  position:relative; aspect-ratio:4/5; border-radius:300px 300px var(--r-l) var(--r-l);
  overflow:hidden; box-shadow:var(--shadow-l);
}
.hero-photo img{width:100%; height:100%; object-fit:cover; animation:kb 26s ease-in-out infinite alternate}
.doc-quote{font-family:var(--serif); font-style:italic; font-size:.99rem; color:var(--plum); line-height:1.5; border-left:2px solid var(--clay-soft); padding-left:14px; margin:0 0 18px}
.doc-edu{font-size:.78rem; color:var(--muted); line-height:1.5; margin-bottom:16px}
.doc-more{display:flex; align-items:center; justify-content:center; text-align:center; background:var(--lav-100); border:1px dashed var(--lav-300); border-radius:var(--r-l); padding:34px; transition:.4s var(--ease)}
.doc-more:hover{background:var(--lav-200); border-color:var(--violet)}
.doc-more b{display:block; font-family:var(--serif); font-size:1.5rem; color:var(--ink); margin-bottom:8px}
.doc-more span{font-size:.88rem; color:var(--muted)}
@keyframes kb{from{transform:scale(1)} to{transform:scale(1.07)}}
.hero-sign{
  position:absolute; left:-58px; bottom:-24px; background:#fff; border-radius:var(--r-m);
  padding:20px 24px; box-shadow:var(--shadow-l); max-width:280px; border:1px solid var(--line);
}
.hero-sign p{font-family:var(--serif); font-style:italic; font-size:1.12rem; color:var(--ink); line-height:1.4; margin-bottom:10px}
.hero-sign small{display:block; font-size:.74rem; color:var(--muted); line-height:1.45}
.hero-badge{
  position:absolute; right:-18px; top:38px; background:var(--plum); color:#fff;
  border-radius:100px; padding:11px 20px; font-size:.78rem; font-weight:600; letter-spacing:.03em;
  box-shadow:var(--shadow-m);
}

/* --- плейсхолдер изображения --- */
.ph{
  position:relative; background:
    linear-gradient(135deg, var(--lav-100), var(--clay-soft) 130%);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:26px; gap:12px; color:var(--plum-2); overflow:hidden;
}
.ph::after{
  content:""; position:absolute; inset:0;
  background:repeating-linear-gradient(45deg, rgba(255,255,255,.5) 0 2px, transparent 2px 12px);
  opacity:.35;
}
.ph svg{width:56px; height:56px; opacity:.3; position:relative; z-index:1}
.ph b{position:relative; z-index:1; font-family:var(--sans); font-size:.76rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase}
.ph span{position:relative; z-index:1; font-size:.8rem; line-height:1.45; max-width:26ch; color:var(--plum-2); opacity:.85}


/* ============================================================
   ИНЖЕНЕРНЫЕ СФЕРЫ — маршрут пациента и этапы консультации
   ============================================================ */
.precision-route, .precision-route *{box-sizing:border-box}
.precision-route{
  position:relative; overflow:hidden; color:var(--text); font-family:var(--sans);
  background:radial-gradient(circle at 18% 0%, rgba(242,236,245,.82), transparent 32rem),
             linear-gradient(180deg, var(--paper), var(--bone));
  border:1px solid var(--line); border-radius:var(--r-l); isolation:isolate;
}
.precision-route::before{
  content:""; position:absolute; inset:0; z-index:-1; opacity:.34; pointer-events:none;
  background-image:linear-gradient(rgba(84,64,85,.035) 1px, transparent 1px),
                   linear-gradient(90deg, rgba(84,64,85,.035) 1px, transparent 1px);
  background-size:24px 24px;
  -webkit-mask-image:linear-gradient(to bottom, #000, transparent 72%);
          mask-image:linear-gradient(to bottom, #000, transparent 72%);
}
.precision-route__list{display:grid; grid-template-columns:repeat(5, minmax(0,1fr)); margin:0; padding:0; list-style:none}
.precision-route__item{position:relative; min-width:0; padding:30px 22px 32px; text-align:center}
.precision-route__item + .precision-route__item{border-left:1px solid var(--line)}
.precision-route__title{display:block; margin-top:12px; color:var(--ink); font-size:clamp(.95rem,1.3vw,1.08rem); font-weight:600; line-height:1.3}
.precision-route__copy{display:block; max-width:15rem; margin:8px auto 0; color:var(--muted); font-size:clamp(.76rem,1.05vw,.88rem); line-height:1.55}

.precision-orb{
  --orb-delay:calc(var(--orb-index, 0) * -1.14s);
  position:relative; width:clamp(92px,8vw,116px); aspect-ratio:1; margin-inline:auto;
  color:var(--violet); filter:drop-shadow(0 15px 16px rgba(70,49,90,.16)); transform:translateZ(0);
}
.precision-orb::after{
  content:""; position:absolute; z-index:-1; left:24%; right:24%; bottom:3%; height:10%;
  border-radius:50%; background:rgba(70,49,90,.18); filter:blur(8px);
  animation:orb-shadow 6.8s var(--ease) var(--orb-delay) infinite;
}
.precision-orb__svg{display:block; width:100%; height:100%; overflow:visible}
.precision-orb__float{transform-origin:64px 64px; animation:orb-float 6.8s var(--ease) var(--orb-delay) infinite}
.precision-orb__construction,.precision-orb__axis,.precision-orb__orbit,
.precision-orb__latitude,.precision-orb__longitude,.precision-orb__scan,.precision-orb__tick{
  fill:none; vector-effect:non-scaling-stroke;
}
.precision-orb__construction{stroke:rgba(110,79,134,.3); stroke-width:.75; stroke-dasharray:1.5 3.5}
.precision-orb__axis,.precision-orb__tick{stroke:rgba(84,64,85,.24); stroke-width:.7}
.precision-orb__orbit{
  stroke:rgba(110,79,134,.56); stroke-width:1; stroke-dasharray:2 5;
  transform-box:fill-box; transform-origin:center;
  animation:orb-orbit 18s linear var(--orb-delay) infinite;
}
.precision-orb__core{fill:url(#dorofeeva-orb-core); stroke:rgba(255,255,255,.55); stroke-width:.7; filter:url(#dorofeeva-orb-inner-shadow)}
.precision-orb__latitude,.precision-orb__longitude{stroke:rgba(255,255,255,.24); stroke-width:.65}
.precision-orb__longitude{transform-origin:64px 64px; animation:orb-longitude 10s ease-in-out var(--orb-delay) infinite}
.precision-orb__scan{
  stroke:rgba(255,255,255,.8); stroke-width:1.35; stroke-linecap:round; stroke-dasharray:19 94;
  animation:orb-scan 5.6s ease-in-out var(--orb-delay) infinite;
}
.precision-orb__node{fill:var(--paper); stroke:var(--violet); stroke-width:1; vector-effect:non-scaling-stroke}
.precision-orb__node--pulse{transform-box:fill-box; transform-origin:center; animation:orb-node 3.4s ease-in-out var(--orb-delay) infinite}
.precision-orb__number{
  fill:#fff; font-family:var(--serif); font-size:24px; font-weight:500;
  text-anchor:middle; dominant-baseline:central; paint-order:stroke;
  stroke:rgba(70,49,90,.14); stroke-width:.5px;
}
.precision-orb__datum{fill:rgba(84,64,85,.64); font-family:var(--sans); font-size:5.2px; font-weight:600; letter-spacing:.08em; text-transform:uppercase}
.precision-route__item:hover .precision-orb{filter:drop-shadow(0 18px 20px rgba(70,49,90,.24))}
.precision-route__item:hover .precision-orb__orbit{stroke:rgba(110,79,134,.85)}
.precision-route__item:hover .precision-orb__construction{stroke:rgba(110,79,134,.48)}

@keyframes orb-float{0%,100%{transform:translate3d(0,1px,0) rotate(-.45deg)} 50%{transform:translate3d(0,-5px,0) rotate(.45deg)}}
@keyframes orb-shadow{0%,100%{opacity:.62; transform:scaleX(1)} 50%{opacity:.34; transform:scaleX(.82)}}
@keyframes orb-orbit{to{transform:rotate(360deg)}}
@keyframes orb-longitude{0%,100%{transform:scaleX(1); opacity:.72} 50%{transform:scaleX(.7); opacity:.38}}
@keyframes orb-scan{0%{stroke-dashoffset:0; opacity:.34} 46%,62%{opacity:.9} 100%{stroke-dashoffset:-113; opacity:.34}}
@keyframes orb-node{0%,100%{transform:scale(.82); opacity:.48} 50%{transform:scale(1.4); opacity:1}}

/* сфера внутри шага «С чего начать» */
.step .precision-orb{width:86px; margin:0; filter:drop-shadow(0 12px 14px rgba(70,49,90,.12))}
.step .precision-orb__datum{display:none}

@media (max-width:840px){
  .precision-route{border:0; border-radius:0; background:transparent}
  .precision-route::before{display:none}
  .precision-route__list{position:relative; grid-template-columns:1fr}
  .precision-route__list::before{
    content:""; position:absolute; top:52px; bottom:52px; left:49px; width:1px;
    background:linear-gradient(var(--line), var(--lav-300), var(--line));
  }
  .precision-route__item{
    display:grid; grid-template-columns:98px minmax(0,1fr); grid-template-rows:auto auto;
    column-gap:10px; align-items:center; min-height:118px; padding:7px 0; text-align:left;
  }
  .precision-route__item + .precision-route__item{border-left:0}
  .precision-route .precision-orb{grid-row:1 / span 2; width:84px; margin:0}
  .precision-route__title,.precision-route__copy{max-width:none; margin-inline:0}
  .precision-route__title{grid-column:2; align-self:end; margin-top:0; font-size:.98rem}
  .precision-route__copy{grid-column:2; align-self:start}
}
@media (max-width:520px){
  .precision-orb__datum{display:none}
  .precision-route__copy{font-size:.78rem}
  .step .precision-orb{width:70px}
  .step-n{width:70px; height:70px}
}
@media (prefers-reduced-motion:reduce){
  .precision-orb::after,.precision-orb__float,.precision-orb__orbit,
  .precision-orb__longitude,.precision-orb__scan,.precision-orb__node--pulse{animation:none!important}
}
.precision-orb-defs{position:absolute; width:0; height:0; overflow:hidden}

/* ============================================================
   КАРТОЧКИ «ВЫ ПОПАЛИ ПО АДРЕСУ»
   ============================================================ */
.addr-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:52px}
@media (max-width:980px){.addr-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.addr-grid{grid-template-columns:1fr}}
.addr-card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r-l);
  padding:34px 30px 32px; transition:.45s var(--ease); position:relative; overflow:hidden;
}
.addr-card::before{
  content:""; position:absolute; inset:0; border-radius:inherit;
  background:linear-gradient(160deg, rgba(230,220,236,.6), rgba(255,255,255,0) 55%);
  opacity:0; transition:.45s var(--ease);
}
.addr-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-m); border-color:var(--lav-300)}
.addr-card:hover::before{opacity:1}
.addr-card > *{position:relative; z-index:1}
.addr-ico{width:44px; height:44px; color:var(--violet); margin-bottom:20px}
.addr-card h3{font-size:1.28rem; margin-bottom:12px}
.addr-card p{font-size:.94rem; color:var(--muted); margin:0}

/* ============================================================
   КОМПЛЕКСНАЯ КОНСУЛЬТАЦИЯ
   ============================================================ */
.consult{background:linear-gradient(180deg, var(--lav-50), var(--bone))}
.consult-head{display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(24px,4vw,64px); align-items:end; margin-bottom:60px}
.steps{position:relative; display:grid; gap:0}
.steps-rail{
  position:absolute; left:27px; width:7px; margin-left:-3.5px; border-radius:7px; overflow:hidden;
  background:linear-gradient(180deg, rgba(110,79,134,.05), rgba(110,79,134,.13) 45%, rgba(110,79,134,.05));
  pointer-events:none;
}
.steps-fill{
  position:absolute; inset:0 0 auto 0; height:0; border-radius:7px;
  background:linear-gradient(180deg, rgba(110,79,134,.26), rgba(110,79,134,.12));
  transition:height 1.6s var(--ease);
}
.steps-glow{
  position:absolute; left:0; right:0; height:170px; top:-170px; border-radius:7px;
  background:linear-gradient(180deg, rgba(174,140,200,0), rgba(174,140,200,.55) 45%, rgba(240,223,210,.45) 62%, rgba(174,140,200,0));
  filter:blur(1px); animation:flow 6.5s cubic-bezier(.45,.05,.35,1) infinite;
}
@keyframes flow{
  0%   {transform:translateY(0);    opacity:0}
  12%  {opacity:.9}
  82%  {opacity:.9}
  100% {transform:translateY(var(--rail,600px)); opacity:0}
}
.step{display:flex; align-items:center; gap:22px; padding:9px 0; position:relative}
.step-n{position:relative; flex:none; width:86px; height:86px; z-index:1; display:grid; place-items:center}
.step-n::after{
  content:""; position:absolute; inset:-6%; border-radius:50%; pointer-events:none; z-index:0;
  background:radial-gradient(circle at 50% 50%, rgba(174,140,200,.4), rgba(174,140,200,0) 68%);
  opacity:0; animation:sheen 6.5s ease-in-out infinite;
  animation-delay:calc(var(--i,0) * .42s);
}
@keyframes sheen{0%,58%,100%{opacity:0; transform:scale(.88)} 16%{opacity:1; transform:scale(1.16)} 34%{opacity:0; transform:scale(1)}}
/* последовательная «активация» шагов — концепция сохранена */
.step .precision-orb{filter:drop-shadow(0 12px 14px rgba(70,49,90,.12)); transition:filter .9s var(--ease)}
.step.on .precision-orb{filter:drop-shadow(0 18px 20px rgba(70,49,90,.26))}
.step .precision-orb__orbit{stroke:rgba(110,79,134,.34); transition:stroke .9s var(--ease)}
.step.on .precision-orb__orbit{stroke:rgba(110,79,134,.82)}
.step .precision-orb__construction{transition:stroke .9s var(--ease)}
.step.on .precision-orb__construction{stroke:rgba(110,79,134,.46)}
.step-b{padding-top:0}
.step-b b{display:block; font-size:1rem; color:var(--ink); font-weight:600; margin-bottom:3px}
.step-b span{font-size:.9rem; color:var(--muted)}
.consult-note{
  background:var(--paper); border:1px solid var(--line); border-left:3px solid var(--clay);
  border-radius:0 var(--r-m) var(--r-m) 0; padding:28px 32px; margin-top:34px;
}
.consult-note p{font-family:var(--serif); font-size:clamp(1.25rem,2vw,1.6rem); font-style:italic; color:var(--ink); line-height:1.4}
.consult-card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r-l);
  padding:36px 34px; box-shadow:var(--shadow-m); position:sticky; top:110px;
}
.consult-card h3{margin-bottom:8px}
.price-row{display:flex; align-items:baseline; gap:10px; margin:22px 0 6px}
.price-row b{font-family:var(--serif); font-size:2.6rem; color:var(--ink); font-weight:500}
.price-row span{font-size:.86rem; color:var(--muted)}
.consult-list{list-style:none; padding:0; margin:22px 0 26px; display:grid; gap:11px}
.consult-list li{display:flex; gap:11px; font-size:.9rem; color:var(--text); line-height:1.5}
.consult-list svg{flex:none; width:17px; height:17px; color:var(--violet); margin-top:3px}

/* ============================================================
   ЯНИНА / ФИЛОСОФИЯ
   ============================================================ */
.founder{background:var(--plum); color:rgba(255,255,255,.82); overflow:hidden; position:relative}
.founder::before{
  content:""; position:absolute; top:-30%; left:-10%; width:760px; height:760px;
  background:radial-gradient(circle, rgba(255,255,255,.09), transparent 62%);
}
.founder .wrap{position:relative; z-index:1}
.founder-grid{display:grid; grid-template-columns:.86fr 1.14fr; gap:clamp(30px,5vw,72px); align-items:center}
.founder h2{color:#fff}
.founder .eyebrow{color:var(--clay-soft)}
.founder .eyebrow::before{background:var(--clay-soft)}
.founder-photo{aspect-ratio:3/4; border-radius:var(--r-l); overflow:hidden; box-shadow:var(--shadow-l)}
.founder-photo img{width:100%; height:100%; object-fit:cover}
.quote{
  font-family:var(--serif); font-size:clamp(1.2rem,2vw,1.62rem); line-height:1.5;
  color:#fff; font-style:italic; margin:28px 0 26px; position:relative; padding-left:28px;
}
.quote::before{content:"«"; position:absolute; left:-4px; top:-6px; font-size:3.4rem; color:var(--clay); opacity:.65; line-height:1}
.sign-name{font-size:.94rem; color:#fff; font-weight:600}
.sign-role{font-size:.84rem; color:rgba(255,255,255,.6)}
.founder-facts{display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:22px; margin-top:38px; padding-top:32px; border-top:1px solid rgba(255,255,255,.16)}
.fact b{display:block; font-family:var(--serif); font-size:2.5rem; color:#fff; line-height:1}
.fact span{font-size:.8rem; color:rgba(255,255,255,.6); line-height:1.4; display:block; margin-top:6px}

/* ============================================================
   МЕЖДИСЦИПЛИНАРНАЯ КОМАНДА
   ============================================================ */
.team-scheme{display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,70px); align-items:center}
.team-scheme > *{min-width:0}
.orbit{position:relative; aspect-ratio:1; max-width:min(460px,100%); margin-inline:auto; width:100%}
.team-chips{display:none; flex-wrap:wrap; gap:9px; margin-top:30px}
.team-chips span{font-size:.83rem; font-weight:600; color:var(--plum); background:var(--paper); border:1px solid var(--line); border-radius:100px; padding:9px 16px}
.orbit-ring{position:absolute; inset:0; border:1px dashed var(--lav-300); border-radius:50%; animation:spin 60s linear infinite}
.orbit-ring.r2{inset:16%; border-style:solid; border-color:var(--lav-200); animation-duration:45s; animation-direction:reverse}
@keyframes spin{to{transform:rotate(360deg)}}
.orbit-core{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:41%; aspect-ratio:1; border-radius:50%; background:var(--plum); color:#fff;
  display:grid; place-items:center; text-align:center; padding:18px; box-shadow:var(--shadow-l);
}
.orbit-core b{font-family:var(--serif); font-size:clamp(1.05rem,2vw,1.4rem); line-height:1.15; display:block}
.orbit-core span{font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; opacity:.65; display:block; margin-top:6px}
.orb{
  position:absolute; background:var(--paper); border:1px solid var(--line); border-radius:100px;
  padding:9px 16px; font-size:.8rem; font-weight:600; color:var(--plum); white-space:nowrap;
  box-shadow:var(--shadow-s); transition:.4s var(--ease);
}
.orb:hover{border-color:var(--violet); color:var(--violet); transform:scale(1.06)}
.orb.o1{top:2%; left:50%; transform:translateX(-50%)}
.orb.o1:hover{transform:translateX(-50%) scale(1.06)}
.orb.o2{top:26%; right:-4%}
.orb.o3{bottom:26%; right:-2%}
.orb.o4{bottom:2%; left:50%; transform:translateX(-50%)}
.orb.o4:hover{transform:translateX(-50%) scale(1.06)}
.orb.o5{bottom:26%; left:-4%}
.orb.o6{top:26%; left:-2%}
.key-text{
  background:var(--lav-100); border-radius:var(--r-l); padding:32px 34px; margin-top:30px;
  font-family:var(--serif); font-size:clamp(1.15rem,1.8vw,1.42rem); font-style:italic;
  color:var(--ink); line-height:1.5;
}

/* ============================================================
   ИСТОРИИ ПАЦИЕНТОВ
   ============================================================ */
.stories{background:var(--paper); border-block:1px solid var(--line)}
/* --- слайдер историй: ровно один слайд в кадре --- */
.slider-top{display:flex; align-items:flex-end; justify-content:space-between; gap:24px 32px; flex-wrap:wrap}
.slider-top > div:first-child{flex:1 1 540px; min-width:0}
.slider-top .slider-ctl{padding-bottom:4px}
.slider-ctl{display:flex; align-items:center; gap:14px; flex:none}
.slider-ctl button{
  width:48px; height:48px; border-radius:50%; border:1px solid var(--lav-300); background:var(--paper);
  color:var(--plum); display:grid; place-items:center; transition:.3s var(--ease); flex:none;
}
.slider-ctl button:hover:not(:disabled){background:var(--violet); border-color:var(--violet); color:#fff; transform:translateY(-2px)}
.slider-ctl button:disabled{opacity:.3; cursor:default}
.slider-ctl button:focus-visible{outline:2px solid var(--violet); outline-offset:3px}
.slider-count{font-family:var(--serif); font-size:1.18rem; color:var(--ink); min-width:58px; text-align:center}
.slider-count b{font-weight:500}
.slider-count span{color:var(--muted); font-size:.95rem}
.slider-bottom{display:flex; align-items:center; justify-content:center; gap:22px; margin-top:28px}
.dots{display:flex; gap:9px}
.dots button{width:10px; height:10px; border-radius:50%; background:var(--lav-300); padding:0; border:0; transition:.35s var(--ease)}
.dots button[aria-current="true"]{background:var(--violet); width:30px; border-radius:9px}
.dots button:hover{background:var(--plum-2)}

.story-track{
  display:flex; gap:0; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
  margin-top:40px; scrollbar-width:none; -ms-overflow-style:none; overscroll-behavior-x:contain;
}
.story-track::-webkit-scrollbar{display:none}
.story{flex:0 0 100%; max-width:100%; scroll-snap-align:start; scroll-snap-stop:always}
.story-in{
  display:grid; grid-template-columns:minmax(0,.43fr) minmax(0,.57fr);
  background:var(--bone); border:1px solid var(--line); border-radius:var(--r-l); overflow:hidden;
  height:100%;
}
.story-side{
  background:linear-gradient(158deg, var(--lav-100), var(--clay-soft) 190%);
  padding:30px; display:flex; flex-direction:column; gap:22px; justify-content:center;
}
.story-img{display:grid; place-items:center}
.story-img img{width:100%; height:auto; object-fit:contain; border-radius:var(--r-s); box-shadow:var(--shadow-m)}
.story-b{padding:40px 42px; display:flex; flex-direction:column; justify-content:center}
.story-tag{display:inline-block; font-size:.7rem; font-weight:600; letter-spacing:.11em; text-transform:uppercase; color:var(--clay); margin-bottom:12px}
.story h3{font-size:1.3rem; margin-bottom:14px}
.story dl{margin:0; display:grid; gap:14px; grid-template-columns:1fr}
@media (min-width:900px){
  .story dl{grid-template-columns:162px minmax(0,1fr); gap:16px 26px; align-items:start}
  .story dl dt{padding-top:2px}
}
.story dt{font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--violet)}
.story dd{margin:3px 0 0; font-size:.9rem; color:var(--muted); line-height:1.55}
.story-meta{display:flex; flex-wrap:wrap; gap:16px 30px; padding-top:22px; border-top:1px solid rgba(84,64,85,.16); font-size:.79rem; color:var(--plum-2)}
.story-meta b{color:var(--ink); display:block; font-size:1.34rem; font-family:var(--serif); font-weight:500; line-height:1.1; margin-bottom:3px}

/* ============================================================
   НАПРАВЛЕНИЯ
   ============================================================ */
.dir-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(268px,1fr)); gap:14px; margin-top:46px}
.dir{
  display:flex; flex-direction:column; justify-content:space-between; gap:26px;
  padding:26px 24px; border:1px solid var(--line); border-radius:var(--r-m);
  background:var(--paper); transition:.35s var(--ease); min-height:150px;
}
.dir:hover{border-color:var(--violet); background:var(--lav-50); transform:translateY(-3px)}
.dir b{font-size:1.02rem; font-weight:600; color:var(--ink); line-height:1.3}
.dir small{display:block; font-size:.82rem; color:var(--muted); margin-top:6px; font-weight:400; line-height:1.45}
.dir-arrow{width:30px; height:30px; border-radius:50%; border:1px solid var(--lav-200); display:grid; place-items:center; color:var(--violet); transition:.35s var(--ease); flex:none}
.dir:hover .dir-arrow{background:var(--violet); border-color:var(--violet); color:#fff; transform:translateX(3px)}

/* ============================================================
   ВРАЧИ
   ============================================================ */
.docs{background:linear-gradient(180deg,var(--bone),var(--lav-50))}
.doc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:48px}
@media (max-width:1000px){.doc-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.doc-grid{grid-template-columns:1fr}}
.doc{background:var(--paper); border:1px solid var(--line); border-radius:var(--r-l); overflow:hidden; transition:.42s var(--ease); display:flex; flex-direction:column}
.doc:hover{box-shadow:var(--shadow-m); transform:translateY(-5px); border-color:var(--lav-300)}
.doc-img{aspect-ratio:3/4; position:relative; overflow:hidden}
.doc-img img{width:100%; height:100%; object-fit:cover; transition:.7s var(--ease)}
.doc:hover .doc-img img{transform:scale(1.05)}
.doc-b{padding:24px 24px 26px; flex:1; display:flex; flex-direction:column}
.doc-b h3{font-size:1.16rem; margin-bottom:4px}
.doc-role{font-size:.8rem; color:var(--violet); font-weight:600; letter-spacing:.02em; margin-bottom:16px}
.doc-rows{display:grid; gap:12px; margin-bottom:18px}
.doc-row dt{font-size:.66rem; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:var(--muted)}
.doc-row dd{margin:3px 0 0; font-size:.87rem; line-height:1.5; color:var(--text)}
.doc-link{margin-top:auto; font-size:.84rem; font-weight:600; color:var(--violet); display:inline-flex; align-items:center; gap:7px}
.doc-link:hover{gap:11px}

/* ============================================================
   СЕМЬИ / ДОВЕРИЕ
   ============================================================ */
.trust-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:48px}
@media (max-width:980px){.trust-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.trust-grid{grid-template-columns:1fr}}
.trust{padding:32px 28px; border-radius:var(--r-l); background:var(--paper); border:1px solid var(--line); transition:.4s var(--ease)}
.trust:hover{background:var(--lav-50); border-color:var(--lav-300)}
.trust b{display:block; font-family:var(--serif); font-size:1.32rem; color:var(--ink); margin-bottom:10px}
.trust p{font-size:.9rem; color:var(--muted); margin:0}

/* ============================================================
   ТЕХНОЛОГИИ
   ============================================================ */
.tech{background:var(--ink); color:rgba(255,255,255,.78); position:relative; overflow:hidden}
.tech::before{content:""; position:absolute; inset:0; background:radial-gradient(ellipse at 20% 0%, rgba(110,79,134,.4), transparent 55%)}
.tech .wrap{position:relative; z-index:1}
.tech h2{color:#fff}
.tech .eyebrow{color:var(--lav-300)}
.tech .eyebrow::before{background:var(--clay)}
.tech-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:50px}
@media (max-width:980px){.tech-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.tech-grid{grid-template-columns:1fr}}
.tech-c{padding:30px 28px; border:1px solid rgba(255,255,255,.13); border-radius:var(--r-l); background:rgba(255,255,255,.035); transition:.42s var(--ease)}
.tech-c:hover{background:rgba(255,255,255,.075); border-color:rgba(255,255,255,.26); transform:translateY(-4px)}
.tech-c svg{width:34px; height:34px; color:var(--clay-soft); margin-bottom:18px}
.tech-c b{display:block; font-family:var(--serif); font-size:1.24rem; color:#fff; margin-bottom:9px}
.tech-c p{font-size:.89rem; color:rgba(255,255,255,.62); margin:0}

/* ============================================================
   ОТЗЫВЫ
   ============================================================ */
.rating{
  display:flex; flex-wrap:wrap; align-items:center; gap:16px 34px; margin-top:34px;
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r-l); padding:26px 32px;
}
.rating-score{display:flex; align-items:baseline; gap:12px}
.rating-score b{font-family:var(--serif); font-size:3.1rem; color:var(--ink); line-height:1; font-weight:500}
.rating-score .stars svg{width:17px; height:17px}
.rating-meta{font-size:.87rem; color:var(--muted); line-height:1.5}
.rating-award{
  margin-left:auto; display:flex; align-items:center; gap:11px; font-size:.85rem; color:var(--plum);
  background:var(--lav-50); border:1px solid var(--lav-200); border-radius:100px; padding:10px 20px;
}
.rating-award b{color:var(--ink); font-weight:600}
.story-cap{font-size:.73rem; color:var(--plum-2); opacity:.8; line-height:1.45; margin:0}
.rev-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:46px; align-items:stretch}
@media (max-width:1000px){.rev-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.rev-grid{grid-template-columns:1fr}}
.rev{background:var(--paper); border:1px solid var(--line); border-radius:var(--r-l); padding:30px 28px; display:flex; flex-direction:column; gap:16px}
.stars{display:flex; gap:3px; color:var(--clay)}
.stars svg{width:15px; height:15px}
.rev p{font-size:.93rem; color:var(--text); line-height:1.62; margin:0; flex:1}
.rev footer{display:flex; align-items:center; gap:12px; font-size:.84rem}
.rev-av{width:38px; height:38px; border-radius:50%; background:var(--lav-100); display:grid; place-items:center; font-family:var(--serif); color:var(--violet); font-size:1.05rem; flex:none}
.rev-nm b{display:block; color:var(--ink); font-weight:600}
.rev-nm span{color:var(--muted); font-size:.78rem}

/* ============================================================
   ПУТЬ ПАЦИЕНТА
   ============================================================ */
.path{background:var(--paper); border-block:1px solid var(--line)}
.path-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin-top:50px; border:1px solid var(--line); border-radius:var(--r-l); overflow:hidden}
@media (max-width:980px){.path-grid{grid-template-columns:repeat(2,1fr)}}
.path-i{padding:34px 30px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); transition:.4s var(--ease); position:relative}
.path-i:hover{background:var(--lav-50)}
.path-i b{display:block; font-family:var(--serif); font-size:1.2rem; color:var(--ink); margin-bottom:9px}
.path-i p{font-size:.88rem; color:var(--muted); margin:0}
.path-i i{
  position:absolute; right:22px; top:20px; font-style:normal; font-family:var(--serif);
  font-size:2.6rem; color:var(--lav-200); line-height:1; transition:.4s var(--ease);
}
.path-i:hover i{color:var(--lav-300)}

/* ============================================================
   СТОИМОСТЬ / ЭТАПНОСТЬ
   ============================================================ */
.cost-grid{display:grid; grid-template-columns:1fr 1fr; gap:clamp(26px,4vw,60px); align-items:start; margin-top:20px}
.cost-list{border-top:1px solid var(--line); margin-top:30px}
.cost-i{display:flex; justify-content:space-between; align-items:baseline; gap:18px; padding:17px 0; border-bottom:1px solid var(--line)}
.cost-i span{font-size:.95rem; color:var(--text)}
.cost-i b{font-family:var(--serif); font-size:1.28rem; color:var(--ink); white-space:nowrap; font-weight:500}
.cost-note{margin-top:22px; font-size:.83rem; color:var(--muted)}
.stage-card{background:var(--lav-100); border-radius:var(--r-l); padding:38px 34px}
.stage-card h3{margin-bottom:16px}
.stage-list{list-style:none; padding:0; margin:24px 0 0; display:grid; gap:16px}
.stage-list li{display:flex; gap:14px; align-items:flex-start}
.stage-badge{
  flex:none; width:30px; height:30px; border-radius:50%;
  background:transparent; border:1.5px solid var(--violet); color:var(--violet-dp);
  display:grid; place-items:center; font-family:var(--serif); font-size:1.02rem; font-weight:600;
  line-height:1;
}
.stage-list b{display:block; font-size:.94rem; color:var(--ink); margin-bottom:2px}
.stage-list span{font-size:.86rem; color:var(--muted)}

/* ============================================================
   FAQ
   ============================================================ */
.faq{max-width:900px; margin:46px auto 0}
.faq-i{border-bottom:1px solid var(--line)}
.faq-q{
  width:100%; display:flex; justify-content:space-between; align-items:center; gap:22px;
  padding:24px 4px; text-align:left; font-family:var(--serif); font-size:clamp(1.1rem,1.7vw,1.35rem);
  color:var(--ink); transition:.3s;
}
.faq-q:hover{color:var(--violet)}
.faq-ic{flex:none; width:32px; height:32px; border-radius:50%; border:1px solid var(--lav-200); display:grid; place-items:center; transition:.4s var(--ease); position:relative}
.faq-ic::before,.faq-ic::after{content:""; position:absolute; background:var(--violet); transition:.4s var(--ease)}
.faq-ic::before{width:12px; height:1.5px}
.faq-ic::after{width:1.5px; height:12px}
.faq-i.open .faq-ic{background:var(--violet); border-color:var(--violet)}
.faq-i.open .faq-ic::before,.faq-i.open .faq-ic::after{background:#fff}
.faq-i.open .faq-ic::after{transform:rotate(90deg); opacity:0}
.faq-a{max-height:0; overflow:hidden; transition:max-height .5s var(--ease)}
.faq-a > div{padding:0 60px 26px 4px; font-size:.95rem; color:var(--muted); line-height:1.7}

/* ============================================================
   КОНТАКТЫ / ФОРМА
   ============================================================ */
.contacts{background:linear-gradient(170deg,var(--lav-50),var(--bone))}
/* --- «как нас найти»: панорама + фасад, ресепшен, кабинет --- */
.place{margin-top:40px}
.place figure{margin:0}
.place img{display:block; width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease)}
.place-hero{
  position:relative; border-radius:var(--r-l); overflow:hidden; border:1px solid var(--line);
  box-shadow:var(--shadow-m); aspect-ratio:1857/846;
}
.place-hero::after{
  content:""; position:absolute; inset:0 0 auto 0; height:34%; pointer-events:none;
  background:linear-gradient(to bottom, rgba(36,28,41,.42), transparent);
}
.place-note{
  position:absolute; left:clamp(18px,2.4vw,30px); top:clamp(16px,2.2vw,26px); z-index:2;
  display:flex; align-items:center; gap:11px; color:#fff;
  background:rgba(36,28,41,.42); backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.22); border-radius:100px; padding:10px 20px;
  font-size:.86rem; line-height:1.3;
}
.place-note svg{width:17px; height:17px; flex:none}
.place-note b{font-weight:600}
.place-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:16px}
.place-grid figure{
  border-radius:var(--r-m); overflow:hidden; border:1px solid var(--line);
  background:var(--lav-100); box-shadow:var(--shadow-s);
}
.place-grid .place-img{aspect-ratio:3/2; overflow:hidden}
.place-grid:hover figure:not(:hover) img{opacity:.9}
.place-grid figure:hover img{transform:scale(1.04)}
.place-cap{
  padding:13px 18px 15px; font-size:.83rem; color:var(--muted); line-height:1.4;
  background:var(--paper); border-top:1px solid var(--line);
}
.place-cap b{display:block; color:var(--ink); font-weight:600; font-size:.92rem; margin-bottom:2px}
@media (max-width:860px){
  .place-grid{grid-template-columns:1fr 1fr}
  .place-grid figure:first-child{grid-column:1 / -1}
}
@media (max-width:560px){
  .place-grid{grid-template-columns:1fr}
  .place-grid figure:first-child{grid-column:auto}
  .place-note{font-size:.76rem; padding:8px 15px; gap:8px}
}

.ct-grid{display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,4vw,60px); margin-top:40px}
.ct-info{display:grid; gap:26px; align-content:start}
.ct-i{display:flex; gap:16px}
.ct-i svg{flex:none; width:21px; height:21px; color:var(--violet); margin-top:3px}
.ct-i b{display:block; font-size:.72rem; letter-spacing:.11em; text-transform:uppercase; color:var(--muted); margin-bottom:4px}
.ct-i span,.ct-i a{font-size:1.02rem; color:var(--ink)}
.ct-i a:hover{color:var(--violet)}
.socials{display:flex; gap:10px; margin-top:6px}
.socials a{width:42px; height:42px; border-radius:50%; border:1px solid var(--lav-200); display:grid; place-items:center; color:var(--plum); transition:.3s}
.socials a:hover{background:var(--violet); border-color:var(--violet); color:#fff; transform:translateY(-2px)}
.socials svg{width:18px; height:18px}
.map{border-radius:var(--r-l); overflow:hidden; border:1px solid var(--line); margin-top:10px; aspect-ratio:16/9}
.map iframe{width:100%; height:100%; border:0; display:block}

.form-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--r-l); padding:38px 36px; box-shadow:var(--shadow-m)}
.form-card h3{margin-bottom:8px}
.fld{margin-top:18px}
.fld label{display:block; font-size:.76rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-bottom:7px}
.fld input,.fld textarea,.fld select{
  width:100%; padding:14px 16px; border:1px solid var(--lav-200); border-radius:var(--r-s);
  background:var(--lav-50); font:inherit; font-size:.95rem; color:var(--ink); transition:.3s;
}
.fld input:focus,.fld textarea:focus,.fld select:focus{outline:0; border-color:var(--violet); background:#fff; box-shadow:0 0 0 3px rgba(110,79,134,.1)}
.fld textarea{resize:vertical; min-height:92px}
.consent{display:flex; gap:11px; align-items:flex-start; margin-top:20px; font-size:.78rem; color:var(--muted); line-height:1.5}
.consent input{width:17px; height:17px; flex:none; margin-top:2px; accent-color:var(--violet)}
.consent a{color:var(--violet); text-decoration:underline}
.form-card .btn{width:100%; margin-top:22px}

/* ============================================================
   ПОДВАЛ
   ============================================================ */
.ftr{background:var(--ink); color:rgba(255,255,255,.62); font-size:.87rem; padding:clamp(56px,6vw,86px) 0 0}
.ftr a:hover{color:#fff}
.ftr-top{display:grid; grid-template-columns:1.4fr 1fr 1.9fr; gap:clamp(24px,3vw,48px); padding-bottom:52px; border-bottom:1px solid rgba(255,255,255,.11)}
.ftr-brand .brand-mark{color:#fff; width:56px; height:56px; margin-bottom:18px}
.ftr-brand b{display:block; font-family:var(--serif); font-size:1.32rem; color:#fff; margin-bottom:10px}
.ftr-brand p{font-size:.86rem; line-height:1.6; max-width:34ch}
.ftr h4{font-family:var(--sans); font-size:.72rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:#fff; margin:0 0 18px}
.ftr ul{list-style:none; padding:0; margin:0; display:grid; gap:10px}
.ftr-services ul{display:block; columns:2; column-gap:28px}
.ftr-services li{margin-bottom:10px; break-inside:avoid}
.ftr ul a{font-size:.86rem}
.ftr-legal{padding:34px 0 40px; display:grid; gap:20px}
.ftr-legal-row{display:flex; flex-wrap:wrap; gap:10px 26px; font-size:.79rem}
.ftr-warn{
  border:1px solid rgba(255,255,255,.16); border-radius:var(--r-m); padding:16px 20px;
  font-size:.79rem; color:rgba(255,255,255,.72); line-height:1.55;
}
.ftr-copy{display:flex; flex-wrap:wrap; gap:10px 26px; justify-content:space-between; font-size:.78rem; color:rgba(255,255,255,.42)}

/* --- плавающая кнопка --- */
.fab{
  position:fixed; right:22px; bottom:22px; z-index:150; display:flex; flex-direction:column; gap:10px;
  opacity:0; transform:translateY(14px); transition:.4s var(--ease); pointer-events:none;
}
.fab.on{opacity:1; transform:none; pointer-events:auto}
.fab a{
  width:52px; height:52px; border-radius:50%; display:grid; place-items:center; color:#fff;
  box-shadow:var(--shadow-m); transition:.3s var(--ease);
}
.fab a:hover{transform:scale(1.08)}
.fab .f-wa{background:#25D366}
.fab .f-tg{background:#2AABEE}
.fab .f-up{background:var(--plum)}
.fab svg{width:23px; height:23px}

/* --- анимации появления --- */
[data-rv]{opacity:0; transform:translateY(26px); transition:opacity .85s var(--ease), transform .85s var(--ease)}
[data-rv].rv{opacity:1; transform:none}
[data-rv-d="1"]{transition-delay:.08s} [data-rv-d="2"]{transition-delay:.16s}
[data-rv-d="3"]{transition-delay:.24s} [data-rv-d="4"]{transition-delay:.32s}
[data-rv-d="5"]{transition-delay:.4s}  [data-rv-d="6"]{transition-delay:.48s}

/* ============================================================
   АДАПТИВ
   ============================================================ */
@media (max-width:1080px){
  .story-in{grid-template-columns:1fr}
  .story-side{padding:24px; gap:18px}
  .nav{display:none}
  .burger{display:flex}
  .hdr-phone{display:none}
  .hdr-cta .btn{display:none}
  .hero-grid,.consult-head,.founder-grid,.team-scheme,.cost-grid,.ct-grid{grid-template-columns:1fr}
  .ftr-top{grid-template-columns:1fr 1fr}
  .ftr-services ul{columns:1}
  .consult-card{position:static}
  .founder-photo{max-width:400px; margin-inline:auto}
}
@media (max-width:760px){
  body{font-size:16px}
  .wrap,.wrap-n{width:calc(100% - 32px)}
  .topbar-l{display:none}
  .topbar .wrap{justify-content:center}
  .hero-photo{border-radius:220px 220px var(--r-m) var(--r-m)}
  .hero-sign{position:static; margin-top:-30px; margin-inline:auto; max-width:none}
  .hero-badge{right:8px; top:16px}
  .chain-step{flex:1 1 100%; border-right:0; border-bottom:1px solid var(--line); display:flex; align-items:center; gap:16px; text-align:left; padding:18px 4px}
  .chain-num{margin:0}
  .chain-b{flex:1}
  .orbit{display:none}
  .team-chips{display:flex}
  .path-grid{grid-template-columns:1fr}
  .slider-top{align-items:flex-start}
  .slider-ctl button{width:44px; height:44px}
  .story-b{padding:26px 22px 30px}
  .story-side{padding:18px; gap:16px}
  .story-meta{gap:18px}
  .story-meta b{font-size:1.15rem}
  .dir{flex-direction:row; align-items:center; justify-content:space-between; min-height:0; padding:20px 22px; gap:16px}
  .path-i{border-right:0}
  .ftr-top{grid-template-columns:1fr}
  .form-card,.stage-card,.consult-card{padding:28px 24px}
  .faq-a > div{padding-right:10px}
  .fab{right:14px; bottom:14px}
  .fab a{width:48px; height:48px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important}
  html{scroll-behavior:auto}
  [data-rv]{opacity:1; transform:none}
  .hero h1 .ln > span{transform:none; opacity:1}
  .hero-sub,.hero-acts,.hero-tags,.hero-media{opacity:1}
}
@media print{.hdr,.topbar,.fab,.mnav{display:none}}


/* ============================================================
   ВНУТРЕННИЕ СТРАНИЦЫ — расширение дизайн-системы главной
   ============================================================ */
.sec-head .lead{margin-top:22px}
.sec-head-c{text-align:center}
.sec-head-c .lead{margin-inline:auto}
.sec-head + *{margin-top:clamp(34px,4vw,50px)}
.sec-soft{background:linear-gradient(180deg,var(--lav-50),var(--bone))}
.sec-paper{background:var(--paper); border-block:1px solid var(--line)}
.sec-lav{background:var(--lav-50)}
.sec-faq{background:var(--paper); border-block:1px solid var(--line); padding-block:clamp(64px,6vw,100px)}
.block-note{margin-top:26px; font-size:.86rem; color:var(--muted)}
.block-btn{text-align:center; margin-top:40px}
.btn-wide{width:100%; margin-top:28px}
.hp{position:absolute!important; left:-9999px!important; width:1px; height:1px; overflow:hidden}

/* --- хлебные крошки --- */
.crumbs{padding:18px 0 0; font-size:.8rem; color:var(--muted)}
.crumbs ol{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:4px 0}
.crumbs li{display:flex; align-items:center}
.crumbs li + li::before{content:""; width:5px; height:5px; border-top:1.3px solid var(--lav-300); border-right:1.3px solid var(--lav-300); transform:rotate(45deg); margin:0 12px 0 9px}
.crumbs a{color:var(--plum-2); transition:.25s}
.crumbs a:hover{color:var(--violet)}
.crumbs span[aria-current]{color:var(--muted)}

/* --- первый экран внутренних страниц --- */
.hero-inner{padding-top:clamp(26px,3vw,44px)}
.hero-inner h1,.hero-compact h1{font-size:clamp(2.2rem,4.8vw,3.9rem)}
.hero-eyebrow{opacity:0; animation:fadeUp .8s var(--ease) .05s forwards}
.hero-noimg .hero-grid{grid-template-columns:1fr}
.hero-noimg .hero-txt{max-width:900px}
.hero-compact{padding:clamp(26px,3vw,40px) 0 clamp(30px,3vw,46px)}
.hero-compact .hero-sub{margin-bottom:0}
.hero-compact::before{top:-420px; right:-320px}
.fit-contain .hero-photo{background:radial-gradient(circle at 50% 38%, #fff, var(--lav-100) 62%, var(--lav-200)); border:1px solid var(--line)}
.fit-contain .hero-photo img{object-fit:contain; padding:8% 6% 4%; animation:none}
.hero-inner .hero-photo{aspect-ratio:1/1; border-radius:var(--r-xl); border:1px solid var(--line); background:var(--lav-100)}
.hero-inner.fit-contain .hero-photo,.hero-inner .fit-contain .hero-photo{background:var(--lav-100)}
.hero-inner .fit-contain .hero-photo img{object-fit:cover; padding:0; animation:kb 26s ease-in-out infinite alternate}
@media (max-width:760px){.hero-inner .hero-photo{border-radius:var(--r-l)}}
.hero-price{display:inline-flex; align-items:baseline; gap:12px; margin-top:26px; padding:12px 22px; border-radius:100px; background:#fff; border:1px solid var(--lav-200); opacity:0; animation:fadeUp .9s var(--ease) .9s forwards}
.hero-price span{font-size:.84rem; color:var(--muted)}
.hero-price b{font-family:var(--serif); font-size:1.5rem; color:var(--ink); font-weight:500}
.hero-stats{position:relative; z-index:2; display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:0; margin-top:clamp(34px,4vw,56px); background:var(--paper); border:1px solid var(--line); border-radius:var(--r-l); overflow:hidden; opacity:0; animation:fadeUp .9s var(--ease) .95s forwards}
.hero-stat{padding:22px 26px; border-left:1px solid var(--line)}
.hero-stat:first-child{border-left:0}
.hero-stat b{display:block; font-family:var(--serif); font-size:clamp(1.6rem,2.6vw,2.2rem); color:var(--ink); font-weight:500; line-height:1.1}
.hero-stat span{display:block; font-size:.8rem; color:var(--muted); margin-top:6px; line-height:1.4}

/* --- карточки --- */
.cards-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:52px}
.cards-grid.cols-2{grid-template-columns:repeat(2,1fr)}
.cards-grid.cols-4{grid-template-columns:repeat(4,1fr)}
.sec-head + .cards-grid{margin-top:clamp(34px,4vw,52px)}
@media (max-width:1080px){.cards-grid.cols-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:980px){.cards-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.cards-grid,.cards-grid.cols-2,.cards-grid.cols-4{grid-template-columns:1fr}}
.card-addr{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r-l);
  padding:34px 30px 32px; transition:.45s var(--ease); position:relative; overflow:hidden; display:flex; flex-direction:column;
}
.card-addr::before{content:""; position:absolute; inset:0; border-radius:inherit; background:linear-gradient(160deg, rgba(230,220,236,.6), rgba(255,255,255,0) 55%); opacity:0; transition:.45s var(--ease)}
.card-addr:hover{transform:translateY(-6px); box-shadow:var(--shadow-m); border-color:var(--lav-300)}
.card-addr:hover::before{opacity:1}
.card-addr > *{position:relative; z-index:1}
.card-addr h3{font-size:1.28rem; margin-bottom:12px}
.card-addr p{font-size:.94rem; color:var(--muted); margin:0}
.card-trust{padding:32px 28px; border-radius:var(--r-l); background:var(--paper); border:1px solid var(--line); transition:.4s var(--ease)}
.card-trust:hover{background:var(--lav-50); border-color:var(--lav-300)}
.card-trust h3{font-size:1.32rem; margin-bottom:10px}
.card-trust p{font-size:.9rem; color:var(--muted); margin:0}
.card-tech{padding:30px 28px; border:1px solid rgba(255,255,255,.13); border-radius:var(--r-l); background:rgba(255,255,255,.035); transition:.42s var(--ease)}
.card-tech:hover{background:rgba(255,255,255,.075); border-color:rgba(255,255,255,.26); transform:translateY(-4px)}
.card-tech .addr-ico{width:34px; height:34px; color:var(--clay-soft); margin-bottom:18px}
.card-tech h3{font-size:1.24rem; color:#fff; margin-bottom:9px}
.card-tech p{font-size:.89rem; color:rgba(255,255,255,.62); margin:0}
.tech .lead{color:rgba(255,255,255,.6)}
.tech .serif-accent{color:var(--clay-soft)}
.tech .block-note, .tech .block-note a{color:rgba(255,255,255,.5)}
.card-img{margin:-34px -30px 22px; aspect-ratio:16/10; overflow:hidden; background:var(--lav-100)}
.card-trust .card-img{margin:-32px -28px 22px}
.card-img img{width:100%; height:100%; object-fit:cover; transition:.7s var(--ease)}
.card-addr:hover .card-img img{transform:scale(1.05)}
.card-val{display:block; font-family:var(--serif); font-size:2.3rem; line-height:1; color:var(--violet); margin-bottom:14px}
.card-more{margin-top:auto; padding-top:18px; font-size:.84rem; font-weight:600; color:var(--violet); display:inline-flex; align-items:center; gap:7px; transition:gap .3s}
a.card-addr:hover .card-more{gap:11px}

/* --- этапы без боковой карточки --- */
.steps-solo{max-width:820px}
.consult-head-1{grid-template-columns:1fr; margin-bottom:44px}
.consult-plain{background:none}
.steps-img{margin:0; border-radius:var(--r-l); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-m); position:sticky; top:110px}
.steps-img img{width:100%; height:auto}
.consult-note small{display:block; margin-top:10px; font-size:.84rem; color:var(--muted); font-style:normal; font-family:var(--sans)}

/* --- основатель/врач --- */
.founder-bullets{list-style:none; padding:0; margin:26px 0 0; display:grid; gap:10px}
.founder-bullets li{display:flex; gap:11px; font-size:.94rem; color:rgba(255,255,255,.85)}
.founder-bullets svg{flex:none; width:17px; height:17px; color:var(--clay-soft); margin-top:4px}

/* --- врачи --- */
.doc-img{display:block}
.doc-noimg{display:grid; place-items:center; width:100%; height:100%; background:var(--lav-100); color:var(--lav-300)}
.doc-noimg svg{width:60px; height:60px}
.doc-b h3 a:hover{color:var(--violet)}
.doc-excerpt{font-size:.88rem; color:var(--muted); line-height:1.55; margin-bottom:16px}
.doc-grid-compact .doc-b{padding:20px 22px 22px}
.chips-nav{display:flex; flex-wrap:wrap; gap:8px; margin:30px 0 0}
.chips-nav a{font-size:.84rem; font-weight:500; padding:9px 16px; border-radius:100px; border:1px solid var(--lav-200); background:var(--paper); color:var(--plum-2); transition:.3s var(--ease)}
.chips-nav a:hover{border-color:var(--violet); color:var(--violet)}
.chips-nav a[aria-current]{background:var(--violet); border-color:var(--violet); color:#fff}
.chips-nav + .doc-grid{margin-top:30px}
.rev-doc{font-size:.8rem!important; color:var(--violet)!important; flex:none!important; font-weight:600}
.path-grid.cols-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:980px){.path-grid.cols-4{grid-template-columns:repeat(2,1fr)}}

/* --- «Врач направления» --- */
.docfeat-in{display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(28px,4vw,64px); align-items:center; background:var(--paper); border:1px solid var(--line); border-radius:var(--r-xl); padding:clamp(20px,3vw,40px); box-shadow:var(--shadow-m)}
.docfeat-photo{margin:0; border-radius:var(--r-l); overflow:hidden; aspect-ratio:3/4; background:var(--lav-100)}
.docfeat-photo img{width:100%; height:100%; object-fit:cover}
.docfeat-b h2{font-size:clamp(1.8rem,3.2vw,2.6rem); margin-bottom:8px}
.docfeat-q{font-size:1.18rem; margin:22px 0}
.docfeat-acts{display:flex; flex-wrap:wrap; gap:12px; margin-top:26px}

/* --- текст (визуальный редактор) --- */
.prose{font-size:1.02rem; line-height:1.75; color:var(--text)}
.prose > *:first-child{margin-top:0}
.prose h2{font-size:clamp(1.7rem,3vw,2.3rem); margin:1.6em 0 .6em}
.prose h3{font-size:clamp(1.25rem,2vw,1.5rem); margin:1.5em 0 .5em}
.prose h4{font-family:var(--sans); font-size:1rem; font-weight:700; margin:1.4em 0 .4em}
.prose p{margin:0 0 1.05em}
.prose a{color:var(--violet); text-decoration:underline; text-decoration-color:var(--lav-300); text-underline-offset:3px}
.prose a:hover{text-decoration-color:var(--violet)}
.prose ul,.prose ol{margin:0 0 1.2em; padding-left:1.3em}
.prose li{margin:.35em 0}
.prose ul li::marker{color:var(--clay)}
.prose ol li::marker{color:var(--violet); font-weight:600}
.prose b,.prose strong{color:var(--ink); font-weight:600}
.prose img{border-radius:var(--r-m); height:auto}
.prose figure{margin:1.8em 0}
.prose figcaption{font-size:.82rem; color:var(--muted); margin-top:10px; text-align:center}
.prose blockquote{margin:1.6em 0; padding:18px 24px; border-left:3px solid var(--clay); background:var(--lav-50); border-radius:0 var(--r-m) var(--r-m) 0; font-family:var(--serif); font-style:italic; font-size:1.2rem; color:var(--ink)}
.prose table{width:100%; border-collapse:collapse; margin:1.4em 0; font-size:.92rem; display:block; overflow-x:auto}
.prose th,.prose td{padding:12px 14px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top}
.prose th{font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); font-weight:700; background:var(--lav-50)}
.prose hr{border:0; border-top:1px solid var(--line); margin:2em 0}
.sec-text .prose{max-width:none}

/* компоненты статей */
.prose .callout{margin:1.6em 0; padding:20px 24px; border-radius:var(--r-m); background:linear-gradient(135deg,var(--lav-100),#fff 120%); border:1px solid var(--lav-200)}
.prose .callout .t{display:block; font-family:var(--sans); font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--violet); margin-bottom:8px}
.prose .callout p:last-child{margin:0}
.prose .gold{margin:1.6em 0; padding:20px 24px; border-radius:var(--r-m); background:var(--clay-soft); border:1px solid #e7cdb9}
.prose .a-steps{display:grid; gap:12px; margin:1.6em 0; counter-reset:ast}
.prose .a-step{display:flex; gap:18px; align-items:flex-start; padding:18px 20px; border:1px solid var(--line); border-radius:var(--r-m); background:var(--paper); transition:.35s var(--ease)}
.prose .a-step:hover{border-color:var(--lav-300); box-shadow:var(--shadow-s)}
.prose .a-n{flex:none; width:40px; height:40px; border-radius:50%; border:1.5px solid var(--violet); color:var(--violet-dp); display:grid; place-items:center; font-family:var(--serif); font-size:1.2rem; font-weight:600}
.prose .a-step h3{font-size:1.12rem; margin:6px 0 4px}
.prose .a-step p{font-size:.93rem; color:var(--muted); margin:0}
.prose .quote-card{margin:1.8em 0; padding:26px 28px; border-radius:var(--r-l); background:var(--plum); color:rgba(255,255,255,.85)}
.prose .quote-card blockquote{margin:0 0 18px; padding:0; border:0; background:none; color:#fff; font-size:1.22rem; line-height:1.5}
.prose .quote-card blockquote::before{content:"«"; color:var(--clay); margin-right:2px}
.prose .q-author{display:flex; align-items:center; gap:14px; font-size:.86rem}
.prose .q-author img{width:48px; height:48px; border-radius:50%; object-fit:cover; object-position:top; margin:0}
.prose .q-author b{display:block; color:#fff}
.prose .q-author span{color:rgba(255,255,255,.6)}
.prose .q-author a{margin-left:auto; color:var(--clay-soft); text-decoration:none; font-weight:600; white-space:nowrap}
.prose .compare,.prose .compare-table{margin:1.6em 0}
.prose .compare{display:grid; grid-template-columns:1fr 1fr; gap:14px}
.prose .compare .col{padding:20px 22px; border:1px solid var(--line); border-radius:var(--r-m); background:var(--paper)}
@media (max-width:620px){.prose .compare{grid-template-columns:1fr}}
.prose .col-primary{background:var(--lav-50)}
.prose .videos{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; margin:1.6em 0}
.prose .video-card{display:block; border:1px solid var(--line); border-radius:var(--r-m); overflow:hidden; text-decoration:none; background:var(--paper)}
.prose .video-card img{border-radius:0; width:100%}
.prose .video-card .v-cap{display:block; padding:12px 14px; font-size:.86rem; color:var(--ink)}
.prose .video-card .play{display:none}
.a-slider{position:relative; margin:1.8em 0; border-radius:var(--r-l); overflow:hidden; background:var(--lav-100); border:1px solid var(--line)}
.a-slides{display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none}
.a-slides::-webkit-scrollbar{display:none}
.a-slide{flex:0 0 100%; scroll-snap-align:start; margin:0; position:relative}
.a-slide img{width:100%; aspect-ratio:16/10; object-fit:cover; border-radius:0!important; display:block}
.a-slide figcaption{position:absolute; left:0; right:0; bottom:0; margin:0; padding:36px 22px 16px; text-align:left; color:#fff; font-size:.88rem; background:linear-gradient(transparent, rgba(36,28,41,.72))}
.a-sl-btn{position:absolute; top:50%; transform:translateY(-50%); width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.9); color:var(--plum); display:grid; place-items:center; box-shadow:var(--shadow-m); z-index:2; transition:.3s}
.a-sl-btn:hover{background:var(--violet); color:#fff}
.a-sl-prev{left:14px} .a-sl-next{right:14px}
.a-sl-prev svg{transform:rotate(180deg)}
.a-slider-cap{font-size:.82rem; color:var(--muted); text-align:center; margin:-1.2em 0 1.8em}

/* --- картинка + текст --- */
.split-grid{display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,76px); align-items:center}
.split-grid.rev .split-media{order:2}
.split-media{margin:0; border-radius:var(--r-l); overflow:hidden; box-shadow:var(--shadow-l); background:var(--lav-100); position:relative}
.split-media img{width:100%; height:auto; transition:transform 1.2s var(--ease)}
.split-media:hover img{transform:scale(1.03)}
.split-media figcaption{position:absolute; left:16px; bottom:16px; background:rgba(255,255,255,.92); border-radius:100px; padding:8px 16px; font-size:.8rem; color:var(--plum)}
.points{list-style:none; margin:28px 0 0; padding:0; display:grid; gap:18px}
.points li{display:flex; gap:16px; align-items:flex-start}
.pt-ic{flex:none; width:34px; height:34px; border-radius:50%; background:var(--lav-100); color:var(--violet); display:grid; place-items:center}
.pt-ic svg{width:16px; height:16px}
.points b{display:block; font-size:1rem; color:var(--ink); font-weight:600; margin-bottom:3px}
.points span{font-size:.92rem; color:var(--muted); line-height:1.55}

/* --- цены на странице услуги --- */
.sec-prices{background:linear-gradient(180deg,var(--bone),var(--lav-50))}
.price-group{margin-top:30px}
.price-group-t{font-size:1.4rem; margin-bottom:4px}
.price-group-s{font-size:.86rem}
.price-group .cost-list{margin-top:14px}
.cost-i small{display:block; font-size:.78rem; color:var(--muted); margin-top:3px}
.cost-note a{color:var(--violet); text-decoration:underline}

/* --- вкладки --- */
.tabs-head{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:26px}
.tabs-head button{padding:12px 22px; border-radius:100px; border:1px solid var(--lav-200); background:var(--paper); font-size:.9rem; font-weight:600; color:var(--plum-2); transition:.3s var(--ease)}
.tabs-head button:hover{border-color:var(--violet); color:var(--violet)}
.tabs-head button[aria-selected="true"]{background:var(--violet); border-color:var(--violet); color:#fff; box-shadow:0 10px 26px -14px rgba(110,79,134,.8)}
.tab-pane{display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(24px,4vw,56px); align-items:center; background:var(--paper); border:1px solid var(--line); border-radius:var(--r-l); padding:clamp(24px,3.4vw,44px); animation:fadeUp .6s var(--ease)}
.tab-pane[hidden]{display:none}
.tab-pane h3{font-size:clamp(1.5rem,2.6vw,2rem); margin-bottom:14px}
.tab-img{margin:0; border-radius:var(--r-m); overflow:hidden; background:var(--lav-100)}
.tab-img img{width:100%; height:auto}

/* --- сравнение --- */
.compare-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px}
.cmp{border-radius:var(--r-l); padding:32px 30px; border:1px solid var(--line); background:var(--paper)}
.cmp-r{background:var(--plum); color:rgba(255,255,255,.85); border-color:var(--plum); box-shadow:var(--shadow-l)}
.cmp-label{display:inline-block; font-size:.7rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-bottom:10px}
.cmp-r .cmp-label{color:var(--clay-soft)}
.cmp h3{font-size:1.5rem; margin-bottom:18px}
.cmp-r h3{color:#fff}
.cmp ul{list-style:none; padding:0; margin:0; display:grid; gap:12px}
.cmp li{display:flex; gap:12px; font-size:.95rem}
.cmp svg{flex:none; width:18px; height:18px; margin-top:4px}
.cmp-l svg{color:var(--clay)}
.cmp-r svg{color:var(--clay-soft)}

/* --- цифры --- */
.stats-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); border:1px solid var(--line); border-radius:var(--r-l); background:var(--paper); overflow:hidden}
.stat{padding:28px 26px; border-left:1px solid var(--line)}
.stat:first-child{border-left:0}
.stat b{display:block; font-family:var(--serif); font-size:clamp(1.9rem,3vw,2.6rem); color:var(--ink); line-height:1; font-weight:500}
.stat span{display:block; font-size:.84rem; color:var(--muted); margin-top:8px; line-height:1.45}
.stats-dark .stats-grid{background:var(--plum); border-color:var(--plum)}
.stats-dark .stat{border-color:rgba(255,255,255,.14)}
.stats-dark .stat b{color:#fff}
.stats-dark .stat span{color:rgba(255,255,255,.65)}

/* --- призыв --- */
.cta-band{display:grid; grid-template-columns:1.3fr auto; gap:28px 48px; align-items:center; background:var(--plum); color:rgba(255,255,255,.8); border-radius:var(--r-xl); padding:clamp(30px,4.4vw,58px) clamp(26px,4.4vw,64px); position:relative; overflow:hidden}
.cta-band::before{content:""; position:absolute; top:-60%; right:-10%; width:620px; height:620px; background:radial-gradient(circle, rgba(255,255,255,.1), transparent 62%)}
.cta-band > *{position:relative}
.cta-band h2{color:#fff; font-size:clamp(1.8rem,3.4vw,2.7rem)}
.cta-band .serif-accent{color:var(--clay-soft)}
.cta-band .eyebrow{color:var(--clay-soft)} .cta-band .eyebrow::before{background:var(--clay-soft)}
.cta-band p{margin:14px 0 0; max-width:60ch}
.cta-acts{display:flex; flex-direction:column; gap:12px}
.cta-band .btn-ghost{color:#fff; border-color:rgba(255,255,255,.35); background:transparent}
.cta-band .btn-ghost:hover{background:rgba(255,255,255,.1); color:#fff; border-color:#fff}
.cta-light{background:var(--lav-100); color:var(--text)}
.cta-light h2{color:var(--ink)}
.cta-light .eyebrow{color:var(--violet)}

/* --- галерея --- */
.gallery{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}
.gallery.cols-2{grid-template-columns:repeat(2,1fr)} .gallery.cols-4{grid-template-columns:repeat(4,1fr)}
.gallery figure{margin:0; border-radius:var(--r-m); overflow:hidden; border:1px solid var(--line); background:var(--paper)}
.gallery img{width:100%; aspect-ratio:4/3; object-fit:cover; transition:.8s var(--ease)}
.gallery figure:hover img{transform:scale(1.04)}
.gallery figcaption{padding:12px 16px; font-size:.84rem; color:var(--muted)}
@media (max-width:760px){.gallery,.gallery.cols-4{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.gallery,.gallery.cols-2,.gallery.cols-4{grid-template-columns:1fr}}

/* --- «Коротко» --- */
.summary{display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(22px,4vw,56px); align-items:center; background:var(--paper); border:1px solid var(--line); border-radius:var(--r-l); padding:clamp(24px,3.4vw,42px); box-shadow:var(--shadow-s); position:relative; overflow:hidden}
.summary::before{content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:linear-gradient(var(--violet),var(--clay))}
.summary-t{font-size:clamp(1.5rem,2.6vw,2rem); margin-bottom:10px}
.summary-p{font-size:.95rem; color:var(--muted); margin:0}
.summary-dl{margin:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; border:1px solid var(--line); border-radius:var(--r-m); overflow:hidden}
.summary-dl > div{padding:16px 18px; border-bottom:1px solid var(--line); border-left:1px solid var(--line)}
.summary-dl > div:nth-child(2n+1){border-left:0}
.summary-dl dt{font-size:.68rem; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:var(--muted)}
.summary-dl dd{margin:4px 0 0; font-size:.98rem; color:var(--ink); font-weight:600; line-height:1.4}
@media (max-width:860px){.summary{grid-template-columns:1fr}}
@media (max-width:480px){.summary-dl{grid-template-columns:1fr}.summary-dl > div{border-left:0}}

/* --- документ --- */
.doc-file{display:flex; align-items:center; gap:20px; flex-wrap:wrap; background:var(--paper); border:1px solid var(--line); border-radius:var(--r-l); padding:24px 28px}
.doc-file .addr-ico{margin:0}
.doc-file > div{flex:1; min-width:200px}
.doc-file b{display:block; font-size:1.02rem; color:var(--ink)}
.doc-file span{font-size:.86rem; color:var(--muted)}
.doc-embed{margin-top:22px; border-radius:var(--r-l); overflow:hidden; border:1px solid var(--line); background:var(--paper)}
.doc-embed object{display:block; min-height:70vh}

/* --- оборудование --- */
.eq-group{margin-top:clamp(40px,5vw,70px)}
.eq-gh{display:flex; gap:22px; align-items:flex-start; margin-bottom:30px; padding-bottom:22px; border-bottom:1px solid var(--line)}
.eq-num{font-family:var(--serif); font-size:clamp(2.6rem,5vw,4rem); line-height:.9; color:var(--lav-300)}
.eq-gh h2{font-size:clamp(1.8rem,3.4vw,2.6rem)}
.eq-gh .lead{margin-top:10px}
.eq-item{display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(24px,4vw,60px); align-items:center; padding:clamp(18px,2.6vw,34px); background:var(--paper); border:1px solid var(--line); border-radius:var(--r-xl); margin-bottom:22px; transition:.45s var(--ease)}
.eq-item:hover{box-shadow:var(--shadow-m); border-color:var(--lav-300)}
.eq-item.rev .eq-img{order:2}
.eq-img{margin:0; border-radius:var(--r-l); overflow:hidden; background:var(--lav-100); aspect-ratio:4/3}
.eq-img img{width:100%; height:100%; object-fit:cover}
.eq-tags{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px}
.eq-tags span{font-size:.72rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; padding:6px 12px; border-radius:100px; background:var(--lav-100); color:var(--plum-2)}
.eq-tags .eq-cat{background:var(--clay-soft); color:#8a5a3e}
.eq-b h3{font-size:clamp(1.6rem,2.8vw,2.2rem)}
.eq-sub{color:var(--violet); font-weight:600; font-size:.9rem; margin:6px 0 14px}
.eq-ben{margin-top:18px; padding-top:18px; border-top:1px solid var(--line)}
.eq-ben > b{font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted)}
.eq-ben .consult-list{margin:12px 0 16px}

/* --- прайс --- */
.price-layout{display:grid; grid-template-columns:300px minmax(0,1fr); gap:clamp(24px,4vw,56px); align-items:start}
.price-aside{position:sticky; top:100px; display:grid; gap:18px}
.price-search{position:relative}
.price-search svg{position:absolute; left:16px; top:50%; transform:translateY(-50%); width:18px; height:18px; color:var(--muted)}
.price-search input{width:100%; padding:14px 16px 14px 44px; border:1px solid var(--lav-200); border-radius:100px; background:#fff; font:inherit; font-size:.92rem}
.price-search input:focus{outline:0; border-color:var(--violet); box-shadow:0 0 0 3px rgba(110,79,134,.1)}
.price-nav{display:grid; gap:2px; background:var(--paper); border:1px solid var(--line); border-radius:var(--r-m); padding:8px}
.price-nav a{padding:9px 14px; border-radius:9px; font-size:.88rem; transition:.2s}
.price-nav a:hover,.price-nav a.on{background:var(--lav-100); color:var(--violet)}
.price-aside-cta{background:var(--lav-100); border-radius:var(--r-m); padding:22px}
.price-aside-cta b{display:block; font-family:var(--serif); font-size:1.25rem; color:var(--ink); margin-bottom:6px}
.price-aside-cta p{font-size:.85rem; color:var(--muted); margin:0 0 14px}
.price-aside-cta .btn{width:100%; padding:13px 18px}
.price-cat{background:var(--paper); border:1px solid var(--line); border-radius:var(--r-l); padding:clamp(22px,3vw,34px); margin-bottom:18px; scroll-margin-top:110px}
.price-cat-h h2{font-size:clamp(1.6rem,2.6vw,2.1rem)}
.price-cat-h p{font-size:.86rem; margin-top:4px}
.price-cat .cost-list{margin-top:16px}
.price-cat .cost-i:last-child{border-bottom:0}
.cost-i.hl{background:linear-gradient(90deg, rgba(110,79,134,.08), transparent)}
@media (max-width:980px){.price-layout{grid-template-columns:1fr}.price-aside{position:static}.price-nav{display:flex; flex-wrap:wrap}.price-aside-cta{display:none}}

/* --- статьи: карточки и пагинация --- */
.art-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px}
.chips-nav + .art-grid{margin-top:30px}
@media (max-width:1000px){.art-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.art-grid{grid-template-columns:1fr}}
.art-card{display:flex; flex-direction:column; background:var(--paper); border:1px solid var(--line); border-radius:var(--r-l); overflow:hidden; transition:.42s var(--ease)}
.art-card:hover{box-shadow:var(--shadow-m); transform:translateY(-5px); border-color:var(--lav-300)}
.art-img{display:block; aspect-ratio:16/10; overflow:hidden; background:var(--lav-100)}
.art-img img{width:100%; height:100%; object-fit:cover; transition:.7s var(--ease)}
.art-card:hover .art-img img{transform:scale(1.05)}
.art-b{display:flex; flex-direction:column; gap:8px; padding:22px 24px 24px; flex:1}
.art-date{font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--clay); font-weight:600}
.art-b > b{font-family:var(--serif); font-size:1.28rem; font-weight:500; color:var(--ink); line-height:1.25}
.art-ex{font-size:.88rem; color:var(--muted); line-height:1.55}
.art-au{margin-top:auto; padding-top:10px; font-size:.8rem; color:var(--violet); font-weight:600}
.pager{display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin-top:40px}
.pager a{min-width:44px; height:44px; display:grid; place-items:center; border-radius:50%; border:1px solid var(--lav-200); background:var(--paper); font-weight:600; transition:.3s}
.pager a:hover{border-color:var(--violet); color:var(--violet)}
.pager a[aria-current]{background:var(--violet); color:#fff; border-color:var(--violet)}

/* --- страница статьи --- */
.art-head{position:relative; padding:clamp(24px,3vw,40px) 0 clamp(26px,3vw,40px); overflow:hidden}
.art-head::before{content:""; position:absolute; top:-340px; right:-280px; width:820px; height:820px; background:radial-gradient(circle, rgba(211,196,221,.5), rgba(211,196,221,0) 62%); pointer-events:none}
.art-head .wrap-n{position:relative}
.art-head h1{font-size:clamp(2.1rem,4.6vw,3.6rem); margin-bottom:20px; animation:fadeUp .9s var(--ease) both}
.art-lead{max-width:none; animation:fadeUp .9s var(--ease) .12s both}
.art-meta{display:flex; flex-wrap:wrap; align-items:center; gap:18px 30px; margin-top:26px; padding-top:22px; border-top:1px solid var(--line); animation:fadeUp .9s var(--ease) .2s both}
.art-author{display:flex; align-items:center; gap:14px}
.art-author img{width:56px; height:56px; border-radius:50%; object-fit:cover; object-position:top; border:2px solid #fff; box-shadow:var(--shadow-s)}
.art-author b{display:block; color:var(--ink); font-size:.95rem}
.art-author small{display:block; color:var(--muted); font-size:.8rem}
.art-author:hover b{color:var(--violet)}
.art-facts{display:flex; flex-wrap:wrap; gap:8px 22px; font-size:.82rem; color:var(--muted)}
.art-facts span{display:inline-flex; align-items:center; gap:7px}
.art-facts svg{width:16px; height:16px; color:var(--violet)}
.art-facts a{color:var(--violet)}
.art-grid-l{display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:clamp(28px,5vw,72px); align-items:start; padding-bottom:clamp(48px,5vw,80px)}
.art-body{max-width:780px}
.art-prose{font-size:1.04rem}
.art-prose h2{scroll-margin-top:110px}
.art-aside{position:sticky; top:100px}
.art-sticky{display:grid; gap:18px}
.art-toc{background:var(--paper); border:1px solid var(--line); border-radius:var(--r-m); padding:20px 22px}
.art-toc b,.art-toc summary{display:block; font-size:.72rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:var(--violet); margin-bottom:10px; cursor:pointer}
.art-toc ol{margin:0; padding-left:1.2em; display:grid; gap:7px}
.art-toc li{font-size:.86rem; line-height:1.4}
.art-toc li::marker{color:var(--lav-300)}
.art-toc a:hover,.art-toc a.on{color:var(--violet)}
.art-toc-m{display:none; margin-bottom:26px}
.art-cta{background:var(--lav-100); border-radius:var(--r-m); padding:22px}
.art-cta > b{display:block; font-family:var(--serif); font-size:1.28rem; color:var(--ink); line-height:1.25; margin-bottom:8px}
.art-cta p{font-size:.85rem; color:var(--muted); margin:0 0 14px}
.art-cta .btn{width:100%; padding:13px 18px}
.art-faq{margin-top:40px}
.art-faq h2{font-size:clamp(1.7rem,3vw,2.3rem)}
.art-faq .faq{margin-top:18px}
.art-disclaimer{display:flex; gap:14px; margin-top:34px; padding:18px 20px; border-radius:var(--r-m); background:var(--lav-50); border:1px solid var(--line); font-size:.84rem; color:var(--muted)}
.art-disclaimer svg{flex:none; width:22px; height:22px; color:var(--violet)}
.art-disclaimer p{margin:0}
.art-cats{margin-top:18px; font-size:.84rem; color:var(--muted)}
.art-cats a{color:var(--violet)}
@media (max-width:1080px){.art-grid-l{grid-template-columns:1fr}.art-aside{position:static}.art-aside .art-toc{display:none}.art-toc-m{display:block}}

/* --- карточка врача --- */
.doc-profile{padding-top:clamp(24px,3vw,40px)}
.dp-grid{display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(28px,5vw,72px); align-items:start}
.dp-photo{margin:0; border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--shadow-l); aspect-ratio:3/4; background:var(--lav-100); position:sticky; top:100px}
.dp-photo img{width:100%; height:100%; object-fit:cover; object-position:top}
.dp-b h1{font-size:clamp(2.2rem,4.4vw,3.5rem); margin-bottom:18px}
.dp-chips{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:26px}
.dp-chips > *{display:inline-flex; align-items:center; gap:7px; font-size:.8rem; font-weight:600; padding:8px 15px; border-radius:100px; border:1px solid var(--lav-200); background:#fff; color:var(--plum-2)}
.dp-chips svg{width:15px; height:15px; color:var(--violet)}
.dp-chips a:hover{border-color:var(--violet); color:var(--violet)}
.dp-quote{font-size:1.3rem; margin:0 0 22px}
.dp-rows{margin:26px 0 0; display:grid; gap:16px}
.dp-rows dt{font-size:.68rem; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:var(--muted)}
.dp-rows dd{margin:4px 0 0; font-size:.98rem; color:var(--text)}
.dp-acts{display:flex; flex-wrap:wrap; gap:12px; margin-top:30px}
.dp-more{display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,60px); margin-top:clamp(40px,5vw,70px); padding-top:clamp(30px,4vw,50px); border-top:1px solid var(--line)}
.dp-more h2{font-size:clamp(1.6rem,2.8vw,2.2rem); margin-bottom:18px}
.edu-list{list-style:none; margin:0; padding:0; display:grid; gap:12px}
.edu-list li{position:relative; padding:14px 18px 14px 46px; border:1px solid var(--line); border-radius:var(--r-m); background:var(--paper); font-size:.94rem}
.edu-list li::before{content:""; position:absolute; left:18px; top:20px; width:12px; height:12px; border-radius:50%; border:1.5px solid var(--violet)}
@media (max-width:900px){.dp-grid,.dp-more{grid-template-columns:1fr}.dp-photo{position:static; max-width:420px}}

/* --- формы --- */
.form-band{background:linear-gradient(170deg,var(--lav-50),var(--bone))}
.form-band .ct-grid{margin-top:0; align-items:start}
.form-band .ct-info{margin-top:0}
.form-msg{font-size:.9rem; margin:14px 0 0; text-align:center; padding:12px 14px; border-radius:var(--r-s)}
.form-msg.ok{background:rgba(110,79,134,.08); color:var(--violet-dp)}
.form-msg.err{background:rgba(185,128,95,.12); color:#8a5a3e}
.lead-form.sending button[type=submit]{opacity:.6; pointer-events:none}
.fld input:invalid:not(:placeholder-shown){border-color:#d9b4a0}

/* --- cookie --- */
.cookie{position:fixed; left:18px; bottom:18px; z-index:160; max-width:420px; background:#fff; border:1px solid var(--line); border-radius:var(--r-m); box-shadow:var(--shadow-l); padding:18px 20px; display:flex; gap:16px; align-items:center; font-size:.8rem; color:var(--muted); animation:fadeUp .6s var(--ease)}
.cookie p{margin:0}
.cookie a{color:var(--violet); text-decoration:underline}
.cookie .btn{padding:10px 18px; font-size:.82rem; flex:none}
@media (max-width:560px){.cookie{left:10px; right:10px; bottom:10px; max-width:none}}

/* --- адаптив внутренних блоков --- */
@media (max-width:1080px){
  .split-grid,.tab-pane,.docfeat-in,.eq-item,.cta-band{grid-template-columns:1fr}
  .split-grid.rev .split-media,.eq-item.rev .eq-img{order:0}
  .steps-img{position:static}
  .cta-acts{flex-direction:row; flex-wrap:wrap}
}
@media (max-width:760px){
  .compare-grid{grid-template-columns:1fr}
  .hero-stat{border-left:0; border-top:1px solid var(--line)}
  .hero-stat:first-child{border-top:0}
  .hero-stats{grid-template-columns:1fr 1fr}
  .hero-stat:nth-child(2){border-top:0; border-left:1px solid var(--line)}
  .hero-stat:nth-child(2n){border-left:1px solid var(--line)}
  .stat{border-left:0; border-top:1px solid var(--line)}
  .stat:first-child{border-top:0}
  .eq-gh{flex-direction:column; gap:6px}
  .docfeat-photo{max-width:340px}
  .crumbs{padding-top:14px}
}
@media print{.crumbs,.cookie,.art-aside{display:none}}

.card-tech .card-more{color:var(--clay-soft)}
.soc-txt{font-size:.66rem; font-weight:700; letter-spacing:.02em}
.prose .lead-big{font-family:var(--serif); font-size:clamp(1.3rem,2.2vw,1.7rem); line-height:1.45; color:var(--ink)}
.prose .lead-big b{font-weight:600; color:var(--violet)}
