/* stylelint-disable declaration-no-important, no-descending-specificity */

/*
 * OneTrust cookie banner — button overrides
 * Matches button.primary + button.inverted.size-40 from styles/button.css,
 * including the bottom-up ::before hover fill.
 *
 * Supports legacy (#onetrust-button-group > button) and patched banner DOM
 * (.ot-button-order-container, .cookie-setting-link, #ot-sdk-btn).
 */

/* Button group layout (patched OneTrust template) */
#onetrust-banner-sdk #onetrust-button-group,
#onetrust-banner-sdk #onetrust-button-group.ot-button-order-container,
#onetrust-banner-sdk .banner-actions-container {
  display: block !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: var(--spacing-200) !important;
  float: none !important;
  width: auto !important;
  max-width: none !important;
}

/* Shared base — size-40 compact buttons */
#onetrust-banner-sdk .banner-actions-container > button:not(.ot-link-btn),
#onetrust-banner-sdk .ot-button-order-container > button:not(.ot-link-btn),
#onetrust-banner-sdk #onetrust-button-group > button:not(.ot-link-btn),
#onetrust-banner-sdk #onetrust-accept-btn-handler,
#onetrust-banner-sdk #onetrust-reject-all-handler,
#onetrust-banner-sdk #onetrust-pc-btn-handler,
#onetrust-banner-sdk #ot-sdk-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: var(--spacing-200) !important;
  margin: 0 !important;
  padding: var(--spacing-300) var(--spacing-600) !important;
  min-height: var(--size-40) !important;
  max-height: var(--size-40) !important;
  border-radius: var(--spacing-650) var(--spacing-400) var(--spacing-650) var(--spacing-400) !important;
  font-family: var(--font-family-accent) !important;
  font-size: var(--font-size-200) !important;
  font-style: normal !important;
  font-weight: var(--font-weight-bold) !important;
  letter-spacing: var(--letter-spacing-tight) !important;
  text-align: center !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  user-select: none !important;
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate !important;
  z-index: 0 !important;
  box-shadow: none !important;
  background-image: none !important;
  transition: color 0.25s ease-in-out, border-color 0.25s ease-in-out !important;
  line-height: normal !important;
  opacity: 1 !important;
  width: auto !important;
  min-width: 0 !important;
  white-space: nowrap !important;
}

/* Hover fill — bottom-up ::before overlay (matches button.css) */
#onetrust-banner-sdk .banner-actions-container > button:not(.ot-link-btn)::before,
#onetrust-banner-sdk .ot-button-order-container > button:not(.ot-link-btn)::before,
#onetrust-banner-sdk #onetrust-button-group > button:not(.ot-link-btn)::before,
#onetrust-banner-sdk #onetrust-accept-btn-handler::before,
#onetrust-banner-sdk #onetrust-reject-all-handler::before,
#onetrust-banner-sdk #onetrust-pc-btn-handler::before,
#onetrust-banner-sdk #ot-sdk-btn::before,
#onetrust-banner-sdk .cookie-setting-link::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: -1 !important;
  transform: scaleY(0) !important;
  transform-origin: bottom center !important;
  transition: transform 0.25s ease-in-out !important;
  pointer-events: none !important;
  background-image: none !important;
}

#onetrust-banner-sdk #onetrust-accept-btn-handler::before {
  background-color: var(--button-alt-primary-hover) !important;
}

#onetrust-banner-sdk #onetrust-reject-all-handler::before,
#onetrust-banner-sdk #onetrust-pc-btn-handler::before,
#onetrust-banner-sdk #ot-sdk-btn::before,
#onetrust-banner-sdk .cookie-setting-link::before {
  background-color: var(--button-inverse-default) !important;
}

/* Primary — Accept All (button.primary.size-40) */
#onetrust-banner-sdk #onetrust-accept-btn-handler {
  background-color: var(--button-primary-default) !important;
  color: var(--button-primary-text) !important;
  border: 1px solid var(--border-hover) !important;
}

#onetrust-banner-sdk #onetrust-accept-btn-handler:hover,
#onetrust-banner-sdk #onetrust-accept-btn-handler:focus {
  background-color: var(--button-primary-default) !important;
  background-image: none !important;
  color: var(--button-primary-text) !important;
  border-color: var(--border-hover) !important;
  opacity: 1 !important;
}

#onetrust-banner-sdk #onetrust-accept-btn-handler:focus-visible {
  outline: 2px solid var(--button-alt-primary-focus) !important;
  outline-offset: 2px !important;
}

