/* ==========================================================================
   MIBF 2026 - hoja de estilo global
   meridainternationalbrassfestival.com
   Holaloro Studio - rediseno del 28-10-2026, direccion A "Cartel nocturno"
   (elegida por Davide entre tres propuestas, ver
   02-ai-outputs/web/_propuestas-2026-10-28/).

   Mundo: un cartel de concierto de noche. Fondo casi negro, letra
   condensada muy gruesa (Big Shoulders Display) para titulos, Figtree para
   leer, el amarillo de la camiseta del festival como unico acento. La
   informacion va SIEMPRE en cajas (pedido de Davide: "que se lea clara,
   no como un documento de Word"). Las cajas tienen una luz amarilla
   difuminada que sigue al raton solo mientras el raton esta encima
   (ver 6 y el script de la seccion 02).

   Legibilidad (pedido de Davide): texto principal #f3f1ec sobre #121417
   (16:1) y sobre las cajas #1d2126 (13:1); texto secundario #c9c4bb
   (10:1 / 8.5:1); nunca texto menor de 14 px; texto sobre fotos siempre
   con velo oscuro debajo.

   Se sube por FTP a /resources/css/mibf-global.css y la enlaza
   _global/head-global.html.

   CINCO REGLAS QUE GOBIERNAN ESTE ARCHIVO (cada una se pago con un error
   real en el montaje de /ponto):
   1. Nunca :root. Los tokens viven en .mibf.
   2. Todo prefijado --mibf- y .mibf-. Foundation ya define --radius, .card,
      .tag, .button y .note.
   3. Nunca selectores de elemento sueltos fuera de .mibf.
   4. Comentarios solo en ASCII.
   5. .mibf .algo NO alcanza a <div class="mibf algo">.
   Y una septima (28-10-2026, tras publicar): todos los selectores empiezan
   por "html .mibf". En RapidWeaver (CSS del proyecto, consolidated.css)
   sigue pegada la hoja VIEJA del sitio, que se carga DESPUES de esta y
   pisaba colores, botones y logos con la misma especificidad. "html"
   delante gana siempre. Aun asi conviene borrar la hoja vieja de
   RapidWeaver (ver README-web.md).
   Y una sexta: Foundation pinta tipografia, color y margenes en selectores
   de ELEMENTO; por eso casi todo va como ".mibf .mibf-algo" y declara
   fuente, tamano, interlineado y margen.
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. FUENTES (SIL OFL), servidas desde /resources/fonts/
   -------------------------------------------------------------------------- */

@font-face { font-family: 'Big Shoulders Display'; font-style: normal; font-weight: 800; font-display: swap; src: url('/resources/fonts/big-shoulders-display-800-latin.woff2') format('woff2'); }
@font-face { font-family: 'Big Shoulders Display'; font-style: normal; font-weight: 900; font-display: swap; src: url('/resources/fonts/big-shoulders-display-900-latin.woff2') format('woff2'); }
@font-face { font-family: 'Figtree'; font-style: normal; font-weight: 400; font-display: swap; src: url('/resources/fonts/figtree-400-latin.woff2') format('woff2'); }
@font-face { font-family: 'Figtree'; font-style: normal; font-weight: 500; font-display: swap; src: url('/resources/fonts/figtree-500-latin.woff2') format('woff2'); }
@font-face { font-family: 'Figtree'; font-style: normal; font-weight: 700; font-display: swap; src: url('/resources/fonts/figtree-700-latin.woff2') format('woff2'); }


/* --------------------------------------------------------------------------
   2. TOKENS
   -------------------------------------------------------------------------- */

