/* /campaign/ — WWS campaign page (crowdfunding layout: hero, progress, sticky give box, gift cards, funds, map, goals, receipt form, FAQ, updates) */
.cp-hero{position:relative;min-height:min(86svh,860px);display:flex;align-items:flex-end;color:#fff;background:var(--ink);overflow:hidden}
.cp-heroimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cp-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,22,31,.55) 0%,rgba(4,22,31,0) 28%,rgba(4,22,31,.15) 50%,rgba(4,22,31,.92) 100%)}
.cp-heroin{position:relative;z-index:1;padding-top:140px;padding-bottom:clamp(40px,7vh,84px);width:100%}
.cp-eyebrow{font:700 13px/1.2 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--sage);margin:0 0 14px}
.cp-hero .cp-eyebrow{color:#FFE01B}
.cp-h1{font-family:var(--display);font-variation-settings:'wdth' 125;font-size:clamp(40px,7.4vw,116px);line-height:.92;letter-spacing:-.03em;margin:0;max-width:13em}
.cp-h1 span{display:block;font-weight:200}
.cp-h1 em{display:block;font-style:normal;font-weight:900;text-transform:uppercase;color:#FF6A13}
.cp-herolede{font-size:clamp(17px,1.6vw,21px);line-height:1.5;max-width:36em;margin:22px 0 0;color:rgba(255,255,255,.9)}
.cp-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.cp-chips span{font:600 14px/1 var(--body);padding:9px 14px;border-radius:99px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(6px)}
.cp-chips span:first-child{background:#FF6A13;border-color:#FF6A13}

.cp-tabs{position:sticky;top:76px;z-index:20;background:rgba(255,255,255,.97);box-shadow:0 1px 0 var(--line);backdrop-filter:blur(10px)}
.cp-tabs .wrap{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
.cp-tabs .wrap::-webkit-scrollbar{display:none}
.cp-tabs a{flex:none;padding:16px 12px;font:600 15px/1 var(--body);text-decoration:none;color:var(--muted);border-bottom:3px solid transparent}
.cp-tabs a:hover,.cp-tabs a.on{color:var(--ink);border-bottom-color:var(--sage)}

.cp-grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:clamp(32px,4vw,64px);padding-top:40px;padding-bottom:40px}
.cp-main{min-width:0;align-self:start}
.cp-side{position:relative;scroll-margin-top:96px}
.cp-sticky{position:sticky;top:136px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:0 30px 60px -40px rgba(4,22,31,.45);max-height:calc(100vh - 152px);overflow:auto;scrollbar-width:thin}
.cp-sideh{font:800 22px/1.15 var(--display);font-variation-settings:'wdth' 112;margin:18px 0 6px}

/* progress */
.cp-raised{margin:0 0 10px;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px}
.cp-raised b{font:900 40px/1 var(--display);font-variation-settings:'wdth' 112;letter-spacing:-.02em}
.cp-raised span{color:var(--muted);font-size:16px}
.cp-raised strong{color:var(--ink)}
.cp-bar{height:12px;border-radius:99px;background:#E7EEF0;overflow:hidden}
.cp-bar i{display:block;height:100%;min-width:12px;border-radius:99px;background:linear-gradient(90deg,#FF6A13,#FFB21B);transition:width 1.2s cubic-bezier(.2,.8,.2,1)}
.cp-stats{list-style:none;padding:0;margin:14px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.cp-stats li{display:grid;gap:2px}
.cp-stats b{font:800 22px/1 var(--display)}
.cp-stats span{font-size:13px;color:var(--muted)}
.cp-prog-m,.cp-mgive{display:none}

/* gift picker in the sidebar */
.cp-form fieldset{margin-bottom:16px}
.cp-form .gx-tier{padding:12px 14px}
.cp-form .gx-top b{font-size:19px}
.cp-go{width:100%;justify-content:center}
.cp-fine{margin:10px 0 0;text-align:center}
.cp-share{margin:14px 0 0;text-align:center}
.cp-share a{color:var(--bay);font-weight:600}

/* sections */
.cp-sec{padding:56px 0 8px;scroll-margin-top:140px}
.cp-sec+.cp-sec{border-top:1px solid var(--line);margin-top:48px}
.cp-h2{font-family:var(--display);font-variation-settings:'wdth' 118;font-weight:800;font-size:clamp(30px,3.6vw,50px);line-height:1.02;letter-spacing:-.025em;margin:0 0 16px;max-width:18em}
.cp-h3{font-family:var(--display);font-variation-settings:'wdth' 112;font-weight:800;font-size:clamp(23px,2.2vw,30px);line-height:1.1;letter-spacing:-.015em;margin:0 0 12px}
.cp-lead{font-size:19px;line-height:1.6;color:#2A3B42;max-width:40em;margin:0 0 28px}
.cp-kick{font:700 13px/1 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--bay);margin:22px 0 10px}

/* story blocks: full-width photo + text */
.cp-block{margin:0 0 44px}
.cp-block p{font-size:18px;line-height:1.7;max-width:40em;margin:0 0 14px}
.cp-fig{margin:0;border-radius:16px;overflow:hidden;aspect-ratio:16/9;background:var(--deep)}
.cp-fig img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 6s ease}
.cp-block:hover .cp-fig img{transform:scale(1.03)}
.cp-quote{margin:8px 0 0;padding:28px 30px;border-radius:16px;background:var(--ink);color:#fff}
.cp-quote p{margin:0;font:500 clamp(20px,2vw,26px)/1.35 var(--display);font-variation-settings:'wdth' 100}

/* gift cards */
.cp-gifts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.cp-gift{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;transition:box-shadow .25s,transform .25s;scroll-margin-top:140px}
.cp-gift:hover{box-shadow:0 24px 48px -30px rgba(4,22,31,.45);transform:translateY(-2px)}
.cp-gift.lead{border:2px solid var(--sage)}
.cp-gift.picked{outline:3px solid var(--sage);outline-offset:2px}
.cp-gimg{position:relative;aspect-ratio:16/10;background:var(--deep)}
.cp-gimg img{width:100%;height:100%;object-fit:cover;display:block}
.cp-kind,.cp-pop{position:absolute;top:12px;font:700 12px/1 var(--body);letter-spacing:.06em;text-transform:uppercase;padding:7px 10px;border-radius:99px}
.cp-kind{left:12px;background:rgba(4,22,31,.78);color:#fff}
.cp-pop{right:12px;background:var(--sage);color:#fff}
.cp-gbody{display:flex;flex-direction:column;gap:8px;padding:18px 20px 20px;flex:1}
.cp-gamt{margin:0;font:900 30px/1 var(--display);font-variation-settings:'wdth' 112;color:var(--ink)}
.cp-gbody h3{margin:0;font:800 19px/1.2 var(--body)}
.cp-gbody ul{margin:2px 0 4px;padding-left:18px;font-size:15px;line-height:1.5;color:#2A3B42}
.cp-gbody li+li{margin-top:4px}
.cp-gmeta{display:flex;flex-wrap:wrap;gap:6px;margin:auto 0 6px;padding-top:6px}
.cp-gmeta span{font:600 12px/1 var(--body);padding:7px 9px;border-radius:8px;background:var(--foam);color:#3B4A50}
.cp-gmeta .cp-left{background:#FFF1E8;color:#B23F0A}
.cp-gbody .btn{align-self:flex-start}
.btn.sm{padding:11px 18px;font-size:15px}
.cp-sponsor .cp-gamt{font-size:24px}
.cp-gift .btn-ghost{color:var(--ink)}

/* funds */
.cp-fundwrap{display:grid;grid-template-columns:240px minmax(0,1fr);gap:28px;align-items:start}
.cp-fundviz{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:3/4;background:var(--ink);color:#fff;position:sticky;top:150px}
.cp-fundviz img{width:100%;height:100%;object-fit:cover;opacity:.55}
.cp-fundviz div{position:absolute;left:18px;right:18px;bottom:18px}
.cp-fundviz b{display:block;font:900 40px/1 var(--display);font-variation-settings:'wdth' 118}
.cp-fundviz span{font-size:15px;color:rgba(255,255,255,.85)}
.cp-funds{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.cp-fund{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:14px;align-items:start;padding:16px 18px;border-radius:14px;background:var(--foam)}
.cp-fund.lead{background:var(--ink);color:#fff}
.cp-fund.lead p{color:rgba(255,255,255,.78)}
.cp-fn{font:900 22px/1.2 var(--display);color:var(--sage)}
.cp-fund h4{margin:0 0 4px;font:800 18px/1.25 var(--body)}
.cp-fund h4 em{font-style:normal;font-size:12px;font-weight:700;padding:3px 8px;border-radius:99px;background:var(--sage);color:#fff;margin-left:6px;vertical-align:2px}
.cp-fund p{margin:0;font-size:15px;line-height:1.5;color:#3B4A50}
.cp-fpct{font:900 26px/1 var(--display)}
.cp-report{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:center;margin-top:28px;padding:26px;border-radius:16px;border:1px dashed rgba(4,22,31,.3)}
.cp-report p{margin:0;color:#3B4A50}
.cp-report dl{margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.cp-report dl div{padding:12px 14px;border-radius:10px;background:var(--foam)}
.cp-report dt{font-size:13px;color:var(--muted)}
.cp-report dd{margin:2px 0 0;font:900 22px/1 var(--display);color:#9AA7AC}

/* chapters */
.cp-map{margin:0 0 18px;border-radius:16px;overflow:hidden;background:#04161F}
.cp-map img{width:100%;height:auto;display:block}
.cp-map figcaption{display:flex;gap:16px;align-items:center;padding:12px 16px;color:rgba(255,255,255,.85);font-size:14px}
.cp-map figcaption span{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:-8px}
.k-act{background:#FF6A13}.k-open{background:#7FE7DC}
.cp-acts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.cp-act{position:relative;display:block;aspect-ratio:4/3;border-radius:14px;overflow:hidden;color:#fff;text-decoration:none;background:var(--deep)}
.cp-act img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.cp-act:hover img{transform:scale(1.05)}
.cp-act span{position:absolute;inset:auto 0 0;padding:28px 14px 12px;background:linear-gradient(transparent,rgba(4,22,31,.9));display:grid}
.cp-act b{font:800 17px/1.2 var(--body)}
.cp-act small{font-size:13px;color:#7FE7DC}
.cp-regs{margin-top:16px;border:1px solid var(--line);border-radius:14px;padding:4px 18px}
.cp-regs summary{cursor:pointer;padding:14px 0;font-weight:700}
.cp-reggrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 24px;padding-bottom:16px}
.cp-reg h4{margin:10px 0 4px;font:700 15px/1.3 var(--body)}
.cp-reg h4 small{color:var(--muted);font-weight:600}
.cp-reg p{margin:0;font-size:14px;line-height:1.6;color:#3B4A50}
.cp-reg a{color:inherit}

/* beyond the goal */
.cp-steps{list-style:none;margin:8px 0 0;padding:0 0 0 30px;position:relative}
.cp-steps::before{content:"";position:absolute;left:9px;top:8px;bottom:8px;width:3px;border-radius:3px;background:#E7EEF0}
.cp-step{position:relative;padding:0 0 26px}
.cp-dot{position:absolute;left:-30px;top:2px;width:21px;height:21px;border-radius:50%;background:#fff;border:3px solid #C9D4D8}
.cp-step.goal .cp-dot,.cp-step.hit .cp-dot{border-color:var(--sage);background:var(--sage)}
.cp-step.hit .cp-dot::after{content:"";position:absolute;left:5px;top:2px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.cp-at{margin:0;font:900 24px/1.1 var(--display);color:var(--ink)}
.cp-step.goal .cp-at{color:var(--sage)}
.cp-step h4{margin:4px 0;font:800 18px/1.3 var(--body)}
.cp-step p:last-child{margin:0;color:#3B4A50;max-width:36em}

/* receipt -> gift */
.cp-receipt{background:var(--foam);border-radius:20px;padding:40px clamp(20px,3vw,40px) 36px;border-top:0 !important}
.cp-rform{display:grid;gap:4px;max-width:640px}
.cp-rform label{display:grid;gap:6px;font-size:14px;font-weight:600;margin:0 0 12px}
.cp-rform input,.cp-rform select{width:100%;font:inherit;padding:12px 14px;border-radius:10px;border:1px solid rgba(4,22,31,.2);background:#fff;color:var(--ink);min-height:48px}
.cp-rform button{justify-self:start;margin-top:4px}
.cp-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cp-rdone{padding:22px;border-radius:14px;background:#fff;max-width:640px}
.cp-rdone h3{margin:0 0 8px}

/* updates */
.cp-up{padding:20px 0;border-top:1px solid var(--line)}
.cp-upd{margin:0 0 6px;font:600 13px/1 var(--body);color:var(--muted)}
.cp-up h4{margin:0 0 6px;font:800 20px/1.25 var(--body)}
.cp-up p{margin:0;color:#3B4A50;max-width:40em}

/* closing band */
.cp-end{position:relative;min-height:440px;display:flex;align-items:center;color:#fff;overflow:hidden;background:var(--ink);margin-top:40px}
.cp-end img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.6}
.cp-end .wrap{position:relative;width:100%}
.cp-end .btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.cp-bbar{display:none}

/* three ways to give */
.cp-ways{padding-top:32px}
.cp-wgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.cp-way.lead{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:28px;align-items:center}
.cp-way.lead>*{grid-column:1}
.cp-way.lead>.cp-wbtn{grid-column:2;grid-row:1/5;margin:0;align-self:center;padding:16px 26px;font-size:16px}
.cp-way.lead>.cp-iggform{grid-column:1/-1}
.cp-way.lead h3{font-size:24px}
.cp-way:not(.lead){min-height:100%}
.cp-way{display:flex;flex-direction:column;gap:6px;padding:22px 20px;border:1px solid var(--line);border-radius:16px;background:#fff}
.cp-way.lead{border:2px solid #EB1478;background:#FFF5FA}
.cp-way h3{margin:6px 0 0;font:800 20px/1.2 var(--body)}
.cp-way p{margin:0;font-size:15px;line-height:1.5;color:#2A3B42}
.cp-way .cp-wmeta{font:600 13px/1.4 var(--body);color:#8A1F55;margin-top:2px}
.cp-wtag{display:flex;align-items:center;justify-content:space-between;gap:8px}
.cp-wtag em{font:700 11px/1 var(--body);letter-spacing:.08em;text-transform:uppercase;font-style:normal;padding:6px 9px;border-radius:99px;background:#EB1478;color:#fff}
.cp-iggmark{font:800 19px/1 var(--body);letter-spacing:-.03em;color:#EB1478;text-transform:lowercase}
.cp-gfmmark{font:800 17px/1 var(--body);letter-spacing:-.01em;color:#00B964}
.cp-dirmark{font:700 13px/1 var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--sage)}
.cp-wbtn{margin-top:auto;justify-content:center;text-align:center;line-height:1.2;padding:13px 18px;font-size:15px;color:var(--ink)}
.cp-way p+.cp-wbtn,.cp-way h3+p+.cp-wbtn{margin-top:auto}
.cp-way>.cp-wbtn{margin-top:14px}
.cp-wbtn.igg{background:#EB1478;color:#fff}
.cp-wbtn.igg:hover{background:#C70F64}
.cp-wbtn.is-off{opacity:.6;cursor:default}
.cp-iggform{margin-top:12px}
.cp-iggform .signup{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;max-width:560px}
.cp-iggform input{background:#fff;font:inherit;padding:12px 14px;border-radius:10px;border:1px solid rgba(4,22,31,.25);min-height:46px;width:100%}
.cp-iggform .btn{justify-content:center}
.cp-sways{list-style:none;margin:16px 0 0;padding:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.cp-sways li{display:grid;grid-template-columns:86px minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px 12px;font-size:13px;color:#3B4A50}
.cp-sways li+li{border-top:1px solid var(--line)}
.cp-sways li.on{background:#FFF4EC}
.cp-sways .cp-iggmark{font-size:15px}.cp-sways .cp-gfmmark{font-size:14px}.cp-sways .cp-dirmark{font-size:11px}
.cp-sways a{font-weight:700;color:var(--bay);white-space:nowrap}
.cp-sways em{font-style:normal;font-weight:600;color:var(--muted);white-space:nowrap}
.cp-notice{margin:16px 0 0;padding:14px 16px;border-radius:12px;background:#EAF7EF;border:1px solid #9AD8B0;font-size:15px;line-height:1.45}
.cp-notice.warn{background:#FFF4E5;border-color:#F5C27A}
.cp-notice b{display:block;font-size:16px}
.cp-notice p{margin:6px 0 0}
.cp-notice a{font-weight:700;color:var(--bay)}
.cp-rdone .btns{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 10px}

/* drawers (chapter, sponsor): open in place */
.cp-drawer{padding:0;border:0;border-radius:18px;width:min(560px,calc(100vw - 32px));max-height:calc(100svh - 48px);overflow:auto;color:var(--ink);box-shadow:0 40px 80px -30px rgba(4,22,31,.6)}
.cp-drawer::backdrop{background:rgba(4,22,31,.6)}
.cp-dimg{aspect-ratio:16/9;background:var(--deep)}
.cp-dimg img{width:100%;height:100%;object-fit:cover;display:block}
.cp-dbody{padding:22px 24px 24px}
.cp-dbody p{font-size:16px;line-height:1.55}
.cp-dbody .btns{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 8px}
.cp-dbody .btn-ghost{color:var(--ink)}
.cp-dx{position:absolute;top:10px;right:10px;width:44px;height:44px;border-radius:50%;border:0;background:rgba(4,22,31,.75);color:#fff;font-size:26px;line-height:1;cursor:pointer;z-index:1}
html.cp-locked{overflow:hidden}
@media (max-width:640px){
  .cp-drawer{width:100vw;max-width:100vw;margin:auto 0 0;border-radius:18px 18px 0 0;max-height:88svh}
}
@media (max-width:640px){.cp-wgrid{grid-template-columns:1fr}.cp-way.lead{display:flex}.cp-way.lead>.cp-wbtn{margin-top:14px}.cp-iggform .signup{grid-template-columns:1fr}}

@media (max-width:1080px){
  .cp-grid{grid-template-columns:minmax(0,1fr) 360px}
  .cp-gifts{grid-template-columns:1fr}
  .cp-gift{flex-direction:row}
  .cp-gimg{flex:0 0 40%;aspect-ratio:auto}
}
@media (max-width:900px){
  .cp-grid{grid-template-columns:1fr;padding-top:24px}
  .cp-side{order:2}
  .cp-sticky{position:static;max-height:none;box-shadow:none}
  .cp-side{scroll-margin-top:124px}
  .cp-prog-m{display:block;padding:20px;border:1px solid var(--line);border-radius:16px}
  .cp-mgive{display:flex;justify-content:center;margin-top:12px}
  .cp-prog-d{display:none}
  .cp-tabs{top:68px}
  .cp-fundwrap{grid-template-columns:1fr}
  .cp-fundviz{position:relative;top:0;aspect-ratio:21/9}
  .cp-bbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);box-shadow:0 -1px 0 var(--line),0 -10px 30px rgba(4,22,31,.12);transform:translateY(110%);transition:transform .3s}
  .cp-bbar.show{transform:none}
  .cp-bbar div{display:grid}
  .cp-bbar b{font:900 20px/1 var(--display)}
  .cp-bbar span{font-size:13px;color:var(--muted)}
  body:has(.cp-bbar) footer{padding-bottom:80px}
}
@media (max-width:640px){
  .cp-hero{min-height:88svh}
  .cp-heroin{padding-top:110px}
  .cp-h1{font-size:clamp(36px,11vw,56px)}
  .cp-gift{flex-direction:column}
  .cp-gimg{flex:none;aspect-ratio:16/10}
  .cp-acts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cp-act{aspect-ratio:4/3}
  .cp-reggrid,.cp-row,.cp-report{grid-template-columns:1fr}
  .cp-lead,.cp-block p{font-size:17px}
  .cp-tabs a{padding:14px 10px;font-size:14px}
  .cp-sec{padding-top:44px}
  .cp-sec+.cp-sec{margin-top:36px}
  .cp-receipt{margin-left:calc(var(--gutter) * -1);margin-right:calc(var(--gutter) * -1);border-radius:0}
  .cp-raised b{font-size:34px}
  .cp-quote{padding:22px}
  .cp-fund{grid-template-columns:34px minmax(0,1fr) auto;padding:14px}
}
@media (prefers-reduced-motion:reduce){.cp-bar i,.cp-fig img,.cp-act img,.cp-gift{transition:none}}
