/* Public presentation only: the administration retains its own workspace. */
.public-site { min-height: 100svh; display: flex; flex-direction: column; }
.public-site > .public-main { width: 100%; min-height: 0; flex: 1; margin: 0 auto; padding-block: clamp(1rem, 3vw, 2rem); }
.public-site .public-article > .public-page-title { font-size: clamp(1.75rem, 4vw, 2.5rem); line-height: 1.2; margin-block: 0 1.25rem; }
.public-site > .public-footer, .public-site > .website-footer { margin-top: 0; padding: .85rem clamp(1rem, 3vw, 2rem); }
.public-credit { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1.5rem; font-size: .75rem; line-height: 1.5; color: var(--dim); }
.public-credit a { color: var(--muted); text-decoration: none; }
.public-credit a:hover { color: var(--text); text-decoration: underline; }
.public-credit a:focus-visible { outline: 2px solid var(--blue); outline-offset: 4px; }
.website-footer > .public-credit { max-width: 1344px; margin: .75rem auto 0; }
.website-footer > .public-credit:first-child { margin-top: 0; }
/* Free canvas: editor blocks may use the entire viewport width. No forced hero gap. */
.public-site.website-canvas > .public-main { max-width: none; padding: 0; }
.website-canvas .public-article { max-width: none; display: flow-root; }
.public-site.website-canvas .public-page-title { margin: 1rem clamp(1rem, 3vw, 2rem); }
.website-canvas .public-article > .prose-text { padding: 0 clamp(1rem, 3vw, 2rem) 1rem; }
.website-canvas .public-article > .rich-content { min-width: 0; }
