/* ==========================================================================
   Crypticorn — commerce.css
   Loaded only on checkout, receipts, downloads and account screens.
   ========================================================================== */

.edd-page { padding-block: var(--sp-12); }

/* ==========================================================================
   Checkout — Crypticorn skin for EDD Blocks
   ========================================================================== */

.page--checkout #edd_checkout_form_wrap.wp-block-edd-checkout {
  display: grid;
  gap: var(--sp-6);
  width: 100%;
  max-width: min(1000px, 100%);
  margin-inline: auto;
  padding: 0;
}

.crypticorn-checkout-page-header {
  text-align: center;
  margin-bottom: var(--sp-2);
}

.crypticorn-checkout-page-header h1 {
  margin: 0 0 var(--sp-3);
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  font-weight: var(--fw-bold);
  letter-spacing: -0.02em;
  color: var(--c-ink-900);
}

.crypticorn-checkout-page-header p {
  margin: 0;
  font-size: 1.05rem;
  color: var(--c-ink-500);
}

.page--checkout .edd-blocks__logged-in {
  margin: 0;
  padding: var(--sp-4) var(--sp-5);
  border-radius: var(--r-lg);
  border: 1px solid #dbe4f2;
  background: #fff;
  box-shadow: var(--sh-card);
  color: var(--c-ink-700);
  font-size: var(--fs-sm);
}

.page--checkout .edd-blocks__logged-in strong {
  color: var(--c-brand-600);
}

.page--checkout .edd-blocks__logged-in a {
  color: var(--c-brand-600);
  font-weight: var(--fw-medium);
}

/* Card surfaces ----------------------------------------------------------- */

.page--checkout .edd-blocks-form__cart,
.page--checkout #edd_sl_renewal_form {
  border: 1px solid #e6e9f0;
  border-radius: 20px;
  background: var(--c-surface);
  box-shadow: var(--sh-card);
}

.page--checkout .edd-blocks-form__cart {
  padding: 0;
  overflow: hidden;
}

.page--checkout #edd_purchase_form.edd-blocks-form__purchase {
  display: grid;
  gap: var(--sp-6);
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.page--checkout #edd_purchase_form fieldset.edd-blocks-form,
.page--checkout #edd_purchase_form #edd_payment_mode_select,
.page--checkout #edd_purchase_form #edd_terms_agreement,
.page--checkout #edd_purchase_form #edd-privacy-policy-agreement,
.page--checkout #edd_purchase_form #edd_cc_fields {
  border: 1px solid #e6e9f0;
  border-radius: 20px;
  background: var(--c-surface);
  box-shadow: var(--sh-card);
}

.page--checkout #edd_sl_renewal_form {
  padding: var(--sp-6);
}

.page--checkout #edd_purchase_form fieldset.edd-blocks-form,
.page--checkout #edd_purchase_form #edd_payment_mode_select,
.page--checkout #edd_purchase_form #edd_cc_fields {
  display: grid;
  gap: var(--sp-5);
  padding: var(--sp-6);
  margin: 0;
}

.page--checkout .edd-blocks__user-details,
.page--checkout .edd-blocks__payment-details,
.page--checkout #edd_purchase_form_wrap {
  display: grid;
  gap: var(--sp-6);
}
.page--checkout #edd_purchase_form fieldset.edd-blocks-form legend,
.page--checkout #edd_purchase_form #edd_payment_mode_select legend,
.page--checkout #edd_purchase_form #edd_cc_fields legend,
.page--checkout .edd-blocks-form legend {
  padding: 0;
  margin-bottom: var(--sp-4);
  border: 0;
  font-size: 1.15rem;
  font-weight: var(--fw-semibold);
  color: var(--c-ink-900);
}

/* Cart -------------------------------------------------------------------- */

.page--checkout #edd_checkout_cart.edd-blocks-cart {
  display: grid;
  border: 0;
  margin: 0;
}

