/* Article lists share one layout; banner, video and FAQ styles stay separate. */
body.article-list-page .category-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 260px;
  gap: 36px;
  padding-top: 32px;
  padding-bottom: 48px
}

body.article-list-page .article-list {
  min-width: 0;
  border-top: 0
}

body.article-list-page .article-list .article-row {
  display: grid !important;
  grid-template-columns: 220px minmax(0, 1fr) !important;
  gap: 24px !important;
  align-items: center;
  padding: 24px 0 !important;
  border-bottom: 1px solid #e2e6eb;
  background: transparent
}

body.article-list-page .article-list .article-row:first-child {
  padding-top: 0 !important
}

body.article-list-page .article-list .article-row .thumb {
  display: block !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
  position: relative;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 4/3;
  overflow: hidden;
  border-radius: 8px;
  background: #edf0f3
}

body.article-list-page .thumb img {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  object-fit: cover;
  transition: transform .25s ease
}

body.article-list-page .article-list .article-copy {
  grid-column: 2 !important;
  grid-row: 1 !important;
  min-width: 0
}

body.article-list-page .article-list .article-row h2 {
  margin: 0 !important;
  color: #41464d;
  font-size: 22px !important;
  line-height: 1.5 !important;
  font-weight: 700;
  white-space: normal;
  overflow-wrap: anywhere;
  transition: color .18s ease
}

body.article-list-page .article-list .article-row p {
  display: block !important;
  margin: 9px 0 0 !important;
  color: #59636e;
  font-size: 16px !important;
  line-height: 1.75 !important
}

body.article-list-page .article-list .article-meta {
  display: block !important;
  margin: 12px 0 0;
  color: #68737f;
  font-size: 14px !important;
  line-height: 1.5;
  font-variant-numeric: tabular-nums
}

body.article-list-page .article-row:hover h2 {
  color: #d61319 !important
}

body.article-list-page .article-row:hover img {
  transform: scale(1.025)
}

body.article-list-page .article-row:focus-visible {
  outline: 2px solid #d61319;
  outline-offset: 5px;
  border-radius: 4px
}

@media(min-width:761px) and (max-width:1100px) {
  body.article-list-page .category-layout {
    grid-template-columns: minmax(0, 1fr) 180px;
    gap: 24px
  }

  body.article-list-page .article-list .article-row {
    grid-template-columns: 180px minmax(0, 1fr) !important;
    gap: 20px !important
  }

  body.article-list-page .article-list .article-row h2 {
    font-size: 20px !important
  }
}

@media(max-width:760px) {
  body.article-list-page .category-layout {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding-top: 20px;
    padding-bottom: 32px
  }

  body.article-list-page .article-list .article-row {
    grid-template-columns: 112px minmax(0, 1fr) !important;
    gap: 14px !important;
    align-items: start;
    padding: 20px 0 !important
  }

  body.article-list-page .article-list .article-row h2 {
    font-size: 18px !important;
    line-height: 1.5 !important
  }

  body.article-list-page .article-list .article-row p {
    margin-top: 6px !important;
    font-size: 15px !important;
    line-height: 1.6 !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden
  }

  body.article-list-page .article-list .article-meta {
    margin-top: 8px;
    font-size: 14px !important
  }
}

@media(max-width:374px) {
  body.article-list-page .article-list .article-row {
    grid-template-columns: 100px minmax(0, 1fr) !important;
    gap: 12px !important
  }
}

@media(prefers-reduced-motion:reduce) {

  body.article-list-page .article-row img,
  body.article-list-page .article-row h2 {
    transition: none !important;
    transform: none !important
  }
}


/* Desktop assistance modules; category links remain accessible above the mobile list. */
body.article-list-page .article-list-shell {
  padding: 0
}

body.article-list-page .category-layout {
  grid-template-columns: minmax(0, 1fr) 300px
}

body.article-list-page .article-mobile-categories {
  display: none
}

body.article-list-page .article-sidebar {
  position: static;
  align-self: start;
  display: grid;
  gap: 20px;
  min-width: 0;
  width: 100%
}

body.article-list-page .sidebar-card {
  padding: 20px;
  border: 1px solid #e2e6eb;
  border-radius: 10px;
  background: #fff
}

body.article-list-page .sidebar-card h2 {
  margin: 0 0 14px;
  font-size: 20px;
  line-height: 1.5;
  font-weight: 700;
  color: #41464d
}

body.article-list-page .sidebar-courses>a {
  display: block;
  border-top: 1px solid #edf0f3;
  padding: 13px 0
}

body.article-list-page .sidebar-courses>a:last-child {
  padding-bottom: 0
}

body.article-list-page .sidebar-courses strong {
  display: flex;
  justify-content: space-between;
  font-size: 17px;
  line-height: 1.5;
  color: #41464d
}

body.article-list-page .sidebar-courses strong span {
  color: #d61319
}

body.article-list-page .sidebar-card p {
  font-size: 15px;
  line-height: 1.65;
  color: #59636e;
  margin: 5px 0 0
}

body.article-list-page .sidebar-reading ol {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: recommended
}

body.article-list-page .sidebar-reading li {
  display: flex;
  gap: 10px;
  padding: 12px 0;
  border-top: 1px solid #edf0f3;
  counter-increment: recommended
}

body.article-list-page .sidebar-reading li:last-child {
  padding-bottom: 0
}

body.article-list-page .sidebar-reading li:before {
  content: counter(recommended);
  flex: 0 0 15px;
  color: #d61319;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.65
}

body.article-list-page .sidebar-reading a {
  font-size: 15px;
  line-height: 1.65;
  color: #41464d
}

