/* Multi-page additions on top of the approved Lion's Gate mockup (mockup.css). */
.skip{position:absolute;left:-9999px;top:0;z-index:50;background:var(--gold);color:#140f02;padding:12px 18px;font-weight:600}
.skip:focus{left:12px;top:12px}
.nav a[aria-current=page],#drawer a[aria-current=page]{color:var(--gold-hi);text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:1px}
.ftr .addr{color:var(--mute);font-size:.95rem;max-width:46ch;margin:0 auto 14px}
.brand{position:relative}

/* Inner page opening: the lion small, the page name big */
.phero{position:relative;overflow:hidden;padding:72px 0 64px;text-align:center;border-bottom:1px solid var(--line);background:radial-gradient(ellipse 55% 70% at 50% 0%,#2a2010 0%,var(--ink) 72%)}
.phero img{width:84px;height:auto;margin:0 auto 22px}
.phero h1{font:700 clamp(2.1rem,4.6vw,3.6rem)/1.1 var(--disp);letter-spacing:.04em;color:var(--gold-hi);max-width:20ch;margin:0 auto}
.phero p{font-style:italic;font-size:clamp(1.15rem,2vw,1.4rem);color:var(--ivory);margin:18px auto 0;max-width:46ch}

/* Plain reading section */
.prose{padding:96px 0}
.prose .wrap{max-width:760px}
.prose h2{font:700 clamp(1.7rem,3vw,2.4rem)/1.15 var(--disp);color:var(--gold-hi);letter-spacing:.02em;margin-top:56px}
.prose h2:first-child{margin-top:0}
.prose p{color:var(--mute);margin-top:18px;max-width:64ch}
.prose p.lead{font-size:1.3rem;line-height:1.6;color:var(--ivory)}
.prose blockquote{margin:28px 0;padding-left:22px;border-left:2px solid var(--gold);font-size:1.3rem;line-height:1.6;color:var(--ivory)}
.prose blockquote cite{display:block;margin-top:10px;font:500 .95rem var(--disp);letter-spacing:.14em;color:var(--gold);font-style:normal}
@media (max-width:760px){.prose{padding:64px 0}}

/* Teaser band on the home page that points into an inner page */
.more{display:inline-flex;align-items:center;min-height:44px;margin-top:22px;color:var(--gold-hi);font-weight:600;text-decoration:underline;text-underline-offset:5px}
.welcome .more{color:var(--purple-dk)}

/* Gatherings: no date announced yet */
.event.soon .when{background:transparent;color:var(--gold-hi);border-right:1px solid var(--gold)}
.event.soon .day{font-size:1.35rem;line-height:1.15}
@media (max-width:520px){.event.soon .when{border-right:0;border-bottom:1px solid var(--gold)}}

/* What to expect */
.expect{padding:96px 0;border-top:1px solid var(--line)}
.expect h2{font:700 clamp(1.9rem,3.3vw,2.8rem)/1.14 var(--disp);color:var(--gold-hi);letter-spacing:.02em;max-width:22ch}
.expect ul{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;margin-top:40px}
.expect li{border-top:1px solid var(--gold);padding-top:20px}
.expect h3{font:700 1.2rem/1.3 var(--disp);color:var(--ivory);letter-spacing:.04em}
.expect li p{color:var(--mute);margin-top:10px}
@media (max-width:860px){.expect ul{grid-template-columns:minmax(0,1fr);gap:28px}.expect{padding:64px 0}}

/* Venue and map */
.venue{padding:96px 0;background:var(--raised);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.venue .wrap{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:56px;align-items:center}
.venue h2{font:700 clamp(1.9rem,3.3vw,2.8rem)/1.14 var(--disp);color:var(--gold-hi);letter-spacing:.02em}
.venue address{font-style:normal;color:var(--ivory);margin:16px 0 22px;font-size:1.15rem}
.venue address span{display:block;color:var(--mute);font-size:1rem}
.map{position:relative;aspect-ratio:16/10;border:1px solid var(--line);background:#0f0e0c}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.35) contrast(.95)}
@media (max-width:860px){.venue .wrap{grid-template-columns:minmax(0,1fr);gap:32px}.venue{padding:64px 0}.map{aspect-ratio:4/3}}

/* Past gatherings */
.past{padding:96px 0}
.past h2{font:700 clamp(1.9rem,3.3vw,2.8rem)/1.14 var(--disp);color:var(--gold-hi);letter-spacing:.02em}
.past>.wrap>p{color:var(--mute);margin-top:12px;max-width:56ch}
.past ol{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;margin-top:40px}
.past li img{width:100%;aspect-ratio:4/5;object-fit:cover;border:1px solid var(--line)}
.past time{display:block;margin-top:16px;font:500 .95rem var(--disp);letter-spacing:.12em;color:var(--gold)}
.past h3{font:700 1.3rem/1.25 var(--disp);color:var(--ivory);margin-top:6px}
.past li p{color:var(--mute);margin-top:6px;font-size:1rem}
@media (max-width:900px){.past ol{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.past ol{grid-template-columns:minmax(0,1fr)}.past li{width:min(100%,380px)}.past{padding:64px 0}}

/* Closing invitation band, used at the foot of inner pages */
.invite{background:var(--purple);padding:80px 0;text-align:center}
.invite h2{font:700 clamp(1.8rem,3.2vw,2.6rem)/1.15 var(--disp);color:#fff;letter-spacing:.02em;max-width:22ch;margin:0 auto}
.invite p{color:#E7DFF4;margin:14px auto 0;max-width:48ch}
.invite .ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:28px}
.invite .btn.ghost{color:#fff;border-color:#C9B8EC}
.invite .btn.ghost:hover{background:rgba(255,255,255,.08)}

/* Ask page: the form section without its own sticky intro duplicating the page hero */
.ask .intro ul{list-style:none;margin-top:24px}
.ask .intro li{color:#E7DFF4;padding:12px 0;border-top:1px solid #6B52A3}
.ask .intro li b{display:block;color:#fff}
.done .note{margin-top:10px}

/* Give */
.give{background:var(--purple);padding:96px 0}
.give .wrap{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:64px;align-items:start}
.give .intro h2{font:700 clamp(1.9rem,3.3vw,2.8rem)/1.14 var(--disp);color:#fff;letter-spacing:.02em}
.give .intro p{color:#E7DFF4;margin-top:16px;max-width:42ch}
#g,.gdone{background:#21143D;border:1px solid #6B52A3;padding:32px}
.amounts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:22px}
.amounts legend{grid-column:1/-1}
.amounts label,.freq label{display:flex;align-items:center;justify-content:center;min-height:52px;border:1px solid #6B52A3;background:#2B1B4E;color:#fff;font-weight:600;cursor:pointer;position:relative}
.amounts input,.freq input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.amounts label:has(input:checked),.freq label:has(input:checked){border-color:var(--gold);background:#3A2668;box-shadow:inset 0 0 0 1px var(--gold)}
.amounts label:has(input:focus-visible),.freq label:has(input:focus-visible){outline:2px solid var(--gold-hi);outline-offset:2px}
.other{display:none}
.other.on{display:block}
.freq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:22px}
.freq legend{grid-column:1/-1}
.gdone h3{font:700 1.6rem/1.2 var(--disp);color:var(--gold-hi)}
.gdone p{color:#E7DFF4;margin-top:12px}
.gdone:focus{outline:none}
.fine{color:#CFC4E6;font-size:.95rem;margin-top:16px}
@media (max-width:900px){.give .wrap{grid-template-columns:minmax(0,1fr);gap:32px}.give{padding:64px 0}}
@media (max-width:560px){#g,.gdone{padding:22px 18px}.amounts{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Spam trap: off-screen for people, filled only by bots */
#f{position:relative}
#f .hp,#f .hp input{position:absolute;left:-9999px;top:0;width:1px;height:1px;overflow:hidden;padding:0;border:0}

/* The Ask page IS the destination, so its own sticky "Bring a question" bar is noise */
body[data-page=ask] .bar{display:none!important}
@media (max-width:760px){body[data-page=ask]{padding-bottom:0}}
