/* ============================================================
   promociones-mobile-v2.css
   Fix: navbar tapa el hero + diseño de promos mejorado
   ============================================================ */

/* ── Fix navbar overlap ───────────────────────────────────── */
.promos-page {
    padding-top: 0 !important;
}

.promos-hero {
    /* compensar altura del navbar (típicamente 60-70px) */
    padding-top: calc(70px + 2rem) !important;
}

/* ══════════════════════════════════════════════════════════
   MOBILE
   ══════════════════════════════════════════════════════════ */
@media (max-width: 767px) {

    .promos-page {
        padding: 0 0 3rem !important;
    }

    /* ── Hero compacto pero impactante ────────────────────── */
    .promos-hero {
        min-height: 360px !important;
        padding: calc(65px + 1.5rem) 1.25rem 2rem !important;
        border-radius: 0 !important;
        /* full bleed en mobile */
        gap: .85rem !important;
        /* Overlay más dramático */
        background-image:
            linear-gradient(160deg,
                rgba(10, 8, 0, .85) 0%,
                rgba(26, 22, 13, .75) 50%,
                rgba(0, 0, 0, .92) 100%),
            var(--hero-bg, none) !important;
    }

    .promos-hero .badge {
        font-size: .6rem !important;
        letter-spacing: .12em !important;
        padding: .3rem .75rem !important;
    }

    .promos-hero-title {
        font-size: 1.75rem !important;
        line-height: 1.1 !important;
    }

    .promos-hero-accent {
        display: block;
    }

    .promos-hero-desc {
        font-size: .8rem !important;
        line-height: 1.6 !important;
        opacity: .85;
        padding: 0 .25rem;
    }

    .promos-hero .btn-primary {
        font-size: .8rem !important;
        padding: .65rem 1.5rem !important;
        align-self: center;
    }

    /* ── Sección activos ──────────────────────────────────── */
    .promos-active {
        margin: 0 !important;
        padding: 1.75rem 1rem 1rem !important;
    }

    .promos-active-header {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: .2rem !important;
        margin-bottom: 1.25rem !important;
    }

    .promos-active-header h3 {
        font-size: 1.15rem !important;
        font-weight: 800 !important;
    }

    .promos-active-header p {
        font-size: .78rem !important;
    }

    /* ════════════════════════════════════════════════════════
       PROMO FEATURED — rediseño mobile tipo "hero card"
    ════════════════════════════════════════════════════════ */
    .promo-featured {
        flex-direction: column !important;
        margin-bottom: 1.25rem !important;
        border-radius: .9rem !important;
        overflow: hidden !important;
        position: relative;
    }

    /* Imagen más corta */
    .promo-featured-img {
        height: 190px !important;
        width: 100% !important;
        filter: grayscale(20%) !important;
        /* menos gris en mobile */
    }

    /* Cuerpo */
    .promo-featured-body {
        padding: 1.1rem !important;
        gap: .75rem !important;
    }

    .promo-featured-header {
        flex-wrap: wrap !important;
        gap: .4rem !important;
        margin-bottom: .5rem !important;
    }

    .promo-featured-header h4 {
        font-size: 1.1rem !important;
        flex: 1 1 100%;
    }

    .promo-featured-desc {
        font-size: .82rem !important;
        line-height: 1.55 !important;
        margin-bottom: .75rem !important;
        /* Recortar si es muy larga */
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    /* ── Countdown: 4 items en fila compacta ─────────────── */
    .promo-countdown {
        grid-template-columns: repeat(4, 1fr) !important;
        gap: .4rem !important;
        margin-bottom: .85rem !important;
    }

    .countdown-item {
        padding: .45rem .2rem !important;
        border-radius: .4rem !important;
        background: rgba(238, 189, 43, .08) !important;
        border: 1px solid rgba(238, 189, 43, .15);
    }

    .countdown-value {
        font-size: 1.1rem !important;
    }

    .countdown-label {
        font-size: .5rem !important;
        letter-spacing: .04em !important;
    }

    /* ── Footer featured ──────────────────────────────────── */
    .promo-featured-footer {
        flex-direction: row !important;
        /* precio + botón en fila */
        align-items: center !important;
        justify-content: space-between !important;
        gap: .75rem !important;
        flex-wrap: wrap;
    }

    .promo-price-current {
        font-size: 1.15rem !important;
    }

    .promo-price-old {
        font-size: .75rem !important;
        display: block;
    }

    .promo-featured-footer .btn-primary {
        flex-shrink: 0;
        font-size: .78rem !important;
        padding: .6rem 1rem !important;
        white-space: nowrap;
    }

    /* ════════════════════════════════════════════════════════
       GRID DE PROMOS PEQUEÑAS — scroll horizontal en mobile
       Más visual, menos espacio vertical
    ════════════════════════════════════════════════════════ */
    .promos-grid:not(.promos-grid--past) {
        display: flex !important;
        flex-direction: row !important;
        overflow-x: auto !important;
        scroll-snap-type: x mandatory !important;
        gap: .85rem !important;
        padding: .25rem .25rem 1rem !important;
        /* quitar el scroll bar */
        scrollbar-width: none !important;
        -webkit-overflow-scrolling: touch;
        /* extender hasta los bordes de la pantalla */
        margin: 0 -1rem !important;
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }

    .promos-grid:not(.promos-grid--past)::-webkit-scrollbar {
        display: none !important;
    }

    /* Cada card: tamaño fijo para el scroll horizontal */
    .promos-grid:not(.promos-grid--past) .promo-small {
        flex: 0 0 72vw !important;
        /* 72% del ancho de pantalla */
        max-width: 280px !important;
        scroll-snap-align: start !important;
        border-radius: .85rem !important;
    }

    .promo-small-img {
        height: 150px !important;
    }

    .promo-small-body {
        padding: .9rem !important;
    }

    .promo-small-body h4 {
        font-size: .95rem !important;
        margin-bottom: .3rem !important;
    }

    .promo-small-body p {
        font-size: .78rem !important;
        margin-bottom: .75rem !important;
        -webkit-line-clamp: 2 !important;
    }

    .promo-small-footer {
        padding-top: .6rem !important;
    }

    .promo-small-offer {
        font-size: .85rem !important;
    }

    .promo-small-btn {
        font-size: .7rem !important;
        padding: .4rem .75rem !important;
    }

    /* ── Indicador visual de scroll ───────────────────────── */
    .promos-grid:not(.promos-grid--past)::after {
        content: '→';
        flex: 0 0 auto;
        display: flex;
        align-items: center;
        color: rgba(238, 189, 43, .35);
        font-size: 1.5rem;
        padding-right: .5rem;
        align-self: center;
    }

    /* ── Grid pasados: columna normal ─────────────────────── */
    .promos-grid--past {
        grid-template-columns: 1fr !important;
        gap: .85rem !important;
    }

    /* ── Sección anteriores ───────────────────────────────── */
    .promos-past {
        margin-top: 2.5rem !important;
        padding: 1.75rem 1rem 1rem !important;
    }

    .promos-past-header h3 {
        font-size: 1rem !important;
    }

    .promos-past-header p {
        font-size: .75rem !important;
    }

    /* ── No promos ────────────────────────────────────────── */
    .no-promos-container {
        padding: 3rem 1rem !important;
        text-align: center;
    }
}

/* ── Tablet ───────────────────────────────────────────────── */
@media (min-width: 768px) and (max-width: 1023px) {

    .promos-page {
        padding: 0 1.25rem 3rem !important;
    }

    .promos-hero {
        min-height: 400px !important;
        padding-top: calc(65px + 2rem) !important;
        border-radius: .75rem !important;
    }

    .promos-hero-title {
        font-size: 2.4rem !important;
    }

    .promo-featured {
        flex-direction: row !important;
    }

    .promo-featured-img {
        width: 42% !important;
        height: auto !important;
        min-height: 240px !important;
    }

    .promos-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 1.25rem !important;
    }


    /* ── Recurrencia en mobile ── */
    .promo-recurring-label,
    .promo-recurring-tag {
        font-size: .75rem !important;
        margin-bottom: .5rem !important;
        gap: 4px !important;
    }

    .promo-recurring-label .material-symbols-outlined,
    .promo-recurring-tag .material-symbols-outlined {
        font-size: 13px !important;
    }

    /* ── Countdown small en mobile ── */
    .promo-countdown--small {
        gap: .3rem !important;
        margin-bottom: .5rem !important;
    }

    .promo-countdown--small .countdown-item {
        padding: .3rem .15rem !important;
    }

    .promo-countdown--small .countdown-value {
        font-size: .8rem !important;
    }
}