.aff-hero{
  position:relative;color:#fff;overflow:hidden;padding:2.8rem 4vw 2.2rem;
  background:
    radial-gradient(circle at 80% 20%, rgba(240,215,140,.28), transparent 40%),
    radial-gradient(circle at 10% 85%, rgba(15,118,110,.4), transparent 42%),
    linear-gradient(145deg,#050910,#0b1220 45%,#0f766e);
}
.aff-hero-inner{max-width:1100px;margin:0 auto}
.aff-hero h1{font-family:var(--display);font-size:clamp(2.4rem,7vw,4rem);letter-spacing:.03em;line-height:.95;margin:.35rem 0;max-width:16ch}
.aff-hero p{color:rgba(255,255,255,.8);max-width:38rem;line-height:1.55;margin:.7rem 0 1.1rem;font-size:1.05rem}
.aff-sub{
  display:flex;flex-wrap:wrap;gap:.35rem;padding:.75rem 4vw;background:#0b1220;border-bottom:1px solid rgba(255,255,255,.08);
  position:sticky;top:64px;z-index:30;
}
.aff-sub a{
  font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.55);padding:.45rem .75rem;border-radius:999px;border:1px solid transparent;
}
.aff-sub a:hover{color:#fff;background:rgba(255,255,255,.06)}
.aff-sub a.is-active{color:#0b1220;background:#f0d78c}
.aff-sub a.aff-cta{margin-left:auto;background:linear-gradient(180deg,#f0d78c,#d4af37);color:#0b1220}
.aff-wrap{max-width:1100px;margin:0 auto;padding:2.25rem 4vw 4rem}
.aff-wrap h2{font-family:var(--display);font-size:clamp(1.7rem,4vw,2.4rem);letter-spacing:.04em;margin:0 0 .5rem}
.aff-wrap .lead{color:#5c6473;max-width:40rem;line-height:1.55;margin:0 0 1.25rem}
.aff-grid{display:grid;gap:.85rem}
@media(min-width:800px){.aff-grid.three{grid-template-columns:repeat(3,1fr)}.aff-grid.two{grid-template-columns:1fr 1fr}}
.aff-card{
  background:#fff;border:1px solid rgba(18,24,38,.08);border-radius:14px;padding:1.25rem;
}
.aff-card h3{font-size:1.1rem;margin:0 0 .4rem}
.aff-card p,.aff-card li{font-size:.9rem;color:#5c6473;line-height:1.5}
.aff-card ol,.aff-card ul{margin:.4rem 0 0;padding-left:1.1rem}
.aff-card li{margin:.25rem 0}
.aff-faq details{border-bottom:1px solid rgba(18,24,38,.08);padding:.9rem 0}
.aff-faq summary{font-weight:800;cursor:pointer}
.aff-faq p{margin:.45rem 0 0;color:#5c6473;font-size:.9rem;line-height:1.5}
.aff-tool{
  background:#0b1220;color:#fff;border-radius:16px;padding:1.35rem;display:grid;gap:.65rem;margin-top:1rem;
}
.aff-tool label{font-size:.65rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.aff-tool input,.aff-tool select{
  width:100%;padding:.75rem .85rem;border-radius:10px;border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06);color:#fff;font:inherit;
}
.aff-tool select option{color:#121826}
.aff-out{
  word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;
  padding:.85rem;border-radius:10px;background:rgba(240,215,140,.12);color:#f0d78c;
}
.aff-rate{
  display:grid;gap:.65rem;margin:1.25rem 0;
}
@media(min-width:700px){.aff-rate{grid-template-columns:1fr 1fr}}
.aff-rate div{
  border-radius:12px;padding:1.15rem;background:linear-gradient(155deg,#0b1220,#163a74);color:#fff;
}
.aff-rate strong{display:block;font-family:var(--display);font-size:2.2rem;color:#f0d78c;letter-spacing:.04em}
.aff-rate span{font-size:.85rem;color:rgba(255,255,255,.75);line-height:1.4}
