/* Sojourner's Rest: shared styles for every inner page (index.html keeps its own inline styles) */
:root{
  --gold-hi:#fffaf0; --gold:#f6dc9a; --gold-mid:#e6bd6a; --gold-lo:#b98a3e;
  --glow:255,214,150; --mist:220,230,255; --ink:#ece6d8; --ink-soft:#cfc7b6; --bg:#0b0d14;
  --display:"Cinzel Decorative","Cinzel","Trajan Pro",Georgia,serif;
  --caps:"Cinzel","Trajan Pro",Georgia,serif;
  --body:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --wrap:min(92vw,68rem);
  --radius:clamp(14px,1.6rem,40px);
}
/* one fluid root size drives everything: 17px on phones, ~22px on 1080p, ~33px on 4K */
html{font-size:clamp(17px,calc(12px + .55vw),36px);background:var(--bg);-webkit-text-size-adjust:100%}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
body{min-height:100vh;min-height:100dvh;color:var(--ink);font-family:var(--body);font-size:1.05rem;line-height:1.6;overflow-x:hidden;display:flex;flex-direction:column}
img,svg{display:block;max-width:100%}
a{color:var(--gold)}
a:hover{color:var(--gold-hi)}
:focus-visible{outline:2px solid rgba(var(--glow),.8);outline-offset:3px;border-radius:4px}
.skip{position:absolute;left:-999px;top:0;z-index:10;background:var(--bg);color:var(--gold);padding:.5em 1em;font-family:var(--caps)}
.skip:focus{left:1rem;top:1rem}

/* the paintings, fixed behind the page: portrait on upright screens, wide on landscape */
.bg{position:fixed;inset:0;z-index:-1;background:var(--bg) url("sojourners_rest_night_bg_painterly.jpg") center 88%/cover no-repeat}
.bg::after{content:"";position:absolute;inset:0;
  background:
    radial-gradient(120% 70% at 50% 0%,rgba(var(--mist),.06),rgba(var(--mist),0) 60%),
    linear-gradient(180deg,rgba(8,10,18,.18) 0%,rgba(8,10,18,.48) 30%,rgba(8,10,18,.76) 70%,rgba(8,10,18,.88) 100%)}
@media (min-aspect-ratio:1/1){ .bg{background-image:url("background_wide.jpg");background-position:center 90%} }

/* ---------- header ---------- */
.site-header{position:relative;width:var(--wrap);margin:0 auto;padding:max(env(safe-area-inset-top),clamp(14px,3.5vh,3rem)) 0 clamp(10px,2vh,1.5rem);
  display:flex;flex-direction:column;align-items:center;gap:clamp(8px,1.6vh,1.1rem)}
.site-header::before{content:"";position:absolute;left:0;right:0;top:0;height:100%;
  background:radial-gradient(50% 50% at 50% 45%,rgba(var(--mist),.10),rgba(var(--mist),0) 70%);pointer-events:none}
.brand{position:relative;display:flex;align-items:center;justify-content:center;gap:.4em;text-decoration:none;max-width:100%;
  font-size:clamp(20px,min(5.6vw,9vh),5.2rem)}
.brand .crest{width:1.05em;height:1.3em;flex:none;color:var(--gold-mid);filter:drop-shadow(0 0 .15em rgba(var(--glow),.45))}
.title{white-space:nowrap;font-family:var(--display);font-weight:400;line-height:1.05;letter-spacing:.07em;
  background:linear-gradient(180deg,var(--gold-hi) 0%,var(--gold) 45%,var(--gold-mid) 80%,var(--gold-lo) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 .12em rgba(var(--glow),.35)) drop-shadow(0 0 .4em rgba(var(--glow),.18)) drop-shadow(0 .035em .07em rgba(0,0,0,.55))}
@media (max-width:420px){ .brand .crest{display:none} .brand{font-size:clamp(19px,7.4vw,31px)} }

.nav{position:relative;width:100%}
.nav ul{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.35em clamp(.5em,2.2vw,2.2em);
  font-family:var(--caps);font-weight:600;font-size:clamp(13px,.84rem,1.7rem);letter-spacing:.16em;text-transform:uppercase}
.nav li{display:flex;align-items:center}
.nav a{text-decoration:none;color:rgba(246,220,154,.78);padding:.45em .25em;border-bottom:1px solid transparent;white-space:nowrap;
  transition:color .6s,border-color .6s,text-shadow .6s}
