/* One public CTA language based on the cart proceed button. */
html body.sn-page :is(
  .sn-button,
  .button,
  input[type="submit"],
  input[type="button"],
  button[type="submit"],
  .sn-add-to-cart,
  .sn-catalog-reset,
  .wc-block-components-button,
  .sn-cookie-actions button,
  .sn-company-lookup-button
) {
  border-radius: 0;
  box-sizing: border-box;
  cursor: pointer;
  font-family: "Cinzel", Georgia, serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.02em;
  line-height: 1.35;
  position: relative;
  text-transform: uppercase;
  transform: translateY(0) scale(1);
  transition:
    background 220ms ease,
    border-color 220ms ease,
    box-shadow 220ms ease,
    color 220ms ease,
    transform 220ms ease;
}

/* All public actions share the exact filled blue-gradient cart standard. */
html body.sn-page :is(
  .sn-button,
  .button,
  input[type="submit"],
  input[type="button"],
  button[type="submit"],
  .sn-add-to-cart,
  .sn-catalog-reset,
  .wc-block-components-button,
  .sn-cookie-actions button,
  .sn-company-lookup-button
):not(.sn-button-danger) {
  align-items: center;
  background: linear-gradient(135deg, var(--sn-blue), var(--sn-blue-soft)) !important;
  border: 1px solid rgba(240, 210, 138, 0.58) !important;
  box-shadow: 0 10px 26px rgba(8, 127, 145, 0.22) !important;
  color: #050505 !important;
  display: inline-flex;
  justify-content: center;
  min-height: 54px;
  padding: 14px 22px;
  text-align: center;
  text-decoration: none;
}

/* A soft travelling reflection gives every public CTA the same response. */
html body.sn-page :is(
  a.sn-button,
  button.sn-button,
  a.button,
  button.button,
  .sn-add-to-cart,
  .sn-catalog-reset,
  .wc-block-components-button,
  .sn-cookie-actions button,
  .sn-company-lookup-button,
  button[type="submit"]
):not(.sn-button-danger) {
  isolation: isolate;
  overflow: hidden;
}

html body.sn-page :is(
  a.sn-button,
  button.sn-button,
  a.button,
  button.button,
  .sn-add-to-cart,
  .sn-catalog-reset,
  .wc-block-components-button,
  .sn-cookie-actions button,
  .sn-company-lookup-button,
  button[type="submit"]
):not(.sn-button-danger)::after {
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.32), transparent);
  content: "";
  height: 220%;
  left: -75%;
  pointer-events: none;
  position: absolute;
  top: -60%;
  transform: skewX(-20deg);
  transition: left 520ms ease;
  width: 38%;
  z-index: 1;
}

