.tt-banner { line-height: 1.5; position: relative; display: flex; flex-direction: column; align-items: center; padding: var(--tt-banner-pt) 40px var(--tt-banner-pb); background: var(--tt-banner-bg, transparent); color: var(--tt-banner-fg); text-align: center; overflow: hidden; }
.tt-banner__media { position: absolute; inset: 0; }
.tt-banner__media .tt-banner__img, .tt-banner__media img, .tt-banner__media svg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.tt-banner__fade { position: absolute; inset: 0; }
.tt-banner__inner { position: relative; display: flex; flex-direction: column; width: 100%; max-width: 1480px; margin: 0 auto; }
.tt-banner__content { display: flex; flex-direction: column; align-items: center; gap: 16px; max-width: 760px; margin: 0 auto; }
.tt-banner--left { text-align: left; } .tt-banner--left .tt-banner__content { align-items: flex-start; margin-left: 0; }
.tt-banner__heading { margin: 0; color: inherit; font-size: var(--tt-banner-h1); font-weight: 800; line-height: 1.05; letter-spacing: -0.03em; }
.tt-banner__text { max-width: 560px; color: rgb(from var(--tt-banner-fg) r g b / 0.92); font-size: 17px; line-height: 1.6; }
.tt-banner__text p { margin: 0; }
.tt-banner__buttons:not(:has(a)) { display: none; }
.tt-banner__buttons { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 8px; }
.tt-banner__btn { display: inline-block; padding: 13px 30px; border-radius: 8px; font-size: 14.5px; font-weight: 700; text-decoration: none; }
.tt-banner__btn--primary { background: #ffffff; color: #0A1628; }
.tt-banner__btn--secondary { border: 1px solid rgb(from var(--tt-banner-fg) r g b / 0.6); color: inherit; }
@media (max-width: 640px) {
  .tt-banner { padding-left: 12px; padding-right: 12px; }
  .tt-banner__heading { font-size: var(--tt-banner-h1-m); }
}
