
/* visually hidden class for screen reader elements */
.sr-only {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}


/* Skip to Main */
.skip-to-main {
  background: #24504D;
  color: #fff;
  font-size: 16px;
  left: 10px;
  padding: 10px 15px;
  position: absolute;
  text-decoration: none;
  top: -100px;
  z-index: 9999;
}

.skip-to-main strong {
  color: #fff !important;
}

.skip-to-main:focus-visible {
  top: 10px;
}

.skip-to-main:focus-visible:hover {
  color: #fff; 
}

/* Global keyboard focus fallback */
*:focus-visible {
  outline: 2px solid #24504D !important;
  outline-offset: 3px !important;
}

/* Global inner page link styles */
.inner-page-link {
  border-bottom: 1px solid #e1e1e1;
  -webkit-transition: border 200ms ease-out;
  transition: border 200ms ease-out
}

.inner-page-link:hover {
  border-bottom-color: #333
}

/* sections with this bg color */
/* ABOUT */
.vc_custom_1729195043738 a,
.vc_custom_1515792777539 a {
  border-bottom: 1px solid #e1e1e1;
  -webkit-transition: border 200ms ease-out;
  transition: border 200ms ease-out
}

/* ABOUT */
.vc_custom_1729195043738 a:hover,
.vc_custom_1515792777539 a:hover {
  border-bottom-color: #333
}

/* Forms - darken placeholder text */
.wpcf7-form-control::placeholder {
  color: #6b6b6b;
  opacity: 1;
}

/* header search btn and search dialog */
.full-screen-menu .form-search {
  border: 1px solid #ffffff;
}

.dima-nav-tag.dima-tag-icon-menu > ul > li.search-btn > a {
  display: block;
  height: 100%; 
}

/* breadcrumbs */
.dima-breadcrumbs a {
  text-decoration: underline;
}

.dima-breadcrumbs a:hover {
  text-decoration: none;
}

.dima-breadcrumbs a > span {
  color: #333333;
}

/* 
Structural heading corrections.
Headings converted to proper levels (h2, h1, etc.).
Visual size preserved to match original theme styling.
Remove when typography is formally refactored.
*/

/* Submissions, Subscribe
  and similar page titles: make the existing hidden H1 available to assistive tech */
h1.header-title.undertitle.text-start  {
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
  height: 1px !important;
  margin: -1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  position: absolute !important;
  white-space: nowrap !important;
  width: 1px !important;
}

h1.header-title.undertitle.text-start {
  display: block !important;
}

/* Search results */
h2.heading-5-list {
  font-size: 1.25rem !important;
  font-weight: 400 !important;
}

h2.heading-5-search-results {
  font-size: 1.25rem !important;
  font-weight: 400 !important;
  text-transform: none;
}

.search-results-item {
  margin-bottom: 100px;
}

.search-results-image {
  margin-bottom: 20px;
}

/* About page – preserve former h3 size after converting to h2 */
.page-id-1943 .dima-custom-heading {
  font-size: 2.5714285714rem !important;
}

@media only screen and (max-width: 679px) {
  .page-id-1943 .dima-custom-heading {
    font-size: 1.7142857143rem !important;
  }
}

/* Footer – preserve former h5 size after converting widget titles to h2 */
.footer-container .top-footer .widget h2.widget-title {
  color: #24504d !important;
  font-size: 1.25rem !important;
  margin: 10px 0px 8px 0px !important;
  /* line-height: 1.8888888889em;  */
}

@media only screen and (max-width: 679px) {
  .footer-container .top-footer .widget h2.widget-title {
    font-size: 1.25rem !important;
  }
}

/* Footer – hover states*/
ul#menu-footer-sub-menu.menu li a:hover {
  color: initial;
  text-decoration: underline;
}


/* Home page – preserve former span styling after converting to h2 */ 
.home .entry-content .page-section-content h2 {
  font-size: 2.5714285714rem !important;
  letter-spacing: .025em !important;
  line-height: 1.5em !important;
  margin-top: 75px;
}

