/*
 * Peptide Partners WordPress Continuity 0.4.0: My Account redesign.
 *
 * Presentation only, for the Woo-owned login, registration, dashboard and
 * account endpoints. Every selector starts at body.ppv2-account-surface, which
 * this plugin adds only on account pages. Forms, nonces, Turnstile, endpoints
 * and redirects stay owned by WooCommerce and the installed plugins.
 *
 * The live account page renders Woo inside the Elementor Pro My Account
 * widget, whose kit rules carry high specificity (.elementor-10
 * .elementor-element-c95695a ...). The !important flags below are scoped to
 * this surface and exist to outrank those rules, not to win everywhere.
 *
 * CloudFront does not vary plugin assets by query string, so this file keeps
 * its version in the name.
 */

body.ppv2-account-surface {
  --pp-account-card-radius: 2rem;
  --pp-account-card-border: var(--pp-color-border-strong);
  --pp-account-card-shadow: 0 28px 60px -36px rgb(59 28 93 / 58%);
  --pp-account-field-radius: 0.875rem;
  --pp-account-field-bg: var(--pp-color-background);
  --pp-icon-dashboard: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1'/%3E%3C/svg%3E");
  --pp-icon-orders: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16.5 9.4 7.55 4.24'/%3E%3Cpath d='M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z'/%3E%3Cpath d='M3.27 6.96 12 12.01l8.73-5.05'/%3E%3Cpath d='M12 22.08V12'/%3E%3C/svg%3E");
  --pp-icon-downloads: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3Cpath d='M12 15V3'/%3E%3C/svg%3E");
  --pp-icon-address: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
  --pp-icon-payment: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='14' x='2' y='5' rx='2'/%3E%3Cpath d='M2 10h20'/%3E%3C/svg%3E");
  --pp-icon-account: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
  --pp-icon-logout: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/%3E%3Cpath d='m16 17 5-5-5-5'/%3E%3Cpath d='M21 12H9'/%3E%3C/svg%3E");
  --pp-icon-research: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 2v7.527a2 2 0 0 1-.211.896L4.72 20.55a1 1 0 0 0 .9 1.45h12.76a1 1 0 0 0 .9-1.45l-5.069-10.127A2 2 0 0 1 14 9.527V2'/%3E%3Cpath d='M8.5 2h7'/%3E%3Cpath d='M7 16h10'/%3E%3C/svg%3E");
  --pp-icon-affiliate: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E");
  --pp-icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E");
  --pp-icon-success: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
  --pp-icon-error: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4'/%3E%3Cpath d='M12 16h.01'/%3E%3C/svg%3E");
  --pp-icon-info: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4'/%3E%3Cpath d='M12 8h.01'/%3E%3C/svg%3E");
  --pp-icon-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E");
}

/* Elementor Pro My Account widget variables, re-pointed at the Next tokens. */
body.ppv2-account-surface .elementor-element.elementor-widget-woocommerce-my-account {
  --tabs-padding: 0.65rem 0.85rem;
  --tabs-spacing: 0.2rem;
  --tabs-border-radius: 0.875rem;
  --tab-content-spacing: 0;
  --sections-background-color: transparent;
  --sections-border-type: none;
  --sections-padding: 0;
  --sections-border-radius: 0;
  --forms-rows-gap: 1rem;
  --forms-label-spacing: 0.45rem;
  --forms-fields-border-radius: var(--pp-account-field-radius);
  --forms-fields-padding: 0.75rem 0.95rem;
  --forms-buttons-border-radius: var(--pp-radius-pill);
  --forms-buttons-padding: 0 1.75rem;
  --typography-section-titles-color: var(--pp-color-foreground);
  --general-text-color: var(--pp-color-text-soft);
  --login-messages-color: var(--pp-color-text-muted);
  --links-normal-color: var(--pp-color-primary);
  --links-hover-color: var(--pp-color-primary-deep);
  --forms-labels-color: var(--pp-color-foreground);
  --forms-fields-normal-color: var(--pp-color-foreground);
  --forms-fields-focus-color: var(--pp-color-foreground);
  --checkboxes-color: var(--pp-color-text-soft);
  color: var(--pp-color-text-soft) !important;
}

/* Elementor wraps endpoint content in a second bordered box; keep one card. */
body.ppv2-account-surface .woocommerce-MyAccount-content-wrapper {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  padding: 0 !important;
}

/* Shared kicker, matching the Next .section-kicker. */
body.ppv2-account-surface #customer_login > :where(.u-column1, .u-column2) > h2::before {
  display: block;
  margin-bottom: 0.65rem;
  color: var(--pp-color-primary);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.24em;
  line-height: 1.2;
  text-transform: uppercase;
}

body.ppv2-account-surface #customer_login > .u-column1 > h2::before {
  content: "Returning customer";
  content: "Returning customer" / "";
}