html .mibf {
  --mibf-bg: #121417;          /* fondo: noche */
  --mibf-bg-deep: #0c0e10;     /* banda mas oscura (concurso, pie) */
  --mibf-box: #1d2126;         /* cajas */
  --mibf-box-hi: #262b31;      /* caja al pasar / dentro de caja */
  --mibf-ink: #f3f1ec;         /* texto principal */
  --mibf-soft: #c9c4bb;        /* texto secundario, 8.5:1 sobre caja */
  --mibf-line: rgba(243, 241, 236, 0.12);
  --mibf-accent: #f2b31b;      /* amarillo de la camiseta */
  --mibf-accent-hi: #ffc93d;
  --mibf-accent-ink: #121417;
  --mibf-ok: #8fd18b;
  --mibf-error: #ff8a7a;

  --mibf-f-display: 'Big Shoulders Display', 'Arial Narrow', Impact, sans-serif;
  --mibf-f-text: 'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif;

  --mibf-s-small: 0.9375rem;                                  /* 15 */
  --mibf-s-body: clamp(1.0625rem, 1rem + 0.25vw, 1.1875rem);  /* 17-19 */
  --mibf-s-lead: clamp(1.1875rem, 1.05rem + 0.5vw, 1.375rem); /* 19-22 */
  --mibf-s-h3: clamp(1.75rem, 1.4rem + 1vw, 2.25rem);         /* 28-36 */
  --mibf-s-h2: clamp(2.75rem, 1.6rem + 4.4vw, 5.25rem);       /* 44-84 */
  --mibf-s-h1: clamp(3.25rem, 1.6rem + 6vw, 7.25rem);         /* 52-116 */

  --mibf-m: clamp(20px, 4vw, 56px);
  --mibf-gap: clamp(14px, 1.4vw, 20px);
  --mibf-section: clamp(72px, 9vw, 128px);
  --mibf-max: 1440px;
  --mibf-r: 12px;
  --mibf-r-sm: 8px;

  --mibf-ease: cubic-bezier(0.16, 1, 0.3, 1);
  --mibf-fast: 180ms;

  /* Alias de nombres viejos: /inscripcion/ (inscripcion.css) los lee */
  --mibf-bg-panel: var(--mibf-box);
  --mibf-bg-up: var(--mibf-box);
  --mibf-text: var(--mibf-ink);
  --mibf-text-dim: var(--mibf-soft);
  --mibf-text-mute: var(--mibf-soft);
  --mibf-brass: var(--mibf-accent);
  --mibf-brass-hi: var(--mibf-accent-hi);
  --mibf-brass-lo: #c98f0a;
  --mibf-brass-dim: rgba(242, 179, 27, 0.4);
  --mibf-on-brass: var(--mibf-accent-ink);
  --mibf-field: #0f1114;
  --mibf-field-border: rgba(243, 241, 236, 0.22);
  --mibf-rule: var(--mibf-line);
  --mibf-display: var(--mibf-f-display);
  --mibf-body: var(--mibf-f-text);
  --mibf-radius: var(--mibf-r-sm);
  --mibf-radius-lg: var(--mibf-r);

  box-sizing: border-box;
  color: var(--mibf-ink);
  background: var(--mibf-bg);
  font-family: var(--mibf-f-text);
  font-size: var(--mibf-s-body);
  font-weight: 400;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
html .mibf *, html .mibf *::before, html .mibf *::after { box-sizing: inherit; }


/* --------------------------------------------------------------------------
   3. REINICIO DENTRO DE .mibf (contra Foundation)
   -------------------------------------------------------------------------- */

html .mibf h1, html .mibf h2, html .mibf h3, html .mibf h4, html .mibf p, html .mibf ul, html .mibf ol,
html .mibf li, html .mibf dl, html .mibf dt, html .mibf dd, html .mibf figure, html .mibf blockquote {
  margin: 0; padding: 0;
  color: inherit; font-family: inherit; font-size: inherit; font-weight: inherit;
  line-height: inherit; letter-spacing: 0; text-transform: none;
}
html .mibf ul, html .mibf ol { list-style: none; }
html .mibf span, html .mibf strong, html .mibf em, html .mibf b, html .mibf i, html .mibf small,
html .mibf label, html .mibf figcaption, html .mibf td, html .mibf th { color: inherit; }
html .mibf strong, html .mibf b { font-weight: 700; }
html .mibf img, html .mibf video { display: block; max-width: 100%; }
html .mibf a { color: inherit; text-decoration: none; }
html .mibf a:hover, html .mibf a:focus { color: inherit; }
html .mibf :focus-visible { outline: 3px solid var(--mibf-accent); outline-offset: 3px; border-radius: 4px; }
html .mibf .mibf-box--accent :focus-visible,
html .mibf .mibf-box--accent:focus-visible { outline-color: var(--mibf-accent-ink); }
html .mibf ::selection { background: var(--mibf-accent); color: var(--mibf-accent-ink); }
html .mibf input, html .mibf select, html .mibf textarea { caret-color: var(--mibf-accent); accent-color: var(--mibf-accent); }

html .mibf .mibf-sr {
  position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}


/* --------------------------------------------------------------------------
   4. TIPOGRAFIA
   -------------------------------------------------------------------------- */

html .mibf .mibf-h1,
html .mibf .mibf-h2,
html .mibf .mibf-h3 {
  font-family: var(--mibf-f-display);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.005em;
  text-wrap: balance;
}
html .mibf .mibf-h1 { font-size: var(--mibf-s-h1); line-height: 0.88; }
html .mibf .mibf-h2 { font-size: var(--mibf-s-h2); line-height: 0.9; }
html .mibf .mibf-h3 { font-size: var(--mibf-s-h3); line-height: 0.95; font-weight: 800; }
html .mibf .mibf-h4 { font-family: var(--mibf-f-text); font-size: var(--mibf-s-lead); font-weight: 700; line-height: 1.25; }
html .mibf .mibf-lead { font-size: var(--mibf-s-lead); line-height: 1.5; color: var(--mibf-ink); max-width: 60ch; }
html .mibf .mibf-text { font-size: var(--mibf-s-body); line-height: 1.6; max-width: 62ch; }
html .mibf .mibf-dim, html .mibf .mibf-meta, html .mibf .mibf-label { color: var(--mibf-soft); }
html .mibf .mibf-small, html .mibf .mibf-label { font-size: var(--mibf-s-small); line-height: 1.45; }
html .mibf .mibf-meta { font-size: var(--mibf-s-body); }
html .mibf .mibf-notice { font-size: var(--mibf-s-body); max-width: 60ch; }
html .mibf .mibf-eyebrow { font-size: var(--mibf-s-body); color: var(--mibf-soft); }
html .mibf .mibf-accent { color: var(--mibf-accent); }

/* Etiqueta amarilla (fechas, "Entrada libre") */
html .mibf .mibf-tag {
  display: inline-flex; align-items: center; gap: 8px; align-self: flex-start;
  padding: 7px 12px; border-radius: 6px;
  background: var(--mibf-accent); color: var(--mibf-accent-ink);
  font-size: var(--mibf-s-small); font-weight: 700; line-height: 1.2;
}
html .mibf .mibf-tag--quiet { background: var(--mibf-box-hi); color: var(--mibf-ink); }

html .mibf .mibf-rich p { margin: 0 0 0.9em; }
html .mibf .mibf-rich p:last-child { margin-bottom: 0; }
html .mibf .mibf-rich ul, html .mibf .mibf-rich ol { margin: 0 0 0.9em 1.2em; list-style: disc outside; }
html .mibf .mibf-rich ol { list-style: decimal outside; }
html .mibf .mibf-rich li { margin-bottom: 0.3em; }
html .mibf .mibf-rich a { color: var(--mibf-accent); text-decoration: underline; text-underline-offset: 3px; }

/* Lista dentro de caja: filas separadas por una linea suave */
html .mibf .mibf-list li { padding: 11px 0; border-bottom: 1px solid var(--mibf-line); line-height: 1.45; }
html .mibf .mibf-list li:last-child { border-bottom: 0; }
html .mibf .mibf-list--cols { columns: 2 240px; column-gap: 28px; }
html .mibf .mibf-list--cols li { break-inside: avoid; }


/* --------------------------------------------------------------------------
   5. CONTROLES
   -------------------------------------------------------------------------- */

html .mibf .mibf-btn,
html .mibf a.mibf-btn,
html .mibf button.mibf-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; margin: 0; padding: 0 24px;
  border: 0; border-radius: var(--mibf-r-sm);
  background: var(--mibf-accent); color: var(--mibf-accent-ink);
  font-family: var(--mibf-f-text); font-size: 1rem; font-weight: 700; line-height: 1.1;
  letter-spacing: 0; text-transform: none; text-decoration: none; white-space: nowrap;
  cursor: pointer; box-shadow: none;
  transition: background-color var(--mibf-fast) var(--mibf-ease), color var(--mibf-fast) var(--mibf-ease), transform var(--mibf-fast) var(--mibf-ease), box-shadow var(--mibf-fast) var(--mibf-ease);
}
html .mibf .mibf-btn:hover,
html .mibf a.mibf-btn:hover,
html .mibf button.mibf-btn:hover { background: var(--mibf-accent-hi); color: var(--mibf-accent-ink); box-shadow: 0 8px 24px -10px rgba(242, 179, 27, 0.6); }
html .mibf .mibf-btn:active { transform: translateY(1px) scale(0.985); }
html .mibf .mibf-btn[disabled] { opacity: 0.6; cursor: progress; }
html .mibf .mibf-btn--sm, html .mibf a.mibf-btn--sm { min-height: 44px; padding: 0 18px; font-size: 0.9375rem; }
html .mibf .mibf-btn--block, html .mibf button.mibf-btn--block, html .mibf a.mibf-btn--block { display: flex; width: 100%; }
/* Secundario: contorno claro */
html .mibf .mibf-btn--ghost,
html .mibf a.mibf-btn--ghost { background: transparent; color: var(--mibf-ink); box-shadow: inset 0 0 0 2px rgba(243, 241, 236, 0.35); }
html .mibf .mibf-btn--ghost:hover,
html .mibf a.mibf-btn--ghost:hover { background: rgba(243, 241, 236, 0.08); color: var(--mibf-ink); box-shadow: inset 0 0 0 2px var(--mibf-ink); }
/* Sobre caja amarilla */
html .mibf .mibf-btn--dark,
html .mibf a.mibf-btn--dark,
html .mibf button.mibf-btn--dark { background: var(--mibf-accent-ink); color: var(--mibf-accent); }
html .mibf .mibf-btn--dark:hover,
html .mibf a.mibf-btn--dark:hover,
html .mibf button.mibf-btn--dark:hover { background: #000; color: var(--mibf-accent-hi); box-shadow: none; }
html .mibf .mibf-btn svg { flex: none; transition: transform var(--mibf-fast) var(--mibf-ease); }
html .mibf .mibf-btn:hover svg { transform: translateX(3px); }

html .mibf .mibf-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }

