/* All rules are scoped to the builder, ready for custom per-container classes. */
.it-winkel-page-layout { margin-block: 0; display: flow-root; }
/* Break out of the centered article; the inner wrapper controls content width. */
.it-winkel-page-layout .section--fullwidth { width: 100vw; margin-inline: calc(50% - 50vw); margin-bottom: clamp(32px, 5vw, 64px); }
@supports (width: 100cqw) {
 body { container-type: inline-size; }
 .it-winkel-page-layout .section--fullwidth { width: 100cqw; margin-inline: calc(50% - 50cqw); }
}
.it-winkel-page-layout .section__inner { width: min(var(--container), calc(100% - 2 * var(--gutter))); margin-inline: auto; }
.it-winkel-page-layout .section--full-content > .section__inner { width: 100%; }
.it-winkel-page-layout .section--fullwidth .content-container { margin-bottom: 0; }
.it-winkel-page-layout .content-container { width: 100%; margin-inline: auto; display: grid; gap: clamp(20px, 3vw, 40px); margin-bottom: clamp(32px, 5vw, 64px); }
.it-winkel-page-layout .layout-100 { grid-template-columns: minmax(0, 1fr); }
.it-winkel-page-layout .layout-50-50 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.it-winkel-page-layout .layout-33-67 { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.it-winkel-page-layout .layout-67-33 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.it-winkel-page-layout .layout-33-33-33 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.it-winkel-page-layout .layout-25-75 { grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); }
.it-winkel-page-layout .layout-75-25 { grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); }
.it-winkel-page-layout .layout-25-50-25 { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr); }
.it-winkel-page-layout .content-column { min-width: 0; overflow-wrap: anywhere; }
.it-winkel-page-layout .content-column > :last-child { margin-bottom: 0; }
@media (min-width: 601px) and (max-width: 900px) {
 .it-winkel-page-layout .layout-33-33-33, .it-winkel-page-layout .layout-25-50-25 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 .it-winkel-page-layout .layout-33-33-33 > :last-child, .it-winkel-page-layout .layout-25-50-25 > :last-child { grid-column: 1 / -1; }
}
@media (max-width: 600px) { .it-winkel-page-layout .content-container { grid-template-columns: minmax(0, 1fr); } }

/* Center the two global footer columns while retaining their selected widths. */
.site-footer .it-winkel-page-layout .content-container:is(.layout-50-50, .layout-33-67, .layout-67-33, .layout-25-75, .layout-75-25) {
 display: flex;
 align-items: center;
 justify-content: space-between;
}
.site-footer .it-winkel-page-layout .content-container:is(.layout-50-50, .layout-33-67, .layout-67-33, .layout-25-75, .layout-75-25) > .content-column {
 flex: 1 1 0;
 display: flex;
 flex-direction: column;
 justify-content: center;
}
.site-footer .it-winkel-page-layout .layout-33-67 > .content-column:last-child,
.site-footer .it-winkel-page-layout .layout-67-33 > .content-column:first-child { flex-grow: 2; }
.site-footer .it-winkel-page-layout .layout-25-75 > .content-column:last-child,
.site-footer .it-winkel-page-layout .layout-75-25 > .content-column:first-child { flex-grow: 3; }
@media (max-width: 600px) {
 .site-footer .it-winkel-page-layout .content-container:is(.layout-50-50, .layout-33-67, .layout-67-33, .layout-25-75, .layout-75-25) { flex-direction: column; }
 .site-footer .it-winkel-page-layout .content-container:is(.layout-50-50, .layout-33-67, .layout-67-33, .layout-25-75, .layout-75-25) > .content-column { flex: 0 0 auto; width: 100%; }
}

/* Adjacent normal page containers share one gap, independent of their contents.
   Spacing before a Hero remains unchanged; this wrapper is only used for pages. */
.itw-page-card-spacing > :is(.content-container:not(.itw-hero-container), .section--fullwidth):has(+ :is(.content-container:not(.itw-hero-container), .section--fullwidth)) {
 margin-bottom: 0 !important;
}
.itw-page-card-spacing > :is(.content-container:not(.itw-hero-container), .section--fullwidth) + :is(.content-container:not(.itw-hero-container), .section--fullwidth) {
 margin-top: var(--itw-container-gap, 28px) !important;
}

/* Only the outer Hero-to-next-container boundary uses the shared container gap. */
.itw-page-card-spacing > .content-container.itw-hero-container:has(+ :is(.content-container, .section--fullwidth)) {
 margin-bottom: 0 !important;
}
.itw-page-card-spacing > .content-container.itw-hero-container + :is(.content-container, .section--fullwidth) {
 margin-top: var(--itw-container-gap, 28px) !important;
}
