@font-face { font-family: Poppins; font-style: normal; font-weight: 400; font-display: swap; src: url("fonts/poppins-latin-400.woff2") format("woff2"); }
@font-face { font-family: Poppins; font-style: normal; font-weight: 500; font-display: swap; src: url("fonts/poppins-latin-500.woff2") format("woff2"); }
@font-face { font-family: Poppins; font-style: normal; font-weight: 600; font-display: swap; src: url("fonts/poppins-latin-600.woff2") format("woff2"); }
@font-face { font-family: Poppins; font-style: normal; font-weight: 700; font-display: swap; src: url("fonts/poppins-latin-700.woff2") format("woff2"); }

body { font-size: 17px; line-height: 1.75; }
h1, h2 { font-weight: 700; }
h3, h4 { font-weight: 600; }
.topbar { font-size: 15px; }
.header-inner { min-height: 116px; }
.brand img { height: 88px; max-width: 320px; }
.site-nav a { padding: 12px 13px; font-size: 17px; font-weight: 500; }
.title-band .page-title { font-size: clamp(32px, 3.6vw, 44px); }
.site-footer { margin-top: 0; font-size: 16px; }

.site-main > .block { margin: 0 0 40px; }
.site-main > .block:last-child { margin-bottom: 0; }
.site-main > .block-image { margin: 0 0 56px; }
.site-main > .block-columns { margin: 0 0 104px; }
.site-main > .block-columns:has(> .wrap > .block-column:only-child > .tone-highlight:first-child):not(.bg-image) { margin: 104px 0 40px; }
.site-main > .block-richtext:first-child + .block-columns { margin-top: 0; }
.site-main > .block-columns > .wrap.cols-2 { column-gap: 64px; align-items: center; }
.site-main h2 { font-size: 32px; line-height: 1.3; }
.site-main .prose p, .site-main .prose li { font-size: 18px; line-height: 1.75; }
.site-main .prose :is(h2, h3, h4) { margin-bottom: 20px; }
.site-main .prose > :last-child { margin-bottom: 0; }
.site-main .block-column h2 { margin: 0 0 20px; }
.site-main .block-column > .block:last-child { margin-bottom: 0; }
.site-main .block-column .size-xxl .prose p { font-size: 30px; font-weight: 700; line-height: 1.3; }
.site-main .block-column .size-xxl a { color: var(--color-primary); text-decoration: none; }
.site-main .block-column > .tone-highlight:has(+ .block-richtext :is(h1, h2, h3)) p { font-size: 14px; }
.site-main .prose :is(ul, ol) { margin: 24px 0; }
.site-main .prose li { margin: 10px 0; }
.site-main .block-column .block-cta { margin-top: 32px; }
.site-main .block-column > .block-richtext + .block-richtext { margin-top: 24px; }
.site-main .block-column > .tone-highlight + .block-richtext { margin-top: 0; }
.site-main .block-column.bg-white .block-image { margin-bottom: 32px; }
.site-main .block-column.bg-white h3 { margin: 0 0 12px; font-size: 20px; }
.site-main .block-column.bg-white .prose p { font-size: 16px; }
.site-main .block-column.bg-white .prose p + p { margin-top: 24px; }
.site-main .block-column.bg-white:has(> .block-image.ratio-square) { padding: 20px 20px 28px; text-align: center; }
.site-main > .block-columns:has(> .wrap > .block-column:only-child > .tone-highlight:first-child):has(+ .block-columns > .wrap > .bg-white) { text-align: center; }
.site-main > .block-columns:has(> .wrap > .block-column:only-child > .tone-highlight:first-child):has(+ .block-columns > .wrap > .bg-white) .prose { margin: 0 auto; }