/* Books archive and New Releases category 
– preserve former h6 title styling after removing heading tag and applying .booklistgridbooktitle-link */
h2.booklistgridbooktitle-link, 
h3.booklistgridbooktitle-link {
  display: block;
  font-size: 16px !important;
  line-height: 1.5em;
  margin: 5px 0 0 0 !important;
  padding: 10px 0 0 0 !important;
}
    
/* Submissions page – preserve former h3 styling after converting to h2 */ 
.page-id-10409 .entry-content .page-section-content h2 {
  font-size: 2.5714285714rem !important;
  letter-spacing: .025em !important;
  line-height: 1.5em !important;
}

@media only screen and (max-width: 679px) {
  .page-id-10409 .entry-content .page-section-content h2 {
    font-size: 1.7142857143rem !important;
  }
} 

/* Little Bigfoot page – preserve former span styling after converting to h2 */ 
.page-id-10448 .entry-content .page-section-content h2 {
  font-size: 2.5714285714rem !important;
  letter-spacing: .025em !important;
  line-height: 1.5em !important;
  margin-top: 75px;
}

@media only screen and (max-width: 679px) {
  .page-id-10409 .entry-content .page-section-content h2 {
    font-size: 1.7142857143rem !important;
  }
} 

/* Subscribe page – preserve former h3 styling after converting to h2 */ 
.page-id-44958 .entry-content .page-section-content h2 {
  font-size: 2.5714285714rem !important;
  letter-spacing: .025em !important;
  line-height: 1.5em !important;
}

@media only screen and (max-width: 679px) {
  .page-id-44958 .entry-content .page-section-content h2 {
    font-size: 1.7142857143rem !important;
  }
} 

/* Educational Resources page – preserve former h3 styling after converting to h2 */ 
.page-id-10459 .entry-content .page-section-content h2 {
  font-size: 2.5714285714rem !important;
  letter-spacing: .025em !important;
  line-height: 1.5em !important;
}

@media only screen and (max-width: 679px) {
  .page-id-10459 .entry-content .page-section-content h2 {
    font-size: 1.7142857143rem !important;
  }
} 

/* Copyright & Permissions page – preserve former h3 styling after converting to h2 */ 
.page-id-10411 .entry-content .page-section-content h2 {
  font-size: 2.5714285714rem !important;
  letter-spacing: .025em !important;
  line-height: 1.5em !important;
}

@media only screen and (max-width: 679px) {
  .page-id-10411 .entry-content .page-section-content h2 {
    font-size: 1.7142857143rem !important;
  }
} 

/* NEW Accessibility Statement page – preserve top level header styling present on other pages */ 
.page-id-535031 .entry-content .wpb_wrapper h2,
.page-id-535045 .entry-content .page-section-content h2 {
  font-size: 2.5714285714rem !important;
  letter-spacing: .025em !important;
  line-height: 1.5em !important;
}


/* some targeted CSS because the styles are not taki*/
.page-id-535031 .entry-content .wpb_wrapper a {
  text-decoration: underline;
}

.page-id-535031 .entry-content .wpb_wrapper a:hover {
  text-decoration: none;
}



h3.policy,
strong.policy {
  font-size: 18px  !important;
}

h2.policy {
  font-family: greycliff-cf, sans-serif !important;
  font-weight: 500 !important;
}

ul.policy {
  list-style: none;
  margin-left: 0;
  padding-left: 0;
} 

ul.policy li {
  list-style: none;
  margin-top: 15px;
} 

.wpb_wrapper ul:not(.policy) {
  list-style-type: disc;
  margin-bottom: 20px;
}

.wpb_wrapper ul:not(.policy) li {
  font-size: 16px; 
  line-height: 1.6;
  list-style-type: disc;
}


.wpb_wrapper .entry-content p {
  margin-bottom: 10px;
}

.entry-content ul li p {
  margin-bottom: 10px;
}

