/*
Theme Name:   Superbook Academy
Description:  Combined child theme CSS for Superbook Academy Marketing and Superbook Academy Membership
Author:       DIY Dreamsite
Author URI:   https://diydreamsite.com
Template:     kadence
*/


/* ============================================================
   CSS Variables / Root
   ============================================================ */

:root {
  --global-palette10: #f4d919;
  --global-palette11: #b71f44;
  --global-palette12: #007c85;
  --global-palette21: #b4e7b4;          /* en only */
  --global-palette12-50: #7abac0;
  --global-palette18: #0095da;          /* membership only */
  --kb-query-placeholder-color: var(--global-palette5); /* en only */
}


/* ============================================================
   Utility
   ============================================================ */

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}


/* ============================================================
   Header
   ============================================================ */

.site-main-header-wrap {
  box-shadow: 1px 1px 2px 0px rgba(0, 0, 0, 0.2);
}

#primary-menu .sub-menu {
  border-bottom-left-radius: 15px;
  border-bottom-right-radius: 15px;
  overflow: hidden;
}

/* Membership: also targets #menu-membership-menu */
#menu-membership-menu {
  border-bottom-left-radius: 15px;
  border-bottom-right-radius: 15px;
  overflow: hidden;
}

.header-mobile-search-bar form input.search-field {
  border-radius: 8px;
}

.header-mobile-search-bar form.woocommerce-product-search .kadence-search-icon-wrap {
  color: var(--global-palette5);
  opacity: 0.7;
}

/* Main menu — membership site */
#primary-menu .dds-home-menu .menu-label-icon-wrap {
  display: flex;
  margin-top: -3px;
  margin-right: 0;
}

#mobile-menu .dds-home-menu .menu-label-icon-wrap {
  margin-right: 0;
}

.header-menu-container .menu-item a,
.mobile-navigation .menu-item a {
  text-transform: none !important;
}

/* Mega Menu — membership site */
#primary-menu .dds-mega-menu-container .kt-row-column-wrap {
  margin-right: 0;
}

#primary-menu .dds-mega-menu > .sub-menu {
  overflow: visible;
}

#primary-menu .dds-mega-menu .sub-menu .menu-container {
  max-height: 310px;
  overflow-x: scroll;
}

/* Role-based menu visibility */
.role-member .dds-courses-menu {
  display: none !important;
}

body:not(.role-member) .dds-member-menu {
  display: none !important;
}


/* ============================================================
   Login Drawer
   ============================================================ */

#login-drawer.popup-drawer.active .drawer-inner {
  background-image: url(/wp-content/uploads/free-lesson-background.webp);
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

/* Membership: also has border-radius */
/* Note: if both themes are active on the same instance, add border-radius: 20px here */

@media screen and (max-width: 450px) {
  button.login-toggle-close.drawer-toggle {
    color: #b4b1b1 !important;
  }
}


/* ============================================================
   Footer
   ============================================================ */

.dds-footer-content p.wp-block-kadence-advancedheading {
  font-weight: 800;
}


/* ============================================================
   Breadcrumbs
   ============================================================ */

/* Lesson breadcrumbs — shop/en theme */
#wrapper .dds-breadcrumbs ul {
  padding-left: 0;
  margin-left: 0;
  list-style-type: none;
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  font-size: 85%;
  color: var(--global-palette9);
}

#wrapper .dds-breadcrumbs ul a {
  color: var(--global-palette9);
  text-decoration: underline;
}

#wrapper .dds-shop-breadcrumbs .dds-breadcrumbs ul {
  color: var(--global-palette3);
}

#wrapper .dds-shop-breadcrumbs .dds-breadcrumbs ul a {
  color: #b71f44;
}

#wrapper .dds-shop-breadcrumbs .dds-breadcrumbs ul a:hover {
  color: #ea2227;
}

/* Lesson breadcrumbs — membership theme */
#main .dds-lesson-breadcrumbs ul {
  padding-left: 0;
  margin-left: 0;
  list-style-type: none;
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  font-size: 16px;
  color: var(--global-palette9);
}

#main .dds-lesson-breadcrumbs ul a {
  color: var(--global-palette9);
  text-decoration: underline;
}

#main .dds-preschool-breadcrumbs .dds-lesson-breadcrumbs ul,
#main .dds-preschool-breadcrumbs .dds-lesson-breadcrumbs ul a {
  color: var(--global-palette3);
}

/* Single product — hide first breadcrumb segments */
.kadence-breadcrumb-container .kadence-bc-home,
.kadence-breadcrumb-container .bc-delimiter:nth-of-type(2) {
  display: none;
}


/* ============================================================
   Buttons & Inputs
   ============================================================ */

button.kb-filter-search-btn {
  box-shadow: none;
}

#inner-wrap .kb-filter-search-wrap .kb-filter-search-btn {
  color: var(--global-palette5);
}

/* en theme uses #main; membership uses #inner-wrap */
#main .kb-filter-search,
#inner-wrap .kb-filter-search {
  padding-right: 40px;
}

#main .kadence-filter-wrap input[type="checkbox"],
#inner-wrap .kadence-filter-wrap input[type="checkbox"] {
  border: 2px solid var(--global-palette5);
  height: 1.25em;
  width: 1.2em;
}

/* Membership uses a slightly different border color for shop filters */
.dds-shop-filters .kadence-filter-wrap input[type="checkbox"] {
  border: 2px solid var(--global-palette5);
}

