/* ===========================
   Juliana — Button styles
   =========================== */

/*
 * G-BTN vertex: primary (oxblood fill), secondary (alabaster outline),
 * and filter pill variant.
 * Accent discipline: oxblood only on interactive surfaces — never on large-area
 * backgrounds or body text.
 */

/* ===========================
   Button styles
   =========================== */

.j-btn,
.fluentform .ff-btn-submit,
.j-ig .j-read-link {
  /* text */
  font-family: var(--font-body);
  font-size: var(--fs-eyebrow);
  font-weight: var(--fw-semibold);
  letter-spacing: 0.06em;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;

  /* box model */
  padding: 0.875rem 1.5rem;
  min-height: var(--sp-44); /* WCAG 44px touch target */

  /* border */
  border-radius: var(--r-button);

  /* display */
  display: inline-flex;

  /* flexbox */
  align-items: center;
  justify-content: center;
  gap: var(--sp-8);

  /* transition */
  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease,
    outline-offset 0.1s ease;

  /* other */
  cursor: pointer;

}


/* ===========================
   Component-specific sections
   =========================== */

/* Primary: oxblood fill · alabaster text */
.j-btn--primary,
.fluentform .ff-btn-submit,
.j-ig .j-read-link {
  /* color */
  color: var(--c-ink);
  background-color: var(--c-accent);

  /* border */
  border: 2px solid transparent;

}

.j-btn--primary:hover,
.fluentform .ff-btn-submit:hover,
.j-ig .j-read-link:hover {
  /* color */
  color: var(--c-ink);
  background-color: var(--c-accent-hover);

}

.j-btn--primary:focus-visible,
.fluentform .ff-btn-submit:focus-visible,
.j-ig .j-read-link:focus-visible {
  /* color */
  background-color: var(--c-accent);

  /* other */
  outline: 2px solid var(--c-ink);
  outline-offset: 3px;

}

.j-btn--primary:active,
.fluentform .ff-btn-submit:active,
.j-ig .j-read-link:active {
  /* color */
  background-color: var(--c-accent-hover);

  /* other */
  transform: translateY(1px);

}

.j-btn--primary:disabled,
.j-btn--primary[aria-disabled="true"] {
  /* color */
  opacity: 0.45;

  /* other */
  cursor: not-allowed;
  pointer-events: none;

}

/* Secondary: alabaster outline · alabaster text */
.j-btn--secondary {
  /* color */
  color: var(--c-ink);
  background-color: transparent;

  /* border */
  border: 1.5px solid var(--c-ink);

}

.j-btn--secondary:hover {
  /* color */
  color: var(--c-ink);
  background-color: color-mix(in srgb, var(--c-ink) 8%, transparent);

  /* border */
  border-color: var(--c-ink);

}

.j-btn--secondary:focus-visible {
  /* other */
  outline: 2px solid var(--c-ink);
  outline-offset: 3px;

}

.j-btn--secondary:active {
  /* other */
  transform: translateY(1px);

}

.j-btn--secondary:disabled,
.j-btn--secondary[aria-disabled="true"] {
  /* color */
  opacity: 0.45;

  /* other */
  cursor: not-allowed;
  pointer-events: none;

}

/* Filter pill: gallery filter tabs — active = oxblood fill */
.j-filter-pill {
  /* text */
  font-family: var(--font-body);
  font-size: var(--fs-eyebrow);
  font-weight: var(--fw-medium);

  /* color */
  color: var(--c-ink-dim);
  background-color: var(--c-surface-1);

  /* box model */
  padding: 0.5rem 1.25rem;
  min-height: var(--sp-44); /* WCAG 44px touch target */

  /* border */
  border: 0;
  border-radius: var(--r-pill);

  /* display */
  display: inline-flex;

  /* flexbox */
  align-items: center;
  justify-content: center;

  /* other */
  cursor: pointer;

  /* transition */
  transition: background-color 0.2s ease, color 0.2s ease;

}