.page--checkout .edd-blocks-cart__row-header {
  display: flex;
  border-bottom: 1px solid #e6e9f0;
  background: #f8fafc;
}

.page--checkout .edd-blocks-cart__row-header .edd_cart_item_name,
.page--checkout .edd-blocks-cart__row-header .edd_cart_item_price {
  flex: 1;
  margin: 0;
  padding: var(--sp-4) var(--sp-6);
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--c-ink-500);
}

.page--checkout .edd-blocks-cart__row-header .edd_cart_item_price {
  flex: 0 0 180px;
  text-align: right;
}

.page--checkout .edd-blocks-cart__row-item {
  display: flex;
  align-items: stretch;
  border-bottom: 1px solid #eef1f5;
}

.page--checkout .edd-blocks-cart__row-item:last-child {
  border-bottom: 0;
}

.page--checkout .edd-blocks-cart__row-item .edd_cart_item_name,
.page--checkout .edd-blocks-cart__row-item .edd_cart_item_price {
  padding: var(--sp-6);
}

.page--checkout .edd-blocks-cart__row-item .edd_cart_item_name {
  flex: 1;
}

.page--checkout .edd-blocks-cart__row-item .edd_cart_item_price {
  flex: 0 0 180px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--sp-3);
  font-size: 1.35rem;
  font-weight: var(--fw-bold);
  color: var(--c-brand-600);
}

.page--checkout .edd_checkout_cart_item_title {
  display: block;
  margin-bottom: var(--sp-2);
  font-size: 1.15rem;
  font-weight: var(--fw-semibold);
  color: var(--c-ink-900);
  line-height: 1.35;
}

.page--checkout .edd-sl-details.edd-sl-details-cart {
  display: block;
  margin-top: var(--sp-3);
  padding: var(--sp-3) var(--sp-4);
  border-left: 3px solid var(--c-brand-600);
  border-radius: var(--r-md);
  background: #f1f6fd;
}

.page--checkout .edd-sl-details .edd-sl-label {
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--c-brand-600);
}

.page--checkout .edd-sl-details .edd-sl-key {
  margin-left: var(--sp-2);
  color: var(--c-ink-800);
}

.page--checkout .eddr-notice.eddr-cart-item-notice {
  margin-top: var(--sp-3);
  padding: var(--sp-3) var(--sp-4);
  border-left: 3px solid #f59e0b;
  border-radius: var(--r-md);
  background: #fffbeb;
  color: #92400e;
  font-size: var(--fs-sm);
  font-style: normal;
}

.page--checkout .edd-blocks-cart__action-remove.edd_cart_remove_item_btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: var(--sp-2);
  border: 0;
  border-radius: var(--r-sm);
  background: transparent;
  color: var(--c-ink-500);
  text-decoration: none;
  transition: color var(--dur) var(--ease-out), background-color var(--dur) var(--ease-out);
}

.page--checkout .edd-blocks-cart__action-remove.edd_cart_remove_item_btn:hover {
  color: #dc2626;
  background: #fef2f2;
}

.page--checkout .edd-blocks-cart__row-footer,
.page--checkout .edd-blocks-cart__row-buttons {
  padding: var(--sp-5) var(--sp-6);
  border-top: 1px solid #eef1f5;
}

.page--checkout .edd_cart_total {
  text-align: right;
  font-size: 1.2rem;
  font-weight: var(--fw-semibold);
  color: var(--c-ink-900);
}

.page--checkout .edd_cart_amount {
  margin-left: var(--sp-3);
  font-size: 1.5rem;
  font-weight: var(--fw-bold);
  color: var(--c-brand-600);
}

.page--checkout .edd-blocks-cart__discount {
  padding: 0 var(--sp-6) var(--sp-5);
}

