/* ==========================================================================
   Root / Variables
   ========================================================================== */
:root {
  --bg: #130a07;
  --bg-soft: #24110b;
  --panel: #f8f1e5;
  --panel-strong: #fff9ef;
  --ink: #1f1712;
  --muted: #6f5d4d;
  --line: rgba(110, 72, 38, 0.2);
  --accent: #b23f1f;
  --accent-strong: #d57a30;
  --accent-soft: rgba(178, 63, 31, 0.12);
  --cream: #fbf6ee;
  --shadow: 0 30px 80px rgba(0, 0, 0, 0.18);
  --display: "Avenir Next Condensed", "Franklin Gothic Medium", "Arial Narrow", sans-serif;
  --body: Baskerville, "Palatino Linotype", "Book Antiqua", serif;
}

/* ==========================================================================
   Base / Elements
   ========================================================================== */
* {
  box-sizing: border-box;
}

html {
  min-height: 100%;
  background:
    radial-gradient(circle at top left, rgba(213, 122, 48, 0.18), transparent 32rem),
    radial-gradient(circle at top right, rgba(178, 63, 31, 0.28), transparent 24rem),
    linear-gradient(135deg, #170b08, #26120b 55%, #120907);
}

/* ==========================================================================
   Family Differentiation / Variable Defaults
   ========================================================================== */
body {
  --family-accent: var(--accent);
  --family-hero-wash: rgba(213, 122, 48, 0.16);
  --family-hero-orb: rgba(178, 63, 31, 0.08);
  --family-surface-wash: rgba(178, 63, 31, 0.02);
  --family-surface-edge: rgba(178, 63, 31, 0.12);
  --family-title: var(--accent);
  --family-article-title: var(--accent);
  --family-eyebrow: rgba(111, 93, 77, 0.9);
  --family-detail: rgba(111, 93, 77, 0.82);
  margin: 0;
  min-height: 100vh;
  color: var(--ink);
  font-family: var(--body);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.03), transparent 40%),
    repeating-linear-gradient(
      115deg,
      transparent 0,
      transparent 16px,
      rgba(255, 255, 255, 0.015) 16px,
      rgba(255, 255, 255, 0.015) 17px
    );
}

a {
  color: var(--accent);
}

img,
video {
  max-width: 100%;
  height: auto;
}

/* ==========================================================================
   Layout / Shell + Sidebar Navigation
   ========================================================================== */
.site-shell {
  display: grid;
  grid-template-columns: 17rem minmax(0, 1fr);
  min-height: 100vh;
}

.site-nav {
  position: sticky;
  top: 0;
  align-self: start;
  display: flex;
  flex-direction: column;
  height: 100vh;
  min-height: 100vh;
  overflow: hidden;
  padding: 1.5rem 1rem 2rem;
  background:
    radial-gradient(circle at top, rgba(213, 122, 48, 0.12), transparent 15rem),
    linear-gradient(180deg, rgba(0, 0, 0, 0.14), transparent 30%), rgba(14, 8, 6, 0.94);
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  color: #f5efe4;
  box-shadow: inset -1px 0 0 rgba(255, 255, 255, 0.03);
}

.site-nav__mobile-toggle,
.site-nav__backdrop {
  display: none;
}

.site-nav__mobile-toggle {
  align-items: center;
  gap: 0.42rem;
  padding: 0.58rem 0.8rem;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 999px;
  color: #fff7ea;
  font: inherit;
  background: rgba(14, 8, 6, 0.92);
  box-shadow: 0 18px 36px rgba(0, 0, 0, 0.22);
}

.site-nav__mobile-toggle-icon {
  font-size: 1rem;
  line-height: 1;
}

.site-nav__mobile-toggle-label {
  font-family: var(--display);
  font-size: 0.76rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.site-nav__backdrop {
  position: fixed;
  inset: 0;
  z-index: 55;
  border: 0;
  padding: 0;
  background: rgba(12, 7, 5, 0.58);
  backdrop-filter: blur(4px);
}

.brand-mark {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  margin-bottom: 1.5rem;
}

.brand-mark__home {
  display: block;
  line-height: 0;
}

.brand-mark__crest {
  width: 3rem;
  height: 3rem;
  display: block;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background:
    radial-gradient(circle at 35% 35%, rgba(255, 255, 255, 0.22), transparent 45%),
    linear-gradient(135deg, rgba(213, 122, 48, 0.45), rgba(178, 63, 31, 0.1));
  object-fit: contain;
  padding: 0.18rem;
}

.brand-mark__text {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 0.15rem;
}

.brand-mark__text strong,
.language-card__title,
.landing-hero__title,
.page-card__title,
.nav-section-title {
  font-family: var(--display);
  letter-spacing: 0.05em;
}

.brand-mark .brand-mark__text strong {
  white-space: nowrap;
}

.brand-mark__text span {
  color: rgba(245, 239, 228, 0.72);
  font-size: 0.9rem;
}

.language-switch {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: 0.18rem;
  min-width: 3.8rem;
  height: 1.85rem;
  padding: 0.14rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  color: #fff5e7;
  text-decoration: none;
  background: rgba(255, 255, 255, 0.03);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.18);
}

.language-switch__option {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.9rem;
  height: 100%;
  padding: 0 0.45rem;
  border-radius: 999px;
  color: rgba(245, 239, 228, 0.46);
  font-family: var(--display);
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
  transition:
    color 160ms ease,
    background 160ms ease,
    opacity 160ms ease;
}

.language-switch__text {
  display: inline-block;
}

.language-switch__badge {
  display: none;
  width: 1.5rem;
  height: 1.25rem;
  object-fit: cover;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.03);
  transition:
    filter 160ms ease,
    opacity 160ms ease,
    border-color 160ms ease,
    box-shadow 160ms ease;
}

.language-switch--image-badges .language-switch__text {
  display: none;
}

.language-switch--image-badges .language-switch__badge {
  display: block;
}

.language-switch--image-badges .language-switch__option {
  min-width: auto;
  padding: 0.14rem;
}

.language-switch--image-badges .language-switch__option:not(.language-switch__option--active) {
  opacity: 0.34;
}

.language-switch--image-badges .language-switch__option--active .language-switch__badge {
  border-color: rgba(255, 245, 231, 0.38);
  box-shadow:
    0 0 0 1px rgba(213, 122, 48, 0.14),
    0 8px 18px rgba(33, 21, 14, 0.14);
  filter: saturate(1.08) brightness(1.04);
}

.language-switch--image-badges:hover .language-switch__option:not(.language-switch__option--active),
.language-switch--image-badges:focus-visible
  .language-switch__option:not(.language-switch__option--active) {
  opacity: 0.5;
}

.language-switch__option--active {
  color: #fff7ea;
  background: linear-gradient(90deg, rgba(213, 122, 48, 0.26), rgba(178, 63, 31, 0.12));
}

.language-switch:hover .language-switch__option:not(.language-switch__option--active),
.language-switch:focus-visible .language-switch__option:not(.language-switch__option--active) {
  color: rgba(255, 247, 234, 0.72);
}

.language-switch--disabled {
  cursor: not-allowed;
  border-color: rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
  opacity: 0.64;
}

.language-switch--disabled .language-switch__option:not(.language-switch__option--active) {
  color: rgba(245, 239, 228, 0.28);
}

.language-switch--disabled .language-switch__badge,
.language-switch--image-badges.language-switch--disabled
  .language-switch__option--active
  .language-switch__badge {
  filter: grayscale(1) brightness(0.72);
}

.nav-stack {
  display: grid;
  flex: 1 1 auto;
  gap: 1rem;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.nav-scroll-indicator {
  position: absolute;
  right: 0.8rem;
  bottom: 0.75rem;
  z-index: 2;
  display: inline-flex;
  align-items: flex-end;
  justify-content: center;
  min-width: 2.8rem;
  min-height: 3rem;
  padding: 0.85rem 0.4rem 0.25rem;
  color: rgba(255, 245, 231, 0.88);
  font-family: var(--display);
  font-size: 1.05rem;
  line-height: 1;
  border: 0;
  cursor: pointer;
  pointer-events: auto;
  appearance: none;
  background: transparent;
  opacity: 1;
  transform: translateY(0);
  transition:
    color 180ms ease,
    opacity 180ms ease,
    transform 180ms ease;
}

.nav-scroll-indicator--with-gradient {
  background: linear-gradient(180deg, rgba(14, 8, 6, 0), rgba(14, 8, 6, 0.9) 62%);
  border-radius: 999px;
}

.nav-scroll-indicator.is-hidden {
  opacity: 0;
  transform: translateY(0.3rem);
}

.nav-scroll-indicator:hover,
.nav-scroll-indicator:focus-visible {
  color: rgba(255, 247, 234, 1);
}

.nav-stack__end {
  display: grid;
  gap: 0.55rem;
  margin: 0.35rem 0 0;
  padding: 0.9rem 0 0.2rem;
  color: rgba(245, 239, 228, 0.52);
  font-size: 0.74rem;
  letter-spacing: 0.08em;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
}

.nav-stack__end::before {
  content: "";
  width: 100%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(245, 239, 228, 0.22), transparent);
}

.nav-stack__end:hover,
.nav-stack__end:focus-visible {
  color: rgba(255, 247, 234, 0.82);
}

.nav-stack__end-content {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  justify-self: center;
}

.nav-stack__end-flag {
  display: inline-block;
  width: 1.45rem;
  height: 1rem;
  border-radius: 0.32rem;
  border: 1px solid rgba(255, 255, 255, 0.16);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.18);
  background: rgba(255, 255, 255, 0.06) url("../assets/media/banderauruguay.png") center / cover
    no-repeat;
  vertical-align: middle;
}

.nav-branches {
  display: flex;
  justify-content: center;
  gap: 0.55rem;
  margin: 0.2rem 0 0.4rem;
  padding-bottom: 0.2rem;
}

.nav-branch-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.6rem;
  height: 1.12rem;
  border-radius: 0.32rem;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.16);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.18);
  background: rgba(255, 255, 255, 0.06);
  text-decoration: none;
}

.nav-branch-link:hover,
.nav-branch-link:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(255, 245, 231, 0.42);
}

