.institutions-page { background: #fff; color: #1c1c1c; line-height: 1.6; }
.institutions-page main { --rbn-primary: #ff6000; --rbn-secondary: #030085; }
.institutions-page main * { letter-spacing: 0; }
.institutions-page main h1, .institutions-page main h2, .institutions-page main h3 { font-family: "Signika", sans-serif; line-height: 1.2; }
.institution-title, .institution-section, .rbn-propuestas, .rbn-form, .rbn-precios, .rbn-faq { max-width: 1008px; margin: 0 auto; padding: 28px 24px; }
.institution-title { padding-top: 40px; padding-bottom: 0; }
.institution-title h1 { font-size: 2rem; color: #030085; margin: 0; }
.institutions-page main h2 { font-size: 1.7rem; margin: 0 0 16px; }
.institutions-page main h3 { font-size: 1.35rem; margin: 0; }
.institutions-page main p { margin: 0 0 16px; }
.institutions-page .rbn-titulo { padding-left: 16px; border-left: 6px solid #ff6000; }
.rbn-bajada { color: #5f5f6b; max-width: 660px; }
.rbn-caminos, .rbn-grid, .institution-intro, .institution-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.rbn-caminos { margin-top: 28px; }
.rbn-camino { border: 2px solid; border-radius: 8px; padding: 28px 24px; display: flex; flex-direction: column; gap: 12px; }
.rbn-viajera { border-color: #030085; }
.rbn-compra { border-color: #ff6000; }
.rbn-viajera h3 { color: #030085; }
.rbn-compra h3 { color: #b54400; }
.rbn-tag { align-self: flex-start; border-radius: 6px; padding: 5px 12px; font: 600 .85rem "Signika", sans-serif; color: #fff; background: #030085; }
.rbn-compra .rbn-tag { background: #b54400; }
.rbn-acciones { margin-top: auto; display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.rbn-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font: 500 1rem/1.4 "Roboto", sans-serif; text-align: center; border: none; border-radius: 8px; cursor: pointer; padding: 14px 24px; min-height: 48px; max-width: 100%; text-decoration: none; }
.rbn-btn-primario { background: #b54400; color: #fff; }
.rbn-btn-secundario { background: #030085; color: #fff; }
.rbn-btn-wsp { background: #1b7c44; color: #fff; }
.rbn-btn:hover { filter: brightness(.92); color: #fff; }
.rbn-btn:disabled { cursor: wait; opacity: .7; }
.rbn-link-impacto { color: #030085; text-underline-offset: 5px; font-weight: 700; }
.institution-intro { align-items: center; }
.institution-intro > img { width: 100%; aspect-ratio: 1; object-fit: contain; }
.institution-section { border-top: 1px solid #e4e4ee; margin-top: 20px; }
.institution-section h2 { color: #030085; }
.institution-section > img { width: 100%; height: auto; margin-top: 24px; }
.institution-columns { margin: 28px 0; }
.institution-video { width: 100%; aspect-ratio: 16 / 9; border: 0; }
#formulario, #rbnPrecios, #contacto { scroll-margin-top: 100px; }
.rbn-card { margin-top: 28px; padding: 28px 0; border-block: 2px solid #e4e4ee; }
.rbn-full { grid-column: 1 / -1; }
.rbn-form label { display: block; font-weight: 700; font-size: .95rem; margin-bottom: 6px; }
.rbn-form input, .rbn-form select, .rbn-form textarea { width: 100%; min-width: 0; padding: 12px 14px; border: 2px solid #d8d8e4; border-radius: 8px; background: #fff; font: 1rem/1.4 "Roboto", sans-serif; color: #1c1c1c; }
.rbn-form textarea { resize: vertical; min-height: 96px; }
.rbn-form :disabled { color: #5f5f6b; }
.rbn-form .rbn-error { display: none; color: #b42318; font-size: .85rem; margin: 6px 0 0; }
.rbn-invalido .rbn-error { display: block; }
.rbn-invalido :is(input, select) { border-color: #b42318; }
.rbn-check-viajera { display: flex; align-items: flex-start; gap: 12px; background: #ededfb; padding: 18px; border-left: 4px solid #030085; }
.rbn-check-viajera input[type="checkbox"] { width: 22px; height: 22px; margin: 3px 0 0; flex: 0 0 22px; accent-color: #030085; }
.rbn-check-viajera label { font-weight: 400; cursor: pointer; margin: 0; }
.rbn-check-viajera strong { color: #030085; }
.rbn-footer { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; margin-top: 24px; }
.rbn-footer small { max-width: 480px; color: #5f5f6b; }
.rbn-form #rbnEstado { margin: 18px 0 0; }
#rbnEstado:empty { display: none; }
#rbnEstado[data-state="error"] { color: #b42318; font-weight: 500; }
#rbnEstado[data-state="success"] { color: #166534; }
.rbn-oculto { display: none !important; }
.rbn-lock { background: #fff4e8; padding: 24px; border: 2px dashed #c26310; text-align: center; }
.rbn-cupo { display: inline-block; padding: 8px 16px; border-left: 4px solid #ff6000; margin: 4px 0 28px; font-weight: 700; background: #fff1e8; }
.rbn-grid-precios { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.rbn-tarjeta { padding: 26px 20px; border: 2px solid #e4e4ee; border-radius: 8px; position: relative; display: flex; flex-direction: column; }
.rbn-tarjeta.rbn-destacada { border-color: #ff6000; }
.rbn-pill { position: absolute; top: -14px; left: 16px; background: #b54400; color: #fff; padding: 3px 12px; border-radius: 4px; font-size: .8rem; font-weight: 700; }
.rbn-precios .rbn-tarjeta h3 { font-size: 1.15rem; }
.rbn-subop { font-size: .9rem; color: #5f5f6b; }
.rbn-antes { text-decoration: line-through; color: #5f5f6b; }
.rbn-ahora { font: 700 1.85rem/1.4 "Signika", sans-serif; color: #b54400; }
.rbn-dto { font-size: .85rem; font-weight: 700; color: #166534; }
.rbn-incluye { padding-left: 20px; font-size: .95rem; flex-grow: 1; }
.rbn-incluye li { margin: 6px 0; }
.rbn-stock { color: #b42318; font-weight: 700; }
.rbn-leyenda, .rbn-callout, .rbn-notas { margin-top: 24px; padding: 18px 20px; border-left: 4px solid #ff6000; background: #fff1e8; }
.rbn-callout { background: #ededfb; border-color: #030085; }
.rbn-callout h3 { color: #030085; margin-bottom: 10px !important; }
.rbn-notas { background: #f7f7fa; border-color: #d8d8e4; }
.rbn-notas p:last-child, .rbn-callout p:last-child { margin-bottom: 0; }
.rbn-cta { margin-top: 24px; }
.rbn-faq details { border: 2px solid #e4e4ee; border-radius: 8px; padding: 16px 20px; margin-bottom: 12px; }
.rbn-faq details[open] { border-color: #ff6000; }
.rbn-faq summary { font: 700 1.1rem/1.4 "Signika", sans-serif; color: #030085; cursor: pointer; }
.rbn-faq details p { margin: 12px 0 0; }
.institutions-page main :is(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid #8a016d; outline-offset: 4px; }
.institutions-page .institution-gallery { margin: 24px 0; }
.institution-gallery .home-carousel-track { padding: 0 0 6px; }
.institution-gallery .home-carousel-slide { flex: 0 0 calc((100% - 32px) / 3); margin: 0; min-width: 0; aspect-ratio: auto; background: #fff; box-shadow: none; }
.institution-gallery .home-carousel-slide img { width: 100%; height: 100%; aspect-ratio: 1; object-fit: contain; border-radius: 0; background: #fff; }
.institution-gallery .home-carousel-slide a { display: block; }
.institution-gallery .home-carousel-slide figcaption { text-align: center; font-size: .95rem; padding: 8px; }
.institution-gallery .home-carousel-button { width: 44px; height: 44px; }
.institution-gallery .home-carousel-button img { width: 24px; height: 24px; filter: invert(1); }
.institution-gallery .next img { transform: rotate(180deg); }
.institution-testimonials { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.institution-testimonials img { width: 100%; aspect-ratio: 2 / 3; object-fit: contain; }
.institution-testimonials blockquote { margin: 16px 0 0; font-size: .95rem; }
.institution-posts { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding-left: 20px; }
.institution-contact .button { margin-bottom: 12px; }
@media (max-width: 760px) {
  .institution-title, .institution-section, .rbn-propuestas, .rbn-form, .rbn-precios, .rbn-faq { padding: 24px 18px; }
  .institution-title { padding-bottom: 0; }
  .institution-title h1 { font-size: 1.8rem; }
  .institutions-page main h2 { font-size: 1.5rem; }
  .rbn-caminos, .rbn-grid, .rbn-grid-precios, .institution-intro, .institution-columns { grid-template-columns: minmax(0, 1fr); }
  .rbn-grid-precios { gap: 28px; }
  .rbn-camino { padding: 22px 18px; }
  .institution-gallery .home-carousel-slide { flex-basis: calc((100% - 16px) / 2); }
  .institution-testimonials { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 440px) {
  .institution-gallery .home-carousel-slide { flex-basis: 100%; }
  .institution-posts { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .institutions-page * { transition: none !important; }
}
