/* Систематика: смысловая редакция главной страницы, 17.10.2026.
   Only additive styles. The base design tokens/grid/typography remain in styles.css. */

/* The provided build bundled WOFF2 fonts. The distributable package excludes font files. */

.hero-overline {
  margin: 0 0 14px;
  font-family: 'Roboto', Roboto, Arial, sans-serif;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: .075em;
  color: var(--blue);
}
.hero h1 {
  max-width: 770px;
}
.hero h1 .hero-dynamic-word {
  color: var(--blue);
  text-decoration: underline;
  text-decoration-thickness: 3px;
  text-decoration-color: #bed5ff;
  text-underline-offset: 9px;
  white-space: nowrap;
  transition: color .18s ease, text-decoration-color .18s ease;
}
.hero-lead {max-width: 690px;font-weight: 500;}
.hero-detail {max-width: 645px;}
.hero-mechanism {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
  align-items: center;
  margin: 17px 0 0;
}
.hero-mechanism span {
  display: inline-block;
  background: #f1f6fd;
  color: #415a79;
  padding: 7px 10px;
  border-radius: 7px;
  font: 500 12px/1.35 'Roboto',Roboto,Arial,sans-serif;
}
.hero-mechanism span::before {
  content: '•'; color:var(--blue);font-size: 16px;margin-right:5px;
}
.hero-actions {margin-top:20px;}
.hero-actions .button {min-height:49px;}
.hero-art img {image-rendering:auto;}
/* Original four-number strip and trust credentials are intentionally unchanged. */

