/* Language choice stays beside the existing church identity. */
.brand-and-language { display:flex; align-items:center; gap:20px; flex-shrink:0; }
.language-switcher { position:relative; font-family:var(--sans); text-align:left; }
.language-switcher > summary { display:flex; align-items:center; justify-content:center; gap:8px; min-height:42px; padding:7px 10px; border:1px solid #456079; border-radius:5px; color:#fff; font-size:.8125rem; font-weight:700; line-height:1; cursor:pointer; list-style:none; }
.language-switcher > summary::-webkit-details-marker { display:none; }
.language-switcher > summary::after { display:none; }
.language-switcher > summary:hover, .language-switcher[open] > summary { background:#15364e; border-color:#8eb1cc; }
.language-switcher > summary:focus-visible, .language-panel a:focus-visible { outline:2px solid #e9c77f; outline-offset:3px; }
.language-flag { display:block; width:32px; height:24px; flex-shrink:0; object-fit:cover; border-radius:2px; box-shadow:0 0 0 1px #637c9040; }
.language-chevron { width:10px; height:7px; fill:none; stroke:currentColor; stroke-width:1.5; }
.language-switcher[open] .language-chevron { transform:rotate(180deg); }
.language-panel { position:absolute; top:calc(100% + 13px); left:0; z-index:100; width:264px; max-height:calc(100svh - 104px); overflow-y:auto; overscroll-behavior:contain; max-width:calc(100vw - 32px); padding:12px 8px 8px; background:#fff; border:1px solid #c4d4e0; border-top:3px solid #c5a259; border-radius:6px; box-shadow:0 14px 35px #0004; color:#14334b; }
.language-panel > p { margin:0 10px 8px; font-size:.75rem; font-weight:600; color:#51697c; }
.language-panel ul { list-style:none; margin:0; padding:0; }
.language-panel a { display:grid; grid-template-columns:24px minmax(0,1fr) auto; align-items:center; gap:12px; min-height:44px; padding:9px 10px; border-radius:3px; font-size:.9375rem; line-height:1.35; color:#14334b; text-decoration:none; }
.language-panel a:hover, .language-panel a[aria-current] { background:#eaf1f6; color:#0c3659; }
.language-panel a[aria-current] { font-weight:800; box-shadow:inset 3px 0 #a7843e; }
.language-panel .language-flag { width:24px; height:18px; }
.language-code { color:#637c90; font-size:.75rem; }
.language-panel > small { display:block; margin:10px; font-size:.8125rem; line-height:1.45; color:#51697c; }
.link-language { font-size:.8em; font-weight:500; opacity:.88; }
.main-nav .link-language { display:block; font-size:.75rem; line-height:1.2; margin-top:3px; }
.original-language { color:var(--muted,#526d80); font-size:.875rem; margin:0 0 .65rem; }
.language-visit-note { max-width:66ch; margin-top:1.25rem; font-size:.9375rem; line-height:1.6; color:#c5d8e8; }
html:not([lang="pt-BR"]) .hero-copy h1 { overflow-wrap:normal; font-size:clamp(2.3rem,4.4vw,4rem); }
html:not([lang="pt-BR"]) .meeting-hours > div { gap:12px; }
html:not([lang="pt-BR"]) .meeting-hours dd { white-space:normal; }
html:not([lang="pt-BR"]) .unit-card, html:not([lang="pt-BR"]) .belief, html:not([lang="pt-BR"]) .course-overview { min-width:0; overflow-wrap:anywhere; }
html:lang(ja), html:lang(zh) { --sans:Manrope,"Yu Gothic","Hiragino Kaku Gothic ProN","Microsoft YaHei","Noto Sans CJK SC",sans-serif; --serif:var(--sans); }
html:lang(ja) body, html:lang(zh) body { line-height:1.85; line-break:strict; }
html:lang(ja) :is(h1,h2,h3), html:lang(zh) :is(h1,h2,h3) { letter-spacing:0; line-height:1.45; word-break:normal; }
html:lang(ja) :is(.eyebrow,.course-type), html:lang(zh) :is(.eyebrow,.course-type) { letter-spacing:.04em; }
.brand small { text-transform:uppercase; }
html:lang(ja) .brand, html:lang(zh) .brand { font-family:var(--sans); letter-spacing:0; }
html:lang(ja) .brand small, html:lang(zh) .brand small { letter-spacing:.08em; }
/* Measure the real navigation width instead of collapsing at a fixed desktop size. */
.container.header-inner { position:relative; gap:24px; }
.site-header .menu-toggle { display:none; align-items:center; justify-content:center; gap:12px; min-height:44px; padding:10px 14px; appearance:none; background:transparent; border:1px solid #527f9f; border-radius:3px; color:#fff; font-size:.875rem; flex-shrink:0; }
.site-header .menu-lines { display:block; position:relative; width:20px; height:14px; flex-shrink:0; color:#bcd0df; border-block:2px solid currentColor; }
.site-header .menu-lines::before { content:""; position:absolute; left:0; right:0; top:50%; height:2px; background:currentColor; transform:translateY(-50%); }
.site-header .main-nav { display:flex; position:static; width:max-content; flex-shrink:0; flex-direction:row; flex-wrap:nowrap; align-items:center; gap:20px; padding:0; background:transparent; border:0; box-shadow:none; }
.site-header .main-nav > a:not(.button) { padding:0; font-size:.875rem; white-space:nowrap; }
.site-header .main-nav > a:not(.button)::after { display:block; }
.site-header .main-nav .button { margin-top:0; padding:11px 20px; align-self:center; white-space:nowrap; }
.site-header.is-compact .menu-toggle { display:flex; }
.site-header.is-compact .main-nav { display:none; position:absolute; top:100%; left:0; right:0; width:auto; background:#000; border:1px solid #000; padding:18px 22px; flex-direction:column; align-items:stretch; gap:0; z-index:60; }
.site-header.is-compact .main-nav.is-open { display:flex; }
.site-header.is-compact .main-nav > a:not(.button) { padding:13px 0; white-space:normal; }
.site-header.is-compact .main-nav > a:not(.button)::after { display:none; }
.site-header.is-compact .main-nav .button { margin-top:10px; padding:13px 20px; align-self:flex-start; }
.site-header.is-compact .main-nav .link-language { display:inline; }
@media (max-width:1000px) {
  html:not(.js) .header-inner { flex-wrap:wrap; padding-block:16px; }
  html:not(.js) .site-header .menu-toggle { display:none; }
  html:not(.js) .site-header .main-nav { position:static; width:100%; flex-wrap:wrap; gap:18px; }
}
@media (max-width:680px) {
  .site-header .menu-toggle { padding:9px 12px; }
  .brand-and-language { gap:12px; }
  .language-switcher > summary { gap:5px; min-height:40px; padding:7px; }
  .language-switcher > summary > span { display:none; }
  .language-switcher { position:static; }
  .language-panel { left:0; right:auto; top:calc(100% + 12px); }
  .language-visit-note { font-size:.875rem; }
}
@media (max-width:370px) {
  .site-header .brand { font-size:1rem; }
  .site-header .brand small { font-size:.65rem; letter-spacing:.12em; }
  .site-header .brand-mark { font-size:2.1rem; }
  .brand-and-language { gap:8px; }
  .site-header .menu-toggle { padding:9px; }
  .site-header .menu-toggle > span:first-child { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
}
@media (prefers-reduced-motion:reduce) { .language-switcher * { transition:none; } }
@media print { .language-switcher { display:none; } }

/* Korean keeps words together while still fitting narrow screens. */
html:lang(ko) { --sans:Manrope,"Malgun Gothic","Apple SD Gothic Neo","Noto Sans KR",sans-serif; --serif:var(--sans); }
html:lang(ko) body { line-height:1.8; word-break:keep-all; overflow-wrap:anywhere; }
html:lang(ko) :is(h1,h2,h3,.brand) { letter-spacing:0; line-height:1.45; }
html:lang(ko) :is(.eyebrow,.course-type,.brand small) { letter-spacing:.04em; }
.footer-bottom a { color:inherit; text-decoration:none; text-underline-offset:4px; white-space:nowrap; }
.footer-bottom a:hover { color:#fff; text-decoration:underline; }
.footer-bottom a:focus-visible { outline:2px solid var(--gold); outline-offset:4px; }