/* Enlace de texto */
html .mibf .mibf-link, html .mibf a.mibf-link {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--mibf-accent); font-weight: 700; font-size: 1rem;
  text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 5px;
  transition: text-underline-offset var(--mibf-fast) var(--mibf-ease);
}
html .mibf .mibf-link:hover { color: var(--mibf-accent-hi); text-underline-offset: 8px; }

/* Formularios */
html .mibf .mibf-input, html .mibf input.mibf-input, html .mibf select.mibf-input {
  display: block; width: 100%; height: 52px; margin: 0; padding: 0 14px;
  border: 1px solid var(--mibf-field-border); border-radius: var(--mibf-r-sm);
  background: var(--mibf-field); color: var(--mibf-ink);
  font-family: var(--mibf-f-text); font-size: 17px; line-height: 1.2; box-shadow: none;
  transition: border-color var(--mibf-fast) var(--mibf-ease);
}
html .mibf .mibf-input::placeholder { color: #a8a298; }
html .mibf .mibf-input:hover { border-color: rgba(243, 241, 236, 0.4); }
html .mibf .mibf-input:focus { border-color: var(--mibf-accent); outline: 2px solid var(--mibf-accent); outline-offset: 0; box-shadow: none; background: var(--mibf-field); color: var(--mibf-ink); }
html .mibf select.mibf-input { appearance: none; -webkit-appearance: none; padding-right: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none' stroke='%23f3f1ec' stroke-width='1.8'%3E%3Cpath d='M3 5l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; }
html .mibf select.mibf-input option { background: var(--mibf-box); color: var(--mibf-ink); }
html .mibf .mibf-field { display: flex; flex-direction: column; gap: 6px; }
html .mibf .mibf-field label { font-size: var(--mibf-s-small); font-weight: 700; color: var(--mibf-ink); margin: 0; }
html .mibf .mibf-form-msg { min-height: 1.4em; margin: 0; font-size: var(--mibf-s-small); font-weight: 500; }
html .mibf .mibf-form-msg--ok { color: var(--mibf-ok); }
html .mibf .mibf-form-msg--err { color: var(--mibf-error); }


/* --------------------------------------------------------------------------
   6. CAJAS y la luz que sigue al raton
   La luz es un ::before con un degradado radial muy difuminado, centrado
   en --mibf-mx/--mibf-my (los pone el script de la seccion 02 mientras el
   raton se mueve encima; al salir quita .is-lit y la luz se apaga). Solo
   en dispositivos con raton; con movimiento reducido no hay luz.
   -------------------------------------------------------------------------- */

html .mibf .mibf-box {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(22px, 2.2vw, 30px);
  border-radius: var(--mibf-r);
  background: var(--mibf-box);
  color: var(--mibf-ink);
  box-shadow: inset 0 0 0 1px rgba(243, 241, 236, 0.06);
  transition: box-shadow 300ms var(--mibf-ease);
}
html .mibf .mibf-box--accent { background: var(--mibf-accent); color: var(--mibf-accent-ink); }
html .mibf .mibf-box--accent .mibf-dim,
html .mibf .mibf-box--accent .mibf-label,
html .mibf .mibf-box--accent .mibf-fee__desc { color: #3b2f12; }
html .mibf .mibf-box--accent .mibf-list li,
html .mibf .mibf-box--accent .mibf-fee { border-color: rgba(18, 20, 23, 0.16); }
html .mibf .mibf-box--top { border-top: 4px solid var(--mibf-accent); }
html .mibf .mibf-box--flush { padding: 0; }

@media (hover: hover) and (pointer: fine) {
  html .mibf .mibf-box::before {
    content: '';
    position: absolute;
    z-index: -1;
    left: var(--mibf-mx, 50%);
    top: var(--mibf-my, 50%);
    width: 440px;
    height: 440px;
    margin: -220px 0 0 -220px;
    border-radius: 50%;
    background: radial-gradient(closest-side, rgba(242, 179, 27, 0.2), rgba(242, 179, 27, 0.07) 55%, rgba(242, 179, 27, 0));
    filter: blur(30px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 450ms var(--mibf-ease);
  }
  html .mibf .mibf-box--accent::before { background: radial-gradient(closest-side, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.12) 55%, rgba(255, 255, 255, 0)); }
  html .mibf .mibf-box.is-lit::before { opacity: 1; }
  html .mibf .mibf-box.is-lit { box-shadow: inset 0 0 0 1px rgba(242, 179, 27, 0.3); }
  html .mibf .mibf-box--accent.is-lit { box-shadow: inset 0 0 0 1px rgba(18, 20, 23, 0.2); }
  /* Las fotos dentro de la caja quedan por encima de la luz */
  html .mibf .mibf-box > .mibf-ph { position: relative; z-index: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html .mibf .mibf-box::before { display: none; }
}


/* --------------------------------------------------------------------------
   7. ESTRUCTURA
   -------------------------------------------------------------------------- */

html .mibf .mibf-inner { width: 100%; max-width: var(--mibf-max); margin: 0 auto; padding: 0 var(--mibf-m); }
html .mibf .mibf-band { padding: var(--mibf-section) 0; }
html .mibf .mibf-band--deep { background: var(--mibf-bg-deep); }
html .mibf .mibf-band--tight { padding-top: 0; }
html .mibf .mibf-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px 48px; align-items: end; margin-bottom: clamp(32px, 4vw, 48px); }
html .mibf .mibf-head > :only-child { grid-column: 1 / -1; }
html .mibf .mibf-head__side { display: flex; flex-direction: column; gap: 18px; align-items: flex-start; }
html .mibf .mibf-grid { display: grid; gap: var(--mibf-gap); }
html .mibf .mibf-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
html .mibf .mibf-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
html .mibf .mibf-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
html .mibf .mibf-stack { display: flex; flex-direction: column; gap: 18px; }
html .mibf .mibf-ph { position: relative; overflow: hidden; background: var(--mibf-box-hi); }
html .mibf .mibf-ph > img, html .mibf .mibf-ph > video { width: 100%; height: 100%; object-fit: cover; }
html .mibf .mibf-credit { font-size: var(--mibf-s-small); color: var(--mibf-soft); }
@media screen and (max-width: 1024px) {
  html .mibf .mibf-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  html .mibf .mibf-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media screen and (max-width: 760px) {
  html .mibf .mibf-head { grid-template-columns: minmax(0, 1fr); }
  html .mibf .mibf-grid--2, html .mibf .mibf-grid--3 { grid-template-columns: minmax(0, 1fr); }
}
@media screen and (max-width: 480px) {
  html .mibf .mibf-grid--4 { grid-template-columns: minmax(0, 1fr); }
}


/* --------------------------------------------------------------------------
   8. CABECERA (parcial "MIBF menu")
   -------------------------------------------------------------------------- */

html .mibf .mibf-topbar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  background: rgba(18, 20, 23, 0.94);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  box-shadow: 0 1px 0 rgba(243, 241, 236, 0.08);
  transition: background-color 300ms var(--mibf-ease);
}
html .mibf .mibf-top-space { height: var(--mibf-top-h, 72px); }
html .mibf .mibf-top {
  display: flex; align-items: center; gap: 28px;
  max-width: var(--mibf-max); height: var(--mibf-top-h, 72px); margin: 0 auto; padding: 0 var(--mibf-m);
}
html .mibf .mibf-mark { display: inline-flex; align-items: center; gap: 12px; flex: none; color: var(--mibf-ink); }
html .mibf .mibf-mark img { width: 44px; height: 44px; transition: transform 600ms var(--mibf-ease); }
html .mibf .mibf-mark:hover img { transform: rotate(-12deg); }
html .mibf .mibf-mark span,
html .mibf a.mibf-mark span { font-family: var(--mibf-f-display); font-weight: 900; font-size: 1.625rem; line-height: 1; letter-spacing: 0.02em; text-transform: uppercase; color: var(--mibf-ink); }
html .mibf .mibf-top__nav { display: flex; gap: 4px; margin-left: auto; }
html .mibf .mibf-top__nav a,
html .mibf a.mibf-top__link {
  padding: 10px 12px; border-radius: var(--mibf-r-sm);
  color: var(--mibf-ink);
  font-family: var(--mibf-f-text); font-size: 0.875rem; font-weight: 700; line-height: 1.2;
  letter-spacing: 0.06em; text-transform: uppercase;
  transition: background-color var(--mibf-fast) var(--mibf-ease), color var(--mibf-fast) var(--mibf-ease);
}
html .mibf .mibf-top__nav a:hover { background: var(--mibf-box); color: var(--mibf-accent); }
html .mibf .mibf-top__end { display: flex; align-items: center; gap: 12px; }

html .mibf .mibf-menu { display: none; position: relative; }
html .mibf .mibf-menu > summary {
  list-style: none; display: inline-flex; align-items: center; gap: 10px;
  min-height: 44px; padding: 0 14px; border-radius: var(--mibf-r-sm);
  background: var(--mibf-box-hi); color: var(--mibf-ink);
  box-shadow: inset 0 0 0 1px rgba(243, 241, 236, 0.18);
  font-family: var(--mibf-f-text); font-size: 0.875rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; cursor: pointer;
}
html .mibf .mibf-menu > summary::-webkit-details-marker { display: none; }
html .mibf .mibf-menu > summary::marker { content: ''; }
html .mibf .mibf-menu[open] > summary { background: var(--mibf-accent); color: var(--mibf-accent-ink); box-shadow: none; }
html .mibf .mibf-menu__bars { position: relative; display: inline-block; width: 18px; height: 2px; background: currentColor; }
html .mibf .mibf-menu__bars::before, html .mibf .mibf-menu__bars::after { content: ''; position: absolute; left: 0; width: 18px; height: 2px; background: currentColor; }
html .mibf .mibf-menu__bars::before { top: -6px; }
html .mibf .mibf-menu__bars::after { top: 6px; }
html .mibf .mibf-menu:not([open]) .mibf-menu__panel { display: none; }
html .mibf .mibf-menu__panel {
  position: absolute; top: calc(100% + 12px); right: 0; z-index: 60;
  display: flex; flex-direction: column; min-width: min(88vw, 320px);
  padding: 10px; border-radius: var(--mibf-r); background: var(--mibf-box);
  box-shadow: 0 24px 48px -16px rgba(0, 0, 0, 0.7), inset 0 0 0 1px rgba(243, 241, 236, 0.08);
  animation: mibf-drop 240ms var(--mibf-ease) both;
}
html .mibf .mibf-menu__panel a { padding: 12px 14px; border-radius: var(--mibf-r-sm); color: var(--mibf-ink); font-family: var(--mibf-f-display); font-weight: 800; font-size: 1.5rem; line-height: 1.1; text-transform: uppercase; }
html .mibf .mibf-menu__panel a:hover { background: var(--mibf-box-hi); color: var(--mibf-accent); }
@media screen and (max-width: 1100px) {
  html .mibf .mibf-top__nav { display: none; }
  html .mibf .mibf-top__end { margin-left: auto; }
  html .mibf .mibf-menu { display: block; }
}
@media screen and (max-width: 420px) {
  html .mibf .mibf-mark span { display: none; }
  html .mibf .mibf-top { gap: 12px; }
}
/* Las anclas no quedan tapadas por la barra fija */
html .mibf [id] { scroll-margin-top: calc(var(--mibf-top-h, 72px) + 16px); }


/* --------------------------------------------------------------------------
   9. CARRUSEL DE ARTISTAS (debajo de la cabecera, en la home)
   Una fila que se desplaza sola, en bucle. Se para al pasar el raton o al
   llevar el foco dentro. La lista va dos veces; la segunda copia es
   aria-hidden y sus enlaces no reciben foco. Con movimiento reducido no se
   mueve: se desplaza a mano con el dedo o la rueda.
   -------------------------------------------------------------------------- */

html .mibf .mibf-marquee {
  position: relative; overflow-x: auto; overflow-y: hidden;
  padding: clamp(24px, 3vw, 40px) 0 22px;
  scrollbar-width: none; -ms-overflow-style: none;
  cursor: grab; touch-action: pan-x pan-y;
  -webkit-mask: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
          mask: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent);
}
html .mibf .mibf-marquee::-webkit-scrollbar { display: none; }
html .mibf .mibf-marquee.is-dragging { cursor: grabbing; }
html .mibf .mibf-marquee.is-dragging .mibf-chip { pointer-events: none; }
html .mibf .mibf-marquee__track { display: flex; width: max-content; }
html .mibf .mibf-marquee__group { display: flex; gap: 12px; padding-right: 12px; }
html .mibf .mibf-chip {
  display: flex; align-items: center; gap: 12px; flex: none;
  padding: 8px 20px 8px 8px; border-radius: 999px;
  background: var(--mibf-box); color: var(--mibf-ink);
  box-shadow: inset 0 0 0 1px rgba(243, 241, 236, 0.06);
  transition: background-color var(--mibf-fast) var(--mibf-ease), box-shadow var(--mibf-fast) var(--mibf-ease);
  -webkit-user-drag: none; user-select: none;
}
html .mibf .mibf-chip:hover, html .mibf .mibf-chip:focus-visible { background: var(--mibf-box-hi); box-shadow: inset 0 0 0 1px rgba(242, 179, 27, 0.45); }
html .mibf .mibf-chip__img { width: 52px; height: 52px; flex: none; border-radius: 50%; overflow: hidden; background: var(--mibf-box-hi); }
html .mibf .mibf-chip__img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 25%; -webkit-user-drag: none; }
html .mibf .mibf-chip__img--empty { display: flex; align-items: center; justify-content: center; font-family: var(--mibf-f-display); font-weight: 900; font-size: 1.5rem; color: var(--mibf-accent); }
html .mibf .mibf-chip__text { display: flex; flex-direction: column; line-height: 1.25; white-space: nowrap; }
html .mibf .mibf-chip__name { font-weight: 700; font-size: 1rem; color: var(--mibf-ink); }
html .mibf .mibf-chip__role { font-size: 0.875rem; color: var(--mibf-soft); }
html .mibf .mibf-chip:hover .mibf-chip__name { color: var(--mibf-accent); }


