/* ═══════════════════════════ FRUIZY BLOCKS — styles publics ═══════════════════════════
   Styles génériques pour le contenu produit par l'éditeur visuel. Volontairement
   neutres pour s'intégrer dans n'importe quelle section (slarpy, twistedfate,
   accueil) sans écraser leur thème visuel propre (couleurs héritées via les
   variables CSS --text/--muted/--red/--border déjà définies globalement).
*/
.fb-zone { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 28px; }
.fb-block { width: 100%; }
.fb-block.fb-w-half { width: calc(50% - 14px); }
.fb-block.fb-w-third { width: calc(33.333% - 19px); }
@media (max-width: 720px) {
  .fb-block.fb-w-half, .fb-block.fb-w-third { width: 100%; }
}

.fb-heading { font-family: var(--ff-display, inherit); letter-spacing: .04em; margin-bottom: 4px; line-height: 1.1; }

.fb-text { color: var(--muted); font-size: .97rem; line-height: 1.9; }
.fb-text p { margin-bottom: 1.1em; }
.fb-text p:last-child { margin-bottom: 0; }

.fb-image img, .fb-video video { width: 100%; border-radius: 10px; display: block; border: 1px solid var(--border, #2a2a3a); }
.fb-image figcaption, .fb-video figcaption { margin-top: 8px; font-size: .78rem; color: var(--muted); text-align: center; }

.fb-btn-wrap { margin-top: 8px; }
.fb-btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 22px; border-radius: 999px; font-weight: 600; font-size: .85rem; text-decoration: none; transition: all .2s ease; }
.fb-btn-primary { background: var(--red, #ef4444); color: #fff; }
.fb-btn-primary:hover { filter: brightness(1.12); transform: translateY(-1px); }
.fb-btn-outline { border: 1px solid var(--border, #2a2a3a); color: var(--text, #fff); }
.fb-btn-outline:hover { border-color: var(--red, #ef4444); color: var(--red, #ef4444); }

.fb-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.fb-gallery-item { border-radius: 10px; overflow: hidden; border: 1px solid var(--border, #2a2a3a); }
.fb-gallery-item img { width: 100%; height: 180px; object-fit: cover; display: block; transition: transform .4s ease; }
.fb-gallery-item:hover img { transform: scale(1.05); }

.fb-faq-item { border: 1px solid var(--border, #2a2a3a); border-radius: 10px; padding: 14px 18px; margin-bottom: 10px; }
.fb-faq-item summary { cursor: pointer; font-weight: 600; }
.fb-faq-a { margin-top: 10px; color: var(--muted); font-size: .9rem; }

.fb-table-wrap { overflow-x: auto; }
.fb-table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.fb-table th, .fb-table td { border: 1px solid var(--border, #2a2a3a); padding: 10px 14px; text-align: left; }
.fb-table th { color: var(--text, #fff); font-weight: 700; }
.fb-table td { color: var(--muted); }

.fb-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.fb-card { border: 1px solid var(--border, #2a2a3a); border-radius: 12px; overflow: hidden; background: var(--surf, rgba(255,255,255,.02)); }
.fb-card img { width: 100%; height: 140px; object-fit: cover; display: block; }
.fb-card-body { padding: 14px 16px; }
.fb-card-body h4 { margin-bottom: 6px; }
.fb-card-body p { color: var(--muted); font-size: .85rem; line-height: 1.6; }
.fb-card-link { display: inline-block; margin-top: 8px; color: var(--red, #ef4444); font-weight: 700; }

.fb-event { border-left: 2px solid var(--red, #ef4444); padding-left: 16px; }
.fb-event-date { font-family: var(--ff-mono, monospace); font-size: .72rem; color: var(--red, #ef4444); letter-spacing: .1em; text-transform: uppercase; }

.fb-divider { border: none; border-top: 1px solid var(--border, #2a2a3a); margin: 32px 0; }

.fb-row { display: grid; grid-template-columns: repeat(var(--fb-row-cols, 2), 1fr); gap: 28px; align-items: start; }
.fb-col { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.fb-col .fb-block { width: 100% !important; }
@media (max-width: 720px) {
  .fb-row { grid-template-columns: 1fr; }
}