#main .kadence-filter-wrap input[type="checkbox"]:checked,
#inner-wrap .kadence-filter-wrap input[type="checkbox"]:checked {
  background: var(--global-palette2);
}

#main .kadence-filter-wrap input[type="checkbox"]::before,
#inner-wrap .kadence-filter-wrap input[type="checkbox"]::before {
  height: 0.7em;
  width: 0.7em;
}

/* Password eye */
button.show-password-input,
button.show-password-input:hover,
button.show-password-input:focus {
  background: none;
  box-shadow: none;
  padding: 0.2em;
}


/* ============================================================
   Dividers
   ============================================================ */

.dds-divider-hide .kt-row-layout-bottom-sep {
  z-index: 2;
}


/* ============================================================
   Video
   ============================================================ */

.gslide-media.gslide-external {
  border-radius: 15px;
  overflow: hidden;
}

.dds-hero-video.wp-block-kadence-videopopup {
  width: 100px;
  height: 100px;
}

.dds-hero-video .kadence-video-popup-wrap.kadence-video-noshadow {
  height: 100%;
}

.dds-hero-video .kadence-video-overlay {
  background: transparent;
}

.dds-hero-video .kadence-video-popup-wrap {
  overflow: visible;
}

.dds-shop-video .kb-svg-icon-wrap:before,
.dds-hero-video .kadence-video-popup-wrap:before {
  content: "";
  position: absolute;
  width: 90%;
  height: 90%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  pointer-events: none;
  box-shadow: 0 0 0 0 color-mix(in srgb, var(--global-palette10), transparent 100%);
  animation: pulse 2s linear infinite;
}

.dds-shop-video .kb-svg-icon-wrap:before {
  width: 90px;
  height: 90px;
}

@keyframes pulse {
  0% {
    box-shadow:
      0 0 0 0 color-mix(in srgb, var(--global-palette10), transparent 30%),
      0 0 0 0 color-mix(in srgb, var(--global-palette10), transparent 30%);
  }
  40% {
    box-shadow:
      0 0 0 30px color-mix(in srgb, var(--global-palette10), transparent 100%),
      0 0 0 0    color-mix(in srgb, var(--global-palette10), transparent 30%);
  }
  80% {
    box-shadow:
      0 0 0 30px color-mix(in srgb, var(--global-palette10), transparent 100%),
      0 0 0 30px color-mix(in srgb, var(--global-palette10), transparent 100%);
  }
  100% {
    box-shadow:
      0 0 0 0    color-mix(in srgb, var(--global-palette10), transparent 100%),
      0 0 0 30px color-mix(in srgb, var(--global-palette10), transparent 100%);
  }
}

.wp-block-kadence-videopopup.kadence-video-popup153351_07f61d-64.dds-shop-video:focus,
.wp-block-kadence-videopopup.kadence-video-popup153351_07f61d-64.dds-shop-video:focus-within,
.wp-block-kadence-videopopup.kadence-video-popup153351_07f61d-64.dds-shop-video:focus-visible {
  outline: auto;
  outline-offset: 2px;
}

/* Brightcove Videos */
.dds-bc-video .kt-inside-inner-col {
  overflow: hidden;
}

/* Lesson video repeater — membership */
.dds-lesson-video-repeater ul.wp-block-kadence-repeatertemplate {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
  column-gap: 1.5rem;
}

.dds-lesson-video-repeater ul.wp-block-kadence-repeatertemplate p {
  margin: 0;
}

.dds-lesson-video-repeater ul li > div {
  border-radius: 15px;
  overflow: hidden;
  aspect-ratio: 16 / 9;
}

.dds-lesson-video-repeater ul li + div + div {
  padding-top: 56.25% !important;
}

.dds-lesson-video-repeater ul li :is(video, video-js) {
  height: auto !important;
}

.dds-lesson-video-repeater .vjs-text-track-display {
  inset-block: 0 !important;
}


/* ============================================================
   Animated Shapes
   ============================================================ */

.dds-blob.front .kt-inside-inner-col {
  animation: morph-front 10s linear infinite;
}

.dds-blob.back .kt-inside-inner-col {
  animation: morph-back 10s linear infinite;
}

@keyframes morph-front {
  0%   { border-radius: 60% 40% 60% 40% / 50% 60% 40% 50%; }
  20%  { border-radius: 55% 45% 65% 35% / 50% 55% 45% 50%; }
  40%  { border-radius: 65% 35% 50% 50% / 60% 50% 40% 60%; }
  60%  { border-radius: 60% 50% 60% 40% / 55% 45% 60% 45%; }
  80%  { border-radius: 55% 45% 65% 35% / 60% 55% 40% 60%; }
  100% { border-radius: 60% 40% 60% 40% / 50% 60% 40% 50%; }
}

@keyframes morph-back {
  0%   { border-radius: 50% 50% 40% 60% / 60% 40% 55% 45%; }
  20%  { border-radius: 45% 55% 70% 30% / 65% 35% 50% 50%; }
  40%  { border-radius: 40% 60% 50% 50% / 55% 45% 60% 40%; }
  60%  { border-radius: 60% 40% 55% 45% / 70% 30% 40% 60%; }
  80%  { border-radius: 55% 45% 70% 35% / 60% 40% 55% 50%; }
  100% { border-radius: 50% 50% 40% 60% / 60% 40% 55% 45%; }
}


/* ============================================================
   Carousels
   ============================================================ */

