.twd-ap-articles {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}

.twd-ap-articles-toolbar {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 12px !important;
  margin-bottom: 24px !important;
}
.twd-ap-articles-search {
  flex: 1 1 220px !important;
  min-width: 180px !important;
  max-width: 320px !important;
  padding: 10px 18px !important;
  border: 1px solid #9ca3af !important;
  border-radius: 999px !important;
  font-size: 14px !important;
  box-sizing: border-box !important;
  background: #fff !important;
  color: #1f2937 !important;
}
.twd-ap-articles-search:focus {
  outline: none !important;
  border-color: var(--twd-ap-accent-color, #2563eb) !important;
}
.twd-ap-articles-category-select {
  padding: 10px 32px 10px 18px !important;
  border: 1px solid #9ca3af !important;
  border-radius: 999px !important;
  font-size: 14px !important;
  background: #fff !important;
  color: #1f2937 !important;
  max-width: 220px !important;
}
/* The gear (Customise this grid) and the New article circle: two round buttons in the link colour, one above
   the other, to the left of the category list. Each says what it is on hover or keyboard focus. */
.twd-ap-articles-tools {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  flex-shrink: 0 !important;
}
.twd-ap-articles-tool {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  width: 40px !important;
  height: 40px !important;
  min-width: 40px !important;
  min-height: 40px !important;
  max-width: 40px !important;
  max-height: 40px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: var(--twd-ap-accent-color, #2563eb) !important;
  color: var(--twd-ap-accent-ink, #fff) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18) !important;
  cursor: pointer !important;
  transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease !important;
}
.twd-ap-articles-tool svg {
  display: block !important;
  pointer-events: none !important;
}
/* A theme's own svg rules (fill, stroke, stroke width) must not undo the drawn icons. */
.twd-ap-articles-tool svg path.twd-ap-icon-fill {
  fill: currentColor !important;
  stroke: none !important;
}
.twd-ap-articles-tool svg path.twd-ap-icon-line {
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2px !important;
  stroke-linecap: round !important;
}
/* hover and keyboard focus are two rules: a browser that does not know :focus-visible drops a whole grouped rule */
.twd-ap-articles-tool:hover {
  filter: brightness(0.9) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.24) !important;
}
.twd-ap-articles-tool:focus-visible {
  filter: brightness(0.9) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.24) !important;
}
.twd-ap-articles-tool:focus-visible {
  outline: 2px solid #1f2937 !important;
  outline-offset: 2px !important;
}
.twd-ap-articles-tool::after {
  content: attr(data-tip) !important;
  position: absolute !important;
  left: calc(100% + 10px) !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  padding: 5px 10px !important;
  border-radius: 6px !important;
  background: #1f2937 !important;
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity 0.15s ease !important;
  z-index: 5 !important;
}
.twd-ap-articles-tool:hover::after {
  opacity: 1 !important;
}
.twd-ap-articles-tool:focus-visible::after {
  opacity: 1 !important;
}
/* Right-to-left pages: the circles sit at the right edge, so the name opens toward the left. */
html[dir="rtl"] .twd-ap-articles-tool::after,
body.rtl .twd-ap-articles-tool::after {
  left: auto !important;
  right: calc(100% + 10px) !important;
}

.twd-ap-articles-groups {
  display: flex !important;
  flex-direction: column !important;
  gap: 40px !important;
}
.twd-ap-articles-group-head {
  display: flex !important;
  align-items: baseline !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin-bottom: 16px !important;
}
.twd-ap-articles-group-title {
  margin: 0 !important;
  font-size: 21px !important;
  font-weight: 700 !important;
  color: #1f2937 !important;
}
.twd-ap-articles-group-more {
  border: none !important;
  background: none !important;
  color: var(--twd-ap-accent-color, #2563eb) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  text-decoration: none !important;
}
.twd-ap-articles-group-more:hover {
  text-decoration: underline !important;
}

.twd-ap-no-thumbnails .twd-ap-article-body {
  padding-top: 20px !important;
}

.twd-ap-articles-grid {
  display: grid !important;
  grid-template-columns: repeat(var(--twd-ap-articles-columns, 3), 1fr) !important;
  gap: 24px !important;
  margin: 0 !important;
  padding: 0 !important;
}
.twd-ap-articles-grid[hidden] {
  display: none !important;
}
.twd-ap-article-card {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  background: var(--twd-site-color-surface, #fff) !important;
  border: 1px solid var(--twd-site-color-border, #e5e7eb) !important;
  border-radius: var(--twd-site-radius-card, 12px) !important;
  overflow: hidden !important;
  text-decoration: none !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06) !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}
.twd-ap-article-card:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.12) !important;
}
.twd-ap-article-thumb {
  display: block !important;
  width: 100% !important;
  height: 170px !important;
  flex-shrink: 0 !important;
  background-color: #f3f4f6 !important;
  background-size: cover !important;
  background-position: center !important;
}
.twd-ap-article-thumb-placeholder {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: linear-gradient(135deg, #eef2ff, #f3f4f6) !important;
  color: #9ca3af !important;
}
.twd-ap-article-body {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  gap: 6px !important;
  padding: 18px !important;
}
/* 1.50.4: the category on its own line above the date, so the details never wrap mid-phrase. */
.twd-ap-article-eyebrow {
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--twd-site-color-eyebrow, var(--twd-ap-accent-color, #2563eb)) !important;
}
.twd-ap-article-date {
  font-size: 13px !important;
  color: var(--twd-site-color-muted, #6b7280) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}
.twd-ap-article-title {
  font-size: 17px !important;
  font-weight: 700 !important;
  color: #1f2937 !important;
  line-height: 1.35 !important;
}
.twd-ap-article-excerpt {
  font-size: 14px !important;
  color: #4b5563 !important;
  line-height: 1.5 !important;
}
.twd-ap-article-readmore {
  margin-top: auto !important;
  padding-top: 10px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  color: var(--twd-ap-readmore-color, #1d4ed8) !important;
  transition: filter 0.15s ease !important;
}
.twd-ap-article-card:hover .twd-ap-article-readmore {
  filter: brightness(0.8) !important;
}

.twd-ap-articles-grid .twd-ap-muted {
  color: #6b7280 !important;
  font-size: 14px !important;
  grid-column: 1 / -1 !important;
}

/* Loading skeleton: same card box (thumb height, body padding) as a real
   .twd-ap-article-card, so nothing changes size when real cards replace
   these -- that swap, not the shimmer, is what read as the page
   "resizing" while articles loaded in. */
.twd-ap-skeleton-card {
  cursor: default !important;
}
.twd-ap-skeleton-card:hover {
  transform: none !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06) !important;
}
.twd-ap-skeleton-block,
.twd-ap-skeleton-line {
  display: block !important;
  border-radius: 5px !important;
  background: linear-gradient(90deg, #eef0f3 25%, #f7f8fa 37%, #eef0f3 63%) !important;
  background-size: 400% 100% !important;
  animation: twd-ap-skeleton-shimmer 1.4s ease infinite !important;
}
.twd-ap-skeleton-block {
  height: 170px !important;
  border-radius: 0 !important;
}
.twd-ap-skeleton-line {
  height: 12px !important;
  margin: 0 !important;
}
.twd-ap-skeleton-line-date {
  width: 45% !important;
  height: 10px !important;
}
.twd-ap-skeleton-line-title {
  width: 90% !important;
  height: 15px !important;
}
.twd-ap-skeleton-line-title-short {
  width: 60% !important;
  height: 15px !important;
}
.twd-ap-skeleton-line-excerpt {
  width: 100% !important;
}
.twd-ap-skeleton-line-heading {
  width: 200px !important;
  height: 21px !important;
  margin: 0 0 16px !important;
}
@keyframes twd-ap-skeleton-shimmer {
  0% { background-position: 100% 50%; }
  100% { background-position: 0 50%; }
}
@media (prefers-reduced-motion: reduce) {
  .twd-ap-skeleton-block,
  .twd-ap-skeleton-line {
    animation: none !important;
  }
}

.twd-ap-articles-empty[hidden] {
  display: none !important;
}
.twd-ap-articles-empty {
  text-align: center !important;
  color: #6b7280 !important;
  font-size: 15px !important;
  padding: 48px 16px !important;
}

.twd-ap-articles-none[hidden] {
  display: none !important;
}
.twd-ap-articles-none {
  text-align: center !important;
  color: #6b7280 !important;
  font-size: 15px !important;
  padding: 48px 16px !important;
}

/* Browse by topic: plain links to each category archive, printed by the
   server so crawlers can follow them. Stays after the JS loads. */
.twd-ap-articles-topics {
  margin-top: 36px !important;
  padding-top: 20px !important;
  border-top: 1px solid #e5e7eb !important;
}
.twd-ap-articles-topics-title {
  margin: 0 0 12px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  color: #6b7280 !important;
}
.twd-ap-articles-topics ul {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.twd-ap-articles-topics li {
  margin: 0 !important;
  padding: 0 !important;
}
/* Every topic is the same small pill (1.49.0): a soft tint of the link colour, the link colour for the writing
   and the border; the topic you are on is filled; All articles is outlined in grey. Browsers without color-mix()
   keep the border and the writing in the link colour on white. */
.twd-ap-articles-topics a,
.twd-ap-topics-current span {
  display: inline-block !important;
  box-sizing: border-box !important;
  padding: 7px 16px !important;
  border: 1px solid var(--twd-ap-accent-color, #2563eb) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: var(--twd-ap-accent-color, #2563eb) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  text-decoration: none !important;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease !important;
}
@supports (background: color-mix(in srgb, red 10%, white)) {
  .twd-ap-articles-topics a {
    background: color-mix(in srgb, var(--twd-ap-accent-color, #2563eb) 10%, #fff) !important;
    border-color: color-mix(in srgb, var(--twd-ap-accent-color, #2563eb) 45%, #fff) !important;
    color: color-mix(in srgb, var(--twd-ap-accent-color, #2563eb) 45%, #000) !important;
  }
  .twd-ap-articles-topics a:hover {
    background: color-mix(in srgb, var(--twd-ap-accent-color, #2563eb) 20%, #fff) !important;
    border-color: var(--twd-ap-accent-color, #2563eb) !important;
  }
}
.twd-ap-articles-topics a:hover {
  text-decoration: none !important;
}
/* "Centre the Browse by topic row" (Customise this grid > Related articles). */
.twd-ap-articles-topics.twd-ap-topics-center {
  text-align: center !important;
}
.twd-ap-articles-topics.twd-ap-topics-center ul {
  justify-content: center !important;
}

.twd-ap-articles-loadmore-row {
  display: flex !important;
  justify-content: center !important;
  margin-top: 28px !important;
}
/* A theme or page builder's own global button styling (Elementor
   especially) commonly forces display on every <button> with its own
   !important, which the browser's built-in [hidden] { display: none }
   (no !important, a UA stylesheet default) then loses to -- the JS was
   correctly setting the button's hidden property (confirmed via the
   DEBUG line: loadmore_hidden=true), it just wasn't actually hiding.
   Same bug class as .twd-ap-articles-grid[hidden] below. */
.twd-ap-articles-loadmore[hidden] {
  display: none !important;
}
.twd-ap-articles-loadmore {
  min-width: 160px !important;
  border: 1px solid #9ca3af !important;
  background: #fff !important;
  color: #1f2937 !important;
  padding: 10px 26px !important;
  border-radius: 999px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  transition: background-color 0.2s ease, border-color 0.2s ease !important;
}
.twd-ap-articles-loadmore:hover {
  background: #f9fafb !important;
  border-color: #6b7280 !important;
}

@media (max-width: 900px) {
  .twd-ap-articles-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 600px) {
  .twd-ap-articles-grid {
    grid-template-columns: 1fr !important;
  }
  .twd-ap-articles-search {
    max-width: none !important;
  }
  .twd-ap-articles-category-select {
    max-width: none !important;
    flex: 1 1 auto !important;
  }
}

.twd-ap-grid-settings-modal {
  max-width: 480px !important;
}
.twd-ap-gs-color-input {
  display: block !important;
  width: 60px !important;
  height: 36px !important;
  padding: 2px !important;
  border: 1px solid #9ca3af !important;
  border-radius: 8px !important;
  background: #fff !important;
  cursor: pointer !important;
}
.twd-ap-gs-cat-order {
  list-style: none !important;
  margin: 8px 0 0 !important;
  padding: 0 !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 8px !important;
  overflow: hidden !important;
}
.twd-ap-gs-cat-row {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 10px 12px !important;
  background: #fff !important;
  border-bottom: 1px solid #e5e7eb !important;
  font-size: 14px !important;
  color: #1f2937 !important;
  cursor: grab !important;
}
.twd-ap-gs-cat-row:last-child {
  border-bottom: none !important;
}
.twd-ap-gs-cat-row.is-dragging {
  opacity: 0.4 !important;
}
.twd-ap-gs-drag-handle {
  color: #9ca3af !important;
  font-size: 14px !important;
  line-height: 1 !important;
}

/* Small edit pencil on a card, for logged-in people who can edit that
   article. Top left over the thumbnail (top right when thumbnails are
   switched off, so it never sits on the date line). */
.twd-ap-card-edit {
  position: absolute !important;
  top: 10px !important;
  left: 10px !important;
  z-index: 3 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: #374151 !important;
  color: #fff !important;
  line-height: 1 !important;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.25) !important;
  opacity: 0.92 !important;
  cursor: pointer !important;
  transition: background-color 0.2s ease, opacity 0.2s ease, transform 0.2s ease !important;
}
.twd-ap-card-edit:hover,
.twd-ap-card-edit:focus-visible {
  background: #1f2937 !important;
  opacity: 1 !important;
  transform: scale(1.08) !important;
  outline: none !important;
}
.twd-ap-card-edit svg {
  width: 16px !important;
  height: 16px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}
.twd-ap-no-thumbnails .twd-ap-card-edit {
  left: auto !important;
  right: 10px !important;
}

/* Link from every grid to the full alphabetical index page. */
.twd-ap-articles-index-link {
  margin: 22px 0 0 !important;
  font-size: 13px !important;
}
.twd-ap-articles-index-link a {
  color: #6b7280 !important;
  font-weight: 500 !important;
  text-decoration: none !important;
}
.twd-ap-articles-index-link a:hover {
  color: var(--twd-ap-accent-color, #2563eb) !important;
  text-decoration: underline !important;
}

/* [twd_articles_index]: plain, crawlable alphabetical index. */
.twd-ap-index {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
  color: #1f2937 !important;
}
.twd-ap-index-jump ul,
.twd-ap-index-pager ul {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px 18px !important;
  margin: 0 0 28px !important;
  padding: 0 !important;
  list-style: none !important;
}
.twd-ap-index-jump li,
.twd-ap-index-pager li {
  margin: 0 !important;
  padding: 0 !important;
}
.twd-ap-index a {
  color: var(--twd-ap-accent-color, #2563eb) !important;
  text-decoration: none !important;
}
.twd-ap-index a:hover {
  text-decoration: underline !important;
}
.twd-ap-index-section {
  margin: 0 0 32px !important;
}
.twd-ap-index-title {
  margin: 0 0 12px !important;
  padding-bottom: 8px !important;
  border-bottom: 1px solid #e5e7eb !important;
  font-size: 21px !important;
  font-weight: 700 !important;
  color: #1f2937 !important;
}
.twd-ap-index-count {
  font-size: 14px !important;
  font-weight: 400 !important;
  color: #6b7280 !important;
}
.twd-ap-index-list {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.twd-ap-index-list li {
  margin: 0 !important;
  padding: 6px 0 !important;
  font-size: 16px !important;
  line-height: 1.4 !important;
}
.twd-ap-index-date {
  margin-left: 8px !important;
  font-size: 13px !important;
  color: #6b7280 !important;
  white-space: nowrap !important;
}
.twd-ap-index-pager [aria-current="page"] {
  font-weight: 700 !important;
  color: #1f2937 !important;
}
.twd-ap-index-none {
  text-align: center !important;
  color: #6b7280 !important;
  font-size: 15px !important;
  padding: 48px 16px !important;
}

/* Index page: the topic dropdown is switched on by the JS; the jump links
   it replaces stay for crawlers and for visitors without JavaScript. */
.twd-ap-index-filter[hidden],
.twd-ap-index-section[hidden] {
  display: none !important;
}
.twd-ap-index-enhanced .twd-ap-index-jump {
  display: none !important;
}
.twd-ap-index-filter {
  margin: 0 0 28px !important;
}
.twd-ap-index-filter select {
  width: 100% !important;
  max-width: 340px !important;
  padding: 10px 14px !important;
  border: 1px solid #d1d5db !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #1f2937 !important;
  font-size: 15px !important;
}
.twd-ap-index-filter select:focus {
  outline: none !important;
  border-color: var(--twd-ap-accent-color, #2563eb) !important;
}

/* The link to the full article index: a quiet text link (real, crawlable,
   not prominent), at the end of the Browse by topic row or on its own. */
.twd-ap-articles-topics li.twd-ap-topics-current span {
  background: var(--twd-ap-accent-color, #2563eb) !important;
  border-color: var(--twd-ap-accent-color, #2563eb) !important;
  color: var(--twd-ap-accent-ink, #fff) !important;
  font-weight: 700 !important;
}
.twd-ap-articles-topics li.twd-ap-topics-all a {
  background: transparent !important;
  border-color: #d1d5db !important;
  color: #4b5563 !important;
  font-weight: 500 !important;
}
.twd-ap-articles-topics li.twd-ap-topics-all a:hover {
  background: #f3f4f6 !important;
  border-color: #9ca3af !important;
  color: #1f2937 !important;
}

/* Small categories: one article is a wide card (image left, text right),
   two articles sit two across, instead of leaving gaps in a 3 column row.
   Browsers without :has() keep the normal card. */
.twd-ap-articles-grid:has(> .twd-ap-article-card:nth-child(2):last-child) {
  grid-template-columns: repeat(2, 1fr) !important;
}
.twd-ap-articles-grid:has(> .twd-ap-article-card:only-child) {
  grid-template-columns: 1fr !important;
}
.twd-ap-articles-grid:has(> .twd-ap-article-card:only-child) .twd-ap-article-card {
  flex-direction: row !important;
}
.twd-ap-articles-grid:has(> .twd-ap-article-card:only-child) .twd-ap-article-thumb {
  width: 40% !important;
  height: auto !important;
  min-height: 220px !important;
  aspect-ratio: auto !important;
}
.twd-ap-articles-grid:has(> .twd-ap-article-card:only-child) .twd-ap-article-body {
  flex: 1 1 auto !important;
  justify-content: center !important;
  padding: 28px !important;
}
.twd-ap-articles-grid:has(> .twd-ap-article-card:only-child) .twd-ap-article-title {
  font-size: 21px !important;
}
@media (max-width: 600px) {
  .twd-ap-articles-grid:has(> .twd-ap-article-card:nth-child(2):last-child) {
    grid-template-columns: 1fr !important;
  }
  .twd-ap-articles-grid:has(> .twd-ap-article-card:only-child) .twd-ap-article-card {
    flex-direction: column !important;
  }
  .twd-ap-articles-grid:has(> .twd-ap-article-card:only-child) .twd-ap-article-thumb {
    width: 100% !important;
    min-height: 0 !important;
    height: 170px !important;
  }
}

/* Card image shape (1.42.0). The root carries .twd-ap-thumbs-4-3 or
   .twd-ap-thumbs-square (none for the original wide strip, so a site that
   never chose one is unchanged). The picture, the loading skeleton and the
   no-picture placeholder all take the same shape, so nothing moves when the
   real cards arrive. A browser without aspect-ratio keeps the wide strip. A
   lone card keeps its image-beside-text layout on a wide screen (the rule
   above sets aspect-ratio: auto) and takes the shape again on a phone. */
@supports (aspect-ratio: 1 / 1) {
  .twd-ap-articles.twd-ap-thumbs-4-3 .twd-ap-article-thumb {
    height: auto !important;
    aspect-ratio: 4 / 3 !important;
  }
  .twd-ap-articles.twd-ap-thumbs-square .twd-ap-article-thumb {
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
  }
  @media (max-width: 600px) {
    .twd-ap-articles.twd-ap-thumbs-4-3 .twd-ap-articles-grid:has(> .twd-ap-article-card:only-child) .twd-ap-article-thumb {
      height: auto !important;
      aspect-ratio: 4 / 3 !important;
    }
    .twd-ap-articles.twd-ap-thumbs-square .twd-ap-articles-grid:has(> .twd-ap-article-card:only-child) .twd-ap-article-thumb {
      height: auto !important;
      aspect-ratio: 1 / 1 !important;
    }
  }
}

/* Customise this grid: collapsible sections (Article look and so on). */
.twd-ap-gs-details {
  border: 1px solid #e5e7eb !important;
  border-radius: 10px !important;
  padding: 0 14px 14px !important;
  background: #fff !important;
}
.twd-ap-gs-details > summary {
  margin: 0 -14px !important;
  padding: 12px 14px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #1f2937 !important;
  cursor: pointer !important;
}
.twd-ap-gs-look-grid {
  display: grid !important;
  grid-template-columns: 1fr auto !important;
  gap: 10px 16px !important;
  align-items: center !important;
}
.twd-ap-gs-look-grid .twd-ap-label {
  margin: 0 !important;
}
.twd-ap-gs-look-preview {
  margin: 16px 0 8px !important;
  padding: 14px 16px !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 8px !important;
  background: #fff !important;
  font-family: var(--twd-ap-content-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif) !important;
  font-size: var(--twd-ap-content-size, 17px) !important;
  line-height: var(--twd-ap-content-leading, 1.75) !important;
  color: var(--twd-ap-content-text, #1f2937) !important;
}
.twd-ap-gs-look-preview h2,
.twd-ap-gs-look-preview h3,
.twd-ap-gs-look-preview h4 {
  margin: 0 0 6px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  color: var(--twd-ap-content-heading, var(--twd-ap-content-text, #1f2937)) !important;
}
.twd-ap-gs-look-preview h2 {
  font-size: var(--twd-ap-content-h2-size, 26px) !important;
}
.twd-ap-gs-look-preview h3 {
  font-size: var(--twd-ap-content-h3-size, 21px) !important;
}
.twd-ap-gs-look-preview h4 {
  font-size: var(--twd-ap-content-h4-size, 18px) !important;
}
.twd-ap-gs-colour-row {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
}
.twd-ap-gs-colour-row[hidden],
.twd-ap-gs-colour-row [hidden] {
  display: none !important;
}
.twd-ap-gs-look-grid input[type="number"] {
  max-width: 96px !important;
}
.twd-ap-gs-look-preview p {
  margin: 0 0 8px !important;
  color: var(--twd-ap-content-text, #1f2937) !important;
}
.twd-ap-gs-look-preview a {
  color: var(--twd-ap-content-link, #2563eb) !important;
  text-decoration: underline !important;
}
.twd-ap-gs-look-preview blockquote {
  margin: 0 !important;
  padding: 2px 0 2px 12px !important;
  border-left: 3px solid var(--twd-ap-content-quote, var(--twd-ap-content-link, #2563eb)) !important;
  color: var(--twd-ap-content-quote, #6b7280) !important;
  font-style: italic !important;
}

/* Call to action box: grid, category page, index and end of article. */
.twd-ap-cta[hidden] {
  display: none !important;
}
.twd-ap-cta {
  max-width: 720px !important;
  margin: 36px auto 0 !important;
  padding: 0 !important;
}
.twd-ap-cta-inner {
  padding: 28px 28px 30px !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 16px !important;
  background: #f9fafb !important;
  text-align: center !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}
.twd-ap-cta-heading {
  margin: 0 0 8px !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  color: #1f2937 !important;
}
.twd-ap-cta-text {
  margin: 0 0 18px !important;
  font-size: 16px !important;
  line-height: 1.6 !important;
  color: #4b5563 !important;
}
.twd-ap-cta-heading:last-child,
.twd-ap-cta-text:last-child {
  margin-bottom: 0 !important;
}
.twd-ap-cta a.twd-ap-cta-button {
  display: inline-block !important;
  padding: 12px 28px !important;
  border-radius: 999px !important;
  background: var(--twd-ap-accent-color, #2563eb) !important;
  color: #fff !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12) !important;
  transition: filter 0.2s ease, transform 0.2s ease !important;
}
.twd-ap-cta a.twd-ap-cta-button:hover {
  filter: brightness(0.9) !important;
  transform: translateY(-1px) !important;
}

/* Category intro: the category's own description above its grid. */
.twd-ap-articles-intro {
  margin: 0 0 26px !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
}
.twd-ap-articles-intro-text:empty {
  display: none !important;
}
.twd-ap-articles-intro-text {
  font-size: 17px !important;
  line-height: 1.7 !important;
  color: #374151 !important;
}
.twd-ap-articles-intro-text p {
  margin: 0 0 1em !important;
  color: #374151 !important;
}
.twd-ap-articles-intro-text p:last-child {
  margin-bottom: 0 !important;
}
.twd-ap-articles-intro-text a {
  color: var(--twd-ap-accent-color, #2563eb) !important;
  text-decoration: underline !important;
}
.twd-ap-intro-edit {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin: 8px 0 0 !important;
  padding: 5px 14px !important;
  border: 1px dashed #9ca3af !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #4b5563 !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  line-height: 1.4 !important;
}
.twd-ap-intro-edit:hover {
  border-color: #6b7280 !important;
  color: #1f2937 !important;
}
.twd-ap-intro-edit svg {
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}
.twd-ap-intro-overlay[hidden] {
  display: none !important;
}
.twd-ap-intro-text {
  width: 100% !important;
  min-height: 160px !important;
  box-sizing: border-box !important;
}

/* Real page links under a long category or curated list. Visible without
   JavaScript; with it they are hidden (see data-js below). */
.twd-ap-articles-pager[hidden] {
  display: none !important;
}
.twd-ap-articles-pager {
  margin: 28px 0 0 !important;
}
.twd-ap-articles-pager ul {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 8px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.twd-ap-articles-pager li {
  margin: 0 !important;
  padding: 0 !important;
}
.twd-ap-articles-pager a,
.twd-ap-articles-pager span[aria-current] {
  display: inline-block !important;
  min-width: 38px !important;
  padding: 8px 14px !important;
  border: 1px solid #d1d5db !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #1f2937 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  text-align: center !important;
  text-decoration: none !important;
  box-sizing: border-box !important;
}
.twd-ap-articles-pager a:hover {
  border-color: var(--twd-ap-accent-color, #2563eb) !important;
  color: var(--twd-ap-accent-color, #2563eb) !important;
}
.twd-ap-articles-pager span[aria-current] {
  border-color: var(--twd-ap-accent-color, #2563eb) !important;
  background: var(--twd-ap-accent-color, #2563eb) !important;
  color: #fff !important;
}
.twd-ap-articles-pager .twd-ap-pager-gap {
  padding: 8px 4px !important;
  color: #6b7280 !important;
}
/* JavaScript is on (data-js): Load more takes over, so hide the links; on page
   2 and beyond (data-deep) keep only the Previous link. */
.twd-ap-articles-pager[data-js]:not([data-deep]) {
  display: none !important;
}
.twd-ap-articles-pager[data-js][data-deep] li:not(.twd-ap-pager-prev) {
  display: none !important;
}

/* The plugin's own category and tag page (templates/archive-grid.php). */
.twd-ap-archive {
  max-width: 1140px !important;
  margin: 0 auto !important;
  padding: 32px 20px 56px !important;
  box-sizing: border-box !important;
}
.twd-ap-archive-title {
  margin: 0 0 20px !important;
  font-size: 36px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}
@media (max-width: 600px) {
  .twd-ap-archive-title {
    font-size: 28px !important;
  }
}

/* On the plugin's own category page the toolbar holds only the gear. */
.twd-ap-articles-toolbar-gear {
  margin-bottom: 8px !important;
}

/* "More in {category}" at the end of every article. */
.twd-ap-related {
  max-width: 720px !important;
  margin: 40px auto 0 !important;
  padding: 24px 0 0 !important;
  border-top: 1px solid var(--twd-site-color-border, #e5e7eb) !important;
  font-family: var(--twd-site-font-body, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif) !important;
}
.twd-ap-related-title {
  margin: 0 0 12px !important;
  font-size: 20px !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  font-family: var(--twd-site-font-heading, inherit) !important;
  color: var(--twd-site-color-heading, #1f2937) !important;
}
.twd-ap-related-title a {
  color: var(--twd-ap-accent-color, #2563eb) !important;
  text-decoration: none !important;
}
.twd-ap-related-title a:hover {
  text-decoration: underline !important;
}
.twd-ap-related-list {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.twd-ap-related-list li {
  margin: 0 !important;
  padding: 8px 0 !important;
  font-size: 16px !important;
  line-height: 1.45 !important;
  border-bottom: 1px solid #f3f4f6 !important;
}
.twd-ap-related-list li:last-child {
  border-bottom: 0 !important;
}
.twd-ap-related-list a {
  color: var(--twd-ap-accent-color, #2563eb) !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}
.twd-ap-related-list a:hover {
  text-decoration: underline !important;
}
.twd-ap-related-date {
  margin-left: 8px !important;
  font-size: 13px !important;
  color: #6b7280 !important;
  white-space: nowrap !important;
}

/* The Browse by topic row inside the end-of-article block. */
.twd-ap-related .twd-ap-articles-topics {
  margin: 22px 0 0 !important;
  padding: 16px 0 0 !important;
  border-top: 1px solid #f3f4f6 !important;
}
.twd-ap-related .twd-ap-articles-topics:first-child {
  margin-top: 0 !important;
  padding-top: 0 !important;
  border-top: 0 !important;
}

/* The related articles as a grid (1.48.0, Customise this grid > Related
   articles > Layout). It is as wide as its column, up to 900px, and holds at
   most 3 boxes across. When the article's column is narrower than that AND
   centred on the page, article-content.js adds .twd-ap-related-break and the
   block breaks out to 900px (or the screen width less 16px each side when that
   is less), centred on the column. With a sidebar, or any column that is not
   centred, it stays inside its column, so it is never cut off and never makes
   the page scroll sideways. Each box is one link: picture, title, date. */
.twd-ap-related.twd-ap-related-wide {
  box-sizing: border-box !important;
  max-width: 900px !important;
  container-type: inline-size !important;
  container-name: twd-related !important;
}
.twd-ap-related.twd-ap-related-wide.twd-ap-related-break {
  width: min(900px, calc(100vw - 32px)) !important;
  max-width: none !important;
  margin-left: calc(50% - min(450px, 50vw - 16px)) !important;
  margin-right: calc(50% - min(450px, 50vw - 16px)) !important;
  flex: none !important;
}
.twd-ap-related-cards {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 20px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.twd-ap-related-cards li.twd-ap-related-card {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  font-size: inherit !important;
}
.twd-ap-related-card a {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  height: 100% !important;
  box-sizing: border-box !important;
  background: #fff !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  text-decoration: none !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06) !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}
.twd-ap-related-card a:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.12) !important;
  text-decoration: none !important;
}
.twd-ap-related-thumb {
  display: block !important;
  width: 100% !important;
  height: 150px !important;
  flex-shrink: 0 !important;
  background-color: #f3f4f6 !important;
  background-size: cover !important;
  background-position: center !important;
}
.twd-ap-related-thumb-placeholder {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: linear-gradient(135deg, #eef2ff, #f3f4f6) !important;
  color: #9ca3af !important;
}
.twd-ap-related-card-title {
  display: block !important;
  padding: 10px 16px 0 !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  color: #1f2937 !important;
  overflow-wrap: anywhere !important;
}
.twd-ap-related-card .twd-ap-related-date {
  display: block !important;
  margin: 0 !important;
  padding: 0 16px 16px !important;
  line-height: 1.4 !important;
  white-space: normal !important;
}
@supports (aspect-ratio: 1 / 1) {
  .twd-ap-related-wide.twd-ap-thumbs-4-3 .twd-ap-related-thumb {
    height: auto !important;
    aspect-ratio: 4 / 3 !important;
  }
  .twd-ap-related-wide.twd-ap-thumbs-square .twd-ap-related-thumb {
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
  }
}
@media (max-width: 720px) {
  .twd-ap-related-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 520px) {
  .twd-ap-related-cards {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}
/* By the width of the block itself where the browser can measure that (a
   narrow column keeps its boxes a readable size); the screen width above is
   the fallback. */
@container twd-related (max-width: 639px) {
  .twd-ap-related-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
@container twd-related (max-width: 419px) {
  .twd-ap-related-cards {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* ---- 1.50.4: category pills (built by articles-grid.js; the select is kept, hidden once they exist) ---- */
.twd-ap-has-pills .twd-ap-articles-category-select {
  display: none !important;
}
.twd-ap-articles-pills {
  display: flex !important;
  flex: 1 1 320px !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
}
.twd-ap-articles-pill {
  margin: 0 !important;
  padding: 8px 16px !important;
  border: 1px solid var(--twd-site-color-border, #d1d5db) !important;
  border-radius: var(--twd-site-radius-pill, 999px) !important;
  background: var(--twd-site-color-surface, #fff) !important;
  color: var(--twd-site-color-body, #1f2937) !important;
  font-family: inherit !important;
  font-size: var(--twd-site-size-small, 14px) !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  cursor: pointer !important;
  box-shadow: none !important;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease !important;
}
.twd-ap-articles-pill:hover {
  border-color: var(--twd-site-color-accent-text, var(--twd-ap-accent-color, #2563eb)) !important;
  color: var(--twd-site-color-accent-text, var(--twd-ap-accent-color, #2563eb)) !important;
}
.twd-ap-articles-pill[aria-pressed="true"] {
  background: var(--twd-site-color-primary, var(--twd-ap-accent-color, #2563eb)) !important;
  border-color: var(--twd-site-color-primary, var(--twd-ap-accent-color, #2563eb)) !important;
  color: var(--twd-site-color-on-primary, #fff) !important;
}
.twd-ap-articles-pill:focus-visible {
  outline: 2px solid var(--twd-site-color-accent-text, #1f2937) !important;
  outline-offset: 2px !important;
}
@media (max-width: 600px) {
  .twd-ap-articles-pills {
    flex-basis: 100% !important;
  }
  .twd-ap-has-pills .twd-ap-articles-search {
    max-width: none !important;
    flex-basis: 100% !important;
  }
}

/* ---- 1.50.6: on a phone the default wide strip was a fixed 170px, about 2:1 on a 325px card, which cropped
   the usual 3:2 photo hard (heads and subjects cut off). The default shape is now 3:2 at phone width.
   A site that chose 4:3 or square keeps its choice. A browser without aspect-ratio keeps the old strip. ---- */
@supports (aspect-ratio: 1 / 1) {
  @media (max-width: 600px) {
    .twd-ap-articles:not(.twd-ap-thumbs-4-3):not(.twd-ap-thumbs-square) .twd-ap-article-thumb,
    .twd-ap-articles:not(.twd-ap-thumbs-4-3):not(.twd-ap-thumbs-square) .twd-ap-articles-grid:has(> .twd-ap-article-card:only-child) .twd-ap-article-thumb {
      height: auto !important;
      aspect-ratio: 3 / 2 !important;
    }
  }
}

/* ---- 1.52.1: the article index, with room to breathe and the site's own fonts and colours ----
   Every value reads a --twd-site-* token when the theme publishes one, with the old value as the fallback. */
.twd-ap-index {
  margin: 28px 0 72px !important;
  font-family: var(--twd-site-font-body, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif) !important;
  color: var(--twd-site-color-body, #1f2937) !important;
  line-height: 1.6 !important;
}
.twd-ap-index a {
  color: var(--twd-site-color-accent-text, var(--twd-ap-accent-color, #2563eb)) !important;
}
.twd-ap-index-jump ul,
.twd-ap-index-pager ul {
  gap: 10px !important;
  margin: 0 0 44px !important;
}
.twd-ap-index-jump a,
.twd-ap-index-pager a {
  display: inline-block !important;
  padding: 7px 16px !important;
  border: 1px solid var(--twd-site-color-border, #d1d5db) !important;
  border-radius: var(--twd-site-radius-pill, 999px) !important;
  background: var(--twd-site-color-surface, #fff) !important;
  font-size: var(--twd-site-size-small, 15px) !important;
  line-height: 1.2 !important;
}
.twd-ap-index-jump a:hover,
.twd-ap-index-pager a:hover {
  text-decoration: none !important;
  border-color: var(--twd-site-color-accent-text, var(--twd-ap-accent-color, #2563eb)) !important;
}
.twd-ap-index-section {
  margin: 0 0 56px !important;
}
.twd-ap-index-title {
  margin: 0 0 8px !important;
  padding-bottom: 14px !important;
  border-bottom: 1px solid var(--twd-site-color-border, #e5e7eb) !important;
  font-family: var(--twd-site-font-heading, inherit) !important;
  font-size: var(--twd-site-size-title, 24px) !important;
  font-weight: var(--twd-site-title-weight, 600) !important;
  font-style: var(--twd-site-title-style, normal) !important;
  line-height: var(--twd-site-line-heading, 1.25) !important;
  color: var(--twd-site-color-title, #1f2937) !important;
  text-transform: none !important;
}
.twd-ap-index-count {
  margin-left: 6px !important;
  font-family: var(--twd-site-font-body, inherit) !important;
  font-size: var(--twd-site-size-small, 15px) !important;
  color: var(--twd-site-color-muted, #6b7280) !important;
}
.twd-ap-index-list li {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: baseline !important;
  gap: 2px 14px !important;
  padding: 15px 0 !important;
  border-top: 1px solid var(--twd-site-color-border, #f0f1f3) !important;
  font-size: calc(var(--twd-site-size-body, 17px) + 1px) !important;
  line-height: 1.4 !important;
}
.twd-ap-index-list li:first-child {
  border-top: 0 !important;
}
.twd-ap-index-list a:hover {
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}
.twd-ap-index-date {
  margin-left: 0 !important;
  font-size: var(--twd-site-size-small, 14px) !important;
  color: var(--twd-site-color-muted, #6b7280) !important;
}
.twd-ap-index-filter {
  margin: 0 0 44px !important;
}
.twd-ap-index-filter select {
  border-color: var(--twd-site-color-border, #d1d5db) !important;
  border-radius: var(--twd-site-radius-pill, 999px) !important;
  background: var(--twd-site-color-surface, #fff) !important;
  color: var(--twd-site-color-body, #1f2937) !important;
  font-family: inherit !important;
  font-size: var(--twd-site-size-small, 15px) !important;
}
@media (max-width: 600px) {
  .twd-ap-index {
    margin: 20px 0 56px !important;
  }
  .twd-ap-index-section {
    margin-bottom: 40px !important;
  }
  .twd-ap-index-list li {
    padding: 13px 0 !important;
  }
}
