/* ===========================================================================
   Glory Medals button system
   --------------------------------------------------------------------------
   This file is deliberately loaded after the global colour system. Reuse the
   optional .gm-btn--large, .gm-btn--standard, .gm-btn--small, .gm-btn--dark,
   .gm-btn--secondary and .gm-btn--text classes for new templates.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Shared text treatment. Navigation links retain their own Inter typeface;
   this rule applies only to actionable controls and named button components.
   -------------------------------------------------------------------------- */
button,
input[type="button"],
input[type="reset"],
input[type="submit"],
.btn_gold,
.btn_line,
.i_more,
.i_more2,
.theme_btn,
.top_quote,
.mobile_nav_cta {
  font-family: var(--gm-button-font) !important;
  font-weight: var(--gm-button-weight) !important;
}

/* --------------------------------------------------------------------------
   Standard button — 48 px high, 8 px radius, 16 / 24 text.
   -------------------------------------------------------------------------- */
.gm-btn--standard,
.btn_gold,
.btn_line,
.i_more,
.i_more2,
.wpforms-submit-container button,
.wpforms-submit {
  box-sizing: border-box;
  display: inline-flex !important;
  min-width: 140px !important;
  height: 48px !important;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 0 24px !important;
  border: 1px solid transparent !important;
  border-radius: 8px !important;
  font-family: var(--gm-button-font) !important;
  font-size: 16px !important;
  font-weight: var(--gm-button-weight) !important;
  line-height: 24px !important;
  text-align: center;
  text-decoration: none;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease, box-shadow .2s ease !important;
}

/* Text-slide animation for the legacy button markup. It lives here rather
   than style.css so the component has one visual source of truth. */
.btn_gold,
.btn_line {
  overflow: hidden;
}

.btn_gold .btn_text,
.btn_gold .btn_arrow,
.btn_line .btn_text,
.btn_line .btn_arrow {
  position: relative;
  display: flex;
  overflow: hidden;
  height: 24px;
  align-items: flex-start;
}

.btn_gold .btn_text span,
.btn_gold .btn_arrow span,
.btn_line .btn_text span,
.btn_line .btn_arrow span {
  display: block;
  line-height: 24px;
  transition: transform .45s cubic-bezier(.76, 0, .24, 1);
}

.btn_gold .btn_text span:last-child,
.btn_gold .btn_arrow span:last-child,
.btn_line .btn_text span:last-child,
.btn_line .btn_arrow span:last-child {
  position: absolute;
  top: 100%;
  left: 0;
}

.btn_gold:hover .btn_text span,
.btn_gold:hover .btn_arrow span,
.btn_line:hover .btn_text span,
.btn_line:hover .btn_arrow span {
  transform: translateY(-100%);
}

.btn_gold .btn_arrow,
.btn_line .btn_arrow {
  width: .9em;
}

.btn_gold .btn_arrow span,
.btn_line .btn_arrow span {
  width: 100%;
  text-align: center;
}

/* Primary button. */
.gm-btn--primary,
.btn_gold,
.wpforms-submit-container button,
.wpforms-submit {
  border-color: var(--gm-button-primary) !important;
  background-color: var(--gm-button-primary) !important;
  color: var(--gm-button-dark) !important;
}

/* Secondary button. */
.gm-btn--secondary,
.btn_line,
.i_more {
  border-color: var(--gm-button-primary) !important;
  background-color: transparent !important;
  color: var(--gm-button-primary) !important;
}

.i_more::before,
.i_more2::before {
  display: none !important;
}

.i_more b,
.i_more2 b {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: inherit !important;
  font-family: var(--gm-button-font) !important;
  font-size: 16px !important;
  font-weight: var(--gm-button-weight) !important;
  line-height: 24px !important;
}

.i_more b iconify-icon,
.i_more2 b iconify-icon {
  margin-left: 6px;
  font-size: 20px;
}

/* Dark button. */
.gm-btn--dark,
.i_more2 {
  border-color: var(--gm-button-dark-border) !important;
  background-color: var(--gm-button-dark) !important;
  color: var(--gm-button-light) !important;
}

.gm-btn--primary:hover,
.btn_gold:hover,
.wpforms-submit-container button:hover,
.wpforms-submit:hover {
  border-color: var(--gm-button-primary-hover) !important;
  background-color: var(--gm-button-primary-hover) !important;
  color: var(--gm-button-dark) !important;
  box-shadow: none !important;
  transform: none !important;
}

.gm-btn--secondary:hover,
.btn_line:hover,
.i_more:hover {
  border-color: var(--gm-button-primary) !important;
  background-color: var(--gm-button-primary) !important;
  color: var(--gm-button-dark) !important;
  box-shadow: none !important;
  transform: none !important;
}

.gm-btn--dark:hover,
.i_more2:hover {
  border-color: var(--gm-button-dark-hover) !important;
  background-color: var(--gm-button-dark-hover) !important;
  color: var(--gm-button-light) !important;
  box-shadow: none !important;
  transform: none !important;
}

