/* Home page banners linking to microsites (block type cards:promo) */
.home-promo-section { padding: 40px 0; }
.promo-banners { display: grid; gap: 20px; }
.promo-banner {
    position: relative; display: flex; align-items: center; min-height: 260px; overflow: hidden;
    border-radius: 6px; color: #fff; text-decoration: none; background: #0a2f5f;
}
.promo-banner:hover, .promo-banner:focus { color: #fff; text-decoration: none; }
.promo-banner-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.promo-banner::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(90deg, rgba(7, 34, 72, .95) 0%, rgba(7, 34, 72, .8) 45%, rgba(7, 34, 72, .15) 100%);
}
.promo-banner:hover .promo-banner-bg { transform: scale(1.04); }
.promo-banner-body { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 10px; max-width: 560px; padding: 36px 44px; }
.promo-banner-body small { color: #7cc4ef; font-size: 12px; font-weight: 700; letter-spacing: .14em; }
.promo-banner-body strong { font-size: 30px; line-height: 1.15; }
.promo-banner-text { color: #dcebf7; font-size: 15px; line-height: 1.6; }
.promo-banner-cta {
    align-self: flex-start; margin-top: 6px; padding: 9px 20px; border: 1px solid #fff; border-radius: 99px;
    font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; transition: background .2s, color .2s;
}
.promo-banner:hover .promo-banner-cta { background: #fff; color: #0c4da1; }
@media (max-width: 767px) {
    .home-promo-section { padding: 24px 0; }
    .promo-banner { min-height: 0; }
    .promo-banner::after { background: linear-gradient(180deg, rgba(7, 34, 72, .7) 0%, rgba(7, 34, 72, .95) 100%); }
    .promo-banner-body { padding: 28px 24px; }
    .promo-banner-body strong { font-size: 23px; }
}
