/* Forge LX Labs Research Access — v1.5.0
   Full plugin CSS included in the install ZIP. */

:root {
  --forge-access-gold: #e2b642;
  --forge-access-gold-light: #f2cd65;
  --forge-access-border: rgba(226,182,66,.48);
  --forge-access-panel: #080808;
  --forge-access-text: #f5f5f5;
  --forge-access-muted: #b9b9b9;
}

/* ---------- ACCESS GATE ---------- */
html.forge-access-locked,
html.forge-access-locked body {
  overflow: hidden !important;
  overscroll-behavior: none !important;
}

.forge-research-gate[hidden] {
  display: none !important;
}

.forge-research-gate {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147483000 !important;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: auto;
  padding: 0;
  margin: 0;
  background: #000;
  color: #fff;
  box-sizing: border-box;
  isolation: isolate;
}

.forge-research-gate,
.forge-research-gate * {
  box-sizing: border-box;
}

.forge-research-gate__panel {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 100%;
  margin: 0;
  padding: 0;
  outline: 0;
  background: #000;
}

.forge-research-gate__artboard {
  position: relative;
  flex: 0 0 auto;
  width: min(100vw, calc(100svh * 0.6666667));
  max-width: 1024px;
  aspect-ratio: 2 / 3;
  background-image: var(--forge-gate-art);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 100% 100%;
  box-shadow: 0 0 80px rgba(0,0,0,.8);
}

/* Visually hidden but accessible. */
.forge-research-gate__sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Large invisible click/tap regions placed over the artwork. */
.forge-research-gate__hotspot,
.forge-research-gate__enter-hotspot,
.forge-research-gate__exit-hotspot,
.forge-research-gate__policy-link {
  position: absolute !important;
  z-index: 5;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  text-decoration: none !important;
  -webkit-tap-highlight-color: transparent;
}

/* Entire statement rows are clickable, not only the small box. */
.forge-research-gate__hotspot {
  left: 21.1%;
  width: 60.5%;
  cursor: pointer;
}

.forge-research-gate__hotspot--age {
  top: 51.25%;
  height: 4.5%;
}

.forge-research-gate__hotspot--research {
  top: 55.9%;
  height: 7.7%;
}

.forge-research-gate__hotspot--laboratory {
  top: 63.4%;
  height: 9.0%;
}

.forge-research-gate__hotspot input {
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Gold checkmark placed over the empty checkbox printed in the artwork. */
.forge-research-gate__checkmark {
  position: absolute;
  left: 2.8%;
  top: 50%;
  width: clamp(13px, 2.5vw, 27px);
  height: clamp(13px, 2.5vw, 27px);
  transform: translateY(-50%);
  display: block;
  color: #f3c64f;
  opacity: 0;
}

/* Draw the tick ourselves instead of using a font glyph.
   This keeps the entire checkmark centered INSIDE the printed gold box. */
.forge-research-gate__checkmark::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 47%;
  width: 31%;
  height: 57%;
  border-right: clamp(2px, .22vw, 3px) solid #f3c64f;
  border-bottom: clamp(2px, .22vw, 3px) solid #f3c64f;
  transform: translate(-50%, -50%) rotate(42deg);
  transform-origin: 50% 50%;
  filter: drop-shadow(0 0 4px rgba(242,198,79,.62));
}


/* Align the generated checkmarks precisely with the three checkbox outlines
   printed into the gate artwork. */
.forge-research-gate__hotspot--age .forge-research-gate__checkmark {
  top: 43.8%;
}

.forge-research-gate__hotspot--research .forge-research-gate__checkmark {
  top: 23.5%;
}

.forge-research-gate__hotspot--laboratory .forge-research-gate__checkmark {
  top: 23.7%;
}

.forge-research-gate__hotspot input:checked + .forge-research-gate__checkmark {
  opacity: 1;
}


.forge-research-gate__enter-hotspot {
  left: 22.1%;
  top: 74.05%;
  width: 55.8%;
  height: 5.65%;
  cursor: pointer;
  border-radius: 1.2% / 12% !important;
}

.forge-research-gate__enter-hotspot:disabled {
  cursor: not-allowed;
}

.forge-research-gate__enter-hotspot:not(:disabled):hover,
.forge-research-gate__enter-hotspot:not(:disabled):focus-visible {
  outline: 2px solid rgba(246,205,99,.9) !important;
  outline-offset: -2px !important;
  box-shadow: 0 0 22px rgba(226,182,66,.36) !important;
}

.forge-research-gate__exit-hotspot {
  left: 35.4%;
  top: 80.45%;
  width: 29.2%;
  height: 3.2%;
  cursor: pointer;
}

/* The artwork has no separate policy button. This preserves a policy link
   by making the center footer heading a clickable policy hotspot. */
.forge-research-gate__policy-link {
  left: 36.2%;
  top: 88.25%;
  width: 28%;
  height: 5.7%;
  overflow: hidden;
  color: transparent !important;
  font-size: 0 !important;
}

/* ---------- REGISTRATION / ACCOUNT APPLICATION ---------- */
.forge-registration-intro,
.forge-registration-fields,
.forge-account-approval-notice,
.forge-product-access-notice,
.forge-checkout-consent-box {
  box-sizing: border-box;
}

.forge-registration-intro {
  margin: 0 0 18px;
}

.forge-registration-intro h3,
.forge-registration-consents h4,
.forge-checkout-consent-box h3 {
  color: #e2b642 !important;
  font-weight: 800 !important;
  letter-spacing: .01em;
}

.forge-registration-intro p,
.forge-registration-fields small,
.forge-account-approval-notice,
.forge-product-access-notice,
.forge-checkout-consent-box p {
  color: #d7d7d7 !important;
}