body.ppv2-account-surface #customer_login > .u-column2 > h2::before {
  content: "New customer";
  content: "New customer" / "";
}

/* Login and registration cards. */
body.ppv2-account-surface #customer_login {
  gap: clamp(1.25rem, 3vw, 2rem) !important;
  align-items: start;
}

body.ppv2-account-surface #customer_login > :where(.u-column1, .u-column2),
body.ppv2-account-surface
  .woocommerce
  > :where(form.woocommerce-ResetPassword, form.woocommerce-form-login, form.woocommerce-form-register) {
  border: 1px solid var(--pp-account-card-border) !important;
  border-radius: var(--pp-account-card-radius) !important;
  background: var(--pp-color-surface) !important;
  padding: clamp(1.5rem, 3.5vw, 2.5rem) !important;
  box-shadow: var(--pp-account-card-shadow) !important;
}

body.ppv2-account-surface #customer_login > :where(.u-column1, .u-column2) > h2 {
  margin: 0 0 1.5rem !important;
  color: var(--pp-color-foreground) !important;
  font-size: clamp(1.625rem, 2.6vw, 2rem) !important;
  font-weight: 650 !important;
  letter-spacing: -0.035em !important;
  line-height: 1.1 !important;
}

body.ppv2-account-surface
  #customer_login
  > :where(.u-column1, .u-column2)
  > form {
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
  box-shadow: none !important;
}

/* Field rows, labels and helper copy. */
body.ppv2-account-surface :where(.woocommerce, .pp-rp-gate) .form-row {
  margin: 0 0 1.1rem !important;
  padding: 0 !important;
}

body.ppv2-account-surface .woocommerce :where(.form-row, .woocommerce-form-row) > label,
body.ppv2-account-surface .woocommerce .woocommerce-address-fields label,
body.ppv2-account-surface .woocommerce fieldset > label {
  display: block !important;
  margin: 0 0 0.45rem !important;
  color: var(--pp-color-foreground) !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  line-height: 1.35 !important;
}

body.ppv2-account-surface .woocommerce .required {
  border: 0 !important;
  color: var(--pp-color-primary) !important;
  text-decoration: none !important;
}

body.ppv2-account-surface .woocommerce :where(.form-row, .woocommerce-form-row) em,
body.ppv2-account-surface .woocommerce #account_display_name_description,
body.ppv2-account-surface .woocommerce form.register > p:not([class]) {
  display: block;
  margin-top: 0.4rem;
  color: var(--pp-color-text-muted) !important;
  font-size: 0.8125rem !important;
  font-style: normal !important;
  line-height: 1.5 !important;
}

/* Inputs and selects, including Elementor's #f9fafa borderless fields. */
body.ppv2-account-surface
  .woocommerce
  :is(
    input[type="text"],
    input[type="email"],
    input[type="password"],
    input[type="tel"],
    input[type="number"],
    input[type="url"],
    input[type="search"],
    select,
    textarea
  ):not(.select2-search__field) {
  box-sizing: border-box !important;
  width: 100% !important;
  min-height: 48px !important;
  margin: 0 !important;
  border: 1px solid var(--pp-color-border-strong) !important;
  border-radius: var(--pp-account-field-radius) !important;
  background-color: var(--pp-account-field-bg) !important;
  color: var(--pp-color-foreground) !important;
  font-family: var(--pp-font-sans) !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  line-height: 1.35 !important;
  padding: 0.75rem 0.95rem !important;
  box-shadow: none !important;
  transition:
    border-color var(--pp-transition),
    box-shadow var(--pp-transition),
    background-color var(--pp-transition) !important;
}

body.ppv2-account-surface .woocommerce select:not(.select2-hidden-accessible) {
  appearance: none !important;
  -webkit-appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236d6479' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
  background-position: right 0.9rem center !important;
  background-repeat: no-repeat !important;
  background-size: 1.1rem !important;
  padding-right: 2.75rem !important;
  cursor: pointer;
}

body.ppv2-account-surface
  .woocommerce
  :is(input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"], input[type="url"], input[type="search"], select, textarea):not(.select2-search__field):hover {
  border-color: color-mix(in srgb, var(--pp-color-primary) 35%, var(--pp-color-border-strong)) !important;
}

body.ppv2-account-surface
  .woocommerce
  :is(input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="number"], input[type="url"], input[type="search"], select, textarea):not(.select2-search__field):focus {
  border-color: color-mix(in srgb, var(--pp-color-primary) 55%, transparent) !important;
  background-color: var(--pp-color-surface) !important;
  outline: 0 !important;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--pp-color-primary) 15%, transparent) !important;
}

body.ppv2-account-surface .woocommerce :is(input, select, textarea)::placeholder {
  color: var(--pp-color-text-muted) !important;
  opacity: 1 !important;
}

