/* BAM — Orthopedische Revalidatie: opbouw in blokken (shortcode [bam_or_blokken]).
   Scope: .bam-orb. Mobile-first. Sin !important: specificity (0,2,0) gana al kit de Elementor. */

.bam-orb {
  --orb-primary: #1E8C7E;
  --orb-primary-dark: #14685D;
  --orb-primary-tint: #DFF0EC;
  --orb-accent: #ff6900;
  --orb-accent-tint: #FFF1E6;
  --orb-ink: #1f2a2e;
  --orb-muted: #5b6b70;
  --orb-line: #e3ebe9;
  --orb-radius: 16px;
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin: 8px 0 24px;
  font-family: inherit;
  color: var(--orb-ink);
}

.bam-orb .bam-orb__photo {
  margin: 0;
  border-radius: var(--orb-radius);
  overflow: hidden;
  aspect-ratio: 16 / 8;
  background: var(--orb-primary-tint);
}
.bam-orb .bam-orb__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 35%;
}

.bam-orb .bam-orb__eyebrow {
  margin: 0 0 10px;
  font-size: 0.9rem;
  line-height: 1.4;
  color: var(--orb-muted);
}
.bam-orb .bam-orb__eyebrow a { color: var(--orb-primary); text-decoration: underline; text-underline-offset: 2px; }
.bam-orb .bam-orb__eyebrow strong { color: var(--orb-ink); }

.bam-orb .bam-orb__items {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.bam-orb .bam-orb__item { margin: 0; padding: 0; }

.bam-orb .bam-orb__link {
  display: grid;
  grid-template-columns: 56px 1fr 28px;
  align-items: center;
  gap: 12px;
  min-height: 72px;
  padding: 10px 12px;
  border: 1px solid var(--orb-line);
  border-radius: 14px;
  background: #fff;
  color: inherit;
  text-decoration: none;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.bam-orb a.bam-orb__link:hover,
.bam-orb a.bam-orb__link:focus-visible {
  border-color: var(--orb-primary);
  box-shadow: 0 6px 18px rgba(30, 140, 126, .14);
  transform: translateY(-1px);
  color: inherit;
  outline: none;
}
.bam-orb a.bam-orb__link:focus-visible { box-shadow: 0 0 0 3px var(--orb-primary-tint), 0 0 0 5px var(--orb-primary); }

.bam-orb .bam-orb__thumb {
  width: 56px;
  height: 56px;
  border-radius: 12px;
  object-fit: cover;
  display: block;
  background: var(--orb-primary-tint);
}
.bam-orb .bam-orb__thumb--exam {
  display: grid;
  place-items: center;
  font-size: 1.6rem;
  line-height: 1;
}

.bam-orb .bam-orb__body { display: grid; gap: 2px; min-width: 0; }
.bam-orb .bam-orb__label {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  font-weight: 700;
  font-size: 0.8rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--orb-primary);
}
.bam-orb .bam-orb__title { font-weight: 600; font-size: 1rem; line-height: 1.3; color: var(--orb-ink); }
.bam-orb .bam-orb__meta { font-size: 0.82rem; color: var(--orb-muted); }
.bam-orb .bam-orb__meta strong { font-weight: 600; color: var(--orb-ink); }

.bam-orb .bam-orb__cta {
  justify-self: end;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 1rem;
  font-weight: 700;
  color: var(--orb-primary);
  background: var(--orb-primary-tint);
}

/* Blok actual */
.bam-orb .bam-orb__item.is-current .bam-orb__link {
  border: 2px solid var(--orb-accent);
  background: var(--orb-accent-tint);
  cursor: default;
}
.bam-orb .bam-orb__item.is-current .bam-orb__label { color: var(--orb-accent); }
.bam-orb .bam-orb__here {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--orb-accent);
  color: #fff;
  font-size: 0.68rem;
  letter-spacing: .06em;
}
.bam-orb .bam-orb__item.is-current .bam-orb__cta { background: var(--orb-accent); color: #fff; font-size: 0.6rem; }

/* Examendag: se distingue del resto */
.bam-orb .bam-orb__item.is-exam .bam-orb__link { border-style: dashed; }

/* Nivel traject: bloques con cabecera */
.bam-orb .bam-orb__groups {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 18px;
}
.bam-orb .bam-orb__group { margin: 0; padding: 0; }
.bam-orb .bam-orb__group-title {
  margin: 0 0 8px;
  font-size: 0.82rem;
  color: var(--orb-muted);
}
.bam-orb .bam-orb__group-label {
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--orb-primary);
}

/* La opleiding dentro del traject: es un nivel entero, no un curso suelto */
.bam-orb .bam-orb__item.is-opleiding .bam-orb__link { border-color: var(--orb-primary); }

