/* SmileSteps authored visual system v19 */
:root {
  --ss-v19-ease: cubic-bezier(.22, 1, .36, 1);
  --ss-v19-forest: #183e2a;
  --ss-v19-plum: #6b506f;
  --ss-v19-gold: #b28b4a;
  --ss-v19-paper: #fffdf8;
}

body.site #sp-main-body img:not(.ratingbox img):not([src*="rating_star"]),
.ss-editorial-image {
  background: #eee9df;
  border-radius: 22px 8px 22px 8px;
  filter: saturate(.78) contrast(1.04) sepia(.035);
  transition: filter .55s var(--ss-v19-ease), transform .75s var(--ss-v19-ease);
}
body.site #sp-main-body a:hover img:not([src*="rating_star"]),
body.site #sp-main-body a:focus-visible img:not([src*="rating_star"]) {
  filter: saturate(.96) contrast(1.06) sepia(0);
  transform: scale(1.025);
}
body.site .vm-product-media-container,
body.site .catItemImageBlock,
body.site .itemImageBlock { overflow: hidden; }

body.site.com-virtuemart.view-category .orderby-displaynumber,
body.site.com-virtuemart.view-category .navigation_grid,
body.site.com-virtuemart.view-category .category-view,
body.site.com-virtuemart.view-category .add-to-favorites,
body.site.com-virtuemart.view-category .add-to-compare,
body.site .add-to-favorites,
body.site .add-to-compare,
body.site .wishlist_button,
body.site [title="Add To Wishlist"] { display: none !important; }

body.site.com-virtuemart.view-category .vm-product-media-container {
  background:
    linear-gradient(145deg, rgba(255,253,248,.28), rgba(233,238,231,.34)),
    url('/templates/shaper_forest/images/smilesteps-learning-path-v19.jpg') center / cover !important;
  border-radius: 24px 8px 24px 8px !important;
}
body.site.com-virtuemart.view-category .vm-product-media-container img {
  background: transparent !important;
  border-radius: 18px 6px 18px 6px !important;
  filter: saturate(.74) contrast(1.04) sepia(.04) !important;
  mix-blend-mode: multiply;
}

