/* --- programajánló banner (cserélhető, data/bannerek.json) --- */
.promo{padding:clamp(40px,6vw,72px) var(--gutter) 0}
.promo-inner{max-width:1280px;margin:0 auto}
.banner{display:grid;grid-template-columns:1.1fr 1fr;gap:0;border-radius:var(--radius);overflow:hidden;background:var(--cream);color:var(--ink);box-shadow:0 40px 80px -30px rgba(0,0,0,.8);min-height:360px}
.banner-media{position:relative;min-height:260px;background:#000}
.banner-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.banner-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 60%,var(--cream))}
.banner-body{padding:clamp(26px,4vw,52px);display:flex;flex-direction:column;justify-content:center;gap:14px}
.banner-body .eyebrow{color:var(--red)}
.banner-body h3{font-size:clamp(2.2rem,4.5vw,3.8rem);text-transform:uppercase}
.banner-body p{color:rgba(7,11,28,.78);max-width:46ch}
.banner-meta{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:.88rem;font-weight:700;color:var(--ink)}
.banner-meta span::before{content:"✦";color:var(--flame);margin-right:6px}
.banner-body .btn{align-self:flex-start;margin-top:6px}
.banner-dots{display:flex;gap:8px;justify-content:center;margin-top:16px}
.banner-dots button{width:34px;height:6px;border-radius:999px;border:0;background:rgba(247,236,217,.18);cursor:pointer;padding:0;transition:.3s}
.banner-dots button[aria-current="true"]{background:var(--flame);width:52px}
.banner.swap{animation:bannerIn .6s cubic-bezier(.2,.8,.2,1)}
@keyframes bannerIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (max-width:900px){.banner{grid-template-columns:1fr}.banner-media{aspect-ratio:16/9;min-height:0}.banner-media::after{background:linear-gradient(180deg,transparent 60%,var(--cream))}}