.gm-btn--primary:active,
.gm-btn--secondary:active,
.gm-btn--dark:active,
.btn_gold:active,
.btn_line:active,
.i_more:active,
.i_more2:active,
.wpforms-submit-container button:active,
.wpforms-submit:active,
.top_quote:active,
.mobile_nav_cta:active {
  border-color: var(--gm-button-primary-active) !important;
  background-color: var(--gm-button-primary-active) !important;
  color: var(--gm-button-dark) !important;
  box-shadow: none !important;
  transform: none !important;
}

/* --------------------------------------------------------------------------
   Large CTA — 52 px high, 8 px radius, 16 / 24 text.
   Applied to hero and final conversion areas already present in the theme.
   -------------------------------------------------------------------------- */
.gm-btn--large,
.row_btn .btn_gold,
.row_btn .btn_line,
.mobile_nav_cta,
.footer_form button[type="submit"] {
  min-width: 160px !important;
  height: 52px !important;
  padding-right: 28px !important;
  padding-left: 28px !important;
  border-radius: 8px !important;
  font-family: var(--gm-button-font) !important;
  font-size: 16px !important;
  font-weight: var(--gm-button-weight) !important;
  line-height: 24px !important;
}

.mobile_nav_cta,
.footer_form button[type="submit"] {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--gm-button-primary) !important;
  background-color: var(--gm-button-primary) !important;
  color: var(--gm-button-dark) !important;
  text-decoration: none;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease, box-shadow .2s ease !important;
}

.mobile_nav_cta:hover,
.footer_form button[type="submit"]:hover {
  border-color: var(--gm-button-primary-hover) !important;
  background-color: var(--gm-button-primary-hover) !important;
  color: var(--gm-button-dark) !important;
  box-shadow: none !important;
  transform: none !important;
}

.footer_form button[type="submit"] {
  width: 100%;
  min-width: 0 !important;
}

/* --------------------------------------------------------------------------
   Small / navigation controls — 40 px high, 6 px radius, 14 / 20 text.
   -------------------------------------------------------------------------- */
.gm-btn--small,
.top_quote {
  box-sizing: border-box;
  display: inline-flex !important;
  min-width: 96px !important;
  height: 40px !important;
  align-items: center;
  justify-content: center;
  padding: 0 18px !important;
  border: 1px solid var(--gm-button-primary) !important;
  border-radius: 6px !important;
  background-color: transparent !important;
  color: var(--gm-button-primary) !important;
  font-family: var(--gm-button-font) !important;
  font-size: 14px !important;
  font-weight: var(--gm-button-weight) !important;
  line-height: 20px !important;
  text-align: center;
  text-decoration: none;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease, box-shadow .2s ease !important;
}

.top_quote {
  margin-left: 10px !important;
  border-radius: 6px !important;
  background-color: var(--gm-button-primary) !important;
  color: var(--gm-button-dark) !important;
}

.top_quote:hover {
  border-color: var(--gm-button-primary-hover) !important;
  background-color: var(--gm-button-primary-hover) !important;
  color: var(--gm-button-dark) !important;
}

.gm-btn--small:hover,
.gm-btn--small.is-active,
.gm-btn--small.active {
  border-color: var(--gm-button-primary) !important;
  background-color: var(--gm-button-primary) !important;
  color: var(--gm-button-dark) !important;
  box-shadow: none !important;
}

/* --------------------------------------------------------------------------
   Text link — gold text, no box; hover reveals a clear underline.
   -------------------------------------------------------------------------- */
.gm-btn--text,
.theme_btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0;
  border: 0 !important;
  border-radius: 0;
  background: transparent !important;
  color: var(--gm-button-primary) !important;
  font-family: var(--gm-button-font) !important;
  font-size: 16px !important;
  font-weight: var(--gm-button-weight) !important;
  line-height: 24px !important;
  text-decoration: none;
}

.theme_btn {
  overflow: hidden;
}

.theme_btn.small {
  font-size: 14px !important;
  line-height: 20px !important;
}

.theme_btn .btn_text,
.theme_btn .btn_icon {
  position: relative;
  display: flex;
  overflow: hidden;
  height: 1.2em;
  align-items: flex-start;
}

.theme_btn .btn_text span,
.theme_btn .btn_icon span {
  display: block;
  line-height: 1.2em;
  transition: transform .45s cubic-bezier(.76, 0, .24, 1);
}

.theme_btn .btn_text span:last-child,
.theme_btn .btn_icon span:last-child {
  position: absolute;
  top: 100%;
  left: 0;
}

.theme_btn:hover .btn_text span,
.theme_btn:hover .btn_icon span {
  transform: translateY(-100%);
}