/* Shared overlay gradient */
:is(
  .dds-product-carousel,
  .dds-lesson-carousel,
  .dds-overlay
) .kt-image-overlay-color-wrapper .kt-image-overlay-color {
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0) 0%,
    rgba(0, 0, 0, 0.1) 50%,
    rgba(0, 0, 0, 0.8) 100%
  );
  opacity: 1;
}

/* Product carousel arrows */
.dds-product-carousel.wp-block-kadence-postgrid .splide__arrow {
  font-size: 1rem;
  background: var(--global-palette11);
  border: var(--splide-nav-border);
  border-radius: 5px;
  height: 2em;
  width: 2em;
  opacity: 1;
  padding: 0;
  color: var(--splide-nav-color);
  top: auto;
  bottom: 3rem;
}

.dds-product-carousel.dds-overhang-right .splide__arrow--prev { left: -8rem; }
.dds-product-carousel.dds-overhang-right .splide__arrow--next { left: -5rem; }
.dds-product-carousel.dds-overhang-left .splide__arrow--prev { right: -5rem; left: auto; }
.dds-product-carousel.dds-overhang-left .splide__arrow--next { right: -8rem; left: auto; }

/* Lesson carousel arrows */
.dds-lesson-carousel .kb-splide .splide__arrow {
  font-size: 1rem;
  background: var(--global-palette2);
  border: var(--splide-nav-border);
  border-radius: 5px;
  height: 2em;
  width: 2em;
  opacity: 1;
  padding: 0;
  color: var(--splide-nav-color);
}

.dds-lesson-carousel .kb-splide.kb-slider-group-arrows .splide__arrows .splide__arrow {
  opacity: 1;
}

/* Overhang track margin */
@media all and (min-width: 768px) {
  .dds-overhang-right .splide__track { margin-right: -8vw; }
  .dds-overhang-left .splide__track  { margin-left: -8vw; }
}


/* ============================================================
   Lesson Spread Animation
   ============================================================ */

.dds-lesson-ani .dds-lesson-ani-main {
  width: 60%;
  height: 420px;
}

.dds-lesson-ani :is(.dds-lesson-ani-left, .dds-lesson-ani-right) {
  opacity: 0.8;
  position: absolute;
  top: 0;
  width: 40%;
  height: 390px;
}

.dds-lesson-ani .dds-lesson-ani-left {
  left: 50px;
  right: auto;
}

.dds-lesson-ani .dds-lesson-ani-right {
  right: 50px;
  left: auto;
}