.site-main .block-column:not(.bg-white) > .block-image:not(.width-narrow) img { width: 100%; height: auto; border-radius: var(--radius); box-shadow: 0 10px 30px color-mix(in srgb, var(--color-dark) 14%, transparent); }
.site-main .block-column:not(.bg-white) > .block-image { margin: 40px 0 0; }
.site-main .block-column:not(.bg-white) > .block-image:first-child { margin-top: 0; }
.site-main .block-column:not(.bg-white) > .block-image.ratio-square img { aspect-ratio: 1; object-fit: cover; }
.site-main .block-column:not(.bg-white) > .block-image.ratio-landscape img { aspect-ratio: 4 / 3; object-fit: cover; }
.site-main .block-video video { display: block; width: 100%; height: auto; border-radius: var(--radius); background: #000; box-shadow: 0 10px 30px color-mix(in srgb, var(--color-dark) 14%, transparent); }

.site-main > .block-stats { margin: 104px 0; padding: 72px 24px; border-radius: var(--radius); }
.site-main .block-stats .stat-value { font-size: 4rem; font-weight: 700; }
.site-main .block-stats .stat-label { margin-top: 12px; font-size: 18px; font-weight: 500; }

.site-main .block-testimonials .testimonials { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; align-items: stretch; }
.site-main .testimonial { display: flex; flex-direction: column; padding: 36px 36px 32px; background: #fff; border: 1px solid var(--color-line); box-shadow: 0 10px 30px color-mix(in srgb, var(--color-dark) 7%, transparent); }
.site-main .testimonial .stars svg { width: 22px; height: 22px; }
.site-main .testimonial blockquote { margin: 20px 0 28px; font-size: 18px; line-height: 1.75; }
.site-main .testimonial figcaption { margin-top: auto; font-size: 16px; }

body { overflow-x: clip; }
.site-body:has(.site-main > .block-columns.bg-image:last-child) { padding-bottom: 0; }
.site-main > .block-columns.bg-image { position: relative; overflow: hidden; margin: 104px calc(50% - 50vw) 0; padding: 120px 24px; }
.site-main > .block-columns.bg-image .section-bg { position: absolute; inset: -48px; z-index: 0; display: block; }
.site-main > .block-columns.bg-image .section-bg img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; box-shadow: none; filter: blur(9px); }
.site-main > .block-columns.bg-image > .wrap { position: relative; z-index: 2; max-width: 780px; margin: 0 auto; }
.site-main > .block-columns.bg-image .block-column.bg-white { padding: 56px 40px; text-align: center; box-shadow: 0 20px 50px rgba(0, 0, 0, .18); }
.site-main > .block-columns.bg-image .block-column.bg-white h2 { margin: 0; font-size: clamp(30px, 3.4vw, 40px); }
.site-main > .block-columns.bg-image .block-cta { margin-top: 36px; }
.site-main > .block-columns.bg-image .block-cta .wrap { text-align: center; }
.site-main > .block-columns.bg-image .btn-primary { padding: 15px 34px; font-size: 17px; }

.stage .block-columns.bg-image::after { display: none; }
.stage .block-columns.bg-dark { padding: 52px 0 56px; background: var(--color-dark); text-align: center; }
.stage .block-columns.bg-dark .block, .stage .block-columns.bg-dark .block-column { margin: 0; padding: 0; }
.stage .block-columns.bg-dark h2 { max-width: none; margin: 0 0 10px; font-size: clamp(32px, 4.2vw, 50px); }
.stage .block-columns.bg-dark p { max-width: none; margin: 0; font-size: clamp(22px, 2.4vw, 30px); line-height: 1.35; opacity: .92; }
.stage .block-columns.bg-none { overflow: visible; padding: 56px 0 0; color: var(--color-fg); }
.stage .block-columns.bg-none > .wrap.columns { gap: 24px; }
.stage .block-columns.bg-none .block-column.bg-white { position: relative; padding: 0; background: var(--color-dark); border: 0; border-radius: var(--radius); box-shadow: 0 12px 32px color-mix(in srgb, var(--color-dark) 16%, transparent); overflow: hidden; }
.stage .block-columns.bg-none .block-column .block { margin: 0; padding: 0; }
.stage .block-columns.bg-none .block-image img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0; transition: transform .4s ease; }
.stage .block-columns.bg-none .block-column.bg-white:hover .block-image img { transform: scale(1.05); }
.stage .block-columns.bg-none .block-column.bg-white > .block-richtext { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 64px 22px 20px; background: linear-gradient(180deg, transparent 0%, color-mix(in srgb, var(--color-dark) 90%, transparent) 100%); }
.stage .block-columns.bg-none h3 { margin: 0; color: #fff; font-size: 19px; line-height: 1.25; }
.stage .block-columns.bg-none h3::after { content: ""; display: inline-block; width: 7px; height: 7px; margin: 0 0 3px 10px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); }
.is-home .site-body { padding-top: 104px; }
.page-stage .block-image { margin: 0; padding: 0; }
.page-stage .block-image .wrap { max-width: none; margin: 0; padding: 0; }
.page-stage .block-image img { display: block; width: 100%; height: clamp(300px, 40vw, 580px); object-fit: cover; border-radius: 0; box-shadow: none; }
.title-band--stage { background: var(--color-dark); border-bottom: 0; text-align: center; }
.title-band--stage .inner { padding-top: 44px; padding-bottom: 48px; }
.title-band--stage .page-title { color: #fff; font-size: clamp(32px, 4.2vw, 50px); }
.title-band--stage .crumb a { color: rgba(255, 255, 255, .8); }

.site-main .block-posts-home { gap: 72px; margin: 0 0 104px; align-items: center; }
.site-main .block-posts-home .block-posts-teaser.has-image .posts-teaser { grid-template-columns: 1fr; gap: 0; padding: 0; background: #fff; overflow: hidden; box-shadow: 0 10px 30px color-mix(in srgb, var(--color-dark) 8%, transparent); }
.site-main .block-posts-home .posts-teaser__image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0; }
.site-main .block-posts-home .posts-teaser__body { padding: 30px 32px 34px; }
.site-main .block-posts-home .posts-teaser h2 { margin: 8px 0 16px; font-size: 24px; }
.site-main .block-posts-home .posts-teaser p { margin: 0 0 24px; font-size: 17px; line-height: 1.7; }
.site-main .block-posts-home .posts-more { display: inline-block; padding: 11px 24px; border-radius: 4px; background: var(--color-accent); color: var(--color-accent-fg); font-weight: 600; text-decoration: none; }
.is-home .block-posts-home .posts-home__text { display: grid; grid-template-columns: 96px minmax(0, 1fr); column-gap: 22px; align-content: center; }
.is-home .block-posts-home .posts-home__text > .block:first-child { grid-column: 1 / -1; }
.is-home .block-posts-home .posts-home__text h2 { margin: 0 0 24px; font-size: clamp(30px, 3vw, 38px); }
.is-home .block-posts-home .posts-home__text .prose p { font-size: 19px; }
.is-home .block-posts-home .posts-home__text > .block-image { grid-column: 1; grid-row: 2; position: static; flex: none; min-height: 0; margin: 36px 0 0; }
.is-home .block-posts-home .posts-home__text > .block-image .wrap, .is-home .block-posts-home .posts-home__text > .block-image picture { position: static; }
.is-home .block-posts-home .posts-home__text > .block-image img { width: 96px; height: 96px; border-radius: 50%; box-shadow: none; object-fit: cover; }
.is-home .block-posts-home .posts-home__text > .tone-muted { grid-column: 2; grid-row: 2; align-self: center; margin: 36px 0 0; }
.is-home .block-posts-home .posts-home__text > .tone-muted p { color: var(--color-primary); font-size: 18px; font-weight: 600; }

@media (min-width: 801px) {
    .site-main > .block-columns > .wrap.cols-3:has(> .bg-white) { grid-template-columns: repeat(auto-fit, minmax(0, calc((100% - 64px) / 3))); justify-content: center; }
}

@media (max-width: 1240px) {
    .site-nav a { padding: 10px 10px; font-size: 16px; }
}

@media (max-width: 1100px) {
    .header-inner { min-height: 88px; }
    .brand img { height: 66px; }
}

@media (max-width: 800px) {
    .stage .block-columns.bg-none > .wrap.columns { --cols: 2 !important; gap: 16px; }
    .site-main .block-testimonials .testimonials { grid-template-columns: 1fr; }
    .site-main .block-column.bg-white:has(> .block-image.ratio-square) { width: 100%; max-width: 360px; margin: 0 auto; box-sizing: border-box; }
}

@media (max-width: 700px) {
    .site-main h2 { font-size: 26px; }
    .site-main .prose p, .site-main .prose li { font-size: 17px; }
    .site-main > .block-columns { margin-bottom: 72px; }
    .site-main > .block-columns:has(> .wrap > .block-column:only-child > .tone-highlight:first-child):not(.bg-image) { margin-top: 72px; }
    .site-main > .block-stats { margin: 72px 0; padding: 48px 20px; }
    .site-main .block-stats .stat-value { font-size: 2.8rem; }
    .site-main .testimonial { padding: 28px 24px; }
    .site-main > .block-columns.bg-image { margin-top: 72px; padding: 72px 16px; }
    .site-main > .block-columns.bg-image .block-column.bg-white { padding: 40px 22px; }
    .stage .block-columns.bg-dark { padding: 36px 0 40px; }
    .stage .block-columns.bg-none { padding-top: 32px; }
    .stage .block-columns.bg-none .block-column.bg-white > .block-richtext { padding: 40px 14px 14px; }
    .stage .block-columns.bg-none h3 { font-size: 16px; }
    .is-home .site-body { padding-top: 72px; }
    .is-home .block-posts-home .posts-home__text { grid-template-columns: 72px minmax(0, 1fr); }
    .is-home .block-posts-home .posts-home__text > .block-image img { width: 72px; height: 72px; }
    .brand img { height: 56px; }
}
