/* =========================================================
   01_ArtiFacture_Additional_CSS_Technical_Base_v3
   Scope: WordPress Additional CSS only.
   Purpose: technical base / safety only.

   Does NOT style:
   - product cards
   - Shop / All Products
   - Home sections
   - Custom Studio cards
   - global buttons
   - global headings
   - global images
   - price / rating / Woo product titles
   ========================================================= */

/* Shared technical tokens only. Visual application belongs in scoped snippets. */
:root {
  --af-color-ink: #000E24;
  --af-color-ink-hover: #0F0120;
  --af-color-blue: #0066FF;
  --af-color-surface: #F7F8FA;
  --af-color-white: #FFFFFF;
  --af-border-soft: rgba(0, 14, 36, 0.08);
  --af-radius-ui: 6px;
  --af-transition-ui: 180ms ease;
}

/* Box sizing: technical reset only. */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Horizontal overflow guard. Do not add layout/design rules here. */
html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

@supports (overflow-x: clip) {
  html,
  body {
    overflow-x: clip;
  }
}

#page,
.site,
.site-content,
.content-area,
.site-main {
  max-width: 100%;
}

/* Prevent awkward iOS tap glow without changing visual design. */
@media screen and (max-width: 1024px) {
  a,
  button,
  input,
  select,
  textarea,
  summary,
  label,
  [role="button"],
  [tabindex],
  .wp-block-button__link,
  .woocommerce a.button,
  .woocommerce button.button,
  .woocommerce input.button {
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  }
}

/* Botiga/mobile header focus glow cleanup only. */
@media screen and (max-width: 1024px) {
  .site-header button:focus,
  .site-header button:focus-visible,
  .site-header a:focus,
  .site-header a:focus-visible,
  .site-header .menu-toggle:focus,
  .site-header .menu-toggle:focus-visible,
  .site-header .botiga-offcanvas-menu-toggle:focus,
  .site-header .botiga-offcanvas-menu-toggle:focus-visible,
  .botiga-offcanvas button:focus,
  .botiga-offcanvas button:focus-visible,
  .botiga-offcanvas a:focus,
  .botiga-offcanvas a:focus-visible,
  .botiga-offcanvas-menu button:focus,
  .botiga-offcanvas-menu button:focus-visible,
  .botiga-offcanvas-menu a:focus,
  .botiga-offcanvas-menu a:focus-visible,
  .mobile-offcanvas button:focus,
  .mobile-offcanvas button:focus-visible,
  .mobile-offcanvas a:focus,
  .mobile-offcanvas a:focus-visible,
  .mobile-offcanvas-menu button:focus,
  .mobile-offcanvas-menu button:focus-visible,
  .mobile-offcanvas-menu a:focus,
  .mobile-offcanvas-menu a:focus-visible {
    outline: 0;
    box-shadow: none;
  }
}

/* Keep keyboard focus usable on normal content. */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
[role="button"]:focus-visible,
[tabindex]:focus-visible,
.wp-block-button__link:focus-visible,
.woocommerce a.button:focus-visible,
.woocommerce button.button:focus-visible,
.woocommerce input.button:focus-visible {
  outline: 1px solid rgba(0, 14, 36, 0.55);
  outline-offset: 3px;
  box-shadow: none;
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible,
.search-field:focus-visible,
.woocommerce input.input-text:focus-visible,
.woocommerce-page input.input-text:focus-visible,
.woocommerce textarea:focus-visible,
.woocommerce-page textarea:focus-visible {
  outline: 0;
  border-color: var(--af-color-ink);
  box-shadow: 0 0 0 1px rgba(0, 14, 36, 0.18);
}

/* Respect reduced motion globally without removing deliberate local animations. */
@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }
}

/* Utility classes available for controlled snippets/templates only. */
.af-no-overflow-x {
  max-width: 100%;
  overflow-x: hidden;
}

@supports (overflow-x: clip) {
  .af-no-overflow-x {
    overflow-x: clip;
  }
}
/*
10 AF Wishlist Heart Position
Purpose: move Botiga wishlist heart to the top-right corner of product cards
Scope: only product grids wrapped with .af-product-card-grid
*/

.af-product-card-grid ul.products li.product {
    position: relative !important;
}

/* Prevent the image wrapper from being the positioning reference for the wishlist button */
.af-product-card-grid ul.products li.product .loop-image-wrap.botiga-wishlist-button-layout2 {
    position: static !important;
}

