/* ldev-flip-card */
.ldev-fc-grid {
    display: grid;
    grid-template-columns: repeat(var(--ldev-fc-col, 3), 1fr);
    gap: 20px;
}

@media (max-width: 767px) {
    .ldev-fc-grid {
        grid-template-columns: repeat(var(--ldev-fc-col-device, 1), 1fr);
    }
}

/* wrapper with aspect-ratio 4:5 */
.ldev-fc-wrap {
    aspect-ratio: 4 / 5;
    perspective: 900px;
    position: relative;
}

.ldev-fc-inner {
    width: 100%;
    height: 100%;
    position: relative;
    transform-style: preserve-3d;
    transition: transform 0.55s ease;
    cursor: pointer;
}

/* hover trigger */
.ldev-fc-trigger-hover .ldev-fc-wrap:hover .ldev-fc-inner,
.ldev-fc-trigger-both   .ldev-fc-wrap:hover .ldev-fc-inner {
    transform: rotateY(180deg);
}
.ldev-fc-dir-vertical.ldev-fc-trigger-hover .ldev-fc-wrap:hover .ldev-fc-inner,
.ldev-fc-dir-vertical.ldev-fc-trigger-both   .ldev-fc-wrap:hover .ldev-fc-inner {
    transform: rotateX(180deg);
}

/* click toggle via JS .ldev-flipped */
.ldev-fc-inner.ldev-flipped {
    transform: rotateY(180deg);
}
.ldev-fc-dir-vertical .ldev-fc-inner.ldev-flipped {
    transform: rotateX(180deg);
}

/* faces */
.ldev-fc-face {
    position: absolute;
    inset: 0;
    border-radius: 8px;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    overflow: hidden;
    box-sizing: border-box;
}

/* front */
.ldev-fc-front {
    background: var(--ldev-fc-front-bg, #337ab7);
    color: var(--ldev-fc-front-color, #fff);
    display: flex;
    flex-direction: column;
}
.ldev-fc-front img {
    width: 100%;
    height: 55%;
    object-fit: cover;
    display: block;
    flex-shrink: 0;
}
.ldev-fc-front-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 12px 14px;
    text-align: center;
    gap: 5px;
    overflow: hidden;
}
.ldev-fc-front-body.ldev-fc-no-img {
    height: 100%;
}
.ldev-fc-marker { font-size: 24px; line-height: 1; }
.ldev-fc-title  { font-size: 15px; font-weight: 600; line-height: 1.35; }

/* back */
.ldev-fc-back {
    background: var(--ldev-fc-back-bg, #fff);
    color: var(--ldev-fc-back-color, #333);
    border: 2px solid var(--ldev-fc-front-bg, #337ab7);
    transform: rotateY(180deg);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 18px 16px;
    text-align: center;
    gap: 10px;
}
.ldev-fc-dir-vertical .ldev-fc-back {
    transform: rotateX(180deg);
}
.ldev-fc-back-text { font-size: 13px; line-height: 1.55; }
.ldev-fc-back-btns { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