/* --------------------------------------------------------------------------
   10. HOME - 02 HERO
   -------------------------------------------------------------------------- */

html .mibf .mibf-hero { padding: 0; }
html .mibf .mibf-hero__stage {
  position: relative; overflow: hidden;
  width: 100%;
  min-height: min(84svh, 860px);
  display: flex; flex-direction: column; justify-content: flex-end;
  background: var(--mibf-box);
}
html .mibf .mibf-hero__stage > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; }
/* Velo: oscuro a la izquierda y abajo, donde va el texto */
html .mibf .mibf-hero__veil { position: absolute; inset: 0; background:
  linear-gradient(90deg, rgba(12, 14, 16, 0.95) 0%, rgba(12, 14, 16, 0.82) 38%, rgba(12, 14, 16, 0.1) 72%),
  linear-gradient(0deg, rgba(12, 14, 16, 0.9) 0%, rgba(12, 14, 16, 0) 42%); }
html .mibf .mibf-hero__in { position: relative; z-index: 1; width: 100%; max-width: var(--mibf-max); margin: 0 auto; padding: 0 var(--mibf-m); }
html .mibf .mibf-hero__text { display: flex; flex-direction: column; gap: 22px; max-width: 980px; padding: clamp(56px, 7vw, 96px) 0 28px; }
html .mibf .mibf-hero__pitch { font-size: var(--mibf-s-lead); line-height: 1.5; max-width: 58ch; color: var(--mibf-ink); }
html .mibf .mibf-hero__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; padding: 0 0 clamp(24px, 3vw, 40px); }
html .mibf .mibf-hero__inst { font-size: var(--mibf-s-small); color: var(--mibf-ink); max-width: 52ch; }
html .mibf .mibf-count { display: flex; gap: 8px; }
html .mibf .mibf-count__box { min-width: 78px; padding: 10px 12px; border-radius: var(--mibf-r-sm); background: rgba(12, 14, 16, 0.85); text-align: center; box-shadow: inset 0 0 0 1px rgba(243, 241, 236, 0.12); }
html .mibf .mibf-count__n { display: block; font-family: var(--mibf-f-display); font-weight: 900; font-size: 2.25rem; line-height: 1; color: var(--mibf-accent); font-variant-numeric: tabular-nums; }
html .mibf .mibf-count__u { display: block; font-size: 0.875rem; color: var(--mibf-ink); margin-top: 4px; }
@media screen and (max-width: 760px) {
  html .mibf .mibf-hero__stage { min-height: 0; }
  html .mibf .mibf-hero__veil { background: linear-gradient(0deg, rgba(12, 14, 16, 0.97) 0%, rgba(12, 14, 16, 0.9) 60%, rgba(12, 14, 16, 0.35) 100%); }
  html .mibf .mibf-hero__text { padding-top: 190px; }
  html .mibf .mibf-hero .mibf-actions .mibf-btn { flex: 1 1 auto; }
}


