/* AI Практика · identity 1.1. One family, three weights, seven type roles. */
@font-face {
  font-family: "Onest";
  src: url("../fonts/Onest-variable.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
:root {
  --font-family: "Onest", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --display: clamp(42px, 4.9vw, 68px);
  --h2: clamp(28px, 3vw, 40px);
}
body { font-family: var(--font-family); }
h1,h2,h3,h4 { letter-spacing: -.04em; }
.wordmark { gap: 10px; letter-spacing: -.035em; min-height: 44px; }
.brand-lockup { display: block; width: 218px; height: auto; flex: none; }
.brand-symbol { display: block; width: 40px; height: 40px; object-fit: contain; flex: none; }
.footer .brand-lockup { width: 196px; }
.hero h1 { font-size: var(--display); letter-spacing: -.05em; line-height: 1.06; }
.hero .lead { font-size: 18px; line-height: 1.6; }
.hero .eyebrow, .hero-note { font-size: 14px; }
.hero .button, .hero .text-link { font-size: 16px; }
.board-top { font-size: 14px; letter-spacing: .035em; }
.board-bottom { font-size: 14px; font-weight: 500; min-height: 44px; gap: 14px; }
.board-bottom:hover { text-decoration: underline; }
.eyebrow,.section-heading .eyebrow,.page-head .eyebrow,
.workspace-heading .eyebrow,.continue-panel .eyebrow,
.support-note .eyebrow,.lesson-sidebar .eyebrow,.lesson-content>.eyebrow,
.learning-layout .eyebrow,.faq-layout .eyebrow,.closing .eyebrow { font-size: 14px; }
.course-meta,.course-bottom>span,.results-label,.course-cover .module-code { font-size: 14px; }
.cover-tag { font-size: 12px; }
.continue-panel .eyebrow { max-width: 52ch; }
.prose { max-width: 67ch; }
.auth-links { gap: 12px; }
.field:has(input[type="checkbox"]) { min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.field:has(input[type="checkbox"]) label { margin: 0; flex: 1; padding-block: 10px; }
@media (max-width: 1050px) {
  .hero { gap: 36px; }
  .hero .actions { align-items: flex-start; flex-direction: column; gap: 6px; }
  .hero h1 { font-size: clamp(42px, 5.4vw, 58px); }
  .hero .lead { font-size: 18px; }
}
@media (max-width: 760px) {
  .brand-lockup { width: 202px; }
  .header { gap: 16px; }
  .hero h1 { font-size: clamp(40px, 10.8vw, 60px); }
  .hero .lead { font-size: 18px; }
  .hero .eyebrow { max-width: 33ch; }
  .hero .actions { align-items: stretch; }
  .hero-note { font-size: 14px; line-height: 1.5; }
  .workspace-heading h1 { font-size: clamp(29px, 7.8vw, 36px); }
  .continue-panel h2 { font-size: 27px; }
  .my-module h3 { font-size: 19px; }
  .my-module p { font-size: 14px; }
  .board-top { font-size: 13px; }
}
@media (max-width: 359px) {
  .brand-lockup { width: 184px; }
  .hero .button { font-size: 16px; gap: 8px; }
  .hero h1 { font-size: 39px; }
  .workspace-heading h1 { font-size: 28px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
.hero .actions { align-items: flex-start; }
.trial-action { width: max-content; max-width: 100%; }
.hero .trial-action .button { width: 100%; }
.hero .trial-action .hero-note { margin-top: 12px; }
@media (max-width:760px) { .hero .trial-action { width: 100%; } .hero .actions { gap: 10px; } }
.catalog-roadmap { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin-top: 48px; }
.catalog-roadmap summary { padding: 24px 0; min-height: 72px; font-size: 22px; font-weight: 500; }
.catalog-roadmap summary small { font-size: 14px; color: var(--muted); font-weight: 400; display: block; margin-top: 4px; }
.catalog-roadmap summary>span:first-child { font: inherit; }
.catalog-roadmap[open] summary>span:first-child { transform: none; }
.catalog-roadmap>p { margin: 0 0 20px; max-width: 60ch; font-size: 16px; }
.roadmap-row { display: grid; grid-template-columns: 56px 1fr 24px; align-items: center; gap: 20px; min-height: 96px; border-top: 1px solid var(--line); padding: 20px 0; }
.roadmap-row h3 { margin: 0 0 6px; font-size: 20px; }
.roadmap-row p { font-size: 16px; color: var(--muted); margin: 0; }
.roadmap-row .module-code { font-size: 14px; }
.roadmap-row:hover { background: var(--accent-soft); text-decoration: none; }
.path-strip { font-size: 14px; }
@media(max-width:1050px) { .path-strip { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; } .path-strip>i,.path-strip .path-title { display: none; } }
@media(max-width:760px) { .path-strip { grid-template-columns: 1fr 1fr; } .roadmap-row { grid-template-columns: 38px 1fr 18px; gap: 12px; } .roadmap-row h3 { font-size: 18px; } .roadmap-row p { font-size: 14px; } }
.sidebar-heading,.my-module p,.time-note,.progress-dial>span,.date-note,.section-line>.subtle,.status { font-size: 14px; }
.progress-dial strong,.payment-total { font-variant-numeric: tabular-nums; }
/* Navigation uses labels instead of decorative diagonal arrows. */
.course-program{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:6px 8px;font-size:14px;font-weight:500;color:var(--ink);text-decoration:underline;text-underline-offset:5px;border-radius:var(--radius-sm)}
.course-program:hover{background:var(--accent-soft);text-decoration:underline}
.course-program:active{background:var(--line)}

/* Shared Practice / Connect identity, 1.3. */
:root{--on-accent:#fffefa;--signal:#d8e8dd;--focus:#668c4d}
body{font-synthesis:none}em,i{font-style:normal}em{font-weight:500}
.brand-type{display:flex;flex-direction:column;gap:2px;line-height:1.1;letter-spacing:0}
.brand-type strong{font-size:24px;font-weight:600;letter-spacing:-.035em}
.brand-type>span{font-size:14px;font-weight:400;color:var(--muted)}
.section-label{font-size:14px;color:var(--muted);margin-bottom:20px}
.underlink{display:inline-flex;align-items:center;min-height:44px;font-size:16px;font-weight:500;text-decoration:underline;text-underline-offset:5px}
.underlink:hover{color:var(--accent)}.underlink:active{color:var(--accent-hover)}
.dashboard-connect{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:28px;margin-top:32px}
.dashboard-connect h2{font-size:26px}.dashboard-connect p{font-size:16px;color:var(--muted);margin:0}
@media(max-width:760px){.dashboard-connect{align-items:start;flex-direction:column}.brand-type strong{font-size:22px}.brand-symbol{width:36px;height:36px}.announcement{font-size:14px;padding:12px 20px}}

/* Always-visible product navigation, including outside the mobile menu. */
.header #main-nav { margin-left: auto; }
.product-switch { display: flex; flex: none; gap: 4px; padding: 4px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--accent-soft); }
.product-switch a { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 9px 16px; border-radius: 3px; font-size: 16px; font-weight: 500; white-space: nowrap; }
.product-switch a:hover { background: var(--surface); text-decoration: underline; text-underline-offset: 5px; }
.product-switch a:active { background: var(--line); }
.product-switch a[aria-current] { background: var(--accent); color: var(--on-accent); text-decoration: underline; text-underline-offset: 5px; }
.product-switch a[aria-current]:hover { background: var(--accent-hover); }
.product-switch a[aria-current]:active { background: var(--ink); }
.product-switch a:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
@media screen and (max-width: 1100px) {
  .header { display: grid; grid-template-columns: 1fr auto; height: auto; min-height: 98px; padding-block: 16px; gap: 16px 24px; }
  .header .product-switch { grid-column: 1 / -1; grid-row: 2; justify-self: start; }
  .header #main-nav { font-size: 16px; }
}
@media (max-width: 760px) {
  .header { min-height: 0; gap: 12px 16px; padding-block: 12px; }
  .header .product-switch { width: 100%; }
  .product-switch a { flex: 1; padding-inline: 12px; }
  .header #main-nav { top: 100%; }
  .menu-toggle { margin-left: auto; }
}