.j-filter-pill:hover {
  /* color */
  color: var(--c-ink);
  background-color: var(--c-surface-2);

}

.j-filter-pill.is-active,
.j-filter-pill[aria-pressed="true"] {
  /* color */
  color: var(--c-ink);
  background-color: var(--c-accent);

}

.j-filter-pill:focus-visible {
  /* other */
  outline: 2px solid var(--c-ink);
  outline-offset: 3px;

}


/* ===========================
   WP Block Button adapter
   =========================== */

/*
 * When j-btn / j-btn--primary / j-btn--secondary land on the outer
 * wp-block-button wrapper div, strip visual chrome from that div and
 * re-apply it to the inner .wp-block-button__link so the <a> is the
 * rendered button element — not the invisible wrapper around it.
 */

.j-btn.wp-block-button {
  padding: 0;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  min-height: 0;
  transition: none;
}

.j-btn.wp-block-button .wp-block-button__link {
  font-family: var(--font-body);
  font-size: var(--fs-eyebrow);
  font-weight: var(--fw-semibold);
  letter-spacing: 0.06em;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  padding: 0.875rem 1.5rem;
  min-height: var(--sp-44);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-8);
  border-radius: var(--r-button) !important;
  cursor: pointer;
  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease,
    outline-offset 0.1s ease;
}

/* Primary block button */
.j-btn--primary.wp-block-button .wp-block-button__link {
  color: var(--c-ink) !important;
  background-color: var(--c-accent) !important;
  border: 2px solid transparent !important;
  position: relative;
  overflow: hidden;
}

.j-btn--primary.wp-block-button:hover .wp-block-button__link {
  background-color: var(--c-accent-hover) !important;
}

.j-btn--primary.wp-block-button:focus-visible .wp-block-button__link {
  outline: 2px solid var(--c-ink);
  outline-offset: 3px;
}

.j-btn--primary.wp-block-button:active .wp-block-button__link {
  transform: translateY(1px);
}

/* Secondary block button */
.j-btn--secondary.wp-block-button .wp-block-button__link {
  color: var(--c-ink) !important;
  background-color: transparent !important;
  border: 1.5px solid var(--c-ink) !important;
}

.j-btn--secondary.wp-block-button:hover .wp-block-button__link {
  background-color: color-mix(in srgb, var(--c-ink) 8%, transparent) !important;
  border-color: var(--c-ink) !important;
}

.j-btn--secondary.wp-block-button:focus-visible .wp-block-button__link {
  outline: 2px solid var(--c-ink);
  outline-offset: 3px;
}

.j-btn--secondary.wp-block-button:active .wp-block-button__link {
  transform: translateY(1px);
}


/* ===========================
   Sheen animation — primary
   =========================== */

/*
 * A light streak sweeps left → right on hover.
 * Two cases: direct elements (<button class="j-btn j-btn--primary">)
 * and the inner link inside WP block buttons.
 */

.j-btn--primary:not(.wp-block-button),
.fluentform .ff-btn-submit,
.j-ig .j-read-link {
  position: relative;
  overflow: hidden;
}

.j-btn--primary:not(.wp-block-button)::after,
.fluentform .ff-btn-submit::after,
.j-ig .j-read-link::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 50%;
  height: 100%;
  background: linear-gradient(105deg, transparent 20%, rgba(255,255,255,0.15) 50%, transparent 80%);
  transition: left 0.55s ease;
  pointer-events: none;
}

.j-btn--primary:not(.wp-block-button):hover::after,
.fluentform .ff-btn-submit:hover::after,
.j-ig .j-read-link:hover::after {
  left: 150%;
}

.j-btn--primary.wp-block-button .wp-block-button__link::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 50%;
  height: 100%;
  background: linear-gradient(105deg, transparent 20%, rgba(255,255,255,0.15) 50%, transparent 80%);
  transition: left 0.55s ease;
  pointer-events: none;
}

.j-btn--primary.wp-block-button:hover .wp-block-button__link::after {
  left: 150%;
}
