/* Editorial layouts inherit the homepage's typography, colours and shell. */
.framework-page { max-width:960px; padding-block:72px 16px; }
.framework-header { margin-bottom:64px; }
.framework-header h1 { font-size:clamp(40px,6vw,64px); }
.framework-header .subtitle { font-size:20px; }
.framework-section { margin-bottom:64px; }
.framework-section h2 { font-size:clamp(28px,4vw,38px); }
.framework-page a { color:var(--accent); }
.framework-page table { width:100%; border-collapse:collapse; margin-block:24px; }
.framework-page th, .framework-page td { padding:18px; border:1px solid var(--line); text-align:left; vertical-align:top; }
.framework-page th { background:var(--raised); color:var(--text); }
.framework-page td { color:var(--muted); }
.framework-page strong { color:var(--text); }
.framework-page .principles-table, .framework-page .cadence-table, .framework-page .modules-table { overflow-x:auto; }
.mermaid-container { overflow-x:auto; padding:24px; margin-block:30px; border:1px solid var(--line); background:var(--panel); }
.mermaid svg { height:auto; }
.feedback-loops { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.loop-card { padding:28px; border:1px solid var(--line); background:var(--panel); }
.shortcuts-list { list-style:none; padding:0; }
.shortcuts-list li { padding:22px; margin-bottom:14px; border:1px solid var(--line); background:var(--panel); color:var(--muted); }
@media(max-width:600px) {
    .framework-page { padding-top:45px; }
    .feedback-loops { grid-template-columns:minmax(0,1fr); }
    .framework-page th, .framework-page td { padding:12px; font-size:14px; overflow-wrap:anywhere; }
    .mermaid-container { padding:12px; }
}
