.block-card {
    padding: 32px 18px;
    border-radius: var(--wp--custom--radius--lg);
    background-color: var(--wp--preset--color--white-02);
    transition: background-color 0.25s ease;
}

.block-card .card-icono {
    width: 64px;
    height: 64px;
}

.block-card .card-texto {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    flex-grow: 1;
}

.block-card .card-texto p {
    margin: 1em 0;
    font-size: var(--wp--preset--font-size--small);
    line-height: var(--wp--preset--line-height--small);
    font-weight: var(--wp--custom--weight-400);
}

/* Titular de la tarjeta — cubre tanto el campo ACF "card-heading" (siempre
   <h3>, un nivel por debajo del <h2> de la sección) como cualquier titular
   que el editor añada a mano dentro de InnerBlocks (H1-H6, con cualquier
   clase de tamaño de Gutenberg). InnerBlocks no tiene restricción de bloques
   permitidos, así que sin esto cada tarjeta puede acabar con un tamaño
   distinto según lo que haya elegido cada editor. Mismo tamaño/peso que el
   resto de "titular de tarjeta" del tema (servicio-lista-titulo,
   incluye-empresas-titulo usa h5, caracteristica-titulo...). El !important
   es necesario porque las clases has-*-font-size de Gutenberg también lo
   llevan (misma especificidad, gana quien esté después en la cascada; esto
   lo hace explícito y no depende del orden de carga). */
.card-texto :is(h1, h2, h3, h4, h5, h6) {
    margin: 0 0 2px;
    font-size: var(--wp--preset--font-size-h6) !important;
    line-height: var(--wp--preset--line-height-h6) !important;
    font-weight: var(--wp--custom--weight-700) !important;
    color: var(--wp--preset--color--black) !important;
}

.card-link {
    display: flex;
    justify-content: flex-end;
    padding-right: 16px;
}

.card-link-arrow {
    display: inline-block;
    width: 38px;
    height: 38px;
    color: var(--wp--preset--color--grey-05);
    background-color: currentColor;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-image: url("./../../assets/img/arrow-right.svg");
    mask-image: url("./../../assets/img/arrow-right.svg");
}

.block-card.card-type_1 {
    text-align: center;
}

.block-card.card-type_2 {
    text-align: left;
    max-width: 275px;
}

.block-card.fondo-blue .card-icono {
    background-color: var(--wp--preset--color--main--blue);
    border-top-left-radius: 30px;
    border-top-right-radius: 30px;
}

.card-inner {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
}

/* Imagen superior con borde curvo */
.fondo-image-card .card-icono {
    height: 137px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-bottom-left-radius: 50% 20%;
    border-bottom-right-radius: 50% 20%;
    border-top-left-radius: 30px;
    border-top-right-radius: 30px;
}

.card-icono img {
    width: 64px;
    height: 64px;
    border-radius: 0;
    object-fit: contain;
}

.no-card-link {
    height: 25px;
    display: none;
}

@media (max-width: 920px) {
    .block-card {
        border-radius: 15px;
    }
}

/* ============================================================
   Variante "toda la tarjeta es un enlace" (heredada del antiguo
   bloque card-servicios, fusionado aquí como opción del campo ACF
   "show_link"). Se aplica en capas sobre .block-card (ver arriba).
   ============================================================ */
.block-card-servicios {
    border-radius: var(--wp--custom--radius--xl);
    background: var(--wp--preset--color--white-02);
}

.block-card-servicios.has-link {
    cursor: pointer;
    position: relative;
}

.block-card-servicios .card-full-link {
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: inherit;
}

.block-card-servicios.has-link:hover {
    background: var(--wp--preset--color--main-blue);
    color: var(--wp--preset--color--white-02);
}

.block-card-servicios.has-link:hover .card-heading,
.block-card-servicios.has-link:hover .card-link,
.block-card-servicios.has-link:hover .card-texto a,
.block-card-servicios.has-link:hover .card-link-anchor,
.block-card-servicios.has-link:hover .link-text {
    color: var(--wp--preset--color--white-02);
}

.block-card-servicios.has-link:hover .card-icono img,
.block-card-servicios.has-link:hover .link-icon {
    filter: brightness(0) saturate(100%) invert(96%);
}

.block-card-servicios .card-icono {
    padding: 0px 16px 16px 16px;
}

