/* ============================================================
   Hero-Banner
   ============================================================ */
.hero {
    position: relative;
    display: flex;
    align-items: center;
    min-height: clamp(340px, 60vh, 560px);
    border-radius: 0 0 var(--radius-card) var(--radius-card);
    overflow: hidden;
    background-image: var(--hero-bg);
    background-size: cover;
    background-position: center;
}
.hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(13, 30, 33, 0.92) 0%, rgba(20, 41, 43, 0.78) 45%, rgba(20, 41, 43, 0.45) 100%);
}
.hero__inner {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: var(--container-max);
    margin-inline: auto;
    padding: clamp(2rem, 6vw, 4.5rem) var(--container-pad);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.1rem;
}

.hero__rating {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.4rem 0.9rem;
    background: rgba(13, 30, 33, 0.6);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-pill);
    font-size: var(--fs-small);
    color: var(--color-white);
}
.hero__stars { color: #ffc531; letter-spacing: 2px; font-size: 1rem; }
.hero__rating-text { font-weight: var(--fw-semibold); }

.hero__title {
    color: var(--color-white);
    line-height: var(--lh-banner);
    max-width: 18ch;
}
.hero__subtitle {
    color: var(--color-text);
    font-size: clamp(1rem, 2vw, 1.2rem);
    max-width: 46ch;
    margin: 0;
}
.hero__cta { margin-top: 0.5rem; font-size: 1.05rem; padding-inline: 2rem; }

@media (min-width: 768px) {
    .hero__inner { gap: 1.35rem; }
}
