/* Hero Layout: Centered Photo (3.4.0, CUSTOM-TEMPLATE.md D10). The calmest opener: centered label, title, sentence and
   buttons, then one wide photo. Sites restyle it with Branding (fonts, colors, image radius) and their css/screen.css. */
.ct7-ce-copy { display: flex; flex-direction: column; align-items: center; text-align: center; max-width: 1000px; margin: 0 auto; }
.ct7-ce-copy .ct2-hero-sentence { margin-left: auto; margin-right: auto; max-width: 34em; }
.ct7-ce-copy .ct2-hero-buttons { justify-content: center; }
.ct2-hero .ct7-ce { padding-bottom: clamp(40px, 4.5vw, 72px); }
.ct2-hero-centered:not(:has(.ct7-ce-media)) .ct7-ce { padding-bottom: clamp(60px, 7vw, 120px); }

.ct2-hero .ct7-ce-media { margin: 0 auto; padding-bottom: clamp(24px, 3vw, 48px); }
.ct7-ce-frame { position: relative; overflow: hidden; border-radius: var(--img-radius, 0); aspect-ratio: 21 / 9; }
.ct7-ce-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; display: block; }
.ct7-ce-caption { margin: 14px 0 0; font-size: var(--fs-small); line-height: 1.45; opacity: .78; text-align: center; }

/* Full Browser Height: the photo takes whatever the screen has left under the text. */
.ct2-hero-centered.is-full:not(.cc-fit) { min-height: 100svh; display: flex; flex-direction: column; box-sizing: border-box; }
.ct2-hero-centered.is-full:not(.cc-fit):not(:has(.ct7-ce-media)) { justify-content: center; }
.ct2-hero-centered.is-full:not(.cc-fit) .ct7-ce-media { flex: 1 1 auto; display: flex; flex-direction: column; box-sizing: border-box; }
.ct2-hero-centered.is-full:not(.cc-fit) .ct7-ce-frame { flex: 1 1 auto; aspect-ratio: auto; min-height: clamp(220px, 20vw, 340px); }

@media (max-width: 767px) {
	.ct7-ce-copy .ct2-hero-buttons { align-self: stretch; }
	.ct7-ce-frame, .ct2-hero-centered.is-full:not(.cc-fit) .ct7-ce-frame { aspect-ratio: 4 / 3; min-height: 0; flex: none; }
}
.ct2-hero.ct2-hero-centered .ct2-hero-title { font-size: clamp(calc(var(--fs-hero) * 0.5), 5.5vw, var(--fs-hero)); }
