/* Shared site chrome: language switcher, navigation states, Back to Top bar, social links,
   translation notices and the Weekly Activities accordion. Loaded last on every page. */
:root{--royal:#1d4f9e;--ivory:#fbf6ea;--light-blue:#eef3f9;--gold-deep:#76521c;--gold-rule:#b58b3a}

/* ---------- Header: discreet globe language control (top-right, beside the navigation) ---------- */
.lang-switch{position:relative;flex-shrink:0;color:var(--navy)}
.lang-toggle{display:inline-flex;align-items:center;gap:.3rem;min-width:44px;min-height:44px;padding:.35rem .5rem;background:transparent;color:var(--navy);border:1px solid transparent;border-radius:999px;font:700 .75rem/1 Arial,Helvetica,sans-serif;letter-spacing:.08em;cursor:pointer}
.lang-toggle svg{width:1.3rem;height:1.3rem;flex-shrink:0}
.lang-toggle .lang-code{color:var(--gold-deep)}
.lang-toggle:hover,.lang-toggle[aria-expanded="true"]{border-color:var(--gold-rule);background:var(--ivory)}
.lang-toggle:focus-visible,.lang-menu button:focus-visible{outline:3px solid #94620b;outline-offset:2px}
.lang-menu{position:absolute;top:calc(100% + .4rem);right:0;z-index:20;min-width:12.5rem;padding:.4rem;background:#fff;border:1px solid #e6d7b3;border-top:3px solid var(--gold);border-radius:8px;box-shadow:0 12px 30px #10223826}
.lang-menu[hidden]{display:none}
.lang-menu-title{margin:.2rem .6rem .35rem;white-space:nowrap;font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.lang-menu ul{margin:0;padding:0;list-style:none}
.lang-menu button{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;min-height:44px;padding:.5rem .7rem;background:transparent;border:0;border-radius:5px;color:var(--navy);font:600 .9375rem/1.2 Arial,Helvetica,sans-serif;text-align:left;cursor:pointer}
.lang-menu button:hover{background:var(--light-blue)}
.lang-menu button[aria-pressed="true"]{font-weight:800}
.lang-menu button[aria-pressed="true"]:after{content:'✓';color:var(--gold-deep)}
nav a[aria-current="page"]{text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--gold-rule);text-underline-offset:7px}
@media(max-width:800px){
  /* Mobile header row: logo · globe · Menu */
  .lang-switch{margin-left:auto;order:2}
  .menu-toggle{order:3;min-height:44px;font-weight:700}
  header{gap:.5rem}
  .lang-toggle{padding:.35rem .4rem}
  body:has(.hero) header .brand{max-width:calc(100% - 9.25rem)}
}

/* ---------- Back to Top: shared bar placed directly above every footer ---------- */
.site-top-return{display:flex;justify-content:center;padding:2rem 1.25rem;background:var(--ivory);border-top:1px solid #e6d7b3}
.site-back-to-top{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:56px;min-width:min(100%,320px);padding:1rem 2.4rem;background:var(--navy);color:var(--gold);border:2px solid var(--gold);border-radius:6px;font:800 1.0625rem/1.2 Arial,Helvetica,sans-serif;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;box-shadow:0 10px 26px #10223830;cursor:pointer}
.site-back-to-top:hover{background:#1f3a5c;color:#fff}
.site-back-to-top:focus-visible{outline:3px solid #94620b;outline-offset:4px}
@media(max-width:420px){.site-back-to-top{width:100%;padding:1rem 1.2rem}}

/* ---------- Social media links ---------- */
.social-links{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin:0;padding:0;list-style:none}
.social-link{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;width:48px;height:48px;border-radius:50%;background:var(--navy);color:#fff;border:2px solid var(--navy);text-decoration:none;transition:background-color .15s,color .15s,border-color .15s}
.social-link svg{width:22px;height:22px}
.social-link:hover{background:var(--gold);color:var(--deep);border-color:var(--gold)}
.social-link:focus-visible{outline:3px solid #94620b;outline-offset:3px}
.social-links.is-labeled .social-link{width:auto;padding:0 1.15rem 0 .95rem;border-radius:999px;font-weight:700;font-size:.9375rem}
footer .social-link{color:#fff}
footer .social-link:hover{color:var(--deep)}
.footer-social{display:flex;flex-direction:column;align-items:flex-start;gap:.6rem}
footer p.footer-social-title{font-weight:800;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--navy)}
.connect-social{margin-top:1.8rem}
.connect-social-title{margin-bottom:.7rem;font-weight:800;font-size:.8125rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.connect .social-link{background:#fff;color:var(--navy);border-color:#fff}
.connect .social-link:hover{background:var(--gold);border-color:var(--gold);color:var(--deep)}
@media(prefers-reduced-motion:reduce){.social-link{transition:none}}

/* ---------- Translation notices (only shown in Español) ---------- */
.translation-notice{display:none}
html[lang="es"] .translation-notice{display:block;max-width:1096px;margin:1.5rem auto;padding:1rem 1.25rem;background:var(--ivory);border-left:4px solid var(--gold-rule);border-radius:0 8px 8px 0;color:var(--ink);font-size:.95rem}
.translation-notice strong{color:var(--navy)}

/* ---------- Weekly Activities: compact, expandable schedule ---------- */
.schedule{margin:0 0 2rem;background:#fff;border-top:4px solid var(--gold);border-radius:12px;box-shadow:0 12px 34px #10223814;overflow:hidden}
.sched-row{border-left:5px solid var(--gold-rule)}
.sched-row.is-virtual{border-left-color:var(--royal)}
.sched-row+.sched-row{border-top:1px solid #10223814}
.sched-row:nth-child(odd) .sched-toggle{background:var(--ivory)}
.sched-row:nth-child(even) .sched-toggle{background:#fff}
.sched-heading{margin:0;font:inherit}
.sched-toggle{display:grid;grid-template-columns:minmax(9.5rem,11.5rem) minmax(0,1fr) 8.5rem 9.5rem;align-items:center;gap:1.25rem;width:100%;min-height:72px;margin:0;padding:.9rem 1.5rem;border:0;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.sched-row .sched-toggle:hover{background:var(--light-blue)}
.sched-toggle:focus-visible{outline:3px solid #94620b;outline-offset:-4px}
.sched-day{font:800 1.0625rem/1.2 Arial,Helvetica,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--navy)}
.sched-what{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.sched-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:.15rem .7rem}
.sched-name{font-family:Georgia,'Times New Roman',serif;font-size:1.2rem;line-height:1.3;color:var(--navy)}
.sched-time{font-weight:800;font-size:1rem;letter-spacing:.03em;color:var(--gold-deep);white-space:nowrap}
.sched-mode{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;justify-self:start;padding:.35rem .75rem;border-radius:999px;font:800 .75rem/1.3 Arial,Helvetica,sans-serif;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.sched-mode svg{width:.95rem;height:.95rem;flex-shrink:0}
.sched-mode.in-person{background:var(--navy);color:var(--gold)}
.sched-mode.virtual{background:var(--royal);color:#fff}
.sched-more{justify-self:end;display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:.45rem .85rem;border:2px solid var(--gold-rule);border-radius:5px;font:800 .8125rem/1.2 Arial,Helvetica,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--navy);white-space:nowrap}
.sched-more .more-open,.sched-toggle[aria-expanded="true"] .more-closed{display:none}
.sched-toggle[aria-expanded="true"] .more-open{display:inline}
/* Open row: navy header for a clear focus point */
.sched-row.is-open .sched-toggle{background:var(--navy);color:#fff}
.sched-row.is-open .sched-day,.sched-row.is-open .sched-time{color:var(--gold)}
.sched-row.is-open .sched-name{color:#fff}
.sched-row.is-open .sched-mode.in-person{background:#fff;color:var(--navy)}
.sched-row.is-open .sched-more{border-color:var(--gold);color:var(--gold)}
.sched-panel{padding:1.6rem 1.5rem 1.8rem;background:var(--light-blue);border-top:3px solid var(--gold)}
.sched-detail{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:1.5rem 2rem;align-items:start}
.sched-detail>div>:last-child{margin-bottom:0}
.sched-detail h4{margin:0 0 .5rem;font:800 .8125rem/1.4 Arial,Helvetica,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep)}
.sched-subtitle{font-weight:700;color:var(--navy)}
.sched-facts{margin:1rem 0 0}
.sched-facts div{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-top:1px solid #10223820}
.sched-facts dt{font-weight:700}
.sched-facts dd{color:var(--ink);font-size:1rem;font-weight:800}
.sched-aside{padding:1.25rem 1.3rem;background:#fff;border:1px solid #e6d7b3;border-top:3px solid var(--gold-rule);border-radius:8px}
.sched-aside p{margin-bottom:.6rem}
/* Expanded action blocks: high-contrast, clearly tappable against the blue panels */
.call-block{display:flex;align-items:center;gap:.85rem;margin:.3rem 0 .9rem;padding:.8rem 1rem;min-height:56px;background:var(--ivory);color:var(--navy);border:2px solid var(--gold-rule);border-radius:8px;box-shadow:0 6px 16px #10223818;text-decoration:none;transition:background-color .15s,color .15s,border-color .15s}
.call-block svg{width:1.6rem;height:1.6rem;flex-shrink:0;padding:.3rem;box-sizing:content-box;background:var(--navy);color:var(--gold);border-radius:50%}
.call-text{display:flex;flex-direction:column;min-width:0}
.call-label{font:800 .75rem/1.3 Arial,Helvetica,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep)}
.call-number{font:700 1.35rem/1.25 Georgia,'Times New Roman',serif;white-space:nowrap}
.call-block.is-email .call-number{font:700 1rem/1.35 Arial,Helvetica,sans-serif;white-space:normal;overflow-wrap:anywhere}
.call-block:hover,.call-block:active{background:var(--navy);color:#fff;border-color:var(--gold)}
.call-block:hover .call-label,.call-block:active .call-label{color:var(--gold)}
.call-block:hover svg,.call-block:active svg{background:var(--gold);color:var(--navy)}
.action-button{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;min-height:52px;margin:.6rem 0 1rem;padding:.8rem 1.1rem;background:var(--gold);color:var(--deep);border:2px solid #c9a448;border-radius:8px;box-shadow:0 8px 20px #10223826;font:800 .9375rem/1.3 Arial,Helvetica,sans-serif;letter-spacing:.07em;text-transform:uppercase;text-align:center;text-decoration:none;transition:background-color .15s,border-color .15s}
.action-button svg{width:1.35rem;height:1.35rem;flex-shrink:0}
.action-button .action-external{width:1rem;height:1rem;opacity:.8}
.action-button:hover,.action-button:active{background:#f3d796;border-color:var(--navy)}
.call-block:focus-visible,.action-button:focus-visible{outline:3px solid #94620b;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.call-block,.action-button{transition:none}}
.sched-link{font-weight:700;color:var(--navy);text-decoration-color:var(--gold-rule);text-decoration-thickness:2px}
.sched-aside .small{margin-bottom:0}
/* Weekly Announcements (Events page): same accordion, with the approved flyer inside each panel */
.sched-detail.has-flyer{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}
.sched-flyer .flyer-frame{border-radius:8px;overflow:hidden;border:1px solid #e6d7b3;box-shadow:0 8px 22px #10223820}
.sched-detail h4.sched-subhead{margin-top:1.4rem}
.weekly-schedule{margin-bottom:0}
.visit-questions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 2rem;margin:0 0 2rem;padding:1.4rem 1.6rem;background:var(--navy);color:#fff;border-radius:10px;border-top:3px solid var(--gold)}
.visit-questions h3{margin:0 0 .25rem;font-family:Georgia,serif;font-weight:400;font-size:1.45rem}
.visit-questions p{margin:0;color:#d7e1ea}
.visit-questions .button{min-height:48px;display:inline-flex;align-items:center;background:transparent;color:var(--gold);border:2px solid var(--gold);letter-spacing:.08em;text-transform:uppercase}
.visit-questions .button:hover{background:var(--gold);color:var(--deep)}
.visit-questions a:focus-visible{outline-color:#fff}

@media(max-width:900px){
  .sched-toggle{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"day mode" "what more";gap:.55rem 1rem;padding:.95rem 1.1rem}
  .sched-day{grid-area:day}
  .sched-what{grid-area:what}
  .sched-mode{grid-area:mode;justify-self:end}
  .sched-more{grid-area:more;align-self:end}
  .sched-detail,.sched-detail.has-flyer{grid-template-columns:1fr}
  .sched-panel{padding:1.25rem 1.1rem 1.4rem}
}
@media(max-width:600px){
  /* The whole row is the tap target, so the READ MORE label can stay small. */
  .sched-toggle{min-height:0;grid-template-areas:"day mode" "what what" "more more";gap:.35rem .75rem;padding:.8rem .9rem}
  .sched-day{font-size:.95rem;letter-spacing:.06em}
  .sched-name{font-size:1.05rem}
  .sched-time{font-size:.9375rem}
  .sched-line{gap:0 .5rem}
  .sched-mode{padding:.25rem .6rem;font-size:.6875rem;letter-spacing:.08em}
  .sched-more{min-height:0;padding:.3rem .55rem;font-size:.6875rem;letter-spacing:.08em}
  .call-number{font-size:1.25rem}
}

/* ---------- Contact Good Hope form (homepage #contact) ---------- */
.connect{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);grid-template-areas:"intro form" "info form";align-items:start;row-gap:2rem}
.connect-intro{grid-area:intro}.connect-intro p:last-child{max-width:34rem;color:#e6edf4;font-size:1.06rem;line-height:1.65}
.contact-card{grid-area:form;background:var(--ivory);color:var(--ink);border-top:4px solid var(--gold-rule);border-radius:12px;padding:2.25rem;box-shadow:0 18px 50px #0004;scroll-margin-top:6.5rem}
.contact-card:focus{outline:none}
.connect-info{grid-area:info}
.connect-info .connect-detail{align-self:auto}
.connect-detail h3+address{margin-top:.25rem}
.connect-detail address{font-style:normal;line-height:1.6;margin-bottom:.5rem}
.connect-detail .contact-email-line a{color:var(--navy);font-weight:700}
.connect-detail h3{font-size:1.45rem;margin:0 0 .5rem}
.connect-detail h3:not(:first-child){margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--line)}
.connect-detail .prayer-call{display:block;padding:.8rem 1rem;background:var(--navy);color:#fff;text-align:center;border-radius:5px;font-weight:700;text-decoration:none}
.contact-note{margin:0 0 1.25rem;color:var(--muted);font-size:.95rem}
.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:.25rem 1.25rem}
.contact-fields .wide{grid-column:1/-1}
.contact-form label{display:block;font-weight:700;color:var(--navy)}
.contact-form input,.contact-form select,.contact-form textarea{display:block;width:100%;box-sizing:border-box;font:inherit;font-size:1rem;font-weight:400;padding:.85rem .9rem;margin:.45rem 0 1.1rem;border:1px solid #8a94a0;border-radius:6px;background:#fff;color:var(--navy)}
.contact-form textarea{resize:vertical;min-height:9rem}
.contact-form input:focus-visible,.contact-form select:focus-visible,.contact-form textarea:focus-visible{outline:3px solid var(--gold-rule);outline-offset:1px;border-color:var(--navy)}
.contact-form [aria-invalid="true"]{border-color:#a02020;box-shadow:0 0 0 1px #a02020}
.contact-card .form-error{color:#a02020;font-weight:700}
.contact-card .field-error{display:block;margin:-.75rem 0 1rem;font-size:.92rem}
.contact-card .small{color:var(--muted)}
.contact-submit.button{display:block;width:100%;min-height:54px;margin-top:.5rem;background:var(--navy);color:#fff;border:2px solid var(--navy);font-size:1.05rem;font-weight:800;letter-spacing:.12em;cursor:pointer}
.contact-submit.button:hover{background:var(--deep);border-color:var(--gold)}
.contact-submit:disabled{opacity:.65;cursor:progress}
.contact-card a:focus-visible,.contact-card button:focus-visible{outline-color:var(--gold-rule)}
.contact-success{text-align:center;padding:1.5rem 0}
.contact-success:focus{outline:none}
.contact-success .eyebrow{color:var(--gold-deep)}
.contact-success h3{font-family:Georgia,serif;font-weight:400;font-size:clamp(1.7rem,3.4vw,2.3rem);color:var(--navy);margin:.5rem 0 1rem}
.contact-success p:not(.eyebrow){max-width:32rem;margin:0 auto 1.5rem;line-height:1.6}
.contact-success .button{background:var(--navy);color:#fff;letter-spacing:.08em}
@media(max-width:900px){.connect{grid-template-columns:1fr;grid-template-areas:"intro" "form" "info"}}
@media(max-width:600px){.contact-card{padding:1.4rem}.contact-fields{grid-template-columns:1fr}}
/* Contact links in the footer, giving help, and events page */
footer .footer-contact{display:inline-block;margin:.6rem 0 .5rem;padding:.6rem 1rem;background:var(--navy);color:#fff;border-radius:5px;font-weight:800;font-size:.8rem;letter-spacing:.1em;text-decoration:none}
footer .footer-contact:hover{background:var(--deep);color:var(--gold)}
footer .footer-email a{color:var(--navy)}
.giving-help .button{margin-top:.5rem;letter-spacing:.08em}
.event-questions .visit-questions{margin:0}
