/* Студийная тема. Общие компоненты сохраняют существующие состояния,
   формы и виджеты. Версия ресурса определяется через asset(). */
:root {
  --page:#f5f5f7; --surface:#fff; --surface-2:#f0f1f4; --surface-3:#e8e9ee;
  --border:#dcdde3; --border-strong:#b8bbc5;
  --ink:#1d1d1f; --ink-2:#494950; --ink-3:#64646d; --ink-4:#64646d;
  --accent:#0066cc; --accent-hover:#0054a8; --accent-soft:#e9f2ff; --accent-ink:#fff;
  --success:#246b3c; --success-soft:#eaf6ee; --warn:#835509; --warn-soft:#fff3dc;
  --danger:#b3261e; --danger-soft:#fff0ee;
  --radius:20px; --radius-sm:12px; --radius-lg:28px;
  --shadow-sm:0 2px 8px #20203306; --shadow:0 8px 32px #2020330a;
  --shadow-lg:0 24px 70px #20203314; --ring:0 0 0 1px #20203306;
  --font:-apple-system,BlinkMacSystemFont,'Inter','Segoe UI',Arial,sans-serif;
  --font-display:var(--font); --font-read:var(--font);
  --wrap:1200px; --nav-h:72px; --glass:rgba(250,250,252,.9);
  
}
@media (prefers-color-scheme:dark) {
  :root:not([data-theme="light"]) {
    --page:#101012; --surface:#1c1c1f; --surface-2:#252528; --surface-3:#303035;
    --border:#3b3b42; --border-strong:#64646e;
    --ink:#f5f5f7; --ink-2:#d1d1d7; --ink-3:#a7a7b0; --ink-4:#a7a7b0;
    --accent:#83baff; --accent-hover:#afd2ff; --accent-soft:#202e43; --accent-ink:#101012;
    --success:#8ad5a2; --success-soft:#1e3326; --warn:#edc177; --warn-soft:#392d1c;
    --danger:#ff9a92; --danger-soft:#3c2526; --glass:rgba(24,24,27,.92);
    --shadow-sm:0 2px 10px #0002; --shadow:0 8px 32px #0003; --shadow-lg:0 24px 70px #0005;
    
  }
}
:root[data-theme="dark"] {
  --page:#101012; --surface:#1c1c1f; --surface-2:#252528; --surface-3:#303035;
  --border:#3b3b42; --border-strong:#64646e;
  --ink:#f5f5f7; --ink-2:#d1d1d7; --ink-3:#a7a7b0; --ink-4:#a7a7b0;
  --accent:#83baff; --accent-hover:#afd2ff; --accent-soft:#202e43; --accent-ink:#101012;
  --success:#8ad5a2; --success-soft:#1e3326; --warn:#edc177; --warn-soft:#392d1c;
  --danger:#ff9a92; --danger-soft:#3c2526; --glass:rgba(24,24,27,.92);
  --shadow-sm:0 2px 10px #0002; --shadow:0 8px 32px #0003; --shadow-lg:0 24px 70px #0005;
  
}
body { font-size:16px; letter-spacing:-.012em; }
h1,h2,h3,h4,.hero h1,.logo span { font-family:var(--font); letter-spacing:-.035em; }
h1 { font-weight:700; line-height:1.09; font-size:clamp(2rem,4.2vw,3.7rem); text-wrap:balance; }
h2 { font-size:clamp(1.5rem,2.8vw,2.4rem); line-height:1.16; }
h3 { letter-spacing:-.02em; line-height:1.3; }
.nav { background:var(--glass); border-bottom:1px solid var(--border); backdrop-filter:blur(22px) saturate(150%); -webkit-backdrop-filter:blur(22px) saturate(150%); box-shadow:none; }
.nav-inner { min-height:72px; }
.logo { gap:10px; }
.logo span { font-size:16px; font-weight:650; }
.logo .logo-mark { border-radius:11px; background:var(--ink); color:var(--surface); border:0; box-shadow:none; font-size:15px; }
.nav-links { gap:6px; }
.nav-links > a:not(.btn) { padding:8px 12px; font-size:13px; border-radius:9px; }
.nav-links > a.is-active:not(.btn) { background:var(--surface-3); color:var(--ink); }
.nav-links > a::after { display:none; }
.theme-toggle,.nav-toggle { border-radius:50%; }
.btn { border-radius:999px; letter-spacing:-.01em; font-weight:550; box-shadow:none; padding:11px 21px; }
.btn-lg { padding:14px 25px; font-size:16px; }
.btn-sm { padding:7px 14px; }
.btn-ghost { background:var(--surface); border-color:var(--border); color:var(--accent); }
.btn-ghost:hover { background:var(--accent-soft); border-color:var(--accent); }
.btn-quiet { background:transparent; }
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible { outline:3px solid var(--accent); outline-offset:4px; }
.card { border-radius:22px; border:1px solid var(--border); background:var(--surface); box-shadow:var(--shadow-sm); }
.will-reveal { opacity:1; transform:none; }
.card-hover { transition:transform .2s,box-shadow .2s,border-color .2s; }
.card-hover:hover { transform:translateY(-3px); box-shadow:var(--shadow); border-color:var(--border-strong); text-decoration:none; }
.course-card,.article-card { padding:0; overflow:hidden; }
.course-body,.article-card .article-body { padding:24px; }
.course-card h3,.article-title { font-size:21px; }
.course-art,.article-art { border-radius:0; }
.course-art-num { border-radius:999px; }
.course-hero-art,.article-lead-art { border-radius:22px; overflow:hidden; }
.badge { border-radius:999px; padding:5px 10px; font-family:var(--font); letter-spacing:0; font-size:12px; background:var(--surface-2); }
.tag-badge { border:0; }
.tab { border:0; border-radius:999px; padding:9px 16px; margin:0; background:var(--surface-2); }
.tab:hover { background:var(--surface-3); }
.tab.is-active { background:var(--ink); color:var(--surface); border:0; }
.tab.is-active .tab-count { color:inherit; }
.tab-count { font-family:var(--font); vertical-align:baseline; }
.articles-filter { border:0; gap:8px; flex-wrap:wrap; }
.toc { border-top:0; display:grid; gap:12px; }
.toc-item { background:var(--surface); border:1px solid var(--border); border-radius:18px; overflow:hidden; }
.toc-link { padding:22px; align-items:center; }
.toc-link:hover { background:var(--accent-soft); }
.toc-num { opacity:1; font-size:18px; color:var(--ink-3); text-align:center; }
.toc-title { font-size:21px; }
.toc-meta { font-family:var(--font); }
.stage-head.is-second { border-top:1px solid var(--border); }
.side { background:var(--surface-2); border:1px solid var(--border); border-radius:20px; padding:16px; }
.side a { border-radius:10px; }
.side a.is-active { background:var(--accent-soft); color:var(--accent); }
.side-title { font-size:11px; letter-spacing:.04em; font-weight:600; }
.acc { border-radius:16px; overflow:hidden; background:var(--surface); border-color:var(--border); margin-bottom:12px; }
.acc > summary { padding:18px 22px; }
.lesson-row { border-radius:10px; }
.lesson-shell { padding-left:0; }
.lesson-head::before { display:none; }
.lesson-head { padding-bottom:24px; border-bottom:1px solid var(--border); margin-bottom:30px; }
.lesson-head .lesson-title { font-size:clamp(2rem,3.7vw,3.1rem); }
.lesson-kicker,.breadcrumbs,.widget-tag { font-family:var(--font); letter-spacing:0; }
.lesson-outcome { border-radius:16px; background:var(--accent-soft); border:0; padding:20px; color:var(--ink); }
.article-head { padding:32px 0 36px; border-bottom:1px solid var(--border); margin-bottom:36px; }
.article-head h1 { font-size:clamp(2.2rem,4.3vw,3.8rem); }
.article-head .hero-lead { margin-top:24px; }
.prose,.lesson-shell .prose,.article-body.prose { font-family:var(--font); font-size:17px; line-height:1.8; }
.prose > p:first-of-type,.lesson-shell .prose > p:first-of-type { font-family:var(--font); font-size:inherit; }
.prose h2,.lesson-shell .prose h2 { font-family:var(--font); font-size:1.65rem; margin-top:2em; }
.prose h3 { font-size:1.25rem; }
.prose img { border-radius:16px; }
.prose table { font-size:15px; }
.widget { border:1px solid var(--border); border-radius:20px; overflow:hidden; box-shadow:var(--shadow-sm); }
.widget-head { padding:20px 22px; background:var(--surface-2); }
.widget-head h3 { font-family:var(--font); font-size:18px; }
.widget-tag { font-size:11px; font-weight:600; }
.quiz-text { font-family:var(--font); }
.quiz-option { border-radius:12px; padding:13px; }
.checklist-item { padding:13px 2px; }
input:not([type=checkbox]):not([type=radio]):not([type=range]),textarea,select { border-radius:11px; }
input[type=checkbox],input[type=radio] { accent-color:var(--accent); }
.progress,.progress-bar { border-radius:999px; }
.article-cta { background:var(--accent-soft); border:0; }
@media(prefers-reduced-motion:reduce) {
  .will-reveal { opacity:1; transform:none; }
.card-hover { transition:none; }
  .card-hover:hover { transform:none; }
}
@media print {
  :root { --page:#fff; --surface:#fff; --ink:#000; --ink-2:#222; --ink-3:#444; }
  .card,.draft,.widget { box-shadow:none; }
}
/* Верхняя навигация имеет собственный цвет ссылок в базовой теме. */
.nav-links > .btn { color:var(--accent-ink); }
.hero::before,.hero::after { display:none; }
/* Мобильная базовая тема скрывает br; смысловые строки не должны слипаться. */
.hero-accent { display:block; }
.side a.btn:not(.btn-ghost):not(.btn-quiet) { color:var(--accent-ink); }
.side a.btn { border-radius:999px; }

/* Композиция витрины: крупная типографика, отдельные материалы, ясный ритм. */
:root { --studio-hero:#edf0f5; --studio-hero-ink:#14223a; }
html { scroll-padding-top:100px; }
.logo .logo-mark { width:35px; height:35px; display:grid; place-items:center; padding:0; font-size:15px; }
.logo span { letter-spacing:-.03em; }
.nav-links > a:not(.btn) { padding:10px 12px; }
.eyebrow { color:var(--ink-3); font-size:12px; font-weight:650; letter-spacing:.075em; text-transform:uppercase; margin:0 0 18px; line-height:1.5; }
.soft-ink { color:var(--ink-3); }
.text-link { display:inline-flex; align-items:center; gap:10px; color:var(--accent); font-size:15px; font-weight:550; min-height:44px; text-decoration:none; }
.text-link:hover { text-decoration:underline; text-underline-offset:5px; }
.studio-hero { padding:0; overflow:hidden; background:var(--surface); }
.studio-hero-grid { display:grid; grid-template-columns:.88fr 1.12fr; gap:28px; min-height:620px; align-items:center; padding-block:42px 46px; }
.studio-hero-copy { position:relative; z-index:1; }
.studio-hero h1 { font-size:clamp(48px,5.5vw,72px); line-height:1.08; font-weight:700; letter-spacing:-.055em; word-spacing:.04em; margin:20px 0 26px; }
.studio-hero h1 span { color:var(--accent); }
.studio-lead { font-size:19px; line-height:1.6; color:var(--ink-2); max-width:44ch; margin:0; }
.studio-hero .studio-lead { font-size:17px; max-width:40ch; }
.studio-actions { display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin-top:30px; }
.studio-hero-visual { margin:0; position:relative; background:var(--studio-hero); border-radius:32px; overflow:hidden; align-self:stretch; display:flex; flex-direction:column; min-width:0; }
.studio-hero-visual img { width:100%; height:100%; min-height:0; flex:1; object-fit:cover; object-position:52% center; }
.studio-hero-visual figcaption { position:absolute; bottom:22px; left:24px; right:24px; background:rgba(247,249,252,.85); color:#263447; backdrop-filter:blur(14px); border:1px solid #ffffff80; border-radius:16px; padding:14px 18px; display:flex; gap:12px; justify-content:space-between; align-items:center; font-size:12px; font-weight:550; }
.studio-facts { display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px solid var(--border); padding-block:23px; font-size:13px; color:var(--ink-3); }
.studio-facts > span { display:flex; align-items:center; gap:10px; }
.studio-facts strong { font-size:23px; color:var(--ink); letter-spacing:-.045em; font-weight:600; }
.studio-section { padding-block:90px; }
.studio-section-head { display:flex; align-items:flex-end; justify-content:space-between; gap:32px; margin-bottom:36px; }
.studio-section-head h2,.studio-method h2,.studio-access h2 { font-size:clamp(28px,3vw,38px); letter-spacing:-.05em; line-height:1.1; margin:0; }
.studio-section-head > p { max-width:40ch; color:var(--ink-3); font-size:15px; line-height:1.6; margin:0; }
.studio-course-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.course-card { border:0; border-radius:24px; box-shadow:0 3px 8px #15274305; }
.course-card .course-art { margin:0; display:block; }
.course-card > .course-body { padding:25px 26px 20px; gap:0; }
.course-overline { color:var(--ink-3); font-size:11px; font-weight:650; text-transform:uppercase; letter-spacing:.065em; display:block; margin-bottom:12px; }
.course-card h3 { font-size:23px; line-height:1.2; letter-spacing:-.035em; margin:0 0 13px; }
.course-card .course-description { font-size:13px; line-height:1.65; }
.course-bottom { margin-top:auto; padding-top:24px; display:flex; align-items:center; justify-content:space-between; gap:12px; color:var(--ink-3); font-size:12px; }
.course-arrow { display:grid; place-items:center; border-radius:50%; width:32px; height:32px; background:var(--surface-2); color:var(--ink); }
/* Палитры обложек фиксированы: сохраняют контраст в обеих темах. */
.cover-blue { background:#dae8ff; color:#153d7e; }
.cover-silver { background:#e8ecf2; color:#273a54; }
.cover-sand { background:#efe7df; color:#60432e; }
.cover-mint { background:#e0eee7; color:#275541; }
.cover-ink { background:#1b293e; color:#e4edfb; }
.course-cover { position:relative; display:flex; flex-direction:column; width:100%; height:216px; overflow:hidden; padding:25px 27px; box-sizing:border-box; }
.cover-top { display:flex; justify-content:space-between; gap:10px; align-items:center; font-size:11px; font-weight:600; opacity:.9; }
.cover-line { font-size:25px; font-weight:650; line-height:1.12; letter-spacing:-.045em; max-width:16ch; margin-top:23px; z-index:1; }
.cover-symbol { position:absolute; bottom:23px; right:24px; }
.course-art .cover-symbol svg,.course-hero-art .cover-symbol svg { width:38px; height:38px; min-width:0; }
.cover-with-image .cover-line { max-width:10ch; font-size:26px; }
.cover-picture { position:absolute; width:62%; max-width:none; height:142px; object-fit:cover; object-position:left top; bottom:-12px; right:-52px; border-radius:10px; box-shadow:-8px 4px 28px #18253b26; transform:rotate(-8deg); }
.cover-with-image .cover-line { width:55%; }
.cover-strip { height:84px; padding:16px 22px; }
.cover-strip .cover-line { font-size:21px; margin-top:8px; max-width:none; }
.cover-strip .cover-top { font-size:10px; }
.cover-strip .cover-picture { width:28%; height:95px; right:-10px; }
.cover-strip .cover-symbol { bottom:18px; }
.cover-wide { height:220px; padding:30px 34px; }
.cover-wide .cover-line { font-size:42px; max-width:none; margin-top:28px; }
.cover-wide .cover-picture { height:220px; width:45%; bottom:-35px; right:-45px; }
.cover-wide.cover-with-image .cover-line { max-width:10ch; }
.course-hero-art { max-height:none; display:block; border-radius:24px; margin-bottom:35px; }
.studio-showcase { background:#14233b; color:#f3f6fd; padding-block:80px; }
.studio-showcase .eyebrow,.studio-showcase .studio-section-head > p { color:#bac9df; }
.studio-result-grid { display:grid; grid-template-columns:1.3fr 1fr; gap:24px; }
.studio-result { display:flex; flex-direction:column; position:relative; overflow:hidden; border-radius:28px; text-decoration:none; transition:transform .2s; }
.studio-result:hover { transform:translateY(-4px); text-decoration:none; }
.studio-result-copy { display:flex; flex-direction:column; align-items:flex-start; position:relative; padding:35px; gap:15px; z-index:1; }
.studio-result h3 { font-size:34px; line-height:1.12; letter-spacing:-.045em; margin:0; color:inherit; }
.studio-result .eyebrow { font-size:10px; margin:0; color:inherit; }
.studio-result-copy > span:not(.eyebrow):not(.text-link) { font-size:14px; line-height:1.6; max-width:36ch; }
.studio-result-main { background:#e8eef8; color:#172940; }
.studio-result-main .text-link { color:#154f9c; }
.studio-result-main img { display:block; height:350px; object-fit:cover; object-position:bottom; width:calc(100% - 54px); margin:0 0 -20px 35px; border-radius:14px 0 0; box-shadow:0 0 30px #14233b1a; }
.studio-result-visual { background:#f3f3f3; color:#172940; justify-content:space-between; }
.studio-result-visual img { display:block; width:100%; height:360px; object-fit:cover; object-position:center; }
.studio-result-visual .studio-result-copy { padding-top:24px; }
.studio-result-visual .text-link { color:#154f9c; }
.studio-method { display:grid; grid-template-columns:1fr 1fr; gap:110px; }
.studio-method > div > p:not(.eyebrow) { color:var(--ink-3); max-width:37ch; font-size:16px; line-height:1.7; margin:25px 0 10px; }
.studio-steps { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; justify-content:space-between; }
.studio-steps li { display:flex; gap:26px; padding:26px 0; border-bottom:1px solid var(--border); }
.studio-steps li:first-child { padding-top:6px; }
.studio-steps li > span { font-size:14px; color:var(--accent); font-variant-numeric:tabular-nums; padding-top:4px; }
.studio-steps h3 { font-size:22px; margin:0 0 10px; }
.studio-steps p { font-size:14px; color:var(--ink-3); margin:0; line-height:1.7; }
.studio-reading { background:var(--surface); }
.studio-reading .card { background:var(--page); border:0; }
.studio-access { display:flex; justify-content:space-between; align-items:center; gap:45px; padding-block:82px 28px; }
.studio-access p:not(.eyebrow) { color:var(--ink-3); font-size:14px; line-height:1.7; margin:20px 0 0; }
.studio-access .studio-actions { flex-direction:column; align-items:flex-start; gap:10px; margin:0; flex-shrink:0; }
.footer { padding:36px 0; margin-top:60px; background:transparent; }
.footer-inner { display:flex; align-items:center; justify-content:space-between; gap:28px; }
.footer strong { color:var(--ink); font-size:16px; }
.footer p { margin:7px 0 0; font-size:12px; }
.footer .row { font-size:12px; }

/* Каталог и страницы чтения используют ту же иерархию. */
.catalog-page { padding-block:65px; }
.catalog-head { margin-bottom:35px; }
.catalog-head h1,.editorial-head h1 { font-size:clamp(36px,4.3vw,56px); letter-spacing:-.055em; margin:0 0 26px; line-height:1.05; }
.catalog-nav { display:flex; gap:10px; flex-wrap:wrap; margin:32px 0; }
.catalog-nav a { display:flex; align-items:center; gap:16px; padding:12px 22px; background:var(--surface); border:1px solid var(--border); border-radius:999px; font-size:14px; color:var(--ink); text-decoration:none; }
.catalog-nav a:hover { border-color:var(--accent); color:var(--accent); }
.catalog-nav span { color:var(--ink-3); font-size:12px; }
.catalog-route { display:flex; align-items:center; gap:20px; border-radius:22px; padding:23px 27px; background:var(--accent-soft); color:var(--ink); text-decoration:none; }
.catalog-route > span:nth-child(2) { flex:1; }
.catalog-route strong { font-size:16px; display:block; margin-bottom:5px; }
.catalog-route span span { color:var(--ink-2); font-size:13px; }
.route-icon { color:var(--accent); }
.catalog-stage { padding-top:76px; scroll-margin-top:24px; }
.catalog-stage .studio-section-head h2 { font-size:38px; }
.catalog-note { display:flex; align-items:center; gap:8px; flex-wrap:wrap; color:var(--ink-3); border-top:1px solid var(--border); padding-top:30px; margin:50px 0 0; font-size:13px; }
.course-page { padding-block:35px 64px; }
.course-page .breadcrumbs { margin-bottom:30px; }
.course-page .grid-side { grid-template-columns:minmax(0,1fr) 320px; gap:46px; }
.course-heading h1 { font-size:clamp(32px,4vw,49px); line-height:1.1; margin-bottom:22px; }
.course-page .hero-lead { font-size:18px; margin-bottom:25px; }
.course-sidebar { background:none; padding:0; border:0; }
.course-sidebar > .card { padding:28px; border:0; }
.course-sidebar > .card:first-child { background:var(--surface); box-shadow:var(--shadow); }
.course-sidebar h3 { font-size:23px; }
.course-sidebar a.btn { font-size:13px; padding:12px 14px; }
.course-sidebar .side-title { color:var(--ink-3); }
.course-page .prose { max-width:68ch; }
.articles-page { padding-block:65px; }
.editorial-head { max-width:900px; margin-bottom:55px; }
.editorial-head > p:not(.eyebrow) { font-size:18px; line-height:1.65; }
.editorial-cover { display:flex; position:relative; justify-content:space-between; align-items:center; gap:20px; width:100%; min-height:200px; padding:32px; overflow:hidden; }
.editorial-cover-label { font-size:35px; font-weight:650; letter-spacing:-.05em; line-height:1.13; max-width:8ch; }
.editorial-cover-symbol { opacity:.9; align-self:flex-end; flex-shrink:0; }
.editorial-cover-symbol svg { width:42px; height:42px; }
.editorial-cover-image { padding:0; height:210px; }
.editorial-cover-image img { display:block; width:100%; height:100%; object-fit:cover; object-position:top center; }
.article-lead { border:0; border-radius:28px; margin-bottom:28px; }
.article-lead .editorial-cover { min-height:340px; padding:45px; }
.article-lead .editorial-cover-label { font-size:54px; }
.article-lead .editorial-cover-image { padding:0; }
.article-lead-art { border-radius:0; max-height:none; }
.article-lead .article-lead-body { padding:40px; }
.article-lead-title { font-size:30px; }
.article-card { border:0; }
.article-card .article-body .article-title,.article-lead .article-lead-body .article-title { margin:0; }
.article-card .article-title { font-size:22px; line-height:1.25; }
.article-card .article-body { padding:25px; gap:13px; }
.article-more { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--accent); padding-top:8px; }
.reading-page { padding-block:36px 64px; width:min(100% - 40px,800px); }
.article-head { padding-block:28px 40px; }
.article-head h1 { font-size:clamp(34px,4.6vw,58px); line-height:1.09; letter-spacing:-.05em; }
.article-head .hero-lead { font-size:20px; line-height:1.65; }
.article-body.prose { display:block; padding:0; font-size:18px; line-height:1.8; }
.article-body.prose > * + * { margin-top:1.3em; }
.article-body.prose img { display:block; max-width:100%; height:auto; }
.cta-band { border:0; border-radius:28px; background:var(--surface); padding:48px; }
@media(max-width:1000px) {
  .studio-hero-grid { min-height:560px; gap:22px; }
  .studio-hero h1 { font-size:64px; }
  .studio-hero-visual figcaption { flex-wrap:wrap; gap:8px; bottom:16px; left:16px; right:16px; }
  .studio-course-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .studio-method { gap:55px; }
  .course-page .grid-side { gap:28px; grid-template-columns:minmax(0,1fr) 285px; }
  .studio-actions { gap:16px; }
  .studio-result h3 { font-size:30px; }
}
@media(max-width:760px) {
  :root { --nav-h:64px; }
  .nav-inner { min-height:64px; }
  .nav-links { background:var(--surface); }
  .studio-hero-grid { grid-template-columns:1fr; padding-block:36px 28px; gap:28px; }
  .studio-hero h1 { font-size:clamp(42px,10vw,60px); margin:16px 0 22px; }
  .studio-hero h1 br:nth-of-type(2) { display:none; }
  .studio-hero .studio-lead { max-width:42ch; font-size:16px; }
  .studio-hero-visual { aspect-ratio:1.45; border-radius:24px; }
  .studio-hero-visual img { height:100%; }
  .studio-hero-visual figcaption { flex-wrap:nowrap; padding:12px; font-size:10px; }
  .studio-facts { display:grid; grid-template-columns:1fr 1fr; gap:18px; font-size:12px; }
  .studio-facts strong { font-size:20px; }
  .studio-section { padding-block:56px; }
  .studio-section-head { align-items:flex-start; flex-direction:column; gap:16px; margin-bottom:25px; }
  .studio-section-head h2,.studio-method h2,.studio-access h2 { font-size:30px; }
  .studio-section-head > p { font-size:14px; }
  .studio-method { grid-template-columns:1fr; gap:35px; }
  .studio-result-grid { grid-template-columns:1fr; }
  .studio-showcase { padding-block:50px; }
  .studio-result-main img { max-height:360px; object-fit:cover; object-position:bottom; }
  .studio-result-visual { display:grid; grid-template-columns:1fr 1fr; align-items:center; }
  .studio-result-visual img { height:100%; min-height:270px; }
  .studio-result-visual .studio-result-copy { padding:26px; }
  .studio-result-visual h3 { font-size:27px; }
  .studio-access { align-items:flex-start; flex-direction:column; padding-top:55px; gap:25px; }
  .studio-access .studio-actions { flex-direction:row; align-items:center; flex-wrap:wrap; gap:14px; }
  .footer-inner { flex-direction:column; align-items:flex-start; }
  .catalog-page,.articles-page { padding-top:40px; }
  .catalog-stage { padding-top:50px; }
  .catalog-stage .studio-section-head h2 { font-size:32px; }
  .catalog-nav a { padding:10px 14px; gap:10px; font-size:13px; }
  .catalog-route { padding:20px; gap:15px; }
  .course-page .grid-side { grid-template-columns:1fr; }
  .course-sidebar { position:static; }
  .course-heading h1 { font-size:36px; }
  .cover-wide .cover-line { font-size:36px; }
  .course-hero-art { max-height:none; }
  .article-lead .editorial-cover { min-height:240px; }
  .article-lead .article-lead-body { padding:28px; }
  .article-body.prose,.prose,.lesson-shell .prose { font-size:16px; }
  .article-head .hero-lead { font-size:18px; }
  .cta-band { padding:28px; }
}
@media(max-width:520px) {
  .studio-course-grid { grid-template-columns:1fr; gap:20px; }
  .course-cover { height:190px; }
  .cover-wide { height:200px; }
  .cover-strip { height:84px; }
  .cover-picture { width:58%; height:150px; }
  .course-card > .course-body { padding:24px; }
  .course-card h3 { font-size:24px; }
  .studio-result-visual { display:flex; }
  .studio-result-visual img { height:240px; min-height:0; }
  .studio-result-copy { padding:28px; }
  .studio-result-visual .studio-result-copy { width:100%; padding:28px; }
  .studio-actions { gap:15px; }
  .studio-actions .btn-lg { font-size:14px; padding:13px 20px; }
  .studio-actions .text-link { font-size:14px; }
  .desktop-break { display:none; }
  .catalog-head h1,.editorial-head h1 { font-size:36px; }
  .studio-lead { font-size:16px; }
  .catalog-route > .route-icon { display:none; }
  .articles-grid { grid-template-columns:minmax(0,1fr); }
  .editorial-head > p:not(.eyebrow) { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) {
  .studio-result { transition:none; }
  .studio-result:hover { transform:none; }
}
@media print {
  .studio-hero-visual,.studio-showcase { display:none; }
}
