/* Shared information hierarchy: all public pages, no runtime framework. */
.breadcrumbs { border-bottom:1px solid var(--border); background:var(--canvas); }
.breadcrumbs ol { display:flex; flex-wrap:wrap; gap:.4rem .7rem; padding:.85rem 0; margin:0; list-style:none; font-size:.8rem; line-height:1.6; }
.breadcrumbs li+li::before { content:'/'; margin-right:.7rem; color:var(--text-muted); }
.breadcrumbs li:last-child { color:var(--text-muted); }
.breadcrumbs a { text-decoration:none; }
.site-nav a[aria-current="page"] { color:var(--primary); text-decoration:underline; text-underline-offset:.35em; }
.page-hero { padding:3.1rem 0 2.8rem; }
.page-hero h1 { max-width:24ch; font-size:clamp(1.9rem,4.2vw,3.6rem); text-wrap:balance; }
.page-hero .hero-lead { max-width:67ch; margin:1.2rem 0 0; font-size:1.1rem; line-height:1.75; color:var(--text-muted); }
.section-jumps { display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; margin-top:1.6rem; }
.section-jumps a { min-height:44px; display:inline-flex; align-items:center; font-weight:650; font-size:.9rem; }
.article-layout { grid-template-columns:minmax(0,760px) minmax(220px,1fr); gap:3.5rem; }
.content-article { font-size:1.02rem; line-height:1.85; }
.content-article h2 { font-size:clamp(1.35rem,2.1vw,1.85rem); line-height:1.4; letter-spacing:-.025em; margin-top:2.6rem; }
.content-article h3 { font-size:1.2rem; line-height:1.45; }
.content-article>p,.content-article>ul,.content-article>ol { max-width:74ch; }
.content-article h2:target,.content-article h3:target { background:var(--primary-soft); }
.article-aside { position:sticky; top:8rem; max-height:70vh; overflow-y:auto; padding:1.4rem; border:1px solid var(--border); border-radius:.75rem; background:var(--surface); }
.article-aside a:not(.button) { display:block; padding:.5rem 0; font-size:.85rem; line-height:1.5; }
.article-aside .eyebrow { margin:0 0 .6rem; }
.article-aside .button { display:flex; width:100%; min-width:0; margin-top:1.25rem; padding:.75rem 1rem; text-align:center; white-space:normal; }
.article-toc details>summary { cursor:pointer; font-weight:700; min-height:44px; }
.article-toc ol { margin:0; padding-left:1.15rem; }
.module-grid,.module-steps,.workflow-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; }
.module-grid { margin-top:2rem; }
.module-card { display:flex; flex-direction:column; gap:1rem; padding:1.6rem; border:1px solid var(--border); border-radius:.85rem; background:var(--surface); text-decoration:none; color:var(--text); }
.module-card:hover { border-color:var(--primary); background:var(--primary-soft); }
.module-code { width:fit-content; padding:.3rem .75rem; border-radius:.4rem; background:var(--primary-soft); color:var(--primary); font-size:.95rem; font-weight:800; }
.module-card h3 { margin:0; font-size:1.2rem; line-height:1.45; }
.module-card p { color:var(--text-muted); font-size:.94rem; line-height:1.75; margin:0; }
.card-link { margin-top:auto; padding-top:.7rem; color:var(--primary); font-weight:700; font-size:.85rem; }
.module-audience { margin:1.25rem 0 1.5rem; font-size:.93rem; color:var(--text-muted); }
.module-steps { list-style:none; padding:0; margin:2rem 0; counter-reset:none; }
.module-steps li { padding:1.4rem; background:var(--surface); border-top:2px solid var(--primary); border-radius:.4rem; }
.step-number { color:var(--primary); font-size:.8rem; font-weight:800; }
.module-steps h3 { font-size:1.1rem; margin:.8rem 0; }
.module-steps p { font-size:.92rem; color:var(--text-muted); }
.module-figure { margin:2rem 0; }
.module-figure img { display:block; width:100%; max-width:1000px; height:auto; border-radius:.8rem; }
.module-figure figcaption,.image-credit { margin-top:.6rem; font-size:.75rem; color:var(--text-muted); line-height:1.6; }
.module-status { padding:1.4rem 1.7rem; border-left:3px solid var(--primary); background:var(--primary-soft); }
.module-status h2 { font-size:1.2rem; margin:0 0 .6rem; }
.module-status p { margin:0; font-size:.95rem; max-width:85ch; }
.workflow-grid { margin:2rem 0 1.5rem; }
.workflow-grid article { padding:1.4rem; border-top:1px solid var(--border); }
.workflow-grid span { color:var(--primary); font-weight:700; font-size:.85rem; }
.workflow-grid h3 { font-size:1.15rem; margin:1rem 0; }
.workflow-grid p,.scope-note { color:var(--text-muted); font-size:.95rem; line-height:1.75; }
.suite-workflow { background:var(--surface); }
.suite-hero .hero-lead { max-width:64ch; }
.context-photo { margin:1.8rem 0 0; }
.context-photo img { display:block; width:100%; height:auto; max-height:390px; object-fit:contain; background:var(--surface); border-radius:.75rem; }
.context-panel { display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; align-items:center; }
.context-panel p { max-width:60ch; color:var(--text-muted); }
.context-panel h2 { font-size:clamp(1.4rem,2.5vw,2rem); }
.credit-grid { display:grid; grid-template-columns:1fr 1fr; gap:2rem; margin-bottom:3rem; }
.credit-card { padding:1.25rem; border:1px solid var(--border); border-radius:.75rem; background:var(--surface); }
.credit-card img { width:100%; height:auto; }
.credit-card h2 { font-size:1.2rem; margin:1.3rem 0 .7rem; }
.credit-card p { font-size:.85rem; }
.site-map-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; }
.site-map-groups h2 { font-size:1.35rem; }
.site-map-groups ul { padding-left:1.2rem; }
.site-map-groups a { display:inline-block; padding:.4rem 0; }
.contact-captcha { display:grid; gap:.5rem; }
.contact-captcha>p { margin:0; }
.contact-captcha details { font-size:.8rem; color:var(--text-muted); }
.contact-captcha details summary { cursor:pointer; min-height:36px; padding:.4rem 0; }
.contact-captcha details p { margin:.5rem 0; line-height:1.6; }
.contact-form .form-privacy { margin:0; }
.footer-bottom>div { flex-wrap:wrap; }
.content-article img { height:auto; }
.content-article figure { margin:1.5rem 0; }
@media(max-width:1000px) {
 .module-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .article-layout { grid-template-columns:minmax(0,1fr); gap:2rem; }
 .article-aside { position:static; max-height:none; order:-1; }
 .article-aside nav { display:flex; flex-wrap:wrap; gap:.3rem 1.2rem; }
}
@media(max-width:700px) {
 .module-grid,.module-steps,.workflow-grid,.credit-grid,.context-panel,.site-map-groups { grid-template-columns:minmax(0,1fr); }
 .page-hero { padding:2rem 0; }
 .module-card { padding:1.25rem; }
 .module-figure { overflow-x:auto; }
 .module-figure img { min-width:560px; }
 .module-figure figcaption { max-width:100%; }
 .article-layout { gap:1.5rem; }
 .article-aside { padding:1rem; }
 .context-panel { gap:1rem; }
}

/* Keep the demo within its content column, including the decorative backdrop. */
#demo .product-stage { margin:2rem 0 0; padding:0; }
#demo .product-stage::before { display:none; }
.breadcrumbs li { overflow-wrap:anywhere; }
@media(max-width:700px) { .page-hero h1[data-long-title] { font-size:clamp(1.1rem,5.3vw,2.1rem); } }

@media(max-width:700px) { .content-article h2[data-long-heading] { font-size:clamp(1.05rem,5.2vw,1.8rem); } }

.site-nav .nav-contact[aria-current="page"] { color:var(--on-primary); }