.outcome-stories .stories-heading p {max-width: 690px;}
.proof-cover {background:#eef5fb;}
.proof-cover img {
  display:block;
  position:static;
  width:100%;
  max-width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.proof-story:nth-child(2) .proof-cover img {object-position:55% center;}
.proof-story:nth-child(4) .proof-cover img {object-fit:contain;padding:14px;background:#f0e8fa;}
.proof-story:nth-child(5) .proof-cover img {object-fit:contain;padding:6px;background:#ecf7fc;}
.proof-story .story-caption h3 {letter-spacing:-.015em;}
.proof-story .story-caption p {line-height:1.5;color:var(--muted);display:block;}
.proof-story .story-cover {transition:transform .2s ease,box-shadow .2s ease;}
.proof-story:hover .story-cover {transform:translateY(-3px);box-shadow:0 10px 28px #07366b1b;}
.outcome-stories .stories-note {max-width: 720px;}

/* The quiz uses the original step and choice design with accessible progression. */
.selector-form .choices button[aria-pressed="true"] {
  background:#edf3ff;border-color:var(--blue);color:var(--blue);
  box-shadow:inset 0 0 0 1px var(--blue);
}
.selector-form .choices button {cursor:pointer;}
.selector-form .step-track .complete b {background:#dcebdc;color:#24643b;}
.selector-controls .button:disabled {opacity:.47;cursor:not-allowed;transform:none;}
.selector-controls .button {min-width:128px;}
.quiz-result h3 {margin-bottom:12px;}
.quiz-result p {font-size:15px;line-height:1.6;max-width:620px;}
.quiz-result .result-summary {color:var(--muted);font-size:13px;margin-bottom:15px;}
.quiz-result .quiz-result-card {border:1px solid #d3e3f4;background:#eff5ff;border-radius:15px;padding:22px;margin:17px 0 22px;}
.quiz-result .quiz-result-card strong {display:block;margin-bottom:8px;font-size:20px;color:#064ab9;line-height:1.3;}
.quiz-result .quiz-result-card p {font-size:14px;}
.quiz-result-actions {display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
.quiz-result-actions .button {font-size:14px;padding:12px 20px;min-height:45px;}
.quiz-result-disclaimer {margin-top:14px;color:var(--muted);font-size:12px!important;}

/* Contact modal: real contact links, no fake form submissions. */
.consult-dialog .dialog-inner {padding:42px;}
.dialog-kicker {font-size:12px;letter-spacing:.07em;color:var(--blue);font-weight:700;display:block;margin-bottom:17px;}
.dialog-options {display:grid;gap:11px;margin:25px 0 20px;}
.dialog-contact {display:flex;flex-direction:column;gap:7px;padding:15px 18px;background:#f4f7fc;border:1px solid #dae5f3;border-radius:14px;text-decoration:none;}
.dialog-contact:hover {border-color:var(--blue);background:#edf3ff;}
.dialog-contact strong {font-size:18px;font-weight:600;color:var(--blue);}
.dialog-contact span {font-size:13px;color:#65768b;}
.consult-dialog .dialog-muted {font-size:12px;color:var(--muted);}
.mobile-dialog nav {display:grid;gap:0;}
.mobile-dialog nav a {padding:14px 0;border-bottom:1px solid var(--line);font-size:18px;font-weight:500;}
.mobile-dialog nav a:hover {color:var(--blue);}

/* Avoid old videos' structural affordance in this new section. */
.outcome-stories .story-play {display:none;}

@media (max-width:1100px) {
  .hero-mechanism {gap:5px;}
  .hero-mechanism span {font-size:11px;padding-inline:8px;}
}
@media (max-width:800px) {
  .hero h1 .hero-dynamic-word {text-underline-offset:7px;}
  .hero-overline {font-size:11px;}
  .hero-mechanism span {font-size:11px;}
}
@media (max-width:700px) {
  .hero-overline {margin-bottom:12px;letter-spacing:.055em;font-size:10px;}
  .hero h1 .hero-dynamic-word {font-size:.87em;letter-spacing:-.045em;text-underline-offset:5px;text-decoration-thickness:2px;}
  .hero-lead {margin-top:21px;}
  .hero-mechanism {margin-top:13px;gap:6px;}
  .hero-mechanism span {padding:6px 8px;font-size:11px;}
  .hero-actions {margin-top:18px;}
  .hero-actions .button {font-size:14px;}
  .proof-story .story-caption p {font-size:13px;}
  .consult-dialog .dialog-inner {padding:35px 22px 25px;}
  .dialog-contact strong {font-size:16px;}
}
@media (max-width:380px) {
  .hero h1 {font-size:32px;}
  .hero-mechanism span {font-size:10px;}
}
@media (prefers-reduced-motion:reduce) {
  .hero h1 .hero-dynamic-word,.proof-story .story-cover {transition:none;}
}
@media (min-width:801px) {
  /* The full navigation is already visible on desktop; one less redundant control. */
  .header-top .menu-button {display:none;}
}


/* V3: compact trust-first hero. V13: direction switches removed. */
.hero .hero-lead {
  margin-top:17px;
  max-width:690px;
  font-size:18px;
  line-height:1.48;
  font-weight:400;
  letter-spacing:-.005em;
  color:#344353;
}
.hero .hero-lead strong {
  color:#101b30;
  font-weight:700;
}
.hero .hero-actions {margin-top:20px;}
@media (min-width:801px) {
  .hero .hero-lead {font-size:19px;max-width:650px;}
}
@media (max-width:700px) {
  .hero {padding-top:13px;gap:16px;padding-bottom:17px;}
  .hero h1 {font-size:clamp(32px,8.3vw,46px);line-height:1.065;letter-spacing:-.033em;}
  .hero h1 .hero-dynamic-word {font-size:.92em;}
  .hero .hero-lead {font-size:17px;line-height:1.45;margin-top:15px;max-width:440px;}
  .hero .hero-actions {margin-top:17px;gap:4px;display:flex;align-items:stretch;flex-direction:column;}
  .hero .hero-actions .button:not(.button-outline){display:flex;justify-content:center;min-height:49px;font-size:15px;}
  .hero .hero-actions .button-outline {
    display:inline-flex;align-self:center;width:auto;min-height:0;height:auto;
    border:0;background:transparent;color:var(--blue);box-shadow:none;
    padding:8px 12px;margin-top:0;font-size:14px;text-decoration:underline;text-underline-offset:3px;
    font-weight:600;
  }
  .hero .hero-caption{display:none;}
  .hero .hero-art {margin-top:0;}
  .hero .hero-art img {max-height:320px;}
}
@media (max-width:380px) {
  .hero h1 {font-size:clamp(31px,8vw,36px);}
  .hero .hero-lead {font-size:16px;}
}


/* V4: proof-first copy, verified credentials, and compact 3-option consultation flow. */
.cta-arrow {display:inline-block; flex:0 0 auto; width:19px;height:19px; vertical-align:middle; overflow:visible;}
.credential span {overflow-wrap:anywhere;}
.dialog-options {gap:11px;}
.dialog-contact {width:100%;text-align:left;font-family:inherit;cursor:pointer;}
.dialog-contact-callback,.dialog-callback-button {background:#e9f1ff;border:1px solid #bcd2fa;}
.dialog-contact-callback:hover,.dialog-callback-button:hover{background:#dfeafe;}
.dialog-contact-messaging {cursor:default;}
.dialog-contact-messaging:hover{border-color:#dae5f3;background:#f4f7fc;}
.dialog-callback-button strong {font-size:19px;}
.callback-status {padding:10px 13px;border-radius:9px;background:#fff8e6;border:1px solid #f0dcab;font-size:13px;line-height:1.45;color:#685325;margin:-3px 0 1px;}
.callback-status[hidden]{display:none;}
.messenger-links{display:flex;gap:9px;flex-wrap:wrap;margin-top:8px;}
.messenger-links a{display:inline-flex;align-items:center;justify-content:center;min-width:86px;min-height:38px;padding:8px 13px;border-radius:10px;border:1px solid #ccdbf0;background:#fff;color:var(--blue);font-size:14px;font-weight:600;text-decoration:none;}
.messenger-links a:hover{border-color:var(--blue);background:#eef4ff;}
.selector-controls:empty{display:none;}
.selector-controls .back-link:only-child{margin-right:auto;}
@media(max-width:700px){
  .consult-dialog .dialog-inner{padding:29px 21px 23px;}
  .consult-dialog h2{font-size:26px;line-height:1.15;}
  .dialog-options{gap:9px;margin:16px 0 13px;}
  .dialog-contact{padding:12px 14px;gap:4px;}
  .dialog-contact strong{font-size:16px;}
  .dialog-contact span{font-size:12px;}
  .messenger-links{gap:6px;margin-top:7px;}
  .messenger-links a{min-height:36px;font-size:13px;min-width:0;flex:1;}
}


/* V5 scoped update: the Olympiad promo card and new portrait only. All other V4 rules remain intact. */
.olympiad.olympiad-v5{
  position:relative; isolation:isolate; display:grid;
  grid-template-columns:minmax(0,1.06fr) minmax(0,.95fr);
  align-items:center; column-gap:24px; min-height:488px;
  border-radius:18px; padding:28px 28px 28px 36px;
  overflow:hidden; background:#ffdf50; color:#001326;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.36);
}
.olympiad.olympiad-v5:before{
  content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;opacity:.29;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='500' height='440' viewBox='0 0 500 440'%3E%3Cg stroke='%23f5ab16' fill='none' stroke-width='3.3' opacity='.64'%3E%3Cpath d='M25 60l23 13-9 32-31-8z M128 343l19-29 28 20-17 25z'/%3E%3Ccircle cx='330' cy='75' r='24'/%3E%3Ccircle cx='425' cy='345' r='43' stroke-dasharray='12 15'/%3E%3Cpath d='M204 66l9 26 29 0-23 17 8 28-23-16-23 16 8-28-22-17 28 0z'/%3E%3Cpath d='M75 201q95-97 176-27t123 36' stroke-dasharray='19 15'/%3E%3Cpath d='M280 379l0-33 m-16 16h33 M402 158l18 0 m-9-9v18'/%3E%3Cpath d='M78 304l13 15-13 15-13-15z M349 269l33-17 25 26'/%3E%3C/g%3E%3C/svg%3E");
}
.olympiad.olympiad-v5 .olympiad-copy{position:relative;z-index:2;min-width:0;padding:0}
.olympiad-v5 .op-status{
  display:inline-flex;align-items:center;gap:9px;width:max-content;max-width:100%;
  padding:12px 14px;border-radius:999px;background:#0049d8;color:white;
  font-weight:700;font-size:14px;line-height:1.24;box-shadow:0 3px 12px rgba(0,73,216,.1);
}
.olympiad-v5 .op-status svg{height:22px;width:22px;flex:0 0 22px}
.olympiad.olympiad-v5 h2{
  font-family:Montserrat,sans-serif;font-weight:800;letter-spacing:-.038em;
  font-size:clamp(29px,3.55vw,45px);line-height:1.12;margin:18px 0 12px;
}
.olympiad.olympiad-v5 .op-summary{
  margin:0;color:#172b35;font-size:16px;line-height:1.48;max-width:500px;
}
.olympiad-v5 .op-dates{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:17px;max-width:520px}
.olympiad-v5 .op-date{
  display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.96);
  border:1px solid rgba(0,73,216,.10);border-radius:12px;padding:11px 12px;
  min-height:74px;min-width:0;
}
.olympiad-v5 .op-date svg{height:29px;width:29px;flex:0 0 29px;color:#0049d8}
.olympiad-v5 .op-date strong{display:block;color:#0049d8;font-size:14px;line-height:1.3;margin-bottom:3px}
.olympiad-v5 .op-date span{display:block;color:#102338;font-size:12px;line-height:1.4}
.olympiad-v5 .op-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.olympiad.olympiad-v5 .op-actions .button{
  min-height:49px;padding:12px 17px;font-size:14px;gap:9px;
  width:auto;white-space:nowrap;border-radius:999px;
}
.olympiad-v5 .op-actions .op-button-secondary{
  color:#0049d8;background:white;border:1.5px solid #0049d8;
}
.olympiad-v5 .op-actions .op-button-secondary:hover{background:#ecf4ff;color:#003bb0}
.olympiad-v5 .op-actions svg{width:17px;height:17px}
.olympiad-v5 .op-collage{
  position:relative;z-index:1;min-width:0;width:100%;height:395px;isolation:isolate;
}
.olympiad-v5 .op-collage:before{
  content:"";position:absolute;right:9%;top:0;width:135px;height:135px;border-radius:50%;
  background:#0049d8;filter:saturate(1.2);
}
.olympiad-v5 .op-collage:after{
  content:"";position:absolute;left:6%;bottom:19%;width:60px;height:60px;
  border-left:3px solid #0860e9;border-bottom:3px solid #0860e9;
  transform:rotate(-28deg);border-radius:0 0 0 100%;opacity:.7;z-index:-1;
}
.olympiad-v5 .op-photo{
  position:absolute;display:block;border:6px solid #fff;border-radius:10px;
  width:53%;height:46%;object-fit:cover;background:#fff;
  box-shadow:0 9px 22px rgba(12,37,69,.15);
}
.olympiad-v5 .op-photo.one{left:4%;top:9%;transform:rotate(-7deg);z-index:3}
.olympiad-v5 .op-photo.two{right:3%;top:13%;width:45%;height:45%;transform:rotate(7deg);z-index:2}
.olympiad-v5 .op-photo.three{left:10%;bottom:3%;transform:rotate(7deg);z-index:4}
.olympiad-v5 .op-photo.four{right:2%;bottom:6%;width:47%;height:43%;transform:rotate(-6deg);z-index:5}
/* The portrait is the only other visual change on the page. */
.founder-portrait > img{
  object-fit:cover;object-position:center 27%;border-radius:16px;
}
@media(max-width:1100px){
  .olympiad.olympiad-v5{grid-template-columns:minmax(0,1.1fr) minmax(0,.85fr);gap:12px;padding:28px 22px;min-height:455px}
  .olympiad.olympiad-v5 h2{font-size:clamp(27px,3.6vw,39px)}
  .olympiad-v5 .op-status{font-size:12px;padding:10px 12px}
  .olympiad-v5 .op-date{padding:9px;gap:7px}
  .olympiad-v5 .op-date svg{width:24px;height:24px;flex-basis:24px}
  .olympiad-v5 .op-date strong{font-size:12px}
  .olympiad-v5 .op-date span{font-size:11px}
  .olympiad-v5 .op-collage{height:335px}
}
@media(max-width:800px){
  .olympiad.olympiad-v5{grid-template-columns:1fr;display:flex;flex-direction:column;align-items:stretch;gap:8px;min-height:0}
  .olympiad-v5 .op-collage{width:min(100%,530px);align-self:center;height:315px}
  .olympiad.olympiad-v5 .op-actions .button{font-size:14px}
}
@media(max-width:700px){
  .olympiad.olympiad-v5{padding:24px 17px 18px;gap:4px}
  .olympiad-v5 .op-status{font-size:11px;line-height:1.3;padding:9px 11px;gap:7px}
  .olympiad-v5 .op-status svg{height:19px;width:19px;flex-basis:19px}
  .olympiad.olympiad-v5 h2{font-size:clamp(27px,7.7vw,34px);line-height:1.12;margin:15px 0 10px}
  .olympiad.olympiad-v5 .op-summary{font-size:15px;line-height:1.45}
  .olympiad-v5 .op-dates{gap:8px;margin-top:14px}
  .olympiad-v5 .op-date{min-height:68px;padding:8px 9px}
  .olympiad-v5 .op-date strong{font-size:12px}
  .olympiad-v5 .op-date span{font-size:11px}
  .olympiad-v5 .op-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
  .olympiad.olympiad-v5 .op-actions .button{width:100%;min-height:46px;font-size:12px;padding:10px 8px;gap:5px}
  .olympiad-v5 .op-collage{height:255px;margin-top:10px;max-width:380px}
  .olympiad-v5 .op-collage:before{width:108px;height:108px}
  .olympiad-v5 .op-photo{border-width:4px;border-radius:7px}
}
@media(max-width:370px){
  .olympiad.olympiad-v5{padding:20px 13px 16px}
  .olympiad-v5 .op-date{gap:5px;padding:7px}
  .olympiad-v5 .op-date svg{width:20px;height:20px;flex-basis:20px}
  .olympiad-v5 .op-date span{font-size:10px}
  .olympiad-v5 .op-collage{height:224px}
}



/* V6: localized changes. Do not change V5 layout outside the reviews and Mikhail portraits. */
.founder-portrait > img { object-fit:contain; object-position:center center; border-radius:0; }
.mentor:first-child .mentor-photo { background:#fff; }
.mentor:first-child .mentor-photo img { object-fit:contain; object-position:center; transform:none; background:transparent; }
.reviews-carousel { margin-top: 0; }
.reviews-viewport { overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; scroll-behavior:smooth; padding:2px 1px 6px; }
.reviews-viewport::-webkit-scrollbar {display:none}
.review-grid.reviews-track { display:grid; grid-auto-flow:column; grid-template-columns:none; grid-auto-columns:calc((100% - 40px) / 3); gap:20px; align-items:stretch; }
.reviews-track > .review { min-width:0; scroll-snap-align:start; scroll-snap-stop:normal; }
.reviews-track .review-author > div {min-width:0}
.reviews-track .review-author h3{overflow-wrap:anywhere}
.reviews-track .review-author .review-tenure { font-size:12px; color:#48576a; margin-top:5px; line-height:1.35; }
.reviews-track .review-course { font-size:12px; line-height:1.4; margin-top:16px; overflow-wrap:anywhere; }
.reviews-track blockquote.review-quote{margin:0; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:6; overflow:hidden; }
.reviews-track blockquote.review-quote.is-expanded {display:block; overflow:visible; -webkit-line-clamp:unset; }
.reviews-track .review-more {border:0; background:transparent; padding:8px 0; margin:10px 0 0; width:max-content; color:var(--blue); font:inherit; font-size:13px; font-weight:650; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.reviews-track .review-more:hover {color:#082f86}
.reviews-track .review-more[hidden] {display:none!important}
.reviews-pagination {display:flex; gap:19px; justify-content:center; align-items:center; margin-top:23px; }
.reviews-arrow { background:#fff; color:var(--blue); width:43px; height:43px; display:grid; place-items:center; border-radius:50%; border:1px solid #bed0ec; font-size:25px; cursor:pointer; transition:background .2s,color .2s,border-color .2s; }
.reviews-arrow:hover:not(:disabled){color:#fff;background:var(--blue);border-color:var(--blue)}
.reviews-arrow:disabled {opacity:.32;cursor:default}
.reviews-progress {display:flex; align-items:center; justify-content:center; flex-direction:column; gap:8px; min-width:126px; font-size:13px; color:var(--muted); }
.reviews-dots {display:flex;align-items:center;gap:7px}
.reviews-dot {width:9px;height:9px;border:0;border-radius:99px;background:#c2ccdb; padding:0;cursor:pointer;}
.reviews-dot[aria-current="true"] {background:var(--blue);width:23px}
.reviews-viewport:focus-visible {outline:2px solid var(--blue);outline-offset:4px}
@media(max-width:1100px){.review-grid.reviews-track {grid-auto-columns:calc((100% - 20px) / 2)}}
@media(max-width:800px){.review-grid.reviews-track {grid-template-columns:none;grid-auto-columns:100%;gap:14px}}
@media(prefers-reduced-motion:reduce){.reviews-viewport{scroll-behavior:auto}}
