/* Shared public-page system. Authenticated dashboards have a separate renderer. */
body.public-page {background:var(--bg);color:var(--text)}
body.public-page .shell,body.public-page .wrap {width:100%;max-width:1240px;padding-inline:40px;margin-inline:auto}
body.public-page .header-inner {height:80px}
body.public-page .wordmark {font-size:28px}
body.public-page .brand-caption {display:none}
body.public-page .desktop-nav {gap:24px;margin-right:16px}
body.public-page h1,body.public-page .domain-header h1,body.public-page .contact-intro h1,body.public-page .extension-heading h1,body.public-page .school-heading h1 {font-size:clamp(34px,4vw,48px);line-height:1.1;letter-spacing:-.04em;font-weight:400}
body.public-page h2 {font-size:clamp(25px,2.6vw,32px);line-height:1.18;letter-spacing:-.03em}
body.public-page .button,body.public-page .primary {font-size:13px;min-height:46px;padding:13px 20px}
body.public-page .button-secondary {background:transparent;border-color:#626b52;color:var(--text)}
body.public-page .button-secondary:hover {background:var(--panel);border-color:var(--lime)}
body.public-page .breadcrumbs {padding-top:26px;font-size:10px;color:var(--muted)}
body.public-page .breadcrumbs a {min-height:30px;display:inline-flex;align-items:center}
body.public-page .page-heading {padding:36px 0 32px;max-width:900px}
body.public-page .page-heading>p {font-size:15px;line-height:1.75;margin-top:20px;max-width:60ch}
body.public-page .text-link {min-height:44px;font-size:13px}
body.public-page .section {padding-block:56px}
body.public-page .public-masthead {padding:32px 0 40px;border-bottom:1px solid var(--line);margin-bottom:40px}
body.public-page .public-masthead h1 {max-width:22ch}
body.public-page .public-kicker,body.public-page .index-label {font:400 10px/1.6 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 16px}
body.public-page .editorial-layout,body.public-page .lesson-layout {display:grid;grid-template-columns:220px minmax(0,760px);gap:64px;align-items:start;padding-bottom:72px}
body.public-page .editorial-index {position:sticky;top:24px;max-height:calc(100vh - 64px);overflow:auto;padding-right:8px}
body.public-page .editorial-index a,body.public-page .editorial-mobile-index a {display:flex;align-items:center;min-height:44px;padding:10px 0;font-size:13px;line-height:1.5;color:#b8beb0;border-bottom:1px solid var(--line);text-decoration:none;overflow-wrap:anywhere}
body.public-page .editorial-index a:hover,body.public-page .editorial-index a[aria-current],body.public-page .editorial-mobile-index a:hover,body.public-page .editorial-mobile-index a[aria-current] {color:var(--lime)}
body.public-page .editorial-mobile-index {display:none}
body.public-page.inner-page .editorial-layout .prose {padding:0;max-width:none;min-width:0}
body.public-page.inner-page .prose h2 {font-size:26px;line-height:1.25;letter-spacing:-.025em;margin:36px 0 16px;scroll-margin-top:28px}
body.public-page.inner-page .prose p,body.public-page.inner-page .prose li {font-size:15px;line-height:1.85;color:#c0c5b8}
body.public-page.inner-page .prose .lead {font-size:18px;line-height:1.7;color:var(--text);max-width:62ch}
body.public-page.inner-page .prose a:not(.button) {color:var(--text);text-decoration-color:#6d7561}
body.public-page.inner-page .prose a:not(.button):hover {color:var(--lime)}
body.public-page.inner-page .prose>.recruitment-notice:first-child {margin-top:0}
body.public-page.inner-page .recruitment-notice {background:var(--panel);border:1px solid var(--line);padding:18px 22px;margin:24px 0}
body.public-page.inner-page .recruitment-notice p {font-size:14px;line-height:1.75;margin:0}
body.public-page.inner-page .recruitment-notice p+p {margin-top:10px}
body.public-page.inner-page .broker-intro {padding:0;border:0;margin:0 0 32px}
body.public-page.inner-page .broker-section {padding:28px 0;border-top:1px solid var(--line)}
body.public-page.inner-page .broker-section h2:first-child {margin-top:0}
body.public-page.inner-page .broker-small {font-size:13px}
body.public-page.inner-page .broker-steps {gap:20px}
body.public-page.inner-page .broker-steps h3 {font-size:17px;line-height:1.4}
body.public-page.inner-page .broker-steps p {font-size:14px;line-height:1.7}
body.public-page.inner-page .broker-economics {padding:24px;background:var(--panel);border:1px solid var(--line);margin:0 0 32px}
body.public-page.inner-page .broker-economics h2:first-child {margin-top:0}
body.public-page.inner-page .broker-split dd {font-size:28px}
body.public-page .inline-links {gap:14px 20px;font-size:13px}
body.public-page .inline-links a {min-height:44px}
/* Numbered course directory and real reading progress. */
body.public-page .school-index,body.public-page .school-lesson {max-width:1240px;padding-block:0 64px}
body.public-page .school-heading {margin:32px 0 36px;max-width:820px}
body.public-page .school-heading>p {font-size:16px;line-height:1.75;max-width:64ch;margin:20px 0}
body.public-page .course-directory {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 36px;list-style:none;margin:36px 0 48px;padding:0}
body.public-page .course-directory>li {display:grid;grid-template-columns:32px minmax(0,1fr);align-items:start;gap:12px;padding:28px 0;border-top:1px solid var(--line);min-width:0}
body.public-page .course-number {font:400 11px/1.6 var(--mono);color:var(--lime);padding-top:10px}
body.public-page .course-directory h2 {font-size:22px;line-height:1.3;letter-spacing:-.02em}
body.public-page .course-directory h2 a {min-height:44px;display:flex;align-items:center}
body.public-page .course-directory p {font-size:15px;line-height:1.75;max-width:48ch;margin-top:12px;color:#b8beb0}
body.public-page .course-directory .lesson-read-state {grid-column:2;padding:0;min-width:0;font-size:13px}
body.public-page .school-index>.school-reading {max-width:760px}
body.public-page .school-reading h2 {font-size:26px;line-height:1.3;margin-top:32px}
body.public-page .school-reading p,body.public-page .school-reading li {font-size:16px;line-height:1.85;color:#c0c5b8}
body.public-page .school-progress {max-width:760px;padding-top:28px;margin:36px 0}
body.public-page .school-progress h2 {font-size:24px}
body.public-page .school-progress p {font-size:14px;line-height:1.75}
body.public-page .school-button {font-size:13px;min-height:44px;padding:12px 18px}
body.public-page .school-navigation {gap:12px 24px;margin-top:28px}
body.public-page .school-navigation>a {font-size:13px;min-height:44px;line-height:1.5}
body.public-page .public-lesson .lesson-layout {padding-top:36px;padding-bottom:0}
body.public-page .public-lesson .school-heading {margin-top:0}
body.public-page .public-lesson article {max-width:740px}
body.public-page .public-lesson .school-heading h1 {font-size:42px}
body.public-page .school-objectives {padding-block:22px;margin:26px 0 32px;border-color:var(--line)}
body.public-page .school-objectives h2 {font-size:23px}
body.public-page .school-objectives li {font-size:15px;line-height:1.85}
/* A scannable sequence, without a repeated wall of text. */
body.public-page .journey-page .school-heading {max-width:780px}
body.public-page .journey-actions {margin:0 0 40px}
body.public-page .journey-steps {counter-reset:journey;list-style:none;margin:0 0 32px;padding:0}
body.public-page .journey-steps>li {counter-increment:journey;display:grid;grid-template-columns:56px minmax(0,1fr);gap:24px;border-top:1px solid var(--line);padding:32px 0}
body.public-page .journey-steps>li::before {content:counter(journey,decimal-leading-zero);font:400 11px/1.6 var(--mono);color:var(--lime);padding-top:6px}
body.public-page .journey-steps>li>div {display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:48px;align-items:start}
body.public-page .journey-steps h2 {font-size:22px;line-height:1.35;max-width:24ch}
body.public-page .journey-steps p {font-size:15px;line-height:1.8;color:#b8beb0;margin:0;max-width:62ch}
body.public-page .journey-page #buying {margin-top:48px;padding:28px;border:1px solid var(--line);background:var(--panel);max-width:none}
body.public-page .journey-page #buying h2 {margin-top:0}
/* Catalogue and domain details keep the logos, prices and inquiry logic. */
body.public-page .catalog-filters {padding:24px;background:var(--panel);border-color:var(--line)}
body.public-page .filter-search {background:var(--bg);border-color:#59614e;min-height:48px}
body.public-page .filter-search input {min-width:0;width:100%;font-size:16px}
body.public-page .filter-controls label {font-size:10px;color:#b8beb0}
body.public-page .filter-controls select {background:var(--bg);border-color:#59614e;font-size:13px;min-height:44px}
body.public-page .domain-grid {gap:20px}
body.public-page .domain-card {background:var(--panel);border-color:var(--line);transition:border-color .16s}
body.public-page .domain-card:hover {border-color:#89937c;transform:none}
body.public-page .domain-art {height:auto;aspect-ratio:1.65}
body.public-page .domain-card-content {padding:20px;border-color:var(--line)}
body.public-page .domain-title-row h3 {font-size:18px}
body.public-page .domain-category {color:#b0b7a5;font-size:12px}
body.public-page .card-price-row {border-color:var(--line)}
body.public-page .card-price-row strong {font-size:21px}
body.public-page .domain-header {padding-block:36px 32px;align-items:start}
body.public-page .domain-description {font-size:15px;color:#b8beb0;line-height:1.8;max-width:65ch}
body.public-page .domain-detail {grid-template-columns:minmax(0,1fr) minmax(300px,340px);gap:40px}
body.public-page .purchase-card {padding:24px;background:var(--panel);border-color:#59614e}
body.public-page .detail-price {font-size:40px}
body.public-page .purchase-points p,body.public-page .purchase-card .small-copy {color:#b0b7a5}
body.public-page .editorial-section {border-color:var(--line)}
body.public-page .editorial-section p,body.public-page .use-case p,body.public-page .considerations ul {font-size:15px;line-height:1.8;color:#b8beb0}
body.public-page .editorial-section h2,body.public-page .domain-faq h2 {font-size:28px}
body.public-page .extension-letter,body.public-page .extension-intro,body.public-page .domain-reading {background:var(--panel);border-color:var(--line)}
body.public-page .extension-heading {gap:24px}
body.public-page .extension-intro p {font-size:15px;color:#b8beb0}
body.public-page .faq-section summary {font-size:15px}
body.public-page .faq-section details>p {font-size:15px;line-height:1.8;color:#b8beb0}
body.public-page .collection-directory-item {padding-block:28px;border-color:var(--line)}
body.public-page .collection-directory-item h2 {font-size:27px}
body.public-page .collection-directory-item p {color:#b8beb0}
/* Compact, legible buying guides and contact forms. */
body.public-page .guides-grid {gap:20px}
body.public-page .guide-card {padding:28px;border-color:var(--line);background:var(--panel);gap:20px}
body.public-page .guide-card:hover {transform:none;border-color:#89937c}
body.public-page .guide-card h2 {font-size:25px;line-height:1.3}
body.public-page .guide-card p {font-size:15px;color:#b8beb0}
body.public-page .prose-shell {max-width:960px}
body.public-page .prose-shell .prose h1 {font-size:44px}
body.public-page .guide-cta {background:var(--panel);border-color:var(--line)}
body.public-page .contact-layout {grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;padding-block:36px 72px}
body.public-page .contact-intro h1 {max-width:16ch}
body.public-page .contact-intro>p {font-size:15px;color:#b8beb0;line-height:1.8}
body.public-page .contact-expect {border-color:var(--line)}
body.public-page .contact-expect p {font-size:14px;color:#b8beb0}
body.public-page .inquiry-form {padding:28px;background:var(--panel);border-color:var(--line)}
body.public-page .inquiry-form h2 {font-size:26px}
body.public-page .inquiry-form label {font-size:13px;color:#c0c5b8}
body.public-page .inquiry-form input:not([type=checkbox]),body.public-page .inquiry-form select,body.public-page .inquiry-form textarea {font-size:16px;background:var(--bg);border-color:#59614e;color:var(--text);min-height:46px;border-radius:0}
body.public-page .inquiry-form .consent {font-size:12px;line-height:1.7}
body.public-page .inquiry-form .small-copy {font-size:12px;color:#b0b7a5}
body.public-page :focus-visible {outline:2px solid var(--lime);outline-offset:4px}
@media(max-width:1100px) {
 body.public-page .desktop-nav {gap:18px;margin-right:12px}
 body.public-page .editorial-layout,body.public-page .lesson-layout {grid-template-columns:190px minmax(0,1fr);gap:40px}
 body.public-page .contact-layout {gap:40px}
 body.public-page .journey-steps>li>div {gap:32px}
}
@media(max-width:900px) {
 body.public-page .editorial-layout,body.public-page .lesson-layout {display:block}
 body.public-page .editorial-index {display:none}
 body.public-page .editorial-mobile-index {display:block;border-block:1px solid var(--line);margin:0 0 28px;padding:0}
 body.public-page .editorial-mobile-index summary {min-height:48px;padding:12px 0;font-size:13px;cursor:pointer}
 body.public-page .editorial-mobile-index nav {padding-bottom:16px}
 body.public-page .public-lesson .editorial-mobile-index {margin-top:24px}
 body.public-page .public-lesson .lesson-layout {padding-top:4px}
 body.public-page .domain-detail {grid-template-columns:minmax(0,1fr);gap:28px}
 body.public-page .purchase-card {grid-column:1;grid-row:1;position:static}
 body.public-page .domain-story {grid-column:1;grid-row:2}
 body.public-page .contact-layout {grid-template-columns:1fr;gap:32px}
 body.public-page .contact-intro h1 {max-width:20ch}
 body.public-page .contact-expect {max-width:none}
 body.public-page .journey-steps>li>div {grid-template-columns:1fr;gap:14px}
 body.public-page .journey-steps h2 {max-width:none}
}
@media(max-width:767px) {
 body.public-page .shell,body.public-page .wrap {padding-inline:22px}
 body.public-page .header-inner {height:72px}
 body.public-page h1,body.public-page .domain-header h1,body.public-page .contact-intro h1,body.public-page .extension-heading h1,body.public-page .school-heading h1,body.public-page .prose-shell .prose h1,body.public-page .public-lesson .school-heading h1 {font-size:34px}
 body.public-page .public-masthead {padding-block:24px 28px;margin-bottom:24px}
 body.public-page .public-masthead h1 {max-width:20ch}
 body.public-page .page-heading {padding-block:26px}
 body.public-page .editorial-layout {padding-bottom:48px}
 body.public-page.inner-page .prose .lead {font-size:17px}
 body.public-page.inner-page .prose h2 {font-size:24px;margin-top:30px}
 body.public-page .course-directory {grid-template-columns:1fr;margin-block:28px 36px}
 body.public-page .course-directory>li {padding-block:24px}
 body.public-page .course-directory h2 {font-size:21px}
 body.public-page .school-heading {margin-block:26px}
 body.public-page .school-heading>p {font-size:15px}
 body.public-page .school-reading h2 {font-size:24px}
 body.public-page .journey-steps>li {grid-template-columns:28px minmax(0,1fr);gap:16px;padding-block:26px}
 body.public-page .journey-steps h2 {font-size:21px}
 body.public-page .journey-page #buying {padding:22px}
 body.public-page .catalog-filters {padding:18px}
 body.public-page .filter-controls {gap:14px}
 body.public-page .domain-header {display:block}
 body.public-page .domain-header .domain-category-link {margin-top:16px}
 body.public-page .domain-art {aspect-ratio:1.65}
 body.public-page .detail-price {font-size:36px}
 body.public-page .guides-grid {grid-template-columns:1fr}
 body.public-page .guide-card {padding:22px;gap:16px}
 body.public-page .guide-card h2 {font-size:22px}
 body.public-page .contact-layout {padding-block:28px 48px}
 body.public-page .inquiry-form {padding:22px}
 body.public-page .inquiry-form .form-row {grid-template-columns:1fr}
 body.public-page .extension-heading {grid-template-columns:64px minmax(0,1fr);gap:18px}
 body.public-page .extension-heading .extension-letter {width:64px;height:64px;font-size:26px}
}
@media(prefers-reduced-motion:reduce) {
 body.public-page * {scroll-behavior:auto}
 body.public-page .button,body.public-page .domain-card,body.public-page .guide-card {transition:none;transform:none}
}
/* Final readability pass: keep secondary navigation usable at small sizes. */
body.public-page .footer-links {font-size:12px;gap:12px 18px}
body.public-page .footer-links a,body.public-page .footer-legal a {min-height:36px;display:inline-flex;align-items:center}
body.public-page .footer-legal {font-size:11px}
body.public-page .course-directory .lesson-read-state:empty {display:none}
body.public-page .school-progress [data-progress-status] {margin-top:14px}
