/* Ghost Koenig card width helpers — required by gscan (GS050) */
.kg-width-wide {
  position: relative;
  width: 85vw;
  max-width: 1200px;
  margin-left: calc(50% - 50vw + 7.5vw);
  margin-right: calc(50% - 50vw + 7.5vw);
}

.kg-width-full {
  position: relative;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.kg-width-full img,
.kg-width-wide img {
  display: block;
  width: 100%;
  height: auto;
}

/* Ghost custom fonts fallbacks also live in fonts.css; keep vars visible to gscan */
body {
  font-family: var(--gh-font-body, var(--theme-font-body, "Roboto", Helvetica, Arial, sans-serif));
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--gh-font-heading, var(--theme-font-heading, "Oswald", Impact, sans-serif));
}

/* Header logo — locked HTML parity: 44px tall (36px ≤480px), width auto.
   max-width caps an over-wide admin-uploaded logo. Loads after app.css so
   it must set the height explicitly (was height:auto → rendered too tall). */
.logo__img,
.site-header .logo img {
  display: block;
  max-width: 220px;
  height: 44px;
  width: auto;
}

.logo svg,
.site-header .logo svg {
  display: block;
  max-width: 220px;
  height: 44px;
  width: auto;
}

@media (max-width: 480px) {
  .logo__img,
  .site-header .logo img,
  .logo svg,
  .site-header .logo svg {
    height: 36px;
  }
}

/* Footer logo — HTML width="280" + height clamp */
.site-footer__logo img,
.site-footer .logo__img {
  display: block;
  max-width: 280px;
  width: auto;
  height: clamp(4.25rem, 8vw, 5.5rem);
  max-height: none;
  filter: brightness(0) invert(1);
  opacity: 0.98;
}

/*
 * Footer column centering — must load AFTER app.css.
 * app.css copies old .site-footer__groups (margin-auto on a grid child) which
 * can left-pack; flex shell + explicit max-width centers like locked HTML.
 */
.site-footer__groups-shell {
  display: flex;
  justify-content: center;
  width: 100%;
  max-width: 100%;
  padding-inline: var(--container-pad, clamp(1.25rem, 4vw, 2.5rem));
  box-sizing: border-box;
}

.site-footer__groups {
  --footer-cols: 5;
  display: grid !important;
  grid-template-columns: repeat(var(--footer-cols), minmax(0, 1fr)) !important;
  gap: clamp(1.5rem, 3vw, 2.75rem);
  width: 100% !important;
  max-width: 1152px !important;
  margin-inline: 0 !important;
  padding-inline: 0 !important;
  box-sizing: border-box;
  align-items: start;
  justify-items: start;
}

