/* ============================================
   PAGE - Front Page
   ============================================ */

.mm-content { margin-top: 0; }

/* Contenedor específico de portada */
.mm-fp-container {
    width: 100%;
    max-width: var(--mm-container-max-width);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--mm-container-padding);
    padding-right: var(--mm-container-padding);
}

/* Secciones */
.mm-fp-section {
    padding-top: var(--mm-spacing-3xl);
    padding-bottom: var(--mm-spacing-3xl);
}

.mm-fp-section--tonal { background-color: var(--mm-surface-container-low); }

.mm-fp-section-header {
    display: flex;
    flex-direction: column;
    gap: var(--mm-spacing-lg);
    margin-bottom: var(--mm-spacing-2xl);
}

@media (min-width: 768px) {
    .mm-fp-section-header {
        flex-direction: row;
        justify-content: space-between;
        align-items: flex-end;
    }
}

.mm-fp-section-header__text { max-width: 500px; }

.mm-fp-section-title {
    font-family: var(--mm-font-headline);
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    font-weight: 700;
    color: var(--mm-primary);
    margin-bottom: 12px;
}

.mm-fp-section-link {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--mm-font-headline);
    font-weight: 600;
    color: var(--mm-primary);
    text-decoration: none;
    white-space: nowrap;
}

/* Botones específicos de portada */
.mm-fp-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 28px;
    border-radius: var(--mm-radius-md);
    font-family: var(--mm-font-headline);
    font-weight: 700;
    font-size: 1rem;
    text-decoration: none;
    cursor: pointer;
    transition: var(--mm-transition);
    border: 2px solid transparent;
}

.mm-fp-btn-primary {
    background: var(--mm-primary-gradient);
    color: #fff;
    box-shadow: var(--mm-shadow-button);
}

.mm-fp-btn-primary:hover {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 86, 210, 0.3);
}

.mm-fp-btn-outline { background: transparent; }

.mm-fp-btn-outline.mm-fp-btn-outline--light {
    border-color: rgba(255, 255, 255, 0.5);
    color: #fff;
}

.mm-fp-btn-outline.mm-fp-btn-outline--light:hover {
    background: #fff;
    color: var(--mm-primary);
    border-color: #fff;
}

.mm-fp-btn-highlight {
    background: #fff;
    color: var(--mm-primary);
    gap: 8px;
}

.mm-fp-btn-highlight:hover { background: var(--mm-surface-container-low); }

/* ── Hero ── */
.mm-fp-hero {
    position: relative;
    height: 716px;
    display: flex;
    align-items: center;
    overflow: hidden;
    /* Negar el padding-top del body para que arranque en el borde superior */
    margin-top: calc(-1 * var(--mm-header-height));
}

.mm-fp-hero__slides {
    position: absolute;
    inset: 0;
}

.mm-fp-hero__slide {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.7s ease;
    z-index: 1;
}

.mm-fp-hero__slide.is-active {
    opacity: 1;
    visibility: visible;
    z-index: 2;
}

.mm-fp-hero__background {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.mm-fp-hero__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.mm-fp-hero__placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #4d5e8b 0%, #41527f 100%);
}

.mm-fp-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(48, 50, 59, 0.7) 0%, rgba(48, 50, 59, 0) 100%);
}

.mm-fp-hero__content {
    position: relative;
    z-index: 2;
    width: 100%;
    padding-top: var(--mm-header-height);
}

/* !important necesario: texto blanco sobre imagen */
.mm-fp-hero__badge {
    display: inline-block;
    color: #fff !important;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-size: 0.875rem;
    font-weight: 600;
    margin-bottom: 1rem;
}

/* El titular es texto del Personalizador: puede traer palabras largas.
   Tamano fluido para que quepa en movil — a 768px o mas se queda en los 48px. */
.mm-fp-hero__title {
    color: #fff !important;
    max-width: 800px;
    font-size: clamp(2rem, 9vw, 48px);
    font-weight: 800;
    margin-bottom: var(--mm-spacing-sm);
    overflow-wrap: break-word;
}

.mm-fp-hero__subtitle {
    color: rgba(255, 255, 255, 0.9) !important;
    font-size: 1.25rem !important;
    max-width: 600px;
    margin-bottom: 2rem !important;
    line-height: 1.6;
}

.mm-fp-hero__buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}

/* ── Hero — flechas y dots (solo con más de 1 slide) ── */
.mm-fp-hero__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    backdrop-filter: blur(4px);
    transition: background 0.2s;
}

.mm-fp-hero__arrow:hover { background: rgba(255, 255, 255, 0.3); }
.mm-fp-hero__arrow--prev { left: 24px; }
.mm-fp-hero__arrow--next { right: 24px; }

