/* Desktop purchase actions. Loaded only by the mdfa template, never by mobile. */
#site #gm_page :is(#content33, #content100) .ajaxTocart,
#site #gm_page #studio-modern .studio-add,
#site #gm_page :is(#product_info_gm, .product_info_gm) :is(.qtyBtn, .product_button) input[type="submit"],
#site #gm_page #ajaxCart #ajaxCartBody .link a {
  box-sizing: border-box;
  display: inline-flex;
  position: relative;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  height: auto;
  max-width: 100%;
  padding: 13px 20px;
  border: 1px solid #160b60;
  border-bottom: 2px solid #f49b32;
  /* The old global button rule also marks its 3px radius as important. */
  border-radius: 10px !important;
  background-color: #160b60;
  color: #fff;
  font-family: 'Open Sans', Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  text-decoration: none;
  text-shadow: none;
  white-space: normal;
  vertical-align: middle;
  cursor: pointer;
  touch-action: manipulation;
  transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease,
    box-shadow 160ms ease, transform 160ms ease;
}

#site #gm_page :is(#content33, #content100) .ajaxTocart:not(:disabled):not([aria-disabled="true"]):hover,
#site #gm_page #studio-modern .studio-add:not(:disabled):hover,
#site #gm_page :is(#product_info_gm, .product_info_gm) :is(.qtyBtn, .product_button) input[type="submit"]:not(:disabled):hover,
#site #gm_page #ajaxCart #ajaxCartBody .link a.linkCheckout:hover {
  background-color: #f49b32;
  border-color: #f49b32;
  color: #160b60;
  box-shadow: 0 7px 14px rgba(22, 11, 96, .19);
  transform: translateY(-2px);
}

/* Leave product IDs, quantities and delegated AJAX handlers on their elements. */
#site #gm_page :is(#content33, #content100) button.ajaxTocart .icon.cart {
  display: none;
}

#site #gm_page :is(#productInfoAjaxWK, .product_info_gm) .qtyBtn {
  min-height: 52px;
  height: auto;
}

/* Icon-only listing and quantity-discount actions keep their compact layout. */
#site #gm_page :is(#content33, #content100) input.ajaxTocart,
#site #gm_page :is(#content33, #content100) #productList input.ajaxTocart {
  width: 40px;
  height: 40px;
  min-height: 40px;
  padding: 0;
  border: 1px solid #160b60;
  border-bottom: 2px solid #f49b32;
  border-radius: 10px;
  background-color: #160b60;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3h2l2.4 12h11.2L21 6H6'/%3E%3Ccircle cx='9' cy='20' r='1'/%3E%3Ccircle cx='18' cy='20' r='1'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 23px 23px;
  color: #fff;
}

#site #gm_page :is(#content33, #content100) input.ajaxTocart:not(:disabled):not([aria-disabled="true"]):hover,
#site #gm_page :is(#content33, #content100) #productList input.ajaxTocart:not(:disabled):not([aria-disabled="true"]):hover {
  background-color: #f49b32;
  border-color: #f49b32;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23160b60' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3h2l2.4 12h11.2L21 6H6'/%3E%3Ccircle cx='9' cy='20' r='1'/%3E%3Ccircle cx='18' cy='20' r='1'/%3E%3C/svg%3E");
  color: #160b60;
}

#site #gm_page #studio-modern .studio-stepper {
  height: 52px;
  border-radius: 10px;
}

#site #gm_page #studio-modern .studio-add {
  margin: 0;
}

#site #gm_page #studio-modern .studio-stepper input {
  height: 100%;
}

#site #gm_page #studio-modern .studio-stepper button:hover {
  background: #f0ecfa;
  color: #160b60;
}

/* DOM order follows the visual and keyboard order: checkout, then full cart. */
#site #gm_page #ajaxCart #ajaxCartBody .link {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 12px;
  padding-bottom: 5px;
  line-height: normal;
}

#site #gm_page #ajaxCart #ajaxCartBody .link a {
  display: flex;
  width: 100%;
  margin: 0;
  padding-right: 16px;
  padding-left: 16px;
}