.page--checkout #edd_show_discount .edd-button-secondary,
.page--checkout .edd-button-secondary {
  padding: 10px 18px;
  border: 1px solid #d7dee8;
  border-radius: var(--r-pill);
  background: #f8fafc;
  color: var(--c-ink-800);
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  cursor: pointer;
  transition: border-color var(--dur) var(--ease-out), background-color var(--dur) var(--ease-out);
}

.page--checkout #edd_show_discount .edd-button-secondary:hover,
.page--checkout .edd-button-secondary:hover {
  border-color: var(--c-brand-300);
  background: #f1f6fd;
}

.page--checkout .edd-discount-code-field-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-3);
  align-items: center;
}

.page--checkout .edd-discount-code-field-wrap input.edd-input {
  flex: 1 1 220px;
}

.page--checkout .edd-apply-discount.edd-submit {
  width: auto;
}

/* Personal info + fields -------------------------------------------------- */

.page--checkout .edd-blocks__checkout-user {
  position: relative;
  margin-bottom: 0;
}

.page--checkout .edd-blocks__checkout-forms {
  position: absolute;
  top: var(--sp-6);
  right: var(--sp-6);
  z-index: 2;
  display: flex;
  gap: var(--sp-2);
  margin: 0;
}

.page--checkout .edd-blocks__checkout-forms button {
  padding: 8px 16px;
  border: 1px solid #d7dee8;
  border-radius: var(--r-pill);
  background: #fff;
  color: var(--c-ink-800);
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  cursor: pointer;
}

.page--checkout .edd-blocks__checkout-forms button:not(:disabled):hover {
  border-color: var(--c-brand-300);
  color: var(--c-brand-600);
}

.page--checkout .edd-blocks-form__group > label {
  display: block;
  margin-bottom: var(--sp-2);
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  color: var(--c-ink-800);
}

.page--checkout .edd-blocks-form .edd-input,
.page--checkout .edd-blocks-form input[type="text"],
.page--checkout .edd-blocks-form input[type="email"],
.page--checkout .edd-blocks-form input[type="password"],
.page--checkout .edd-blocks-form input[type="tel"],
.page--checkout .edd-blocks-form select,
.page--checkout #edd_checkout_form_wrap input[type="text"],
.page--checkout #edd_checkout_form_wrap input[type="email"],
.page--checkout #edd_checkout_form_wrap input[type="password"],
.page--checkout #edd_checkout_form_wrap select {
  box-sizing: border-box;
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #d7dee8;
  border-radius: 12px;
  background: #fff;
  color: var(--c-ink-900);
  font-size: 1rem;
  line-height: 1.4;
  transition: border-color var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);
}

.page--checkout .edd-blocks-form .edd-input:focus-visible,
.page--checkout .edd-blocks-form input:focus-visible,
.page--checkout .edd-blocks-form select:focus-visible,
.page--checkout #edd_checkout_form_wrap input:focus-visible,
.page--checkout #edd_checkout_form_wrap select:focus-visible {
  border-color: var(--c-brand-600);
  outline: none;
  box-shadow: 0 0 0 3px rgba(0, 59, 206, 0.12);
}

.page--checkout .edd-description {
  margin: var(--sp-2) 0 0;
  font-size: var(--fs-sm);
  color: var(--c-ink-500);
  line-height: 1.45;
}

.page--checkout .edd-blocks-form__halves {
  display: grid;
  gap: var(--sp-4);
}

@media (min-width: 640px) {
  .page--checkout .edd-blocks-form__halves {
    grid-template-columns: 1fr 1fr;
  }
}

/* Payment methods --------------------------------------------------------- */

.page--checkout #edd_payment_mode_select {
  padding: var(--sp-6);
  border: 0;
}

.page--checkout #edd-payment-mode-wrap {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--sp-3);
}

.page--checkout #edd-payment-mode-wrap label.edd-gateway-option {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-3);
  min-height: 56px;
  margin: 0;
  padding: var(--sp-4) var(--sp-5);
  border: 1px solid #d7dee8;
  border-radius: 14px;
  background: #fff;
  color: var(--c-ink-800);
  font-size: 0.95rem;
  font-weight: var(--fw-medium);
  text-align: center;
  cursor: pointer;
  transition: border-color var(--dur) var(--ease-out), background-color var(--dur) var(--ease-out), box-shadow var(--dur) var(--ease-out);
}

