/* Homepage-only editorial cards; all selectors stay local to this component. */
/* Wider than the old 950px banner, aligned to the existing homepage container. */
.home-promotions-shell.container { max-width: 1200px; margin-bottom: 24px; padding-inline: 15px; }
.home-promotions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 20px; text-align: left; }
.home-promotions .home-promo { position: relative; isolation: isolate; display: flex; align-items: center; min-height: 300px; min-width: 0; padding: 22px 28px; overflow: hidden; border-radius: 16px; background: #123451; color: #fff; text-decoration: none; font-family: inherit; }
.home-promo .home-promo__photo { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 70% center; }
/* A compact 300px minimum follows the former wide banner; content may grow on narrow screens. */
/* Pseudo-element overlays leave the far side of each photograph visible. */
.home-promo::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(8, 28, 49, .97) 0%, rgba(8, 28, 49, .91) 36%, rgba(8, 28, 49, .78) 64%, rgba(8, 28, 49, .04) 100%); }
.home-promo .home-promo__content { width: 69%; position: relative; }
.home-promo .home-promo__eyebrow { display: block; margin-bottom: 10px; font-size: 11px; line-height: 1.4; font-weight: 700; letter-spacing: .1em; }
.home-promo h2 { margin: 0 0 12px; color: inherit; font-family: inherit; font-size: clamp(23px, 2.1vw, 28px); font-weight: 700; line-height: 1.14; text-transform: none; }
.home-promo p { margin: 0 0 16px; color: inherit; font-size: 14px; line-height: 1.45; }
.home-promo .home-promo__cta { display: inline-flex; align-items: center; gap: 14px; min-height: 44px; padding: 11px 18px; border-radius: 7px; background: #0f6fab; color: #fff; font-size: 14px; line-height: 1.4; font-weight: 600; transition: background-color .18s ease; }
.home-promotions .home-promo--matura { background: #edf5fa; color: #123451; justify-content: flex-end; }
.home-promo--matura .home-promo__photo { object-position: 25% center; }
.home-promo--matura::before { background: linear-gradient(270deg, rgba(242, 248, 252, .99) 0%, rgba(242, 248, 252, .96) 35%, rgba(242, 248, 252, .78) 62%, rgba(242, 248, 252, 0) 100%); }
/* Narrow the right-aligned block to move the copy toward the right edge. */
.home-promo--matura .home-promo__content { width: 62%; }
.home-promo:hover .home-promo__cta { background: #093c5c; }
.home-promotions .home-promo:focus-visible { outline: 3px solid #0f6fab; outline-offset: 4px; }
/* Stack before two-column copy becomes cramped, including narrow tablets. */
@media (max-width: 899px) {
    .home-promotions { grid-template-columns: minmax(0, 1fr); gap: 16px; }
    .home-promotions .home-promo { min-height: 300px; padding: 22px 28px; }
    .home-promo .home-promo__content { max-width: 300px; }
}
@media (max-width: 479px) {
    .home-promotions .home-promo { min-height: 300px; padding: 22px 20px; }
    .home-promo .home-promo__content { width: 78%; }
    .home-promo--matura .home-promo__content { width: 70%; }
    .home-promo h2 { font-size: 25px; }
    .home-promo p { font-size: 14px; margin-bottom: 20px; }
}
@media (prefers-reduced-motion: reduce) { .home-promo .home-promo__cta { transition: none; } }
