/*
 * RB Academy front end styles.
 * Tokens follow the rhythm-brands theme so the member areas look like the
 * rest of the site rather than like a plugin bolted on.
 */

.rba-directory,
.rba-profile,
.rba-profile-edit,
.rba-forum,
.rba-sessions,
.rba-library,
.rba-session-panel {
  --rba-ink: #12171A;
  --rba-ivory: #F5F0E8;
  --rba-gold: #B8975A;
  --rba-gold-light: #D4AF6E;
  --rba-quiet: #5A5750;
  --rba-line: rgba(18, 23, 26, 0.14);
  --rba-serif: "Cormorant Garamond", Georgia, serif;
  --rba-sans: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

  font-family: var(--rba-sans);
  color: var(--rba-ink);
}

/* Type -------------------------------------------------------------- */

.rba-h1 {
  font-family: var(--rba-serif);
  font-weight: 500;
  font-size: clamp(30px, 4vw, 46px);
  line-height: 1.1;
  margin: 0 0 10px;
  color: var(--rba-ink);
}

.rba-h2 {
  font-family: var(--rba-serif);
  font-weight: 500;
  font-size: clamp(24px, 3vw, 34px);
  line-height: 1.15;
  margin: 0 0 22px;
  color: var(--rba-ink);
}

.rba-eyebrow {
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--rba-gold);
  margin: 0 0 8px;
}

.rba-meta {
  font-size: 13.5px;
  color: var(--rba-quiet);
  margin: 0 0 8px;
}

.rba-empty {
  font-size: 15px;
  color: var(--rba-quiet);
  padding: 26px 0;
}

/* Buttons ----------------------------------------------------------- */

.rba-btn {
  display: inline-block;
  background: var(--rba-gold);
  color: #000;
  font-family: var(--rba-sans);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.2;
  padding: 14px 30px;
  border: 1px solid var(--rba-gold);
  border-radius: 0;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.18s ease, color 0.18s ease;
}

.rba-btn:hover,
.rba-btn:focus {
  background: var(--rba-gold-light);
  border-color: var(--rba-gold-light);
  color: #000;
}

.rba-btn-ghost {
  background: transparent;
  color: var(--rba-ink);
  border-color: rgba(18, 23, 26, 0.4);
}

.rba-btn-ghost:hover,
.rba-btn-ghost:focus {
  background: transparent;
  border-color: var(--rba-gold);
  color: var(--rba-ink);
}

.rba-link {
  color: var(--rba-gold);
  text-decoration: none;
  border-bottom: 1px solid rgba(184, 151, 90, 0.4);
  margin-right: 16px;
}

.rba-chip {
  display: inline-block;
  font-size: 12.5px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--rba-quiet);
  border: 1px solid var(--rba-line);
  padding: 7px 14px;
  margin: 0 8px 8px 0;
  text-decoration: none;
}

.rba-chip.is-current,
.rba-chip:hover {
  border-color: var(--rba-gold);
  color: var(--rba-ink);
}

/* Notices ----------------------------------------------------------- */

.rba-locked {
  border: 1px solid var(--rba-line);
  background: var(--rba-ivory);
  padding: 28px 26px;
  margin: 26px 0;
}

.rba-locked-title {
  font-family: var(--rba-serif);
  font-size: 22px;
  font-weight: 500;
  margin: 0 0 8px;
}

.rba-locked-body {
  font-size: 15px;
  color: var(--rba-quiet);
  margin: 0 0 16px;
}

.rba-notice {
  font-size: 14px;
  padding: 12px 16px;
  border-left: 3px solid var(--rba-line);
  background: rgba(18, 23, 26, 0.03);
  margin: 0 0 18px;
}

.rba-notice-good { border-left-color: var(--rba-gold); }
.rba-notice-wait { border-left-color: #ACA8A3; }

.rba-flag {
  display: inline-block;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--rba-gold);
  margin: 6px 0 0;
}

.rba-flag-locked { color: var(--rba-quiet); }

/* Grid and cards ---------------------------------------------------- */

.rba-grid {
  display: grid;
  gap: 24px;
  margin: 28px 0;
}

.rba-grid-members { grid-template-columns: repeat(4, 1fr); }
.rba-grid-sessions,
.rba-grid-files { grid-template-columns: repeat(3, 1fr); }