/* --------------------------------------------------------------------------
   11. HOME - 03 CIFRAS
   -------------------------------------------------------------------------- */

html .mibf .mibf-stats { padding-top: var(--mibf-gap); }
html .mibf .mibf-stat__value { display: block; font-family: var(--mibf-f-display); font-weight: 900; font-size: clamp(2.75rem, 2rem + 2.4vw, 4rem); line-height: 0.95; color: var(--mibf-accent); }
html .mibf .mibf-stat__label { display: block; margin-top: 8px; font-size: var(--mibf-s-body); line-height: 1.35; color: var(--mibf-ink); }


/* --------------------------------------------------------------------------
   12. HOME - 04 ACADEMICO, cuotas
   -------------------------------------------------------------------------- */

html .mibf .mibf-box .mibf-h4 { margin-bottom: 10px; }
html .mibf .mibf-aca__photo { min-height: 240px; border-radius: var(--mibf-r); }
html .mibf .mibf-fee { display: flex; justify-content: space-between; align-items: baseline; gap: 18px; padding: 12px 0; border-bottom: 1px solid var(--mibf-line); }
html .mibf .mibf-fee:last-of-type { border-bottom: 0; }
html .mibf .mibf-fee__name { font-weight: 700; line-height: 1.3; }
html .mibf .mibf-fee__desc { display: block; margin-top: 3px; font-size: var(--mibf-s-small); font-weight: 400; line-height: 1.4; color: var(--mibf-soft); }
html .mibf .mibf-fee__value { font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
html .mibf .mibf-fee__value--pending { font-weight: 500; }
 html .mibf .mibf-fees__go { margin-top: 18px; display: flex; flex-direction: column; gap: 10px; }
/* Acordeon de "Que incluye": details nativo */
html .mibf .mibf-acc { border-bottom: 1px solid var(--mibf-line); }
html .mibf .mibf-acc:last-child { border-bottom: 0; }
html .mibf .mibf-acc > summary {
  list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 13px 0; cursor: pointer; font-weight: 700; line-height: 1.35; color: var(--mibf-ink);
  transition: color var(--mibf-fast) var(--mibf-ease);
}
html .mibf .mibf-acc > summary::-webkit-details-marker { display: none; }
html .mibf .mibf-acc > summary::marker { content: ''; }
html .mibf .mibf-acc > summary:hover { color: var(--mibf-accent); }
html .mibf .mibf-acc__icon { position: relative; flex: none; width: 26px; height: 26px; border-radius: 50%; background: var(--mibf-box-hi); transition: background-color var(--mibf-fast) var(--mibf-ease), transform 300ms var(--mibf-ease); }
html .mibf .mibf-acc__icon::before, html .mibf .mibf-acc__icon::after { content: ''; position: absolute; left: 50%; top: 50%; width: 11px; height: 2px; margin: -1px 0 0 -5.5px; background: var(--mibf-ink); transition: transform 300ms var(--mibf-ease); }
html .mibf .mibf-acc__icon::after { transform: rotate(90deg); }
html .mibf .mibf-acc[open] .mibf-acc__icon { background: var(--mibf-accent); transform: rotate(180deg); }
html .mibf .mibf-acc[open] .mibf-acc__icon::before, html .mibf .mibf-acc[open] .mibf-acc__icon::after { background: var(--mibf-accent-ink); }
html .mibf .mibf-acc[open] .mibf-acc__icon::after { transform: rotate(0deg); }
html .mibf .mibf-acc__body { padding: 0 0 16px; color: var(--mibf-soft); line-height: 1.55; }
html .mibf .mibf-acc[open] .mibf-acc__body { animation: mibf-rise 380ms var(--mibf-ease) both; }


/* --------------------------------------------------------------------------
   13. HOME - 05 CONCURSO: una caja por categoria
   -------------------------------------------------------------------------- */

html .mibf .mibf-cat { display: flex; flex-direction: column; gap: 14px; }
html .mibf .mibf-round__when { display: block; font-size: var(--mibf-s-small); font-weight: 700; color: var(--mibf-accent); }
html .mibf .mibf-round__work { display: block; margin-top: 2px; font-size: var(--mibf-s-body); line-height: 1.4; }
html .mibf .mibf-cat__note { color: var(--mibf-soft); }
html .mibf .mibf-con__photo { margin-top: var(--mibf-gap); height: clamp(220px, 30vw, 420px); border-radius: var(--mibf-r); }
html .mibf .mibf-con__photo > img { object-position: 50% 70%; }


/* --------------------------------------------------------------------------
   14. HOME - 06 ARTISTAS (y /artistas/): caja con foto
   -------------------------------------------------------------------------- */

html .mibf .mibf-person { display: flex; flex-direction: column; padding: 0; }
html .mibf .mibf-person__img { aspect-ratio: 4 / 5; }
html .mibf .mibf-person__img > img { object-position: 50% 22%; transition: transform 700ms var(--mibf-ease); }
html .mibf .mibf-person:hover .mibf-person__img > img { transform: scale(1.04); }
html .mibf .mibf-person__img--empty { display: flex; align-items: center; justify-content: center; font-family: var(--mibf-f-display); font-weight: 900; font-size: 5rem; color: var(--mibf-accent); }
html .mibf .mibf-person__body { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px 20px; }
html .mibf .mibf-person__name { font-weight: 700; font-size: 1.125rem; line-height: 1.25; }
html .mibf .mibf-person:hover .mibf-person__name { color: var(--mibf-accent); }
html .mibf .mibf-person__meta { font-size: var(--mibf-s-small); color: var(--mibf-soft); line-height: 1.4; }
html .mibf .mibf-person__flag { position: absolute; top: 12px; left: 12px; z-index: 1; }
html .mibf .mibf-person--group .mibf-person__img { aspect-ratio: 4 / 3; }
html .mibf .mibf-person--more { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 16px; padding: clamp(22px, 2.2vw, 30px); }
html .mibf a.mibf-person--more,
html .mibf a.mibf-person--more:hover { color: var(--mibf-accent-ink); }
html .mibf a.mibf-person--more:hover .mibf-btn { background: #000; color: var(--mibf-accent-hi); }
html .mibf .mibf-signup { display: flex; flex-direction: column; gap: 12px; }
html .mibf .mibf-signup form { display: flex; flex-direction: column; gap: 10px; }


/* --------------------------------------------------------------------------
   15. HOME - 07 CONCIERTOS: una caja por noche
   -------------------------------------------------------------------------- */

html .mibf .mibf-day { display: flex; gap: 18px; align-items: flex-start; }
html .mibf .mibf-day__date {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  flex: none; width: 76px; padding: 10px 6px; border-radius: var(--mibf-r-sm);
  background: var(--mibf-accent); color: var(--mibf-accent-ink); text-align: center;
}
html .mibf .mibf-day__dow, html .mibf .mibf-day__mon { font-size: 0.875rem; font-weight: 700; line-height: 1.2; }
html .mibf .mibf-day__num { font-family: var(--mibf-f-display); font-weight: 900; font-size: 2.5rem; line-height: 1; }
html .mibf .mibf-day__body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
html .mibf .mibf-day__what { font-weight: 700; font-size: 1.125rem; line-height: 1.3; }
html .mibf .mibf-day__what a { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; text-decoration-color: var(--mibf-accent); }
html .mibf .mibf-day__where { font-size: var(--mibf-s-small); color: var(--mibf-soft); }
html .mibf .mibf-day--star { background: #2a2410; }


/* --------------------------------------------------------------------------
   16. HOME - 08 FESTIVAL
   -------------------------------------------------------------------------- */

html .mibf .mibf-video { aspect-ratio: 16 / 9; border-radius: var(--mibf-r-sm); }
html .mibf .mibf-map { position: relative; aspect-ratio: 800 / 521; border-radius: var(--mibf-r-sm); background: #171a1e; }
html .mibf .mibf-map > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
html .mibf .mibf-map__dot { position: absolute; left: 89.68%; top: 63.78%; width: 16px; height: 16px; margin: -8px 0 0 -8px; border-radius: 50%; background: var(--mibf-accent); box-shadow: 0 0 0 3px var(--mibf-accent-ink); }
html .mibf .mibf-map__dot::after { content: ''; position: absolute; inset: -8px; border-radius: 50%; background: var(--mibf-accent); opacity: 0.5; animation: mibf-pulse 2.4s var(--mibf-ease) infinite; }
html .mibf .mibf-map__label { position: absolute; right: calc(100% - 89.68% + 16px); top: 63.78%; transform: translateY(-50%); padding: 4px 10px; border-radius: 6px; background: var(--mibf-accent); color: var(--mibf-accent-ink); font-size: 0.875rem; font-weight: 700; line-height: 1.2; white-space: nowrap; }
html .mibf .mibf-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 20px; margin-top: 18px; }
html .mibf .mibf-facts dt { font-size: var(--mibf-s-small); color: var(--mibf-soft); }
html .mibf .mibf-facts dd { font-weight: 700; font-size: 1.125rem; line-height: 1.3; font-variant-numeric: tabular-nums; }
html .mibf .mibf-logos { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--mibf-gap); margin-top: 16px; }
html .mibf .mibf-logos__item { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; min-height: 150px; padding: 22px 18px; border-radius: var(--mibf-r-sm); background: var(--mibf-box-hi); text-align: center; color: var(--mibf-ink); }
html .mibf .mibf-logos__img { display: flex; align-items: center; justify-content: center; width: 100%; height: 72px; }
html .mibf .mibf-logos__img img,
html .mibf img.mibf-logo { display: block; width: auto; height: auto; max-width: 180px; max-height: 72px; object-fit: contain; }
html .mibf .mibf-logos__name { font-size: 0.875rem; line-height: 1.35; color: var(--mibf-soft); }
html .mibf .mibf-logo--blanco { filter: brightness(0) invert(1); }
html .mibf .mibf-logo--invertir { filter: invert(1); }
html .mibf .mibf-fes__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: start; }
@media screen and (max-width: 900px) {
  html .mibf .mibf-fes__grid { grid-template-columns: minmax(0, 1fr); }
}


/* --------------------------------------------------------------------------
   17. HOME - 09 APOYA y 10 AVISOS
   -------------------------------------------------------------------------- */

html .mibf .mibf-cta { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 0; padding: 0; }
html .mibf .mibf-cta__text { display: flex; flex-direction: column; gap: 18px; justify-content: center; align-items: flex-start; padding: clamp(28px, 4vw, 56px); }
html .mibf .mibf-cta__photo { min-height: 320px; }
html .mibf .mibf-nl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--mibf-gap); }
html .mibf .mibf-nl__photo { min-height: 360px; border-radius: var(--mibf-r); }
html .mibf .mibf-nl form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
html .mibf .mibf-nl form .mibf-field--full,
html .mibf .mibf-nl form .mibf-form-msg,
html .mibf .mibf-nl form .mibf-btn { grid-column: 1 / -1; }
@media screen and (max-width: 900px) {
  html .mibf .mibf-cta, html .mibf .mibf-nl { grid-template-columns: minmax(0, 1fr); }
  html .mibf .mibf-cta__photo { min-height: 220px; order: -1; }
  html .mibf .mibf-nl__photo { min-height: 220px; }
  html .mibf .mibf-nl form { grid-template-columns: minmax(0, 1fr); }
}