.af-product-card-grid ul.products li.product .loop-image-wrap.botiga-wishlist-button-layout2 > a.botiga-wishlist-button {
    position: absolute !important;
    top: 3px !important;
    right: 3px !important;
    bottom: auto !important;
    left: auto !important;

    width: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;
    height: 30px !important;
    min-height: 30px !important;
    max-height: 30px !important;

    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    z-index: 30 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    background: transparent !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}

.af-product-card-grid ul.products li.product .loop-image-wrap.botiga-wishlist-button-layout2 > a.botiga-wishlist-button .botiga-wishlist-icon-wrapper {
    width: 30px !important;
    height: 30px !important;
    margin: 0 !important;
    padding: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    background: transparent !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}
/*
11 AF Shop Page Description as Entry Content
Purpose: make WooCommerce Shop page-description behave like normal page entry-content
Scope: WooCommerce Shop page header description only
*/

/* Let the Shop page description escape the WooCommerce header container */
.woocommerce-page-header .page-description {
    position: relative !important;
    left: 50% !important;
    right: 50% !important;

    width: 100vw !important;
    max-width: 100vw !important;

    margin-left: -50vw !important;
    margin-right: -50vw !important;

    text-align: left !important;
}

/* Make direct children behave like normal Gutenberg page blocks */
.woocommerce-page-header .page-description > * {
    box-sizing: border-box !important;
}

/* Full-width blocks behave like Home alignfull blocks */
.woocommerce-page-header .page-description > .alignfull {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Non-full-width direct blocks stay aligned to normal site width */
.woocommerce-page-header .page-description > :not(.alignfull) {
    max-width: 1140px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
}

/* Do NOT force inner Cover content to center; allow Gutenberg/block settings to decide */
.woocommerce-page-header .page-description .wp-block-cover__inner-container {
    text-align: inherit !important;
}

/* Product grid wrapper should not become insane full-screen unless the block itself is intentionally full width */
.woocommerce-page-header .page-description > .af-product-card-grid.alignfull {
    padding-left: 24px !important;
    padding-right: 24px !important;
}

/* Mobile spacing */
@media (max-width: 1024px) {
    .woocommerce-page-header .page-description > :not(.alignfull),
    .woocommerce-page-header .page-description > .af-product-card-grid.alignfull {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}
/* AF global full-width section spacing reset */
body.page .entry-content > .alignfull,
body.page .entry-content > .wp-block-cover,
body.page .entry-content > .wp-block-group {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}

/* AF global full-width sections should touch when stacked */
body.page .entry-content > .alignfull + .alignfull,
body.page .entry-content > .wp-block-cover + .wp-block-cover,
body.page .entry-content > .wp-block-cover + .wp-block-group,
body.page .entry-content > .wp-block-group + .wp-block-cover {
	margin-top: 0 !important;
	margin-block-start: 0 !important;
}

/* AF Shop page description section spacing reset */
.woocommerce-page-header .page-description > .alignfull,
.woocommerce-page-header .page-description > .wp-block-cover,
.woocommerce-page-header .page-description > .wp-block-group {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}
/* AF Popup Maker bundle video responsive sizing */
#pum-4902 .pum-container {
	width: min(900px, 92vw) !important;
	max-width: 92vw !important;
	padding: 0 !important;
	overflow: hidden !important;
}

#pum-4902 .pum-content,
#pum-4902 .af-bundle-video-popup {
	margin: 0 !important;
	padding: 0 !important;
}

#pum-4902 .af-bundle-video-popup video {
	display: block;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
}

@media (max-width: 767px) {
	#pum-4902 .pum-container {
		width: 92vw !important;
		max-width: 92vw !important;
	}

	#pum-4902 .pum-content {
		width: 100% !important;
	}
}
/* =========================================================
   ArtiFacture — Center Lumise Customize Button Text
   Scope: Single product page only
   ========================================================= */

.single-product .summary form.cart a[href*="product-designer"] {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}
/* =========================================================
   ArtiFacture - Mobile Offcanvas Menu Typography and Submenu
   Scope: Botiga mobile offcanvas menu only, up to 1024px
   Status: ACTIVE AND CONFIRMED
   ========================================================= */

