/* Tier 8 — Become a partner (prefix pp9-), plus the site's dress for the Autoimmune Partners and
   Affiliates markup wherever it appears (the flow, statuses, pricing tab, creator dashboard,
   your-creator card). Tokens from home-v8.css (.pp3). Scoped to the tier body classes. */

/* ---- page ---------------------------------------------------------------------------------- */
.pp9 { background: var(--white); }
.pp9-hero { position: relative; overflow: hidden; isolation: isolate; display: grid; align-items: center; min-height: clamp(400px, 64svh, 640px); padding: 28px 0 40px; }
@supports not (height: 1svh) { .pp9-hero { min-height: clamp(400px, 64vh, 640px); } }
.pp9-hero__inner { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 620px); }
.pp9-hero__copy { padding: clamp(20px, 2.6vw, 32px) clamp(20px, 2.8vw, 36px); border-radius: var(--r-xl); background: rgba(255, 255, 255, 0.62); -webkit-backdrop-filter: saturate(160%) blur(22px); backdrop-filter: saturate(160%) blur(22px); box-shadow: var(--shadow); }
.pp9-hero .pp3-h1 { font-size: clamp(34px, 4.4vw, 54px); }
.pp3 .pp9-hero__line { font-size: clamp(16px, 1.25vw, 18px); line-height: 1.5; color: var(--ink-2); max-width: 34em; margin: 14px 0 0; }
.pp3 .pp9-hero .pp3-hero__actions { margin-top: 24px; }
.pp3 .pp9-hero .pp3-kicker { margin-bottom: 10px; }
.pp3 .pp9-hero__aside { margin-top: 22px; font-size: 14px; color: var(--muted); }
.pp9-hero__aside a { text-decoration: underline; text-underline-offset: 3px; }

/* The river: four diagonal rows, each four identical tracks so the loop is seamless and never runs out. Every size is
   an integer number of pixels so the wrap (-50% of the row) lands exactly on the seam — a fractional
   width made the first and last vials jump at the join. Rows drift in alternating directions at
   different speeds; the copy floats on a frosted card above them. */
.pp9-river { --v: 96px; --g: 48px; --p: 24px; position: absolute; inset: -34% -22%; z-index: 1; transform: rotate(-12deg) translateZ(0); pointer-events: none; display: grid; grid-auto-rows: 1fr; align-content: center; gap: 22px; opacity: .95; }
.pp9-river::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(230,240,237,.55), rgba(230,240,237,0) 30%, rgba(230,240,237,0) 70%, rgba(230,240,237,.55)); }
.pp9-river__row { display: flex; width: max-content; will-change: transform; backface-visibility: hidden; animation: pp9-drift 46s linear infinite; }
.pp9-river__row--3 { animation-duration: 52s; }
/* Rows 2 and 4 run the other way and begin half-empty: at the start their vials fill only the left part
   of the hero and the right side is clear; they flow rightwards at the drift's own pace until the row is
   full, land exactly where the endless reverse drift starts (-25%), and loop from there. Percentages are
   of the row itself, so the timing holds at every width (25% of a row takes one drift period). */
.pp9-river__row--2 { animation: pp9-enter-2 123s linear 1 both, pp9-drift 58s linear 123s infinite reverse; }
.pp9-river__row--4 { animation: pp9-enter-4 115s linear 1 both, pp9-drift 64s linear 115s infinite reverse; }
@keyframes pp9-enter-2 { from { transform: translate3d(-78%, 0, 0); } to { transform: translate3d(-25%, 0, 0); } }
@keyframes pp9-enter-4 { from { transform: translate3d(-70%, 0, 0); } to { transform: translate3d(-25%, 0, 0); } }
.pp3 .pp9-river__track { display: flex; gap: var(--g); padding: 0 var(--p); flex: none; margin: 0; }
.pp9-river__vial { width: var(--v); height: calc(var(--v) * 2.054); flex: none; }
.pp9-river__vial img { display: block; width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 14px 22px rgba(17,17,17,.14)); }
@keyframes pp9-drift { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-25%, 0, 0); } }
@media (prefers-reduced-motion: reduce) { .pp9-river__row { animation: none; } .pp9-river__row--2, .pp9-river__row--4 { transform: translate3d(-25%, 0, 0); } }
@media (max-width: 1200px) { .pp9-river { --v: 80px; --g: 40px; --p: 20px; } }
@media (max-width: 900px) { .pp9-hero { min-height: clamp(380px, 60svh, 560px); padding-top: 22px; } .pp9-river { --v: 56px; --g: 28px; --p: 14px; inset: -40% -60%; gap: 10px; } }