.mm-fp-hero__dots {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 24px;
    z-index: 3;
    display: flex;
    justify-content: center;
    gap: 10px;
}

.mm-fp-hero__dot {
    width: 10px;
    height: 10px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.4);
    cursor: pointer;
    transition: background 0.2s, transform 0.2s;
}

.mm-fp-hero__dot:hover { background: rgba(255, 255, 255, 0.7); }
.mm-fp-hero__dot.is-active { background: #fff; transform: scale(1.2); }

@media (max-width: 767px) {
    .mm-fp-hero__arrow { display: none; }
    .mm-fp-hero__dots { bottom: 14px; }
}

/* Deja espacio para que las flechas no tapen títulos que ocupan 2 líneas */
@media (min-width: 768px) {
    .mm-fp-hero--slider .mm-fp-hero__content .mm-fp-container {
        padding-left: 88px;
        padding-right: 88px;
    }
}

/* ── Editorial (categorías) ── */
.mm-fp-editorial__grid {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
}

.mm-fp-editorial__grid > * {
    flex: 0 0 calc(50% - 12px);
    min-width: 0;
}

@media (min-width: 768px) {
    .mm-fp-editorial__grid > * { flex: 0 0 calc(33.333% - 16px); }
}

@media (min-width: 1100px) {
    .mm-fp-editorial__grid > * { flex: 0 0 calc(20% - 20px); }
}

.mm-fp-cat-card {
    position: relative;
    overflow: hidden;
    border-radius: var(--mm-radius-lg);
    aspect-ratio: 16 / 9;
    display: block;
    text-decoration: none;
}

.mm-fp-cat-card__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transition: transform 0.4s;
}

.mm-fp-cat-card:hover .mm-fp-cat-card__bg { transform: scale(1.05); }

.mm-fp-cat-card__content {
    position: absolute;
    bottom: 0;
    left: 0;
    padding: 30px;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.75) 0%, transparent 100%);
    width: 100%;
    box-sizing: border-box;
}

/* Sin imagen: overlay más sutil, el color oscuro ya da contraste */
.mm-fp-cat-card--color .mm-fp-cat-card__content {
    background: linear-gradient(to top, rgba(0, 0, 0, 0.35) 0%, transparent 100%);
}

/* !important necesario: headings en capas sobre imagen */
.mm-fp-cat-card__content h3 {
    font-family: var(--mm-font-headline) !important;
    font-weight: 700 !important;
    font-size: 1.25rem !important;
    color: #fff !important;
    margin: 0 0 4px 0 !important;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.mm-fp-cat-card__content p {
    font-size: 0.85rem !important;
    color: rgba(255, 255, 255, 0.9) !important;
    margin: 0 !important;
    font-weight: 500 !important;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* P2 — Texto y padding reducidos en móvil para que no se corte en cards pequeñas */
@media (max-width: 480px) {
    .mm-fp-cat-card { aspect-ratio: 4 / 3; }
    .mm-fp-cat-card__content { padding: 10px 12px; }
    .mm-fp-cat-card__content h3 { font-size: 0.8rem !important; }
    .mm-fp-cat-card__content p  { font-size: 0.65rem !important; }
}

@media (min-width: 1100px) {
    .mm-fp-cat-card__content { padding: 14px 16px; }
    .mm-fp-cat-card__content h3 { font-size: 0.85rem !important; }
    .mm-fp-cat-card__content p  { font-size: 0.7rem !important; }
}

/* ── Grid de productos destacados ──
   El número de columnas lo fija el Personalizador (mm_products_columns) con la
   variable --mm-fp-cols en línea sobre el <ul>. En móvil siempre 1 columna y en
   tablet como mucho 2, aunque se pidan más. */
.mm-fp-products-grid {
    --mm-fp-cols: 4;
    --mm-fp-gap: 16px;
    --mm-fp-cols-now: 1;
    display: flex;
    flex-wrap: wrap;
    gap: var(--mm-fp-gap);
}

.mm-fp-products-grid li.product {
    flex: 0 0 calc((100% - (var(--mm-fp-cols-now) - 1) * var(--mm-fp-gap)) / var(--mm-fp-cols-now));
    max-width: calc((100% - (var(--mm-fp-cols-now) - 1) * var(--mm-fp-gap)) / var(--mm-fp-cols-now));
    box-sizing: border-box;
}

@media (min-width: 640px) {
    .mm-fp-products-grid {
        --mm-fp-cols-now: min(2, var(--mm-fp-cols));
    }
}

@media (min-width: 1024px) {
    .mm-fp-products-grid {
        --mm-fp-cols-now: var(--mm-fp-cols);
    }
}

/* ── Sección destacado premium — dos productos ── */
.mm-fp-highlight__title {
    text-align: center;
    margin-bottom: var(--mm-spacing-xl) !important;
}

.mm-fp-highlight__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
}

@media (min-width: 768px) {
    .mm-fp-highlight__grid {
        grid-template-columns: 1fr 1fr;
    }
}

/* Cada tarjeta = un bloque cerrado: recuadro azul, sin aire dentro */
.mm-fp-highlight__card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: linear-gradient(135deg, #0044b3 0%, #0056D2 60%, #1a6fe8 100%);
    border: 2px solid var(--mm-primary);
    border-radius: var(--mm-radius-xl);
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(0, 68, 179, 0.18);
}

/* Área de imagen — a sangre: ocupa todo el ancho de su mitad de la tarjeta */
.mm-fp-highlight__image {
    width: 100%;
    aspect-ratio: 4 / 3;
    background: #fff;
    overflow: hidden;
}

.mm-fp-highlight__image img {
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center;
    display: block;
}

/* Área de contenido — texto blanco */
.mm-fp-highlight__content {
    padding: 24px 28px 28px;
    display: flex;
    flex-direction: column;
    flex: 1;
    color: #fff;
    position: relative;
    z-index: 2;
}

.mm-fp-highlight__content h3 {
    font-family: var(--mm-font-headline) !important;
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    color: #fff !important;
    margin-bottom: 10px !important;
    line-height: 1.3 !important;
}

.mm-fp-highlight__desc {
    color: rgba(255, 255, 255, 0.82) !important;
    font-size: 0.875rem !important;
    margin-bottom: 12px !important;
    line-height: 1.6;
    flex: 1;
}

.mm-fp-highlight__price {
    margin-bottom: 16px;
}

.mm-fp-highlight__price .price,
.mm-fp-highlight__price .amount,
.mm-fp-highlight__price bdi {
    color: #fff !important;
    font-size: 1.4rem !important;
    font-weight: 700 !important;
    font-family: var(--mm-font-headline) !important;
}

.mm-fp-highlight__actions {
    display: flex;
    justify-content: flex-end;
    margin-top: auto;
}

/* ── Blog (últimas entradas) ── */
.mm-fp-blog {
    padding: var(--mm-spacing-3xl) 0;
    background: var(--mm-surface-container-lowest);
}

.mm-fp-blog__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: var(--mm-spacing-xl);
}

