/* OctaDivision Button Studio 5.6.0 — optional action modules */

body.tc-ods-actions-enabled.single-product .tc-ods-action-buttons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  width: 100%;
  margin: 14px 0 0;
  clear: both;
}

body.tc-ods-actions-enabled.tc-ods-actions-full-width.single-product .tc-ods-action-buttons {
  grid-template-columns: 1fr;
}

body.tc-ods-actions-enabled.single-product .tc-ods-action-button {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  padding: var(--tc-ods-action-py, 11px) var(--tc-ods-action-px, 16px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 0;
  border-radius: var(--tc-ods-action-radius, 5px);
  color: var(--tc-ods-action-text, #fff);
  background: linear-gradient(135deg, var(--tc-ods-action-start, #1d2d3c), var(--tc-ods-action-end, #60788e));
  background-size: 200% 200%;
  box-shadow: 0 9px 20px rgba(29, 45, 60, .16);
  font-family: "Poppins", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: var(--tc-ods-action-font, 13px);
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transform: none;
  filter: none;
  transition: background .2s ease, box-shadow .2s ease, filter .2s ease, outline-color .2s ease;
}

body.tc-ods-actions-enabled.single-product .tc-ods-action-button:hover,
body.tc-ods-actions-enabled.single-product .tc-ods-action-button:focus-visible {
  color: var(--tc-ods-action-text, #fff);
  background: linear-gradient(135deg, var(--tc-ods-action-hover-start, #243b4f), var(--tc-ods-action-hover-end, #6c8498));
  box-shadow: 0 13px 28px rgba(29, 45, 60, .24);
  filter: brightness(1.035);
  outline: 2px solid color-mix(in srgb, var(--tc-ods-action-end, #60788e) 34%, transparent);
  outline-offset: 2px;
  transform: none;
  text-decoration: none;
}

body.tc-ods-actions-enabled.single-product .tc-ods-action-button span {
  position: relative;
  z-index: 2;
  pointer-events: none;
}


/* Shared stable effects. Geometry never moves. */
body.tc-ods-button-studio-active .tc-ods-action-button.tc-ods-effect-pulse,
body.tc-ods-button-studio-active .tc-ods-sticky-bar.tc-ods-effect-pulse {
  animation: tc-ods-soft-pulse 1.8s ease-in-out infinite !important;
}

body.tc-ods-button-studio-active .tc-ods-action-button.tc-ods-effect-shine::after,
body.tc-ods-button-studio-active .tc-ods-sticky-bar.tc-ods-effect-shine::after {
  content: "";
  display: block;
  position: absolute;
  inset: -45% auto -45% -55%;
  width: 34%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.48), transparent);
  transform: skewX(-18deg);
  animation: tc-ods-shine 2.4s ease-in-out infinite;
  pointer-events: none;
  z-index: 1;
}

body.tc-ods-button-studio-active .tc-ods-action-button.tc-ods-effect-glow,
body.tc-ods-button-studio-active .tc-ods-sticky-bar.tc-ods-effect-glow {
  animation: tc-ods-neon-glow 1.7s ease-in-out infinite alternate !important;
}

body.tc-ods-button-studio-active .tc-ods-action-button.tc-ods-effect-fire,
body.tc-ods-button-studio-active .tc-ods-sticky-bar.tc-ods-effect-fire {
  overflow: visible;
  animation: tc-ods-fire-glow 1.25s ease-in-out infinite alternate !important;
}

body.tc-ods-button-studio-active .tc-ods-action-button.tc-ods-effect-fire::before,
body.tc-ods-button-studio-active .tc-ods-sticky-bar.tc-ods-effect-fire::before {
  content: "";
  display: block;
  position: absolute;
  inset: -32% -5%;
  border-radius: inherit;
  background:
    radial-gradient(circle at 16% 82%, rgba(255, 235, 120, .5), transparent 25%),
    radial-gradient(circle at 49% 94%, rgba(255, 82, 0, .45), transparent 32%),
    radial-gradient(circle at 84% 78%, rgba(255, 180, 45, .42), transparent 26%);
  filter: blur(11px);
  animation: tc-ods-fire-layer 1.1s ease-in-out infinite alternate;
  pointer-events: none;
  z-index: -1;
}

body.tc-ods-button-studio-active .tc-ods-action-button.tc-ods-effect-gradient,
body.tc-ods-button-studio-active .tc-ods-sticky-bar.tc-ods-effect-gradient {
  animation: tc-ods-gradient-flow 3s ease infinite !important;
}

body.tc-ods-button-studio-active .tc-ods-action-button.tc-ods-effect-border,
body.tc-ods-button-studio-active .tc-ods-sticky-bar.tc-ods-effect-border {
  animation: tc-ods-border-pulse 1.6s ease-in-out infinite !important;
}

body.tc-ods-button-studio-active .tc-ods-action-button.tc-ods-effect-ripple::after,
body.tc-ods-button-studio-active .tc-ods-sticky-bar.tc-ods-effect-ripple::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: rgba(255,255,255,.34);
  transform: translate(-50%,-50%) scale(.2);
  animation: tc-ods-ripple 2s ease-out infinite;
  pointer-events: none;
}

body.tc-ods-button-studio-active .tc-ods-action-button.tc-ods-effect-heartbeat,
body.tc-ods-button-studio-active .tc-ods-sticky-bar.tc-ods-effect-heartbeat {
  animation: tc-ods-heartbeat 1.9s ease-in-out infinite !important;
}

/* Optional single-product Pre-order animation. More specific than the safety layer. */
body.tc-preorder-pro-v5-active.tc-pob-single-enabled.single-product.tc-ods-preorder-effect-pulse form.cart.tc-pob-hitbox-safe .single_add_to_cart_button {
  animation: tc-ods-soft-pulse 1.8s ease-in-out infinite !important;
}
body.tc-preorder-pro-v5-active.tc-pob-single-enabled.single-product.tc-ods-preorder-effect-glow form.cart.tc-pob-hitbox-safe .single_add_to_cart_button {
  animation: tc-ods-neon-glow 1.7s ease-in-out infinite alternate !important;
}
body.tc-preorder-pro-v5-active.tc-pob-single-enabled.single-product.tc-ods-preorder-effect-fire form.cart.tc-pob-hitbox-safe .single_add_to_cart_button {
  animation: tc-ods-fire-glow 1.25s ease-in-out infinite alternate !important;
}
body.tc-preorder-pro-v5-active.tc-pob-single-enabled.single-product.tc-ods-preorder-effect-gradient form.cart.tc-pob-hitbox-safe .single_add_to_cart_button {
  background-size: 200% 200% !important;
  animation: tc-ods-gradient-flow 3s ease infinite !important;
}
body.tc-preorder-pro-v5-active.tc-pob-single-enabled.single-product.tc-ods-preorder-effect-border form.cart.tc-pob-hitbox-safe .single_add_to_cart_button {
  animation: tc-ods-border-pulse 1.6s ease-in-out infinite !important;
}
body.tc-preorder-pro-v5-active.tc-pob-single-enabled.single-product.tc-ods-preorder-effect-heartbeat form.cart.tc-pob-hitbox-safe .single_add_to_cart_button {
  animation: tc-ods-heartbeat 1.9s ease-in-out infinite !important;
}
body.tc-preorder-pro-v5-active.tc-pob-single-enabled.single-product.tc-ods-preorder-effect-shine form.cart.tc-pob-hitbox-safe .single_add_to_cart_button::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: -45% auto -45% -55% !important;
  width: 34% !important;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.48), transparent) !important;
  transform: skewX(-18deg) !important;
  animation: tc-ods-shine 2.4s ease-in-out infinite !important;
  pointer-events: none !important;
  z-index: 1 !important;
}
body.tc-preorder-pro-v5-active.tc-pob-single-enabled.single-product.tc-ods-preorder-effect-ripple form.cart.tc-pob-hitbox-safe .single_add_to_cart_button::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: 50% auto auto 50% !important;
  width: 18px !important;
  height: 18px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.34) !important;
  transform: translate(-50%,-50%) scale(.2) !important;
  animation: tc-ods-ripple 2s ease-out infinite !important;
  pointer-events: none !important;
}

/* Inquiry modal */
.tc-ods-modal[hidden] { display: none !important; }
.tc-ods-modal {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: grid;
  place-items: center;
  padding: 20px;
}
.tc-ods-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10, 18, 28, .62);
  backdrop-filter: blur(6px);
}
.tc-ods-modal-dialog {
  width: min(520px, 100%);
  max-height: calc(100vh - 40px);
  overflow: auto;
  position: relative;
  z-index: 1;
  padding: 26px;
  border: 1px solid rgba(96,120,142,.18);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 28px 70px rgba(10,18,28,.28);
  font-family: "Poppins", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.tc-ods-modal-close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 999px;
  background: #eef3f7;
  color: #1d2d3c;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}
.tc-ods-modal-eyebrow {
  display: block;
  margin-bottom: 5px;
  color: #60788e;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.tc-ods-modal-dialog h3 { margin: 0 40px 18px 0; color: #1d2d3c; font-size: 22px; line-height: 1.25; }
.tc-ods-inquiry-form { display: grid; gap: 13px; }
.tc-ods-inquiry-form label { display: grid; gap: 6px; }
.tc-ods-inquiry-form label > span { color: #34495e; font-size: 12px; font-weight: 700; }
.tc-ods-inquiry-form input,
.tc-ods-inquiry-form textarea {
  width: 100%;
  min-height: 42px;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid #dce5ec;
  border-radius: 9px;
  background: #fff;
  color: #1d2d3c;
  font: inherit;
  box-shadow: none;
}
.tc-ods-inquiry-form textarea { resize: vertical; }
.tc-ods-inquiry-form input:focus,
.tc-ods-inquiry-form textarea:focus { outline: 2px solid rgba(96,120,142,.22); border-color: #60788e; }
.tc-ods-modal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.tc-ods-modal-submit {
  min-height: 44px;
  border: 0;
  border-radius: 9px;
  color: #fff;
  background: linear-gradient(135deg, var(--tc-ods-action-start, #1d2d3c), var(--tc-ods-action-end, #60788e));
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  transition: box-shadow .2s ease, filter .2s ease;
}
.tc-ods-modal-submit:hover { box-shadow: 0 12px 24px rgba(29,45,60,.22); filter: brightness(1.04); }
.tc-ods-modal-submit:disabled { cursor: wait; opacity: .7; }
.tc-ods-form-status { min-height: 18px; color: #52697d; font-size: 12px; }
.tc-ods-form-status.is-error { color: #b42318; }
.tc-ods-form-status.is-success { color: #087443; }
.tc-ods-honeypot { position: absolute !important; left: -99999px !important; opacity: 0 !important; pointer-events: none !important; }
body.tc-ods-modal-open { overflow: hidden; }

/* Sticky purchase bar */
.tc-ods-sticky-bar { display: none; }
@media (max-width: 767px) {
  body.tc-ods-sticky-enabled.single-product { padding-bottom: 76px; }
  .tc-ods-sticky-bar {
    display: block;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 99990;
    padding: 9px max(12px, env(safe-area-inset-right)) calc(9px + env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
    background: rgba(255,255,255,.94);
    border-top: 1px solid rgba(29,45,60,.12);
    box-shadow: 0 -12px 34px rgba(29,45,60,.14);
    backdrop-filter: blur(14px);
    isolation: isolate;
  }
  .tc-ods-sticky-inner { display: flex; gap: 8px; width: min(100%, 720px); margin: 0 auto; }
  .tc-ods-sticky-button {
    flex: 1 1 0;
    min-width: 0;
    min-height: 44px;
    border: 0;
    border-radius: 8px;
    color: var(--tc-pob-text, #fff);
    background: linear-gradient(135deg, var(--tc-pob-start, #1d2d3c), var(--tc-pob-end, #60788e));
    box-shadow: 0 8px 18px rgba(29,45,60,.18);
    font-family: "Poppins", "Inter", sans-serif;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
    transition: box-shadow .2s ease, filter .2s ease;
  }
  .tc-ods-sticky-button.is-quick-buy {
    background: linear-gradient(135deg, var(--tc-ods-qb-start, #9a3412), var(--tc-ods-qb-end, #f97316));
  }
  .tc-ods-sticky-button:hover,
  .tc-ods-sticky-button:focus-visible { box-shadow: 0 11px 24px rgba(29,45,60,.25); filter: brightness(1.04); outline: 2px solid rgba(96,120,142,.25); outline-offset: 1px; }
}

@keyframes tc-ods-ripple {
  0% { opacity: .5; transform: translate(-50%,-50%) scale(.2); }
  65%, 100% { opacity: 0; transform: translate(-50%,-50%) scale(9); }
}

@keyframes tc-ods-heartbeat {
  0%, 38%, 100% { box-shadow: 0 9px 20px rgba(29,45,60,.16); filter: brightness(1); }
  12% { box-shadow: 0 13px 30px rgba(96,120,142,.42); filter: brightness(1.06); }
  22% { box-shadow: 0 10px 22px rgba(29,45,60,.22); filter: brightness(1.02); }
}

@media (max-width: 767px) {
  body.tc-ods-actions-enabled.single-product .tc-ods-action-buttons { grid-template-columns: 1fr; }
  body.tc-ods-actions-enabled.single-product .tc-ods-action-button { font-size: var(--tc-ods-action-font-mobile, 12px); }
  .tc-ods-modal { padding: 12px; }
  .tc-ods-modal-dialog { padding: 22px 17px 18px; border-radius: 14px; }
  .tc-ods-modal-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .tc-ods-action-button,
  .tc-ods-action-button::before,
  .tc-ods-action-button::after,
  .tc-ods-sticky-bar,
  .tc-ods-sticky-bar::before,
  .tc-ods-sticky-bar::after,
  body.single-product .single_add_to_cart_button {
    animation: none !important;
  }
}

/* Extra Quick Buy effects added in 5.6.0. */
body.tc-ods-button-studio-active .tc-ods-quick-buy-button.tc-ods-effect-ripple::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: 50% auto auto 50% !important;
  width: 18px !important;
  height: 18px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.34) !important;
  transform: translate(-50%,-50%) scale(.2) !important;
  animation: tc-ods-ripple 2s ease-out infinite !important;
  pointer-events: none !important;
  z-index: 1 !important;
}
body.tc-ods-button-studio-active .tc-ods-quick-buy-button.tc-ods-effect-heartbeat {
  animation: tc-ods-heartbeat 1.9s ease-in-out infinite !important;
}
