/* Styles for CMS blocks that are not copies of the original homepage
   sections (those keep the site stylesheet's classes). */
.cms-block { padding: 4rem 0; }
.cms-bg-white { background: #fff; }
.cms-bg-gray { background: #f3f4f6; }
.cms-bg-brand { background: #e65e15; color: #fff; }
.cms-bg-brand h1, .cms-bg-brand h2, .cms-bg-brand h3, .cms-bg-brand a { color: #fff; }
.cms-rich-text .page-body { max-width: 52rem; margin: 0 auto; text-align: left; }
/* Imported legal pages open with their title as the first h2 (Bard has no h1): style it like the old page title. */
.cms-rich-text .page-body > h2:first-child { text-align: center; font-size: calc(1.375rem + 1.5vw); margin: 2rem 0 1rem; }
@media (min-width: 1200px) { .cms-rich-text .page-body > h2:first-child { font-size: 2.5rem; } }
.cms-hero { background-size: cover; background-position: center; }
.cms-hero:not([class*="cms-bg-"]) { color: #fff; background-color: #1f2937; }
.cms-hero-inner { padding-top: 5rem; padding-bottom: 5rem; text-align: center; }
.cms-hero:not([class*="cms-bg-"]) h1 { color: #fff; }
.cms-hero-sub { font-size: 1.25rem; max-width: 44rem; margin: 1rem auto 2rem; }
.cms-hero-buttons { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }
.cms-cta-band p { max-width: 44rem; margin: 1rem auto 2rem; }
.cms-faq .accordion { max-width: 52rem; margin: 2rem auto 0; text-align: left; }
.cms-video-inner { display: grid; gap: 2.5rem; align-items: center; grid-template-columns: 1fr 1fr; }
.cms-video-left .cms-video-text { order: 2; }
.cms-video-full .cms-video-inner { grid-template-columns: 1fr; text-align: center; }
.cms-video-player { position: relative; aspect-ratio: 16 / 9; border-radius: .75rem; overflow: hidden; background: #1f2937; }
.cms-video-player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.cms-video-poster { position: absolute; inset: 0; width: 100%; border: 0; cursor: pointer; background: #1f2937 center / cover no-repeat; }
.cms-video-play { position: absolute; top: 50%; left: 50%; width: 4.5rem; height: 4.5rem; margin: -2.25rem 0 0 -2.25rem; border-radius: 50%; background: rgba(240, 106, 37, .95); }
.cms-video-play::after { content: ''; position: absolute; top: 50%; left: 55%; transform: translate(-50%, -50%); border-style: solid; border-width: .9rem 0 .9rem 1.5rem; border-color: transparent transparent transparent #fff; }
.cms-video-fallback { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: .75rem 1rem; background: rgba(17, 24, 39, .9); color: #fff; font-size: .9rem; }
.cms-video-fallback a { color: #fff; text-decoration: underline; }
@media (max-width: 767px) { .cms-video-inner { grid-template-columns: 1fr; } .cms-video-left .cms-video-text { order: 0; } }