.nav a:hover,.nav a:focus-visible{color:var(--gold-hi);text-shadow:0 0 .6em rgba(var(--glow),.6)}
.nav a[aria-current="page"]{color:var(--gold-hi);border-bottom-color:rgba(var(--glow),.65);text-shadow:0 0 .5em rgba(var(--glow),.4)}
.nav .btn{font-size:.92em;padding:.5em 1.4em .46em}
.nav .btn,.nav .btn:hover{border-bottom:max(1px,.025em) solid rgba(var(--glow),.5)}

/* ---------- ghostly gold pill button (same language as "Walk with us") ---------- */
.btn{position:relative;display:inline-flex;align-items:center;gap:.6em;overflow:hidden;flex:none;
  font-family:var(--caps);font-weight:600;font-size:clamp(15px,.95rem,2rem);letter-spacing:.14em;white-space:nowrap;text-decoration:none;text-transform:none;
  padding:.7em 2.1em .66em;border-radius:999px;
  background:radial-gradient(80% 120% at 50% 50%,rgba(var(--glow),.10),rgba(var(--glow),0) 70%),linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.03));
  -webkit-backdrop-filter:blur(.15em) saturate(115%);backdrop-filter:blur(.15em) saturate(115%);
  border:max(1px,.025em) solid rgba(var(--glow),.45);
  box-shadow:0 0 0 1px rgba(255,255,255,.06) inset,0 0 .43em rgba(var(--glow),.18) inset,0 0 .52em rgba(var(--glow),.22),0 0 1.67em rgba(var(--mist),.10);
  transition:box-shadow .8s ease,border-color .8s ease,background .8s ease}
.btn span,.btn svg{position:relative;z-index:1}
.btn span{background:linear-gradient(180deg,var(--gold-hi) 0%,var(--gold) 55%,var(--gold-mid) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 .19em rgba(var(--glow),.45));transition:filter .8s ease}
.btn svg{width:1.15em;height:1.15em;color:var(--gold);filter:drop-shadow(0 0 .2em rgba(var(--glow),.5))}
.btn::after{content:"";position:absolute;top:-20%;bottom:-20%;left:-60%;width:45%;
  background:linear-gradient(100deg,rgba(255,255,255,0) 0%,rgba(255,240,210,.22) 50%,rgba(255,255,255,0) 100%);
  transform:skewX(-18deg);opacity:0;pointer-events:none}
.btn:hover,.btn:focus-visible{outline:none;border-color:rgba(var(--glow),.75);
  background:radial-gradient(80% 120% at 50% 50%,rgba(var(--glow),.18),rgba(var(--glow),0) 72%),linear-gradient(180deg,rgba(255,255,255,.14),rgba(255,255,255,.05));
  box-shadow:0 0 0 1px rgba(255,255,255,.10) inset,0 0 .62em rgba(var(--glow),.28) inset,0 0 .81em rgba(var(--glow),.40),0 0 2.6em rgba(var(--glow),.22);
  animation:breathe 3.2s ease-in-out infinite}
.btn:hover span,.btn:focus-visible span{filter:drop-shadow(0 0 .29em rgba(var(--glow),.8)) drop-shadow(0 0 .62em rgba(var(--glow),.35))}
.btn:hover::after,.btn:focus-visible::after{animation:shimmer 2.6s ease-in-out infinite}
.btn-lg{font-size:clamp(17px,1.2rem,2.6rem)}
.btn-quiet{border-color:rgba(var(--glow),.28);box-shadow:0 0 0 1px rgba(255,255,255,.04) inset,0 0 .6em rgba(var(--glow),.10)}
@keyframes shimmer{0%{left:-60%;opacity:0}15%{opacity:1}70%{opacity:1}100%{left:120%;opacity:0}}
@keyframes breathe{
  0%,100%{box-shadow:0 0 0 1px rgba(255,255,255,.10) inset,0 0 .62em rgba(var(--glow),.28) inset,0 0 .81em rgba(var(--glow),.40),0 0 2.6em rgba(var(--glow),.22)}
  50%{box-shadow:0 0 0 1px rgba(255,255,255,.14) inset,0 0 .76em rgba(var(--glow),.34) inset,0 0 1.1em rgba(var(--glow),.55),0 0 3.3em rgba(var(--glow),.30)}}
