/* ==========================================================
   channel-partner.css — page-specific styles for channel-partner.html
   Extracted from inline <style> — see site.css for shared rules
   ========================================================== */

/* --cp-gold/--cp-char removed — identical to global --gold/--black in site.css, now reused directly */
:root{--cp-ivory:#FAFAF8}

/* ── HERO ── */
.cp-hero{
  position:relative; min-height:100svh;
  display:grid; grid-template-columns:1fr 1fr; overflow:hidden;
  padding-top:var(--nav-h);
}
.cp-hero-left{
  background:var(--black); padding:clamp(56px,7vw,100px) clamp(40px,6vw,96px);
  display:flex; flex-direction:column; justify-content:flex-end; position:relative; overflow:hidden; z-index:1;
}
/* bg ghost text */
.cp-hero-left::before{
  content:attr(data-watermark); position:absolute; bottom:-20px; left:-10px;
  font-family:var(--serif); font-size:clamp(6rem,14vw,16rem); font-weight:700;
  color:rgba(207,173,102,.05); line-height:1; pointer-events:none; user-select:none;
  letter-spacing:-.04em; white-space:nowrap;
}
.cp-hero-right{
  position:relative; overflow:hidden;
}
.cp-hero-right img{
  width:100%; height:100%; object-fit:cover; object-position:center;
  transform:scale(1.05); transition:transform 1.4s var(--ease);
}
.cp-hero-right::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(270deg, transparent 60%, var(--black) 100%);
  pointer-events:none;
}
.cp-hero-kicker{
  font-family:var(--sans); font-weight:700; font-size:.62rem; letter-spacing:.35em; text-transform:uppercase;
  color:var(--gold); margin-bottom:28px; display:flex; align-items:center; gap:12px;
}
.cp-hero-kicker::before{content:''; width:28px; height:1px; background:var(--gold)}
.cp-hero-h{
  font-family:var(--serif); font-weight:400; color:var(--white);
  font-size:clamp(2.4rem,4vw,5rem); line-height:1.06; letter-spacing:-.02em;
  margin-bottom:28px;
}
.cp-hero-h em{color:var(--gold-soft); font-style:normal; display:block}
.cp-hero-sub{
  font-size:clamp(.9rem,1.1vw,1rem); color:rgba(255,255,255,.6);
  line-height:1.75; max-width:480px; margin-bottom:44px;
}
.cp-hero-cta{
  display:inline-flex; align-items:center; gap:12px; height:54px; padding:0 32px;
  border-radius:9999px; border:1.5px solid rgba(207,173,102,.5); color:var(--white);
  font-family:var(--sans); font-size:.9rem; font-weight:600;
  transition:all .3s var(--ease); background:transparent; width:fit-content;
}
.cp-hero-cta:hover{background:var(--gold); border-color:var(--gold); color:var(--black)}
.cp-hero-scroll{
  position:absolute; bottom:40px; left:clamp(40px,6vw,96px);
  font-family:var(--sans); font-weight:700; font-size:.6rem; letter-spacing:.28em; text-transform:uppercase;
  color:rgba(255,255,255,.3); display:flex; align-items:center; gap:10px;
}
.cp-hero-scroll::after{
  content:''; width:40px; height:1px; background:rgba(207,173,102,.3);
  animation:scrollLine 2s ease-in-out infinite;
}
@keyframes scrollLine{0%,100%{width:20px;opacity:.3}50%{width:50px;opacity:.7}}

/* ── WHY PARTNER — horizontal scroll cards ── */
.cp-why{background:var(--cp-ivory); padding:clamp(80px,10vw,120px) 0; overflow:hidden}
.cp-why-head{
  max-width:var(--maxw); margin:0 auto; padding:0 clamp(28px,5vw,64px);
  display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:end; margin-bottom:56px;
}
.cp-why-title{
  font-family:var(--serif); font-weight:400; color:var(--ink);
  font-size:clamp(2rem,3.5vw,3.5rem); line-height:1.1; letter-spacing:-.02em;
}
.cp-why-title em{color:var(--gold-deep); font-style:normal}
.cp-why-body{font-size:clamp(.9rem,1.05vw,1rem); color:var(--body); line-height:1.78}

/* Cards grid (responsive, no horizontal scroll on desktop) */
.cp-cards-track{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(16px,2vw,24px);
  max-width:var(--maxw); margin:0 auto;
  padding:0 clamp(28px,5vw,64px);
  box-sizing:border-box;
}