.page--checkout #edd-payment-mode-wrap label.edd-gateway-option:hover {
  border-color: var(--c-brand-300);
  background: #f8fbff;
}

.page--checkout #edd-payment-mode-wrap label.edd-gateway-option-selected {
  border-color: var(--c-brand-600);
  background: #f1f6fd;
  box-shadow: 0 0 0 1px rgba(0, 59, 206, 0.08);
}

.page--checkout #edd-payment-mode-wrap .edd-payment-icons {
  gap: var(--sp-2);
}

.page--checkout #edd-payment-mode-wrap .payment-icon {
  max-height: 18px;
}

/* Stripe + security ------------------------------------------------------- */

.page--checkout #edd_cc_fields {
  padding: 0;
  border: 0;
  margin: 0;
}

.page--checkout #edd-card-wrap,
.page--checkout .edd-stripe-new-card {
  padding: var(--sp-4);
  border: 1px solid #d7dee8;
  border-radius: 14px;
  background: #f8fafc;
}

.page--checkout #edd-card-wrap:focus-within {
  border-color: var(--c-brand-600);
  box-shadow: 0 0 0 3px rgba(0, 59, 206, 0.12);
}

.page--checkout #edd_secure_site_wrapper {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-4);
  border: 1px solid #bbf7d0;
  border-radius: 14px;
  background: #f0fdf4;
}

.page--checkout #edd_secure_site_wrapper span:last-child {
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  color: #166534;
}

/* Terms + purchase -------------------------------------------------------- */

.page--checkout #edd_terms_agreement,
.page--checkout #edd-privacy-policy-agreement {
  padding: var(--sp-4) var(--sp-5);
  border: 1px solid #e6e9f0;
  border-radius: 14px;
  background: #f8fafc;
}

.page--checkout .edd-terms-agreement,
.page--checkout .edd-privacy-policy-agreement {
  display: flex;
  gap: var(--sp-3);
  align-items: flex-start;
}

.page--checkout .edd-terms-agreement input[type="checkbox"],
.page--checkout .edd-privacy-policy-agreement input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  accent-color: var(--c-brand-600);
}

.page--checkout .edd-terms-agreement label,
.page--checkout .edd-privacy-policy-agreement label {
  margin: 0;
  font-size: var(--fs-sm);
  line-height: 1.5;
  color: var(--c-ink-800);
  cursor: pointer;
}

.page--checkout .edd-show-terms a.edd_terms_links {
  color: var(--c-brand-600);
  font-weight: var(--fw-semibold);
  text-decoration: none;
}

.page--checkout .edd-show-terms a.edd_terms_links:hover {
  text-decoration: underline;
}

.page--checkout #edd_sl_show_renewal_form.button.blue,
.page--checkout .edd-submit,
.page--checkout #edd-purchase-button,
.page--checkout input[type="submit"].edd-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 16px 28px;
  border: 0;
  border-radius: var(--r-pill);
  background: var(--c-brand-600);
  color: #fff;
  font-size: 1rem;
  font-weight: var(--fw-semibold);
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: background-color var(--dur) var(--ease-out), transform var(--dur) var(--ease-out);
}

.page--checkout #edd_sl_show_renewal_form.button.blue:hover,
.page--checkout .edd-submit:hover:not([disabled]),
.page--checkout #edd-purchase-button:hover:not([disabled]) {
  background: var(--c-brand-700);
  color: #fff;
  transform: translateY(-1px);
}

.page--checkout #edd-purchase-button[disabled],
.page--checkout .edd-submit[disabled] {
  background: #9ca3af;
  cursor: not-allowed;
  transform: none;
}