@media (hover:none){ .btn{border-color:rgba(var(--glow),.6);box-shadow:0 0 0 1px rgba(255,255,255,.08) inset,0 0 .5em rgba(var(--glow),.24) inset,0 0 .7em rgba(var(--glow),.32),0 0 2em rgba(var(--glow),.16)} }
.btn-row{display:flex;flex-wrap:wrap;justify-content:center;gap:.9rem 1.2rem;margin-top:1.6rem}

/* ---------- layout ---------- */
main{flex:1;width:var(--wrap);margin:0 auto;padding-bottom:clamp(2rem,6vh,4rem)}
.hero{text-align:center;padding:clamp(1.2rem,5vh,3.5rem) 0 clamp(1rem,3vh,2rem)}
.eyebrow{font-family:var(--caps);font-weight:600;font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(246,220,154,.75)}
h1,h2,h3{font-family:var(--caps);font-weight:600;line-height:1.2;
  background:linear-gradient(180deg,var(--gold-hi) 0%,var(--gold) 55%,var(--gold-mid) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 .2em rgba(var(--glow),.35))}
h1{font-size:clamp(1.7rem,4.6vw,3.1rem);letter-spacing:.12em;margin:.35em 0 .1em}
h2{font-size:clamp(1.35rem,3.2vw,2.05rem);letter-spacing:.12em;text-align:center}
h3{font-size:1.08rem;letter-spacing:.1em}
.lede{font-size:clamp(1.15rem,2.4vw,1.45rem);font-style:italic;color:var(--ink);max-width:38em;margin:0 auto;text-shadow:0 1px 3px rgba(0,0,0,.7)}
.lede em,.panel em,.card em{color:var(--gold);font-style:italic}

/* ornamental divider */
.divider{display:flex;align-items:center;justify-content:center;gap:.8em;margin:1.1rem auto 1.4rem;width:min(100%,22rem);color:rgba(var(--glow),.8)}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,rgba(var(--glow),0),rgba(var(--glow),.7))}
.divider::after{background:linear-gradient(90deg,rgba(var(--glow),.7),rgba(var(--glow),0))}
.divider svg{width:1.6rem;height:.9rem;flex:none}

/* glass panels and cards */
.panel,.card{position:relative;border-radius:var(--radius);
  background:radial-gradient(90% 80% at 50% 0%,rgba(var(--glow),.07),rgba(var(--glow),0) 70%),linear-gradient(180deg,rgba(14,17,28,.62),rgba(10,12,20,.72));
  -webkit-backdrop-filter:blur(6px) saturate(115%);backdrop-filter:blur(6px) saturate(115%);
  border:1px solid rgba(var(--glow),.32);
  box-shadow:0 0 0 1px rgba(255,255,255,.04) inset,0 0 1.4em rgba(var(--glow),.08) inset,0 0 1.6em rgba(var(--glow),.12),0 0 4em rgba(var(--mist),.05)}
.panel{padding:clamp(1.4rem,4vw,3rem) clamp(1.1rem,5vw,3.6rem);margin-top:clamp(1.2rem,3vh,2.2rem)}
.panel > p,.panel > ul,.panel > ol{max-width:40em;margin-left:auto;margin-right:auto}
.panel p + p{margin-top:.9em}
.panel.center{text-align:center}
p,li{text-shadow:0 1px 2px rgba(0,0,0,.55)}
.muted{color:var(--ink-soft)}
.quote{font-family:var(--caps);font-weight:500;letter-spacing:.06em;font-size:clamp(1.15rem,2.6vw,1.6rem);line-height:1.45;text-align:center;color:var(--gold);
  text-shadow:0 0 .6em rgba(var(--glow),.35),0 1px 2px rgba(0,0,0,.7);max-width:30em;margin:0 auto}

.cards{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(.9rem,2vw,1.5rem);margin-top:clamp(1.2rem,3vh,2.2rem)}
.cards > .card{flex:1 1 17rem;max-width:min(100%,24rem)}
.card{padding:1.5rem 1.4rem 1.6rem;text-align:center}
.card .icon{width:2.6rem;height:2.6rem;margin:0 auto .8rem;color:var(--gold-mid);filter:drop-shadow(0 0 .3em rgba(var(--glow),.45))}
.card h3{margin-bottom:.5em}
.card p{font-size:1rem;color:var(--ink)}