.dds-lesson-ani :is(.dds-lesson-ani-main, .dds-lesson-ani-left, .dds-lesson-ani-right) {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.dds-lesson-ani :is(.dds-lesson-ani-main, .dds-lesson-ani-left, .dds-lesson-ani-right) .kt-inside-inner-col {
  height: 100%;
}

.dds-lesson-ani:hover :is(.dds-lesson-ani-left, .dds-lesson-ani-right) {
  height: 400px;
  opacity: 1;
}

.dds-lesson-ani:hover .dds-lesson-ani-right {
  right: 10px;
  left: auto;
  transform: rotate(5deg);
}

.dds-lesson-ani:hover .dds-lesson-ani-left {
  left: 10px;
  right: auto;
  transform: rotate(-5deg);
}

@media all and (min-width: 1025px) {
  .dds-lesson-ani:hover .dds-lesson-ani-main { width: 50%; }
}

@media all and (max-width: 1024px) {
  .dds-lesson-ani .dds-lesson-ani-main {
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 4;
  }
}


/* ============================================================
   Tabs
   ============================================================ */

.dds-large-tabs .kt-title-text {
  font-weight: 700;
}

@media all and (max-width: 1024px) {
  .dds-small-tabs .kt-tab-inner-content {
    margin-bottom: 5px;
  }
}


/* ============================================================
   Gizmo Circle
   ============================================================ */

.dds-gizmo-circle.wp-block-kadence-column > .kt-inside-inner-col {
  background-image: radial-gradient(
    circle at 50% 75%,
    var(--global-palette9) 30%,
    rgba(255, 255, 255, 0) 30.3%
  );
}


/* ============================================================
   Pricing Table Ribbon
   ============================================================ */

.dds-ribbon {
  --r: 0.4em;
  top: 20px;
  inset-inline: calc(-1 * var(--r));
  padding: 0 0.5em calc(2 * var(--r));
  border-radius: var(--r);
  --_g: 100% / var(--r) calc(2 * var(--r)) no-repeat;
  background:
    radial-gradient(100% 50% at right, #0005 98%, #0000 101%) 0 var(--_g),
    radial-gradient(100% 50% at left,  #0005 98%, #0000 101%) 100% var(--_g),
    conic-gradient(
      from 90deg at var(--r) calc(100% - 2 * var(--r)),
      #0000 25%,
      var(--global-palette4) 0
    ) 0 0 / calc(100% - var(--r)) 100%;
}


/* ============================================================
   FAQ / Misc
   ============================================================ */

.dds-reset-filters button:focus {
  outline-offset: 2px;
}

.count-alert {
  font-weight: 500;
  margin-bottom: 0.5em;
}

@media all and (max-width: 767px) {
  .dds-faq-sticky.kb-section-is-sticky {
    position: relative;
    top: 0;
  }
}


/* ============================================================
   Shop Filter Buttons
   ============================================================ */

.dds-filter-buttons .buttons-options .kb-button:before {
  content: "";
  border-radius: 3px;
  box-shadow: inset 1em 1em var(--global-palette9);
  transition: transform 0.12s ease-in-out;
  border: 2px solid #a4a9b3;
  height: 1.25em;
  width: 1.3em;
  margin: -5px 5px 0 0;
  position: relative;
  opacity: 1;
}

.dds-filter-buttons .buttons-options .kb-button.pressed:before {
  content: "";
  border-radius: 3px;
  box-shadow: inset 1em 1em var(--global-palette2);
  transition: transform 0.12s ease-in-out;
  border: 2px solid #a4a9b3;
  margin: -5px 5px 0 0;
  position: relative;
  opacity: 1;
}

.dds-filter-buttons .buttons-options .kb-button.pressed::after {
  content: "";
  display: inline-block;
  width: 7px;
  height: 12px;
  border: solid var(--global-palette9);
  border-width: 0 3px 3px 0;
  transform: rotate(45deg);
  position: absolute;
  top: 0.18em;
  left: 0.45em;
}

/* Curriculum / preschool filter visibility */
.tax-curriculum .dds-curriculum-filter,
.term-preschool .dds-holiday-filter {
  display: none;
}


/* ============================================================
   Search Filter — Membership
   ============================================================ */

body .kb-query-basic-style .kadence-filter-wrap ::placeholder {
  color: var(--global-palette5);
}

body .dds-search-filter .kadence-filter-wrap ::placeholder {
  font-size: 10px;
}

.dds-search-filter .kb-query-label {
  font-family: var(--global-heading-font-family);
  font-weight: normal;
  font-size: 14px;
  line-height: 1.2em;
}


/* ============================================================
   Product Loop
   ============================================================ */

.dds-product-loop-item {
  height: 100%;
}

.dds-product-loop-item > .kt-inside-inner-col {
  flex: 1;
}

.dds-product-loop-item > .kt-inside-inner-col > .wp-block-kadence-imageoverlay {
  flex: 0;
}

.dds-product-loop-item > .kt-inside-inner-col > .kwt-add-to-cart-wrap {
  margin-top: auto;
}

/* en theme also centers and stacks the add-to-cart */
.dds-product-loop-item > .kt-inside-inner-col > .kwt-add-to-cart-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.dds-product-loop-item .kwt-add-to-cart-wrap button:focus {
  outline-offset: 2px;
}

.dds-shop-page-loop .kt-image-overlay-wrap {
  background: var(--global-palette7);
}

/* Product archives */
#inner-wrap .dds-archive-loop .grid-cols {
  gap: 2.5em 20px;
}


/* ============================================================
   Single Products
   ============================================================ */

.single-product .quantity.spinners-added input[type="button"] {
  color: var(--global-palette11);
}

.single-product div.product form.cart div.quantity.spinners-added {
  margin: 0 1em 0 0;
}

.add_to_cart_button .kadence-arrow-right-alt-svg {
  display: none;
}

.single-product .kwt-add-to-cart-loop.wp-block-kadence-wootemplate-blocks-add-to-cart {
  display: flex;
  justify-content: center;
  gap: 1em;
  flex-wrap: wrap-reverse;
}

.dds-single-addtocart:focus {
  outline-offset: 2px;
}

.single-product .dds-single-addtocart .screen-reader-text {
  display: none;
}

/* Fix grouped product layout */
#inner-wrap .kwt-add-to-cart-single .cart.grouped_form {
  flex-direction: column;
  margin-top: 2em;
}

#inner-wrap form.cart .group_table td:first-child {
  width: auto;
}

@media all and (max-width: 1024px) {
  .single-product #wrapper .kwt-upsell-wrap .upsells.products ul.products { gap: 2rem; }
}

@media all and (max-width: 767px) {
  .single-product #wrapper .kwt-upsell-wrap .upsells.products ul.products { gap: 1.5rem; }
}

@media screen and (max-width: 719px) {
  #wrapper div.product .woocommerce-tabs { border: none; }
}

/* Shop video responsive */
@media all and (max-width: 1024px) {
  .dds-shop-video img { visibility: hidden; }
  .dds-shop-video .kadence-video-intrinsic { padding-bottom: 70%; }
}

@media all and (max-width: 767px) {
  .dds-shop-video .kadence-video-intrinsic { padding-bottom: 42%; }
}


/* ============================================================
   Woo General (en / shop theme)
   ============================================================ */

#main .wc-block-components-button {
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.1em;
  font-family: var(--global-heading-font-family, inherit);
  text-transform: uppercase;
  border-radius: 8px;
  padding: 1em 1.5em;
}

#wc-block-components-totals-shipping__change-address__link {
  box-shadow: none;
}

#wc-block-components-totals-shipping__change-address__link:hover {
  color: var(--global-palette3);
}

:is(.wc-block-cart-item__image, .wc-block-components-order-summary-item__image) img {
  border-radius: 8px;
}

#main table,
#main table *,
#main .wp-block-woocommerce-cart-totals-block *,
#main :is(
  .wp-block-woocommerce-checkout-order-summary-block,
  .wp-block-woocommerce-checkout-order-summary-block *
) {
  border-color: rgba(74, 85, 104, 0.5);
}

#main .wc-block-components-quantity-selector::after,
#main .wc-block-checkout :is(input, .wc-blocks-components-select__container) {
  border: 1px solid rgba(74, 85, 104, 0.5);
}

