/* Vanilla enhancements for static export */
.em-carousel { position: relative; overflow: hidden; }
.em-track { display: flex; transition: transform .5s ease; will-change: transform; }
.em-slide { flex: 0 0 100%; padding: 0 .5rem; box-sizing: border-box; }
@media (min-width: 640px) { .em-slide { flex-basis: 50%; } }
@media (min-width: 1024px) { .em-slide { flex-basis: 33.3333%; } }
.em-card { border-radius: 1rem; overflow: hidden; background: #fff; border: 4px solid #fff; box-shadow: 0 4px 20px rgba(0,0,0,.08); }
.em-card img { width: 100%; height: auto; display: block; cursor: zoom-in; transition: transform .3s ease; }
.em-card:hover img { transform: scale(1.03); }
.em-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border-radius: 9999px;
  background: rgba(255,255,255,.95); border: 1px solid rgba(0,0,0,.08); display: flex; align-items: center; justify-content: center;
  cursor: pointer; z-index: 10; box-shadow: 0 4px 14px rgba(0,0,0,.15); }
.em-nav:hover { background: #fff; }
.em-nav.prev { left: -8px; } .em-nav.next { right: -8px; }
.em-nav svg { width: 22px; height: 22px; }

/* Lightbox */
.em-lightbox { position: fixed; inset: 0; background: rgba(0,0,0,.92); display: none; align-items: center; justify-content: center; z-index: 9999; }
.em-lightbox.open { display: flex; animation: emfade .2s ease; }
@keyframes emfade { from { opacity: 0 } to { opacity: 1 } }
.em-lightbox img { max-width: 92vw; max-height: 88vh; object-fit: contain; border-radius: 12px; }
.em-lb-close, .em-lb-prev, .em-lb-next { position: absolute; color: #fff; background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.25); width: 48px; height: 48px; border-radius: 9999px; display: flex;
  align-items: center; justify-content: center; cursor: pointer; backdrop-filter: blur(6px); }
.em-lb-close:hover, .em-lb-prev:hover, .em-lb-next:hover { background: rgba(255,255,255,.22); }
.em-lb-close { top: 20px; right: 20px; }
.em-lb-prev { left: 20px; top: 50%; transform: translateY(-50%); }
.em-lb-next { right: 20px; top: 50%; transform: translateY(-50%); }
.em-lb-counter { position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%); color: #fff;
  background: rgba(0,0,0,.5); padding: 6px 14px; border-radius: 9999px; font-size: 14px; font-weight: 600; }

/* FAQ */
.em-faq-item { border: 1px solid rgba(0,0,0,.1); border-radius: 1rem; margin-bottom: .75rem; background: #fff;
  overflow: hidden; transition: all .3s ease; }
.em-faq-item.open { border-color: var(--primary, #4ade80); box-shadow: 0 0 40px -20px var(--primary, #4ade80); }
.em-faq-q { width: 100%; padding: 1rem 1.25rem; display: flex; justify-content: space-between; align-items: center;
  gap: 1rem; cursor: pointer; background: none; border: 0; text-align: left; font-weight: 600; font-size: 1rem; color: #111; }
.em-faq-q .em-chev { transition: transform .3s ease; }
.em-faq-item.open .em-chev { transform: rotate(180deg); }
.em-faq-a { max-height: 0; overflow: hidden; transition: max-height .35s ease, padding .3s ease;
  padding: 0 1.25rem; color: #555; line-height: 1.6; }
.em-faq-item.open .em-faq-a { max-height: 500px; padding: 0 1.25rem 1.25rem; }