.page-id-535045 .entry-content ul {
  font-size: initial;
  line-height: initial;
}

@media only screen and (max-width: 679px) {
  .page-id-535045 .entry-content .page-section-content h2 {
    font-size: 1.7142857143rem !important;
  }
} 

/* Single book page – preserve former h5 size after converting to div */
.single-books .book-title-detail {
  font-size: 1.25rem;
}

/* Pagination – center page number links after structural update */
.dima-pagination .navigation.pagination {
  display: block;
  text-align: center;
}

.dima-pagination .nav-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}


/* BOOKS and GATAEGORY GRID PAGES */
.row.card-deck .card > a {
  display: block;
  height: 100%;
}

.row.card-deck .card > a:focus,
.row.card-deck .card > a:focus-visible {
  outline: none !important;
  box-shadow: none;
}

.row.card-deck .card > a:focus .card-body,
.row.card-deck .card > a:focus-visible .card-body {
  box-shadow: inset 0 0 0 2px #24504d;
}

.row.card-deck {
  gap: 16px;
}

.card > a {
  display: block;
  height: 100%;
  text-decoration: none;
  color: inherit;
}

.card > a .card-body {
  display: flex;
  flex-direction: column;
  align-items: center;
}

div.booklistgridbookcover {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

div.booklistgridbookcover img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

@media (min-width: 560px) {
  div.booklistgridbookcover {
    height: 350px;
  }
}

@media (min-width: 768px) {
  div.booklistgridbookcover {
    height: 375px;
  }
}

@media (min-width: 992px) {
  div.booklistgridbookcover {
    height: 325px;
  }
}

@media (min-width: 1200px) {
  div.booklistgridbookcover {
    height: 250px;
  }
}

/* dropdown toggle */
.show>.btn-secondary.dropdown-toggle,
.dropdown-toggle {
  color: #333333 !important;
  font-size: 13px;
}


@media only screen and (min-width: 1201px) {
  .dima-navbar-wrap.desk-nav .dima-nav-tag.dima-tag-primary-menu .menu-item-has-children {
    position: relative;
  }

  .dima-navbar-wrap.desk-nav .dima-nav-tag.dima-tag-primary-menu .menu-item-has-children > a {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
  }

  .dima-navbar-wrap.desk-nav .dima-nav-tag.dima-tag-primary-menu .menu-item-has-children > a .submenu-toggle {
    background: none !important;
    border: none !important;
    color: #24504D !important;
    cursor: pointer !important;
    font-size: 0.7rem !important;
    padding: 0 4px;
    line-height: 1;
  }

  .dima-navbar-wrap.desk-nav .dima-nav-tag.dima-tag-primary-menu .menu-item-has-children > a[aria-expanded="true"] .submenu-toggle {
    transform: rotate(180deg);
  }

  .dima-navbar-wrap.desk-nav .dima-nav-tag.dima-tag-primary-menu .sub-menu {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s ease, visibility 0.25s ease;
  }

  /* NEW navigation */
  .dima-nav.nav-primary .main-menu-item .sub-menu li.sub-menu-item.current-menu-item >a>span {
    color: #24504d !important;
  }

  .dima-navbar-wrap.desk-nav .dima-navbar .dima-nav-tag ul.sub-menu a:focus-visible {
    outline: 2px solid #ffff !important;
    outline-offset: 3px !important;
  }

  .dima-navbar-wrap.desk-nav .dima-navbar .dima-nav-tag .dima-nav>li>.sub-menu li a:focus-visible{
    outline: 2px solid #fff !important;
    outline-offset: 3px !important;
  }

  .dima-navbar-wrap.desk-nav .dima-navbar .dima-nav-tag .dima-nav>li>.sub-menu li.current-menu-item >a:focus-visible {
    background-color: #bfcfd1; 
    outline: 2px solid #ffff !important;
    outline-offset: 3px !important;
  }

  .dima-nav.nav-primary .main-menu-item .sub-menu li.sub-menu-item >a:focus-visible {
    outline: 2px solid #ffff !important;
    outline-offset: 3px !important;
  }

  .dima-navbar-wrap.desk-nav .dima-nav-tag.dima-tag-primary-menu .menu-item-has-children > a:focus-visible  {
    outline: none !important;
  }

  .dima-navbar-wrap.desk-nav .dima-nav-tag.dima-tag-primary-menu .menu-item-has-children > a:focus-visible .dima-menu-span {
    outline: 2px solid #24504D !important;
    outline-offset: 3px !important;
  }
}

/* Newsletter popup */ 
#pum-45107,
#pum-45107 .pum-content,
#pum-45107 .pum-container,
#pum-45107 [role="dialog"] {
  outline: none !important;
}