.page--checkout .edd_errors,
.page--checkout .edd_error,
.page--checkout .edd-alert-error {
  padding: var(--sp-4) var(--sp-5);
  border-radius: var(--r-md);
  border-left: 3px solid var(--c-danger);
  background: #fff5f4;
  color: #8a1b10;
}

.page--checkout .edd_success,
.page--checkout .edd-alert-success {
  padding: var(--sp-4) var(--sp-5);
  border-radius: var(--r-md);
  border-left: 3px solid var(--c-success);
  background: var(--c-success-bg);
  color: var(--c-success-fg);
}

.crypticorn-aurpay-notice {
  margin-top: var(--sp-4);
  padding: var(--sp-4) var(--sp-5);
  border-radius: var(--r-md);
  border: 1px solid #c7d9f5;
  border-left: 3px solid var(--c-brand-600);
  background: #f1f6fd;
  color: var(--c-ink-800);
}

.crypticorn-aurpay-notice p {
  margin: 0;
  font-size: var(--fs-sm);
  line-height: 1.5;
}

.crypticorn-aurpay-notice[hidden] {
  display: none;
}

@media (max-width: 767px) {
  .page--checkout .edd-blocks-cart__row-item,
  .page--checkout .edd-blocks-cart__row-header {
    flex-direction: column;
  }

  .page--checkout .edd-blocks-cart__row-item .edd_cart_item_price,
  .page--checkout .edd-blocks-cart__row-header .edd_cart_item_price {
    flex: none;
    width: 100%;
    justify-content: space-between;
    border-top: 1px solid #eef1f5;
  }

  .page--checkout .edd-blocks__checkout-forms {
    position: static;
    justify-content: flex-end;
    margin-bottom: var(--sp-3);
  }

  .page--checkout .edd-blocks-form {
    padding: var(--sp-5);
  }
}

/* Legacy table cart (non-block fallback) ---------------------------------- */

#edd_checkout_wrap { max-width: var(--w-content); margin-inline: auto; }

#edd_checkout_cart {
  width: 100%;
  margin-bottom: var(--sp-8);
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: var(--sh-card);
}

#edd_checkout_cart th,
#edd_checkout_cart td { padding: var(--sp-4) var(--sp-5); text-align: left; }

#edd_checkout_cart thead th {
  background: var(--c-tint);
  font-size: var(--fs-xs);
  letter-spacing: var(--ls-wide);
  text-transform: uppercase;
  color: var(--c-ink-500);
}

#edd_checkout_cart .edd_cart_item_name { font-weight: var(--fw-medium); color: var(--c-ink-800); }
#edd_checkout_cart tfoot .edd_cart_amount { font-size: 1.25rem; color: var(--c-ink-900); }

#edd_checkout_form_wrap fieldset {
  margin-bottom: var(--sp-8);
  padding: var(--sp-6);
  border: var(--bd-hairline);
  border-radius: var(--r-lg);
}

#edd_checkout_form_wrap legend {
  padding-inline: var(--sp-2);
  font-size: var(--fs-h4);
  font-weight: var(--fw-semibold);
  color: var(--c-ink-800);
}

#edd_checkout_form_wrap label { display: block; margin-bottom: var(--sp-2); font-size: var(--fs-sm); font-weight: var(--fw-medium); }

#edd_checkout_form_wrap input[type="text"],
#edd_checkout_form_wrap input[type="email"],
#edd_checkout_form_wrap input[type="password"],
#edd_checkout_form_wrap select {
  width: 100%;
  padding: var(--sp-3) var(--sp-4);
  border: var(--bd-neutral);
  border-radius: var(--r-sm);
  background: var(--c-surface);
}
#edd_checkout_form_wrap input:focus-visible,
#edd_checkout_form_wrap select:focus-visible { border-color: var(--c-brand-600); outline: var(--focus-ring); }