.rba-card {
  border: 1px solid var(--rba-line);
  background: #fff;
  padding: 26px 22px 24px;
}

.rba-card.is-locked { background: var(--rba-ivory); }

.rba-card-title {
  font-family: var(--rba-serif);
  font-size: 21px;
  font-weight: 500;
  line-height: 1.2;
  margin: 0 0 8px;
}

.rba-card-title a {
  color: var(--rba-ink);
  text-decoration: none;
}

.rba-card-title a:hover { color: var(--rba-gold); }

.rba-card-body {
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--rba-quiet);
  margin: 0;
}

.rba-file-thumb { margin: 0 0 16px; }
.rba-file-thumb img { width: 100%; height: auto; display: block; }

.rba-avatar img {
  border-radius: 50%;
  display: block;
}

.rba-avatar { margin: 0 0 14px; }
.rba-avatar-lg { margin: 0; }

/* Profile ------------------------------------------------------------ */

.rba-profile-head {
  display: flex;
  gap: 28px;
  align-items: center;
  border-bottom: 1px solid var(--rba-line);
  padding-bottom: 26px;
  margin-bottom: 26px;
}

.rba-profile-bio {
  font-size: 16px;
  line-height: 1.65;
  max-width: 62ch;
}

.rba-links { margin: 18px 0; }

/* Forms -------------------------------------------------------------- */

.rba-form { margin: 22px 0; }

.rba-field { margin: 0 0 18px; }

.rba-field label {
  display: block;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--rba-quiet);
  margin: 0 0 7px;
}

.rba-input {
  width: 100%;
  max-width: 560px;
  font-family: var(--rba-sans);
  font-size: 15px;
  color: var(--rba-ink);
  background: #fff;
  border: 1px solid var(--rba-line);
  border-radius: 0;
  padding: 12px 14px;
}

.rba-input:focus {
  outline: none;
  border-color: var(--rba-gold);
}

.rba-check {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14.5px;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 400;
  color: var(--rba-ink);
}

.rba-check input { width: auto; }

.rba-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin: 0 0 8px;
}

.rba-filters .rba-input { max-width: 260px; }

/* Forum -------------------------------------------------------------- */

.rba-newtopic { margin: 0 0 26px; }

.rba-newtopic > summary {
  list-style: none;
  display: inline-block;
}

.rba-newtopic > summary::-webkit-details-marker { display: none; }

.rba-forum-terms { margin: 22px 0; }

.rba-topics {
  list-style: none;
  margin: 24px 0;
  padding: 0;
  border-top: 1px solid var(--rba-line);
}

.rba-topic {
  display: flex;
  gap: 20px;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--rba-line);
  padding: 20px 0;
}

.rba-topic.is-pinned { background: rgba(184, 151, 90, 0.05); }

.rba-topic-title {
  font-family: var(--rba-serif);
  font-size: 20px;
  font-weight: 500;
  margin: 0 0 6px;
}

.rba-topic-title a {
  color: var(--rba-ink);
  text-decoration: none;
}

.rba-topic-title a:hover { color: var(--rba-gold); }

.rba-pin {
  font-family: var(--rba-sans);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--rba-gold);
  margin-right: 10px;
}

.rba-topic-count { text-align: center; min-width: 74px; }

.rba-count {
  display: block;
  font-family: var(--rba-serif);
  font-size: 26px;
  line-height: 1;
}

.rba-count-label {
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--rba-quiet);
}

/* Sessions ----------------------------------------------------------- */

.rba-session-panel {
  border: 1px solid var(--rba-line);
  background: var(--rba-ivory);
  padding: 28px 26px;
  margin: 0 0 30px;
}

.rba-session-facts {
  list-style: none;
  margin: 0 0 20px;
  padding: 0;
  font-size: 15px;
  line-height: 1.75;
}

.rba-session-facts strong {
  display: inline-block;
  min-width: 108px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--rba-quiet);
}

.rba-form-inline .rba-field { max-width: 460px; }

.rba-my-sessions,
.rba-purchases {
  list-style: none;
  margin: 22px 0;
  padding: 0;
}

.rba-my-sessions li,
.rba-purchases li {
  border-bottom: 1px solid var(--rba-line);
  padding: 14px 0;
}

