.ruby-ritual-matrix { overflow: hidden; padding-block: clamp(65px, 7vw, 110px); background: #4f253b; color: #fff; }
.ruby-ritual-matrix__inner { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.15fr); align-items: center; gap: clamp(34px, 5vw, 78px); }
.ruby-ritual-matrix .ruby-kicker { color: #f8c7dc; }
.ruby-ritual-matrix__copy h2 { max-width: 630px; margin: 12px 0 24px; font-family: var(--font-family, Arial, sans-serif); font-size: clamp(3rem, 5.4vw, 6rem); font-weight: 800; line-height: .98; letter-spacing: -.065em; text-transform: uppercase; text-wrap: balance; }
.ruby-ritual-matrix__copy h2::after { content: ''; display: block; width: min(42%, 220px); height: 7px; margin: 12px 0 0 30%; transform: rotate(-2deg); border-radius: 999px; background: #d992b4; box-shadow: 22px 10px 0 -2px #b95b89; }
.ruby-ritual-matrix__copy p { max-width: 530px; margin: 0; color: #f7e6ed; font-size: clamp(.98rem, 1.2vw, 1.1rem); line-height: 1.7; }
.ruby-ritual-matrix__scroll { min-width: 0; overflow-x: auto; padding-top: 16px; scrollbar-color: #cf89ab transparent; }
.ruby-ritual-matrix__table { width: 100%; min-width: 565px; border-collapse: separate; border-spacing: 0; table-layout: fixed; color: #3e2d37; }
.ruby-ritual-matrix__table th, .ruby-ritual-matrix__table td { padding: 12px 8px; text-align: center; }
.ruby-ritual-matrix__table thead th { height: 48px; color: #fff; font-size: .94rem; font-weight: 700; }
.ruby-ritual-matrix__table thead th:first-child { width: 36%; }
.ruby-ritual-matrix__table thead th:not(:first-child) { width: 21.33%; }
.ruby-ritual-matrix__table thead .ruby-ritual-matrix__brand { border-radius: 22px 22px 0 0; background: #a94477; font-size: 1.25rem; font-weight: 800; letter-spacing: -.04em; }
.ruby-ritual-matrix__table tbody th, .ruby-ritual-matrix__table tbody td { height: 58px; border-bottom: 1px solid #e4dde1; background: #fffcfd; }
.ruby-ritual-matrix__table tbody th { color: #4a3240; font-size: .91rem; font-weight: 700; line-height: 1.22; }
.ruby-ritual-matrix__table tbody td:nth-child(2) { border-bottom-color: rgba(255,255,255,.19); background: #a94477; }
.ruby-ritual-matrix__table tbody tr:last-child th { border-radius: 0 0 0 18px; }
.ruby-ritual-matrix__table tbody tr:last-child td:last-child { border-radius: 0 0 18px 0; }
.ruby-ritual-matrix__table tbody tr:last-child td:nth-child(2) { border-radius: 0 0 22px 22px; }
.ruby-ritual-matrix__mark { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; font-family: Arial, sans-serif; font-size: 1.25rem; font-weight: 700; line-height: 1; }
.ruby-ritual-matrix__mark--brand { background: #762344; color: #fff; }
.ruby-ritual-matrix__mark--yes { background: #ebe8ea; color: #51404a; }
.ruby-ritual-matrix__mark--no { color: #3e2d37; }
.ruby-ritual-matrix__sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.ruby-ritual-matrix__scroll:focus-visible { outline: 3px solid #f8c7dc; outline-offset: 3px; }
@media (max-width: 960px) {
  .ruby-ritual-matrix__inner { grid-template-columns: 1fr; }
  .ruby-ritual-matrix__copy { text-align: center; }
  .ruby-ritual-matrix__copy h2, .ruby-ritual-matrix__copy p { margin-inline: auto; }
  .ruby-ritual-matrix__copy h2::after { margin-inline: auto; }
}
@media (max-width: 580px) {
  .ruby-ritual-matrix__inner { width: calc(100% - 28px); gap: 28px; }
  .ruby-ritual-matrix__copy h2 { font-size: clamp(2.7rem, 13vw, 4rem); }
  .ruby-ritual-matrix__scroll { margin-inline-end: -14px; }
}