#site #gm_page #ajaxCart #ajaxCartBody .link a.linkCheckout {
  justify-content: space-between;
}

#site #gm_page #ajaxCart #ajaxCartBody .link a.linkShoppingcart {
  background: #fff;
  color: #160b60;
  border: 1px solid #cfc6e5;
  font-weight: 600;
}

#site #gm_page #ajaxCart #ajaxCartBody .link a.linkShoppingcart:hover {
  background: #160b60;
  border-color: #160b60;
  color: #fff;
  box-shadow: 0 7px 14px rgba(22, 11, 96, .19);
  transform: translateY(-2px);
}

#site #gm_page #ajaxCart #ajaxCartBody .link a span {
  position: static;
  display: inline-block;
  flex: 0 0 20px;
  width: 20px;
  height: 24px;
  background: none;
  color: inherit;
  font-size: 23px;
  line-height: 24px;
  transition: transform 160ms ease;
}

#site #gm_page #ajaxCart #ajaxCartBody .link a.linkCheckout span::before {
  content: '\2192';
}

#site #gm_page #ajaxCart #ajaxCartBody .link a.linkCheckout:hover span {
  transform: translateX(4px);
}

#site #gm_page #ajaxCart #ajaxCartBody .link a.linkShoppingcart span {
  display: none;
}

#site #gm_page #ajaxCart #ajaxCartBody a.deleteProduct {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  min-height: 28px;
  border-radius: 8px;
  background: #fff;
  color: #160b60;
  font-size: 12px;
  text-indent: 0;
  text-decoration: none;
  transition: background-color 160ms ease, color 160ms ease;
}

#site #gm_page #ajaxCart #ajaxCartBody a.deleteProduct:hover {
  background: #160b60;
  color: #fff;
}

#site #gm_page :is(.ajaxTocart, .studio-add, #ajaxCart a, .studio-stepper button):focus-visible,
#site #gm_page :is(#product_info_gm, .product_info_gm) :is(.qtyBtn, .product_button) input[type="submit"]:focus-visible {
  outline: 3px solid #f49b32;
  outline-offset: 3px;
}

#site #gm_page :is(.ajaxTocart, .studio-add):disabled,
#site #gm_page :is(.ajaxTocart, .studio-add)[aria-disabled="true"] {
  opacity: .55;
  cursor: not-allowed;
  box-shadow: none;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  #site #gm_page :is(.ajaxTocart, .studio-add, #ajaxCart a, #ajaxCart a span),
  #site #gm_page :is(#product_info_gm, .product_info_gm) :is(.qtyBtn, .product_button) input[type="submit"] {
    transition: none !important;
    transform: none !important;
  }
}

