/* ==========================================================
   TEACHERCAST CUSTOM CSS

   1. Article lists
   2. Archive cards
   3. Desktop navigation
   4. Author box — desktop and tablet
   5. Author box — mobile
   6. Font fallbacks for arrows and symbols
   ========================================================== */


/* ==========================================================
   1. ARTICLE LISTS
   Blog posts and podcast articles
   ========================================================== */

body.single-post .entry-content > ul,
body.single-post .entry-content > ol,
body.single-captivate_podcast .entry-content > ul,
body.single-captivate_podcast .entry-content > ol {
  margin: 0 0 1.5em;
  padding-left: 1.5em;
}

/* Prevent extra indentation on individual list items. */

body.single-post .entry-content > ul > li,
body.single-post .entry-content > ol > li,
body.single-captivate_podcast .entry-content > ul > li,
body.single-captivate_podcast .entry-content > ol > li {
  margin-left: 0;
}


/* ==========================================================
   2. ARCHIVE CARDS
   Category, tag and posts archives
   ========================================================== */

/* Outer archive container. */

body.archive:not(.post-type-archive-captivate_podcast) #content > .ast-container {
  max-width: 1224px !important;
  padding-left: 32px !important;
  padding-right: 32px !important;
}

body.archive #primary {
  padding: 56px 0 72px !important;
  margin: 0 !important;
  width: 100% !important;
}

/* Three-column desktop grid. */

body.archive #primary .ast-row {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  margin: 0 !important;
}

body.archive #primary .ast-row::before,
body.archive #primary .ast-row::after {
  display: none !important;
}

/* Reset default article sizing and spacing. */

body.archive #primary article.ast-article-post {
  width: auto !important;
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
  display: flex;
}

body.archive #primary article.ast-fade-up {
  opacity: 1 !important;
  transform: none !important;
}

/* Card appearance. */

body.archive #primary .ast-article-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  padding: 0 !important;
  background: #fff;
  border: 1px solid #D1DAE5;
  border-top: 4px solid #0067FF;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.06);
  transition: transform 0.2s, box-shadow 0.2s;
}

body.archive #primary .ast-article-inner:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 32px rgba(15, 23, 42, 0.12);
}

body.archive #primary .post-content {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  padding: 0 !important;
}

/* Featured images. */

body.archive #primary .post-thumb,
body.archive #primary .post-thumb-img-content,
body.archive #primary .ast-blog-featured-section,
body.archive #primary .ast-blog-single-element {
  padding: 0 !important;
  margin: 0 !important;
}

body.archive #primary .post-thumb-img-content,
body.archive #primary .post-thumb-img-content a {
  display: block;
}

body.archive #primary .post-thumb img {
  display: block;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  margin: 0 !important;
}

/* Card titles and full-card links. */

body.archive #primary .entry-title {
  font: 700 19px/1.3 Poppins, 'Open Sans', sans-serif !important;
  margin: 0 !important;
  padding: 20px 22px 0 !important;
  text-wrap: balance;
}

body.archive #primary .entry-title a {
  color: #0F172A !important;
  text-decoration: none !important;
}

body.archive #primary .entry-title a::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
}

body.archive #primary .ast-article-inner:hover .entry-title a {
  color: #005EE9 !important;
}

/* Hide excerpts and show the article link label. */

body.archive #primary .entry-content {
  display: none;
}

body.archive #primary .post-content::after {
  content: 'Read article →';
  display: block;
  margin-top: auto;
  padding: 14px 22px 22px;
  font: 700 15px/1.2 'Open Sans', sans-serif;
  color: #005EE9;
}

/* Tablet: two-column archive grid. */

@media (max-width: 1000px) {
  body.archive #primary .ast-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Mobile: single-column archive grid. */

@media (max-width: 600px) {
  body.archive #primary .ast-row {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  body.archive #primary {
    padding: 36px 0 48px !important;
  }
}

/* Respect reduced-motion preferences. */

@media (prefers-reduced-motion: reduce) {
  body.archive #primary .ast-article-inner {
    transition: none;
  }

  body.archive #primary .ast-article-inner:hover {
    transform: none;
  }
}


/* ==========================================================
   3. DESKTOP NAVIGATION
   Keep the primary menu on one row from 1201px to 1320px
   ========================================================== */

