/* Home Hero with Programs Carousel */
.vep-hero { display: grid; grid-template-columns: 1fr 1.25fr; align-items: center; gap: 3rem; padding: 5rem 0; max-width: 1280px; margin: 0 auto; }
.vep-hero__content { display: flex; flex-direction: column; gap: 1.25rem; color: #f4f6fb; }
.vep-hero__chips { display: flex; flex-wrap: wrap; gap: 0.65rem; margin-bottom: 0.5rem; }
.vep-chip--on-dark { background: rgba(0, 0, 0, 0.35); color: #f9fbff; border: 1px solid rgba(255,255,255,0.25); padding: 0.45rem 1.05rem; border-radius: 999px; font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0.01em; box-shadow: 0 8px 24px rgba(0,0,0,0.25); backdrop-filter: blur(6px); }
.vep-hero__title { font-family: 'Cinzel', serif; font-size: clamp(42px, 6vw, 64px); font-weight: 700; color: #fdfdfd; margin: 0; line-height: 1.05; letter-spacing: -1.2px; text-shadow: 0 10px 30px rgba(0,0,0,0.35); }
.vep-hero__subtitle { font-family: 'Inter', sans-serif; color: rgba(255,255,255,0.9); font-size: 17px; line-height: 1.8; max-width: 56ch; text-shadow: 0 8px 20px rgba(0,0,0,0.25); }

.hero-carousel { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 1rem; padding: 0.5rem 0 2rem; scrollbar-width: none; -ms-overflow-style: none; }
.hero-carousel::-webkit-scrollbar { display: none; }
.vep-hero__carousel-wrap { position: relative; overflow: visible; }
.vep-hero__carousel { margin-top: 0; }

.vep-hero__carousel-wrap .ss-slider__arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border-radius: 50%; border: none; background: rgba(0,0,0,0.45); color: #fff; box-shadow: 0 12px 28px rgba(0,0,0,0.35); display: grid; place-items: center; cursor: pointer; transition: background 0.2s ease, transform 0.2s ease; }
.vep-hero__carousel-wrap .ss-slider__arrow:hover { background: rgba(0,0,0,0.6); transform: translateY(-50%) scale(1.03); }
.vep-hero__carousel-wrap .ss-slider__arrow.is-prev { left: -12px; }
.vep-hero__carousel-wrap .ss-slider__arrow.is-next { right: -12px; }

.vep-hero__carousel-wrap .ss-slider__dots { display: flex; justify-content: center; gap: 0.5rem; margin-top: -0.25rem; }
.vep-hero__carousel-wrap .ss-slider__dot { width: 10px; height: 10px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.45); background: rgba(255,255,255,0.2); cursor: pointer; padding: 0; transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease; }
.vep-hero__carousel-wrap .ss-slider__dot.is-active { background: #fff; border-color: #fff; transform: scale(1.08); }

.vep-hero__carousel .hero-card { flex: 0 0 clamp(240px, 28vw, 340px); max-width: clamp(240px, 28vw, 340px); border-radius: 20px; overflow: hidden; box-shadow: 0 16px 45px rgba(0,0,0,0.35); transition: transform 0.3s ease, box-shadow 0.3s ease; scroll-snap-align: start; }
.vep-hero__carousel .hero-card:hover { transform: translateY(-8px); box-shadow: 0 22px 60px rgba(0,0,0,0.45); }
.hero-card { position: relative; height: 100%; background: #0b1b24; }
.vep-hero-card__media { height: 280px; width: 100%; }
.vep-hero-card__media img { width:100%; height:100%; object-fit: cover; display:block; }
.vep-hero-card__overlay { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; padding: 1.5rem; gap: 0.35rem; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.32) 35%, rgba(0,0,0,0.8) 100%); }
.vep-hero-card__title { font-family: 'Cinzel', serif; color:#fff; margin:0; font-size: 22px; font-weight: 700; line-height: 1.2; text-shadow: 0 8px 20px rgba(0,0,0,0.35); }
.vep-hero-card__excerpt { font-family:'Inter',sans-serif; color:#f0f3f7; font-size: 14px; margin:0; line-height:1.55; font-weight: 500; text-shadow: 0 6px 16px rgba(0,0,0,0.3); }

@media (max-width: 1440px) { .vep-hero { gap: 2.5rem; } }
@media (max-width: 1200px) { .vep-hero { grid-template-columns: 1fr; } .vep-hero__title { font-size: clamp(38px, 7vw, 54px); } .vep-hero__carousel .hero-card { flex: 0 0 clamp(240px, 42vw, 320px); } }
@media (max-width: 960px) { .vep-hero { grid-template-columns: 1fr; gap: 2rem; padding: 4rem 0; } .vep-hero__title { font-size: 38px; } .vep-hero__carousel .hero-card { flex: 0 0 clamp(240px, 60vw, 320px); } }
@media (max-width: 720px) { .vep-hero__title { font-size: 34px; } .vep-hero__subtitle { font-size: 15px; } .vep-hero-card__media { height: 240px; } }
@media (max-width: 480px) { .vep-hero__title { font-size: 30px; } .vep-hero__carousel .hero-card { flex: 0 0 85vw; } .vep-hero-card__media { height: 220px; } }