.pp9-types.pp3-block { padding-top: clamp(28px, 4vw, 48px); padding-bottom: clamp(36px, 5vw, 64px); }
.pp9-types .pp3-head { margin-bottom: clamp(18px, 2.4vw, 28px); }
.pp9-types .pp3-head p { max-width: none; }
.pp9-strips { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 1100px) { .pp9-strips { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .pp9-strips { grid-template-columns: 1fr; } }
.pp9-strip { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 26px 24px 24px; border-radius: var(--r-lg); box-shadow: var(--shadow); min-height: 100%; }
.pp9-strip__head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 8px 10px; }
.pp9-strip__title { font-size: 21px; font-weight: 600; line-height: 1.15; letter-spacing: -0.015em; }
.pp9-strip__badge { flex: none; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: 6px 10px; border-radius: 999px; background: var(--ink); color: var(--white); }
.pp9-strip__who { color: var(--muted); font-size: 15px; }
.pp9-strip__lines { display: grid; gap: 10px; margin: 4px 0 8px; }
.pp9-strip__lines li { display: flex; gap: 10px; align-items: flex-start; font-size: 15px; line-height: 1.4; }
.pp9-strip__lines svg { flex: none; width: 18px; height: 18px; margin-top: 2px; color: var(--green); }
.pp3 .pp9-strip__subs { display: grid; gap: 6px; margin: 8px 0 2px; padding: 0; }
.pp9-strip__subs li { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; color: var(--ink-2); }
.pp9-strip__subs svg { width: 14px; height: 14px; margin-top: 3px; }
.pp9-strip__btn { margin-top: auto; align-self: flex-start; min-height: 46px; padding: 0 20px; font-size: 15px; }

.pp9-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 800px) { .pp9-steps { grid-template-columns: 1fr; } }
.pp9-step { background: var(--white); border-radius: var(--r-lg); padding: 26px 24px; box-shadow: var(--shadow); display: grid; gap: 8px; }
.pp9-step__num { width: 36px; height: 36px; border-radius: 50%; background: var(--ink); color: var(--white); display: grid; place-items: center; font-weight: 700; margin-bottom: 4px; }
.pp9-step h3 { font-size: 19px; font-weight: 600; letter-spacing: -0.01em; }
.pp9-step p { color: var(--ink-2); font-size: 15px; line-height: 1.5; }

.pp9-apply__wrap { max-width: 880px; }
.pp9-apply__card { background: var(--paper); border-radius: var(--r-xl); padding: clamp(18px, 3vw, 36px); box-shadow: var(--shadow); }
.pp9-apply__fallback { color: var(--muted); margin-bottom: 12px; }

