/* ============================================================
   Primes Club — Partnership Program page  (/partnership-program)
   Brand: navy #030641 (primary), blue #0e3789 (secondary). No gold.
   ============================================================ */
.pp-page{ --pp-navy:#030641; --pp-blue:#0e3789; --pp-blue-2:#2950bd; --pp-ice:#bcd0ff; overflow-x:hidden; }

/* ---------- shared ---------- */
.pp-eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    font-size:12px; font-weight:800; letter-spacing:1.2px; text-transform:uppercase;
    color:var(--pp-ice); background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12);
    padding:6px 14px; border-radius:999px; margin-bottom:16px;
}
.pp-eyebrow-dark{ color:var(--pp-blue); background:rgba(14,55,137,.08); border-color:rgba(14,55,137,.14); }
.pp-head{ text-align:center; max-width:720px; margin:0 auto 42px; }
.pp-head h2{ margin:0 0 12px; font-size:clamp(24px,3.4vw,36px); font-weight:900; color:var(--pp-navy); line-height:1.25; }
.pp-head p{ margin:0; font-size:15.5px; line-height:1.8; color:var(--text-mute,#5a6478); }
.pp-section{ padding:72px 0; background:var(--bg,#f4f6fb); }
.pp-section-alt{ background:#fff; }

.pp-btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:13px 22px; border-radius:12px; font-size:14.5px; font-weight:800; text-decoration:none;
    white-space:nowrap; position:relative; overflow:hidden; isolation:isolate;
    transition:transform .25s ease, box-shadow .25s ease, background .25s ease, border-color .25s ease;
}
.pp-btn-lg{ padding:16px 28px; font-size:15.5px; }
.pp-btn-arrow{ font-size:12px; transition:transform .25s ease; }
.pp-btn:hover .pp-btn-arrow{ transform:translateX(4px); }
html[dir="rtl"] .pp-btn-arrow{ transform:rotate(180deg); }
html[dir="rtl"] .pp-btn:hover .pp-btn-arrow{ transform:rotate(180deg) translateX(4px); }
.pp-btn-primary{
    color:#fff; background:linear-gradient(135deg, var(--pp-blue-2) 0%, var(--pp-blue) 60%, var(--pp-navy) 100%);
    box-shadow:0 10px 26px rgba(14,55,137,.35), inset 0 1px 0 rgba(255,255,255,.18);
}
.pp-btn-primary::after{
    content:""; position:absolute; inset:0; z-index:-1;
    background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,.45) 50%, transparent 70%);
    transform:translateX(-120%); transition:transform .7s ease;
}
.pp-btn-primary:hover{ transform:translateY(-2px); box-shadow:0 16px 34px rgba(14,55,137,.45); color:#fff; }
.pp-btn-primary:hover::after{ transform:translateX(120%); }
.pp-btn-ghost{ color:#fff; border:1px solid rgba(255,255,255,.28); background:rgba(255,255,255,.06); }
.pp-btn-ghost:hover{ background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.5); color:#fff; transform:translateY(-2px); }
.pp-btn-light{ color:var(--pp-navy); background:#fff; box-shadow:0 10px 26px rgba(0,0,0,.25); }
.pp-btn-light:hover{ transform:translateY(-2px); color:var(--pp-blue); }
.pp-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.pp-actions-center{ justify-content:center; }
.pp-terms{ margin:14px 0 0; font-size:12.5px; color:rgba(255,255,255,.6); }

/* ---------- hero ---------- */
.pp-hero{
    position:relative; overflow:hidden; color:#fff;
    background:
        radial-gradient(900px 500px at 85% 10%, rgba(41,80,189,.45), transparent 60%),
        linear-gradient(135deg, var(--pp-navy) 0%, #071257 55%, var(--pp-blue) 100%);
    padding:84px 0 92px;
}
.pp-hero::before{
    content:""; position:absolute; inset:0; pointer-events:none; opacity:.35;
    background-image:linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
    background-size:44px 44px;
    mask-image:radial-gradient(ellipse at 50% 40%, #000 20%, transparent 75%);
}
.pp-hero-glow{ position:absolute; border-radius:50%; filter:blur(70px); pointer-events:none; }
.pp-hero-glow-1{ width:520px; height:520px; background:rgba(41,80,189,.45); top:-200px; inset-inline-end:-120px; }
.pp-hero-glow-2{ width:380px; height:380px; background:rgba(14,55,137,.5); bottom:-220px; inset-inline-start:-80px; }
.pp-hero-grid{ position:relative; display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center; }
.pp-title{ margin:0 0 18px; font-size:clamp(28px,4vw,46px); font-weight:900; line-height:1.18; letter-spacing:-.3px; }
.pp-lead{ margin:0; font-size:16.5px; line-height:1.85; color:rgba(255,255,255,.84); max-width:640px; }
html[dir="rtl"] .pp-lead{ font-size:17.5px; }
.pp-hero-copy{ animation:ppUp .7s ease both; }

/* hero visual — floating cards */
.pp-hero-visual{ position:relative; min-height:460px; }
.pp-visual-badge{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:2;
    display:inline-flex; align-items:center; gap:10px;
    padding:16px 24px; border-radius:16px; font-weight:900; font-size:16px; letter-spacing:.2px;
    background:linear-gradient(135deg, rgba(255,255,255,.14), rgba(255,255,255,.05));
    border:1px solid rgba(255,255,255,.22); backdrop-filter:blur(10px);
    box-shadow:0 30px 60px -20px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.25);
    animation:ppPulse 4s ease-in-out infinite;
}
.pp-visual-badge i{ color:var(--pp-ice); }
.pp-float{
    position:absolute; z-index:3; display:flex; align-items:center; gap:12px;
    padding:12px 16px; border-radius:14px; min-width:220px;
    background:rgba(255,255,255,.96); color:var(--pp-navy);
    box-shadow:0 24px 50px -18px rgba(0,0,0,.55);
    animation:ppFloat 6s ease-in-out infinite;
}
.pp-float-ic{
    width:40px; height:40px; border-radius:11px; flex:0 0 auto; display:grid; place-items:center;
    background:linear-gradient(135deg, var(--pp-blue-2), var(--pp-blue)); color:#fff; font-size:15px;
}
.pp-float-meta{ display:flex; flex-direction:column; line-height:1.3; }
.pp-float-meta b{ font-size:14px; font-weight:800; }
.pp-float-meta small{ font-size:12px; color:var(--text-mute,#5a6478); margin-top:2px; }
.pp-float-1{ top:6%; inset-inline-start:0; animation-delay:0s; }
.pp-float-2{ top:24%; inset-inline-end:-2%; animation-delay:1.6s; }
.pp-float-3{ bottom:6%; inset-inline-start:6%; animation-delay:3.2s; }

/* ---------- who it is for ---------- */
.pp-who-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.pp-who{
    background:#fff; border:1px solid var(--line,#e3e7ef); border-radius:18px; padding:28px 24px;
    box-shadow:0 4px 14px rgba(10,20,40,.05); position:relative; overflow:hidden;
    transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.pp-who::before{
    content:""; position:absolute; inset:0 auto auto 0; width:100%; height:4px;
    background:linear-gradient(90deg, var(--pp-blue-2), var(--pp-navy)); opacity:0; transition:opacity .3s ease;
}
.pp-who:hover{ transform:translateY(-6px); box-shadow:0 24px 50px -20px rgba(14,55,137,.35); border-color:rgba(14,55,137,.25); }
.pp-who:hover::before{ opacity:1; }
.pp-who-ic{
    width:52px; height:52px; border-radius:14px; display:grid; place-items:center; margin-bottom:18px;
    background:rgba(14,55,137,.08); color:var(--pp-blue); font-size:20px; transition:all .3s ease;
}
.pp-who:hover .pp-who-ic{ background:linear-gradient(135deg, var(--pp-blue-2), var(--pp-navy)); color:#fff; transform:scale(1.06); }
.pp-who h3{ margin:0 0 8px; font-size:18px; font-weight:800; color:var(--pp-navy); }
.pp-who p{ margin:0; font-size:14px; line-height:1.75; color:var(--text-mute,#5a6478); }

/* ---------- benefits ---------- */
.pp-benefits{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.pp-benefit{
    display:flex; gap:16px; align-items:flex-start;
    background:var(--bg,#f4f6fb); border:1px solid var(--line,#e3e7ef); border-radius:18px; padding:24px;
    transition:transform .3s ease, box-shadow .3s ease, background .3s ease;
}
.pp-benefit:hover{ transform:translateY(-4px); background:#fff; box-shadow:0 20px 44px -22px rgba(14,55,137,.35); }
.pp-benefit-ic{
    width:48px; height:48px; flex:0 0 auto; border-radius:13px; display:grid; place-items:center; font-size:18px;
    background:linear-gradient(135deg, var(--pp-blue-2), var(--pp-navy)); color:#fff; box-shadow:0 8px 18px rgba(14,55,137,.3);
}
.pp-benefit h3{ margin:0 0 6px; font-size:16.5px; font-weight:800; color:var(--pp-navy); }
.pp-benefit p{ margin:0; font-size:14px; line-height:1.75; color:var(--text-mute,#5a6478); }

/* ---------- narrative band ---------- */
.pp-band{
    position:relative; overflow:hidden; color:#fff; padding:76px 0;
    background:radial-gradient(700px 400px at 10% 100%, rgba(41,80,189,.4), transparent 60%), linear-gradient(135deg, var(--pp-blue) 0%, var(--pp-navy) 70%);
}
.pp-band-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center; position:relative; }
.pp-band h2{ margin:0 0 14px; font-size:clamp(24px,3.2vw,34px); font-weight:900; line-height:1.25; }
.pp-band p{ margin:0; font-size:15.5px; line-height:1.85; color:rgba(255,255,255,.82); }
.pp-band-cta{
    background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.16); border-radius:20px; padding:30px;
    backdrop-filter:blur(8px); box-shadow:0 30px 60px -30px rgba(0,0,0,.6);
}
.pp-band-quote{ font-size:17px; font-weight:700; line-height:1.7; margin:0 0 20px !important; color:#fff !important; }
.pp-band-quote i{ color:var(--pp-ice); margin-inline-end:6px; font-size:14px; }
html[dir="rtl"] .pp-band-quote i{ transform:scaleX(-1); display:inline-block; }

/* ---------- steps ---------- */
.pp-steps{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; position:relative; counter-reset:pp; }
.pp-steps::before{
    content:""; position:absolute; top:34px; left:12%; right:12%; height:2px;
    background:linear-gradient(90deg, transparent, rgba(14,55,137,.3), transparent);
}
.pp-step{
    position:relative; text-align:center; background:#fff; border:1px solid var(--line,#e3e7ef); border-radius:18px; padding:28px 24px 26px;
    box-shadow:0 4px 14px rgba(10,20,40,.05); transition:transform .3s ease, box-shadow .3s ease;
}
.pp-step:hover{ transform:translateY(-6px); box-shadow:0 24px 50px -20px rgba(14,55,137,.35); }
.pp-step-no{
    width:56px; height:56px; border-radius:50%; display:grid; place-items:center; margin:-56px auto 16px;
    font-size:20px; font-weight:900; color:#fff;
    background:linear-gradient(135deg, var(--pp-blue-2), var(--pp-navy)); box-shadow:0 10px 24px rgba(14,55,137,.35), 0 0 0 6px #fff;
}
.pp-step h3{ margin:0 0 8px; font-size:18px; font-weight:800; color:var(--pp-navy); }
.pp-step p{ margin:0; font-size:14px; line-height:1.75; color:var(--text-mute,#5a6478); }
.pp-steps{ padding-top:28px; }

/* ---------- final CTA ---------- */
.pp-final{ padding:0 0 90px; background:var(--bg,#f4f6fb); }
.pp-final-card{
    position:relative; overflow:hidden; text-align:center; color:#fff; padding:64px 32px; border-radius:28px;
    background:linear-gradient(135deg, var(--pp-navy) 0%, #071257 55%, var(--pp-blue) 100%);
    box-shadow:0 40px 80px -30px rgba(3,6,65,.55);
}
.pp-final-glow{ position:absolute; width:600px; height:600px; border-radius:50%; background:rgba(41,80,189,.4); filter:blur(90px); top:-300px; inset-inline-end:-200px; pointer-events:none; }
.pp-final-card h2{ position:relative; margin:0 0 12px; font-size:clamp(24px,3.4vw,38px); font-weight:900; }
.pp-final-card p{ position:relative; margin:0 auto; font-size:16px; line-height:1.8; color:rgba(255,255,255,.84); max-width:620px; }
.pp-final-card .pp-actions{ position:relative; }
.pp-final-note{ margin-top:22px !important; font-size:14px !important; }
.pp-final-note a{ color:var(--pp-ice); font-weight:700; text-decoration:underline; }
.pp-final-card .pp-terms{ position:relative; }

/* ---------- animations ---------- */
@keyframes ppUp{ from{ opacity:0; transform:translateY(16px);} to{ opacity:1; transform:translateY(0);} }
@keyframes ppFloat{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-12px);} }
@keyframes ppPulse{ 0%,100%{ box-shadow:0 30px 60px -20px rgba(0,0,0,.6), 0 0 0 0 rgba(188,208,255,.35);} 50%{ box-shadow:0 30px 60px -20px rgba(0,0,0,.6), 0 0 0 18px rgba(188,208,255,0);} }
@media (prefers-reduced-motion: reduce){ .pp-page *{ animation:none !important; transition:none !important; } }

/* ---------- responsive ---------- */
@media (max-width: 1024px){
    .pp-who-grid{ grid-template-columns:repeat(2,1fr); }
    .pp-benefits{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 900px){
    .pp-hero{ padding:60px 0 70px; }
    .pp-hero-grid{ grid-template-columns:1fr; gap:36px; }
    .pp-hero-visual{ min-height:360px; max-width:520px; margin:0 auto; width:100%; }
    .pp-band-grid{ grid-template-columns:1fr; gap:28px; }
    .pp-steps{ grid-template-columns:1fr; gap:40px; }
    .pp-steps::before{ display:none; }
}
@media (max-width: 600px){
    .pp-section{ padding:56px 0; }
    .pp-who-grid, .pp-benefits{ grid-template-columns:1fr; }
    .pp-float{ min-width:0; padding:10px 12px; }
    .pp-float-meta small{ display:none; }
    .pp-float-2{ inset-inline-end:0; }
    .pp-hero-visual{ min-height:300px; }
    .pp-actions .pp-btn{ width:100%; justify-content:center; }
    .pp-final-card{ padding:48px 20px; border-radius:20px; }
}

/* ============================================================
   Animations v2 — network (hero), roots (band), scroll reveal
   ============================================================ */
/* ---- scroll reveal ---- */
.pp-reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); transition-delay:var(--d,0s); }
.pp-reveal.is-in{ opacity:1; transform:none; }
.pp-band.pp-reveal{ transform:none; opacity:1; } /* the band itself stays visible; only its roots + card animate */

/* ---- hero network: one partner, many clients ---- */
.pp-net{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.pp-net-glow{ animation:ppGlowPulse 4s ease-in-out infinite; transform-box:fill-box; transform-origin:center; }
.pp-net-rings circle{ fill:none; stroke:#bcd0ff; stroke-width:1.2; opacity:0; transform-box:fill-box; transform-origin:center; animation:ppRing 3.9s ease-out infinite; }
.pp-link{
    fill:none; stroke:url(#ppLink); stroke-width:1.8; stroke-linecap:round;
    stroke-dasharray:1; stroke-dashoffset:1;
    animation:ppDraw 1.1s cubic-bezier(.3,.7,.2,1) forwards; animation-delay:var(--d,0s);
}
.pp-link-sub{ stroke-width:1.1; opacity:.7; }
.pp-pulse{ fill:#fff; filter:drop-shadow(0 0 6px #bcd0ff); opacity:.95; }
.pp-node{ transform-box:fill-box; transform-origin:center; opacity:0; animation:ppPop .6s cubic-bezier(.2,1.4,.4,1) forwards; animation-delay:var(--d,0s); }
.pp-node-bg{ fill:rgba(255,255,255,.96); stroke:#bcd0ff; stroke-width:1.5; filter:drop-shadow(0 10px 18px rgba(0,0,0,.35)); }
.pp-node-ic{ fill:#0e3789; }
.pp-node:nth-child(odd) .pp-node-bg{ fill:#1b2d8a; stroke:rgba(255,255,255,.45); }
.pp-node:nth-child(odd) .pp-node-ic{ fill:#fff; }
.pp-net-nodes .pp-node{ animation-name:ppPop, ppBob; animation-duration:.6s, 5s; animation-timing-function:cubic-bezier(.2,1.4,.4,1), ease-in-out; animation-iteration-count:1, infinite; animation-delay:var(--d,0s), calc(var(--d,0s) + .6s); animation-fill-mode:forwards, none; }
.pp-leaf{ fill:#bcd0ff; opacity:0; transform-box:fill-box; transform-origin:center; animation:ppPop .5s ease-out forwards, ppTwinkle 3s ease-in-out infinite; animation-delay:var(--d,0s), calc(var(--d,0s) + .5s); filter:drop-shadow(0 0 6px rgba(188,208,255,.9)); }

@keyframes ppDraw{ to{ stroke-dashoffset:0; } }
@keyframes ppPop{ 0%{ opacity:0; transform:scale(.2);} 100%{ opacity:1; transform:scale(1);} }
@keyframes ppBob{ 0%,100%{ translate:0 0; } 50%{ translate:0 -5px; } }
@keyframes ppTwinkle{ 0%,100%{ opacity:.55; } 50%{ opacity:1; } }
@keyframes ppRing{ 0%{ transform:scale(.6); opacity:.6; } 100%{ transform:scale(2.6); opacity:0; } }
@keyframes ppGlowPulse{ 0%,100%{ transform:scale(1); opacity:.9; } 50%{ transform:scale(1.15); opacity:1; } }

/* ---- band: roots growing from one seed ---- */
.pp-band{ isolation:isolate; }
.pp-roots{ position:absolute; inset:auto 0 0 0; width:100%; height:100%; z-index:0; pointer-events:none; opacity:.72; }
.pp-band .container{ position:relative; z-index:1; }
.pp-root{ fill:none; stroke:#bcd0ff; stroke-linecap:round; stroke-dasharray:1; stroke-dashoffset:1; }
.pp-root-0{ stroke-width:2.2; opacity:.45; }
.pp-root-1{ stroke-width:1.6; opacity:.35; }
.pp-root-2{ stroke-width:1.2; opacity:.28; }
.pp-root-3{ stroke-width:.9; opacity:.22; }
.pp-root-dot{ fill:#bcd0ff; opacity:0; transform-box:fill-box; transform-origin:center; }
.pp-root-seed{ fill:#fff; filter:drop-shadow(0 0 14px #bcd0ff); animation:ppSeed 2.6s ease-in-out infinite; }
.pp-band.is-in .pp-root{ animation:ppDraw 1.4s cubic-bezier(.3,.7,.2,1) forwards; animation-delay:var(--d,0s); }
.pp-band.is-in .pp-root-dot{ animation:ppPop .5s ease-out forwards, ppTwinkle 3.4s ease-in-out infinite; animation-delay:var(--d,0s), calc(var(--d,0s) + .5s); }
@keyframes ppSeed{ 0%,100%{ r:9; } 50%{ r:12; } }

@media (max-width: 900px){
    .pp-hero-visual{ min-height:400px; }
    .pp-roots{ opacity:.55; }
}
@media (max-width: 600px){
    .pp-hero-visual{ min-height:340px; }
}
