/* ============ Токены ============ */
:root{
  --cream:#F3EEE7;
  --cream-2:#ECE5DA;
  --paper:#FBFAF7;
  --ink:#322B36;
  --muted:#6E6478;
  --accent:#6C5A7C;
  --accent-deep:#4A3F54;
  --lav:#B7A6C4;
  --blush:#C4A093;
  --line:rgba(74,63,84,.16);
  --serif:"Playfair Display",Georgia,serif;
  --sans:"Inter",-apple-system,"Segoe UI",sans-serif;
  --shadow:0 18px 40px -18px rgba(74,63,84,.28);
  --wrap:1120px;
}

/* ============ База ============ */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;
  font:400 16px/1.65 var(--sans);
  color:var(--ink);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%}
[hidden]{display:none!important}
body{overflow-x:clip}
h1,h2,h3,p,ul,ol,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
a{color:var(--accent);text-decoration:none}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}

.ico{width:18px;height:18px;flex:none}

/* ============ Кнопки ============ */
.btn{
  display:inline-flex;align-items:center;gap:.6em;
  padding:.72em 1.5em;border-radius:999px;
  font:500 .95rem/1.2 var(--sans);letter-spacing:.01em;white-space:nowrap;
  transition:transform .25s cubic-bezier(.2,.8,.3,1),box-shadow .25s,background-color .25s;
}
.btn--solid{background:var(--accent);color:#FBFAF7;box-shadow:0 10px 24px -12px rgba(74,63,84,.55)}
.btn--solid:hover{background:var(--accent-deep);transform:translateY(-2px)}
.btn--light{background:var(--cream);color:var(--accent-deep)}
.btn--light:hover{background:#fff;transform:translateY(-2px)}
.btn--lg{padding:.95em 1.9em;font-size:1.02rem}
.btn:active{transform:translateY(0)}

/* ============ Навигация ============ */
.nav{
  position:fixed;inset:0 0 auto;z-index:20;
  background:transparent;
  transition:background-color .3s,box-shadow .3s;
}
.nav.is-scrolled{
  background:rgba(243,238,231,.92);
  backdrop-filter:blur(10px);
  box-shadow:0 1px 0 var(--line);
}
.nav__inner{
  max-width:var(--wrap);margin:0 auto;padding:14px 24px;
  display:flex;align-items:center;gap:32px;
}
.nav__brand{display:flex;flex-direction:column;color:var(--ink);margin-right:auto}
.nav__name{font:600 1.05rem/1.2 var(--serif)}
.nav__role{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.nav__links{display:flex;gap:26px}
.nav__links a{
  font-size:.85rem;color:var(--ink);letter-spacing:.02em;
  border-bottom:1px solid transparent;transition:border-color .2s,color .2s;
}
.nav__links a:hover{color:var(--accent);border-bottom-color:var(--accent)}
@media (max-width:900px){.nav__links{display:none}}
@media (max-width:560px){
  .nav__inner{padding:12px 16px;gap:14px}
  .nav__role{display:none}
  .nav__cta{padding:.6em 1.1em;font-size:.85rem}
  .nav__cta .ico{display:none}
}

/* ============ Хиро ============ */
.hero{padding:120px 24px 40px;overflow:hidden}
.hero__inner{
  max-width:var(--wrap);margin:0 auto;
  display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;
}
.hero__title{
  font:600 clamp(2.6rem,6vw,4.4rem)/1.06 var(--serif);
  letter-spacing:-.015em;color:var(--ink);
}
.hero__line{display:block}
.hero__title em{font-style:italic;color:var(--accent)}
.hero__sub{
  margin-top:22px;max-width:26em;
  font-size:1.12rem;color:var(--ink);
}
.mark{
  background:linear-gradient(transparent 62%,rgba(183,166,196,.5) 62%);
  padding:0 .1em;
}
.facts{margin-top:34px;max-width:30em}
.facts__item{
  display:flex;align-items:center;gap:14px;
  padding:13px 0;font-size:.95rem;
  border-top:1px solid var(--line);
}
.facts__item:last-child{border-bottom:1px solid var(--line)}
.facts__ico{
  width:38px;height:38px;flex:none;border-radius:50%;
  display:grid;place-items:center;
  color:var(--accent);border:1px solid var(--line);background:var(--paper);
}
.facts__ico svg{width:20px;height:20px}
.hero__cta{margin-top:34px}
.hero__note{margin-top:14px;font-size:.8rem;color:var(--muted);max-width:24em}

/* фото в арке */
.hero__media{position:relative;justify-self:center}
.hero__arch{
  position:relative;width:min(400px,38vw);aspect-ratio:3/4;
  border-radius:999px 999px 26px 26px;overflow:hidden;
  background:linear-gradient(160deg,var(--cream-2),var(--lav) 140%);
  box-shadow:var(--shadow);
}
.hero__arch img{width:100%;height:100%;object-fit:cover;object-position:top center;transform:scaleX(-1)}
.hero__arch-outline{
  position:absolute;inset:-16px auto auto -20px;
  width:100%;height:100%;
  border:1px solid var(--accent);opacity:.35;
  border-radius:999px 999px 26px 26px;
  transform:translate(-1%,-1%);
  pointer-events:none;
}
.hero__arch-fallback{
  position:absolute;inset:0;display:none;place-items:center;
  font:600 4rem var(--serif);color:var(--accent-deep);opacity:.55;
}
.hero__arch.is-empty img{display:none}
.hero__arch.is-empty .hero__arch-fallback{display:grid}
@media (max-width:820px){
  .hero{padding-top:104px}
  .hero__inner{grid-template-columns:1fr;gap:40px}
  .hero__media{order:-1}
  .hero__arch{width:min(320px,72vw)}
}

/* ============ Секции ============ */
.section{padding:72px 24px}
.section--tint{background:var(--cream-2)}
.section__title{
  max-width:var(--wrap);margin:0 auto 44px;
  display:flex;align-items:center;gap:24px;
  font:500 clamp(1.02rem,2.6vw,1.35rem)/1.3 var(--serif);
  letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink);text-align:center;
}
.section__title span{flex:none;padding:0 4px}
.section__title::before,.section__title::after{
  content:"";flex:1;height:1px;background:var(--line);
}

/* --- О консультациях --- */
.sheet{
  max-width:var(--wrap);margin:0 auto;
  display:grid;grid-template-columns:1fr 1fr 1.25fr;
  background:var(--paper);border-radius:20px;box-shadow:var(--shadow);
}
.sheet__col{padding:36px 34px}
.sheet__col + .sheet__col{border-left:1px solid var(--line)}
.sheet__label{
  font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);margin-bottom:10px;
}
.sheet__value{font:600 1.9rem/1.15 var(--serif);color:var(--ink)}
.sheet__unit{font:italic 400 1.05rem var(--serif);color:var(--muted)}
.sheet__text{font-size:.92rem;color:var(--ink);max-width:26em}
@media (max-width:760px){
  .sheet{grid-template-columns:1fr}
  .sheet__col + .sheet__col{border-left:0;border-top:1px solid var(--line)}
  .sheet__col{padding:26px 28px}
}

/* --- Подход --- */
.approach{
  max-width:var(--wrap);margin:0 auto;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center;
}
.venn{width:100%;max-width:420px;margin:0 auto;display:block}
.venn circle{mix-blend-mode:multiply}
.venn circle[fill="#FBFAF7"]{mix-blend-mode:normal}
.venn__kpt{font:600 32px var(--serif);fill:var(--ink)}
.venn__sub{font:italic 13px var(--serif);fill:var(--muted)}
.approach__list li{
  display:flex;gap:16px;align-items:baseline;
  padding:18px 0;border-top:1px solid var(--line);
}
.approach__list li:last-child{border-bottom:1px solid var(--line)}
.dot{
  width:12px;height:12px;flex:none;border-radius:50%;
  background:var(--dot);transform:translateY(1px);
}
.approach__list h3{font:600 1.02rem/1.3 var(--sans)}
.approach__list p{font-size:.88rem;color:var(--muted);margin-top:3px}
.approach__word{
  max-width:var(--wrap);margin:52px auto 0;
  display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;
}
.approach__par{font-size:1.05rem;max-width:34em}
.quote{position:relative;padding:18px 0 0 34px}
.quote::before{
  content:"“";position:absolute;left:-6px;top:-18px;
  font:600 5.5rem/1 var(--serif);color:var(--lav);
}
.quote p{font:italic 500 1.35rem/1.5 var(--serif);color:var(--accent-deep)}
.quote__by{display:flex;align-items:center;gap:12px;margin-top:18px}
.quote__face{width:44px;height:44px;border-radius:50%;object-fit:cover}
.quote__by cite{font:400 .85rem var(--sans);font-style:normal;color:var(--muted)}
@media (max-width:820px){
  .approach,.approach__word{grid-template-columns:1fr;gap:36px}
}

/* --- Обо мне --- */
.story{
  max-width:var(--wrap);margin:0 auto;
  display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:start;
}
.path{margin-left:8px}
.path__step{
  position:relative;padding:0 0 30px 34px;
}
.path__step:last-child{padding-bottom:0}
/* линия: ровно под центром кружка (кружок 11px → центр x=5.5px) */
.path__step::after{
  content:"";position:absolute;left:5px;top:19px;bottom:-2px;
  width:1px;background:var(--line);
}
.path__step:last-child::after{display:none}
.path__step::before{
  content:"";position:absolute;left:0;top:5px;
  width:11px;height:11px;border-radius:50%;
  background:var(--cream-2);border:2px solid var(--accent);
}
.path__step h3{font:600 1.05rem/1.4 var(--sans)}
.path__step p{font-size:.95rem;color:var(--muted);margin-top:6px;max-width:34em}
.story__card{
  background:var(--paper);border-radius:20px;
  padding:34px 36px;box-shadow:var(--shadow);
}
.story__ico{
  width:56px;height:56px;border-radius:50%;margin-bottom:18px;
  display:grid;place-items:center;
  color:var(--accent);border:1px solid var(--line);background:var(--cream);
}
.story__ico svg{width:30px;height:30px}
.story__card h3{font:600 1.35rem/1.3 var(--serif)}
.story__card p{margin-top:12px;font-size:.98rem}
/* дипломы */
.docs{max-width:var(--wrap);margin:72px auto 0}
.docs__title{
  display:flex;align-items:center;gap:20px;
  font:400 .82rem/1 var(--sans);letter-spacing:.32em;text-transform:uppercase;
  color:var(--muted);
}
.docs__title::before,.docs__title::after{
  content:"";height:1px;flex:1;background:var(--line);
}
.docs__grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:32px;
}
.doc{
  background:var(--paper);border-radius:16px;box-shadow:var(--shadow);
  padding:12px 12px 0;
}
.doc__frame{
  position:relative;display:block;aspect-ratio:7/5;overflow:hidden;
  border-radius:10px;background:var(--cream);border:1px solid var(--line);
}
.doc__ph{
  position:absolute;inset:0;display:grid;place-items:center;
  color:var(--accent);opacity:.7;
}
.doc__ph svg{width:52px;height:52px}
.doc__frame img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
}
.doc figcaption{
  font:400 .85rem/1.5 var(--sans);color:var(--muted);
  text-align:center;padding:12px 8px 14px;
}
.doc__zoom{
  display:block;width:100%;padding:0;margin:0;border:0;
  background:none;font:inherit;color:inherit;text-align:inherit;
  cursor:zoom-in;border-radius:10px;
}
.doc__zoom:hover .doc__frame img{transform:scale(1.03)}
.doc__frame img{transition:transform .4s cubic-bezier(.2,.8,.3,1)}
@media (max-width:820px){
  .story{grid-template-columns:1fr;gap:44px}
  .docs{margin-top:56px}
  .docs__grid{grid-template-columns:1fr;gap:18px;max-width:420px;margin-left:auto;margin-right:auto}
}

