/* Shared navigation, footer and motion. Loaded after glass.css. */
:root { --ink-500: #586e63; }
.site-nav { gap: 1rem; }
.desktop-nav { gap: .15rem; }
.desktop-nav > a, .nav-explore summary { position: relative; min-height: 44px; display: inline-flex; align-items: center; padding: .55rem .72rem; white-space: nowrap; }
.desktop-nav > a::after { content: ""; position: absolute; inset: auto .75rem .2rem; height: 2px; background: #967021; transform: scaleX(0); transform-origin: left; transition: transform .2s ease; }
.desktop-nav > a:hover::after, .desktop-nav > a[aria-current="page"]::after { transform: scaleX(1); }
.nav-account { border: 1px solid #ccd8ce; border-radius: 10px; white-space: nowrap; }
.nav-explore { position: relative; }
.nav-explore summary { gap: .4rem; border-radius: 10px; color: #2b5143; font-size: .91rem; font-weight: 600; cursor: pointer; list-style: none; }
.nav-explore summary::-webkit-details-marker { display: none; }
.nav-explore summary:hover, .nav-explore[open] summary { background: #e5f0e9; color: #123b2a; }
.nav-explore summary svg { transition: transform .2s; }
.nav-explore[open] summary svg { transform: rotate(180deg); }
.nav-explore__panel { position: absolute; top: calc(100% + .6rem); right: 0; width: 290px; padding: .65rem; border: 1px solid #d6e1d6; border-radius: 16px; background: #fcfdf9; box-shadow: 0 18px 45px #082d2126; animation: menu-arrive .2s ease both; }
.nav-explore__panel a, .nav-explore__panel button { display: flex; align-items: center; width: 100%; min-height: 44px; padding: .6rem .85rem; border: 0; border-radius: 8px; background: transparent; color: #234735; text-decoration: none; font-size: .9rem; font-weight: 600; }
.nav-explore__panel a:hover, .nav-explore__panel button:hover { background: #e5f0e9; }
.nav-explore__label { display: block; padding: .65rem .85rem .25rem; color: #78571d; font-size: .7rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.nav-explore form { margin: .4rem 0 0; border-top: 1px solid #dae3d8; padding-top: .4rem; }
.site-header::after { content: ""; position: absolute; inset: auto 0 0; height: 2px; background: linear-gradient(90deg, #236647, #dca941); transform: scaleX(var(--page-progress, 0)); transform-origin: left; pointer-events: none; }
.nav-drawer { border-left: 1px solid #d5dfd4; }
.nav-drawer__head { position: sticky; top: -1.35rem; z-index: 2; padding-block: .4rem; background: #fafcf7; }
.nav-drawer__eyebrow { margin-top: 1.15rem; }
.nav-drawer__links { margin-bottom: 1.5rem; gap: .2rem; }
.nav-drawer__links a { font-weight: 600; border: 1px solid transparent; transition: background .2s, border-color .2s, transform .2s; }
.nav-drawer__links a[aria-current="page"] { border-color: #c5d4c5; background: #e6eee2; color: #123b2a; font-weight: 700; }
.nav-drawer__links .nav-drawer__account[aria-current="page"] { background: #15513a; color: #fff; }
.nav-drawer__footer > .btn--primary { color: #fff; }
.nav-drawer__footer { flex-shrink: 0; }
.nav-drawer.is-open .nav-drawer__links a { animation: menu-arrive .28s ease both; }
.nav-drawer.is-open .nav-drawer__links a:nth-child(2) { animation-delay: .03s; }
.nav-drawer.is-open .nav-drawer__links a:nth-child(3) { animation-delay: .06s; }
.nav-drawer.is-open .nav-drawer__links a:nth-child(4) { animation-delay: .09s; }
.site-footer { position: relative; border-top: 3px solid #d5af62; padding-top: 2.5rem; color: #e0eae2; background: radial-gradient(ellipse at 95% 0, #416143 0, transparent 55%), linear-gradient(120deg, #082d21, #123d2c 70%); }
.footer-invitation { display: flex; justify-content: space-between; align-items: center; gap: 2rem; width: min(var(--content-width),100%); margin: 0 auto 2.75rem; padding: 1.5rem 0 2.2rem; border-bottom: 1px solid #ffffff30; }
.footer-invitation .eyebrow { color: #f4d68c; margin-bottom: .65rem; }
.footer-invitation h2 { color: #fffdf5; font-family: var(--font-display); font-size: clamp(1.65rem,2.7vw,2.5rem); font-weight: 600; letter-spacing: -.02em; text-transform: none; margin-bottom: .7rem; }
.footer-invitation p:last-child { color: #e0eae2; margin: 0; max-width: 560px; }
.footer-invitation .btn { flex-shrink: 0; }
.site-footer__grid { grid-template-columns: minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr); gap: 2rem; }
.site-footer__grid > * { min-width: 0; }
.brand--footer { flex-wrap: wrap; }
.brand--footer .brand__mark { width: 100px; height: 66px; background: #fffdf5; border-radius: 12px; }
.brand--footer .brand__tagline { color: #dce7df; line-height: 1.5; }
.site-footer .text-link--light { color: #f4d68c; }
.site-footer h2 { color: #f4d68c; }
.site-footer .footer-invitation h2 { color: #fffdf5; }
.footer-links a, .footer-contact a { color: #e0eae2; min-height: 40px; line-height: 1.55; transition: color .18s, transform .18s; }
.footer-links a:hover, .footer-contact a:hover { color: #ffe7a9; text-decoration: underline; text-underline-offset: 5px; }
.footer-contact { padding: 1.2rem; border: 1px solid #ffffff30; border-radius: 16px; background: #ffffff08; gap: .7rem; }
.footer-contact .footer-email, .footer-contact .footer-meeting-link { display: flex; gap: .6rem; align-items: flex-start; overflow-wrap: anywhere; font-size: .85rem; }
.footer-contact .ui-icon { width: 18px; height: 18px; margin-top: .18rem; }
.site-footer__bottom { align-items: center; color: #d7e4db; flex-wrap: wrap; }
.back-to-top { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 44px; padding: .5rem .8rem; border: 1px solid #ffffff40; border-radius: 9px; white-space: nowrap; }
.site-footer :focus-visible { outline-color: #ffe7a9; }
.btn--primary, .btn--primary:hover { color: #fff; }
.btn--whatsapp { background: #187442; color: #fff; }
.btn--whatsapp:hover { background: #115d34; color: #fff; }
.footer-contact { align-self: start; }
.btn--light, .btn--light:hover { background: #fffdf5; color: #123b2a; }
.share-button--prominent:hover { background: #15513a; color: #fff; }
.article-detail__prayer h2, .article-detail__prayer h3, .daily-word__prayer h2, .daily-word__prayer h3 { color: #fffdf5; }
.article-detail__prayer, .daily-word__prayer { color: #e5eee7; }
.page-hero h1, .page-hero h2 { color: #102f23; }
.page-hero p:not(.eyebrow) { color: #435e50; }
/* Dark card variants must win over the generic glass-paper card surface. */
.visit-card.card, .values-card.card, .contact-details.card {
    background: linear-gradient(130deg, #123b2a, #1c5840);
    color: #e5eee7; border-color: #4a7458;
}
.visit-card.card h2, .values-card.card h2, .contact-details.card h2 { color: #fffdf5; }
.visit-card.card p, .values-card.card p, .contact-details.card p,
.crusade-giving-banner__copy p:last-child { color: #e5eee7; }
.visit-card.card .eyebrow, .values-card.card .eyebrow,
.contact-details__item > span, .crusade-giving-banner__copy .eyebrow { color: #f4d68c; }
.mobile-action-dock a { transition: background .18s, color .18s; }
.mobile-action-dock a .ui-icon { transition: transform .18s; }
.mobile-action-dock a:active .ui-icon { transform: scale(.9); }
@keyframes menu-arrive { from { opacity: .4; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@keyframes soft-arrive { from { opacity: .6; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: no-preference) {
    .motion-ready .page-hero__content { animation: soft-arrive .55s ease both; }
    [data-reveal].is-reveal-pending { transition-duration: .6s; transition-timing-function: cubic-bezier(.2,.7,.2,1); transition-delay: var(--reveal-delay, 0ms); }
    .btn, .journey-card, .article-card, .program-card, .weekly-program-card { transition: transform .22s ease, box-shadow .22s ease, background .22s ease, border-color .22s ease; }
}
@media (hover:hover) and (prefers-reduced-motion: no-preference) {
    .btn:hover { transform: translateY(-2px); box-shadow: 0 6px 18px #143b291c; }
    .journey-card:hover, .article-card:hover, .program-card:hover { transform: translateY(-3px); box-shadow: 0 14px 28px #143b2914; border-color: #adbea9; }
    .footer-links a:hover { transform: translateX(3px); }
}
@media (max-width:1080px) {
    .site-footer__grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .footer-contact { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; }
    .footer-contact h2 { grid-column: 1 / -1; margin-bottom: 0; }
}
@media (max-width:640px) {
    .footer-invitation { flex-direction: column; align-items: flex-start; gap: 1.2rem; padding-top: 0; margin-bottom: 2rem; }
    .site-footer { padding: 2rem 1.2rem 1.2rem; margin-top: 3rem; }
    .site-footer__grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2rem 1rem; }
    .footer-contact { display: flex; padding: 1rem; }
    .brand--footer { flex-wrap: nowrap; }
    .brand--footer .brand__tagline { display: block; font-size: .56rem; letter-spacing: .06em; }
    .footer-links a { min-height: 44px; }
    .site-footer__bottom { margin-top: 1.8rem; gap: .8rem; font-size: .75rem; }
    .site-footer__bottom p:first-child { flex-basis: 100%; }
    .back-to-top { margin-left: auto; }
    .nav-drawer__head { top: -1.15rem; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-delay: 0ms !important; transition-delay: 0ms !important; }
    .nav-drawer.is-open .nav-drawer__links a { animation: none; }
}