body.site #sp-page-title {
  background-image:
    linear-gradient(90deg, rgba(20,53,36,.96) 0%, rgba(32,74,50,.91) 48%, rgba(62,48,66,.72) 100%),
    url('/templates/shaper_forest/images/smilesteps-energy-hand-v19.jpg') !important;
  background-position: center, 67% 46% !important;
  background-size: cover !important;
}
body.site #sp-page-title .ss-page-hero {
  align-items: center;
  display: flex;
  min-height: clamp(260px, 31vw, 440px) !important;
  padding-block: clamp(48px, 7vw, 96px) !important;
}
body.site #sp-page-title .ss-page-hero__copy { max-width: min(760px, 62vw); }
body.site #sp-page-title .ss-page-hero__title {
  color: #fff !important;
  font-family: "Literata", Georgia, serif !important;
  font-size: clamp(38px, 6vw, 82px) !important;
  font-weight: 540 !important;
  letter-spacing: -.045em !important;
  line-height: .99 !important;
  margin: 0 !important;
  text-shadow: 0 8px 32px rgba(20,38,29,.3);
}
body.site #sp-page-title .ss-page-hero__kicker,
body.site #sp-page-title .ss-page-hero__step { display: none !important; }
body.site.ss-hero--learning #sp-page-title {
  background-image:
    linear-gradient(90deg, rgba(20,53,36,.94) 0%, rgba(30,68,47,.78) 44%, rgba(42,38,43,.16) 100%),
    url('/templates/shaper_forest/images/smilesteps-learning-path-v19.jpg') !important;
}
body.site.ss-hero--consultation #sp-page-title {
  background-image:
    linear-gradient(90deg, rgba(20,53,36,.94) 0%, rgba(52,54,47,.74) 45%, rgba(57,43,61,.14) 100%),
    url('/templates/shaper_forest/images/smilesteps-consultation-v21.jpg') !important;
}
body.site.ss-hero--information #sp-page-title {
  background-image:
    linear-gradient(90deg, rgba(20,53,36,.94) 0%, rgba(63,62,49,.70) 45%, rgba(68,52,68,.12) 100%),
    url('/templates/shaper_forest/images/smilesteps-information-v21.jpg') !important;
}
.ss-section-directory {
  background:
    linear-gradient(112deg, rgba(255,253,248,.97) 0%, rgba(247,243,234,.93) 56%, rgba(239,233,224,.84) 100%),
    url('/templates/shaper_forest/images/smilesteps-learning-path-v19.jpg') center / cover !important;
  overflow: hidden;
  position: relative;
}
.ss-section-directory { padding-bottom: clamp(22px, 3vw, 38px) !important; transition: padding-bottom .6s var(--ss-v19-ease); }
.ss-section-directory.ss-section-directory--collapsed { padding-bottom: 0 !important; }
.ss-section-directory__heading {
  align-items: center;
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  display: flex !important;
  gap: 24px;
  justify-content: space-between;
  list-style: none;
  outline: 0;
  padding: clamp(24px, 3vw, 38px) clamp(22px, 3.4vw, 44px) !important;
  user-select: none;
  width: 100%;
}
.ss-section-directory__heading::-webkit-details-marker { display: none; }
.ss-section-directory__title {
  color: #24352c !important;
  font-family: "Literata", Georgia, serif !important;
  font-size: clamp(28px, 3.5vw, 48px) !important;
  font-weight: 520 !important;
  letter-spacing: -.035em !important;
  line-height: 1.05 !important;
  margin: 0 !important;
  text-align: left;
}
.ss-section-directory__toggle {
  align-items: center;
  background: #183e2a;
  border-radius: 50%;
  box-shadow: 0 12px 26px rgba(24,62,42,.18);
  color: #fff;
  display: inline-flex;
  flex: 0 0 48px;
  height: 48px;
  justify-content: center;
  transition: transform .5s var(--ss-v19-ease), background .35s ease;
  width: 48px;
}
.ss-section-directory__toggle::before {
  content: "\2193";
  font-size: 23px;
  line-height: 1;
}
.ss-section-directory:not(.ss-section-directory--collapsed) .ss-section-directory__toggle { transform: rotate(180deg); }
.ss-section-directory__heading:hover .ss-section-directory__toggle,
.ss-section-directory__heading:focus-visible .ss-section-directory__toggle { background: #6b506f; }
.ss-section-directory::after {
  background: url('/templates/shaper_forest/images/smilesteps-learning-path-v19.jpg') center / cover;
  content: "";
  inset: 0 0 0 56%;
  mask-image: linear-gradient(90deg, transparent, #000 42%);
  opacity: .15;
  pointer-events: none;
  position: absolute;
}
.ss-section-directory > * { position: relative; z-index: 1; }

.ss-section-directory__grid {
  gap: 16px !important;
  max-height: 2000px;
  opacity: 1;
  padding-inline: clamp(22px, 3.4vw, 44px) !important;
  transform-origin: top;
  transition: max-height .75s var(--ss-v19-ease), opacity .42s ease, transform .6s var(--ss-v19-ease);
}
.ss-section-directory.ss-section-directory--collapsed .ss-section-directory__grid,
.ss-section-directory.ss-section-directory--collapsed .ss-section-directory__grid.ss-motion-ready,
.ss-section-directory.ss-section-directory--collapsed .ss-section-directory__grid.ss-motion-visible {
  max-height: 0 !important;
  opacity: 0 !important;
  overflow: hidden !important;
  transform: translateY(-18px) scaleY(.97) !important;
}
.ss-section-directory__grid a {
  background:
    linear-gradient(180deg, rgba(20,43,31,.04) 0%, rgba(19,38,29,.25) 45%, rgba(17,35,27,.92) 100%),
    var(--ss-card-image) center / cover no-repeat !important;
  border-color: rgba(37,65,49,.14) !important;
  border-radius: 24px 8px 24px 8px !important;
  box-shadow: 0 10px 26px rgba(25,49,36,.055);
  isolation: isolate;
  min-height: 220px !important;
  overflow: hidden;
  padding: 22px !important;
  position: relative;
  transform: translateZ(0);
  transition: border-radius .45s var(--ss-v19-ease), box-shadow .45s var(--ss-v19-ease), transform .45s var(--ss-v19-ease) !important;
}
.ss-section-directory__grid a::before {
  background: linear-gradient(135deg, rgba(255,255,255,.22), transparent 46%);
  content: "";
  height: 100%;
  position: absolute;
  inset: 0;
  transform: translateZ(0);
  transition: transform .6s var(--ss-v19-ease);
  width: 100%;
  z-index: -1;
}
.ss-section-directory__grid a::after {
  color: var(--ss-v19-plum);
  content: "\2197";
  font-size: 19px;
  line-height: 1;
  position: absolute;
  right: 20px;
  top: 20px;
  transition: transform .4s var(--ss-v19-ease);
}
.ss-section-directory__grid a:hover,
.ss-section-directory__grid a:focus-visible {
  border-radius: 8px 24px 8px 24px !important;
  box-shadow: 0 24px 52px rgba(25,49,36,.13) !important;
  transform: translateY(-6px) !important;
}
.ss-section-directory__grid a:hover::before,
.ss-section-directory__grid a:focus-visible::before { transform: translateZ(0); }
.ss-section-directory__grid a:hover::after,
.ss-section-directory__grid a:focus-visible::after { transform: translate(3px,-3px); }
.ss-section-directory__grid strong {
  color: #fff !important;
  font-size: clamp(17px,1.45vw,21px) !important;
  margin: auto 30px 0 0 !important;
  position: relative;
  text-shadow: 0 3px 18px rgba(0,0,0,.44);
  z-index: 2;
}
.ss-section-directory__grid small,
.ss-section-directory__grid > a > span { display: none !important; }
.ss-section-directory__grid a[aria-current="page"] {
  background:
    linear-gradient(180deg, rgba(24,62,42,.08), rgba(24,62,42,.9)),
    var(--ss-card-image) center / cover no-repeat !important;
}
.ss-section-directory__grid a[aria-current="page"]::after { color: #efd8a7; }

.ss-motion-ready {
  opacity: 0;
  transform: translate3d(0,28px,0);
  transition: opacity .7s var(--ss-v19-ease), transform .7s var(--ss-v19-ease);
  transition-delay: var(--ss-delay, 0ms);
  will-change: opacity, transform;
}
.ss-motion-ready.ss-motion-visible { opacity: 1; transform: translate3d(0,0,0); }
.ss-section-directory__grid.ss-motion-ready { transform: translate3d(0,18px,0); }
.ss-section-directory__grid.ss-motion-ready.ss-motion-visible { transform: translate3d(0,0,0); }

body.site.com-virtuemart.view-category .product-container,
body.site .catItemView,
body.site .itemContainer {
  background: linear-gradient(148deg, rgba(255,253,248,.98), rgba(247,243,234,.94)) !important;
  border: 1px solid rgba(37,65,49,.13) !important;
  border-radius: 26px 9px 26px 9px !important;
  box-shadow: 0 12px 34px rgba(25,49,36,.065) !important;
  overflow: hidden;
  position: relative;
  transition: box-shadow .45s var(--ss-v19-ease), transform .45s var(--ss-v19-ease);
}
body.site.com-virtuemart.view-category .product-container:hover,
body.site .catItemView:hover,
body.site .itemContainer:hover {
  box-shadow: 0 24px 58px rgba(25,49,36,.12) !important;
  transform: translateY(-5px);
}

/* Legacy cards: product, K2/news, documents, teachers and generic content. */
body.site.com-virtuemart.view-category #product_list > .row { gap: 22px !important; }
body.site.com-virtuemart.view-category #product_list .product { min-width: 0 !important; }
body.site.com-virtuemart.view-category .product-container {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  padding: 14px 14px 20px !important;
}
body.site.com-virtuemart.view-category .product-container::before,
body.site .catItemView::before,
body.site .itemContainer::before,
body.site .latestItemView::before,
body.site .genericItemView::before {
  background: linear-gradient(90deg, var(--ss-v19-forest), var(--ss-v19-gold), var(--ss-v19-plum));
  content: "";
  height: 3px;
  left: 22px;
  opacity: .72;
  position: absolute;
  right: 22px;
  top: 0;
}
body.site.com-virtuemart.view-category .product-container .spacer {
  display: flex !important;
  flex: 1 1 auto;
  flex-direction: column !important;
  min-width: 0 !important;
}
body.site.com-virtuemart.view-category .product-container h2,
body.site.com-virtuemart.view-category .product-container h3,
body.site.com-virtuemart.view-category .product-container .product-title {
  margin: 18px 4px 10px !important;
}
body.site.com-virtuemart.view-category .product-price {
  color: var(--ss-v19-forest) !important;
  margin: 8px 4px !important;
}
body.site.com-virtuemart.view-category .addtocart-area { margin: auto 4px 0 !important; }

body.site #k2Container .itemContainer,
body.site #k2Container .catItemView,
body.site #k2Container .latestItemView,
body.site #k2Container .genericItemView,
body.site .blog .item,
body.site .blog-featured .item,
body.site .items-row > div,
body.site .contact-category .category li,
body.site .newsflash .newsflash-item {
  background: linear-gradient(148deg, rgba(255,253,248,.98), rgba(247,243,234,.94)) !important;
  border: 1px solid rgba(37,65,49,.13) !important;
  border-radius: 26px 9px 26px 9px !important;
  box-shadow: 0 12px 34px rgba(25,49,36,.065) !important;
  margin-bottom: 22px !important;
  min-width: 0;
  overflow: hidden;
  padding: 20px !important;
  position: relative;
  transition: border-radius .45s var(--ss-v19-ease), box-shadow .45s var(--ss-v19-ease), transform .45s var(--ss-v19-ease);
}
body.site #k2Container .itemContainer:hover,
body.site #k2Container .catItemView:hover,
body.site #k2Container .latestItemView:hover,
body.site #k2Container .genericItemView:hover,
body.site .blog .item:hover,
body.site .items-row > div:hover {
  border-radius: 9px 26px 9px 26px !important;
  box-shadow: 0 25px 58px rgba(25,49,36,.12) !important;
  transform: translateY(-5px);
}
body.site #k2Container .catItemImageBlock,
body.site #k2Container .itemImageBlock,
body.site #k2Container .latestItemImageBlock,
body.site #k2Container .genericItemImageBlock {
  border-radius: 20px 7px 20px 7px !important;
  margin: 0 0 18px !important;
  overflow: hidden;
}
body.site #k2Container .catItemImageBlock img,
body.site #k2Container .itemImageBlock img,
body.site #k2Container .latestItemImageBlock img,
body.site #k2Container .genericItemImageBlock img {
  aspect-ratio: 16 / 10;
  display: block;
  height: auto !important;
  object-fit: cover;
  width: 100% !important;
}

body.site .sppb-addon-feature,
body.site .sppb-addon-person,
body.site .sppb-addon-article,
body.site .sppb-addon-text-block,
body.site .sppb-pricing-box,
body.site .well,
body.site .panel,
body.site .card {
  border-radius: 24px 8px 24px 8px !important;
}

/* Replace technical image metadata with meaningful accessibility names. */
body.site img[data-ss-alt-fixed="true"] { color: transparent; }

@media (max-width: 760px) {
  .ss-section-directory::after { inset: 0; opacity: .07; }
  .ss-section-directory__grid a { min-height: 112px !important; }
  body.site #sp-page-title { background-position: center, 72% center !important; }
  body.site #sp-page-title .ss-page-hero__copy { max-width: 82vw; }
  body.site #sp-page-title .ss-page-hero { min-height: 250px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .ss-motion-ready { opacity: 1 !important; transform: none !important; }
  .ss-section-directory__grid a,
  body.site #sp-main-body img,
  body.site .product-container,
  body.site .catItemView { transition: none !important; }
}
