.tqp-recommendation-group {
    --tqp-rc-accent: #007eae;
    --tqp-rc-tour-max-width: 560px;
    --tqp-rc-tour-min-width: 500px;
    --tqp-rc-image-width: 175px;
    --tqp-rc-image-height: 125px;

    display: grid;
    grid-template-columns:
        repeat(
            auto-fit,
            minmax(
                min(100%, var(--tqp-rc-tour-min-width)),
                1fr
            )
        );

    column-gap: 32px;
    row-gap: 34px;
    align-items: start;
    justify-items: center;

    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;

    box-sizing: border-box;
    font-family: inherit;
}

.tqp-recommendation-group *,
.tqp-recommendation-group *::before,
.tqp-recommendation-group *::after {
    box-sizing: border-box;
}

/* =========================================================
   CARD DE TOUR
   Tamaño máximo: 560 × 125 px
========================================================= */

.tqp-content-card--tour {
    justify-self: center;

    display: grid;
    grid-template-columns:
        var(--tqp-rc-image-width)
        minmax(0, 1fr);

    width: 100%;
    max-width: 100%;

    height: var(--tqp-rc-image-height);
    min-height: var(--tqp-rc-image-height);
    max-height: var(--tqp-rc-image-height);

    margin: 0;
    padding: 0;
    overflow: hidden;

    color: inherit;
    background: #fff;

    border: 1px solid rgba(40, 40, 40, 0.09);
    border-radius: 11px;

    box-shadow: 0 3px 11px rgba(0, 0, 0, 0.18);

    text-decoration: none;

    transition:
        box-shadow 160ms ease,
        transform 160ms ease;
}

/*
 * La separación entre los tours
 * la controla el row-gap del grupo.
 */
.tqp-content-card--tour + .tqp-content-card--tour {
    margin-top: 0;
}

.tqp-content-card--tour:hover {
    color: inherit;
    text-decoration: none;

    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
    transform: translateY(-1px);
}

.tqp-content-card--tour:focus-visible {
    outline: 3px solid rgba(0, 126, 174, 0.3);
    outline-offset: 3px;
}

/* =========================================================
   IMAGEN DEL TOUR
   175 × 125 px y radio de 10 px en las cuatro esquinas
========================================================= */

.tqp-content-card--tour .tqp-content-card__image {
    display: block;

    width: var(--tqp-rc-image-width);
    height: var(--tqp-rc-image-height);

    overflow: hidden;
    background: #eceff1;

    border-radius: 10px;
}

.tqp-content-card--tour .tqp-content-card__image-element {
    display: block;

    width: 100%;
    height: 100%;

    margin: 0;

    object-fit: cover;
    border-radius: 10px;
}

.tqp-content-card--tour .tqp-content-card__image--empty {
    border-radius: 10px;

    background:
        linear-gradient(
            135deg,
            rgba(0, 126, 174, 0.08),
            rgba(0, 0, 0, 0.04)
        ),
        #f0f2f3;
}

/* =========================================================
   CONTENIDO DEL TOUR
========================================================= */

.tqp-content-card--tour .tqp-content-card__body {
    display: flex;
    flex-direction: column;

    min-width: 0;

    height: var(--tqp-rc-image-height);
    min-height: 0;
    max-height: var(--tqp-rc-image-height);

    padding: 11px 16px 10px 11px;
    overflow: hidden;
}

/* Título: Poppins, 16 px, peso 600, una sola línea. */
.tqp-content-card--tour .tqp-content-card__title {
    display: block;

    width: 100%;
    min-width: 0;

    margin: 0;
    overflow: hidden;

    color: #303030;

    font-family: "Poppins", sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.25;

    white-space: nowrap;
    text-overflow: ellipsis;
}

/* Extracto: Montserrat, 13 px, peso 400. */
.tqp-content-card--tour .tqp-content-card__excerpt {
    display: -webkit-box;

    margin: 5px 0 0;
    overflow: hidden;

    color: #454545;

    font-family: "Montserrat", sans-serif;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.33;

    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

/* “Desde”: Montserrat, 14 px, peso 400. */
.tqp-content-card--tour .tqp-content-card__price {
    display: flex;
    align-items: baseline;
    justify-content: flex-end;

    gap: 4px;

    margin-top: auto;
    padding-top: 4px;

    color: #474747;

    font-family: "Montserrat", sans-serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 1;

    white-space: nowrap;
}

/* Precio: Montserrat, 16 px, peso 700. */
.tqp-content-card--tour .tqp-content-card__price strong {
    color: var(--tqp-rc-accent);

    font-family: "Montserrat", sans-serif;
    font-size: 16px;
    font-weight: 700;
}

/* “Consultar” mantiene la misma tipografía destacada. */
.tqp-content-card--tour .tqp-content-card__price--consult strong {
    font-family: "Montserrat", sans-serif;
    font-size: 16px;
    font-weight: 700;
}

/* =========================================================
   CARD DE ARTÍCULO
   Ocupa todo el ancho del contenedor
========================================================= */

.tqp-content-card--article {
    grid-column: 1 / -1;
    justify-self: stretch;

    display: flex;
    flex-direction: column;

    width: 100%;
    max-width: none;
    min-width: 0;

    margin: 0;
    padding: 0 2px;

    color: inherit;
    background: transparent;

    border: 0;
    box-shadow: none;
}

.tqp-content-card--article + .tqp-content-card--article {
    margin-top: 0;
}

/* Título: Montserrat, 16 px, peso 600. */
.tqp-content-card--article .tqp-content-card__title {
    margin: 0;

    color: #303030;

    font-family: "Montserrat", sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
}

/* Extracto: Montserrat, 16 px, peso 400. */
.tqp-content-card--article .tqp-content-card__excerpt {
    margin: 3px 0 0;

    color: #4a4a4a;

    font-family: "Montserrat", sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.42;
}

.tqp-content-card--article .tqp-content-card__action {
    width: 100%;

    margin-top: 25px;

    text-align: right;
}

/* “Leer la guía”: Montserrat, 16 px, peso 700. */
.tqp-content-card--article .tqp-content-card__action a {
    color: var(--tqp-rc-accent);

    font-family: "Montserrat", sans-serif;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.3;

    text-decoration: none;
}

.tqp-content-card--article .tqp-content-card__action a:hover,
.tqp-content-card--article .tqp-content-card__action a:focus-visible {
    text-decoration: underline;
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 480px) {
    .tqp-recommendation-group {
        --tqp-rc-image-width: 140px;
        --tqp-rc-image-height: 100px;
    }

    .tqp-content-card--tour .tqp-content-card__body {
        padding: 8px 10px 8px 9px;
    }

    .tqp-content-card--tour .tqp-content-card__title {
        font-size: 14px;
    }

    .tqp-content-card--tour .tqp-content-card__excerpt {
        margin-top: 3px;

        font-size: 12px;

        -webkit-line-clamp: 2;
    }

    .tqp-content-card--tour .tqp-content-card__price,
    .tqp-content-card--tour .tqp-content-card__price strong,
    .tqp-content-card--tour .tqp-content-card__price--consult strong {
        font-size: 13px;
    }

    .tqp-content-card--article .tqp-content-card__title,
    .tqp-content-card--article .tqp-content-card__excerpt,
    .tqp-content-card--article .tqp-content-card__action a {
        font-size: 15px;
    }
}

@media (max-width: 360px) {
    .tqp-recommendation-group {
        --tqp-rc-image-width: 120px;
        --tqp-rc-image-height: 92px;
    }

    .tqp-content-card--tour .tqp-content-card__excerpt {
        display: none;
    }
}