.edd-submit,
#edd-purchase-button,
input[type="submit"].edd-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 15px 30px;
  border: 0;
  border-radius: var(--r-pill);
  background: var(--c-brand-600);
  color: #fff;
  font-weight: var(--fw-medium);
  cursor: pointer;
  transition: background-color var(--dur) var(--ease-out);
}
.edd-submit:hover, #edd-purchase-button:hover { background: var(--c-brand-700); color: #fff; }

.edd_errors, .edd_error {
  padding: var(--sp-4) var(--sp-5);
  border-radius: var(--r-md);
  border-left: 3px solid var(--c-danger);
  background: #fff5f4;
  color: #8a1b10;
}

.edd_success {
  padding: var(--sp-4) var(--sp-5);
  border-radius: var(--r-md);
  border-left: 3px solid var(--c-success);
  background: var(--c-success-bg);
  color: var(--c-success-fg);
}

/* Downloads / product cards ----------------------------------------------- */

.edd_download { padding: var(--sp-8); background: var(--c-surface); border-radius: var(--r-2xl); box-shadow: var(--sh-float); }

.edd_downloads_list { display: grid; gap: var(--gutter-lg); grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }

/* Purchase history & account ---------------------------------------------- */

#edd_user_history,
.edd-table {
  width: 100%;
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: var(--sh-card);
}
#edd_user_history th, #edd_user_history td { padding: var(--sp-4); text-align: left; }
#edd_user_history thead th { background: var(--c-tint); font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: var(--ls-wide); }

@media (max-width: 767px) {
  #edd_checkout_cart, #edd_user_history { display: block; overflow-x: auto; }
}

/*
 * Easy Digital Downloads product grid.
 *
 * The block ships fixed 720px tracks, so two columns plus their gap total 1472px and force a
 * horizontal scrollbar on any viewport narrower than that. It also renders outside the theme's
 * container, unlike the page title directly above it, so the grid ran edge to edge while the
 * heading was inset.
 */
.edd-blocks__downloads {
  width: 100%;
  /* Production runs this grid at the section width (1260px at 1440), not the narrower shell.
     --w-section is 1418px, which after the 90px inline padding left 1238px of content and pushed
     every card's copy 11px in from production's. Production's own wrapper is the full-width
     .container.main-content, so sizing the cap to content + padding lands on 1260 exactly. */
  max-width: calc(1260px + 2 * var(--section-pad));
  margin-inline: auto;
  padding-inline: var(--section-pad);
  padding-block: 100px;
  grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr));
  gap: 32px;
}
/* Below 600 production stops padding this wrapper and gives it a 6% side margin instead -- 23.4px
   at 390, against the theme's flat 35px, which made each card 320px wide where production paints
   343px. */
@media (max-width: 599px) {
  .edd-blocks__downloads { padding-inline: 6%; }
}

/*
 * Each product sits in a white card on production. The block ships them bare, so the archive read
 * as six runs of unstyled text on white with underlined titles.
 */
/* Outranks the block's own `.edd-blocks__columns .edd-blocks__download { padding: 1rem }`. */
.edd-blocks__downloads article.edd-blocks__download {
  padding: 30px;
  border-radius: 40px;
  background: var(--c-surface);
  box-shadow: rgba(0, 0, 0, .1) -2px 5px 40px -5px;
}

/*
 * Production leaves the archive's purchase button at the plugin's own compact size — a 27px pill,
 * not the 53px call-to-action the theme's button styling gave it.
 */
.edd-blocks__download .edd-submit.button {
  /*
   * Production leaves the browser's default button border in place — `2px outset` — which is 4px
   * of the card's height and the reason each card sat 26px short. Stated explicitly rather than
   * relying on the UA default so it does not vary by engine.
   */
  border: 2px outset rgb(0, 0, 0);
  padding: 1px 6px;
  font-size: 1rem;
  font-weight: var(--fw-regular);
  /* Production's button is 27px tall — 16px on 20.8px leading, not the browser's `normal`. */
  line-height: 1.3;
}