.pp9-faq.pp3-block { padding-top: clamp(36px, 5vw, 72px); padding-bottom: clamp(36px, 5vw, 72px); }
.pp9-faq__band { background: var(--white); border-radius: var(--r-xl); padding: clamp(22px, 3vw, 40px); box-shadow: var(--shadow); max-width: 980px; margin: 0 auto; }
.pp9-faq__band .pp3-head { margin-bottom: 16px; }
.pp9-faq__list { display: grid; gap: 10px; }
.pp9-faq__item { background: var(--paper); border-radius: var(--r-md); padding: 0 22px; }
.pp9-faq__item summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px 0; font-weight: 600; font-size: 17px; }
.pp9-faq__item summary::-webkit-details-marker { display: none; }
.pp9-faq__item summary svg { width: 20px; height: 20px; flex: none; transition: transform 200ms var(--ease); }
.pp9-faq__item[open] summary svg { transform: rotate(180deg); }
.pp9-faq__item p { padding: 0 0 18px; color: var(--ink-2); line-height: 1.55; max-width: 60em; }
.pp3 .pp9-faq__note { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); font-size: 13px; line-height: 1.6; color: var(--muted); }

.pp9-sticky { display: none; }
@media (max-width: 720px) {
  .pp9-sticky { display: flex; justify-content: center; position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 60; padding: 8px; border-radius: 999px; background: rgba(255,255,255,.72); -webkit-backdrop-filter: saturate(160%) blur(18px); backdrop-filter: saturate(160%) blur(18px); box-shadow: var(--shadow); transition: transform 240ms var(--ease), opacity 240ms var(--ease); }
  .pp9-sticky .pp3-btn { width: 100%; }
  .pp9-sticky.is-hidden { transform: translateY(120%); opacity: 0; pointer-events: none; }
}