#main .wc-block-components-quantity-selector__input {
  padding: 0.6em 0 0.4em 0;
}

#main .wc-block-components-radio-control--highlight-checked label,
#main .wc-block-components-radio-control-accordion-option.wc-block-components-radio-control-accordion-option--checked-option-highlighted {
  box-shadow: inset 0 0 0 1px rgba(74, 85, 104, 0.5);
}

#main #payment-method label {
  box-shadow: none;
}

#main :is(.wc-block-components-address-form-wrapper, .wc-block-components-address-card) button {
  font-style: normal;
  font-weight: inherit;
  font-size: 15px;
  letter-spacing: inherit;
  text-transform: inherit;
  box-shadow: inherit;
  border: 1px solid rgba(74, 85, 104, 0.5);
  border-radius: 4px;
  color: inherit;
  height: 50px;
  padding: 0.8em 0.5em;
}

#main :is(.wc-block-components-address-form-wrapper, .wc-block-components-address-card) button:hover {
  background: none;
  color: inherit;
}

#main .wc-block-components-order-summary .wc-block-components-order-summary-item__quantity {
  min-height: 26px;
  min-width: 26px;
  padding: 0.3em 0.4em 0.1em 0.4em;
}


/* ============================================================
   My Account (en / shop)
   ============================================================ */

#dds-my-account .account-navigation-wrap {
  background: var(--global-palette8);
  border-radius: 8px;
  border-right: none;
  padding-top: var(--global-sm-spacing);
  padding-bottom: var(--global-sm-spacing);
}

.dds-my-account-products .wp-block-kadence-imageoverlay {
  flex-grow: 0;
}

body.woocommerce-lost-password .woocommerce-ResetPassword.lost_reset_password {
  margin-top: 2em;
}


/* ============================================================
   Account — Membership (PMP)
   ============================================================ */

#dds-pmp-login .pmpro_login_wrap,
#dds-pmp-login .pmpro_card.pmpro_logged_in_welcome_wrap {
  background: transparent;
  border: 2px solid rgba(74, 85, 104, 0.5);
  border-radius: 8px;
  box-shadow: none;
  margin-top: 0;
}

#dds-pmp-login #loginform .input {
  border: 2px solid rgba(74, 85, 104, 0.5);
}

#dds-pmp-login #pmpro_login {
  margin-bottom: 0;
}

body:not(.logged-in) #dds-pmp-login .wp-block-pmpro-login-form .pmpro_card_actions,
.logged-in .dds-reset-pw,
#pmpro_actionlink-change {
  display: none;
}

#inner-wrap #wp-submit {
  color: var(--global-palette-btn);
  background: #f4d919;
  box-shadow: 0px 0px 9px -2px #f4d919;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.1em;
  font-family: var(--global-heading-font-family);
  text-transform: uppercase;
  border-radius: 8px;
  padding: 1em 1.5em;
  border: none;
}

#inner-wrap #wp-submit:hover {
  color: var(--global-palette9);
  background: var(--global-palette2);
  box-shadow: 0px 0px 9px 2px rgba(238, 48, 66, 0.4);
}

/* Membership pages — checkout */
.pmpro-checkout #inner-wrap {
  max-width: var(--global-content-width);
  padding-left: var(--global-content-edge-padding);
  padding-right: var(--global-content-edge-padding);
  margin: 0 auto;
}

.pmpro-checkout #pmprogroupacct_parent_fields {
  display: none;
}


/* ============================================================
   Courses — Membership
   ============================================================ */

.dds-course-item .kt-image-overlay-color-wrapper .kt-image-overlay-color {
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0) 0%,
    rgba(0, 0, 0, 0.1) 50%,
    rgba(0, 0, 0, 0.8) 100%
  );
  opacity: 1;
}


/* ============================================================
   Single Course — Membership
   ============================================================ */

.single-content ul.dds-related-lessons-list {
  list-style-type: none;
  padding-left: 0;
}

.dds-related-lessons-list li::before {
  content: "";
  display: inline-block;
  width: 20px;
  height: 20px;
  margin-right: 10px;
  transform: translateY(5px);
  background-color: var(--global-palette11);
  -webkit-mask: url(/wp-content/uploads/checkmark.svg) no-repeat center;
  mask: url(/wp-content/uploads/checkmark.svg) no-repeat center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.dds-related-lessons-list li:hover::before {
  background-color: var(--global-palette2);
}


/* ============================================================
   Lesson Loop — Membership
   ============================================================ */

.dds-related-lessons {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  grid-gap: 2rem;
}

.dds-lesson-thumbnail {
  overflow: hidden;
  border-radius: 8px;
}

.dds-lesson-thumbnail img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  width: 100%;
  transition: transform 0.35s ease-in-out;
}

.dds-lesson-thumbnail:hover img {
  transform: scale(1.05);
}

.dds-related-lessons .dds-lesson-number {
  margin-bottom: 0;
  margin-top: 0.5em;
  font-weight: bold;
  font-family: var(--global-heading-font-family);
  color: var(--global-palette5);
}

.dds-related-lessons .dds-lesson-title {
  font-size: var(--global-kb-font-size-md);
  margin-top: 0;
  text-transform: none !important;
}

/* Lesson pagination */
.dds-lesson-pagination {
  display: flex;
  justify-content: space-between;
  gap: 2em;
}

.dds-next-lesson {
  margin-left: auto;
}

.dds-lesson-pagination a {
  font-weight: bold;
}


