/* 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%; max-width: none; 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 :is(h2, h3) { 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-promotions .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 :is(h2, h3) { font-size: 25px; }
    .home-promo p { font-size: 14px; margin-bottom: 20px; }
}
@media (prefers-reduced-motion: reduce) { .home-promo .home-promo__cta { transition: none; } }

/* New landing-page blocks reuse the surrounding shell and section title rhythm. */
.editorial-related { padding-block: 32px; }
.editorial-related__heading h2 { margin: 0; color: var(--ui-color-brand, #0d537e); font-family: var(--ui-font-sans, sans-serif); font-size: 28px; font-weight: 700; line-height: 1.2; }
.editorial-related .home-promotions { margin-top: 20px; }
/* Keep the City's existing 286px promotional row while sharing it among three cards. */
.miasto-route .city-discovery-actions.home-promotions--city { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 0; }
.miasto-route .home-promotions--city .home-promo { min-height: 286px; border-radius: 12px; padding: 18px; }
.miasto-route .home-promotions--city .home-promo__content { width: 82%; }
.miasto-route .home-promotions--city .city-discovery-feature-copy { width: 100%; padding: 18px; }
.miasto-route .home-promotions--city :is(.home-promo h3, .city-discovery-feature h3) { font-size: 22px; line-height: 1.15; }
.miasto-route .home-promotions--city :is(.home-promo p, .city-discovery-feature p) { font-size: 13px; line-height: 1.4; margin: 10px 0 14px; }
.miasto-route .home-promotions--city .city-discovery-total { font-size: 36px; }
.miasto-route .home-promotions--city .home-promo__cta { font-size: 13px; padding-inline: 14px; }
@media (max-width: 1099px) {
    .miasto-route .city-discovery-actions.home-promotions--city { grid-template-columns: minmax(0, 1fr); }
    .miasto-route .home-promotions--city .home-promo__content { width: 70%; max-width: 340px; }
    .miasto-route .home-promotions--city .city-discovery-feature-copy { width: 80%; }
}
@media (max-width: 479px) {
    .editorial-related { padding-block: 24px; }
    .editorial-related__heading h2 { font-size: 24px; }
    .miasto-route .home-promotions--city .home-promo__content { width: 78%; }
}

/* Legacy global image caps must not truncate photographic backgrounds. */
.miasto-route .home-promotions--city .city-discovery-feature-media img { max-width: none; }
.miasto-route .home-promotions--city .city-discovery-feature:focus-visible { outline: 3px solid #0f6fab; outline-offset: 4px; }

/* Route link hover rules should not underline the full promotional card. */
.home-promotions .home-promo:hover { text-decoration: none; }