/* --------------------------------------------------------------------------
   18. PIE (parcial "MIBF pie")
   -------------------------------------------------------------------------- */

html .mibf .mibf-foot { background: var(--mibf-bg-deep); padding: clamp(56px, 6vw, 88px) 0 28px; }
html .mibf .mibf-foot__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); gap: var(--mibf-gap); }
html .mibf .mibf-foot__brand { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
html .mibf .mibf-foot__col { display: flex; flex-direction: column; gap: 2px; }
html .mibf .mibf-foot__col .mibf-h4 { font-size: 0.875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 8px; color: var(--mibf-accent); }
html .mibf .mibf-foot__col a { padding: 5px 0; color: var(--mibf-ink); transition: color var(--mibf-fast) var(--mibf-ease); }
html .mibf .mibf-foot__lang { display: flex; gap: 8px; margin-top: 6px; }
html .mibf .mibf-foot__lang a { padding: 6px 10px; border-radius: 6px; background: var(--mibf-box); color: var(--mibf-soft); font-size: 0.875rem; font-weight: 700; }
html .mibf .mibf-foot__lang a[aria-current="true"] { background: var(--mibf-box-hi); color: var(--mibf-ink); }
html .mibf .mibf-foot__col a:hover { color: var(--mibf-accent); }
html .mibf .mibf-foot__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--mibf-line); font-size: var(--mibf-s-small); color: var(--mibf-soft); }
@media screen and (max-width: 900px) {
  html .mibf .mibf-foot__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  html .mibf .mibf-foot__brand { grid-column: 1 / -1; }
}


