.affiliate-page {
  --affiliate-wash: rgb(212 244 107 / 9%);
  --affiliate-line: rgb(212 244 107 / 24%);
}

.affiliate-main { overflow: hidden; }
.affiliate-shell { width: min(1180px, calc(100% - 36px)); margin-inline: auto; }
.affiliate-section { padding-block: clamp(76px, 9vw, 126px); }
.affiliate-section + .affiliate-section { border-top: 1px solid var(--line); }
.affiliate-section-head { max-width: 760px; margin-bottom: 42px; }
.affiliate-section-head h2,
.affiliate-final h2 { margin: 8px 0 16px; font: 500 clamp(38px, 5vw, 66px)/.98 Georgia, "Times New Roman", serif; letter-spacing: -.045em; }
.affiliate-section-head > p:last-child { max-width: 680px; color: var(--text-soft); font-size: clamp(16px, 1.5vw, 19px); line-height: 1.7; }

.affiliate-hero {
  position: relative;
  display: grid;
  min-height: min(780px, calc(100vh - 68px));
  align-items: center;
  padding-block: clamp(72px, 9vw, 128px);
}
.affiliate-hero::before {
  position: absolute; z-index: -1; top: 4%; right: -18%; width: 68%; aspect-ratio: 1;
  border-radius: 50%; content: ""; background: radial-gradient(circle, var(--affiliate-wash), transparent 68%);
}
.affiliate-hero-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(340px, .7fr); gap: clamp(42px, 8vw, 110px); align-items: center; }
.affiliate-hero h1 { max-width: 800px; margin: 16px 0 24px; font: 500 clamp(54px, 7.5vw, 102px)/.9 Georgia, "Times New Roman", serif; letter-spacing: -.055em; }
.affiliate-hero h1 em { color: var(--focus); font-weight: inherit; }
.affiliate-lede { max-width: 690px; margin: 0 0 34px; color: var(--text-soft); font-size: clamp(17px, 1.6vw, 21px); line-height: 1.65; }
.affiliate-hero-card { padding: clamp(28px, 4vw, 46px); border: 1px solid var(--affiliate-line); border-radius: 18px; background: linear-gradient(145deg, var(--panel-2), #0d100f); box-shadow: 0 26px 80px rgb(0 0 0 / 30%); }
.affiliate-hero-card > span { color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.affiliate-hero-card strong { display: block; margin: 14px 0 8px; color: var(--focus); font: 500 clamp(54px, 7vw, 84px)/1 Georgia, "Times New Roman", serif; }
.affiliate-hero-card p { margin: 0; color: var(--text-soft); line-height: 1.6; }

.affiliate-highlights { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: -42px; padding-bottom: clamp(76px, 9vw, 118px); }
.affiliate-highlight { min-height: 218px; padding: 28px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel); }
.affiliate-highlight span { display: block; color: var(--focus); font: 500 36px/1 Georgia, "Times New Roman", serif; }
.affiliate-highlight h2 { margin: 30px 0 10px; font-size: 17px; }
.affiliate-highlight p { margin: 0; color: var(--text-soft); line-height: 1.55; }

.programme-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.programme-card { position: relative; padding: clamp(30px, 4vw, 48px); border: 1px solid var(--line); border-radius: 16px; background: var(--panel); }
.programme-card.partner { border-color: var(--affiliate-line); background: linear-gradient(150deg, var(--affiliate-wash), var(--panel) 48%); }
.programme-label { color: var(--focus); font-size: 12px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.programme-card h3 { margin: 14px 0 12px; font: 500 clamp(30px, 3vw, 43px)/1.05 Georgia, "Times New Roman", serif; }
.programme-card > p { min-height: 54px; color: var(--text-soft); line-height: 1.6; }
.programme-rate { display: flex; gap: 12px; align-items: baseline; margin: 30px 0; padding-block: 24px; border-block: 1px solid var(--line); }
.programme-rate strong { color: var(--focus); font: 500 48px/1 Georgia, "Times New Roman", serif; }
.programme-rate span { color: var(--muted); }
.programme-card ul { display: grid; gap: 13px; margin: 0; padding: 0; list-style: none; }
.programme-card li { position: relative; padding-left: 25px; color: var(--text-soft); line-height: 1.45; }
.programme-card li::before { position: absolute; left: 0; color: var(--focus); content: "✓"; }
.partner-threshold { min-height: auto !important; padding: 13px 15px; border: 1px solid var(--affiliate-line); border-radius: 8px; background: rgb(212 244 107 / 6%); color: var(--text) !important; font-weight: 700; }
.partner-path { margin-top: 26px; color: var(--muted); font-size: 13px; line-height: 1.5; }

.purpose-grid { display: grid; grid-template-columns: minmax(0, .78fr) minmax(420px, 1.22fr); gap: clamp(42px, 8vw, 110px); align-items: center; }
.purpose-copy p:not(.eyebrow) { color: var(--text-soft); font-size: 17px; line-height: 1.75; }
.purpose-visual { overflow: hidden; margin: 0; border: 1px solid var(--line); border-radius: 16px; background: var(--panel); box-shadow: 0 30px 90px rgb(0 0 0 / 35%); }
.purpose-visual img { display: block; width: 100%; height: auto; }
.purpose-visual figcaption { padding: 14px 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; }

.affiliate-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); counter-reset: step; }
.affiliate-step { position: relative; min-height: 210px; padding: 30px 28px; border-block: 1px solid var(--line); counter-increment: step; }
.affiliate-step + .affiliate-step { border-left: 1px solid var(--line); }
.affiliate-step::before { display: block; margin-bottom: 45px; color: var(--focus); content: "0" counter(step); font: 500 24px/1 Georgia, "Times New Roman", serif; }
.affiliate-step:not(:last-child)::after { position: absolute; top: 40px; right: -9px; z-index: 1; width: 18px; height: 18px; border-top: 1px solid var(--focus); border-right: 1px solid var(--focus); content: ""; transform: rotate(45deg); }
.affiliate-step h3 { margin: 0 0 10px; font-size: 18px; }
.affiliate-step p { margin: 0; color: var(--text-soft); line-height: 1.55; }

.affiliate-faq { display: grid; grid-template-columns: minmax(240px, .45fr) minmax(0, 1fr); gap: clamp(40px, 8vw, 100px); align-items: start; }
.affiliate-faq-heading { position: sticky; top: 100px; }
.affiliate-faq-heading h2 { margin: 8px 0; font: 500 clamp(38px, 5vw, 60px)/1 Georgia, "Times New Roman", serif; letter-spacing: -.045em; }
.affiliate-faq-list { border-top: 1px solid var(--line); }
.affiliate-faq-list details { border-bottom: 1px solid var(--line); }
.affiliate-faq-list summary { display: flex; justify-content: space-between; gap: 20px; padding: 25px 4px; cursor: pointer; font-size: 17px; font-weight: 700; list-style: none; }
.affiliate-faq-list summary::-webkit-details-marker { display: none; }
.affiliate-faq-list summary::after { flex: 0 0 auto; color: var(--focus); content: "+"; font-size: 24px; font-weight: 400; }
.affiliate-faq-list details[open] summary::after { content: "−"; }
.affiliate-faq-list details p { max-width: 750px; margin: -5px 0 25px; color: var(--text-soft); line-height: 1.7; }
.affiliate-faq-list summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; border-radius: 4px; }