.rba-my-sessions a,
.rba-purchases a {
  color: var(--rba-ink);
  text-decoration: none;
  font-weight: 700;
}

/* Downloads and buying ----------------------------------------------- */

.rba-download { margin: 20px 0; }
.rba-buy { margin: 28px 0; }

/* Pagination ---------------------------------------------------------- */

.rba-pagination {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 26px 0;
}

.rba-pagination a,
.rba-pagination .page-numbers {
  border: 1px solid var(--rba-line);
  padding: 8px 14px;
  font-size: 13.5px;
  color: var(--rba-ink);
  text-decoration: none;
}

.rba-pagination .current,
.rba-pagination a.is-current {
  border-color: var(--rba-gold);
  color: var(--rba-gold);
}

/* Checkout ------------------------------------------------------------ */

.rba-checkout-field { margin-bottom: 14px; }

/* Narrow screens ------------------------------------------------------ */

@media (max-width: 1000px) {
  .rba-grid-members { grid-template-columns: repeat(2, 1fr); }
  .rba-grid-sessions,
  .rba-grid-files { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
  .rba-grid-members,
  .rba-grid-sessions,
  .rba-grid-files { grid-template-columns: 1fr; }

  .rba-profile-head { flex-direction: column; align-items: flex-start; gap: 18px; }
  .rba-topic { flex-direction: column; align-items: flex-start; gap: 10px; }
  .rba-topic-count { text-align: left; }
  .rba-filters .rba-input { max-width: 100%; }
}


/* Course page above the checkout form ---------------------------------- */

.rba-coursepage {
  --rba-ink: #12171A;
  --rba-ivory: #F5F0E8;
  --rba-gold: #B8975A;
  --rba-quiet: #5A5750;
  --rba-line: rgba(18, 23, 26, 0.14);
  --rba-serif: "Cormorant Garamond", Georgia, serif;
  --rba-sans: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-family: var(--rba-sans);
  color: var(--rba-ink);
  margin: 0 0 46px;
}

.rba-cp-kicker {
  font-size: 11.5px; font-weight: 700; letter-spacing: 0.2em;
  text-transform: uppercase; color: var(--rba-gold); margin: 0 0 10px;
}

.rba-cp-title {
  font-family: var(--rba-serif); font-weight: 500;
  font-size: clamp(32px, 4.4vw, 52px); line-height: 1.05; margin: 0 0 14px;
}

.rba-cp-lede {
  font-size: 17px; line-height: 1.6; color: var(--rba-quiet);
  max-width: 66ch; margin: 0 0 30px;
}

.rba-cp-h2 {
  font-family: var(--rba-serif); font-weight: 500;
  font-size: clamp(24px, 3vw, 32px); line-height: 1.15;
  margin: 40px 0 18px; padding-top: 26px; border-top: 1px solid var(--rba-line);
}

.rba-cp-body { font-size: 16px; line-height: 1.65; max-width: 68ch; }
.rba-cp-body p { margin: 0 0 14px; }

.rba-cp-facts {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px;
  background: var(--rba-line); border: 1px solid var(--rba-line); margin: 0 0 12px;
}

.rba-cp-fact { background: var(--rba-ivory); padding: 20px 20px 18px; }

.rba-cp-fact span {
  display: block; font-size: 10.5px; font-weight: 700; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--rba-quiet); margin: 0 0 7px;
}

.rba-cp-fact strong {
  display: block; font-family: var(--rba-serif); font-weight: 500;
  font-size: 21px; line-height: 1.2; color: var(--rba-ink);
}

.rba-cp-outcomes { list-style: none; margin: 0; padding: 0; max-width: 72ch; }

.rba-cp-outcomes li {
  position: relative; padding: 0 0 0 30px; margin: 0 0 13px;
  font-size: 16px; line-height: 1.55;
}

.rba-cp-outcomes li:before {
  content: ""; position: absolute; left: 0; top: 9px;
  width: 14px; height: 1px; background: var(--rba-gold);
}

.rba-cp-syllabus { border-top: 1px solid var(--rba-line); max-width: 78ch; }
.rba-cp-module { border-bottom: 1px solid var(--rba-line); }

.rba-cp-module > summary {
  cursor: pointer; list-style: none; padding: 17px 0 17px 28px;
  position: relative; font-size: 16.5px; font-weight: 500;
}