/* --------------------------------------------------------------------------
   19. /artistas/ y /artistas/{id}
   -------------------------------------------------------------------------- */

html .mibf .mibf-page-head { padding: clamp(32px, 5vw, 72px) 0 clamp(28px, 4vw, 48px); }
html .mibf .mibf-page-head .mibf-head { margin-bottom: 0; }
html .mibf .mibf-roster__title { margin: 0 0 18px; }
html .mibf .mibf-roster { margin-bottom: clamp(48px, 6vw, 80px); }
html .mibf .mibf-crumbs { display: flex; flex-wrap: wrap; gap: 10px; font-size: var(--mibf-s-small); color: var(--mibf-soft); margin-bottom: 24px; }
html .mibf .mibf-crumbs a { color: var(--mibf-accent); font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
html .mibf .mibf-profile { padding: clamp(24px, 4vw, 48px) 0 var(--mibf-section); }
html .mibf .mibf-profile__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: start; }
html .mibf .mibf-profile__media { aspect-ratio: 4 / 5; border-radius: var(--mibf-r); position: sticky; top: 20px; }
html .mibf .mibf-profile__media--wide { aspect-ratio: 4 / 3; }
html .mibf .mibf-profile__media img { object-position: 50% 22%; }
html .mibf .mibf-profile__body { display: flex; flex-direction: column; gap: var(--mibf-gap); }
html .mibf .mibf-profile__name { font-family: var(--mibf-f-display); font-weight: 900; font-size: clamp(2.75rem, 1.6rem + 3.6vw, 4.75rem); line-height: 0.9; text-transform: uppercase; text-wrap: balance; }
html .mibf .mibf-profile__bio { font-size: var(--mibf-s-body); line-height: 1.65; }
html .mibf .mibf-profile__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 20px; }
html .mibf .mibf-profile__facts dt { font-size: var(--mibf-s-small); color: var(--mibf-soft); }
html .mibf .mibf-profile__facts dd { font-weight: 700; }
html .mibf .mibf-profile__group a { color: var(--mibf-accent); font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
html .mibf .mibf-profile__links { display: flex; flex-wrap: wrap; gap: 10px; }
html .mibf .mibf-more { padding-bottom: var(--mibf-section); }
html .mibf .mibf-more__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 18px; margin-bottom: 28px; }
@media screen and (max-width: 900px) {
  html .mibf .mibf-profile__grid { grid-template-columns: minmax(0, 1fr); }
  html .mibf .mibf-profile__media { position: static; max-width: 420px; }
  html .mibf .mibf-profile__facts { grid-template-columns: minmax(0, 1fr); }
}