.nav-branch-link__flag {
  display: block;
  width: 100%;
  height: 100%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

.nav-branch-link__flag--okinawa {
  background-image: url("../assets/media/bandera-okinawa2.png");
}

.nav-branch-link__flag--india {
  background-image: url("../assets/media/india-bandera.png");
}

.nav-branch-link__flag--colombia {
  background: linear-gradient(180deg, #f6d243 0 50%, #123a8f 50% 75%, #b1281d 75% 100%);
}

.nav-branch-link__flag--chile {
  background: linear-gradient(180deg, #ffffff 0 50%, #b1281d 50% 100%);
  position: relative;
}

.nav-branch-link__flag--chile::before {
  content: "";
  position: absolute;
  inset: 0 auto auto 0;
  width: 40%;
  height: 50%;
  background: #123a8f;
}

.nav-section {
  animation: rise 0.5s ease both;
  animation-delay: calc(var(--delay, 1) * 0.04s);
}

.nav-section-title {
  margin: 0 0 0.45rem;
  font-size: 0.78rem;
  text-transform: uppercase;
  color: #d8b98f;
}

.nav-section--collapsible .nav-section-title {
  margin-bottom: 0;
}

.nav-section__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 0.18rem 0;
  border: 0;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  text-align: left;
  cursor: pointer;
  background: transparent;
}

.nav-section__toggle-label {
  display: block;
}

.nav-section__toggle-icon {
  display: inline-block;
  color: rgba(216, 185, 143, 0.78);
  font-size: 0.86rem;
  line-height: 1;
  transition: transform 160ms ease;
  margin-right: 8px;
}

.nav-section__toggle:hover .nav-section__toggle-icon,
.nav-section__toggle:focus-visible .nav-section__toggle-icon {
  color: rgba(255, 247, 234, 0.92);
}

.nav-section__toggle:focus-visible {
  outline: 1px solid rgba(213, 122, 48, 0.3);
  outline-offset: 0.18rem;
  border-radius: 0.35rem;
}

.nav-section__body {
  margin-top: 0.45rem;
}

.nav-section--collapsible.is-collapsed .nav-section__toggle-icon {
  transform: rotate(-90deg);
}

.nav-section--collapsible.is-collapsed .nav-section__body {
  display: none;
}

.nav-section--collapsible.is-search-open .nav-section__toggle-icon {
  transform: rotate(0deg);
}

.nav-section--collapsible.is-search-open .nav-section__body,
.nav-section--collapsible.is-search-open.is-collapsed .nav-section__body {
  display: block;
}

.nav-search {
  margin: 0 0 1rem;
}

.nav-search__input {
  width: 100%;
  padding: 0.62rem 0.82rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0.9rem;
  color: #fff7ea;
  font: inherit;
  background: rgba(255, 255, 255, 0.05);
}

.nav-search__input::placeholder {
  color: rgba(245, 239, 228, 0.46);
}

.nav-search__input::-webkit-search-cancel-button {
  cursor: pointer;
}

.nav-search__input:focus-visible {
  outline: 1px solid rgba(213, 122, 48, 0.36);
  outline-offset: 0.12rem;
  border-color: rgba(213, 122, 48, 0.26);
}

.nav-search__empty {
  margin: 0.65rem 0 0;
  color: rgba(245, 239, 228, 0.62);
  font-size: 0.82rem;
  text-align: center;
}

.site-nav.is-nav-search-active .nav-stack {
  align-content: start;
  gap: 0.12rem;
}

.nav-search__empty[hidden],
.nav-section[hidden],
.nav-link[hidden] {
  display: none !important;
}

.nav-search__match {
  padding: 0 0.12rem;
  border-radius: 0.22rem;
  color: #fff9f0;
  background: rgba(213, 122, 48, 0.28);
}

.nav-link {
  display: block;
  padding: 0.52rem 0.75rem;
  margin-bottom: 0.22rem;
  border-radius: 0.85rem;
  color: rgba(245, 239, 228, 0.78);
  text-decoration: none;
  line-height: 1.35;
}

.nav-link:hover,
.nav-link:focus-visible {
  background: rgba(255, 255, 255, 0.07);
  color: #fff7ea;
}

.nav-link.active {
  background: linear-gradient(90deg, rgba(213, 122, 48, 0.26), rgba(178, 63, 31, 0.08));
  color: #fff9f0;
  border: 1px solid rgba(213, 122, 48, 0.26);
}

.nav-link__construction {
  display: inline-flex;
  align-items: center;
  margin-left: 0.38rem;
  padding: 0.08rem 0.38rem;
  border: 1px solid rgba(213, 122, 48, 0.16);
  border-radius: 999px;
  color: rgba(216, 185, 143, 0.82);
  font-family: var(--display);
  font-size: 0.64rem;
  letter-spacing: 0.07em;
  line-height: 1.1;
  text-transform: uppercase;
  background: rgba(213, 122, 48, 0.08);
  vertical-align: middle;
}

/* ==========================================================================
   Shared Components / Article Navigation + Progress
   ========================================================================== */
.article-flow-nav {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: 1rem;
  margin-top: 1.25rem;
}

.article-flow-nav--branches {
  margin-top: 0.9rem;
}

.article-flow-nav__link {
  display: grid;
  gap: 0.35rem;
  padding: 1rem 1.05rem;
  border: 1px solid rgba(110, 72, 38, 0.14);
  border-radius: 1.2rem;
  color: var(--ink);
  text-decoration: none;
  background: rgba(255, 251, 245, 0.82);
  box-shadow: 0 18px 36px rgba(33, 21, 14, 0.08);
  transition:
    transform 160ms ease,
    border-color 160ms ease,
    box-shadow 160ms ease,
    background 160ms ease;
}

.article-flow-nav__link:hover,
.article-flow-nav__link:focus-visible {
  transform: translateY(-1px);
  border-color: rgba(213, 122, 48, 0.28);
  background: rgba(255, 252, 247, 0.94);
  box-shadow: 0 22px 40px rgba(33, 21, 14, 0.1);
}

/* ==========================================================================
   Family Differentiation / Shared Hooks
   These are the main shared selectors that react to the `--family-*` variables.
   ========================================================================== */
.article-flow-nav__kicker {
  color: var(--family-accent);
  font-family: var(--display);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.article-flow-nav__title {
  color: var(--ink);
  font-size: 1.02rem;
  line-height: 1.35;
}

.article-flow-nav__link--next {
  text-align: right;
}

.article-related {
  margin-top: 0.9rem;
  padding: 0.95rem 1rem;
  border: 1px solid rgba(110, 72, 38, 0.12);
  border-radius: 1.1rem;
  background: rgba(255, 251, 245, 0.68);
  box-shadow: 0 14px 28px rgba(33, 21, 14, 0.05);
}

.article-related__title {
  margin: 0 0 0.7rem;
  color: var(--family-accent);
  font-family: var(--display);
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.article-related__list {
  display: grid;
  gap: 0.45rem;
}

.article-related__link {
  display: block;
  padding: 0.55rem 0.7rem;
  border-radius: 0.85rem;
  color: var(--muted);
  text-decoration: none;
  background: rgba(255, 255, 255, 0.45);
  transition:
    background 160ms ease,
    color 160ms ease,
    transform 160ms ease;
}

.article-related__link:hover,
.article-related__link:focus-visible {
  color: var(--ink);
  background: rgba(255, 255, 255, 0.8);
  transform: translateY(-1px);
}

.article-related__link-title {
  line-height: 1.35;
}

.reading-progress[hidden] {
  display: none;
}

.reading-progress {
  position: fixed;
  inset: 0 0 auto;
  z-index: 50;
  height: 3px;
  pointer-events: none;
  background: rgba(18, 9, 7, 0.08);
}

.reading-progress__bar {
  width: 100%;
  height: 100%;
  transform: scaleX(0);
  transform-origin: left center;
  background: linear-gradient(90deg, rgba(213, 122, 48, 0.86), rgba(178, 63, 31, 0.82));
}

/* ==========================================================================
   Hero / Shared Surface Cards
   ========================================================================== */
.site-main {
  padding: clamp(0.85rem, 2vw, 1.6rem);
}

.page-card,
.legacy-content,
.language-card,
.landing-hero {
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
}

.page-card {
  position: relative;
  overflow: hidden;
  margin-bottom: 1.25rem;
  padding: clamp(1.25rem, 3vw, 2.4rem);
  border-radius: 1.5rem;
  border-color: var(--family-surface-edge);
  background:
    radial-gradient(circle at top right, var(--family-hero-wash), transparent 18rem),
    linear-gradient(180deg, rgba(255, 255, 255, 0.8), rgba(255, 249, 239, 0.96));
  box-shadow:
    var(--shadow),
    inset 0 6px 0 var(--family-surface-edge);
  animation: rise 0.55s ease both;
}

.page-card::before {
  content: "";
  position: absolute;
  inset: 0 auto auto 0;
  width: 9rem;
  height: 9rem;
  border-radius: 999px;
  background: radial-gradient(circle, var(--family-hero-orb), transparent 72%);
  transform: translate(-20%, -25%);
}

.page-card__eyebrow,
.landing-hero__eyebrow,
.language-card__kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.8rem;
  color: var(--accent);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.page-card__eyebrow {
  flex-wrap: wrap;
  gap: 0.32rem;
  letter-spacing: 0.08em;
  color: var(--family-eyebrow);
}

.page-card__eyebrow-segment {
  display: inline-flex;
  align-items: center;
  min-height: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: inherit;
  background: none;
  box-shadow: none;
}

.page-card__eyebrow-segment--lang {
  color: inherit;
}

.page-card__eyebrow-segment--section {
  color: var(--family-accent);
  font-weight: 800;
}

.page-card__eyebrow-segment--detail {
  color: var(--family-detail);
}

.page-card__eyebrow-divider {
  color: rgba(111, 93, 77, 0.52);
  font-size: 0.72rem;
  line-height: 1;
}

.page-card__title,
.landing-hero__title {
  margin: 0;
  color: var(--family-title);
  font-family: "Lucida Handwriting", "Brush Script MT", cursive;
  font-size: clamp(2rem, 4vw, 3.5rem);
  line-height: 0.96;
  text-transform: uppercase;
}

.page-card__body,
.landing-hero__body,
.language-card__body {
  max-width: 65ch;
  color: var(--muted);
  font-family: "Lucida Handwriting", "Brush Script MT", cursive;
  font-size: 1.08rem;
  line-height: 1.65;
}

.page-card--overview .page-card__title {
  font-size: clamp(1.25rem, 2.4vw, 2rem);
  line-height: 1.15;
  text-transform: none;
}

.overview-grid,
.language-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  gap: 1rem;
}

.overview-card,
.language-card {
  display: block;
  padding: 1rem 1.1rem;
  border-radius: 1.1rem;
  text-decoration: none;
}

.overview-card {
  background: var(--cream);
  border: 1px solid rgba(110, 72, 38, 0.12);
  color: var(--ink);
}

.overview-card__title {
  display: block;
  margin-bottom: 0.35rem;
  font-family: var(--display);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.overview-card__text {
  color: var(--muted);
}

/* ==========================================================================
   Shared Content Patterns
   ========================================================================== */
.legacy-content {
  overflow: hidden;
  padding: clamp(1rem, 3vw, 2.5rem);
  border-radius: 1.75rem;
  border-color: var(--family-surface-edge);
  background:
    linear-gradient(90deg, var(--family-surface-edge) 0 0.38rem, transparent 0.38rem),
    linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(255, 250, 240, 0.98)),
    linear-gradient(90deg, var(--family-surface-wash), transparent 30%);
  animation: rise 0.65s ease both;
}

.legacy-content > :first-child {
  margin-top: 0;
}

.legacy-content p,
.legacy-content li,
.legacy-content td {
  font-size: 1.08rem;
  line-height: 1.7;
}

.legacy-content p {
  margin: 0 0 1rem;
}

/* Most legacy tables should scroll horizontally, but these classes are already
   rebuilt into deliberate layouts and must keep native table/grid behavior. */
.legacy-content
  table:not(.qa-dialogue):not(.kaete-kanji-table):not(.godan-intro-title):not(.godan-emblem):not(
    .godan-story
  ):not(.godan-signature):not(.godan-kicks-table):not(.godan-kicks-detail):not(
    .geikisai-page__matrix
  ):not(.naihanchi-page__matrix):not(.ryufa-page__conclusions):not(.kururunfa-page__matrix):not(
    .kenshin-washi-page__header
  ):not(.shuparinpei-page__split):not(.execution-steps):not(.santen-page__compare):not(
    .santen-page__concepts
  ):not(.bunkai-page__intro-table):not(.bunkai-page__meta-table):not(.reading-grid-table--native) {
  max-width: 100%;
  display: block;
  overflow-x: auto;
  margin: 1rem 0;
}

.legacy-content td,
.legacy-content th {
  padding: 0.25rem 0.5rem;
  vertical-align: top;
}

.legacy-content img,
.legacy-content video {
  border-radius: 1rem;
  box-shadow: 0 18px 36px rgba(33, 21, 14, 0.14);
}

/* ==========================================================================
   Shared Components / Reading Cards
   ========================================================================== */
.reading-card {
  margin: 0 0 1.5rem;
  padding: 1.25rem;
  border: 1px solid color-mix(in srgb, var(--family-surface-edge) 28%, rgba(110, 72, 38, 0.14));
  border-radius: 1.25rem;
  background: rgba(255, 251, 245, 0.85);
}

.reading-card--intro p:last-child {
  margin-bottom: 0;
}

/* Family-sensitive section headings stay grouped here with the reading-card
   surface hooks so palette tuning remains easy to scan. */
.reading-section-title {
  margin: 2rem 0 0.9rem;
  color: var(--family-accent);
  font-family: var(--display);
  font-size: clamp(1.1rem, 2vw, 1.45rem);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.philosophy-story__signature p,
.biography-page__signature p,
.profile-page__signature p,
.kikyo-signature p,
.daruma-signature p,
.bubishi-article__signature p,
.bubishi-overview__signature p {
  text-align: center;
}

/* ==========================================================================
   Shared Components / Accent Titles
   ========================================================================== */
/* Shared accent title styling reused across several article families. */
.legacy-page-shotokan-history .shotokan-history__title,
.legacy-page-chinte .chinte-page__title,
.kaete-page__title,
.genealogy-title,
.goju-truth-title,
.philosophy-story__title,
.biography-page__title,
.profile-page__title,
.moral-code__title,
.school-page__title,
.bubishi-article__title,
.legacy-page-bubishi-links > .bubishi-links__title,
.bubishi-overview__title {
  color: var(--family-article-title);
  font-family: var(--display);
  font-size: clamp(1.2rem, 2.2vw, 1.65rem);
  letter-spacing: 0.08em;
  text-align: center;
}

/* Accent titles that intentionally force descendants to inherit the same look. */
.legacy-page-shotokan-history .shotokan-history__title,
.legacy-page-shotokan-history .shotokan-history__title *,
.legacy-page-chinte .chinte-page__title,
.legacy-page-chinte .chinte-page__title *,
.profile-page__title,
.profile-page__title *,
.moral-code__title,
.moral-code__title *,
.school-page__title,
.school-page__title *,
.legacy-page-bubishi-links > .bubishi-links__title,
.legacy-page-bubishi-links > .bubishi-links__title *,
.bubishi-overview__title,
.bubishi-overview__title * {
  color: var(--family-article-title);
  text-decoration: none;
}

/* ==========================================================================
   Shared Components / Placeholder Pages
   ========================================================================== */
.legacy-page-placeholder {
  display: grid;
  gap: 1rem;
}

.legacy-page-placeholder .placeholder-page__panel {
  margin: 0 auto;
  max-width: 46rem;
  padding: 1.6rem 1.4rem;
  text-align: center;
  background:
    radial-gradient(circle at top, rgba(213, 122, 48, 0.12), transparent 12rem),
    linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(255, 249, 239, 0.9));
  box-shadow: 0 20px 42px rgba(33, 21, 14, 0.08);
}

.legacy-page-placeholder .placeholder-page__eyebrow {
  margin: 0 0 0.75rem;
  color: var(--family-accent);
  font-family: var(--display);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.legacy-page-placeholder .placeholder-page__message {
  display: grid;
  justify-items: center;
  gap: 0.45rem;
  margin-bottom: 0.75rem;
}

.legacy-page-placeholder .placeholder-page__icon {
  display: inline-block;
  margin-bottom: 0;
  font-size: 2.8rem;
  line-height: 1;
}

.legacy-page-placeholder .placeholder-page__headline {
  color: var(--ink);
  font-family: var(--display);
  font-size: 1.08rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.legacy-page-placeholder .placeholder-page__note {
  margin: 0 0 0.8rem;
  color: var(--muted);
}

.legacy-page-placeholder .placeholder-page__hint {
  max-width: 34rem;
  margin: 0 auto;
  color: rgba(111, 93, 77, 0.92);
  font-size: 0.98rem;
}

.legacy-page-placeholder .placeholder-page__panel p:last-child {
  margin-bottom: 0;
}

/* ==========================================================================
   Shared Components / Media Helpers + Magnifier
   ========================================================================== */
.legacy-content a {
  text-underline-offset: 0.18em;
}

.magnify-media,
a[data-magnify-link] {
  cursor: zoom-in;
}

.legacy-page-profile .magnify-media,
.legacy-page-okinawa .magnify-media {
  transition:
    transform 180ms ease,
    box-shadow 180ms ease;
}

.legacy-page-profile .magnify-media:hover,
.legacy-page-profile .magnify-media:focus-visible,
.legacy-page-profile a[data-magnify-link]:focus-visible .magnify-media,
.legacy-page-okinawa .magnify-media:hover,
.legacy-page-okinawa .magnify-media:focus-visible,
.legacy-page-okinawa a[data-magnify-link]:focus-visible .magnify-media {
  transform: translateY(-2px);
  box-shadow: 0 24px 48px rgba(33, 21, 14, 0.2);
}

body.magnifier-open {
  overflow: hidden;
}

.image-magnifier[hidden] {
  display: none;
}

.image-magnifier {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  padding: clamp(0.75rem, 3vw, 1.5rem);
}

.image-magnifier__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(12, 7, 5, 0.84);
  backdrop-filter: blur(8px);
}

.image-magnifier__dialog {
  position: relative;
  z-index: 1;
  width: min(96vw, 84rem);
  max-height: calc(100vh - 1.5rem);
  display: grid;
  gap: 0.85rem;
  padding: 0.95rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 1.25rem;
  background:
    radial-gradient(circle at top, rgba(213, 122, 48, 0.12), transparent 16rem),
    linear-gradient(180deg, rgba(35, 21, 13, 0.96), rgba(18, 10, 7, 0.98));
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.38);
}

.image-magnifier__chrome {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.image-magnifier__caption {
  margin: 0;
  color: rgba(255, 245, 231, 0.9);
  font-family: var(--display);
  font-size: 0.92rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.image-magnifier__close {
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 999px;
  padding: 0.55rem 0.9rem;
  color: #fff6ea;
  font: inherit;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.08);
}

.image-magnifier__viewport {
  overflow: auto;
  max-height: calc(100vh - 7rem);
  padding: 0.35rem;
  border-radius: 0.95rem;
  background: rgba(255, 248, 239, 0.04);
  touch-action: pan-x pan-y pinch-zoom;
}

.image-magnifier__image {
  display: block;
  width: auto;
  max-width: none;
  height: auto;
  margin: 0 auto;
  border-radius: 0.8rem;
  box-shadow: 0 26px 54px rgba(0, 0, 0, 0.28);
}

.inline-symbol {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.4rem;
  color: var(--accent);
  font-weight: 700;
}

.missing-media {
  margin: 1.25rem auto;
  padding: 1rem 1.1rem;
  border-radius: 1rem;
  border: 1px dashed rgba(178, 63, 31, 0.32);
  background: rgba(178, 63, 31, 0.05);
  text-align: center;
  color: var(--muted);
}

.missing-media div {
  font-family: var(--display);
  text-transform: uppercase;
}

/* ==========================================================================
   Article Families / Bunkai
   ========================================================================== */
.legacy-page-bunkai {
  display: grid;
  gap: 1rem;
}

.legacy-page-bunkai .bunkai-page__intro,
.legacy-page-bunkai .bunkai-page__panel,
.legacy-page-bunkai .bunkai-page__note {
  margin: 0;
}

.legacy-page-bunkai .bunkai-page__intro-table {
  display: table;
  width: 100%;
  margin: 0 0 1rem;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  border: 1px solid rgba(110, 72, 38, 0.14);
  border-radius: 1rem;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.8);
}

/* The explicit tbody/tr display rules keep legacy browsers from shrinking the
   intro/meta tables narrower than the styled outer table wrapper. */
.legacy-page-bunkai .bunkai-page__intro-table > tbody {
  display: table-row-group;
  width: 100%;
}

.legacy-page-bunkai .bunkai-page__intro-table > tbody > tr {
  display: table-row;
  width: 100%;
}

.legacy-page-bunkai .bunkai-page__intro-table th,
.legacy-page-bunkai .bunkai-page__intro-table td {
  padding: 0.85rem 0.95rem;
  border-top: 1px solid rgba(110, 72, 38, 0.12);
  vertical-align: middle;
  box-sizing: border-box;
}

.legacy-page-bunkai .bunkai-page__intro-table tr:first-child th,
.legacy-page-bunkai .bunkai-page__intro-table tr:first-child td {
  border-top: 0;
}

.legacy-page-bunkai .bunkai-page__intro-label {
  width: 14%;
  color: var(--accent);
  font-family: var(--display);
  font-size: 0.98rem;
  letter-spacing: 0.04em;
  text-align: left;
  background: rgba(178, 63, 31, 0.08);
  border-right: 1px solid rgba(110, 72, 38, 0.12);
}

.legacy-page-bunkai .bunkai-page__intro-value {
  width: 86%;
  background: rgba(255, 255, 255, 0.92);
}

.legacy-page-bunkai .bunkai-page__section {
  display: grid;
  gap: 0.6rem;
}

.legacy-page-bunkai .bunkai-page__heading {
  margin: 0;
  color: var(--accent);
  font-family: var(--display);
  font-size: clamp(1.05rem, 1.7vw, 1.28rem);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.legacy-page-bunkai .bunkai-page__heading b,
.legacy-page-bunkai .bunkai-page__heading u {
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-decoration: none;
  text-transform: inherit;
}

.legacy-page-bunkai .bunkai-page__meta,
.legacy-page-bunkai .bunkai-page__subheading {
  margin-bottom: 0.9rem;
  padding: 0.75rem 0.95rem;
  border-radius: 0.9rem;
  background: rgba(255, 255, 255, 0.78);
  border-left: 3px solid rgba(178, 63, 31, 0.45);
}

.legacy-page-bunkai .bunkai-page__note--callout {
  background: linear-gradient(135deg, rgba(247, 239, 223, 0.96), rgba(255, 248, 235, 0.92));
  border-color: rgba(156, 110, 43, 0.26);
  box-shadow: 0 12px 28px rgba(73, 51, 19, 0.08);
}

.legacy-page-bunkai .bunkai-page__note--callout p {
  margin-bottom: 0;
  color: #5e4120;
  font-style: italic;
}

.legacy-page-bunkai .bunkai-page__intro p:last-child,
.legacy-page-bunkai .bunkai-page__panel p:last-child,
.legacy-page-bunkai .bunkai-page__note p:last-child {
  margin-bottom: 0;
}

.legacy-page-bunkai .geikisai-page__signature {
  text-align: center;
}

/* ==========================================================================
   Article Families / Shotokan
   ========================================================================== */
.legacy-page-shotokan-history {
  display: grid;
  gap: 1rem;
}

.legacy-page-shotokan-history .shotokan-history__title {
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1rem;
  text-transform: uppercase;
}

.legacy-page-shotokan-history .shotokan-history__byline {
  display: table;
  width: auto;
  max-width: 28rem;
  margin: 0 auto;
  text-align: center;
}

.legacy-page-shotokan-history .shotokan-history__panel {
  margin: 0;
}

.legacy-page-shotokan-history .shotokan-history__panel p:last-child {
  margin-bottom: 0;
}

/* -- Chinte pages -------------------------------------------------------- */
.legacy-page-chinte {
  display: grid;
  gap: 1rem;
}

.legacy-page-chinte .chinte-page__title {
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1rem;
  text-transform: uppercase;
}

.legacy-page-chinte .chinte-page__panel {
  margin: 0;
}

.legacy-page-chinte .chinte-page__byline {
  margin-bottom: 1.25rem;
}

.legacy-page-chinte .chinte-page__figure {
  margin: 1.35rem auto;
}

.legacy-page-chinte .chinte-page__figure img {
  width: min(100%, 18rem);
  margin: 0 auto;
  display: block;
}

.legacy-page-chinte .chinte-page__panel p:last-child {
  margin-bottom: 0;
}

/* ==========================================================================
   Article Families / Religion + Beliefs
   ========================================================================== */
.legacy-page-kaete {
  display: grid;
  gap: 1rem;
}

.legacy-page-kaete table.kaete-kanji-table {
  display: table;
  width: min(100%, 52rem);
  margin: 0 auto 0.9rem;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid rgba(110, 72, 38, 0.18);
  border-radius: 1rem;
  overflow: hidden;
  background: rgba(255, 251, 245, 0.94);
  box-shadow: 0 14px 30px rgba(33, 21, 14, 0.08);
}

.legacy-page-kaete table.kaete-kanji-table > tbody {
  display: table-row-group;
  width: 100%;
}

.legacy-page-kaete table.kaete-kanji-table > tbody > tr,
.legacy-page-kaete table.kaete-kanji-table > tr {
  display: table-row;
  width: 100%;
}

.legacy-page-kaete table.kaete-kanji-table > tbody > tr > td,
.legacy-page-kaete table.kaete-kanji-table > tr > td {
  padding: 0;
  box-sizing: border-box;
  vertical-align: stretch;
}

.legacy-page-kaete table.kaete-kanji-table > tbody > tr > td:first-child,
.legacy-page-kaete table.kaete-kanji-table > tr > td:first-child {
  width: 22%;
  border-right: 1px solid rgba(110, 72, 38, 0.16);
  vertical-align: middle;
  background:
    radial-gradient(circle at top, rgba(255, 255, 255, 0.72), transparent 58%),
    linear-gradient(180deg, rgba(178, 63, 31, 0.12), rgba(178, 63, 31, 0.04));
}

.legacy-page-kaete table.kaete-kanji-table > tbody > tr > td:first-child > p,
.legacy-page-kaete table.kaete-kanji-table > tr > td:first-child > p {
  margin: 0;
  min-height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.15rem 0.9rem;
  color: #5f2419;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", "MS Mincho", serif;
  font-size: clamp(2.4rem, 4.8vw, 3.3rem);
  line-height: 1.08;
  letter-spacing: 0.04em;
  text-align: center;
}

.legacy-page-kaete table.kaete-kanji-table > tbody > tr > td:first-child > p *,
.legacy-page-kaete table.kaete-kanji-table > tr > td:first-child > p * {
  color: inherit;
  font: inherit;
}

.legacy-page-kaete table.kaete-kanji-table > tbody > tr > td:first-child br,
.legacy-page-kaete table.kaete-kanji-table > tr > td:first-child br {
  line-height: 1.3;
}

.legacy-page-kaete table.kaete-kanji-table > tbody > tr > td:last-child,
.legacy-page-kaete table.kaete-kanji-table > tr > td:last-child {
  padding: 0.8rem 0.95rem;
  vertical-align: middle;
}

.legacy-page-kaete table.kaete-kanji-table > tbody > tr > td:last-child > p:last-child,
.legacy-page-kaete table.kaete-kanji-table > tr > td:last-child > p:last-child {
  margin-bottom: 0;
}

/* ==========================================================================
   Article Families / Kata History
   ========================================================================== */
/* -- Gei Ki Sai ---------------------------------------------------------- */
.legacy-page-geikisai {
  display: grid;
  gap: 1rem;
}

.geikisai-page__title {
  display: inline-block;
  margin: 0 auto 0.55rem;
  padding: 0.2rem 1rem 0.55rem;
  border-bottom: 3px solid rgba(178, 63, 31, 0.24);
  background: linear-gradient(180deg, rgba(178, 63, 31, 0.08), rgba(178, 63, 31, 0));
  color: var(--accent);
  font-family: var(--display);
  font-size: clamp(1.35rem, 2.5vw, 1.9rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: 0.1em;
  text-align: center;
  text-transform: uppercase;
}

.geikisai-page__title,
.geikisai-page__title * {
  color: var(--accent);
  text-decoration: none;
}

.geikisai-page__subtitle {
  margin: 0;
  color: var(--muted);
  font-family: var(--display);
  font-size: 0.92rem;
  letter-spacing: 0.06em;
  text-align: center;
  text-transform: uppercase;
}

.legacy-page-geikisai .geikisai-page__intro,
.legacy-page-geikisai .geikisai-page__note {
  margin: 0;
}

.legacy-page-geikisai .geikisai-page__intro p:last-child,
.legacy-page-geikisai .geikisai-page__note p:last-child {
  margin-bottom: 0;
}

.legacy-page-geikisai .geikisai-page__matrix {
  display: table;
  width: 100%;
  table-layout: fixed;
  margin: 0;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid rgba(110, 72, 38, 0.16);
  border-radius: 1.15rem;
  overflow: hidden;
  background: rgba(255, 251, 245, 0.94);
  box-shadow: 0 14px 30px rgba(33, 21, 14, 0.08);
}

.legacy-page-geikisai .geikisai-page__matrix td,
.legacy-page-geikisai .geikisai-page__matrix th {
  padding: 1rem;
  vertical-align: top;
  border-right: 1px solid rgba(110, 72, 38, 0.14);
  background: rgba(255, 255, 255, 0.72);
}

.legacy-page-geikisai .geikisai-page__matrix td:last-child,
.legacy-page-geikisai .geikisai-page__matrix th:last-child {
  border-right: 0;
}

.legacy-page-geikisai .geikisai-page__matrix tr + tr td:not(.geikisai-page__analysis) {
  border-top: 1px solid rgba(110, 72, 38, 0.14);
}

.legacy-page-geikisai td.geikisai-page__kanji-cell {
  width: 22%;
  vertical-align: middle;
  background:
    radial-gradient(circle at top, rgba(255, 255, 255, 0.72), transparent 58%),
    linear-gradient(180deg, rgba(178, 63, 31, 0.12), rgba(178, 63, 31, 0.04));
}

.legacy-page-geikisai td.geikisai-page__romaji-cell {
  width: 20%;
  vertical-align: middle;
  background: rgba(255, 255, 255, 0.72);
}

.legacy-page-geikisai .geikisai-page__analysis {
  width: 58%;
}

.legacy-page-geikisai .geikisai-page__kanji-cell,
.legacy-page-geikisai .geikisai-page__romaji-cell {
  text-align: center;
}

.legacy-page-geikisai .geikisai-page__kanji-cell {
  color: #5f2419;
}

.legacy-page-geikisai .geikisai-page__kanji-cell strong,
.legacy-page-geikisai .geikisai-page__kanji-cell b,
.legacy-page-geikisai .geikisai-page__romaji-cell strong,
.legacy-page-geikisai .geikisai-page__romaji-cell b {
  letter-spacing: 0.06em;
}

.legacy-page-geikisai .geikisai-page__kanji-cell strong,
.legacy-page-geikisai .geikisai-page__kanji-cell b {
  color: inherit;
}

.legacy-page-geikisai .geikisai-page__romaji-cell {
  color: var(--ink);
  font-family: var(--display);
}

.legacy-page-geikisai .geikisai-page__romaji-cell strong,
.legacy-page-geikisai .geikisai-page__romaji-cell b {
  color: inherit;
  font-family: inherit;
}

.legacy-page-geikisai .geikisai-page__matrix img {
  display: block;
  margin: 0.45rem auto 0.85rem;
}

.legacy-page-geikisai .geikisai-page__matrix p:last-child {
  margin-bottom: 0;
}

.legacy-page-geikisai .geikisai-page__analysis {
  text-align: left;
}

.geikisai-page__signature {
  margin: 0.5rem 0 0;
}

/* -- Sanchin ------------------------------------------------------------- */
.legacy-page-sanchin {
  display: grid;
  gap: 1rem;
}

.legacy-page-sanchin .sanchin-page__panel {
  margin: 0;
}

.legacy-page-sanchin .sanchin-page__panel p:last-child {
  margin-bottom: 0;
}

/* -- Tensho -------------------------------------------------------------- */
.legacy-page-tensho {
  display: grid;
  gap: 1rem;
}

.legacy-page-tensho .tensho-page__panel {
  margin: 0;
}

.legacy-page-tensho .tensho-page__panel p:last-child {
  margin-bottom: 0;
}

/* -- Ryu Fa -------------------------------------------------------------- */
.legacy-page-ryufa {
  display: grid;
  gap: 1rem;
}

.legacy-page-ryufa .ryufa-page__panel {
  margin: 0;
  padding: 1.35rem 1.45rem;
  border: 1px solid rgba(110, 72, 38, 0.16);
  border-radius: 1.25rem;
  background: rgba(255, 251, 245, 0.92);
  box-shadow: 0 14px 30px rgba(33, 21, 14, 0.08);
}

.legacy-page-ryufa .ryufa-page__panel p:last-child,
.legacy-page-ryufa .ryufa-page__conclusions p:last-child {
  margin-bottom: 0;
}

.legacy-page-ryufa .ryufa-page__panel > p:first-child {
  margin-bottom: 1.15rem;
}

.legacy-page-ryufa .ryufa-page__panel > p.legacy-align-center img {
  display: block;
  margin: 0 auto;
}

.legacy-page-ryufa .ryufa-page__conclusions {
  display: table;
  width: 100%;
  table-layout: fixed;
  margin: 1rem 0 0;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid rgba(110, 72, 38, 0.16);
  border-radius: 1rem;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.66);
}

.legacy-page-ryufa .ryufa-page__conclusions td {
  padding: 0.95rem 1rem;
  vertical-align: top;
  border-top: 1px solid rgba(110, 72, 38, 0.12);
}

.legacy-page-ryufa .ryufa-page__conclusions tr:first-child td {
  border-top: 0;
}

.legacy-page-ryufa .ryufa-page__conclusions td:first-child {
  width: 8%;
  color: var(--accent);
  font-family: var(--display);
  font-size: 1.1rem;
  text-align: center;
  background: rgba(178, 63, 31, 0.08);
  border-right: 1px solid rgba(110, 72, 38, 0.12);
}

.legacy-page-ryufa .ryufa-page__conclusions td:last-child {
  width: 92%;
  background: rgba(255, 255, 255, 0.78);
}

/* -- Kururun Fa ---------------------------------------------------------- */
.legacy-page-kururunfa {
  display: grid;
  gap: 1rem;
}

.legacy-page-kururunfa .kururunfa-page__panel {
  margin: 0;
}

.legacy-page-kururunfa .kururunfa-page__panel p:last-child {
  margin-bottom: 0;
}

.legacy-page-kururunfa .kururunfa-page__matrix {
  display: table;
  width: 100%;
  table-layout: fixed;
  margin: 1rem 0 0;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid rgba(110, 72, 38, 0.16);
  border-radius: 1rem;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.68);
}

.legacy-page-kururunfa .kururunfa-page__matrix td {
  padding: 1rem;
  vertical-align: top;
  border-right: 1px solid rgba(110, 72, 38, 0.12);
}

.legacy-page-kururunfa .kururunfa-page__matrix td:last-child {
  border-right: 0;
}

.legacy-page-kururunfa .kururunfa-page__kanji-cell {
  width: 22%;
  text-align: center;
  background:
    radial-gradient(circle at top, rgba(255, 255, 255, 0.72), transparent 58%),
    linear-gradient(180deg, rgba(178, 63, 31, 0.12), rgba(178, 63, 31, 0.04));
}

.legacy-page-kururunfa .kururunfa-page__romaji-cell {
  width: 18%;
  text-align: center;
  color: var(--ink);
  font-family: var(--display);
  background: rgba(255, 255, 255, 0.78);
}

.legacy-page-kururunfa .kururunfa-page__analysis {
  width: 60%;
  background: rgba(255, 255, 255, 0.78);
}

.legacy-page-kururunfa .kururunfa-page__kanji-cell img {
  display: block;
  margin: 0.45rem auto 0;
}

/* -- Kenshin / Ken Washi In Ryu katas ----------------------------------- */
.legacy-page-kenshin-washi {
  display: grid;
  gap: 1rem;
}

.legacy-page-kenshin-washi .kenshin-washi-page__header {
  display: table;
  width: 100%;
  table-layout: fixed;
  margin: 0;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid rgba(110, 72, 38, 0.16);
  border-radius: 1rem;
  overflow: hidden;
  background: rgba(255, 251, 245, 0.94);
}

.legacy-page-kenshin-washi .kenshin-washi-page__header td {
  padding: 1rem;
  vertical-align: middle;
  text-align: center;
  border-right: 1px solid rgba(110, 72, 38, 0.12);
}

.legacy-page-kenshin-washi .kenshin-washi-page__header tr:first-child td {
  background: rgba(110, 72, 38, 0.05);
}

.legacy-page-kenshin-washi
  .kenshin-washi-page__header
  tr:first-child
  td:nth-child(1)
  .legacy-align-center,
.legacy-page-kenshin-washi
  .kenshin-washi-page__header
  tr:first-child
  td:nth-child(3)
  .legacy-align-center {
  display: inline-block;
  margin: 0 auto;
  padding: 0.15rem 0.8rem 0.5rem;
  border-bottom: 3px solid rgba(178, 63, 31, 0.24);
  background: linear-gradient(180deg, rgba(178, 63, 31, 0.08), rgba(178, 63, 31, 0));
  color: var(--accent);
  font-family: var(--display);
  font-size: clamp(1.1rem, 2vw, 1.4rem);
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.15;
  text-align: center;
  text-transform: uppercase;
}

.legacy-page-kenshin-washi
  .kenshin-washi-page__header
  tr:first-child
  td:nth-child(1)
  .legacy-align-center
  *,
.legacy-page-kenshin-washi
  .kenshin-washi-page__header
  tr:first-child
  td:nth-child(3)
  .legacy-align-center
  * {
  color: inherit;
  text-decoration: none;
  font-style: normal;
}

.legacy-page-kenshin-washi .kenshin-washi-page__header td:last-child {
  border-right: 0;
}

.legacy-page-kenshin-washi .kenshin-washi-page__header td:nth-child(1),
.legacy-page-kenshin-washi .kenshin-washi-page__header td:nth-child(3) {
  width: 26%;
}

.legacy-page-kenshin-washi .kenshin-washi-page__header td:nth-child(2) {
  width: 48%;
}

.legacy-page-kenshin-washi .kenshin-washi-page__header img {
  display: block;
  margin: 0 auto;
}

.legacy-page-kenshin-washi .kenshin-washi-page__panel {
  margin: 0;
}

.legacy-page-kenshin-washi .kenshin-washi-page__panel p:last-child {
  margin-bottom: 0;
}

/* ==========================================================================
   Article Families / Kata Execution
   ========================================================================== */
/* -- Sanchin / Tensho concepts ------------------------------------------- */
.legacy-page-santen {
  display: grid;
  gap: 1rem;
}

.legacy-page-santen .santen-page__intro,
.legacy-page-santen .santen-page__panel,
.legacy-page-santen .santen-page__note {
  margin: 0;
}

.legacy-page-santen .santen-page__intro p:last-child,
.legacy-page-santen .santen-page__panel p:last-child,
.legacy-page-santen .santen-page__note p:last-child {
  margin-bottom: 0;
}

.legacy-page-santen .santen-page__compare {
  display: table;
  width: 100%;
  table-layout: fixed;
  margin: 0;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid rgba(110, 72, 38, 0.16);
  border-radius: 1rem;
  overflow: hidden;
  background: rgba(255, 251, 245, 0.94);
}

.legacy-page-santen .santen-page__compare td {
  padding: 1rem;
  vertical-align: middle;
  border-right: 1px solid rgba(110, 72, 38, 0.12);
}

.legacy-page-santen .santen-page__compare td:last-child {
  border-right: 0;
}

.legacy-page-santen .santen-page__compare td:first-child,
.legacy-page-santen .santen-page__compare td:last-child {
  width: 22%;
  text-align: center;
}

.legacy-page-santen .santen-page__compare td:nth-child(2) {
  width: 56%;
  background: rgba(255, 255, 255, 0.72);
}

.legacy-page-santen .santen-page__compare img {
  display: block;
  margin: 0 auto;
}

.legacy-page-santen .santen-page__concepts {
  display: table;
  width: 100%;
  margin: 0;
  border-collapse: separate;
  border-spacing: 0;
}

.legacy-page-santen .santen-page__concepts td {
  padding: 0;
  border: 0;
  background: transparent;
  vertical-align: top;
}

/* The first column is a legacy spacer column. Keeping it at zero width avoids
   rewriting the original markup while preserving the intended visual merge. */
.legacy-page-santen .santen-page__concepts td:first-child {
  width: 0;
}

.legacy-page-santen .santen-page__concepts td:last-child {
  width: 100%;
}

/* -- Shuparinpei + execution step layouts -------------------------------- */
.legacy-page-shuparinpei,
.legacy-page-execution-steps {
  display: grid;
  gap: 1rem;
}

.legacy-page-shuparinpei .shuparinpei-page__panel {
  margin: 0;
}

.legacy-page-execution-steps .execution-steps-page__panel {
  margin: 0;
}

.legacy-page-shuparinpei .shuparinpei-page__panel ol:last-child,
.legacy-page-shuparinpei .shuparinpei-page__panel p:last-child {
  margin-bottom: 0;
}

.legacy-page-execution-steps .execution-steps-page__panel p:last-child,
.legacy-page-execution-steps .execution-steps-page__panel table:last-of-type {
  margin-bottom: 0;
}

.legacy-page-shuparinpei .shuparinpei-page__split {
  display: table;
  width: 100%;
  table-layout: fixed;
  margin: 1rem 0 0;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid rgba(110, 72, 38, 0.16);
  border-radius: 1rem;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.7);
}

.legacy-page-shuparinpei .shuparinpei-page__split td {
  padding: 1rem;
  vertical-align: top;
}

.legacy-page-shuparinpei .shuparinpei-page__split td:first-child {
  width: 8%;
  border-right: 1px solid rgba(110, 72, 38, 0.12);
  text-align: center;
  vertical-align: middle;
}

.legacy-page-shuparinpei .shuparinpei-page__split td:nth-child(2) {
  width: 8%;
}

.legacy-page-shuparinpei .shuparinpei-page__split td:last-child {
  width: 84%;
}

.legacy-page-shuparinpei .shuparinpei-page__split img {
  display: block;
  margin: 0 auto;
}

.legacy-page-shuparinpei .execution-steps,
.legacy-page-execution-steps .execution-steps {
  display: table;
  width: 100%;
  table-layout: fixed;
  margin: 0;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid rgba(110, 72, 38, 0.14);
  border-radius: 1rem;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.62);
}

.legacy-page-shuparinpei .execution-steps + .execution-steps,
.legacy-page-execution-steps .execution-steps + .execution-steps {
  margin-top: 1rem;
}

.legacy-page-shuparinpei .execution-steps td,
.legacy-page-execution-steps .execution-steps td {
  padding: 0.85rem 0.95rem;
  vertical-align: top;
  border-top: 1px solid rgba(110, 72, 38, 0.12);
}

.legacy-page-shuparinpei .execution-steps tr:first-child td,
.legacy-page-execution-steps .execution-steps tr:first-child td {
  border-top: 0;
}

.legacy-page-shuparinpei .execution-steps__index,
.legacy-page-execution-steps .execution-steps__index {
  width: 8%;
  color: var(--accent);
  font-family: var(--display);
  font-size: 1rem;
  font-weight: 700;
  text-align: center;
  background: rgba(178, 63, 31, 0.08);
  border-right: 1px solid rgba(110, 72, 38, 0.12);
}

.legacy-page-shuparinpei .execution-steps__body,
.legacy-page-execution-steps .execution-steps__body {
  width: 92%;
  background: rgba(255, 255, 255, 0.8);
}

.legacy-page-shuparinpei .execution-steps__body p:last-child,
.legacy-page-execution-steps .execution-steps__body p:last-child {
  margin-bottom: 0;
}

.legacy-page-execution-steps .execution-steps + p {
  margin-top: 1rem;
}

/* -- Naihanchi ----------------------------------------------------------- */
.legacy-page-naihanchi {
  display: grid;
  gap: 1rem;
}

.legacy-page-naihanchi .geikisai-page__intro {
  margin: 0;
}

.legacy-page-naihanchi .geikisai-page__intro p:last-child {
  margin-bottom: 0;
}

.legacy-page-naihanchi .naihanchi-page__matrix {
  display: table;
  width: 100%;
  table-layout: fixed;
  margin: 0;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid rgba(110, 72, 38, 0.16);
  border-radius: 1.15rem;
  overflow: hidden;
  background: rgba(255, 251, 245, 0.94);
  box-shadow: 0 14px 30px rgba(33, 21, 14, 0.08);
}

.legacy-page-naihanchi .naihanchi-page__matrix td,
.legacy-page-naihanchi .naihanchi-page__matrix th {
  padding: 1rem;
  vertical-align: middle;
  border-right: 1px solid rgba(110, 72, 38, 0.14);
  background: rgba(255, 255, 255, 0.72);
  text-align: center;
}

.legacy-page-naihanchi .naihanchi-page__matrix tr:first-child td,
.legacy-page-naihanchi .naihanchi-page__matrix tr:first-child th {
  color: var(--accent);
  font-family: var(--display);
  letter-spacing: 0.07em;
  text-transform: uppercase;
  background: rgba(110, 72, 38, 0.05);
}

.legacy-page-naihanchi .naihanchi-page__matrix td:last-child,
.legacy-page-naihanchi .naihanchi-page__matrix th:last-child {
  border-right: 0;
}

.legacy-page-naihanchi .naihanchi-page__matrix td:nth-child(1),
.legacy-page-naihanchi .naihanchi-page__matrix td:nth-child(3) {
  width: 22%;
  background:
    radial-gradient(circle at top, rgba(255, 255, 255, 0.72), transparent 58%),
    linear-gradient(180deg, rgba(178, 63, 31, 0.12), rgba(178, 63, 31, 0.04));
}

.legacy-page-naihanchi .naihanchi-page__matrix td:nth-child(2),
.legacy-page-naihanchi .naihanchi-page__matrix td:nth-child(4) {
  width: 28%;
  color: var(--ink);
  font-family: var(--display);
}

.legacy-page-naihanchi .naihanchi-page__matrix img {
  display: block;
  margin: 0 auto;
}

.kaete-page__title {
  margin: 0 auto 1rem;
  text-transform: uppercase;
}

.kaete-page__box-title {
  margin: 1.4rem 0 0.8rem;
  color: var(--accent);
  font-family: var(--display);
  font-size: clamp(1rem, 1.7vw, 1.2rem);
  letter-spacing: 0.06em;
  text-align: left;
  text-transform: uppercase;
}

.reading-card > .kaete-page__box-title:first-child {
  margin-top: 0;
}

.genealogy-title {
  margin: 0 0 1rem;
  text-transform: uppercase;
}

.reading-lead {
  padding: 1rem 1.1rem;
  border-left: 4px solid rgba(178, 63, 31, 0.28);
  background: rgba(178, 63, 31, 0.06);
}

.reading-break {
  border: 0;
  border-top: 1px solid rgba(110, 72, 38, 0.18);
  margin: 1.5rem 0 1rem;
}

.qa-label {
  display: inline-block;
  margin-right: 0.35rem;
  padding: 0.16rem 0.44rem;
  border-radius: 999px;
  font-family: var(--display);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.qa-label--question {
  color: #8a2d1b;
  background: rgba(178, 63, 31, 0.1);
}

.qa-label--answer {
  color: #225d43;
  background: rgba(34, 93, 67, 0.12);
}

.qa-dialogue-stack {
  display: grid;
  gap: 1rem;
  margin-top: 1.5rem;
}

.qa-dialogue-wrap {
  width: 100%;
}

.qa-dialogue {
  display: table;
  width: 100%;
  max-width: none;
  margin: 0;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid rgba(110, 72, 38, 0.22);
  border-radius: 1rem;
  overflow: visible;
  background: rgba(255, 251, 245, 0.94);
  box-shadow: 0 14px 30px rgba(33, 21, 14, 0.08);
}

.qa-dialogue > tbody {
  width: 100%;
}

.qa-dialogue__row > * {
  vertical-align: top;
  padding: 0.9rem 1rem;
  border-right: 1px solid rgba(110, 72, 38, 0.16);
  border-bottom: 1px solid rgba(110, 72, 38, 0.16);
  background: rgba(255, 255, 255, 0.62);
}

.qa-dialogue__row:last-child > * {
  border-bottom: 0;
}

.qa-dialogue__row > *:last-child {
  border-right: 0;
}

.qa-dialogue__label {
  width: 20%;
  text-align: left;
  white-space: nowrap;
  font-weight: 400;
}

.qa-dialogue__row--question .qa-dialogue__label {
  background: rgba(178, 63, 31, 0.08);
}

.qa-dialogue__row--answer .qa-dialogue__label {
  background: rgba(34, 93, 67, 0.08);
}

.qa-dialogue__content {
  width: 80%;
  color: var(--ink);
  font-family: var(--body);
  font-size: 1rem;
  line-height: 1.75;
  font-weight: 400;
  font-style: normal;
}

.qa-dialogue__content strong,
.qa-dialogue__content em,
.qa-dialogue__content u {
  color: inherit;
  font: inherit;
  text-decoration: none;
}

.qa-dialogue-stack + .legacy-align-center {
  margin-top: 1.25rem;
}

@media (max-width: 720px) {
  .qa-dialogue__row > * {
    padding-inline: 0.85rem;
  }

  .qa-dialogue__label {
    width: 24%;
  }

  .qa-dialogue__content {
    width: 76%;
    font-size: 0.96rem;
  }
}

.reading-list {
  margin: 0 0 1.25rem 1.25rem;
  padding: 0;
}

.reading-list li {
  margin-bottom: 0.45rem;
}

.reading-grid-table {
  border: 1px solid rgba(110, 72, 38, 0.12);
  border-radius: 0.85rem;
  background: rgba(255, 255, 255, 0.55);
}

.legacy-content table.reading-grid-table--native {
  display: table;
  width: min(100%, 56rem);
  margin: 1rem auto;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
}

.legacy-content table.reading-grid-table--native > thead {
  display: table-header-group;
}

.legacy-content table.reading-grid-table--native > tbody {
  display: table-row-group;
  width: 100%;
}

.legacy-content table.reading-grid-table--native > thead > tr,
.legacy-content table.reading-grid-table--native > tbody > tr {
  display: table-row;
}

.legacy-content table.reading-grid-table--native > thead > tr > th,
.legacy-content table.reading-grid-table--native > tbody > tr > td {
  display: table-cell;
  width: auto !important;
  padding: 0.75rem 0.85rem;
  box-sizing: border-box;
  vertical-align: top;
}

.legacy-content table.reading-grid-table--native > thead > tr > th {
  background: rgba(178, 63, 31, 0.08);
}

.reading-lineage {
  display: grid;
  gap: 1rem;
}

.lineage-list {
  display: grid;
  gap: 0.9rem;
}

.lineage-item {
  padding: 1rem 1.1rem;
  border: 1px solid rgba(110, 72, 38, 0.12);
  border-radius: 1rem;
  background: rgba(255, 251, 245, 0.88);
}

.lineage-item__title {
  margin: 0 0 0.4rem;
  color: var(--ink);
  font-family: var(--display);
  font-size: 1rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.lineage-item__body p,
.lineage-item__body {
  margin: 0;
}

.reading-note {
  margin-top: 0.5rem;
  padding-top: 0.8rem;
  border-top: 1px solid rgba(110, 72, 38, 0.14);
}

.reading-subtitle {
  margin: 1.5rem 0 0.75rem;
  color: var(--accent);
  font-family: var(--display);
  font-size: 1rem;
  letter-spacing: 0.06em;
  text-align: center;
  text-transform: uppercase;
}

.article-meta {
  margin: 0 0 1.25rem;
  padding: 0.85rem 1rem;
  border-left: 4px solid rgba(110, 72, 38, 0.18);
  background: rgba(110, 72, 38, 0.05);
}

.article-meta p {
  margin: 0.15rem 0;
  text-align: right;
}

/* ==========================================================================
   Article Families / Goju Truth + Philosophy
   ========================================================================== */
.legacy-page-goju-truth {
  max-width: 72rem;
  margin: 0 auto;
  display: grid;
  gap: 1rem;
}

.goju-truth-panel {
  max-width: 72rem;
  margin: 0 auto;
}

.goju-truth-title {
  max-width: 72rem;
  margin: 0 auto;
  text-transform: uppercase;
}

.goju-truth-meta {
  margin-bottom: 1rem;
}

.goju-truth-panel p {
  text-align: justify;
}

.goju-truth-meta p {
  text-align: right;
}

.goju-truth-panel p:last-child {
  margin-bottom: 0;
}

.goju-truth-footnote {
  max-width: 72rem;
  margin: 0 auto;
}

.goju-truth-footnote .reading-subtitle:first-child {
  margin-top: 0;
}

.goju-truth-footnote p:last-child,
.goju-truth-footnote ul:last-child {
  margin-bottom: 0;
}

/* -- Philosophy story pages ---------------------------------------------- */
.legacy-page-philosophy-story {
  max-width: 72rem;
  margin: 0 auto;
  display: grid;
  gap: 1rem;
}

.philosophy-story__title {
  margin: 0 auto 1rem;
  text-transform: uppercase;
}

.philosophy-story__panel {
  width: 100%;
  max-width: 72rem;
  margin: 0 auto;
}

.philosophy-story__panel p:last-child {
  margin-bottom: 0;
}

.philosophy-story__note-table {
  width: 100%;
  max-width: 72rem;
  margin: 0 auto;
}

.philosophy-story__signature {
  max-width: 42rem;
  margin: 0 auto;
  text-align: center;
}

.legacy-page-philosophy-story p.philosophy-story__signature {
  display: table;
  width: auto;
  max-width: 42rem;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

/* ==========================================================================
   Article Families / Biography
   ========================================================================== */
.legacy-page-biography {
  max-width: 72rem;
  margin: 0 auto;
  display: grid;
  gap: 1rem;
}

.biography-page__title {
  margin: 0 auto 1rem;
}

.biography-page__panel {
  max-width: 72rem;
  margin: 0 auto;
}

.biography-page__panel p:last-child {
  margin-bottom: 0;
}

.biography-page__figure {
  width: 100%;
  max-width: none;
  margin: 0 auto;
  text-align: center;
}

.biography-page__figure img {
  display: block;
  margin: 0 auto 0.15rem;
}

.biography-page__figure br + em,
.biography-page__figure em,
.biography-page__figure strong {
  text-align: center;
}

.biography-page__figure em,
.biography-page__figure strong,
.biography-page__figure u {
  line-height: 1.2;
}

.biography-page__signature {
  max-width: 36rem;
  margin: 0 auto;
}

/* -- Profile pages ------------------------------------------------------- */
.profile-page {
  max-width: 72rem;
  margin: 0 auto;
  display: grid;
  gap: 1rem;
}

.profile-page__title {
  margin: 0 auto 1rem;
  text-transform: uppercase;
}

.profile-page__doc,
.profile-page__panel {
  max-width: 72rem;
  margin: 0 auto;
}

.profile-page__panel p:last-child,
.profile-page__doc p:last-child {
  margin-bottom: 0;
}

.profile-page__doc-heading {
  margin: 1.25rem 0 0.55rem;
  color: var(--accent);
  font-family: var(--display);
  font-size: 1rem;
  letter-spacing: 0.06em;
  text-align: center;
  text-transform: uppercase;
}

.profile-page__figure {
  width: 100%;
  margin: 0 auto;
  text-align: center;
}

.profile-page__figure img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 0 auto 0.15rem;
}

.profile-page__signature {
  max-width: 46rem;
  margin: 0 auto;
}

/* -- Moral code pages ---------------------------------------------------- */
.reading-figure {
  margin: 1.5rem auto;
}

.reading-figure img {
  display: block;
  margin: 0 auto 0.5rem;
}

.moral-code {
  display: grid;
  gap: 1rem;
}

.moral-code__title,
.moral-code__eyebrow,
.moral-code__subtitle {
  margin: 0;
  text-align: center;
}

.moral-code__title {
  text-transform: uppercase;
}

.moral-code__panel {
  padding: 1rem 1.2rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 1.15rem;
  color: rgba(255, 248, 239, 0.94);
  background:
    radial-gradient(circle at top, rgba(178, 63, 31, 0.16), transparent 18rem),
    linear-gradient(180deg, rgba(26, 15, 11, 0.98), rgba(12, 8, 6, 0.98));
  box-shadow: 0 18px 42px rgba(14, 8, 6, 0.22);
}

.moral-code__eyebrow {
  color: #d14a27;
  font-family: var(--display);
  font-size: 1.05rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.moral-code__subtitle {
  margin-top: 0.25rem;
  color: #fff4e5;
  font-size: 1.02rem;
}

.moral-code__list {
  margin-top: 0.85rem;
}

.moral-code__list ul {
  margin: 0;
  padding-left: 1.4rem;
}

.moral-code__list li {
  margin-bottom: 0.7rem;
}

.moral-code__list p {
  margin: 0;
  color: inherit;
}

.moral-code__quote-block {
  padding: 1rem 1.15rem;
  border-left: 4px solid rgba(178, 63, 31, 0.28);
  background: rgba(178, 63, 31, 0.06);
}

.moral-code__quote-block p {
  margin: 0 0 0.8rem;
}

.moral-code__quote-block p:last-child {
  margin-bottom: 0;
}

.moral-code__quote-line {
  text-align: right;
  color: var(--accent);
}

.moral-code__emblem {
  margin: 0 auto;
  text-align: center;
}

.moral-code__emblem img {
  display: block;
  margin: 0 auto 0.65rem;
  max-width: min(100%, 15rem);
}

.moral-code__emblem figcaption {
  color: var(--muted);
  font-size: 0.95rem;
}

/* ==========================================================================
   Article Families / School + Lineage
   ========================================================================== */
.school-page {
  display: grid;
  gap: 1.25rem;
}

.school-page__title {
  margin: 0 auto 1rem;
}

.school-page__intro {
  max-width: 72rem;
  margin: 0 auto;
}

.school-page__intro p:last-child,
.school-page__lineage-body p:last-child {
  margin-bottom: 0;
}

.school-page__figure,
.school-page__flag,
.school-page__symbol {
  margin: 0 auto;
  text-align: center;
}

.school-page__figure img,
.school-page__flag img,
.school-page__symbol img {
  display: block;
  margin: 0 auto 0.6rem;
}

.school-page__lineage {
  display: grid;
  gap: 1rem;
}

.school-page__lineage-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.school-page__lineage-card {
  padding: 1rem 1.1rem;
  border: 1px solid rgba(110, 72, 38, 0.14);
  border-radius: 1.15rem;
  background: rgba(255, 251, 245, 0.92);
}

.school-page__lineage-title {
  margin: 0 0 0.6rem;
  color: var(--accent);
  font-family: var(--display);
  font-size: 0.96rem;
  letter-spacing: 0.08em;
  text-align: center;
  text-transform: uppercase;
}

.school-page__lineage-body {
  color: var(--ink);
}

.school-page__lineage-body .legacy-align-justify {
  text-align: center;
}

/* -- Ki Kyo pages -------------------------------------------------------- */
.kikyo-article {
  display: grid;
  gap: 1rem;
}

.kikyo-panel {
  max-width: 72rem;
  margin: 0 auto;
}

.kikyo-title {
  margin-top: 0;
}

.kikyo-heading {
  margin: 1.4rem 0 0.75rem;
  color: var(--accent);
  font-family: var(--display);
  font-size: 1rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.kikyo-signature {
  max-width: 54rem;
  margin: 0 auto;
  text-align: center;
}

.kikyo-signature p {
  margin: 0.2rem 0;
}

/* -- Daruma pages -------------------------------------------------------- */
.daruma-article {
  display: grid;
  gap: 1rem;
}

.daruma-panel {
  max-width: 72rem;
  margin: 0 auto;
}

.daruma-title {
  margin-top: 0;
}

.daruma-heading {
  margin: 1.5rem 0 0.75rem;
  color: var(--accent);
  font-family: var(--display);
  font-size: 1rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.daruma-note {
  padding: 0.9rem 1rem;
  border-left: 4px solid rgba(178, 63, 31, 0.24);
  background: rgba(178, 63, 31, 0.06);
}

.daruma-keyline {
  color: #a22d1f;
  font-weight: 700;
}

.daruma-signature {
  max-width: 54rem;
  margin: 0 auto;
  text-align: center;
}

.daruma-signature p {
  margin: 0.2rem 0;
}

/* -- Legacy school wrappers --------------------------------------------- */
/* ==========================================================================
   Article Families / School
   ========================================================================== */
.legacy-page-school {
  display: grid;
  gap: 1rem;
}

.legacy-page-school > p,
.legacy-page-school > div {
  max-width: 72rem;
  margin-left: auto;
  margin-right: auto;
}

.legacy-page-school > p.legacy-align-center,
.legacy-page-school > p {
  text-align: center;
}

.legacy-page-school > p.legacy-align-justify {
  text-align: justify;
}

.legacy-page-school > hr {
  width: min(14rem, 100%);
  height: 1px;
  border: 0;
  margin: 0 auto;
  background: rgba(110, 72, 38, 0.22);
}

/* Some school pages were exported with one or even two nested centering wrappers
   around the same content table. Support both forms instead of normalizing the
   source markup every time we touch those pages. */
.legacy-page-school > .legacy-align-center > table,
.legacy-page-school > .legacy-align-center > .legacy-align-center > table {
  width: 100%;
  border: 1px solid rgba(110, 72, 38, 0.14);
  border-radius: 1.15rem;
  background: rgba(255, 251, 245, 0.92);
  box-shadow: 0 18px 42px rgba(33, 21, 14, 0.1);
}

.legacy-page-school > .legacy-align-center > table td,
.legacy-page-school > .legacy-align-center > .legacy-align-center > table td {
  padding: 1rem 1.1rem;
}

.legacy-page-school > .legacy-align-center > table p:last-child,
.legacy-page-school > .legacy-align-center > .legacy-align-center > table p:last-child {
  margin-bottom: 0;
}

.legacy-page-school .school-page__intro-panel {
  max-width: 72rem;
  margin: 0 auto 1rem;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(110, 72, 38, 0.14);
  border-radius: 1.15rem;
  background: rgba(255, 251, 245, 0.92);
  box-shadow: 0 18px 42px rgba(33, 21, 14, 0.1);
}

.legacy-page-school .school-page__intro-panel p:last-child {
  margin-bottom: 0;
}

.legacy-page-school img {
  display: block;
  margin: 0 auto 0.65rem;
}

/* This callout block intentionally keys off the second legacy list because the
   original moral-code pages inject the quote material immediately after it. */
.legacy-page-moral-code > ul:nth-of-type(2) + p.legacy-align-justify,
.legacy-page-moral-code > ul:nth-of-type(2) ~ p.legacy-align-justify,
.legacy-page-moral-code > ul:nth-of-type(2) ~ p.legacy-align-right {
  margin: 0;
  padding: 0.95rem 1.1rem;
  border-left: 1px solid rgba(178, 63, 31, 0.18);
  border-right: 1px solid rgba(178, 63, 31, 0.18);
  background: rgba(178, 63, 31, 0.06);
}

.legacy-page-moral-code > ul:nth-of-type(2) + p.legacy-align-justify {
  margin-top: 0.2rem;
  border-top: 1px solid rgba(178, 63, 31, 0.18);
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
}

.legacy-page-moral-code > p.legacy-align-justify + p.legacy-align-justify,
.legacy-page-moral-code > p.legacy-align-justify + p.legacy-align-right {
  border-top: 1px solid rgba(178, 63, 31, 0.12);
}

.legacy-page-moral-code > ul:nth-of-type(2) ~ p.legacy-align-right {
  border-bottom: 1px solid rgba(178, 63, 31, 0.18);
  border-bottom-left-radius: 1rem;
  border-bottom-right-radius: 1rem;
  text-align: right;
  color: var(--accent);
}

.legacy-page-moral-code > p.legacy-align-center img {
  display: block;
  margin: 0 auto;
  max-width: min(100%, 15rem);
}

.legacy-page-moral-code > p.legacy-align-center:last-of-type {
  color: var(--muted);
  font-size: 0.95rem;
}

/* -- Figure browser / 48-figure grid ------------------------------------ */
.bubishi-browser {
  display: grid;
  gap: 1.25rem;
}

.bubishi-browser__intro {
  text-align: center;
}

.bubishi-browser__symbol {
  margin: 0 auto;
}

.bubishi-browser__symbol img {
  width: min(100%, 6.5rem);
}

.bubishi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
  gap: 0.9rem;
}

.bubishi-grid__item {
  margin: 0;
  padding: 0.7rem;
  border: 1px solid rgba(110, 72, 38, 0.12);
  border-radius: 1rem;
  background: rgba(255, 251, 245, 0.94);
}

.bubishi-grid__item img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 0 0.55rem;
}

.bubishi-grid__item figcaption {
  color: var(--muted);
  font-size: 0.92rem;
  text-align: center;
}

.bubishi-grid__item .missing-media {
  margin: 0 0 0.55rem;
}

.bubishi-grid__label {
  color: var(--muted);
  font-size: 0.92rem;
  text-align: center;
}

/* ==========================================================================
   Article Families / Comparison
   ========================================================================== */
.pachi-compare {
  display: grid;
  gap: 1rem;
  margin-top: 1rem;
}

.pachi-compare__title {
  margin: 0 auto 1rem;
  color: var(--family-article-title);
  font-family: var(--display);
  font-size: clamp(1.2rem, 2.2vw, 1.65rem);
  letter-spacing: 0.08em;
  text-align: center;
}

.pachi-compare__title,
.pachi-compare__title * {
  color: inherit;
  text-decoration: none;
}

.pachi-compare__lead,
.pachi-compare__note,
.pachi-compare__signature {
  max-width: 68rem;
  margin: 0 auto;
}

.pachi-compare__headings,
.pachi-compare__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 1rem;
}

.pachi-compare__heading {
  padding: 0.55rem 0.85rem;
  color: color-mix(in srgb, var(--family-accent) 88%, #3b1e16);
  background: color-mix(in srgb, var(--family-accent) 12%, rgba(255, 251, 245, 0.9));
  border: 1px solid color-mix(in srgb, var(--family-surface-edge) 46%, rgba(178, 63, 31, 0.18));
  border-radius: 0.9rem;
  font-family: var(--display);
  font-size: 1.08rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.pachi-compare__heading--left {
  text-align: left;
}

.pachi-compare__heading--right {
  text-align: right;
}

.pachi-compare__section {
  display: grid;
  gap: 0.75rem;
}

.pachi-compare__section-title {
  margin: 0;
  color: var(--ink);
  font-family: var(--display);
  font-size: 1rem;
  letter-spacing: 0.08em;
  text-align: center;
  text-transform: uppercase;
}

.pachi-compare__table {
  border: 1px solid rgba(110, 72, 38, 0.2);
  border-radius: 1rem;
  overflow: hidden;
  background: rgba(255, 251, 245, 0.92);
}

.pachi-compare__row + .pachi-compare__row {
  border-top: 1px solid rgba(110, 72, 38, 0.16);
}

.pachi-compare__cell {
  padding: 0.95rem 1rem;
  line-height: 1.65;
  vertical-align: middle;
}

.pachi-compare__cell--left {
  border-right: 1px solid rgba(110, 72, 38, 0.16);
}

.pachi-compare__note {
  padding-top: 0.8rem;
}

.pachi-compare__closing,
.pachi-compare__signature {
  max-width: 68rem;
  margin-left: auto;
  margin-right: auto;
}

.pachi-compare__signature {
  padding-top: 0.75rem;
}

/* ==========================================================================
   Article Families / Bubishi
   ========================================================================== */
/* -- Bubishi long-form articles ------------------------------------------ */
/* ==========================================================================
   Family Differentiation / Article-Family-Specific Hooks
   These selectors belong to specific article families but still consume the
   shared `--family-*` variables.
   ========================================================================== */
.legacy-page-bubishi-article {
  max-width: 72rem;
  margin: 0 auto;
}

.legacy-page-bubishi-article > p.legacy-align-justify,
.legacy-page-bubishi-article > h3.bubishi-article__section-title,
.legacy-page-bubishi-article > figure.bubishi-article__figure,
.legacy-page-bubishi-article > .bubishi-article__signature {
  max-width: 72rem;
  margin-left: auto;
  margin-right: auto;
}

.legacy-page-bubishi-article > h3.bubishi-article__section-title + p.legacy-align-justify,
.legacy-page-bubishi-article > p.legacy-align-justify:first-of-type {
  margin-top: 0;
  padding-top: 1.05rem;
  border-top: 1px solid rgba(110, 72, 38, 0.14);
  border-top-left-radius: 1.15rem;
  border-top-right-radius: 1.15rem;
}

.legacy-page-bubishi-article > p.legacy-align-justify {
  padding-left: 1.15rem;
  padding-right: 1.15rem;
  border-left: 1px solid rgba(110, 72, 38, 0.14);
  border-right: 1px solid rgba(110, 72, 38, 0.14);
  background: rgba(255, 251, 245, 0.92);
}

.legacy-page-bubishi-article > p.legacy-align-justify + p.legacy-align-justify {
  margin-top: 0;
}

.legacy-page-bubishi-article > p.legacy-align-justify + h3.bubishi-article__section-title {
  margin-top: 0;
}

.legacy-page-bubishi-article > p.legacy-align-justify:last-of-type {
  padding-bottom: 1.05rem;
  border-bottom: 1px solid rgba(110, 72, 38, 0.14);
  border-bottom-left-radius: 1.15rem;
  border-bottom-right-radius: 1.15rem;
  box-shadow: 0 18px 42px rgba(33, 21, 14, 0.1);
}

.bubishi-article__title {
  margin: 0 0 1rem;
  text-transform: uppercase;
}

.bubishi-article__section-title {
  margin: 2rem 0 0.85rem;
  color: var(--family-accent);
  font-family: var(--display);
  font-size: 1rem;
  letter-spacing: 0.08em;
  text-align: center;
  text-transform: uppercase;
}

.bubishi-article__warning {
  display: inline-block;
  padding: 0.2rem 0.4rem;
  border-radius: 0.5rem;
  color: color-mix(in srgb, var(--family-accent) 88%, #3b1e16);
  background: color-mix(in srgb, var(--family-accent) 14%, rgba(255, 251, 245, 0.86));
}

.bubishi-article__figure {
  margin-top: 1.25rem;
}

.bubishi-article__figure figcaption {
  color: var(--family-accent);
  font-family: var(--display);
  font-size: 1rem;
  letter-spacing: 0.08em;
  text-align: center;
  text-transform: uppercase;
}

.bubishi-article__section-card {
  max-width: 72rem;
  margin: 0 auto 1.25rem;
  padding: 1.05rem 1.15rem;
  border: 1px solid color-mix(in srgb, var(--family-surface-edge) 34%, rgba(110, 72, 38, 0.14));
  border-radius: 1.15rem;
  background: rgba(255, 251, 245, 0.92);
  box-shadow: 0 18px 42px rgba(33, 21, 14, 0.1);
}

.bubishi-article__section-card p:last-child {
  margin-bottom: 0;
}

.bubishi-article__nav {
  display: flex;
  justify-content: center;
  margin: 1.4rem 0 0;
  text-align: center;
}

.bubishi-article__nav a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: 2.9rem;
  padding: 0.85rem 1.15rem;
  border: 1px solid rgba(138, 45, 27, 0.24);
  border-radius: 999px;
  color: var(--accent);
  background: linear-gradient(180deg, rgba(255, 250, 244, 0.98), rgba(246, 236, 224, 0.96));
  box-shadow: 0 10px 24px rgba(33, 21, 14, 0.08);
  font-family: var(--display);
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  transition:
    transform 180ms ease,
    box-shadow 180ms ease,
    border-color 180ms ease,
    background 180ms ease;
}

.bubishi-article__nav a:hover,
.bubishi-article__nav a:focus-visible {
  border-color: rgba(138, 45, 27, 0.42);
  background: linear-gradient(180deg, rgba(255, 248, 240, 1), rgba(243, 228, 211, 0.98));
  box-shadow: 0 14px 30px rgba(33, 21, 14, 0.12);
  transform: translateY(-1px);
}

.bubishi-article__signature {
  max-width: 28rem;
  margin: 1.5rem auto 0;
  text-align: center;
}

/* -- Bubishi link hubs --------------------------------------------------- */
.legacy-page-bubishi-links {
  max-width: 46rem;
  margin: 0 auto;
}

.legacy-page-bubishi-links > .bubishi-links__title {
  margin: 0 auto 1rem;
  text-transform: uppercase;
}

.legacy-page-bubishi-links > p:first-of-type {
  text-align: center;
}

/* -- Bubishi overview pages ---------------------------------------------- */
.legacy-page-bubishi-overview {
  max-width: 72rem;
  margin: 0 auto;
  display: grid;
  gap: 1rem;
}

.bubishi-overview__section-title {
  margin: 0 auto;
  color: var(--accent);
  font-family: var(--display);
  font-size: 1rem;
  letter-spacing: 0.08em;
  text-align: center;
  text-transform: uppercase;
}

.bubishi-overview__panel {
  max-width: 72rem;
  margin: 0 auto;
}

.bubishi-overview__panel p:last-child {
  margin-bottom: 0;
}

.bubishi-overview__signature {
  max-width: 40rem;
  margin: 0 auto;
}

.legacy-page-bubishi-links table:first-of-type {
  display: block;
  width: 100%;
  max-width: 40rem;
  margin: 0 auto;
  overflow: visible;
}

/* The Bubishi hub pages still use the first legacy table as a two-column scaffold:
   symbol on the left, stacked navigation links on the right. */
.legacy-page-bubishi-links table:first-of-type tr {
  display: grid;
  grid-template-columns: minmax(8rem, 11rem) minmax(0, 1fr);
  gap: 1rem;
  align-items: stretch;
}

.legacy-page-bubishi-links table:first-of-type td {
  padding: 0.85rem;
  border: 1px solid rgba(110, 72, 38, 0.12);
  border-radius: 1rem;
  background: rgba(255, 251, 245, 0.88);
}

.legacy-page-bubishi-links table:first-of-type td:first-child {
  display: flex;
  align-items: stretch;
  justify-content: center;
}

.legacy-page-bubishi-links table:first-of-type td:first-child img {
  width: auto;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
  margin: 0 auto;
}

.legacy-page-bubishi-links table:first-of-type td:last-child {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.legacy-page-bubishi-links table:first-of-type td:last-child p {
  width: 100%;
  text-align: center;
}

.legacy-page-pachi-compare > table:nth-of-type(2),
.legacy-page-pachi-compare > table:nth-of-type(4),
.legacy-page-pachi-compare > table:nth-of-type(6),
.legacy-page-pachi-compare > table:nth-of-type(8),
.legacy-page-pachi-compare > table:nth-of-type(10),
.legacy-page-pachi-compare > table:nth-of-type(12),
.legacy-page-pachi-compare > table:nth-of-type(14) {
  width: 100%;
}

.legacy-page-pachi-compare > .pachi-compare__intro-card {
  width: 100%;
  max-width: 72rem;
  margin: 0 auto 1.35rem;
  padding: 1.05rem 1.15rem;
  border: 1px solid rgba(110, 72, 38, 0.16);
  border-radius: 1.15rem;
  background: rgba(255, 251, 245, 0.92);
  box-shadow: 0 18px 42px rgba(33, 21, 14, 0.1);
}

.legacy-page-pachi-compare > .pachi-compare__intro-card > p:first-child {
  margin-top: 0;
}

.legacy-page-pachi-compare > .pachi-compare__intro-card > p:last-child {
  margin-bottom: 0;
}

.legacy-page-pachi-compare > .pachi-compare__title {
  margin-bottom: 1rem;
  color: var(--accent);
}

.legacy-page-pachi-compare > .pachi-compare__title,
.legacy-page-pachi-compare > .pachi-compare__title * {
  color: var(--accent);
  text-decoration: none;
}

.legacy-page-pachi-compare > table:nth-of-type(2) td,
.legacy-page-pachi-compare > table:nth-of-type(2) th,
.legacy-page-pachi-compare > table:nth-of-type(4) td,
.legacy-page-pachi-compare > table:nth-of-type(4) th,
.legacy-page-pachi-compare > table:nth-of-type(6) td,
.legacy-page-pachi-compare > table:nth-of-type(6) th,
.legacy-page-pachi-compare > table:nth-of-type(8) td,
.legacy-page-pachi-compare > table:nth-of-type(8) th,
.legacy-page-pachi-compare > table:nth-of-type(10) td,
.legacy-page-pachi-compare > table:nth-of-type(10) th,
.legacy-page-pachi-compare > table:nth-of-type(12) td,
.legacy-page-pachi-compare > table:nth-of-type(12) th,
.legacy-page-pachi-compare > table:nth-of-type(14) td,
.legacy-page-pachi-compare > table:nth-of-type(14) th {
  text-align: center;
}

/* These selectors follow the original table order from the legacy export. The
   structure is brittle, but keeping the nth-of-type mapping avoids a large HTML
   rewrite for an article that is already visually stabilized. */
.legacy-page-pachi-compare > table:nth-of-type(3) {
  width: 100%;
  table-layout: fixed;
  margin: 0 0 1rem;
}

.legacy-page-pachi-compare > table:nth-of-type(3) td:nth-child(1),
.legacy-page-pachi-compare > table:nth-of-type(3) th:nth-child(1),
.legacy-page-pachi-compare > table:nth-of-type(3) td:nth-child(3),
.legacy-page-pachi-compare > table:nth-of-type(3) th:nth-child(3) {
  display: none;
}

.legacy-page-pachi-compare > table:nth-of-type(3) td:nth-child(2),
.legacy-page-pachi-compare > table:nth-of-type(3) th:nth-child(2) {
  width: 50%;
  text-align: left;
}

.legacy-page-pachi-compare > table:nth-of-type(3) td:nth-child(4),
.legacy-page-pachi-compare > table:nth-of-type(3) th:nth-child(4) {
  width: 50%;
  text-align: right;
}

.legacy-page-pachi-compare > table:nth-of-type(5),
.legacy-page-pachi-compare > table:nth-of-type(7),
.legacy-page-pachi-compare > table:nth-of-type(9),
.legacy-page-pachi-compare > table:nth-of-type(11),
.legacy-page-pachi-compare > table:nth-of-type(13) {
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid rgba(110, 72, 38, 0.2);
  border-radius: 1rem;
  overflow: hidden;
  background: rgba(255, 251, 245, 0.92);
}

.legacy-page-pachi-compare > table:nth-of-type(5) tr + tr,
.legacy-page-pachi-compare > table:nth-of-type(7) tr + tr,
.legacy-page-pachi-compare > table:nth-of-type(9) tr + tr,
.legacy-page-pachi-compare > table:nth-of-type(11) tr + tr,
.legacy-page-pachi-compare > table:nth-of-type(13) tr + tr {
  border-top: 1px solid rgba(110, 72, 38, 0.16);
}

.legacy-page-pachi-compare > table:nth-of-type(5) td,
.legacy-page-pachi-compare > table:nth-of-type(5) th,
.legacy-page-pachi-compare > table:nth-of-type(7) td,
.legacy-page-pachi-compare > table:nth-of-type(7) th,
.legacy-page-pachi-compare > table:nth-of-type(9) td,
.legacy-page-pachi-compare > table:nth-of-type(9) th,
.legacy-page-pachi-compare > table:nth-of-type(11) td,
.legacy-page-pachi-compare > table:nth-of-type(11) th,
.legacy-page-pachi-compare > table:nth-of-type(13) td,
.legacy-page-pachi-compare > table:nth-of-type(13) th {
  padding: 0.9rem 1rem;
  vertical-align: middle;
  background: rgba(255, 255, 255, 0.62);
}

.legacy-page-pachi-compare > table:nth-of-type(5) td:nth-child(3),
.legacy-page-pachi-compare > table:nth-of-type(5) th:nth-child(3),
.legacy-page-pachi-compare > table:nth-of-type(7) td:nth-child(3),
.legacy-page-pachi-compare > table:nth-of-type(7) th:nth-child(3),
.legacy-page-pachi-compare > table:nth-of-type(9) td:nth-child(3),
.legacy-page-pachi-compare > table:nth-of-type(9) th:nth-child(3),
.legacy-page-pachi-compare > table:nth-of-type(11) td:nth-child(3),
.legacy-page-pachi-compare > table:nth-of-type(11) th:nth-child(3),
.legacy-page-pachi-compare > table:nth-of-type(13) td:nth-child(3),
.legacy-page-pachi-compare > table:nth-of-type(13) th:nth-child(3) {
  display: none;
}

.legacy-page-pachi-compare > table:nth-of-type(5) td:nth-child(1),
.legacy-page-pachi-compare > table:nth-of-type(5) th:nth-child(1),
.legacy-page-pachi-compare > table:nth-of-type(7) td:nth-child(1),
.legacy-page-pachi-compare > table:nth-of-type(7) th:nth-child(1),
.legacy-page-pachi-compare > table:nth-of-type(9) td:nth-child(1),
.legacy-page-pachi-compare > table:nth-of-type(9) th:nth-child(1),
.legacy-page-pachi-compare > table:nth-of-type(11) td:nth-child(1),
.legacy-page-pachi-compare > table:nth-of-type(11) th:nth-child(1),
.legacy-page-pachi-compare > table:nth-of-type(13) td:nth-child(1),
.legacy-page-pachi-compare > table:nth-of-type(13) th:nth-child(1) {
  width: 12%;
  text-align: left;
  font-weight: 700;
}

.legacy-page-pachi-compare > table:nth-of-type(5) td:nth-child(2),
.legacy-page-pachi-compare > table:nth-of-type(5) th:nth-child(2),
.legacy-page-pachi-compare > table:nth-of-type(7) td:nth-child(2),
.legacy-page-pachi-compare > table:nth-of-type(7) th:nth-child(2),
.legacy-page-pachi-compare > table:nth-of-type(9) td:nth-child(2),
.legacy-page-pachi-compare > table:nth-of-type(9) th:nth-child(2),
.legacy-page-pachi-compare > table:nth-of-type(11) td:nth-child(2),
.legacy-page-pachi-compare > table:nth-of-type(11) th:nth-child(2),
.legacy-page-pachi-compare > table:nth-of-type(13) td:nth-child(2),
.legacy-page-pachi-compare > table:nth-of-type(13) th:nth-child(2) {
  width: 38%;
  text-align: left;
}

.legacy-page-pachi-compare > table:nth-of-type(5) td:nth-child(4),
.legacy-page-pachi-compare > table:nth-of-type(5) th:nth-child(4),
.legacy-page-pachi-compare > table:nth-of-type(7) td:nth-child(4),
.legacy-page-pachi-compare > table:nth-of-type(7) th:nth-child(4),
.legacy-page-pachi-compare > table:nth-of-type(9) td:nth-child(4),
.legacy-page-pachi-compare > table:nth-of-type(9) th:nth-child(4),
.legacy-page-pachi-compare > table:nth-of-type(11) td:nth-child(4),
.legacy-page-pachi-compare > table:nth-of-type(11) th:nth-child(4),
.legacy-page-pachi-compare > table:nth-of-type(13) td:nth-child(4),
.legacy-page-pachi-compare > table:nth-of-type(13) th:nth-child(4) {
  width: 50%;
  text-align: right;
  border-left: 1px solid rgba(110, 72, 38, 0.16);
}

.legacy-page-symbol-meaning > table {
  display: table;
  width: 100%;
  table-layout: fixed;
  margin: 0 0 0.9rem;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid rgba(110, 72, 38, 0.18);
  border-radius: 1rem;
  overflow: hidden;
  background: rgba(255, 251, 245, 0.94);
}

.legacy-page-symbol-meaning > .symbol-meaning__title {
  margin: 0 auto 1rem;
  color: var(--accent);
  font-family: var(--display);
  font-size: clamp(1.2rem, 2.2vw, 1.65rem);
  letter-spacing: 0.08em;
  text-align: center;
}

.legacy-page-symbol-meaning > .symbol-meaning__title,
.legacy-page-symbol-meaning > .symbol-meaning__title * {
  color: var(--accent);
  text-decoration: none;
}

.legacy-page-symbol-meaning > table td,
.legacy-page-symbol-meaning > table th {
  padding: 0.95rem 1rem;
  vertical-align: middle;
}

.legacy-page-symbol-meaning > table td:first-child,
.legacy-page-symbol-meaning > table th:first-child {
  width: 15%;
  border-right: 1px solid rgba(110, 72, 38, 0.16);
  font-family: var(--display);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.legacy-page-symbol-meaning > table td:last-child,
.legacy-page-symbol-meaning > table th:last-child {
  width: 85%;
}

.legacy-page-symbol-meaning > table:nth-of-type(1) td,
.legacy-page-symbol-meaning > table:nth-of-type(1) th {
  border-color: rgba(28, 24, 21, 0.28);
}

.legacy-page-symbol-meaning > table:nth-of-type(1) td:first-child,
.legacy-page-symbol-meaning > table:nth-of-type(1) th:first-child {
  background: rgba(28, 24, 21, 0.9);
  color: #fff6ea;
}

.legacy-page-symbol-meaning > table:nth-of-type(2) td:first-child,
.legacy-page-symbol-meaning > table:nth-of-type(2) th:first-child {
  background: rgba(171, 35, 35, 0.88);
  color: #fff6ea;
}

.legacy-page-symbol-meaning > table:nth-of-type(3) td:first-child,
.legacy-page-symbol-meaning > table:nth-of-type(3) th:first-child {
  background: rgba(189, 148, 27, 0.9);
  color: #2b1f07;
}

.legacy-page-symbol-meaning > table:nth-of-type(4) td:first-child,
.legacy-page-symbol-meaning > table:nth-of-type(4) th:first-child {
  background: rgba(59, 122, 67, 0.9);
  color: #f6fff3;
}

.legacy-page-symbol-meaning > table:nth-of-type(5) td:first-child,
.legacy-page-symbol-meaning > table:nth-of-type(5) th:first-child {
  background: rgba(235, 235, 235, 0.96);
  color: #2b2b2b;
}

.legacy-page-symbol-meaning > table:nth-of-type(6) td:first-child,
.legacy-page-symbol-meaning > table:nth-of-type(6) th:first-child {
  background: rgba(184, 145, 70, 0.9);
  color: #2b1b07;
}

.legacy-page-symbol-meaning > table:nth-of-type(7) td:first-child,
.legacy-page-symbol-meaning > table:nth-of-type(7) th:first-child {
  background: rgba(20, 20, 24, 0.92);
  color: #f4f7ff;
}

.legacy-page-kenshin-style > div > div > table:nth-of-type(3) > tbody > tr > td > table,
.legacy-page-kenshin-style > div > div > table:nth-of-type(3) > tr > td > table {
  display: table;
  width: 100%;
  table-layout: fixed;
  margin: 0 0 1rem;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid rgba(110, 72, 38, 0.22);
  border-radius: 1rem;
  background: rgba(255, 251, 245, 0.94);
  overflow: hidden;
  box-shadow: 0 14px 30px rgba(33, 21, 14, 0.08);
}

.legacy-page-kenshin-style > div > div > table:nth-of-type(2),
.legacy-page-kenshin-style > div > div > table:nth-of-type(6) {
  display: table;
  width: auto;
  margin: 0 auto 1rem;
}

.legacy-page-kenshin-style > div > div > table:nth-of-type(2) td,
.legacy-page-kenshin-style > div > div > table:nth-of-type(2) th,
.legacy-page-kenshin-style > div > div > table:nth-of-type(6) td,
.legacy-page-kenshin-style > div > div > table:nth-of-type(6) th {
  text-align: center;
}

.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(3)
  > tbody
  > tr
  > td
  > table
  td:first-child,
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(3)
  > tbody
  > tr
  > td
  > table
  th:first-child,
.legacy-page-kenshin-style > div > div > table:nth-of-type(3) > tr > td > table td:first-child,
.legacy-page-kenshin-style > div > div > table:nth-of-type(3) > tr > td > table th:first-child {
  width: 25%;
}

.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(3)
  > tbody
  > tr
  > td
  > table
  td:last-child,
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(3)
  > tbody
  > tr
  > td
  > table
  th:last-child,
.legacy-page-kenshin-style > div > div > table:nth-of-type(3) > tr > td > table td:last-child,
.legacy-page-kenshin-style > div > div > table:nth-of-type(3) > tr > td > table th:last-child {
  width: 75%;
}

.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tbody > tr > td > table,
.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tr > td > table,
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tbody > tr > td > table,
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tr > td > table {
  display: table;
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid rgba(110, 72, 38, 0.22);
  border-radius: 1rem;
  background: rgba(255, 251, 245, 0.94);
  overflow: hidden;
  box-shadow: 0 14px 30px rgba(33, 21, 14, 0.08);
}

.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(4)
  > tbody
  > tr
  > td
  > table
  td:nth-child(1),
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(4)
  > tbody
  > tr
  > td
  > table
  th:nth-child(1),
.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tr > td > table td:nth-child(1),
.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tr > td > table th:nth-child(1),
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(5)
  > tbody
  > tr
  > td
  > table
  td:nth-child(1),
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(5)
  > tbody
  > tr
  > td
  > table
  th:nth-child(1),
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tr > td > table td:nth-child(1),
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tr > td > table th:nth-child(1) {
  width: 20%;
}

.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(4)
  > tbody
  > tr
  > td
  > table
  td:nth-child(2),
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(4)
  > tbody
  > tr
  > td
  > table
  th:nth-child(2),
.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tr > td > table td:nth-child(2),
.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tr > td > table th:nth-child(2),
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(5)
  > tbody
  > tr
  > td
  > table
  td:nth-child(2),
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(5)
  > tbody
  > tr
  > td
  > table
  th:nth-child(2),
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tr > td > table td:nth-child(2),
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tr > td > table th:nth-child(2) {
  width: 10%;
}

.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(4)
  > tbody
  > tr
  > td
  > table
  td:nth-child(3),
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(4)
  > tbody
  > tr
  > td
  > table
  th:nth-child(3),
.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tr > td > table td:nth-child(3),
.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tr > td > table th:nth-child(3),
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(5)
  > tbody
  > tr
  > td
  > table
  td:nth-child(3),
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(5)
  > tbody
  > tr
  > td
  > table
  th:nth-child(3),
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tr > td > table td:nth-child(3),
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tr > td > table th:nth-child(3) {
  width: 50%;
}

.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(4)
  > tbody
  > tr
  > td
  > table
  td:nth-child(4),
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(4)
  > tbody
  > tr
  > td
  > table
  th:nth-child(4),
.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tr > td > table td:nth-child(4),
.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tr > td > table th:nth-child(4),
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(5)
  > tbody
  > tr
  > td
  > table
  td:nth-child(4),
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(5)
  > tbody
  > tr
  > td
  > table
  th:nth-child(4),
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tr > td > table td:nth-child(4),
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tr > td > table th:nth-child(4) {
  width: 20%;
}

.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(4)
  > tbody
  > tr
  > td
  > table
  td:nth-child(2),
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(4)
  > tbody
  > tr
  > td
  > table
  th:nth-child(2),
.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tr > td > table td:nth-child(2),
.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tr > td > table th:nth-child(2),
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(4)
  > tbody
  > tr
  > td
  > table
  td:nth-child(4),
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(4)
  > tbody
  > tr
  > td
  > table
  th:nth-child(4),
.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tr > td > table td:nth-child(4),
.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tr > td > table th:nth-child(4),
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(5)
  > tbody
  > tr
  > td
  > table
  td:nth-child(2),
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(5)
  > tbody
  > tr
  > td
  > table
  th:nth-child(2),
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tr > td > table td:nth-child(2),
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tr > td > table th:nth-child(2),
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(5)
  > tbody
  > tr
  > td
  > table
  td:nth-child(4),
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(5)
  > tbody
  > tr
  > td
  > table
  th:nth-child(4),
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tr > td > table td:nth-child(4),
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tr > td > table th:nth-child(4) {
  text-align: center;
}

.legacy-page-kenshin-style > div > div > table:nth-of-type(3) > tbody > tr > td > table td,
.legacy-page-kenshin-style > div > div > table:nth-of-type(3) > tbody > tr > td > table th,
.legacy-page-kenshin-style > div > div > table:nth-of-type(3) > tr > td > table td,
.legacy-page-kenshin-style > div > div > table:nth-of-type(3) > tr > td > table th,
.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tbody > tr > td > table td,
.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tbody > tr > td > table th,
.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tr > td > table td,
.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tr > td > table th,
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tbody > tr > td > table td,
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tbody > tr > td > table th,
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tr > td > table td,
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tr > td > table th {
  vertical-align: middle;
  padding: 0.9rem 1rem;
  border-right: 1px solid rgba(110, 72, 38, 0.16);
  border-bottom: 1px solid rgba(110, 72, 38, 0.16);
  background: rgba(255, 255, 255, 0.62);
}

.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(3)
  > tbody
  > tr
  > td
  > table
  tr:last-child
  td,
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(3)
  > tbody
  > tr
  > td
  > table
  tr:last-child
  th,
.legacy-page-kenshin-style > div > div > table:nth-of-type(3) > tr > td > table tr:last-child td,
.legacy-page-kenshin-style > div > div > table:nth-of-type(3) > tr > td > table tr:last-child th,
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(4)
  > tbody
  > tr
  > td
  > table
  tr:last-child
  td,
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(4)
  > tbody
  > tr
  > td
  > table
  tr:last-child
  th,
.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tr > td > table tr:last-child td,
.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tr > td > table tr:last-child th,
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(5)
  > tbody
  > tr
  > td
  > table
  tr:last-child
  td,
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(5)
  > tbody
  > tr
  > td
  > table
  tr:last-child
  th,
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tr > td > table tr:last-child td,
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tr > td > table tr:last-child th {
  border-bottom: 0;
}

.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(3)
  > tbody
  > tr
  > td
  > table
  td:last-child,
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(3)
  > tbody
  > tr
  > td
  > table
  th:last-child,
.legacy-page-kenshin-style > div > div > table:nth-of-type(3) > tr > td > table td:last-child,
.legacy-page-kenshin-style > div > div > table:nth-of-type(3) > tr > td > table th:last-child,
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(4)
  > tbody
  > tr
  > td
  > table
  td:last-child,
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(4)
  > tbody
  > tr
  > td
  > table
  th:last-child,
.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tr > td > table td:last-child,
.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tr > td > table th:last-child,
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(5)
  > tbody
  > tr
  > td
  > table
  td:last-child,
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(5)
  > tbody
  > tr
  > td
  > table
  th:last-child,
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tr > td > table td:last-child,
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tr > td > table th:last-child {
  border-right: 0;
}

.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(4)
  > tbody
  > tr
  > td
  > table
  td:nth-child(1),
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(4)
  > tbody
  > tr
  > td
  > table
  th:nth-child(1),
.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tr > td > table td:nth-child(1),
.legacy-page-kenshin-style > div > div > table:nth-of-type(4) > tr > td > table th:nth-child(1),
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(5)
  > tbody
  > tr
  > td
  > table
  td:nth-child(1),
.legacy-page-kenshin-style
  > div
  > div
  > table:nth-of-type(5)
  > tbody
  > tr
  > td
  > table
  th:nth-child(1),
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tr > td > table td:nth-child(1),
.legacy-page-kenshin-style > div > div > table:nth-of-type(5) > tr > td > table th:nth-child(1) {
  background: rgba(178, 63, 31, 0.08);
  font-weight: 700;
}

.legacy-page-kenshin-style .kenshin-style-page {
  max-width: 72rem;
  margin: 0 auto;
}

.legacy-page-kenshin-style .kenshin-style__title,
.legacy-page-kenshin-style .kenshin-style__catalog-title {
  margin-left: auto;
  margin-right: auto;
  color: var(--family-article-title);
  font-family: var(--display);
  letter-spacing: 0.08em;
  text-align: center;
}

.legacy-page-kenshin-style .kenshin-style__title {
  margin: 0 0 1rem;
  font-size: clamp(1.2rem, 2.2vw, 1.65rem);
  text-transform: uppercase;
}

.legacy-page-kenshin-style .kenshin-style__title,
.legacy-page-kenshin-style .kenshin-style__title * {
  color: var(--family-article-title);
  text-decoration: none;
}

.legacy-page-kenshin-style .kenshin-style__catalog-title {
  margin-top: 1.6rem;
  margin-bottom: 1rem;
  font-size: 1rem;
}

.legacy-page-kenshin-style .kenshin-style__intro-card {
  max-width: 72rem;
  margin: 0 auto 1.3rem;
  padding: 1.05rem 1.15rem;
  border: 1px solid rgba(110, 72, 38, 0.16);
  border-radius: 1.15rem;
  background: rgba(255, 251, 245, 0.92);
  box-shadow: 0 18px 42px rgba(33, 21, 14, 0.1);
}

.legacy-page-kenshin-style .kenshin-style__intro-card p {
  margin: 0;
}

.legacy-page-kenshin-style .kenshin-style__tables > table {
  display: table;
  width: 100%;
  margin: 0 0 1.35rem;
  border-collapse: separate;
  border-spacing: 0;
}

.legacy-page-kenshin-style .kenshin-style__tables > table > tbody > tr > td,
.legacy-page-kenshin-style .kenshin-style__tables > table > tr > td,
.legacy-page-kenshin-style .kenshin-style__tables > table > tbody > tr > th,
.legacy-page-kenshin-style .kenshin-style__tables > table > tr > th {
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
}

.legacy-page-kenshin-style .kenshin-style__tables > table > tbody > tr:first-child > td,
.legacy-page-kenshin-style .kenshin-style__tables > table > tr:first-child > td,
.legacy-page-kenshin-style .kenshin-style__tables > table > tbody > tr:first-child > th,
.legacy-page-kenshin-style .kenshin-style__tables > table > tr:first-child > th {
  padding-bottom: 0.7rem;
}

.legacy-page-kenshin-style .kenshin-style__tables > table > tbody > tr:first-child p,
.legacy-page-kenshin-style .kenshin-style__tables > table > tr:first-child p,
.legacy-page-kenshin-style .kenshin-style__tables > table > tbody > tr:first-child div,
.legacy-page-kenshin-style .kenshin-style__tables > table > tr:first-child div {
  margin: 0;
  color: var(--accent);
  font-family: var(--display);
  letter-spacing: 0.08em;
  text-align: center;
}

.legacy-page-kenshin-style .kenshin-style__tables > table > tbody > tr > td > table,
.legacy-page-kenshin-style .kenshin-style__tables > table > tr > td > table {
  display: table;
  width: 100%;
  table-layout: fixed;
  margin: 0 0 1rem;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid rgba(110, 72, 38, 0.22);
  border-radius: 1rem;
  overflow: hidden;
  background: rgba(255, 251, 245, 0.94);
  box-shadow: 0 14px 30px rgba(33, 21, 14, 0.08);
}

.legacy-page-kenshin-style .kenshin-style__tables > table > tbody > tr > td > table td,
.legacy-page-kenshin-style .kenshin-style__tables > table > tbody > tr > td > table th,
.legacy-page-kenshin-style .kenshin-style__tables > table > tr > td > table td,
.legacy-page-kenshin-style .kenshin-style__tables > table > tr > td > table th {
  vertical-align: middle;
  padding: 0.9rem 1rem;
  border-right: 1px solid rgba(110, 72, 38, 0.16);
  border-bottom: 1px solid rgba(110, 72, 38, 0.16);
  background: rgba(255, 255, 255, 0.62);
}

.legacy-page-kenshin-style
  .kenshin-style__tables
  > table
  > tbody
  > tr
  > td
  > table
  tr:last-child
  td,
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table
  > tbody
  > tr
  > td
  > table
  tr:last-child
  th,
.legacy-page-kenshin-style .kenshin-style__tables > table > tr > td > table tr:last-child td,
.legacy-page-kenshin-style .kenshin-style__tables > table > tr > td > table tr:last-child th {
  border-bottom: 0;
}

.legacy-page-kenshin-style .kenshin-style__tables > table > tbody > tr > td > table td:last-child,
.legacy-page-kenshin-style .kenshin-style__tables > table > tbody > tr > td > table th:last-child,
.legacy-page-kenshin-style .kenshin-style__tables > table > tr > td > table td:last-child,
.legacy-page-kenshin-style .kenshin-style__tables > table > tr > td > table th:last-child {
  border-right: 0;
}

.legacy-page-kenshin-style
  .kenshin-style__tables
  > table
  > tbody
  > tr
  > td
  > table
  td:first-child:not(:only-child),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table
  > tbody
  > tr
  > td
  > table
  th:first-child:not(:only-child),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table
  > tr
  > td
  > table
  td:first-child:not(:only-child),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table
  > tr
  > td
  > table
  th:first-child:not(:only-child) {
  background: rgba(178, 63, 31, 0.08);
  color: #6b2418;
  font-family: var(--display);
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.35;
  text-align: left;
}

.legacy-page-kenshin-style
  .kenshin-style__tables
  > table
  > tbody
  > tr
  > td
  > table
  td:first-child:not(:only-child)
  *,
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table
  > tbody
  > tr
  > td
  > table
  th:first-child:not(:only-child)
  *,
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table
  > tr
  > td
  > table
  td:first-child:not(:only-child)
  *,
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table
  > tr
  > td
  > table
  th:first-child:not(:only-child)
  * {
  color: inherit;
}

.legacy-page-kenshin-style
  .kenshin-style__tables
  > table
  > tbody
  > tr
  > td
  > table
  td:first-child:not(:only-child)
  p,
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table
  > tbody
  > tr
  > td
  > table
  th:first-child:not(:only-child)
  p,
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table
  > tr
  > td
  > table
  td:first-child:not(:only-child)
  p,
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table
  > tr
  > td
  > table
  th:first-child:not(:only-child)
  p {
  margin: 0.24rem 0;
}

.legacy-page-kenshin-style
  .kenshin-style__tables
  > table
  > tbody
  > tr
  > td
  > table
  td:first-child:not(:only-child)
  p:first-child,
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table
  > tbody
  > tr
  > td
  > table
  th:first-child:not(:only-child)
  p:first-child,
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table
  > tr
  > td
  > table
  td:first-child:not(:only-child)
  p:first-child,
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table
  > tr
  > td
  > table
  th:first-child:not(:only-child)
  p:first-child {
  margin-top: 0;
}

.legacy-page-kenshin-style
  .kenshin-style__tables
  > table
  > tbody
  > tr
  > td
  > table
  td:first-child:not(:only-child)
  p:last-child,
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table
  > tbody
  > tr
  > td
  > table
  th:first-child:not(:only-child)
  p:last-child,
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table
  > tr
  > td
  > table
  td:first-child:not(:only-child)
  p:last-child,
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table
  > tr
  > td
  > table
  th:first-child:not(:only-child)
  p:last-child {
  margin-bottom: 0;
}

.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(1)
  > tbody
  > tr
  > td
  > table
  td:first-child,
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(1)
  > tbody
  > tr
  > td
  > table
  th:first-child,
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(1)
  > tr
  > td
  > table
  td:first-child,
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(1)
  > tr
  > td
  > table
  th:first-child {
  width: 25%;
}

.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(1)
  > tbody
  > tr
  > td
  > table
  td:last-child,
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(1)
  > tbody
  > tr
  > td
  > table
  th:last-child,
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(1)
  > tr
  > td
  > table
  td:last-child,
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(1)
  > tr
  > td
  > table
  th:last-child {
  width: 75%;
}

.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(2)
  > tbody
  > tr
  > td
  > table
  td:nth-child(1),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(2)
  > tbody
  > tr
  > td
  > table
  th:nth-child(1),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(2)
  > tr
  > td
  > table
  td:nth-child(1),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(2)
  > tr
  > td
  > table
  th:nth-child(1),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(3)
  > tbody
  > tr
  > td
  > table
  td:nth-child(1),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(3)
  > tbody
  > tr
  > td
  > table
  th:nth-child(1),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(3)
  > tr
  > td
  > table
  td:nth-child(1),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(3)
  > tr
  > td
  > table
  th:nth-child(1) {
  width: 20%;
}

.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(2)
  > tbody
  > tr
  > td
  > table
  td:nth-child(2),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(2)
  > tbody
  > tr
  > td
  > table
  th:nth-child(2),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(2)
  > tr
  > td
  > table
  td:nth-child(2),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(2)
  > tr
  > td
  > table
  th:nth-child(2),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(3)
  > tbody
  > tr
  > td
  > table
  td:nth-child(2),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(3)
  > tbody
  > tr
  > td
  > table
  th:nth-child(2),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(3)
  > tr
  > td
  > table
  td:nth-child(2),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(3)
  > tr
  > td
  > table
  th:nth-child(2) {
  width: 10%;
  text-align: center;
}

.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(2)
  > tbody
  > tr
  > td
  > table
  td:nth-child(3),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(2)
  > tbody
  > tr
  > td
  > table
  th:nth-child(3),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(2)
  > tr
  > td
  > table
  td:nth-child(3),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(2)
  > tr
  > td
  > table
  th:nth-child(3),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(3)
  > tbody
  > tr
  > td
  > table
  td:nth-child(3),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(3)
  > tbody
  > tr
  > td
  > table
  th:nth-child(3),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(3)
  > tr
  > td
  > table
  td:nth-child(3),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(3)
  > tr
  > td
  > table
  th:nth-child(3) {
  width: 50%;
}

.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(2)
  > tbody
  > tr
  > td
  > table
  td:nth-child(4),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(2)
  > tbody
  > tr
  > td
  > table
  th:nth-child(4),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(2)
  > tr
  > td
  > table
  td:nth-child(4),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(2)
  > tr
  > td
  > table
  th:nth-child(4),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(3)
  > tbody
  > tr
  > td
  > table
  td:nth-child(4),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(3)
  > tbody
  > tr
  > td
  > table
  th:nth-child(4),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(3)
  > tr
  > td
  > table
  td:nth-child(4),
.legacy-page-kenshin-style
  .kenshin-style__tables
  > table:nth-of-type(3)
  > tr
  > td
  > table
  th:nth-child(4) {
  width: 20%;
  text-align: center;
}

.legacy-page-kenshin-style .kenshin-style__signature {
  max-width: 28rem;
  margin: 1.7rem auto 0;
  text-align: center;
}

.legacy-page-dense .godan-kicks-table,
.legacy-page-dense .godan-kicks-detail,
.legacy-page-godan table:nth-of-type(4),
.legacy-page-godan table:nth-of-type(5) {
  display: table;
  width: 100%;
  table-layout: fixed;
}

.legacy-page-godan {
  display: grid;
  gap: 1rem;
}

.legacy-page-godan table.godan-intro-title {
  display: table;
  width: auto;
  margin: 0 auto;
}

.legacy-page-godan table.godan-intro-title td {
  padding: 0;
  border: 0;
  background: transparent;
  text-align: center;
}

.legacy-page-godan table.godan-intro-title .legacy-align-center {
  color: var(--accent);
  font-family: var(--display);
  font-size: clamp(1.05rem, 2vw, 1.4rem);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.legacy-page-godan table.godan-intro-title .legacy-align-center *,
.legacy-page-godan table.godan-intro-title .legacy-align-center u,
.legacy-page-godan table.godan-intro-title .legacy-align-center i,
.legacy-page-godan table.godan-intro-title .legacy-align-center b {
  color: inherit;
  text-decoration: none;
  font-style: normal;
}

.legacy-page-godan table.godan-emblem {
  display: table;
  width: min(100%, 22rem);
  margin: 0 auto;
  table-layout: fixed;
}

.legacy-page-godan table.godan-emblem td {
  padding: 0;
  border: 0;
  background: transparent;
  text-align: center;
}

.legacy-page-godan table.godan-emblem img {
  display: block;
  margin: 0 auto;
  width: min(100%, 10rem);
}

.legacy-page-godan .godan-story {
  display: table;
  width: 100%;
  margin: 0;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid rgba(110, 72, 38, 0.14);
  border-radius: 1.25rem;
  overflow: hidden;
  background: rgba(255, 251, 245, 0.9);
  box-shadow: 0 14px 30px rgba(33, 21, 14, 0.08);
}

.legacy-page-godan .godan-story td {
  padding: 1.25rem 1.35rem;
  border: 0;
  background: transparent;
}

.legacy-page-godan .godan-story p:last-child {
  margin-bottom: 0;
}

.legacy-page-godan .godan-kicks-table,
.legacy-page-godan .godan-kicks-detail {
  margin: 0;
  border-collapse: separate;
  border-spacing: 0;
  border: 1px solid rgba(110, 72, 38, 0.16);
  border-radius: 1.15rem;
  overflow: hidden;
  background: rgba(255, 251, 245, 0.94);
  box-shadow: 0 14px 30px rgba(33, 21, 14, 0.08);
}

.legacy-page-godan .godan-kicks-table tr:first-child td {
  padding: 0.9rem 1rem;
  border-bottom: 1px solid rgba(110, 72, 38, 0.14);
  background: rgba(110, 72, 38, 0.05);
}

.legacy-page-godan .godan-kicks-table tr:first-child td:nth-child(2) .legacy-align-center {
  color: var(--accent);
  font-family: var(--display);
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.legacy-page-godan .godan-kicks-table tr:last-child td,
.legacy-page-godan .godan-kicks-detail tr td {
  padding: 1rem;
  vertical-align: top;
  background: rgba(255, 255, 255, 0.7);
}

.legacy-page-godan .godan-kicks-detail tr + tr td {
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
  border-top: 1px solid rgba(110, 72, 38, 0.14);
  background: rgba(110, 72, 38, 0.05);
}

.legacy-page-godan .godan-kicks-table img,
.legacy-page-godan .godan-kicks-detail img {
  display: block;
  margin: 0 auto;
}

.legacy-page-godan .godan-kicks-table td:first-child img,
.legacy-page-godan .godan-kicks-table td:last-child img,
.legacy-page-godan .godan-kicks-detail td:first-child img,
.legacy-page-godan .godan-kicks-detail td:last-child img {
  margin-top: 0;
}

.legacy-page-godan table.godan-signature {
  display: table;
  width: min(100%, 48rem);
  margin: 0 auto;
  border-collapse: separate;
  border-spacing: 0;
}

.legacy-page-godan table.godan-signature td {
  padding: 0.6rem 0.8rem;
  border: 0;
  background: transparent;
  text-align: center;
}

.legacy-page-godan table.godan-signature .legacy-align-center {
  margin: 0;
  text-align: center;
}

.legacy-page-dense .godan-kicks-table td:first-child,
.legacy-page-dense .godan-kicks-table td:last-child,
.legacy-page-dense .godan-kicks-detail td:first-child,
.legacy-page-dense .godan-kicks-detail td:last-child,
.legacy-page-godan table:nth-of-type(4) td:first-child,
.legacy-page-godan table:nth-of-type(4) td:last-child,
.legacy-page-godan table:nth-of-type(5) td:first-child,
.legacy-page-godan table:nth-of-type(5) td:last-child {
  width: 20%;
}

.legacy-page-dense .godan-kicks-table td:nth-child(2),
.legacy-page-dense .godan-kicks-detail td:nth-child(2),
.legacy-page-godan table:nth-of-type(4) td:nth-child(2),
.legacy-page-godan table:nth-of-type(5) td:nth-child(2) {
  width: 60%;
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: 1rem;
  margin: 1rem 0 1.5rem;
}

.gallery-item {
  margin: 0;
  padding: 0.9rem;
  border: 1px solid rgba(110, 72, 38, 0.12);
  border-radius: 1rem;
  background: rgba(255, 251, 245, 0.92);
}

.gallery-item--single {
  margin: 1rem auto 1.5rem;
  max-width: min(100%, 42rem);
}

.gallery-item p:last-child,
.gallery-item figure:last-child {
  margin-bottom: 0;
}

.gallery-item img {
  display: block;
  margin: 0 auto 0.6rem;
}

.legacy-page-gallery > table,
.legacy-page-gallery > table > tbody,
.legacy-page-gallery > table > tbody > tr,
.legacy-page-gallery > table > tbody > tr > th,
.legacy-page-gallery > table > tr,
.legacy-page-gallery > table > tr > th {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.legacy-page-gallery > table table {
  display: block;
  width: 100%;
  margin: 1rem 0 1.5rem;
  overflow: visible;
}

.legacy-page-gallery > table table tr {
  display: flex;
  gap: 1rem;
  align-items: stretch;
}

.legacy-page-gallery > table table td,
.legacy-page-gallery > table table th {
  flex: 1 1 0;
  margin: 0;
  padding: 0.95rem;
  border: 1px solid rgba(110, 72, 38, 0.12);
  border-radius: 1rem;
  background: rgba(255, 251, 245, 0.92);
}

.legacy-page-gallery > table table td:empty,
.legacy-page-gallery > table table th:empty {
  display: none;
}

.legacy-page-gallery > table table p:last-child,
.legacy-page-gallery > table table figure:last-child {
  margin-bottom: 0;
}

.legacy-page-gallery > table table img {
  display: block;
  margin: 0 auto 0.65rem;
}

.legacy-page-gallery > table > tbody > tr > th > p,
.legacy-page-gallery > table > tr > th > p {
  max-width: 70rem;
  margin-left: auto;
  margin-right: auto;
}

.legacy-page-gallery > table > tbody > tr > th > p img,
.legacy-page-gallery > table > tr > th > p img {
  max-width: min(100%, 24rem);
}

.legacy-page-gallery > table > tbody > tr > th > p > img + img,
.legacy-page-gallery > table > tr > th > p > img + img {
  margin-left: 0.85rem;
}

.legacy-page-gallery > .reading-section-title,
.legacy-page-gallery > .reading-subtitle {
  text-align: center;
}

.legacy-page-gallery > .reading-section-title:first-of-type {
  margin-top: 0;
}

/* ==========================================================================
   Utilities / Legacy Alignment
   ========================================================================== */
.legacy-content .legacy-align-center {
  text-align: center;
}

.legacy-content .legacy-align-right {
  text-align: right;
}

.legacy-content .legacy-align-justify {
  text-align: justify;
}

/* ==========================================================================
   Article Families / India
   ========================================================================== */
.legacy-page-india .india-page__title {
  margin: 0 auto 1rem;
}

.legacy-page-india .india-page__intro {
  max-width: 72rem;
  margin-left: auto;
  margin-right: auto;
}

.legacy-page-india .india-page__emblems {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  align-items: center;
}

.legacy-page-india .india-page__emblems img {
  width: auto;
  max-width: min(100%, 10rem);
}

.legacy-page-india .india-table {
  display: block;
  margin: 1.25rem 0 0;
  overflow: visible;
}

.legacy-page-india .india-table tr {
  display: grid;
  gap: 1rem;
  align-items: start;
}

.legacy-page-india .india-table td,
.legacy-page-india .india-table th {
  margin: 0;
  padding: 0.85rem;
  border: 1px solid rgba(110, 72, 38, 0.12);
  border-radius: 1rem;
  background: rgba(255, 251, 245, 0.86);
}

.legacy-page-india .india-contact tr {
  grid-template-columns: minmax(15rem, 0.95fr) minmax(0, 1.45fr);
}

.legacy-page-india .india-table img {
  width: 100%;
  max-width: 100%;
}

.legacy-page-india .india-table p:first-child,
.legacy-page-india .india-page__intro > p:first-child {
  margin-top: 0;
}

.legacy-page-india .india-page__figure {
  max-width: 42rem;
  margin: 0 auto;
  text-align: center;
}

.legacy-page-colombia .colombia-page__title {
  margin: 0 auto 1rem;
}

.legacy-page-colombia .colombia-page__intro {
  max-width: 72rem;
  margin-left: auto;
  margin-right: auto;
}

.legacy-page-colombia .colombia-page__emblems {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  align-items: center;
}

.legacy-page-colombia .colombia-page__emblems img {
  width: auto;
  max-width: min(100%, 10rem);
}

.legacy-page-colombia .colombia-table {
  display: block;
  margin: 1.25rem 0 0;
  overflow: visible;
}

.legacy-page-colombia .colombia-table tr {
  display: grid;
  gap: 1rem;
  align-items: start;
}

.legacy-page-colombia .colombia-table td,
.legacy-page-colombia .colombia-table th {
  margin: 0;
  padding: 0.85rem;
  border: 1px solid rgba(110, 72, 38, 0.12);
  border-radius: 1rem;
  background: rgba(255, 251, 245, 0.86);
}

.legacy-page-colombia .colombia-contact tr,
.legacy-page-colombia .colombia-instructors tr {
  grid-template-columns: minmax(15rem, 0.95fr) minmax(0, 1.45fr);
}

.legacy-page-colombia .colombia-table img {
  width: 100%;
  max-width: 100%;
}

.legacy-page-colombia .colombia-page__intro p:first-child,
.legacy-page-colombia .colombia-table p:first-child {
  margin-top: 0;
}

.legacy-page-colombia .school-page__figure {
  margin-top: 1.35rem;
}

.legacy-page-chile .chile-page__title {
  margin: 0 auto 1rem;
}

.legacy-page-chile .chile-page__intro {
  max-width: 72rem;
  margin-left: auto;
  margin-right: auto;
}

.legacy-page-chile .chile-page__emblems {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  align-items: center;
}

.legacy-page-chile .chile-page__emblems img {
  width: auto;
  max-width: min(100%, 10rem);
}

.legacy-page-chile .chile-table {
  display: block;
  margin: 1.25rem 0 0;
  overflow: visible;
}

.legacy-page-chile .chile-table tr {
  display: grid;
  gap: 1rem;
  align-items: start;
}

.legacy-page-chile .chile-table td,
.legacy-page-chile .chile-table th {
  margin: 0;
  padding: 0.85rem;
  border: 1px solid rgba(110, 72, 38, 0.12);
  border-radius: 1rem;
  background: rgba(255, 251, 245, 0.86);
}

.legacy-page-chile .chile-contact tr,
.legacy-page-chile .chile-branch tr {
  grid-template-columns: minmax(15rem, 0.95fr) minmax(0, 1.45fr);
}

.legacy-page-chile .chile-table img {
  width: 100%;
  max-width: 100%;
}

.legacy-page-chile .chile-page__intro p:first-child,
.legacy-page-chile .chile-table p:first-child {
  margin-top: 0;
}

.legacy-page-chile .school-page__figure {
  margin-top: 1.35rem;
}

/* ==========================================================================
   Article Families / Okinawa
   ========================================================================== */
.legacy-page-okinawa .oki-table {
  display: block;
  margin: 1.35rem 0 1.65rem;
  overflow: visible;
}

.legacy-page-okinawa .oki-table tr {
  display: grid;
  gap: 1rem;
  align-items: start;
}

.legacy-page-okinawa .oki-table td,
.legacy-page-okinawa .oki-table th {
  margin: 0;
  padding: 0.85rem;
  border: 1px solid rgba(110, 72, 38, 0.12);
  border-radius: 1rem;
  background: rgba(255, 251, 245, 0.86);
}

.legacy-page-okinawa .oki-contact tr {
  grid-template-columns: minmax(16rem, 0.95fr) minmax(0, 1.55fr);
}

.legacy-page-okinawa .oki-hero-strip tr,
.legacy-page-okinawa .oki-story tr {
  grid-template-columns: minmax(11rem, 0.82fr) minmax(0, 1.55fr) minmax(11rem, 0.82fr);
}

.legacy-page-okinawa .oki-merge-tail tr {
  grid-template-columns: minmax(11rem, 0.82fr) minmax(0, 1.55fr);
}

.legacy-page-okinawa .spacer-cell {
  display: none;
}

.legacy-page-okinawa .oki-table img,
.legacy-page-okinawa .oki-table .missing-media {
  width: 100%;
  max-width: 100%;
}

.legacy-page-okinawa .oki-table p:first-child {
  margin-top: 0;
}

.legacy-page-okinawa .oki-page__title {
  margin: 0 auto 1rem;
}

.legacy-page-okinawa .oki-page__intro,
.legacy-page-okinawa .oki-page__note {
  max-width: 72rem;
  margin-left: auto;
  margin-right: auto;
}

.legacy-page-okinawa .oki-page__intro p,
.legacy-page-okinawa .oki-page__note p {
  margin-left: auto;
  margin-right: auto;
}

.legacy-page-okinawa .oki-page__intro .oki-contact {
  margin-bottom: 0;
}

.legacy-page-okinawa .oki-page__intro > p:first-child,
.legacy-page-okinawa .oki-page__note > p:first-child {
  margin-top: 0;
}

.legacy-page-okinawa .oki-page__note p:last-child {
  margin-bottom: 0;
}

.video-shell {
  display: grid;
  gap: 1rem;
}

.archive-video {
  width: min(100%, 48rem);
  min-height: min(45vw, 27rem);
  margin: 0 auto;
  background: #090503;
}

.landing-page {
  display: grid;
  place-items: center;
  padding: clamp(1.5rem, 4vw, 3rem);
}

.landing-shell {
  width: min(72rem, 100%);
  display: grid;
  gap: 1.25rem;
}

/* ==========================================================================
   Home / Landing Cards + Motion
   ========================================================================== */
.landing-hero {
  padding: clamp(1.6rem, 4vw, 3rem);
  border-radius: 2rem;
  background:
    radial-gradient(circle at top right, rgba(213, 122, 48, 0.22), transparent 20rem),
    linear-gradient(135deg, rgba(255, 249, 239, 0.98), rgba(248, 241, 229, 0.94));
}

.language-card {
  background: linear-gradient(180deg, rgba(255, 249, 239, 0.98), rgba(250, 243, 233, 0.95));
  color: var(--ink);
}

.language-card:hover,
.language-card:focus-visible,
.overview-card:hover,
.overview-card:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 22px 40px rgba(20, 10, 7, 0.14);
}

.language-card__title {
  display: block;
  margin-bottom: 0.45rem;
  font-size: 1.2rem;
  text-transform: uppercase;
  color: var(--ink);
}

@keyframes rise {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 980px) {
  .site-shell {
    grid-template-columns: 1fr;
  }

  .site-nav {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 60;
    width: min(21rem, calc(100vw - 2.4rem));
    height: 100vh;
    min-height: 100vh;
    overflow: hidden;
    border-right: 1px solid rgba(255, 255, 255, 0.08);
    border-bottom: 0;
    transform: translateX(calc(-100% - 1rem));
    transition: transform 220ms ease;
    box-shadow: none;
  }

  .site-nav.is-mobile-open {
    transform: translateX(0);
    box-shadow: var(--shadow);
  }

  .site-nav__mobile-toggle {
    position: fixed;
    top: 0.85rem;
    left: 0.85rem;
    z-index: 70;
    display: inline-flex;
  }

  .site-main {
    padding-top: clamp(3.8rem, 10vw, 4.5rem);
  }

  .nav-stack {
    overflow-y: auto;
    overscroll-behavior: contain;
  }

  body.is-mobile-nav-open {
    overflow: hidden;
  }

  body.is-mobile-nav-open .site-nav__backdrop {
    display: block;
  }
}

@media (max-width: 640px) {
  .page-card__title,
  .landing-hero__title {
    font-size: 1.8rem;
  }

  .page-card,
  .legacy-content,
  .landing-hero,
  .language-card {
    border-radius: 1.25rem;
  }

  .gallery-grid {
    grid-template-columns: 1fr;
  }

  .bubishi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .school-page__lineage-grid {
    grid-template-columns: 1fr;
  }

  .pachi-compare__headings,
  .pachi-compare__row {
    grid-template-columns: 1fr;
  }

  .pachi-compare__heading--left,
  .pachi-compare__heading--right {
    text-align: center;
  }

  .pachi-compare__cell--left {
    border-right: 0;
    border-bottom: 1px solid rgba(110, 72, 38, 0.16);
  }

  .legacy-page-bubishi-links table:first-of-type tr {
    grid-template-columns: 1fr;
  }

  .legacy-page-gallery table,
  .legacy-page-gallery tbody,
  .legacy-page-gallery tr,
  .legacy-page-gallery th,
  .legacy-page-gallery td,
  .legacy-page-profile table,
  .legacy-page-profile tbody,
  .legacy-page-profile tr,
  .legacy-page-profile th,
  .legacy-page-profile td {
    display: block;
    width: 100% !important;
  }

  .legacy-page-gallery table,
  .legacy-page-profile table {
    overflow: visible;
  }

  .legacy-page-gallery td,
  .legacy-page-gallery th,
  .legacy-page-profile td,
  .legacy-page-profile th {
    margin-bottom: 1rem;
    padding: 0;
  }

  .legacy-page-gallery img,
  .legacy-page-profile img {
    width: 100%;
    max-width: 100%;
  }

  .legacy-page-dense table,
  .legacy-page-dense tbody,
  .legacy-page-dense tr,
  .legacy-page-dense th,
  .legacy-page-dense td {
    display: block;
    width: 100% !important;
  }

  .legacy-page-dense td,
  .legacy-page-dense th {
    margin-bottom: 0.9rem;
    padding: 0;
  }

  .legacy-page-dense table {
    overflow: visible;
    margin-bottom: 1.25rem;
  }

  .legacy-page-dense table.reading-grid-table--native {
    display: table;
    width: 100% !important;
    table-layout: fixed;
    overflow: hidden;
  }

  .legacy-page-dense table.reading-grid-table--native > thead {
    display: table-header-group;
  }

  .legacy-page-dense table.reading-grid-table--native > tbody {
    display: table-row-group;
    width: 100% !important;
  }

  .legacy-page-dense table.reading-grid-table--native > thead > tr,
  .legacy-page-dense table.reading-grid-table--native > tbody > tr {
    display: table-row;
  }

  .legacy-page-dense table.reading-grid-table--native > thead > tr > th,
  .legacy-page-dense table.reading-grid-table--native > tbody > tr > td {
    display: table-cell;
    width: auto !important;
    margin-bottom: 0;
    padding: 0.7rem 0.75rem;
  }

  .legacy-page-dense img {
    width: 100%;
    max-width: 100%;
  }
}