body.article-list-page .sidebar-card a:hover,
body.article-list-page .sidebar-courses a:hover strong {
  color: #d61319
}

body.article-list-page .sidebar-consult {
  background: #fff7f7;
  border-color: #f0d5d8
}

body.article-list-page .sidebar-visit {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  margin-top: 16px;
  border-radius: 7px;
  background: #d61319;
  color: #fff !important;
  font-size: 17px;
  font-weight: 700
}

body.article-list-page .sidebar-phone {
  display: block;
  margin-top: 12px;
  color: #d61319;
  font-size: 22px;
  font-weight: 700;
  text-align: center;
  white-space: nowrap
}

body.article-list-page .sidebar-card a:focus-visible,
body.article-list-page .article-mobile-categories a:focus-visible {
  outline: 2px solid #d61319;
  outline-offset: 3px
}

@media(min-width:761px) and (max-width:1100px) {
  body.article-list-page .category-layout {
    grid-template-columns: minmax(0, 1fr) 220px
  }

  body.article-list-page .sidebar-card {
    padding: 16px
  }

  body.article-list-page .sidebar-phone {
    font-size: 20px
  }
}

@media(max-width:760px) {
  body.article-list-page .article-sidebar {
    display: none
  }

  body.article-list-page .article-mobile-categories {
    display: flex;
    gap: 18px;
    overflow-x: auto;
    margin: 0 0 22px;
    padding-bottom: 8px;
    scrollbar-width: none
  }

  body.article-list-page .article-mobile-categories a {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 8px 0;
    border: 0;
    font-size: 16px;
    white-space: nowrap;
    color: #59636e
  }

  body.article-list-page .article-mobile-categories a.active {
    color: #d61319;
    font-weight: 700
  }
}

body.article-list-page .article-category-links {
  display: flex;
  flex-direction: column
}

body.article-list-page .article-category-links a {
  display: block;
  padding: 12px 0;
  border-top: 1px solid #edf0f3;
  font-size: 16px;
  line-height: 1.6;
  color: #59636e
}

body.article-list-page .article-category-links a:last-child {
  padding-bottom: 0
}

body.article-list-page .article-category-links a:is(.active, :hover) {
  color: #d61319;
  font-weight: 700
}

/* Category tabs belong to the article column, with independent overflow on small screens. */
body.article-list-page .article-main-column {
  min-width: 0
}

body.article-list-page .article-list-categories {
  display: flex;
  align-items: center;
  gap: 28px;
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: #e1e5eb transparent;
  border-bottom: 1px solid #e2e6eb;
  margin: 0 0 24px;
  padding: 0
}

body.article-list-page .article-list-categories a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-height: 48px;
  padding: 0 2px 12px;
  font-size: 17px;
  line-height: 1.5;
  font-weight: 600;
  white-space: nowrap;
  color: #59636e;
  transition: color .18s ease
}

body.article-list-page .article-list-categories a:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 28px;
  height: 3px;
  border-radius: 3px;
  background: #d61319;
  transform: translateX(-50%) scaleX(0);
  transition: transform .18s ease
}

body.article-list-page .article-list-categories a.active {
  color: #d61319;
  font-weight: 700
}

body.article-list-page .article-list-categories a.active:after {
  transform: translateX(-50%) scaleX(1)
}

body.article-list-page .article-list-categories a:hover {
  color: #d61319
}

body.article-list-page .article-list-categories a:focus-visible {
  outline: 2px solid #d61319;
  outline-offset: -3px;
  border-radius: 3px
}

@media(max-width:760px) {
  body.article-list-page .article-main-column {
    width: 100%
  }

  body.article-list-page .article-list-categories {
    gap: 22px;
    margin-bottom: 20px;
    scrollbar-width: none
  }

  body.article-list-page .article-list-categories a {
    min-height: 44px;
    padding-bottom: 10px;
    font-size: 16px
  }
}

@media(prefers-reduced-motion:reduce) {

  body.article-list-page .article-list-categories a,
  body.article-list-page .article-list-categories a:after {
    transition: none
  }
}

/* Hidden pages must override the grid display used by article rows. */
body.article-list-page .article-list .article-row[hidden] {
  display: none !important
}

body.article-list-page .article-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 28px 0 0
}

body.article-list-page .article-pagination a,
body.article-list-page .article-pagination .page-disabled {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid #e2e6eb;
  border-radius: 6px;
  font-size: 16px;
  line-height: 1.5;
  background: #fff;
  color: #41464d
}

body.article-list-page .article-pagination a:hover {
  border-color: #d61319;
  color: #d61319
}

body.article-list-page .article-pagination a[aria-current="page"] {
  background: #d61319;
  border-color: #d61319;
  color: #fff;
  font-weight: 700
}

body.article-list-page .article-pagination a:focus-visible {
  outline: 2px solid #d61319;
  outline-offset: 3px
}

body.article-list-page .article-pagination .page-disabled {
  color: #87919c;
  background: #f7f8fa
}

body.article-list-page .page-ellipsis {
  color: #68737f;
  padding: 0 2px
}

body.article-list-page .article-page-status {
  text-align: center;
  font-size: 14px;
  line-height: 1.6;
  color: #68737f;
  margin: 12px 0 0
}

body.article-list-page .article-list {
  scroll-margin-top: 100px
}

@media(max-width:760px) {
  body.article-list-page .article-pagination {
    gap: 6px;
    margin-top: 22px
  }

  body.article-list-page .article-pagination a,
  body.article-list-page .article-pagination .page-disabled {
    min-width: 36px;
    padding: 8px;
    font-size: 15px
  }
}