/* Shared desktop form and navigation actions. Inline controls retain their sizes. */
#site.fleury-desktop-shop-buttons #gm_page :is(#content33, #content100) :is(a.btn, button.btn, input.btn, input[type="submit"], button[type="submit"], button:not([type]), button#couponGhostBtn, [data-fleury-form-button], a.fleury-canvas-button):not(.ajaxTocart, .studio-add, .iBox, .btnIcon, .iconOnly, #ajaxBoxClose, #infomessageBoxClose),
#site.fleury-desktop-shop-buttons #gm_page #shoppingCart #cartMain #cartBottom :is(#couponGhostBtn, #btns button, #btns a.btn) {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  height: auto !important;
  max-width: 100%;
  padding: 13px 20px;
  border: 1px solid var(--fleury-action-border, #160b60);
  border-bottom: var(--fleury-action-bottom-width, 2px) solid var(--fleury-action-accent, #f49b32);
  border-radius: 10px !important;
  background-color: var(--fleury-action-bg, #160b60);
  background-image: none;
  color: var(--fleury-action-fg, #fff);
  font-family: 'Open Sans', Arial, sans-serif;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
  text-decoration: none;
  text-indent: 0;
  text-shadow: none;
  white-space: normal;
  vertical-align: middle;
  cursor: pointer;
  touch-action: manipulation;
  transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease,
    box-shadow 160ms ease, transform 160ms ease;
}

#site.fleury-desktop-shop-buttons #gm_page :is(#content33, #content100) :is(a.btn, button.btn, input.btn, input[type="submit"], button[type="submit"], button:not([type]), button#couponGhostBtn, [data-fleury-form-button], a.fleury-canvas-button):not(.ajaxTocart, .studio-add, .iBox, .btnIcon, .iconOnly, #ajaxBoxClose, #infomessageBoxClose):not(:disabled):not([aria-disabled="true"]):hover,
#site.fleury-desktop-shop-buttons #gm_page #shoppingCart #cartMain #cartBottom :is(#couponGhostBtn, #btns button, #btns a.btn):not(:disabled):not([aria-disabled="true"]):hover {
  background-color: var(--fleury-action-hover-bg, #f49b32);
  border-color: var(--fleury-action-hover-border, #f49b32);
  color: var(--fleury-action-hover-fg, #160b60);
  box-shadow: 0 7px 14px rgba(22, 11, 96, .19);
  transform: translateY(-2px);
}

/* The older cross-selling rules force red and blue with important declarations. */
#site.fleury-desktop-shop-buttons #gm_page :is(#content33, #content100) :is(#studio-modern, #cross_selling, #cross_selling_content) a.btnCross {
  background-color: #160b60 !important;
}
#site.fleury-desktop-shop-buttons #gm_page :is(#content33, #content100) :is(#studio-modern, #cross_selling, #cross_selling_content) a.btnCross:hover {
  background-color: #f49b32 !important;
}

#site.fleury-desktop-shop-buttons #gm_page :is(.btnRow .btnLeft a.btn, a.btn.light, a.btn:has(> [data-fleury-form-button="secondary"]), #twCheckout #btnLine a.btn, #couponGhostBtn, #couponSubmit, #shoppingCart #btns button, [data-fleury-form-button="secondary"]) {
  --fleury-action-bg: #fff;
  --fleury-action-fg: #160b60;
  --fleury-action-border: #cfc6e5;
  --fleury-action-accent: #cfc6e5;
  --fleury-action-bottom-width: 1px;
  --fleury-action-hover-bg: #160b60;
  --fleury-action-hover-fg: #fff;
  --fleury-action-hover-border: #160b60;
}

#site.fleury-desktop-shop-buttons #gm_page :is(#content33, #content100) :is(a.btn, button.btn):not(.iBox, .btnIcon, .iconOnly) > :is(.icon, .iconDefault) {
  display: none;
}

#site.fleury-desktop-shop-buttons #gm_page #shoppingCart #cartMain h4.cartHead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  line-height: 1.4;
}
#site.fleury-desktop-shop-buttons #gm_page #shoppingCart #cartMain h4.cartHead a.btn {
  position: static;
  margin: 0;
}

#site.fleury-desktop-shop-buttons #gm_page #shoppingCart #cartMain #cartBottom #couponFormGhost,
#site.fleury-desktop-shop-buttons #gm_page #twCheckout #couponFormGhost {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}
#site.fleury-desktop-shop-buttons #gm_page :is(#shoppingCart, #twCheckout) #couponFormGhost #couponGhostInput {
  flex: 1 1 180px;
  width: auto;
  min-width: 120px;
  max-width: 100%;
  height: 52px;
  box-sizing: border-box;
  margin: 0;
}
#site.fleury-desktop-shop-buttons #gm_page #shoppingCart #cartMain #cartBottom #couponFormGhost #couponGhostBtn {
  width: auto;
  margin: 0;
}
#site.fleury-desktop-shop-buttons #gm_page :is(#shoppingCart, #twCheckout) #couponFormGhost p.errorTxt {
  flex-basis: 100%;
  margin: 0;
}
#site.fleury-desktop-shop-buttons #gm_page #shoppingCart #cartMain #cartBottom #btns {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}
#site.fleury-desktop-shop-buttons #gm_page #shoppingCart #cartMain #cartBottom #btns :is(a.btn, button) {
  margin: 0;
}
#site.fleury-desktop-shop-buttons #gm_page #shoppingCart #cartMain #cartBottom #btns button[type="submit"] {
  flex: 0 0 52px;
  width: 52px;
  min-width: 52px;
  padding: 0;
}
#site.fleury-desktop-shop-buttons #gm_page #shoppingCart #cartMain #cartBottom #btns button .iconReload {
  position: static;
  display: inline-block;
  width: 30px;
  height: 30px;
  background: none;
  color: inherit;
  font-size: 27px;
  line-height: 30px;
  animation: none;
}
#site.fleury-desktop-shop-buttons #gm_page #shoppingCart #cartMain #cartBottom #btns button .iconReload::before {
  content: '\21bb';
}

