/* Styles for the Partner program, Terms and Privacy pages. Builds on styles.css. */

/* Reading progress bar */
.read-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:60;background:linear-gradient(90deg,var(--violet),var(--lavender));transform-origin:0 50%;transform:scaleX(0);pointer-events:none}

/* ===== Legal pages ===== */
.legal-hero{padding:64px 0 34px;position:relative;overflow:hidden}
.legal-hero .wrap{position:relative;z-index:1}
.legal-hero h1{font-size:clamp(42px,6.4vw,84px);letter-spacing:-.035em;max-width:14ch}
.legal-hero .lede{margin-top:20px}
.legal-hero .bg-orb{position:absolute;pointer-events:none;width:300px;height:300px;right:-90px;top:-110px;opacity:.85}
.legal-hero .bg-orb.small{width:84px;height:84px;right:22%;top:auto;bottom:6px;opacity:.6}
.doc-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.doc-meta span{background:var(--paper);border:1px solid var(--line);padding:7px 14px;border-radius:var(--radius-pill);font-size:14px;font-weight:500}
.doc-meta span b{font-weight:600;color:var(--violet-deep)}
.legal-body{padding:20px 0 110px}
.legal-grid{display:grid;grid-template-columns:290px minmax(0,1fr);gap:44px;align-items:start}

