/* "Line row" actions on the product page (BNN join button, concept 2, 2026-10-24); the footer JOIN has the same look in banan-footer.css.
   No box, no fill: a row 48 px high, label on the left, one 1 px line underneath, the whole row is the target.
   States change only the line and the text colour (and the arrow), nothing moves. See DESIGN-SYSTEM.md section 4.5. */

#coming-soon-btn,
button#join_btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  box-sizing: border-box;
  width: 100%;
  height: 48px;
  padding: 0;
  background: transparent;
  color: #fff;
  border: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .5);
  border-radius: 0;
  box-shadow: none;
  font-family: "Helvetica Neue", HelveticaNeue, Arial, sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 24px;
  letter-spacing: 1px;
  text-align: left;
  text-transform: uppercase;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: border-color .2s ease, box-shadow .2s ease, color .2s ease;
}
/* the theme sets margins with !important on the product button */
#coming-soon-btn.coming-soon-btn { width: 88%; margin: 48px auto 0 !important; }   /* phone: 88 % centred, as the old outlined box was */
@media (min-width: 768px) { #coming-soon-btn.coming-soon-btn { width: 100%; margin: 48px 0 0 !important; } }   /* desktop: the text column is left-aligned, so the row fills it */
button#join_btn { margin: 12px 0 0; }
#coming-soon-btn .label,
#coming-soon-btn .price { display: inline; font: inherit; letter-spacing: inherit; color: inherit; margin: 0; padding: 0; }
#coming-soon-btn .price { font-size: 14px; }

/* arrow on JOIN: decoration added in CSS, the button's text stays "join" */
button#join_btn::after {
  content: "\2192";
  content: "\2192" / "";
  position: absolute;
  right: 6px;
  transition: transform .2s ease;
}

#coming-soon-btn:focus,
button#join_btn:focus { outline: none; }
#coming-soon-btn:active,
button#join_btn:active {
  color: rgba(255, 255, 255, .6);
  border-bottom-color: rgba(255, 255, 255, .6);
  box-shadow: 0 1px 0 0 rgba(255, 255, 255, .6);
}
#coming-soon-btn:focus-visible,
button#join_btn:focus-visible { border-bottom-color: #fff; box-shadow: 0 1px 0 0 #fff; }
button#join_btn:disabled,
button#join_btn[aria-busy="true"] {
  color: rgba(255, 255, 255, .4);
  border-bottom-color: rgba(255, 255, 255, .3);
  box-shadow: none;
  cursor: default;
  pointer-events: none;
}
/* hover only where there is a pointer: on a phone a hover would stay "stuck" after a tap */
@media (hover: hover) {
  #coming-soon-btn:hover:not(:active),
  button#join_btn:hover:not(:active):not(:disabled):not([aria-busy="true"]) { border-bottom-color: #fff; box-shadow: 0 1px 0 0 #fff; }
  button#join_btn:hover:not(:active):not(:disabled):not([aria-busy="true"])::after { transform: translateX(6px); }
}
@media (prefers-reduced-motion: reduce) {
  #coming-soon-btn, button#join_btn, button#join_btn::after { transition: none; }
  button#join_btn:hover::after { transform: none; }
}
