/* Opt-in layout for generated showroom sections. Legacy content is untouched. */
.showroom-section {
    --showroom-section-space: clamp(2.5rem, 5vw, 4.5rem);
    display: flow-root;
    margin-block: 0 var(--showroom-section-space);
    min-width: 0;
}
.showroom-section.showroom-spacing-compact { --showroom-section-space: clamp(1.5rem, 3vw, 2.5rem); }
.showroom-section.showroom-spacing-spacious { --showroom-section-space: clamp(3.5rem, 7vw, 6rem); }
.showroom-section.showroom-alignment-center { text-align: center; }
.showroom-section.showroom-alignment-start { text-align: start; }
.showroom-section.showroom-width-reading,
.showroom-section.showroom-width-wide,
.showroom-section.showroom-width-full { width: 100%; max-width: 100%; box-sizing: border-box; }
.showroom-section.showroom-alignment-center { margin-inline: auto; }
.showroom-section > :first-child,
.showroom-section .grid-element > :first-child { margin-top: 0; }
.showroom-section > :last-child,
.showroom-section .grid-element > :last-child { margin-bottom: 0; }
.showroom-section > p + p,
.showroom-section .grid-element > p + p { margin-top: 1em; }
.showroom-section > :is(h2, h3, h4, h5, h6) { margin-bottom: 1rem; }
.showroom-section.showroom-treatment-introduction > p { font-size: 1.125em; line-height: 1.6; }
.showroom-section.showroom-treatment-introduction > h2 { font-size: clamp(2rem, 3.5vw, 3rem); line-height: 1.2; }
.showroom-section > .content-grid { gap: clamp(1.25rem, 2.5vw, 2rem); margin-bottom: 0; }
.showroom-section > .content-grid > .grid-element { min-width: 0; padding: 0; }
.showroom-section.showroom-grid-alignment-top > .content-grid > .grid-element.text { justify-content: flex-start; }
.showroom-section.showroom-grid-alignment-middle > .content-grid > .grid-element.text { justify-content: center; }
.showroom-section img, .showroom-section video { max-width: 100%; height: auto; }
.showroom-section .grid-element > img { display: block; width: 100%; margin-bottom: 1rem; }
.showroom-section > .content-grid.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.showroom-section > .content-grid.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.showroom-section > .content-grid.columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 980px) {
    .showroom-section > .content-grid.columns-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .showroom-section > .content-grid { grid-template-columns: minmax(0, 1fr) !important; }
}

/* Restore semantic list markers removed by legacy resets, within new sections only. */
.showroom-section ul.showroom-list { list-style: disc outside; padding-inline-start: 1.5em; margin-block: 1em; }
.showroom-section ol.showroom-list { list-style: decimal outside; padding-inline-start: 1.5em; margin-block: 1em; }
.showroom-section .showroom-list > li { display: list-item; padding: 0; margin-block: .35em; }

/* Stacked media retains the source section's full-width vertical composition. */
.showroom-section > .showroom-stacked-media { width: 100%; margin-block: clamp(1.5rem, 3vw, 3rem); }
.showroom-section > .showroom-stacked-media img,
.showroom-section > .showroom-stacked-media video { display: block; width: 100%; height: auto; }