/* --------------------------------------------------------------------------
   19b. /agrupaciones/ (indice) y /agrupaciones/{id} (ficha), 28-10-2026
   -------------------------------------------------------------------------- */

html .mibf .mibf-ensemble { display: flex; flex-direction: column; color: var(--mibf-ink); }
html .mibf a.mibf-ensemble:hover { color: var(--mibf-ink); }
html .mibf .mibf-ensemble__img { aspect-ratio: 16 / 9; }
html .mibf .mibf-ensemble__img > img { transition: transform 700ms var(--mibf-ease); }
html .mibf .mibf-ensemble:hover .mibf-ensemble__img > img { transform: scale(1.03); }
html .mibf .mibf-ensemble__body { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: clamp(22px, 2.4vw, 32px); flex: 1; }
html .mibf .mibf-ensemble__name { display: block; }
html .mibf .mibf-ensemble:hover .mibf-ensemble__name { color: var(--mibf-accent); }
html .mibf .mibf-ensemble__lema { font-size: var(--mibf-s-lead); line-height: 1.4; font-weight: 500; }
html .mibf .mibf-ensemble__text { color: var(--mibf-soft); line-height: 1.55; }
html .mibf .mibf-ensemble__meta { font-size: var(--mibf-s-small); color: var(--mibf-soft); }
html .mibf .mibf-ensemble .mibf-btn { margin-top: auto; }

html .mibf .mibf-ens-head { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: stretch; }
html .mibf .mibf-ens-head__img { aspect-ratio: 16 / 10; border-radius: var(--mibf-r); }
html .mibf .mibf-ens-head__img.mibf-person__img--empty { display: flex; align-items: center; justify-content: center; }
html .mibf .mibf-ens-head__text { display: flex; flex-direction: column; justify-content: center; gap: 16px; }
@media screen and (max-width: 900px) {
  html .mibf .mibf-ens-head { grid-template-columns: minmax(0, 1fr); }
}


/* --------------------------------------------------------------------------
   20. MOVIMIENTO
   Entradas una vez al aparecer (solo con .mibf-js, asi sin JavaScript nada
   queda oculto) y la foto del hero que se asienta.
   -------------------------------------------------------------------------- */

@keyframes mibf-rise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes mibf-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes mibf-drop { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
@keyframes mibf-settle { from { transform: scale(1.1); } to { transform: scale(1); } }
@keyframes mibf-pulse { 0% { transform: scale(0.6); opacity: 0.6; } 100% { transform: scale(2.2); opacity: 0; } }
@keyframes mibf-tick { from { transform: translateY(-35%); opacity: 0; } to { transform: none; opacity: 1; } }

@media (prefers-reduced-motion: no-preference) {
  html .mibf .mibf-hero__stage > img { animation: mibf-settle 1800ms var(--mibf-ease) both; }
  html .mibf .mibf-hero__text > * { animation: mibf-rise 800ms var(--mibf-ease) both; animation-delay: calc(var(--mibf-i, 0) * 90ms + 120ms); }
  html .mibf .mibf-hero__foot { animation: mibf-fade 900ms var(--mibf-ease) 600ms both; }
  html .mibf .mibf-profile__media > img { animation: mibf-settle 1600ms var(--mibf-ease) both; }

  html .mibf.mibf-js [data-mibf-reveal] { opacity: 0; transform: translateY(22px); transition: opacity 700ms var(--mibf-ease), transform 900ms var(--mibf-ease); transition-delay: calc(var(--mibf-i, 0) * 70ms); }
  html .mibf.mibf-js [data-mibf-reveal].is-in { opacity: 1; transform: none; }
  html .mibf.mibf-js [data-mibf-stagger] > * { opacity: 0; transform: translateY(22px); transition: opacity 700ms var(--mibf-ease) calc(var(--mibf-i, 0) * 70ms), transform 900ms var(--mibf-ease) calc(var(--mibf-i, 0) * 70ms), box-shadow 300ms var(--mibf-ease); }
  html .mibf.mibf-js [data-mibf-stagger].is-in > * { opacity: 1; transform: none; }

  html .mibf .mibf-count__n.is-tick { animation: mibf-tick 420ms var(--mibf-ease); }
}
@media (prefers-reduced-motion: reduce) {
  html .mibf .mibf-map__dot::after { animation: none; }
}