/* --- С чем работаю --- */
.topics{max-width:var(--wrap);margin:0 auto}
.topics__cards{
  display:grid;grid-template-columns:1.15fr .85fr;gap:24px;
  align-items:stretch;
}
.tcard{
  background:var(--paper);border-radius:20px;box-shadow:var(--shadow);
  padding:30px 32px;
  display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:start;
}
.tcard__body h3{font:600 1.05rem/1.4 var(--sans)}
.tcard__text{
  margin-top:10px;font-size:.92rem;line-height:1.6;color:var(--muted);
}
.chips{
  display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;
}
.chips li{
  font:400 .78rem/1 var(--sans);padding:.5em .95em;
  border:1px solid var(--line);border-radius:999px;
  background:var(--cream);color:var(--accent-deep);white-space:nowrap;
}
.topics__ico{
  width:64px;height:64px;border-radius:50%;flex:none;
  display:grid;place-items:center;
  color:var(--accent);border:1px solid var(--line);background:var(--cream);
  transition:transform .3s cubic-bezier(.2,.8,.3,1),color .3s;
}
.topics__ico svg{width:38px;height:38px}
.topics__cards--three{
  grid-template-columns:repeat(3,1fr);margin-top:24px;
}
.topics__cards--three .tcard{
  padding:26px 26px;gap:18px;align-content:start;
}
.tcard:hover .topics__ico{transform:translateY(-4px);color:var(--accent-deep)}
@media (max-width:900px){
  .topics__cards{grid-template-columns:1fr;gap:18px}
  .topics__cards--three{margin-top:18px}
  .topics__cards--three .tcard{grid-template-columns:auto 1fr;gap:22px}
}
@media (max-width:560px){
  .tcard{padding:24px 22px;grid-template-columns:auto 1fr;gap:16px}
  .topics__cards--three .tcard{grid-template-columns:auto 1fr;gap:16px}
  .topics__ico{width:52px;height:52px}
  .topics__ico svg{width:30px;height:30px}
}