/* Woo marks invalid checkout/address rows; plugins reuse the class. */
body.ppv2-account-surface
  .woocommerce
  .woocommerce-invalid
  :is(input[type], select, textarea):not(.select2-search__field),
body.ppv2-account-surface
  .woocommerce
  :is(input[type], select, textarea)[aria-invalid="true"]:not(.select2-search__field) {
  border-color: var(--pp-color-danger) !important;
  background-color: var(--pp-color-danger-soft) !important;
}

body.ppv2-account-surface .woocommerce .select2-container .select2-selection--single {
  height: 48px !important;
  border: 1px solid var(--pp-color-border-strong) !important;
  border-radius: var(--pp-account-field-radius) !important;
  background-color: var(--pp-account-field-bg) !important;
}

body.ppv2-account-surface
  .woocommerce
  .select2-container
  .select2-selection--single
  .select2-selection__rendered {
  color: var(--pp-color-foreground) !important;
  line-height: 46px !important;
  padding-inline: 0.95rem 2.5rem !important;
}

body.ppv2-account-surface
  .woocommerce
  .select2-container
  .select2-selection--single
  .select2-selection__arrow {
  height: 46px !important;
  right: 0.6rem !important;
}

/* Password reveal stays a 44px icon button inside the field. */
body.ppv2-account-surface .woocommerce .password-input input {
  padding-right: 3.25rem !important;
}

body.ppv2-account-surface .woocommerce .password-input {
  position: relative !important;
  display: block !important;
  width: 100% !important;
}

body.ppv2-account-surface .woocommerce .password-input button.show-password-input {
  position: absolute !important;
  top: 2px !important;
  bottom: auto !important;
  transform: none !important;
  right: 2px !important;
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  border-radius: var(--pp-radius-pill) !important;
  padding: 0 !important;
}

/* Pill buttons with the Next uppercase, letter-spaced label. */
body.ppv2-account-surface
  .woocommerce
  :is(.button, button[type="submit"], input[type="submit"]):not(.show-password-input):not(.pp-account-button--quiet) {
  display: inline-flex !important;
  box-sizing: border-box !important;
  min-height: 48px !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem;
  margin: 0 !important;
  border: 1px solid var(--pp-color-primary) !important;
  border-radius: var(--pp-radius-pill) !important;
  background: var(--pp-color-primary) !important;
  color: #fff !important;
  font-family: var(--pp-font-sans) !important;
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  line-height: 1.2 !important;
  padding: 0 1.75rem !important;
  text-align: center !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  box-shadow: 0 16px 32px -24px rgb(69 31 107 / 85%) !important;
  cursor: pointer;
  transition:
    background-color var(--pp-transition),
    border-color var(--pp-transition),
    color var(--pp-transition),
    transform var(--pp-transition) !important;
}

body.ppv2-account-surface
  .woocommerce
  :is(.button, button[type="submit"], input[type="submit"]):not(.show-password-input):not(.pp-account-button--quiet):hover {
  border-color: var(--pp-color-primary-deep) !important;
  background: var(--pp-color-primary-deep) !important;
  color: #fff !important;
}

body.ppv2-account-surface
  .woocommerce
  :is(.button, button[type="submit"], input[type="submit"]):focus-visible {
  outline: 2px solid var(--pp-color-primary) !important;
  outline-offset: 3px !important;
}

/* Secondary, outline pills: table actions and buttons inside notices. */
body.ppv2-account-surface
  .woocommerce
  :is(
    .woocommerce-orders-table .button,
    .woocommerce-MyAccount-downloads .button,
    .woocommerce-PaymentMethods .button,
    .order-again .button,
    .woocommerce-message .button,
    .woocommerce-info .button,
    .woocommerce-error .button,
    .woocommerce-Address-title .edit
  ) {
  min-height: 44px !important;
  border: 1px solid var(--pp-color-border-strong) !important;
  background: var(--pp-color-background) !important;
  color: var(--pp-color-foreground) !important;
  padding: 0 1.15rem !important;
  box-shadow: none !important;
}

body.ppv2-account-surface
  .woocommerce
  :is(
    .woocommerce-orders-table .button,
    .woocommerce-MyAccount-downloads .button,
    .woocommerce-PaymentMethods .button,
    .order-again .button,
    .woocommerce-message .button,
    .woocommerce-info .button,
    .woocommerce-error .button,
    .woocommerce-Address-title .edit
  ):hover {
  border-color: color-mix(in srgb, var(--pp-color-primary) 35%, transparent) !important;
  background: var(--pp-color-primary-soft) !important;
  color: var(--pp-color-primary) !important;
}