/* ============================================================
   Leader Guide Content — Membership
   ============================================================ */

.dds-leader-guide-tabs .wp-block-kadence-dynamichtml {
  padding-top: var(--global-sm-spacing);
}

.dds-leader-guide-tabs .getready {
  background: var(--global-palette7);
  margin-bottom: var(--global-lg-spacing);
  border-radius: 8px;
}

.dds-leader-guide-tabs .getready > :not(ul, ol, .spoken_list) {
  padding: 0 20px 20px 20px;
}

.dds-leader-guide-tabs .getready > :is(ul, ol) {
  padding-right: 20px;
  padding-bottom: 20px;
  margin: 0;
}

.dds-leader-guide-tabs video-js {
  border-radius: 20px;
}

.dds-leader-guide-tabs .spoken_list {
  margin-bottom: 0;
}

.dds-leader-guide-tabs .spoken_list:before {
  content: "\2713";
  margin-right: 10px;
}

.dds-leader-guide-tabs .sub_title {
  background: var(--global-palette2);
  color: var(--global-palette9);
  border-radius: 8px;
  padding: 0.5em 0.5em 0.3em 0.5em;
}

.dds-leader-guide-tabs .student_answers {
  font-style: italic;
  font-weight: normal;
  color: #0095da;
}

.dds-leader-guide-tabs .smallcaps {
  font-variant-caps: small-caps;
  text-transform: lowercase;
}

.dds-leader-guide-tabs .getready ul.teacher_info {
  padding-left: 3em;
  padding-top: 20px;
  margin-bottom: 10px;
}

.dds-leader-guide-tabs p:not(.teacher_info) {
  font-weight: 600;
}

.dds-leader-guide-tabs .getready p {
  font-weight: normal;
}

.dds-leader-guide-tabs .scripture {
  font-style: italic;
  background: var(--global-palette7);
  border-left: 0.5em solid var(--global-palette2);
  border-radius: 8px;
  padding: 1em;
}

.dds-leader-guide-tabs > .kt-tabs-wrap .kt-tabs-accordion-title-11 {
  visibility: hidden;
}


/* ============================================================
   Content Styling (adapted from Moodle)
   ============================================================ */

/* Timing */
.time {
  font-size: 18px;
  color: #0095da;
  font-style: italic;
  display: inline;
  font-weight: lighter;
}

/* Teacher Info */
.teacher_info,
.single-content .teacher_info,
.entry-content .teacher_info {
  font-family: exo-2-variable;
  font-weight: normal;
}

/* Student Answers */
.single-content .student_answers,
.entry-content .student_answers {
  font-style: italic;
  font-weight: normal;
  color: #4297b6;
}

/* Get Ready */
.getready p,
.getready li,
.single-content .getready p,
.single-content .getready li,
.entry-content .getready p,
.entry-content .getready li {
  font-weight: normal;
}

.getready {
  background-color: #e9f9fd;
  padding: 20px;
  margin-bottom: 2em;
  border-bottom-left-radius: 10px;
  border-bottom-right-radius: 10px;
}

.getready::before {
  content: "Maak je klaar";
  font-family: proxima-nova;
  font-size: 22px;
  font-weight: 600;
}

/* Scripture */
.single-content .scripture,
.entry-content .scripture {
  font-size: 18px;
  line-height: 1.4em;
  font-style: italic;
  font-weight: 600;
  background: #e9f9fd;
  border-left: 1.6em solid #55c1e9;
  padding: 1.5em 20px 1.5em 2.5em;
  margin-bottom: 1em;
  border-bottom-right-radius: 10px;
  border-top-right-radius: 10px;
  position: relative;
}

.single-content .scripture::before,
.entry-content .scripture::before {
  content: "";
  position: absolute;
  left: -1.3em;
  top: 50%;
  transform: translateY(-50%);
  width: 1em;
  height: 1.4em;
  background-color: #e9f9fd;
  -webkit-mask: url(/wp-content/uploads/bookmark-regular-full.svg) no-repeat center;
  mask: url(/wp-content/uploads/bookmark-regular-full.svg) no-repeat center;
  -webkit-mask-size: contain;
  mask-size: contain;
}


/* ============================================================
   Bible Version Tooltips — Membership
   ============================================================ */

.dds-bv-tooltip {
  position: relative;
  display: inline-block;
  cursor: pointer;
  color: #0048f1;
  border-bottom: 1px dotted #0048f1;
  font-size: small;
  line-height: 1em;
}

.dds-bv-tooltip .dds-bv-tooltip-text {
  visibility: hidden;
  width: 300px;
  background-color: var(--global-palette3);
  color: var(--global-palette9);
  text-align: center;
  border-radius: 8px;
  padding: 10px;
  position: absolute;
  z-index: 1000;
  bottom: 120%;
  left: 50%;
  transform: translateX(-50%);
  opacity: 0;
  transition: opacity 0.3s;
  font-size: 12px;
  line-height: 1.5em;
}

.dds-bv-tooltip:hover .dds-bv-tooltip-text {
  visibility: visible;
  opacity: 1;
}

/* Important info tooltip — Safari fix */
.dds-ii-tooltip {
  flex-direction: row;
  flex-wrap: nowrap;
  width: 100%;
}


/* ============================================================
   Custom Accordion — Membership
   ============================================================ */

.dds-custom-accordion .dds-custom-accordion-content {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.3s ease;
}