.cp-card{
  background:#fff;
  border:1px solid rgba(207,173,102,.15);
  border-radius:20px;
  padding:clamp(32px,3.5vw,44px);
  display:flex; flex-direction:column; gap:16px;
  box-shadow:0 2px 20px rgba(37,37,37,.06), 0 1px 4px rgba(37,37,37,.03);
  transition:transform .4s cubic-bezier(.25,.46,.45,.94), box-shadow .4s cubic-bezier(.25,.46,.45,.94), border-color .4s;
  cursor:default; position:relative; overflow:hidden; height:100%;
}
.cp-card::after{
  content:''; position:absolute; bottom:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg, var(--gold) 0%, rgba(207,173,102,.3) 100%);
  transform:scaleX(0); transform-origin:left;
  transition:transform .45s cubic-bezier(.25,.46,.45,.94);
}
.cp-card:hover{
  transform:translateY(-6px);
  box-shadow:0 16px 48px rgba(37,37,37,.11), 0 4px 12px rgba(37,37,37,.06);
  border-color:rgba(207,173,102,.4);
}
.cp-card:hover::after{transform:scaleX(1)}

.cp-card-icon{
  width:48px; height:48px; border-radius:14px; margin-bottom:20px;
  background:linear-gradient(135deg,rgba(207,173,102,.15),rgba(207,173,102,.04));
  border:1px solid rgba(207,173,102,.2);
  display:flex; align-items:center; justify-content:center;
}
.cp-card-icon svg{width:22px; height:22px; stroke:var(--gold-deep); stroke-width:1.5px; fill:none}
.cp-card-h{
  font-family:var(--serif); font-weight:400; color:var(--ink);
  font-size:clamp(1.1rem,1.4vw,1.35rem); line-height:1.2; letter-spacing:-.01em;
  margin-bottom:12px;
}
.cp-card-text{font-size:.88rem; color:var(--body); line-height:1.7; flex:1}

/* ── STORY — editorial split ── */
.cp-story{
  background:var(--black); padding:clamp(80px,10vw,120px) 0; overflow:hidden;
  position:relative;
}
.cp-story::before{
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse 60% 70% at 80% 50%, rgba(207,173,102,.04) 0%, transparent 70%);
  pointer-events:none;
}
.cp-story-inner{
  max-width:var(--maxw); margin:0 auto; padding:0 clamp(28px,5vw,64px);
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(48px,7vw,100px); align-items:center;
}
.cp-story-img{
  position:relative; overflow:hidden; aspect-ratio:4/5;
}
.cp-story-img img{width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease)}
.cp-story-img:hover img{transform:scale(1.04)}
.cp-story-img-label{
  position:absolute; bottom:20px; left:20px;
  font-family:var(--sans); font-weight:700; font-size:.62rem; letter-spacing:.22em; text-transform:uppercase;
  background:rgba(10,9,7,.7); color:var(--gold-soft); padding:6px 14px; border-radius:9999px;
  backdrop-filter:blur(8px);
}
.cp-story-content{display:flex; flex-direction:column; gap:24px}
.cp-story-kicker{
  font-family:var(--sans); font-weight:700; font-size:.62rem; letter-spacing:.32em; text-transform:uppercase;
  color:var(--gold); display:flex; align-items:center; gap:12px;
}
.cp-story-kicker::before{content:''; width:24px; height:1px; background:var(--gold)}
.cp-story-h{
  font-family:var(--serif); font-weight:400; color:var(--white);
  font-size:clamp(1.8rem,3vw,3rem); line-height:1.12; letter-spacing:-.02em;
}
.cp-story-h em{color:var(--gold-soft); font-style:normal}
.cp-story-text{font-size:clamp(.88rem,1vw,.98rem); color:rgba(255,255,255,.6); line-height:1.8}
.cp-story-divider{width:48px; height:1px; background:rgba(207,173,102,.3)}
.cp-story-quote{
  font-family:var(--serif); font-size:clamp(1rem,1.3vw,1.2rem); font-style:italic;
  color:rgba(255,255,255,.8); line-height:1.6; padding-left:20px;
  border-left:2px solid rgba(207,173,102,.4);
}

/* ── STEPS — how it works ── */
.cp-steps{background:var(--white); padding:clamp(80px,10vw,120px) 0}
.cp-steps-inner{max-width:var(--maxw); margin:0 auto; padding:0 clamp(28px,5vw,64px)}
.cp-steps-head{text-align:center; margin-bottom:clamp(56px,7vw,80px)}
.cp-steps-kicker{
  font-family:var(--sans); font-weight:700; font-size:.62rem; letter-spacing:.32em; text-transform:uppercase;
  color:var(--gold-deep); margin-bottom:16px; display:flex; align-items:center; justify-content:center; gap:12px;
}
.cp-steps-kicker::before,.cp-steps-kicker::after{content:''; flex:0 0 28px; height:1px; background:var(--gold)}
.cp-steps-h{
  font-family:var(--serif); font-weight:400; color:var(--ink);
  font-size:clamp(2rem,3.5vw,3.2rem); line-height:1.1; letter-spacing:-.02em;
}
.cp-steps-h em{color:var(--gold); font-style:normal}