/* Remember me, the login button and the lost password link. */
body.ppv2-account-surface .woocommerce form.woocommerce-form-login > .form-row:not(.woocommerce-form-row)::before,
body.ppv2-account-surface .woocommerce form.woocommerce-form-login > .form-row:not(.woocommerce-form-row)::after {
  /* Woo's clearfix pseudo-elements would become flex items and centre the row. */
  content: none !important;
  display: none !important;
}

body.ppv2-account-surface .woocommerce form.woocommerce-form-login > .form-row:not(.woocommerce-form-row) {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 0.75rem 1rem;
  margin: 1.5rem 0 0 !important;
  text-align: left !important;
}

body.ppv2-account-surface .woocommerce .woocommerce-form-login__rememberme {
  display: inline-flex !important;
  min-height: 44px;
  align-items: center;
  gap: 0.6rem !important;
  margin: 0 !important;
  color: var(--pp-color-text-soft) !important;
  font-size: 0.9375rem !important;
  font-weight: 500 !important;
  cursor: pointer;
}

body.ppv2-account-surface .woocommerce .woocommerce-form-login__rememberme span {
  color: inherit !important;
  font-size: inherit !important;
}

body.ppv2-account-surface .woocommerce input[type="checkbox"] {
  width: 1.15rem !important;
  height: 1.15rem !important;
  margin: 0 !important;
  accent-color: var(--pp-color-primary);
}

body.ppv2-account-surface .woocommerce .woocommerce-form-login__submit {
  flex: 0 0 auto;
  min-width: 9rem;
}

body.ppv2-account-surface .woocommerce .woocommerce-form-register__submit,
body.ppv2-account-surface .woocommerce .woocommerce-ResetPassword .button {
  width: 100% !important;
}

body.ppv2-account-surface .woocommerce .lost_password {
  margin: 1.25rem 0 0 !important;
  border-top: 1px solid var(--pp-color-border);
  padding-top: 1.25rem !important;
  font-size: 0.875rem !important;
}

/* The live kit dashes and fills links on hover; use the Next underline. */
body.ppv2-account-surface .woocommerce :is(.lost_password a, .woocommerce-MyAccount-content a:not(.button):not(.pp-account-quick-link):not(.pp-rp-link-button), .woocommerce-privacy-policy-text a, .pp-account-reset-note a) {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--pp-color-primary) !important;
  padding: 0 !important;
  font-weight: 600 !important;
  text-decoration: underline !important;
  text-decoration-color: color-mix(in srgb, var(--pp-color-primary) 30%, transparent) !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 0.2em !important;
}

body.ppv2-account-surface .woocommerce :is(.lost_password a, .woocommerce-MyAccount-content a:not(.button):not(.pp-account-quick-link):not(.pp-rp-link-button), .woocommerce-privacy-policy-text a, .pp-account-reset-note a):hover {
  background: transparent !important;
  color: var(--pp-color-primary-deep) !important;
  text-decoration-color: currentColor !important;
}

body.ppv2-account-surface .woocommerce .woocommerce-privacy-policy-text {
  margin: 0.25rem 0 1.25rem !important;
}

body.ppv2-account-surface .woocommerce .woocommerce-privacy-policy-text p {
  margin: 0 !important;
  color: var(--pp-color-text-muted) !important;
  font-size: 0.8125rem !important;
  line-height: 1.55 !important;
}

body.ppv2-account-surface .woocommerce .cf-turnstile {
  margin: 0.25rem 0 1rem !important;
}

body.ppv2-account-surface .woocommerce .cf-turnstile-br {
  display: none;
}

/* Woo notices: one soft card per message with an icon and accent. */
body.ppv2-account-surface
  .woocommerce
  :is(.woocommerce-error, .woocommerce-info, .woocommerce-message) {
  position: relative !important;
  display: block !important;
  box-sizing: border-box;
  width: 100% !important;
  margin: 0 0 1.25rem !important;
  border: 1px solid var(--pp-notice-border, var(--pp-color-border)) !important;
  border-radius: 1rem !important;
  background: var(--pp-notice-bg, var(--pp-color-primary-soft)) !important;
  color: var(--pp-color-foreground) !important;
  font-family: var(--pp-font-sans) !important;
  font-size: 0.9375rem !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  list-style: none !important;
  padding: 0.95rem 1.15rem 0.95rem 3.1rem !important;
  box-shadow: 0 18px 40px -34px rgb(59 28 93 / 55%) !important;
  outline: 0 !important;
}

body.ppv2-account-surface
  .woocommerce
  :is(.woocommerce-error, .woocommerce-info, .woocommerce-message)::before {
  content: "" !important;
  position: absolute !important;
  top: 1.05rem !important;
  left: 1.1rem !important;
  display: block !important;
  width: 1.25rem !important;
  height: 1.25rem !important;
  margin: 0 !important;
  background-color: var(--pp-notice-accent, var(--pp-color-primary)) !important;
  color: transparent !important;
  font-family: inherit !important;
  -webkit-mask: var(--pp-notice-icon, var(--pp-icon-info)) center / contain no-repeat;
  mask: var(--pp-notice-icon, var(--pp-icon-info)) center / contain no-repeat;
}