/* --- Для кого --- */
.who{
  max-width:var(--wrap);margin:0 auto;
  display:grid;grid-template-columns:repeat(3,1fr);gap:48px;
}
.who__viz{display:block;color:var(--accent);margin-bottom:18px}
.who__viz svg{width:100%;max-width:280px;height:auto;display:block}
.who__item p{font-size:1rem;max-width:20em}
@media (max-width:820px){
  .who{grid-template-columns:1fr;gap:0}
  .who__item{
    max-width:none;display:grid;grid-template-columns:104px 1fr;
    gap:22px;align-items:center;padding:20px 0;
  }
  .who__item + .who__item{border-top:1px solid var(--line)}
  .who__viz{margin-bottom:0}
  .who__viz svg{max-width:104px}
  .who__item p{max-width:none}
}

/* --- Финальный CTA --- */
.section--cta{padding:88px 24px 96px}
.cta{
  max-width:var(--wrap);margin:0 auto;
  display:grid;grid-template-columns:1.2fr .8fr;align-items:stretch;
  background:var(--accent-deep);border-radius:28px;overflow:hidden;
  box-shadow:0 28px 60px -24px rgba(74,63,84,.5);
}
.cta__body{padding:64px 60px;align-self:center}
.cta__title{
  font:600 clamp(1.9rem,3.6vw,2.8rem)/1.15 var(--serif);
  color:var(--cream);letter-spacing:-.01em;
}
.cta__title em{font-style:italic;color:var(--lav)}
.cta__text{margin:18px 0 30px;color:#CFC5D6;max-width:30em}
.cta__actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.btn--ghost-light{
  color:var(--cream);border:1px solid rgba(243,238,231,.45);background:transparent;
}
.btn--ghost-light:hover{background:rgba(243,238,231,.12);border-color:rgba(243,238,231,.7);transform:translateY(-2px)}
.cta__media{position:relative;min-height:100%}
.cta__media img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:top center;
}
.cta.no-media{grid-template-columns:1fr}
.cta.no-media .cta__media{display:none}
@media (max-width:820px){
  .cta{grid-template-columns:1fr}
  .cta__body{padding:44px 32px}
  .cta__media{min-height:300px}
}