.mm-fp-blog__grid {
    display: flex;
    flex-wrap: wrap;
    gap: var(--mm-spacing-lg);
}

.mm-fp-blog__grid > * {
    flex: 0 0 100%;
    min-width: 0;
}

@media (min-width: 768px) {
    .mm-fp-blog__grid > * { flex: 0 0 calc(33.333% - var(--mm-spacing-lg) * 2 / 3); }
}

.mm-fp-no-posts {
    width: 100%;
    text-align: center;
    padding: var(--mm-spacing-lg);
}

/* C04 — Home Noticias: alinear fecha con label categoría */
.mm-fp-blog .mm-blog-card__meta {
    align-items: baseline;
}
.mm-fp-blog .mm-blog-card__category,
.mm-fp-blog .mm-blog-meta__dot,
.mm-fp-blog .mm-blog-card__date {
    line-height: 1;
}

/* ── Proveedores y marcas (cinta de logos en movimiento continuo) ── */
.mm-fp-brands {
    padding: var(--mm-spacing-lg) 0;
    background: var(--mm-surface-container-lowest);
    border-top: 1px solid var(--mm-surface-container-high);
}

/* Ocupa todo el ancho de la ventana: la cinta no va dentro del contenedor. */
.mm-fp-brands__marquee {
    overflow: hidden;
}

.mm-fp-brands__track {
    display: flex;
    width: max-content;
    animation: mm-brands-scroll 70s linear infinite;
    will-change: transform;
}

.mm-fp-brands__group {
    display: flex;
    align-items: center;
}

.mm-fp-brands__item {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 110px;
    height: 44px;
    margin-right: var(--mm-spacing-md);
}

.mm-fp-brands__logo {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    object-fit: contain;
    filter: grayscale(1);
    opacity: 0.6;
}

/* De izquierda a derecha: arranca desplazada justo un grupo de logos y avanza
   hasta su posición natural, así el corte del bucle no se ve. */
@keyframes mm-brands-scroll {
    from { transform: translateX(-50%); }
    to   { transform: translateX(0); }
}

@media (min-width: 640px) {
    .mm-fp-brands__item {
        width: 150px;
        height: 56px;
        margin-right: var(--mm-spacing-lg);
    }
}

@media (prefers-reduced-motion: reduce) {
    .mm-fp-brands__track {
        animation: none;
        transform: none;
    }

    .mm-fp-brands__marquee {
        overflow-x: auto;
    }
}