.cp-step-list{
  display:grid; grid-template-columns:repeat(4,1fr); gap:0; position:relative;
}
.cp-step-list::before{
  content:''; position:absolute; top:36px; left:10%; right:10%;
  height:1px; background:linear-gradient(90deg, transparent, var(--hairline) 20%, var(--hairline) 80%, transparent);
  pointer-events:none;
}
.cp-step{
  padding:0 clamp(16px,2vw,28px); text-align:center; position:relative;
}
.cp-step-circle{
  width:72px; height:72px; border-radius:50%; margin:0 auto 28px;
  background:var(--white); border:1.5px solid var(--hairline);
  display:flex; align-items:center; justify-content:center; position:relative; z-index:2;
  transition:all .3s var(--ease);
}
.cp-step:hover .cp-step-circle{border-color:var(--gold); background:rgba(207,173,102,.06); box-shadow:0 0 0 8px rgba(207,173,102,.07)}
.cp-step-circle svg{width:24px; height:24px; stroke:var(--gold-deep); stroke-width:1.5px; fill:none}
.cp-step-n{
  font-family:var(--sans); font-weight:700; font-size:.6rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--muted); margin-bottom:10px;
}
.cp-step-h{
  font-family:var(--serif); font-weight:400; color:var(--ink);
  font-size:clamp(1rem,1.2vw,1.2rem); line-height:1.2; margin-bottom:10px;
}
.cp-step-text{font-size:.83rem; color:var(--body); line-height:1.65}

/* ── FORM — full-width dark ── */
.cp-form-sec{
  background:var(--black); padding:clamp(48px,6vw,72px) 0; position:relative; overflow:hidden;
  scroll-margin-top:calc(var(--nav-h) + 24px);
}
.cp-form-sec::before{
  content:''; position:absolute; top:-80px; right:-120px;
  width:500px; height:500px; border-radius:50%;
  background:radial-gradient(circle, rgba(207,173,102,.07) 0%, transparent 70%);
  pointer-events:none;
}
.cp-form-inner{
  max-width:var(--maxw); margin:0 auto; padding:0 clamp(28px,5vw,64px);
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(56px,8vw,100px); align-items:start;
}
.cp-form-left{}
.cp-form-kicker{
  font-family:var(--sans); font-weight:700; font-size:.62rem; letter-spacing:.32em; text-transform:uppercase;
  color:var(--gold); margin-bottom:20px; display:flex; align-items:center; gap:12px;
}
.cp-form-kicker::before{content:''; width:24px; height:1px; background:var(--gold)}
.cp-form-h{
  font-family:var(--serif); font-weight:400; color:var(--white);
  font-size:clamp(2rem,3.2vw,3.5rem); line-height:1.1; letter-spacing:-.02em; margin-bottom:24px;
}
.cp-form-h em{color:var(--gold-soft); font-style:normal}
.cp-form-sub{font-size:clamp(.9rem,1vw,1rem); color:rgba(255,255,255,.55); line-height:1.75; margin-bottom:36px}
.cp-perks{display:flex; flex-direction:column; gap:14px}
.cp-perk{
  display:flex; align-items:flex-start; gap:14px;
  padding:16px 20px; border-radius:12px;
  background:rgba(207,173,102,.06); border:1px solid rgba(207,173,102,.1);
}
.cp-perk-icon{
  width:36px; height:36px; border-radius:10px; flex-shrink:0;
  background:rgba(207,173,102,.12); display:flex; align-items:center; justify-content:center;
}
.cp-perk-icon svg{width:18px; height:18px; stroke:var(--gold); stroke-width:1.5px; fill:none}
.cp-perk-h{font-size:.9rem; font-weight:600; color:rgba(255,255,255,.9); margin-bottom:3px}
.cp-perk-text{font-size:.8rem; color:rgba(255,255,255,.5); line-height:1.5}