.rba-cp-module > summary::-webkit-details-marker { display: none; }

.rba-cp-module > summary:before {
  content: "+"; position: absolute; left: 0; top: 15px;
  font-size: 18px; color: var(--rba-gold);
}

.rba-cp-module[open] > summary:before { content: "\2013"; }

.rba-cp-module p, .rba-cp-module ol {
  font-size: 15px; line-height: 1.6; color: var(--rba-quiet);
  margin: 0 0 16px; padding-left: 28px;
}

.rba-cp-modulelist li { margin: 0 0 6px; }

.rba-cp-count {
  float: right; font-family: var(--rba-sans); font-size: 11.5px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--rba-quiet);
}

@media (max-width: 900px) { .rba-cp-facts { grid-template-columns: repeat(2, 1fr); } }

@media (max-width: 560px) {
  .rba-cp-facts { grid-template-columns: 1fr; }
  .rba-cp-count { float: none; display: block; margin-top: 4px; }
}


/* =====================================================================
 * Paid Memberships Pro, brought onto brand.
 * MK-262: ink #12171A, ivory #F5F0E8, gold #B8975A, black #000000.
 * Cormorant Garamond for display at 600, the heaviest weight the site
 * loads, so nothing is synthetically bolded. DM Sans for body. No
 * rounded corners and no drop shadows anywhere in this brand.
 * ================================================================== */

.pmpro,
.pmpro_card,
.pmpro_content_message,
.pmpro_courses {
  --rbx-ink: #12171A;
  --rbx-ivory: #F5F0E8;
  --rbx-gold: #B8975A;
  --rbx-gold-light: #D4AF6E;
  --rbx-quiet: #5A5750;
  --rbx-line: rgba(18, 23, 26, 0.14);
  --rbx-serif: "Cormorant Garamond", Georgia, serif;
  --rbx-sans: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
}

/* Cards and notices */