/* numbered steps */
.steps{list-style:none;counter-reset:step;display:grid;gap:1rem;max-width:40em;margin:1.4rem auto 0}
.steps li{counter-increment:step;position:relative;padding:.2em 0 .2em 3.4rem;min-height:2.6rem}
.steps li::before{content:counter(step);position:absolute;left:0;top:0;width:2.4rem;height:2.4rem;border-radius:50%;
  display:grid;place-items:center;font-family:var(--caps);font-weight:600;font-size:1.05rem;color:var(--gold-hi);
  border:1px solid rgba(var(--glow),.55);background:rgba(var(--glow),.08);box-shadow:0 0 .8em rgba(var(--glow),.22)}
.steps strong{font-family:var(--caps);font-weight:600;letter-spacing:.06em;color:var(--gold);font-size:.95em}

/* simple bullet list with star markers */
.list{list-style:none;display:grid;gap:.7rem;margin-top:1rem}
.list li{position:relative;padding-left:1.6rem}
.list li::before{content:"✦";position:absolute;left:0;top:.05em;color:rgba(var(--glow),.8);font-size:.85em}
.list strong{color:var(--gold);font-weight:600}

/* notice ("Raid times to be announced") */
.notice{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.4em .9em;text-align:center;margin:1.4rem auto 0;max-width:40em;
  padding:.9rem 1.3rem;border-radius:999px;border:1px dashed rgba(var(--glow),.5);background:rgba(var(--glow),.06)}
.notice b{font-family:var(--caps);font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:.82rem;color:var(--gold-hi)}
.notice span{font-style:italic;color:var(--ink)}
@media (max-width:600px){ .notice{border-radius:var(--radius)} }

/* FAQ */
.faq{display:grid;gap:.9rem;margin-top:clamp(1.2rem,3vh,2.2rem)}
.faq details{padding:0}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.4rem;
  font-family:var(--caps);font-weight:600;letter-spacing:.07em;font-size:1rem;color:var(--gold)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.4em;line-height:1;color:rgba(var(--glow),.85);transition:transform .4s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq summary:hover{color:var(--gold-hi)}
.faq .answer{padding:0 1.4rem 1.3rem}
.faq .answer p + p{margin-top:.7em}

/* closing call to action band */
.cta-band{text-align:center}
.cta-band p{max-width:34em;margin:0 auto}

/* ---------- footer ---------- */
.site-footer{width:100%;margin-top:auto;padding:clamp(1.8rem,5vh,3rem) 4vw max(env(safe-area-inset-bottom),clamp(1.4rem,4vh,2.4rem));
  border-top:1px solid rgba(var(--glow),.22);background:linear-gradient(180deg,rgba(8,10,18,.35),rgba(8,10,18,.75));text-align:center}
.footer-inner{width:min(100%,60rem);margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:1.1rem}
.footer-brand{display:flex;align-items:center;gap:.5em;text-decoration:none;font-family:var(--display);font-size:clamp(18px,1.3rem,2.8rem);letter-spacing:.07em;white-space:nowrap}
.footer-brand .crest{width:1.2em;height:1.5em;color:var(--gold-mid)}
.footer-brand span{background:linear-gradient(180deg,var(--gold-hi),var(--gold) 50%,var(--gold-mid));-webkit-background-clip:text;background-clip:text;color:transparent}
.footer-nav ul{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:.3em 1.4em;font-family:var(--caps);font-weight:600;font-size:clamp(12px,.72rem,1.5rem);letter-spacing:.16em;text-transform:uppercase}
.footer-nav a{color:rgba(246,220,154,.75);text-decoration:none;padding:.3em .1em}
.footer-nav a:hover{color:var(--gold-hi)}
.footer-nav a[aria-current="page"]{color:var(--gold-hi)}
.fine{font-size:.92rem;color:var(--ink-soft);max-width:36em}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important}
}

/* small phones: let long buttons wrap instead of overflowing */
.btn{max-width:100%}
@media (max-width:480px){
  .btn-lg{white-space:normal;text-align:center;justify-content:center;padding:.7em 1.4em .66em;line-height:1.3;font-size:16px;letter-spacing:.1em}
  h1{letter-spacing:.08em}
  .btn-row{gap:.8rem}
}
.faq details.card{text-align:left;padding:0}