/* The archive price is a 14px ink label on production, not body-sized grey. */
.edd-blocks__download .edd_price {
  font-size: var(--fs-sm);
  color: var(--c-ink-850);
}

/* Production's product titles are plain brand-blue headings, not underlined links. */
.edd-blocks__download-header a {
  text-decoration: none;
  color: var(--c-brand-600);
}
.edd-blocks__download-header a:hover,
.edd-blocks__download-header a:focus-visible { text-decoration: underline; }

.edd_pagination {
  width: 100%;
  max-width: var(--w-shell);
  margin-inline: auto;
  padding-inline: var(--container-pad);
}

/*
 * product card rhythm.
 *
 * Production spaces the card with `padding-bottom: 24px` on the excerpt rather than a margin above
 * the price — the same pattern the ported legal pages use. Without it each card came up ~57px
 * short and the price sat directly under the description.
 */
.edd-blocks__download .edd-blocks__download-content p:last-of-type,
/* The recurring-billing notice under the button carries the same 24px on production. */
.edd-blocks__download .eddr-notice {
  padding-bottom: 24px;
}

/*
 * account screen backdrop.
 *
 * Account and checkout screens sit on a tinted page wash (rgb(244,246,252), close to --c-tint-2).
 * Content cards (login form, dashboard tiles, order tables) keep their own white surfaces; the
 * page shell must not read as a separate white panel behind them.
 */
body:is(.page--my-account, .page--checkout, .page--account-dashboard, .page--order-history,
        .page--edit-profile, .page--subscriptions, .page--confirmation, .page--receipt,
        .page--transaction-failed) {
  background: rgb(244, 246, 252);
}

body:is(.page--my-account, .page--checkout, .page--account-dashboard, .page--order-history,
        .page--edit-profile, .page--subscriptions, .page--confirmation, .page--receipt,
        .page--transaction-failed) .site-main {
  background: rgb(244, 246, 252);
}

body:is(.page--my-account, .page--checkout, .page--account-dashboard, .page--order-history,
        .page--edit-profile, .page--subscriptions, .page--confirmation, .page--receipt,
        .page--transaction-failed) .page-entry {
  width: 100%;
  max-width: 1260px;
  margin-inline: auto;
  padding-inline: var(--section-pad);
  background: transparent;
  box-sizing: border-box;
}

/* Production sets the price row on 26px leading, which is 5px of the card's height. */
.edd-blocks__download .edd-blocks__download-price { line-height: 26px; }

/*
 * account panel gutters on mobile.
 *
 * Production insets the panel by 47px a side at 390px, giving the login container 296px — enough
 * for "Log into Your Account" to sit on one line. The section gutter left only 250px here, so the
 * heading wrapped and the card sat narrower than production's.
 */
@media (max-width: 767px) {
  body:is(.page--my-account, .page--checkout, .page--account-dashboard, .page--order-history,
          .page--edit-profile, .page--subscriptions, .page--confirmation, .page--receipt,
          .page--transaction-failed) .page-entry {
    /*
     * 12px puts the login container at 296px starting at x=47 — production's exact card, container
     * and heading geometry on a 390px screen.
     *
     * Production also insets its content area 24px so the tint shows at the edges. Reproducing that
     * here costs the match: a wrapper inside `.page-entry` adds a fixed 35px, so a 24px margin
     * leaves the container at 226px and the heading wraps. The card matching exactly is worth more
     * than a 24px strip of background, so the shell stays full-bleed on mobile.
     */
    padding-inline: 12px;
  }
}

/*
 * account panel vertical padding.
 *
 * The login card itself matches production (485px desktop, 445px mobile), but the panel around it
 * was short of breathing room: measuring header-to-card and card-to-footer gives production 144/270
 * on desktop against 155/190 here, and 152/254 on mobile against 74/173. So the shortfall is 80px
 * below the card on desktop, and 78 above plus 81 below on phones.
 */
