/* Homepage scope only. Elementor controls retain priority over these defaults. */
.afj-home { color: #171717; }
.afj-home .elementor-heading-title { font-style: normal; text-transform: none; }
.afj-home .afj-default-heading .elementor-heading-title { font-size: 32px; line-height: 1.2; }
.afj-home .elementor-button { text-decoration: none; }
.afj-home .elementor-image-box-content a { color: inherit; }
.afj-home .elementor-text-editor p:last-child,
.afj-home .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.afj-home .elementor-widget-image-carousel img { max-width: 100%; }
.afj-home .afj-service-icons .swiper-slide-image { max-height: 80px; width: auto; object-fit: contain; }
.afj-home .afj-service-icons .elementor-image-carousel-caption { margin-top: 12px; font-size: 14px; color: #242424; }

/* Columns use the old widgets' actual breakpoints, independently of the theme. */
.afj-widget {
  --afj-current-cols: var(--afj-cols-mobile, 2);
  position: relative;
  width: 100%;
  min-width: 0;
  color: #171717;
  box-sizing: border-box;
}
.afj-widget *, .afj-widget *::before, .afj-widget *::after { box-sizing: border-box; }
.afj-widget .afj-track {
  position: relative;
  display: grid;
  gap: var(--afj-gap, 10px);
  grid-template-columns: repeat(var(--afj-current-cols), minmax(0, 1fr));
  width: 100%;
  max-width: 100%;
  padding: 0;
  margin: 0;
  list-style: none;
  align-items: start;
}
.afj-widget.afj-carousel > .afj-track {
  grid-template-columns: none;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - (var(--afj-current-cols) - 1) * var(--afj-gap, 10px)) / var(--afj-current-cols));
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.afj-carousel > .afj-track::-webkit-scrollbar { display: none; }
.afj-widget .afj-track > .afj-slide {
  float: none;
  clear: none;
  position: relative;
  display: block;
  width: auto;
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
  list-style: none;
  scroll-snap-align: start;
}
.afj-carousel[data-center="true"] > .afj-track > .afj-slide { scroll-snap-align: center; }
.afj-widget [hidden], .afj-product-tabs [hidden] { display: none !important; }
.afj-widget a { text-decoration: none; }
.afj-widget button { font: inherit; text-transform: none; letter-spacing: normal; }
.afj-widget :focus-visible, .afj-product-tabs .afj-tab:focus-visible {
  outline: 2px solid #393939;
  outline-offset: 3px;
}
.afj-widget > .afj-track:focus-visible { outline-offset: -2px; }
.afj-widget .afj-card { display: block; color: inherit; text-align: center; }
.afj-widget img.afj-card-image { display: block; max-width: 100%; height: auto; margin: 0 auto; }
.afj-widget .afj-card-title { margin: 14px 0 0; font-size: 15px; font-weight: 400; line-height: 1.5; color: #242424; }
.afj-widget .afj-card-description { margin: 10px 0 0; font-size: 14px; line-height: 1.6; }
.afj-widget .afj-empty, .afj-empty { padding: 16px; text-align: center; color: #555; font-size: 14px; }

/* Retain Moonte's product card functions, while controlling only this layout. */
.afj-widget.afj-products.products-list.grid { display: block; }
.afj-widget.afj-products.products-list.grid .afj-slide > .products-entry,
.afj-widget.afj-products.products-list.grid .afj-slide > .product { width: 100%; margin: 0; }
.afj-widget.afj-products.products-list.grid .products-thumb { position: relative; width: 100%; margin: 0; }
.afj-widget.afj-products.products-list.grid .products-thumb > a.woocommerce-LoopProduct-link,
.afj-widget.afj-products.products-list.grid .products-thumb > .product-thumb-hover {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
}
.afj-widget.afj-products.products-list.grid .product-thumb-hover > a { display: block; width: 100%; height: 100%; }
.afj-widget.afj-products.products-list.grid .products-thumb .woocommerce-LoopProduct-link img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.afj-widget.afj-products.products-list.grid .products-content { padding: 12px 0 0; text-align: left; }
.afj-widget.afj-products.products-list.grid .products-content h3.product-title { margin: 0 0 6px; font-size: 14px; line-height: 1.45; font-weight: 400; text-transform: none; letter-spacing: normal; }
.afj-widget.afj-products.products-list.grid .products-content h3.product-title a { color: #171717; }
.afj-widget.afj-products.products-list.grid .products-content .price { font-size: 14px; line-height: 1.5; }
.afj-widget.afj-products.products-list.grid .products-content .price del { opacity: .6; margin-right: 5px; }
.afj-widget.afj-products.products-list.grid .products-content .price ins { text-decoration: none; }
.afj-widget.afj-products.products-list.grid .star-rating { float: none; margin: 6px 0; font-size: 12px; }
.afj-widget.afj-products.products-list.grid .afj-slide > .product > a > img { display: block; width: 100%; height: auto; }
.afj-product-pagination { margin: 26px 0 0; text-align: center; }
.afj-product-pagination .page-numbers { display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 5px; margin: 0; padding: 0; list-style: none; }
.afj-product-pagination li .page-numbers,
.afj-product-pagination > a.page-numbers,
.afj-product-pagination > span.page-numbers { min-width: 30px; padding: 7px 10px; border: 1px solid #e7e7e7; font-size: 13px; line-height: 1; color: #171717; }
.afj-product-pagination .page-numbers.current { color: #fff; background: #111; border-color: #111; }
.afj-product-tabs { min-width: 0; }
.afj-product-tabs [role="tablist"] { display: flex; justify-content: center; gap: 28px; margin: 0 0 24px; padding: 0; }
.afj-product-tabs .afj-tab { appearance: none; cursor: pointer; padding: 8px 0; margin: 0; border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: transparent; color: #555; font-size: 17px; line-height: 1.4; font-weight: 500; }
.afj-product-tabs .afj-tab[aria-selected="true"] { border-bottom-color: #111; color: #111; }

/* Each card keeps the supplied image, title, URL and editor content. */
.afj-links .afj-card { padding: 0 12px 8px; }
.afj-links img.afj-card-image { width: 100%; aspect-ratio: 1; object-fit: contain; }
.afj-links--gems img.afj-card-image { max-width: 270px; }
.afj-links--shapes img.afj-card-image { max-width: 220px; }
.afj-links--shapes .afj-card-title { font-size: 14px; }
.afj-testimonials .afj-testimonial { padding: 0 0 8px; }
.afj-testimonials img.afj-card-image { width: 120px; height: 120px; object-fit: cover; border-radius: 50%; margin-bottom: 20px; }
.afj-testimonials .afj-testimonial-name { margin: 0; font-size: 16px; line-height: 1.6; font-weight: 600; }
.afj-testimonials .afj-testimonial-position { margin: 0; font-size: 14px; line-height: 1.6; }
.afj-testimonials .afj-testimonial-text { margin: 40px 0 0; padding: 0; border: 0; background: none; font-size: 18px; line-height: 1.75; }
.afj-testimonials .afj-testimonial-text p { margin: 0; font: inherit; }
.afj-posts .afj-card { padding: 0 14px; }
.afj-posts img.afj-card-image { width: auto; max-width: 100%; max-height: 420px; object-fit: contain; }
.afj-widget .afj-sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* Controls are local: no dependency on the theme's Slick/Swiper initializers. */
.afj-arrows { position: absolute; inset: 0 0 auto; top: 42%; display: flex; justify-content: space-between; pointer-events: none; }
.afj-widget .afj-arrow { display: grid; place-items: center; width: 38px; height: 38px; margin: 0; padding: 8px; border: 1px solid #e7e7e7; border-radius: 50%; background: rgba(255,255,255,.94); color: #111; cursor: pointer; pointer-events: auto; box-shadow: 0 2px 8px #00000008; }
.afj-widget .afj-arrow:disabled { opacity: .3; cursor: default; }
.afj-arrow svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.afj-widget .afj-dots { display: flex; flex-wrap: wrap; gap: 7px; justify-content: center; margin: 22px 0 0; }
.afj-widget .afj-dots:empty { display: none; }
.afj-widget .afj-dot { display: block; width: 8px; height: 8px; min-width: 0; min-height: 0; margin: 0; padding: 0; border: 1px solid #aaa; border-radius: 50%; background: transparent; cursor: pointer; }
.afj-widget .afj-dot[aria-current="true"] { border-color: #111; background: #111; }
.afj-widget .afj-playback { position: absolute; z-index: 2; right: 0; bottom: 0; margin: 0; padding: 5px 8px; width: auto; height: auto; border: 1px solid #ddd; border-radius: 2px; background: #fff; color: #333; font-size: 11px; cursor: pointer; opacity: 0; }
.afj-widget:hover .afj-playback,
.afj-widget:focus-within .afj-playback { opacity: 1; }

@media (min-width: 768px) {
  .afj-breakpoints--legacy-swiper { --afj-current-cols: var(--afj-cols-tablet, 3); }
}
@media (min-width: 1024px) {
  .afj-breakpoints--legacy-swiper { --afj-current-cols: var(--afj-cols, 4); }
  .afj-first-big > .afj-track { row-gap: calc(var(--afj-gap, 20px) / 2); }
  .afj-first-big > .afj-track > .afj-slide:first-child { grid-column: span 2; grid-row: span 2; }
}
@media (min-width: 576px) {
  .afj-breakpoints--gemstones, .afj-breakpoints--testimonials { --afj-current-cols: var(--afj-cols-tablet, 3); }
}
@media (min-width: 790px) {
  .afj-breakpoints--gemstones, .afj-breakpoints--testimonials { --afj-current-cols: var(--afj-cols, 6); }
}
@media (min-width: 881px) {
  .afj-breakpoints--shapes { --afj-current-cols: var(--afj-cols-tablet, 4); }
}
@media (min-width: 1600px) {
  .afj-breakpoints--shapes { --afj-current-cols: var(--afj-cols, 8); }
}
@media (max-width: 767px) {
  .afj-home .afj-default-heading .elementor-heading-title { font-size: 28px; }
  .afj-home .afj-service-icons .swiper-slide-image { max-height: 50px; }
  .afj-home .afj-service-icons .elementor-image-carousel-caption { font-size: 12px; }
  .afj-widget.afj-products.products-list.grid .products-content h3.product-title { font-size: 12px; }
  .afj-widget.afj-products.products-list.grid .products-content .price { font-size: 12px; }
  .afj-widget.afj-products.products-list.grid .products-content { padding-top: 9px; }
  .afj-links .afj-card { padding-right: 8px; padding-left: 8px; }
  .afj-links--shapes .afj-card-title { font-size: 13px; }
  .afj-testimonials .afj-testimonial-text { font-size: 16px; margin-top: 25px; }
}
@media (prefers-reduced-motion: reduce) {
  .afj-widget *, .afj-widget *::before, .afj-widget *::after { scroll-behavior: auto !important; }
}