body.ppv2-account-surface .woocommerce .woocommerce-message {
  --pp-notice-bg: var(--pp-color-success-soft);
  --pp-notice-border: color-mix(in srgb, var(--pp-color-success) 28%, transparent);
  --pp-notice-accent: var(--pp-color-success);
  --pp-notice-icon: var(--pp-icon-success);
}

body.ppv2-account-surface .woocommerce .woocommerce-info {
  --pp-notice-bg: var(--pp-color-primary-soft);
  --pp-notice-border: color-mix(in srgb, var(--pp-color-primary) 22%, transparent);
  --pp-notice-accent: var(--pp-color-primary);
  --pp-notice-icon: var(--pp-icon-info);
}

body.ppv2-account-surface .woocommerce .woocommerce-error {
  --pp-notice-bg: var(--pp-color-danger-soft);
  --pp-notice-border: color-mix(in srgb, var(--pp-color-danger) 30%, transparent);
  --pp-notice-accent: var(--pp-color-danger);
  --pp-notice-icon: var(--pp-icon-error);
}

body.ppv2-account-surface .woocommerce .woocommerce-error > li {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

body.ppv2-account-surface .woocommerce .woocommerce-error > li + li {
  margin-top: 0.35rem !important;
}

body.ppv2-account-surface
  .woocommerce
  :is(.woocommerce-error, .woocommerce-info, .woocommerce-message)
  .button {
  float: right;
  margin: -0.35rem -0.4rem 0 1rem !important;
}

body.ppv2-account-surface
  .woocommerce
  :is(.woocommerce-error, .woocommerce-info, .woocommerce-message)
  a:not(.button) {
  color: inherit !important;
  font-weight: 650 !important;
  text-decoration: underline !important;
  text-underline-offset: 0.2em;
}

/* Signed-in shell: navigation rail and one content card. */
body.ppv2-account-surface.logged-in .woocommerce {
  gap: clamp(1.25rem, 2.5vw, 2rem) !important;
}

body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-navigation {
  border: 1px solid var(--pp-account-card-border) !important;
  border-radius: 1.5rem !important;
  background: var(--pp-color-surface) !important;
  padding: 0.6rem !important;
  box-shadow: var(--pp-account-card-shadow) !important;
}

body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-navigation ul {
  display: grid;
  gap: 0.2rem;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-navigation li {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  list-style: none !important;
}

body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-navigation li a {
  --pp-nav-icon: var(--pp-icon-chevron);
  position: relative;
  display: flex !important;
  min-height: 44px !important;
  align-items: center !important;
  gap: 0.75rem !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0.875rem !important;
  background: transparent !important;
  color: var(--pp-color-text-soft) !important;
  font-family: var(--pp-font-sans) !important;
  font-size: 0.9375rem !important;
  font-weight: 550 !important;
  letter-spacing: 0 !important;
  line-height: 1.25 !important;
  padding: 0.6rem 0.85rem !important;
  text-decoration: none !important;
  transition:
    background-color var(--pp-transition),
    color var(--pp-transition) !important;
}

body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-navigation li a::before {
  content: "";
  flex: 0 0 1.125rem;
  width: 1.125rem;
  height: 1.125rem;
  background-color: currentColor;
  opacity: 0.8;
  -webkit-mask: var(--pp-nav-icon) center / contain no-repeat;
  mask: var(--pp-nav-icon) center / contain no-repeat;
}

body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-navigation li a:hover {
  background: var(--pp-color-surface-muted) !important;
  color: var(--pp-color-foreground) !important;
}

body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-navigation li.is-active a {
  background: var(--pp-color-primary-soft) !important;
  color: var(--pp-color-primary) !important;
  font-weight: 650 !important;
}

body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-navigation li.is-active a::before {
  opacity: 1;
}

body.ppv2-account-surface .woocommerce-MyAccount-navigation-link--dashboard a { --pp-nav-icon: var(--pp-icon-dashboard) !important; }
body.ppv2-account-surface .woocommerce-MyAccount-navigation-link--orders a { --pp-nav-icon: var(--pp-icon-orders) !important; }
body.ppv2-account-surface .woocommerce-MyAccount-navigation-link--downloads a { --pp-nav-icon: var(--pp-icon-downloads) !important; }
body.ppv2-account-surface .woocommerce-MyAccount-navigation-link--edit-address a { --pp-nav-icon: var(--pp-icon-address) !important; }
body.ppv2-account-surface .woocommerce-MyAccount-navigation-link--payment-methods a { --pp-nav-icon: var(--pp-icon-payment) !important; }
body.ppv2-account-surface .woocommerce-MyAccount-navigation-link--edit-account a { --pp-nav-icon: var(--pp-icon-account) !important; }
body.ppv2-account-surface .woocommerce-MyAccount-navigation-link--research-profile a { --pp-nav-icon: var(--pp-icon-research) !important; }
body.ppv2-account-surface .woocommerce-MyAccount-navigation-link--customer-logout a { --pp-nav-icon: var(--pp-icon-logout) !important; }
body.ppv2-account-surface :is(.woocommerce-MyAccount-navigation-link--affiliate-area, .woocommerce-MyAccount-navigation-link--affiliate, [class*="woocommerce-MyAccount-navigation-link--affiliate"]) a { --pp-nav-icon: var(--pp-icon-affiliate) !important; }

/* Log out sits apart from the account destinations on wide screens. */
body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-navigation-link--customer-logout {
  margin-top: 0.35rem !important;
  border-top: 1px solid var(--pp-color-border) !important;
  padding-top: 0.4rem !important;
}

body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-navigation-link--customer-logout a {
  color: var(--pp-color-text-muted) !important;
}

body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-content {
  border: 1px solid var(--pp-account-card-border) !important;
  border-radius: var(--pp-account-card-radius) !important;
  background: var(--pp-color-surface) !important;
  color: var(--pp-color-text-soft) !important;
  padding: clamp(1.25rem, 3.5vw, 2.5rem) !important;
  box-shadow: var(--pp-account-card-shadow) !important;
  font-size: 0.9375rem !important;
  line-height: 1.6 !important;
}

body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-content :is(h2, h3) {
  margin: 0 0 1rem !important;
  color: var(--pp-color-foreground) !important;
  font-family: var(--pp-font-sans) !important;
  font-size: 1.375rem !important;
  font-weight: 650 !important;
  letter-spacing: -0.03em !important;
  line-height: 1.2 !important;
}

body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-content * + :is(h2, h3) {
  margin-top: 2rem !important;
}

body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-content p {
  color: var(--pp-color-text-soft) !important;
  font-size: 0.9375rem !important;
  line-height: 1.65 !important;
}

body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-content strong,
body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-content mark {
  background: transparent !important;
  color: var(--pp-color-foreground) !important;
  font-weight: 650 !important;
}

/* Dashboard greeting: the first paragraph of Woo's dashboard template.
 * woocommerce-dashboard is Woo core's body class for the dashboard only. */
body.ppv2-account-surface.woocommerce-dashboard .woocommerce .woocommerce-MyAccount-content > p:first-of-type,
body.ppv2-account-surface.woocommerce-dashboard .woocommerce .woocommerce-MyAccount-content-wrapper > p:first-of-type {
  margin: 0 0 0.5rem !important;
  color: var(--pp-color-text-muted) !important;
  font-size: 1rem !important;
}

body.ppv2-account-surface.woocommerce-dashboard .woocommerce .woocommerce-MyAccount-content > p:first-of-type > strong:first-child,
body.ppv2-account-surface.woocommerce-dashboard .woocommerce .woocommerce-MyAccount-content-wrapper > p:first-of-type > strong:first-child {
  display: block;
  margin-bottom: 0.35rem;
  color: var(--pp-color-foreground) !important;
  font-size: clamp(1.625rem, 3vw, 2.125rem) !important;
  font-weight: 650 !important;
  letter-spacing: -0.04em;
  line-height: 1.1;
}

body.ppv2-account-surface.woocommerce-dashboard .woocommerce .woocommerce-MyAccount-content > p:first-of-type::before,
body.ppv2-account-surface.woocommerce-dashboard .woocommerce .woocommerce-MyAccount-content-wrapper > p:first-of-type::before {
  content: "Your account";
  content: "Your account" / "";
  display: block;
  margin-bottom: 0.7rem;
  color: var(--pp-color-primary);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.24em;
  line-height: 1.2;
  text-transform: uppercase;
}

/* Quick links printed by this plugin on the dashboard. */
body.ppv2-account-surface .woocommerce .pp-account-quick-links {
  margin: 1.75rem 0 0;
}

body.ppv2-account-surface .woocommerce .pp-account-quick-links ul {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(12.5rem, 1fr));
  gap: 0.75rem;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

body.ppv2-account-surface .woocommerce .pp-account-quick-links li {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

body.ppv2-account-surface .woocommerce a.pp-account-quick-link {
  position: relative;
  display: grid !important;
  height: 100%;
  min-height: 44px;
  box-sizing: border-box;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  align-items: center;
  gap: 0.15rem 0.85rem;
  border: 1px solid var(--pp-color-border) !important;
  border-radius: 1.25rem !important;
  background: var(--pp-color-surface-soft) !important;
  color: var(--pp-color-foreground) !important;
  padding: 1rem 2.5rem 1rem 1rem !important;
  text-decoration: none !important;
  transition:
    border-color var(--pp-transition),
    background-color var(--pp-transition),
    transform var(--pp-transition) !important;
}

body.ppv2-account-surface .woocommerce a.pp-account-quick-link::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1rem;
  width: 1rem;
  height: 1rem;
  background-color: var(--pp-color-text-muted);
  transform: translateY(-50%);
  -webkit-mask: var(--pp-icon-arrow) center / contain no-repeat;
  mask: var(--pp-icon-arrow) center / contain no-repeat;
  transition:
    transform var(--pp-transition),
    background-color var(--pp-transition);
}

body.ppv2-account-surface .woocommerce a.pp-account-quick-link:hover {
  border-color: color-mix(in srgb, var(--pp-color-primary) 35%, transparent) !important;
  background: var(--pp-color-surface) !important;
}

body.ppv2-account-surface .woocommerce a.pp-account-quick-link:hover::after {
  background-color: var(--pp-color-primary);
  transform: translate(3px, -50%);
}

body.ppv2-account-surface .woocommerce .pp-account-quick-link__icon {
  grid-row: span 2;
  display: grid;
  width: 2.5rem;
  height: 2.5rem;
  place-items: center;
  border-radius: 0.875rem;
  background: var(--pp-color-primary-soft);
}

body.ppv2-account-surface .woocommerce .pp-account-quick-link__icon::before {
  content: "";
  width: 1.125rem;
  height: 1.125rem;
  background-color: var(--pp-color-primary);
  -webkit-mask: var(--pp-nav-icon) center / contain no-repeat;
  mask: var(--pp-nav-icon) center / contain no-repeat;
}

body.ppv2-account-surface .woocommerce .pp-account-quick-link__title {
  color: var(--pp-color-foreground);
  font-size: 0.9375rem;
  font-weight: 650;
  line-height: 1.25;
}

body.ppv2-account-surface .woocommerce .pp-account-quick-link__text {
  color: var(--pp-color-text-muted);
  font-size: 0.8125rem;
  font-weight: 400;
  line-height: 1.4;
}

body.ppv2-account-surface .woocommerce a.pp-account-quick-link--orders { --pp-nav-icon: var(--pp-icon-orders); }
body.ppv2-account-surface .woocommerce a.pp-account-quick-link--edit-address { --pp-nav-icon: var(--pp-icon-address); }
body.ppv2-account-surface .woocommerce a.pp-account-quick-link--edit-account { --pp-nav-icon: var(--pp-icon-account); }

/* Account details: name pair, sub-card fieldsets, save button. */
body.ppv2-account-surface .woocommerce form.woocommerce-EditAccountForm {
  display: flex;
  flex-wrap: wrap;
  column-gap: 1rem;
}

body.ppv2-account-surface .woocommerce form.woocommerce-EditAccountForm > * {
  flex: 1 1 100%;
  min-width: 0;
}

body.ppv2-account-surface .woocommerce form.woocommerce-EditAccountForm > :is(.form-row-first, .form-row-last) {
  flex: 1 1 calc(50% - 0.5rem);
  width: auto !important;
  float: none !important;
}

body.ppv2-account-surface .woocommerce form.woocommerce-EditAccountForm > .clear {
  display: none;
}

body.ppv2-account-surface .woocommerce form.woocommerce-EditAccountForm fieldset {
  box-sizing: border-box;
  margin: 0.75rem 0 1.25rem !important;
  border: 1px solid var(--pp-color-border) !important;
  border-radius: 1.5rem !important;
  background: var(--pp-color-surface-soft) !important;
  padding: 1.25rem clamp(1rem, 2.5vw, 1.5rem) 0.35rem !important;
}

body.ppv2-account-surface .woocommerce form.woocommerce-EditAccountForm fieldset > legend {
  float: left;
  box-sizing: border-box;
  width: 100%;
  margin: 0 0 0.35rem !important;
  border: 0 !important;
  color: var(--pp-color-foreground) !important;
  font-size: 1.0625rem !important;
  font-weight: 650 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.3 !important;
  padding: 0 !important;
}

body.ppv2-account-surface .woocommerce form.woocommerce-EditAccountForm fieldset > legend + * {
  clear: both;
}

body.ppv2-account-surface .woocommerce form.woocommerce-EditAccountForm fieldset > legend + :not(.form-row) {
  margin-top: 0;
}

body.ppv2-account-surface .woocommerce form.woocommerce-EditAccountForm > p:last-of-type {
  margin: 0.5rem 0 0 !important;
}

/* Addresses and order tables. */
body.ppv2-account-surface .woocommerce .woocommerce-Addresses {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  gap: 1rem;
}

body.ppv2-account-surface .woocommerce .woocommerce-Addresses::before,
body.ppv2-account-surface .woocommerce .woocommerce-Addresses::after {
  display: none !important;
}

body.ppv2-account-surface .woocommerce .woocommerce-Addresses > .woocommerce-Address {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  border: 1px solid var(--pp-color-border) !important;
  border-radius: 1.5rem !important;
  background: var(--pp-color-surface-soft) !important;
  padding: 1.25rem !important;
}

body.ppv2-account-surface .woocommerce .woocommerce-Address-title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

body.ppv2-account-surface .woocommerce .woocommerce-Address-title::before,
body.ppv2-account-surface .woocommerce .woocommerce-Address-title::after {
  display: none !important;
}

body.ppv2-account-surface .woocommerce .woocommerce-Address-title :is(h2, h3) {
  margin: 0 !important;
  font-size: 1.0625rem !important;
}

body.ppv2-account-surface .woocommerce .woocommerce-Address-title .edit {
  display: inline-flex !important;
  float: none !important;
  align-items: center;
  border-radius: var(--pp-radius-pill) !important;
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  text-decoration: none !important;
  text-transform: uppercase;
}

body.ppv2-account-surface .woocommerce .woocommerce-Address address {
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
  color: var(--pp-color-text-soft) !important;
  font-size: 0.9375rem !important;
  line-height: 1.7 !important;
}

body.ppv2-account-surface .woocommerce :is(table.shop_table, table.woocommerce-orders-table) {
  border-radius: 1.25rem !important;
}

body.ppv2-account-surface .woocommerce :is(table.shop_table, table.woocommerce-orders-table) :is(th, td) {
  background: transparent !important;
  color: var(--pp-color-text-soft) !important;
  font-size: 0.9375rem !important;
}

body.ppv2-account-surface .woocommerce :is(table.shop_table, table.woocommerce-orders-table) thead th {
  background: var(--pp-color-surface-muted) !important;
  color: var(--pp-color-text-muted) !important;
  font-size: 0.6875rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
}

/* Phones and tablets: the nav becomes a scrolling row of pills. */
@media (max-width: 959px) {
  body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-navigation {
    border-radius: var(--pp-radius-pill) !important;
    padding: 0.35rem !important;
    box-shadow: none !important;
  }

  body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-navigation ul {
    display: flex !important;
    gap: 0.25rem !important;
    scrollbar-width: none;
  }

  body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-navigation ul::-webkit-scrollbar {
    display: none;
  }

  body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-navigation li a {
    border-radius: var(--pp-radius-pill) !important;
    font-size: 0.875rem !important;
    padding: 0.55rem 1rem !important;
    white-space: nowrap;
  }

  body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-navigation-link--customer-logout {
    margin: 0 !important;
    border: 0 !important;
    padding: 0 !important;
  }
}

@media (max-width: 600px) {
  body.ppv2-account-surface #customer_login > :where(.u-column1, .u-column2),
  body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-content {
    border-radius: 1.5rem !important;
    padding: 1.35rem 1.1rem !important;
  }

  body.ppv2-account-surface .woocommerce form.woocommerce-form-login > .form-row:not(.woocommerce-form-row) {
    align-items: stretch;
  }

  body.ppv2-account-surface .woocommerce .woocommerce-form-login__submit {
    width: 100% !important;
  }

  body.ppv2-account-surface .woocommerce form.woocommerce-EditAccountForm > :is(.form-row-first, .form-row-last) {
    flex-basis: 100%;
  }

  body.ppv2-account-surface .woocommerce .pp-account-quick-links ul {
    grid-template-columns: minmax(0, 1fr);
  }

  body.ppv2-account-surface
    .woocommerce
    :is(.woocommerce-error, .woocommerce-info, .woocommerce-message)
    .button {
    display: flex !important;
    float: none;
    width: 100% !important;
    margin: 0.75rem 0 0 !important;
  }
}

/* Dark mode from the customer shell re-points the tokens; fix the fixed tints. */
html.dark body.ppv2-account-surface {
  --pp-account-card-shadow: 0 28px 60px -40px rgb(0 0 0 / 80%);
  --pp-account-field-bg: var(--pp-color-background);
  --pp-color-primary-soft: rgb(168 156 255 / 12%);
  --pp-color-success-soft: rgb(33 99 74 / 22%);
  --pp-color-danger-soft: rgb(157 34 28 / 22%);
}

html.dark body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-navigation li.is-active a,
html.dark body.ppv2-account-surface .woocommerce .woocommerce-MyAccount-navigation li a:hover {
  color: #c5a2eb !important;
}

@media (prefers-reduced-motion: reduce) {
  body.ppv2-account-surface .woocommerce a.pp-account-quick-link:hover::after {
    transform: translateY(-50%);
  }
}