/* Sub-lista: los 5 productos de la opleiding colgando de su fila */
.bam-orb .bam-orb__subwrap { margin: 0; padding: 0; }
.bam-orb .bam-orb__sublist {
  list-style: none;
  margin: 6px 0 0 28px;
  padding: 0 0 0 16px;
  border-left: 2px solid var(--orb-primary-tint);
  display: grid;
  gap: 4px;
}
.bam-orb .bam-orb__subitem { margin: 0; padding: 0; }
.bam-orb .bam-orb__sublink {
  display: block;
  padding: 5px 8px;
  border-radius: 8px;
  font-size: 0.86rem;
  line-height: 1.35;
  color: var(--orb-ink);
  text-decoration: none;
}
.bam-orb a.bam-orb__sublink:hover,
.bam-orb a.bam-orb__sublink:focus-visible { background: var(--orb-primary-tint); color: var(--orb-ink); }
.bam-orb .bam-orb__sublabel {
  font-weight: 700;
  font-size: 0.74rem;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--orb-primary);
}
.bam-orb .bam-orb__submeta { color: var(--orb-muted); }

/* Compleet traject: nivel superior, no un blok más de la opleiding */
.bam-orb .bam-orb__item.is-traject { margin-top: 6px; }
.bam-orb .bam-orb__item.is-traject .bam-orb__link {
  border: 2px solid var(--orb-primary);
  background: var(--orb-primary-tint);
}
.bam-orb .bam-orb__item.is-traject .bam-orb__cta { background: var(--orb-primary); color: #fff; }
.bam-orb .bam-orb__item.is-traject.is-current .bam-orb__link {
  border-color: var(--orb-accent);
  background: var(--orb-accent-tint);
}
.bam-orb .bam-orb__item.is-traject.is-current .bam-orb__cta { background: var(--orb-accent); }

/* CTA a la opleiding completa (solo en páginas de blok) */
.bam-orb .bam-orb__parent {
  display: grid;
  grid-template-columns: 1fr 28px;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
  padding: 14px 16px;
  border-radius: 14px;
  background: var(--orb-primary);
  color: #fff;
  text-decoration: none;
  transition: background .15s ease;
}
.bam-orb .bam-orb__parent:hover,
.bam-orb .bam-orb__parent:focus-visible { background: var(--orb-primary-dark); color: #fff; }
.bam-orb .bam-orb__parent-body { display: grid; gap: 3px; }
.bam-orb .bam-orb__parent-title { font-weight: 700; font-size: 1rem; line-height: 1.3; }
.bam-orb .bam-orb__parent-meta { font-size: 0.82rem; opacity: .9; }
.bam-orb .bam-orb__parent-meta strong { font-weight: 700; color: #fff; }
.bam-orb .bam-orb__parent .bam-orb__cta { background: rgba(255, 255, 255, .18); color: #fff; }

/* Programma per lesdag (variante estática, sin enlaces) */
.bam-orb .bam-orb__heading {
  margin: 0 0 12px;
  font-size: 1.6rem;
  line-height: 1.2;
  font-weight: 700;
  color: var(--orb-ink);
}
.bam-orb .bam-orb__link--static { cursor: default; }
.bam-orb .bam-orb__title--day { font-weight: 500; font-size: 0.95rem; }
.bam-orb .bam-orb__cta--check { font-size: 0.95rem; }
.bam-orb--days .bam-orb__photo--portrait { aspect-ratio: 16 / 9; }
.bam-orb--days .bam-orb__photo--portrait img { object-position: 50% 12%; }
.bam-orb--days .bam-orb__link { min-height: 84px; }

/* Tablet / desktop: foto a la izquierda, lista a la derecha */
@media (min-width: 900px) {
  .bam-orb {
    grid-template-columns: minmax(260px, 5fr) 7fr;
    gap: 24px;
    align-items: stretch;
  }
  .bam-orb .bam-orb__photo { aspect-ratio: auto; min-height: 100%; }
  .bam-orb--days { grid-template-columns: minmax(240px, 4fr) 7fr; align-items: start; }
  .bam-orb .bam-orb__heading { font-size: 1.85rem; }
  .bam-orb--days .bam-orb__photo--portrait { aspect-ratio: 4 / 5; min-height: 0; }
  .bam-orb--days .bam-orb__photo--portrait img { object-position: 50% 20%; }
  .bam-orb .bam-orb__link { grid-template-columns: 64px 1fr 32px; }
  .bam-orb .bam-orb__thumb { width: 64px; height: 64px; }
  .bam-orb .bam-orb__cta { width: 32px; height: 32px; }
}

@media (prefers-reduced-motion: reduce) {
  .bam-orb .bam-orb__link,
  .bam-orb .bam-orb__parent { transition: none; }
  .bam-orb a.bam-orb__link:hover { transform: none; }
}
