:root{
  --cream:#F5EEE2;
  --ink:#221713;
  --burgundy:#5C1420;
  --burgundy-deep:#3D0F16;
  --line:#DDD2C0;
  --clay:#B35D45;
  --on-burgundy:#F2E6DA;
  --stone:#DAD6CF;
  --stone-2:#C4BEB5;
  --graphite:#3D3A37;
  padding-top: env(safe-area-inset-top,0px);
  padding-bottom: env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 84px); scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto;} }
body{
  margin:0; background:var(--cream); color:var(--ink);
  font-family:'PT Sans',Arial,sans-serif; font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.display{font-family:'Unbounded',sans-serif; letter-spacing:-0.01em; margin:0;}
a{color:inherit;}
.wrap{max-width:1180px; margin:0 auto; padding-left:28px; padding-right:28px;}
section{padding-top:96px; padding-bottom:96px;}
@media (max-width:720px){ section{padding-top:64px; padding-bottom:64px;} .wrap{padding-left:20px; padding-right:20px;} }

/* ---- серые подложки, горная текстура, контур хребта ---- */
.band-stone{background:var(--stone);}
.band-stone .sec-head{border-color:var(--stone-2);}
/* светлая фактура скалы на серых блоках */
.band-stone.tex{--tex-blend:multiply; --tex-op:.24; --tex-mask:linear-gradient(90deg,transparent 35%,#000 100%);}
#requests{--tex:url(../images/mountain1.jpg); --tex-pos:center 46%;}
#education{--tex:url(../images/mountain3.jpg); --tex-pos:center 4%;}
.tex{position:relative; isolation:isolate;}
.tex::before{
  content:""; position:absolute; inset:0; top:calc(-1 * var(--rh,0px)); z-index:-1; pointer-events:none;
  background:var(--tex) var(--tex-pos,center)/cover no-repeat;
  filter:grayscale(1) contrast(1.35) brightness(1.05);
  mix-blend-mode:var(--tex-blend,soft-light); opacity:var(--tex-op,.6);
  -webkit-mask-image:var(--tex-mask,linear-gradient(90deg,transparent 30%,#000 85%));
          mask-image:var(--tex-mask,linear-gradient(90deg,transparent 30%,#000 85%));
}
/* верхний край блока вырезан силуэтом хребта — фон и текстура заходят в вершины */
.ridged{
  --rh:clamp(26px,4vw,56px);
  --ridge:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath d='M0 80 L0 54 L48 47 L96 34 L132 38 L176 22 L214 29 L262 25 L318 40 L372 31 L418 41 L470 27 L512 15 L548 9 L586 17 L626 12 L668 30 L724 36 L770 25 L826 32 L884 17 L930 23 L980 41 L1034 35 L1090 46 L1146 33 L1196 40 L1250 28 L1300 37 L1356 43 L1400 39 L1440 49 L1440 80 Z'/%3E%3C/svg%3E");
  margin-top:calc(-1 * var(--rh));
  border-top:var(--rh) solid transparent;
  -webkit-mask:var(--ridge) top left/100% var(--rh) no-repeat, linear-gradient(#000 0 0) 0 calc(var(--rh) - 1px)/100% 100% no-repeat;
          mask:var(--ridge) top left/100% var(--rh) no-repeat, linear-gradient(#000 0 0) 0 calc(var(--rh) - 1px)/100% 100% no-repeat;
}
.ridged.flip{
  --ridge:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath transform='translate(1440 0) scale(-1 1)' d='M0 80 L0 54 L48 47 L96 34 L132 38 L176 22 L214 29 L262 25 L318 40 L372 31 L418 41 L470 27 L512 15 L548 9 L586 17 L626 12 L668 30 L724 36 L770 25 L826 32 L884 17 L930 23 L980 41 L1034 35 L1090 46 L1146 33 L1196 40 L1250 28 L1300 37 L1356 43 L1400 39 L1440 49 L1440 80 Z'/%3E%3C/svg%3E");
}

/* ---- nav ---- */
header{
  position:sticky; top:0; z-index:20; background:rgba(241,235,225,.92);
  backdrop-filter:blur(6px); border-bottom:1px solid var(--line);
  padding-top:env(safe-area-inset-top,0px);
}
.nav{display:flex; align-items:center; justify-content:space-between; padding:16px 28px; max-width:1180px; margin:0 auto;}
@media (max-width:720px){ .nav{padding-left:20px; padding-right:20px;} }
.nav .name{font-family:'Unbounded'; font-weight:700; font-size:15px;}
.nav .cta{font-size:15px; font-weight:700; background:var(--burgundy); color:var(--on-burgundy); border:1px solid var(--burgundy); padding:10px 20px; min-height:46px; display:flex; align-items:center; border-radius:2px; text-decoration:none; transition:background .2s, color .2s;}
.nav .cta:hover{background:transparent; color:var(--burgundy);}

/* ---- hero ---- */
.hero{padding-top:56px; padding-bottom:80px; display:grid; grid-template-columns:1.15fr 1fr; gap:56px; align-items:end;}
@media (max-width:860px){
  .hero{grid-template-columns:1fr; gap:28px; padding-top:20px;}
  /* на телефоне первой встречает фотография */
  .hero .portrait{order:-1; max-height:72vh; aspect-ratio:auto; height:min(125vw, 72vh);}
}
.kicker{font-size:15px; color:var(--clay); margin-bottom:18px;}
.hero h1{font-size:clamp(48px,7vw,92px); font-weight:900; line-height:0.98; margin-bottom:28px;}
.hero .lede{font-size:19px; max-width:46ch; margin-bottom:34px;}
.btn{
  display:inline-flex; align-items:center; min-height:44px; padding:14px 26px;
  background:var(--burgundy); color:var(--on-burgundy); text-decoration:none;
  font-weight:700; font-size:15px; border-radius:2px; border:1px solid var(--burgundy);
}
.btn:hover{background:transparent; color:var(--burgundy);}
.btn.ghost{background:transparent; color:var(--ink); border:1px solid var(--ink);}
.btn.ghost:hover{background:var(--ink); color:var(--cream);}
.portrait{
  aspect-ratio:3/4; background:
    linear-gradient(155deg, #4A1620 0%, #2A0A0E 55%, #180608 100%);
  border-radius:2px; position:relative; overflow:hidden;
}
.portrait img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center top; display:block;
}

/* ---- manifesto ---- */
.manifesto{background:var(--burgundy-deep); color:var(--on-burgundy); --tex:url(../images/mountain3.jpg); --tex-pos:center 3%; --tex-op:.75;}
.manifesto .wrap{text-align:left;}
.manifesto h2{font-size:clamp(32px,5vw,58px); font-weight:800; line-height:1.08; max-width:16ch; margin-bottom:26px;}
.manifesto p{font-size:18px; max-width:56ch; color:rgba(239,227,216,.86);}

/* ---- numbered section head ---- */
.sec-head{display:flex; gap:20px; align-items:baseline; margin-bottom:44px; border-top:1px solid var(--line); padding-top:18px;}
.sec-head .num{font-family:'Unbounded'; font-weight:700; color:var(--clay); font-size:14px;}
.sec-head h2{font-size:clamp(26px,3.4vw,38px); font-weight:800;}

/* ---- knots grid ---- */
.knots{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
@media (max-width:720px){ .knots{grid-template-columns:1fr;} }
.band-stone .knots{background:var(--stone-2); border-color:var(--stone-2);}
.knot{background:var(--cream); padding:26px 28px; font-size:17px; display:flex; gap:18px; align-items:flex-start;}
.knot .ic{flex:none; width:40px; height:40px; padding:8px; border-radius:50%; background:var(--stone); color:var(--burgundy);}
.knot > div{min-width:0;}
.knot h3{font-family:'PT Sans',Arial,sans-serif; font-size:17px; font-weight:700; line-height:1.35; letter-spacing:0; margin:6px 0 8px;}
.knot p{margin:0; font-size:15px; line-height:1.55; color:#5b4f47;}

/* ---- formats ---- */
.formats{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
@media (max-width:1100px){ .formats{grid-template-columns:repeat(2,1fr);} }
@media (max-width:860px){ .formats{grid-template-columns:1fr;} }
.format{background:var(--cream); padding:30px 26px; display:flex; flex-direction:column; gap:14px; min-height:230px; border-top:4px solid var(--clay); transition:background .2s;}
.format:nth-child(even){border-top-color:var(--burgundy);}
.format:hover{background:var(--stone);}
.format h3{font-size:19px; font-weight:700;}
.format .meta{font-size:14px; color:#5b4f47;}
.format .scheme{width:auto; height:40px; align-self:flex-start; display:block; color:var(--burgundy);}
@media (min-width:1101px){ .format{padding:26px 20px; gap:12px; min-height:0;} .format h3{font-size:17px;} .format .meta, .format .facts{font-size:13.5px;} }
.facts{list-style:none; margin:0; padding:0; display:grid; gap:8px; font-size:14px; color:#5b4f47;}
.facts li{display:flex; gap:10px; align-items:center;}
.facts .ic{width:18px; height:18px; flex:none; color:var(--clay);}
.format .status{margin-top:auto; font-size:13px; font-weight:700; color:var(--clay);}
a.status{text-decoration:none;}
a.status:hover{text-decoration:underline;}

/* ---- approach / groups ---- */
.split{display:grid; grid-template-columns:1fr 1fr; gap:60px;}
.split > *{min-width:0;} /* длинные слова в заголовках не должны растягивать колонки шире экрана */
@media (max-width:860px){ .split{grid-template-columns:1fr; gap:32px;} }
.split h2{font-size:clamp(24px,3vw,34px); font-weight:800; margin-bottom:20px;}
.split p{font-size:17px; max-width:52ch;}
.split .aside{background:var(--stone); padding:36px 34px; border-left:4px solid var(--clay);}
@media (max-width:560px){
  .split .aside{padding:28px 20px;}
  .split .aside .sec-head{flex-direction:column; gap:6px;}
  .split .aside h2{font-size:22px; min-width:0; max-width:100%;}
  h1, h2, h3{overflow-wrap:break-word; -webkit-hyphens:auto; hyphens:auto;}
}
@media (max-width:720px){ .split .aside{padding:28px 22px;} }
.groups{background:var(--graphite); color:var(--cream); --tex:url(../images/mountain2.jpg); --tex-pos:center 60%; --tex-op:.32; --tex-blend:screen;}
.groups .sec-head{border-color:rgba(241,235,225,.25);}
.groups .sec-head .num{color:#C79A8E;}

/* ---- тематические группы (карточки в блоке «Почему группы») ---- */
.groups-sub{font-size:clamp(20px,2.4vw,26px); font-weight:800; margin:64px 0 28px;}
.gcards{display:grid; grid-template-columns:1fr 1fr; gap:24px; align-items:start;}
@media (max-width:860px){ .gcards{grid-template-columns:1fr;} }
.gcard{min-width:0; background:rgba(241,235,225,.06); border:1px solid rgba(241,235,225,.14); border-top:4px solid var(--clay); padding:30px 30px 28px; display:flex; flex-direction:column; gap:16px;}
.gcard:nth-child(2){border-top-color:#C79A8E;}
@media (max-width:560px){ .gcard{padding:24px 20px;} }
.gcard-tag{font-size:13px; color:#C79A8E;}
.gcard h3{font-size:clamp(20px,2.2vw,24px); font-weight:800; line-height:1.2;}
.gcard h4{font-size:14px; margin:4px 0 -6px; color:rgba(241,235,225,.6); font-weight:700;}
.gcard-lead{margin:0; font-size:16px; color:rgba(241,235,225,.9);}
.gcard-list{margin:0; padding:0; list-style:none; display:grid; gap:8px; font-size:15px; color:rgba(241,235,225,.85);}
.gcard-list li{position:relative; padding-left:18px;}
.gcard-list li::before{content:""; position:absolute; left:0; top:.65em; width:8px; height:2px; background:var(--clay);}
.gcard-facts{margin:0; padding:16px 0 0; list-style:none; display:grid; gap:10px; font-size:15px; border-top:1px solid rgba(241,235,225,.14);}
.gcard-facts li{display:flex; gap:12px; align-items:flex-start;}
.gcard-facts .ic{width:20px; height:20px; flex:none; color:#E3B7A6; margin-top:1px;}
.gcard-more{border-top:1px solid rgba(241,235,225,.14); padding-top:14px; font-size:15px; color:rgba(241,235,225,.85);}
.gcard-more summary{cursor:pointer; font-weight:700; color:var(--cream); list-style:none; display:flex; align-items:center; gap:10px; min-height:32px;}
.gcard-more summary::-webkit-details-marker{display:none;}
.gcard-more summary::after{content:""; width:7px; height:7px; border-right:1.6px solid; border-bottom:1.6px solid; transform:translateY(-2px) rotate(45deg); transition:transform .2s;}
.gcard-more[open] summary::after{transform:translateY(1px) rotate(-135deg);}
.gcard-more ol, .gcard-more ul{margin:12px 0 0; padding-left:22px; display:grid; gap:6px;}
.gcard-more ul{grid-template-columns:1fr 1fr; column-gap:24px;}
@media (max-width:560px){ .gcard-more ul{grid-template-columns:1fr;} }
.gcard-more p{margin:14px 0 0; font-size:14px; color:rgba(241,235,225,.65);}
.gcard-cta{display:flex; flex-wrap:wrap; gap:10px 16px; align-items:center; margin-top:4px; font-size:14px; color:rgba(241,235,225,.75);}
.gcard-cta .btn:hover{background:transparent; color:var(--cream); border-color:var(--cream);}
/* широкая карточка динамической группы */
.gcard-wide{border-top-color:var(--clay); margin-bottom:8px;}
.gcard-cols{display:grid; grid-template-columns:1fr 1fr; gap:20px 40px;}
@media (max-width:860px){ .gcard-cols{grid-template-columns:1fr;} }
.gcard-cols h4{margin:0 0 12px;}
.gcard-steps{margin:0; padding:0; list-style:none; counter-reset:gs; display:grid; gap:10px; font-size:15px; color:rgba(241,235,225,.85);}
.gcard-steps li{counter-increment:gs; position:relative; padding-left:34px;}
.gcard-steps li::before{content:counter(gs); position:absolute; left:0; top:0; width:24px; height:24px; border-radius:50%; border:1.5px solid #E3B7A6; color:#E3B7A6; font-family:'Unbounded'; font-size:11px; font-weight:700; display:flex; align-items:center; justify-content:center;}
.gcard-steps b{color:var(--cream);}
.gfmt{background:rgba(241,235,225,.06); padding:20px 22px; display:flex; flex-direction:column; gap:14px; align-items:flex-start;}
.gfmt h4{color:var(--cream); font-size:16px; margin:0;}
.gfmt .gcard-facts{border-top:0; padding-top:0;}
.gfmt .btn:hover{background:transparent; color:var(--cream); border-color:var(--cream);}
.gcard-wide + .groups-sub{margin-top:56px;}

/* ---- about ---- */
.about{display:grid; grid-template-columns:.9fr 1.4fr; gap:56px; align-items:start;}
@media (max-width:860px){ .about{grid-template-columns:1fr;} }
.about .frame{aspect-ratio:4/5; background:linear-gradient(160deg,#C9BBA8,#EFE7D9); border-radius:2px; overflow:hidden;}
.stats{display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:12px; margin-bottom:28px;}
.stat{background:var(--stone); padding:18px 18px 16px; border-radius:2px;}
.stat .ic{width:26px; height:26px; color:var(--clay); margin-bottom:10px;}
.stat strong{display:block; font-family:'Unbounded'; font-size:26px; line-height:1.1; color:var(--burgundy);}
.stat span{font-size:13px; color:#5b4f47;}
.about .frame img{width:100%; height:100%; object-fit:cover; object-position:center top; display:block;}

/* ---- education ---- */
.edu-total{font-family:'Unbounded'; font-size:15px; color:var(--clay); margin-bottom:26px;}

/* ---- список образования ---- */
.edu-list{list-style:none; margin:0; padding:0; border-top:1px solid var(--stone-2);}
.edu-item{display:grid; grid-template-columns:44px 1fr auto auto; gap:6px 24px; align-items:center; padding:18px 0; border-bottom:1px solid var(--stone-2);}
.edu-n{font-family:'Unbounded'; font-size:13px; font-weight:700; color:var(--clay);}
.edu-main{min-width:0;}
.edu-item .prog{font-weight:700; font-size:16px; line-height:1.4;}
.edu-item .org{font-size:14px; color:#5b4f47; margin-top:2px;}
.edu-item .years{font-size:14px; color:#5b4f47; text-align:right; max-width:22ch;}
.edu-open{font:inherit; font-size:13px; font-weight:700; color:var(--burgundy); background:none; border:1px solid var(--stone-2); border-radius:2px; padding:8px 12px; min-height:40px; cursor:pointer; transition:background .2s, color .2s, border-color .2s;}
.edu-open:hover{background:var(--burgundy); border-color:var(--burgundy); color:var(--on-burgundy);}
.edu-sum{margin-top:18px; font-size:16px; color:#5b4f47;}
.edu-sum strong{color:var(--ink);}
@media (max-width:720px){
  .edu-item{grid-template-columns:32px 1fr; align-items:start;}
  .edu-item .years{grid-column:2; text-align:left; max-width:none;}
  .edu-open{grid-column:2; justify-self:start;}
}

/* ---- лента дипломов ---- */
.certs{margin-top:56px;}
.certs-head{display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:20px;}
.certs-head h3{font-size:clamp(20px,2.4vw,26px); font-weight:800;}
.certs-nav{display:flex; gap:8px;}
.certs-nav button{width:46px; height:46px; border-radius:50%; border:1px solid var(--ink); background:transparent; color:var(--ink); font-size:18px; cursor:pointer; transition:background .2s, color .2s;}
.certs-nav button:hover{background:var(--ink); color:var(--cream);}
.certs-track{list-style:none; margin:0; padding:0 0 14px; display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:var(--clay) transparent;}
.certs-track li{flex:none; scroll-snap-align:start;}
.cert{display:flex; flex-direction:column; gap:10px; width:260px; padding:0; border:0; background:none; font:inherit; text-align:left; cursor:zoom-in; color:inherit;}
.cert img{width:260px; height:190px; object-fit:cover; display:block; border-radius:2px; background:var(--cream); box-shadow:0 6px 18px rgba(34,23,19,.14); transition:transform .2s, box-shadow .2s;}
.cert:hover img{transform:translateY(-3px); box-shadow:0 12px 26px rgba(34,23,19,.2);}
.cert span{font-size:13px; line-height:1.4; color:#5b4f47;}
.cert span b{color:var(--clay); font-family:'Unbounded'; font-size:11px; margin-right:4px;}
@media (max-width:560px){ .cert, .cert img{width:220px;} .cert img{height:160px;} }

/* ---- просмотр документа ---- */
.lightbox{border:0; padding:0; background:transparent; max-width:100vw; max-height:100vh; width:100vw; height:100vh; margin:0;}
.lightbox::backdrop{background:rgba(20,14,12,.88);}
.lightbox[open]{display:flex; align-items:center; justify-content:center; gap:12px;}
.lightbox figure{margin:0; max-width:min(1100px, calc(100vw - 140px)); display:flex; flex-direction:column; align-items:center; gap:12px;}
.lightbox img{max-width:100%; max-height:calc(100vh - 120px); object-fit:contain; display:block; background:#fff;}
.lightbox figcaption{color:var(--on-burgundy); font-size:14px; text-align:center; max-width:70ch;}
.lightbox button{width:48px; height:48px; flex:none; border-radius:50%; border:1px solid rgba(242,230,218,.5); background:rgba(20,14,12,.4); color:var(--on-burgundy); font-size:20px; cursor:pointer;}
.lightbox button:hover{background:var(--on-burgundy); color:var(--ink);}
.lb-close{position:fixed; top:calc(16px + env(safe-area-inset-top,0px)); right:16px;}
@media (max-width:720px){
  .lightbox figure{max-width:calc(100vw - 24px);}
  .lb-prev, .lb-next{position:fixed; bottom:calc(20px + env(safe-area-inset-bottom,0px));}
  .lb-prev{left:calc(50% - 60px);} .lb-next{right:calc(50% - 60px);}
  .lightbox img{max-height:calc(100vh - 200px);}
}

/* ---- terms ---- */
.terms{background:var(--burgundy); color:var(--on-burgundy); --tex:url(../images/mountain1.jpg); --tex-pos:center 85%; --tex-op:.6; --tex-mask:linear-gradient(90deg,transparent 15%,#000 75%);}
.terms .sec-head{border-color:rgba(239,227,216,.25);}
.terms .sec-head .num{color:#E3B7A6;}
.terms-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:36px;}
@media (max-width:860px){ .terms-grid{grid-template-columns:1fr;} }
.terms-grid > div{display:grid; grid-template-columns:44px 1fr; column-gap:14px; align-content:start;}
.terms-grid .ic{grid-row:span 2; width:44px; height:44px; padding:10px; border-radius:50%; border:1px solid rgba(239,227,216,.35); color:#E3B7A6;}
.terms-grid dt{font-size:13px; text-transform:none; color:rgba(239,227,216,.6); margin-bottom:4px;}
.terms-grid dd{margin:0; font-size:18px; font-weight:700;}

/* ---- порядок работы (в «Условиях») ---- */
.order{margin-top:56px; padding-top:32px; border-top:1px solid rgba(239,227,216,.25);}
.order-title{font-size:clamp(20px,2.4vw,26px); font-weight:800; margin-bottom:24px;}
.order-steps{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(5,1fr); gap:24px 20px;}
@media (max-width:1000px){ .order-steps{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .order-steps{grid-template-columns:1fr;} }
.order-steps li{display:flex; flex-direction:column; gap:12px; font-size:16px; line-height:1.5; color:rgba(239,227,216,.85);}
.order-steps li b{color:var(--on-burgundy);}
.order-steps .n{width:40px; height:40px; flex:none; border-radius:50%; border:1.5px solid #E3B7A6; color:#E3B7A6; display:flex; align-items:center; justify-content:center; font-family:'Unbounded'; font-weight:700; font-size:14px;}
.order-steps li.order-first{grid-column:1/-1; flex-direction:row; align-items:flex-start; gap:16px; background:rgba(239,227,216,.08); padding:20px 22px; border-radius:2px;}
.order-steps li.order-first .n{background:#E3B7A6; color:var(--burgundy);}
.order-steps li.order-first > div{padding-top:8px; min-width:0; font-size:17px;}
.order-forms{display:flex; flex-wrap:wrap; gap:10px; margin-top:14px;}
.order-forms a{display:inline-flex; align-items:center; min-height:44px; padding:10px 16px; border:1px solid rgba(239,227,216,.5); border-radius:2px; font-size:15px; font-weight:700; color:var(--on-burgundy); text-decoration:none; transition:background .2s, color .2s;}
.order-forms a:hover{background:var(--on-burgundy); color:var(--burgundy);}
@media (max-width:560px){ .order-steps li.order-first{flex-direction:column; padding:18px 16px;} .order-steps li.order-first > div{padding-top:0;} .order-forms a{width:100%;} }

/* ссылки на анкеты в карточках «Форматов» */
.format .status a{color:inherit;}

/* ---- booking ---- */
.book{text-align:left;}
.book h2{font-size:clamp(30px,4.4vw,48px); font-weight:800; max-width:18ch; margin-bottom:20px;}
.book p{font-size:17px; max-width:50ch; margin-bottom:30px; color:#5b4f47;}
.book .row{display:flex; flex-wrap:wrap; gap:14px;}

footer{padding:40px 0; border-top:1px solid var(--line); font-size:13px; color:#5b4f47;}
.ph{font-style:italic; opacity:.55;}

/* ---- значки ---- */
.ic{display:block; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;}

/* ---- меню в шапке ---- */
.navlinks{display:flex; gap:4px; list-style:none; margin:0; padding:0;}
.navlinks a{position:relative; display:flex; align-items:center; padding:10px 12px; min-height:46px; font-size:15px; font-weight:700; text-decoration:none; border-radius:2px; transition:background .2s, color .2s;}
.navlinks a::after{content:""; position:absolute; left:12px; right:12px; bottom:6px; height:2px; background:var(--clay); transform:scaleX(0); transform-origin:left; transition:transform .2s;}
.navlinks a:hover::after, .navlinks a.on::after{transform:scaleX(1);}
.navlinks a.on{color:var(--burgundy);}
.navlinks a:hover{background:var(--stone);}
.nav-right{display:flex; align-items:center; gap:10px;}
.navmenu{display:none; position:relative;}
.navmenu summary{list-style:none; cursor:pointer; font-size:14px; font-weight:700; padding:9px 14px; min-height:44px; display:flex; align-items:center; gap:8px; border:1px solid var(--line); border-radius:2px;}
.navmenu summary::-webkit-details-marker{display:none;}
.navmenu summary::after{content:""; width:7px; height:7px; border-right:1.6px solid; border-bottom:1.6px solid; transform:translateY(-2px) rotate(45deg); transition:transform .2s;}
.navmenu[open] summary::after{transform:translateY(1px) rotate(-135deg);}
.navmenu .navlinks{position:absolute; right:0; top:calc(100% + 8px); flex-direction:column; min-width:260px; background:var(--cream); border:1px solid var(--line); padding:8px; box-shadow:0 12px 30px rgba(34,23,19,.12);}
.navmenu .navlinks a{font-size:16px; padding:12px 14px;}
.navmenu .navlinks a::after{display:none;}
.navmenu .navlinks a.on{background:var(--stone);}
@media (max-width:1180px){ .nav > .navlinks{display:none;} .navmenu{display:block;} }
@media (max-width:560px){
  .nav{gap:10px;}
  .nav .name{font-size:12px; line-height:1.25; max-width:9em;}
  .navmenu summary{padding:9px 13px;}
  .navmenu summary .lbl{display:none;}
  .navmenu summary::after{display:none;}
  .navmenu summary::before{content:""; width:18px; height:2px; background:currentColor; box-shadow:0 -6px 0 currentColor, 0 6px 0 currentColor;}
  .nav .cta{padding:9px 12px; font-size:13px;}
  .navmenu .navlinks{right:-58px;}
}

/* ---- оглавление на первом экране ---- */
.toc{grid-column:1/-1; display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); list-style:none; margin:0; padding:0;}
@media (max-width:720px){ .toc{grid-template-columns:1fr 1fr;} }
.toc a{display:flex; flex-direction:column; gap:6px; padding:16px 18px; min-height:44px; height:100%; background:var(--cream); text-decoration:none; font-weight:700; font-size:15px; transition:background .2s, color .2s;}
.toc a b{font-family:'Unbounded'; font-size:12px; color:var(--clay); font-weight:600;}
.toc a:hover{background:var(--burgundy); color:var(--on-burgundy);}
.toc a:hover b{color:#E3B7A6;}

/* ---- боковая «тропа» по разделам ---- */
.rail{position:fixed; right:22px; top:50%; transform:translateY(-50%); z-index:15; list-style:none; margin:0; padding:10px 0; display:none;}
.rail::before{content:""; position:absolute; left:50%; top:16px; bottom:16px; border-left:1.5px dashed var(--stone-2); transform:translateX(-50%);}
.rail a{position:relative; display:flex; align-items:center; justify-content:center; width:28px; height:28px; text-decoration:none;}
.rail a i{width:10px; height:10px; border-radius:50%; background:var(--cream); border:1.5px solid var(--clay); transition:transform .2s, background .2s;}
.rail a.on i{background:var(--burgundy); border-color:var(--burgundy); transform:scale(1.4);}
.rail a span{position:absolute; right:34px; white-space:nowrap; font-size:13px; font-weight:700; background:var(--ink); color:var(--cream); padding:4px 10px; border-radius:2px; opacity:0; pointer-events:none; transition:opacity .15s;}
.rail a:hover span, .rail a:focus-visible span{opacity:1;}
@media (min-width:1300px){ .rail{display:block;} }

/* ---- схема «голова + тело» ---- */
.venn{width:100%; max-width:400px; height:auto; display:block; margin:0 auto;}
.venn-fig{margin:24px 0 26px;}
.venn-fig figcaption{text-align:center; font-size:14px; font-weight:700; color:var(--burgundy); margin-top:8px;}
.split p + p{margin-top:0;}
.approach-key{font-weight:700; color:var(--burgundy);}
.split .aside h2{font-size:clamp(22px,2.4vw,28px); margin-bottom:8px;}
.aside-kicker{font-size:14px; color:#5b4f47;}
.venn text{font-family:'PT Sans',Arial,sans-serif; fill:var(--ink);}

/* ---- тропа «как начать» ---- */
.trail{position:relative; display:grid; grid-template-columns:repeat(4,1fr); list-style:none; margin:10px 0 40px; padding:0; counter-reset:step;}
.trail-path{position:absolute; left:0; top:0; width:100%; height:150px; color:var(--clay); pointer-events:none;}
.trail li{padding:0 14px; display:flex; flex-direction:column; align-items:center; text-align:center;}
.trail .dot{width:44px; height:44px; border-radius:50%; background:var(--burgundy); color:var(--on-burgundy); display:flex; align-items:center; justify-content:center; font-family:'Unbounded'; font-weight:700; font-size:15px; position:relative; z-index:1; box-shadow:0 0 0 6px var(--stone);}
.trail li:nth-of-type(1) .dot{margin-top:106px;}
.trail li:nth-of-type(2) .dot{margin-top:72px;}
.trail li:nth-of-type(3) .dot{margin-top:38px;}
.trail li:nth-of-type(4) .dot{margin-top:4px; background:var(--clay);}
.trail h3{font-size:15px; font-weight:700; margin:16px 0 6px;}
.trail p{font-size:14px; margin:0; color:#5b4f47; max-width:24ch;}
@media (max-width:860px){
  .trail{grid-template-columns:1fr; gap:22px; padding-left:4px;}
  .trail::before{content:""; position:absolute; left:26px; top:20px; bottom:20px; border-left:1.5px dashed var(--clay);}
  .trail-path{display:none;}
  .trail li{display:grid; grid-template-columns:44px 1fr; column-gap:18px; text-align:left; align-items:start; padding:0;}
  .trail li .dot{margin-top:0 !important; grid-row:span 2;}
  .trail h3{margin:2px 0 4px;}
}
.terms .ph, .groups .ph{opacity:.65;}

/* названия групп в заголовках карточек */
.gname{color:var(--burgundy);}
.groups .gname{color:#E3B7A6;}

/* легенда к схемам из точек — над карточками «Форматов» */
.formats-legend{margin:-24px 0 18px; font-size:13px; color:#5b4f47; display:flex; flex-wrap:wrap; gap:6px 20px; align-items:center;}
.formats-legend span{display:inline-flex; gap:8px; align-items:center;}

/* сообщение, если data/certificates.js не загрузился */
.edu-error{padding:18px 0; color:var(--burgundy); font-weight:700;}

/* ---- страница «Политика конфиденциальности» ---- */
.policy{max-width:820px; padding-block:48px 72px;}
.policy h1{font-size:clamp(22px,6.2vw,42px); font-weight:800; margin-bottom:28px;}
.policy h2{font-size:clamp(18px,2vw,22px); font-weight:800; margin:40px 0 14px; display:flex; gap:12px; align-items:baseline;}
.policy h2 .num{font-size:13px; color:var(--clay);}
.policy p{margin:0 0 10px; font-size:15px; line-height:1.6;}
.policy p.lead{font-size:16px;}
.policy p.sub{padding-left:24px;}
.policy b{color:var(--clay); font-weight:700;}
footer a{color:inherit;}
.forms-consent{margin-top:14px; font-size:13px; color:rgba(239,227,216,.75);}
.forms-consent a{color:inherit;}
.book .forms-consent{color:#5b4f47;}