.affiliate-note { padding: clamp(26px, 4vw, 40px); border: 1px solid var(--affiliate-line); border-radius: 12px; background: var(--affiliate-wash); }
.affiliate-note h2 { margin: 0 0 10px; font-size: 19px; }
.affiliate-note p { margin: 0; color: var(--text-soft); font-size: 16px; line-height: 1.65; }
.affiliate-final { display: flex; justify-content: space-between; gap: 44px; align-items: end; padding-block: clamp(76px, 9vw, 116px); }
.affiliate-final > div { max-width: 750px; }
.affiliate-final p { color: var(--text-soft); font-size: 17px; line-height: 1.65; }

@media (max-width: 940px) {
  .affiliate-hero-grid, .purpose-grid { grid-template-columns: 1fr; }
  .affiliate-hero { min-height: auto; }
  .affiliate-hero-card { max-width: 560px; }
  .affiliate-highlights { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 0; }
  .purpose-visual { max-width: 760px; }
  .affiliate-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .affiliate-step:nth-child(3) { border-left: 0; }
  .affiliate-step:nth-child(n+3) { border-top: 0; }
  .affiliate-step:nth-child(2)::after { display: none; }
}

@media (max-width: 680px) {
  .affiliate-shell { width: min(100% - 28px, 1180px); }
  .affiliate-hero { padding-block: 60px 74px; }
  .affiliate-hero h1 { font-size: clamp(49px, 15vw, 68px); }
  .affiliate-highlights, .programme-grid, .affiliate-steps, .affiliate-faq { grid-template-columns: 1fr; }
  .affiliate-highlight { min-height: 0; }
  .programme-card > p { min-height: 0; }
  .affiliate-step { min-height: 0; border: 0; border-left: 1px solid var(--line) !important; padding: 16px 20px 34px 54px; }
  .affiliate-step::before { position: absolute; top: 16px; left: 12px; margin: 0; }
  .affiliate-step::after { top: auto !important; right: auto !important; bottom: 8px; left: 17px; display: block !important; transform: rotate(135deg) !important; }
  .affiliate-step:last-child::after { display: none !important; }
  .affiliate-faq-heading { position: static; }
  .affiliate-final { align-items: stretch; flex-direction: column; }
  .affiliate-final .button { width: 100%; }
}