@media (min-width: 1201px) and (max-width: 1320px) {
  .main-header-menu > .menu-item > .menu-link {
    padding-left: 10px !important;
    padding-right: 10px !important;
    font-size: 15px !important;
  }

  .site-branding img,
  .ast-site-identity img {
    max-width: 220px !important;
    height: auto;
  }

  .ast-header-button-1 .ast-custom-button {
    padding: 12px 16px !important;
    font-size: 13px !important;
  }
}


/* ==========================================================
   4. AUTHOR BOX — DESKTOP AND TABLET
   Align the heading, photo and bio.
   Remove extra padding inside the author details.
   Applies only to Astra's left-aligned author box.
   ========================================================== */

@media (min-width: 545px) {
  body.single .ast-single-author-box.ast-author-container--left .about-author-title-wrapper {
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
  }

  body.single .ast-single-author-box.ast-author-container--left .about-author {
    margin: 0 0 24px !important;
  }

  body.single .ast-single-author-box.ast-author-container--left .ast-author-details {
    display: grid !important;
    grid-template-columns: 100px minmax(0, 1fr);
    align-items: start;
    gap: 24px;
    width: 100%;
    box-sizing: border-box;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.single .ast-single-author-box.ast-author-container--left .post-author-avatar {
    float: none !important;
    width: 100px;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.single .ast-single-author-box.ast-author-container--left .post-author-avatar img {
    display: block;
    width: 100px;
    height: 100px;
    object-fit: cover;
    border-radius: 50%;
    margin: 0 !important;
  }

  body.single .ast-single-author-box.ast-author-container--left .post-author-bio {
    float: none !important;
    width: auto !important;
    min-width: 0;
    text-align: left !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.single .ast-single-author-box.ast-author-container--left .author-title {
    margin: 0 0 12px !important;
    line-height: 1.3;
    text-align: left !important;
  }

  body.single .ast-single-author-box.ast-author-container--left .post-author-desc {
    text-align: left !important;
  }
}


/* ==========================================================
   5. AUTHOR BOX — MOBILE
   Preserve the existing stacked layout and centered photo.
   ========================================================== */

@media (max-width: 544px) {
  body.single .ast-single-author-box .ast-author-meta {
    padding: 24px 20px !important;
  }

  body.single .ast-single-author-box .about-author-title-wrapper,
  body.single .ast-single-author-box .ast-author-details {
    display: block !important;
    box-sizing: border-box !important;
    width: 100% !important;
    padding: 0 !important;
  }

  body.single .ast-single-author-box .about-author {
    font-size: 24px !important;
    line-height: 1.3 !important;
    margin: 0 0 20px !important;
  }

  body.single .ast-single-author-box .post-author-avatar {
    float: none !important;
    display: block !important;
    width: 80px !important;
    height: 80px !important;
    margin: 0 auto 20px !important;
    padding: 0 !important;
  }

  body.single .ast-single-author-box .post-author-avatar img {
    display: block !important;
    box-sizing: border-box !important;
    width: 80px !important;
    min-width: 80px !important;
    max-width: 80px !important;
    height: 80px !important;
    min-height: 80px !important;
    max-height: 80px !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 50% !important;
    margin: 0 !important;
  }

  body.single .ast-single-author-box .post-author-bio {
    float: none !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
  }

  body.single .ast-single-author-box .author-title {
    font-size: 21px !important;
    line-height: 1.3 !important;
    margin: 0 0 10px !important;
    text-align: left !important;
  }

  body.single .ast-single-author-box .post-author-desc {
    font-size: 16px !important;
    line-height: 1.6 !important;
    text-align: left !important;
  }
}


/* ==========================================================
   6. FONT FALLBACKS FOR ARROWS AND SYMBOLS
   Use local system fonts for these Unicode ranges.
   ========================================================== */

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  src: local('Arial'), local('Helvetica'), local('Liberation Sans');
  unicode-range: U+2190-21FF, U+2200-22FF, U+25A0-25FF, U+2600-27BF;
}

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 600;
  src: local('Arial'), local('Helvetica'), local('Liberation Sans');
  unicode-range: U+2190-21FF, U+2200-22FF, U+25A0-25FF, U+2600-27BF;
}

@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  src: local('Arial'), local('Helvetica'), local('Liberation Sans');
  unicode-range: U+2190-21FF, U+2200-22FF, U+25A0-25FF, U+2600-27BF;
}