.dds-custom-accordion .dds-custom-accordion-content.expanded {
  max-height: 3000px;
}

.dds-custom-accordion-trigger {
  justify-content: space-between;
  cursor: pointer;
}

.dds-custom-accordion-trigger .kb-svg-icon-wrap {
  transition: transform 0.3s ease;
}

.dds-custom-accordion-trigger .kb-svg-icon-wrap.rotated {
  transform: rotate(180deg);
}


/* ============================================================
   Related & Episode Products — Membership
   ============================================================ */

.dds-episode-products.wp-block-kadence-column .kt-inside-inner-col .dds-products,
.dds-related-products.wp-block-kadence-column .kt-inside-inner-col {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-gap: 2rem;
}

@media all and (max-width: 1024px) {
  .dds-episode-products.wp-block-kadence-column .kt-inside-inner-col .dds-products,
  .dds-related-products.wp-block-kadence-column .kt-inside-inner-col {
    grid-template-columns: repeat(auto-fit, minmax(30vw, 1fr));
    gap: 1em;
  }
}

.dds-product > a {
  overflow: hidden;
}

.dds-episode-products .dds-product-category {
  text-align: center;
  margin-top: var(--global-sm-spacing);
  margin-bottom: 0;
  font-weight: 600;
  color: var(--global-palette5);
}

.dds-product-image-wrapper {
  border-radius: 8px;
  overflow: hidden;
  background: var(--global-palette7);
}

.dds-product-image {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  transition: transform 0.35s ease-in-out;
}

.dds-product-image-wrapper:hover .dds-product-image {
  transform: scale(1.05);
}

:is(.dds-episode-products, .dds-related-products) .dds-product-title {
  margin-top: 1.5rem;
  font-size: var(--global-kb-font-size-md);
  text-align: center;
}

.dds-episode-products .dds-product-title {
  margin-top: var(--global-xxs-spacing);
}

:is(.dds-episode-products, .dds-related-products) .dds-product-price {
  font-weight: bold;
  font-size: 1.2rem;
  color: var(--global-palette5);
  text-align: center;
}


/* ============================================================
   Documents — Membership
   ============================================================ */

.dds-documents-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  grid-gap: 2rem;
}

.dds-document-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.dds-document-link img,
.dlp-grid-documents .dlp-grid-card img {
  box-shadow: 0px 0px 9px -1px rgba(0, 0, 0, 0.2);
  border-radius: 8px;
}

.dlp-grid-documents .dlp-grid-card-content {
  border: none;
}

.dlp-grid-documents .dlp-grid-card-title {
  font-weight: normal;
}


/* ============================================================
   Print Friendly Link — Membership
   ============================================================ */

.printfriendly a,
.printfriendly a:link,
.printfriendly a:visited,
.printfriendly a:hover,
.printfriendly a:active {
  display: flex;
  gap: 5px;
  font-weight: 600;
  font-size: 14px !important;
  color: #b71f44 !important;
}


/* ============================================================
   Books Filter Order — Membership
   ============================================================ */

.dds-books-filter .kb-radio-check-item[data-value="453"] { order: 0; }   /* Old */
.dds-books-filter .kb-radio-check-item[data-value="116"] { order: 1; }   /* Genesis */
.dds-books-filter .kb-radio-check-item[data-value="160"] { order: 2; }   /* Exodus */
.dds-books-filter .kb-radio-check-item[data-value="182"] { order: 3; }   /* Numbers */
.dds-books-filter .kb-radio-check-item[data-value="183"] { order: 4; }   /* Deuteronomy */
.dds-books-filter .kb-radio-check-item[data-value="184"] { order: 5; }   /* Joshua */
.dds-books-filter .kb-radio-check-item[data-value="191"] { order: 6; }   /* Judges */
.dds-books-filter .kb-radio-check-item[data-value="196"] { order: 7; }   /* Ruth */
.dds-books-filter .kb-radio-check-item[data-value="206"] { order: 8; }   /* Samuel */
.dds-books-filter .kb-radio-check-item[data-value="220"] { order: 9; }   /* Kings */
.dds-books-filter .kb-radio-check-item[data-value="740"] { order: 10; }  /* 1 Kings */
.dds-books-filter .kb-radio-check-item[data-value="733"] { order: 11; }  /* 2 Kings */
.dds-books-filter .kb-radio-check-item[data-value="221"] { order: 12; }  /* Chronicles */
.dds-books-filter .kb-radio-check-item[data-value="268"] { order: 13; }  /* Nehemiah */
.dds-books-filter .kb-radio-check-item[data-value="265"] { order: 14; }  /* Esther */
.dds-books-filter .kb-radio-check-item[data-value="131"] { order: 15; }  /* Job */
.dds-books-filter .kb-radio-check-item[data-value="1387"] { order: 16; } /* Psalm */
.dds-books-filter .kb-radio-check-item[data-value="295"] { order: 17; }  /* Proverbs */
.dds-books-filter .kb-radio-check-item[data-value="1360"] { order: 18; } /* Ecclesiastes */
.dds-books-filter .kb-radio-check-item[data-value="117"] { order: 19; }  /* Isaiah */
.dds-books-filter .kb-radio-check-item[data-value="255"] { order: 20; }  /* Jeremiah */
.dds-books-filter .kb-radio-check-item[data-value="258"] { order: 21; }  /* Daniel */
.dds-books-filter .kb-radio-check-item[data-value="242"] { order: 22; }  /* Jonah */
.dds-books-filter .kb-radio-check-item[data-value="452"] { order: 23; margin-top: 20px; } /* New */
.dds-books-filter .kb-radio-check-item[data-value="276"] { order: 24; }  /* Matthew */
.dds-books-filter .kb-radio-check-item[data-value="286"] { order: 25; }  /* Mark */
.dds-books-filter .kb-radio-check-item[data-value="271"] { order: 26; }  /* Luke */
.dds-books-filter .kb-radio-check-item[data-value="287"] { order: 27; }  /* John */
.dds-books-filter .kb-radio-check-item[data-value="139"] { order: 28; }  /* Acts */
.dds-books-filter .kb-radio-check-item[data-value="419"] { order: 29; }  /* Romans */
.dds-books-filter .kb-radio-check-item[data-value="420"] { order: 30; }  /* Corinthians */
.dds-books-filter .kb-radio-check-item[data-value="1382"] { order: 31; } /* Ephesians */
.dds-books-filter .kb-radio-check-item[data-value="421"] { order: 32; }  /* Philippians */
.dds-books-filter .kb-radio-check-item[data-value="1329"] { order: 33; } /* Colossians */
.dds-books-filter .kb-radio-check-item[data-value="1392"] { order: 34; } /* 1 Thessalonians */
.dds-books-filter .kb-radio-check-item[data-value="422"] { order: 35; }  /* Timothy */
.dds-books-filter .kb-radio-check-item[data-value="161"] { order: 36; }  /* Hebrews */
.dds-books-filter .kb-radio-check-item[data-value="430"] { order: 37; }  /* Revelation */