.affiliate-application-shell { width: min(900px, calc(100% - 36px)); margin-inline: auto; padding: clamp(56px, 8vw, 100px) 0 110px; }
.application-heading { max-width: 760px; margin-bottom: 44px; }
.application-heading h1 { margin: 10px 0 18px; font: 500 clamp(48px, 7vw, 76px)/.95 Georgia, "Times New Roman", serif; letter-spacing: -.05em; }
.application-heading > p:last-child { color: var(--text-soft); font-size: 18px; line-height: 1.7; }
.application-form { display: grid; gap: 18px; }
.application-panel { padding: clamp(24px, 4vw, 42px); border: 1px solid var(--line); border-radius: 14px; background: var(--panel); }
.application-panel h2 { margin: 0 0 8px; font: 500 clamp(27px, 3vw, 36px)/1.08 Georgia, "Times New Roman", serif; }
.application-panel p { color: var(--text-soft); line-height: 1.6; }
.application-section-heading { display: grid; grid-template-columns: 42px 1fr; gap: 16px; margin-bottom: 30px; }
.application-section-heading > span { color: var(--focus); font: 500 19px/1.2 Georgia, "Times New Roman", serif; }
.application-section-heading p { margin: 0; }
.application-identity { display: grid; grid-template-columns: 1fr 1.35fr .7fr; gap: 12px; margin: 0; }
.application-identity div { min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel-2); }
.application-identity dt { margin-bottom: 7px; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.application-identity dd { overflow-wrap: anywhere; margin: 0; font-weight: 700; }
.identity-verified { color: var(--focus); }
.identity-unverified, .form-message, .code-status.unavailable { color: #f0a79f; }
.verification-prompt { margin-top: 18px; padding: 18px; border: 1px solid #75504d; border-radius: 8px; background: rgb(117 80 77 / 16%); }
.verification-prompt p { margin: 5px 0 14px; }
.verification-prompt span { display: inline-block; margin-left: 12px; color: var(--text-soft); font-size: 13px; }
.application-field { display: grid; gap: 8px; margin-top: 24px; color: var(--text); font-size: 13px; font-weight: 750; }
.application-field > span { color: var(--muted); font-size: 11px; font-weight: 500; }
.application-field input, .application-field textarea, .social-account-row input, .social-account-row select { width: 100%; padding: 13px 14px; border: 1px solid var(--line-strong); border-radius: 7px; outline: 0; background: #0c100f; color: var(--text); font: inherit; }
.application-field input:focus, .application-field textarea:focus, .social-account-row input:focus, .social-account-row select:focus { border-color: var(--focus); box-shadow: 0 0 0 3px rgb(212 244 107 / 12%); }
.application-field textarea { resize: vertical; line-height: 1.55; }
.social-account-list { display: grid; gap: 10px; }
.social-account-row { display: grid; grid-template-columns: minmax(150px, .42fr) minmax(220px, 1fr) auto; gap: 10px; align-items: end; }
.social-account-row label { display: grid; gap: 7px; color: var(--muted); font-size: 11px; font-weight: 750; }
.social-remove, .text-button { border: 0; background: transparent; color: var(--focus); cursor: pointer; font-weight: 750; }
.social-remove { min-height: 45px; padding: 0 8px; color: var(--muted); }
.social-remove:hover, .social-remove:focus-visible { color: #f0a79f; }
#addSocialAccount { margin-top: 16px; padding: 4px 0; }
.code-status { min-height: 22px; margin: 8px 0 0; font-size: 13px; }
.code-status.available { color: var(--focus); }
.application-submit { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 20px; align-items: center; padding: 20px 4px; }
.application-submit > p:first-child { max-width: 540px; margin: 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
.application-submit .form-message { flex-basis: 100%; margin: 0; }
.application-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.application-confirmation { text-align: center; }
.confirmation-mark { display: grid; width: 64px; height: 64px; align-items: center; margin: 0 auto 20px; border: 1px solid var(--affiliate-line); border-radius: 50%; background: var(--affiliate-wash); color: var(--focus); font-size: 28px; }
.application-confirmation dl { display: flex; justify-content: center; gap: 50px; margin: 28px 0; }
.application-confirmation dt { color: var(--muted); font-size: 11px; text-transform: uppercase; }
.application-confirmation dd { margin: 5px 0 0; font-weight: 800; }
.information-request-card { margin: 28px 0; padding: 24px; border: 1px solid #a7763c; border-radius: 10px; background: rgb(167 118 60 / 12%); text-align: left; }
.information-request-card h2 { font-size: clamp(24px, 3vw, 31px); }
.information-request-card h3 { margin: 22px 0 8px; font-size: 15px; }
.information-request-card > p:not(.eyebrow) { white-space: pre-wrap; }
.information-request-card dl { justify-content: flex-start; gap: 36px; margin: 20px 0; }
.information-request-card form { display: grid; gap: 12px; margin-top: 22px; }

@media (max-width: 680px) {
  .affiliate-application-shell { width: min(100% - 28px, 900px); padding-top: 46px; }
  .application-identity, .social-account-row { grid-template-columns: 1fr; }
  .social-remove { min-height: auto; justify-self: start; padding: 4px 0 10px; }
  .application-submit { align-items: stretch; flex-direction: column; }
  .application-submit .button { width: 100%; }
  .information-request-card dl { flex-direction: column; gap: 12px; }
  .information-request-card form .button { width: 100%; }
  .verification-prompt span { display: block; margin: 10px 0 0; }
}