.toc{position:sticky;top:96px;max-height:calc(100vh - 120px);overflow:auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px 16px 16px}
.toc-toggle{all:unset;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;width:100%;font:600 13px var(--body);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);padding:0 8px}
.toc-toggle::after{content:"";display:none}
.toc-search{width:100%;margin-top:14px;font:500 15px var(--body);color:var(--ink);background:var(--mist);border:1.5px solid transparent;border-radius:var(--radius-pill);padding:10px 16px}
.toc-search:focus{outline:0;border-color:var(--violet);background:#fff}
.toc ol{list-style:none;margin:12px 0 0;padding:0}
.toc a{display:block;padding:7px 12px;border-radius:10px;text-decoration:none;font-size:14.5px;line-height:1.35;color:var(--ink-soft);transition:background .15s,color .15s}
.toc a:hover{background:var(--mist);color:var(--ink)}
.toc a.active{background:var(--ink);color:#fff}
.toc ol ol{display:none;margin:2px 0 8px 10px;border-left:1.5px solid var(--line);padding-left:6px}
.toc li.open > ol{display:block}
.toc ol ol a{font-size:13.5px;padding:5px 10px}
.toc ol ol a.active{background:var(--lavender);color:var(--ink)}
.toc li[hidden]{display:none}

.doc{display:grid;gap:16px;min-width:0}
.doc-sec{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);padding:34px 38px;transition:border-color .25s, box-shadow .25s}
.doc-sec.current{border-color:var(--lavender);box-shadow:0 30px 60px -45px rgba(60,30,110,.45)}
.doc-sec[hidden]{display:none}
.doc-sec h2{font-size:clamp(24px,2.6vw,32px);line-height:1.15;display:flex;gap:12px;align-items:center}
.doc-sec h2 .orb{width:18px;height:18px;flex:none;box-shadow:none}
.doc-sec h3{margin-top:30px;padding-top:26px;border-top:1px dashed var(--line);font-size:20px}
.doc-sec h2 + h3{border-top:0;padding-top:0;margin-top:22px}
.doc-sec p{color:var(--ink-soft);margin-top:12px;font-size:16.5px;line-height:1.72;overflow-wrap:anywhere}
.doc-sec a{color:var(--violet);font-weight:500}
.doc-intro{background:transparent;border-style:dashed}
.doc-intro p{margin-top:0;color:var(--ink);font-size:18px}
.doc-empty{display:none;text-align:center;color:var(--ink-soft);padding:40px 20px}
.doc-empty.show{display:block}
mark{background:linear-gradient(transparent 55%, #F9DFAE 55%);color:inherit}

.promise{background:linear-gradient(160deg,#2A1F4D,var(--ink));color:#fff;border-radius:var(--radius-lg);padding:38px;position:relative;overflow:hidden}
.promise .orb{position:absolute;width:150px;height:150px;right:-40px;bottom:-50px;opacity:.9}
.promise .tag{font:600 13px var(--body);text-transform:uppercase;letter-spacing:.08em;color:var(--lavender)}
.promise blockquote{margin:14px 0 0;font:800 clamp(26px,3.4vw,40px)/1.1 var(--display);letter-spacing:-.02em;max-width:18ch;position:relative}
.promise ul{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;position:relative}
.promise li{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-md);padding:16px;font-size:15px;color:#D9D4F2;transition:background .2s, transform .2s}
.promise li:hover{background:rgba(255,255,255,.12);transform:translateY(-2px)}
.promise .src{margin-top:16px;font-size:13px;color:#A9A2C9;position:relative}
.promise .src a{color:var(--lavender)}

.doc-contact{background:var(--violet);color:#fff;border-radius:var(--radius-lg);padding:34px 38px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.doc-contact h2{font-size:clamp(24px,2.6vw,32px)}
.doc-contact p{color:#E9DFF8;margin-top:6px}
.to-top{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));width:48px;height:48px;border-radius:50%;border:0;cursor:pointer;background:var(--ink);color:#fff;font:600 20px/1 var(--body);box-shadow:0 14px 30px -12px rgba(28,22,51,.6);opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .25s, transform .25s;z-index:40}
.to-top.show{opacity:1;transform:none;pointer-events:auto}

/* ===== Partner program ===== */
.p-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:56px;position:relative}
.p-step{all:unset;box-sizing:border-box;cursor:pointer;background:var(--paper);border:1.5px solid var(--line);border-radius:var(--radius-lg);padding:34px 30px 32px;display:flex;flex-direction:column;position:relative;transition:transform .3s cubic-bezier(.2,.7,.3,1), border-color .3s, background .3s, color .3s, box-shadow .3s}
.p-step:focus-visible{outline:3px solid var(--violet);outline-offset:3px}
.p-step .n{position:absolute;right:26px;top:18px;font:800 64px/1 var(--display);color:var(--lavender);letter-spacing:-.04em;opacity:.55;transition:opacity .3s}
.p-step .orb{width:92px;height:92px;display:grid;place-items:center;transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.p-step .orb svg{width:42px;height:42px;stroke:#fff;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.p-step h3{font-size:34px;font-weight:800;margin-top:26px}
.p-step p{color:var(--ink-soft);margin-top:10px;transition:color .3s}
.p-step:hover{transform:translateY(-4px);border-color:var(--lavender)}
.p-step[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink);transform:translateY(-8px);box-shadow:0 40px 70px -40px rgba(60,30,110,.7)}
.p-step[aria-pressed="true"] p{color:#C9C3E3}
.p-step[aria-pressed="true"] .n{opacity:1}
.p-step[aria-pressed="true"] .orb{transform:scale(1.08) rotate(-6deg)}
.p-track{height:4px;border-radius:4px;background:var(--line);margin-top:30px;overflow:hidden}
.p-track i{display:block;height:100%;width:33.33%;border-radius:4px;background:linear-gradient(90deg,var(--violet),var(--lavender));transition:transform .5s cubic-bezier(.2,.7,.3,1)}

.calc .result.single{grid-template-columns:1fr 1fr}
.calc .field small{display:block;font-size:13px;color:#A9A2C9;margin-top:6px}

.join{background:var(--paper);border-radius:40px;margin:0 16px}
.join .wrap{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.join h2{max-width:14ch}
.join .lede{margin-top:18px}
.join-form{background:var(--mist);border:1px solid var(--line);border-radius:var(--radius-lg);padding:30px}
.join-form h3{font-size:24px;font-weight:800;display:flex;align-items:center;gap:12px}
.join-form h3 .pic-avatar{width:44px;height:44px}
.join-form .row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}
.join-form label{display:block;font-size:14px;font-weight:600;margin-top:14px}
.join-form .row label{margin-top:0}
.join-form input{display:block;width:100%;margin-top:6px;font:500 16px var(--body);color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:14px 16px;transition:border-color .2s, box-shadow .2s}
.join-form input:focus{outline:0;border-color:var(--violet);box-shadow:0 0 0 4px rgba(123,63,191,.14)}
.join-form .btn{width:100%;justify-content:center;margin-top:20px;padding:17px 24px}
.join-form .form-note{font-size:13.5px;color:var(--ink-soft);margin-top:14px}
.join-done{display:none;margin-top:18px;background:#DDF6EC;color:#13704F;border-radius:var(--radius-md);padding:16px 18px;font-size:15px;font-weight:500}
.join-done.show{display:block;animation:slideIn .4s ease both}
.join-done a{color:inherit}

@media (max-width:960px){
  .legal-grid{grid-template-columns:1fr;gap:20px}
  .toc{position:static;max-height:none}
  .toc-toggle{cursor:pointer}
  .toc-toggle::after{display:block;content:"+";font-size:24px;font-weight:400;line-height:.8;color:var(--violet);transition:transform .2s}
  .toc.open .toc-toggle::after{transform:rotate(45deg)}
  .toc:not(.open) .toc-search,.toc:not(.open) > ol{display:none}
  .toc{padding:16px}
  .p-steps{grid-template-columns:1fr}
  .p-step[aria-pressed="true"]{transform:none}
  .join .wrap{grid-template-columns:1fr;gap:40px}
  .promise ul{grid-template-columns:1fr}
}
@media (max-width:640px){
  .doc-sec{padding:26px 22px}
  .promise{padding:28px 22px}
  .doc-contact{padding:28px 22px}
  .legal-hero .bg-orb{width:180px;height:180px;right:-80px;top:-80px}
  .legal-hero .bg-orb.small{display:none}
  .join{border-radius:28px;margin:0 8px}
  .join-form{padding:22px}
  .join-form .row{grid-template-columns:1fr}
  .calc .result.single{grid-template-columns:1fr}
}