@media (max-width: 1100px) {
  .site-footer__groups {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 700px) {
  .site-footer__groups {
    grid-template-columns: 1fr 1fr !important;
  }
}

@media (max-width: 420px) {
  .site-footer__groups {
    grid-template-columns: 1fr !important;
  }
}

/* Header: mobile hide ONLINE TRAINING CTA (beats app.css / .btn display) */
.site-header .btn.btn-header {
  display: none !important;
}

@media (min-width: 1100px) {
  .site-header .btn.btn-header {
    display: inline-flex !important;
  }
}

.site-header__clip--light .btn.btn-header {
  background: var(--primary-brand, #000050) !important;
  color: #fff !important;
  border: 1px solid var(--primary-brand, #000050) !important;
  padding: 0.65rem 1rem;
}

/* Nav active: same size as siblings; underline only (beats app.css) */
.site-header .nav-link {
  text-transform: uppercase;
  font-size: 0.68rem;
  font-weight: 500;
}

.site-header .nav-link.is-active {
  font-size: 0.68rem !important;
  font-weight: 500 !important;
  border-bottom: 2px solid currentColor !important;
  text-decoration: none !important;
}

.site-header__clip--dark .nav-link.is-active {
  border-bottom-color: rgba(255, 255, 255, 0.92) !important;
}

.site-header__clip--light .nav-link.is-active {
  border-bottom-color: var(--primary-brand, #000050) !important;
}

/* Dropdown: taller before scrollbar (beats app.css 26rem cap) */
.site-header .nav-dropdown-menu {
  max-height: 80vh !important;
}

/* In-page section anchors clear sticky header */
.scroll-mt-header,
#quality,
#online,
#armed,
#unarmed,
#skill,
#value,
#info {
  scroll-margin-top: var(--header-h, 72px);
}

/* ===========================================================================
   KOENIG EDITOR CONTENT — SITE-WIDE (single source)
   Whatever the Ghost editor produces (buttons, toggles, callouts, bookmarks,
   embeds…) renders in the site design on EVERY page (course, city, prose,
   blog) and never breaks the layout. Keep all editor-card styling here.
   =========================================================================== */

/* --- Button card → site button (navy), always left-aligned (never centered) --- */
.kg-button-card {
  display: flex;
  justify-content: flex-start;
  margin: 0.5rem 0;
}
.kg-button-card.kg-align-center,
.kg-button-card.kg-align-left {
  justify-content: flex-start;
}
.kg-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  max-width: 100%;
  border-radius: var(--radius-brand, 4px);
  padding: 0.7rem 1.35rem;
  font-family: var(--font-oswald, "Oswald", sans-serif);
  font-size: 0.82rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  /* !important: beats container link rules (e.g. .course-block__body a) that
     would otherwise underline the editor button. */
  text-decoration: none !important;
  transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.kg-btn:hover {
  text-decoration: none !important;
}
.kg-product-card-button {
  text-decoration: none !important;
}
/* Color override — beats Ghost's injected cards.css (.kg-btn-accent uses the
   Admin accent colour). Our two-class selectors outrank Ghost's single class,
   so editor buttons stay the site navy regardless of the accent/default variant. */
.kg-button-card .kg-btn,
.kg-btn.kg-btn-accent,
.kg-btn.kg-btn-default {
  border: 1px solid var(--primary-brand, #000050) !important;
  background: var(--primary-brand, #000050) !important;
  color: #fff !important;
}
.kg-button-card .kg-btn:hover,
.kg-btn.kg-btn-accent:hover,
.kg-btn.kg-btn-default:hover {
  background: #00006a !important;
  border-color: #00006a !important;
  transform: translateY(-1px);
}
@media (prefers-reduced-motion: reduce) {
  .kg-button-card .kg-btn:hover,
  .kg-btn.kg-btn-accent:hover {
    transform: none;
  }
}

/* --- Toggle card → IDENTICAL to the site FAQ accordion (image reference) ---
   Re-skinned to match the theme FAQ rows. Open/close is driven by our own
   koenig-cards.js (event-delegated, so it also works on cloned/slot content)
   via the [data-kg-toggle-state] attribute — no dependency on Ghost's card JS. */
.kg-card.kg-toggle-card {
  margin: 0.5rem 0;
  padding: 1rem 1.15rem;
  border: 1px solid rgba(192, 192, 192, 0.65);
  border-radius: var(--radius, 0.65rem);
  background:
    radial-gradient(circle at 18% 12%, rgba(255, 255, 255, 0.98), transparent 50%),
    linear-gradient(160deg, #ffffff 0%, #f7f9fc 100%);
  box-shadow: 0 10px 24px rgba(0, 0, 80, 0.06);
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}
.kg-card.kg-toggle-card:hover {
  border-color: rgba(192, 192, 192, 0.95);
  box-shadow: 0 14px 30px rgba(0, 0, 80, 0.1);
}
.kg-card.kg-toggle-card .kg-toggle-heading {
  align-items: center;
  gap: 1rem;
}
.kg-card.kg-toggle-card h4.kg-toggle-heading-text {
  margin: 0; /* cancel .ghost-content h4 margin so the heading stays centred in its flex row */
  font-family: var(--font-oswald, "Oswald", sans-serif);
  font-size: clamp(1.05rem, 1.9vw, 1.25rem); /* 20px card/accordion title */
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--primary-brand, #000050);
}
/* Chevron sits in a circular badge — matches the FAQ rows. Ghost injects the
   chevron <svg> and handles its rotation; we only draw the badge + recolour. */
.kg-card.kg-toggle-card .kg-toggle-card-icon {
  flex: none;
  width: 2rem;
  height: 2rem;
  margin-left: 1rem;
  border: 1px solid rgba(192, 192, 192, 0.75);
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.7);
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
.kg-card.kg-toggle-card .kg-toggle-card-icon:hover {
  background-color: #fff;
  border-color: rgba(0, 0, 80, 0.35);
}
.kg-card.kg-toggle-card .kg-toggle-heading svg {
  width: 0.85rem;
  color: var(--primary-brand, #000050);
}
.kg-card.kg-toggle-card .kg-toggle-content,
.kg-card.kg-toggle-card .kg-toggle-content p,
.kg-card.kg-toggle-card .kg-toggle-content li {
  font-family: var(--font-roboto, "Roboto", sans-serif);
  /* Body copy at 18px (title sits at 20px above), solid near-black per request.
     Explicit size beats the inherited .ghost-content p. */
  font-size: clamp(1rem, 1.6vw, 1.125rem); /* 18px */
  line-height: 1.7;
  color: var(--text-main, #212121);
}

/* Open/close behaviour (self-controlled — see koenig-cards.js). Collapsed by
   default; only the open state reveals the content. Two-class selectors so we
   outrank Ghost's injected cards.css if it also loads. */
.kg-card.kg-toggle-card .kg-toggle-heading {
  cursor: pointer;
  user-select: none;
}
.kg-card.kg-toggle-card .kg-toggle-content {
  display: none;
  margin-top: 0;
}
.kg-card.kg-toggle-card[data-kg-toggle-state="open"] .kg-toggle-content {
  display: block;
  margin-top: 0.65rem;
}
.kg-card.kg-toggle-card .kg-toggle-card-icon svg {
  transition: transform 0.2s ease;
}
.kg-card.kg-toggle-card[data-kg-toggle-state="open"] .kg-toggle-card-icon svg {
  transform: rotate(180deg);
}

/* --- Callout card --- */
.kg-callout-card {
  display: flex;
  gap: 0.75rem;
  margin: 0.5rem 0;
  padding: 1rem 1.15rem;
  border: 1px solid rgba(0, 0, 80, 0.12);
  border-radius: 0.65rem;
  background: rgba(0, 0, 80, 0.05);
}
.kg-callout-emoji {
  flex: none;
  font-size: 1.15rem;
  line-height: 1.5;
}
.kg-callout-text {
  margin: 0;
  font-family: var(--font-roboto, "Roboto", sans-serif);
  line-height: 1.6;
  color: rgba(0, 0, 80, 0.82);
}

/* --- Bookmark card --- */
.kg-bookmark-card,
.kg-bookmark-container {
  display: flex;
  margin: 0.5rem 0;
  border: 1px solid rgba(0, 0, 80, 0.12);
  border-radius: var(--radius-brand, 4px);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  background: #fff;
}
.kg-bookmark-content {
  padding: 1rem 1.15rem;
  min-width: 0;
}
.kg-bookmark-title {
  font-family: var(--font-oswald, "Oswald", sans-serif);
  font-weight: 600;
  color: var(--primary-brand, #000050);
}
.kg-bookmark-thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* --- Embeds / video keep inside their column --- */
.kg-embed-card,
.kg-embed-card iframe,
.kg-video-card {
  max-width: 100%;
}
.kg-embed-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 1.25rem 0;
}
.kg-embed-card iframe {
  width: 100%;
}
.kg-video-card {
  margin: 1.25rem 0;
}
.kg-video-card video,
.kg-audio-card audio {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--radius-brand, 4px);
}

/* Native-media fallback (cloned slot pages) — hide Ghost's dead custom player
   chrome so only the working native <video>/<audio> controls show. */
.kg-native-media .kg-video-overlay,
.kg-native-media .kg-video-player-container,
.kg-native-media .kg-video-play-icon,
.kg-native-media .kg-audio-play-icon,
.kg-native-media .kg-audio-pause-icon,
.kg-native-media .kg-audio-player-container > *:not(audio):not(.kg-audio-title) {
  display: none !important;
}
.kg-native-media.kg-audio-card {
  flex-wrap: wrap;
}
.kg-native-media .kg-audio-player-container {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

/* --- Image card + caption --- */
.kg-card.kg-image-card {
  margin: 1.75rem 0;
}
.kg-image-card img.kg-image {
  display: block;
  width: 100%;
  height: auto;
  margin-inline: auto;
  border-radius: var(--radius-brand, 4px);
}
.kg-image-card figcaption,
.kg-card figcaption {
  margin-top: 0.6rem;
  font-family: var(--font-roboto, "Roboto", sans-serif);
  font-size: 0.82rem;
  line-height: 1.5;
  color: var(--text-meta, #757575);
  text-align: center;
}

/* --- Gallery card --- */
.kg-gallery-card {
  margin: 1.75rem 0;
}
.kg-gallery-container {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.kg-gallery-row {
  display: flex;
  flex-direction: row;
  gap: 0.6rem;
}
.kg-gallery-image {
  flex: 1 1 0;
  min-width: 0;
}
.kg-gallery-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--radius-brand, 4px);
}
@media (max-width: 640px) {
  .kg-gallery-row {
    flex-direction: column;
  }
}

/* --- Header card (v1 + v2/beta) --- */
.kg-header-card {
  margin: 1.75rem 0;
  padding: clamp(2rem, 6vw, 4rem) clamp(1.25rem, 4vw, 2.5rem);
  border-radius: var(--radius-brand, 4px);
  text-align: center;
  color: #fff;
  background:
    radial-gradient(circle at 20% 15%, rgba(255, 255, 255, 0.14), transparent 45%),
    linear-gradient(158deg, #0a0a2e 0%, #000050 55%, #12123a 100%);
}
.kg-header-card.kg-style-image,
.kg-header-card[data-kg-background-image] {
  background-size: cover;
  background-position: center;
}
.kg-header-card-heading,
.kg-header-card h2,
.kg-header-card h3 {
  margin: 0 0 0.6rem;
  font-family: var(--font-oswald, "Oswald", sans-serif);
  font-size: clamp(1.6rem, 4vw, 2.5rem);
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #fff;
}
.kg-header-card-subheading {
  margin: 0 auto 1.25rem;
  max-width: 48ch;
  font-family: var(--font-roboto, "Roboto", sans-serif);
  font-size: clamp(0.95rem, 1.8vw, 1.1rem);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.85);
}
.kg-header-card-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  border-radius: var(--radius-brand, 4px);
  background: #fff;
  color: var(--primary-brand, #000050);
  padding: 0.75rem 1.5rem;
  font-family: var(--font-oswald, "Oswald", sans-serif);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
}

/* --- Product card --- */
.kg-product-card {
  margin: 1.75rem 0;
}
.kg-product-card-container {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: clamp(1rem, 2.5vw, 1.5rem);
  border: 1px solid rgba(0, 0, 80, 0.12);
  border-radius: var(--radius-brand, 4px);
  background: #fff;
  box-shadow: 0 10px 26px rgba(0, 0, 80, 0.07);
}
.kg-product-card-image {
  width: 100%;
  height: auto;
  border-radius: var(--radius-brand, 4px);
}
.kg-product-card-container .kg-product-card-title,
.kg-product-card-title-container,
.kg-product-card-title {
  margin: 0;
  font-family: var(--font-oswald, "Oswald", sans-serif);
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--primary-brand, #000050);
  text-align: left; /* Ghost centres this by default — keep it left-aligned like the body */
}
.kg-product-card-description {
  font-family: var(--font-roboto, "Roboto", sans-serif);
  line-height: 1.6;
  color: var(--text-main, #212121);
}
.kg-product-card-container .kg-product-card-button,
.kg-product-card-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  /* Left-aligned, hugs its label instead of stretching full-width in the
     column-flex container (Ghost defaults this to 100% width). */
  width: fit-content;
  align-self: flex-start;
  border-radius: var(--radius-brand, 4px);
  border: 1px solid var(--primary-brand, #000050) !important;
  background: var(--primary-brand, #000050) !important;
  color: #fff !important;
  padding: 0.65rem 1.25rem;
  font-family: var(--font-oswald, "Oswald", sans-serif);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
}
.kg-product-card-rating {
  color: #f5a623;
}

/* --- Audio card --- */
.kg-audio-card {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 1.25rem 0;
  padding: 1rem 1.15rem;
  border: 1px solid rgba(0, 0, 80, 0.12);
  border-radius: var(--radius-brand, 4px);
  background: #fff;
}
.kg-audio-thumbnail {
  width: 3.5rem;
  height: 3.5rem;
  flex: none;
  border-radius: var(--radius-brand, 4px);
  object-fit: cover;
}
.kg-audio-title {
  font-family: var(--font-oswald, "Oswald", sans-serif);
  font-weight: 600;
  color: var(--primary-brand, #000050);
}
.kg-audio-player-container {
  flex: 1 1 auto;
  min-width: 0;
}
.kg-audio-card audio {
  width: 100%;
}

/* --- File card --- */
.kg-file-card {
  margin: 1.25rem 0;
}
.kg-file-card-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.15rem;
  border: 1px solid rgba(0, 0, 80, 0.12);
  border-radius: var(--radius-brand, 4px);
  background: #fff;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.kg-file-card-container:hover {
  border-color: rgba(0, 0, 80, 0.3);
  box-shadow: 0 10px 24px rgba(0, 0, 80, 0.08);
}
.kg-file-card-title {
  font-family: var(--font-oswald, "Oswald", sans-serif);
  font-weight: 600;
  color: var(--primary-brand, #000050);
}
.kg-file-card-caption,
.kg-file-card-metadata {
  font-family: var(--font-roboto, "Roboto", sans-serif);
  font-size: 0.82rem;
  color: var(--text-meta, #757575);
}

/* --- Signup card --- */
.kg-signup-card {
  margin: 1.75rem 0;
  border-radius: var(--radius-brand, 4px);
  overflow: hidden;
}
.kg-signup-card-heading {
  font-family: var(--font-oswald, "Oswald", sans-serif);
  color: #fff;
}
.kg-signup-card .kg-signup-card-button {
  border-radius: var(--radius-brand, 4px);
  font-family: var(--font-oswald, "Oswald", sans-serif);
  text-transform: uppercase;
}

/* --- Pullquote (alt blockquote) --- */
blockquote.kg-blockquote-alt {
  margin: 1.75rem 0;
  padding: 0.5rem 0;
  border: 0;
  font-family: var(--font-oswald, "Oswald", sans-serif);
  font-size: clamp(1.35rem, 3vw, 1.85rem);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: 0.01em;
  text-align: center;
  color: var(--primary-brand, #000050);
}

/* --- NFT card --- */
.kg-nft-card {
  margin: 1.5rem 0;
  border: 1px solid rgba(0, 0, 80, 0.12);
  border-radius: var(--radius-brand, 4px);
  overflow: hidden;
}

/* ---------------------------------------------------------------------------
   Editor prose baseline for shared .ghost-content wrappers (course / city /
   service-areas etc.). Blog single (.post-content) has its own richer styles
   in blog.css which load later and win there. This guarantees tables and the
   common editor elements are always readable in the design elsewhere.
   --------------------------------------------------------------------------- */
/* Baseline typography for .ghost-content wrappers (course EXTRA block, generic
   pages, city/service prose). Blog single (.post-content) ships richer styles in
   blog.css that load later and win there, so this never disturbs the blog. */
.ghost-content > :first-child {
  margin-top: 0;
}
.ghost-content p,
.ghost-content ul,
.ghost-content ol {
  font-family: var(--font-roboto, "Roboto", sans-serif);
  font-size: clamp(1rem, 1.6vw, 1.125rem); /* 18px */
  line-height: 1.75;
  color: var(--text-main, #212121);
  margin: 0 0 1.05rem;
}
.ghost-content ul,
.ghost-content ol {
  padding-left: 1.4rem;
}
.ghost-content li {
  margin: 0.35rem 0;
}
.ghost-content strong,
.ghost-content b {
  font-weight: 500; /* clearer than heavy 700 bold */
}
.ghost-content h2,
.ghost-content h3,
.ghost-content h4 {
  font-family: var(--font-oswald, "Oswald", sans-serif);
  letter-spacing: 0.03em;
  color: var(--primary-brand, #000050);
  margin: 1.6rem 0 0.6rem;
  line-height: 1.2;
}
.ghost-content h2 {
  font-size: clamp(1.35rem, 2.4vw, 1.5rem); /* 24px */
  text-transform: uppercase;
}
.ghost-content h3 {
  font-size: clamp(1.1rem, 1.9vw, 1.25rem); /* 20px */
}
.ghost-content h4 {
  font-size: clamp(1rem, 1.6vw, 1.125rem); /* 18px */
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.ghost-content a:not(.kg-btn):not(.kg-product-card-button):not([class*="kg-"]) {
  color: var(--primary-brand, #000050);
  text-decoration: underline;
  text-underline-offset: 2px;
  font-weight: 500;
}
.ghost-content a:not(.kg-btn):not(.kg-product-card-button):not([class*="kg-"]):hover {
  color: #00006a;
}
.ghost-content blockquote {
  margin: 1.5rem 0;
  padding: 0.5rem 0 0.5rem 1.1rem;
  border-left: 3px solid var(--primary-brand, #000050);
  color: var(--text-meta, #757575);
  font-style: italic;
}
.ghost-content img {
  max-width: 100%;
  height: auto;
  border-radius: var(--radius-brand, 4px);
}
.ghost-content hr {
  border: 0;
  border-top: 1px solid rgba(0, 0, 80, 0.12);
  margin: 1.75rem 0;
}

.ghost-content table {
  width: 100%;
  margin: 1.5rem 0;
  border-collapse: collapse;
  font-size: 0.95rem;
  border: 1px solid rgba(192, 192, 192, 0.6);
  border-radius: var(--radius, 4px);
  overflow: hidden;
}
.ghost-content th,
.ghost-content td {
  padding: 0.7rem 0.95rem;
  text-align: left;
  border-bottom: 1px solid rgba(192, 192, 192, 0.45);
}
.ghost-content thead th {
  background: var(--primary-brand, #000050);
  color: #fff;
  font-family: var(--font-oswald, "Oswald", sans-serif);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.82rem;
}
.ghost-content tbody tr:nth-child(even) {
  background: rgba(0, 0, 80, 0.03);
}
.ghost-content tbody tr:last-child td {
  border-bottom: 0;
}
.ghost-content .kg-table-card,
.ghost-content .kg-table {
  overflow-x: auto;
}