#pum-45107 .pum-content.popmake-content {
  outline: 2px solid #24504D !important;
}

/* White focus only for actual keyboard navigation inside the popup */
#pum-45107 :focus-visible {
  outline: 2px solid #ffffff !important;
  outline-offset: 4px !important;
}

/* Close button */
#pum-45107 .pum-close:focus-visible,
#pum-45107 .popmake-close:focus-visible,
#pum-45107 button[aria-label*="close"]:focus-visible {
  outline: 2px solid #ffffff !important;
  outline-offset: 4px !important;
}

/* Show arrows on keyboard focus */
.iav-slick-class.slick-initialized:focus-within .slick-prev,
.iav-slick-class.slick-initialized:focus-within .slick-next,
.iav-slick-class .slick-prev:focus,
.iav-slick-class .slick-prev:focus-visible,
.iav-slick-class .slick-next:focus,
.iav-slick-class .slick-next:focus-visible {
  opacity: 1;
}

.iav-slick-class .slick-prev:focus,
.iav-slick-class .slick-prev:focus-visible,
.iav-slick-class .slick-next:focus,
.iav-slick-class .slick-next:focus-visible {
  box-shadow: 0 0 0 4px #0b79a9;
  outline: 2px solid #0b79a9;
  outline-offset: 4px;
}

.iav-slick-class .slick-dots button:focus::before,
.iav-slick-class .slick-dots button:focus-visible::before {
  border: 2px solid #0b79a9;
  border-radius: 50%;
  opacity: 1;
  transform: translate(-50%, -50%) scale(1.4);
}

.iav-slick-class .slick-dots button:focus,
.iav-slick-class .slick-dots button:focus-visible {
  box-shadow: none;
  outline: none;
}

/* .slick-dots > li > button:before {
  top: 10px;
  left: 15px;
  width: 8px;
  height: 8px;
      background: red;
} */

.iav-slick-class .slick-dots li button {
  height: 20px;
  padding: 0;
  position: relative;
  width: 20px;
}

.iav-slick-class .slick-dots li button::before {
  color: #0b79a9 !important;
  font-size: 8px;
  height: 8px;
  left: 50%;
  line-height: 8px;
  opacity: 0.2;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 8px;
}

.iav-slick-class .slick-dots li button:focus,
.iav-slick-class .slick-dots li button:focus-visible {
  outline: 2px solid #0b79a9;
  outline-offset: 0;
}

/* revolution slider: home page and little bigfoot */
.tp-leftarrow:focus, 
.tp-rightarrow:focus {
  outline: 2px solid #0b79a9;
  outline-offset: 4px;
}

.rev_slider_wrapper a:focus-visible,
.tp-leftarrow:focus-visible,
.tp-rightarrow:focus-visible {
  outline: none !important;
}

.tp-leftarrow:focus-visible::after,
.tp-rightarrow:focus-visible::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  box-shadow: inset 0 0 0 4px #0b79a9, inset 0 0 0 8px #ffffff;
}

.rev_slider_wrapper a:focus-visible::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  box-shadow: inset 0 0 0 4px #0b79a9, inset 0 0 0 8px #ffffff;
}

.iav-before-footer {
  position: relative;
  z-index: 2;
}