#site.fleury-desktop-shop-buttons #gm_page #shoppingCart :is(.cartHead a.btn, #checkoutBtn)::after,
#site.fleury-desktop-shop-buttons #gm_page #twCheckout #btnCheckout::after {
  content: '\2192';
  font-size: 21px;
  line-height: 1;
  transition: transform 160ms ease;
}
#site.fleury-desktop-shop-buttons #gm_page #shoppingCart :is(.cartHead a.btn, #checkoutBtn):hover::after,
#site.fleury-desktop-shop-buttons #gm_page #twCheckout #btnCheckout:hover::after {
  transform: translateX(4px);
}

#site.fleury-desktop-shop-buttons #gm_page :is(#shoppingCart, #twCheckout) a.changeQty {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 1px solid #cfc6e5;
  border-radius: 8px;
  background: #fff;
  color: #160b60;
  text-decoration: none;
  vertical-align: middle;
  transition: background-color 160ms ease, color 160ms ease;
}
#site.fleury-desktop-shop-buttons #gm_page :is(#shoppingCart, #twCheckout) a.changeQty:hover {
  background: #160b60;
  border-color: #160b60;
  color: #fff;
}
#site.fleury-desktop-shop-buttons #gm_page :is(#shoppingCart #orderDetails, #twCheckout) a.changeQty > span.btn {
  display: inline-block;
  width: 24px;
  height: 24px;
  margin: 0;
  padding: 0;
  background: none;
  color: inherit;
  text-indent: 0;
  text-align: center;
  font-size: 20px;
  line-height: 24px;
}
#site.fleury-desktop-shop-buttons #gm_page :is(#shoppingCart, #twCheckout) a.changeQty[data-type="+"] > span.btn::before {
  content: '+';
}
#site.fleury-desktop-shop-buttons #gm_page :is(#shoppingCart, #twCheckout) a.changeQty[data-type="-"] > span.btn::before {
  content: '\2212';
}
#site.fleury-desktop-shop-buttons #gm_page :is(#shoppingCart, #twCheckout) a.changeQty[data-type="0"] > span.btn::before {
  content: '\00d7';
}

#site.fleury-desktop-shop-buttons #gm_page :is(#content33, #content100) :is(a.btn, button.btn, input.btn, input[type="submit"], button[type="submit"], button:not([type]), a.changeQty):focus-visible,
#site.fleury-desktop-shop-buttons #gm_page a:focus-visible > [data-fleury-form-button] {
  outline: 3px solid #f49b32;
  outline-offset: 3px;
}
#site.fleury-desktop-shop-buttons #gm_page :is(#content33, #content100) :is(button, input[type="submit"], input[type="button"]):disabled {
  cursor: not-allowed;
  opacity: .55;
  transform: none;
  box-shadow: none;
}

@media (prefers-reduced-motion: reduce) {
  #site.fleury-desktop-shop-buttons #gm_page :is(#content33, #content100) :is(a.btn, button, input.btn, input[type="submit"], [data-fleury-form-button], a.changeQty),
  #site.fleury-desktop-shop-buttons #gm_page :is(#shoppingCart, #twCheckout) ::after {
    transition: none !important;
    transform: none !important;
  }
}

#site.fleury-desktop-shop-buttons #gm_page #shoppingCart #orderDetails td:has(> a.changeQty) {
  white-space: nowrap;
}
#site.fleury-desktop-shop-buttons #gm_page :is(#shoppingCart #orderDetails, #twCheckout) span.pQty {
  width: 32px;
}
#site.fleury-desktop-shop-buttons #gm_page a.btn > [data-fleury-form-button] {
  display: contents;
}
