.affiliate-main { max-width: 1440px; margin: auto; padding: 170px 6vw 80px; }
.affiliate-eyebrow { font-size: .75rem; letter-spacing: .15em; text-transform: uppercase; color: #bfbfbf; margin: 0 0 1.5rem; }
.affiliate-hero { display: grid; grid-template-columns: 1.6fr 1fr; gap: 5vw; align-items: end; padding-bottom: 100px; }
.affiliate-hero h1 { font-family: Archivo, sans-serif; font-size: clamp(3rem, 6.5vw, 6.5rem); letter-spacing: -.065em; line-height: 1.04; margin: 0; text-transform: none; }
.affiliate-hero h1 em { font-style: normal; color: #aeaeae; }
.affiliate-intro { font-size: 1.1rem; color: #bfbfbf; max-width: 460px; line-height: 1.65; margin: 2rem 0; }
.affiliate-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 2rem; background: #ffffff; color: #131313; border: 0; border-radius: 6px; padding: 1.1rem 1.3rem; font: inherit; font-weight: 500; cursor: pointer; text-decoration: none; transition: background-color 150ms; min-height: 48px; }
.affiliate-button:hover { background: #aeaeae; }
.affiliate-button span { font-size: 1.4rem; }
.affiliate-hero-note { border: 1px solid #353535; border-radius: 18px; background: radial-gradient(ellipse at top right, #333333, #161616 65%); padding: 2.5rem; }
.affiliate-symbol { display: block; font-size: 7rem; color: #aeaeae; line-height: 1; margin-bottom: 3rem; }
.affiliate-hero-note p { font-size: clamp(1.5rem, 2.5vw, 2.2rem); letter-spacing: -.03em; line-height: 1.15; margin: 0 0 1.5rem; }
.affiliate-hero-note > span:last-of-type { display: block; color: #bfbfbf; line-height: 1.65; max-width: 290px; font-size: .9rem; }
.affiliate-hero-note a { display: inline-block; font-size: .85rem; margin-top: 2rem; text-underline-offset: 5px; }
.affiliate-section { padding: 70px 0; border-top: 1px solid #2e2e2e; }
.affiliate-main h2 { font-family: Archivo, sans-serif; font-size: clamp(2rem, 3.6vw, 3.4rem); font-weight: 500; letter-spacing: -.045em; line-height: 1.12; margin: 0 0 2.5rem; }
.affiliate-steps { display: grid; grid-template-columns: repeat(3, 1fr); list-style: none; padding: 0; margin: 2.5rem 0 0; gap: 2.5rem; }
.affiliate-steps li > span { color: #aeaeae; font-size: .7rem; letter-spacing: .12em; }
.affiliate-steps h3 { font-size: 1.2rem; margin: 1.2rem 0 .8rem; font-weight: 500; letter-spacing: -.02em; }
.affiliate-steps p { color: #bfbfbf; line-height: 1.7; font-size: .92rem; margin: 0; }
.affiliate-offering { padding: 2.8rem; margin: 0 0 70px; background: #ffffff; border-radius: 14px; color: #131313; }
.affiliate-offering .affiliate-eyebrow { color: #575757; }
.affiliate-offering ul { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 2rem; margin: 0; padding: 0; }
.affiliate-offering li { padding-top: 1rem; border-top: 1px solid #c4c4c4; font-size: .98rem; }
.affiliate-apply { display: grid; grid-template-columns: 1fr 1.4fr; gap: 6vw; scroll-margin-top: 100px; }
.affiliate-apply-intro > p:not(.affiliate-eyebrow) { color: #bfbfbf; font-size: .95rem; line-height: 1.7; margin-bottom: 1.4rem; max-width: 320px; }
.affiliate-apply-intro a { display: inline-block; margin-top: 1rem; font-size: .85rem; text-underline-offset: 4px; overflow-wrap: anywhere; }
.affiliate-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1.3rem; border: 1px solid #353535; border-radius: 14px; padding: 2rem; background: #141414; }
.affiliate-wide { grid-column: 1 / -1; }
.affiliate-form-note { color: #bfbfbf; margin: 0; font-size: .8rem; }
.affiliate-form label { display: grid; gap: .65rem; font-size: .8rem; line-height: 1.5; color: #e1e1e1; min-width: 0; }
.affiliate-form input:not([type=checkbox]), .affiliate-form select, .affiliate-form textarea { width: 100%; min-width: 0; background: #0f0f0f; color: #ffffff; border: 1px solid #454545; border-radius: 6px; padding: .85rem; font: inherit; font-size: 16px; line-height: 1.5; }
.affiliate-form textarea { resize: vertical; }
.affiliate-form input::placeholder, .affiliate-form textarea::placeholder { color: #989898; }
.affiliate-form [aria-invalid=true] { border-color: #acacac !important; }
.affiliate-form label.affiliate-consent { display: flex; align-items: flex-start; gap: .75rem; color: #bfbfbf; }
.affiliate-consent input { margin-top: 3px; flex-shrink: 0; width: 18px; height: 18px; accent-color: #aeaeae; }
.affiliate-consent a { text-decoration: underline; text-underline-offset: 3px; }
.affiliate-form .field-error { color: #cdcdcd; font-size: .8rem; }
.affiliate-status { background: #202020; color: #cdcdcd; padding: 1rem; border-radius: 6px; font-size: .9rem; line-height: 1.5; }
.affiliate-success { padding: 2.5rem; border: 1px solid #636363; background: #1f1f1f; border-radius: 14px; }
.affiliate-success h3 { font-size: 2rem; font-weight: 500; margin: 1rem 0; letter-spacing: -.04em; }
.affiliate-success p { color: #bfbfbf; line-height: 1.7; margin-bottom: 2rem; }
.affiliate-success a { text-underline-offset: 5px; }
.affiliate-faq { max-width: 850px; }
.affiliate-faq details { border-bottom: 1px solid #353535; }
.affiliate-faq summary { padding: 1.4rem 0; cursor: pointer; font-size: 1rem; line-height: 1.5; }
.affiliate-faq details p { color: #bfbfbf; line-height: 1.75; font-size: .95rem; padding: 0 1.5rem 1.5rem 0; margin: 0; }
.affiliate-main :focus-visible { outline: 2px solid #aeaeae; outline-offset: 5px; }
@media (max-width: 900px) {
    .affiliate-main { padding: 135px 6vw 50px; }
    .affiliate-hero { grid-template-columns: 1fr; gap: 3rem; padding-bottom: 60px; }
    .affiliate-hero-note { max-width: 500px; }
    .affiliate-symbol { font-size: 4rem; margin-bottom: 1.5rem; }
    .affiliate-apply { grid-template-columns: 1fr; gap: 2rem; }
    .affiliate-apply-intro > p:not(.affiliate-eyebrow) { max-width: 550px; }
    .affiliate-steps { gap: 1.5rem; }
}
@media (max-width: 600px) {
    .affiliate-main { padding-top: 120px; }
    .affiliate-hero h1 { font-size: clamp(2.5rem, 10.5vw, 3.7rem); }
    .affiliate-hero-note { padding: 1.7rem; }
    .affiliate-steps { grid-template-columns: 1fr; gap: 2rem; }
    .affiliate-section { padding: 45px 0; }
    .affiliate-offering { padding: 1.7rem; margin-bottom: 45px; }
    .affiliate-offering ul { grid-template-columns: 1fr; }
    .affiliate-form { grid-template-columns: 1fr; padding: 1.3rem; }
    .affiliate-button { gap: 1rem; font-size: .9rem; width: 100%; }
    .affiliate-success { padding: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) { .affiliate-button { transition: none; } }