.pmpro_card,
.pmpro_content_message,
.pmpro_box,
.pmpro_checkout {
  background: #fff !important;
  border: 1px solid var(--rbx-line, rgba(18, 23, 26, 0.14)) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.pmpro_card_title,
.pmpro_checkout h2,
.pmpro_courses h2 {
  font-family: var(--rbx-serif, "Cormorant Garamond", Georgia, serif) !important;
  font-weight: 600 !important;
  color: var(--rbx-ink, #12171A) !important;
  letter-spacing: -0.005em;
}

.pmpro_card_content,
.pmpro_content_message p {
  font-family: var(--rbx-sans, "DM Sans", sans-serif);
  color: var(--rbx-ink, #12171A);
}

/* Action buttons */

a.pmpro_btn,
input.pmpro_btn,
input[type="submit"].pmpro_btn,
.pmpro_btn.pmpro_btn-submit,
.pmpro_form_submit .pmpro_btn {
  background: var(--rbx-gold, #B8975A) !important;
  color: #000 !important;
  border: 1px solid var(--rbx-gold, #B8975A) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-family: var(--rbx-sans, "DM Sans", sans-serif) !important;
  font-size: 17px !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em;
  line-height: 1.2;
  padding: 14px 30px !important;
  text-transform: none;
}

a.pmpro_btn:hover,
a.pmpro_btn:focus,
input.pmpro_btn:hover,
input.pmpro_btn:focus {
  background: var(--rbx-gold-light, #D4AF6E) !important;
  border-color: var(--rbx-gold-light, #D4AF6E) !important;
  color: #000 !important;
}

/* Course outline section bars are buttons, not calls to action */

.pmpro_courses button.pmpro_btn,
.pmpro_courses-course-outline button.pmpro_btn {
  background: var(--rbx-ivory, #F5F0E8) !important;
  color: var(--rbx-ink, #12171A) !important;
  border: 0 !important;
  border-bottom: 1px solid var(--rbx-line, rgba(18, 23, 26, 0.14)) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-family: var(--rbx-serif, "Cormorant Garamond", Georgia, serif) !important;
  font-size: 24px !important;
  font-weight: 600 !important;
  text-align: left !important;
  width: 100%;
  padding: 16px 24px !important;
}

.pmpro_courses button.pmpro_btn:hover,
.pmpro_courses button.pmpro_btn:focus {
  background: #EFE8DC !important;
  color: var(--rbx-ink, #12171A) !important;
}

.pmpro_courses-feather-icon,
.pmpro_courses-feather-icon svg {
  color: var(--rbx-gold, #B8975A) !important;
  stroke: var(--rbx-gold, #B8975A) !important;
}

/* Lesson list */

.pmpro_courses-list { border-top: 1px solid var(--rbx-line, rgba(18, 23, 26, 0.14)); }

.pmpro_courses-list-item {
  border-bottom: 1px solid var(--rbx-line, rgba(18, 23, 26, 0.14));
  border-radius: 0 !important;
}

.pmpro_courses-list-item-title {
  font-family: var(--rbx-sans, "DM Sans", sans-serif) !important;
  font-size: 16.5px !important;
  font-weight: 500 !important;
  color: var(--rbx-ink, #12171A) !important;
}

.pmpro_courses-list-item-link:hover .pmpro_courses-list-item-title { color: var(--rbx-gold, #B8975A) !important; }

.pmpro_courses-lesson-status-complete .pmpro_courses-feather-icon { color: var(--rbx-gold, #B8975A) !important; }

/* Level titles on the levels page and in the account */

.pmpro_level-title,
.pmpro_account h2,
.pmpro_account h3 {
  font-family: var(--rbx-serif, "Cormorant Garamond", Georgia, serif) !important;
  font-weight: 600 !important;
  color: var(--rbx-ink, #12171A) !important;
}

/* Single course and lesson titles, bolder so they carry the page */

.single-pmpro_course .entry-title,
.single-pmpro_lesson .entry-title,
.pmpro_course-template-default h1,
.pmpro_lesson-template-default h1,
.rba-cp-title {
  font-weight: 600 !important;
}

/* Form fields */

.pmpro_form_input,
.pmpro_checkout input[type="text"],
.pmpro_checkout input[type="email"],
.pmpro_checkout input[type="password"],
.pmpro_checkout select {
  border-radius: 0 !important;
  border: 1px solid var(--rbx-line, rgba(18, 23, 26, 0.14)) !important;
  box-shadow: none !important;
  font-family: var(--rbx-sans, "DM Sans", sans-serif);
}

.pmpro_form_input:focus { border-color: var(--rbx-gold, #B8975A) !important; outline: none; }


/* =====================================================================
 * Breathing space above the page title, and a heavier title.
 * The theme sets the first ivory section to 46px, which puts the title
 * close under the black header on these pages.
 * ================================================================== */

.single-pmpro_course .ipsec.ivory,
.single-pmpro_lesson .ipsec.ivory,
.single-rba_topic .ipsec.ivory,
.single-rba_session .ipsec.ivory,
.single-rba_file .ipsec.ivory,
.page-id-9107 .ipsec.ivory,
.page-id-9108 .ipsec.ivory,
.page-id-9109 .ipsec.ivory,
.page-id-9110 .ipsec.ivory,
.page-id-9111 .ipsec.ivory,
.page-id-9112 .ipsec.ivory,
.page-id-9113 .ipsec.ivory {
  padding-top: clamp(72px, 7vw, 120px) !important;
}

.single-pmpro_course .ipsec.ivory ~ .ipsec.ivory,
.single-pmpro_lesson .ipsec.ivory ~ .ipsec.ivory,
.single-rba_topic .ipsec.ivory ~ .ipsec.ivory,
.single-rba_session .ipsec.ivory ~ .ipsec.ivory,
.single-rba_file .ipsec.ivory ~ .ipsec.ivory {
  padding-top: 46px !important;
}

.single-pmpro_course .iphead h1,
.single-pmpro_course .iphead h2,
.single-pmpro_lesson .iphead h1,
.single-pmpro_lesson .iphead h2,
.single-rba_topic .iphead h1,
.single-rba_topic .iphead h2,
.single-rba_session .iphead h1,
.single-rba_session .iphead h2,
.single-rba_file .iphead h1,
.single-rba_file .iphead h2,
.page-id-9107 .iphead h2,
.page-id-9108 .iphead h2,
.page-id-9109 .iphead h2,
.page-id-9110 .iphead h2,
.page-id-9111 .iphead h2,
.page-id-9112 .iphead h2,
.page-id-9113 .iphead h2 {
  font-weight: 600 !important;
  padding-top: 0 !important;
}

/* The course page above the checkout form gets the same room */

.rba-coursepage { padding-top: clamp(24px, 3vw, 44px); }


/* Image slots, visible to the owner only ------------------------------- */

.rba-slot {
  border: 1px dashed #B8975A;
  background: #F5F0E8;
  padding: 34px 30px;
  margin: 0 0 30px;
  text-align: center;
  font-family: "DM Sans", system-ui, sans-serif;
}

.rba-slot-kicker {
  font-size: 10.5px; font-weight: 700; letter-spacing: 0.2em;
  text-transform: uppercase; color: #B8975A; margin: 0 0 10px;
}

.rba-slot-label {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-size: 26px; font-weight: 600; color: #12171A; margin: 0 0 6px;
}

.rba-slot-size {
  font-size: 13px; font-weight: 700; letter-spacing: 0.1em;
  color: #12171A; margin: 0 0 12px;
}

.rba-slot-brief {
  font-size: 14.5px; line-height: 1.6; color: #5A5750;
  max-width: 54ch; margin: 0 auto 12px;
}

.rba-slot-note {
  font-size: 12px; color: #ACA8A3; margin: 0;
}

.rba-slot-filled { margin: 0 0 30px; }
.rba-slot-filled img { display: block; width: 100%; height: auto; }


/* Course page panels, the banded Berklee rhythm in our own palette ----- */

.rba-cp-hero { margin: 0 0 30px; }

.rba-cp-hero-img { margin: 0 0 34px; }
.rba-cp-hero-img img { display: block; width: 100%; height: auto; }

.rba-cp-panel {
  border: 1px solid rgba(18, 23, 26, 0.14);
  background: #fff;
  padding: clamp(26px, 3.4vw, 44px);
  margin: 0 0 22px;
}

.rba-cp-panel--tint { background: #F5F0E8; }

.rba-cp-panel > .rba-cp-h2:first-child,
.rba-cp-panel > .rba-cp-h3:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}

.rba-cp-h3 {
  font-family: "Cormorant Garamond", Georgia, serif;
  font-weight: 600;
  font-size: clamp(21px, 2.2vw, 26px);
  line-height: 1.2;
  margin: 34px 0 16px;
  color: #12171A;
}

.rba-cp-panel .rba-cp-facts {
  border: 0;
  background: transparent;
  gap: 0;
  margin: 0;
}

.rba-cp-panel .rba-cp-fact {
  background: transparent;
  border-right: 1px solid rgba(18, 23, 26, 0.14);
  border-bottom: 1px solid rgba(18, 23, 26, 0.14);
  padding: 18px 22px 16px;
}

.rba-cp-panel .rba-cp-fact:nth-child(3n) { border-right: 0; }
.rba-cp-panel .rba-cp-fact:nth-last-child(-n+3) { border-bottom: 0; }

.rba-cp-panel--tint .rba-cp-fact { border-color: rgba(18, 23, 26, 0.18); }

.rba-cp-panel .rba-cp-syllabus { max-width: none; }

.rba-cp-enroll { margin-top: 44px; }

.rba-cp-panel .rba-slot { margin: 26px 0 0; }

@media (max-width: 900px) {
  .rba-cp-panel .rba-cp-fact:nth-child(3n) { border-right: 1px solid rgba(18, 23, 26, 0.14); }
  .rba-cp-panel .rba-cp-fact:nth-child(2n) { border-right: 0; }
  .rba-cp-panel .rba-cp-fact:nth-last-child(-n+3) { border-bottom: 1px solid rgba(18, 23, 26, 0.14); }
  .rba-cp-panel .rba-cp-fact:nth-last-child(-n+2) { border-bottom: 0; }
}

@media (max-width: 560px) {
  .rba-cp-panel .rba-cp-fact { border-right: 0 !important; border-bottom: 1px solid rgba(18, 23, 26, 0.14) !important; }
  .rba-cp-panel .rba-cp-fact:last-child { border-bottom: 0 !important; }
}


/* By the end of this workshop, you will be able to ---------------------- */

.rba-cp-ableintro {
  font-family: "DM Sans", system-ui, sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: #12171A;
  margin: 26px 0 14px;
}

.rba-cp-able {
  list-style: none;
  margin: 0;
  padding: 0;
  max-width: 72ch;
}

.rba-cp-able li {
  position: relative;
  padding: 0 0 0 30px;
  margin: 0 0 12px;
  font-size: 16px;
  line-height: 1.55;
  color: #12171A;
}

.rba-cp-able li:before {
  content: "";
  position: absolute;
  left: 2px;
  top: 7px;
  width: 9px;
  height: 5px;
  border-left: 2px solid #B8975A;
  border-bottom: 2px solid #B8975A;
  transform: rotate(-45deg);
}


/* RB fix card title spacing. The theme gives every h2 in the content a top margin,
   which pushed the PMPro card heading down inside its own box. */
.pmpro_card_title { margin: 0 !important; padding: 30px 36px 14px !important; }
.pmpro_card { margin: 40px 0 !important; }
.rba-cp-body + .rba-cp-body { margin-top: 1.1em; }


/* RB checkout page head and Enroll spacing */
body.pmpro-checkout .iphead { display: none; }
body.pmpro-checkout .pmpro { margin-top: 0 !important; }
body.pmpro-checkout .pmpro_section { padding-top: 0 !important; }
body.pmpro-checkout .pmpro_form > .pmpro_card:first-child { margin-top: 24px !important; }
.rba-cp-enroll { margin-bottom: 10px !important; }


/* Instructor panel */
.rba-cp-teacher { display: flex; gap: 32px; align-items: flex-start; }
.rba-cp-teacher-photo { width: 220px !important; height: 220px !important; object-fit: cover; object-position: center 20%; flex: 0 0 220px; border: 1px solid var(--rbx-line, rgba(18,23,26,0.14)); }
.rba-cp-teacher-text { flex: 1 1 auto; }
.rba-cp-teacher-text p { margin: 0 0 14px; }
.rba-cp-teacher-name { font-family: var(--rbx-serif, "Cormorant Garamond", Georgia, serif); font-size: 26px; font-weight: 600; line-height: 1.2; margin-bottom: 2px !important; }
.rba-cp-teacher-role { font-size: 13px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--rbx-gold, #B8975A); margin-bottom: 18px !important; }
@media (max-width: 720px) {
  .rba-cp-teacher { display: block; }
  .rba-cp-teacher-photo { width: 160px !important; height: 160px !important; margin-bottom: 20px; }
}


/* RB teacher photo aligns with the first line of the bio.
   Name and role get fixed line boxes so the offset is exact: 32 + 2 + 20 + 18 = 72,
   plus 9 for the gap between the paragraph box and the cap height of the first letter. */
.rba-cp-teacher-name { line-height: 32px !important; margin: 0 0 2px !important; }
.rba-cp-teacher-role { line-height: 20px !important; margin: 0 0 18px !important; }
.rba-cp-teacher--full .rba-cp-teacher-photo { margin-top: 81px !important; }
@media (max-width: 1100px) {
  .rba-cp-teacher--full .rba-cp-teacher-photo { margin-top: 101px !important; }
}
@media (max-width: 720px) {
  .rba-cp-teacher-photo { margin-top: 0 !important; }
}


/* RB module list carries its own numbering in the lesson titles */
ol.rba-cp-modulelist { list-style: none !important; padding-left: 28px !important; margin-left: 0 !important; }
ol.rba-cp-modulelist > li { list-style: none !important; }
ol.rba-cp-modulelist > li::marker { content: none !important; }


/* RB only the lesson number is bold. The title stays regular weight. */
ol.rba-cp-modulelist > li { font-weight: 400 !important; }
.rba-cp-lessonno { font-weight: 700 !important; }
/* A lesson summary is a lesson, not a course heading, so only its number is bold. */
.rba-cp-module > summary:has(.rba-cp-lessonno) { font-weight: 400 !important; }


/* RB one size across the module block: heading, description and lesson lines all match. */
.rba-cp-module > summary { font-size: 19px !important; }
.rba-cp-module p, .rba-cp-module ol, ol.rba-cp-modulelist > li { font-size: 19px !important; }
@media (max-width: 720px) {
  .rba-cp-module > summary,
  .rba-cp-module p,
  .rba-cp-module ol,
  ol.rba-cp-modulelist > li { font-size: 17px !important; }
}


/* RB workshop category filter, centered under the section intro */
.filterbar.wfilter { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 26px 0 34px; }