.block-card-servicios .card-inner {
    padding: 40px 0px;
}

/* El tamaño/peso de .card-heading ya lo cubre la regla general
   ".card-texto :is(h1...h6)" de arriba (válida para las dos variantes) */

.block-card-servicios .card-link {
    padding: 8px 16px 0px 16px;
    display: flex;
    justify-content: center;
    font-size: var(--wp--preset--font-size--small);
}

.block-card-servicios .card-link-anchor {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--wp--preset--color--black);
    font-weight: var(--wp--custom--weight-700);
}

.block-card-servicios .link-icon {
    width: 18px;
    height: 18px;
    display: inline-block;
    object-fit: contain;
}

.accordion-item-card-servicios .accordion-trigger-card-servicios {
    display: none;
}

/* Imagen superior con borde curvo */
.block-card-servicios.fondo-image-card .card-inner {
    padding: 0px 0px 40px 0px;
}

.block-card-servicios.fondo-image-card .card-texto {
    flex-grow: unset;
}

@media (max-width: 920px) {
    .block-card-servicios {
        max-width: 100%;
        width: 100%;
    }

    .block-card-servicios .card-inner {
        padding: 24px 0;
        gap: 12px;
    }

    .block-card-servicios .card-icono {
        padding: 0 12px 12px 12px;
    }

    .block-card-servicios .card-icono img {
        height: 56px;
    }

    .block-card-servicios .card-texto {
        padding: 0 12px;
    }

    .block-card-servicios .card-link {
        padding: 6px 12px 0 12px;
    }

    .block-card-servicios .card-link-anchor {
        font-size: var(--wp--preset--font-size--extra--small);
        letter-spacing: 0.04em;
    }

    .block-card-servicios .link-icon {
        width: 16px;
        height: 16px;
    }

    .accordion-item-card-servicios {
        background-color: transparent;
        padding: 4px 0;
        margin: 0;
        position: relative;
    }

    .wp-block-heading+.accordion-item-card-servicios {
        padding: 0 0 8px 0;
    }

    .accordion-item-card-servicios .accordion-trigger-card-servicios {
        display: inline-block;
        border-radius: var(--wp--custom--radius--md);
        background: var(--wp--preset--color--white-02);
        color: var(--wp--preset--color--main-blue);
        font-size: var(--wp--preset--font-size--medium);
        font-weight: var(--wp--custom--weight-700);
        box-shadow: var(--shadow-card);
        width: 100%;
        text-align: left;
        cursor: pointer;
        position: relative;
        z-index: 2;
        min-height: 73px;
        outline: none;
        margin: 0;
        padding: 20px;
        filter: none !important;
    }

    .accordion-item-card-servicios.no-link .accordion-trigger-card-servicios {
        cursor: default;
    }

    .accordion-item-card-servicios.no-link .block-card-servicios.is-mobile {
        display: none;
    }

    .accordion-item-card-servicios .accordion-trigger-card-servicios.active {
        background-color: var(--wp--preset--color--main-blue);
        color: var(--wp--preset--color--white);
        margin-bottom: 8px;
    }

    .accordion-item-card-servicios.has-link .accordion-trigger-card-servicios::after {
        content: "";
        display: inline-block;
        width: 24px;
        height: 22px;
        position: absolute;
        right: 20px;
        top: 50%;
        color: var(--wp--preset--color--main-blue);
        background-color: currentColor;
        -webkit-mask-repeat: no-repeat;
        mask-repeat: no-repeat;
        -webkit-mask-position: center;
        mask-position: center;
        -webkit-mask-size: contain;
        mask-size: contain;
        -webkit-mask-image: url("./../../assets/img/arrow-acordeon-down.svg");
        mask-image: url("./../../assets/img/arrow-acordeon-down.svg");
        transform: translateY(-50%);
        transition: transform 0.3s ease;
    }

    .accordion-item-card-servicios.has-link .accordion-trigger-card-servicios.active::after {
        top: 57%;
        color: var(--wp--preset--color--white);
        transform: translateY(-50%) rotate(180deg);
    }

    .accordion-item-card-servicios .accordion-content-card-servicios {
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.4s ease;
    }

    .accordion-item-card-servicios .accordion-trigger-card-servicios.active+.accordion-content-card-servicios {
        overflow: initial;
    }
}