/* Responsive church website navigation. */
.church-navigation .navbar { z-index:1050; }
.church-navigation .navbar-brand img { max-width:100%; object-fit:contain; }
.church-navigation .church-nav-parent > .dropdown-menu { display:none !important; background:#fff; border:1px solid #dce8ef; border-radius:12px; padding:12px; box-shadow:0 14px 38px rgba(15,43,65,.18); animation:none !important; }
.church-navigation .church-nav-parent.church-menu-open > .dropdown-menu { display:block !important; }
.church-navigation .church-nav-parent > .dropdown-menu a,
.church-navigation .church-sub-toggle { display:block; width:100%; white-space:normal; overflow-wrap:anywhere; padding:11px 13px; line-height:1.35; color:var(--church-nav-accent,#8c1028); background:transparent; border:0; border-radius:6px; text-align:left; font-size:15px; text-transform:none; }
.church-navigation .church-nav-parent > .dropdown-menu a:hover,
.church-navigation .church-sub-toggle:hover { color:var(--church-nav-accent,#8c1028); background:#edf6fc; }
.church-navigation a:focus-visible,.church-navigation button:focus-visible { outline:3px solid var(--church-nav-accent,#8c1028); outline-offset:-3px; }
.church-navigation .dropdown-submenu > .dropdown-menu { position:static !important; float:none; width:auto !important; min-width:0; margin:0 0 0 10px; padding:0 0 0 8px; border:0; border-left:2px solid #cce4f4; background:#fff; box-shadow:none; display:none !important; }
.church-navigation .dropdown-submenu.church-sub-open > .dropdown-menu { display:block !important; }
.church-navigation .church-sub-toggle:after { content:'+'; float:right; font-weight:bold; margin-left:8px; }
.church-navigation .church-sub-open > .church-sub-toggle:after { content:'−'; }
@media(min-width:1200px) {
 .church-desktop .nav-container { display:flex; align-items:center; gap:16px; width:calc(100% - 40px); max-width:1800px; }
 .church-desktop .navbar-header { flex:0 0 200px; float:none; }
 .church-desktop .navbar-brand { float:none; display:block; padding:8px 0; height:auto; }
 .church-desktop .navbar-brand img { width:auto; height:60px; max-width:200px; max-height:70px; }
 .church-desktop .navbar-nav { min-width:0; display:flex; flex:1 1 0; flex-wrap:wrap; justify-content:flex-end; align-items:center; float:none !important; margin:0 !important; }
 .church-desktop .navbar-nav > li { float:none; flex:0 0 auto; }
 .church-desktop .navbar-nav > li > a { padding:18px 11px; font-size:14px; line-height:20px; }
 .church-desktop .navbar-nav > li.church-nav-parent > a { padding-right:36px; }
 .church-desktop .church-nav-toggle { width:30px; height:44px; }
 .church-desktop .church-nav-parent > .dropdown-menu { position:fixed; width:280px; max-width:calc(100vw - 32px); overflow-y:auto; overscroll-behavior:contain; margin:0; }
 .church-desktop .church-nav-parent.church-wide-menu > .dropdown-menu { width:740px; }
 .church-desktop .church-wide-menu.church-menu-open > .dropdown-menu { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:3px 12px; align-content:start; }
 .church-desktop .church-wide-menu > .dropdown-menu > li { min-width:0; list-style:none; }
}
@media(max-width:1199px) {
 .church-mobile .navbar-header { float:none; }
 .church-mobile .navbar-toggle { display:block; }
 .church-mobile .navbar-brand { float:left; }
 .church-mobile .navbar-collapse.collapse { display:none !important; }
 .church-mobile .navbar-collapse.collapse.in { display:block !important; max-height:calc(100vh - 90px); max-height:calc(100dvh - 90px); overflow-y:auto !important; clear:both; }
 .church-mobile .navbar-nav { float:none !important; margin:8px 0; }
 .church-mobile .navbar-nav > li { float:none; }
 .church-mobile .church-nav-parent > .dropdown-menu { position:static; float:none; width:100%; min-width:0; max-width:100%; margin:0 0 8px; box-shadow:none; }
 .church-mobile .church-nav-toggle { top:0; transform:none; height:44px; width:44px; }
 .church-mobile .navbar-nav > li > a { white-space:normal; padding-top:13px; padding-bottom:13px; }
}
@media(prefers-reduced-motion:reduce) { .church-navigation * { animation:none !important; transition:none !important; } }

/* Bootstrap and no-script fallbacks keep links accessible during cache updates. */
.church-navigation .church-nav-parent.open > .dropdown-menu { display:block !important; }
@media(min-width:1200px) {
 .church-desktop:not(.church-navigation-ready) .church-nav-parent > .dropdown-menu { position:absolute; top:100%; left:auto; right:0; max-height:calc(100vh - 120px); }
 .church-desktop:not(.church-navigation-ready) .church-nav-parent:has(> .dropdown-menu > li:nth-child(12)) > .dropdown-menu { width:min(740px,calc(100vw - 32px)); }
 .church-desktop .church-wide-menu.open > .dropdown-menu { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(min-width:1200px) and (hover:hover) {
 .church-desktop:not(.church-navigation-ready) .church-nav-parent:hover > .dropdown-menu,
 .church-desktop:not(.church-navigation-ready) .church-nav-parent:focus-within > .dropdown-menu { display:block !important; }
 .church-desktop:not(.church-navigation-ready) .church-nav-parent:has(> .dropdown-menu > li:nth-child(12)):hover > .dropdown-menu,
 .church-desktop:not(.church-navigation-ready) .church-nav-parent:has(> .dropdown-menu > li:nth-child(12)):focus-within > .dropdown-menu { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)); gap:3px 12px; }
 .church-navigation:not(.church-navigation-ready) .dropdown-submenu:hover > .dropdown-menu { display:block !important; }
}

/* Parent headings open menus; they are deliberately not page links. */
.church-navigation .church-nav-parent > .church-top-toggle { position:static; transform:none; width:auto; height:auto; display:block; padding:18px 12px; background:transparent; border:0; color:var(--church-nav-accent,#8c1028); font:inherit; font-size:14px; font-weight:600; line-height:20px; text-align:left; cursor:pointer; }
.church-navigation .church-top-toggle i { margin-left:9px; }
.church-navigation .church-nav-parent > .church-top-toggle:hover { background:#f3f6f8; }
.church-navigation .navbar-nav > li > a { color:var(--church-nav-accent,#8c1028); }
@media(max-width:1199px) {
 .church-navigation .church-nav-parent > .church-top-toggle { width:100%; padding:13px 15px; }
 .church-navigation .church-top-toggle i { float:right; margin-top:3px; }
 .church-mobile .navbar-brand img { width:auto; height:60px; max-width:200px; }
 .church-mobile .navbar-header { min-height:80px; }
}