/* ============ Футер ============ */
.footer{
  border-top:1px solid var(--line);
  padding:28px 24px 34px;text-align:center;
}
.footer__name{font:500 .95rem var(--serif)}
.footer__meta{margin-top:6px;font-size:.8rem;color:var(--muted)}

/* ============ Движение ============ */
@media (prefers-reduced-motion:no-preference){
  /* авторский момент: раскрытие арки и подъём строк хиро */
  .hero__arch{
    clip-path:inset(0 0 100% 0 round 999px 999px 26px 26px);
    animation:arch 1.1s cubic-bezier(.2,.8,.25,1) .15s forwards;
  }
  @keyframes arch{to{clip-path:inset(0 0 0 0 round 999px 999px 26px 26px)}}
  .hero__arch-outline{opacity:0;animation:fade .8s ease-out 1s forwards}
  @keyframes fade{to{opacity:.35}}
  .hero__line,.hero__sub,.facts__item,.hero__cta{
    opacity:0;transform:translateY(18px);
    animation:rise .8s cubic-bezier(.2,.8,.25,1) forwards;
  }
  .hero__line:nth-child(1){animation-delay:.1s}
  .hero__line:nth-child(2){animation-delay:.2s}
  .hero__line:nth-child(3){animation-delay:.3s}
  .hero__sub{animation-delay:.45s}
  .facts__item:nth-child(1){animation-delay:.55s}
  .facts__item:nth-child(2){animation-delay:.63s}
  .facts__item:nth-child(3){animation-delay:.71s}
  .hero__cta{animation-delay:.85s}
  @keyframes rise{to{opacity:1;transform:none}}
  /* тихие появления секций */
  .reveal{opacity:0;transform:translateY(14px);transition:opacity .7s ease-out,transform .7s cubic-bezier(.2,.8,.25,1)}
  .reveal.is-in{opacity:1;transform:none}
}

