@import url("spacing-tokens.css?v=2026101204");
/* Opt-in primitives. A parent owns the gap; children must not add it again. */
.layout-stack { display:flex; flex-direction:column; gap:var(--gap-copy); }
.layout-stack > * { margin-block:0; }
.layout-stack--sections { gap:var(--gap-section); }
.layout-stack--heading { gap:var(--gap-heading); }
.layout-card { padding:var(--inset-card); }
.layout-card-grid { gap:var(--gap-card); }
/* Real content cards only. Exclude posters, image canvases and dense admin rows. */
.home-page .home-intensive-card-body { padding:var(--inset-card); }
/* Bridge the existing interface rule to one spacing owner. */
.about-page .about-ob-card { --ui-card-padding:var(--inset-card); }
/* Preserve the carousel composition with a documented variant. */
.home-page .home-intensive-slider { gap:var(--gap-card-slider); }
.home-page .home-intensive-card h3 { margin-bottom:var(--gap-icon); }
.home-page .home-intensive-card p { margin-bottom:var(--gap-copy); }
.contact-page .contact-form-intro { padding-bottom:var(--gap-paragraph); margin-bottom:var(--gap-copy); }
/* A rule divides one section gap into two halves, avoiding double spacing. */
.sc-main .sc-section { padding-bottom:var(--gap-section-half); margin-bottom:var(--gap-section-half); }
.sc-main .sc-section:last-child { margin-bottom:0; }
.sc-main .sc-section#class-info { padding-bottom:var(--gap-paragraph); }
.sc-detail .sc-section h2 { margin-top:var(--gap-copy); margin-bottom:var(--gap-paragraph); }
.sc-detail :is(.sc-audience,.sc-process) { margin-top:var(--gap-heading); }
.sc-detail :is(.sc-audience,.sc-process) li { padding-block:var(--gap-paragraph); }
.sc-detail .sc-faq details { padding-block:var(--gap-copy); }
.sc-detail .sc-faq details p { margin-top:var(--gap-label); }
.sc-detail .sc-faq details p+p { margin-top:var(--gap-icon); }