/* Inverted — Reject All, Cookies Settings / Customize Cookies (button.inverted.size-40) */
#onetrust-banner-sdk #onetrust-reject-all-handler,
#onetrust-banner-sdk #onetrust-pc-btn-handler,
#onetrust-banner-sdk #ot-sdk-btn,
#onetrust-banner-sdk .cookie-setting-link {
  background-color: transparent !important;
  border: 1px solid var(--button-inverse-default) !important;
  color: var(--button-inverse-default) !important;
}

#onetrust-banner-sdk #onetrust-reject-all-handler:hover,
#onetrust-banner-sdk #onetrust-reject-all-handler:focus,
#onetrust-banner-sdk #onetrust-pc-btn-handler:hover,
#onetrust-banner-sdk #onetrust-pc-btn-handler:focus,
#onetrust-banner-sdk #ot-sdk-btn:hover,
#onetrust-banner-sdk #ot-sdk-btn:focus,
#onetrust-banner-sdk .cookie-setting-link:hover,
#onetrust-banner-sdk .cookie-setting-link:focus {
  background-color: transparent !important;
  background-image: none !important;
  border-color: var(--button-inverse-default) !important;
  color: var(--surface-dark) !important;
  opacity: 1 !important;
}

#onetrust-banner-sdk #onetrust-reject-all-handler:focus-visible,
#onetrust-banner-sdk #onetrust-pc-btn-handler:focus-visible,
#onetrust-banner-sdk #ot-sdk-btn:focus-visible,
#onetrust-banner-sdk .cookie-setting-link:focus-visible {
  outline: 2px solid var(--button-alt-primary-focus) !important;
  outline-offset: 2px !important;
}

/* Shared hover/focus — reveal fill overlay */
#onetrust-banner-sdk .banner-actions-container > button:not(.ot-link-btn):hover::before,
#onetrust-banner-sdk .banner-actions-container > button:not(.ot-link-btn):focus::before,
#onetrust-banner-sdk .ot-button-order-container > button:not(.ot-link-btn):hover::before,
#onetrust-banner-sdk .ot-button-order-container > button:not(.ot-link-btn):focus::before,
#onetrust-banner-sdk #onetrust-button-group > button:not(.ot-link-btn):hover::before,
#onetrust-banner-sdk #onetrust-button-group > button:not(.ot-link-btn):focus::before,
#onetrust-banner-sdk #onetrust-accept-btn-handler:hover::before,
#onetrust-banner-sdk #onetrust-accept-btn-handler:focus::before,
#onetrust-banner-sdk #onetrust-reject-all-handler:hover::before,
#onetrust-banner-sdk #onetrust-reject-all-handler:focus::before,
#onetrust-banner-sdk #onetrust-pc-btn-handler:hover::before,
#onetrust-banner-sdk #onetrust-pc-btn-handler:focus::before,
#onetrust-banner-sdk #ot-sdk-btn:hover::before,
#onetrust-banner-sdk #ot-sdk-btn:focus::before,
#onetrust-banner-sdk .cookie-setting-link:hover::before,
#onetrust-banner-sdk .cookie-setting-link:focus::before {
  transform: scaleY(1) !important;
}

/* Cancel OneTrust SDK hover overrides that block the fill animation */
#onetrust-banner-sdk .ot-sdk-button:hover,
#onetrust-banner-sdk .ot-sdk-button:focus,
#onetrust-banner-sdk :not(.ot-leg-btn-container) > button:not(.ot-link-btn):hover,
#onetrust-banner-sdk :not(.ot-leg-btn-container) > button:not(.ot-link-btn):focus {
  opacity: 1 !important;
  background-image: none !important;
}

@media screen and (width >= 960px) {
  #onetrust-banner-sdk #onetrust-button-group,
  #onetrust-banner-sdk #onetrust-button-group.ot-button-order-container,
  #onetrust-banner-sdk .banner-actions-container {
    display: flex !important;
  }

  #onetrust-banner-sdk:not(.ot-iab-2) #onetrust-group-container {
    width: 50% !important;
  }

  #onetrust-banner-sdk.ot-buttons-fw:not(.ot-iab-2) #onetrust-button-group-parent {
    width: 50% !important;
    left: 50% !important;
  }

  #onetrust-banner-sdk .ot-sdk-row,
  #onetrust-pc-sdk .ot-sdk-row,
  #ot-sdk-cookie-policy .ot-sdk-row {
    display: flex;
    align-items: center;
    padding: 12px;
  }

  #onetrust-banner-sdk.ot-buttons-fw:not(.ot-iab-2) #onetrust-button-group {
    margin-top: 0 !important;
  }
}