.approach>*{min-width:0}

/* ============ Лайтбокс дипломов ============ */
.lightbox{
  position:fixed;inset:0;z-index:200;
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;
  gap:8px;padding:24px;
  background:rgba(40,34,46,.9);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  animation:lbFade .25s ease-out;
}
@keyframes lbFade{from{opacity:0}to{opacity:1}}
.lightbox__figure{
  min-width:0;display:grid;justify-items:center;gap:14px;
}
.lightbox__figure img{
  max-width:min(880px,100%);max-height:78vh;width:auto;
  border-radius:12px;box-shadow:0 30px 80px -20px rgba(0,0,0,.6);
  background:var(--paper);
}
.lightbox__figure figcaption{
  font:400 .9rem/1.5 var(--sans);color:#CFC5D6;text-align:center;max-width:36em;
}
.lightbox__close,.lightbox__nav{
  width:46px;height:46px;border-radius:50%;border:1px solid rgba(243,238,231,.3);
  background:rgba(243,238,231,.08);color:var(--cream);cursor:pointer;
  display:grid;place-items:center;padding:0;
  transition:background-color .2s,border-color .2s;
}
.lightbox__close:hover,.lightbox__nav:hover{background:rgba(243,238,231,.2);border-color:rgba(243,238,231,.6)}
.lightbox__close{position:absolute;top:20px;right:20px}
.lightbox__close svg{width:20px;height:20px}
.lightbox__nav svg{width:22px;height:22px}
@media (max-width:560px){
  .lightbox{grid-template-columns:1fr;padding:16px}
  .lightbox__figure img{max-height:66vh}
  .lightbox__nav{
    position:absolute;bottom:18px;top:auto;
  }
  .lightbox__nav--prev{left:calc(50% - 58px)}
  .lightbox__nav--next{right:calc(50% - 58px)}
}
body.lb-open{overflow:hidden}
