/* Testify! Live — program styles. Shared by the landing page and the program page. */
@font-face{font-family:"Poppins";font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/poppins-regular.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-weight:400;font-style:italic;font-display:swap;src:url(../fonts/poppins-italic.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/poppins-medium.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/poppins-bold.woff2) format("woff2")}
@font-face{font-family:"Poppins";font-weight:700;font-style:italic;font-display:swap;src:url(../fonts/poppins-bolditalic.woff2) format("woff2")}

:root{
  --bg:#0e100f; --ivory:#f3eee3; --muted:#c4beb0; --dim:#8e897d; --gold:#c7952c; --alert:#f0a020; --panel:#161a18;
  --strip:34px; --gut:18px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:#050605;color:var(--ivory);font:400 17px/1.65 "Poppins",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
img{max-width:100%;height:auto;display:block}
a{color:var(--gold)}
h1,h2,h3,h4,p,ol,ul{margin:0}
ul,ol{padding:0;list-style:none}

/* ---------- page column with stained-glass edges ---------- */
.page{position:relative;max-width:560px;margin:0 auto;min-height:100vh;
  background:var(--bg) url(../img/bg-tile.webp) center top/360px auto repeat}
.page::before,.page::after{content:"";position:absolute;top:0;bottom:0;width:var(--strip);z-index:1;
  background-repeat:repeat-y;background-size:var(--strip) auto}
.page::before{left:0;background-image:url(../img/strip-l.webp)}
.page::after{right:0;background-image:url(../img/strip-r.webp)}
.page{overflow-x:clip}
.wrap{position:relative;z-index:2;padding:0 calc(var(--strip) + var(--gut))}

/* ---------- hero ---------- */
.hero{position:relative;z-index:3;text-align:center;color:var(--ivory)}
.hero img.arch{width:100%}
.hero .in{position:absolute;left:0;right:0;top:15%;padding:0 26%}
.hero .in img{width:100%;margin:0 auto}
.hero .meta{position:absolute;left:0;right:0;bottom:11%;padding:0 20%;font-size:clamp(11px,3.1vw,15px);line-height:1.5}
.hero .meta b{display:block;color:var(--gold);letter-spacing:.2em;font-size:.82em;text-transform:uppercase}
.hero .meta span{display:block;margin-top:4px;color:var(--ivory);font-weight:500}

/* ---------- sticky section menu ---------- */
.snav{position:sticky;top:0;z-index:30;background:rgba(14,16,15,.96);backdrop-filter:blur(6px);
  border-bottom:1px solid rgba(199,149,44,.5)}
.snav ul{display:flex;gap:8px;overflow-x:auto;padding:10px var(--gut);scrollbar-width:none;-webkit-overflow-scrolling:touch}
.snav ul::-webkit-scrollbar{display:none}
.snav a{display:block;white-space:nowrap;text-decoration:none;color:var(--ivory);font-weight:500;font-size:13px;letter-spacing:.06em;
  padding:8px 14px;border:1px solid rgba(199,149,44,.55);border-radius:999px}
.snav a.on{background:var(--gold);color:#0e100f;border-color:var(--gold)}

/* ---------- sections ---------- */
.sec{position:relative;z-index:2;padding:64px 0 8px;scroll-margin-top:58px}
.kick{font-weight:700;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.sec h2{font-weight:700;font-size:33px;line-height:1.15;margin-top:8px}
.orn{display:flex;align-items:center;gap:12px;margin:22px 0 28px;color:var(--gold)}
.orn::before,.orn::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.orn::after{background:linear-gradient(270deg,transparent,var(--gold))}
.orn i{width:9px;height:9px;background:var(--gold);transform:rotate(45deg)}
.lead{font-size:21px;line-height:1.5;font-weight:700}
.sub2{color:var(--muted)}
.sec h3{font-weight:700;font-size:24px;line-height:1.25}
.small-cap{font-weight:700;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}

/* ---------- welcome letter ---------- */
.letter p{margin-top:18px}
.letter .greet{font-size:22px;font-weight:700;margin:0}
.letter .pull{font-size:22px;font-weight:700;font-style:italic;color:var(--gold);line-height:1.4;margin-top:26px}
.sign{margin-top:26px}
.sign em{display:block;margin-bottom:18px}
.signers{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.signer{text-align:center;min-width:0}
.signer img{width:min(120px,80%);margin:0 auto 12px}
.signer b{display:block;font-size:15px;line-height:1.35}
.signer span{display:block;color:var(--muted);font-size:13px;line-height:1.4;margin-top:3px}

/* ---------- order of service ---------- */
.oos li{padding:20px 0;border-top:1px solid rgba(199,149,44,.28)}
.oos li:first-child{border-top:0;padding-top:0}
.oos .l{display:block;font-weight:700;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:5px}
.oos .t{display:block;font-weight:700;font-size:21px;line-height:1.3}
.oos .t a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(199,149,44,.6)}
.oos .t.song{font-style:italic}
.oos .s{display:block;color:var(--muted);font-size:15px;line-height:1.45;margin-top:2px}
.oos .m{display:block;font-weight:700;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-top:4px}
.oos .who{display:block;margin-top:2px}
.oos .who + .who{margin-top:0}
.oos .brk{text-align:center;padding:26px 0;color:var(--gold);font-weight:700;letter-spacing:.35em;font-size:15px}
.part{margin:34px 0 8px;text-align:center;color:var(--gold);font-weight:700;font-size:12px;letter-spacing:.24em;text-transform:uppercase}
.chip{display:inline-block;font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:6px 14px;border-radius:999px;margin-bottom:9px;color:#0e100f}
.p-commissions{background:#29b6e8}.p-comforts{background:#3453b8;color:#fff}.p-belonging{background:#12917e;color:#fff}
.p-creates{background:#f0a020}.p-heals{background:#2ea36b}.p-rest{background:#22367f;color:#fff}.p-transforms{background:#f2c230}
.p-music{background:var(--gold)}

/* ---------- artist / person cards ---------- */
.grid7{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 10px;margin:6px 0 4px}
.grid7 a{text-decoration:none;color:var(--ivory);text-align:center;display:block;min-width:0;overflow-wrap:anywhere}
.grid7 img{width:100%;margin:0 auto 8px}
.grid7 b{display:block;font-size:12.5px;line-height:1.3}
.grid7 span{display:block;overflow-wrap:normal;font-size:clamp(7.5px,2.4vw,9px);letter-spacing:.06em;color:var(--gold);font-weight:700;margin-top:2px}
.grid7 a:nth-child(7){grid-column:2}
.card{padding:44px 0 6px;margin-top:40px;border-top:1px solid rgba(199,149,44,.3);scroll-margin-top:66px}
.card .top{text-align:center}
.card .ph-img{width:min(230px,66%);margin:0 auto 22px}
.card .ph-img.wide{width:100%}
.card h3{font-size:30px;text-align:center}
.card .role{display:block;text-align:center;color:var(--gold);font-weight:700;font-size:12px;letter-spacing:.2em;text-transform:uppercase;margin-top:8px}
.card .bio{margin-top:22px}
.card .bio + .bio{margin-top:14px}
.sub-card{margin-top:34px;padding:26px 20px;background:var(--panel);border:1px solid rgba(199,149,44,.35);border-radius:18px}
.sub-card h4{font-size:22px;font-weight:700;line-height:1.25}
.sub-card .role{text-align:left;margin-top:6px}
.ph{margin-top:18px;padding:16px 18px;background:var(--panel);border:1px dashed var(--alert);border-radius:14px;color:var(--muted);font-style:italic}
.ph b{display:block;font-style:normal;font-size:11px;letter-spacing:.2em;color:var(--alert);margin-bottom:4px}
.churches{margin-top:14px;color:var(--ivory)}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:22px 14px;margin-top:8px}
.pair .card{margin-top:0;padding-top:0;border:0}

/* ---------- team ---------- */
.team{padding:40px 0 6px;border-top:1px solid rgba(199,149,44,.3);margin-top:34px}
.team:first-of-type{border-top:0;margin-top:0;padding-top:0}
.team .head{text-align:center}
.avatar{position:relative;width:150px;margin:0 auto 18px}
.avatar.lg{width:min(230px,66%);margin-bottom:22px}
.avatar img{width:100%}
.avatar b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--gold);font-style:italic;font-size:32px}
.avatar b.sm{font-size:11.5px;letter-spacing:.2em;font-style:normal;text-transform:uppercase;color:var(--alert)}
.team h3{font-size:25px;line-height:1.25}
.team .nick{display:block;color:var(--gold);font-style:italic;font-weight:500;font-size:16px;line-height:1.35;margin-top:6px}
.team .roles{display:block;margin-top:10px;color:var(--muted);font-size:13.5px;line-height:1.55}
.team .bio{margin-top:20px;font-size:16.5px}

/* ---------- buttons, misc ---------- */
.btn{display:block;text-align:center;text-decoration:none;font-weight:700;font-size:14px;letter-spacing:.14em;text-transform:uppercase;
  padding:19px 20px;border-radius:999px;background:var(--gold);color:#0e100f;margin-top:22px}
.btn.ghost{background:transparent;color:var(--gold);border:2px solid var(--gold)}
.when{margin-top:20px;text-align:center}
.when b{display:block;color:var(--gold);letter-spacing:.2em;font-size:12px;text-transform:uppercase}
.when span{display:block;font-size:32px;font-weight:700;line-height:1.2;margin-top:4px}
.blk{margin-top:44px}
.blk:first-of-type{margin-top:0}
.cols{color:var(--muted);line-height:1.75}
.cols li{display:inline}
.namelist{list-style:none;padding:0;margin:12px 0 0;columns:2;column-gap:18px}
.namelist li{display:block;break-inside:avoid;padding:4px 0;line-height:1.4;font-size:15.5px;color:var(--muted);overflow-wrap:anywhere}
.stack li{display:block;padding:5px 0;color:var(--muted);line-height:1.45;font-size:16px}
.stack li::before{content:none!important}
.stack.lit li{color:var(--ivory)}
h1,h2,h3,.foot p,.lead{text-wrap:balance}
.cols li + li::before{content:"\00b7";color:var(--gold);font-weight:700;margin:0 .5em}
.credit{margin-top:32px;font-size:14.5px;color:var(--muted);line-height:1.6}
.foot{position:relative;z-index:2;text-align:center;padding:70px 0 60px}
.foot img.wm{width:min(280px,70%);margin:0 auto 14px}
.foot p{color:var(--gold);font-weight:700;font-style:italic;font-size:18px}

.cts-logo{display:block;width:min(270px,72%);margin:40px auto 0}
.cts-logo img{width:100%;height:auto}

/* ---------- landing page ---------- */
.landing{max-width:560px;margin:0 auto;min-height:100vh;background:var(--bg)}
.poster{position:relative;container-type:inline-size}
.poster img{width:100%}
.poster .txt{position:absolute;left:28%;right:28%;top:67.5%;text-align:center}
.poster .live{font-weight:700;color:var(--gold);font-size:6.5vw;font-size:8.5cqw;letter-spacing:.24em;text-indent:.24em;line-height:1}
.poster .city{font-weight:700;font-size:2.8vw;font-size:2.9cqw;letter-spacing:.03em;margin-top:2.4cqw;line-height:1.3;white-space:nowrap}
.poster .day{font-weight:700;color:var(--gold);font-size:2.6vw;font-size:2.7cqw;letter-spacing:.2em;margin-top:2cqw}
.info{padding:26px 26px 54px;text-align:center}
.info .day2{color:var(--gold);font-weight:700;letter-spacing:.2em;font-size:13px;text-transform:uppercase}
.info .time{font-size:56px;font-weight:700;line-height:1.1;margin-top:4px}
.info .venue{font-size:22px;font-weight:700;margin-top:8px}
.info .btn{max-width:360px;margin:26px auto 0}

@media (min-width:600px){body{background:#050605}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ===================== release 1.1 additions ===================== */

/* social icon row */
.socials{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:24px}
.soc{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--gold);color:var(--gold);display:flex;align-items:center;justify-content:center;text-decoration:none}
.soc svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.soc svg.f{fill:currentColor;stroke:none}
.soc:hover,.soc:focus-visible{background:var(--gold);color:#0e100f}

/* JR mark badge on the Circle of Trust card */
.jr-badge{display:block;position:relative;z-index:2;width:96px;height:96px;border-radius:50%;border:3px solid var(--gold);background:#fff;margin:-48px auto 16px}

/* intermission button inside the order of service */
.oos li.brk{padding:14px 0}
.brk-btn{display:block;width:100%;background:transparent;border:1.5px dashed var(--gold);border-radius:16px;color:var(--gold);font:700 15px/1.3 "Poppins",sans-serif;letter-spacing:.35em;text-indent:.35em;text-align:center;padding:16px 10px;cursor:pointer}
.brk-btn span{display:block;margin-top:5px;font-size:11px;font-weight:500;letter-spacing:.12em;text-indent:.12em;text-transform:none;color:var(--muted)}
.brk-btn:hover,.brk-btn:focus-visible{background:rgba(199,149,44,.12)}

/* The Glass note */
.glass{margin-top:44px;padding:30px 20px 26px;background:var(--panel);border:1px solid rgba(199,149,44,.35);border-radius:18px}
.glass figure{margin:20px 0 22px;width:100%}
.glass figure img{width:min(230px,66%);margin:0 auto}
.glass figcaption{font-size:12.5px;line-height:1.5;color:var(--muted);text-align:center;margin-top:10px;overflow-wrap:anywhere}
.glass .credit-line{margin-top:22px;font-size:14px;font-style:italic;color:var(--muted);line-height:1.6}
.glass .btn{margin-top:18px}

/* CTS events */
.evt{margin-top:46px}
.evt img.banner{width:100%;border-radius:14px;border:1px solid rgba(199,149,44,.45);display:block}
.evt .d{display:block;margin-top:16px;font-weight:700;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.evt h3{font-size:23px;line-height:1.25;margin-top:6px}
.evt p{margin-top:10px}
.evt .btns{display:flex;flex-wrap:wrap;gap:12px}
.evt .btn{margin-top:16px;flex:1 1 140px;padding:16px 14px;font-size:13px}
.evt.plain{padding:26px 20px;background:var(--panel);border:1px solid rgba(199,149,44,.35);border-radius:18px}
.evt.plain .d{margin-top:0}

/* buttons with a sub-line (landing page) */
.btn small{display:block;margin-top:4px;font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:none;opacity:.9}
.info .btn + .btn{margin-top:14px}
.info .btn.ghost{padding:15px 20px}

/* pop-ups (intermission guide + forms) */
html.modal-open,html.modal-open body{overflow:hidden}
.modal[hidden]{display:none}
.modal{position:fixed;inset:0;z-index:100;display:flex;align-items:flex-end;justify-content:center;background:rgba(0,0,0,.72)}
.modal .sheet{display:flex;flex-direction:column;width:100%;max-width:560px;background:var(--bg) url(../img/bg-tile.webp) center top/360px auto repeat;border:1px solid rgba(199,149,44,.5);border-bottom:0;border-radius:22px 22px 0 0;overflow:hidden}
.modal .sheet.form{height:100%;height:100dvh;border-radius:0;border:0}
.modal .sheet.small{max-height:94vh;max-height:94dvh}
.modal .bar{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid rgba(199,149,44,.4);background:rgba(14,16,15,.96);flex:none}
.modal .bar h2{flex:1;font-size:17px;line-height:1.25;font-weight:700;margin:0;min-width:0}
.modal .bar .alt{font-size:12px;font-weight:500;color:var(--gold);white-space:nowrap}
.modal-close{flex:none;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--gold);background:transparent;color:var(--gold);font-size:26px;line-height:1;cursor:pointer}
.modal-close:hover,.modal-close:focus-visible{background:var(--gold);color:#0e100f}
.modal .body{flex:1;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}
.modal .body.pad{padding:16px 22px 24px}
.modal .body iframe{display:block;width:100%;height:100%;min-height:100%;border:0;position:relative;z-index:1}
.modal .loading{position:absolute;left:0;right:0;top:38%;text-align:center;color:var(--muted);z-index:0}
.modal .loading.done{display:none}
.tips{margin:12px 0 16px}
.tips li{padding:9px 0 9px 18px;border-top:1px solid rgba(199,149,44,.25);position:relative;font-size:15.5px;line-height:1.5}
.tips li::before{content:"";position:absolute;left:0;top:18px;width:7px;height:7px;background:var(--gold);transform:rotate(45deg)}
.tips li b{color:var(--gold)}
button.btn{width:100%;border:0;cursor:pointer;font-family:inherit}

/* Circle of Trust: the logo mark stands alone (no band photo) */
.jr-badge.lg{width:min(210px,58%);height:auto;aspect-ratio:1/1;margin:4px auto 24px}