/* ---- the plugin's flow, dressed ---------------------------------------------------------- */
.pp-partner-v8 .autoimmune-partner__card, .pp-partners-v8 .autoimmune-partner__card { border: 0; border-radius: var(--r-lg, 24px); background: #fff; padding: 26px 26px 24px; box-shadow: 0 1px 2px rgba(17,17,17,.05); max-width: none; }
.pp-partner-v8 .autoimmune-partner__notice, .pp-partners-v8 .autoimmune-partner__notice { border-radius: 14px; max-width: none; }
.pp-partner-v8 .autoimmune-partner__tabs button, .pp-partners-v8 .autoimmune-partner__tabs button { font-family: inherit; font-weight: 600; font-size: 14px; padding: 10px 18px; }
.pp-partner-v8 .autoimmune-partner__tabs button.is-active, .pp-partners-v8 .autoimmune-partner__tabs button.is-active { background: #111; border-color: #111; }
.pp-partner-v8 .autoimmune-partner__step, .pp-partners-v8 .autoimmune-partner__step { color: #004F42; opacity: 1; }
.pp-partner-v8 .autoimmune-partner__grid input, .pp-partner-v8 .autoimmune-partner__grid select, .pp-partner-v8 .autoimmune-partner__grid textarea, .pp-partner-v8 .autoimmune-partner__form .login-username input, .pp-partner-v8 .autoimmune-partner__form .login-password input,
.pp-partners-v8 .autoimmune-partner__grid input, .pp-partners-v8 .autoimmune-partner__grid select, .pp-partners-v8 .autoimmune-partner__grid textarea { border: 1px solid rgba(17,17,17,.18); border-radius: 12px; padding: 13px 14px; background: #fff; font-family: inherit; font-size: 15px; }
.pp-partner-v8 .autoimmune-partner__grid input:focus, .pp-partner-v8 .autoimmune-partner__grid select:focus, .pp-partner-v8 .autoimmune-partner__grid textarea:focus { outline: 2px solid #004F42; outline-offset: 1px; border-color: transparent; }
/* The theme fixes form-control heights; ours size by content so nothing is clipped. */
.pp-partner-v8 .autoimmune-partner__grid input:not([type=checkbox]):not([type=radio]), .pp-partner-v8 .autoimmune-partner__grid select, .pp-partner-v8 .autoimmune-partner__form .login-username input, .pp-partner-v8 .autoimmune-partner__form .login-password input,
.pp-partners-v8 .autoimmune-partner__grid input:not([type=checkbox]):not([type=radio]), .pp-partners-v8 .autoimmune-partner__grid select { height: auto !important; min-height: 52px; line-height: 1.3 !important; box-sizing: border-box; }
.pp-partner-v8 .autoimmune-partner__grid select, .pp-partners-v8 .autoimmune-partner__grid select { -webkit-appearance: none; appearance: none; padding-right: 44px !important; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path d='M5 8l5 5 5-5' fill='none' stroke='%23111' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/></svg>"); background-repeat: no-repeat; background-position: right 16px center; background-size: 18px; }
.pp-partner-v8 .autoimmune-partner__grid textarea, .pp-partners-v8 .autoimmune-partner__grid textarea { height: auto !important; min-height: 96px; line-height: 1.45 !important; }
.pp-partner-v8 .autoimmune-partner__grid label > span, .pp-partner-v8 .autoimmune-partner__field label > span, .pp-partner-v8 .autoimmune-partner__label { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: #5f5f58; }
.pp-partner-v8 .autoimmune-partner__type, .pp-partners-v8 .autoimmune-partner__type { border-radius: 14px; padding: 14px 16px; font-weight: 500; border-color: rgba(17,17,17,.14); }
.pp-partner-v8 .autoimmune-partner__type:has(input:checked), .pp-partners-v8 .autoimmune-partner__type:has(input:checked) { border-color: #111; background: #e6f0ed; }
.pp-partner-v8 .autoimmune-partner__type input, .pp-partners-v8 .autoimmune-partner__type input { accent-color: #004F42; }
.pp-partner-v8 .autoimmune-partner__group h4, .pp-partners-v8 .autoimmune-partner__group h4 { font-size: 16px; margin: 4px 0 10px; letter-spacing: -0.01em; }
.pp-partner-v8 .autoimmune-partner__acks legend, .pp-partner-v8 .autoimmune-partner__types legend { font-size: 17px; letter-spacing: -0.01em; }
.pp-partner-v8 .autoimmune-partner__ack input, .pp-partners-v8 .autoimmune-partner__ack input { accent-color: #004F42; margin-top: 3px; }
.pp-partner-v8 .autoimmune-partner .button, .pp-partner-v8 .autoimmune-partner input[type=submit], .pp-partner-v8 .autoimmune-partner button[type=submit],
.pp-partners-v8 .autoimmune-partner .button, .pp-partners-v8 .autoimmune-partner button[type=submit] { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 26px; border-radius: 999px; background: #111; color: #fff; border: 0; font-family: inherit; font-weight: 600; font-size: 15px; cursor: pointer; }
.pp-partner-v8 .autoimmune-partner .button:hover, .pp-partners-v8 .autoimmune-partner .button:hover { background: #004F42; }
.pp-partner-v8 .autoimmune-partner__form .login-remember, .pp-partner-v8 .autoimmune-partner__form .login-submit { margin: 12px 0 0; }
.pp-partner-v8 .autoimmune-partner__done h3, .pp-partners-v8 .autoimmune-partner__done h3 { font-size: 26px; letter-spacing: -0.02em; margin: 0 0 8px; }
.pp-partner-v8 .autoimmune-partner__done.is-approved, .pp-partners-v8 .autoimmune-partner__done.is-approved { background: #e6f0ed; }

/* status card on the account and elsewhere */
.pp-partners-v8 .autoimmune-partner-status { border: 0; border-radius: 16px; background: #f7f6f2; padding: 16px 18px; }
.pp-partners-v8 .autoimmune-partner-status.is-approved { background: #e6f0ed; }
.pp-partners-v8 .autoimmune-partner-status.is-pending .autoimmune-partner-status__label::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #b26a00; margin-right: 8px; vertical-align: middle; }
.pp-partners-v8 .autoimmune-partner-status.is-approved .autoimmune-partner-status__label::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #004F42; margin-right: 8px; vertical-align: middle; }

/* partner pricing: label, struck price, banner, tab */
.pp-partners-v8 .autoimmune-partner-price { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 6px 8px; }
.pp-partners-v8 .autoimmune-partner-price__label { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #004F42; opacity: 1; padding: 3px 8px; border-radius: 999px; background: #e6f0ed; }
.pp-partners-v8 .autoimmune-partner-price del { opacity: .5; font-weight: 400; }
.pp-partners-v8 .autoimmune-partner-price ins { text-decoration: none; font-weight: 600; }
.pp-partners-v8 .autoimmune-partner-banner { font-family: "Jost", system-ui, sans-serif; background: #e6f0ed; color: #111; font-size: 14px; font-weight: 500; padding: 9px 16px; }
.pp-partners-v8 .autoimmune-partner-banner a { text-decoration: underline; text-underline-offset: 3px; color: #004F42; font-weight: 600; }
.pp-partners-v8 .autoimmune-partner-pricing__intro { font-size: 15px; }
.pp-partners-v8 .autoimmune-partner-pricing__table th { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }

/* creator dashboard */
.pp-partners-v8 .autoimmune-creator__card { border: 0; border-radius: 20px; background: #f7f6f2; padding: 20px 22px; }
.pp-partners-v8 .autoimmune-creator__card strong { font-size: 34px; letter-spacing: -0.02em; }
.pp-partners-v8 .autoimmune-creator__card:nth-child(3) { background: #e6f0ed; }
.pp-partners-v8 .autoimmune-creator__code { border: 0; border-radius: 20px; background: #fff; box-shadow: 0 1px 2px rgba(17,17,17,.05); }
.pp-partners-v8 .autoimmune-creator__code[data-kind="loyalty"] { background: #f0dfdb; } .pp-partners-v8 .autoimmune-creator__code[data-kind="welcome"] { background: #f5edc4; }
.pp-partners-v8 .autoimmune-creator__row code, .pp-partners-v8 .autoimmune-creator__row input { border-radius: 999px; padding: 12px 16px; background: #fff; border: 1px solid rgba(17,17,17,.12); }
.pp-partners-v8 .autoimmune-creator .button, .pp-partners-v8 .autoimmune-your-creator .button { border-radius: 999px; background: #111; color: #fff; border: 0; padding: 0 18px; min-height: 42px; font-weight: 600; font-family: inherit; }
.pp-partners-v8 .autoimmune-creator .button:hover { background: #004F42; }
.pp-partners-v8 .autoimmune-creator__section h3 { font-size: 20px; letter-spacing: -0.015em; }
.pp-partners-v8 .autoimmune-creator__method { border-radius: 999px; font-weight: 500; }
.pp-partners-v8 .autoimmune-creator__method:has(input:checked) { background: #e6f0ed; border-color: #004F42; }
.pp-partners-v8 .autoimmune-creator__intro { background: #fff; border-radius: 16px; padding: 18px 20px; }
.pp-partners-v8 .autoimmune-creator-line { font-weight: 500; }
.pp-partners-v8 .autoimmune-your-creator { border: 0; border-radius: 16px; background: #f0dfdb; }

/* ---- The plugin's price html: label · unit · kit (Autoimmune 0.7.6). Inline where there is room; stacked inside
   the shop card's black pill, where the label and both figures share one face and weight. ---- */
.pp-partners-v8 .autoimmune-partner-price { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; font-family: "Jost", system-ui, sans-serif; }
.pp-partners-v8 .autoimmune-partner-price__unit, .pp-partners-v8 .autoimmune-partner-price__kit { display: inline-flex; align-items: baseline; gap: 6px; white-space: nowrap; }
.pp-partners-v8 .autoimmune-partner-price__kit-label { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: .7; }
.pp-partners-v8 .autoimmune-partner-price ins { font-weight: 700; }
.pp-partners-v8 .peptico-loop-card-price { align-items: flex-start; }
.pp-partners-v8 .peptico-loop-card-price .autoimmune-partner-price { display: grid; grid-template-columns: auto; justify-items: start; gap: 4px; padding: 3px 0 2px; text-align: left; }
.pp-partners-v8 .peptico-loop-card-price .autoimmune-partner-price__label { background: rgba(255, 255, 255, 0.16); color: #fff; font-size: 10px; letter-spacing: .12em; padding: 2px 8px; }
.pp-partners-v8 .peptico-loop-card-price .autoimmune-partner-price__unit { font-size: 16px; }
.pp-partners-v8 .peptico-loop-card-price .autoimmune-partner-price__kit { font-size: 14px; }
.pp-partners-v8 .peptico-loop-card-price .autoimmune-partner-price__kit-label { color: rgba(255, 255, 255, 0.72); opacity: 1; }
.pp-partners-v8 .peptico-loop-card-price .autoimmune-partner-price del { color: rgba(255, 255, 255, 0.55); font-weight: 500; }
.pp-partners-v8 .peptico-loop-card-price .autoimmune-partner-price ins { color: #fff; font-weight: 700; }

/* A partner's line total: the regular total struck, the partner total after it — cart page, checkout review, drawer. */
.pp-partners-v8 .pp-partner-subtotal { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; }
.pp-partners-v8 .pp-partner-subtotal del { opacity: .5; font-weight: 400; font-size: .9em; }
.pp-partners-v8 .pp-partner-subtotal ins { text-decoration: none; font-weight: 700; }
.pp-partners-v8 .elementor-menu-cart__product-price .pp-partner-subtotal { justify-content: flex-end; }

/* The drawer's reason line when there is not enough stock for another kit (Autoimmune 0.7.10). */
.pp-partners-v8 .autoimmune-kit-stock { margin: 0 0 12px; padding: 10px 14px; border: 0; border-radius: 12px; background: #fff1e2; color: #7a3b00; font: 500 14px/1.45 "Jost", system-ui, sans-serif; }
.pp-partners-v8 .autoimmune-kit-stock::before { display: none; }

/* Phones: the shop card's pill must fit a half-width card — smaller figures, the kit line on two rows. */
@media (max-width: 760px) {
  .pp-partners-v8 .peptico-loop-card-price { max-width: 100%; box-sizing: border-box; padding: 6px 10px; }
  .pp-partners-v8 .peptico-loop-card-price .autoimmune-partner-price { width: 100%; gap: 3px; }
  .pp-partners-v8 .peptico-loop-card-price .autoimmune-partner-price__label { font-size: 9px; letter-spacing: .1em; padding: 2px 6px; }
  .pp-partners-v8 .peptico-loop-card-price .autoimmune-partner-price__unit { font-size: 14px; gap: 5px; white-space: normal; flex-wrap: wrap; }
  .pp-partners-v8 .peptico-loop-card-price .autoimmune-partner-price__kit { font-size: 12px; gap: 4px; white-space: normal; flex-wrap: wrap; }
  .pp-partners-v8 .peptico-loop-card-price .autoimmune-partner-price__kit-label { flex-basis: 100%; font-size: 9px; }
}

/* Phones: with the taller price pill the card's name was pushed up over the vial. For partners the body
   spans the card and sits its contents at the bottom, so the name can live at the top of the card on a
   frosted chip; the empty part of the body lets clicks through to the image link. */
@media (max-width: 767px) {
  .pp-partners-v8 .peptico-loop-card-body { top: 8px; justify-content: flex-end; pointer-events: none; }
  .pp-partners-v8 .peptico-loop-card-body > * { pointer-events: auto; }
  .pp-partners-v8 .peptico-loop-card-body .peptico-loop-card-title { position: absolute; top: 0; left: 0; right: 0; width: fit-content; max-width: calc(100% - 16px); margin: 0 auto !important; padding: 4px 9px; border-radius: 8px; background: rgba(255, 255, 255, 0.84); font-size: 11px; line-height: 1.2; }
}