html body.sn-page :is(
  .sn-button,
  .button,
  input[type="submit"],
  input[type="button"],
  button[type="submit"],
  .sn-add-to-cart,
  .sn-catalog-reset,
  .wc-block-components-button,
  .sn-cookie-actions button,
  .sn-company-lookup-button
):not(.sn-button-danger):is(:hover, :focus-visible) {
  background: linear-gradient(135deg, var(--sn-blue-soft), #65d6df) !important;
  border-color: var(--sn-gold-bright) !important;
  box-shadow: 0 12px 30px rgba(8, 127, 145, 0.34) !important;
  color: #050505 !important;
  transform: translateY(-2px) scale(1.01);
}

html body.sn-page :is(
  .sn-button,
  .button,
  input[type="submit"],
  input[type="button"],
  button[type="submit"],
  .sn-add-to-cart,
  .sn-catalog-reset,
  .wc-block-components-button,
  .sn-cookie-actions button,
  .sn-company-lookup-button
):not(.sn-button-danger):focus-visible {
  outline: 2px solid var(--sn-gold-bright);
  outline-offset: 3px;
}

html body.sn-page :is(
  a.sn-button,
  button.sn-button,
  a.button,
  button.button,
  .sn-add-to-cart,
  .sn-catalog-reset,
  .wc-block-components-button,
  .sn-cookie-actions button,
  .sn-company-lookup-button,
  button[type="submit"]
):not(.sn-button-danger):is(:hover, :focus-visible)::after {
  left: 135%;
}

html body.sn-page :is(
  .sn-button,
  .button,
  input[type="submit"],
  input[type="button"],
  button[type="submit"],
  .sn-add-to-cart,
  .sn-catalog-reset,
  .wc-block-components-button,
  .sn-cookie-actions button,
  .sn-company-lookup-button
):not(.sn-button-danger):active {
  box-shadow: inset 0 0 0 2px rgba(5, 5, 5, 0.24) !important;
  transform: translateY(0) scale(0.985);
  transition-duration: 80ms;
}

html body.sn-page :is(
  .sn-button,
  .button,
  input[type="submit"],
  input[type="button"],
  button[type="submit"],
  .sn-add-to-cart,
  .sn-catalog-reset,
  .wc-block-components-button,
  .sn-cookie-actions button,
  .sn-company-lookup-button
):disabled,
html body.sn-page :is(.sn-button, .button, .wc-block-components-button)[aria-disabled="true"] {
  cursor: not-allowed;
  opacity: 0.55;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  html body.sn-page :is(
    .sn-button,
    .button,
    input[type="submit"],
    input[type="button"],
    button[type="submit"],
    .sn-add-to-cart,
    .sn-catalog-reset,
    .wc-block-components-button,
    .sn-cookie-actions button,
    .sn-company-lookup-button
  ) {
    transform: none !important;
    transition-duration: 1ms !important;
  }

  html body.sn-page :is(
    a.sn-button,
    button.sn-button,
    a.button,
    button.button,
    .sn-add-to-cart,
    .sn-catalog-reset,
    .wc-block-components-button,
    .sn-cookie-actions button,
    .sn-company-lookup-button,
    button[type="submit"]
  )::after {
    display: none;
  }
}

/* Technical icon controls retain their purpose-specific geometry. */
html body.sn-page button.sn-product-open,
html body.sn-page button.sn-product-open:hover,
html body.sn-page button.sn-product-open:focus-visible,
html body.sn-page button.sn-product-open:active{background: transparent !important;background-image:none!important;border:0!important;box-shadow:none!important;color:inherit!important;transform:none!important;}
html body.sn-page .sn-wc-product-card{overflow:hidden;transition:background-color 300ms ease,border-color 300ms ease,box-shadow 300ms ease,transform 300ms ease;}
html body.sn-page .sn-wc-product-card:is(:hover, :focus-within){background:rgba(5,15,18,.94);border-color:rgba(66,184,200,.76);box-shadow:0 18px 44px rgba(0,0,0,.34),0 0 0 1px rgba(240,210,138,.18),0 0 28px rgba(8,127,145,.16);transform: translateY(-5px) scale(1.008);}
html body.sn-page .sn-product-open .sn-product-image-wrap img{transition:transform 420ms cubic-bezier(.22,1,.36,1);}
html body.sn-page .sn-wc-product-card:is(:hover, :focus-within) .sn-product-image-wrap img{transform: scale(1.028);}

html body.sn-page .sn-wc-product-card:is(:hover, :focus-within) :is(.sn-product-title, strong){color:var(--sn-gold-bright);}
html body.sn-page .sn-wc-product-card:is(:hover, :focus-within) .sn-product-price{color:var(--sn-blue-soft);}
@media (prefers-reduced-motion:reduce){html body.sn-page .sn-wc-product-card,html body.sn-page .sn-product-open .sn-product-image-wrap img{transform:none!important;transition-duration:1ms!important;}}

html body.sn-page :is(#ast-scroll-top, #sn-scroll-bottom){background:var(--sn-blue)!important;border:1px solid var(--sn-blue-soft)!important;border-radius:0!important;box-sizing:border-box;color:#031012!important;cursor:pointer;height:34px;padding:0!important;position:fixed!important;right:30px;transition:all 180ms ease;width:34px;z-index:99;}
html body.sn-page #ast-scroll-top{bottom:78px!important;right:30px!important;}
html body.sn-page #sn-scroll-bottom{bottom:30px;display:block;}
html body.sn-page #sn-scroll-bottom[hidden]{display:none;}
html body.sn-page :is(#ast-scroll-top, #sn-scroll-bottom) svg{display:none!important;}
html body.sn-page :is(#ast-scroll-top, #sn-scroll-bottom)::before{border-bottom:2px solid currentColor;border-right:2px solid currentColor;content:"";height:8px;left:50%;position:absolute;top:50%;width:8px;}
html body.sn-page #ast-scroll-top::before{transform:translate(-50%,-35%) rotate(225deg);}
html body.sn-page #sn-scroll-bottom::before{transform:translate(-50%,-65%) rotate(45deg);}
html body.sn-page :is(#ast-scroll-top, #sn-scroll-bottom):is(:hover, :focus-visible){background:var(--sn-blue-soft)!important;border-color:var(--sn-gold-bright)!important;box-shadow:0 0 0 3px rgba(66,184,200,.18);transform:scale(1.06);}
html body.sn-page :is(#ast-scroll-top, #sn-scroll-bottom):focus-visible{outline:2px solid var(--sn-gold-bright);outline-offset:2px;}
@media (max-width:544px){html body.sn-page :is(#ast-scroll-top, #sn-scroll-bottom){right:20px!important;}html body.sn-page #ast-scroll-top{bottom:74px!important;}html body.sn-page #sn-scroll-bottom{bottom:26px;}}
@media (prefers-reduced-motion:reduce){html body.sn-page :is(#ast-scroll-top, #sn-scroll-bottom){transform:none!important;transition:none;}}