.gm-btn--text:hover,
.theme_btn:hover {
  color: var(--gm-button-primary) !important;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

/* --------------------------------------------------------------------------
   Round icon controls — 44 x 44 px, 50% radius.
   -------------------------------------------------------------------------- */
.gm-btn--icon,
.top_wrap .nav_menu,
.mobile_nav_close,
.banner-button-prev,
.banner-button-next,
.aside_right li > a,
.footer_social a,
.footer_connect .footer_social a {
  box-sizing: border-box;
  display: inline-flex !important;
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  padding: 0 !important;
  align-items: center;
  justify-content: center;
  border-radius: 50% !important;
}

/* Honor arrows are deliberately hidden by the existing carousel until that
   component enables them. Their size is standardized without changing that
   visibility decision. */
.honor-button-prev,
.honor-button-next {
  box-sizing: border-box;
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  padding: 0 !important;
  border-radius: 50% !important;
}

/* The desktop header keeps its navigation trigger hidden. */
.top_wrap .nav_menu {
  display: none !important;
}

.top_wrap .nav_menu,
.mobile_nav_close {
  border: 1px solid var(--gm-button-dark-border) !important;
  background: var(--gm-button-light) !important;
  color: var(--gm-button-dark) !important;
  box-shadow: none !important;
}

.top_wrap .nav_menu.on {
  border-color: var(--gm-button-dark-hover) !important;
  background: var(--gm-button-dark) !important;
}

.top_wrap .nav_menu.on::before,
.top_wrap .nav_menu.on::after {
  background: var(--gm-button-light) !important;
}

.banner-button-prev,
.banner-button-next,
.honor-button-prev,
.honor-button-next {
  border: 1px solid var(--gm-button-primary) !important;
  background-color: var(--gm-button-primary) !important;
  color: var(--gm-button-dark) !important;
}

.banner-button-prev:hover,
.banner-button-next:hover,
.honor-button-prev:hover,
.honor-button-next:hover {
  border-color: var(--gm-button-primary-hover) !important;
  background-color: var(--gm-button-primary-hover) !important;
  color: var(--gm-button-dark) !important;
}

.footer_social a,
.footer_connect .footer_social a {
  border: 1px solid var(--gm-button-dark-border) !important;
  background: var(--gm-button-dark) !important;
  color: var(--gm-button-light) !important;
}

.footer_social a:hover,
.footer_connect .footer_social a:hover {
  border-color: var(--gm-button-dark-hover) !important;
  background: var(--gm-button-dark-hover) !important;
  box-shadow: none !important;
  transform: none !important;
}

.footer_phone a,
.footer_phone p {
  font-family: var(--gm-button-font) !important;
  font-weight: var(--gm-button-weight) !important;
}

/* The right-side toolbar has inline template CSS after the stylesheet, so
   important is intentional here to keep its icon targets consistently 44px. */
.aside_right li > a {
  border: 1px solid var(--gm-button-dark-border) !important;
}

.aside_right li > a:hover {
  border-color: var(--gm-button-primary-hover) !important;
  background-color: var(--gm-button-primary-hover) !important;
  box-shadow: none !important;
  transform: none !important;
}

/* --------------------------------------------------------------------------
   Disabled and keyboard-focus states.
   -------------------------------------------------------------------------- */
.gm-btn--disabled,
.btn_gold[aria-disabled="true"],
.btn_line[aria-disabled="true"],
.i_more[aria-disabled="true"],
.i_more2[aria-disabled="true"],
.top_quote[aria-disabled="true"],
.mobile_nav_cta[aria-disabled="true"],
button:disabled,
input[type="button"]:disabled,
input[type="reset"]:disabled,
input[type="submit"]:disabled {
  border-color: transparent !important;
  background-color: var(--gm-button-disabled) !important;
  color: var(--gm-button-disabled-text) !important;
  cursor: not-allowed;
  pointer-events: none;
}

button:focus-visible,
input[type="button"]:focus-visible,
input[type="reset"]:focus-visible,
input[type="submit"]:focus-visible,
.btn_gold:focus-visible,
.btn_line:focus-visible,
.i_more:focus-visible,
.i_more2:focus-visible,
.theme_btn:focus-visible,
.top_quote:focus-visible,
.mobile_nav_cta:focus-visible,
.gm-btn--large:focus-visible,
.gm-btn--standard:focus-visible,
.gm-btn--small:focus-visible,
.gm-btn--text:focus-visible,
.aside_right li > a:focus-visible,
.footer_social a:focus-visible {
  outline: 3px solid var(--gm-button-focus) !important;
  outline-offset: 2px !important;
}

/* --------------------------------------------------------------------------
   Responsive adjustments. Primary CTAs can use the available mobile width;
   small and icon buttons keep their documented dimensions.
   -------------------------------------------------------------------------- */
@media screen and (max-width: 767px) {
  .row_btn .btn_gold,
  .row_btn .btn_line,
.gm-btn--large,
  .mobile_nav_cta,
  .footer_form button[type="submit"] {
    width: 100%;
  }

  .row_btn .btn_gold,
  .row_btn .btn_line {
    min-width: 0 !important;
  }

  .top_quote {
    min-width: 96px !important;
    margin-left: auto !important;
  }
}

@media screen and (max-width: 1024px) {
  .top_wrap .nav_menu {
    display: inline-flex !important;
    flex: 0 0 44px !important;
  }
}