.forge-policy-link-row a,
.forge-registration-consents a,
.forge-checkout-consent-box a,
.forge-product-access-notice a {
  color: #efc44f !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.forge-registration-fields input[type="text"],
.forge-registration-fields input[type="url"],
.forge-registration-fields input[type="email"],
.forge-registration-fields select,
.forge-registration-fields textarea {
  width: 100% !important;
  min-height: 48px;
  padding: 12px 14px !important;
  border: 1px solid rgba(226,182,66,.42) !important;
  border-radius: 7px !important;
  background: #080808 !important;
  color: #fff !important;
  box-shadow: none !important;
}

.forge-registration-fields textarea {
  min-height: 132px;
  resize: vertical;
}

.forge-registration-fields input:focus,
.forge-registration-fields select:focus,
.forge-registration-fields textarea:focus {
  outline: none !important;
  border-color: #efc44f !important;
  box-shadow: 0 0 0 2px rgba(239,196,79,.12) !important;
}

.forge-registration-fields label {
  color: #fff !important;
  font-weight: 650;
}

.forge-registration-fields .required {
  color: #efc44f !important;
}

.forge-registration-consents,
.forge-checkout-consent-box {
  margin-top: 20px;
  padding: 20px;
  border: 1px solid rgba(226,182,66,.42);
  border-radius: 10px;
  background: linear-gradient(180deg,#0e0e0e,#090909);
}

.forge-registration-consents label.checkbox,
.forge-checkout-consent-box label.checkbox {
  display: flex !important;
  align-items: flex-start;
  gap: 12px;
  margin: 14px 0 !important;
  color: #f4f4f4 !important;
  line-height: 1.55;
}

.forge-registration-consents input[type="checkbox"],
.forge-checkout-consent-box input[type="checkbox"] {
  flex: 0 0 auto;
  width: 18px !important;
  height: 18px !important;
  margin: 3px 0 0 !important;
  accent-color: #e2b642;
}

.forge-account-approval-notice,
.forge-product-access-notice {
  margin: 0 0 18px;
  padding: 14px 16px;
  border: 1px solid rgba(226,182,66,.42);
  border-left: 3px solid #e2b642;
  border-radius: 8px;
  background: #0b0b0b;
}

.forge-approved-account-button {
  border: 1px solid #e2b642 !important;
  background: #e2b642 !important;
  color: #070707 !important;
  font-weight: 800 !important;
}

/* Keep WooCommerce messages readable on the dark site. */
.woocommerce-info.forge-account-approval-notice::before {
  color: #e2b642 !important;
}

@media (max-width: 767px) {
  .forge-research-gate {
    align-items: flex-start;
  }

  .forge-research-gate__panel {
    min-height: 100svh;
  }

  .forge-research-gate__artboard {
    width: min(100vw, calc(100svh * 0.6666667));
    min-width: min(100vw, 320px);
  }

  .forge-registration-consents,
  .forge-checkout-consent-box {
    padding: 16px;
  }
}

/* ---------- PURCHASE ACCESS CLARITY ---------- */
.forge-purchase-requirement-card {
  display: grid;
  gap: 6px;
  margin: 0 0 22px;
  padding: 16px 18px;
  border: 1px solid rgba(226,182,66,.58);
  border-left: 4px solid #e2b642;
  border-radius: 9px;
  background: linear-gradient(180deg,#111,#090909);
  box-shadow: 0 12px 30px rgba(0,0,0,.22);
}

.forge-purchase-requirement-card strong {
  color: #efc44f !important;
  font-size: 1.02rem;
  font-weight: 900;
  letter-spacing: .02em;
}

.forge-purchase-requirement-card span {
  color: #e8e8e8 !important;
  line-height: 1.55;
}

.forge-home-purchase-requirement {
  position: fixed;
  left: 50%;
  bottom: 18px;
  z-index: 2147482000;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 18px;
  width: min(760px, calc(100vw - 32px));
  padding: 12px 14px 12px 18px;
  border: 1px solid rgba(226,182,66,.72);
  border-radius: 999px;
  background: rgba(5,5,5,.96);
  color: #fff;
  box-shadow: 0 16px 44px rgba(0,0,0,.58), 0 0 0 1px rgba(226,182,66,.08) inset;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.forge-home-purchase-requirement__text {
  display: grid;
  gap: 2px;
  min-width: 0;
  flex: 1 1 auto;
}

.forge-home-purchase-requirement__text strong {
  color: #f0c85f;
  font-size: 13px;
  line-height: 1.25;
  font-weight: 900;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.forge-home-purchase-requirement__text span {
  color: #d8d8d8;
  font-size: 12px;
  line-height: 1.35;
}

.forge-home-purchase-requirement__cta {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 17px;
  border: 1px solid #f0c85f;
  border-radius: 999px;
  background: linear-gradient(135deg,#f0c85f 0%,#d9ad45 58%,#b87a16 100%);
  color: #070707 !important;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .045em;
  text-decoration: none !important;
  text-transform: uppercase;
  white-space: nowrap;
}

.forge-home-purchase-requirement__cta:hover,
.forge-home-purchase-requirement__cta:focus-visible {
  filter: brightness(1.07);
  box-shadow: 0 8px 24px rgba(217,173,69,.25);
}

@media (max-width: 640px) {
  .forge-home-purchase-requirement {
    bottom: 10px;
    gap: 10px;
    width: calc(100vw - 20px);
    padding: 11px 11px 11px 14px;
    border-radius: 14px;
  }

  .forge-home-purchase-requirement__text strong {
    font-size: 11px;
  }

  .forge-home-purchase-requirement__text span {
    font-size: 10px;
  }

  .forge-home-purchase-requirement__cta {
    min-height: 36px;
    padding: 0 12px;
    font-size: 9px;
  }
}

