/* Page Manager contributes theme-neutral public structure and presentation. */
.cms-page-shell { width: 100%; }
.cms-page-hero { display: grid; }
.cms-page-image-text::after { display: block; clear: both; content: ""; }
.cms-page-features ul,
.cms-widget-content { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.cms-page-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cms-page-media audio,
.cms-page-media video,
.cms-page-image img { display: block; width: 100%; height: auto; }

@media (max-width: 680px) {
	.cms-page-columns { grid-template-columns: 1fr; }
}

/* Module-owned rules extracted from the preserved starter design. */
.cms-page-shell { width: 100%; max-width: none; margin: 0; padding: 0 0 72px; color: var(--cms-color-text); }
.cms-page-hero { position: relative; display: grid; min-height: 480px; align-content: start; margin-top: -43px; padding: clamp(82px, 8vw, 112px) max(24px, calc((100vw - var(--cms-content-max)) / 2)) 78px; overflow: hidden; border: 0; border-radius: 0; background: linear-gradient(120deg, var(--cms-color-hero), color-mix(in srgb, var(--cms-color-accent) 42%, var(--cms-color-hero))); color: var(--cms-color-text-inverse); text-align: left; }
.cms-page-hero > * { position: relative; z-index: 1; }
.cms-page-hero > span { color: var(--cms-color-highlight); font-size: .75rem; font-weight: 850; letter-spacing: .17em; text-transform: uppercase; }
.cms-page-hero :is(h1, h2) { max-width: 18ch; margin: 12px 0 16px; color: var(--cms-color-text-inverse); font-family: var(--cms-font-heading); font-size: clamp(2.35rem, 4vw, 3.9rem); font-weight: 650; letter-spacing: -.025em; line-height: 1.04; }
.cms-page-hero p { max-width: 56ch; margin: 0; color: color-mix(in srgb, var(--cms-color-text-inverse) 86%, var(--cms-color-surface-inverse)); font-size: clamp(1.02rem, 1.7vw, 1.24rem); line-height: 1.65; }
.cms-page-button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; margin-top: 26px; padding: 11px 20px; border: 2px solid var(--cms-color-highlight); border-radius: 3px; background: var(--cms-color-highlight); color: var(--cms-color-on-highlight); font-weight: 850; letter-spacing: .03em; text-decoration: none; }
.cms-page-button:hover { border-color: var(--cms-color-surface); background: var(--cms-color-surface); color: var(--cms-color-text); }
.cms-page-hero :focus-visible { outline-color: var(--cms-color-focus-inverse); }
.cms-page-image-text { width: min(calc(100% - 40px), 1060px); min-height: 370px; margin: 76px auto 0; padding: clamp(26px, 4vw, 48px); border-top: 1px solid var(--cms-color-border); background: rgba(255,255,255,.64); box-shadow: 0 18px 60px rgba(23,32,42,.06); }
.cms-page-image-text::after { display: block; clear: both; content: ""; }
.cms-page-image-text figure { width: min(45%, 430px); margin: 0 36px 18px 0; float: left; }
.cms-page-image-text.image-right figure { margin: 0 0 18px 36px; float: right; }
.cms-page-image-text img { display: block; width: 100%; height: auto; border-radius: 2px; box-shadow: 0 12px 30px rgba(23,32,42,.18); }
.cms-page-image-text figcaption { margin-top: 9px; color: var(--cms-color-text-muted); font-size: .78rem; line-height: 1.45; }
.cms-page-image-text h2 { margin: 0 0 15px; color: var(--cms-color-text); font-family: var(--cms-font-heading); font-size: clamp(1.8rem, 2.7vw, 2.35rem); line-height: 1.12; }
.cms-page-image-text p { margin: 0 0 17px; }
.cms-page-image-text ul { margin: 0 0 18px; padding-left: 22px; }
.cms-page-image-text li { margin-bottom: 6px; }
.cms-page-rich-text,
.cms-page-callout,
.cms-page-image,
.cms-page-quote,
.cms-page-features,
.cms-page-columns,
.cms-page-media,
.cms-widget,
.cms-page-empty { width: min(calc(100% - 40px), 1060px); margin: 64px auto 0; padding: clamp(26px, 4vw, 48px); border: 1px solid var(--cms-color-border); border-radius: 2px; background: var(--cms-color-surface); color: var(--cms-color-text); }
.cms-page-heading { margin: 70px auto 20px; color: var(--cms-color-text); font-family: var(--cms-font-heading); font-size: clamp(1.9rem, 3vw, 2.5rem); text-align: center; }
.cms-page-rich-text { max-width: 78ch; }
.cms-page-features ul { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.cms-widget > h2 { color: var(--cms-color-text); font-family: var(--cms-font-heading); font-size: clamp(1.8rem, 2.7vw, 2.35rem); }
.cms-widget-intro { color: var(--cms-color-text-muted); }
.cms-widget-card { border: 1px solid var(--cms-color-border); border-radius: 2px; background: var(--cms-color-surface-subtle); }
.cms-widget-card > span { color: var(--cms-color-accent-strong); }
.cms-widget-card h3 a { color: var(--cms-color-text); }
.cms-widget-card p { color: var(--cms-color-text-soft); }
.cms-page-contact { width: min(calc(100% - 40px), 1060px); margin: 28px auto 0; }
.cms-page-contact h2 { margin: 0 0 8px; color: var(--cms-color-text); font-family: var(--cms-font-heading); font-size: clamp(1.8rem, 2.7vw, 2.35rem); }
.cms-page-contact .form-intro { margin: 0 0 24px; color: var(--cms-color-text-muted); }
@media (max-width: 680px) {
.cms-page-hero { min-height: 430px; margin-top: -43px; padding: 82px 22px 58px; background: linear-gradient(120deg, var(--cms-color-hero), color-mix(in srgb, var(--cms-color-accent) 38%, var(--cms-color-hero))); }
.cms-page-image-text { width: calc(100% - 28px); min-height: 0; margin-top: 38px; padding: 22px; }
.cms-page-image-text figure,
.cms-page-image-text.image-right figure { width: 100%; margin: 0 0 22px; float: none; }
.cms-page-rich-text,
.cms-page-callout,
.cms-page-image,
.cms-page-quote,
.cms-page-features,
.cms-page-columns,
.cms-page-media,
.cms-widget,
.cms-page-empty { width: calc(100% - 28px); margin-top: 38px; padding: 22px; }

}
.cms-page-rich-text figure,
.cms-page-columns figure { max-width: 100%; margin: 1rem 0; }
.cms-page-rich-text figure img,
.cms-page-columns figure img { display: block; width: 100%; height: auto; }
.cms-page-rich-text .rt-gallery-item img,
.cms-page-columns .rt-gallery-item img { height: 100%; object-fit: contain; object-position: center; }
.cms-page-rich-text figcaption,
.cms-page-columns figcaption { margin-top: 0.35rem; color: var(--cms-color-text-muted); font-size: 0.82rem; }