@media screen and (max-width: 1024px) {

  /* Make main menu and submenu links easier to read. */
  .bhfb-component-mobile_offcanvas_menu
  #site-navigation-mobile
  a.botiga-dropdown-link {
    font-weight: 600 !important;
  }

  /* Prevent opened submenus from becoming a dark empty block. */
  .bhfb-component-mobile_offcanvas_menu
  #site-navigation-mobile
  .sub-menu.botiga-dropdown-ul,
  .bhfb-component-mobile_offcanvas_menu
  #site-navigation-mobile
  .sub-menu.botiga-dropdown-ul > li,
  .bhfb-component-mobile_offcanvas_menu
  #site-navigation-mobile
  .sub-menu.botiga-dropdown-ul > li > a.botiga-dropdown-link {
    background: transparent !important;
  }

  /* Keep submenu links visible on the light offcanvas background. */
  .bhfb-component-mobile_offcanvas_menu
  #site-navigation-mobile
  .sub-menu.botiga-dropdown-ul > li > a.botiga-dropdown-link {
    color: #000E24 !important;
  }

  /* Hide Botiga native dropdown chevron. */
  .bhfb-component-mobile_offcanvas_menu
  #site-navigation-mobile
  .dropdown-symbol
  .ws-svg-icon {
    display: none !important;
  }

  /* Closed submenu = plus. */
  .bhfb-component-mobile_offcanvas_menu
  #site-navigation-mobile
  .dropdown-symbol::before {
    content: "+" !important;
    color: #000E24 !important;
    font-family: inherit !important;
    font-size: 22px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
  }

  /* Open submenu = minus. */
  .bhfb-component-mobile_offcanvas_menu
  #site-navigation-mobile
  li.botiga-dropdown-li:has(> .sub-menu.botiga-dropdown-ul.toggled)
  > .dropdown-symbol::before {
    content: "−" !important;
  }

  /* Divider lines between top-level mobile menu items. */
  .bhfb-component-mobile_offcanvas_menu
  #site-navigation-mobile
  ul:not(.sub-menu)
  > li.botiga-dropdown-li {
    border-top: 1px solid rgba(0, 14, 36, 0.14) !important;
  }

  .bhfb-component-mobile_offcanvas_menu
  #site-navigation-mobile
  ul:not(.sub-menu)
  > li.botiga-dropdown-li:last-child {
    border-bottom: 1px solid rgba(0, 14, 36, 0.14) !important;
  }

  /* Comfortable spacing for top-level menu rows. */
  .bhfb-component-mobile_offcanvas_menu
  #site-navigation-mobile
  ul:not(.sub-menu)
  > li.botiga-dropdown-li
  > a.botiga-dropdown-link {
    padding-top: 14px !important;
    padding-bottom: 14px !important;
    line-height: 1.2 !important;
  }
}
/* =========================================================
   ArtiFacture - WooCommerce Product Pagination
   Vinted-inspired full-width pagination bar
   Scope: WooCommerce product pagination, excluding My Account
   Status: ACTIVE
   ========================================================= */

/* Main pagination wrapper */
body:not(.woocommerce-account) nav.woocommerce-pagination {
  display: block !important;
  width: 100% !important;
  margin-top: 40px !important;
  text-align: center !important;
}

/* Full-width pagination bar */
body:not(.woocommerce-account)
nav.woocommerce-pagination
> ul.page-numbers {
  display: flex !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  flex-wrap: nowrap !important;

  width: 100% !important;
  min-height: 42px !important;

  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;

  border: 1px solid #D6DAE0 !important;
  border-radius: 6px !important;

  background: #FFFFFF !important;
  list-style: none !important;
  overflow: hidden !important;
}

/* Pagination list items */
body:not(.woocommerce-account)
nav.woocommerce-pagination
> ul.page-numbers
> li {
  display: flex !important;
  align-items: stretch !important;
  flex: 0 0 auto !important;
  float: none !important;

  margin: 0 !important;
  padding: 0 !important;

  border: 0 !important;
  border-right: 1px solid #E5E7EB !important;

  background: transparent !important;
}

/* Individual page numbers */
body:not(.woocommerce-account)
nav.woocommerce-pagination
> ul.page-numbers
> li
> .page-numbers {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  width: auto !important;
  min-width: 40px !important;
  height: 40px !important;

  margin: 0 !important;
  padding: 0 12px !important;

  border: 0 !important;
  border-radius: 0 !important;

  background: transparent !important;
  color: #000E24 !important;

  font-family: "Manrope", sans-serif !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1 !important;

  text-align: center !important;
  text-decoration: none !important;
  box-shadow: none !important;
  box-sizing: border-box !important;

  transition:
    background-color 0.2s ease,
    color 0.2s ease !important;
}