body:is(.page--my-account, .page--checkout, .page--account-dashboard, .page--order-history,
        .page--edit-profile, .page--subscriptions, .page--confirmation, .page--receipt,
        .page--transaction-failed) .page-entry { padding-block: 0 80px; }

@media (max-width: 767px) {
  body:is(.page--my-account, .page--checkout, .page--account-dashboard, .page--order-history,
        .page--edit-profile, .page--subscriptions, .page--confirmation, .page--receipt,
        .page--transaction-failed) .page-entry { padding-block: 78px 81px; }
}

/*
 * Production gives the two EDD pages 40px of breathing room above the content, on the
 * .container-wrap that surrounds them -- measured 40px on /products/ and /checkout/ and 0 on every
 * other page, so it is specific to these. Without it the product grid started at y=91 against
 * production's 131, and that 40px carried all the way down the page: every row, the pagination and
 * the footer sat 36-40px high, which was the whole of /products/'s 0.974 height ratio.
 */
body:is(.page--products, .page--checkout) .page-entry { padding-top: 40px; }

/* ==========================================================================
   EDD Recurring — payment method update page (/subscription/update/<token>)
   Recurring prints a bare heading, one paragraph, the Stripe element and a
   submit input. Dress it as one of the account cards.
   ========================================================================== */

body.page--subscription-update,
body.page--subscription-update .site-main { background: rgb(244, 246, 252); }

.edd-recurring__update--page {
  width: 100%;
  max-width: 560px;
  margin: 0 auto;
  padding: clamp(2.5rem, 6vw, 5rem) var(--section-pad, 35px);
  font-family: var(--font-sans);
}

.edd-recurring__update--header { text-align: center; margin-bottom: var(--sp-6); }
.edd-recurring__update--header h1 {
  margin: 0;
  font-size: clamp(1.5rem, 1.2rem + 1vw, 1.9rem);
  font-weight: var(--fw-bold);
  letter-spacing: -0.02em;
  color: var(--c-brand-600);
}

.edd-recurring__update--content {
  padding: var(--sp-8);
  border: 1px solid #e6e9f0;
  border-radius: 20px;
  background: var(--c-surface);
  box-shadow: var(--sh-card);
}
.edd-recurring__update--content > p { margin: 0 0 var(--sp-5); font-size: var(--fs-sm); line-height: 1.5; color: var(--c-ink-500); }
.edd-recurring__update--content p:last-child { margin-bottom: 0; }
.edd-recurring__update--content .edd-alert { margin: 0 0 var(--sp-4); padding: var(--sp-3) var(--sp-4); border-radius: var(--r-md); font-size: var(--fs-sm); }
.edd-recurring__update--content .edd-alert-error { border-left: 3px solid var(--c-danger); background: #fff5f4; color: #8a1b10; }
.edd-recurring__update--content .edd-alert-success { border-left: 3px solid var(--c-success); background: var(--c-success-bg); color: var(--c-success-fg); }

#edd-recurring-form { display: grid; gap: var(--sp-5); }
#edd-recurring-stripe-payment-element { min-height: 4rem; }
#edd-recurring-stripe-payment-error[style*="display: none"] { display: none; }

#edd-recurring-form input[type="submit"],
#edd-recurring-update-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 15px 28px;
  border: 0;
  border-radius: var(--r-pill);
  background: var(--c-brand-600);
  color: #fff;
  font: inherit;
  font-size: 1rem;
  font-weight: var(--fw-semibold);
  cursor: pointer;
  transition: background-color var(--dur) var(--ease-out);
}
#edd-recurring-update-submit:hover:not([disabled]) { background: var(--c-brand-700); }
#edd-recurring-update-submit[disabled] { opacity: .6; cursor: not-allowed; }

.edd-recurring__update--content a { color: var(--c-brand-600); }

@media (max-width: 767px) {
  .edd-recurring__update--content { padding: var(--sp-5); }
}
