/* Hi Five — sample campaign site. Soft, simple, phone-first.
   Colours are placeholders until the seminary's logo and palette arrive. */
:root{
  --bg:#fff8f4; --card:#fffdfb; --ink:#503937; --soft:#755d5b; --line:#eedfd8;
  --a:#ed6e96; --ad:#d74d7c; --tint:#ffedf0; --tint2:#fffaf6; --ok:#4f7a5a; --okt:#ebf3ec;
  --lav:#f3eafa; --sage:#ebf3ec; --peach:#fff0df;
  --serif:Georgia,'Times New Roman',serif; --sans:'Trebuchet MS','Segoe UI',Arial,sans-serif;
  --r:22px; --sh:0 15px 45px rgba(110,70,63,.09);
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-text-size-adjust:100%;line-height:1.5}
a{color:var(--ad)}
h1,h2,h3,.serif{font-family:var(--serif);font-weight:400;letter-spacing:.1px;margin:0}
h1{font-size:2.3rem;line-height:1.1} h2{font-size:1.5rem} h3{font-size:1.2rem}
main{max-width:560px;margin:0 auto;padding:6px 16px 56px}
main.wide{max-width:980px}
.top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 16px 6px;max-width:560px;margin:0 auto}
main.wide ~ .top,.top.wide{max-width:980px}
.logo{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;text-decoration:none;color:var(--ink);font-family:var(--serif);font-weight:600;font-size:1.5rem;letter-spacing:.3px}
.logo svg{width:26px;height:26px} .logo img{height:40px;width:auto;display:block}
.logo small{font:700 .66rem var(--sans);color:var(--soft);letter-spacing:.9px;text-transform:uppercase;margin-left:4px;padding-left:10px;border-left:1px solid var(--line)}
.nav{display:flex;gap:14px;font:700 .78rem var(--sans);white-space:nowrap}
@media(max-width:420px){.logo small{display:none}.nav{gap:10px;font-size:.74rem}}
.nav a{color:var(--soft);text-decoration:none} .nav a.on{color:var(--ad)}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px 20px;box-shadow:var(--sh);margin-top:14px}
.center{text-align:center}
.lead{color:var(--soft);font-size:1.02rem;margin:4px 0 0}
.muted{color:var(--soft)} .small{font-size:.82rem}
.hand{display:inline-block;width:1.2em;height:1.2em;vertical-align:-.25em;color:var(--a)}
/* video */
.video{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:16/10;background:linear-gradient(135deg,#eadfe3,#f6eef1 55%,#efe6d8);display:flex;align-items:center;justify-content:center;cursor:pointer;margin-top:16px}
.video .play{width:66px;height:66px;border-radius:50%;background:#fff;box-shadow:0 8px 24px rgba(110,69,86,.22);display:flex;align-items:center;justify-content:center}
.video .play svg{width:26px;height:26px;margin-left:4px;fill:var(--ad)}
.video .cap{position:absolute;left:14px;bottom:12px;font:700 .74rem var(--sans);color:var(--ad);background:rgba(255,255,255,.8);padding:5px 10px;border-radius:99px}
.video .tag{position:absolute;right:14px;top:12px;font:700 .68rem var(--sans);color:var(--soft);background:rgba(255,255,255,.8);padding:4px 9px;border-radius:99px;letter-spacing:.4px}
.video .face{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:100%;height:100%;opacity:.35}
/* form */
label{display:block;font:700 .74rem var(--sans);color:var(--soft);margin:0 0 6px;letter-spacing:.4px;text-transform:uppercase}
input,select,textarea{width:100%;padding:13px 14px;border:1.5px solid var(--line);border-radius:12px;font:1rem var(--sans);color:var(--ink);background:#fff;outline:none}
input:focus,select:focus{border-color:var(--a)}
.row{margin-bottom:14px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.amts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}
.amt{padding:12px 0;border:1.5px solid var(--line);border-radius:12px;background:#fff;font:800 1rem var(--sans);color:var(--ink);cursor:pointer}
.amt.on{border-color:var(--a);background:var(--tint);color:var(--ad)}
.btn{display:block;width:100%;padding:15px;border:none;border-radius:99px;background:linear-gradient(135deg,#ef709b,#d74d7c);color:#fff;font:800 1.02rem var(--sans);cursor:pointer;box-shadow:0 8px 20px rgba(110,69,86,.22);text-align:center;text-decoration:none}
.btn.ghost{background:#fff;color:var(--ad);border:1.5px solid var(--line);box-shadow:none}
.btn:disabled{opacity:.55;cursor:default}
.lock{margin-top:10px;text-align:center;font:600 .72rem var(--sans);color:var(--soft)}
.other{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:.84rem;color:var(--soft);text-align:center;line-height:1.6}
.other b{color:var(--ink)}
.cardfields{border:1.5px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}
.cardfields input{border:none;border-radius:0;border-bottom:1.5px solid var(--line)}
.cardfields .split{display:grid;grid-template-columns:1fr 1fr}
.cardfields .split input{border-bottom:none} .cardfields .split input:first-child{border-right:1.5px solid var(--line)}
.wallets{display:flex;gap:8px;margin-bottom:10px}
.wallet{flex:1;padding:11px 0;border-radius:12px;border:1.5px solid var(--line);background:#fff;text-align:center;font:800 .86rem var(--sans);color:var(--ink)}
.wallet.dark{background:#1d1b20;color:#fff;border-color:#1d1b20}
/* stickers */
.pick{position:relative}
.drop{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border:1.5px solid var(--line);border-radius:14px;box-shadow:var(--sh);z-index:5;max-height:230px;overflow:auto;padding:6px}
.drop div{padding:10px 12px;border-radius:10px;cursor:pointer} .drop div:hover,.drop div.hi{background:var(--tint)}
.drop small{color:var(--soft);margin-left:6px}
.stk{display:inline-flex;align-items:center;gap:6px;padding:5px 12px 5px 5px;border-radius:99px;font:800 .82rem var(--sans);border:1.5px solid transparent;cursor:pointer;white-space:nowrap}
.stk svg{width:14px;height:14px;margin-left:6px}
.stk .art{width:24px;height:24px;border-radius:50%;flex:none;margin:0}
.stk i{font:600 .82rem 'Fredoka',var(--sans);font-style:normal;line-height:1.1}
.stk.on{border-color:var(--ad);box-shadow:0 0 0 3px var(--tint)}
.stks{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.sent{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
.sent:first-child{border-top:none}
.sent .who{flex:1;font-weight:700}
.sent .x{background:none;border:none;color:#c9b3bb;font-size:1.1rem;cursor:pointer}
.c1{background:#fbe9ee;color:#9b4a62} .c2{background:#e9f2ea;color:#3f6d4f} .c3{background:#fff2dc;color:#9a6a1f} .c4{background:#e8eef9;color:#3d5a93}
.c5{background:#f1e9f8;color:#6b4b8e} .c6{background:#fdeedf;color:#a05a2c} .c7{background:#e6f4f4;color:#2f6f6e} .c8{background:#f5f0e4;color:#7a6632}
/* lists & progress */
.bar{height:10px;border-radius:99px;background:var(--tint);overflow:hidden;margin:10px 0 6px}
.bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#ef709b,#d74d7c)}
.big{font:800 2.4rem var(--sans);color:var(--ad);letter-spacing:-.5px;line-height:1}
.big small{display:block;font:700 .78rem var(--sans);color:var(--soft);letter-spacing:.3px;margin-top:4px}
ul.list{list-style:none;margin:0;padding:0}
ul.list li{display:flex;align-items:baseline;gap:10px;padding:11px 0;border-top:1px solid var(--line);cursor:pointer}
ul.list li:first-child{border-top:none}
ul.list .n{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}
ul.list .n small{font-weight:600;color:var(--soft);margin-left:6px}
ul.list .a{font:800 .98rem var(--sans);color:var(--ad)}
ul.list .t{font:600 .72rem var(--sans);color:var(--soft);min-width:46px;text-align:right}
.feed{display:flex;flex-direction:column;gap:6px}
.chip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 8px;padding:7px 8px 7px 12px;border-radius:14px;background:var(--tint2);border:1px solid var(--line);font:600 .84rem var(--sans)}
.chip .names{flex:1 1 auto;white-space:nowrap;line-height:1.3}
.chip .stk{flex:none;padding:6px 10px;font-size:.76rem}
.chip b{font-weight:800}
.mem{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.mem div{background:var(--tint2);border:1px solid var(--line);border-radius:14px;padding:12px 14px;font-size:.9rem}
.mem div b{display:block;font-family:var(--serif);font-size:1.15rem;color:var(--ad)}
.photo{aspect-ratio:4/3;border-radius:14px;background:linear-gradient(135deg,#ebe3e6,#f6f0e8);display:flex;align-items:center;justify-content:center;color:var(--soft);font:700 .74rem var(--sans);letter-spacing:.4px}
.memorial{margin-top:14px;text-align:center;font-size:.86rem;color:var(--soft);font-style:italic}
.memorial b{color:var(--ad);font-style:normal}
footer{text-align:center;margin-top:28px;font:600 .74rem var(--sans);color:var(--soft)}
footer a{color:var(--ad)}
/* popup */
.ov{position:fixed;inset:0;background:rgba(47,42,51,.42);display:none;align-items:flex-end;justify-content:center;z-index:50;padding:0;opacity:0;transition:opacity .28s ease}
.ov.on{display:flex} .ov.show{opacity:1}
.pop{background:#fff;border-radius:24px 24px 0 0;width:100%;max-width:560px;max-height:88vh;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:10px 20px 28px;box-shadow:0 -10px 40px rgba(0,0,0,.2);transform:translateY(100%);transition:transform .32s cubic-bezier(.2,.8,.2,1)}
.ov.show .pop{transform:translateY(0)}
.pop.drag{transition:none}
.pop .grip{width:40px;height:5px;border-radius:99px;background:var(--line);margin:0 auto 12px}
body.lock{position:fixed;width:100%;overflow:hidden}
@media(min-width:640px){.ov{align-items:center;padding:20px}.pop{border-radius:24px;transform:translateY(24px) scale(.98);opacity:0;transition:transform .28s ease,opacity .28s ease}.ov.show .pop{transform:none;opacity:1}}
@media(prefers-reduced-motion:reduce){.ov,.pop{transition:none}}
.pop .close{float:right;background:var(--tint);border:none;width:34px;height:34px;border-radius:50%;font-size:1.1rem;color:var(--ad);cursor:pointer}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:11px 16px;border-radius:99px;font:700 .82rem var(--sans);display:none;z-index:60}
.toast.on{display:block}
/* demo banner (sample only) */
.demo{max-width:560px;margin:10px auto 0;padding:0 16px}
.demo div{background:#fff8e6;border:1px dashed #e8d39a;border-radius:12px;padding:8px 12px;font:700 .72rem var(--sans);color:#7a5f14;text-align:center}
.wide .demo{max-width:980px}
/* tables (admin) */
table{width:100%;border-collapse:collapse;font-size:.9rem}
th{text-align:left;font:700 .7rem var(--sans);color:var(--soft);letter-spacing:.5px;text-transform:uppercase;padding:8px 8px;border-bottom:1.5px solid var(--line)}
td{padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
td.r,th.r{text-align:right} td b{font-weight:800}
.pill{display:inline-block;padding:3px 9px;border-radius:99px;font:800 .68rem var(--sans);letter-spacing:.3px}
.pill.ok{background:var(--okt);color:var(--ok)} .pill.wait{background:#fff2dc;color:#9a6a1f} .pill.off{background:#eef0f4;color:#5a6577}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media(min-width:700px){.stats{grid-template-columns:repeat(4,1fr)}}
.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 16px}
.stat b{display:block;font:800 1.5rem var(--sans);color:var(--ad);line-height:1.1}
.stat span{font:700 .7rem var(--sans);color:var(--soft);letter-spacing:.4px;text-transform:uppercase}
.cols{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:820px){.cols{grid-template-columns:1fr 1fr}}
.side{display:flex;gap:10px;flex-wrap:wrap}
.side .btn{width:auto;padding:10px 16px;font-size:.84rem;box-shadow:none}

/* condensed giving block */
.amts.tight{grid-template-columns:repeat(6,1fr);gap:6px;margin-bottom:8px}
.amts.tight .amt{padding:10px 0;font-size:.86rem;border-radius:10px}
.payrow{display:grid;gap:8px}
.cardfields.line{display:grid;grid-template-columns:2fr 1fr 1fr}
.cardfields.line input{border:none;border-bottom:none;border-right:1.5px solid var(--line);padding:11px 12px;font-size:.95rem}
.cardfields.line input:last-child{border-right:none}
.wallets.small{margin:0}
.wallets.small .wallet{padding:8px 0;font-size:.78rem;border-radius:10px}
.monthly{display:flex;gap:8px;align-items:center;text-transform:none;font-size:.8rem;letter-spacing:0;margin:10px 0 0;color:var(--soft)}
#stickers{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);transition:opacity .25s}
#stickers.dim{opacity:.38;pointer-events:none;filter:grayscale(.4)}
.stkhead{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.stkhead h3{font-size:1.15rem}
#stickers .pick input{padding:11px 12px;font-size:.95rem}
.lock b{color:var(--ink)}

/* alumna page: everything on one phone screen */
.compact .demo div{padding:5px 10px;font-size:.66rem}
.compact main{padding-top:0}
.compact .card{padding:16px 16px 18px;margin-top:10px}
.compact #hello h1{font-size:1.75rem}
.compact #hello .lead{font-size:.86rem;margin-top:2px}
.compact .video{aspect-ratio:2/1;margin-top:10px;border-radius:14px}
.compact .video .play{width:50px;height:50px}
.compact .video .play svg{width:20px;height:20px}
.compact #give h2{font-size:1.2rem;margin-bottom:8px}
.compact .lock{font-size:.66rem;line-height:1.5}
.compact .memorial{margin-top:10px;font-size:.78rem}
input:disabled{background:var(--tint2);color:var(--soft)}

/* who picker */
.whobtn{width:100%;display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:#fff;font:600 .95rem var(--sans);color:var(--ink);cursor:pointer;text-align:left}
.whobtn i{color:var(--soft);font-style:normal}
.whobtn:disabled{background:var(--tint2);color:var(--soft)}
.panel{border:1.5px solid var(--line);border-radius:14px;background:#fff;padding:10px;margin-top:6px;box-shadow:var(--sh)}
.panel input[type=text]{padding:10px 12px;font-size:.92rem}
.grp{margin-top:8px;max-height:150px;overflow:auto;border-top:1px solid var(--line);padding-top:6px}
.grplbl{font:800 .7rem var(--sans);color:var(--soft);letter-spacing:.5px;text-transform:uppercase;padding:4px 6px}
.chk{display:flex;align-items:center;gap:10px;padding:7px 6px;font:600 .92rem var(--sans);color:var(--ink);text-transform:none;letter-spacing:0;margin:0;cursor:pointer;border-radius:8px}
.chk:hover{background:var(--tint2)}
.chk input{width:18px;height:18px;margin:0;accent-color:var(--ad)}
.chk.all{background:var(--tint);border-radius:10px;margin-bottom:4px}
.sent.batch{align-items:flex-start}
.sent .note{font-weight:600;color:var(--soft);font-size:.84rem;margin-top:2px}
.chip .names .note{white-space:normal;font-weight:600;color:var(--soft);font-size:.8rem}

.mode{display:flex;gap:6px;margin-top:12px;background:var(--tint2);border:1px solid var(--line);border-radius:12px;padding:4px}
.mode button{flex:1;padding:8px;border:none;border-radius:9px;background:transparent;font:800 .8rem var(--sans);color:var(--soft);cursor:pointer}
.mode button.on{background:#fff;color:var(--ad);box-shadow:0 1px 4px rgba(110,69,86,.12)}
.blk{margin-top:12px;padding-top:10px;border-top:1px dashed var(--line)}
.blk label{margin-bottom:4px} .blk .hon{color:var(--a);text-transform:none;letter-spacing:0}
.blk .note{margin-top:8px;padding:10px 12px;font-size:.92rem}
.stks.scroll{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.stks.scroll::-webkit-scrollbar{display:none}

/* sticker flow in a sheet */
.stkrow{display:flex;align-items:center;justify-content:space-between;gap:10px}
.stkrow h3{font-size:1.15rem}
.pickbtn{width:auto;padding:9px 14px;font-size:.84rem;white-space:nowrap;flex:none}
.pickbtn:disabled{opacity:.5}
.pop.flow{display:flex;flex-direction:column;padding:10px 0 0;max-height:86vh;overflow:hidden}
.flowhead{display:flex;align-items:center;gap:8px;padding:0 16px 8px}
.flowhead h3{flex:1;font-size:1.3rem}
.flowhead .close{float:none}
.flowhead .back{background:var(--tint);border:none;width:34px;height:34px;border-radius:50%;font-size:1rem;color:var(--ad);cursor:pointer}
.flowbody{flex:1;overflow:auto;overscroll-behavior:contain;padding:4px 16px 12px}
.flowbody input[type=text]{margin-bottom:8px}
.flowfoot{padding:10px 16px calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:#fff}
.flowfoot .btn{padding:13px}
.blk{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.blk:first-child{border-top:none;padding-top:0;margin-top:4px}
.blk .note{margin-top:8px}
.compact .grp{max-height:none}