.cp-form-card{
  background:var(--white); border-radius:24px; padding:clamp(32px,4vw,48px);
  position:sticky; top:calc(var(--nav-h) + 24px);
}
.cp-form-card-h{
  font-family:var(--serif); font-weight:400; color:var(--ink);
  font-size:clamp(1.3rem,1.8vw,1.7rem); line-height:1.15; margin-bottom:6px;
}
.cp-form-card-sub{font-size:.85rem; color:var(--muted); margin-bottom:28px}
.cp-row{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.cp-field{margin-bottom:14px}
.cp-label{display:block; font-size:.78rem; font-weight:600; color:var(--ink); margin-bottom:6px; letter-spacing:.02em}
.cp-input{
  width:100%; height:48px; padding:0 16px;
  border:1.5px solid var(--hairline); border-radius:10px;
  font-family:var(--sans); font-size:.9rem; color:var(--ink); background:var(--white);
  outline:none; transition:border .2s; box-sizing:border-box;
}
.cp-input:focus{border-color:var(--gold)}
.cp-input::placeholder{color:var(--muted)}
.cp-select{
  width:100%; height:48px; padding:0 16px;
  border:1.5px solid var(--hairline); border-radius:10px;
  font-family:var(--sans); font-size:.9rem; color:var(--ink); background:var(--white);
  appearance:none; outline:none; cursor:pointer; transition:border .2s; box-sizing:border-box;
}
.cp-select:focus{border-color:var(--gold)}
.cp-textarea{
  width:100%; height:110px; padding:14px 16px; resize:vertical;
  border:1.5px solid var(--hairline); border-radius:10px;
  font-family:var(--sans); font-size:.9rem; color:var(--ink); background:var(--white);
  outline:none; transition:border .2s; box-sizing:border-box; line-height:1.6;
}
.cp-textarea:focus{border-color:var(--gold)}
.cp-textarea::placeholder{color:var(--muted)}
.cp-field-error{
  display:none;
  margin-top:6px;
  color:#b42318;
  font-size:12px;
  line-height:1.45;
}
.cp-submit{
  width:100%; height:52px; background:var(--black); color:var(--white);
  border:none; border-radius:12px; font-family:var(--sans); font-size:.95rem; font-weight:600;
  cursor:pointer; transition:all .3s var(--ease); margin-top:4px;
  display:flex; align-items:center; justify-content:center; gap:10px;
}
.cp-submit:hover{background:var(--gold); color:var(--black)}
.cp-submit svg{width:16px; height:16px; stroke:currentColor; stroke-width:2; fill:none}
.cp-form-note{text-align:center; margin-top:14px; font-size:.74rem; color:var(--muted); line-height:1.5}

/* Success state */
.cp-form-success{
  display:none; text-align:center; padding:32px 0;
}
.cp-form-success-icon{
  width:64px; height:64px; border-radius:50%; background:rgba(108, 207, 102, 0.12);
  border:1.5px solid #7bcf66; margin:0 auto 16px;
  display:flex; align-items:center; justify-content:center;
}
.cp-form-success-icon svg{width:28px; height:28px; stroke:#80d06b; stroke-width:1.5px; fill:none}
.cp-form-success-h{font-family:var(--serif); font-size:1.4rem; color:var(--ink); margin-bottom:8px}
.cp-form-success-text{font-size:.9rem; color:var(--muted); line-height:1.6}

/* ── Responsive ── */
@media(max-width:980px){
  .cp-hero{grid-template-columns:1fr; min-height:auto}
  .cp-hero-right{height:clamp(260px,45vw,420px)}
  .cp-hero-right::after{background:linear-gradient(0deg, var(--black) 0%, transparent 60%)}
  .cp-why-head{grid-template-columns:1fr}
  .cp-cards-track{grid-template-columns:repeat(2,1fr)}
  .cp-story-inner{grid-template-columns:1fr; gap:48px}
  .cp-story-img{aspect-ratio:16/9}
  .cp-step-list{grid-template-columns:repeat(2,1fr); gap:40px}
  .cp-step-list::before{display:none}
  .cp-form-inner{grid-template-columns:1fr}
  .cp-form-card{position:static}
}
@media(max-width:640px){
  .cp-hero-left{padding:48px 24px 56px}
  .cp-cards-track{grid-template-columns:1fr; padding:0 24px}
  .cp-step-list{grid-template-columns:1fr}
  .cp-row{grid-template-columns:1fr}
  .cp-steps-inner,.cp-form-inner,.cp-story-inner,.cp-why-head{padding:0 24px}
}
@media(max-width:320px){
  .cp-hero-h{font-size:1.7rem}
  .cp-cards-track{grid-template-columns:1fr}
  .cp-step-list{grid-template-columns:1fr}
}
@media(max-width:380px){
  .cp-hero-h{font-s