/* Hover */
body:not(.woocommerce-account)
nav.woocommerce-pagination
> ul.page-numbers
> li
> a.page-numbers:hover {
  background: #F2F3F5 !important;
  color: #000E24 !important;
  text-decoration: none !important;
}

/* Current page */
body:not(.woocommerce-account)
nav.woocommerce-pagination
> ul.page-numbers
> li
> .page-numbers.current {
  background: #F7F8FA !important;
  color: #000E24 !important;
  font-weight: 600 !important;
  cursor: default !important;
}

/* Active Previous and Next buttons */
body:not(.woocommerce-account)
nav.woocommerce-pagination
.page-numbers.prev,
body:not(.woocommerce-account)
nav.woocommerce-pagination
.page-numbers.next {
  position: relative !important;

  width: 40px !important;
  min-width: 40px !important;
  height: 40px !important;

  padding: 0 !important;

  background-image: none !important;
  color: #000E24 !important;

  font-size: 0 !important;
}

/* Active arrow shapes */
body:not(.woocommerce-account)
nav.woocommerce-pagination
.page-numbers.prev::before,
body:not(.woocommerce-account)
nav.woocommerce-pagination
.page-numbers.next::before {
  content: "" !important;

  display: block !important;
  width: 8px !important;
  height: 8px !important;

  border-left: 1.5px solid currentColor !important;
  border-bottom: 1.5px solid currentColor !important;
}

/* Previous arrow direction */
body:not(.woocommerce-account)
nav.woocommerce-pagination
.page-numbers.prev::before {
  transform: rotate(45deg) !important;
}

/* Next arrow direction */
body:not(.woocommerce-account)
nav.woocommerce-pagination
.page-numbers.next::before {
  transform: rotate(225deg) !important;
}

/* Keep active Next button on the far right */
body:not(.woocommerce-account)
nav.woocommerce-pagination
> ul.page-numbers
> li:has(> .page-numbers.next) {
  margin-left: auto !important;

  border-right: 0 !important;
  border-left: 1px solid #E5E7EB !important;
}

/* Disabled Previous placeholder on the first page */
body:not(.woocommerce-account)
nav.woocommerce-pagination
> ul.page-numbers::before {
  content: "" !important;

  display: block !important;
  flex: 0 0 40px !important;

  width: 40px !important;
  height: 40px !important;

  border-right: 1px solid #E5E7EB !important;

  background-color: #FFFFFF !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M9.5 4L5.5 8L9.5 12' stroke='%23AEB4BA' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: 16px 16px !important;

  box-sizing: border-box !important;
}

/* Hide disabled Previous when a real Previous link exists */
body:not(.woocommerce-account)
nav.woocommerce-pagination
> ul.page-numbers:has(.page-numbers.prev)::before {
  display: none !important;
}

/* Disabled Next placeholder on the last page */
body:not(.woocommerce-account)
nav.woocommerce-pagination
> ul.page-numbers::after {
  content: "" !important;

  display: block !important;
  flex: 0 0 40px !important;

  width: 40px !important;
  height: 40px !important;
  margin-left: auto !important;

  border-left: 1px solid #E5E7EB !important;

  background-color: #FFFFFF !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M6.5 4L10.5 8L6.5 12' stroke='%23AEB4BA' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: 16px 16px !important;

  box-sizing: border-box !important;
}

/* Hide disabled Next when a real Next link exists */
body:not(.woocommerce-account)
nav.woocommerce-pagination
> ul.page-numbers:has(.page-numbers.next)::after {
  display: none !important;
}

/* Ellipsis */
body:not(.woocommerce-account)
nav.woocommerce-pagination
> ul.page-numbers
.page-numbers.dots {
  min-width: 40px !important;
  padding: 0 !important;

  color: #62676D !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  letter-spacing: 1px !important;
}

/* Keyboard focus */
body:not(.woocommerce-account)
nav.woocommerce-pagination
a.page-numbers:focus-visible {
  position: relative !important;
  z-index: 2 !important;

  outline: 2px solid #0066FF !important;
  outline-offset: -3px !important;
}

/* Mobile */
@media screen and (max-width: 575px) {

  body:not(.woocommerce-account)
  nav.woocommerce-pagination {
    margin-top: 34px !important;
  }
}