/* ====== EFC Flip Cards ====== */
.efc-grid { display:grid; gap: var(--efc-gap, 16px); position:relative; contain: layout paint; }
.efc-grid[data-cols="1"]{ grid-template-columns:repeat(1,1fr); }
.efc-grid[data-cols="2"]{ grid-template-columns:repeat(2,1fr); }
.efc-grid[data-cols="3"]{ grid-template-columns:repeat(3,1fr); }
.efc-grid[data-cols="4"]{ grid-template-columns:repeat(4,1fr); }
@media (max-width: 1024px){
  .efc-grid[data-cols-tablet="1"]{ grid-template-columns:repeat(1,1fr); }
  .efc-grid[data-cols-tablet="2"]{ grid-template-columns:repeat(2,1fr); }
  .efc-grid[data-cols-tablet="3"]{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width: 767px){
  .efc-grid[data-cols-mobile="1"]{ grid-template-columns:repeat(1,1fr); }
  .efc-grid[data-cols-mobile="2"]{ grid-template-columns:repeat(2,1fr); }
}

/* Tarjeta + flip + transiciones visibles */
.efc-card { perspective:1000px; position:relative; transition: transform .7s cubic-bezier(.22,.61,.36,1), opacity .35s ease; will-change: transform, opacity; }
.efc-inner { position:relative; width:100%; height:100%; transform-style:preserve-3d; transition:transform .6s ease; }
.efc-card.efc-hover:hover .efc-inner { transform: rotateY(180deg); }
.efc-card.efc-axis-x.efc-hover:hover .efc-inner{ transform: rotateX(180deg); }
.efc-card.efc-click .efc-inner.is-flipped { transform: rotateY(180deg); }
.efc-card.efc-axis-x.efc-click .efc-inner.is-flipped { transform: rotateX(180deg); }

.efc-face { backface-visibility:hidden; -webkit-backface-visibility:hidden; position:relative; width:100%; height:100%; border-radius: var(--efc-radius,12px); overflow:hidden; box-shadow: var(--efc-shadow,0 6px 18px rgba(0,0,0,.08)); }
.efc-front img { width:100%; height:100%; object-fit:cover; display:block; }
.efc-front .efc-front-title { position:absolute; left:0; right:0; bottom:0; padding:12px 14px; background:linear-gradient(transparent, rgba(0,0,0,.55)); color:#fff; font-weight:600; font-size:1rem; }
.efc-back { position:absolute; inset:0; transform:rotateY(180deg); display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; padding:18px; background:var(--efc-back-bg,#f6f7f8); color:var(--efc-back-color,#222); }
.efc-axis-x .efc-back { transform:rotateX(180deg); }
.efc-back h3 { margin:0 0 8px; font-size:1.05rem; }
.efc-back p { margin:0 0 12px; }
.efc-btn { display:inline-block; padding:.55rem .9rem; border-radius:8px; border:1px solid rgba(0,0,0,.08); text-decoration:none; }

/* Pestañas */
.efc-filters { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 14px; }
.efc-filter { padding:.4rem .75rem; border-radius:999px; background:#f1f2f4; border:1px solid rgba(0,0,0,.06); cursor:pointer; font-size:.9rem; }
.efc-filter.is-active { background:#e2e4e9; }

/* Estados */
.efc-hidden { display:none !important; }
.efc-out { position:absolute !important; visibility:hidden !important; pointer-events:none !important; }
.efc-showing { opacity:0; transform:scale(.9); }

/* Ratio */
.efc-ratio { position:relative; width:100%; }
.efc-ratio::before{ content:""; display:block; width:100%; }
.efc-ratio[data-ratio="16x9"]::before{ padding-top:56.25%; }
.efc-ratio[data-ratio="4x3"]::before{ padding-top:75%; }
.efc-ratio[data-ratio="1x1"]::before{ padding-top:100%; }
.efc-ratio > .efc-inner,
.efc-ratio > .efc-face { position:absolute; inset:0; }

@media (prefers-reduced-motion: reduce) {
  .efc-card, .efc-inner { transition: none !important; }
}