/* ============================================================
   Accessibility
   ============================================================ */

/* Home page card focus — CBNSA-009 */
.kb-row-layout-id67_aed767-44 .kt-block-intrisic > .kt-imageoverlay-link > .kt-image-overlay-message:focus {
  border: 3px solid #000;
  box-shadow: 5px 5px 5px 2px #000;
  background-color: rgba(0, 0, 0, 0.2);
}

/* Cart drawer — CBNSA-009 */
#cart-drawer li.woocommerce-mini-cart-item.mini_cart_item {
  padding-left: 4px !important;
  padding-top: 4px !important;
}

#cart-drawer .mini_cart_item a.remove.remove_from_cart_button {
  top: 3px !important;
  right: 3px !important;
}

/* Blockquote heading fix — CBNSA-032 */
.kt-adv-heading67_8231b7-6b blockquote,
.kt-adv-heading70_e7ef22-a4 blockquote,
.kt-adv-heading70_531e10-89 blockquote,
.kt-adv-heading70_176f7f-96 blockquote {
  word-break: break-word;
  text-align: center;
  font-size: var(--global-kb-font-size-lg, 2rem);
  line-height: 1.2;
  font-weight: bold;
  margin-block: 0px;
  margin-inline: 0px;
  border-left: 0px;
  padding-left: 0px;
}


/* ============================================================
   Print Styles — Membership
   ============================================================ */

@media print {
  @page {
    margin: 1.5cm;
  }

  body {
    font-size: 10pt;
    line-height: 1.4;
    font-family: "exo-2-variable", sans-serif;
    font-weight: 600;
  }

  p, li, span, td, th {
    font-weight: 600;
  }

  .scripture {
    font-size: 10pt;
    font-style: italic;
    font-weight: 600;
    background-color: #e9f9fd;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    border-left: 1.6em solid #55c1e9;
    border-top: none;
    border-right: none;
    border-bottom: none;
    padding: 1.5em 20px 1.5em 2.5em;
    margin-bottom: 1em;
    line-height: 1.6em;
    border-bottom-right-radius: 10px;
    border-top-right-radius: 10px;
    position: relative;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .scripture + .scripture {
    margin-top: -0.5em;
  }

  .scripture::before {
    content: "";
    position: absolute;
    left: -1.3em;
    top: 50%;
    transform: translateY(-50%);
    width: 1em;
    height: 1.4em;
    background-color: #ffffff;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    -webkit-mask: url(/wp-content/uploads/bookmark-regular-full.svg) no-repeat center;
    mask: url(/wp-content/uploads/bookmark-regular-full.svg) no-repeat center;
    -webkit-mask-size: contain;
    mask-size: contain;
  }

  .getready {
    background-color: #e9f9fd;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    border-width: 0 1px 1px 15px;
    border-color: #55c1e9;
    border-style: solid;
    padding: 10px 15px;
    margin-bottom: 2em;
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .getready p,
  .getready li {
    font-size: 10pt;
    line-height: 1.4;
    margin-bottom: 6pt;
    font-weight: 400;
  }

  .getready ul,
  .getready ol {
    padding-left: 1.5em;
    margin-left: 0.5em;
  }

  .getready::before {
    content: "Maak je klaar";
    font-family: "proxima-nova", sans-serif;
    font-size: 14pt;
    font-weight: 800;
    display: block;
    margin-bottom: 6pt;
  }

  .dds-section-heading,
  .wp-block-kadence-advancedheading {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    padding-left: 6pt !important;
    padding-top: 6pt !important;
    padding-bottom: 6pt !important;
  }

  .teacher_info {
    font-weight: normal;
  }

  .dds-leader-guide-tabs p:not(.teacher_info) {
    font-weight: 600 !important;
  }

  .student_answers {
    font-style: italic;
    font-weight: normal;
    color: #4297b6;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}